mod agent_loop;
pub mod command;
pub mod cwd_guard;
pub mod def;
pub mod error;
pub mod filter;
pub mod fleet;
pub mod grants;
pub mod hooks;
pub mod manager;
pub mod memory;
pub mod resolve;
pub mod state;
pub mod transcript;
pub use command::{AgentCommand, AgentsCommand};
pub use cwd_guard::CwdLock;
pub use def::{
MemoryScope, ModelSpec, PermissionMode, SkillFilter, SubAgentDef, SubAgentPermissions,
ToolPolicy, is_valid_agent_name,
};
pub use error::SubAgentError;
pub use filter::{FilteredToolExecutor, PlanModeExecutor, filter_skills};
pub use fleet::{FleetRegistry, FleetSessionInfo, FleetSessionStatus, SharedFleetRegistry};
pub use grants::{Grant, GrantKind, PermissionGrants, SecretRequest};
pub use hooks::{
HookAction, HookDef, HookError, HookMatcher, HookOutput, HookRunResult, McpDispatch,
PostToolUseHookInput, SubagentHooks, TOOL_ARGS_JSON_LIMIT, fire_hooks, make_base_hook_env,
matching_hooks,
};
pub use manager::{SpawnContext, SubAgentHandle, SubAgentManager, SubAgentStatus};
pub use memory::{ensure_memory_dir, load_memory_content};
pub use resolve::resolve_agent_paths;
pub use state::SubAgentState;
pub use transcript::{TranscriptMeta, TranscriptReader, TranscriptWriter, sweep_old_transcripts};
pub type AcpSubagentSpawnFn = std::sync::Arc<
dyn Fn(
String,
) -> std::pin::Pin<
Box<dyn std::future::Future<Output = Result<String, String>> + Send + 'static>,
> + Send
+ Sync,
>;