Skip to main content

chio_kernel/
lib.rs

1//! Chio Runtime Kernel.
2//!
3//! The kernel is the trusted computing base (TCB) of the Chio protocol.
4//! It sits between the untrusted agent and the sandboxed tool servers,
5//! mediating every tool invocation.
6//!
7//! The kernel's responsibilities:
8//!
9//! 1. **Capability validation** -- verify signatures, time bounds, revocation
10//!    status, scope matching, and invocation budgets.
11//! 2. **Guard evaluation** -- run policy guards against the tool call before
12//!    forwarding it.
13//! 3. **Receipt signing** -- produce a signed receipt for every decision
14//!    (allow or deny) and append it to the receipt log.
15//! 4. **Tool dispatch** -- forward validated requests to the appropriate tool
16//!    server over an authenticated channel.
17//!
18//! The kernel is architecturally invisible to the agent. The agent communicates
19//! through an anonymous pipe or Unix domain socket and never learns the kernel's
20//! PID, address, or signing key.
21
22#![cfg_attr(test, allow(clippy::expect_used, clippy::unwrap_used))]
23// Under `--cfg loom` only the `session` module below is compiled; every other
24// item is gated to `cfg(not(loom))`. The interleaving model in
25// tests/loom_concurrency.rs drives the real `Session` terminal-admission state
26// machine; its only heavy dependency (chio-core) reaches neither hyper-util nor
27// tokio and so builds under loom. Every runtime-bearing module stays gated out
28// because the wider dependency graph pulls hyper-util, which cannot compile
29// when tokio drops `tokio::net`. Normal builds compile every item unchanged.
30
31#[cfg(not(loom))]
32pub mod admission_operation;
33#[cfg(not(loom))]
34pub mod approval;
35#[cfg(not(loom))]
36pub mod approval_channels;
37#[cfg(not(loom))]
38pub mod authority;
39#[cfg(not(loom))]
40pub mod boot;
41#[cfg(not(loom))]
42pub mod budget_store;
43#[cfg(not(loom))]
44pub mod capability_lineage;
45#[cfg(not(loom))]
46pub mod checkpoint;
47#[cfg(not(loom))]
48pub mod compliance_certificate;
49#[cfg(not(loom))]
50pub mod compliance_score;
51#[cfg(not(loom))]
52pub mod cost_attribution;
53#[cfg(not(loom))]
54pub mod custody;
55#[cfg(not(loom))]
56pub mod dispatch_status;
57#[cfg(not(loom))]
58pub mod dpop;
59#[cfg(not(loom))]
60pub mod evidence_export;
61#[cfg(not(loom))]
62pub mod execution_nonce;
63#[cfg(not(loom))]
64pub mod federation_artifact_store;
65#[cfg(not(loom))]
66pub mod governed_active_response;
67#[cfg(not(loom))]
68pub mod memory_provenance;
69#[cfg(not(loom))]
70pub mod observability;
71#[cfg(not(loom))]
72pub mod operator_report;
73#[cfg(not(loom))]
74pub mod otel;
75#[cfg(not(loom))]
76pub mod payment;
77#[cfg(not(loom))]
78pub mod post_invocation;
79#[cfg(not(loom))]
80#[allow(deprecated)]
81pub mod provider_verdict;
82#[cfg(not(loom))]
83pub mod receipt_analytics;
84#[cfg(not(loom))]
85pub mod receipt_query;
86#[cfg(not(loom))]
87pub mod receipt_store;
88#[cfg(not(loom))]
89mod receipt_support;
90#[cfg(not(loom))]
91mod request_matching;
92#[cfg(not(loom))]
93pub mod revocation_runtime;
94#[cfg(not(loom))]
95pub mod revocation_store;
96#[cfg(not(loom))]
97pub mod runtime;
98pub mod session;
99#[cfg(not(loom))]
100mod settlement_routing;
101#[cfg(not(loom))]
102pub mod supplemental_quota;
103#[cfg(not(loom))]
104pub mod threshold_approval;
105#[cfg(not(loom))]
106pub mod tool_outcome;
107#[cfg(not(loom))]
108pub mod transport;
109#[cfg(not(loom))]
110pub mod weights_binding;
111
112#[cfg(not(loom))]
113pub(crate) use std::collections::HashMap;
114#[cfg(not(loom))]
115pub(crate) use std::future::Future;
116#[cfg(not(loom))]
117pub(crate) use std::time::{Duration, Instant, SystemTime, UNIX_EPOCH};
118
119#[cfg(not(loom))]
120pub(crate) use chio_core::canonical::canonical_json_bytes;
121#[cfg(not(loom))]
122pub(crate) use chio_core::capability::{
123    governance::{GovernedApprovalDecision, GovernedApprovalToken, GovernedAutonomyTier},
124    runtime_attestation::RuntimeAssuranceTier,
125    scope::{ChioScope, Constraint, Operation, PromptGrant, ResourceGrant, ToolGrant},
126    token::CapabilityToken,
127    trust_policy::AttestationTrustPolicy,
128};
129#[cfg(not(loom))]
130pub(crate) use chio_core::crypto::{sha256_hex, Keypair};
131#[cfg(not(loom))]
132pub(crate) use chio_core::receipt::{
133    body::ChioReceipt, body::ChioReceiptBody, decision::Decision, decision::ToolCallAction,
134    economics::FinancialReceiptMetadata, economics::SettlementStatus,
135    governance::GovernedApprovalReceiptMetadata, governance::GovernedAutonomyReceiptMetadata,
136    governance::GovernedCommerceReceiptMetadata, governance::GovernedTransactionReceiptMetadata,
137    governance::MeteredBillingReceiptMetadata, governance::RuntimeAssuranceReceiptMetadata,
138    lineage::ChildRequestReceipt, lineage::ChildRequestReceiptBody,
139    metadata::ReceiptAttributionMetadata,
140};
141#[cfg(not(loom))]
142pub(crate) use chio_core::session::{
143    CompleteOperation, CompletionReference, CompletionResult, CreateElicitationOperation,
144    CreateElicitationResult, CreateMessageOperation, CreateMessageResult, GetPromptOperation,
145    NormalizedRoot, OperationContext, OperationKind, OperationTerminalState, ProgressToken,
146    PromptDefinition, PromptResult, ReadResourceOperation, RequestId, ResourceContent,
147    ResourceDefinition, ResourceTemplateDefinition, ResourceUriClassification, RootDefinition,
148    SessionAuthContext, SessionId, SessionOperation, ToolCallOperation,
149};
150#[cfg(not(loom))]
151pub(crate) use chio_link::convert::convert_supported_units;
152#[cfg(not(loom))]
153pub(crate) use chio_link::{PriceOracle, PriceOracleError};
154#[cfg(not(loom))]
155pub(crate) use tracing::{debug, info, warn};
156
157#[cfg(not(loom))]
158pub(crate) use receipt_support::*;
159// Hybrid receipt signing path. The kernel boot wiring constructs a
160// `Box<dyn SigningBackend>` from `KernelCryptoFloor` plus an optional
161// ML-DSA-65 seed; consumers (kernel boot, integration tests, custody
162// envelope issuance) sign through the resulting backend so the receipt body
163// remains byte-identical across classical and hybrid paths under
164// `crypto_floor=allow_classical`.
165#[cfg(not(loom))]
166pub use receipt_support::{
167    fixed_runtime_unix_secs_for_current_thread, kernel_signing_backend,
168    scope_fixed_runtime_for_current_thread, sign_receipt_body_hybrid_canonical,
169    sign_receipt_body_with_backend, FixedRuntimeScope, KernelCryptoFloor,
170    KernelSigningBackendError, SignedHybridReceipt,
171};
172#[cfg(not(loom))]
173pub(crate) use request_matching::{
174    begin_child_request_in_sessions, begin_session_request_in_sessions, check_subject_binding,
175    check_time_bounds, complete_session_request_with_terminal_state_in_sessions,
176    nested_child_request_id, resolve_required_matching_grants, session_from_map,
177    validate_elicitation_request_in_sessions, validate_sampling_request_in_sessions,
178};
179#[cfg(not(loom))]
180pub use request_matching::{
181    capability_matches_prompt_request, capability_matches_request,
182    capability_matches_request_with_model_metadata, capability_matches_resource_pattern,
183    capability_matches_resource_request, capability_matches_resource_subscription,
184    capability_request_requires_dpop, capability_request_requires_dpop_with_model_metadata,
185};
186#[cfg(not(loom))]
187pub use threshold_approval::{
188    CollectedThresholdApprovalSet, InMemoryThresholdApprovalCollectorStore,
189    ThresholdApprovalCollector, ThresholdApprovalCollectorProposal,
190    ThresholdApprovalCollectorState, ThresholdApprovalCollectorStore,
191    ThresholdApprovalCollectorStoreError,
192};
193
194#[cfg(not(loom))]
195pub use approval::{
196    compute_parameter_hash, resume_with_decision, ApprovalChannel, ApprovalContext,
197    ApprovalDecision, ApprovalFilter, ApprovalGuard, ApprovalOutcome, ApprovalRequest,
198    ApprovalStore, ApprovalStoreError, ApprovalToken, BatchApproval, BatchApprovalStore,
199    ChannelError, ChannelHandle, HitlVerdict, InMemoryApprovalStore, InMemoryBatchApprovalStore,
200    ResolvedApproval, MAX_APPROVAL_TTL_SECS,
201};
202#[cfg(not(loom))]
203pub use approval_channels::{RecordingChannel, WebhookChannel, WebhookPayload};
204#[cfg(not(loom))]
205pub use authority::{
206    ensure_capability_issuance_supported, validate_issued_capability_response,
207    validate_issued_capability_response_at, AuthoritySnapshot, AuthorityStatus,
208    AuthorityStoreError, AuthorityTrustedKeySnapshot, CapabilityAuthority,
209    LocalCapabilityAuthority,
210};
211#[cfg(not(loom))]
212pub use budget_store::{BudgetStore, BudgetStoreError, BudgetUsageRecord, InMemoryBudgetStore};
213#[cfg(not(loom))]
214pub use capability_lineage::{
215    CapabilityLineageError, CapabilitySnapshot, CapabilitySnapshotProvenance,
216    StoredCapabilitySnapshot,
217};
218#[cfg(not(loom))]
219pub use checkpoint::{
220    build_checkpoint, build_checkpoint_with_previous, build_inclusion_proof,
221    checkpoint_body_sha256, is_supported_checkpoint_schema, verify_checkpoint_continuity,
222    verify_checkpoint_signature, CheckpointError, KernelCheckpoint, KernelCheckpointBody,
223    ReceiptInclusionProof, CHECKPOINT_SCHEMA, CHECKPOINT_SCHEMA_V1, CHECKPOINT_SCHEMA_V2,
224};
225#[cfg(not(loom))]
226pub use chio_core::credit::{
227    ensure_capital_execution_custodian_authority, ensure_capital_execution_owner_authority,
228    validate_capital_execution_envelope, CapitalAllocationDecisionArtifact,
229    CapitalAllocationDecisionFinding, CapitalAllocationDecisionOutcome,
230    CapitalAllocationDecisionReasonCode, CapitalAllocationDecisionSupportBoundary,
231    CapitalAllocationInstructionDraft, CapitalBookEvent, CapitalBookEventKind,
232    CapitalBookEvidenceKind, CapitalBookEvidenceReference, CapitalBookQuery, CapitalBookReport,
233    CapitalBookRole, CapitalBookSource, CapitalBookSourceKind, CapitalBookSummary,
234    CapitalBookSupportBoundary, CapitalExecutionAuthorityStep, CapitalExecutionInstructionAction,
235    CapitalExecutionInstructionArtifact, CapitalExecutionInstructionSupportBoundary,
236    CapitalExecutionIntendedState, CapitalExecutionObservation, CapitalExecutionRail,
237    CapitalExecutionRailKind, CapitalExecutionReconciledState, CapitalExecutionRole,
238    CapitalExecutionWindow, CreditBacktestQuery, CreditBacktestReasonCode, CreditBacktestReport,
239    CreditBacktestSummary, CreditBacktestWindow, CreditBondArtifact, CreditBondDisposition,
240    CreditBondFinding, CreditBondLifecycleState, CreditBondListQuery, CreditBondListReport,
241    CreditBondListSummary, CreditBondPrerequisites, CreditBondReasonCode, CreditBondReport,
242    CreditBondRow, CreditBondSupportBoundary, CreditBondTerms, CreditBondedExecutionControlPolicy,
243    CreditBondedExecutionDecision, CreditBondedExecutionEvaluation, CreditBondedExecutionFinding,
244    CreditBondedExecutionFindingCode, CreditBondedExecutionSimulationDelta,
245    CreditBondedExecutionSimulationQuery, CreditBondedExecutionSimulationReport,
246    CreditBondedExecutionSimulationRequest, CreditBondedExecutionSupportBoundary,
247    CreditCertificationState, CreditFacilityArtifact, CreditFacilityCapitalSource,
248    CreditFacilityDisposition, CreditFacilityFinding, CreditFacilityLifecycleState,
249    CreditFacilityListQuery, CreditFacilityListReport, CreditFacilityListSummary,
250    CreditFacilityPrerequisites, CreditFacilityReasonCode, CreditFacilityReport, CreditFacilityRow,
251    CreditFacilitySupportBoundary, CreditFacilityTerms, CreditLossLifecycleArtifact,
252    CreditLossLifecycleEventKind, CreditLossLifecycleFinding, CreditLossLifecycleListQuery,
253    CreditLossLifecycleListReport, CreditLossLifecycleListSummary, CreditLossLifecycleQuery,
254    CreditLossLifecycleReasonCode, CreditLossLifecycleReport, CreditLossLifecycleRow,
255    CreditLossLifecycleSummary, CreditLossLifecycleSupportBoundary, CreditProviderFacilitySnapshot,
256    CreditProviderRiskPackage, CreditProviderRiskPackageQuery,
257    CreditProviderRiskPackageSupportBoundary, CreditRecentLossEntry, CreditRecentLossHistory,
258    CreditRecentLossSummary, CreditReserveControlAppealState, CreditReserveControlExecutionState,
259    CreditRuntimeAssuranceState, CreditScorecardAnomaly, CreditScorecardAnomalySeverity,
260    CreditScorecardBand, CreditScorecardConfidence, CreditScorecardDimension,
261    CreditScorecardDimensionKind, CreditScorecardEvidenceKind, CreditScorecardEvidenceReference,
262    CreditScorecardProbationStatus, CreditScorecardReasonCode, CreditScorecardReport,
263    CreditScorecardReputationContext, CreditScorecardSummary, CreditScorecardSupportBoundary,
264    ExposureLedgerCurrencyPosition, ExposureLedgerDecisionEntry, ExposureLedgerEvidenceKind,
265    ExposureLedgerEvidenceReference, ExposureLedgerQuery, ExposureLedgerReceiptEntry,
266    ExposureLedgerReport, ExposureLedgerSummary, ExposureLedgerSupportBoundary,
267    SignedCapitalAllocationDecision, SignedCapitalBookReport, SignedCapitalExecutionInstruction,
268    SignedCreditBond, SignedCreditFacility, SignedCreditLossLifecycle,
269    SignedCreditProviderRiskPackage, SignedCreditScorecardReport, SignedExposureLedgerReport,
270    CAPITAL_ALLOCATION_DECISION_ARTIFACT_SCHEMA, CAPITAL_BOOK_REPORT_SCHEMA,
271    CAPITAL_EXECUTION_INSTRUCTION_ARTIFACT_SCHEMA, CREDIT_BACKTEST_REPORT_SCHEMA,
272    CREDIT_BONDED_EXECUTION_SIMULATION_REPORT_SCHEMA, CREDIT_BOND_ARTIFACT_SCHEMA,
273    CREDIT_BOND_LIST_REPORT_SCHEMA, CREDIT_BOND_REPORT_SCHEMA, CREDIT_FACILITY_ARTIFACT_SCHEMA,
274    CREDIT_FACILITY_LIST_REPORT_SCHEMA, CREDIT_FACILITY_REPORT_SCHEMA,
275    CREDIT_LOSS_LIFECYCLE_ARTIFACT_SCHEMA, CREDIT_LOSS_LIFECYCLE_LIST_REPORT_SCHEMA,
276    CREDIT_LOSS_LIFECYCLE_REPORT_SCHEMA, CREDIT_PROVIDER_RISK_PACKAGE_SCHEMA,
277    CREDIT_SCORECARD_SCHEMA, EXPOSURE_LEDGER_SCHEMA, MAX_CREDIT_BACKTEST_WINDOW_LIMIT,
278    MAX_CREDIT_BOND_LIST_LIMIT, MAX_CREDIT_FACILITY_LIST_LIMIT,
279    MAX_CREDIT_LOSS_LIFECYCLE_LIST_LIMIT, MAX_CREDIT_PROVIDER_LOSS_LIMIT,
280    MAX_EXPOSURE_LEDGER_DECISION_LIMIT, MAX_EXPOSURE_LEDGER_RECEIPT_LIMIT,
281};
282#[cfg(not(loom))]
283pub use chio_core::governance::evaluation::evaluate_generic_governance_case;
284#[cfg(not(loom))]
285pub use chio_core::governance::generic::{
286    build_generic_governance_case_artifact, build_generic_governance_charter_artifact,
287    GenericGovernanceAuthorityScope, GenericGovernanceCaseArtifact,
288    GenericGovernanceCaseEvaluation, GenericGovernanceCaseEvaluationRequest,
289    GenericGovernanceCaseIssueRequest, GenericGovernanceCaseKind, GenericGovernanceCaseState,
290    GenericGovernanceCharterArtifact, GenericGovernanceCharterIssueRequest,
291    GenericGovernanceEffectiveState, GenericGovernanceEvidenceKind,
292    GenericGovernanceEvidenceReference, GenericGovernanceFinding, GenericGovernanceFindingCode,
293    SignedGenericGovernanceCase, SignedGenericGovernanceCharter,
294    GENERIC_GOVERNANCE_CASE_ARTIFACT_SCHEMA, GENERIC_GOVERNANCE_CHARTER_ARTIFACT_SCHEMA,
295};
296#[cfg(not(loom))]
297pub use chio_core::listing::{
298    aggregate_generic_listing_reports, build_generic_trust_activation_artifact,
299    ensure_generic_listing_namespace_consistency, evaluate_generic_trust_activation,
300    normalize_namespace, GenericListingActorKind, GenericListingArtifact, GenericListingBoundary,
301    GenericListingCompatibilityReference, GenericListingDivergence, GenericListingFreshnessState,
302    GenericListingFreshnessWindow, GenericListingQuery, GenericListingReplicaFreshness,
303    GenericListingReport, GenericListingSearchError, GenericListingSearchPolicy,
304    GenericListingSearchResponse, GenericListingSearchResult, GenericListingStatus,
305    GenericListingSubject, GenericListingSummary, GenericNamespaceArtifact,
306    GenericNamespaceLifecycleState, GenericNamespaceOwnership, GenericRegistryPublisher,
307    GenericRegistryPublisherRole, GenericTrustActivationArtifact,
308    GenericTrustActivationDisposition, GenericTrustActivationEligibility,
309    GenericTrustActivationEvaluation, GenericTrustActivationEvaluationRequest,
310    GenericTrustActivationFinding, GenericTrustActivationFindingCode,
311    GenericTrustActivationIssueRequest, GenericTrustActivationReviewContext,
312    GenericTrustAdmissionClass, SignedGenericListing, SignedGenericNamespace,
313    SignedGenericTrustActivation, DEFAULT_GENERIC_LISTING_REPORT_MAX_AGE_SECS,
314    GENERIC_LISTING_ARTIFACT_SCHEMA, GENERIC_LISTING_NETWORK_SEARCH_SCHEMA,
315    GENERIC_LISTING_REPORT_SCHEMA, GENERIC_LISTING_SEARCH_ALGORITHM_V1,
316    GENERIC_NAMESPACE_ARTIFACT_SCHEMA, GENERIC_TRUST_ACTIVATION_ARTIFACT_SCHEMA,
317    MAX_GENERIC_LISTING_LIMIT,
318};
319#[cfg(not(loom))]
320pub use chio_core::market::{
321    LiabilityAutoBindDecisionArtifact, LiabilityAutoBindDisposition, LiabilityAutoBindFinding,
322    LiabilityAutoBindReasonCode, LiabilityBoundCoverageArtifact,
323    LiabilityClaimAdjudicationArtifact, LiabilityClaimAdjudicationOutcome,
324    LiabilityClaimDisputeArtifact, LiabilityClaimEvidenceKind, LiabilityClaimEvidenceReference,
325    LiabilityClaimPackageArtifact, LiabilityClaimPayoutInstructionArtifact,
326    LiabilityClaimPayoutReceiptArtifact, LiabilityClaimPayoutReconciliationState,
327    LiabilityClaimResponseArtifact, LiabilityClaimResponseDisposition,
328    LiabilityClaimSettlementInstructionArtifact, LiabilityClaimSettlementKind,
329    LiabilityClaimSettlementReceiptArtifact, LiabilityClaimSettlementReconciliationState,
330    LiabilityClaimSettlementRoleBinding, LiabilityClaimSettlementRoleTopology,
331    LiabilityClaimWorkflowQuery, LiabilityClaimWorkflowReport, LiabilityClaimWorkflowRow,
332    LiabilityClaimWorkflowSummary, LiabilityCoverageClass, LiabilityEvidenceRequirement,
333    LiabilityJurisdictionPolicy, LiabilityMarketWorkflowQuery, LiabilityMarketWorkflowReport,
334    LiabilityMarketWorkflowRow, LiabilityMarketWorkflowSummary, LiabilityPlacementArtifact,
335    LiabilityPricingAuthorityArtifact, LiabilityPricingAuthorityEnvelope,
336    LiabilityPricingAuthorityEnvelopeKind, LiabilityProviderArtifact,
337    LiabilityProviderLifecycleState, LiabilityProviderListQuery, LiabilityProviderListReport,
338    LiabilityProviderListSummary, LiabilityProviderPolicyReference, LiabilityProviderProvenance,
339    LiabilityProviderReport, LiabilityProviderResolutionQuery, LiabilityProviderResolutionReport,
340    LiabilityProviderRow, LiabilityProviderSupportBoundary, LiabilityProviderType,
341    LiabilityQuoteDisposition, LiabilityQuoteRequestArtifact, LiabilityQuoteResponseArtifact,
342    LiabilityQuoteTerms, SignedLiabilityAutoBindDecision, SignedLiabilityBoundCoverage,
343    SignedLiabilityClaimAdjudication, SignedLiabilityClaimDispute, SignedLiabilityClaimPackage,
344    SignedLiabilityClaimPayoutInstruction, SignedLiabilityClaimPayoutReceipt,
345    SignedLiabilityClaimResponse, SignedLiabilityClaimSettlementInstruction,
346    SignedLiabilityClaimSettlementReceipt, SignedLiabilityPlacement,
347    SignedLiabilityPricingAuthority, SignedLiabilityProvider, SignedLiabilityQuoteRequest,
348    SignedLiabilityQuoteResponse, LIABILITY_AUTO_BIND_DECISION_ARTIFACT_SCHEMA,
349    LIABILITY_BOUND_COVERAGE_ARTIFACT_SCHEMA, LIABILITY_CLAIM_ADJUDICATION_ARTIFACT_SCHEMA,
350    LIABILITY_CLAIM_DISPUTE_ARTIFACT_SCHEMA, LIABILITY_CLAIM_PACKAGE_ARTIFACT_SCHEMA,
351    LIABILITY_CLAIM_PAYOUT_INSTRUCTION_ARTIFACT_SCHEMA,
352    LIABILITY_CLAIM_PAYOUT_RECEIPT_ARTIFACT_SCHEMA, LIABILITY_CLAIM_RESPONSE_ARTIFACT_SCHEMA,
353    LIABILITY_CLAIM_SETTLEMENT_INSTRUCTION_ARTIFACT_SCHEMA,
354    LIABILITY_CLAIM_SETTLEMENT_RECEIPT_ARTIFACT_SCHEMA, LIABILITY_CLAIM_WORKFLOW_REPORT_SCHEMA,
355    LIABILITY_MARKET_WORKFLOW_REPORT_SCHEMA, LIABILITY_PLACEMENT_ARTIFACT_SCHEMA,
356    LIABILITY_PRICING_AUTHORITY_ARTIFACT_SCHEMA, LIABILITY_PROVIDER_ARTIFACT_SCHEMA,
357    LIABILITY_PROVIDER_LIST_REPORT_SCHEMA, LIABILITY_PROVIDER_RESOLUTION_REPORT_SCHEMA,
358    LIABILITY_QUOTE_REQUEST_ARTIFACT_SCHEMA, LIABILITY_QUOTE_RESPONSE_ARTIFACT_SCHEMA,
359    MAX_LIABILITY_CLAIM_WORKFLOW_LIMIT, MAX_LIABILITY_MARKET_WORKFLOW_LIMIT,
360    MAX_LIABILITY_PROVIDER_LIST_LIMIT,
361};
362#[cfg(not(loom))]
363pub use chio_core::open_market::evaluation::{
364    evaluate_open_market_penalty, evaluate_open_market_penalty_with_trusted_signers,
365    OpenMarketPenaltyEvaluation, OpenMarketPenaltyEvaluationRequest,
366};
367#[cfg(not(loom))]
368pub use chio_core::open_market::evidence::{
369    OpenMarketEvidenceKind, OpenMarketEvidenceReference, OpenMarketFinding, OpenMarketFindingCode,
370};
371#[cfg(not(loom))]
372pub use chio_core::open_market::fee_schedule::{
373    build_open_market_fee_schedule_artifact, OpenMarketBondClass, OpenMarketBondRequirement,
374    OpenMarketCollateralReferenceKind, OpenMarketEconomicsScope, OpenMarketFeeScheduleArtifact,
375    OpenMarketFeeScheduleIssueRequest, SignedOpenMarketFeeSchedule,
376    OPEN_MARKET_FEE_SCHEDULE_ARTIFACT_SCHEMA,
377};
378#[cfg(not(loom))]
379pub use chio_core::open_market::penalty::{
380    build_open_market_penalty_artifact, build_open_market_penalty_artifact_with_trusted_signers,
381    OpenMarketAbuseClass, OpenMarketPenaltyAction, OpenMarketPenaltyArtifact,
382    OpenMarketPenaltyEffectiveState, OpenMarketPenaltyIssueRequest, OpenMarketPenaltyState,
383    SignedOpenMarketPenalty, OPEN_MARKET_PENALTY_ARTIFACT_SCHEMA,
384};
385#[cfg(not(loom))]
386pub use chio_core::underwriting::{
387    build_underwriting_decision_artifact, evaluate_underwriting_policy_input,
388    SignedUnderwritingDecision, SignedUnderwritingPolicyInput, UnderwritingAppealCreateRequest,
389    UnderwritingAppealRecord, UnderwritingAppealResolution, UnderwritingAppealResolveRequest,
390    UnderwritingAppealStatus, UnderwritingBudgetAction, UnderwritingBudgetRecommendation,
391    UnderwritingCertificationEvidence, UnderwritingCertificationState,
392    UnderwritingComplianceEvidence, UnderwritingDecisionArtifact, UnderwritingDecisionFinding,
393    UnderwritingDecisionLifecycleState, UnderwritingDecisionListReport,
394    UnderwritingDecisionOutcome, UnderwritingDecisionPolicy, UnderwritingDecisionQuery,
395    UnderwritingDecisionReasonCode, UnderwritingDecisionReport, UnderwritingDecisionRow,
396    UnderwritingDecisionSummary, UnderwritingEvidenceKind, UnderwritingEvidenceReference,
397    UnderwritingPolicyInput, UnderwritingPolicyInputQuery, UnderwritingPremiumQuote,
398    UnderwritingPremiumState, UnderwritingReasonCode, UnderwritingReceiptEvidence,
399    UnderwritingRemediation, UnderwritingReputationEvidence, UnderwritingReviewState,
400    UnderwritingRiskClass, UnderwritingRiskTaxonomy, UnderwritingRuntimeAssuranceEvidence,
401    UnderwritingSignal, UnderwritingSimulationDelta, UnderwritingSimulationReport,
402    UnderwritingSimulationRequest, MAX_UNDERWRITING_DECISION_LIMIT, MAX_UNDERWRITING_RECEIPT_LIMIT,
403    UNDERWRITING_APPEAL_SCHEMA, UNDERWRITING_COMPLIANCE_EVIDENCE_SCHEMA,
404    UNDERWRITING_DECISION_ARTIFACT_SCHEMA, UNDERWRITING_DECISION_POLICY_SCHEMA,
405    UNDERWRITING_DECISION_POLICY_VERSION, UNDERWRITING_DECISION_REPORT_SCHEMA,
406    UNDERWRITING_POLICY_INPUT_SCHEMA, UNDERWRITING_RISK_TAXONOMY_VERSION,
407    UNDERWRITING_SIMULATION_REPORT_SCHEMA,
408};
409#[cfg(not(loom))]
410pub use chio_credit::obligation::CreditExposureReservationRequest;
411#[cfg(not(loom))]
412pub use compliance_score::{
413    compliance_factor_breakdown, compliance_score, ComplianceFactor, ComplianceFactorBreakdown,
414    ComplianceScore, ComplianceScoreConfig, ComplianceScoreInputs, COMPLIANCE_SCORE_MAX,
415    DEFAULT_ATTESTATION_STALENESS_SECS, WEIGHT_ATTESTATION_FRESHNESS, WEIGHT_DENY_RATE,
416    WEIGHT_POLICY_COVERAGE, WEIGHT_REVOCATION, WEIGHT_VELOCITY_ANOMALY,
417};
418#[cfg(not(loom))]
419pub use cost_attribution::{
420    CostAttributionChainHop, CostAttributionQuery, CostAttributionReceiptRow,
421    CostAttributionReport, CostAttributionSummary, LeafCostAttributionRow, RootCostAttributionRow,
422    MAX_COST_ATTRIBUTION_LIMIT,
423};
424#[cfg(not(loom))]
425pub use custody::PasskeyCapabilityVerifier;
426#[cfg(not(loom))]
427pub use dpop::{
428    is_supported_dpop_schema, verify_dpop_proof, DpopConfig, DpopNonceStore, DpopProof,
429    DpopProofBody, DPOP_SCHEMA,
430};
431#[cfg(not(loom))]
432pub use evidence_export::{
433    EvidenceChildReceiptRecord, EvidenceChildReceiptScope, EvidenceExportBundle,
434    EvidenceExportError, EvidenceExportQuery, EvidenceRetentionMetadata, EvidenceToolReceiptRecord,
435    EvidenceUncheckpointedReceipt,
436};
437#[cfg(not(loom))]
438pub use execution_nonce::{
439    is_supported_execution_nonce_schema, mint_execution_nonce, verify_execution_nonce,
440    ExecutionNonce, ExecutionNonceConfig, ExecutionNonceError, ExecutionNonceStore,
441    InMemoryExecutionNonceStore, NonceBinding, SignedExecutionNonce,
442    DEFAULT_EXECUTION_NONCE_STORE_CAPACITY, DEFAULT_EXECUTION_NONCE_TTL_SECS,
443    EXECUTION_NONCE_SCHEMA,
444};
445#[cfg(not(loom))]
446pub use memory_provenance::{
447    classify_memory_action, next_entry_id as next_memory_provenance_entry_id,
448    recompute_entry_hash as recompute_memory_provenance_entry_hash, InMemoryMemoryProvenanceStore,
449    MemoryActionKind, MemoryProvenanceAppend, MemoryProvenanceEntry, MemoryProvenanceError,
450    MemoryProvenanceStore, ProvenanceVerification, UnverifiedReason,
451    MEMORY_PROVENANCE_ENTRY_SCHEMA, MEMORY_PROVENANCE_GENESIS_PREV_HASH,
452};
453#[cfg(not(loom))]
454pub use observability::metrics::{
455    guard_metrics_endpoint, record_receipt_health_gauges, render_guard_metrics_prometheus,
456    GuardMetricFamily, MetricsEndpointResponse, PrometheusMetricKind, GUARD_METRICS_PATH,
457    GUARD_METRIC_FAMILIES, METRIC_CHIO_OTEL_INGRESS_DROP_TOTAL, METRIC_CHIO_OTEL_SINK_DROP_TOTAL,
458    PROMETHEUS_TEXT_CONTENT_TYPE,
459};
460#[cfg(not(loom))]
461pub use operator_report::{behavioral_anomaly_score, BehavioralAnomalyScore, EmaBaselineState};
462#[cfg(not(loom))]
463pub use operator_report::{
464    AuthorizationContextReport, AuthorizationContextRow, AuthorizationContextSenderConstraint,
465    AuthorizationContextSummary, BehavioralFeedDecisionSummary,
466    BehavioralFeedGovernedActionSummary, BehavioralFeedMeteredBillingRow,
467    BehavioralFeedMeteredBillingSummary, BehavioralFeedPrivacyBoundary, BehavioralFeedQuery,
468    BehavioralFeedReceiptRow, BehavioralFeedReceiptSelection, BehavioralFeedReport,
469    BehavioralFeedReputationSummary, BehavioralFeedSettlementSummary, BudgetDimensionProfile,
470    BudgetDimensionUsage, BudgetUtilizationReport, BudgetUtilizationRow, BudgetUtilizationSummary,
471    ChioOAuthArtifactBoundary, ChioOAuthAuthorizationDiscoveryMetadata,
472    ChioOAuthAuthorizationExampleMapping, ChioOAuthAuthorizationMetadataReport,
473    ChioOAuthAuthorizationProfile, ChioOAuthAuthorizationReviewPack,
474    ChioOAuthAuthorizationReviewPackRecord, ChioOAuthAuthorizationReviewPackSummary,
475    ChioOAuthAuthorizationSupportBoundary, ChioOAuthRequestTimeContract, ChioOAuthResourceBinding,
476    ChioOAuthSenderConstraintProfile, ComplianceReport, EconomicCompletionFlowReport,
477    EconomicCompletionFlowSummary, EconomicReceiptMeteringProjection,
478    EconomicReceiptProjectionReport, EconomicReceiptProjectionRow,
479    EconomicReceiptProjectionSummary, EconomicReceiptSettlementProjection,
480    GovernedAuthorizationCommerceDetail, GovernedAuthorizationDetail,
481    GovernedAuthorizationMeteredBillingDetail, GovernedAuthorizationTransactionContext,
482    MeteredBillingEvidenceRecord, MeteredBillingReconciliationReport,
483    MeteredBillingReconciliationRow, MeteredBillingReconciliationState,
484    MeteredBillingReconciliationSummary, OperatorReport, OperatorReportQuery,
485    SettlementReconciliationReport, SettlementReconciliationRow, SettlementReconciliationState,
486    SettlementReconciliationSummary, SharedEvidenceQuery, SharedEvidenceReferenceReport,
487    SharedEvidenceReferenceRow, SharedEvidenceReferenceSummary, SignedBehavioralFeed,
488    BEHAVIORAL_FEED_SCHEMA, CHIO_OAUTH_AUTHORIZATION_COMMERCE_DETAIL_TYPE,
489    CHIO_OAUTH_AUTHORIZATION_CONTEXT_REPORT_SCHEMA, CHIO_OAUTH_AUTHORIZATION_METADATA_SCHEMA,
490    CHIO_OAUTH_AUTHORIZATION_METERED_BILLING_DETAIL_TYPE, CHIO_OAUTH_AUTHORIZATION_PROFILE_ID,
491    CHIO_OAUTH_AUTHORIZATION_PROFILE_SCHEMA, CHIO_OAUTH_AUTHORIZATION_REVIEW_PACK_SCHEMA,
492    CHIO_OAUTH_AUTHORIZATION_TOOL_DETAIL_TYPE, CHIO_OAUTH_REQUEST_TIME_AUTHORIZATION_DETAILS_CLAIM,
493    CHIO_OAUTH_REQUEST_TIME_AUTHORIZATION_DETAILS_PARAMETER,
494    CHIO_OAUTH_REQUEST_TIME_TRANSACTION_CONTEXT_CLAIM,
495    CHIO_OAUTH_REQUEST_TIME_TRANSACTION_CONTEXT_PARAMETER,
496    CHIO_OAUTH_SENDER_BINDING_CAPABILITY_SUBJECT, CHIO_OAUTH_SENDER_CONSTRAINT_SCHEMA,
497    CHIO_OAUTH_SENDER_PROOF_CHIO_DPOP, ECONOMIC_COMPLETION_FLOW_SCHEMA,
498    MAX_AUTHORIZATION_CONTEXT_LIMIT, MAX_BEHAVIORAL_FEED_RECEIPT_LIMIT, MAX_METERED_BILLING_LIMIT,
499    MAX_OPERATOR_BUDGET_LIMIT, MAX_SETTLEMENT_BACKLOG_LIMIT, MAX_SHARED_EVIDENCE_LIMIT,
500};
501#[cfg(not(loom))]
502pub use payment::{
503    AcpPaymentAdapter, CommercePaymentContext, GovernedPaymentContext, PaymentAdapter,
504    PaymentAuthorization, PaymentAuthorizationState, PaymentAuthorizeRequest, PaymentError,
505    PaymentJournalError, PaymentJournalRecord, PaymentJournalState, PaymentJournalTransition,
506    PaymentRailMode, PaymentReleaseAuthorityBinding, PaymentReleaseAuthorityKind, PaymentResult,
507    PaymentSettleAction, RailSettlementState, RailSettlementStatus, ReceiptSettlement,
508    X402PaymentAdapter,
509};
510#[cfg(not(loom))]
511pub use post_invocation::{
512    PipelineOutcome, PostInvocationContext, PostInvocationHook, PostInvocationHookIdentity,
513    PostInvocationPipeline, PostInvocationVerdict,
514};
515#[cfg(not(loom))]
516pub use provider_verdict::{
517    build_tool_call_request, canonical_invocation_bytes, verdict_result_from_response,
518    ProviderVerdictError, FABRIC_SHIM_PROVIDER_LANES,
519};
520#[cfg(not(loom))]
521pub use receipt_analytics::{
522    AgentAnalyticsRow, AnalyticsTimeBucket, ReceiptAnalyticsMetrics, ReceiptAnalyticsQuery,
523    ReceiptAnalyticsResponse, TimeAnalyticsRow, ToolAnalyticsRow, MAX_ANALYTICS_GROUP_LIMIT,
524};
525#[cfg(not(loom))]
526pub use receipt_query::{
527    EffectiveReceiptReadScope, ReceiptQuery, ReceiptQueryResult, ReceiptReadBoundary,
528    ReceiptReadContext, ReceiptReadContextSource, MAX_QUERY_LIMIT,
529};
530#[cfg(not(loom))]
531pub use receipt_store::{
532    AdmissionBudgetAuthorization, AdmissionBudgetAuthorizationError, AdmissionBudgetCapture,
533    AdmissionPaymentJournalAdvance, AdmissionPaymentJournalError, AdmissionPaymentSettlement,
534    AdmissionPaymentSettlementBegin, AtomicReceiptProjection, AuthorizationReceiptConsumption,
535    FederatedEvidenceShareImport, FederatedEvidenceShareSummary, PendingSettlementObservation,
536    QualifiedAdmissionProjectionStore, ReceiptCheckpointCreateReport, ReceiptCheckpointRange,
537    ReceiptCheckpointStatusReport, ReceiptFlushReport, ReceiptStore, ReceiptStoreError,
538    ReceiptStoreHealthReport, ReceiptWalCheckpointReport, ReceiptWriterCounters,
539    ReceiptWriterLiveness, RetentionConfig, StoredChildReceipt, StoredToolReceipt,
540    ThresholdApprovalReplayReservationV1, ADMISSION_TERMINAL_PROJECTION_DESCRIPTOR_KIND,
541};
542#[cfg(not(loom))]
543pub use revocation_runtime::{InMemoryRevocationStore, RevocationObservation, RevocationStore};
544#[cfg(not(loom))]
545pub use revocation_store::{RevocationRecord, RevocationStoreError};
546#[cfg(not(loom))]
547pub use runtime::{
548    NestedFlowBridge, NestedFlowClient, ToolCallChunk, ToolCallOutput, ToolCallRequest,
549    ToolCallResponse, ToolCallStream, ToolInvocationCost, ToolServerConnection, ToolServerEvent,
550    ToolServerOutput, ToolServerStreamResult, Verdict,
551};
552#[cfg(not(loom))]
553pub use session::{
554    InflightRegistry, InflightRequest, LateSessionEvent, PeerCapabilities, Session, SessionError,
555    SessionOperationResponse, SessionPersistError, SessionState, SubscriptionRegistry,
556    TerminalRegistry,
557};
558#[cfg(not(loom))]
559pub use supplemental_quota::{
560    supplemental_authorization_artifact_digest, supplemental_request_binding_hash,
561    CanonicalRevocationSet, SupplementalQuotaError, SupplementalQuotaVerificationContext,
562    SupplementalQuotaVerifier, SupplementalQuotaVerifierBinding, SupplementalQuotaVerifierError,
563    VerifiedSupplementalQuotaClaim, BROKER_CAPABILITY_EXECUTION_PROFILE,
564    MAX_ADMISSION_REVOCATION_IDS, MAX_SUPPLEMENTAL_AUTHORIZATION_BYTES,
565    MAX_SUPPLEMENTAL_CLAIM_FIELD_BYTES, MAX_SUPPLEMENTAL_CONTEXT_FIELD_BYTES,
566    MAX_SUPPLEMENTAL_NEGOTIATED_FEATURES, MAX_SUPPLEMENTAL_REVOCATION_IDS,
567    MAX_SUPPLEMENTAL_REVOCATION_ID_BYTES,
568};
569#[cfg(not(loom))]
570pub use weights_binding::{evaluate_weights_binding, WeightsBindingError, WeightsBindingRequest};
571
572#[cfg(not(loom))]
573/// A string-typed agent identifier.
574#[path = "kernel/mod.rs"]
575mod kernel;
576
577#[cfg(not(loom))]
578pub(crate) use kernel::{current_unix_timestamp, MatchingGrant, ReceiptContent};
579
580#[cfg(not(loom))]
581pub use kernel::{
582    AgentId, CapabilityId, ChildReceiptLog, ChioKernel, Guard, GuardContext, GuardDecision,
583    HotPathDeadlineConfig, HotPathStage, HybridSigningConfig, KernelBuildError, KernelConfig,
584    KernelError, MemoryBudgetConfig, OverloadResource, PromptProvider, ReceiptLog,
585    ResourceProvider, RuntimeAdmissionContext, RuntimeAdmissionDecision, RuntimeAdmissionHook,
586    ServerId, SettlementRuntimeConfigError, StructuredErrorReport, DEFAULT_CHECKPOINT_BATCH_SIZE,
587    DEFAULT_MAX_SIZE_BYTES, DEFAULT_MAX_STREAM_DURATION_SECS, DEFAULT_MAX_STREAM_TOTAL_BYTES,
588    DEFAULT_RECEIPT_APPEND_BUDGET_MS, DEFAULT_RECEIPT_WRITER_POLL_MS,
589    DEFAULT_RECEIPT_WRITER_STALL_MS, DEFAULT_RETENTION_DAYS, EMERGENCY_STOP_DENY_REASON,
590    MIN_RECEIPT_APPEND_BUDGET_MS,
591};
592
593#[cfg(not(loom))]
594pub use kernel::evaluator::ToolEvaluator;
595
596#[cfg(not(loom))]
597/// Settlement observer surface. Re-exported so integration tests and
598/// embedders can drive a SettlementHook against finalized receipts
599/// without reaching into crate-private module paths.
600pub mod settlement_observer {
601    pub use crate::kernel::settlement_observer::{
602        build_observation, run_observer, SettlementObservationBuild, SettlementObserverStatus,
603        SETTLEMENT_OBSERVER_STATUS_SCHEMA,
604    };
605}
606
607#[cfg(not(loom))]
608/// Default bounded capacity for the kernel's mpsc-backed signing-task channel.
609/// Re-exported so integration tests can assert against the configured value
610/// without reaching into crate-private module paths.
611pub const SIGNING_CHANNEL_DEFAULT_CAPACITY: usize =
612    kernel::signing_task::DEFAULT_SIGNING_CHANNEL_CAPACITY;
613
614#[cfg(not(loom))]
615/// Prometheus counter name emitted when the bounded receipt-signing channel
616/// blocks under backpressure.
617pub use kernel::signing_task::METRIC_CHIO_SIGNING_QUEUE_BLOCK_TOTAL;