#![forbid(unsafe_code)]
pub mod agent_os;
pub(crate) mod command_line;
pub mod config;
pub mod cron;
pub mod error;
pub mod fs;
pub mod json_rpc;
pub mod net;
pub mod process;
pub mod session;
pub mod sidecar;
pub mod stream;
pub mod transport;
pub const ACP_PROTOCOL_VERSION: u64 = 1;
pub const PERMISSION_TIMEOUT_MS: u64 = 120_000;
pub const ACP_SESSION_EVENT_RETENTION_LIMIT: usize = 1024;
pub const CLOSED_SESSION_ID_RETENTION_LIMIT: usize = 2048;
pub const SHELL_DISPOSE_TIMEOUT_MS: u64 = 5_000;
pub const VM_READY_TIMEOUT_MS: u64 = 10_000;
pub use agent_os::AgentOs;
pub use error::{ClientError, ClientResult};
pub use sidecar::{
AgentOsSidecar, AgentOsSidecarDescription, AgentOsSidecarPlacement, SidecarState,
};
pub use stream::{ByteStream, Subscription};
pub use config::{
AgentOsConfig, AgentOsConfigBuilder, AgentOsSidecarConfig, FsPermissionRule, FsPermissions,
HostTool, MountConfig, MountPlugin, OverlayMountConfig, PatternPermissionRule,
PatternPermissions, PermissionMode, Permissions, RootFilesystemConfig, RootFilesystemKind,
RootFilesystemMode, RootLowerInput, RulePermissions, ScheduleCallback, ScheduleDriver,
ScheduleEntry, ScheduleHandle, SoftwareInput, SoftwareKind, TimerScheduleDriver, ToolCallback,
ToolKit,
};
pub use process::{
ExecOptions, ExecResult, ProcessInfo, ProcessStatus, ProcessTreeNode, SpawnHandle,
SpawnOptions, SpawnStdio, SpawnedProcessInfo, StdinInput, TimingMitigation,
};
pub use fs::{
BatchReadResult, BatchWriteEntry, BatchWriteResult, DeleteOptions, DirEntry, DirEntryType,
FileContent, FilesystemEntry, FilesystemEntryEncoding, FilesystemSnapshotEntries,
FilesystemSnapshotExport, MkdirOptions, MountFsOptions, ReaddirRecursiveOptions,
RootSnapshotExport, SnapshotExportKind, VirtualDirEntry, VirtualFileSystem, VirtualStat,
};
pub use shell::{ConnectTerminalOptions, OpenShellOptions, ShellHandle};
pub use session::{
AgentCapabilities, AgentInfo, AgentRegistryEntry, ConfigAllowedValue, CreateSessionOptions,
GetEventsOptions, McpServerConfig, PermissionDelivery, PermissionReply, PermissionRequest,
PromptCapabilities, PromptResult, SessionConfigOption, SessionId, SessionInfo, SessionInitData,
SessionMode, SessionModeState,
};
pub use json_rpc::{
AcpTimeoutErrorData, JsonRpcError, JsonRpcId, JsonRpcNotification, JsonRpcResponse,
SequencedEvent,
};
pub use cron::{
CronAction, CronEvent, CronJobHandle, CronJobInfo, CronJobOptions, CronManager, CronOverlap,
};
pub mod shell;