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::{
24    append_input, component, ingest, ingest_with_cancel, resume, resume_with_cancel, Actor,
25    ErasedComponent, PreparedTransition, Settlement, Transition, TransitionProgram,
26};
27pub use coding::{
28    answer_fact, background_output_fact, coding_actor, coding_scheduler, confirm_fact,
29    ingest_coding, ingest_coding_with_cancel, merge_coding_view, message_fact, resume_coding,
30    resume_coding_with_cancel, tool_args_digest, CodingPhase, CodingServices, CodingView,
31    Compactor, Completion, CompletionRequest, HarnessConfig, ModelDecision, PendingConfirmation,
32    PendingQuestion, PreparedToolExecution, ToolAdmissionIdentityV1, ToolCall,
33    ToolEffectObservationV1, ToolExecutionOutcome, ToolExecutionResultV1, ToolFileIdentityV1,
34    ToolFileKind, ToolInvocationIdentityV1, ToolObservationCompleteness, ToolPathChangeV1,
35    ToolPreparationRequest, ToolPreparedV1, ToolRecoveryPolicy, ToolRunner, ToolSpec,
36    MAX_TOOL_EFFECT_CANONICAL_BYTES, MAX_TOOL_EFFECT_PATHS, TOOL_PREPARED_SCHEMA,
37    TOOL_RESULT_SCHEMA,
38};
39pub use compose::{
40    budget, compact, compose_coding_actor, infer, mount, namespace_transitions, system, tools,
41    with_key_namespace, HarnessGraph, HarnessPartId, HarnessView, MetaHarnessSpec,
42};
43pub use effect::{Effect, Schedule, TraceEvent};
44pub use error::ActorError;
45pub use exit::Exit;
46pub use fact::{cut_log, parse_fact_json, Fact, LogCut, NewFact};
47pub use log::{FileLog, FileLogRunOwnerFence, FileLogWriterFence, LogStore, MemoryLog};