@agent-vm/agent-portal-sdk 0.0.141 → 0.0.143

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 (120) hide show
  1. package/contract-fixtures/portable-contracts/approval/decision-request-approved.fixture.json +18 -0
  2. package/contract-fixtures/portable-contracts/approval/decision-result-recorded.fixture.json +18 -0
  3. package/contract-fixtures/portable-contracts/approval/presentation-outcome-approved.fixture.json +16 -0
  4. package/contract-fixtures/portable-contracts/approval/presentation-request.fixture.json +32 -0
  5. package/contract-fixtures/portable-contracts/discovery/describe-result.fixture.json +7 -3
  6. package/contract-fixtures/portable-contracts/discovery/list-result.fixture.json +15 -3
  7. package/contract-fixtures/portable-contracts/discovery/search-result.fixture.json +7 -3
  8. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-hermes-valid.fixture.json +7 -4
  9. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-long-namespace-name.fixture.json +13 -6
  10. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-namespace-names-code-point-order.fixture.json +7 -4
  11. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-namespace-names-code-point-reverse.fixture.json +6 -3
  12. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-namespace-names-duplicate.fixture.json +6 -3
  13. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-namespace-names-unsorted.fixture.json +6 -3
  14. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-old-authority-rejected.fixture.json +5 -2
  15. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-openclaw-valid.fixture.json +7 -4
  16. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-self-root-rejected.fixture.json +5 -2
  17. package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-work-root-rejected.fixture.json +5 -2
  18. package/dist/adapter-boundary/index.d.ts +1 -1
  19. package/dist/approval-surface/index.d.ts +2 -2
  20. package/dist/approval-surface/index.js +2 -2
  21. package/dist/approval-surface-Cqk_hAtN.js +132 -0
  22. package/dist/approval-surface-Cqk_hAtN.js.map +1 -0
  23. package/dist/artifact-surface/index.d.ts +1 -1
  24. package/dist/artifact-surface/index.js +1 -1
  25. package/dist/{artifact-surface-BIDasG5x.js → artifact-surface-CHEu4tDd.js} +2 -2
  26. package/dist/{artifact-surface-BIDasG5x.js.map → artifact-surface-CHEu4tDd.js.map} +1 -1
  27. package/dist/capability-description-surface/index.d.ts +1 -1
  28. package/dist/capability-description-surface/index.js +2 -2
  29. package/dist/capability-description-surface-CplIb93y.js +2 -0
  30. package/dist/{capability-descriptor-schema-DmzUtpji.js → capability-descriptor-schema-v9tj7yKr.js} +2 -2
  31. package/dist/{capability-descriptor-schema-DmzUtpji.js.map → capability-descriptor-schema-v9tj7yKr.js.map} +1 -1
  32. package/dist/cli/tool-portal.js +6 -6
  33. package/dist/contracts/index.d.ts +1 -1
  34. package/dist/contracts/index.js +1 -1
  35. package/dist/{contracts-3pjrcMjD.js → contracts-mBPxCxoG.js} +15 -14
  36. package/dist/{contracts-3pjrcMjD.js.map → contracts-mBPxCxoG.js.map} +1 -1
  37. package/dist/gateway-runtime-client/index.d.ts +11 -4
  38. package/dist/gateway-runtime-client/index.d.ts.map +1 -1
  39. package/dist/gateway-runtime-client/index.js +22 -5
  40. package/dist/gateway-runtime-client/index.js.map +1 -1
  41. package/dist/gateway-runtime-local-exec/gateway-runtime-local-exec-helper.js +1 -1
  42. package/dist/gateway-runtime-local-exec/index.js +1 -1
  43. package/dist/{gateway-runtime-local-exec-transport-DjxMXdT9.js → gateway-runtime-local-exec-transport-CO2bQ3wz.js} +1 -1
  44. package/dist/{gateway-runtime-local-exec-transport-DjxMXdT9.js.map → gateway-runtime-local-exec-transport-CO2bQ3wz.js.map} +1 -1
  45. package/dist/{index-D8uVfMBv.d.ts → index-BIvLq827.d.ts} +2 -2
  46. package/dist/{index-D8uVfMBv.d.ts.map → index-BIvLq827.d.ts.map} +1 -1
  47. package/dist/{index-BgKPbuap.d.ts → index-Badq9e6i.d.ts} +1 -1
  48. package/dist/{index-BgKPbuap.d.ts.map → index-Badq9e6i.d.ts.map} +1 -1
  49. package/dist/{index-DqMFYBbN.d.ts → index-C-QFWaH5.d.ts} +39 -6
  50. package/dist/index-C-QFWaH5.d.ts.map +1 -0
  51. package/dist/{index-B_xYdo3v.d.ts → index-DDLN0DE_.d.ts} +2 -2
  52. package/dist/{index-B_xYdo3v.d.ts.map → index-DDLN0DE_.d.ts.map} +1 -1
  53. package/dist/{index-B_FqoejO.d.ts → index-DTTEu7ZT.d.ts} +1 -1
  54. package/dist/{index-B_FqoejO.d.ts.map → index-DTTEu7ZT.d.ts.map} +1 -1
  55. package/dist/{index-BQ12JshX.d.ts → index-DZJH4Rau.d.ts} +1 -1
  56. package/dist/{index-BQ12JshX.d.ts.map → index-DZJH4Rau.d.ts.map} +1 -1
  57. package/dist/index-D_69tlLY.d.ts +29 -0
  58. package/dist/index-D_69tlLY.d.ts.map +1 -0
  59. package/dist/{index-yuB9HEo-.d.ts → index-S5RZg56U.d.ts} +4 -4
  60. package/dist/{index-yuB9HEo-.d.ts.map → index-S5RZg56U.d.ts.map} +1 -1
  61. package/dist/index-ex2lEawY.d.ts +124 -0
  62. package/dist/index-ex2lEawY.d.ts.map +1 -0
  63. package/dist/{index-C5NhyO2R.d.ts → index-tmZkznV6.d.ts} +5 -2
  64. package/dist/{index-C5NhyO2R.d.ts.map → index-tmZkznV6.d.ts.map} +1 -1
  65. package/dist/index.d.ts +12 -12
  66. package/dist/index.js +16 -15
  67. package/dist/{json-value-schema-BGfMDOGA.js → json-value-schema-Br5M7d7X.js} +2 -2
  68. package/dist/{json-value-schema-BGfMDOGA.js.map → json-value-schema-Br5M7d7X.js.map} +1 -1
  69. package/dist/{json-value-schema-C-87ATB3.d.ts → json-value-schema-CwDmttWU.d.ts} +1 -1
  70. package/dist/{json-value-schema-C-87ATB3.d.ts.map → json-value-schema-CwDmttWU.d.ts.map} +1 -1
  71. package/dist/namespace-discovery-schema-DwbJHVLu.js +21 -0
  72. package/dist/namespace-discovery-schema-DwbJHVLu.js.map +1 -0
  73. package/dist/{node-tool-portal-mcp-transport-CnB8MCW2.js → node-tool-portal-mcp-transport-xFo0i37Q.js} +1 -1
  74. package/dist/{node-tool-portal-mcp-transport-CnB8MCW2.js.map → node-tool-portal-mcp-transport-xFo0i37Q.js.map} +1 -1
  75. package/dist/portable-contracts/index.d.ts +1 -1
  76. package/dist/portable-contracts/index.js +2 -2
  77. package/dist/{portable-contracts-C5rtqe-H.js → portable-contracts-CKeFnjAA.js} +28 -11
  78. package/dist/portable-contracts-CKeFnjAA.js.map +1 -0
  79. package/dist/{portable-refinement-authoring-CvlKRs_Z.js → portable-refinement-authoring-C1Q92x2G.js} +29 -6
  80. package/dist/portable-refinement-authoring-C1Q92x2G.js.map +1 -0
  81. package/dist/{portal-call-request-schema-DYxcWijW.js → portal-call-request-schema-Cl0kTLaX.js} +4 -4
  82. package/dist/{portal-call-request-schema-DYxcWijW.js.map → portal-call-request-schema-Cl0kTLaX.js.map} +1 -1
  83. package/dist/{portal-call-result-schema-CVWMGu2y.js → portal-call-result-schema-B25_rzZZ.js} +20 -10
  84. package/dist/portal-call-result-schema-B25_rzZZ.js.map +1 -0
  85. package/dist/{portal-call-result-schema-DalyNrfW.d.ts → portal-call-result-schema-DIg2ERl4.d.ts} +1025 -59
  86. package/dist/portal-call-result-schema-DIg2ERl4.d.ts.map +1 -0
  87. package/dist/portal-call-surface/index.d.ts +3 -3
  88. package/dist/portal-call-surface/index.js +5 -5
  89. package/dist/{portal-call-surface-B_oQxm5X.js → portal-call-surface-qykVz_8k.js} +6 -6
  90. package/dist/{portal-call-surface-B_oQxm5X.js.map → portal-call-surface-qykVz_8k.js.map} +1 -1
  91. package/dist/{portal-error-schema-BCALC7xt.js → portal-error-schema-TSNrpQSy.js} +1 -1
  92. package/dist/{portal-error-schema-BCALC7xt.js.map → portal-error-schema-TSNrpQSy.js.map} +1 -1
  93. package/dist/portal-event-surface/index.d.ts +1 -1
  94. package/dist/portal-event-surface/index.js +2 -2
  95. package/dist/{portal-event-surface-DSWv7Kgi.js → portal-event-surface-Bp3rXsBz.js} +3 -3
  96. package/dist/{portal-event-surface-DSWv7Kgi.js.map → portal-event-surface-Bp3rXsBz.js.map} +1 -1
  97. package/dist/{request-id-schema-DGLLX-tp.js → request-id-schema-Hq_6lSFV.js} +2 -2
  98. package/dist/{request-id-schema-DGLLX-tp.js.map → request-id-schema-Hq_6lSFV.js.map} +1 -1
  99. package/dist/testing/index.d.ts +2 -2
  100. package/dist/testing/index.js +2 -2
  101. package/dist/tool-portal-mcp-client/index.d.ts +1 -1
  102. package/dist/tool-portal-mcp-client/index.js +1 -1
  103. package/dist/tool-portal-mcp-client/node-tool-portal-mcp-transport.d.ts +1 -1
  104. package/dist/tool-portal-mcp-client/node-tool-portal-mcp-transport.js +1 -1
  105. package/dist/{tool-portal-mcp-client-nMGxqQ-A.js → tool-portal-mcp-client-DZoloMod.js} +5 -5
  106. package/dist/{tool-portal-mcp-client-nMGxqQ-A.js.map → tool-portal-mcp-client-DZoloMod.js.map} +1 -1
  107. package/package.json +1 -1
  108. package/portable-contract-schema-manifest.json +275 -9
  109. package/dist/approval-surface-z5JUqa0K.js +0 -20
  110. package/dist/approval-surface-z5JUqa0K.js.map +0 -1
  111. package/dist/capability-description-surface-CyPgad9d.js +0 -2
  112. package/dist/index-BqWw914Z.d.ts +0 -64
  113. package/dist/index-BqWw914Z.d.ts.map +0 -1
  114. package/dist/index-DqMFYBbN.d.ts.map +0 -1
  115. package/dist/index-dKXgrOwm.d.ts +0 -17
  116. package/dist/index-dKXgrOwm.d.ts.map +0 -1
  117. package/dist/portable-contracts-C5rtqe-H.js.map +0 -1
  118. package/dist/portable-refinement-authoring-CvlKRs_Z.js.map +0 -1
  119. package/dist/portal-call-result-schema-CVWMGu2y.js.map +0 -1
  120. package/dist/portal-call-result-schema-DalyNrfW.d.ts.map +0 -1
@@ -127,6 +127,28 @@ const PORTABLE_REFINEMENT_DESCRIPTORS = [
127
127
  values: { "/requests/*/schemaDetail": "summary" }
128
128
  }
129
129
  },
130
+ {
131
+ description: "Gateway approval argument previews remain inside the portable UTF-8 byte bound.",
132
+ errorCode: "gateway.approval.arguments-preview.above-maximum",
133
+ identity: "gateway.approval.arguments-preview.utf8-bytes",
134
+ kind: "structural-validation",
135
+ operation: {
136
+ fieldNames: ["argumentsPreview"],
137
+ kind: "maximum-utf8-bytes",
138
+ maximum: 4096
139
+ }
140
+ },
141
+ {
142
+ description: "Namespace discovery summaries remain inside the portable Unicode code-point bound.",
143
+ errorCode: "portal.namespace-discovery.summary-above-maximum",
144
+ identity: "portal.namespace-discovery.summary-code-points",
145
+ kind: "structural-validation",
146
+ operation: {
147
+ fieldNames: ["summary"],
148
+ kind: "maximum-code-points",
149
+ maximum: 500
150
+ }
151
+ },
130
152
  {
131
153
  description: "Gateway attachment metadata cannot repeat an admitted agent identity.",
132
154
  errorCode: "gateway.attachment.duplicate-agent-id",
@@ -138,13 +160,14 @@ const PORTABLE_REFINEMENT_DESCRIPTORS = [
138
160
  }
139
161
  },
140
162
  {
141
- description: "Managed Agent Projection namespace names must be sorted and unique.",
142
- errorCode: "gateway.managed-agent-projection.namespace-names",
143
- identity: "gateway.managed-agent-projection.namespace-names",
163
+ description: "Managed Agent Projection namespaces must be sorted and unique by namespace.",
164
+ errorCode: "gateway.managed-agent-projection.namespaces",
165
+ identity: "gateway.managed-agent-projection.namespaces",
144
166
  kind: "cross-field-validation",
145
167
  operation: {
146
- kind: "sorted-unique-string-items",
147
- path: "toolPortalNamespaceNames"
168
+ fieldName: "namespace",
169
+ kind: "sorted-unique-object-field-items",
170
+ path: "toolPortalNamespaces"
148
171
  }
149
172
  },
150
173
  {
@@ -203,4 +226,4 @@ function portableRefinementIdentityForCheck(check) {
203
226
  //#endregion
204
227
  export { PORTABLE_REFINEMENT_IDENTITIES as i, withPortableSuperRefinement as n, PORTABLE_REFINEMENT_DESCRIPTORS as r, portableRefinementIdentityForCheck as t };
205
228
 
206
- //# sourceMappingURL=portable-refinement-authoring-CvlKRs_Z.js.map
229
+ //# sourceMappingURL=portable-refinement-authoring-C1Q92x2G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portable-refinement-authoring-C1Q92x2G.js","names":[],"sources":["../src/portable-contracts/portable-refinement-descriptors.ts","../src/portable-contracts/portable-refinement-authoring.ts"],"sourcesContent":["export type PortableRefinementKind =\n\t| 'canonical-normalization'\n\t| 'cross-field-validation'\n\t| 'default'\n\t| 'structural-validation';\n\nexport type PortableRefinementOperation =\n\t| {\n\t\t\treadonly kind: 'aggregate-status';\n\t\t\treadonly itemsField: string;\n\t\t\treadonly okField: string;\n\t }\n\t| { readonly kind: 'decoded-base64-byte-length' }\n\t| {\n\t\t\treadonly collectionPaths: readonly string[];\n\t\t\treadonly fieldName: string;\n\t\t\treadonly kind: 'unique-field';\n\t }\n\t| {\n\t\t\treadonly kind: 'default-values';\n\t\t\treadonly values: Readonly<Record<string, boolean | number | string>>;\n\t }\n\t| {\n\t\t\treadonly kind: 'canonical-json';\n\t\t\treadonly maximumArrayItems: number;\n\t\t\treadonly maximumObjectEntries: number;\n\t\t\treadonly maximumObjectKeyCharacters: number;\n\t\t\treadonly maximumStringCharacters: number;\n\t }\n\t| {\n\t\t\treadonly kind: 'maximum-object-entries';\n\t\t\treadonly maximum: number;\n\t }\n\t| {\n\t\t\treadonly fieldNames: readonly string[];\n\t\t\treadonly kind: 'maximum-code-points';\n\t\t\treadonly maximum: number;\n\t }\n\t| {\n\t\t\treadonly fieldNames: readonly string[];\n\t\t\treadonly kind: 'maximum-utf8-bytes';\n\t\t\treadonly maximum: number;\n\t }\n\t| {\n\t\t\treadonly fieldNames: readonly string[];\n\t\t\treadonly kind: 'reject-reserved-values';\n\t\t\treadonly values: readonly string[];\n\t }\n\t| {\n\t\t\treadonly kind: 'safe-integer';\n\t\t\treadonly maximum: number;\n\t\t\treadonly minimum: number;\n\t }\n\t| {\n\t\t\treadonly fieldName: string;\n\t\t\treadonly kind: 'sorted-unique-object-field-items';\n\t\t\treadonly path: string;\n\t }\n\t| { readonly kind: 'sorted-unique-string-items'; readonly path: string }\n\t| { readonly kind: 'terminal-outcome-algebra' }\n\t| { readonly kind: 'unique-string-items'; readonly path: string }\n\t| { readonly fieldNames: readonly string[]; readonly kind: 'work-relative-path' };\n\nexport interface PortableRefinementDescriptor {\n\treadonly description: string;\n\treadonly errorCode?: string;\n\treadonly identity: string;\n\treadonly kind: PortableRefinementKind;\n\treadonly operation: PortableRefinementOperation;\n}\n\nexport const PORTABLE_REFINEMENT_DESCRIPTORS = [\n\t{\n\t\tdescription: 'Artifact reads default omitted truncation state to false.',\n\t\tidentity: 'portal.artifact-read.default-truncated',\n\t\tkind: 'default',\n\t\toperation: { kind: 'default-values', values: { '/truncated': false } },\n\t},\n\t{\n\t\tdescription: 'Every item id in one portal batch must be unique.',\n\t\terrorCode: 'portal.batch.unique-item-ids',\n\t\tidentity: 'portal.batch.unique-item-ids',\n\t\tkind: 'cross-field-validation',\n\t\toperation: { collectionPaths: ['calls', 'requests'], fieldName: 'id', kind: 'unique-field' },\n\t},\n\t{\n\t\tdescription: 'Describe requests apply the portable inclusion defaults.',\n\t\tidentity: 'portal.describe.default-includes',\n\t\tkind: 'default',\n\t\toperation: {\n\t\t\tkind: 'default-values',\n\t\t\tvalues: {\n\t\t\t\t'/requests/*/includeJsonSchema': true,\n\t\t\t\t'/requests/*/includeRelated': true,\n\t\t\t\t'/requests/*/includeTypescriptHelper': false,\n\t\t\t\t'/requests/*/includeZod': false,\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tdescription: 'JSON values use sorted object keys and normalize negative zero.',\n\t\tidentity: 'portal.json.canonical',\n\t\tkind: 'canonical-normalization',\n\t\toperation: {\n\t\t\tkind: 'canonical-json',\n\t\t\tmaximumArrayItems: 1_000,\n\t\t\tmaximumObjectEntries: 1_000,\n\t\t\tmaximumObjectKeyCharacters: 256,\n\t\t\tmaximumStringCharacters: 64 * 1_024,\n\t\t},\n\t},\n\t{\n\t\tdescription: 'JSON objects cannot contain more than one thousand entries.',\n\t\terrorCode: 'portable.object.above-maximum',\n\t\tidentity: 'portal.json.max-object-entries',\n\t\tkind: 'structural-validation',\n\t\toperation: { kind: 'maximum-object-entries', maximum: 1_000 },\n\t},\n\t{\n\t\tdescription: 'List requests default omitted limits to twenty items.',\n\t\tidentity: 'portal.list.default-limit',\n\t\tkind: 'default',\n\t\toperation: { kind: 'default-values', values: { '/requests/*/limit': 20 } },\n\t},\n\t{\n\t\tdescription: 'Portable integer values remain inside the interoperable safe-integer range.',\n\t\terrorCode: 'portable.number.unsafe-integer',\n\t\tidentity: 'portal.number.safe-integer',\n\t\tkind: 'structural-validation',\n\t\toperation: {\n\t\t\tkind: 'safe-integer',\n\t\t\tmaximum: Number.MAX_SAFE_INTEGER,\n\t\t\tminimum: Number.MIN_SAFE_INTEGER,\n\t\t},\n\t},\n\t{\n\t\tdescription: 'Portal request ids cannot use reserved object property names.',\n\t\terrorCode: 'portal.request-id.not-reserved',\n\t\tidentity: 'portal.request-id.not-reserved',\n\t\tkind: 'structural-validation',\n\t\toperation: {\n\t\t\tfieldNames: ['id', 'requestId'],\n\t\t\tkind: 'reject-reserved-values',\n\t\t\tvalues: ['__proto__', 'constructor', 'prototype'],\n\t\t},\n\t},\n\t{\n\t\tdescription: 'Aggregate success must equal the success of every result item.',\n\t\terrorCode: 'portal.result.aggregate-status',\n\t\tidentity: 'portal.result.aggregate-status',\n\t\tkind: 'cross-field-validation',\n\t\toperation: { itemsField: 'items', kind: 'aggregate-status', okField: 'ok' },\n\t},\n\t{\n\t\tdescription: 'Call results use the normative terminal outcome algebra.',\n\t\terrorCode: 'portal.result.outcome-algebra',\n\t\tidentity: 'portal.result.outcome-algebra',\n\t\tkind: 'structural-validation',\n\t\toperation: { kind: 'terminal-outcome-algebra' },\n\t},\n\t{\n\t\tdescription: 'Search requests default omitted limits to ten items.',\n\t\tidentity: 'portal.search.default-limit',\n\t\tkind: 'default',\n\t\toperation: { kind: 'default-values', values: { '/requests/*/limit': 10 } },\n\t},\n\t{\n\t\tdescription: 'Search requests default omitted schema detail to summary.',\n\t\tidentity: 'portal.search.default-schema-detail',\n\t\tkind: 'default',\n\t\toperation: {\n\t\t\tkind: 'default-values',\n\t\t\tvalues: { '/requests/*/schemaDetail': 'summary' },\n\t\t},\n\t},\n\t{\n\t\tdescription: 'Gateway approval argument previews remain inside the portable UTF-8 byte bound.',\n\t\terrorCode: 'gateway.approval.arguments-preview.above-maximum',\n\t\tidentity: 'gateway.approval.arguments-preview.utf8-bytes',\n\t\tkind: 'structural-validation',\n\t\toperation: { fieldNames: ['argumentsPreview'], kind: 'maximum-utf8-bytes', maximum: 4_096 },\n\t},\n\t{\n\t\tdescription:\n\t\t\t'Namespace discovery summaries remain inside the portable Unicode code-point bound.',\n\t\terrorCode: 'portal.namespace-discovery.summary-above-maximum',\n\t\tidentity: 'portal.namespace-discovery.summary-code-points',\n\t\tkind: 'structural-validation',\n\t\toperation: { fieldNames: ['summary'], kind: 'maximum-code-points', maximum: 500 },\n\t},\n\t{\n\t\tdescription: 'Gateway attachment metadata cannot repeat an admitted agent identity.',\n\t\terrorCode: 'gateway.attachment.duplicate-agent-id',\n\t\tidentity: 'gateway.attachment.unique-agent-ids',\n\t\tkind: 'cross-field-validation',\n\t\toperation: { kind: 'unique-string-items', path: 'configuredAgentIds' },\n\t},\n\t{\n\t\tdescription: 'Managed Agent Projection namespaces must be sorted and unique by namespace.',\n\t\terrorCode: 'gateway.managed-agent-projection.namespaces',\n\t\tidentity: 'gateway.managed-agent-projection.namespaces',\n\t\tkind: 'cross-field-validation',\n\t\toperation: {\n\t\t\tfieldName: 'namespace',\n\t\t\tkind: 'sorted-unique-object-field-items',\n\t\t\tpath: 'toolPortalNamespaces',\n\t\t},\n\t},\n\t{\n\t\tdescription: 'Binary chunk byte length equals the decoded canonical base64 payload length.',\n\t\terrorCode: 'sandbox.binary-chunk.byte-length-mismatch',\n\t\tidentity: 'sandbox.binary-chunk.byte-length',\n\t\tkind: 'cross-field-validation',\n\t\toperation: { kind: 'decoded-base64-byte-length' },\n\t},\n\t{\n\t\tdescription: 'Direct Sandbox environment variable names must be unique.',\n\t\terrorCode: 'sandbox.environment-variable.duplicate-name',\n\t\tidentity: 'sandbox.environment-variable.unique-names',\n\t\tkind: 'cross-field-validation',\n\t\toperation: {\n\t\t\tcollectionPaths: ['environmentVariables'],\n\t\t\tfieldName: 'name',\n\t\t\tkind: 'unique-field',\n\t\t},\n\t},\n\t{\n\t\tdescription: 'Sandbox paths are relative to the server-selected work root.',\n\t\terrorCode: 'sandbox.path.not-work-relative',\n\t\tidentity: 'sandbox.path.work-relative',\n\t\tkind: 'structural-validation',\n\t\toperation: {\n\t\t\tfieldNames: ['destinationPath', 'logicalCwd', 'path', 'sourcePath'],\n\t\t\tkind: 'work-relative-path',\n\t\t},\n\t},\n] as const satisfies readonly PortableRefinementDescriptor[];\n\nexport const PORTABLE_REFINEMENT_IDENTITIES: readonly string[] =\n\tPORTABLE_REFINEMENT_DESCRIPTORS.map((descriptor) => descriptor.identity).toSorted(\n\t\t(leftIdentity, rightIdentity) => leftIdentity.localeCompare(rightIdentity),\n\t);\n","import type { z } from 'zod';\n\nimport { PORTABLE_REFINEMENT_DESCRIPTORS } from './portable-refinement-descriptors.js';\n\nconst portableRefinementIdentities: ReadonlySet<string> = new Set(\n\tPORTABLE_REFINEMENT_DESCRIPTORS.map((descriptor) => descriptor.identity),\n);\nconst portableRefinementIdentityByCheck = new WeakMap<object, string>();\n\nexport interface PortableSuperRefinementProps<TSchema extends z.ZodType> {\n\treadonly refinement: (value: z.output<TSchema>, context: z.RefinementCtx) => void;\n\treadonly refinementIdentity: string;\n\treadonly schema: TSchema;\n}\n\nexport function withPortableSuperRefinement<TSchema extends z.ZodType>(\n\tprops: PortableSuperRefinementProps<TSchema>,\n): TSchema {\n\tif (!portableRefinementIdentities.has(props.refinementIdentity)) {\n\t\tthrow new Error(`Portable refinement ${props.refinementIdentity} is not registered.`);\n\t}\n\t// oxlint-disable-next-line no-underscore-dangle -- Zod v4 exposes schema definitions through its library-author core contract.\n\tconst existingChecks = new Set(props.schema._zod.def.checks ?? []);\n\tconst refinedSchema = props.schema.superRefine(props.refinement);\n\t// oxlint-disable-next-line no-underscore-dangle -- Match the one check added by the named authoring helper.\n\tconst addedChecks = (refinedSchema._zod.def.checks ?? []).filter(\n\t\t(check) => !existingChecks.has(check),\n\t);\n\tif (addedChecks.length !== 1) {\n\t\tthrow new Error(\n\t\t\t`Portable refinement ${props.refinementIdentity} must add exactly one Zod check.`,\n\t\t);\n\t}\n\tconst addedCheck = addedChecks[0];\n\tif (addedCheck === undefined) {\n\t\tthrow new Error(`Portable refinement ${props.refinementIdentity} added no Zod check.`);\n\t}\n\tportableRefinementIdentityByCheck.set(addedCheck, props.refinementIdentity);\n\treturn refinedSchema;\n}\n\nexport function portableRefinementIdentityForCheck(check: object): string | undefined {\n\treturn portableRefinementIdentityByCheck.get(check);\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { n as withPortableSuperRefinement } from "./portable-refinement-authoring-CvlKRs_Z.js";
2
- import { n as RequestIdSchema } from "./request-id-schema-DGLLX-tp.js";
3
- import { i as JsonObjectSchema } from "./json-value-schema-BGfMDOGA.js";
1
+ import { n as withPortableSuperRefinement } from "./portable-refinement-authoring-C1Q92x2G.js";
2
+ import { n as RequestIdSchema } from "./request-id-schema-Hq_6lSFV.js";
3
+ import { i as JsonObjectSchema } from "./json-value-schema-Br5M7d7X.js";
4
4
  import { z } from "zod";
5
5
  //#region src/portal-call-surface/models/portal-batch-id-refinement.ts
6
6
  function addDuplicateItemIdIssues(items, context) {
@@ -38,4 +38,4 @@ const PortalCallRequestSchema = withPortableSuperRefinement({
38
38
  //#endregion
39
39
  export { addDuplicateItemIdIssues as i, PortalCallItemRequestSchema as n, PortalCallRequestSchema as r, PortalBatchMaxItems as t };
40
40
 
41
- //# sourceMappingURL=portal-call-request-schema-DYxcWijW.js.map
41
+ //# sourceMappingURL=portal-call-request-schema-Cl0kTLaX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"portal-call-request-schema-DYxcWijW.js","names":[],"sources":["../src/portal-call-surface/models/portal-batch-id-refinement.ts","../src/portal-call-surface/models/portal-call-request-schema.ts"],"sourcesContent":["import type { z } from 'zod';\n\nexport interface PortalBatchItemWithId {\n\treadonly id: string;\n}\n\nexport function addDuplicateItemIdIssues(\n\titems: readonly PortalBatchItemWithId[],\n\tcontext: z.RefinementCtx,\n): void {\n\tconst seenIds = new Set<string>();\n\tconst duplicateIds = new Set<string>();\n\tfor (const item of items) {\n\t\tif (seenIds.has(item.id)) {\n\t\t\tduplicateIds.add(item.id);\n\t\t}\n\t\tseenIds.add(item.id);\n\t}\n\tfor (const duplicateId of [...duplicateIds].toSorted()) {\n\t\tcontext.addIssue({\n\t\t\tcode: 'custom',\n\t\t\tmessage: `Duplicate portal item id \"${duplicateId}\".`,\n\t\t\tpath: ['id'],\n\t\t});\n\t}\n}\n","import { z } from 'zod';\n\nimport { JsonObjectSchema } from '../../contract-primitives/models/json-value-schema.js';\nimport { RequestIdSchema } from '../../contract-primitives/models/request-id-schema.js';\nimport { withPortableSuperRefinement } from '../../portable-contracts/portable-refinement-authoring.js';\nimport { addDuplicateItemIdIssues } from './portal-batch-id-refinement.js';\n\nexport const PortalBatchMaxItems = 50;\n\nexport const PortalCallItemRequestSchema = z\n\t.object({\n\t\targuments: JsonObjectSchema,\n\t\tid: RequestIdSchema,\n\t\tnamespace: z.string().min(1),\n\t\tname: z.string().min(1),\n\t})\n\t.strict();\n\nexport const PortalCallRequestSchema = withPortableSuperRefinement({\n\trefinement: (request, context) => {\n\t\taddDuplicateItemIdIssues(request.calls, context);\n\t},\n\trefinementIdentity: 'portal.batch.unique-item-ids',\n\tschema: z\n\t\t.object({\n\t\t\tcalls: z.array(PortalCallItemRequestSchema).min(1).max(PortalBatchMaxItems),\n\t\t\trequestId: RequestIdSchema.optional(),\n\t\t})\n\t\t.strict(),\n});\n\nexport type PortalCallRequest = z.infer<typeof PortalCallRequestSchema>;\n"],"mappings":";;;;;AAMA,SAAgB,yBACf,OACA,SACO;CACP,MAAM,0BAAU,IAAI,KAAa;CACjC,MAAM,+BAAe,IAAI,KAAa;CACtC,KAAK,MAAM,QAAQ,OAAO;EACzB,IAAI,QAAQ,IAAI,KAAK,GAAG,EACvB,aAAa,IAAI,KAAK,GAAG;EAE1B,QAAQ,IAAI,KAAK,GAAG;;CAErB,KAAK,MAAM,eAAe,CAAC,GAAG,aAAa,CAAC,UAAU,EACrD,QAAQ,SAAS;EAChB,MAAM;EACN,SAAS,6BAA6B,YAAY;EAClD,MAAM,CAAC,KAAK;EACZ,CAAC;;;;AChBJ,MAAa,sBAAsB;AAEnC,MAAa,8BAA8B,EACzC,OAAO;CACP,WAAW;CACX,IAAI;CACJ,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE;CAC5B,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;CACvB,CAAC,CACD,QAAQ;AAEV,MAAa,0BAA0B,4BAA4B;CAClE,aAAa,SAAS,YAAY;EACjC,yBAAyB,QAAQ,OAAO,QAAQ;;CAEjD,oBAAoB;CACpB,QAAQ,EACN,OAAO;EACP,OAAO,EAAE,MAAM,4BAA4B,CAAC,IAAI,EAAE,CAAC,IAAA,GAAwB;EAC3E,WAAW,gBAAgB,UAAU;EACrC,CAAC,CACD,QAAQ;CACV,CAAC"}
1
+ {"version":3,"file":"portal-call-request-schema-Cl0kTLaX.js","names":[],"sources":["../src/portal-call-surface/models/portal-batch-id-refinement.ts","../src/portal-call-surface/models/portal-call-request-schema.ts"],"sourcesContent":["import type { z } from 'zod';\n\nexport interface PortalBatchItemWithId {\n\treadonly id: string;\n}\n\nexport function addDuplicateItemIdIssues(\n\titems: readonly PortalBatchItemWithId[],\n\tcontext: z.RefinementCtx,\n): void {\n\tconst seenIds = new Set<string>();\n\tconst duplicateIds = new Set<string>();\n\tfor (const item of items) {\n\t\tif (seenIds.has(item.id)) {\n\t\t\tduplicateIds.add(item.id);\n\t\t}\n\t\tseenIds.add(item.id);\n\t}\n\tfor (const duplicateId of [...duplicateIds].toSorted()) {\n\t\tcontext.addIssue({\n\t\t\tcode: 'custom',\n\t\t\tmessage: `Duplicate portal item id \"${duplicateId}\".`,\n\t\t\tpath: ['id'],\n\t\t});\n\t}\n}\n","import { z } from 'zod';\n\nimport { JsonObjectSchema } from '../../contract-primitives/models/json-value-schema.js';\nimport { RequestIdSchema } from '../../contract-primitives/models/request-id-schema.js';\nimport { withPortableSuperRefinement } from '../../portable-contracts/portable-refinement-authoring.js';\nimport { addDuplicateItemIdIssues } from './portal-batch-id-refinement.js';\n\nexport const PortalBatchMaxItems = 50;\n\nexport const PortalCallItemRequestSchema = z\n\t.object({\n\t\targuments: JsonObjectSchema,\n\t\tid: RequestIdSchema,\n\t\tnamespace: z.string().min(1),\n\t\tname: z.string().min(1),\n\t})\n\t.strict();\n\nexport const PortalCallRequestSchema = withPortableSuperRefinement({\n\trefinement: (request, context) => {\n\t\taddDuplicateItemIdIssues(request.calls, context);\n\t},\n\trefinementIdentity: 'portal.batch.unique-item-ids',\n\tschema: z\n\t\t.object({\n\t\t\tcalls: z.array(PortalCallItemRequestSchema).min(1).max(PortalBatchMaxItems),\n\t\t\trequestId: RequestIdSchema.optional(),\n\t\t})\n\t\t.strict(),\n});\n\nexport type PortalCallRequest = z.infer<typeof PortalCallRequestSchema>;\n"],"mappings":";;;;;AAMA,SAAgB,yBACf,OACA,SACO;CACP,MAAM,0BAAU,IAAI,KAAa;CACjC,MAAM,+BAAe,IAAI,KAAa;CACtC,KAAK,MAAM,QAAQ,OAAO;EACzB,IAAI,QAAQ,IAAI,KAAK,GAAG,EACvB,aAAa,IAAI,KAAK,GAAG;EAE1B,QAAQ,IAAI,KAAK,GAAG;;CAErB,KAAK,MAAM,eAAe,CAAC,GAAG,aAAa,CAAC,UAAU,EACrD,QAAQ,SAAS;EAChB,MAAM;EACN,SAAS,6BAA6B,YAAY;EAClD,MAAM,CAAC,KAAK;EACZ,CAAC;;;;AChBJ,MAAa,sBAAsB;AAEnC,MAAa,8BAA8B,EACzC,OAAO;CACP,WAAW;CACX,IAAI;CACJ,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE;CAC5B,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;CACvB,CAAC,CACD,QAAQ;AAEV,MAAa,0BAA0B,4BAA4B;CAClE,aAAa,SAAS,YAAY;EACjC,yBAAyB,QAAQ,OAAO,QAAQ;;CAEjD,oBAAoB;CACpB,QAAQ,EACN,OAAO;EACP,OAAO,EAAE,MAAM,4BAA4B,CAAC,IAAI,EAAE,CAAC,IAAA,GAAwB;EAC3E,WAAW,gBAAgB,UAAU;EACrC,CAAC,CACD,QAAQ;CACV,CAAC"}
@@ -1,9 +1,10 @@
1
- import { n as withPortableSuperRefinement } from "./portable-refinement-authoring-CvlKRs_Z.js";
2
- import { t as ItemIdSchema } from "./request-id-schema-DGLLX-tp.js";
1
+ import { n as withPortableSuperRefinement } from "./portable-refinement-authoring-C1Q92x2G.js";
2
+ import { t as ItemIdSchema } from "./request-id-schema-Hq_6lSFV.js";
3
3
  import { t as ArtifactReferenceSchema } from "./artifact-reference-schema-CiEjxYPd.js";
4
- import { o as JsonValueSchema } from "./json-value-schema-BGfMDOGA.js";
5
- import { n as CapabilitySearchMatchSchema, r as CapabilitySummarySchema, t as CapabilityDescriptorSchema } from "./capability-descriptor-schema-DmzUtpji.js";
6
- import { i as SafeDiagnosticSchema, n as PortalErrorSchema } from "./portal-error-schema-BCALC7xt.js";
4
+ import { o as JsonValueSchema } from "./json-value-schema-Br5M7d7X.js";
5
+ import { n as CapabilitySearchMatchSchema, r as CapabilitySummarySchema, t as CapabilityDescriptorSchema } from "./capability-descriptor-schema-v9tj7yKr.js";
6
+ import { t as EffectiveNamespaceDiscoverySchema } from "./namespace-discovery-schema-DwbJHVLu.js";
7
+ import { i as SafeDiagnosticSchema, n as PortalErrorSchema } from "./portal-error-schema-TSNrpQSy.js";
7
8
  import { z } from "zod";
8
9
  //#region src/portal-call-surface/models/portal-call-result-schema.ts
9
10
  const TruncationMetadataSchema = z.object({
@@ -126,13 +127,22 @@ function createPortalResultSchema(itemSchema) {
126
127
  }).strict()
127
128
  });
128
129
  }
129
- const PortalListItemValueSchema = z.object({
130
+ const PortalBackendListItemValueSchema = z.object({
130
131
  namespaces: z.array(z.string().min(1)),
131
132
  nextCursor: z.string().regex(/^\d+$/u).optional(),
132
133
  tools: z.array(CapabilitySummarySchema)
133
134
  }).strict();
134
- const PortalSearchItemValueSchema = z.object({ tools: z.array(CapabilitySearchMatchSchema) }).strict();
135
- const PortalDescribeItemValueSchema = z.object({ tools: z.array(CapabilityDescriptorSchema) }).strict();
135
+ const PortalBackendSearchItemValueSchema = z.object({ tools: z.array(CapabilitySearchMatchSchema) }).strict();
136
+ const PortalBackendDescribeItemValueSchema = z.object({ tools: z.array(CapabilityDescriptorSchema) }).strict();
137
+ const PortalListItemValueSchema = PortalBackendListItemValueSchema.extend({ namespaceDiscovery: z.array(EffectiveNamespaceDiscoverySchema) }).strict();
138
+ const PortalSearchItemValueSchema = PortalBackendSearchItemValueSchema.extend({ namespaceDiscovery: z.array(EffectiveNamespaceDiscoverySchema) }).strict();
139
+ const PortalDescribeItemValueSchema = PortalBackendDescribeItemValueSchema.extend({ namespaceDiscovery: z.array(EffectiveNamespaceDiscoverySchema) }).strict();
140
+ const PortalBackendListItemResultSchema = createPortalItemResultSchema(PortalBackendListItemValueSchema);
141
+ const PortalBackendSearchItemResultSchema = createPortalItemResultSchema(PortalBackendSearchItemValueSchema);
142
+ const PortalBackendDescribeItemResultSchema = createPortalItemResultSchema(PortalBackendDescribeItemValueSchema);
143
+ const PortalBackendListResultSchema = createPortalResultSchema(PortalBackendListItemResultSchema);
144
+ const PortalBackendSearchResultSchema = createPortalResultSchema(PortalBackendSearchItemResultSchema);
145
+ const PortalBackendDescribeResultSchema = createPortalResultSchema(PortalBackendDescribeItemResultSchema);
136
146
  const PortalListItemResultSchema = createPortalItemResultSchema(PortalListItemValueSchema);
137
147
  const PortalSearchItemResultSchema = createPortalItemResultSchema(PortalSearchItemValueSchema);
138
148
  const PortalDescribeItemResultSchema = createPortalItemResultSchema(PortalDescribeItemValueSchema);
@@ -154,6 +164,6 @@ const PortalGenericItemResultSchema = z.discriminatedUnion("status", [z.object({
154
164
  status: z.literal("error")
155
165
  }).strict()]);
156
166
  //#endregion
157
- export { PortalDescribeItemResultSchema as a, PortalGenericItemResultSchema as c, PortalListResultSchema as d, PortalSearchItemResultSchema as f, TruncationMetadataSchema as h, PortalCallResultSchema as i, PortalListItemResultSchema as l, PortalSearchResultSchema as m, PortalApprovalRequiredCallItemResultSchema as n, PortalDescribeItemValueSchema as o, PortalSearchItemValueSchema as p, PortalCallItemResultSchema as r, PortalDescribeResultSchema as s, PortalApprovalChallengeSchema as t, PortalListItemValueSchema as u };
167
+ export { PortalSearchResultSchema as C, PortalSearchItemValueSchema as S, PortalGenericItemResultSchema as _, PortalBackendDescribeResultSchema as a, PortalListResultSchema as b, PortalBackendListResultSchema as c, PortalBackendSearchResultSchema as d, PortalCallItemResultSchema as f, PortalDescribeResultSchema as g, PortalDescribeItemValueSchema as h, PortalBackendDescribeItemValueSchema as i, PortalBackendSearchItemResultSchema as l, PortalDescribeItemResultSchema as m, PortalApprovalRequiredCallItemResultSchema as n, PortalBackendListItemResultSchema as o, PortalCallResultSchema as p, PortalBackendDescribeItemResultSchema as r, PortalBackendListItemValueSchema as s, PortalApprovalChallengeSchema as t, PortalBackendSearchItemValueSchema as u, PortalListItemResultSchema as v, TruncationMetadataSchema as w, PortalSearchItemResultSchema as x, PortalListItemValueSchema as y };
158
168
 
159
- //# sourceMappingURL=portal-call-result-schema-CVWMGu2y.js.map
169
+ //# sourceMappingURL=portal-call-result-schema-B25_rzZZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal-call-result-schema-B25_rzZZ.js","names":[],"sources":["../src/portal-call-surface/models/portal-call-result-schema.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { ArtifactReferenceSchema } from '../../artifact-surface/models/artifact-reference-schema.js';\nimport {\n\tCapabilityDescriptorSchema,\n\tCapabilitySearchMatchSchema,\n\tCapabilitySummarySchema,\n} from '../../capability-description-surface/models/capability-descriptor-schema.js';\nimport { JsonValueSchema } from '../../contract-primitives/models/json-value-schema.js';\nimport { EffectiveNamespaceDiscoverySchema } from '../../contract-primitives/models/namespace-discovery-schema.js';\nimport { ItemIdSchema } from '../../contract-primitives/models/request-id-schema.js';\nimport { withPortableSuperRefinement } from '../../portable-contracts/portable-refinement-authoring.js';\nimport { SafeDiagnosticSchema } from '../../portal-event-surface/models/safe-diagnostic-schema.js';\nimport { PortalErrorSchema } from './portal-error-schema.js';\n\nexport const TruncationMetadataSchema = z\n\t.object({\n\t\tomittedBytes: z.number().int().nonnegative().optional(),\n\t\ttruncated: z.boolean(),\n\t})\n\t.strict();\n\n// oxlint-disable-next-line explicit-function-return-type -- Preserve the exact Zod discriminated-union inference for each operation-specific result schema.\nfunction createPortalItemResultSchema<TValueSchema extends z.ZodType>(valueSchema: TValueSchema) {\n\treturn z.discriminatedUnion('status', [\n\t\tz\n\t\t\t.object({\n\t\t\t\tartifacts: z.array(ArtifactReferenceSchema).optional(),\n\t\t\t\tdiagnostics: z.array(SafeDiagnosticSchema).optional(),\n\t\t\t\tid: ItemIdSchema,\n\t\t\t\tstatus: z.literal('ok'),\n\t\t\t\ttruncation: TruncationMetadataSchema.optional(),\n\t\t\t\tvalue: valueSchema,\n\t\t\t})\n\t\t\t.strict(),\n\t\tz\n\t\t\t.object({\n\t\t\t\tdiagnostics: z.array(SafeDiagnosticSchema).optional(),\n\t\t\t\terror: PortalErrorSchema,\n\t\t\t\tid: ItemIdSchema,\n\t\t\t\tstatus: z.literal('error'),\n\t\t\t})\n\t\t\t.strict(),\n\t]);\n}\n\nconst CompletedSucceededOutcomeSchema = 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 CompletedFailedOutcomeSchema = 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 NotDispatchedOutcomeSchema = 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\nconst ProvenTerminatedOutcomeSchema = z.union([\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\nconst AmbiguousOutcomeSchema = 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\nconst TerminalErrorOutcomeSchema = z.union([\n\tNotDispatchedOutcomeSchema,\n\tCompletedFailedOutcomeSchema,\n\tProvenTerminatedOutcomeSchema,\n\tAmbiguousOutcomeSchema,\n]);\n\nexport const PortalApprovalChallengeSchema = z\n\t.object({\n\t\tchallengeId: z.string().uuid(),\n\t\texpiresAt: z.string().datetime(),\n\t})\n\t.strict();\n\nexport const PortalApprovalRequiredCallItemResultSchema = z\n\t.object({\n\t\tapprovalChallenge: PortalApprovalChallengeSchema,\n\t\terror: PortalErrorSchema.extend({ code: z.literal('approval_required') }).strict(),\n\t\tid: ItemIdSchema,\n\t\toperationId: z.string().min(1),\n\t\toutcome: NotDispatchedOutcomeSchema,\n\t\towningGeneration: z.string().min(1),\n\t\tstatus: z.literal('approval_required'),\n\t})\n\t.strict();\n\nexport const PortalCallItemResultSchema = z.discriminatedUnion('status', [\n\tz\n\t\t.object({\n\t\t\tartifacts: z.array(ArtifactReferenceSchema).optional(),\n\t\t\tdiagnostics: z.array(SafeDiagnosticSchema).optional(),\n\t\t\tid: ItemIdSchema,\n\t\t\toperationId: z.string().min(1),\n\t\t\toutcome: CompletedSucceededOutcomeSchema,\n\t\t\towningGeneration: z.string().min(1),\n\t\t\tstatus: z.literal('ok'),\n\t\t\ttruncation: TruncationMetadataSchema.optional(),\n\t\t\tvalue: JsonValueSchema,\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tdiagnostics: z.array(SafeDiagnosticSchema).optional(),\n\t\t\terror: PortalErrorSchema,\n\t\t\tid: ItemIdSchema,\n\t\t\toperationId: z.string().min(1),\n\t\t\toutcome: TerminalErrorOutcomeSchema,\n\t\t\towningGeneration: z.string().min(1),\n\t\t\tstatus: z.literal('error'),\n\t\t})\n\t\t.strict(),\n\tPortalApprovalRequiredCallItemResultSchema,\n]);\n\n// oxlint-disable-next-line explicit-function-return-type -- Preserve the exact Zod object inference derived from the item schema.\nfunction createPortalResultSchema<TItemSchema extends z.ZodType<{ readonly status: string }>>(\n\titemSchema: TItemSchema,\n) {\n\treturn withPortableSuperRefinement({\n\t\trefinement: (result, context) => {\n\t\t\tconst allItemsSucceeded = result.items.every((item) => item.status === 'ok');\n\t\t\tif (result.ok !== allItemsSucceeded) {\n\t\t\t\tcontext.addIssue({\n\t\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\t\tmessage: 'Portal result ok must match item statuses.',\n\t\t\t\t\tpath: ['ok'],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\trefinementIdentity: 'portal.result.aggregate-status',\n\t\tschema: z\n\t\t\t.object({\n\t\t\t\tauditCorrelationId: z.string().min(1).optional(),\n\t\t\t\tdiagnostics: z.array(SafeDiagnosticSchema).optional(),\n\t\t\t\titems: z.array(itemSchema),\n\t\t\t\tok: z.boolean(),\n\t\t\t})\n\t\t\t.strict(),\n\t});\n}\n\nexport const PortalBackendListItemValueSchema = z\n\t.object({\n\t\tnamespaces: z.array(z.string().min(1)),\n\t\tnextCursor: z.string().regex(/^\\d+$/u).optional(),\n\t\ttools: z.array(CapabilitySummarySchema),\n\t})\n\t.strict();\n\nexport const PortalBackendSearchItemValueSchema = z\n\t.object({\n\t\ttools: z.array(CapabilitySearchMatchSchema),\n\t})\n\t.strict();\n\nexport const PortalBackendDescribeItemValueSchema = z\n\t.object({\n\t\ttools: z.array(CapabilityDescriptorSchema),\n\t})\n\t.strict();\n\nexport const PortalListItemValueSchema = PortalBackendListItemValueSchema.extend({\n\tnamespaceDiscovery: z.array(EffectiveNamespaceDiscoverySchema),\n}).strict();\n\nexport const PortalSearchItemValueSchema = PortalBackendSearchItemValueSchema.extend({\n\tnamespaceDiscovery: z.array(EffectiveNamespaceDiscoverySchema),\n}).strict();\n\nexport const PortalDescribeItemValueSchema = PortalBackendDescribeItemValueSchema.extend({\n\tnamespaceDiscovery: z.array(EffectiveNamespaceDiscoverySchema),\n}).strict();\n\nexport const PortalBackendListItemResultSchema = createPortalItemResultSchema(\n\tPortalBackendListItemValueSchema,\n);\nexport const PortalBackendSearchItemResultSchema = createPortalItemResultSchema(\n\tPortalBackendSearchItemValueSchema,\n);\nexport const PortalBackendDescribeItemResultSchema = createPortalItemResultSchema(\n\tPortalBackendDescribeItemValueSchema,\n);\n\nexport const PortalBackendListResultSchema = createPortalResultSchema(\n\tPortalBackendListItemResultSchema,\n);\nexport type PortalBackendListResult = z.infer<typeof PortalBackendListResultSchema>;\n\nexport const PortalBackendSearchResultSchema = createPortalResultSchema(\n\tPortalBackendSearchItemResultSchema,\n);\nexport type PortalBackendSearchResult = z.infer<typeof PortalBackendSearchResultSchema>;\n\nexport const PortalBackendDescribeResultSchema = createPortalResultSchema(\n\tPortalBackendDescribeItemResultSchema,\n);\nexport type PortalBackendDescribeResult = z.infer<typeof PortalBackendDescribeResultSchema>;\n\nexport const PortalListItemResultSchema = createPortalItemResultSchema(PortalListItemValueSchema);\nexport const PortalSearchItemResultSchema = createPortalItemResultSchema(\n\tPortalSearchItemValueSchema,\n);\nexport const PortalDescribeItemResultSchema = createPortalItemResultSchema(\n\tPortalDescribeItemValueSchema,\n);\n\nexport const PortalCallResultSchema = createPortalResultSchema(PortalCallItemResultSchema);\n\nexport type PortalCallResult = z.infer<typeof PortalCallResultSchema>;\n\nexport const PortalListResultSchema = createPortalResultSchema(PortalListItemResultSchema);\nexport type PortalListResult = z.infer<typeof PortalListResultSchema>;\n\nexport const PortalSearchResultSchema = createPortalResultSchema(PortalSearchItemResultSchema);\nexport type PortalSearchResult = z.infer<typeof PortalSearchResultSchema>;\n\nexport const PortalDescribeResultSchema = createPortalResultSchema(PortalDescribeItemResultSchema);\nexport type PortalDescribeResult = z.infer<typeof PortalDescribeResultSchema>;\n\nexport const PortalGenericItemResultSchema = z.discriminatedUnion('status', [\n\tz\n\t\t.object({\n\t\t\tartifacts: z.array(ArtifactReferenceSchema).optional(),\n\t\t\tdiagnostics: z.array(SafeDiagnosticSchema).optional(),\n\t\t\tid: ItemIdSchema,\n\t\t\tstatus: z.literal('ok'),\n\t\t\ttruncation: TruncationMetadataSchema.optional(),\n\t\t\tvalue: JsonValueSchema,\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tdiagnostics: z.array(SafeDiagnosticSchema).optional(),\n\t\t\terror: PortalErrorSchema,\n\t\t\tid: ItemIdSchema,\n\t\t\tstatus: z.literal('error'),\n\t\t})\n\t\t.strict(),\n]);\n"],"mappings":"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"}