#![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 CLOSED_SESSION_ID_RETENTION_LIMIT: usize = 2048;
pub const CLOSED_SHELL_EXIT_CODE_RETENTION_LIMIT: usize = 2048;
pub const SHELL_DISPOSE_TIMEOUT_MS: u64 = 5_000;
pub const VM_READY_TIMEOUT_MS: u64 = 10_000;
pub const CRON_JOB_LIMIT: usize = 1024;
pub use agent_os::{AgentOs, PackageDescriptor};
pub use error::{ClientError, ClientResult};
pub use sidecar::{
AgentOsSidecar, AgentOsSidecarDescription, AgentOsSidecarPlacement, SidecarState,
};
pub use stream::{ByteStream, Subscription};
pub use config::{
AcpLimits, AgentOsConfig, AgentOsConfigBuilder, AgentOsLimits, AgentOsSidecarConfig,
FsPermissionRule, FsPermissions, HostTool, HttpLimits, JsRuntimeLimits, MountConfig,
MountPlugin, OverlayMountConfig, PatternPermissionRule, PatternPermissions, PermissionMode,
PackageRef, Permissions, PluginLimits, PythonLimits, ResourceLimits, RootFilesystemConfig,
RootFilesystemKind, RootFilesystemMode, RootLowerInput, RulePermissions, ScheduleCallback,
ScheduleDriver, ScheduleEntry, ScheduleHandle, SidecarJsBridgeCall, SidecarJsBridgeCallback,
SoftwareInput, SoftwareKind, TimerScheduleDriver, ToolCallback, ToolKit, ToolLimits,
WasmLimits,
};
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, AgentExitEvent, AgentExitStream, AgentExitSubscription, AgentInfo,
AgentRegistryEntry, ConfigAllowedValue, CreateSessionOptions, McpServerConfig, PermissionReply,
PermissionRequest, PromptCapabilities, PromptResult, ResumeSessionOptions, ResumeSessionResult,
SessionConfigOption, SessionId, SessionInfo, SessionInitData, SessionMode, SessionModeState,
};
pub use json_rpc::{
is_unknown_session, AcpTimeoutErrorData, JsonRpcError, JsonRpcId, JsonRpcNotification,
JsonRpcResponse, UnknownSessionErrorData,
};
pub use cron::{
CronAction, CronEvent, CronJobHandle, CronJobInfo, CronJobOptions, CronManager, CronOverlap,
};
pub mod shell;