@rivet-dev/agentos-core 0.2.5-rc.2 → 0.2.5-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/README.md +4 -4
  2. package/dist/agent-os.d.ts +25 -28
  3. package/dist/agent-os.js +129 -403
  4. package/dist/agentos-package.d.ts +3 -3
  5. package/dist/agentos-package.js +7 -1
  6. package/dist/cron/types.d.ts +1 -1
  7. package/dist/default-software.d.ts +6 -46
  8. package/dist/default-software.js +7 -90
  9. package/dist/generated/AcpLimitsConfig.d.ts +4 -0
  10. package/dist/generated/AcpLimitsConfig.js +2 -0
  11. package/dist/generated/CreateVmConfig.d.ts +26 -0
  12. package/dist/generated/CreateVmConfig.js +1 -0
  13. package/dist/generated/FsPermissionRule.d.ts +6 -0
  14. package/dist/generated/FsPermissionRule.js +1 -0
  15. package/dist/generated/FsPermissionRuleSet.d.ts +6 -0
  16. package/dist/generated/FsPermissionRuleSet.js +1 -0
  17. package/dist/generated/FsPermissionScope.d.ts +3 -0
  18. package/dist/generated/FsPermissionScope.js +1 -0
  19. package/dist/generated/HttpLimitsConfig.d.ts +3 -0
  20. package/dist/generated/HttpLimitsConfig.js +2 -0
  21. package/dist/generated/JsModuleResolution.d.ts +1 -0
  22. package/dist/generated/JsModuleResolution.js +2 -0
  23. package/dist/generated/JsRuntimeConfig.d.ts +31 -0
  24. package/dist/generated/JsRuntimeConfig.js +1 -0
  25. package/dist/generated/JsRuntimeLimitsConfig.d.ts +11 -0
  26. package/dist/generated/JsRuntimeLimitsConfig.js +2 -0
  27. package/dist/generated/JsRuntimePlatform.d.ts +1 -0
  28. package/dist/generated/JsRuntimePlatform.js +2 -0
  29. package/dist/generated/MountPluginDescriptor.d.ts +4 -0
  30. package/dist/generated/MountPluginDescriptor.js +2 -0
  31. package/dist/generated/NativeRootFilesystemConfig.d.ts +5 -0
  32. package/dist/generated/NativeRootFilesystemConfig.js +1 -0
  33. package/dist/generated/PatternPermissionRule.d.ts +6 -0
  34. package/dist/generated/PatternPermissionRule.js +1 -0
  35. package/dist/generated/PatternPermissionRuleSet.d.ts +6 -0
  36. package/dist/generated/PatternPermissionRuleSet.js +1 -0
  37. package/dist/generated/PatternPermissionScope.d.ts +3 -0
  38. package/dist/generated/PatternPermissionScope.js +1 -0
  39. package/dist/generated/PermissionMode.d.ts +1 -0
  40. package/dist/generated/PermissionMode.js +2 -0
  41. package/dist/generated/PermissionsPolicy.d.ts +10 -0
  42. package/dist/generated/PermissionsPolicy.js +1 -0
  43. package/dist/generated/PluginLimitsConfig.d.ts +4 -0
  44. package/dist/generated/PluginLimitsConfig.js +2 -0
  45. package/dist/generated/PythonLimitsConfig.d.ts +6 -0
  46. package/dist/generated/PythonLimitsConfig.js +2 -0
  47. package/dist/generated/ResourceLimitsConfig.d.ts +24 -0
  48. package/dist/generated/ResourceLimitsConfig.js +2 -0
  49. package/dist/generated/RootFilesystemConfig.d.ts +9 -0
  50. package/dist/generated/RootFilesystemConfig.js +1 -0
  51. package/dist/generated/RootFilesystemEntry.d.ts +13 -0
  52. package/dist/generated/RootFilesystemEntry.js +1 -0
  53. package/dist/generated/RootFilesystemEntryEncoding.d.ts +1 -0
  54. package/dist/generated/RootFilesystemEntryEncoding.js +2 -0
  55. package/dist/generated/RootFilesystemEntryKind.d.ts +1 -0
  56. package/dist/generated/RootFilesystemEntryKind.js +2 -0
  57. package/dist/generated/RootFilesystemLowerDescriptor.d.ts +7 -0
  58. package/dist/generated/RootFilesystemLowerDescriptor.js +1 -0
  59. package/dist/generated/RootFilesystemMode.d.ts +1 -0
  60. package/dist/generated/RootFilesystemMode.js +2 -0
  61. package/dist/generated/ToolLimitsConfig.d.ts +10 -0
  62. package/dist/generated/ToolLimitsConfig.js +2 -0
  63. package/dist/generated/VmDnsConfig.d.ts +6 -0
  64. package/dist/generated/VmDnsConfig.js +2 -0
  65. package/dist/generated/VmLimitsConfig.d.ts +18 -0
  66. package/dist/generated/VmLimitsConfig.js +1 -0
  67. package/dist/generated/VmListenPolicyConfig.d.ts +5 -0
  68. package/dist/generated/VmListenPolicyConfig.js +2 -0
  69. package/dist/generated/WasmLimitsConfig.d.ts +7 -0
  70. package/dist/generated/WasmLimitsConfig.js +2 -0
  71. package/dist/host-dir-mount.d.ts +1 -1
  72. package/dist/index.d.ts +0 -1
  73. package/dist/index.js +0 -1
  74. package/dist/options-schema.d.ts +14 -1
  75. package/dist/options-schema.js +27 -21
  76. package/dist/packages.d.ts +2 -2
  77. package/dist/packages.js +20 -6
  78. package/dist/runtime-compat.d.ts +17 -4
  79. package/dist/runtime-compat.js +51 -88
  80. package/dist/runtime.d.ts +27 -0
  81. package/dist/sandbox.d.ts +112 -0
  82. package/dist/sandbox.js +264 -0
  83. package/dist/sidecar/agentos-protocol.d.ts +27 -1
  84. package/dist/sidecar/agentos-protocol.js +77 -20
  85. package/dist/sidecar/native-process-client.d.ts +5 -4
  86. package/dist/sidecar/native-process-client.js +4 -4
  87. package/dist/sidecar/permissions.d.ts +1 -1
  88. package/dist/sidecar/rpc-client.d.ts +21 -2
  89. package/dist/sidecar/rpc-client.js +113 -41
  90. package/dist/types.d.ts +7 -1
  91. package/package.json +34 -35
  92. package/dist/agents.d.ts +0 -79
  93. package/dist/agents.js +0 -48
package/README.md CHANGED
@@ -112,7 +112,7 @@ await vm.dispose();
112
112
 
113
113
  | Method | Signature | Description |
114
114
  |--------|-----------|-------------|
115
- | `createSession` | `createSession(agentType: AgentType \| string, options?: CreateSessionOptions): Promise<{ sessionId: string }>` | Launch an agent and return a session ID |
115
+ | `createSession` | `createSession(agentType: AgentType, options?: CreateSessionOptions): Promise<{ sessionId: string }>` | Launch an agent and return a session ID |
116
116
  | `listSessions` | `listSessions(): SessionInfo[]` | List active sessions |
117
117
  | `destroySession` | `destroySession(sessionId: string): Promise<void>` | Gracefully cancel and close a session |
118
118
 
@@ -157,7 +157,7 @@ await vm.dispose();
157
157
  - `MountConfigCustom` — Caller-provided VirtualFileSystem
158
158
  - `NativeMountConfig` — Declarative sidecar mount plugin configuration
159
159
  - `MountConfigOverlay` — Copy-on-write overlay (lower + upper layers)
160
- - `chunkedS3MountPlugin()` — Declarative S3-compatible native mount plugin descriptor (from `@secure-exec/core/descriptors`)
160
+ - `chunkedS3MountPlugin()` — Declarative S3-compatible native mount plugin descriptor (from `@rivet-dev/agentos-runtime-core/descriptors`)
161
161
 
162
162
  **MCP Servers**
163
163
  - `McpServerConfig` — Union of local and remote MCP configs
@@ -177,8 +177,8 @@ await vm.dispose();
177
177
  - `BatchReadResult` — Result of a batch read (path, content, error?)
178
178
 
179
179
  **Agent**
180
- - `AgentType` — `"pi" | "pi-cli" | "opencode" | "claude"`
181
- - `AgentConfig` — Agent configuration (acpAdapter, agentPackage, prepareInstructions)
180
+ - `AgentType` — `string` (a package manifest `name`, e.g. `"pi"`, `"claude"`); agents are resolved dynamically from the configured `/opt/agentos` package manifests, so any manifest `name` is valid
181
+ - `AgentConfig` — Agent configuration (adapterEntrypoint, launchArgs, defaultEnv)
182
182
  - `AgentRegistryEntry` — Registry entry (id, acpAdapter, agentPackage, installed)
183
183
 
184
184
  **Session**
@@ -1,9 +1,9 @@
1
- import type { NativeMountPluginDescriptor } from "@secure-exec/core/descriptors";
1
+ import type { NativeMountPluginDescriptor } from "@rivet-dev/agentos-runtime-core/descriptors";
2
2
  import type { AgentCapabilities, AgentInfo, PermissionReply, PermissionRequestHandler, SessionConfigOption, SessionEventHandler, SessionModeState } from "./agent-session-types.js";
3
3
  import { type ToolKit } from "./host-tools.js";
4
4
  import type { JsonRpcResponse } from "./json-rpc.js";
5
5
  import type { ConnectTerminalOptions, Kernel, KernelExecOptions, KernelExecResult, ProcessInfo as KernelProcessInfo, KernelSpawnOptions, OpenShellOptions, Permissions, VirtualFileSystem, VirtualStat } from "./runtime-compat.js";
6
- export type { MountConfigJsonObject, MountConfigJsonPrimitive, MountConfigJsonValue, NativeMountPluginDescriptor, } from "@secure-exec/core/descriptors";
6
+ export type { MountConfigJsonObject, MountConfigJsonPrimitive, MountConfigJsonValue, NativeMountPluginDescriptor, } from "@rivet-dev/agentos-runtime-core/descriptors";
7
7
  export type { AgentCapabilities, AgentInfo, PermissionReply, PermissionRequest, PermissionRequestHandler, SessionConfigOption, SessionEventHandler, SessionInitData, SessionMode, SessionModeState, } from "./agent-session-types.js";
8
8
  export type { AcpTimeoutErrorData, JsonRpcError, JsonRpcErrorData, JsonRpcNotification, JsonRpcRequest, JsonRpcResponse, } from "./json-rpc.js";
9
9
  export { isAcpTimeoutErrorData } from "./json-rpc.js";
@@ -46,15 +46,11 @@ export interface BatchReadResult {
46
46
  /** Entry in the agent registry, describing an available agent type. */
47
47
  export interface AgentRegistryEntry {
48
48
  id: string;
49
- /** npm adapter package (legacy agents) — absent for `/opt/agentos` packages. */
50
- acpAdapter?: string;
51
- /** npm agent package (legacy agents) — absent for `/opt/agentos` packages. */
52
- agentPackage?: string;
53
- /** Pre-resolved adapter command path for an `/opt/agentos` agent package. */
54
- adapterEntrypoint?: string;
55
49
  installed: boolean;
50
+ /** Guest entrypoint the sidecar launches for this agent (`/opt/agentos/bin/<acpEntrypoint>`). */
51
+ adapterEntrypoint: string;
56
52
  }
57
- import type { AgentType } from "./agents.js";
53
+ import type { AgentType } from "./types.js";
58
54
  import type { ScheduleDriver } from "./cron/schedule-driver.js";
59
55
  import type { CronEventHandler, CronJob, CronJobInfo, CronJobOptions } from "./cron/types.js";
60
56
  import { type LayerStore, type OverlayFilesystemMode, type RootSnapshotExport, type SnapshotLayerHandle } from "./layers.js";
@@ -177,6 +173,10 @@ export interface AgentOsLimits {
177
173
  /** Guest JavaScript runtime buffering limits. */
178
174
  jsRuntime?: {
179
175
  v8HeapLimitMb?: number;
176
+ syncRpcWaitTimeoutMs?: number;
177
+ cpuTimeLimitMs?: number;
178
+ wallClockLimitMs?: number;
179
+ importCacheMaterializeTimeoutMs?: number;
180
180
  capturedOutputLimitBytes?: number;
181
181
  stdinBufferLimitBytes?: number;
182
182
  eventPayloadLimitBytes?: number;
@@ -186,6 +186,7 @@ export interface AgentOsLimits {
186
186
  python?: {
187
187
  outputBufferMaxBytes?: number;
188
188
  executionTimeoutMs?: number;
189
+ maxOldSpaceMb?: number;
189
190
  vfsRpcTimeoutMs?: number;
190
191
  };
191
192
  /** Guest WASM runtime limits. */
@@ -193,6 +194,8 @@ export interface AgentOsLimits {
193
194
  maxModuleFileBytes?: number;
194
195
  capturedOutputLimitBytes?: number;
195
196
  syncReadLimitBytes?: number;
197
+ prewarmTimeoutMs?: number;
198
+ runnerHeapLimitMb?: number;
196
199
  };
197
200
  }
198
201
  export interface AgentStderrEvent {
@@ -295,11 +298,6 @@ export interface AgentOsOptions {
295
298
  rootFilesystem?: RootFilesystemConfig;
296
299
  /** Filesystems to mount at boot time. */
297
300
  mounts?: MountConfig[];
298
- /**
299
- * @deprecated Use `mounts: [nodeModulesMount(path)]` instead.
300
- * Compatibility alias for mounting `<moduleAccessCwd>/node_modules` at `/root/node_modules`.
301
- */
302
- moduleAccessCwd?: string;
303
301
  /** Additional instructions appended to the base OS system prompt injected at session start. */
304
302
  additionalInstructions?: string;
305
303
  /** Custom schedule driver for cron jobs. Defaults to TimerScheduleDriver. */
@@ -443,12 +441,9 @@ export declare class AgentOs {
443
441
  private _closedShellIds;
444
442
  private _pendingShellExitPromises;
445
443
  private _shellCounter;
446
- /** Command names linked into `/opt/agentos/bin` at runtime (via the sidecar). */
447
- private _linkedCommands;
448
444
  private _acpTerminals;
449
445
  private _acpTerminalCounter;
450
446
  private _softwareRoots;
451
- private _softwareAgentConfigs;
452
447
  private _cronManager;
453
448
  private _toolKits;
454
449
  private _toolReference;
@@ -490,7 +485,6 @@ export declare class AgentOs {
490
485
  private _assertSafeAbsolutePath;
491
486
  private _assertWritableAbsolutePath;
492
487
  private _vfs;
493
- private _copyPath;
494
488
  readFile(path: string): Promise<Uint8Array>;
495
489
  writeFile(path: string, content: string | Uint8Array): Promise<void>;
496
490
  writeFiles(entries: BatchWriteEntry[]): Promise<BatchWriteResult[]>;
@@ -558,8 +552,17 @@ export declare class AgentOs {
558
552
  * lifetime (and across a snapshot iff the volume persists).
559
553
  */
560
554
  linkSoftware(descriptor: PackageRef | SoftwarePackageRef): Promise<void>;
561
- /** Returns all registered agents with their installation status. */
562
- listAgents(): AgentRegistryEntry[];
555
+ providedCommands(): Promise<{
556
+ packageName: string;
557
+ commands: string[];
558
+ }[]>;
559
+ /**
560
+ * Returns all registered agents with their installation status. Thin forwarder:
561
+ * sends `AcpListAgentsRequest` and maps the response. The sidecar enumerates the
562
+ * projected `/opt/agentos` packages (the client parses no manifests). Every such
563
+ * agent is a package materialized into the VM, so `installed` is always `true`.
564
+ */
565
+ listAgents(): Promise<AgentRegistryEntry[]>;
563
566
  private _syncSessionState;
564
567
  private _applySessionUpdate;
565
568
  private _recordSessionNotification;
@@ -599,7 +602,7 @@ export declare class AgentOs {
599
602
  private _rejectPendingPermissionRepliesFromSession;
600
603
  private _closeSessionInternal;
601
604
  private _hydrateSessionState;
602
- createSession(agentType: AgentType | string, options?: CreateSessionOptions): Promise<{
605
+ createSession(agentType: AgentType, options?: CreateSessionOptions): Promise<{
603
606
  sessionId: string;
604
607
  }>;
605
608
  /**
@@ -617,7 +620,7 @@ export declare class AgentOs {
617
620
  * Resume depends on a durable root; on a non-durable (default in-memory) root
618
621
  * there is no surviving store and the fallback tier always runs.
619
622
  */
620
- resumeSession(sessionId: string, agentType: AgentType | string, options?: ResumeSessionOptions): Promise<ResumeSessionResult>;
623
+ resumeSession(sessionId: string, agentType: AgentType, options?: ResumeSessionOptions): Promise<ResumeSessionResult>;
621
624
  private _installSidecarRequestHandler;
622
625
  private _handleAcpExtSidecarRequest;
623
626
  private _dispatchAcpSidecarRequest;
@@ -644,12 +647,6 @@ export declare class AgentOs {
644
647
  private _handleAcpReleaseTerminal;
645
648
  private _handleAcpResizeTerminal;
646
649
  private _handleAcpPermissionCallback;
647
- /**
648
- * Resolve an agent config by ID. Agents are /opt/agentos packages
649
- * registered from their manifests (explicit software at create, or lazily
650
- * linked dependency agents) — there is no hardcoded fallback config.
651
- */
652
- private _resolveAgentConfig;
653
650
  /**
654
651
  * Gracefully destroy a session: cancel any pending work, close the client,
655
652
  * and remove from tracking. Unlike close() which is abrupt, this attempts