Skip to main content

Crate theway_core

Crate theway_core 

Source
Expand description

Runtime engine used by theway-daemon.

This crate owns the agent loop, harness, typed sessions, compaction, lifecycle hooks, the execution seam, and multiagent orchestration. Concrete tools, persistence backends, and protocol servers live outside core and are composed by the daemon. Self-alias so ported modules keep their use theway_core::... import paths unchanged.

Re-exports§

pub use agent::context_cache::CONTEXT_CHUNK_SIZE;
pub use agent::context_cache::ContextCacheTracker;
pub use agent::context_cache::PrefixHitEstimate;
pub use agent::context_cache::PrefixHitResult;
pub use agent::context_cache::canonical_context_bytes;
pub use agent::model_request::NormalizedGenerationOptions;
pub use agent::model_request::NormalizedModelRequestDraft;
pub use agent::Agent;
pub use agent::AgentOptions;
pub use agent::AgentRunError;
pub use agent::LOOP_EVENT_BROADCAST_CAPACITY;
pub use agent::LoopListener;
pub use agent::LoopSyncCallback;
pub use observability::ErrorCategory;
pub use observability::NoopRuntimeObserver;
pub use observability::ObservationContent;
pub use observability::ObservationContext;
pub use observability::OperationDetail;
pub use observability::OperationFinished;
pub use observability::OperationId;
pub use observability::OperationKind;
pub use observability::OperationOutcome;
pub use observability::OperationScope;
pub use observability::OperationStarted;
pub use observability::RuntimeMeasurements;
pub use observability::RuntimeObservation;
pub use observability::RuntimeObserver;
pub use observability::noop_runtime_observer;
pub use types::AfterToolCallContext;
pub use types::AfterToolCallHook;
pub use types::AfterToolCallResult;
pub use types::AgentContext;
pub use types::AgentLoopConfig;
pub use types::AgentLoopTurnUpdate;
pub use types::AgentMessage;
pub use types::AgentState;
pub use types::AgentTool;
pub use types::AgentToolCall;
pub use types::AgentToolError;
pub use types::AgentToolResult;
pub use types::AgentToolUpdate;
pub use types::BeforeToolCallContext;
pub use types::BeforeToolCallHook;
pub use types::BeforeToolCallResult;
pub use types::ControlPlanePromptDecision;
pub use types::ControlPlanePromptRequest;
pub use types::ConvertToLlm;
pub use types::CustomMessage;
pub use types::GetApiKey;
pub use types::LoopEvent;
pub use types::MessageQueueProvider;
pub use types::OnControlPlanePromptHook;
pub use types::PermissionClassification;
pub use types::PrepareNextTurnContext;
pub use types::PrepareNextTurnHook;
pub use types::QueueMode;
pub use types::ShouldStopAfterTurnContext;
pub use types::ShouldStopHook;
pub use types::StreamFn;
pub use types::ThinkingLevel;
pub use types::ToolExecutionMode;
pub use types::TransformContext;
pub use types::TransformMessage;
pub use types::TransformModelRequest;
pub use types::default_convert_to_llm;
pub use agent::assembly::AgentHarness;
pub use agent::assembly::AgentHarnessOptions;
pub use agent::assembly::DEFAULT_TURN_CONTINUATION_CAP;
pub use agent::assembly::OnTurnEndContext;
pub use agent::assembly::OnTurnEndHook;
pub use agent::assembly::ReloadSkillsError;
pub use agent::assembly::ReloadSkillsFn;
pub use agent::assembly::SESSION_EVENT_BROADCAST_CAPACITY;
pub use agent::assembly::SessionEvent;
pub use agent::assembly::SessionListener;
pub use agent::assembly::TurnEndAction;
pub use agent::assembly::TurnEndDecision;
pub use agent::compaction::branch_summarization::BranchSummaryResult;
pub use agent::compaction::branch_summarization::summarize_branch;
pub use agent::compaction::compaction::CompactionPreparation;
pub use agent::compaction::compaction::CompactionResult;
pub use agent::compaction::compaction::CompactionSettings;
pub use agent::compaction::compaction::ContextUsageEstimate;
pub use agent::compaction::compaction::CutPointResult;
pub use agent::compaction::compaction::DEFAULT_COMPACTION_SETTINGS;
pub use agent::compaction::compaction::GenerateSummaryOutput;
pub use agent::compaction::compaction::GenerateSummaryRequest;
pub use agent::compaction::compaction::SUMMARIZATION_SYSTEM_PROMPT;
pub use agent::compaction::compaction::SummarizeError;
pub use agent::compaction::compaction::calculate_context_tokens;
pub use agent::compaction::compaction::compact;
pub use agent::compaction::compaction::estimate_context_tokens;
pub use agent::compaction::compaction::estimate_tokens;
pub use agent::compaction::compaction::find_cut_point;
pub use agent::compaction::compaction::find_turn_start_index;
pub use agent::compaction::compaction::generate_summary;
pub use agent::compaction::compaction::get_last_assistant_usage;
pub use agent::compaction::compaction::prepare_compaction;
pub use agent::compaction::compaction::serialize_conversation;
pub use agent::compaction::compaction::should_compact;
pub use agent::cost::CostSnapshot;
pub use agent::cost::CostTracker;
pub use agent::cost::full_breakdown as cost_full_breakdown;
pub use agent::cost::one_line_summary as cost_one_line_summary;
pub use agent::messages;
pub use agent::permission::PermissionCategory;
pub use agent::permission::PermissionDecision;
pub use agent::permission::PermissionPolicy;
pub use agent::runtime_extensions::ExtensionModelContextItem;
pub use agent::runtime_extensions::ExtensionModelContextProjection;
pub use agent::runtime_extensions::ExtensionModelContextProjectionError;
pub use agent::runtime_extensions::NoopRuntimeExtensionPort;
pub use agent::runtime_extensions::NoopSessionExtensionStatePort;
pub use agent::runtime_extensions::PersistentSessionExtensionStatePort;
pub use agent::runtime_extensions::RuntimeCompactionExtensionPort;
pub use agent::runtime_extensions::RuntimeExtensionContext;
pub use agent::runtime_extensions::RuntimeExtensionDomain;
pub use agent::runtime_extensions::RuntimeExtensionInvocation;
pub use agent::runtime_extensions::RuntimeExtensionPort;
pub use agent::runtime_extensions::RuntimeExtensionResult;
pub use agent::runtime_extensions::RuntimeExtensionScopeAllocator;
pub use agent::runtime_extensions::RuntimeExtensionScopeKind;
pub use agent::runtime_extensions::RuntimeMessageExtensionPort;
pub use agent::runtime_extensions::RuntimeRequestExtensionPort;
pub use agent::runtime_extensions::RuntimeRunExtensionPort;
pub use agent::runtime_extensions::RuntimeSessionExtensionPort;
pub use agent::runtime_extensions::RuntimeToolExtensionPort;
pub use agent::runtime_extensions::ScopeAllocationError;
pub use agent::runtime_extensions::SessionExtensionStateError;
pub use agent::runtime_extensions::SessionExtensionStatePort;
pub use agent::runtime_extensions::ValidatedGateResult;
pub use agent::runtime_extensions::ValidatedObserveResult;
pub use agent::runtime_extensions::ValidatedRegisterResult;
pub use agent::runtime_extensions::ValidatedRuntimeExtensionResult;
pub use agent::runtime_extensions::ValidatedTransformResult;
pub use agent::session::memory_repo::MemorySessionRepo;
pub use agent::session::memory_storage::MemorySessionStorage;
pub use agent::session::persistent_storage::PersistentSessionStorage;
pub use agent::session::persistent_storage::decode_session_entry;
pub use agent::session::persistent_storage::encode_session_entry;
pub use agent::session::repo_utils::ForkOptions;
pub use agent::session::repo_utils::ForkPosition;
pub use agent::session::repo_utils::create_session_id;
pub use agent::session::repo_utils::create_timestamp;
pub use agent::session::repo_utils::get_entries_to_fork;
pub use agent::session::repo_utils::to_session;
pub use agent::session::session::BranchSummaryInput;
pub use agent::session::session::COMPACT_CONTEXT_CUSTOM_TYPE;
pub use agent::session::session::CompactContext;
pub use agent::session::session::SESSION_GRAPH_STATE_CUSTOM_TYPE;
pub use agent::session::session::Session;
pub use agent::session::session::SessionContext;
pub use agent::session::session::SessionContextModel;
pub use agent::session::session::SessionGraphState;
pub use agent::session::session::SessionStorage;
pub use agent::session::session::SessionTreeEntry;
pub use agent::session::session::SubagentJobSnapshot;
pub use agent::session::session::build_session_context;
pub use agent::session::session::latest_session_graph_state;
pub use agent::skills::LoadSkillsOutput;
pub use agent::skills::format_skill_invocation;
pub use agent::skills::load_skills;
pub use agent::skills::load_sourced_skills;
pub use agent::system_prompt::format_skills_for_system_prompt;
pub use agent::types::ExecOptions;
pub use agent::types::ExecOutput;
pub use agent::types::ExecResult;
pub use agent::types::ExecutionEnv;
pub use agent::types::ExecutionError;
pub use agent::types::ExecutionErrorCode;
pub use agent::types::FileError;
pub use agent::types::FileErrorCode;
pub use agent::types::FileInfo;
pub use agent::types::FileKind;
pub use agent::types::FsResult;
pub use agent::types::PromptTemplate;
pub use agent::types::Skill;
pub use agent::types::SkillDiagnostic;
pub use agent::types::SkillDiagnosticCode;
pub use agent::types::SkillFrontmatter;
pub use agent::types::SkillSource;

Modules§

agent
The single-agent runtime. The bare Agent state machine (this file) is always on — prompt() / continue() / subscribe() / abort(), no harness dependency. The harness layer (skills, sessions, compaction, permission, …) lives in the submodules below, behind #[cfg(feature = "harness")] (opt-out for embedders that only want the bare Agent). Orchestration builds on top in crate::multiagent.
executor
Execution-environment abstraction.
multiagent
Multi-agent runtime orchestration — everything above the single-agent runtime (crate::agent::assembly / the bare crate::agent): spawning nested agent runs (runner), subagent job tracking + live control (jobs), the run data contract (types), the DAG/goal graph engine (graph), and the goal mode hook (goal).
observability
Transport-neutral runtime observations.
types
Core type universe for theway-core. 1:1 port of packages/agent/src/types.ts.

Structs§

JsonlSessionMetadata
SessionError
SessionImportOrigin
SessionMetadata

Enums§

SessionErrorCode