@rivet-dev/agentos-core 0.0.0-integrate-dylib-into-main.815fcda → 0.0.0-main.b8ca993

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 (101) hide show
  1. package/README.md +5 -8
  2. package/dist/agent-os.d.ts +168 -46
  3. package/dist/agent-os.js +809 -543
  4. package/dist/agentos-package.d.ts +29 -0
  5. package/dist/agentos-package.js +88 -0
  6. package/dist/base-filesystem.d.ts +2 -15
  7. package/dist/base-filesystem.js +23 -171
  8. package/dist/cron/types.d.ts +1 -1
  9. package/dist/default-software.d.ts +8 -0
  10. package/dist/default-software.js +10 -0
  11. package/dist/generated/AcpLimitsConfig.d.ts +4 -0
  12. package/dist/generated/AcpLimitsConfig.js +2 -0
  13. package/dist/generated/CreateVmConfig.d.ts +26 -0
  14. package/dist/generated/CreateVmConfig.js +1 -0
  15. package/dist/generated/FsPermissionRule.d.ts +6 -0
  16. package/dist/generated/FsPermissionRule.js +1 -0
  17. package/dist/generated/FsPermissionRuleSet.d.ts +6 -0
  18. package/dist/generated/FsPermissionRuleSet.js +1 -0
  19. package/dist/generated/FsPermissionScope.d.ts +3 -0
  20. package/dist/generated/FsPermissionScope.js +1 -0
  21. package/dist/generated/HttpLimitsConfig.d.ts +3 -0
  22. package/dist/generated/HttpLimitsConfig.js +2 -0
  23. package/dist/generated/JsModuleResolution.d.ts +1 -0
  24. package/dist/generated/JsModuleResolution.js +2 -0
  25. package/dist/generated/JsRuntimeConfig.d.ts +31 -0
  26. package/dist/generated/JsRuntimeConfig.js +1 -0
  27. package/dist/generated/JsRuntimeLimitsConfig.d.ts +11 -0
  28. package/dist/generated/JsRuntimeLimitsConfig.js +2 -0
  29. package/dist/generated/JsRuntimePlatform.d.ts +1 -0
  30. package/dist/generated/JsRuntimePlatform.js +2 -0
  31. package/dist/generated/MountPluginDescriptor.d.ts +4 -0
  32. package/dist/generated/MountPluginDescriptor.js +2 -0
  33. package/dist/generated/NativeRootFilesystemConfig.d.ts +5 -0
  34. package/dist/generated/NativeRootFilesystemConfig.js +1 -0
  35. package/dist/generated/PatternPermissionRule.d.ts +6 -0
  36. package/dist/generated/PatternPermissionRule.js +1 -0
  37. package/dist/generated/PatternPermissionRuleSet.d.ts +6 -0
  38. package/dist/generated/PatternPermissionRuleSet.js +1 -0
  39. package/dist/generated/PatternPermissionScope.d.ts +3 -0
  40. package/dist/generated/PatternPermissionScope.js +1 -0
  41. package/dist/generated/PermissionMode.d.ts +1 -0
  42. package/dist/generated/PermissionMode.js +2 -0
  43. package/dist/generated/PermissionsPolicy.d.ts +10 -0
  44. package/dist/generated/PermissionsPolicy.js +1 -0
  45. package/dist/generated/PluginLimitsConfig.d.ts +4 -0
  46. package/dist/generated/PluginLimitsConfig.js +2 -0
  47. package/dist/generated/PythonLimitsConfig.d.ts +6 -0
  48. package/dist/generated/PythonLimitsConfig.js +2 -0
  49. package/dist/generated/ResourceLimitsConfig.d.ts +24 -0
  50. package/dist/generated/ResourceLimitsConfig.js +2 -0
  51. package/dist/generated/RootFilesystemConfig.d.ts +9 -0
  52. package/dist/generated/RootFilesystemConfig.js +1 -0
  53. package/dist/generated/RootFilesystemEntry.d.ts +13 -0
  54. package/dist/generated/RootFilesystemEntry.js +1 -0
  55. package/dist/generated/RootFilesystemEntryEncoding.d.ts +1 -0
  56. package/dist/generated/RootFilesystemEntryEncoding.js +2 -0
  57. package/dist/generated/RootFilesystemEntryKind.d.ts +1 -0
  58. package/dist/generated/RootFilesystemEntryKind.js +2 -0
  59. package/dist/generated/RootFilesystemLowerDescriptor.d.ts +7 -0
  60. package/dist/generated/RootFilesystemLowerDescriptor.js +1 -0
  61. package/dist/generated/RootFilesystemMode.d.ts +1 -0
  62. package/dist/generated/RootFilesystemMode.js +2 -0
  63. package/dist/generated/ToolLimitsConfig.d.ts +10 -0
  64. package/dist/generated/ToolLimitsConfig.js +2 -0
  65. package/dist/generated/VmDnsConfig.d.ts +6 -0
  66. package/dist/generated/VmDnsConfig.js +2 -0
  67. package/dist/generated/VmLimitsConfig.d.ts +18 -0
  68. package/dist/generated/VmLimitsConfig.js +1 -0
  69. package/dist/generated/VmListenPolicyConfig.d.ts +5 -0
  70. package/dist/generated/VmListenPolicyConfig.js +2 -0
  71. package/dist/generated/WasmLimitsConfig.d.ts +7 -0
  72. package/dist/generated/WasmLimitsConfig.js +2 -0
  73. package/dist/host-dir-mount.d.ts +1 -1
  74. package/dist/host-tools-zod.js +27 -7
  75. package/dist/host-tools.js +9 -0
  76. package/dist/index.d.ts +3 -1
  77. package/dist/index.js +2 -1
  78. package/dist/layers.d.ts +2 -2
  79. package/dist/layers.js +19 -10
  80. package/dist/options-schema.d.ts +453 -0
  81. package/dist/options-schema.js +268 -0
  82. package/dist/packages.d.ts +17 -116
  83. package/dist/packages.js +35 -322
  84. package/dist/runtime-compat.d.ts +22 -9
  85. package/dist/runtime-compat.js +130 -144
  86. package/dist/runtime.d.ts +32 -5
  87. package/dist/sandbox.d.ts +112 -0
  88. package/dist/sandbox.js +264 -0
  89. package/dist/sidecar/agentos-protocol.d.ts +99 -1
  90. package/dist/sidecar/agentos-protocol.js +155 -18
  91. package/dist/sidecar/native-process-client.d.ts +6 -2
  92. package/dist/sidecar/native-process-client.js +8 -1
  93. package/dist/sidecar/permissions.d.ts +1 -1
  94. package/dist/sidecar/permissions.js +4 -4
  95. package/dist/sidecar/rpc-client.d.ts +62 -4
  96. package/dist/sidecar/rpc-client.js +339 -85
  97. package/dist/types.d.ts +10 -3
  98. package/package.json +40 -33
  99. package/dist/agents.d.ts +0 -63
  100. package/dist/agents.js +0 -42
  101. package/fixtures/AGENTOS_SYSTEM_PROMPT.md +0 -21
@@ -96,7 +96,6 @@ export function readAcpCreateSessionRequest(bc) {
96
96
  return {
97
97
  agentType: bare.readString(bc),
98
98
  runtime: readAcpRuntimeKind(bc),
99
- adapterEntrypoint: bare.readString(bc),
100
99
  cwd: bare.readString(bc),
101
100
  args: read0(bc),
102
101
  env: read1(bc),
@@ -110,7 +109,6 @@ export function readAcpCreateSessionRequest(bc) {
110
109
  export function writeAcpCreateSessionRequest(bc, x) {
111
110
  bare.writeString(bc, x.agentType);
112
111
  writeAcpRuntimeKind(bc, x.runtime);
113
- bare.writeString(bc, x.adapterEntrypoint);
114
112
  bare.writeString(bc, x.cwd);
115
113
  write0(bc, x.args);
116
114
  write1(bc, x.env);
@@ -141,6 +139,51 @@ export function writeAcpSessionRequest(bc, x) {
141
139
  bare.writeString(bc, x.method);
142
140
  write3(bc, x.params);
143
141
  }
142
+ export function readAcpListAgentsRequest(bc) {
143
+ return {
144
+ reserved: bare.readBool(bc),
145
+ };
146
+ }
147
+ export function writeAcpListAgentsRequest(bc, x) {
148
+ bare.writeBool(bc, x.reserved);
149
+ }
150
+ export function readAcpAgentEntry(bc) {
151
+ return {
152
+ id: bare.readString(bc),
153
+ installed: bare.readBool(bc),
154
+ adapterEntrypoint: bare.readString(bc),
155
+ };
156
+ }
157
+ export function writeAcpAgentEntry(bc, x) {
158
+ bare.writeString(bc, x.id);
159
+ bare.writeBool(bc, x.installed);
160
+ bare.writeString(bc, x.adapterEntrypoint);
161
+ }
162
+ function read4(bc) {
163
+ const len = bare.readUintSafe(bc);
164
+ if (len === 0) {
165
+ return [];
166
+ }
167
+ const result = [readAcpAgentEntry(bc)];
168
+ for (let i = 1; i < len; i++) {
169
+ result[i] = readAcpAgentEntry(bc);
170
+ }
171
+ return result;
172
+ }
173
+ function write4(bc, x) {
174
+ bare.writeUintSafe(bc, x.length);
175
+ for (let i = 0; i < x.length; i++) {
176
+ writeAcpAgentEntry(bc, x[i]);
177
+ }
178
+ }
179
+ export function readAcpListAgentsResponse(bc) {
180
+ return {
181
+ agents: read4(bc),
182
+ };
183
+ }
184
+ export function writeAcpListAgentsResponse(bc, x) {
185
+ write4(bc, x.agents);
186
+ }
144
187
  export function readAcpGetSessionStateRequest(bc) {
145
188
  return {
146
189
  sessionId: bare.readString(bc),
@@ -173,6 +216,16 @@ export function writeAcpResumeSessionRequest(bc, x) {
173
216
  bare.writeString(bc, x.cwd);
174
217
  write1(bc, x.env);
175
218
  }
219
+ export function readAcpDeliverAgentOutputRequest(bc) {
220
+ return {
221
+ processId: bare.readString(bc),
222
+ chunk: bare.readData(bc),
223
+ };
224
+ }
225
+ export function writeAcpDeliverAgentOutputRequest(bc, x) {
226
+ bare.writeString(bc, x.processId);
227
+ bare.writeData(bc, x.chunk);
228
+ }
176
229
  export function readAcpRequest(bc) {
177
230
  const offset = bc.offset;
178
231
  const tag = bare.readU8(bc);
@@ -187,6 +240,10 @@ export function readAcpRequest(bc) {
187
240
  return { tag: "AcpCloseSessionRequest", val: readAcpCloseSessionRequest(bc) };
188
241
  case 4:
189
242
  return { tag: "AcpResumeSessionRequest", val: readAcpResumeSessionRequest(bc) };
243
+ case 5:
244
+ return { tag: "AcpDeliverAgentOutputRequest", val: readAcpDeliverAgentOutputRequest(bc) };
245
+ case 6:
246
+ return { tag: "AcpListAgentsRequest", val: readAcpListAgentsRequest(bc) };
190
247
  default: {
191
248
  bc.offset = offset;
192
249
  throw new bare.BareError(offset, "invalid tag");
@@ -220,6 +277,16 @@ export function writeAcpRequest(bc, x) {
220
277
  writeAcpResumeSessionRequest(bc, x.val);
221
278
  break;
222
279
  }
280
+ case "AcpDeliverAgentOutputRequest": {
281
+ bare.writeU8(bc, 5);
282
+ writeAcpDeliverAgentOutputRequest(bc, x.val);
283
+ break;
284
+ }
285
+ case "AcpListAgentsRequest": {
286
+ bare.writeU8(bc, 6);
287
+ writeAcpListAgentsRequest(bc, x.val);
288
+ break;
289
+ }
223
290
  }
224
291
  }
225
292
  export function encodeAcpRequest(x, config) {
@@ -236,16 +303,16 @@ export function decodeAcpRequest(bytes) {
236
303
  }
237
304
  return result;
238
305
  }
239
- function read4(bc) {
306
+ function read5(bc) {
240
307
  return bare.readBool(bc) ? bare.readU32(bc) : null;
241
308
  }
242
- function write4(bc, x) {
309
+ function write5(bc, x) {
243
310
  bare.writeBool(bc, x != null);
244
311
  if (x != null) {
245
312
  bare.writeU32(bc, x);
246
313
  }
247
314
  }
248
- function read5(bc) {
315
+ function read6(bc) {
249
316
  const len = bare.readUintSafe(bc);
250
317
  if (len === 0) {
251
318
  return [];
@@ -256,7 +323,7 @@ function read5(bc) {
256
323
  }
257
324
  return result;
258
325
  }
259
- function write5(bc, x) {
326
+ function write6(bc, x) {
260
327
  bare.writeUintSafe(bc, x.length);
261
328
  for (let i = 0; i < x.length; i++) {
262
329
  writeJsonUtf8(bc, x[i]);
@@ -265,18 +332,18 @@ function write5(bc, x) {
265
332
  export function readAcpSessionCreatedResponse(bc) {
266
333
  return {
267
334
  sessionId: bare.readString(bc),
268
- pid: read4(bc),
335
+ pid: read5(bc),
269
336
  modes: read3(bc),
270
- configOptions: read5(bc),
337
+ configOptions: read6(bc),
271
338
  agentCapabilities: read3(bc),
272
339
  agentInfo: read3(bc),
273
340
  };
274
341
  }
275
342
  export function writeAcpSessionCreatedResponse(bc, x) {
276
343
  bare.writeString(bc, x.sessionId);
277
- write4(bc, x.pid);
344
+ write5(bc, x.pid);
278
345
  write3(bc, x.modes);
279
- write5(bc, x.configOptions);
346
+ write6(bc, x.configOptions);
280
347
  write3(bc, x.agentCapabilities);
281
348
  write3(bc, x.agentInfo);
282
349
  }
@@ -290,10 +357,10 @@ export function writeAcpSessionRpcResponse(bc, x) {
290
357
  bare.writeString(bc, x.sessionId);
291
358
  writeJsonUtf8(bc, x.response);
292
359
  }
293
- function read6(bc) {
360
+ function read7(bc) {
294
361
  return bare.readBool(bc) ? bare.readI32(bc) : null;
295
362
  }
296
- function write6(bc, x) {
363
+ function write7(bc, x) {
297
364
  bare.writeBool(bc, x != null);
298
365
  if (x != null) {
299
366
  bare.writeI32(bc, x);
@@ -304,11 +371,11 @@ export function readAcpSessionStateResponse(bc) {
304
371
  sessionId: bare.readString(bc),
305
372
  agentType: bare.readString(bc),
306
373
  processId: bare.readString(bc),
307
- pid: read4(bc),
374
+ pid: read5(bc),
308
375
  closed: bare.readBool(bc),
309
- exitCode: read6(bc),
376
+ exitCode: read7(bc),
310
377
  modes: read3(bc),
311
- configOptions: read5(bc),
378
+ configOptions: read6(bc),
312
379
  agentCapabilities: read3(bc),
313
380
  agentInfo: read3(bc),
314
381
  };
@@ -317,11 +384,11 @@ export function writeAcpSessionStateResponse(bc, x) {
317
384
  bare.writeString(bc, x.sessionId);
318
385
  bare.writeString(bc, x.agentType);
319
386
  bare.writeString(bc, x.processId);
320
- write4(bc, x.pid);
387
+ write5(bc, x.pid);
321
388
  bare.writeBool(bc, x.closed);
322
- write6(bc, x.exitCode);
389
+ write7(bc, x.exitCode);
323
390
  write3(bc, x.modes);
324
- write5(bc, x.configOptions);
391
+ write6(bc, x.configOptions);
325
392
  write3(bc, x.agentCapabilities);
326
393
  write3(bc, x.agentInfo);
327
394
  }
@@ -353,6 +420,14 @@ export function writeAcpErrorResponse(bc, x) {
353
420
  bare.writeString(bc, x.code);
354
421
  bare.writeString(bc, x.message);
355
422
  }
423
+ export function readAcpPendingResponse(bc) {
424
+ return {
425
+ processId: bare.readString(bc),
426
+ };
427
+ }
428
+ export function writeAcpPendingResponse(bc, x) {
429
+ bare.writeString(bc, x.processId);
430
+ }
356
431
  export function readAcpResponse(bc) {
357
432
  const offset = bc.offset;
358
433
  const tag = bare.readU8(bc);
@@ -369,6 +444,10 @@ export function readAcpResponse(bc) {
369
444
  return { tag: "AcpSessionResumedResponse", val: readAcpSessionResumedResponse(bc) };
370
445
  case 5:
371
446
  return { tag: "AcpErrorResponse", val: readAcpErrorResponse(bc) };
447
+ case 6:
448
+ return { tag: "AcpPendingResponse", val: readAcpPendingResponse(bc) };
449
+ case 7:
450
+ return { tag: "AcpListAgentsResponse", val: readAcpListAgentsResponse(bc) };
372
451
  default: {
373
452
  bc.offset = offset;
374
453
  throw new bare.BareError(offset, "invalid tag");
@@ -407,6 +486,16 @@ export function writeAcpResponse(bc, x) {
407
486
  writeAcpErrorResponse(bc, x.val);
408
487
  break;
409
488
  }
489
+ case "AcpPendingResponse": {
490
+ bare.writeU8(bc, 6);
491
+ writeAcpPendingResponse(bc, x.val);
492
+ break;
493
+ }
494
+ case "AcpListAgentsResponse": {
495
+ bare.writeU8(bc, 7);
496
+ writeAcpListAgentsResponse(bc, x.val);
497
+ break;
498
+ }
410
499
  }
411
500
  }
412
501
  export function encodeAcpResponse(x, config) {
@@ -433,12 +522,50 @@ export function writeAcpSessionEvent(bc, x) {
433
522
  bare.writeString(bc, x.sessionId);
434
523
  writeJsonUtf8(bc, x.notification);
435
524
  }
525
+ export function readAcpAgentStderrEvent(bc) {
526
+ return {
527
+ sessionId: bare.readString(bc),
528
+ agentType: bare.readString(bc),
529
+ processId: bare.readString(bc),
530
+ chunk: bare.readData(bc),
531
+ };
532
+ }
533
+ export function writeAcpAgentStderrEvent(bc, x) {
534
+ bare.writeString(bc, x.sessionId);
535
+ bare.writeString(bc, x.agentType);
536
+ bare.writeString(bc, x.processId);
537
+ bare.writeData(bc, x.chunk);
538
+ }
539
+ export function readAcpAgentExitedEvent(bc) {
540
+ return {
541
+ sessionId: bare.readString(bc),
542
+ agentType: bare.readString(bc),
543
+ processId: bare.readString(bc),
544
+ exitCode: read7(bc),
545
+ restart: bare.readString(bc),
546
+ restartCount: bare.readU32(bc),
547
+ maxRestarts: bare.readU32(bc),
548
+ };
549
+ }
550
+ export function writeAcpAgentExitedEvent(bc, x) {
551
+ bare.writeString(bc, x.sessionId);
552
+ bare.writeString(bc, x.agentType);
553
+ bare.writeString(bc, x.processId);
554
+ write7(bc, x.exitCode);
555
+ bare.writeString(bc, x.restart);
556
+ bare.writeU32(bc, x.restartCount);
557
+ bare.writeU32(bc, x.maxRestarts);
558
+ }
436
559
  export function readAcpEvent(bc) {
437
560
  const offset = bc.offset;
438
561
  const tag = bare.readU8(bc);
439
562
  switch (tag) {
440
563
  case 0:
441
564
  return { tag: "AcpSessionEvent", val: readAcpSessionEvent(bc) };
565
+ case 1:
566
+ return { tag: "AcpAgentStderrEvent", val: readAcpAgentStderrEvent(bc) };
567
+ case 2:
568
+ return { tag: "AcpAgentExitedEvent", val: readAcpAgentExitedEvent(bc) };
442
569
  default: {
443
570
  bc.offset = offset;
444
571
  throw new bare.BareError(offset, "invalid tag");
@@ -452,6 +579,16 @@ export function writeAcpEvent(bc, x) {
452
579
  writeAcpSessionEvent(bc, x.val);
453
580
  break;
454
581
  }
582
+ case "AcpAgentStderrEvent": {
583
+ bare.writeU8(bc, 1);
584
+ writeAcpAgentStderrEvent(bc, x.val);
585
+ break;
586
+ }
587
+ case "AcpAgentExitedEvent": {
588
+ bare.writeU8(bc, 2);
589
+ writeAcpAgentExitedEvent(bc, x.val);
590
+ break;
591
+ }
455
592
  }
456
593
  }
457
594
  export function encodeAcpEvent(x, config) {
@@ -1,2 +1,6 @@
1
- export { NATIVE_SIDECAR_FRAME_TIMEOUT_MS, NativeSidecarProcessClient as SidecarProcess, SidecarEventBufferOverflow, SidecarProcessError, SidecarProcessExited, } from "@secure-exec/core/sidecar-client";
2
- export type { AuthenticatedSession, CreatedVm, ExtEnvelope, GuestFilesystemStat, NativeSidecarSpawnOptions as SidecarSpawnOptions, RootFilesystemEntry, RootFilesystemLowerDescriptor, SidecarEventSelector, SidecarFsPermissionRule, SidecarMountDescriptor, SidecarMountPluginDescriptor, SidecarPatternPermissionRule, SidecarPermissionMode, SidecarPermissionScope, SidecarPermissionsPolicy, SidecarProcessSnapshotEntry, SidecarProjectedModuleDescriptor, SidecarRegisteredHostCallbackDefinition, SidecarRegisteredHostCallbackExample, SidecarRequestFrame, SidecarRequestHandler, SidecarRequestPayload, SidecarResponseFrame, SidecarResponsePayload, SidecarRulePermissions, SidecarSessionState, SidecarSignalHandlerRegistration, SidecarSignalState, SidecarSocketStateEntry, SidecarSoftwareDescriptor, SidecarZombieTimerCount, } from "@secure-exec/core/sidecar-client";
1
+ import "@rivet-dev/agentos-runtime-core/native-client";
2
+ import { SidecarProcess } from "@rivet-dev/agentos-runtime-core/sidecar-client";
3
+ export { NATIVE_SIDECAR_FRAME_TIMEOUT_MS, SidecarEventBufferOverflow, SidecarProcess, SidecarProcessError, SidecarProcessExited, } from "@rivet-dev/agentos-runtime-core/sidecar-client";
4
+ export declare const NativeSidecarProcessClient: typeof SidecarProcess;
5
+ export type { AuthenticatedSession, CreatedVm, ExtEnvelope, GuestFilesystemStat, RootFilesystemEntry, RootFilesystemLowerDescriptor, SidecarEventSelector, SidecarFsPermissionRule, SidecarLinkPackageResult, SidecarMountDescriptor, SidecarMountPluginDescriptor, SidecarPatternPermissionRule, SidecarPermissionMode, SidecarPermissionScope, SidecarPermissionsPolicy, SidecarProcessSnapshotEntry, SidecarProjectedAgent, SidecarProjectedModuleDescriptor, SidecarRegisteredHostCallbackDefinition, SidecarRegisteredHostCallbackExample, SidecarRequestFrame, SidecarRequestHandler, SidecarRequestPayload, SidecarResponseFrame, SidecarResponsePayload, SidecarRulePermissions, SidecarSessionState, SidecarSignalHandlerRegistration, SidecarSignalState, SidecarSocketStateEntry, SidecarSoftwareDescriptor, SidecarSpawnOptions, SidecarSpawnOptions as NativeSidecarSpawnOptions, SidecarZombieTimerCount, } from "@rivet-dev/agentos-runtime-core/sidecar-client";
6
+ export type { SidecarVmConfiguredResponse as SidecarConfigureVmResult, } from "@rivet-dev/agentos-runtime-core/sidecar-client";
@@ -1 +1,8 @@
1
- export { NATIVE_SIDECAR_FRAME_TIMEOUT_MS, NativeSidecarProcessClient as SidecarProcess, SidecarEventBufferOverflow, SidecarProcessError, SidecarProcessExited, } from "@secure-exec/core/sidecar-client";
1
+ // Register the native sidecar spawn factory (side effect). After the
2
+ // @rivet-dev/agentos-runtime-core SidecarProcess refactor, native spawn is provided by a
3
+ // separately-registered factory; importing native-client wires it up so
4
+ // SidecarProcess.spawn works in this native runtime.
5
+ import "@rivet-dev/agentos-runtime-core/native-client";
6
+ import { SidecarProcess } from "@rivet-dev/agentos-runtime-core/sidecar-client";
7
+ export { NATIVE_SIDECAR_FRAME_TIMEOUT_MS, SidecarEventBufferOverflow, SidecarProcess, SidecarProcessError, SidecarProcessExited, } from "@rivet-dev/agentos-runtime-core/sidecar-client";
8
+ export const NativeSidecarProcessClient = SidecarProcess;
@@ -1,3 +1,3 @@
1
- import type { PermissionsPolicy } from "@secure-exec/core/vm-config";
1
+ import type { PermissionsPolicy } from "@rivet-dev/agentos-runtime-core/vm-config";
2
2
  import type { Permissions } from "../runtime-compat.js";
3
3
  export declare function serializePermissionsForSidecar(permissions?: Permissions): PermissionsPolicy;
@@ -28,7 +28,7 @@ export function serializePermissionsForSidecar(permissions) {
28
28
  childProcess: "deny",
29
29
  process: "deny",
30
30
  env: "deny",
31
- tool: "deny",
31
+ binding: "deny",
32
32
  };
33
33
  }
34
34
  return {
@@ -47,8 +47,8 @@ export function serializePermissionsForSidecar(permissions) {
47
47
  env: typeof permissions.env === "string" || !permissions.env
48
48
  ? permissions.env
49
49
  : serializePatternScope(permissions.env),
50
- tool: typeof permissions.tool === "string" || !permissions.tool
51
- ? permissions.tool
52
- : serializePatternScope(permissions.tool),
50
+ binding: typeof permissions.binding === "string" || !permissions.binding
51
+ ? permissions.binding
52
+ : serializePatternScope(permissions.binding),
53
53
  };
54
54
  }
@@ -1,13 +1,14 @@
1
- import type { RootFilesystemConfig as VmConfigRootFilesystemConfig, RootFilesystemEntry as VmConfigRootFilesystemEntry, RootFilesystemLowerDescriptor as VmConfigRootFilesystemLowerDescriptor } from "@secure-exec/core/vm-config";
1
+ import type { RootFilesystemConfig as VmConfigRootFilesystemConfig, RootFilesystemEntry as VmConfigRootFilesystemEntry, RootFilesystemLowerDescriptor as VmConfigRootFilesystemLowerDescriptor } from "@rivet-dev/agentos-runtime-core/vm-config";
2
2
  import type { NativeMountConfig, PlainMountConfig, RootFilesystemConfig } from "../agent-os.js";
3
3
  import type { RootSnapshotExport } from "../layers.js";
4
4
  import type { ConnectTerminalOptions, KernelExecOptions, KernelExecResult, KernelSpawnOptions, ManagedProcess, OpenShellOptions, ProcessInfo, ShellHandle, VirtualFileSystem, VirtualStat } from "../runtime-compat.js";
5
- import type { AuthenticatedSession, CreatedVm, SidecarProcess, SidecarSignalHandlerRegistration } from "./native-process-client.js";
5
+ import type { AuthenticatedSession, CreatedVm, SidecarPermissionsPolicy, SidecarProcess, SidecarSignalHandlerRegistration } from "./native-process-client.js";
6
6
  export declare function toSidecarSignalName(signal: number): string;
7
7
  export interface LocalCompatMount {
8
8
  path: string;
9
9
  fs: VirtualFileSystem;
10
10
  readOnly: boolean;
11
+ sidecarMount?: SidecarMountDescriptor;
11
12
  }
12
13
  interface KernelSocketSnapshot {
13
14
  processId: string;
@@ -30,9 +31,21 @@ interface NativeSidecarKernelProxyOptions {
30
31
  cwd: string;
31
32
  defaultExecCwd?: string;
32
33
  localMounts: LocalCompatMount[];
34
+ sidecarMounts: SidecarMountDescriptor[];
35
+ permissions?: SidecarPermissionsPolicy;
36
+ commandPermissions?: Parameters<SidecarProcess["configureVm"]>[2]["commandPermissions"];
37
+ loopbackExemptPorts?: number[];
33
38
  commandGuestPaths: ReadonlyMap<string, string>;
34
39
  onWasmCommandResolved?: (command: string) => void;
35
40
  onDispose?: () => Promise<void>;
41
+ /**
42
+ * Whether this proxy owns the underlying sidecar process. When VMs share one
43
+ * sidecar process (the default for VMs leased from an `AgentOsSidecar`
44
+ * handle), each proxy tears down only its own VM on `dispose()`; the shared
45
+ * process is disposed when the sidecar handle is disposed. Defaults to true
46
+ * for the legacy one-process-per-VM path.
47
+ */
48
+ ownsClient?: boolean;
36
49
  }
37
50
  export declare class NativeSidecarKernelProxy {
38
51
  readonly env: Record<string, string>;
@@ -44,7 +57,12 @@ export declare class NativeSidecarKernelProxy {
44
57
  private readonly client;
45
58
  private readonly session;
46
59
  private readonly vm;
60
+ private readonly ownsClient;
47
61
  private readonly localMounts;
62
+ private readonly baseSidecarMounts;
63
+ private readonly permissions;
64
+ private readonly commandPermissions;
65
+ private readonly loopbackExemptPorts;
48
66
  private readonly commandDrivers;
49
67
  private readonly onWasmCommandResolved;
50
68
  private readonly onDispose;
@@ -62,6 +80,7 @@ export declare class NativeSidecarKernelProxy {
62
80
  private zombieTimerCountRefresh;
63
81
  private disposed;
64
82
  private pumpError;
83
+ private mountReconfigurePromise;
65
84
  private nextSyntheticPid;
66
85
  private readonly eventPumpAbortController;
67
86
  private readonly eventPump;
@@ -70,6 +89,21 @@ export declare class NativeSidecarKernelProxy {
70
89
  get zombieTimerCount(): number;
71
90
  registerCommandGuestPaths(commandGuestPaths: ReadonlyMap<string, string>): void;
72
91
  dispose(): Promise<void>;
92
+ /** Test-only snapshot of the per-VM tracking collection sizes. */
93
+ __trackingSizesForTest(): {
94
+ trackedProcesses: number;
95
+ trackedProcessesById: number;
96
+ signalStates: number;
97
+ signalRefreshes: number;
98
+ localMounts: number;
99
+ };
100
+ /** Test-only handle to a tracked entry so its listener Sets can be inspected. */
101
+ __trackedEntryForTest(pid: number): {
102
+ onStdout: ReadonlySet<unknown>;
103
+ onStderr: ReadonlySet<unknown>;
104
+ } | undefined;
105
+ /** Test-only join point for in-flight signal-state refreshes. */
106
+ __awaitSignalRefreshesForTest(): Promise<void>;
73
107
  exec(command: string, options?: KernelExecOptions): Promise<KernelExecResult>;
74
108
  execArgv(command: string, args?: readonly string[], options?: KernelExecOptions): Promise<KernelExecResult>;
75
109
  spawn(command: string, args: string[], options?: KernelSpawnOptions): ManagedProcess;
@@ -81,13 +115,33 @@ export declare class NativeSidecarKernelProxy {
81
115
  exists(path: string): Promise<boolean>;
82
116
  stat(path: string): Promise<VirtualStat>;
83
117
  readdir(path: string): Promise<string[]>;
118
+ readdirRecursive(path: string, options?: {
119
+ maxDepth?: number;
120
+ }): Promise<Array<{
121
+ name: string;
122
+ path: string;
123
+ isDirectory: boolean;
124
+ isSymbolicLink: boolean;
125
+ size: number;
126
+ }>>;
84
127
  removeFile(path: string): Promise<void>;
85
128
  removeDir(path: string): Promise<void>;
129
+ removePath(path: string, options?: {
130
+ recursive?: boolean;
131
+ }): Promise<void>;
132
+ copyPath(fromPath: string, toPath: string, options?: {
133
+ recursive?: boolean;
134
+ }): Promise<void>;
86
135
  rename(oldPath: string, newPath: string): Promise<void>;
136
+ movePath(oldPath: string, newPath: string): Promise<void>;
87
137
  mountFs(path: string, driver: VirtualFileSystem, options?: {
88
138
  readOnly?: boolean;
139
+ sidecarMount?: SidecarMountDescriptor;
89
140
  }): void;
90
141
  unmountFs(path: string): void;
142
+ private desiredSidecarMounts;
143
+ private reconfigureSidecarMounts;
144
+ private waitForMountReconfigure;
91
145
  snapshotProcesses(): ProcessInfo[];
92
146
  findListener(request: {
93
147
  host?: string;
@@ -107,6 +161,7 @@ export declare class NativeSidecarKernelProxy {
107
161
  private startTrackedProcess;
108
162
  private runEventPump;
109
163
  private finishProcess;
164
+ private releaseProcessTrackingAfterDrain;
110
165
  private waitForTrackedProcess;
111
166
  private signalProcess;
112
167
  private flushPendingStdin;
@@ -114,6 +169,9 @@ export declare class NativeSidecarKernelProxy {
114
169
  private handleBackgroundProcessError;
115
170
  private recordCompletedProcessError;
116
171
  private emitBackgroundProcessError;
172
+ private readdirRecursiveLocal;
173
+ private removePathLocal;
174
+ private copyPathLocal;
117
175
  private createFilesystemView;
118
176
  private buildProcessSnapshot;
119
177
  private dispatchRead;
@@ -125,8 +183,8 @@ export declare class NativeSidecarKernelProxy {
125
183
  private assertLocalWritable;
126
184
  private updateTrackedProcessSnapshot;
127
185
  }
128
- export type { AuthenticatedSession, CreatedVm, GuestFilesystemStat, SidecarSpawnOptions, RootFilesystemEntry, SidecarEventSelector, SidecarPermissionsPolicy, SidecarRegisteredHostCallbackDefinition, SidecarRequestFrame, SidecarResponsePayload, SidecarSessionState, SidecarSignalHandlerRegistration, SidecarSocketStateEntry, } from "./native-process-client.js";
129
- export { NATIVE_SIDECAR_FRAME_TIMEOUT_MS, SidecarProcess, SidecarEventBufferOverflow, SidecarProcessError, SidecarProcessExited, } from "./native-process-client.js";
186
+ export type { AuthenticatedSession, CreatedVm, GuestFilesystemStat, RootFilesystemEntry, SidecarConfigureVmResult, SidecarEventSelector, SidecarLinkPackageResult, SidecarPermissionsPolicy, SidecarProjectedAgent, SidecarRegisteredHostCallbackDefinition, SidecarRequestFrame, SidecarResponsePayload, SidecarSessionState, SidecarSignalHandlerRegistration, SidecarSocketStateEntry, SidecarSpawnOptions, } from "./native-process-client.js";
187
+ export { NATIVE_SIDECAR_FRAME_TIMEOUT_MS, NativeSidecarProcessClient, SidecarEventBufferOverflow, SidecarProcess, SidecarProcessError, SidecarProcessExited, } from "./native-process-client.js";
130
188
  export type AgentOsSidecarPlacement = {
131
189
  kind: "shared";
132
190
  pool?: string;