mirror of
https://github.com/outbackdingo/optimclaw.git
synced 2026-08-26 15:40:18 +00:00
* feat: add background sandbox reaper for orphaned Docker containers * add tests * review fixes * linter fix * review fixes * style: format test assertion in reaper Apply rustfmt to improve code formatting consistency. Co-Authored-By: Claude Haiku 4.5 <[email protected]> * fix: revert assertion to single-line format for CI compatibility The assertion should remain on a single line to match CI's rustfmt expectations. Co-Authored-By: Claude Haiku 4.5 <[email protected]> * fix: format assertion to multi-line for CI rustfmt Use multi-line format for the assert macro to comply with CI's rustfmt line length limit (100 chars). Co-Authored-By: Claude Haiku 4.5 <[email protected]> --------- Co-authored-by: Claude Haiku 4.5 <[email protected]>
42 lines
2.0 KiB
Rust
42 lines
2.0 KiB
Rust
//! Orchestrator for managing sandboxed worker containers.
|
|
//!
|
|
//! The orchestrator runs in the main agent process and provides:
|
|
//! - An internal HTTP API for worker communication (LLM proxy, status, secrets)
|
|
//! - Per-job bearer token authentication
|
|
//! - Container lifecycle management (create, monitor, stop)
|
|
//!
|
|
//! ```text
|
|
//! ┌───────────────────────────────────────────────┐
|
|
//! │ Orchestrator │
|
|
//! │ │
|
|
//! │ Internal API (default :50051, configurable) │
|
|
//! │ POST /worker/{id}/llm/complete │
|
|
//! │ POST /worker/{id}/llm/complete_with_tools │
|
|
//! │ GET /worker/{id}/job │
|
|
//! │ GET /worker/{id}/credentials │
|
|
//! │ POST /worker/{id}/status │
|
|
//! │ POST /worker/{id}/complete │
|
|
//! │ │
|
|
//! │ ContainerJobManager │
|
|
//! │ create_job() -> container + token │
|
|
//! │ stop_job() │
|
|
//! │ list_jobs() │
|
|
//! │ │
|
|
//! │ TokenStore │
|
|
//! │ per-job bearer tokens (in-memory only) │
|
|
//! │ per-job credential grants (in-memory only) │
|
|
//! └───────────────────────────────────────────────┘
|
|
//! ```
|
|
|
|
pub mod api;
|
|
pub mod auth;
|
|
pub mod job_manager;
|
|
pub mod reaper;
|
|
|
|
pub use api::OrchestratorApi;
|
|
pub use auth::{CredentialGrant, TokenStore};
|
|
pub use job_manager::{
|
|
CompletionResult, ContainerHandle, ContainerJobConfig, ContainerJobManager, JobMode,
|
|
};
|
|
pub use reaper::{ReaperConfig, SandboxReaper};
|