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_management;
69pub mod skill_review;
70pub mod skills;
71pub mod subdirectory_hints;
72pub mod supervision;
73pub mod title_generator;
74pub mod tool_executor;
75pub mod tool_guardrails;
76pub mod tools;
77pub mod trust_report;
78pub mod turn_recovery;
79pub mod voice;
80
81pub mod channels;
82pub mod runtime;
83
84pub use internal::app::builtin_skills;
85pub use internal::app::logging;
86pub use internal::app::transcribe;
87pub use internal::runtime::{
88 AgentHandle, ControlRequest, ExecutionContext, ExecutionResult, LocalWorker, RemoteWorker,
89 RemoteWorkerOptions, RunController, RunExecutor, RunHandle, Runtime, RuntimeBuildError,
90 RuntimeBuilder, RuntimeStats, Worker, WorkerConnection, WorkerTransport,
91};
92pub use internal::storage::memory;
93pub use internal::worker::{WebSocketWorkerTransport, WorkerHost};
94pub use microclaw_core::error;
95pub use microclaw_core::llm_types;
96
97#[cfg(test)]
98pub mod test_support {
99 use std::sync::{Mutex, MutexGuard, OnceLock};
100
101 pub fn env_lock() -> MutexGuard<'static, ()> {
102 static ENV_LOCK: OnceLock<Mutex<()>> = OnceLock::new();
103 ENV_LOCK
104 .get_or_init(|| Mutex::new(()))
105 .lock()
106 .expect("env lock poisoned")
107 }
108}