1#![allow(dead_code)]
9
10mod internal;
11
12pub mod channel {
13 pub use crate::internal::channels::channel::*;
14}
15
16pub mod channel_adapter {
17 pub use crate::internal::channels::channel_adapter::*;
18}
19
20pub mod observability {
21 pub use crate::internal::observability::*;
22}
23
24pub mod storage {
25 pub use crate::internal::storage::*;
26}
27
28pub mod tool_runtime {
29 pub use crate::internal::tool_runtime::*;
30}
31
32pub mod worker {
33 pub use crate::internal::worker::*;
34}
35
36pub mod a2a;
37pub mod acp_subagent;
38pub mod agent_engine;
39pub mod alerts;
40pub mod chat_commands;
41pub mod chat_turn_queue;
42pub mod checkpoint;
43pub mod clawhub;
44pub mod codex_auth;
45pub mod completion_contract;
46pub mod config;
47pub mod config_persistence;
48pub mod context_references;
49pub mod embedding;
50pub mod headless;
51pub mod hooks;
52pub mod http_client;
53pub mod learning_foundry;
54pub mod llm;
55pub mod mcp;
56pub mod memory_backend;
57pub mod memory_service;
58pub mod messages;
59pub mod mood;
60pub mod plugins;
61pub mod prompt_cache;
62pub mod relationship;
63pub mod run_control;
64pub mod schedule_lifecycle;
65pub mod setup;
66pub mod setup_def;
67pub mod skill_audit;
68pub mod skill_review;
69pub mod skills;
70pub mod subdirectory_hints;
71pub mod supervision;
72pub mod title_generator;
73pub mod tool_executor;
74pub mod tool_guardrails;
75pub mod tools;
76pub mod trust_report;
77pub mod turn_recovery;
78pub mod voice;
79
80pub mod channels;
81pub mod runtime;
82
83pub use internal::app::builtin_skills;
84pub use internal::app::logging;
85pub use internal::app::transcribe;
86pub use internal::runtime::{
87 AgentHandle, ControlRequest, ExecutionContext, ExecutionResult, LocalWorker, RemoteWorker,
88 RunController, RunExecutor, RunHandle, Runtime, RuntimeBuildError, RuntimeBuilder,
89 RuntimeStats, Worker, WorkerConnection, WorkerTransport,
90};
91pub use internal::storage::memory;
92pub use internal::worker::{WebSocketWorkerTransport, WorkerHost};
93pub use microclaw_core::error;
94pub use microclaw_core::llm_types;
95
96#[cfg(test)]
97pub mod test_support {
98 use std::sync::{Mutex, MutexGuard, OnceLock};
99
100 pub fn env_lock() -> MutexGuard<'static, ()> {
101 static ENV_LOCK: OnceLock<Mutex<()>> = OnceLock::new();
102 ENV_LOCK
103 .get_or_init(|| Mutex::new(()))
104 .lock()
105 .expect("env lock poisoned")
106 }
107}