@rivet-dev/agentos-core 0.0.0-main.29b0797 → 0.0.0-main.5ac5a14

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.
package/dist/sandbox.js CHANGED
@@ -241,24 +241,37 @@ export async function resolveSandboxOptions(options) {
241
241
  return rest;
242
242
  }
243
243
  const normalizedSandbox = await normalizeSandboxInput(sandbox);
244
- const sandboxOptions = normalizedSandbox.options;
245
- const expanded = rest;
246
- const mountPath = sandboxOptions.mountPath ?? "/mnt/sandbox";
247
- const mounts = [
248
- ...(expanded.mounts ?? []),
249
- {
250
- path: mountPath,
251
- plugin: createSandboxFs(sandboxOptions),
252
- readOnly: sandboxOptions.readOnly,
253
- },
254
- ];
255
- const bindings = [
256
- ...(expanded.bindings ?? []),
257
- createSandboxBindings(sandboxOptions),
258
- ];
259
- return attachSandboxDisposeHooks({
260
- ...expanded,
261
- mounts,
262
- bindings,
263
- }, normalizedSandbox.dispose ? [normalizedSandbox.dispose] : []);
244
+ try {
245
+ const sandboxOptions = normalizedSandbox.options;
246
+ const expanded = rest;
247
+ const mountPath = sandboxOptions.mountPath ?? "/mnt/sandbox";
248
+ const mounts = [
249
+ ...(expanded.mounts ?? []),
250
+ {
251
+ path: mountPath,
252
+ plugin: createSandboxFs(sandboxOptions),
253
+ readOnly: sandboxOptions.readOnly,
254
+ },
255
+ ];
256
+ const bindings = [
257
+ ...(expanded.bindings ?? []),
258
+ createSandboxBindings(sandboxOptions),
259
+ ];
260
+ return attachSandboxDisposeHooks({
261
+ ...expanded,
262
+ mounts,
263
+ bindings,
264
+ }, normalizedSandbox.dispose ? [normalizedSandbox.dispose] : []);
265
+ }
266
+ catch (error) {
267
+ if (!normalizedSandbox.dispose)
268
+ throw error;
269
+ try {
270
+ await normalizedSandbox.dispose();
271
+ }
272
+ catch (disposeError) {
273
+ throw new AggregateError([error, disposeError], "Sandbox configuration and cleanup failed");
274
+ }
275
+ throw error;
276
+ }
264
277
  }
@@ -23,6 +23,7 @@ export type AcpCreateSessionRequest = {
23
23
  readonly agentType: string;
24
24
  readonly runtime: AcpRuntimeKind;
25
25
  readonly cwd: string;
26
+ readonly additionalDirectories: readonly string[];
26
27
  readonly args: readonly string[];
27
28
  readonly env: ReadonlyMap<string, string>;
28
29
  readonly protocolVersion: i32;
@@ -235,15 +236,19 @@ export declare function writeAcpCloseSessionRequest(bc: bare.ByteCursor, x: AcpC
235
236
  * Resume a session that exists in durable storage but is not live in the current
236
237
  * VM (e.g. after a Rivet actor slept and woke with a fresh VM). The sidecar runs
237
238
  * the stateless resume state machine (native session/load when the agent supports
238
- * it, else a fresh session/new + transcript continuation preamble). `cwd`/`env`
239
- * describe the fresh adapter launch used by the fallback tier. `transcriptPath`,
240
- * when present, is a guest-readable path the fallback preamble points the agent at.
239
+ * it, else a fresh session/new + transcript continuation preamble). `runtime`,
240
+ * `cwd`, and `env` describe the fresh adapter launch used by the fallback tier.
241
+ * `transcriptPath`, when present, is a guest-readable path the fallback preamble
242
+ * points the agent at.
241
243
  */
242
244
  export type AcpResumeSessionRequest = {
243
245
  readonly sessionId: string;
244
246
  readonly agentType: string;
247
+ readonly runtime: AcpRuntimeKind;
245
248
  readonly transcriptPath: string | null;
246
249
  readonly cwd: string;
250
+ readonly additionalDirectories: readonly string[];
251
+ readonly mcpServers: JsonUtf8;
247
252
  readonly env: ReadonlyMap<string, string>;
248
253
  };
249
254
  export declare function readAcpResumeSessionRequest(bc: bare.ByteCursor): AcpResumeSessionRequest;
@@ -475,6 +480,12 @@ export declare function writeAcpSessionCreatedResponse(bc: bare.ByteCursor, x: A
475
480
  export type AcpSessionRpcResponse = {
476
481
  readonly sessionId: string;
477
482
  readonly response: JsonUtf8;
483
+ /**
484
+ * Number of request-scoped AcpSessionEvent frames emitted before this
485
+ * terminal response. Clients use this as an event-delivery barrier because
486
+ * response and event frames travel on separate priority lanes.
487
+ */
488
+ readonly eventCount: u32;
478
489
  };
479
490
  export declare function readAcpSessionRpcResponse(bc: bare.ByteCursor): AcpSessionRpcResponse;
480
491
  export declare function writeAcpSessionRpcResponse(bc: bare.ByteCursor, x: AcpSessionRpcResponse): void;
@@ -97,6 +97,7 @@ export function readAcpCreateSessionRequest(bc) {
97
97
  agentType: bare.readString(bc),
98
98
  runtime: readAcpRuntimeKind(bc),
99
99
  cwd: bare.readString(bc),
100
+ additionalDirectories: read0(bc),
100
101
  args: read0(bc),
101
102
  env: read1(bc),
102
103
  protocolVersion: bare.readI32(bc),
@@ -110,6 +111,7 @@ export function writeAcpCreateSessionRequest(bc, x) {
110
111
  bare.writeString(bc, x.agentType);
111
112
  writeAcpRuntimeKind(bc, x.runtime);
112
113
  bare.writeString(bc, x.cwd);
114
+ write0(bc, x.additionalDirectories);
113
115
  write0(bc, x.args);
114
116
  write1(bc, x.env);
115
117
  bare.writeI32(bc, x.protocolVersion);
@@ -371,16 +373,22 @@ export function readAcpResumeSessionRequest(bc) {
371
373
  return {
372
374
  sessionId: bare.readString(bc),
373
375
  agentType: bare.readString(bc),
376
+ runtime: readAcpRuntimeKind(bc),
374
377
  transcriptPath: read2(bc),
375
378
  cwd: bare.readString(bc),
379
+ additionalDirectories: read0(bc),
380
+ mcpServers: readJsonUtf8(bc),
376
381
  env: read1(bc),
377
382
  };
378
383
  }
379
384
  export function writeAcpResumeSessionRequest(bc, x) {
380
385
  bare.writeString(bc, x.sessionId);
381
386
  bare.writeString(bc, x.agentType);
387
+ writeAcpRuntimeKind(bc, x.runtime);
382
388
  write2(bc, x.transcriptPath);
383
389
  bare.writeString(bc, x.cwd);
390
+ write0(bc, x.additionalDirectories);
391
+ writeJsonUtf8(bc, x.mcpServers);
384
392
  write1(bc, x.env);
385
393
  }
386
394
  export function readAcpDeliverAgentOutputRequest(bc) {
@@ -851,11 +859,13 @@ export function readAcpSessionRpcResponse(bc) {
851
859
  return {
852
860
  sessionId: bare.readString(bc),
853
861
  response: readJsonUtf8(bc),
862
+ eventCount: bare.readU32(bc),
854
863
  };
855
864
  }
856
865
  export function writeAcpSessionRpcResponse(bc, x) {
857
866
  bare.writeString(bc, x.sessionId);
858
867
  writeJsonUtf8(bc, x.response);
868
+ bare.writeU32(bc, x.eventCount);
859
869
  }
860
870
  function read11(bc) {
861
871
  return bare.readBool(bc) ? bare.readI32(bc) : null;
@@ -183,6 +183,7 @@ export declare class NativeSidecarKernelProxy {
183
183
  port?: number;
184
184
  }): KernelSocketSnapshot | null;
185
185
  getSignalState(pid: number): KernelSignalState;
186
+ private scheduleSignalStateRefresh;
186
187
  private refreshSocketLookup;
187
188
  private refreshSignalState;
188
189
  private refreshProcessSnapshot;
@@ -361,16 +361,16 @@ export class NativeSidecarKernelProxy {
361
361
  const parsedCommand = parseSimpleExecCommand(command);
362
362
  const runAndCapture = async (proc, stdinOverride, readExitCode) => {
363
363
  if (stdinOverride !== undefined) {
364
- proc.writeStdin(stdinOverride);
364
+ await proc.writeStdin(stdinOverride);
365
365
  }
366
366
  else if (options?.stdin !== undefined) {
367
- proc.writeStdin(options.stdin);
367
+ await proc.writeStdin(options.stdin);
368
368
  }
369
369
  // `kernel.exec()` is a non-interactive run-to-completion API: when the
370
370
  // caller does not opt into a streaming stdin handle, the guest process
371
371
  // should observe EOF after any provided input so commands like
372
372
  // `node -e ...` do not linger behind an inherited open stdin pipe.
373
- proc.closeStdin();
373
+ await proc.closeStdin();
374
374
  const waitPromise = proc.wait();
375
375
  const shellExitCode = typeof options?.timeout === "number"
376
376
  ? await new Promise((resolve) => {
@@ -438,9 +438,9 @@ export class NativeSidecarKernelProxy {
438
438
  const effectiveCwd = options?.cwd ?? this.defaultExecCwd ?? this.cwd;
439
439
  const runAndCapture = async (proc) => {
440
440
  if (options?.stdin !== undefined) {
441
- proc.writeStdin(options.stdin);
441
+ await proc.writeStdin(options.stdin);
442
442
  }
443
- proc.closeStdin();
443
+ await proc.closeStdin();
444
444
  const waitPromise = proc.wait();
445
445
  const exitCode = typeof options?.timeout === "number"
446
446
  ? await new Promise((resolve) => {
@@ -524,9 +524,9 @@ export class NativeSidecarKernelProxy {
524
524
  rejectWait,
525
525
  onStdout: new Set(options?.onStdout ? [options.onStdout] : []),
526
526
  onStderr: new Set(options?.onStderr ? [options.onStderr] : []),
527
- pendingStdin: [],
527
+ pendingStdin: options?.stdin === undefined ? [] : [options.stdin],
528
528
  stdinFlushPromise: null,
529
- pendingCloseStdin: false,
529
+ pendingCloseStdin: !options?.streamStdin,
530
530
  pendingKillSignal: null,
531
531
  waitWithFallbackPromise: null,
532
532
  hostExitObservedAt: null,
@@ -1001,7 +1001,9 @@ export class NativeSidecarKernelProxy {
1001
1001
  });
1002
1002
  const restoreRawMode = stdin.isTTY && typeof stdin.setRawMode === "function";
1003
1003
  const onStdinData = (data) => {
1004
- shell.write(data);
1004
+ void shell.write(data).catch((error) => {
1005
+ console.error("[agentos] failed to forward terminal stdin:", error);
1006
+ });
1005
1007
  };
1006
1008
  const onResize = () => {
1007
1009
  shell.resize(stdout.columns, stdout.rows);
@@ -1265,11 +1267,17 @@ export class NativeSidecarKernelProxy {
1265
1267
  }
1266
1268
  getSignalState(pid) {
1267
1269
  const entry = this.trackedProcesses.get(pid);
1268
- if (entry && !this.signalRefreshes.has(pid)) {
1269
- this.signalRefreshes.set(pid, this.refreshSignalState(entry));
1270
- }
1270
+ if (entry)
1271
+ this.scheduleSignalStateRefresh(entry);
1271
1272
  return this.signalStates.get(pid) ?? { handlers: new Map() };
1272
1273
  }
1274
+ scheduleSignalStateRefresh(entry) {
1275
+ if (this.signalRefreshes.has(entry.pid))
1276
+ return;
1277
+ const refresh = this.refreshSignalState(entry);
1278
+ this.signalRefreshes.set(entry.pid, refresh);
1279
+ void refresh.catch(() => { });
1280
+ }
1273
1281
  async refreshSocketLookup(cache, key, lookup) {
1274
1282
  try {
1275
1283
  const socket = await lookup();
@@ -1361,7 +1369,11 @@ export class NativeSidecarKernelProxy {
1361
1369
  entry.started = true;
1362
1370
  this.updateTrackedProcessSnapshot(entry);
1363
1371
  void this.refreshProcessSnapshot().catch(() => { });
1364
- await this.refreshSignalState(entry);
1372
+ // Signal metadata is advisory and must not hold process startup behind a
1373
+ // second sidecar RPC. Very short binding commands can finish while the
1374
+ // original execute response is still in flight; synchronously refreshing
1375
+ // here creates a circular wait with their output/exit delivery.
1376
+ this.scheduleSignalStateRefresh(entry);
1365
1377
  void this.flushPendingStdin(entry).catch((error) => {
1366
1378
  this.handleBackgroundProcessError(entry, error);
1367
1379
  });
@@ -1389,10 +1401,7 @@ export class NativeSidecarKernelProxy {
1389
1401
  }
1390
1402
  entry.outputGeneration += 1;
1391
1403
  void this.refreshProcessSnapshot().catch(() => { });
1392
- if (!this.signalRefreshes.has(entry.pid)) {
1393
- this.signalRefreshes.set(entry.pid, this.refreshSignalState(entry));
1394
- await this.signalRefreshes.get(entry.pid);
1395
- }
1404
+ this.scheduleSignalStateRefresh(entry);
1396
1405
  const chunk = event.payload.chunk;
1397
1406
  const listeners = event.payload.channel === "stdout"
1398
1407
  ? entry.onStdout
package/dist/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export type { AgentOsCreateSidecarOptions, AgentOsLimits, AgentOsOptions, AgentOsSharedSidecarOptions, AgentOsSidecarConfig, AgentOsSidecarDescription, AgentExitEvent, AgentExitHandler, AgentRestartOutcome, AgentStderrEvent, AgentStderrHandler, AgentRegistryEntry, BatchReadResult, BatchWriteEntry, BatchWriteResult, DirEntry, DynamicMountDescriptor, ExportRootFilesystemOptions, HttpRequest, HttpResponse, LimitWarning, LimitWarningHandler, MountConfig, MountInfo, MountConfigJsonObject, MountConfigJsonPrimitive, MountConfigJsonValue, NativeMountConfig, NativeMountPluginDescriptor, NativeRootFilesystemConfig, OverlayMountConfig, OverlayRootFilesystemConfig, PlainMountConfig, ProcessTreeNode, ProcessExit, ProcessOutput, ReaddirEntry, ReaddirRecursiveOptions, RootFilesystemConfig, RootLowerInput, SpawnedProcessInfo, SpawnOptions, ShellData, ShellExit, ShellOptions, } from "./agent-os.js";
1
+ export type { AgentExitEvent, AgentExitHandler, AgentOsCreateSidecarOptions, AgentOsLimits, AgentOsOptions, AgentOsSharedSidecarOptions, AgentOsSidecarConfig, AgentOsSidecarDescription, AgentRegistryEntry, AgentRestartOutcome, AgentStderrEvent, AgentStderrHandler, BatchReadResult, BatchWriteEntry, BatchWriteResult, DirEntry, DynamicMountDescriptor, ExportRootFilesystemOptions, HttpRequest, HttpResponse, LimitWarning, LimitWarningHandler, MountConfig, MountConfigJsonObject, MountConfigJsonPrimitive, MountConfigJsonValue, MountInfo, NativeMountConfig, NativeMountPluginDescriptor, NativeRootFilesystemConfig, OverlayMountConfig, OverlayRootFilesystemConfig, PlainMountConfig, ProcessOutput, ProcessTreeNode, ReaddirEntry, ReaddirRecursiveOptions, RootFilesystemConfig, RootLowerInput, ShellData, ShellExit, ShellOptions, } from "./agent-os.js";
2
+ export type { CodeEvaluationResult, CodeExecutionResult, ContextDescriptor, ContextState, ExecutionErrorData, ExecutionSignal, InlineExecutionOptions, JavaScriptEvaluationOptions, JavaScriptExecutionOptions, LanguageExecutionOptions, LanguageSpawnOptions, NpmPackageInstallOptions, NpmProjectInstallOptions, OutputCapture, OutputReplay, ProcessDescriptor, ProcessExit, ProcessOutputEvent, PythonInstallOptions, SpawnOptions, TypeScriptCheckOptions, TypeScriptCheckResult, TypeScriptDiagnostic, TypeScriptEvaluationOptions, TypeScriptExecutionOptions, TypeScriptFileExecutionOptions, } from "./language-execution.js";
2
3
  export type * from "./session-api.js";
3
4
  /**
4
5
  * An agent type id — the `name` of an `/opt/agentos` agent package manifest
@@ -7,10 +8,11 @@ export type * from "./session-api.js";
7
8
  * passes only the name, so any manifest `name` is a valid agent type.
8
9
  */
9
10
  export type AgentType = string;
11
+ export type { AgentBlock, PackageDescriptor, PackageRef, SoftwarePackageRef, } from "./agentos-package.js";
12
+ export type { Binding, BindingExample, Bindings } from "./bindings.js";
10
13
  export type { CronAction, CronActionInfo, CronEvent, CronEventHandler, CronJob, CronJobInfo, CronJobOptions, ScheduleDriver, ScheduleEntry, ScheduleHandle, } from "./cron/index.js";
11
14
  export type { HostDirBackendOptions, HostDirMountPluginConfig, NodeModulesMountConfig, } from "./host-dir-mount.js";
12
- export type { Binding, BindingExample, Bindings } from "./bindings.js";
13
15
  export type { FilesystemSnapshotExport, LayerHandle, LayerStore, OverlayFilesystemMode, RootSnapshotExport, SnapshotImportSource, SnapshotLayerHandle, WritableLayerHandle, } from "./layers.js";
14
16
  export type { SoftwareInput, SoftwareRoot } from "./packages.js";
15
- export type { AgentBlock, PackageDescriptor, PackageRef, SoftwarePackageRef, } from "./agentos-package.js";
16
17
  export type { ChildProcessPermissions, ConnectTerminalOptions, EnvPermissions, ExecOptions, ExecResult, FsPermissionRule, FsPermissions, KernelExecOptions, KernelExecResult, KernelSpawnOptions, NetworkAccessRequest, NetworkPermissions, OpenShellOptions, PatternPermissionRule, PermissionDecision, PermissionMode, Permissions, ProcessInfo, RulePermissions, StdioChannel, TimingMitigation, VirtualDirEntry, VirtualFileSystem, VirtualStat, } from "./runtime.js";
18
+ export type { AgentOsSandboxClient, AgentOsSandboxClientOptions, AgentOsSandboxCommonOptions, AgentOsSandboxInput, AgentOsSandboxOptions, AgentOsSandboxProcessInfo, AgentOsSandboxProcessLogs, AgentOsSandboxProcessResult, AgentOsSandboxProvider, AgentOsSandboxProviderOptions, SandboxMountPluginConfig, } from "./sandbox.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rivet-dev/agentos-core",
3
- "version": "0.0.0-main.29b0797",
3
+ "version": "0.0.0-main.5ac5a14",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./dist/index.js",
@@ -19,6 +19,11 @@
19
19
  "import": "./dist/runtime-compat.js",
20
20
  "default": "./dist/runtime-compat.js"
21
21
  },
22
+ "./internal/code-execution": {
23
+ "types": "./dist/code-execution.d.ts",
24
+ "import": "./dist/code-execution.js",
25
+ "default": "./dist/code-execution.js"
26
+ },
22
27
  "./test/file-system": {
23
28
  "types": "./dist/test/file-system.d.ts",
24
29
  "import": "./dist/test/file-system.js",
@@ -51,27 +56,26 @@
51
56
  "build:agentos-protocol": "node ./scripts/compile-agentos-protocol.mjs",
52
57
  "build:protocols": "pnpm run build:agentos-protocol",
53
58
  "test": "vitest run --exclude '**/*.nightly.test.ts' --reporter=verbose",
54
- "test:pr": "vitest run tests/migration-parity.test.ts --fileParallelism=false --reporter=verbose",
59
+ "test:unit": "vitest run tests/agent-exit-event.test.ts tests/agentos-package.test.ts tests/agentos-protocol.test.ts tests/allowed-node-builtins.test.ts tests/bindings-zod.test.ts tests/bindings.test.ts tests/cron-manager.test.ts tests/cron-timer-driver.test.ts tests/execution-abort.test.ts tests/generated-protocol.test.ts tests/leak-agent-os-processes.test.ts tests/leak-rpc-client.test.ts tests/mount-descriptors.test.ts tests/mount-reconfigure.test.ts tests/options-schema.test.ts tests/public-api-exports.test.ts tests/root-filesystem-descriptors.test.ts tests/runtime-compat-mount.test.ts tests/session-event-ordering.test.ts tests/session-permission-surface.test.ts tests/sidecar-client.test.ts tests/sidecar-permission-descriptors.test.ts tests/wasm-permission-tiers.test.ts --fileParallelism=false",
60
+ "test:pr": "pnpm test:unit && vitest run tests/migration-parity.test.ts tests/acp-reactor-regression.test.ts --fileParallelism=false --reporter=verbose",
55
61
  "test:nightly": "vitest run tests/*.nightly.test.ts --reporter=verbose --passWithNoTests"
56
62
  },
57
63
  "dependencies": {
58
64
  "@agentclientprotocol/sdk": "0.16.1",
59
65
  "@agentos-software/claude-code": "0.2.7",
60
66
  "@agentos-software/codex-cli": "0.3.4",
61
- "@agentos-software/common": "0.0.0-main.29b0797",
62
- "@agentos-software/manifest": "0.0.0-main.29b0797",
67
+ "@agentos-software/common": "0.0.0-main.5ac5a14",
68
+ "@agentos-software/manifest": "0.0.0-main.5ac5a14",
63
69
  "@agentos-software/opencode": "0.2.7",
64
70
  "@agentos-software/pi": "0.2.7",
65
- "@agentos-software/pi-cli": "0.2.7",
66
71
  "@aws-sdk/client-s3": "^3.1019.0",
67
- "@rivet-dev/agentos-sidecar": "0.0.0-main.29b0797",
72
+ "@rivet-dev/agentos-sidecar": "0.0.0-main.5ac5a14",
68
73
  "@rivetkit/bare-ts": "^0.6.2",
69
- "@rivet-dev/agentos-runtime-core": "0.0.0-main.29b0797",
74
+ "@rivet-dev/agentos-runtime-core": "0.0.0-main.5ac5a14",
70
75
  "@xterm/headless": "^6.0.0",
71
76
  "better-sqlite3": "^12.8.0",
72
77
  "croner": "^10.0.1",
73
78
  "googleapis": "^144.0.0",
74
- "isolated-vm": "^6.0.0",
75
79
  "long-timeout": "^0.1.1",
76
80
  "minimatch": "^10.2.4",
77
81
  "zod": "^4.1.11",
@@ -80,29 +84,28 @@
80
84
  "devDependencies": {
81
85
  "@agentos-software/claude-code": "0.2.7",
82
86
  "@agentos-software/codex": "0.2.7",
83
- "@agentos-software/coreutils": "0.3.3",
87
+ "@agentos-software/coreutils": "0.3.4",
84
88
  "@agentos-software/curl": "0.3.3",
85
- "@agentos-software/diffutils": "0.3.3",
89
+ "@agentos-software/diffutils": "0.3.4",
86
90
  "@agentos-software/duckdb": "0.3.3",
87
91
  "@agentos-software/fd": "0.3.3",
88
92
  "@agentos-software/file": "0.3.3",
89
- "@agentos-software/findutils": "0.3.3",
90
- "@agentos-software/gawk": "0.3.3",
93
+ "@agentos-software/findutils": "0.3.4",
94
+ "@agentos-software/gawk": "0.3.4",
91
95
  "@agentos-software/git": "0.3.3",
92
- "@agentos-software/grep": "0.3.3",
93
- "@agentos-software/gzip": "0.3.3",
96
+ "@agentos-software/grep": "0.3.4",
97
+ "@agentos-software/gzip": "0.3.4",
94
98
  "@agentos-software/jq": "0.3.3",
95
99
  "@agentos-software/opencode": "0.2.7",
96
100
  "@agentos-software/pi": "0.2.7",
97
- "@agentos-software/pi-cli": "0.2.7",
98
101
  "@agentos-software/ripgrep": "0.3.3",
99
- "@agentos-software/sed": "0.3.3",
100
- "@agentos-software/tar": "0.3.3",
102
+ "@agentos-software/sed": "0.3.4",
103
+ "@agentos-software/tar": "0.3.5",
101
104
  "@agentos-software/tree": "0.3.3",
102
105
  "@agentos-software/vim": "0.3.3",
103
106
  "@agentos-software/wget": "0.3.3",
104
107
  "@agentos-software/yq": "0.3.3",
105
- "@rivet-dev/agentos-test-harness": "0.0.0-main.29b0797",
108
+ "@rivet-dev/agentos-test-harness": "0.0.0-main.5ac5a14",
106
109
  "@anthropic-ai/claude-agent-sdk": "^0.2.87",
107
110
  "@anthropic-ai/claude-code": "^2.1.86",
108
111
  "@bare-ts/tools": "0.15.0",
@@ -110,13 +113,16 @@
110
113
  "@browserbasehq/cli": "0.5.4",
111
114
  "@browserbasehq/sdk": "2.10.0",
112
115
  "@copilotkit/llmock": "^1.6.0",
113
- "@mariozechner/pi-coding-agent": "^0.60.0",
114
116
  "@types/node": "^22.10.2",
115
- "pi-acp": "^0.0.23",
116
117
  "sandbox-agent": "^0.4.2",
117
118
  "typescript": "^5.7.2",
118
119
  "vitest": "^2.1.8",
119
120
  "ws": "^8.18.0",
120
121
  "zod3": "npm:zod@^3.25.76"
122
+ },
123
+ "repository": {
124
+ "type": "git",
125
+ "url": "https://github.com/rivet-dev/agentos.git",
126
+ "directory": "packages/core"
121
127
  }
122
128
  }