mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-05 02:41:45 +00:00
Main merged the sandbox-driver adoption (#849) in a later form than this branch was stacked on: the driver's own exec types replace fabro-sandbox's, shell quoting moved to fabro-util, the sandbox lifecycle collapsed, and the driver's events are stored as run events. This branch had deleted `fabro-agent` and put the coding agent, the environment adapter, and the steering hub on pebble. The resolution takes main's sandbox API and re-applies pebble on top: the `RunSandbox` `Environment` adapter moves to `pebble_environment.rs` (main's `environment.rs` is the sandbox spec) and runs commands through `ExecSpec` and `ExecControls`, feeding pebble's output sink from the driver's; the driver-era `sandbox.*` names leave the known-event list, as on main, so a stored event with that name and no driver shape is `Unknown` rather than an error; `program_exit_code` matches pebble's non-exhaustive termination; the Docker and Daytona smokes use main's constructor and credentials; the remaining `fabro_agent` paths point at fabro-sandbox. Pebble's `mcp` feature pins sandbox-driver, and the preview-url trait objects only cross when both sides name one revision, so pebble moved to main's `a92c0db6` (lithoscomputer/pebble#10) and fabro pins that pebble revision until it lands on pebble main. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
27 lines
839 B
Rust
27 lines
839 B
Rust
mod convert;
|
|
mod driver_events;
|
|
mod emitter;
|
|
mod events;
|
|
mod names;
|
|
mod redaction;
|
|
mod sink;
|
|
mod stored_fields;
|
|
#[cfg(test)]
|
|
mod test_support;
|
|
|
|
pub use fabro_types::{EventBody, RunNoticeCode, RunNoticeLevel};
|
|
|
|
pub use self::convert::{to_run_event, to_run_event_at};
|
|
pub use self::driver_events::DriverEventRecorder;
|
|
pub use self::emitter::Emitter;
|
|
pub use self::events::{Event, SandboxLifecycle};
|
|
pub use self::names::event_name;
|
|
pub use self::redaction::{
|
|
build_redacted_event_payload, event_payload_from_redacted_json, redacted_event_json,
|
|
};
|
|
pub use self::sink::{
|
|
RunEventLogger, RunEventPersistenceError, RunEventSink, StoreProgressLogger, append_event,
|
|
append_event_if, append_event_to_sink, create_run,
|
|
};
|
|
pub use self::stored_fields::{actor_from_principal, principal_from_actor};
|
|
pub use crate::stage_scope::StageScope;
|