Skip to main content

a3s_effect/
lib.rs

1//! Actor framework for the A3S Code harness.
2//!
3//! The shape follows an immutable event log: a component folds facts into a
4//! view and the transitions that view enables, and the runtime runs those
5//! transitions until the fold enables nothing. Resuming a thread replays the
6//! log instead of restoring process-local waits.
7//!
8//! The description of a transition follows the Effect v4 onboarding
9//! philosophy, expressed in Rust. An [`Effect`] is a value that names its
10//! success, its expected error, and the services it requires. Operators add
11//! retries, timeouts, structured concurrency, resource release, and spans.
12//! [`Effect::run`] is the only place a description executes.
13
14pub mod actor;
15pub mod coding;
16pub mod compose;
17pub mod effect;
18pub mod error;
19pub mod exit;
20pub mod fact;
21pub mod log;
22
23pub use actor::{component, ingest, resume, Actor, ErasedComponent, Settlement, Transition};
24pub use coding::{
25    answer_fact, coding_actor, coding_scheduler, confirm_fact, ingest_coding, merge_coding_view,
26    message_fact, resume_coding, CodingPhase, CodingServices, CodingView, Compactor, Completion,
27    CompletionRequest, HarnessConfig, ModelDecision, PendingConfirmation, PendingQuestion,
28    ToolCall, ToolRunner, ToolSpec,
29};
30pub use compose::{
31    budget, compact, compose_coding_actor, infer, mount, namespace_transitions, system, tools,
32    with_key_namespace, HarnessGraph, HarnessPartId, HarnessView, MetaHarnessSpec,
33};
34pub use effect::{Effect, Schedule, TraceEvent};
35pub use error::ActorError;
36pub use exit::Exit;
37pub use fact::{cut_log, parse_fact_json, Fact, LogCut, NewFact};
38pub use log::{FileLog, LogStore, MemoryLog};