@agent-vm/agent-portal-sdk 0.0.134 → 0.0.138

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 (106) hide show
  1. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-hermes-valid.fixture.json +4 -2
  2. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-long-namespace-name.fixture.json +34 -0
  3. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-namespace-names-code-point-order.fixture.json +30 -0
  4. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-namespace-names-code-point-reverse.fixture.json +26 -0
  5. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-namespace-names-duplicate.fixture.json +20 -0
  6. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-namespace-names-unsorted.fixture.json +20 -0
  7. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-old-authority-rejected.fixture.json +2 -1
  8. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-openclaw-valid.fixture.json +4 -2
  9. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-self-root-rejected.fixture.json +2 -1
  10. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-work-root-rejected.fixture.json +2 -1
  11. package/dist/adapter-boundary/index.d.ts +1 -1
  12. package/dist/approval-surface/index.d.ts +1 -1
  13. package/dist/approval-surface/index.js +1 -1
  14. package/dist/{approval-surface-en5VAY5h.js → approval-surface-z5JUqa0K.js} +3 -3
  15. package/dist/{approval-surface-en5VAY5h.js.map → approval-surface-z5JUqa0K.js.map} +1 -1
  16. package/dist/artifact-surface/index.d.ts +1 -1
  17. package/dist/artifact-surface/index.js +1 -1
  18. package/dist/{artifact-surface-BstQxq6b.js → artifact-surface-BIDasG5x.js} +2 -2
  19. package/dist/{artifact-surface-BstQxq6b.js.map → artifact-surface-BIDasG5x.js.map} +1 -1
  20. package/dist/capability-description-surface/index.d.ts +1 -1
  21. package/dist/capability-description-surface/index.js +2 -2
  22. package/dist/capability-description-surface-CyPgad9d.js +2 -0
  23. package/dist/{capability-descriptor-schema-zRnfGjBc.js → capability-descriptor-schema-DmzUtpji.js} +4 -11
  24. package/dist/capability-descriptor-schema-DmzUtpji.js.map +1 -0
  25. package/dist/capability-reference-schema-K7qXJgEa.js +12 -0
  26. package/dist/capability-reference-schema-K7qXJgEa.js.map +1 -0
  27. package/dist/cli/tool-portal.js +148 -98
  28. package/dist/cli/tool-portal.js.map +1 -1
  29. package/dist/contracts/index.d.ts +2 -2
  30. package/dist/contracts/index.js +2 -2
  31. package/dist/{contracts-RgGW0RX2.js → contracts-3pjrcMjD.js} +40 -9
  32. package/dist/{contracts-RgGW0RX2.js.map → contracts-3pjrcMjD.js.map} +1 -1
  33. package/dist/gateway-runtime-client/index.d.ts +4 -4
  34. package/dist/gateway-runtime-client/index.js +5 -5
  35. package/dist/gateway-runtime-local-exec/gateway-runtime-local-exec-helper.js +1 -1
  36. package/dist/gateway-runtime-local-exec/index.js +1 -1
  37. package/dist/{gateway-runtime-local-exec-transport-B1hy2A3Q.js → gateway-runtime-local-exec-transport-DjxMXdT9.js} +1 -1
  38. package/dist/{gateway-runtime-local-exec-transport-B1hy2A3Q.js.map → gateway-runtime-local-exec-transport-DjxMXdT9.js.map} +1 -1
  39. package/dist/{index-BaIwC_bf.d.ts → index-BQ12JshX.d.ts} +39 -39
  40. package/dist/{index-BaIwC_bf.d.ts.map → index-BQ12JshX.d.ts.map} +1 -1
  41. package/dist/{index-B5hgm1KH.d.ts → index-B_xYdo3v.d.ts} +2 -2
  42. package/dist/{index-B5hgm1KH.d.ts.map → index-B_xYdo3v.d.ts.map} +1 -1
  43. package/dist/{index-BmH68K78.d.ts → index-BgKPbuap.d.ts} +1 -1
  44. package/dist/{index-BmH68K78.d.ts.map → index-BgKPbuap.d.ts.map} +1 -1
  45. package/dist/{index-M78OuWx6.d.ts → index-BqWw914Z.d.ts} +5 -5
  46. package/dist/{index-M78OuWx6.d.ts.map → index-BqWw914Z.d.ts.map} +1 -1
  47. package/dist/{index-C-NPMMvc.d.ts → index-C5NhyO2R.d.ts} +4 -2
  48. package/dist/{index-C-NPMMvc.d.ts.map → index-C5NhyO2R.d.ts.map} +1 -1
  49. package/dist/{index-95IydGBz.d.ts → index-CsCLhmNb.d.ts} +17 -17
  50. package/dist/{index-95IydGBz.d.ts.map → index-CsCLhmNb.d.ts.map} +1 -1
  51. package/dist/{index-ByAhyVbI.d.ts → index-D8uVfMBv.d.ts} +2 -2
  52. package/dist/{index-ByAhyVbI.d.ts.map → index-D8uVfMBv.d.ts.map} +1 -1
  53. package/dist/{index-DKBSYuxW.d.ts → index-DqMFYBbN.d.ts} +13 -1
  54. package/dist/index-DqMFYBbN.d.ts.map +1 -0
  55. package/dist/{index-D23bIrnr.d.ts → index-UuqAPQOK.d.ts} +4 -4
  56. package/dist/{index-D23bIrnr.d.ts.map → index-UuqAPQOK.d.ts.map} +1 -1
  57. package/dist/{index-Dj4galCJ.d.ts → index-dKXgrOwm.d.ts} +1 -1
  58. package/dist/{index-Dj4galCJ.d.ts.map → index-dKXgrOwm.d.ts.map} +1 -1
  59. package/dist/index.d.ts +12 -12
  60. package/dist/index.js +16 -14
  61. package/dist/{json-value-schema-hdPkabRZ.js → json-value-schema-BGfMDOGA.js} +2 -2
  62. package/dist/{json-value-schema-hdPkabRZ.js.map → json-value-schema-BGfMDOGA.js.map} +1 -1
  63. package/dist/{json-value-schema-M87sjwWL.d.ts → json-value-schema-C-87ATB3.d.ts} +1 -1
  64. package/dist/{json-value-schema-M87sjwWL.d.ts.map → json-value-schema-C-87ATB3.d.ts.map} +1 -1
  65. package/dist/{node-tool-portal-mcp-transport-Cl2VKbLY.js → node-tool-portal-mcp-transport-CnB8MCW2.js} +1 -1
  66. package/dist/{node-tool-portal-mcp-transport-Cl2VKbLY.js.map → node-tool-portal-mcp-transport-CnB8MCW2.js.map} +1 -1
  67. package/dist/portable-contracts/index.d.ts +1 -1
  68. package/dist/portable-contracts/index.js +2 -2
  69. package/dist/{portable-contracts-Bca33zVa.js → portable-contracts-C5rtqe-H.js} +11 -12
  70. package/dist/portable-contracts-C5rtqe-H.js.map +1 -0
  71. package/dist/{portable-refinement-authoring-ZSmR-amG.js → portable-refinement-authoring-CvlKRs_Z.js} +11 -1
  72. package/dist/portable-refinement-authoring-CvlKRs_Z.js.map +1 -0
  73. package/dist/{portal-call-request-schema-Cp6CMGs9.js → portal-call-request-schema-DYxcWijW.js} +4 -4
  74. package/dist/{portal-call-request-schema-Cp6CMGs9.js.map → portal-call-request-schema-DYxcWijW.js.map} +1 -1
  75. package/dist/{portal-call-result-schema-ByxHRCEN.js → portal-call-result-schema-CVWMGu2y.js} +6 -5
  76. package/dist/{portal-call-result-schema-ByxHRCEN.js.map → portal-call-result-schema-CVWMGu2y.js.map} +1 -1
  77. package/dist/{portal-call-result-schema-DoE_YCtv.d.ts → portal-call-result-schema-DalyNrfW.d.ts} +192 -192
  78. package/dist/{portal-call-result-schema-DoE_YCtv.d.ts.map → portal-call-result-schema-DalyNrfW.d.ts.map} +1 -1
  79. package/dist/portal-call-surface/index.d.ts +2 -2
  80. package/dist/portal-call-surface/index.js +4 -4
  81. package/dist/{portal-call-surface-DjZVquFt.js → portal-call-surface-B_oQxm5X.js} +7 -6
  82. package/dist/{portal-call-surface-DjZVquFt.js.map → portal-call-surface-B_oQxm5X.js.map} +1 -1
  83. package/dist/{portal-error-schema-CQHgoFq4.js → portal-error-schema-BCALC7xt.js} +2 -21
  84. package/dist/portal-error-schema-BCALC7xt.js.map +1 -0
  85. package/dist/portal-event-surface/index.d.ts +1 -1
  86. package/dist/portal-event-surface/index.js +2 -2
  87. package/dist/{portal-event-surface-CdScrgoN.js → portal-event-surface-DSWv7Kgi.js} +3 -2
  88. package/dist/{portal-event-surface-CdScrgoN.js.map → portal-event-surface-DSWv7Kgi.js.map} +1 -1
  89. package/dist/request-id-schema-DGLLX-tp.js +23 -0
  90. package/dist/request-id-schema-DGLLX-tp.js.map +1 -0
  91. package/dist/testing/index.d.ts +2 -2
  92. package/dist/testing/index.js +2 -2
  93. package/dist/tool-portal-mcp-client/index.d.ts +1 -1
  94. package/dist/tool-portal-mcp-client/index.js +1 -1
  95. package/dist/tool-portal-mcp-client/node-tool-portal-mcp-transport.d.ts +1 -1
  96. package/dist/tool-portal-mcp-client/node-tool-portal-mcp-transport.js +1 -1
  97. package/dist/{tool-portal-mcp-client-DwJF-48Y.js → tool-portal-mcp-client-nMGxqQ-A.js} +5 -5
  98. package/dist/{tool-portal-mcp-client-DwJF-48Y.js.map → tool-portal-mcp-client-nMGxqQ-A.js.map} +1 -1
  99. package/package.json +4 -1
  100. package/portable-contract-schema-manifest.json +11 -1
  101. package/dist/capability-description-surface-BdzknTKT.js +0 -2
  102. package/dist/capability-descriptor-schema-zRnfGjBc.js.map +0 -1
  103. package/dist/index-DKBSYuxW.d.ts.map +0 -1
  104. package/dist/portable-contracts-Bca33zVa.js.map +0 -1
  105. package/dist/portable-refinement-authoring-ZSmR-amG.js.map +0 -1
  106. package/dist/portal-error-schema-CQHgoFq4.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"contracts-RgGW0RX2.js","names":[],"sources":["../src/contracts/contract-foundations.ts","../src/contracts/operation-contracts.ts","../src/contracts/sandbox-environment-contracts.ts","../src/contracts/sandbox-execution-contracts.ts","../src/contracts/sandbox-filesystem-contracts.ts","../src/contracts/sandbox-process-contracts.ts","../src/contracts/sandbox-stream-contracts.ts","../src/contracts/sandbox-terminal-contracts.ts","../src/contracts/trusted-context-contracts.ts","../src/contracts/index.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { withPortableSuperRefinement } from '../portable-contracts/portable-refinement-authoring.js';\n\nexport const PORTABLE_MAXIMUM_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;\nexport const SANDBOX_MAXIMUM_ENVIRONMENT_VARIABLES = 100;\nexport const SANDBOX_MAXIMUM_IDENTIFIER_CHARACTERS = 256;\nexport const SANDBOX_MAXIMUM_PATH_CHARACTERS = 1_024;\nexport const SANDBOX_MAXIMUM_TEXT_CHARACTERS = 64 * 1_024;\nexport const SANDBOX_MAXIMUM_BINARY_BYTES = 16 * 1_024 * 1_024;\nexport const SANDBOX_MAXIMUM_LIST_ITEMS = 1_000;\nexport const SANDBOX_MAXIMUM_OPERATION_MILLISECONDS = 60 * 60 * 1_000;\n\nexport const BoundedOpaqueIdentifierSchema = z\n\t.string()\n\t.min(1)\n\t.max(SANDBOX_MAXIMUM_IDENTIFIER_CHARACTERS);\nexport const PositiveSafeIntegerSchema = z\n\t.number()\n\t.int()\n\t.positive()\n\t.max(PORTABLE_MAXIMUM_SAFE_INTEGER);\nexport const NonnegativeSafeIntegerSchema = z\n\t.number()\n\t.int()\n\t.nonnegative()\n\t.max(PORTABLE_MAXIMUM_SAFE_INTEGER);\nexport const BoundedOperationMillisecondsSchema = PositiveSafeIntegerSchema.max(\n\tSANDBOX_MAXIMUM_OPERATION_MILLISECONDS,\n);\nexport const BoundedByteCountSchema = PositiveSafeIntegerSchema.max(SANDBOX_MAXIMUM_BINARY_BYTES);\nexport const BoundedTextSchema = z.string().max(SANDBOX_MAXIMUM_TEXT_CHARACTERS);\nexport const SandboxShellCommandSchema = z\n\t.string()\n\t.min(1)\n\t.max(SANDBOX_MAXIMUM_TEXT_CHARACTERS)\n\t// oxlint-disable-next-line no-control-regex -- The wire contract must reject embedded NUL bytes.\n\t.regex(/^[^\\0]+$/u);\nexport const SandboxGuestAbsolutePathSchema = z\n\t.string()\n\t.min(1)\n\t.max(SANDBOX_MAXIMUM_PATH_CHARACTERS)\n\t.startsWith('/')\n\t// oxlint-disable-next-line no-control-regex -- Guest paths cannot contain embedded NUL bytes.\n\t.regex(/^[^\\0]+$/u);\nexport const SandboxGuestPathSchema = z\n\t.string()\n\t.min(1)\n\t.max(SANDBOX_MAXIMUM_PATH_CHARACTERS)\n\t// oxlint-disable-next-line no-control-regex -- Guest paths cannot contain embedded NUL bytes.\n\t.regex(/^[^\\0]+$/u);\nexport const SandboxEnvironmentVariableNameSchema = z\n\t.string()\n\t.min(1)\n\t.max(SANDBOX_MAXIMUM_IDENTIFIER_CHARACTERS)\n\t.regex(/^[A-Za-z_][A-Za-z0-9_]*$/u);\nexport const SandboxEnvironmentVariableValueSchema = z\n\t.string()\n\t.max(SANDBOX_MAXIMUM_TEXT_CHARACTERS)\n\t// oxlint-disable-next-line no-control-regex -- Environment values cannot contain embedded NUL bytes.\n\t.regex(/^[^\\0]*$/u);\n\nconst canonicalBase64Pattern = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u;\n\nexport const CanonicalBase64Schema = z\n\t.string()\n\t.max(Math.ceil(SANDBOX_MAXIMUM_BINARY_BYTES / 3) * 4)\n\t.regex(canonicalBase64Pattern);\nexport const Sha256DigestSchema = z.string().regex(/^sha256:[0-9a-f]{64}$/u);\n\nexport const SandboxWorkRelativePathSchema = withPortableSuperRefinement({\n\trefinement: (requestedPath, context) => {\n\t\tif (\n\t\t\trequestedPath.length === 0 ||\n\t\t\trequestedPath.includes('\\0') ||\n\t\t\trequestedPath.startsWith('/') ||\n\t\t\trequestedPath.endsWith('/') ||\n\t\t\trequestedPath\n\t\t\t\t.split('/')\n\t\t\t\t.some((segment) => segment === '' || segment === '.' || segment === '..')\n\t\t) {\n\t\t\tcontext.addIssue({\n\t\t\t\tcode: 'custom',\n\t\t\t\tmessage: 'Sandbox path must remain relative to the server-selected work root.',\n\t\t\t});\n\t\t}\n\t},\n\trefinementIdentity: 'sandbox.path.work-relative',\n\tschema: z.string().max(SANDBOX_MAXIMUM_PATH_CHARACTERS),\n});\n\nexport const SandboxHandleKindSchema = z.enum(['environment', 'process', 'stream', 'terminal']);\nexport const SandboxStreamChannelSchema = z.enum(['stdin', 'stdout', 'stderr', 'pty']);\n\nexport const SandboxBoundHandleSchema = z\n\t.object({\n\t\thandleId: BoundedOpaqueIdentifierSchema,\n\t\tkind: SandboxHandleKindSchema,\n\t\towningGeneration: BoundedOpaqueIdentifierSchema,\n\t})\n\t.strict();\n\n// oxlint-disable-next-line explicit-function-return-type -- Preserve the literal handle kind in the returned Zod object schema.\nexport function createSandboxBoundHandleSchema<\n\tTHandleKind extends z.infer<typeof SandboxHandleKindSchema>,\n>(kind: THandleKind) {\n\treturn SandboxBoundHandleSchema.extend({ kind: z.literal(kind) }).strict();\n}\n\nexport const SandboxEnvironmentHandleSchema = createSandboxBoundHandleSchema('environment');\nexport const SandboxProcessHandleSchema = createSandboxBoundHandleSchema('process');\nexport const SandboxStreamHandleSchema = createSandboxBoundHandleSchema('stream')\n\t.extend({ channel: SandboxStreamChannelSchema })\n\t.strict();\nexport const SandboxTerminalHandleSchema = createSandboxBoundHandleSchema('terminal');\n\nexport const SandboxEnvironmentVariableSchema = z\n\t.object({\n\t\tname: SandboxEnvironmentVariableNameSchema,\n\t\tvalue: SandboxEnvironmentVariableValueSchema,\n\t})\n\t.strict()\n\t.readonly();\n\nexport const SandboxDirectShellStartRequestSchema = withPortableSuperRefinement({\n\trefinement: (request, context) => {\n\t\tconst environmentVariableNames =\n\t\t\trequest.environmentVariables?.map((environmentVariable) => environmentVariable.name) ?? [];\n\t\tif (new Set(environmentVariableNames).size !== environmentVariableNames.length) {\n\t\t\tcontext.addIssue({\n\t\t\t\tcode: 'custom',\n\t\t\t\tmessage: 'Direct Sandbox environment contains a duplicate variable name.',\n\t\t\t});\n\t\t}\n\t},\n\trefinementIdentity: 'sandbox.environment-variable.unique-names',\n\tschema: z\n\t\t.object({\n\t\t\tcommand: SandboxShellCommandSchema,\n\t\t\tcwd: SandboxGuestAbsolutePathSchema.optional(),\n\t\t\tenvironment: SandboxEnvironmentHandleSchema,\n\t\t\tenvironmentVariables: z\n\t\t\t\t.array(SandboxEnvironmentVariableSchema)\n\t\t\t\t.max(SANDBOX_MAXIMUM_ENVIRONMENT_VARIABLES)\n\t\t\t\t.readonly()\n\t\t\t\t.optional(),\n\t\t})\n\t\t.strict(),\n});\n\nfunction decodedCanonicalBase64ByteLength(contentBase64: string): number {\n\tif (contentBase64.length === 0) return 0;\n\tconst paddingCharacters = contentBase64.endsWith('==') ? 2 : contentBase64.endsWith('=') ? 1 : 0;\n\treturn (contentBase64.length / 4) * 3 - paddingCharacters;\n}\n\nexport const SandboxBinaryChunkSchema = withPortableSuperRefinement({\n\trefinement: (chunk, context) => {\n\t\tif (chunk.byteLength !== decodedCanonicalBase64ByteLength(chunk.contentBase64)) {\n\t\t\tcontext.addIssue({\n\t\t\t\tcode: 'custom',\n\t\t\t\tmessage: 'Binary chunk byte length does not match decoded canonical base64 content.',\n\t\t\t\tpath: ['byteLength'],\n\t\t\t});\n\t\t}\n\t},\n\trefinementIdentity: 'sandbox.binary-chunk.byte-length',\n\tschema: z\n\t\t.object({\n\t\t\tbyteLength: NonnegativeSafeIntegerSchema.max(SANDBOX_MAXIMUM_BINARY_BYTES),\n\t\t\tcontentBase64: CanonicalBase64Schema,\n\t\t\tencoding: z.literal('base64'),\n\t\t})\n\t\t.strict(),\n});\n\nexport type SandboxBoundHandle = z.infer<typeof SandboxBoundHandleSchema>;\nexport type SandboxDirectShellStartRequest = z.infer<typeof SandboxDirectShellStartRequestSchema>;\nexport type SandboxEnvironmentVariable = z.infer<typeof SandboxEnvironmentVariableSchema>;\nexport type SandboxEnvironmentHandle = z.infer<typeof SandboxEnvironmentHandleSchema>;\nexport type SandboxProcessHandle = z.infer<typeof SandboxProcessHandleSchema>;\nexport type SandboxStreamHandle = z.infer<typeof SandboxStreamHandleSchema>;\nexport type SandboxTerminalHandle = z.infer<typeof SandboxTerminalHandleSchema>;\n","import { z } from 'zod';\n\nimport { BoundedOpaqueIdentifierSchema } from './contract-foundations.js';\n\nexport const SandboxOperationIdentitySchema = z\n\t.object({\n\t\toperationId: BoundedOpaqueIdentifierSchema,\n\t\towningGeneration: BoundedOpaqueIdentifierSchema,\n\t})\n\t.strict();\n\nconst SandboxCompletedSucceededOutcomeSchema = z\n\t.object({\n\t\tcertainty: z.literal('proven'),\n\t\tcompletion: z.literal('succeeded'),\n\t\tkind: z.literal('completed'),\n\t\tretryClass: z.literal('forbidden'),\n\t})\n\t.strict();\n\nconst SandboxCompletedFailedOutcomeSchema = z\n\t.object({\n\t\tcertainty: z.literal('proven'),\n\t\tcompletion: z.literal('failed'),\n\t\tkind: z.literal('completed'),\n\t\tretryClass: z.enum(['forbidden', 'policy-gated']),\n\t})\n\t.strict();\n\nconst SandboxNotDispatchedOutcomeSchema = z\n\t.object({\n\t\tcertainty: z.literal('proven'),\n\t\tkind: z.literal('not-dispatched'),\n\t\tretryClass: z.literal('safe-before-dispatch'),\n\t})\n\t.strict();\n\nexport const SandboxProvenTerminationOutcomeSchema = z.discriminatedUnion('kind', [\n\tz\n\t\t.object({\n\t\t\tcertainty: z.literal('proven-terminated'),\n\t\t\tkind: z.literal('cancelled-proven'),\n\t\t\tretryClass: z.literal('manual-only'),\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tcertainty: z.literal('proven-terminated'),\n\t\t\tkind: z.literal('timed-out-proven'),\n\t\t\tretryClass: z.literal('manual-only'),\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tcertainty: z.literal('proven-terminated'),\n\t\t\tkind: z.literal('replaced-proven'),\n\t\t\tpriorSideEffects: z.literal('possible'),\n\t\t\tretryClass: z.literal('manual-only'),\n\t\t})\n\t\t.strict(),\n]);\n\nexport const SandboxAmbiguousOutcomeSchema = z\n\t.object({\n\t\tcertainty: z.literal('side-effects-and-termination-unknown'),\n\t\tkind: z.literal('ambiguous'),\n\t\tretryClass: z.literal('forbidden'),\n\t})\n\t.strict();\n\nexport const SandboxTerminalOutcomeSchema = z.union([\n\tSandboxNotDispatchedOutcomeSchema,\n\tSandboxCompletedSucceededOutcomeSchema,\n\tSandboxCompletedFailedOutcomeSchema,\n\tSandboxProvenTerminationOutcomeSchema,\n\tSandboxAmbiguousOutcomeSchema,\n]);\n\nexport const SandboxOperationControlResultSchema = z.discriminatedUnion('kind', [\n\tz.object({ kind: z.literal('running'), operation: SandboxOperationIdentitySchema }).strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('cancel-request-accepted'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('cancellation-pending'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('termination-proven'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t\toutcome: SandboxProvenTerminationOutcomeSchema,\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('already-terminal'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t\toutcome: SandboxTerminalOutcomeSchema,\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('ambiguous'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t\toutcome: SandboxAmbiguousOutcomeSchema,\n\t\t})\n\t\t.strict(),\n]);\n\nexport const SandboxRetainedResultLookupRequestSchema = z\n\t.object({ operation: SandboxOperationIdentitySchema })\n\t.strict();\n\nexport const SandboxRetainedResultLookupResultSchema = z.discriminatedUnion('kind', [\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('retained'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t\toutcome: SandboxTerminalOutcomeSchema,\n\t\t})\n\t\t.strict(),\n\tz.object({ kind: z.literal('pending'), operation: SandboxOperationIdentitySchema }).strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('unavailable'),\n\t\t\treason: z.literal('not-retained-or-not-authorized'),\n\t\t})\n\t\t.strict(),\n]);\n\nexport type SandboxOperationIdentity = z.infer<typeof SandboxOperationIdentitySchema>;\nexport type SandboxOperationControlResult = z.infer<typeof SandboxOperationControlResultSchema>;\nexport type SandboxRetainedResultLookupRequest = z.infer<\n\ttypeof SandboxRetainedResultLookupRequestSchema\n>;\nexport type SandboxRetainedResultLookupResult = z.infer<\n\ttypeof SandboxRetainedResultLookupResultSchema\n>;\nexport type SandboxTerminalOutcome = z.infer<typeof SandboxTerminalOutcomeSchema>;\n","import { z } from 'zod';\n\nimport {\n\tSandboxEnvironmentHandleSchema,\n\tSandboxWorkRelativePathSchema,\n} from './contract-foundations.js';\n\n// Omission denotes the server-selected /work root; a present value is a strict child path.\nconst SandboxEnvironmentLogicalCwdSchema = SandboxWorkRelativePathSchema.optional();\n\nexport const SandboxEnvironmentOpenRequestSchema = z\n\t.object({ logicalCwd: SandboxEnvironmentLogicalCwdSchema })\n\t.strict();\n\nexport const SandboxEnvironmentOpenResultSchema = z\n\t.object({\n\t\tenvironment: SandboxEnvironmentHandleSchema,\n\t\tkind: z.literal('opened'),\n\t\tlogicalCwd: SandboxEnvironmentLogicalCwdSchema,\n\t})\n\t.strict();\n\nexport const SandboxEnvironmentHandleRequestSchema = z\n\t.object({ environment: SandboxEnvironmentHandleSchema })\n\t.strict();\n\nexport const SandboxEnvironmentCloseResultSchema = z.discriminatedUnion('kind', [\n\tz.object({ environment: SandboxEnvironmentHandleSchema, kind: z.literal('closed') }).strict(),\n\tz\n\t\t.object({ environment: SandboxEnvironmentHandleSchema, kind: z.literal('already-closed') })\n\t\t.strict(),\n]);\n\nexport const SandboxEnvironmentStatusResultSchema = z.discriminatedUnion('kind', [\n\tz\n\t\t.object({\n\t\t\tenvironment: SandboxEnvironmentHandleSchema,\n\t\t\tkind: z.literal('active'),\n\t\t\tlogicalCwd: SandboxEnvironmentLogicalCwdSchema,\n\t\t})\n\t\t.strict(),\n\tz.object({ environment: SandboxEnvironmentHandleSchema, kind: z.literal('closed') }).strict(),\n\tz.object({ environment: SandboxEnvironmentHandleSchema, kind: z.literal('replaced') }).strict(),\n]);\n\nexport type SandboxEnvironmentOpenRequest = z.infer<typeof SandboxEnvironmentOpenRequestSchema>;\nexport type SandboxEnvironmentOpenResult = z.infer<typeof SandboxEnvironmentOpenResultSchema>;\nexport type SandboxEnvironmentCloseRequest = z.infer<typeof SandboxEnvironmentHandleRequestSchema>;\nexport type SandboxEnvironmentCloseResult = z.infer<typeof SandboxEnvironmentCloseResultSchema>;\nexport type SandboxEnvironmentStatusRequest = z.infer<typeof SandboxEnvironmentHandleRequestSchema>;\nexport type SandboxEnvironmentStatusResult = z.infer<typeof SandboxEnvironmentStatusResultSchema>;\n","import { z } from 'zod';\n\nimport {\n\tBoundedOperationMillisecondsSchema,\n\tNonnegativeSafeIntegerSchema,\n\tPositiveSafeIntegerSchema,\n\tSandboxDirectShellStartRequestSchema,\n\tSandboxStreamHandleSchema,\n\tSandboxTerminalHandleSchema,\n} from './contract-foundations.js';\nimport {\n\tSandboxOperationControlResultSchema,\n\tSandboxOperationIdentitySchema,\n\tSandboxTerminalOutcomeSchema,\n} from './operation-contracts.js';\n\nexport const SandboxExecStartModeSchema = z.discriminatedUnion('kind', [\n\tz.object({ kind: z.literal('direct') }).strict(),\n\tz\n\t\t.object({\n\t\t\tattachTimeoutMs: BoundedOperationMillisecondsSchema,\n\t\t\tkind: z.literal('attachment-reserved'),\n\t\t\tterminal: z.boolean(),\n\t\t})\n\t\t.strict(),\n]);\n\nexport const SandboxExecStartRequestSchema = SandboxDirectShellStartRequestSchema.extend({\n\tmode: SandboxExecStartModeSchema,\n\ttimeoutMs: BoundedOperationMillisecondsSchema,\n}).strict();\n\nconst SandboxExecDirectStartedResultSchema = z\n\t.object({\n\t\tkind: z.literal('started'),\n\t\tmode: z.literal('direct'),\n\t\toperation: SandboxOperationIdentitySchema,\n\t\tstreams: z.array(SandboxStreamHandleSchema).max(3),\n\t})\n\t.strict();\n\nconst SandboxExecAttachmentReservedResultSchema = z\n\t.object({\n\t\tkind: z.literal('started'),\n\t\tmode: z.literal('attachment-reserved'),\n\t\toperation: SandboxOperationIdentitySchema,\n\t\tterminal: SandboxTerminalHandleSchema,\n\t})\n\t.strict();\n\nexport const SandboxExecStartResultSchema = z.union([\n\tSandboxExecDirectStartedResultSchema,\n\tSandboxExecAttachmentReservedResultSchema,\n]);\n\nexport const SandboxExecWaitRequestSchema = z\n\t.object({\n\t\toperation: SandboxOperationIdentitySchema,\n\t\ttimeoutMs: BoundedOperationMillisecondsSchema,\n\t})\n\t.strict();\n\nexport const SandboxExecWaitResultSchema = z\n\t.object({\n\t\texitCode: NonnegativeSafeIntegerSchema.max(255).optional(),\n\t\toperation: SandboxOperationIdentitySchema,\n\t\toutcome: SandboxTerminalOutcomeSchema,\n\t})\n\t.strict();\n\nexport const SandboxExecCancelRequestSchema = z\n\t.object({ operation: SandboxOperationIdentitySchema })\n\t.strict();\n\nexport const SandboxExecCancelResultSchema = SandboxOperationControlResultSchema;\n\nexport const SandboxTerminalSizeSchema = z\n\t.object({\n\t\tcolumns: PositiveSafeIntegerSchema.max(1_000),\n\t\trows: PositiveSafeIntegerSchema.max(1_000),\n\t})\n\t.strict();\n\nexport type SandboxExecStartRequest = z.infer<typeof SandboxExecStartRequestSchema>;\nexport type SandboxExecStartResult = z.infer<typeof SandboxExecStartResultSchema>;\nexport type SandboxExecWaitRequest = z.infer<typeof SandboxExecWaitRequestSchema>;\nexport type SandboxExecWaitResult = z.infer<typeof SandboxExecWaitResultSchema>;\nexport type SandboxExecCancelRequest = z.infer<typeof SandboxExecCancelRequestSchema>;\nexport type SandboxExecCancelResult = z.infer<typeof SandboxExecCancelResultSchema>;\n","import { z } from 'zod';\n\nimport {\n\tBoundedByteCountSchema,\n\tBoundedOpaqueIdentifierSchema,\n\tNonnegativeSafeIntegerSchema,\n\tPositiveSafeIntegerSchema,\n\tSandboxBinaryChunkSchema,\n\tSandboxEnvironmentHandleSchema,\n\tSandboxGuestPathSchema,\n\tSha256DigestSchema,\n} from './contract-foundations.js';\n\nconst SandboxFilesystemPathRequestSchema = z\n\t.object({\n\t\tenvironment: SandboxEnvironmentHandleSchema,\n\t\tpath: SandboxGuestPathSchema,\n\t})\n\t.strict();\n\nexport const SandboxFsStatRequestSchema = SandboxFilesystemPathRequestSchema;\n\nexport const SandboxFilesystemEntrySchema = z\n\t.object({\n\t\tbyteLength: NonnegativeSafeIntegerSchema.optional(),\n\t\tkind: z.enum(['file', 'directory', 'symlink']),\n\t\tpath: SandboxGuestPathSchema,\n\t})\n\t.strict();\n\nexport const SandboxFsStatResultSchema = z.discriminatedUnion('kind', [\n\tz.object({ entry: SandboxFilesystemEntrySchema, kind: z.literal('stat') }).strict(),\n\tz.object({ kind: z.literal('not-found'), path: SandboxGuestPathSchema }).strict(),\n]);\n\nexport const SandboxFsListRequestSchema = SandboxFilesystemPathRequestSchema.extend({\n\tcursor: BoundedOpaqueIdentifierSchema.optional(),\n\tmaxDepth: PositiveSafeIntegerSchema.max(32),\n\tmaxEntries: PositiveSafeIntegerSchema.max(1_000),\n}).strict();\n\nexport const SandboxFsListResultSchema = z\n\t.object({\n\t\tentries: z.array(SandboxFilesystemEntrySchema).max(1_000),\n\t\tkind: z.literal('listed'),\n\t\tnextCursor: BoundedOpaqueIdentifierSchema.optional(),\n\t})\n\t.strict();\n\nexport const SandboxFsReadRequestSchema = SandboxFilesystemPathRequestSchema.extend({\n\tmaxBytes: BoundedByteCountSchema,\n\toffsetBytes: NonnegativeSafeIntegerSchema,\n}).strict();\n\nexport const SandboxFsReadResultSchema = z\n\t.object({\n\t\tchunk: SandboxBinaryChunkSchema,\n\t\teof: z.boolean(),\n\t\tkind: z.literal('read'),\n\t\tnextOffsetBytes: NonnegativeSafeIntegerSchema,\n\t\tpath: SandboxGuestPathSchema,\n\t})\n\t.strict();\n\nexport const SandboxFsWriteRequestSchema = SandboxFilesystemPathRequestSchema.extend({\n\tatomic: z.boolean(),\n\tcontent: SandboxBinaryChunkSchema,\n\toffsetBytes: NonnegativeSafeIntegerSchema.optional(),\n}).strict();\n\nexport const SandboxFsWriteResultSchema = z\n\t.object({\n\t\tbytesWritten: NonnegativeSafeIntegerSchema,\n\t\tcontentDigest: Sha256DigestSchema,\n\t\tkind: z.literal('written'),\n\t\tpath: SandboxGuestPathSchema,\n\t})\n\t.strict();\n\nexport const SandboxFsMkdirRequestSchema = SandboxFilesystemPathRequestSchema.extend({\n\trecursive: z.boolean(),\n}).strict();\n\nexport const SandboxFsMkdirResultSchema = z\n\t.object({\n\t\tcreated: z.boolean(),\n\t\tkind: z.literal('directory-ready'),\n\t\tpath: SandboxGuestPathSchema,\n\t})\n\t.strict();\n\nexport const SandboxFsRenameRequestSchema = z\n\t.object({\n\t\tdestinationPath: SandboxGuestPathSchema,\n\t\tenvironment: SandboxEnvironmentHandleSchema,\n\t\treplace: z.boolean(),\n\t\tsourcePath: SandboxGuestPathSchema,\n\t})\n\t.strict();\n\nexport const SandboxFsRenameResultSchema = z\n\t.object({\n\t\tdestinationPath: SandboxGuestPathSchema,\n\t\tkind: z.literal('renamed'),\n\t\tsourcePath: SandboxGuestPathSchema,\n\t})\n\t.strict();\n\nexport const SandboxFsRemoveRequestSchema = SandboxFilesystemPathRequestSchema.extend({\n\trecursive: z.boolean(),\n}).strict();\n\nexport const SandboxFsRemoveResultSchema = z\n\t.object({ kind: z.literal('removed'), path: SandboxGuestPathSchema, removed: z.boolean() })\n\t.strict();\n\nexport type SandboxFsStatRequest = z.infer<typeof SandboxFsStatRequestSchema>;\nexport type SandboxFsStatResult = z.infer<typeof SandboxFsStatResultSchema>;\nexport type SandboxFsListRequest = z.infer<typeof SandboxFsListRequestSchema>;\nexport type SandboxFsListResult = z.infer<typeof SandboxFsListResultSchema>;\nexport type SandboxFsReadRequest = z.infer<typeof SandboxFsReadRequestSchema>;\nexport type SandboxFsReadResult = z.infer<typeof SandboxFsReadResultSchema>;\nexport type SandboxFsWriteRequest = z.infer<typeof SandboxFsWriteRequestSchema>;\nexport type SandboxFsWriteResult = z.infer<typeof SandboxFsWriteResultSchema>;\nexport type SandboxFsMkdirRequest = z.infer<typeof SandboxFsMkdirRequestSchema>;\nexport type SandboxFsMkdirResult = z.infer<typeof SandboxFsMkdirResultSchema>;\nexport type SandboxFsRenameRequest = z.infer<typeof SandboxFsRenameRequestSchema>;\nexport type SandboxFsRenameResult = z.infer<typeof SandboxFsRenameResultSchema>;\nexport type SandboxFsRemoveRequest = z.infer<typeof SandboxFsRemoveRequestSchema>;\nexport type SandboxFsRemoveResult = z.infer<typeof SandboxFsRemoveResultSchema>;\n","import { z } from 'zod';\n\nimport {\n\tBoundedByteCountSchema,\n\tBoundedOpaqueIdentifierSchema,\n\tBoundedOperationMillisecondsSchema,\n\tNonnegativeSafeIntegerSchema,\n\tSandboxBinaryChunkSchema,\n\tSandboxDirectShellStartRequestSchema,\n\tSandboxProcessHandleSchema,\n\tSandboxStreamChannelSchema,\n\tSandboxStreamHandleSchema,\n} from './contract-foundations.js';\nimport {\n\tSandboxOperationControlResultSchema,\n\tSandboxOperationIdentitySchema,\n\tSandboxTerminalOutcomeSchema,\n} from './operation-contracts.js';\n\nexport const SandboxProcessStartRequestSchema = SandboxDirectShellStartRequestSchema.extend({\n\tmaxRuntimeMs: BoundedOperationMillisecondsSchema,\n\tretainOutputBytes: BoundedByteCountSchema,\n}).strict();\n\nexport const SandboxProcessStartResultSchema = z\n\t.object({\n\t\tkind: z.literal('started'),\n\t\toperation: SandboxOperationIdentitySchema,\n\t\tprocess: SandboxProcessHandleSchema,\n\t\tstreams: z.array(SandboxStreamHandleSchema).max(3),\n\t})\n\t.strict();\n\nexport const SandboxProcessHandleRequestSchema = z\n\t.object({ process: SandboxProcessHandleSchema })\n\t.strict();\n\nexport const SandboxProcessStatusResultSchema = z.discriminatedUnion('kind', [\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('running'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t\tprocess: SandboxProcessHandleSchema,\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('terminal'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t\toutcome: SandboxTerminalOutcomeSchema,\n\t\t\tprocess: SandboxProcessHandleSchema,\n\t\t})\n\t\t.strict(),\n]);\n\nexport const SandboxProcessWaitRequestSchema = SandboxProcessHandleRequestSchema.extend({\n\ttimeoutMs: BoundedOperationMillisecondsSchema,\n}).strict();\n\nexport const SandboxProcessWaitResultSchema = SandboxProcessStatusResultSchema;\n\nexport const SandboxProcessLogsRequestSchema = SandboxProcessHandleRequestSchema.extend({\n\tchannels: z.array(SandboxStreamChannelSchema).min(1).max(4),\n\tcursor: BoundedOpaqueIdentifierSchema.optional(),\n\tmaxBytes: BoundedByteCountSchema,\n}).strict();\n\nexport const SandboxProcessLogChunkSchema = z\n\t.object({\n\t\tchannel: SandboxStreamChannelSchema,\n\t\tchunk: SandboxBinaryChunkSchema,\n\t\tsequence: NonnegativeSafeIntegerSchema,\n\t})\n\t.strict();\n\nexport const SandboxProcessLogsResultSchema = z\n\t.object({\n\t\tchunks: z.array(SandboxProcessLogChunkSchema).max(1_000),\n\t\tkind: z.literal('logs'),\n\t\tnextCursor: BoundedOpaqueIdentifierSchema.optional(),\n\t\tprocess: SandboxProcessHandleSchema,\n\t\ttruncated: z.boolean(),\n\t})\n\t.strict();\n\nexport const SandboxProcessCancelRequestSchema = SandboxProcessHandleRequestSchema;\nexport const SandboxProcessCancelResultSchema = SandboxOperationControlResultSchema;\n\nexport type SandboxProcessStartRequest = z.infer<typeof SandboxProcessStartRequestSchema>;\nexport type SandboxProcessStartResult = z.infer<typeof SandboxProcessStartResultSchema>;\nexport type SandboxProcessStatusRequest = z.infer<typeof SandboxProcessHandleRequestSchema>;\nexport type SandboxProcessStatusResult = z.infer<typeof SandboxProcessStatusResultSchema>;\nexport type SandboxProcessWaitRequest = z.infer<typeof SandboxProcessWaitRequestSchema>;\nexport type SandboxProcessWaitResult = z.infer<typeof SandboxProcessWaitResultSchema>;\nexport type SandboxProcessLogsRequest = z.infer<typeof SandboxProcessLogsRequestSchema>;\nexport type SandboxProcessLogsResult = z.infer<typeof SandboxProcessLogsResultSchema>;\nexport type SandboxProcessCancelRequest = z.infer<typeof SandboxProcessCancelRequestSchema>;\nexport type SandboxProcessCancelResult = z.infer<typeof SandboxProcessCancelResultSchema>;\n","import { z } from 'zod';\n\nimport {\n\tBoundedByteCountSchema,\n\tBoundedOpaqueIdentifierSchema,\n\tNonnegativeSafeIntegerSchema,\n\tSandboxBinaryChunkSchema,\n\tSandboxStreamHandleSchema,\n\tSha256DigestSchema,\n} from './contract-foundations.js';\n\nexport const SandboxStreamReadRequestSchema = z\n\t.object({\n\t\tcursor: BoundedOpaqueIdentifierSchema.optional(),\n\t\tmaxBytes: BoundedByteCountSchema,\n\t\tstream: SandboxStreamHandleSchema,\n\t})\n\t.strict();\n\nexport const SandboxStreamReadResultSchema = z\n\t.object({\n\t\tchunk: SandboxBinaryChunkSchema,\n\t\teof: z.boolean(),\n\t\tkind: z.literal('read'),\n\t\tnextCursor: BoundedOpaqueIdentifierSchema.optional(),\n\t\tsequence: NonnegativeSafeIntegerSchema,\n\t\tstream: SandboxStreamHandleSchema,\n\t})\n\t.strict();\n\nexport const SandboxStreamWriteRequestSchema = z\n\t.object({\n\t\tcontent: SandboxBinaryChunkSchema,\n\t\tcontentDigest: Sha256DigestSchema,\n\t\tsequence: NonnegativeSafeIntegerSchema,\n\t\tstream: SandboxStreamHandleSchema,\n\t})\n\t.strict();\n\nexport const SandboxStreamWriteResultSchema = z.discriminatedUnion('kind', [\n\tz\n\t\t.object({\n\t\t\tbytesWritten: NonnegativeSafeIntegerSchema,\n\t\t\tkind: z.literal('written'),\n\t\t\tsequence: NonnegativeSafeIntegerSchema,\n\t\t\tstream: SandboxStreamHandleSchema,\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('already-written'),\n\t\t\tsequence: NonnegativeSafeIntegerSchema,\n\t\t\tstream: SandboxStreamHandleSchema,\n\t\t})\n\t\t.strict(),\n]);\n\nexport const SandboxStreamCloseRequestSchema = z\n\t.object({ stream: SandboxStreamHandleSchema })\n\t.strict();\n\nexport const SandboxStreamCloseResultSchema = z.discriminatedUnion('kind', [\n\tz.object({ kind: z.literal('closed'), stream: SandboxStreamHandleSchema }).strict(),\n\tz.object({ kind: z.literal('already-closed'), stream: SandboxStreamHandleSchema }).strict(),\n]);\n\nexport type SandboxStreamReadRequest = z.infer<typeof SandboxStreamReadRequestSchema>;\nexport type SandboxStreamReadResult = z.infer<typeof SandboxStreamReadResultSchema>;\nexport type SandboxStreamWriteRequest = z.infer<typeof SandboxStreamWriteRequestSchema>;\nexport type SandboxStreamWriteResult = z.infer<typeof SandboxStreamWriteResultSchema>;\nexport type SandboxStreamCloseRequest = z.infer<typeof SandboxStreamCloseRequestSchema>;\nexport type SandboxStreamCloseResult = z.infer<typeof SandboxStreamCloseResultSchema>;\n","import { z } from 'zod';\n\nimport { SandboxStreamHandleSchema, SandboxTerminalHandleSchema } from './contract-foundations.js';\nimport { SandboxOperationIdentitySchema } from './operation-contracts.js';\nimport { SandboxTerminalSizeSchema } from './sandbox-execution-contracts.js';\n\nexport const SandboxTerminalAttachRequestSchema = z\n\t.object({\n\t\toperation: SandboxOperationIdentitySchema,\n\t\tsize: SandboxTerminalSizeSchema,\n\t})\n\t.strict();\n\nexport const SandboxTerminalAttachResultSchema = z\n\t.object({\n\t\tinput: SandboxStreamHandleSchema,\n\t\tkind: z.literal('attached'),\n\t\toutput: SandboxStreamHandleSchema,\n\t\tterminal: SandboxTerminalHandleSchema,\n\t})\n\t.strict();\n\nexport const SandboxTerminalResizeRequestSchema = z\n\t.object({\n\t\tsize: SandboxTerminalSizeSchema,\n\t\tterminal: SandboxTerminalHandleSchema,\n\t})\n\t.strict();\n\nexport const SandboxTerminalResizeResultSchema = z\n\t.object({\n\t\tkind: z.literal('resized'),\n\t\tsize: SandboxTerminalSizeSchema,\n\t\tterminal: SandboxTerminalHandleSchema,\n\t})\n\t.strict();\n\nexport type SandboxTerminalAttachRequest = z.infer<typeof SandboxTerminalAttachRequestSchema>;\nexport type SandboxTerminalAttachResult = z.infer<typeof SandboxTerminalAttachResultSchema>;\nexport type SandboxTerminalResizeRequest = z.infer<typeof SandboxTerminalResizeRequestSchema>;\nexport type SandboxTerminalResizeResult = z.infer<typeof SandboxTerminalResizeResultSchema>;\n","import { z } from 'zod';\n\nimport { withPortableSuperRefinement } from '../portable-contracts/portable-refinement-authoring.js';\nimport {\n\tBoundedOpaqueIdentifierSchema,\n\tPositiveSafeIntegerSchema,\n} from './contract-foundations.js';\n\nexport const GatewayRuntimeFrameworkKindSchema = z.enum(['openclaw', 'hermes']);\nexport const GatewayRuntimeManagedPluginClientKindSchema = z.enum([\n\t'openclaw-managed-plugin',\n\t'hermes-managed-plugin',\n]);\nexport const GatewayRuntimeFrameworkIdentitySchema = z\n\t.discriminatedUnion('kind', [\n\t\tz\n\t\t\t.object({\n\t\t\t\tagentId: BoundedOpaqueIdentifierSchema,\n\t\t\t\tkind: z.literal('openclaw'),\n\t\t\t})\n\t\t\t.strict(),\n\t\tz\n\t\t\t.object({\n\t\t\t\tkind: z.literal('hermes'),\n\t\t\t\tprofileName: BoundedOpaqueIdentifierSchema,\n\t\t\t})\n\t\t\t.strict(),\n\t])\n\t.readonly();\nexport const GatewayRuntimeProjectionCohortDigestSchema = z\n\t.string()\n\t.regex(/^projection-cohort:[a-f0-9]{64}$/u);\n\nexport const ManagedAgentProjectionSchema = z\n\t.object({\n\t\tagentId: BoundedOpaqueIdentifierSchema,\n\t\tframeworkIdentity: GatewayRuntimeFrameworkIdentitySchema,\n\t\tprofileAssignmentRevision: BoundedOpaqueIdentifierSchema,\n\t\ttoolPortalProfileId: BoundedOpaqueIdentifierSchema,\n\t})\n\t.strict()\n\t.readonly();\n\nexport const GatewayRuntimeAttachmentMetadataSchema = withPortableSuperRefinement({\n\trefinement: (metadata, context) => {\n\t\tif (new Set(metadata.configuredAgentIds).size !== metadata.configuredAgentIds.length) {\n\t\t\tcontext.addIssue({\n\t\t\t\tcode: 'custom',\n\t\t\t\tmessage: 'Gateway attachment metadata contains a duplicate configured agent id.',\n\t\t\t\tpath: ['configuredAgentIds'],\n\t\t\t});\n\t\t}\n\t},\n\trefinementIdentity: 'gateway.attachment.unique-agent-ids',\n\tschema: z\n\t\t.object({\n\t\t\tattachmentGeneration: PositiveSafeIntegerSchema,\n\t\t\tclientKind: GatewayRuntimeManagedPluginClientKindSchema,\n\t\t\tconfiguredAgentIds: z.array(BoundedOpaqueIdentifierSchema).min(1).max(128),\n\t\t\tframeworkEpoch: BoundedOpaqueIdentifierSchema,\n\t\t\tgatewayEpoch: BoundedOpaqueIdentifierSchema,\n\t\t\tprotocolVersion: PositiveSafeIntegerSchema,\n\t\t\tprojectionCohortDigest: GatewayRuntimeProjectionCohortDigestSchema,\n\t\t\truntimeEpoch: BoundedOpaqueIdentifierSchema,\n\t\t\tschemaVersion: PositiveSafeIntegerSchema,\n\t\t})\n\t\t.strict(),\n});\n\nexport const GatewayStablePrincipalDigestSchema = z.string().regex(/^[a-f0-9]{64}$/u);\n\nexport const GatewayRuntimeTrustedInvocationPrincipalSchema = z\n\t.object({\n\t\tagentId: BoundedOpaqueIdentifierSchema,\n\t\tframeworkIdentity: GatewayRuntimeFrameworkIdentitySchema,\n\t\tprofileAssignmentRevision: BoundedOpaqueIdentifierSchema,\n\t\ttoolPortalProfileId: BoundedOpaqueIdentifierSchema,\n\t})\n\t.strict();\n\nexport const GatewayRuntimeTrustedInvocationRequesterSchema = z\n\t.object({\n\t\tauthenticatedSubjectId: BoundedOpaqueIdentifierSchema,\n\t})\n\t.strict();\n\nexport const GatewayRuntimeTrustedInvocationCorrelationSchema = z\n\t.object({\n\t\trunId: BoundedOpaqueIdentifierSchema.optional(),\n\t\tsessionId: BoundedOpaqueIdentifierSchema.optional(),\n\t\tsessionKey: BoundedOpaqueIdentifierSchema.optional(),\n\t\ttoolCallId: BoundedOpaqueIdentifierSchema.optional(),\n\t})\n\t.strict();\n\nexport const GatewayRuntimeTrustedInvocationContextSchema = z\n\t.object({\n\t\tcorrelation: GatewayRuntimeTrustedInvocationCorrelationSchema.optional(),\n\t\tprincipal: GatewayRuntimeTrustedInvocationPrincipalSchema,\n\t\trequester: GatewayRuntimeTrustedInvocationRequesterSchema.optional(),\n\t})\n\t.strict();\n\nexport type GatewayRuntimeAttachmentMetadata = z.infer<\n\ttypeof GatewayRuntimeAttachmentMetadataSchema\n>;\nexport type GatewayRuntimeFrameworkIdentity = z.infer<typeof GatewayRuntimeFrameworkIdentitySchema>;\nexport type GatewayRuntimeFrameworkKind = z.infer<typeof GatewayRuntimeFrameworkKindSchema>;\nexport type GatewayRuntimeManagedPluginClientKind = z.infer<\n\ttypeof GatewayRuntimeManagedPluginClientKindSchema\n>;\nexport type ManagedAgentProjection = z.infer<typeof ManagedAgentProjectionSchema>;\nexport type GatewayRuntimeTrustedInvocationCorrelation = z.infer<\n\ttypeof GatewayRuntimeTrustedInvocationCorrelationSchema\n>;\nexport type GatewayRuntimeTrustedInvocationContext = z.infer<\n\ttypeof GatewayRuntimeTrustedInvocationContextSchema\n>;\nexport type GatewayStablePrincipalDigest = z.infer<typeof GatewayStablePrincipalDigestSchema>;\nexport type GatewayRuntimeTrustedInvocationPrincipal = z.infer<\n\ttypeof GatewayRuntimeTrustedInvocationPrincipalSchema\n>;\nexport type GatewayRuntimeTrustedInvocationRequester = z.infer<\n\ttypeof GatewayRuntimeTrustedInvocationRequesterSchema\n>;\n","import type { z } from 'zod';\n\nimport {\n\tSandboxRetainedResultLookupRequestSchema,\n\tSandboxRetainedResultLookupResultSchema,\n} from './operation-contracts.js';\nimport {\n\tSandboxEnvironmentCloseResultSchema,\n\tSandboxEnvironmentHandleRequestSchema,\n\tSandboxEnvironmentOpenRequestSchema,\n\tSandboxEnvironmentOpenResultSchema,\n\tSandboxEnvironmentStatusResultSchema,\n} from './sandbox-environment-contracts.js';\nimport {\n\tSandboxExecCancelRequestSchema,\n\tSandboxExecCancelResultSchema,\n\tSandboxExecStartRequestSchema,\n\tSandboxExecStartResultSchema,\n\tSandboxExecWaitRequestSchema,\n\tSandboxExecWaitResultSchema,\n} from './sandbox-execution-contracts.js';\nimport {\n\tSandboxFsListRequestSchema,\n\tSandboxFsListResultSchema,\n\tSandboxFsMkdirRequestSchema,\n\tSandboxFsMkdirResultSchema,\n\tSandboxFsReadRequestSchema,\n\tSandboxFsReadResultSchema,\n\tSandboxFsRemoveRequestSchema,\n\tSandboxFsRemoveResultSchema,\n\tSandboxFsRenameRequestSchema,\n\tSandboxFsRenameResultSchema,\n\tSandboxFsStatRequestSchema,\n\tSandboxFsStatResultSchema,\n\tSandboxFsWriteRequestSchema,\n\tSandboxFsWriteResultSchema,\n} from './sandbox-filesystem-contracts.js';\nimport {\n\tSandboxProcessCancelRequestSchema,\n\tSandboxProcessCancelResultSchema,\n\tSandboxProcessHandleRequestSchema,\n\tSandboxProcessLogsRequestSchema,\n\tSandboxProcessLogsResultSchema,\n\tSandboxProcessStartRequestSchema,\n\tSandboxProcessStartResultSchema,\n\tSandboxProcessStatusResultSchema,\n\tSandboxProcessWaitRequestSchema,\n\tSandboxProcessWaitResultSchema,\n} from './sandbox-process-contracts.js';\nimport {\n\tSandboxStreamCloseRequestSchema,\n\tSandboxStreamCloseResultSchema,\n\tSandboxStreamReadRequestSchema,\n\tSandboxStreamReadResultSchema,\n\tSandboxStreamWriteRequestSchema,\n\tSandboxStreamWriteResultSchema,\n} from './sandbox-stream-contracts.js';\nimport {\n\tSandboxTerminalAttachRequestSchema,\n\tSandboxTerminalAttachResultSchema,\n\tSandboxTerminalResizeRequestSchema,\n\tSandboxTerminalResizeResultSchema,\n} from './sandbox-terminal-contracts.js';\n\ninterface SandboxMethodContract {\n\treadonly request: z.ZodType;\n\treadonly result: z.ZodType;\n}\n\nexport const SANDBOX_METHOD_CONTRACTS = {\n\t'sandbox.environment.close': {\n\t\trequest: SandboxEnvironmentHandleRequestSchema,\n\t\tresult: SandboxEnvironmentCloseResultSchema,\n\t},\n\t'sandbox.environment.open': {\n\t\trequest: SandboxEnvironmentOpenRequestSchema,\n\t\tresult: SandboxEnvironmentOpenResultSchema,\n\t},\n\t'sandbox.environment.status': {\n\t\trequest: SandboxEnvironmentHandleRequestSchema,\n\t\tresult: SandboxEnvironmentStatusResultSchema,\n\t},\n\t'sandbox.exec.cancel': {\n\t\trequest: SandboxExecCancelRequestSchema,\n\t\tresult: SandboxExecCancelResultSchema,\n\t},\n\t'sandbox.exec.start': {\n\t\trequest: SandboxExecStartRequestSchema,\n\t\tresult: SandboxExecStartResultSchema,\n\t},\n\t'sandbox.exec.wait': {\n\t\trequest: SandboxExecWaitRequestSchema,\n\t\tresult: SandboxExecWaitResultSchema,\n\t},\n\t'sandbox.retained-result.lookup': {\n\t\trequest: SandboxRetainedResultLookupRequestSchema,\n\t\tresult: SandboxRetainedResultLookupResultSchema,\n\t},\n\t'sandbox.fs.list': { request: SandboxFsListRequestSchema, result: SandboxFsListResultSchema },\n\t'sandbox.fs.mkdir': {\n\t\trequest: SandboxFsMkdirRequestSchema,\n\t\tresult: SandboxFsMkdirResultSchema,\n\t},\n\t'sandbox.fs.read': { request: SandboxFsReadRequestSchema, result: SandboxFsReadResultSchema },\n\t'sandbox.fs.remove': {\n\t\trequest: SandboxFsRemoveRequestSchema,\n\t\tresult: SandboxFsRemoveResultSchema,\n\t},\n\t'sandbox.fs.rename': {\n\t\trequest: SandboxFsRenameRequestSchema,\n\t\tresult: SandboxFsRenameResultSchema,\n\t},\n\t'sandbox.fs.stat': { request: SandboxFsStatRequestSchema, result: SandboxFsStatResultSchema },\n\t'sandbox.fs.write': {\n\t\trequest: SandboxFsWriteRequestSchema,\n\t\tresult: SandboxFsWriteResultSchema,\n\t},\n\t'sandbox.process.cancel': {\n\t\trequest: SandboxProcessCancelRequestSchema,\n\t\tresult: SandboxProcessCancelResultSchema,\n\t},\n\t'sandbox.process.logs': {\n\t\trequest: SandboxProcessLogsRequestSchema,\n\t\tresult: SandboxProcessLogsResultSchema,\n\t},\n\t'sandbox.process.start': {\n\t\trequest: SandboxProcessStartRequestSchema,\n\t\tresult: SandboxProcessStartResultSchema,\n\t},\n\t'sandbox.process.status': {\n\t\trequest: SandboxProcessHandleRequestSchema,\n\t\tresult: SandboxProcessStatusResultSchema,\n\t},\n\t'sandbox.process.wait': {\n\t\trequest: SandboxProcessWaitRequestSchema,\n\t\tresult: SandboxProcessWaitResultSchema,\n\t},\n\t'sandbox.stream.close': {\n\t\trequest: SandboxStreamCloseRequestSchema,\n\t\tresult: SandboxStreamCloseResultSchema,\n\t},\n\t'sandbox.stream.read': {\n\t\trequest: SandboxStreamReadRequestSchema,\n\t\tresult: SandboxStreamReadResultSchema,\n\t},\n\t'sandbox.stream.write': {\n\t\trequest: SandboxStreamWriteRequestSchema,\n\t\tresult: SandboxStreamWriteResultSchema,\n\t},\n\t'sandbox.terminal.attach': {\n\t\trequest: SandboxTerminalAttachRequestSchema,\n\t\tresult: SandboxTerminalAttachResultSchema,\n\t},\n\t'sandbox.terminal.resize': {\n\t\trequest: SandboxTerminalResizeRequestSchema,\n\t\tresult: SandboxTerminalResizeResultSchema,\n\t},\n} as const satisfies Readonly<Record<string, SandboxMethodContract>>;\n\nexport * from './contract-foundations.js';\nexport * from './operation-contracts.js';\nexport * from './sandbox-environment-contracts.js';\nexport * from './sandbox-execution-contracts.js';\nexport * from './sandbox-filesystem-contracts.js';\nexport * from './sandbox-process-contracts.js';\nexport * from './sandbox-stream-contracts.js';\nexport * from './sandbox-terminal-contracts.js';\nexport * from './trusted-context-contracts.js';\n"],"mappings":"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"}
1
+ {"version":3,"file":"contracts-3pjrcMjD.js","names":[],"sources":["../src/contracts/contract-foundations.ts","../src/contracts/operation-contracts.ts","../src/contracts/sandbox-environment-contracts.ts","../src/contracts/sandbox-execution-contracts.ts","../src/contracts/sandbox-filesystem-contracts.ts","../src/contracts/sandbox-process-contracts.ts","../src/contracts/sandbox-stream-contracts.ts","../src/contracts/sandbox-terminal-contracts.ts","../src/contracts/trusted-context-contracts.ts","../src/contracts/index.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { withPortableSuperRefinement } from '../portable-contracts/portable-refinement-authoring.js';\n\nexport const PORTABLE_MAXIMUM_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;\nexport const SANDBOX_MAXIMUM_ENVIRONMENT_VARIABLES = 100;\nexport const SANDBOX_MAXIMUM_IDENTIFIER_CHARACTERS = 256;\nexport const SANDBOX_MAXIMUM_PATH_CHARACTERS = 1_024;\nexport const SANDBOX_MAXIMUM_TEXT_CHARACTERS = 64 * 1_024;\nexport const SANDBOX_MAXIMUM_BINARY_BYTES = 16 * 1_024 * 1_024;\nexport const SANDBOX_MAXIMUM_LIST_ITEMS = 1_000;\nexport const SANDBOX_MAXIMUM_OPERATION_MILLISECONDS = 60 * 60 * 1_000;\n\nexport const BoundedOpaqueIdentifierSchema = z\n\t.string()\n\t.min(1)\n\t.max(SANDBOX_MAXIMUM_IDENTIFIER_CHARACTERS);\nexport const PositiveSafeIntegerSchema = z\n\t.number()\n\t.int()\n\t.positive()\n\t.max(PORTABLE_MAXIMUM_SAFE_INTEGER);\nexport const NonnegativeSafeIntegerSchema = z\n\t.number()\n\t.int()\n\t.nonnegative()\n\t.max(PORTABLE_MAXIMUM_SAFE_INTEGER);\nexport const BoundedOperationMillisecondsSchema = PositiveSafeIntegerSchema.max(\n\tSANDBOX_MAXIMUM_OPERATION_MILLISECONDS,\n);\nexport const BoundedByteCountSchema = PositiveSafeIntegerSchema.max(SANDBOX_MAXIMUM_BINARY_BYTES);\nexport const BoundedTextSchema = z.string().max(SANDBOX_MAXIMUM_TEXT_CHARACTERS);\nexport const SandboxShellCommandSchema = z\n\t.string()\n\t.min(1)\n\t.max(SANDBOX_MAXIMUM_TEXT_CHARACTERS)\n\t// oxlint-disable-next-line no-control-regex -- The wire contract must reject embedded NUL bytes.\n\t.regex(/^[^\\0]+$/u);\nexport const SandboxGuestAbsolutePathSchema = z\n\t.string()\n\t.min(1)\n\t.max(SANDBOX_MAXIMUM_PATH_CHARACTERS)\n\t.startsWith('/')\n\t// oxlint-disable-next-line no-control-regex -- Guest paths cannot contain embedded NUL bytes.\n\t.regex(/^[^\\0]+$/u);\nexport const SandboxGuestPathSchema = z\n\t.string()\n\t.min(1)\n\t.max(SANDBOX_MAXIMUM_PATH_CHARACTERS)\n\t// oxlint-disable-next-line no-control-regex -- Guest paths cannot contain embedded NUL bytes.\n\t.regex(/^[^\\0]+$/u);\nexport const SandboxEnvironmentVariableNameSchema = z\n\t.string()\n\t.min(1)\n\t.max(SANDBOX_MAXIMUM_IDENTIFIER_CHARACTERS)\n\t.regex(/^[A-Za-z_][A-Za-z0-9_]*$/u);\nexport const SandboxEnvironmentVariableValueSchema = z\n\t.string()\n\t.max(SANDBOX_MAXIMUM_TEXT_CHARACTERS)\n\t// oxlint-disable-next-line no-control-regex -- Environment values cannot contain embedded NUL bytes.\n\t.regex(/^[^\\0]*$/u);\n\nconst canonicalBase64Pattern = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u;\n\nexport const CanonicalBase64Schema = z\n\t.string()\n\t.max(Math.ceil(SANDBOX_MAXIMUM_BINARY_BYTES / 3) * 4)\n\t.regex(canonicalBase64Pattern);\nexport const Sha256DigestSchema = z.string().regex(/^sha256:[0-9a-f]{64}$/u);\n\nexport const SandboxWorkRelativePathSchema = withPortableSuperRefinement({\n\trefinement: (requestedPath, context) => {\n\t\tif (\n\t\t\trequestedPath.length === 0 ||\n\t\t\trequestedPath.includes('\\0') ||\n\t\t\trequestedPath.startsWith('/') ||\n\t\t\trequestedPath.endsWith('/') ||\n\t\t\trequestedPath\n\t\t\t\t.split('/')\n\t\t\t\t.some((segment) => segment === '' || segment === '.' || segment === '..')\n\t\t) {\n\t\t\tcontext.addIssue({\n\t\t\t\tcode: 'custom',\n\t\t\t\tmessage: 'Sandbox path must remain relative to the server-selected work root.',\n\t\t\t});\n\t\t}\n\t},\n\trefinementIdentity: 'sandbox.path.work-relative',\n\tschema: z.string().max(SANDBOX_MAXIMUM_PATH_CHARACTERS),\n});\n\nexport const SandboxHandleKindSchema = z.enum(['environment', 'process', 'stream', 'terminal']);\nexport const SandboxStreamChannelSchema = z.enum(['stdin', 'stdout', 'stderr', 'pty']);\n\nexport const SandboxBoundHandleSchema = z\n\t.object({\n\t\thandleId: BoundedOpaqueIdentifierSchema,\n\t\tkind: SandboxHandleKindSchema,\n\t\towningGeneration: BoundedOpaqueIdentifierSchema,\n\t})\n\t.strict();\n\n// oxlint-disable-next-line explicit-function-return-type -- Preserve the literal handle kind in the returned Zod object schema.\nexport function createSandboxBoundHandleSchema<\n\tTHandleKind extends z.infer<typeof SandboxHandleKindSchema>,\n>(kind: THandleKind) {\n\treturn SandboxBoundHandleSchema.extend({ kind: z.literal(kind) }).strict();\n}\n\nexport const SandboxEnvironmentHandleSchema = createSandboxBoundHandleSchema('environment');\nexport const SandboxProcessHandleSchema = createSandboxBoundHandleSchema('process');\nexport const SandboxStreamHandleSchema = createSandboxBoundHandleSchema('stream')\n\t.extend({ channel: SandboxStreamChannelSchema })\n\t.strict();\nexport const SandboxTerminalHandleSchema = createSandboxBoundHandleSchema('terminal');\n\nexport const SandboxEnvironmentVariableSchema = z\n\t.object({\n\t\tname: SandboxEnvironmentVariableNameSchema,\n\t\tvalue: SandboxEnvironmentVariableValueSchema,\n\t})\n\t.strict()\n\t.readonly();\n\nexport const SandboxDirectShellStartRequestSchema = withPortableSuperRefinement({\n\trefinement: (request, context) => {\n\t\tconst environmentVariableNames =\n\t\t\trequest.environmentVariables?.map((environmentVariable) => environmentVariable.name) ?? [];\n\t\tif (new Set(environmentVariableNames).size !== environmentVariableNames.length) {\n\t\t\tcontext.addIssue({\n\t\t\t\tcode: 'custom',\n\t\t\t\tmessage: 'Direct Sandbox environment contains a duplicate variable name.',\n\t\t\t});\n\t\t}\n\t},\n\trefinementIdentity: 'sandbox.environment-variable.unique-names',\n\tschema: z\n\t\t.object({\n\t\t\tcommand: SandboxShellCommandSchema,\n\t\t\tcwd: SandboxGuestAbsolutePathSchema.optional(),\n\t\t\tenvironment: SandboxEnvironmentHandleSchema,\n\t\t\tenvironmentVariables: z\n\t\t\t\t.array(SandboxEnvironmentVariableSchema)\n\t\t\t\t.max(SANDBOX_MAXIMUM_ENVIRONMENT_VARIABLES)\n\t\t\t\t.readonly()\n\t\t\t\t.optional(),\n\t\t})\n\t\t.strict(),\n});\n\nfunction decodedCanonicalBase64ByteLength(contentBase64: string): number {\n\tif (contentBase64.length === 0) return 0;\n\tconst paddingCharacters = contentBase64.endsWith('==') ? 2 : contentBase64.endsWith('=') ? 1 : 0;\n\treturn (contentBase64.length / 4) * 3 - paddingCharacters;\n}\n\nexport const SandboxBinaryChunkSchema = withPortableSuperRefinement({\n\trefinement: (chunk, context) => {\n\t\tif (chunk.byteLength !== decodedCanonicalBase64ByteLength(chunk.contentBase64)) {\n\t\t\tcontext.addIssue({\n\t\t\t\tcode: 'custom',\n\t\t\t\tmessage: 'Binary chunk byte length does not match decoded canonical base64 content.',\n\t\t\t\tpath: ['byteLength'],\n\t\t\t});\n\t\t}\n\t},\n\trefinementIdentity: 'sandbox.binary-chunk.byte-length',\n\tschema: z\n\t\t.object({\n\t\t\tbyteLength: NonnegativeSafeIntegerSchema.max(SANDBOX_MAXIMUM_BINARY_BYTES),\n\t\t\tcontentBase64: CanonicalBase64Schema,\n\t\t\tencoding: z.literal('base64'),\n\t\t})\n\t\t.strict(),\n});\n\nexport type SandboxBoundHandle = z.infer<typeof SandboxBoundHandleSchema>;\nexport type SandboxDirectShellStartRequest = z.infer<typeof SandboxDirectShellStartRequestSchema>;\nexport type SandboxEnvironmentVariable = z.infer<typeof SandboxEnvironmentVariableSchema>;\nexport type SandboxEnvironmentHandle = z.infer<typeof SandboxEnvironmentHandleSchema>;\nexport type SandboxProcessHandle = z.infer<typeof SandboxProcessHandleSchema>;\nexport type SandboxStreamHandle = z.infer<typeof SandboxStreamHandleSchema>;\nexport type SandboxTerminalHandle = z.infer<typeof SandboxTerminalHandleSchema>;\n","import { z } from 'zod';\n\nimport { BoundedOpaqueIdentifierSchema } from './contract-foundations.js';\n\nexport const SandboxOperationIdentitySchema = z\n\t.object({\n\t\toperationId: BoundedOpaqueIdentifierSchema,\n\t\towningGeneration: BoundedOpaqueIdentifierSchema,\n\t})\n\t.strict();\n\nconst SandboxCompletedSucceededOutcomeSchema = z\n\t.object({\n\t\tcertainty: z.literal('proven'),\n\t\tcompletion: z.literal('succeeded'),\n\t\tkind: z.literal('completed'),\n\t\tretryClass: z.literal('forbidden'),\n\t})\n\t.strict();\n\nconst SandboxCompletedFailedOutcomeSchema = z\n\t.object({\n\t\tcertainty: z.literal('proven'),\n\t\tcompletion: z.literal('failed'),\n\t\tkind: z.literal('completed'),\n\t\tretryClass: z.enum(['forbidden', 'policy-gated']),\n\t})\n\t.strict();\n\nconst SandboxNotDispatchedOutcomeSchema = z\n\t.object({\n\t\tcertainty: z.literal('proven'),\n\t\tkind: z.literal('not-dispatched'),\n\t\tretryClass: z.literal('safe-before-dispatch'),\n\t})\n\t.strict();\n\nexport const SandboxProvenTerminationOutcomeSchema = z.discriminatedUnion('kind', [\n\tz\n\t\t.object({\n\t\t\tcertainty: z.literal('proven-terminated'),\n\t\t\tkind: z.literal('cancelled-proven'),\n\t\t\tretryClass: z.literal('manual-only'),\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tcertainty: z.literal('proven-terminated'),\n\t\t\tkind: z.literal('timed-out-proven'),\n\t\t\tretryClass: z.literal('manual-only'),\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tcertainty: z.literal('proven-terminated'),\n\t\t\tkind: z.literal('replaced-proven'),\n\t\t\tpriorSideEffects: z.literal('possible'),\n\t\t\tretryClass: z.literal('manual-only'),\n\t\t})\n\t\t.strict(),\n]);\n\nexport const SandboxAmbiguousOutcomeSchema = z\n\t.object({\n\t\tcertainty: z.literal('side-effects-and-termination-unknown'),\n\t\tkind: z.literal('ambiguous'),\n\t\tretryClass: z.literal('forbidden'),\n\t})\n\t.strict();\n\nexport const SandboxTerminalOutcomeSchema = z.union([\n\tSandboxNotDispatchedOutcomeSchema,\n\tSandboxCompletedSucceededOutcomeSchema,\n\tSandboxCompletedFailedOutcomeSchema,\n\tSandboxProvenTerminationOutcomeSchema,\n\tSandboxAmbiguousOutcomeSchema,\n]);\n\nexport const SandboxOperationControlResultSchema = z.discriminatedUnion('kind', [\n\tz.object({ kind: z.literal('running'), operation: SandboxOperationIdentitySchema }).strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('cancel-request-accepted'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('cancellation-pending'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('termination-proven'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t\toutcome: SandboxProvenTerminationOutcomeSchema,\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('already-terminal'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t\toutcome: SandboxTerminalOutcomeSchema,\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('ambiguous'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t\toutcome: SandboxAmbiguousOutcomeSchema,\n\t\t})\n\t\t.strict(),\n]);\n\nexport const SandboxRetainedResultLookupRequestSchema = z\n\t.object({ operation: SandboxOperationIdentitySchema })\n\t.strict();\n\nexport const SandboxRetainedResultLookupResultSchema = z.discriminatedUnion('kind', [\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('retained'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t\toutcome: SandboxTerminalOutcomeSchema,\n\t\t})\n\t\t.strict(),\n\tz.object({ kind: z.literal('pending'), operation: SandboxOperationIdentitySchema }).strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('unavailable'),\n\t\t\treason: z.literal('not-retained-or-not-authorized'),\n\t\t})\n\t\t.strict(),\n]);\n\nexport type SandboxOperationIdentity = z.infer<typeof SandboxOperationIdentitySchema>;\nexport type SandboxOperationControlResult = z.infer<typeof SandboxOperationControlResultSchema>;\nexport type SandboxRetainedResultLookupRequest = z.infer<\n\ttypeof SandboxRetainedResultLookupRequestSchema\n>;\nexport type SandboxRetainedResultLookupResult = z.infer<\n\ttypeof SandboxRetainedResultLookupResultSchema\n>;\nexport type SandboxTerminalOutcome = z.infer<typeof SandboxTerminalOutcomeSchema>;\n","import { z } from 'zod';\n\nimport {\n\tSandboxEnvironmentHandleSchema,\n\tSandboxWorkRelativePathSchema,\n} from './contract-foundations.js';\n\n// Omission denotes the server-selected /work root; a present value is a strict child path.\nconst SandboxEnvironmentLogicalCwdSchema = SandboxWorkRelativePathSchema.optional();\n\nexport const SandboxEnvironmentOpenRequestSchema = z\n\t.object({ logicalCwd: SandboxEnvironmentLogicalCwdSchema })\n\t.strict();\n\nexport const SandboxEnvironmentOpenResultSchema = z\n\t.object({\n\t\tenvironment: SandboxEnvironmentHandleSchema,\n\t\tkind: z.literal('opened'),\n\t\tlogicalCwd: SandboxEnvironmentLogicalCwdSchema,\n\t})\n\t.strict();\n\nexport const SandboxEnvironmentHandleRequestSchema = z\n\t.object({ environment: SandboxEnvironmentHandleSchema })\n\t.strict();\n\nexport const SandboxEnvironmentCloseResultSchema = z.discriminatedUnion('kind', [\n\tz.object({ environment: SandboxEnvironmentHandleSchema, kind: z.literal('closed') }).strict(),\n\tz\n\t\t.object({ environment: SandboxEnvironmentHandleSchema, kind: z.literal('already-closed') })\n\t\t.strict(),\n]);\n\nexport const SandboxEnvironmentStatusResultSchema = z.discriminatedUnion('kind', [\n\tz\n\t\t.object({\n\t\t\tenvironment: SandboxEnvironmentHandleSchema,\n\t\t\tkind: z.literal('active'),\n\t\t\tlogicalCwd: SandboxEnvironmentLogicalCwdSchema,\n\t\t})\n\t\t.strict(),\n\tz.object({ environment: SandboxEnvironmentHandleSchema, kind: z.literal('closed') }).strict(),\n\tz.object({ environment: SandboxEnvironmentHandleSchema, kind: z.literal('replaced') }).strict(),\n]);\n\nexport type SandboxEnvironmentOpenRequest = z.infer<typeof SandboxEnvironmentOpenRequestSchema>;\nexport type SandboxEnvironmentOpenResult = z.infer<typeof SandboxEnvironmentOpenResultSchema>;\nexport type SandboxEnvironmentCloseRequest = z.infer<typeof SandboxEnvironmentHandleRequestSchema>;\nexport type SandboxEnvironmentCloseResult = z.infer<typeof SandboxEnvironmentCloseResultSchema>;\nexport type SandboxEnvironmentStatusRequest = z.infer<typeof SandboxEnvironmentHandleRequestSchema>;\nexport type SandboxEnvironmentStatusResult = z.infer<typeof SandboxEnvironmentStatusResultSchema>;\n","import { z } from 'zod';\n\nimport {\n\tBoundedOperationMillisecondsSchema,\n\tNonnegativeSafeIntegerSchema,\n\tPositiveSafeIntegerSchema,\n\tSandboxDirectShellStartRequestSchema,\n\tSandboxStreamHandleSchema,\n\tSandboxTerminalHandleSchema,\n} from './contract-foundations.js';\nimport {\n\tSandboxOperationControlResultSchema,\n\tSandboxOperationIdentitySchema,\n\tSandboxTerminalOutcomeSchema,\n} from './operation-contracts.js';\n\nexport const SandboxExecStartModeSchema = z.discriminatedUnion('kind', [\n\tz.object({ kind: z.literal('direct') }).strict(),\n\tz\n\t\t.object({\n\t\t\tattachTimeoutMs: BoundedOperationMillisecondsSchema,\n\t\t\tkind: z.literal('attachment-reserved'),\n\t\t\tterminal: z.boolean(),\n\t\t})\n\t\t.strict(),\n]);\n\nexport const SandboxExecStartRequestSchema = SandboxDirectShellStartRequestSchema.extend({\n\tmode: SandboxExecStartModeSchema,\n\ttimeoutMs: BoundedOperationMillisecondsSchema,\n}).strict();\n\nconst SandboxExecDirectStartedResultSchema = z\n\t.object({\n\t\tkind: z.literal('started'),\n\t\tmode: z.literal('direct'),\n\t\toperation: SandboxOperationIdentitySchema,\n\t\tstreams: z.array(SandboxStreamHandleSchema).max(3),\n\t})\n\t.strict();\n\nconst SandboxExecAttachmentReservedResultSchema = z\n\t.object({\n\t\tkind: z.literal('started'),\n\t\tmode: z.literal('attachment-reserved'),\n\t\toperation: SandboxOperationIdentitySchema,\n\t\tterminal: SandboxTerminalHandleSchema,\n\t})\n\t.strict();\n\nexport const SandboxExecStartResultSchema = z.union([\n\tSandboxExecDirectStartedResultSchema,\n\tSandboxExecAttachmentReservedResultSchema,\n]);\n\nexport const SandboxExecWaitRequestSchema = z\n\t.object({\n\t\toperation: SandboxOperationIdentitySchema,\n\t\ttimeoutMs: BoundedOperationMillisecondsSchema,\n\t})\n\t.strict();\n\nexport const SandboxExecWaitResultSchema = z\n\t.object({\n\t\texitCode: NonnegativeSafeIntegerSchema.max(255).optional(),\n\t\toperation: SandboxOperationIdentitySchema,\n\t\toutcome: SandboxTerminalOutcomeSchema,\n\t})\n\t.strict();\n\nexport const SandboxExecCancelRequestSchema = z\n\t.object({ operation: SandboxOperationIdentitySchema })\n\t.strict();\n\nexport const SandboxExecCancelResultSchema = SandboxOperationControlResultSchema;\n\nexport const SandboxTerminalSizeSchema = z\n\t.object({\n\t\tcolumns: PositiveSafeIntegerSchema.max(1_000),\n\t\trows: PositiveSafeIntegerSchema.max(1_000),\n\t})\n\t.strict();\n\nexport type SandboxExecStartRequest = z.infer<typeof SandboxExecStartRequestSchema>;\nexport type SandboxExecStartResult = z.infer<typeof SandboxExecStartResultSchema>;\nexport type SandboxExecWaitRequest = z.infer<typeof SandboxExecWaitRequestSchema>;\nexport type SandboxExecWaitResult = z.infer<typeof SandboxExecWaitResultSchema>;\nexport type SandboxExecCancelRequest = z.infer<typeof SandboxExecCancelRequestSchema>;\nexport type SandboxExecCancelResult = z.infer<typeof SandboxExecCancelResultSchema>;\n","import { z } from 'zod';\n\nimport {\n\tBoundedByteCountSchema,\n\tBoundedOpaqueIdentifierSchema,\n\tNonnegativeSafeIntegerSchema,\n\tPositiveSafeIntegerSchema,\n\tSandboxBinaryChunkSchema,\n\tSandboxEnvironmentHandleSchema,\n\tSandboxGuestPathSchema,\n\tSha256DigestSchema,\n} from './contract-foundations.js';\n\nconst SandboxFilesystemPathRequestSchema = z\n\t.object({\n\t\tenvironment: SandboxEnvironmentHandleSchema,\n\t\tpath: SandboxGuestPathSchema,\n\t})\n\t.strict();\n\nexport const SandboxFsStatRequestSchema = SandboxFilesystemPathRequestSchema;\n\nexport const SandboxFilesystemEntrySchema = z\n\t.object({\n\t\tbyteLength: NonnegativeSafeIntegerSchema.optional(),\n\t\tkind: z.enum(['file', 'directory', 'symlink']),\n\t\tpath: SandboxGuestPathSchema,\n\t})\n\t.strict();\n\nexport const SandboxFsStatResultSchema = z.discriminatedUnion('kind', [\n\tz.object({ entry: SandboxFilesystemEntrySchema, kind: z.literal('stat') }).strict(),\n\tz.object({ kind: z.literal('not-found'), path: SandboxGuestPathSchema }).strict(),\n]);\n\nexport const SandboxFsListRequestSchema = SandboxFilesystemPathRequestSchema.extend({\n\tcursor: BoundedOpaqueIdentifierSchema.optional(),\n\tmaxDepth: PositiveSafeIntegerSchema.max(32),\n\tmaxEntries: PositiveSafeIntegerSchema.max(1_000),\n}).strict();\n\nexport const SandboxFsListResultSchema = z\n\t.object({\n\t\tentries: z.array(SandboxFilesystemEntrySchema).max(1_000),\n\t\tkind: z.literal('listed'),\n\t\tnextCursor: BoundedOpaqueIdentifierSchema.optional(),\n\t})\n\t.strict();\n\nexport const SandboxFsReadRequestSchema = SandboxFilesystemPathRequestSchema.extend({\n\tmaxBytes: BoundedByteCountSchema,\n\toffsetBytes: NonnegativeSafeIntegerSchema,\n}).strict();\n\nexport const SandboxFsReadResultSchema = z\n\t.object({\n\t\tchunk: SandboxBinaryChunkSchema,\n\t\teof: z.boolean(),\n\t\tkind: z.literal('read'),\n\t\tnextOffsetBytes: NonnegativeSafeIntegerSchema,\n\t\tpath: SandboxGuestPathSchema,\n\t})\n\t.strict();\n\nexport const SandboxFsWriteRequestSchema = SandboxFilesystemPathRequestSchema.extend({\n\tatomic: z.boolean(),\n\tcontent: SandboxBinaryChunkSchema,\n\toffsetBytes: NonnegativeSafeIntegerSchema.optional(),\n}).strict();\n\nexport const SandboxFsWriteResultSchema = z\n\t.object({\n\t\tbytesWritten: NonnegativeSafeIntegerSchema,\n\t\tcontentDigest: Sha256DigestSchema,\n\t\tkind: z.literal('written'),\n\t\tpath: SandboxGuestPathSchema,\n\t})\n\t.strict();\n\nexport const SandboxFsMkdirRequestSchema = SandboxFilesystemPathRequestSchema.extend({\n\trecursive: z.boolean(),\n}).strict();\n\nexport const SandboxFsMkdirResultSchema = z\n\t.object({\n\t\tcreated: z.boolean(),\n\t\tkind: z.literal('directory-ready'),\n\t\tpath: SandboxGuestPathSchema,\n\t})\n\t.strict();\n\nexport const SandboxFsRenameRequestSchema = z\n\t.object({\n\t\tdestinationPath: SandboxGuestPathSchema,\n\t\tenvironment: SandboxEnvironmentHandleSchema,\n\t\treplace: z.boolean(),\n\t\tsourcePath: SandboxGuestPathSchema,\n\t})\n\t.strict();\n\nexport const SandboxFsRenameResultSchema = z\n\t.object({\n\t\tdestinationPath: SandboxGuestPathSchema,\n\t\tkind: z.literal('renamed'),\n\t\tsourcePath: SandboxGuestPathSchema,\n\t})\n\t.strict();\n\nexport const SandboxFsRemoveRequestSchema = SandboxFilesystemPathRequestSchema.extend({\n\trecursive: z.boolean(),\n}).strict();\n\nexport const SandboxFsRemoveResultSchema = z\n\t.object({ kind: z.literal('removed'), path: SandboxGuestPathSchema, removed: z.boolean() })\n\t.strict();\n\nexport type SandboxFsStatRequest = z.infer<typeof SandboxFsStatRequestSchema>;\nexport type SandboxFsStatResult = z.infer<typeof SandboxFsStatResultSchema>;\nexport type SandboxFsListRequest = z.infer<typeof SandboxFsListRequestSchema>;\nexport type SandboxFsListResult = z.infer<typeof SandboxFsListResultSchema>;\nexport type SandboxFsReadRequest = z.infer<typeof SandboxFsReadRequestSchema>;\nexport type SandboxFsReadResult = z.infer<typeof SandboxFsReadResultSchema>;\nexport type SandboxFsWriteRequest = z.infer<typeof SandboxFsWriteRequestSchema>;\nexport type SandboxFsWriteResult = z.infer<typeof SandboxFsWriteResultSchema>;\nexport type SandboxFsMkdirRequest = z.infer<typeof SandboxFsMkdirRequestSchema>;\nexport type SandboxFsMkdirResult = z.infer<typeof SandboxFsMkdirResultSchema>;\nexport type SandboxFsRenameRequest = z.infer<typeof SandboxFsRenameRequestSchema>;\nexport type SandboxFsRenameResult = z.infer<typeof SandboxFsRenameResultSchema>;\nexport type SandboxFsRemoveRequest = z.infer<typeof SandboxFsRemoveRequestSchema>;\nexport type SandboxFsRemoveResult = z.infer<typeof SandboxFsRemoveResultSchema>;\n","import { z } from 'zod';\n\nimport {\n\tBoundedByteCountSchema,\n\tBoundedOpaqueIdentifierSchema,\n\tBoundedOperationMillisecondsSchema,\n\tNonnegativeSafeIntegerSchema,\n\tSandboxBinaryChunkSchema,\n\tSandboxDirectShellStartRequestSchema,\n\tSandboxProcessHandleSchema,\n\tSandboxStreamChannelSchema,\n\tSandboxStreamHandleSchema,\n} from './contract-foundations.js';\nimport {\n\tSandboxOperationControlResultSchema,\n\tSandboxOperationIdentitySchema,\n\tSandboxTerminalOutcomeSchema,\n} from './operation-contracts.js';\n\nexport const SandboxProcessStartRequestSchema = SandboxDirectShellStartRequestSchema.extend({\n\tmaxRuntimeMs: BoundedOperationMillisecondsSchema,\n\tretainOutputBytes: BoundedByteCountSchema,\n}).strict();\n\nexport const SandboxProcessStartResultSchema = z\n\t.object({\n\t\tkind: z.literal('started'),\n\t\toperation: SandboxOperationIdentitySchema,\n\t\tprocess: SandboxProcessHandleSchema,\n\t\tstreams: z.array(SandboxStreamHandleSchema).max(3),\n\t})\n\t.strict();\n\nexport const SandboxProcessHandleRequestSchema = z\n\t.object({ process: SandboxProcessHandleSchema })\n\t.strict();\n\nexport const SandboxProcessStatusResultSchema = z.discriminatedUnion('kind', [\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('running'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t\tprocess: SandboxProcessHandleSchema,\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('terminal'),\n\t\t\toperation: SandboxOperationIdentitySchema,\n\t\t\toutcome: SandboxTerminalOutcomeSchema,\n\t\t\tprocess: SandboxProcessHandleSchema,\n\t\t})\n\t\t.strict(),\n]);\n\nexport const SandboxProcessWaitRequestSchema = SandboxProcessHandleRequestSchema.extend({\n\ttimeoutMs: BoundedOperationMillisecondsSchema,\n}).strict();\n\nexport const SandboxProcessWaitResultSchema = SandboxProcessStatusResultSchema;\n\nexport const SandboxProcessLogsRequestSchema = SandboxProcessHandleRequestSchema.extend({\n\tchannels: z.array(SandboxStreamChannelSchema).min(1).max(4),\n\tcursor: BoundedOpaqueIdentifierSchema.optional(),\n\tmaxBytes: BoundedByteCountSchema,\n}).strict();\n\nexport const SandboxProcessLogChunkSchema = z\n\t.object({\n\t\tchannel: SandboxStreamChannelSchema,\n\t\tchunk: SandboxBinaryChunkSchema,\n\t\tsequence: NonnegativeSafeIntegerSchema,\n\t})\n\t.strict();\n\nexport const SandboxProcessLogsResultSchema = z\n\t.object({\n\t\tchunks: z.array(SandboxProcessLogChunkSchema).max(1_000),\n\t\tkind: z.literal('logs'),\n\t\tnextCursor: BoundedOpaqueIdentifierSchema.optional(),\n\t\tprocess: SandboxProcessHandleSchema,\n\t\ttruncated: z.boolean(),\n\t})\n\t.strict();\n\nexport const SandboxProcessCancelRequestSchema = SandboxProcessHandleRequestSchema;\nexport const SandboxProcessCancelResultSchema = SandboxOperationControlResultSchema;\n\nexport type SandboxProcessStartRequest = z.infer<typeof SandboxProcessStartRequestSchema>;\nexport type SandboxProcessStartResult = z.infer<typeof SandboxProcessStartResultSchema>;\nexport type SandboxProcessStatusRequest = z.infer<typeof SandboxProcessHandleRequestSchema>;\nexport type SandboxProcessStatusResult = z.infer<typeof SandboxProcessStatusResultSchema>;\nexport type SandboxProcessWaitRequest = z.infer<typeof SandboxProcessWaitRequestSchema>;\nexport type SandboxProcessWaitResult = z.infer<typeof SandboxProcessWaitResultSchema>;\nexport type SandboxProcessLogsRequest = z.infer<typeof SandboxProcessLogsRequestSchema>;\nexport type SandboxProcessLogsResult = z.infer<typeof SandboxProcessLogsResultSchema>;\nexport type SandboxProcessCancelRequest = z.infer<typeof SandboxProcessCancelRequestSchema>;\nexport type SandboxProcessCancelResult = z.infer<typeof SandboxProcessCancelResultSchema>;\n","import { z } from 'zod';\n\nimport {\n\tBoundedByteCountSchema,\n\tBoundedOpaqueIdentifierSchema,\n\tNonnegativeSafeIntegerSchema,\n\tSandboxBinaryChunkSchema,\n\tSandboxStreamHandleSchema,\n\tSha256DigestSchema,\n} from './contract-foundations.js';\n\nexport const SandboxStreamReadRequestSchema = z\n\t.object({\n\t\tcursor: BoundedOpaqueIdentifierSchema.optional(),\n\t\tmaxBytes: BoundedByteCountSchema,\n\t\tstream: SandboxStreamHandleSchema,\n\t})\n\t.strict();\n\nexport const SandboxStreamReadResultSchema = z\n\t.object({\n\t\tchunk: SandboxBinaryChunkSchema,\n\t\teof: z.boolean(),\n\t\tkind: z.literal('read'),\n\t\tnextCursor: BoundedOpaqueIdentifierSchema.optional(),\n\t\tsequence: NonnegativeSafeIntegerSchema,\n\t\tstream: SandboxStreamHandleSchema,\n\t})\n\t.strict();\n\nexport const SandboxStreamWriteRequestSchema = z\n\t.object({\n\t\tcontent: SandboxBinaryChunkSchema,\n\t\tcontentDigest: Sha256DigestSchema,\n\t\tsequence: NonnegativeSafeIntegerSchema,\n\t\tstream: SandboxStreamHandleSchema,\n\t})\n\t.strict();\n\nexport const SandboxStreamWriteResultSchema = z.discriminatedUnion('kind', [\n\tz\n\t\t.object({\n\t\t\tbytesWritten: NonnegativeSafeIntegerSchema,\n\t\t\tkind: z.literal('written'),\n\t\t\tsequence: NonnegativeSafeIntegerSchema,\n\t\t\tstream: SandboxStreamHandleSchema,\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('already-written'),\n\t\t\tsequence: NonnegativeSafeIntegerSchema,\n\t\t\tstream: SandboxStreamHandleSchema,\n\t\t})\n\t\t.strict(),\n]);\n\nexport const SandboxStreamCloseRequestSchema = z\n\t.object({ stream: SandboxStreamHandleSchema })\n\t.strict();\n\nexport const SandboxStreamCloseResultSchema = z.discriminatedUnion('kind', [\n\tz.object({ kind: z.literal('closed'), stream: SandboxStreamHandleSchema }).strict(),\n\tz.object({ kind: z.literal('already-closed'), stream: SandboxStreamHandleSchema }).strict(),\n]);\n\nexport type SandboxStreamReadRequest = z.infer<typeof SandboxStreamReadRequestSchema>;\nexport type SandboxStreamReadResult = z.infer<typeof SandboxStreamReadResultSchema>;\nexport type SandboxStreamWriteRequest = z.infer<typeof SandboxStreamWriteRequestSchema>;\nexport type SandboxStreamWriteResult = z.infer<typeof SandboxStreamWriteResultSchema>;\nexport type SandboxStreamCloseRequest = z.infer<typeof SandboxStreamCloseRequestSchema>;\nexport type SandboxStreamCloseResult = z.infer<typeof SandboxStreamCloseResultSchema>;\n","import { z } from 'zod';\n\nimport { SandboxStreamHandleSchema, SandboxTerminalHandleSchema } from './contract-foundations.js';\nimport { SandboxOperationIdentitySchema } from './operation-contracts.js';\nimport { SandboxTerminalSizeSchema } from './sandbox-execution-contracts.js';\n\nexport const SandboxTerminalAttachRequestSchema = z\n\t.object({\n\t\toperation: SandboxOperationIdentitySchema,\n\t\tsize: SandboxTerminalSizeSchema,\n\t})\n\t.strict();\n\nexport const SandboxTerminalAttachResultSchema = z\n\t.object({\n\t\tinput: SandboxStreamHandleSchema,\n\t\tkind: z.literal('attached'),\n\t\toutput: SandboxStreamHandleSchema,\n\t\tterminal: SandboxTerminalHandleSchema,\n\t})\n\t.strict();\n\nexport const SandboxTerminalResizeRequestSchema = z\n\t.object({\n\t\tsize: SandboxTerminalSizeSchema,\n\t\tterminal: SandboxTerminalHandleSchema,\n\t})\n\t.strict();\n\nexport const SandboxTerminalResizeResultSchema = z\n\t.object({\n\t\tkind: z.literal('resized'),\n\t\tsize: SandboxTerminalSizeSchema,\n\t\tterminal: SandboxTerminalHandleSchema,\n\t})\n\t.strict();\n\nexport type SandboxTerminalAttachRequest = z.infer<typeof SandboxTerminalAttachRequestSchema>;\nexport type SandboxTerminalAttachResult = z.infer<typeof SandboxTerminalAttachResultSchema>;\nexport type SandboxTerminalResizeRequest = z.infer<typeof SandboxTerminalResizeRequestSchema>;\nexport type SandboxTerminalResizeResult = z.infer<typeof SandboxTerminalResizeResultSchema>;\n","import { z } from 'zod';\n\nimport { NamespaceNameSchema } from '../contract-primitives/index.js';\nimport { withPortableSuperRefinement } from '../portable-contracts/portable-refinement-authoring.js';\nimport {\n\tBoundedOpaqueIdentifierSchema,\n\tPositiveSafeIntegerSchema,\n} from './contract-foundations.js';\n\nexport function compareUnicodeCodePointStrings(left: string, right: string): number {\n\tconst leftCodePoints = Array.from(left, (character) => character.codePointAt(0) ?? 0);\n\tconst rightCodePoints = Array.from(right, (character) => character.codePointAt(0) ?? 0);\n\tconst sharedLength = Math.min(leftCodePoints.length, rightCodePoints.length);\n\tfor (let index = 0; index < sharedLength; index += 1) {\n\t\tconst leftCodePoint = leftCodePoints[index] ?? 0;\n\t\tconst rightCodePoint = rightCodePoints[index] ?? 0;\n\t\tif (leftCodePoint !== rightCodePoint) {\n\t\t\treturn leftCodePoint - rightCodePoint;\n\t\t}\n\t}\n\treturn leftCodePoints.length - rightCodePoints.length;\n}\n\nexport const GatewayRuntimeFrameworkKindSchema = z.enum(['openclaw', 'hermes']);\nexport const GatewayRuntimeManagedPluginClientKindSchema = z.enum([\n\t'openclaw-managed-plugin',\n\t'hermes-managed-plugin',\n]);\nexport const GatewayRuntimeFrameworkIdentitySchema = z\n\t.discriminatedUnion('kind', [\n\t\tz\n\t\t\t.object({\n\t\t\t\tagentId: BoundedOpaqueIdentifierSchema,\n\t\t\t\tkind: z.literal('openclaw'),\n\t\t\t})\n\t\t\t.strict(),\n\t\tz\n\t\t\t.object({\n\t\t\t\tkind: z.literal('hermes'),\n\t\t\t\tprofileName: BoundedOpaqueIdentifierSchema,\n\t\t\t})\n\t\t\t.strict(),\n\t])\n\t.readonly();\nexport const GatewayRuntimeProjectionCohortDigestSchema = z\n\t.string()\n\t.regex(/^projection-cohort:[a-f0-9]{64}$/u);\n\nexport const ManagedAgentProjectionSchema = withPortableSuperRefinement({\n\trefinement: (projection, context) => {\n\t\tif (\n\t\t\tnew Set(projection.toolPortalNamespaceNames).size !==\n\t\t\tprojection.toolPortalNamespaceNames.length\n\t\t) {\n\t\t\tcontext.addIssue({\n\t\t\t\tcode: 'custom',\n\t\t\t\tmessage: 'Managed Agent Projection Tool Portal namespace names must be unique.',\n\t\t\t\tpath: ['toolPortalNamespaceNames'],\n\t\t\t});\n\t\t}\n\t\tconst sortedNamespaceNames = [...projection.toolPortalNamespaceNames].toSorted(\n\t\t\tcompareUnicodeCodePointStrings,\n\t\t);\n\t\tif (\n\t\t\tprojection.toolPortalNamespaceNames.some(\n\t\t\t\t(namespaceName, index) => namespaceName !== sortedNamespaceNames[index],\n\t\t\t)\n\t\t) {\n\t\t\tcontext.addIssue({\n\t\t\t\tcode: 'custom',\n\t\t\t\tmessage: 'Managed Agent Projection Tool Portal namespace names must be sorted.',\n\t\t\t\tpath: ['toolPortalNamespaceNames'],\n\t\t\t});\n\t\t}\n\t},\n\trefinementIdentity: 'gateway.managed-agent-projection.namespace-names',\n\tschema: z\n\t\t.object({\n\t\t\tagentId: BoundedOpaqueIdentifierSchema,\n\t\t\tframeworkIdentity: GatewayRuntimeFrameworkIdentitySchema,\n\t\t\tprofileAssignmentRevision: BoundedOpaqueIdentifierSchema,\n\t\t\ttoolPortalNamespaceNames: z.array(NamespaceNameSchema).readonly(),\n\t\t\ttoolPortalProfileId: BoundedOpaqueIdentifierSchema,\n\t\t})\n\t\t.strict(),\n}).readonly();\n\nexport const GatewayRuntimeAttachmentMetadataSchema = withPortableSuperRefinement({\n\trefinement: (metadata, context) => {\n\t\tif (new Set(metadata.configuredAgentIds).size !== metadata.configuredAgentIds.length) {\n\t\t\tcontext.addIssue({\n\t\t\t\tcode: 'custom',\n\t\t\t\tmessage: 'Gateway attachment metadata contains a duplicate configured agent id.',\n\t\t\t\tpath: ['configuredAgentIds'],\n\t\t\t});\n\t\t}\n\t},\n\trefinementIdentity: 'gateway.attachment.unique-agent-ids',\n\tschema: z\n\t\t.object({\n\t\t\tattachmentGeneration: PositiveSafeIntegerSchema,\n\t\t\tclientKind: GatewayRuntimeManagedPluginClientKindSchema,\n\t\t\tconfiguredAgentIds: z.array(BoundedOpaqueIdentifierSchema).min(1).max(128),\n\t\t\tframeworkEpoch: BoundedOpaqueIdentifierSchema,\n\t\t\tgatewayEpoch: BoundedOpaqueIdentifierSchema,\n\t\t\tprotocolVersion: PositiveSafeIntegerSchema,\n\t\t\tprojectionCohortDigest: GatewayRuntimeProjectionCohortDigestSchema,\n\t\t\truntimeEpoch: BoundedOpaqueIdentifierSchema,\n\t\t\tschemaVersion: PositiveSafeIntegerSchema,\n\t\t})\n\t\t.strict(),\n});\n\nexport const GatewayStablePrincipalDigestSchema = z.string().regex(/^[a-f0-9]{64}$/u);\n\nexport const GatewayRuntimeTrustedInvocationPrincipalSchema = z\n\t.object({\n\t\tagentId: BoundedOpaqueIdentifierSchema,\n\t\tframeworkIdentity: GatewayRuntimeFrameworkIdentitySchema,\n\t\tprofileAssignmentRevision: BoundedOpaqueIdentifierSchema,\n\t\ttoolPortalProfileId: BoundedOpaqueIdentifierSchema,\n\t})\n\t.strict();\n\nexport const GatewayRuntimeTrustedInvocationRequesterSchema = z\n\t.object({\n\t\tauthenticatedSubjectId: BoundedOpaqueIdentifierSchema,\n\t})\n\t.strict();\n\nexport const GatewayRuntimeTrustedInvocationCorrelationSchema = z\n\t.object({\n\t\trunId: BoundedOpaqueIdentifierSchema.optional(),\n\t\tsessionId: BoundedOpaqueIdentifierSchema.optional(),\n\t\tsessionKey: BoundedOpaqueIdentifierSchema.optional(),\n\t\ttoolCallId: BoundedOpaqueIdentifierSchema.optional(),\n\t})\n\t.strict();\n\nexport const GatewayRuntimeTrustedInvocationContextSchema = z\n\t.object({\n\t\tcorrelation: GatewayRuntimeTrustedInvocationCorrelationSchema.optional(),\n\t\tprincipal: GatewayRuntimeTrustedInvocationPrincipalSchema,\n\t\trequester: GatewayRuntimeTrustedInvocationRequesterSchema.optional(),\n\t})\n\t.strict();\n\nexport type GatewayRuntimeAttachmentMetadata = z.infer<\n\ttypeof GatewayRuntimeAttachmentMetadataSchema\n>;\nexport type GatewayRuntimeFrameworkIdentity = z.infer<typeof GatewayRuntimeFrameworkIdentitySchema>;\nexport type GatewayRuntimeFrameworkKind = z.infer<typeof GatewayRuntimeFrameworkKindSchema>;\nexport type GatewayRuntimeManagedPluginClientKind = z.infer<\n\ttypeof GatewayRuntimeManagedPluginClientKindSchema\n>;\nexport type ManagedAgentProjection = z.infer<typeof ManagedAgentProjectionSchema>;\nexport type GatewayRuntimeTrustedInvocationCorrelation = z.infer<\n\ttypeof GatewayRuntimeTrustedInvocationCorrelationSchema\n>;\nexport type GatewayRuntimeTrustedInvocationContext = z.infer<\n\ttypeof GatewayRuntimeTrustedInvocationContextSchema\n>;\nexport type GatewayStablePrincipalDigest = z.infer<typeof GatewayStablePrincipalDigestSchema>;\nexport type GatewayRuntimeTrustedInvocationPrincipal = z.infer<\n\ttypeof GatewayRuntimeTrustedInvocationPrincipalSchema\n>;\nexport type GatewayRuntimeTrustedInvocationRequester = z.infer<\n\ttypeof GatewayRuntimeTrustedInvocationRequesterSchema\n>;\n","import type { z } from 'zod';\n\nimport {\n\tSandboxRetainedResultLookupRequestSchema,\n\tSandboxRetainedResultLookupResultSchema,\n} from './operation-contracts.js';\nimport {\n\tSandboxEnvironmentCloseResultSchema,\n\tSandboxEnvironmentHandleRequestSchema,\n\tSandboxEnvironmentOpenRequestSchema,\n\tSandboxEnvironmentOpenResultSchema,\n\tSandboxEnvironmentStatusResultSchema,\n} from './sandbox-environment-contracts.js';\nimport {\n\tSandboxExecCancelRequestSchema,\n\tSandboxExecCancelResultSchema,\n\tSandboxExecStartRequestSchema,\n\tSandboxExecStartResultSchema,\n\tSandboxExecWaitRequestSchema,\n\tSandboxExecWaitResultSchema,\n} from './sandbox-execution-contracts.js';\nimport {\n\tSandboxFsListRequestSchema,\n\tSandboxFsListResultSchema,\n\tSandboxFsMkdirRequestSchema,\n\tSandboxFsMkdirResultSchema,\n\tSandboxFsReadRequestSchema,\n\tSandboxFsReadResultSchema,\n\tSandboxFsRemoveRequestSchema,\n\tSandboxFsRemoveResultSchema,\n\tSandboxFsRenameRequestSchema,\n\tSandboxFsRenameResultSchema,\n\tSandboxFsStatRequestSchema,\n\tSandboxFsStatResultSchema,\n\tSandboxFsWriteRequestSchema,\n\tSandboxFsWriteResultSchema,\n} from './sandbox-filesystem-contracts.js';\nimport {\n\tSandboxProcessCancelRequestSchema,\n\tSandboxProcessCancelResultSchema,\n\tSandboxProcessHandleRequestSchema,\n\tSandboxProcessLogsRequestSchema,\n\tSandboxProcessLogsResultSchema,\n\tSandboxProcessStartRequestSchema,\n\tSandboxProcessStartResultSchema,\n\tSandboxProcessStatusResultSchema,\n\tSandboxProcessWaitRequestSchema,\n\tSandboxProcessWaitResultSchema,\n} from './sandbox-process-contracts.js';\nimport {\n\tSandboxStreamCloseRequestSchema,\n\tSandboxStreamCloseResultSchema,\n\tSandboxStreamReadRequestSchema,\n\tSandboxStreamReadResultSchema,\n\tSandboxStreamWriteRequestSchema,\n\tSandboxStreamWriteResultSchema,\n} from './sandbox-stream-contracts.js';\nimport {\n\tSandboxTerminalAttachRequestSchema,\n\tSandboxTerminalAttachResultSchema,\n\tSandboxTerminalResizeRequestSchema,\n\tSandboxTerminalResizeResultSchema,\n} from './sandbox-terminal-contracts.js';\n\ninterface SandboxMethodContract {\n\treadonly request: z.ZodType;\n\treadonly result: z.ZodType;\n}\n\nexport const SANDBOX_METHOD_CONTRACTS = {\n\t'sandbox.environment.close': {\n\t\trequest: SandboxEnvironmentHandleRequestSchema,\n\t\tresult: SandboxEnvironmentCloseResultSchema,\n\t},\n\t'sandbox.environment.open': {\n\t\trequest: SandboxEnvironmentOpenRequestSchema,\n\t\tresult: SandboxEnvironmentOpenResultSchema,\n\t},\n\t'sandbox.environment.status': {\n\t\trequest: SandboxEnvironmentHandleRequestSchema,\n\t\tresult: SandboxEnvironmentStatusResultSchema,\n\t},\n\t'sandbox.exec.cancel': {\n\t\trequest: SandboxExecCancelRequestSchema,\n\t\tresult: SandboxExecCancelResultSchema,\n\t},\n\t'sandbox.exec.start': {\n\t\trequest: SandboxExecStartRequestSchema,\n\t\tresult: SandboxExecStartResultSchema,\n\t},\n\t'sandbox.exec.wait': {\n\t\trequest: SandboxExecWaitRequestSchema,\n\t\tresult: SandboxExecWaitResultSchema,\n\t},\n\t'sandbox.retained-result.lookup': {\n\t\trequest: SandboxRetainedResultLookupRequestSchema,\n\t\tresult: SandboxRetainedResultLookupResultSchema,\n\t},\n\t'sandbox.fs.list': { request: SandboxFsListRequestSchema, result: SandboxFsListResultSchema },\n\t'sandbox.fs.mkdir': {\n\t\trequest: SandboxFsMkdirRequestSchema,\n\t\tresult: SandboxFsMkdirResultSchema,\n\t},\n\t'sandbox.fs.read': { request: SandboxFsReadRequestSchema, result: SandboxFsReadResultSchema },\n\t'sandbox.fs.remove': {\n\t\trequest: SandboxFsRemoveRequestSchema,\n\t\tresult: SandboxFsRemoveResultSchema,\n\t},\n\t'sandbox.fs.rename': {\n\t\trequest: SandboxFsRenameRequestSchema,\n\t\tresult: SandboxFsRenameResultSchema,\n\t},\n\t'sandbox.fs.stat': { request: SandboxFsStatRequestSchema, result: SandboxFsStatResultSchema },\n\t'sandbox.fs.write': {\n\t\trequest: SandboxFsWriteRequestSchema,\n\t\tresult: SandboxFsWriteResultSchema,\n\t},\n\t'sandbox.process.cancel': {\n\t\trequest: SandboxProcessCancelRequestSchema,\n\t\tresult: SandboxProcessCancelResultSchema,\n\t},\n\t'sandbox.process.logs': {\n\t\trequest: SandboxProcessLogsRequestSchema,\n\t\tresult: SandboxProcessLogsResultSchema,\n\t},\n\t'sandbox.process.start': {\n\t\trequest: SandboxProcessStartRequestSchema,\n\t\tresult: SandboxProcessStartResultSchema,\n\t},\n\t'sandbox.process.status': {\n\t\trequest: SandboxProcessHandleRequestSchema,\n\t\tresult: SandboxProcessStatusResultSchema,\n\t},\n\t'sandbox.process.wait': {\n\t\trequest: SandboxProcessWaitRequestSchema,\n\t\tresult: SandboxProcessWaitResultSchema,\n\t},\n\t'sandbox.stream.close': {\n\t\trequest: SandboxStreamCloseRequestSchema,\n\t\tresult: SandboxStreamCloseResultSchema,\n\t},\n\t'sandbox.stream.read': {\n\t\trequest: SandboxStreamReadRequestSchema,\n\t\tresult: SandboxStreamReadResultSchema,\n\t},\n\t'sandbox.stream.write': {\n\t\trequest: SandboxStreamWriteRequestSchema,\n\t\tresult: SandboxStreamWriteResultSchema,\n\t},\n\t'sandbox.terminal.attach': {\n\t\trequest: SandboxTerminalAttachRequestSchema,\n\t\tresult: SandboxTerminalAttachResultSchema,\n\t},\n\t'sandbox.terminal.resize': {\n\t\trequest: SandboxTerminalResizeRequestSchema,\n\t\tresult: SandboxTerminalResizeResultSchema,\n\t},\n} as const satisfies Readonly<Record<string, SandboxMethodContract>>;\n\nexport * from './contract-foundations.js';\nexport * from './operation-contracts.js';\nexport * from './sandbox-environment-contracts.js';\nexport * from './sandbox-execution-contracts.js';\nexport * from './sandbox-filesystem-contracts.js';\nexport * from './sandbox-process-contracts.js';\nexport * from './sandbox-stream-contracts.js';\nexport * from './sandbox-terminal-contracts.js';\nexport * from './trusted-context-contracts.js';\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { c as PortalArtifactReadRequest, u as PortalArtifactReadResult } from "../index-B5hgm1KH.js";
2
- import { $ as SandboxProcessStartRequest, $t as SandboxEnvironmentCloseRequest, C as SandboxTerminalAttachRequest, Ct as SandboxFsRemoveRequest, D as SandboxTerminalResizeRequest, Dt as SandboxFsRenameRequest, F as SandboxStreamReadRequest, Ft as SandboxFsWriteRequest, G as SandboxProcessCancelResult, Jt as SandboxExecWaitRequest, Kt as SandboxExecStartResult, L as SandboxStreamReadResult, Lt as SandboxFsWriteResult, N as SandboxStreamCloseResult, Nt as SandboxFsStatResult, T as SandboxTerminalAttachResult, Tt as SandboxFsRemoveResult, U as SandboxProcessCancelRequest, V as SandboxStreamWriteResult, Vt as SandboxExecCancelResult, Wt as SandboxExecStartRequest, Xt as SandboxExecWaitResult, Y as SandboxProcessLogsRequest, Z as SandboxProcessLogsResult, _ as GatewayRuntimeTrustedInvocationRequester, _t as SandboxFsMkdirResult, an as SandboxEnvironmentOpenResult, c as GatewayRuntimeManagedPluginClientKind, cn as SandboxEnvironmentStatusResult, ct as SandboxProcessWaitResult, d as GatewayRuntimeTrustedInvocationContext, dt as SandboxFsListRequest, en as SandboxEnvironmentCloseResult, f as GatewayRuntimeTrustedInvocationContextSchema, g as GatewayRuntimeTrustedInvocationPrincipalSchema, gn as SandboxRetainedResultLookupRequest, h as GatewayRuntimeTrustedInvocationPrincipal, ht as SandboxFsMkdirRequest, it as SandboxProcessStatusResult, j as SandboxStreamCloseRequest, jt as SandboxFsStatRequest, k as SandboxTerminalResizeResult, kt as SandboxFsRenameResult, m as GatewayRuntimeTrustedInvocationCorrelationSchema, n as GatewayRuntimeAttachmentMetadata$1, ot as SandboxProcessWaitRequest, p as GatewayRuntimeTrustedInvocationCorrelation, pt as SandboxFsListResult, rn as SandboxEnvironmentOpenRequest, rt as SandboxProcessStatusRequest, sn as SandboxEnvironmentStatusRequest, tt as SandboxProcessStartResult, v as GatewayRuntimeTrustedInvocationRequesterSchema, vn as SandboxRetainedResultLookupResult, xt as SandboxFsReadResult, yt as SandboxFsReadRequest, z as SandboxStreamWriteRequest, zt as SandboxExecCancelRequest } from "../index-C-NPMMvc.js";
3
- import { S as PortalCallRequest, _ as PortalSearchResult, c as PortalDescribeResult, i as PortalCallResult, p as PortalListResult } from "../portal-call-result-schema-DoE_YCtv.js";
4
- import { i as PortalSearchRequest, m as PortalDescribeRequest, s as PortalListRequest } from "../index-95IydGBz.js";
1
+ import { c as PortalArtifactReadRequest, u as PortalArtifactReadResult } from "../index-B_xYdo3v.js";
2
+ import { A as SandboxTerminalResizeResult, At as SandboxFsRenameResult, B as SandboxStreamWriteRequest, Bt as SandboxExecCancelRequest, E as SandboxTerminalAttachResult, Et as SandboxFsRemoveResult, Gt as SandboxExecStartRequest, H as SandboxStreamWriteResult, Ht as SandboxExecCancelResult, I as SandboxStreamReadRequest, It as SandboxFsWriteRequest, K as SandboxProcessCancelResult, M as SandboxStreamCloseRequest, Mt as SandboxFsStatRequest, O as SandboxTerminalResizeRequest, Ot as SandboxFsRenameRequest, P as SandboxStreamCloseResult, Pt as SandboxFsStatResult, Q as SandboxProcessLogsResult, R as SandboxStreamReadResult, Rt as SandboxFsWriteResult, St as SandboxFsReadResult, W as SandboxProcessCancelRequest, X as SandboxProcessLogsRequest, Yt as SandboxExecWaitRequest, Zt as SandboxExecWaitResult, _ as GatewayRuntimeTrustedInvocationRequester, _n as SandboxRetainedResultLookupRequest, at as SandboxProcessStatusResult, bt as SandboxFsReadRequest, c as GatewayRuntimeManagedPluginClientKind, cn as SandboxEnvironmentStatusRequest, d as GatewayRuntimeTrustedInvocationContext, en as SandboxEnvironmentCloseRequest, et as SandboxProcessStartRequest, f as GatewayRuntimeTrustedInvocationContextSchema, ft as SandboxFsListRequest, g as GatewayRuntimeTrustedInvocationPrincipalSchema, gt as SandboxFsMkdirRequest, h as GatewayRuntimeTrustedInvocationPrincipal, in as SandboxEnvironmentOpenRequest, it as SandboxProcessStatusRequest, ln as SandboxEnvironmentStatusResult, lt as SandboxProcessWaitResult, m as GatewayRuntimeTrustedInvocationCorrelationSchema, mt as SandboxFsListResult, n as GatewayRuntimeAttachmentMetadata$1, nt as SandboxProcessStartResult, on as SandboxEnvironmentOpenResult, p as GatewayRuntimeTrustedInvocationCorrelation, qt as SandboxExecStartResult, st as SandboxProcessWaitRequest, tn as SandboxEnvironmentCloseResult, v as GatewayRuntimeTrustedInvocationRequesterSchema, vt as SandboxFsMkdirResult, w as SandboxTerminalAttachRequest, wt as SandboxFsRemoveRequest, yn as SandboxRetainedResultLookupResult } from "../index-C5NhyO2R.js";
3
+ import { S as PortalCallRequest, _ as PortalSearchResult, c as PortalDescribeResult, i as PortalCallResult, p as PortalListResult } from "../portal-call-result-schema-DalyNrfW.js";
4
+ import { i as PortalSearchRequest, m as PortalDescribeRequest, s as PortalListRequest } from "../index-CsCLhmNb.js";
5
5
  import { z } from "zod/v4";
6
6
 
7
7
  //#region src/gateway-runtime-client/gateway-runtime-trace-context.d.ts
@@ -1,8 +1,8 @@
1
- import { d as PortalListResultSchema, i as PortalCallResultSchema, m as PortalSearchResultSchema, s as PortalDescribeResultSchema } from "../portal-call-result-schema-ByxHRCEN.js";
2
- import { a as PortalArtifactReadRequestSchema, o as PortalArtifactReadResultSchema } from "../artifact-surface-BstQxq6b.js";
3
- import { $ as SandboxExecStartResultSchema, A as SandboxProcessStartResultSchema, B as SandboxFsReadResultSchema, C as SandboxProcessCancelRequestSchema, D as SandboxProcessLogsRequestSchema, F as SandboxFsListRequestSchema, G as SandboxFsStatRequestSchema, H as SandboxFsRemoveResultSchema, I as SandboxFsListResultSchema, J as SandboxFsWriteResultSchema, K as SandboxFsStatResultSchema, L as SandboxFsMkdirRequestSchema, M as SandboxProcessWaitRequestSchema, N as SandboxProcessWaitResultSchema, O as SandboxProcessLogsResultSchema, Q as SandboxExecStartRequestSchema, R as SandboxFsMkdirResultSchema, S as SandboxStreamWriteResultSchema, T as SandboxProcessHandleRequestSchema, U as SandboxFsRenameRequestSchema, V as SandboxFsRemoveRequestSchema, W as SandboxFsRenameResultSchema, X as SandboxExecCancelResultSchema, Y as SandboxExecCancelRequestSchema, _ as SandboxStreamCloseRequestSchema, at as SandboxEnvironmentOpenRequestSchema, b as SandboxStreamReadResultSchema, c as GatewayRuntimeTrustedInvocationCorrelationSchema, et as SandboxExecWaitRequestSchema, ft as SandboxRetainedResultLookupRequestSchema, g as SandboxTerminalResizeResultSchema, h as SandboxTerminalResizeRequestSchema, it as SandboxEnvironmentHandleRequestSchema, j as SandboxProcessStatusResultSchema, k as SandboxProcessStartRequestSchema, l as GatewayRuntimeTrustedInvocationPrincipalSchema, m as SandboxTerminalAttachResultSchema, n as GatewayRuntimeAttachmentMetadataSchema, ot as SandboxEnvironmentOpenResultSchema, p as SandboxTerminalAttachRequestSchema, pt as SandboxRetainedResultLookupResultSchema, q as SandboxFsWriteRequestSchema, rt as SandboxEnvironmentCloseResultSchema, s as GatewayRuntimeTrustedInvocationContextSchema, st as SandboxEnvironmentStatusResultSchema, tt as SandboxExecWaitResultSchema, u as GatewayRuntimeTrustedInvocationRequesterSchema, v as SandboxStreamCloseResultSchema, w as SandboxProcessCancelResultSchema, x as SandboxStreamWriteRequestSchema, y as SandboxStreamReadRequestSchema, z as SandboxFsReadRequestSchema } from "../contracts-RgGW0RX2.js";
4
- import { r as PortalCallRequestSchema } from "../portal-call-request-schema-Cp6CMGs9.js";
5
- import { a as PortalListRequestSchema, r as PortalSearchRequestSchema, s as PortalDescribeRequestSchema } from "../portal-call-surface-DjZVquFt.js";
1
+ import { d as PortalListResultSchema, i as PortalCallResultSchema, m as PortalSearchResultSchema, s as PortalDescribeResultSchema } from "../portal-call-result-schema-CVWMGu2y.js";
2
+ import { a as PortalArtifactReadRequestSchema, o as PortalArtifactReadResultSchema } from "../artifact-surface-BIDasG5x.js";
3
+ import { $ as SandboxExecStartRequestSchema, A as SandboxProcessStartRequestSchema, B as SandboxFsReadRequestSchema, C as SandboxStreamWriteResultSchema, E as SandboxProcessHandleRequestSchema, G as SandboxFsRenameResultSchema, H as SandboxFsRemoveRequestSchema, I as SandboxFsListRequestSchema, J as SandboxFsWriteRequestSchema, K as SandboxFsStatRequestSchema, L as SandboxFsListResultSchema, M as SandboxProcessStatusResultSchema, N as SandboxProcessWaitRequestSchema, O as SandboxProcessLogsRequestSchema, P as SandboxProcessWaitResultSchema, R as SandboxFsMkdirRequestSchema, S as SandboxStreamWriteRequestSchema, T as SandboxProcessCancelResultSchema, U as SandboxFsRemoveResultSchema, V as SandboxFsReadResultSchema, W as SandboxFsRenameRequestSchema, X as SandboxExecCancelRequestSchema, Y as SandboxFsWriteResultSchema, Z as SandboxExecCancelResultSchema, _ as SandboxTerminalResizeResultSchema, at as SandboxEnvironmentHandleRequestSchema, b as SandboxStreamReadRequestSchema, c as GatewayRuntimeTrustedInvocationCorrelationSchema, ct as SandboxEnvironmentStatusResultSchema, et as SandboxExecStartResultSchema, g as SandboxTerminalResizeRequestSchema, h as SandboxTerminalAttachResultSchema, it as SandboxEnvironmentCloseResultSchema, j as SandboxProcessStartResultSchema, k as SandboxProcessLogsResultSchema, l as GatewayRuntimeTrustedInvocationPrincipalSchema, m as SandboxTerminalAttachRequestSchema, mt as SandboxRetainedResultLookupResultSchema, n as GatewayRuntimeAttachmentMetadataSchema, nt as SandboxExecWaitResultSchema, ot as SandboxEnvironmentOpenRequestSchema, pt as SandboxRetainedResultLookupRequestSchema, q as SandboxFsStatResultSchema, s as GatewayRuntimeTrustedInvocationContextSchema, st as SandboxEnvironmentOpenResultSchema, tt as SandboxExecWaitRequestSchema, u as GatewayRuntimeTrustedInvocationRequesterSchema, v as SandboxStreamCloseRequestSchema, w as SandboxProcessCancelRequestSchema, x as SandboxStreamReadResultSchema, y as SandboxStreamCloseResultSchema, z as SandboxFsMkdirResultSchema } from "../contracts-3pjrcMjD.js";
4
+ import { r as PortalCallRequestSchema } from "../portal-call-request-schema-DYxcWijW.js";
5
+ import { a as PortalListRequestSchema, r as PortalSearchRequestSchema, s as PortalDescribeRequestSchema } from "../portal-call-surface-B_oQxm5X.js";
6
6
  import { z } from "zod/v4";
7
7
  import net from "node:net";
8
8
  //#region src/gateway-runtime-client/gateway-runtime-sandbox-operations.ts
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { a as encodeGatewayRuntimeLocalExecFrame, i as GatewayRuntimeLocalExecLineDecoder, n as GATEWAY_RUNTIME_LOCAL_EXEC_TOKEN_ENV, o as parseGatewayRuntimeLocalExecServerFrame, t as GATEWAY_RUNTIME_LOCAL_EXEC_SOCKET_ENV } from "../gateway-runtime-local-exec-transport-B1hy2A3Q.js";
2
+ import { a as encodeGatewayRuntimeLocalExecFrame, i as GatewayRuntimeLocalExecLineDecoder, n as GATEWAY_RUNTIME_LOCAL_EXEC_TOKEN_ENV, o as parseGatewayRuntimeLocalExecServerFrame, t as GATEWAY_RUNTIME_LOCAL_EXEC_SOCKET_ENV } from "../gateway-runtime-local-exec-transport-DjxMXdT9.js";
3
3
  import { createConnection } from "node:net";
4
4
  //#region src/gateway-runtime-local-exec/gateway-runtime-local-exec-helper.ts
5
5
  const CONNECTION_DEADLINE_MS = 1e4;
@@ -1,2 +1,2 @@
1
- import { n as GATEWAY_RUNTIME_LOCAL_EXEC_TOKEN_ENV, r as GatewayRuntimeLocalExecTransport, t as GATEWAY_RUNTIME_LOCAL_EXEC_SOCKET_ENV } from "../gateway-runtime-local-exec-transport-B1hy2A3Q.js";
1
+ import { n as GATEWAY_RUNTIME_LOCAL_EXEC_TOKEN_ENV, r as GatewayRuntimeLocalExecTransport, t as GATEWAY_RUNTIME_LOCAL_EXEC_SOCKET_ENV } from "../gateway-runtime-local-exec-transport-DjxMXdT9.js";
2
2
  export { GATEWAY_RUNTIME_LOCAL_EXEC_SOCKET_ENV, GATEWAY_RUNTIME_LOCAL_EXEC_TOKEN_ENV, GatewayRuntimeLocalExecTransport };
@@ -424,4 +424,4 @@ var GatewayRuntimeLocalExecTransport = class {
424
424
  //#endregion
425
425
  export { encodeGatewayRuntimeLocalExecFrame as a, GatewayRuntimeLocalExecLineDecoder as i, GATEWAY_RUNTIME_LOCAL_EXEC_TOKEN_ENV as n, parseGatewayRuntimeLocalExecServerFrame as o, GatewayRuntimeLocalExecTransport as r, GATEWAY_RUNTIME_LOCAL_EXEC_SOCKET_ENV as t };
426
426
 
427
- //# sourceMappingURL=gateway-runtime-local-exec-transport-B1hy2A3Q.js.map
427
+ //# sourceMappingURL=gateway-runtime-local-exec-transport-DjxMXdT9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-runtime-local-exec-transport-B1hy2A3Q.js","names":["#buffer","#socket","#pendingWrite","#helperArgv","#reservationScheduler","#reservationTimeoutMs","#reservations","#temporaryDirectory","#expireReservation","#acceptConnection","#disposeReservation","#processClientFrames","#runAuthenticatedOperation","#disposeReservationOnce"],"sources":["../src/gateway-runtime-local-exec/gateway-runtime-local-exec-protocol.ts","../src/gateway-runtime-local-exec/gateway-runtime-local-exec-transport.ts"],"sourcesContent":["const MAXIMUM_LOCAL_EXEC_FRAME_BYTES = 128 * 1024;\nconst MAXIMUM_LOCAL_EXEC_STREAM_CHUNK_BYTES = 64 * 1024;\nconst MAXIMUM_LOCAL_EXEC_TOKEN_BYTES = 256;\n\nexport type GatewayRuntimeLocalExecClientFrame =\n\t| { readonly kind: 'authenticate'; readonly token: string }\n\t| { readonly kind: 'cancel' }\n\t| { readonly contentBase64: string; readonly kind: 'stdin-chunk' }\n\t| { readonly kind: 'stdin-end' }\n\t| { readonly columns: number; readonly kind: 'terminal-resize'; readonly rows: number };\n\nexport type GatewayRuntimeLocalExecServerFrame =\n\t| { readonly kind: 'accepted' }\n\t| { readonly contentBase64: string; readonly kind: 'stderr-chunk' }\n\t| { readonly kind: 'stderr-end' }\n\t| { readonly exitCode: number | null; readonly kind: 'exited' }\n\t| { readonly message: string; readonly kind: 'rejected' }\n\t| { readonly contentBase64: string; readonly kind: 'stdout-chunk' }\n\t| { readonly kind: 'stdout-end' };\n\nexport class GatewayRuntimeLocalExecProtocolError extends Error {\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = 'GatewayRuntimeLocalExecProtocolError';\n\t}\n}\n\nfunction isRecord(value: unknown): value is Readonly<Record<string, unknown>> {\n\treturn typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction requireExactKeys(value: Readonly<Record<string, unknown>>, keys: readonly string[]): void {\n\tconst actualKeys = Object.keys(value).toSorted();\n\tconst expectedKeys = keys.toSorted();\n\tif (\n\t\tactualKeys.length !== expectedKeys.length ||\n\t\tactualKeys.some((key, index) => key !== expectedKeys[index])\n\t) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError('Local exec frame contains unexpected fields.');\n\t}\n}\n\nfunction requireString(value: unknown, fieldName: string): string {\n\tif (typeof value !== 'string' || value.length === 0) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError(\n\t\t\t`Local exec frame field '${fieldName}' must be a non-empty string.`,\n\t\t);\n\t}\n\treturn value;\n}\n\nfunction requireBoundedToken(value: unknown): string {\n\tconst token = requireString(value, 'token');\n\tif (Buffer.byteLength(token, 'utf8') > MAXIMUM_LOCAL_EXEC_TOKEN_BYTES) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError(\n\t\t\t'Local exec reservation token exceeds the byte limit.',\n\t\t);\n\t}\n\treturn token;\n}\n\nfunction requireCanonicalBase64(value: unknown): string {\n\tconst encoded = requireString(value, 'contentBase64');\n\tconst decoded = Buffer.from(encoded, 'base64');\n\tif (\n\t\tdecoded.byteLength > MAXIMUM_LOCAL_EXEC_STREAM_CHUNK_BYTES ||\n\t\tdecoded.toString('base64') !== encoded\n\t) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError(\n\t\t\t'Local exec stream content must be canonical bounded base64.',\n\t\t);\n\t}\n\treturn encoded;\n}\n\nfunction requireTerminalDimension(value: unknown, fieldName: string): number {\n\tif (!Number.isSafeInteger(value) || (value as number) <= 0 || (value as number) > 1_000) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError(\n\t\t\t`Local exec frame field '${fieldName}' must be a bounded positive integer.`,\n\t\t);\n\t}\n\treturn value as number;\n}\n\nfunction parseJsonObject(line: string): Readonly<Record<string, unknown>> {\n\tif (Buffer.byteLength(line, 'utf8') > MAXIMUM_LOCAL_EXEC_FRAME_BYTES) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError('Local exec frame exceeds the byte limit.');\n\t}\n\tlet value: unknown;\n\ttry {\n\t\tvalue = JSON.parse(line);\n\t} catch (error: unknown) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError(\n\t\t\terror instanceof Error\n\t\t\t\t? `Local exec frame is not valid JSON: ${error.message}`\n\t\t\t\t: 'Local exec frame is not valid JSON.',\n\t\t);\n\t}\n\tif (!isRecord(value)) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError('Local exec frame must be an object.');\n\t}\n\treturn value;\n}\n\nexport function encodeGatewayRuntimeLocalExecFrame(\n\tframe: GatewayRuntimeLocalExecClientFrame | GatewayRuntimeLocalExecServerFrame,\n): string {\n\treturn `${JSON.stringify(frame)}\\n`;\n}\n\nexport function parseGatewayRuntimeLocalExecClientFrame(\n\tline: string,\n): GatewayRuntimeLocalExecClientFrame {\n\tconst value = parseJsonObject(line);\n\tconst kind = requireString(value.kind, 'kind');\n\tswitch (kind) {\n\t\tcase 'authenticate':\n\t\t\trequireExactKeys(value, ['kind', 'token']);\n\t\t\treturn { kind, token: requireBoundedToken(value.token) };\n\t\tcase 'cancel':\n\t\tcase 'stdin-end':\n\t\t\trequireExactKeys(value, ['kind']);\n\t\t\treturn { kind };\n\t\tcase 'stdin-chunk':\n\t\t\trequireExactKeys(value, ['contentBase64', 'kind']);\n\t\t\treturn { contentBase64: requireCanonicalBase64(value.contentBase64), kind };\n\t\tcase 'terminal-resize':\n\t\t\trequireExactKeys(value, ['columns', 'kind', 'rows']);\n\t\t\treturn {\n\t\t\t\tcolumns: requireTerminalDimension(value.columns, 'columns'),\n\t\t\t\tkind,\n\t\t\t\trows: requireTerminalDimension(value.rows, 'rows'),\n\t\t\t};\n\t\tdefault:\n\t\t\tthrow new GatewayRuntimeLocalExecProtocolError(`Unknown local exec client frame '${kind}'.`);\n\t}\n}\n\nexport function parseGatewayRuntimeLocalExecServerFrame(\n\tline: string,\n): GatewayRuntimeLocalExecServerFrame {\n\tconst value = parseJsonObject(line);\n\tconst kind = requireString(value.kind, 'kind');\n\tswitch (kind) {\n\t\tcase 'accepted':\n\t\tcase 'stderr-end':\n\t\tcase 'stdout-end':\n\t\t\trequireExactKeys(value, ['kind']);\n\t\t\treturn { kind };\n\t\tcase 'stderr-chunk':\n\t\tcase 'stdout-chunk':\n\t\t\trequireExactKeys(value, ['contentBase64', 'kind']);\n\t\t\treturn { contentBase64: requireCanonicalBase64(value.contentBase64), kind };\n\t\tcase 'exited':\n\t\t\trequireExactKeys(value, ['exitCode', 'kind']);\n\t\t\tif (\n\t\t\t\tvalue.exitCode !== null &&\n\t\t\t\t(!Number.isSafeInteger(value.exitCode) ||\n\t\t\t\t\t(value.exitCode as number) < 0 ||\n\t\t\t\t\t(value.exitCode as number) > 255)\n\t\t\t) {\n\t\t\t\tthrow new GatewayRuntimeLocalExecProtocolError(\n\t\t\t\t\t\"Local exec frame field 'exitCode' must be null or an integer from 0 through 255.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn { exitCode: value.exitCode as number | null, kind };\n\t\tcase 'rejected':\n\t\t\trequireExactKeys(value, ['kind', 'message']);\n\t\t\treturn { kind, message: requireString(value.message, 'message') };\n\t\tdefault:\n\t\t\tthrow new GatewayRuntimeLocalExecProtocolError(`Unknown local exec server frame '${kind}'.`);\n\t}\n}\n\nexport class GatewayRuntimeLocalExecLineDecoder {\n\t#buffer = Buffer.alloc(0);\n\n\tpush(chunk: Uint8Array): readonly string[] {\n\t\tif (chunk.byteLength + this.#buffer.byteLength > MAXIMUM_LOCAL_EXEC_FRAME_BYTES) {\n\t\t\tthrow new GatewayRuntimeLocalExecProtocolError(\n\t\t\t\t'Local exec frame batch exceeds the byte limit.',\n\t\t\t);\n\t\t}\n\t\tthis.#buffer = Buffer.concat([this.#buffer, chunk]);\n\t\tconst lines: string[] = [];\n\t\tlet newlineIndex = this.#buffer.indexOf(0x0a);\n\t\twhile (newlineIndex >= 0) {\n\t\t\tconst line = this.#buffer.subarray(0, newlineIndex).toString('utf8');\n\t\t\tthis.#buffer = this.#buffer.subarray(newlineIndex + 1);\n\t\t\tif (Buffer.byteLength(line, 'utf8') > MAXIMUM_LOCAL_EXEC_FRAME_BYTES) {\n\t\t\t\tthrow new GatewayRuntimeLocalExecProtocolError('Local exec frame exceeds the byte limit.');\n\t\t\t}\n\t\t\tif (line.length > 0) lines.push(line);\n\t\t\tnewlineIndex = this.#buffer.indexOf(0x0a);\n\t\t}\n\t\tif (this.#buffer.byteLength > MAXIMUM_LOCAL_EXEC_FRAME_BYTES) {\n\t\t\tthrow new GatewayRuntimeLocalExecProtocolError('Local exec frame exceeds the byte limit.');\n\t\t}\n\t\treturn lines;\n\t}\n}\n","import { randomBytes } from 'node:crypto';\nimport { chmod, mkdtemp, rm } from 'node:fs/promises';\nimport { createServer, type Server, type Socket } from 'node:net';\nimport { join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport {\n\tGatewayRuntimeLocalExecLineDecoder,\n\tGatewayRuntimeLocalExecProtocolError,\n\tencodeGatewayRuntimeLocalExecFrame,\n\tparseGatewayRuntimeLocalExecClientFrame,\n\ttype GatewayRuntimeLocalExecServerFrame,\n} from './gateway-runtime-local-exec-protocol.js';\n\nexport const GATEWAY_RUNTIME_LOCAL_EXEC_SOCKET_ENV = 'AGENT_VM_LOCAL_EXEC_SOCKET';\nexport const GATEWAY_RUNTIME_LOCAL_EXEC_TOKEN_ENV = 'AGENT_VM_LOCAL_EXEC_TOKEN';\n\nconst DEFAULT_RESERVATION_TIMEOUT_MS = 15_000;\nconst DEFAULT_TEMPORARY_DIRECTORY = '/tmp';\nconst MAXIMUM_STREAM_CHUNK_BYTES = 64 * 1024;\n\nexport type GatewayRuntimeLocalExecReadResult =\n\t| { readonly content: Uint8Array; readonly kind: 'chunk' }\n\t| { readonly kind: 'end' };\n\nexport interface GatewayRuntimeLocalExecOperation {\n\treadonly cancel: () => Promise<void>;\n\treadonly closeStdin: () => Promise<void>;\n\treadonly readStderr: (maximumBytes: number) => Promise<GatewayRuntimeLocalExecReadResult>;\n\treadonly readStdout: (maximumBytes: number) => Promise<GatewayRuntimeLocalExecReadResult>;\n\treadonly resizeTerminal?: (size: {\n\t\treadonly columns: number;\n\t\treadonly rows: number;\n\t}) => Promise<void>;\n\treadonly wait: () => Promise<{ readonly exitCode: number | null }>;\n\treadonly writeStdin: (content: Uint8Array) => Promise<void>;\n}\n\nexport interface GatewayRuntimeLocalExecReservationScheduler {\n\treadonly schedule: (callback: () => void, delayMs: number) => { readonly cancel: () => void };\n}\n\nexport interface GatewayRuntimeLocalExecFinalizeToken {\n\treadonly kind: 'gateway-runtime-local-exec';\n\treadonly reservationId: string;\n}\n\nexport interface GatewayRuntimeLocalExecSpec {\n\treadonly argv: readonly string[];\n\treadonly env: Readonly<Record<string, string>>;\n\treadonly finalizeToken: GatewayRuntimeLocalExecFinalizeToken;\n\treadonly stdinMode: 'pipe-open';\n}\n\nexport interface GatewayRuntimeLocalExecTransportOptions {\n\treadonly helperArgv?: readonly string[];\n\treadonly reservationScheduler?: GatewayRuntimeLocalExecReservationScheduler;\n\treadonly reservationTimeoutMs?: number;\n\treadonly temporaryDirectory?: string;\n}\n\ninterface ReservationRecord {\n\treadonly cancelExpiry: () => void;\n\treadonly operation: GatewayRuntimeLocalExecOperation;\n\treadonly reservationDirectory: string;\n\treadonly reservationId: string;\n\treadonly server: Server;\n\treadonly socketPath: string;\n\treadonly token: string;\n\tconsumed: boolean;\n\tdisposal?: Promise<void>;\n\tfinalized: boolean;\n\tsocket?: Socket;\n}\n\nconst defaultReservationScheduler: GatewayRuntimeLocalExecReservationScheduler = {\n\tschedule(callback, delayMs) {\n\t\tconst timeout = setTimeout(callback, delayMs);\n\t\treturn { cancel: () => clearTimeout(timeout) };\n\t},\n};\n\nfunction validateReservationTimeout(timeoutMs: number): number {\n\tif (!Number.isSafeInteger(timeoutMs) || timeoutMs <= 0 || timeoutMs > 60_000) {\n\t\tthrow new RangeError('Local exec reservation timeout must be an integer from 1 through 60000.');\n\t}\n\treturn timeoutMs;\n}\n\nasync function closeServer(server: Server): Promise<void> {\n\tif (!server.listening) return;\n\tawait new Promise<void>((resolve, reject) => {\n\t\tserver.close((error?: Error) => (error === undefined ? resolve() : reject(error)));\n\t});\n}\n\nasync function writeFrame(\n\tsocket: Socket,\n\tframe: GatewayRuntimeLocalExecServerFrame,\n): Promise<void> {\n\tconst encodedFrame = encodeGatewayRuntimeLocalExecFrame(frame);\n\tif (socket.write(encodedFrame)) return;\n\tawait new Promise<void>((resolve, reject) => {\n\t\tconst cleanup = (): void => {\n\t\t\tsocket.off('drain', handleDrain);\n\t\t\tsocket.off('error', handleError);\n\t\t};\n\t\tconst handleDrain = (): void => {\n\t\t\tcleanup();\n\t\t\tresolve();\n\t\t};\n\t\tconst handleError = (error: Error): void => {\n\t\t\tcleanup();\n\t\t\treject(error);\n\t\t};\n\t\tsocket.once('drain', handleDrain);\n\t\tsocket.once('error', handleError);\n\t});\n}\n\nclass GatewayRuntimeLocalExecFrameWriter {\n\t#pendingWrite = Promise.resolve();\n\treadonly #socket: Socket;\n\n\tconstructor(socket: Socket) {\n\t\tthis.#socket = socket;\n\t}\n\n\tasync write(frame: GatewayRuntimeLocalExecServerFrame): Promise<void> {\n\t\tconst write = this.#pendingWrite.then(async () => await writeFrame(this.#socket, frame));\n\t\tthis.#pendingWrite = write.catch(() => undefined);\n\t\tawait write;\n\t}\n}\n\nasync function endSocket(socket: Socket): Promise<void> {\n\tif (socket.destroyed) return;\n\tawait new Promise<void>((resolve) => socket.end(resolve));\n}\n\nasync function pumpOutput(props: {\n\treadonly frameWriter: GatewayRuntimeLocalExecFrameWriter;\n\treadonly kind: 'stderr' | 'stdout';\n\treadonly operation: GatewayRuntimeLocalExecOperation;\n\treadonly socket: Socket;\n}): Promise<void> {\n\tconst read =\n\t\tprops.kind === 'stdout'\n\t\t\t? props.operation.readStdout.bind(props.operation)\n\t\t\t: props.operation.readStderr.bind(props.operation);\n\tif (props.socket.destroyed) return;\n\tconst result = await read(MAXIMUM_STREAM_CHUNK_BYTES);\n\tif (result.kind === 'end') {\n\t\tawait props.frameWriter.write({ kind: `${props.kind}-end` });\n\t\treturn;\n\t}\n\tawait props.frameWriter.write({\n\t\tcontentBase64: Buffer.from(result.content).toString('base64'),\n\t\tkind: `${props.kind}-chunk`,\n\t});\n\tawait pumpOutput(props);\n}\n\nexport class GatewayRuntimeLocalExecTransport {\n\treadonly #helperArgv: readonly string[];\n\treadonly #reservationScheduler: GatewayRuntimeLocalExecReservationScheduler;\n\treadonly #reservationTimeoutMs: number;\n\treadonly #reservations = new Map<string, ReservationRecord>();\n\treadonly #temporaryDirectory: string;\n\n\tconstructor(options: GatewayRuntimeLocalExecTransportOptions = {}) {\n\t\tthis.#helperArgv =\n\t\t\toptions.helperArgv ??\n\t\t\tObject.freeze([\n\t\t\t\tprocess.execPath,\n\t\t\t\tfileURLToPath(\n\t\t\t\t\tnew URL(\n\t\t\t\t\t\t'./gateway-runtime-local-exec/gateway-runtime-local-exec-helper.js',\n\t\t\t\t\t\timport.meta.url,\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t]);\n\t\tif (this.#helperArgv.length === 0)\n\t\t\tthrow new TypeError('Local exec helper argv cannot be empty.');\n\t\tthis.#reservationScheduler = options.reservationScheduler ?? defaultReservationScheduler;\n\t\tthis.#reservationTimeoutMs = validateReservationTimeout(\n\t\t\toptions.reservationTimeoutMs ?? DEFAULT_RESERVATION_TIMEOUT_MS,\n\t\t);\n\t\tthis.#temporaryDirectory = options.temporaryDirectory ?? DEFAULT_TEMPORARY_DIRECTORY;\n\t}\n\n\tasync reserve(operation: GatewayRuntimeLocalExecOperation): Promise<GatewayRuntimeLocalExecSpec> {\n\t\tconst reservationId = randomBytes(16).toString('hex');\n\t\tconst token = randomBytes(32).toString('base64url');\n\t\tconst reservationDirectory = await mkdtemp(\n\t\t\tjoin(this.#temporaryDirectory, 'agent-vm-local-exec-'),\n\t\t);\n\t\tawait chmod(reservationDirectory, 0o700);\n\t\tconst socketPath = join(reservationDirectory, 'relay.sock');\n\t\tconst server = createServer();\n\t\tconst expiry = this.#reservationScheduler.schedule(() => {\n\t\t\tvoid this.#expireReservation(reservationId).catch(() => undefined);\n\t\t}, this.#reservationTimeoutMs);\n\t\tconst reservation: ReservationRecord = {\n\t\t\tcancelExpiry: expiry.cancel,\n\t\t\tconsumed: false,\n\t\t\tfinalized: false,\n\t\t\toperation,\n\t\t\treservationDirectory,\n\t\t\treservationId,\n\t\t\tserver,\n\t\t\tsocketPath,\n\t\t\ttoken,\n\t\t};\n\t\tthis.#reservations.set(reservationId, reservation);\n\t\tserver.on('connection', (socket) => this.#acceptConnection(reservation, socket));\n\t\ttry {\n\t\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\t\tserver.once('error', reject);\n\t\t\t\tserver.listen(socketPath, () => {\n\t\t\t\t\tserver.off('error', reject);\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t\t});\n\t\t\tawait chmod(socketPath, 0o600);\n\t\t} catch (error: unknown) {\n\t\t\tawait this.#disposeReservation(reservation, true);\n\t\t\tthrow error;\n\t\t}\n\t\treturn {\n\t\t\targv: [...this.#helperArgv],\n\t\t\tenv: {\n\t\t\t\t[GATEWAY_RUNTIME_LOCAL_EXEC_SOCKET_ENV]: socketPath,\n\t\t\t\t[GATEWAY_RUNTIME_LOCAL_EXEC_TOKEN_ENV]: token,\n\t\t\t},\n\t\t\tfinalizeToken: { kind: 'gateway-runtime-local-exec', reservationId },\n\t\t\tstdinMode: 'pipe-open',\n\t\t};\n\t}\n\n\tasync finalize(token: unknown): Promise<void> {\n\t\tconst reservationId =\n\t\t\ttypeof token === 'object' && token !== null ? Reflect.get(token, 'reservationId') : undefined;\n\t\tif (\n\t\t\ttypeof token !== 'object' ||\n\t\t\ttoken === null ||\n\t\t\tReflect.get(token, 'kind') !== 'gateway-runtime-local-exec' ||\n\t\t\ttypeof reservationId !== 'string'\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst reservation = this.#reservations.get(reservationId);\n\t\tif (reservation === undefined) return;\n\t\tawait this.#disposeReservation(reservation, !reservation.consumed);\n\t}\n\n\tasync close(): Promise<void> {\n\t\tawait Promise.all(\n\t\t\t[...this.#reservations.values()].map(\n\t\t\t\tasync (reservation) => await this.#disposeReservation(reservation, true),\n\t\t\t),\n\t\t);\n\t}\n\n\tasync #expireReservation(reservationId: string): Promise<void> {\n\t\tconst reservation = this.#reservations.get(reservationId);\n\t\tif (reservation === undefined || reservation.consumed) return;\n\t\tawait this.#disposeReservation(reservation, true);\n\t}\n\n\t#acceptConnection(reservation: ReservationRecord, socket: Socket): void {\n\t\tif (reservation.finalized || reservation.consumed) {\n\t\t\tvoid writeFrame(socket, {\n\t\t\t\tkind: 'rejected',\n\t\t\t\tmessage: 'Reservation already consumed.',\n\t\t\t})\n\t\t\t\t.catch(() => undefined)\n\t\t\t\t.finally(() => socket.destroy());\n\t\t\treturn;\n\t\t}\n\t\tconst decoder = new GatewayRuntimeLocalExecLineDecoder();\n\t\tconst connectionState = { authenticated: false };\n\t\tsocket.once('close', () => {\n\t\t\tif (connectionState.authenticated && !reservation.finalized) {\n\t\t\t\tvoid this.#disposeReservation(reservation, true).catch(() => undefined);\n\t\t\t}\n\t\t});\n\t\tsocket.on('data', (chunk: Buffer) => {\n\t\t\tsocket.pause();\n\t\t\tvoid this.#processClientFrames({\n\t\t\t\tchunk,\n\t\t\t\tconnectionState,\n\t\t\t\tdecoder,\n\t\t\t\treservation,\n\t\t\t\tsocket,\n\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (!socket.destroyed) socket.resume();\n\t\t\t\t})\n\t\t\t\t.catch((error: unknown) => {\n\t\t\t\t\tvoid writeFrame(socket, {\n\t\t\t\t\t\tkind: 'rejected',\n\t\t\t\t\t\tmessage: error instanceof Error ? error.message : 'Invalid local exec frame.',\n\t\t\t\t\t})\n\t\t\t\t\t\t.catch(() => undefined)\n\t\t\t\t\t\t.finally(() => socket.destroy());\n\t\t\t\t});\n\t\t});\n\t}\n\n\tasync #processClientFrames(props: {\n\t\treadonly chunk: Buffer;\n\t\treadonly connectionState: { authenticated: boolean };\n\t\treadonly decoder: GatewayRuntimeLocalExecLineDecoder;\n\t\treadonly reservation: ReservationRecord;\n\t\treadonly socket: Socket;\n\t}): Promise<void> {\n\t\t// oxlint-disable no-await-in-loop -- input frames must preserve order and backpressure.\n\t\tfor (const line of props.decoder.push(props.chunk)) {\n\t\t\tconst frame = parseGatewayRuntimeLocalExecClientFrame(line);\n\t\t\tif (!props.connectionState.authenticated) {\n\t\t\t\tif (\n\t\t\t\t\tframe.kind !== 'authenticate' ||\n\t\t\t\t\tframe.token !== props.reservation.token ||\n\t\t\t\t\tprops.reservation.consumed\n\t\t\t\t) {\n\t\t\t\t\tawait writeFrame(props.socket, {\n\t\t\t\t\t\tkind: 'rejected',\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\tframe.kind === 'authenticate' && frame.token === props.reservation.token\n\t\t\t\t\t\t\t\t? 'Reservation already consumed.'\n\t\t\t\t\t\t\t\t: 'Invalid reservation token.',\n\t\t\t\t\t});\n\t\t\t\t\tprops.socket.destroy();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tprops.connectionState.authenticated = true;\n\t\t\t\tprops.reservation.consumed = true;\n\t\t\t\tprops.reservation.cancelExpiry();\n\t\t\t\tprops.reservation.socket = props.socket;\n\t\t\t\tprops.reservation.server.close();\n\t\t\t\tawait writeFrame(props.socket, { kind: 'accepted' });\n\t\t\t\tvoid this.#runAuthenticatedOperation(props.reservation, props.socket).catch(\n\t\t\t\t\t() => undefined,\n\t\t\t\t);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tswitch (frame.kind) {\n\t\t\t\tcase 'authenticate':\n\t\t\t\t\tthrow new GatewayRuntimeLocalExecProtocolError('Duplicate authentication frame.');\n\t\t\t\tcase 'cancel':\n\t\t\t\t\tawait props.reservation.operation.cancel();\n\t\t\t\t\treturn;\n\t\t\t\tcase 'stdin-chunk':\n\t\t\t\t\tawait props.reservation.operation.writeStdin(Buffer.from(frame.contentBase64, 'base64'));\n\t\t\t\t\tcontinue;\n\t\t\t\tcase 'stdin-end':\n\t\t\t\t\tawait props.reservation.operation.closeStdin();\n\t\t\t\t\tcontinue;\n\t\t\t\tcase 'terminal-resize':\n\t\t\t\t\tif (props.reservation.operation.resizeTerminal === undefined) {\n\t\t\t\t\t\tthrow new GatewayRuntimeLocalExecProtocolError('Terminal resize is unavailable.');\n\t\t\t\t\t}\n\t\t\t\t\tawait props.reservation.operation.resizeTerminal({\n\t\t\t\t\t\tcolumns: frame.columns,\n\t\t\t\t\t\trows: frame.rows,\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// oxlint-enable no-await-in-loop\n\t}\n\n\tasync #runAuthenticatedOperation(reservation: ReservationRecord, socket: Socket): Promise<void> {\n\t\ttry {\n\t\t\tconst frameWriter = new GatewayRuntimeLocalExecFrameWriter(socket);\n\t\t\tconst [waitResult] = await Promise.all([\n\t\t\t\treservation.operation.wait(),\n\t\t\t\tpumpOutput({ frameWriter, kind: 'stdout', operation: reservation.operation, socket }),\n\t\t\t\tpumpOutput({ frameWriter, kind: 'stderr', operation: reservation.operation, socket }),\n\t\t\t]);\n\t\t\tif (!socket.destroyed) {\n\t\t\t\tawait frameWriter.write({ exitCode: waitResult.exitCode, kind: 'exited' });\n\t\t\t\tawait endSocket(socket);\n\t\t\t}\n\t\t} catch {\n\t\t\tsocket.destroy();\n\t\t} finally {\n\t\t\tawait this.#disposeReservation(reservation, false);\n\t\t}\n\t}\n\n\tasync #disposeReservation(reservation: ReservationRecord, cancel: boolean): Promise<void> {\n\t\tif (reservation.disposal !== undefined) return await reservation.disposal;\n\t\treservation.disposal = this.#disposeReservationOnce(reservation, cancel);\n\t\tawait reservation.disposal;\n\t}\n\n\tasync #disposeReservationOnce(reservation: ReservationRecord, cancel: boolean): Promise<void> {\n\t\tif (reservation.finalized) return;\n\t\treservation.finalized = true;\n\t\treservation.cancelExpiry();\n\t\tlet cancellationError: unknown;\n\t\tif (cancel) {\n\t\t\ttry {\n\t\t\t\tawait reservation.operation.cancel();\n\t\t\t} catch (error: unknown) {\n\t\t\t\tcancellationError = error;\n\t\t\t}\n\t\t}\n\t\tlet cleanupError: unknown;\n\t\ttry {\n\t\t\treservation.socket?.destroy();\n\t\t\tawait closeServer(reservation.server).catch(() => undefined);\n\t\t\tawait rm(reservation.reservationDirectory, { force: true, recursive: true });\n\t\t} catch (error: unknown) {\n\t\t\tcleanupError = error;\n\t\t} finally {\n\t\t\tthis.#reservations.delete(reservation.reservationId);\n\t\t}\n\t\tif (cancellationError !== undefined && cleanupError !== undefined) {\n\t\t\tthrow new AggregateError(\n\t\t\t\t[cancellationError, cleanupError],\n\t\t\t\t'Local exec cancellation and cleanup both failed.',\n\t\t\t);\n\t\t}\n\t\tif (cancellationError !== undefined) throw cancellationError;\n\t\tif (cleanupError !== undefined) throw cleanupError;\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"gateway-runtime-local-exec-transport-DjxMXdT9.js","names":["#buffer","#socket","#pendingWrite","#helperArgv","#reservationScheduler","#reservationTimeoutMs","#reservations","#temporaryDirectory","#expireReservation","#acceptConnection","#disposeReservation","#processClientFrames","#runAuthenticatedOperation","#disposeReservationOnce"],"sources":["../src/gateway-runtime-local-exec/gateway-runtime-local-exec-protocol.ts","../src/gateway-runtime-local-exec/gateway-runtime-local-exec-transport.ts"],"sourcesContent":["const MAXIMUM_LOCAL_EXEC_FRAME_BYTES = 128 * 1024;\nconst MAXIMUM_LOCAL_EXEC_STREAM_CHUNK_BYTES = 64 * 1024;\nconst MAXIMUM_LOCAL_EXEC_TOKEN_BYTES = 256;\n\nexport type GatewayRuntimeLocalExecClientFrame =\n\t| { readonly kind: 'authenticate'; readonly token: string }\n\t| { readonly kind: 'cancel' }\n\t| { readonly contentBase64: string; readonly kind: 'stdin-chunk' }\n\t| { readonly kind: 'stdin-end' }\n\t| { readonly columns: number; readonly kind: 'terminal-resize'; readonly rows: number };\n\nexport type GatewayRuntimeLocalExecServerFrame =\n\t| { readonly kind: 'accepted' }\n\t| { readonly contentBase64: string; readonly kind: 'stderr-chunk' }\n\t| { readonly kind: 'stderr-end' }\n\t| { readonly exitCode: number | null; readonly kind: 'exited' }\n\t| { readonly message: string; readonly kind: 'rejected' }\n\t| { readonly contentBase64: string; readonly kind: 'stdout-chunk' }\n\t| { readonly kind: 'stdout-end' };\n\nexport class GatewayRuntimeLocalExecProtocolError extends Error {\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = 'GatewayRuntimeLocalExecProtocolError';\n\t}\n}\n\nfunction isRecord(value: unknown): value is Readonly<Record<string, unknown>> {\n\treturn typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction requireExactKeys(value: Readonly<Record<string, unknown>>, keys: readonly string[]): void {\n\tconst actualKeys = Object.keys(value).toSorted();\n\tconst expectedKeys = keys.toSorted();\n\tif (\n\t\tactualKeys.length !== expectedKeys.length ||\n\t\tactualKeys.some((key, index) => key !== expectedKeys[index])\n\t) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError('Local exec frame contains unexpected fields.');\n\t}\n}\n\nfunction requireString(value: unknown, fieldName: string): string {\n\tif (typeof value !== 'string' || value.length === 0) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError(\n\t\t\t`Local exec frame field '${fieldName}' must be a non-empty string.`,\n\t\t);\n\t}\n\treturn value;\n}\n\nfunction requireBoundedToken(value: unknown): string {\n\tconst token = requireString(value, 'token');\n\tif (Buffer.byteLength(token, 'utf8') > MAXIMUM_LOCAL_EXEC_TOKEN_BYTES) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError(\n\t\t\t'Local exec reservation token exceeds the byte limit.',\n\t\t);\n\t}\n\treturn token;\n}\n\nfunction requireCanonicalBase64(value: unknown): string {\n\tconst encoded = requireString(value, 'contentBase64');\n\tconst decoded = Buffer.from(encoded, 'base64');\n\tif (\n\t\tdecoded.byteLength > MAXIMUM_LOCAL_EXEC_STREAM_CHUNK_BYTES ||\n\t\tdecoded.toString('base64') !== encoded\n\t) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError(\n\t\t\t'Local exec stream content must be canonical bounded base64.',\n\t\t);\n\t}\n\treturn encoded;\n}\n\nfunction requireTerminalDimension(value: unknown, fieldName: string): number {\n\tif (!Number.isSafeInteger(value) || (value as number) <= 0 || (value as number) > 1_000) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError(\n\t\t\t`Local exec frame field '${fieldName}' must be a bounded positive integer.`,\n\t\t);\n\t}\n\treturn value as number;\n}\n\nfunction parseJsonObject(line: string): Readonly<Record<string, unknown>> {\n\tif (Buffer.byteLength(line, 'utf8') > MAXIMUM_LOCAL_EXEC_FRAME_BYTES) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError('Local exec frame exceeds the byte limit.');\n\t}\n\tlet value: unknown;\n\ttry {\n\t\tvalue = JSON.parse(line);\n\t} catch (error: unknown) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError(\n\t\t\terror instanceof Error\n\t\t\t\t? `Local exec frame is not valid JSON: ${error.message}`\n\t\t\t\t: 'Local exec frame is not valid JSON.',\n\t\t);\n\t}\n\tif (!isRecord(value)) {\n\t\tthrow new GatewayRuntimeLocalExecProtocolError('Local exec frame must be an object.');\n\t}\n\treturn value;\n}\n\nexport function encodeGatewayRuntimeLocalExecFrame(\n\tframe: GatewayRuntimeLocalExecClientFrame | GatewayRuntimeLocalExecServerFrame,\n): string {\n\treturn `${JSON.stringify(frame)}\\n`;\n}\n\nexport function parseGatewayRuntimeLocalExecClientFrame(\n\tline: string,\n): GatewayRuntimeLocalExecClientFrame {\n\tconst value = parseJsonObject(line);\n\tconst kind = requireString(value.kind, 'kind');\n\tswitch (kind) {\n\t\tcase 'authenticate':\n\t\t\trequireExactKeys(value, ['kind', 'token']);\n\t\t\treturn { kind, token: requireBoundedToken(value.token) };\n\t\tcase 'cancel':\n\t\tcase 'stdin-end':\n\t\t\trequireExactKeys(value, ['kind']);\n\t\t\treturn { kind };\n\t\tcase 'stdin-chunk':\n\t\t\trequireExactKeys(value, ['contentBase64', 'kind']);\n\t\t\treturn { contentBase64: requireCanonicalBase64(value.contentBase64), kind };\n\t\tcase 'terminal-resize':\n\t\t\trequireExactKeys(value, ['columns', 'kind', 'rows']);\n\t\t\treturn {\n\t\t\t\tcolumns: requireTerminalDimension(value.columns, 'columns'),\n\t\t\t\tkind,\n\t\t\t\trows: requireTerminalDimension(value.rows, 'rows'),\n\t\t\t};\n\t\tdefault:\n\t\t\tthrow new GatewayRuntimeLocalExecProtocolError(`Unknown local exec client frame '${kind}'.`);\n\t}\n}\n\nexport function parseGatewayRuntimeLocalExecServerFrame(\n\tline: string,\n): GatewayRuntimeLocalExecServerFrame {\n\tconst value = parseJsonObject(line);\n\tconst kind = requireString(value.kind, 'kind');\n\tswitch (kind) {\n\t\tcase 'accepted':\n\t\tcase 'stderr-end':\n\t\tcase 'stdout-end':\n\t\t\trequireExactKeys(value, ['kind']);\n\t\t\treturn { kind };\n\t\tcase 'stderr-chunk':\n\t\tcase 'stdout-chunk':\n\t\t\trequireExactKeys(value, ['contentBase64', 'kind']);\n\t\t\treturn { contentBase64: requireCanonicalBase64(value.contentBase64), kind };\n\t\tcase 'exited':\n\t\t\trequireExactKeys(value, ['exitCode', 'kind']);\n\t\t\tif (\n\t\t\t\tvalue.exitCode !== null &&\n\t\t\t\t(!Number.isSafeInteger(value.exitCode) ||\n\t\t\t\t\t(value.exitCode as number) < 0 ||\n\t\t\t\t\t(value.exitCode as number) > 255)\n\t\t\t) {\n\t\t\t\tthrow new GatewayRuntimeLocalExecProtocolError(\n\t\t\t\t\t\"Local exec frame field 'exitCode' must be null or an integer from 0 through 255.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn { exitCode: value.exitCode as number | null, kind };\n\t\tcase 'rejected':\n\t\t\trequireExactKeys(value, ['kind', 'message']);\n\t\t\treturn { kind, message: requireString(value.message, 'message') };\n\t\tdefault:\n\t\t\tthrow new GatewayRuntimeLocalExecProtocolError(`Unknown local exec server frame '${kind}'.`);\n\t}\n}\n\nexport class GatewayRuntimeLocalExecLineDecoder {\n\t#buffer = Buffer.alloc(0);\n\n\tpush(chunk: Uint8Array): readonly string[] {\n\t\tif (chunk.byteLength + this.#buffer.byteLength > MAXIMUM_LOCAL_EXEC_FRAME_BYTES) {\n\t\t\tthrow new GatewayRuntimeLocalExecProtocolError(\n\t\t\t\t'Local exec frame batch exceeds the byte limit.',\n\t\t\t);\n\t\t}\n\t\tthis.#buffer = Buffer.concat([this.#buffer, chunk]);\n\t\tconst lines: string[] = [];\n\t\tlet newlineIndex = this.#buffer.indexOf(0x0a);\n\t\twhile (newlineIndex >= 0) {\n\t\t\tconst line = this.#buffer.subarray(0, newlineIndex).toString('utf8');\n\t\t\tthis.#buffer = this.#buffer.subarray(newlineIndex + 1);\n\t\t\tif (Buffer.byteLength(line, 'utf8') > MAXIMUM_LOCAL_EXEC_FRAME_BYTES) {\n\t\t\t\tthrow new GatewayRuntimeLocalExecProtocolError('Local exec frame exceeds the byte limit.');\n\t\t\t}\n\t\t\tif (line.length > 0) lines.push(line);\n\t\t\tnewlineIndex = this.#buffer.indexOf(0x0a);\n\t\t}\n\t\tif (this.#buffer.byteLength > MAXIMUM_LOCAL_EXEC_FRAME_BYTES) {\n\t\t\tthrow new GatewayRuntimeLocalExecProtocolError('Local exec frame exceeds the byte limit.');\n\t\t}\n\t\treturn lines;\n\t}\n}\n","import { randomBytes } from 'node:crypto';\nimport { chmod, mkdtemp, rm } from 'node:fs/promises';\nimport { createServer, type Server, type Socket } from 'node:net';\nimport { join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport {\n\tGatewayRuntimeLocalExecLineDecoder,\n\tGatewayRuntimeLocalExecProtocolError,\n\tencodeGatewayRuntimeLocalExecFrame,\n\tparseGatewayRuntimeLocalExecClientFrame,\n\ttype GatewayRuntimeLocalExecServerFrame,\n} from './gateway-runtime-local-exec-protocol.js';\n\nexport const GATEWAY_RUNTIME_LOCAL_EXEC_SOCKET_ENV = 'AGENT_VM_LOCAL_EXEC_SOCKET';\nexport const GATEWAY_RUNTIME_LOCAL_EXEC_TOKEN_ENV = 'AGENT_VM_LOCAL_EXEC_TOKEN';\n\nconst DEFAULT_RESERVATION_TIMEOUT_MS = 15_000;\nconst DEFAULT_TEMPORARY_DIRECTORY = '/tmp';\nconst MAXIMUM_STREAM_CHUNK_BYTES = 64 * 1024;\n\nexport type GatewayRuntimeLocalExecReadResult =\n\t| { readonly content: Uint8Array; readonly kind: 'chunk' }\n\t| { readonly kind: 'end' };\n\nexport interface GatewayRuntimeLocalExecOperation {\n\treadonly cancel: () => Promise<void>;\n\treadonly closeStdin: () => Promise<void>;\n\treadonly readStderr: (maximumBytes: number) => Promise<GatewayRuntimeLocalExecReadResult>;\n\treadonly readStdout: (maximumBytes: number) => Promise<GatewayRuntimeLocalExecReadResult>;\n\treadonly resizeTerminal?: (size: {\n\t\treadonly columns: number;\n\t\treadonly rows: number;\n\t}) => Promise<void>;\n\treadonly wait: () => Promise<{ readonly exitCode: number | null }>;\n\treadonly writeStdin: (content: Uint8Array) => Promise<void>;\n}\n\nexport interface GatewayRuntimeLocalExecReservationScheduler {\n\treadonly schedule: (callback: () => void, delayMs: number) => { readonly cancel: () => void };\n}\n\nexport interface GatewayRuntimeLocalExecFinalizeToken {\n\treadonly kind: 'gateway-runtime-local-exec';\n\treadonly reservationId: string;\n}\n\nexport interface GatewayRuntimeLocalExecSpec {\n\treadonly argv: readonly string[];\n\treadonly env: Readonly<Record<string, string>>;\n\treadonly finalizeToken: GatewayRuntimeLocalExecFinalizeToken;\n\treadonly stdinMode: 'pipe-open';\n}\n\nexport interface GatewayRuntimeLocalExecTransportOptions {\n\treadonly helperArgv?: readonly string[];\n\treadonly reservationScheduler?: GatewayRuntimeLocalExecReservationScheduler;\n\treadonly reservationTimeoutMs?: number;\n\treadonly temporaryDirectory?: string;\n}\n\ninterface ReservationRecord {\n\treadonly cancelExpiry: () => void;\n\treadonly operation: GatewayRuntimeLocalExecOperation;\n\treadonly reservationDirectory: string;\n\treadonly reservationId: string;\n\treadonly server: Server;\n\treadonly socketPath: string;\n\treadonly token: string;\n\tconsumed: boolean;\n\tdisposal?: Promise<void>;\n\tfinalized: boolean;\n\tsocket?: Socket;\n}\n\nconst defaultReservationScheduler: GatewayRuntimeLocalExecReservationScheduler = {\n\tschedule(callback, delayMs) {\n\t\tconst timeout = setTimeout(callback, delayMs);\n\t\treturn { cancel: () => clearTimeout(timeout) };\n\t},\n};\n\nfunction validateReservationTimeout(timeoutMs: number): number {\n\tif (!Number.isSafeInteger(timeoutMs) || timeoutMs <= 0 || timeoutMs > 60_000) {\n\t\tthrow new RangeError('Local exec reservation timeout must be an integer from 1 through 60000.');\n\t}\n\treturn timeoutMs;\n}\n\nasync function closeServer(server: Server): Promise<void> {\n\tif (!server.listening) return;\n\tawait new Promise<void>((resolve, reject) => {\n\t\tserver.close((error?: Error) => (error === undefined ? resolve() : reject(error)));\n\t});\n}\n\nasync function writeFrame(\n\tsocket: Socket,\n\tframe: GatewayRuntimeLocalExecServerFrame,\n): Promise<void> {\n\tconst encodedFrame = encodeGatewayRuntimeLocalExecFrame(frame);\n\tif (socket.write(encodedFrame)) return;\n\tawait new Promise<void>((resolve, reject) => {\n\t\tconst cleanup = (): void => {\n\t\t\tsocket.off('drain', handleDrain);\n\t\t\tsocket.off('error', handleError);\n\t\t};\n\t\tconst handleDrain = (): void => {\n\t\t\tcleanup();\n\t\t\tresolve();\n\t\t};\n\t\tconst handleError = (error: Error): void => {\n\t\t\tcleanup();\n\t\t\treject(error);\n\t\t};\n\t\tsocket.once('drain', handleDrain);\n\t\tsocket.once('error', handleError);\n\t});\n}\n\nclass GatewayRuntimeLocalExecFrameWriter {\n\t#pendingWrite = Promise.resolve();\n\treadonly #socket: Socket;\n\n\tconstructor(socket: Socket) {\n\t\tthis.#socket = socket;\n\t}\n\n\tasync write(frame: GatewayRuntimeLocalExecServerFrame): Promise<void> {\n\t\tconst write = this.#pendingWrite.then(async () => await writeFrame(this.#socket, frame));\n\t\tthis.#pendingWrite = write.catch(() => undefined);\n\t\tawait write;\n\t}\n}\n\nasync function endSocket(socket: Socket): Promise<void> {\n\tif (socket.destroyed) return;\n\tawait new Promise<void>((resolve) => socket.end(resolve));\n}\n\nasync function pumpOutput(props: {\n\treadonly frameWriter: GatewayRuntimeLocalExecFrameWriter;\n\treadonly kind: 'stderr' | 'stdout';\n\treadonly operation: GatewayRuntimeLocalExecOperation;\n\treadonly socket: Socket;\n}): Promise<void> {\n\tconst read =\n\t\tprops.kind === 'stdout'\n\t\t\t? props.operation.readStdout.bind(props.operation)\n\t\t\t: props.operation.readStderr.bind(props.operation);\n\tif (props.socket.destroyed) return;\n\tconst result = await read(MAXIMUM_STREAM_CHUNK_BYTES);\n\tif (result.kind === 'end') {\n\t\tawait props.frameWriter.write({ kind: `${props.kind}-end` });\n\t\treturn;\n\t}\n\tawait props.frameWriter.write({\n\t\tcontentBase64: Buffer.from(result.content).toString('base64'),\n\t\tkind: `${props.kind}-chunk`,\n\t});\n\tawait pumpOutput(props);\n}\n\nexport class GatewayRuntimeLocalExecTransport {\n\treadonly #helperArgv: readonly string[];\n\treadonly #reservationScheduler: GatewayRuntimeLocalExecReservationScheduler;\n\treadonly #reservationTimeoutMs: number;\n\treadonly #reservations = new Map<string, ReservationRecord>();\n\treadonly #temporaryDirectory: string;\n\n\tconstructor(options: GatewayRuntimeLocalExecTransportOptions = {}) {\n\t\tthis.#helperArgv =\n\t\t\toptions.helperArgv ??\n\t\t\tObject.freeze([\n\t\t\t\tprocess.execPath,\n\t\t\t\tfileURLToPath(\n\t\t\t\t\tnew URL(\n\t\t\t\t\t\t'./gateway-runtime-local-exec/gateway-runtime-local-exec-helper.js',\n\t\t\t\t\t\timport.meta.url,\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t]);\n\t\tif (this.#helperArgv.length === 0)\n\t\t\tthrow new TypeError('Local exec helper argv cannot be empty.');\n\t\tthis.#reservationScheduler = options.reservationScheduler ?? defaultReservationScheduler;\n\t\tthis.#reservationTimeoutMs = validateReservationTimeout(\n\t\t\toptions.reservationTimeoutMs ?? DEFAULT_RESERVATION_TIMEOUT_MS,\n\t\t);\n\t\tthis.#temporaryDirectory = options.temporaryDirectory ?? DEFAULT_TEMPORARY_DIRECTORY;\n\t}\n\n\tasync reserve(operation: GatewayRuntimeLocalExecOperation): Promise<GatewayRuntimeLocalExecSpec> {\n\t\tconst reservationId = randomBytes(16).toString('hex');\n\t\tconst token = randomBytes(32).toString('base64url');\n\t\tconst reservationDirectory = await mkdtemp(\n\t\t\tjoin(this.#temporaryDirectory, 'agent-vm-local-exec-'),\n\t\t);\n\t\tawait chmod(reservationDirectory, 0o700);\n\t\tconst socketPath = join(reservationDirectory, 'relay.sock');\n\t\tconst server = createServer();\n\t\tconst expiry = this.#reservationScheduler.schedule(() => {\n\t\t\tvoid this.#expireReservation(reservationId).catch(() => undefined);\n\t\t}, this.#reservationTimeoutMs);\n\t\tconst reservation: ReservationRecord = {\n\t\t\tcancelExpiry: expiry.cancel,\n\t\t\tconsumed: false,\n\t\t\tfinalized: false,\n\t\t\toperation,\n\t\t\treservationDirectory,\n\t\t\treservationId,\n\t\t\tserver,\n\t\t\tsocketPath,\n\t\t\ttoken,\n\t\t};\n\t\tthis.#reservations.set(reservationId, reservation);\n\t\tserver.on('connection', (socket) => this.#acceptConnection(reservation, socket));\n\t\ttry {\n\t\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\t\tserver.once('error', reject);\n\t\t\t\tserver.listen(socketPath, () => {\n\t\t\t\t\tserver.off('error', reject);\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t\t});\n\t\t\tawait chmod(socketPath, 0o600);\n\t\t} catch (error: unknown) {\n\t\t\tawait this.#disposeReservation(reservation, true);\n\t\t\tthrow error;\n\t\t}\n\t\treturn {\n\t\t\targv: [...this.#helperArgv],\n\t\t\tenv: {\n\t\t\t\t[GATEWAY_RUNTIME_LOCAL_EXEC_SOCKET_ENV]: socketPath,\n\t\t\t\t[GATEWAY_RUNTIME_LOCAL_EXEC_TOKEN_ENV]: token,\n\t\t\t},\n\t\t\tfinalizeToken: { kind: 'gateway-runtime-local-exec', reservationId },\n\t\t\tstdinMode: 'pipe-open',\n\t\t};\n\t}\n\n\tasync finalize(token: unknown): Promise<void> {\n\t\tconst reservationId =\n\t\t\ttypeof token === 'object' && token !== null ? Reflect.get(token, 'reservationId') : undefined;\n\t\tif (\n\t\t\ttypeof token !== 'object' ||\n\t\t\ttoken === null ||\n\t\t\tReflect.get(token, 'kind') !== 'gateway-runtime-local-exec' ||\n\t\t\ttypeof reservationId !== 'string'\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst reservation = this.#reservations.get(reservationId);\n\t\tif (reservation === undefined) return;\n\t\tawait this.#disposeReservation(reservation, !reservation.consumed);\n\t}\n\n\tasync close(): Promise<void> {\n\t\tawait Promise.all(\n\t\t\t[...this.#reservations.values()].map(\n\t\t\t\tasync (reservation) => await this.#disposeReservation(reservation, true),\n\t\t\t),\n\t\t);\n\t}\n\n\tasync #expireReservation(reservationId: string): Promise<void> {\n\t\tconst reservation = this.#reservations.get(reservationId);\n\t\tif (reservation === undefined || reservation.consumed) return;\n\t\tawait this.#disposeReservation(reservation, true);\n\t}\n\n\t#acceptConnection(reservation: ReservationRecord, socket: Socket): void {\n\t\tif (reservation.finalized || reservation.consumed) {\n\t\t\tvoid writeFrame(socket, {\n\t\t\t\tkind: 'rejected',\n\t\t\t\tmessage: 'Reservation already consumed.',\n\t\t\t})\n\t\t\t\t.catch(() => undefined)\n\t\t\t\t.finally(() => socket.destroy());\n\t\t\treturn;\n\t\t}\n\t\tconst decoder = new GatewayRuntimeLocalExecLineDecoder();\n\t\tconst connectionState = { authenticated: false };\n\t\tsocket.once('close', () => {\n\t\t\tif (connectionState.authenticated && !reservation.finalized) {\n\t\t\t\tvoid this.#disposeReservation(reservation, true).catch(() => undefined);\n\t\t\t}\n\t\t});\n\t\tsocket.on('data', (chunk: Buffer) => {\n\t\t\tsocket.pause();\n\t\t\tvoid this.#processClientFrames({\n\t\t\t\tchunk,\n\t\t\t\tconnectionState,\n\t\t\t\tdecoder,\n\t\t\t\treservation,\n\t\t\t\tsocket,\n\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (!socket.destroyed) socket.resume();\n\t\t\t\t})\n\t\t\t\t.catch((error: unknown) => {\n\t\t\t\t\tvoid writeFrame(socket, {\n\t\t\t\t\t\tkind: 'rejected',\n\t\t\t\t\t\tmessage: error instanceof Error ? error.message : 'Invalid local exec frame.',\n\t\t\t\t\t})\n\t\t\t\t\t\t.catch(() => undefined)\n\t\t\t\t\t\t.finally(() => socket.destroy());\n\t\t\t\t});\n\t\t});\n\t}\n\n\tasync #processClientFrames(props: {\n\t\treadonly chunk: Buffer;\n\t\treadonly connectionState: { authenticated: boolean };\n\t\treadonly decoder: GatewayRuntimeLocalExecLineDecoder;\n\t\treadonly reservation: ReservationRecord;\n\t\treadonly socket: Socket;\n\t}): Promise<void> {\n\t\t// oxlint-disable no-await-in-loop -- input frames must preserve order and backpressure.\n\t\tfor (const line of props.decoder.push(props.chunk)) {\n\t\t\tconst frame = parseGatewayRuntimeLocalExecClientFrame(line);\n\t\t\tif (!props.connectionState.authenticated) {\n\t\t\t\tif (\n\t\t\t\t\tframe.kind !== 'authenticate' ||\n\t\t\t\t\tframe.token !== props.reservation.token ||\n\t\t\t\t\tprops.reservation.consumed\n\t\t\t\t) {\n\t\t\t\t\tawait writeFrame(props.socket, {\n\t\t\t\t\t\tkind: 'rejected',\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\tframe.kind === 'authenticate' && frame.token === props.reservation.token\n\t\t\t\t\t\t\t\t? 'Reservation already consumed.'\n\t\t\t\t\t\t\t\t: 'Invalid reservation token.',\n\t\t\t\t\t});\n\t\t\t\t\tprops.socket.destroy();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tprops.connectionState.authenticated = true;\n\t\t\t\tprops.reservation.consumed = true;\n\t\t\t\tprops.reservation.cancelExpiry();\n\t\t\t\tprops.reservation.socket = props.socket;\n\t\t\t\tprops.reservation.server.close();\n\t\t\t\tawait writeFrame(props.socket, { kind: 'accepted' });\n\t\t\t\tvoid this.#runAuthenticatedOperation(props.reservation, props.socket).catch(\n\t\t\t\t\t() => undefined,\n\t\t\t\t);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tswitch (frame.kind) {\n\t\t\t\tcase 'authenticate':\n\t\t\t\t\tthrow new GatewayRuntimeLocalExecProtocolError('Duplicate authentication frame.');\n\t\t\t\tcase 'cancel':\n\t\t\t\t\tawait props.reservation.operation.cancel();\n\t\t\t\t\treturn;\n\t\t\t\tcase 'stdin-chunk':\n\t\t\t\t\tawait props.reservation.operation.writeStdin(Buffer.from(frame.contentBase64, 'base64'));\n\t\t\t\t\tcontinue;\n\t\t\t\tcase 'stdin-end':\n\t\t\t\t\tawait props.reservation.operation.closeStdin();\n\t\t\t\t\tcontinue;\n\t\t\t\tcase 'terminal-resize':\n\t\t\t\t\tif (props.reservation.operation.resizeTerminal === undefined) {\n\t\t\t\t\t\tthrow new GatewayRuntimeLocalExecProtocolError('Terminal resize is unavailable.');\n\t\t\t\t\t}\n\t\t\t\t\tawait props.reservation.operation.resizeTerminal({\n\t\t\t\t\t\tcolumns: frame.columns,\n\t\t\t\t\t\trows: frame.rows,\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// oxlint-enable no-await-in-loop\n\t}\n\n\tasync #runAuthenticatedOperation(reservation: ReservationRecord, socket: Socket): Promise<void> {\n\t\ttry {\n\t\t\tconst frameWriter = new GatewayRuntimeLocalExecFrameWriter(socket);\n\t\t\tconst [waitResult] = await Promise.all([\n\t\t\t\treservation.operation.wait(),\n\t\t\t\tpumpOutput({ frameWriter, kind: 'stdout', operation: reservation.operation, socket }),\n\t\t\t\tpumpOutput({ frameWriter, kind: 'stderr', operation: reservation.operation, socket }),\n\t\t\t]);\n\t\t\tif (!socket.destroyed) {\n\t\t\t\tawait frameWriter.write({ exitCode: waitResult.exitCode, kind: 'exited' });\n\t\t\t\tawait endSocket(socket);\n\t\t\t}\n\t\t} catch {\n\t\t\tsocket.destroy();\n\t\t} finally {\n\t\t\tawait this.#disposeReservation(reservation, false);\n\t\t}\n\t}\n\n\tasync #disposeReservation(reservation: ReservationRecord, cancel: boolean): Promise<void> {\n\t\tif (reservation.disposal !== undefined) return await reservation.disposal;\n\t\treservation.disposal = this.#disposeReservationOnce(reservation, cancel);\n\t\tawait reservation.disposal;\n\t}\n\n\tasync #disposeReservationOnce(reservation: ReservationRecord, cancel: boolean): Promise<void> {\n\t\tif (reservation.finalized) return;\n\t\treservation.finalized = true;\n\t\treservation.cancelExpiry();\n\t\tlet cancellationError: unknown;\n\t\tif (cancel) {\n\t\t\ttry {\n\t\t\t\tawait reservation.operation.cancel();\n\t\t\t} catch (error: unknown) {\n\t\t\t\tcancellationError = error;\n\t\t\t}\n\t\t}\n\t\tlet cleanupError: unknown;\n\t\ttry {\n\t\t\treservation.socket?.destroy();\n\t\t\tawait closeServer(reservation.server).catch(() => undefined);\n\t\t\tawait rm(reservation.reservationDirectory, { force: true, recursive: true });\n\t\t} catch (error: unknown) {\n\t\t\tcleanupError = error;\n\t\t} finally {\n\t\t\tthis.#reservations.delete(reservation.reservationId);\n\t\t}\n\t\tif (cancellationError !== undefined && cleanupError !== undefined) {\n\t\t\tthrow new AggregateError(\n\t\t\t\t[cancellationError, cleanupError],\n\t\t\t\t'Local exec cancellation and cleanup both failed.',\n\t\t\t);\n\t\t}\n\t\tif (cancellationError !== undefined) throw cancellationError;\n\t\tif (cleanupError !== undefined) throw cleanupError;\n\t}\n}\n"],"mappings":"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"}