Skip to main content

a3s_code_core/
lib.rs

1//! A3S Code Core Library
2//!
3//! Harness-driven runtime for coding agents.
4//!
5//! `Agent` and `AgentSession` are the primary 2.0 API. Lower-level session
6//! runtime state is internal; persistence data flows through `store::SessionData`.
7//!
8//! ## Quick Start
9//!
10//! ```rust,no_run
11//! use a3s_code_core::{Agent, AgentEvent};
12//!
13//! # async fn run() -> anyhow::Result<()> {
14//! // From an ACL-compatible config file path (.acl)
15//! let agent = Agent::new("agent.acl").await?;
16//!
17//! // Create a workspace-bound session
18//! let session = agent.session_async("/my-project", None).await?;
19//!
20//! // Non-streaming
21//! let result = session.send("What files handle auth?", None).await?;
22//! println!("{}", result.text);
23//!
24//! // Streaming (AgentEvent is #[non_exhaustive])
25//! let (mut rx, _handle) = session.stream("Refactor auth", None).await?;
26//! while let Some(event) = rx.recv().await {
27//!     match event {
28//!         AgentEvent::TextDelta { text } => print!("{text}"),
29//!         AgentEvent::End { .. } => break,
30//!         _ => {} // required: #[non_exhaustive]
31//!     }
32//! }
33//! # Ok(())
34//! # }
35//! ```
36//!
37//! ## Disposable Workers
38//!
39//! ```rust,no_run
40//! use a3s_code_core::{Agent, SessionOptions, WorkerAgentSpec};
41//!
42//! # async fn run() -> anyhow::Result<()> {
43//! let agent = Agent::new("agent.acl").await?;
44//! let frontend = WorkerAgentSpec::implementer(
45//!     "frontend-cow",
46//!     "Small verified frontend fixes",
47//! )
48//! .with_model_ref("openai/gpt-4o")
49//! .with_max_steps(24);
50//!
51//! let session = agent.session_async(
52//!     "/my-project",
53//!     Some(SessionOptions::new().with_worker_agent(frontend)),
54//! ).await?;
55//! # Ok(())
56//! # }
57//! ```
58//!
59//! ## Architecture
60//!
61//! ```text
62//! Agent (config-driven facade)
63//!   +-- AgentSession (workspace-bound execution API)
64//!       +-- internal turn runner
65//!       +-- ContextAssembler / ContextProvider
66//!       +-- ToolSelector
67//!       +-- ToolExecutor
68//!       +-- ProgramExecutor (PTC)
69//!       +-- SkillRegistry
70//!       +-- Permission / confirmation
71//!       +-- Trace / artifacts / verification evidence
72//!
73//! Advanced infrastructure:
74//!   +-- optional lane queues for explicit external/hybrid dispatch
75//! ```
76
77pub(crate) mod agent;
78pub(crate) mod agent_api;
79pub mod agent_protocol;
80pub mod agent_protocol_harness;
81pub mod agent_protocol_host;
82pub mod ask_user;
83pub(crate) mod bounded_io;
84pub mod budget;
85pub mod capability;
86pub(crate) mod child_run;
87pub mod code_intelligence;
88pub mod cognitive_context;
89pub mod commands;
90pub(crate) mod compaction;
91pub mod completion_attestor;
92pub mod config;
93pub mod content_digest;
94pub mod context;
95pub mod core_event_log;
96pub mod core_identity;
97pub mod durable_memory;
98#[cfg(feature = "dynamic-workflow")]
99pub mod dynamic_workflow;
100pub mod effect_isolation;
101pub mod embedding;
102pub mod error;
103#[cfg(feature = "evaluation")]
104pub mod evaluation;
105pub mod event_protocol;
106pub mod execution_identity;
107pub mod external_observation;
108pub mod fact_control;
109#[cfg(feature = "dynamic-workflow")]
110pub mod flow_graph;
111pub(crate) mod git;
112pub mod harness_evidence;
113pub mod harness_loop;
114pub mod hitl;
115pub mod hooks;
116pub mod host_env;
117pub(crate) mod language;
118pub mod llm;
119pub mod loop_checkpoint;
120pub mod mcp;
121pub mod memory;
122pub mod meta_harness;
123#[cfg(feature = "headless-search")]
124pub mod moli_runtime;
125pub mod orchestration;
126pub(crate) mod ordered_parallel;
127pub mod outcome_memory;
128pub mod path_instructions;
129pub mod permissions;
130pub mod planning;
131pub(crate) mod porcelain;
132pub mod program;
133pub(crate) mod prompts;
134pub mod queue;
135pub mod read_only_verifier;
136pub mod release;
137#[cfg(feature = "research")]
138pub mod research;
139pub mod retention;
140pub(crate) mod retry;
141pub mod rl_trajectory;
142pub mod run;
143pub mod run_control;
144pub(crate) mod safety_gate;
145pub mod sandbox;
146pub mod sdk_capabilities;
147#[cfg(feature = "headless-search")]
148pub mod search_runtime;
149pub mod security;
150pub mod session_checkpoint;
151pub(crate) mod session_lane_queue;
152pub mod session_review;
153pub mod shell_session;
154pub mod skills;
155pub(crate) mod sse;
156#[cfg(feature = "state-graph")]
157pub mod state_graph;
158pub mod store;
159pub mod subagent;
160pub mod subagent_task_tracker;
161pub mod task_scheduler;
162pub mod telemetry;
163#[cfg(feature = "telemetry")]
164pub mod telemetry_otel;
165#[cfg(test)]
166pub(crate) mod test_mutex_poison;
167#[cfg(test)]
168pub(crate) mod test_support;
169pub(crate) mod text;
170pub(crate) mod tool_confirmation;
171pub mod tool_name;
172pub mod tools;
173pub mod trace;
174pub mod transcript;
175#[cfg(feature = "apofasi")]
176pub mod typed_decision;
177mod typed_decision_absence;
178pub mod use_runtime_tasks;
179pub mod verification;
180pub mod workspace;
181
182// Re-export key types at crate root for ergonomic usage
183pub use agent::{AgentEvent, AgentExecutionFailure, AgentResult, ModelMiddlewareHealthSnapshot};
184#[cfg(feature = "dynamic-workflow")]
185pub use agent_api::ProjectedFlowHandle;
186pub use agent_api::{
187    Agent, AgentRunSpawn, AgentSession, ProjectedUiHandle, ReadFileOptions, SessionBuilder,
188    SessionOptions, ToolCallResult,
189};
190pub use agent_protocol::{
191    AgentProtocolChangeSetRequestV1, AgentProtocolChangeSetV1, AgentProtocolCommandActionV1,
192    AgentProtocolCommandReceiptV1, AgentProtocolCommandV1, AgentProtocolError,
193    AgentProtocolEventPageRequestV1, AgentProtocolEventPageV1, AgentProtocolEventRecordV1,
194    AgentProtocolRunCancelV1, AgentProtocolRunIdentityV1, AgentProtocolRunRecoverExactV1,
195    AgentProtocolRunRecoverV1, AgentProtocolRunStartV1, AgentProtocolRunStateV1,
196    AGENT_PROTOCOL_CHANGE_SET_ENCODING_V1, AGENT_PROTOCOL_CHANGE_SET_FORMAT_V1,
197    AGENT_PROTOCOL_CHANGE_SET_HTTP_PATH_V1, AGENT_PROTOCOL_COMMAND_HTTP_PATH_V1,
198    AGENT_PROTOCOL_EVENT_PAGE_HTTP_PATH_V1, AGENT_PROTOCOL_MAX_CHANGE_SET_BYTES,
199    AGENT_PROTOCOL_MAX_CHANGE_SET_RESPONSE_BYTES, AGENT_PROTOCOL_MAX_EVENTS_PER_PAGE,
200    AGENT_PROTOCOL_MAX_EVENT_METADATA_BYTES, AGENT_PROTOCOL_MAX_EVENT_PAGE_BYTES,
201    AGENT_PROTOCOL_MAX_EVENT_PAYLOAD_BYTES, AGENT_PROTOCOL_MAX_EVENT_RECORD_BYTES,
202    AGENT_PROTOCOL_MAX_EVENT_TYPE_BYTES, AGENT_PROTOCOL_MAX_ID_BYTES,
203    AGENT_PROTOCOL_MAX_PROMPT_BYTES, AGENT_PROTOCOL_MAX_REASON_BYTES, AGENT_PROTOCOL_V1,
204};
205pub use agent_protocol_harness::{
206    force_invalid_recovery_binding_for_test, AgentProtocolCheckpointRecoveryError,
207    AgentProtocolHarness, AgentProtocolHarnessError, AGENT_PROTOCOL_HARNESS_MAX_SESSIONS,
208};
209pub use agent_protocol_host::{
210    AgentProtocolExactRecoveryError, AgentProtocolHost, AgentProtocolHostError,
211};
212pub use code_intelligence::{
213    CodeDiagnostic, CodeDiagnosticSeverity, CodeIntelligenceCapabilities, CodeIntelligenceError,
214    CodeIntelligenceLanguageStatus, CodeIntelligenceResult, CodeIntelligenceState,
215    CodeIntelligenceStatus, CodeLocation, CodePosition, CodeQueryResult, CodeRange, CodeSymbolKind,
216    DocumentRevision, DocumentSnapshot, DocumentSymbol, LanguageId, LocalCodeIntelligence,
217    NavigationKind, SymbolInformation, WorkspaceCodeIntelligence,
218};
219pub use cognitive_context::{
220    CognitiveContextDocumentV1, CognitiveContextError, CognitiveContextLimits,
221    CognitiveContextProvider, CognitiveContextRequestV1, CognitiveContextResponseV1,
222    CognitiveContextResult, CognitiveContextSession, CognitiveKnowledgeBindingV1,
223    CognitiveKnowledgeCitationV1, CognitivePackageBindingV1,
224    COGNITIVE_CONTEXT_REQUEST_DIGEST_DOMAIN, COGNITIVE_CONTEXT_REQUEST_SCHEMA,
225    COGNITIVE_CONTEXT_RESPONSE_SCHEMA, COGNITIVE_KNOWLEDGE_BINDING_SCHEMA,
226    COGNITIVE_PACKAGE_BINDING_SCHEMA, OKF_KNOWLEDGE_CITATION_SCHEMA,
227    OKF_KNOWLEDGE_READ_REQUEST_SCHEMA, OKF_KNOWLEDGE_SEARCH_REQUEST_SCHEMA,
228};
229pub use completion_attestor::{merge_attested_report, CompletionAttestor, MutatedPathRecord};
230pub use config::{
231    AutoDelegationConfig, CodeConfig, ModelConfig, ModelCost, ModelLimit, ModelModalities,
232    OsConfig, ProviderConfig,
233};
234pub use content_digest::{digest_bytes, digest_json, validate_digest};
235pub use core_event_log::{
236    CoreEventLog, CoreEventLogError, CoreLogAppendOutcomeV1, CoreLogEntryV1, CoreLogPageV1,
237    CoreLogVerificationV1, CORE_LOG_ENTRY_DIGEST_DOMAIN_V1, CORE_LOG_ENTRY_SCHEMA_V1,
238    CORE_LOG_GENESIS_PREVIOUS_DIGEST,
239};
240pub use core_identity::{
241    ArtifactRef, CapabilityStamp, CoreEventIdentity, CoreIdentity, CoreIdentityError,
242    EvidenceCursor, LogicalClock, ManualLogicalClock, OperationId, SourceRevision,
243    SystemLogicalClock, CORE_EVENT_IDENTITY_DIGEST_DOMAIN_V1, CORE_EVENT_IDENTITY_SCHEMA_V1,
244    CORE_EVENT_PAYLOAD_DIGEST_DOMAIN_V1, CORE_IDENTITY_MAX_ARTIFACT_BYTES,
245    CORE_IDENTITY_MAX_EVENT_TYPE_BYTES, CORE_IDENTITY_MAX_ID_BYTES,
246    CORE_IDENTITY_MAX_MEDIA_TYPE_BYTES, CORE_IDENTITY_MAX_PAYLOAD_BYTES, CORE_IDENTITY_SCHEMA_V1,
247};
248pub use durable_memory::{
249    DurableMemoryActivation, DurableMemoryBindingV1, DurableMemoryMode, DurableMemoryRecallChannel,
250    DurableMemoryRecallHit, DurableMemoryRecallPolicy, DurableMemoryRecallPreview,
251    DurableMemorySemanticBindingV1, DurableMemorySemanticError, DurableMemorySemanticRecall,
252    DurableMemorySemanticRecallPolicy, DurableMemorySemanticRefreshCheckpoint,
253    DurableMemorySemanticRefreshReceipt, DurableMemorySession, DurableMemoryUse,
254    DURABLE_MEMORY_BINDING_SCHEMA_VERSION, DURABLE_MEMORY_CONTEXT_ID_PROFILE_V1,
255    DURABLE_MEMORY_CONTEXT_ID_PROFILE_V2, DURABLE_MEMORY_HYBRID_BINDING_SCHEMA_VERSION,
256    DURABLE_MEMORY_RETRIEVAL_PROFILE_V1, DURABLE_MEMORY_SEMANTIC_BINDING_SCHEMA_V1,
257    DURABLE_MEMORY_SEMANTIC_FUSION_PROFILE_V1,
258    DURABLE_MEMORY_SEMANTIC_REFRESH_CHECKPOINT_SCHEMA_V1,
259    DURABLE_MEMORY_SEMANTIC_REFRESH_PROFILE_V1,
260};
261#[cfg(feature = "dynamic-workflow")]
262pub use dynamic_workflow::{
263    dynamic_workflow_claim_identity, dynamic_workflow_continuation_identity,
264    dynamic_workflow_execution_plan, dynamic_workflow_step_identity, dynamic_workflow_store_path,
265    register_dynamic_workflow, register_dynamic_workflow_with_event_store,
266    register_dynamic_workflow_with_scheduler, CrossProcessFlowEventStore,
267    DynamicWorkflowAdmissionStats, DynamicWorkflowControl, DynamicWorkflowControlDiagnostics,
268    DynamicWorkflowControlSnapshot, DynamicWorkflowHealthSnapshot, DynamicWorkflowRuntime,
269    DynamicWorkflowScriptLimits, DynamicWorkflowTool, DYNAMIC_WORKFLOW_RUNTIME_BUILD_ID,
270    DYNAMIC_WORKFLOW_STORE_RELATIVE_PATH,
271};
272pub use embedding::{
273    EmbeddingBatchRequest, EmbeddingBatchResponse, EmbeddingError, EmbeddingExecution,
274    EmbeddingExecutor, EmbeddingExecutorConfig, EmbeddingFailureKind, EmbeddingInput,
275    EmbeddingNormalization, EmbeddingProvider, EmbeddingProviderDescriptor, EmbeddingProviderError,
276    EmbeddingResult, EmbeddingVector,
277};
278pub use error::SessionBuildResource;
279pub use error::{CodeError, Result};
280#[cfg(feature = "evaluation")]
281pub use evaluation::{
282    AuxiliaryCapabilityProfileV1, AuxiliaryExecutor, AuxiliaryModeV1, AuxiliaryRunContextV1,
283    AuxiliaryRunError, AuxiliaryRunHandle, AuxiliaryRunOutputV1, AuxiliaryRunService,
284    AuxiliaryRunSnapshotV1, AuxiliaryRunSpecV1, AuxiliaryRunStateV1, EvaluationBoundaryV1,
285    EvaluationDispatch, EvaluationDispatchClaimOutcome, EvaluationDispatchLedger,
286    EvaluationDispatchLedgerError, EvaluationDispatchOutcome, EvaluationPlanV1, EvaluationPolicy,
287    EvaluationProtocolError, EvaluationRecordV1, EvaluationResultSink, EvaluationResultV1,
288    EvaluationStoreError, EvaluationSupervisor, EvaluationWireEnvelopeV1,
289    EvaluationWireKindDescriptorV1, EvaluationWireKindV1, EvaluationWireTypeV1,
290    EvaluationWriteOutcomeV1, EventCursorV1, EvidenceArtifactV1, EvidenceContentModeV1,
291    EvidenceError, EvidenceEventV1, EvidenceLimitsV1, EvidenceReadRequestV1, EvidenceReader,
292    EvidenceRunStateV1, EvidenceSnapshotV1, ExecutionFactInputV1, ExecutionFactJournal,
293    ExecutionFactKindV1, ExecutionFactPageV1, ExecutionFactRecorder, ExecutionFactSnapshotV1,
294    ExecutionFactV1, ExecutionFrameV1, ExecutionTargetV1, FactAppendOutcomeV1,
295    FileEvaluationDispatchLedger, FileEvaluationResultStore, IdentityError,
296    InMemoryAuxiliaryRunService, InMemoryEvaluationDispatchLedger, InMemoryEvaluationResultStore,
297    InMemoryExecutionFactJournal, JournalError, RunEvidenceReader, StructuredAuxiliaryExecutor,
298    SupervisorError, AUXILIARY_MAX_OUTPUT_BYTES, AUXILIARY_MAX_STEPS, AUXILIARY_OUTPUT_SCHEMA_V1,
299    AUXILIARY_RUN_SCHEMA_V1, AUXILIARY_SNAPSHOT_SCHEMA_V1, EVALUATION_DISPATCH_LEASE_GRACE_MS,
300    EVALUATION_DISPATCH_LEDGER_DEFAULT_MAX_RECORDS, EVALUATION_DISPATCH_LEDGER_MAX_BYTES,
301    EVALUATION_DISPATCH_LEDGER_SCHEMA_V1, EVALUATION_DISPATCH_MIN_LEASE_MS,
302    EVALUATION_MAX_COOLDOWN_MS, EVALUATION_MAX_ID_BYTES, EVALUATION_MAX_PENDING,
303    EVALUATION_PLAN_SCHEMA_V1, EVALUATION_PROTOCOL_MAX_MESSAGE_BYTES,
304    EVALUATION_PROTOCOL_SCHEMA_V1, EVALUATION_PROTOCOL_VERSION_V1, EVALUATION_RECORD_SCHEMA_V1,
305    EVALUATION_RESULT_SCHEMA_V1, EVALUATION_RESULT_STORE_DEFAULT_MAX_RECORDS,
306    EVALUATION_RESULT_STORE_MAX_BYTES, EVALUATION_RESULT_STORE_SCHEMA_V1,
307    EVALUATION_WIRE_KIND_DESCRIPTORS_V1, EVIDENCE_MAX_ARTIFACTS, EVIDENCE_MAX_ARTIFACT_BYTES,
308    EVIDENCE_MAX_EVENTS, EVIDENCE_MAX_EVENT_BYTES, EVIDENCE_MAX_PROMPT_BYTES,
309    EVIDENCE_MAX_RESULT_BYTES, EVIDENCE_SNAPSHOT_SCHEMA_V1, EXECUTION_FACT_SCHEMA_V1,
310    EXECUTION_FRAME_SCHEMA_V1, EXECUTION_TARGET_SCHEMA_V1,
311};
312pub use event_protocol::{
313    run_event_envelope_v1, AgentEventProjectionV1, AgentEventTypeV1, EventEnvelopeV1,
314    EventProtocolError, AGENT_EVENT_TYPES_V1, EVENT_ENVELOPE_V1_VERSION,
315};
316#[cfg(feature = "dynamic-workflow")]
317pub use flow_graph::{
318    run_object_id as flow_run_object_id, step_object_id as flow_step_object_id,
319    FileFlowDecisionLedger, FlowDecision, FlowDecisionClaimOutcome, FlowDecisionClaimState,
320    FlowDecisionDispatchError, FlowDecisionDispatcher, FlowDecisionHealthSnapshot,
321    FlowDecisionHealthStatus, FlowDecisionLedger, FlowDecisionRequest, FlowDecisionSink,
322    FlowDecisionStep, FlowGraphHealthSnapshot, FlowGraphHealthStatus, FlowGraphObserver,
323    MemoryFlowDecisionLedger, FLOW_GRAPH_SOURCE,
324};
325pub use harness_evidence::{
326    HarnessEvidenceError, ModelInputKindV1, ModelInputSnapshotV1, ModelPresentationApplicationV1,
327    ModelPresentationSnapshotV1, ModelUsageSnapshotV1, RunCapabilitySnapshotV1,
328    RunPolicyCeilingSnapshotV1, ToolRequestOriginV1, ToolRequestSnapshotV1,
329    ToolResultContextUsageV1, WorkspaceCapabilitySnapshotV1,
330    WorkspaceRetrievalCapabilitySnapshotV1, MODEL_INPUT_SNAPSHOT_V1_SCHEMA,
331    MODEL_PRESENTATION_SNAPSHOT_V1_SCHEMA, MODEL_USAGE_SNAPSHOT_V1_SCHEMA,
332    RUN_CAPABILITY_SNAPSHOT_V1_SCHEMA, TOOL_REQUEST_SNAPSHOT_V1_SCHEMA,
333};
334pub use llm::{
335    clear_http_metrics_callback, set_http_metrics_callback, strip_leaked_tool_protocol,
336    AnthropicClient, Attachment, ContentBlock, HttpMetricsCallback, HttpMetricsRecord, ImageSource,
337    LlmClient, LlmResponse, Message, ModelGenerationAdmission, ModelGenerationAdmissionError,
338    ModelGenerationConcurrency, ModelGenerationPermit, ModelGenerationPool,
339    ModelGenerationPoolError, ModelGenerationPoolHealthSnapshot, OpenAiClient, TokenUsage,
340};
341pub use meta_harness::{
342    admit_component_tree, admit_default_graph, admit_from_compose,
343    admit_from_compose_with_registry, admit_spec_graph, host_component_id, parse_harness_component,
344    parse_harness_components, parse_harness_part, parse_harness_parts, BuiltinHostHarnessRegistry,
345    HarnessComponentRef, HarnessComposeOptions, HarnessPartId, HostHarnessAssembler,
346    HostHarnessRegistry, KernelPolicy, INTENT_STAMP_MARKER,
347};
348#[cfg(feature = "headless-search")]
349pub use moli_runtime::{
350    default_moli_version, ensure_moli, moli_runtime_info, packaged_moli, MoliRuntimeInfo,
351    MOLI_RUNTIME_INFO_SCHEMA_V1,
352};
353pub use orchestration::{
354    execute_loop, execute_pipeline, execute_steps_parallel, execute_steps_parallel_resumable,
355    workflow_step_execution_identity, workflow_step_result_receipt, AgentExecutor, AgentStepSpec,
356    BudgetSnapshot, LoopDecision, PipelineStage, StepOutcome, Workflow, WorkflowBudget,
357    WorkflowBuilder, WorkflowCheckpoint, WorkflowEvent, WorkflowStepRecord,
358    WORKFLOW_CHECKPOINT_SCHEMA_VERSION,
359};
360pub use prompts::{
361    infer_user_reply_language, output_language_contract, resolve_product_output_language,
362    AgentStyle, DetectionConfidence, PlanningMode, SystemPromptSlots,
363};
364#[cfg(feature = "research")]
365pub use research::{
366    ResearchArtifactKindV1, ResearchCitationV1, ResearchClaimStatusV1, ResearchClaimV1,
367    ResearchContractError, ResearchEventV1, ResearchEvidenceCompletenessV1,
368    ResearchEvidenceFactKindV1, ResearchEvidenceFactV1, ResearchEvidenceGraphV1,
369    ResearchProtocolError, ResearchProvenanceReceiptV1, ResearchReproducibilityManifestV1,
370    ResearchReproducibilityV1, ResearchRerunLineageV1, ResearchReviewBatchV1,
371    ResearchReviewCategoryV1, ResearchReviewFindingV1, ResearchReviewLocationV1,
372    ResearchReviewSeverityV1, ResearchReviewStatusV1, ResearchRunStatusV1, ResearchRunV1,
373    ResearchWireEnvelopeV1, ResearchWireKindDescriptorV1, ResearchWireKindV1, ResearchWireTypeV1,
374    ResearchWorkflowPlanV1, ResearchWorkflowStepV1, RESEARCH_ARTIFACT_KINDS,
375    RESEARCH_CITATION_SCHEMA_V1, RESEARCH_CLAIM_SCHEMA_V1, RESEARCH_EVENT_SCHEMA_V1,
376    RESEARCH_EVIDENCE_FACT_SCHEMA_V1, RESEARCH_EVIDENCE_GRAPH_SCHEMA_V1,
377    RESEARCH_MAX_EVIDENCE_GRAPH_CITATIONS, RESEARCH_MAX_EVIDENCE_GRAPH_CLAIMS,
378    RESEARCH_MAX_REVIEW_FINDINGS, RESEARCH_MAX_WORKFLOW_STEPS, RESEARCH_PROTOCOL_MAX_MESSAGE_BYTES,
379    RESEARCH_PROTOCOL_SCHEMA_V1, RESEARCH_PROTOCOL_VERSION_V1,
380    RESEARCH_PROVENANCE_RECEIPT_SCHEMA_V1, RESEARCH_REPRODUCIBILITY_MANIFEST_SCHEMA_V1,
381    RESEARCH_RERUN_LINEAGE_SCHEMA_V1, RESEARCH_REVIEW_BATCH_SCHEMA_V1,
382    RESEARCH_REVIEW_FINDING_SCHEMA_V1, RESEARCH_RUN_SCHEMA_V1, RESEARCH_WIRE_KIND_DESCRIPTORS_V1,
383    RESEARCH_WORKFLOW_PLAN_SCHEMA_V1, RESEARCH_WORKFLOW_STEP_SCHEMA_V1,
384};
385pub use rl_trajectory::{RlTrajectoryConfig, RlTrajectoryMode, RlTrajectoryRecorder};
386pub use run::{
387    ActiveToolSnapshot, InMemoryRunStore, RunEventRecord, RunHandle, RunRecord, RunReservation,
388    RunSnapshot, RunStatus, RunWorkspaceChangeSet, RunWorkspaceChangeSetError,
389};
390pub use run_control::{
391    InterruptRequest, RunControlCommand, RunControlError, RunControlErrorInfo, RunControlOperation,
392    RunControlReceipt, RunControlReceiptState, RunControlRequest, RunControlSnapshot, SteerRequest,
393    RUN_CONTROL_MAX_ID_BYTES, RUN_CONTROL_MAX_INPUT_BYTES, RUN_CONTROL_MAX_QUEUE,
394    RUN_CONTROL_MAX_REASON_BYTES, RUN_CONTROL_MAX_SEEN_REQUESTS, RUN_CONTROL_RECEIPT_SCHEMA_V1,
395    RUN_CONTROL_REQUEST_SCHEMA_V1,
396};
397pub use sdk_capabilities::{
398    sdk_baseline_capabilities, sdk_capabilities, sdk_capabilities_schema, CapabilityTier,
399    SdkCapability, SDK_CAPABILITIES_SCHEMA_V1, SDK_CAPABILITIES_SCHEMA_V2,
400};
401pub use session_checkpoint::{
402    SdkSessionCheckpointExportV1, SessionCheckpointDescriptorV1, SessionCheckpointError,
403    SessionCheckpointExportSink, SessionCheckpointExportV1, SessionCheckpointPayloadV1,
404    SessionLogicalResumeEvidenceV1, SessionSnapshotEvidenceV1,
405    SESSION_CHECKPOINT_DESCRIPTOR_SCHEMA_V1, SESSION_CHECKPOINT_ENCODING_V1,
406    SESSION_CHECKPOINT_FORMAT_V1, SESSION_CHECKPOINT_LOGICAL_RESUME_SEMANTICS_V1,
407    SESSION_CHECKPOINT_MAX_CONTENT_BYTES, SESSION_CHECKPOINT_MEDIA_TYPE_V1,
408    SESSION_CHECKPOINT_PAYLOAD_SCHEMA_V1, SESSION_LOGICAL_RESUME_EVIDENCE_SCHEMA_V1,
409    SESSION_SNAPSHOT_EVIDENCE_SCHEMA_V1,
410};
411pub use session_review::{
412    SessionReviewAnchorV1, SessionReviewFindingV1, SessionReviewSeverityV1, SessionReviewStatusV1,
413    SessionReviewStoreV1, SCENARIO_REPLY_TRANSCRIPT, SESSION_REVIEW_FINDING_SCHEMA_V1,
414    SESSION_REVIEW_STORE_SCHEMA_V1,
415};
416#[cfg(feature = "state-graph")]
417pub use state_graph::{
418    graph_event_head, Behavior, BehaviorContext, BehaviorError, EventFilter, ExternalEvent,
419    ExternalProjectionOutcome, FileGraphEventStore, FnBehavior, GraphDiff, GraphEvent,
420    GraphEventRecord, GraphEventStore, GraphObject, GraphPatch, GraphRelation, GraphRuntime,
421    GraphSaveOutcome, MemoryGraphEventStore, ObjectId, PatchOperation, RelationId, ReplayError,
422    RuntimeError as GraphRuntimeError, RuntimeLimits, StateGraph, GRAPH_EVENT_SCHEMA_VERSION,
423};
424pub use subagent::{
425    AgentDefinition, AgentRegistry, CattleAgentKind, CattleAgentSpec, ConfirmationInheritance,
426    WorkerAgentKind, WorkerAgentSpec,
427};
428pub use subagent_task_tracker::{
429    InMemorySubagentTaskTracker, SubagentProgressEntry, SubagentStatus, SubagentTaskSnapshot,
430};
431pub use task_scheduler::{
432    TaskLease, TaskPriority, TaskPriorityCounts, TaskScheduler, TaskSchedulerConfig,
433    TaskSchedulerError, TaskSchedulerHealthSnapshot, TaskSchedulerQuota,
434    TaskSchedulerQuotaHealthSnapshot, TaskSchedulerQuotaSnapshot, TaskSchedulerStats,
435    TASK_SCHEDULER_MAX_QUOTAS, TASK_SCHEDULER_MAX_SCOPE_BYTES,
436    TASK_SCHEDULER_QUOTA_HEALTH_RETENTION,
437};
438pub use tools::{
439    ImmutableContentAdapter, ImmutableContentAdapterBindingV1, ImmutableContentAdapterSession,
440    ImmutableContentDescriptorV1, ImmutableContentError, ImmutableContentKindV1,
441    ImmutableContentReferenceV1, ImmutableContentResult, ImmutableContentWriteRequestV1,
442    SdkImmutableContentWriteRequestV1, ToolPresentationError, ToolPresentationModeV1,
443    ToolPresentationProfileV1, IMMUTABLE_CONTENT_ADAPTER_BINDING_SCHEMA_V1,
444    IMMUTABLE_CONTENT_DESCRIPTOR_SCHEMA_V1, IMMUTABLE_CONTENT_REFERENCE_SCHEMA_V1,
445    TOOL_PRESENTATION_PROFILE_V1_SCHEMA, TOOL_RESULT_CONTENT_MEDIA_TYPE,
446};
447pub use tools::{ToolCapabilities, ToolErrorKind, ToolOutputKind, ToolResultTrustV1};
448#[cfg(feature = "apofasi")]
449pub use typed_decision::TokenUsage as ApofasiTokenUsage;
450#[cfg(feature = "apofasi")]
451pub use typed_decision::{
452    admit_goal_achievement, admit_planning_pre_analysis, analyse, build_typed_decision_receipt,
453    compose_host_decision, enforce_ineligible, gate_answer, gate_system_one_response,
454    load_neural_engine, parse_host_evidence, validate_system_one_request, Answer, CheckpointId,
455    Criteria, DecisionKind, Detection, Escalation, GateAction, GatePolicy, GatedAnswer,
456    GatedDecision, GenerationAdmission, HostDecisionEvidence, HostEvidenceError, NeuralDevice,
457    NeuralEngineHandle, Question, RouteDecision, State, SystemOneRequest, SystemOneResponse,
458    TemperatureTable, TypedDecisionComposition, TypedDecisionEngine, TypedDecisionError,
459    TypedDecisionReceiptV1, TypedDecisionResult, TypedDecisionService, APOFASI_VERSION,
460    TYPED_DECISION_RECEIPT_SCHEMA_V1,
461};
462pub use use_runtime_tasks::{
463    UsePlanScope, UsePlanScopeKind, UseProjectedLifecycleIdentity, UseRuntimeTaskDispatcher,
464    UseRuntimeTaskError, UseRuntimeTaskExecutionV1, UseRuntimeTaskProjectionAdapter,
465    UseRuntimeTaskProjectionV1, UseRuntimeTaskRequestV1, UseRuntimeTaskResult,
466    MAX_USE_RUNTIME_TASK_ARGUMENTS, MAX_USE_RUNTIME_TASK_ARGUMENT_BYTES,
467    MAX_USE_RUNTIME_TASK_OUTPUT_BYTES, MAX_USE_RUNTIME_TASK_TIMEOUT_MS,
468    USE_RUNTIME_TASK_REQUEST_SCHEMA, USE_RUNTIME_TASK_RESULT_SCHEMA,
469};
470pub use workspace::{
471    ChunkCatalogLimits, ChunkCatalogSnapshot, ChunkingConfig, CommandOutput, CommandOutputObserver,
472    CommandOutputSummary, CommandRequest, CustomWorkspaceChunkingStrategy,
473    FixedWindowChunkingOptions, GrepCandidateIndex, GrepCandidateSelection, LexicalSearchHit,
474    LexicalSearchRequest, LexicalSearchResult, LocalWorkspaceAccessPolicy, LocalWorkspaceBackend,
475    LocalWorkspaceFile, LocalWorkspaceFileStatus, LocalWorkspaceManifest,
476    LocalWorkspaceManifestSnapshot, ManifestWorkspaceBackend, RecentWorkspaceFile,
477    RecursiveChunkingOptions, RemoteGitBackend, RemoteGitBackendConfig, RemoteGitConflict,
478    SharedGrepCandidateIndex, UnconstrainedGrepCandidateIndex, VirtualPathResolver,
479    WorkspaceCapabilities, WorkspaceChunk, WorkspaceChunkCatalog, WorkspaceChunkId,
480    WorkspaceChunkRange, WorkspaceChunkingError, WorkspaceChunkingInput, WorkspaceChunkingStrategy,
481    WorkspaceCommandRunner, WorkspaceDirEntry, WorkspaceEligibilityPolicy,
482    WorkspaceEmbeddingBatchMetrics, WorkspaceError, WorkspaceFileChange, WorkspaceFileChangeKind,
483    WorkspaceFileSystem, WorkspaceFileSystemExt, WorkspaceFileType, WorkspaceGit,
484    WorkspaceGitBranch, WorkspaceGitCheckoutOutput, WorkspaceGitCheckoutRequest,
485    WorkspaceGitCommit, WorkspaceGitCreateBranchRequest, WorkspaceGitCreateWorktreeRequest,
486    WorkspaceGitDiffRequest, WorkspaceGitRemote, WorkspaceGitRemoveWorktreeRequest,
487    WorkspaceGitStash, WorkspaceGitStashProvider, WorkspaceGitStashRequest, WorkspaceGitStatus,
488    WorkspaceGitWorktree, WorkspaceGitWorktreeMutation, WorkspaceGitWorktreeProvider,
489    WorkspaceGlobRequest, WorkspaceGlobResult, WorkspaceGrepOutcome, WorkspaceGrepRequest,
490    WorkspaceGrepResult, WorkspaceHybridChannelRank, WorkspaceHybridChannelStatus,
491    WorkspaceHybridFallbackReason, WorkspaceHybridSearchHit, WorkspaceHybridSearchRequest,
492    WorkspaceHybridSearchResult, WorkspaceIndexError, WorkspaceLexicalEngine, WorkspacePath,
493    WorkspacePathResolver, WorkspacePersistentIndex, WorkspacePersistentIndexPhase,
494    WorkspacePersistentIndexStatus, WorkspaceRef, WorkspaceRerankAlgorithm,
495    WorkspaceRerankFallbackReason, WorkspaceRerankMode, WorkspaceRerankOptions,
496    WorkspaceRerankStatus, WorkspaceResult, WorkspaceRetrievalChannel, WorkspaceRetrievalError,
497    WorkspaceRetrievalOptions, WorkspaceRetrievalPhase, WorkspaceRetrievalResult,
498    WorkspaceRetrievalRuntime, WorkspaceRetrievalStatus, WorkspaceSearch,
499    WorkspaceSemanticFallbackReason, WorkspaceSemanticIndexLimits, WorkspaceSemanticSearchHit,
500    WorkspaceSemanticSearchRequest, WorkspaceSemanticSearchResult, WorkspaceServices,
501    WorkspaceServicesBuilder, WorkspaceTextRange, WorkspaceTextReader, WorkspaceVersionConflict,
502    WorkspaceWriteOutcome,
503};
504#[cfg(feature = "s3")]
505pub use workspace::{S3BackendConfig, S3WorkspaceBackend};
506#[cfg(feature = "grep-trigram")]
507pub use workspace::{
508    TrigramGrepCandidateIndex, TrigramGrepCandidateIndexError, AUTO_GREP_TRIGRAM_MAX_FILES,
509    GREP_TRIGRAM_INDEX_RELATIVE_DIR,
510};