Expand description
§substrate-core
The hexagonal core: pure domain contracts and the port traits that
adapters implement. This crate depends on nothing but serde,
serde_json, thiserror, uuid, and async-trait (required to express
async port traits). It MUST NOT depend on any adapter crate
(engine-*, transport-*, store-*, driver-*, *-adapter); this is
enforced by crates/arch-test.
Re-exports§
pub use claim_port::ClaimPort;pub use claim_port::WorkItem;pub use claim_port::WorkItemState;pub use cloud_dispatch_port::CloudDispatchPort;pub use cloud_dispatch_port::CloudResult;pub use cloud_dispatch_port::CloudTaskHandle;pub use cloud_dispatch_port::CloudTaskStatus;pub use error::Result;pub use error::SubstrateError;pub use event_store_port::replay;pub use event_store_port::replay_task_state;pub use event_store_port::EventEnvelope;pub use event_store_port::EventStorePort;pub use event_store_port::Projection;pub use event_store_port::TaskLifecycleEvent;pub use event_store_port::TaskLifecycleProjection;pub use event_store_port::TaskProjectionState;pub use mailbox_port::MailboxStore;pub use memory_port::MemoryEntry;pub use memory_port::MemoryPort;pub use process_port::ProcessHandle;pub use process_port::ProcessPort;pub use process_port::ProcessSpawnSpec;pub use process_port::ProcessState;pub use routing_port::CircuitBreaker;pub use routing_port::CircuitBreakerConfig;pub use routing_port::CircuitState;pub use routing_port::FallbackEntry;pub use routing_port::RoutingPoolState;pub use routing_port::RoutingSelector;pub use routing_port::RoutingStrategy;pub use routing_port::RoutingSuperset;pub use routing_port::RoutingTarget;pub use routing_port::SupersetRoutingDecision;pub use routing_port::TargetHealth;pub use schedule_port::ScheduleInstant;pub use schedule_port::SchedulePort;pub use schedule_port::ScheduleTrigger;pub use schedule_port::Weekday;pub use skill_port::validate_json_schema;pub use skill_port::SkillDescriptor;pub use skill_port::SkillHandler;pub use skill_port::SkillPort;pub use skill_port::ToolRegistry;pub use tiers::Tier;pub use tiers::TierSpec;pub use tiers::HEAVY_MODEL;pub use tiers::HEAVY_REASONING_EFFORT;pub use tiers::MAIN_MODEL;pub use tiers::MAIN_REASONING_EFFORT;pub use tiers::WORKER_MODEL;pub use tiers::WORKER_REASONING_EFFORT;pub use trace::TaskCompleted;pub use trace::TaskFailed;pub use trace::TaskRegistered;pub use trace::TracePort;pub use watcher_port::WatchEvent;pub use watcher_port::WatchEventKind;pub use watcher_port::WatchHandle;pub use watcher_port::WatcherPort;pub use workflow_port::Workflow;pub use workflow_port::WorkflowEdge;pub use workflow_port::WorkflowNode;pub use workflow_port::WorkflowPort;
Modules§
- claim_
port - ClaimPort — atomic work-queue with fuzzy near-duplicate detection.
- cloud_
dispatch_ port - CloudDispatchPort — submit remote cloud-agent tasks and harvest PR results.
- domain
- Pure domain model: entities, value objects, and the task lifecycle FSM.
- error
- The single error type crossing every port boundary.
- event_
store_ port - EventStorePort — append-only per-aggregate event log with global ordering.
- mailbox_
port - MailboxStore port — durable mailbox and tasklist backed by a concrete store.
- memory_
port - MemoryPort — two-tier agent memory (recent ring + persistent history).
- ports
- The five port traits — the only seams adapters may implement.
- process_
port - ProcessPort — cross-platform managed subprocess spawn/monitor/kill.
- routing_
port - Routing superset — load-balancing strategies, circuit breakers, weighted fallback.
- schedule_
port - SchedulePort — cron/interval/daily/weekly triggers with
next_run. - skill_
port - SkillPort + ToolRegistry — named invokable capabilities with typed schemas.
- tiers
- Tiered model dispatch definitions.
- trace
- Cross-cutting trace port: the trait lives in core so the application layer can emit events without knowing which backend receives them.
- watcher_
port - WatcherPort — debounced filesystem watch events.
- workflow_
port - WorkflowPort — DAG orchestration over dependent tasks.