1#![forbid(unsafe_code)]
2
3pub mod agent_os;
19pub(crate) mod command_line;
20pub mod config;
21pub mod cron;
22pub mod error;
23pub mod fs;
24pub mod json_rpc;
25pub mod net;
26pub mod process;
27pub mod session;
28pub mod sidecar;
29pub mod stream;
30pub mod transport;
31
32pub const ACP_PROTOCOL_VERSION: u64 = 1;
38
39pub const PERMISSION_TIMEOUT_MS: u64 = 120_000;
41
42pub const CLOSED_SESSION_ID_RETENTION_LIMIT: usize = 2048;
44
45pub const CLOSED_SHELL_EXIT_CODE_RETENTION_LIMIT: usize = 2048;
47
48pub const SHELL_DISPOSE_TIMEOUT_MS: u64 = 5_000;
50
51pub const VM_READY_TIMEOUT_MS: u64 = 10_000;
53
54pub const CRON_JOB_LIMIT: usize = 1024;
56
57pub use agent_os::{AgentOs, PackageDescriptor};
62pub use error::{ClientError, ClientResult};
63pub use sidecar::{
64 AgentOsSidecar, AgentOsSidecarDescription, AgentOsSidecarPlacement, SidecarState,
65};
66pub use stream::{ByteStream, Subscription};
67
68pub use config::{
69 AcpLimits, AgentOsConfig, AgentOsConfigBuilder, AgentOsLimits, AgentOsSidecarConfig,
70 FsPermissionRule, FsPermissions, HostTool, HttpLimits, JsRuntimeLimits, MountConfig,
71 MountPlugin, OverlayMountConfig, PatternPermissionRule, PatternPermissions, PermissionMode,
72 PackageRef, Permissions, PluginLimits, PythonLimits, ResourceLimits, RootFilesystemConfig,
73 RootFilesystemKind, RootFilesystemMode, RootLowerInput, RulePermissions, ScheduleCallback,
74 ScheduleDriver, ScheduleEntry, ScheduleHandle, SidecarJsBridgeCall, SidecarJsBridgeCallback,
75 SoftwareInput, SoftwareKind, TimerScheduleDriver, ToolCallback, ToolKit, ToolLimits,
76 WasmLimits,
77};
78
79pub use process::{
80 ExecOptions, ExecResult, ProcessInfo, ProcessStatus, ProcessTreeNode, SpawnHandle,
81 SpawnOptions, SpawnStdio, SpawnedProcessInfo, StdinInput, TimingMitigation,
82};
83
84pub use fs::{
85 BatchReadResult, BatchWriteEntry, BatchWriteResult, DeleteOptions, DirEntry, DirEntryType,
86 FileContent, FilesystemEntry, FilesystemEntryEncoding, FilesystemSnapshotEntries,
87 FilesystemSnapshotExport, MkdirOptions, MountFsOptions, ReaddirRecursiveOptions,
88 RootSnapshotExport, SnapshotExportKind, VirtualDirEntry, VirtualFileSystem, VirtualStat,
89};
90
91pub use shell::{ConnectTerminalOptions, OpenShellOptions, ShellHandle};
92
93pub use session::{
94 AgentCapabilities, AgentExitEvent, AgentExitStream, AgentExitSubscription, AgentInfo,
95 AgentRegistryEntry, ConfigAllowedValue, CreateSessionOptions, McpServerConfig, PermissionReply,
96 PermissionRequest, PromptCapabilities, PromptResult, ResumeSessionOptions, ResumeSessionResult,
97 SessionConfigOption, SessionId, SessionInfo, SessionInitData, SessionMode, SessionModeState,
98};
99
100pub use json_rpc::{
101 is_unknown_session, AcpTimeoutErrorData, JsonRpcError, JsonRpcId, JsonRpcNotification,
102 JsonRpcResponse, UnknownSessionErrorData,
103};
104
105pub use cron::{
106 CronAction, CronEvent, CronJobHandle, CronJobInfo, CronJobOptions, CronManager, CronOverlap,
107};
108
109pub mod shell;