1extern crate self as theway_core;
10
11pub mod agent;
12pub mod executor;
13pub mod observability;
14pub mod types;
15
16pub use agent::context_cache::{
18 CONTEXT_CHUNK_SIZE, ContextCacheTracker, PrefixHitEstimate, PrefixHitResult,
19 canonical_context_bytes,
20};
21pub use agent::model_request::{NormalizedGenerationOptions, NormalizedModelRequestDraft};
22pub use agent::{
23 Agent, AgentOptions, AgentRunError, LOOP_EVENT_BROADCAST_CAPACITY, LoopListener,
24 LoopSyncCallback,
25};
26pub use observability::{
27 ErrorCategory, NoopRuntimeObserver, ObservationContent, ObservationContext, OperationDetail,
28 OperationFinished, OperationId, OperationKind, OperationOutcome, OperationScope,
29 OperationStarted, RuntimeMeasurements, RuntimeObservation, RuntimeObserver,
30 noop_runtime_observer,
31};
32pub use types::{
33 AfterToolCallContext, AfterToolCallHook, AfterToolCallResult, AgentContext, AgentLoopConfig,
34 AgentLoopTurnUpdate, AgentMessage, AgentState, AgentTool, AgentToolCall, AgentToolError,
35 AgentToolResult, AgentToolUpdate, BeforeToolCallContext, BeforeToolCallHook,
36 BeforeToolCallResult, ControlPlanePromptDecision, ControlPlanePromptRequest, ConvertToLlm,
37 CustomMessage, GetApiKey, LoopEvent, MessageQueueProvider, OnControlPlanePromptHook,
38 PermissionClassification, PrepareNextTurnContext, PrepareNextTurnHook, QueueMode,
39 ShouldStopAfterTurnContext, ShouldStopHook, StreamFn, ThinkingLevel, ToolExecutionMode,
40 TransformContext, TransformMessage, TransformModelRequest, default_convert_to_llm,
41};
42
43#[cfg(feature = "harness")]
44pub mod multiagent;
45
46#[cfg(feature = "harness")]
47pub use agent::assembly::{
48 AgentHarness, AgentHarnessOptions, DEFAULT_TURN_CONTINUATION_CAP, OnTurnEndContext,
49 OnTurnEndHook, ReloadSkillsError, ReloadSkillsFn, SESSION_EVENT_BROADCAST_CAPACITY,
50 SessionEvent, SessionListener, TurnEndAction, TurnEndDecision,
51};
52#[cfg(feature = "harness")]
53pub use agent::compaction::{
54 branch_summarization::{BranchSummaryResult, summarize_branch},
55 compaction::{
56 CompactionPreparation, CompactionResult, CompactionSettings, ContextUsageEstimate,
57 CutPointResult, DEFAULT_COMPACTION_SETTINGS, GenerateSummaryOutput, GenerateSummaryRequest,
58 SUMMARIZATION_SYSTEM_PROMPT, SummarizeError, calculate_context_tokens, compact,
59 estimate_context_tokens, estimate_tokens, find_cut_point, find_turn_start_index,
60 generate_summary, get_last_assistant_usage, prepare_compaction, serialize_conversation,
61 should_compact,
62 },
63};
64#[cfg(feature = "harness")]
65pub use agent::cost::{
66 CostSnapshot, CostTracker, full_breakdown as cost_full_breakdown,
67 one_line_summary as cost_one_line_summary,
68};
69#[cfg(feature = "harness")]
70pub use agent::messages;
71#[cfg(feature = "harness")]
72pub use agent::permission::{PermissionCategory, PermissionDecision, PermissionPolicy};
73#[cfg(feature = "harness")]
74pub use agent::runtime_extensions::{
75 ExtensionModelContextItem, ExtensionModelContextProjection,
76 ExtensionModelContextProjectionError, NoopRuntimeExtensionPort, NoopSessionExtensionStatePort,
77 PersistentSessionExtensionStatePort, RuntimeCompactionExtensionPort, RuntimeExtensionContext,
78 RuntimeExtensionDomain, RuntimeExtensionInvocation, RuntimeExtensionPort,
79 RuntimeExtensionResult, RuntimeExtensionScopeAllocator, RuntimeExtensionScopeKind,
80 RuntimeMessageExtensionPort, RuntimeRequestExtensionPort, RuntimeRunExtensionPort,
81 RuntimeSessionExtensionPort, RuntimeToolExtensionPort, ScopeAllocationError,
82 SessionExtensionStateError, SessionExtensionStatePort, ValidatedGateResult,
83 ValidatedObserveResult, ValidatedRegisterResult, ValidatedRuntimeExtensionResult,
84 ValidatedTransformResult,
85};
86#[cfg(feature = "harness")]
87pub use agent::session::{
88 memory_repo::MemorySessionRepo,
89 memory_storage::MemorySessionStorage,
90 persistent_storage::{PersistentSessionStorage, decode_session_entry, encode_session_entry},
91 repo_utils::{
92 ForkOptions, ForkPosition, create_session_id, create_timestamp, get_entries_to_fork,
93 to_session,
94 },
95 session::{
96 BranchSummaryInput, COMPACT_CONTEXT_CUSTOM_TYPE, CompactContext, JsonlSessionMetadata,
97 SESSION_GRAPH_STATE_CUSTOM_TYPE, Session, SessionContext, SessionContextModel,
98 SessionGraphState, SessionImportOrigin, SessionMetadata, SessionStorage, SessionTreeEntry,
99 SubagentJobSnapshot, build_session_context, latest_session_graph_state,
100 },
101};
102#[cfg(feature = "harness")]
103pub use agent::skills::{
104 LoadSkillsOutput, format_skill_invocation, load_skills, load_sourced_skills,
105};
106#[cfg(feature = "harness")]
107pub use agent::system_prompt::format_skills_for_system_prompt;
108#[cfg(feature = "harness")]
109pub use agent::types::{
110 ExecOptions, ExecOutput, ExecResult, ExecutionEnv, ExecutionError, ExecutionErrorCode,
111 FileError, FileErrorCode, FileInfo, FileKind, FsResult, PromptTemplate, SessionError,
112 SessionErrorCode, Skill, SkillDiagnostic, SkillDiagnosticCode, SkillFrontmatter, SkillSource,
113};