@opengeni/contracts 3.1.0-canary.2 → 3.1.2

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 (429) hide show
  1. package/dist/agent-authored-durable-text.d.ts +9 -9
  2. package/dist/agent-config.d.ts +971 -0
  3. package/dist/agent-instruction-changes.d.ts +0 -2
  4. package/dist/allowance-refusal.d.ts +9 -0
  5. package/dist/allowance-refusal.js +50 -0
  6. package/dist/allowance-refusal.js.map +1 -0
  7. package/dist/analytics-consent-report.d.ts +19 -0
  8. package/dist/analytics-consent-report.js +10 -0
  9. package/dist/analytics-consent-report.js.map +1 -0
  10. package/dist/api-key-presets.d.ts +19 -0
  11. package/dist/artifact-catalog.d.ts +188 -0
  12. package/dist/artifacts.d.ts +86 -0
  13. package/dist/atlassian-native-retirement.d.ts +16 -0
  14. package/dist/atlassian-native-retirement.js +30 -0
  15. package/dist/atlassian-native-retirement.js.map +1 -0
  16. package/dist/atlassian.d.ts +1 -0
  17. package/dist/atlassian.js +34 -19
  18. package/dist/browser-storage.d.ts +5 -0
  19. package/dist/browser-storage.js +9 -0
  20. package/dist/browser-storage.js.map +1 -0
  21. package/dist/bundled-skills.d.ts +24 -1
  22. package/dist/canonical-human-identities.js +2 -1
  23. package/dist/chunk-2ZIHHL72.js +153 -0
  24. package/dist/chunk-2ZIHHL72.js.map +1 -0
  25. package/dist/{chunk-5LYFSZ7O.js → chunk-352X6ENP.js} +31 -31
  26. package/dist/chunk-4JGHSSB7.js +11 -0
  27. package/dist/chunk-4JGHSSB7.js.map +1 -0
  28. package/dist/chunk-4QO6GJUX.js +85 -0
  29. package/dist/chunk-4QO6GJUX.js.map +1 -0
  30. package/dist/chunk-4VDMHLLL.js +49 -0
  31. package/dist/chunk-4VDMHLLL.js.map +1 -0
  32. package/dist/chunk-56SNIMDO.js +9 -0
  33. package/dist/chunk-56SNIMDO.js.map +1 -0
  34. package/dist/chunk-6C2HKFTU.js +207 -0
  35. package/dist/chunk-6C2HKFTU.js.map +1 -0
  36. package/dist/chunk-6IXO76Z6.js +72 -0
  37. package/dist/chunk-6IXO76Z6.js.map +1 -0
  38. package/dist/chunk-7272KVWZ.js +60 -0
  39. package/dist/chunk-7272KVWZ.js.map +1 -0
  40. package/dist/{chunk-7ABONTXE.js → chunk-E3GGUBHS.js} +49 -5
  41. package/dist/chunk-E3GGUBHS.js.map +1 -0
  42. package/dist/chunk-EFZYKUE2.js +767 -0
  43. package/dist/chunk-EFZYKUE2.js.map +1 -0
  44. package/dist/chunk-EKWNTOG3.js +154 -0
  45. package/dist/chunk-EKWNTOG3.js.map +1 -0
  46. package/dist/chunk-HABQ7ADB.js +234 -0
  47. package/dist/chunk-HABQ7ADB.js.map +1 -0
  48. package/dist/chunk-HRRU4QPI.js +91 -0
  49. package/dist/chunk-HRRU4QPI.js.map +1 -0
  50. package/dist/{chunk-3SIZGL3O.js → chunk-IK36LXKC.js} +18 -2
  51. package/dist/chunk-IK36LXKC.js.map +1 -0
  52. package/dist/{chunk-TXTQIYCV.js → chunk-ILJ72KPO.js} +56 -3
  53. package/dist/chunk-ILJ72KPO.js.map +1 -0
  54. package/dist/chunk-J4HQ3UKY.js +93 -0
  55. package/dist/chunk-J4HQ3UKY.js.map +1 -0
  56. package/dist/chunk-KHHZTBP7.js +11 -0
  57. package/dist/chunk-KHHZTBP7.js.map +1 -0
  58. package/dist/{chunk-WYBDERIY.js → chunk-LZ2LAHIX.js} +47 -41
  59. package/dist/chunk-LZ2LAHIX.js.map +1 -0
  60. package/dist/chunk-NDZHPTCL.js +400 -0
  61. package/dist/chunk-NDZHPTCL.js.map +1 -0
  62. package/dist/chunk-OF6OKOBF.js +54793 -0
  63. package/dist/chunk-OF6OKOBF.js.map +1 -0
  64. package/dist/chunk-OL23ARTF.js +94 -0
  65. package/dist/chunk-OL23ARTF.js.map +1 -0
  66. package/dist/chunk-PUIUXIOL.js +189 -0
  67. package/dist/chunk-PUIUXIOL.js.map +1 -0
  68. package/dist/{chunk-Y3KNXVTD.js → chunk-RMWXDZEO.js} +128 -21
  69. package/dist/chunk-RMWXDZEO.js.map +1 -0
  70. package/dist/{chunk-MRWYRAS5.js → chunk-SHO4YO4B.js} +27 -35
  71. package/dist/chunk-SHO4YO4B.js.map +1 -0
  72. package/dist/chunk-SWRN2DJ3.js +153 -0
  73. package/dist/chunk-SWRN2DJ3.js.map +1 -0
  74. package/dist/chunk-TCXCRBPF.js +267 -0
  75. package/dist/chunk-TCXCRBPF.js.map +1 -0
  76. package/dist/chunk-TLU3UEMD.js +324 -0
  77. package/dist/chunk-TLU3UEMD.js.map +1 -0
  78. package/dist/chunk-TSWWZMUS.js +186 -0
  79. package/dist/chunk-TSWWZMUS.js.map +1 -0
  80. package/dist/{chunk-PX3VCKAU.js → chunk-WVCFSOUZ.js} +1 -1
  81. package/dist/{chunk-PX3VCKAU.js.map → chunk-WVCFSOUZ.js.map} +1 -1
  82. package/dist/chunk-XDLAGX66.js +127 -0
  83. package/dist/chunk-XDLAGX66.js.map +1 -0
  84. package/dist/chunk-YKZ4WU4P.js +33 -0
  85. package/dist/chunk-YKZ4WU4P.js.map +1 -0
  86. package/dist/{chunk-O5LEQHDM.js → chunk-Z7WEVGCL.js} +3 -3
  87. package/dist/{chunk-YBW5JSA3.js → chunk-ZDCRWCGZ.js} +119 -101
  88. package/dist/chunk-ZDCRWCGZ.js.map +1 -0
  89. package/dist/claude-provider-account-authority.d.ts +18 -0
  90. package/dist/claude-subscription-oauth.d.ts +42 -0
  91. package/dist/claude-subscription-usage.d.ts +159 -0
  92. package/dist/client-error-report.d.ts +158 -0
  93. package/dist/client-error-report.js +164 -0
  94. package/dist/client-error-report.js.map +1 -0
  95. package/dist/code-search.d.ts +52 -0
  96. package/dist/code-search.js +40 -0
  97. package/dist/code-search.js.map +1 -0
  98. package/dist/codex-provider-account-authority.js +20 -12
  99. package/dist/codex-provider-account-authority.js.map +1 -1
  100. package/dist/company-profile.d.ts +144 -6
  101. package/dist/connect.d.ts +37 -0
  102. package/dist/connect.js +216 -159
  103. package/dist/connect.js.map +1 -1
  104. package/dist/connection-account-label.d.ts +2 -0
  105. package/dist/connection-account-label.js +35 -0
  106. package/dist/connection-account-label.js.map +1 -0
  107. package/dist/connection-authority.d.ts +9 -317
  108. package/dist/connection-authority.js +37 -42
  109. package/dist/connector-attachments.js +2 -1
  110. package/dist/connector-destinations.js +2 -1
  111. package/dist/connector-tool-permissions.d.ts +137 -0
  112. package/dist/cua-desktop-tools.d.ts +17 -0
  113. package/dist/define-schema.d.ts +8 -0
  114. package/dist/direct-model-provider.d.ts +36 -0
  115. package/dist/editable-artifact-codec-registry.js +5 -5
  116. package/dist/editable-artifact-committed-transaction.js +3 -2
  117. package/dist/editable-artifact-live.js +5 -5
  118. package/dist/editable-artifact-serialized-commit.js +6 -6
  119. package/dist/editable-artifact-versions.d.ts +7 -1
  120. package/dist/editable-artifact-versions.js +1 -1
  121. package/dist/editable-artifacts.js +62 -56
  122. package/dist/event-preview.d.ts +22 -0
  123. package/dist/external-identities.d.ts +138 -0
  124. package/dist/external-identities.js +9 -4
  125. package/dist/first-party-tool-authorization.d.ts +815 -0
  126. package/dist/github-repository-contracts.js +60 -43
  127. package/dist/github-repository-contracts.js.map +1 -1
  128. package/dist/google-drive.d.ts +2 -1
  129. package/dist/google-drive.js +305 -238
  130. package/dist/google-drive.js.map +1 -1
  131. package/dist/host-mcp-bindings.d.ts +5 -0
  132. package/dist/host-mcp-bindings.js +233 -170
  133. package/dist/host-mcp-bindings.js.map +1 -1
  134. package/dist/image-generation.d.ts +1 -0
  135. package/dist/index.d.ts +16761 -5946
  136. package/dist/index.js +1973 -260
  137. package/dist/insights-usage.d.ts +877 -0
  138. package/dist/insights-usage.js +559 -0
  139. package/dist/insights-usage.js.map +1 -0
  140. package/dist/interaction.d.ts +1176 -829
  141. package/dist/knowledge-entries.d.ts +81 -2
  142. package/dist/knowledge-preparation.d.ts +239 -0
  143. package/dist/managed-auth-session-sets.d.ts +7 -0
  144. package/dist/managed-auth-session-sets.js +198 -132
  145. package/dist/managed-auth-session-sets.js.map +1 -1
  146. package/dist/managed-sign-in-methods.d.ts +56 -0
  147. package/dist/managed-sign-in-methods.js +64 -0
  148. package/dist/managed-sign-in-methods.js.map +1 -0
  149. package/dist/mcp-catalog-limits.d.ts +2 -0
  150. package/dist/mcp-oauth.d.ts +2 -2
  151. package/dist/mcp-structured-content.d.ts +25 -0
  152. package/dist/modal-native-proof-v2.d.ts +587 -0
  153. package/dist/modal-native-proof-v2.js +38 -0
  154. package/dist/modal-native-proof-v2.js.map +1 -0
  155. package/dist/model-account-choice.d.ts +235 -0
  156. package/dist/model-account-settings.d.ts +422 -0
  157. package/dist/model-availability.d.ts +15 -0
  158. package/dist/model-connection-access.d.ts +13 -0
  159. package/dist/model-context-inspector.d.ts +98 -0
  160. package/dist/model-display.d.ts +43 -0
  161. package/dist/model-display.js +17 -0
  162. package/dist/model-display.js.map +1 -0
  163. package/dist/model-picker-order.d.ts +3 -1
  164. package/dist/model-picker-order.js +3 -0
  165. package/dist/model-picker-order.js.map +1 -1
  166. package/dist/organization-access.d.ts +412 -0
  167. package/dist/organization-access.js +39 -0
  168. package/dist/organization-access.js.map +1 -0
  169. package/dist/organization-integration-policy.d.ts +27 -0
  170. package/dist/organization-membership-lifecycle.d.ts +38 -0
  171. package/dist/organization-model-usage.d.ts +146 -0
  172. package/dist/organization-model-usage.js +78 -0
  173. package/dist/organization-model-usage.js.map +1 -0
  174. package/dist/organization-recovery.js +2 -1
  175. package/dist/organization-usage.d.ts +138 -0
  176. package/dist/permissions.d.ts +18 -0
  177. package/dist/personal-github.d.ts +1 -0
  178. package/dist/personal-github.js +199 -144
  179. package/dist/personal-github.js.map +1 -1
  180. package/dist/prepared-mcp-setup.d.ts +54 -0
  181. package/dist/prepared-mcp-setup.js +12 -0
  182. package/dist/prepared-mcp-setup.js.map +1 -0
  183. package/dist/product-analytics.d.ts +116 -0
  184. package/dist/product-lifecycle-facts.d.ts +73 -0
  185. package/dist/remember.d.ts +98 -6
  186. package/dist/retained-output.d.ts +8 -0
  187. package/dist/sandbox-file-artifacts.d.ts +1 -0
  188. package/dist/sandbox-provider-command.d.ts +91 -1
  189. package/dist/sandbox-recovery.d.ts +146 -0
  190. package/dist/secret-generator.d.ts +44 -0
  191. package/dist/secret-references.d.ts +90 -0
  192. package/dist/secret-resolution.d.ts +111 -0
  193. package/dist/secret-totp.d.ts +41 -0
  194. package/dist/session-final-reply.d.ts +6 -0
  195. package/dist/session-final-reply.js +9 -0
  196. package/dist/session-final-reply.js.map +1 -0
  197. package/dist/session-goal-reports.d.ts +21 -0
  198. package/dist/session-history-import.d.ts +1272 -0
  199. package/dist/session-list-entries.d.ts +4 -0
  200. package/dist/session-list-entries.js +56 -0
  201. package/dist/session-list-entries.js.map +1 -0
  202. package/dist/session-mcp-projections.d.ts +6 -0
  203. package/dist/session-mcp-tool-permissions.d.ts +62 -0
  204. package/dist/session-message-search.d.ts +68 -0
  205. package/dist/session-target.d.ts +18 -0
  206. package/dist/session-titles.d.ts +8 -0
  207. package/dist/session-titles.js +5 -1
  208. package/dist/session-usage-limit-refusal.d.ts +34 -0
  209. package/dist/session-usage-limit-refusal.js +15 -0
  210. package/dist/session-usage-limit-refusal.js.map +1 -0
  211. package/dist/session-usage-limits.d.ts +127 -0
  212. package/dist/session-usage-limits.js +41 -0
  213. package/dist/session-usage-limits.js.map +1 -0
  214. package/dist/signup-attribution.d.ts +39 -0
  215. package/dist/site-data.d.ts +286 -0
  216. package/dist/site-operations.d.ts +39 -0
  217. package/dist/site-publishing.d.ts +778 -0
  218. package/dist/site-session-http.d.ts +89 -4
  219. package/dist/site-session-http.js +25 -1
  220. package/dist/site-sql.d.ts +421 -0
  221. package/dist/skill-catalog-context.d.ts +7 -0
  222. package/dist/skill-files.d.ts +1 -1
  223. package/dist/skill-use.d.ts +61 -0
  224. package/dist/skills.d.ts +15 -0
  225. package/dist/slack-bot-scopes.d.ts +17 -12
  226. package/dist/slack-bot-scopes.js +10 -3
  227. package/dist/slack-rest-mcp.d.ts +36 -0
  228. package/dist/slack-rest-mcp.js +25 -0
  229. package/dist/slack-rest-mcp.js.map +1 -0
  230. package/dist/spreadsheet-artifact-commands.d.ts +14 -1
  231. package/dist/spreadsheet-artifact-commands.js +8 -2
  232. package/dist/spreadsheet-artifact-query.d.ts +13 -6
  233. package/dist/spreadsheet-artifact-query.js +3 -3
  234. package/dist/subscription-account-actions.d.ts +64 -0
  235. package/dist/subscription-account-pools.d.ts +292 -0
  236. package/dist/subscription-personal-authority-v2.d.ts +28 -0
  237. package/dist/subscription-personal-authority-v2.js +12 -0
  238. package/dist/subscription-personal-authority-v2.js.map +1 -0
  239. package/dist/tool-action-review.d.ts +132 -0
  240. package/dist/tool-catalog.d.ts +408 -0
  241. package/dist/tool-policy.d.ts +5 -0
  242. package/dist/tool-review-presentation.d.ts +12 -0
  243. package/dist/tool-review-presentation.js +17 -0
  244. package/dist/tool-review-presentation.js.map +1 -0
  245. package/dist/transcription-recordings.d.ts +21 -0
  246. package/dist/turn-serving-policy.d.ts +221 -0
  247. package/dist/usage-allowances.d.ts +314 -0
  248. package/dist/usage-allowances.js +52 -0
  249. package/dist/usage-allowances.js.map +1 -0
  250. package/dist/vaults.d.ts +1286 -0
  251. package/dist/video-generation.d.ts +3 -0
  252. package/dist/video-generation.js +2 -1
  253. package/dist/workspace-integration-wire.d.ts +36 -0
  254. package/dist/workspace-integration-wire.js +23 -0
  255. package/dist/workspace-integration-wire.js.map +1 -0
  256. package/dist/workspace-integrations.d.ts +1028 -0
  257. package/dist/xai-provider-account-authority.js +2 -1
  258. package/package.json +93 -5
  259. package/src/agent-authored-durable-text.ts +14 -11
  260. package/src/agent-config.ts +1698 -0
  261. package/src/agent-instruction-changes.ts +91 -74
  262. package/src/agent-learning.ts +94 -67
  263. package/src/agent-topology.ts +57 -52
  264. package/src/allowance-refusal.ts +81 -0
  265. package/src/analytics-consent-report.ts +20 -0
  266. package/src/api-key-presets.ts +28 -0
  267. package/src/artifact-catalog.ts +82 -0
  268. package/src/artifacts.ts +299 -227
  269. package/src/atlassian-native-retirement.ts +33 -0
  270. package/src/atlassian.ts +135 -108
  271. package/src/browser-storage.ts +10 -0
  272. package/src/bundled-skills.ts +60 -17
  273. package/src/canonical-human-identities.ts +60 -58
  274. package/src/claude-provider-account-authority.ts +12 -0
  275. package/src/claude-subscription-oauth.ts +73 -0
  276. package/src/claude-subscription-usage.ts +68 -0
  277. package/src/client-error-report.ts +343 -0
  278. package/src/code-search.ts +105 -0
  279. package/src/codex-provider-account-authority.ts +21 -16
  280. package/src/company-brain-governed-writes.ts +255 -233
  281. package/src/company-brain.ts +164 -153
  282. package/src/company-profile.ts +365 -292
  283. package/src/connect.ts +212 -173
  284. package/src/connection-account-label.ts +46 -0
  285. package/src/connection-authority.ts +183 -364
  286. package/src/connector-attachments.ts +137 -122
  287. package/src/connector-destinations.ts +46 -42
  288. package/src/connector-tool-permissions.ts +117 -0
  289. package/src/cua-desktop-tools.gen.json +6512 -0
  290. package/src/cua-desktop-tools.linux.gen.json +6600 -0
  291. package/src/cua-desktop-tools.ts +36 -0
  292. package/src/cua-desktop-tools.windows.gen.json +6353 -0
  293. package/src/define-schema.ts +10 -0
  294. package/src/direct-model-provider.ts +108 -0
  295. package/src/editable-artifact-committed-transaction.ts +17 -0
  296. package/src/editable-artifact-versions.ts +7 -1
  297. package/src/event-preview.ts +53 -3
  298. package/src/external-identities.ts +249 -176
  299. package/src/feedback.ts +43 -30
  300. package/src/first-party-tool-authorization.ts +356 -0
  301. package/src/github-repository-contracts.ts +78 -64
  302. package/src/google-drive.ts +285 -234
  303. package/src/governed-learning-activation.ts +152 -131
  304. package/src/governed-learning-evaluator.ts +140 -133
  305. package/src/host-mcp-bindings.ts +252 -198
  306. package/src/image-generation.ts +104 -95
  307. package/src/index.ts +13235 -8687
  308. package/src/insights-usage.ts +727 -0
  309. package/src/interaction.ts +3070 -2326
  310. package/src/knowledge-entries.ts +361 -276
  311. package/src/knowledge-preparation.ts +57 -0
  312. package/src/knowledge.ts +246 -213
  313. package/src/managed-auth-session-sets.ts +220 -144
  314. package/src/managed-sign-in-methods.ts +52 -0
  315. package/src/mcp-catalog-limits.ts +2 -0
  316. package/src/mcp-oauth.ts +43 -34
  317. package/src/mcp-receipts.ts +192 -192
  318. package/src/mcp-structured-content.ts +81 -0
  319. package/src/memory-slack-delivery.ts +171 -142
  320. package/src/modal-native-proof-v2.ts +429 -0
  321. package/src/model-account-choice.ts +177 -0
  322. package/src/model-account-settings.ts +210 -0
  323. package/src/model-availability.ts +22 -0
  324. package/src/model-connection-access.ts +61 -14
  325. package/src/model-context-inspector.ts +133 -99
  326. package/src/model-display.ts +221 -0
  327. package/src/model-picker-order.ts +12 -1
  328. package/src/organization-access.ts +217 -0
  329. package/src/organization-integration-policy.ts +63 -0
  330. package/src/organization-membership-lifecycle.ts +528 -382
  331. package/src/organization-model-usage.ts +81 -0
  332. package/src/organization-recovery.ts +147 -135
  333. package/src/organization-usage.ts +94 -0
  334. package/src/permissions.ts +88 -52
  335. package/src/personal-github.ts +210 -171
  336. package/src/preference-registry.ts +314 -258
  337. package/src/prepared-mcp-setup.ts +189 -0
  338. package/src/product-analytics.ts +261 -0
  339. package/src/product-lifecycle-facts.ts +122 -0
  340. package/src/remember.ts +181 -167
  341. package/src/retained-output.ts +194 -165
  342. package/src/sandbox-file-artifacts.ts +60 -47
  343. package/src/sandbox-provider-command.ts +88 -20
  344. package/src/sandbox-recovery.ts +129 -0
  345. package/src/scoped-knowledge.ts +61 -43
  346. package/src/secret-generator.ts +155 -0
  347. package/src/secret-references.ts +414 -0
  348. package/src/secret-resolution.ts +274 -0
  349. package/src/secret-totp.ts +188 -0
  350. package/src/session-final-reply.ts +16 -0
  351. package/src/session-goal-reports.ts +64 -0
  352. package/src/session-history-import.ts +177 -0
  353. package/src/session-list-entries.ts +96 -0
  354. package/src/session-mcp-projections.ts +11 -0
  355. package/src/session-mcp-tool-permissions.ts +108 -0
  356. package/src/session-message-search.ts +61 -0
  357. package/src/session-target.ts +57 -0
  358. package/src/session-titles.ts +80 -10
  359. package/src/session-topology-primitives.ts +19 -12
  360. package/src/session-usage-limit-refusal.ts +101 -0
  361. package/src/session-usage-limits.ts +171 -0
  362. package/src/signup-attribution.ts +86 -0
  363. package/src/site-data.ts +339 -0
  364. package/src/site-operations.ts +154 -0
  365. package/src/site-publishing.ts +876 -0
  366. package/src/site-session-http.ts +294 -16
  367. package/src/site-sql.ts +1123 -0
  368. package/src/skill-catalog-context.ts +50 -0
  369. package/src/skill-files.ts +3 -3
  370. package/src/skill-use.ts +80 -0
  371. package/src/skills.ts +82 -54
  372. package/src/slack-bot-scopes.ts +31 -39
  373. package/src/slack-rest-mcp.ts +222 -0
  374. package/src/slack-task-policy.ts +96 -73
  375. package/src/spreadsheet-artifact-commands.ts +73 -2
  376. package/src/spreadsheet-artifact-query.ts +187 -39
  377. package/src/subscription-account-actions.ts +84 -0
  378. package/src/subscription-account-pools.ts +53 -0
  379. package/src/subscription-personal-authority-v2.ts +66 -0
  380. package/src/task-notes.ts +55 -51
  381. package/src/tool-action-review.ts +258 -0
  382. package/src/tool-catalog.ts +609 -372
  383. package/src/tool-policy.ts +82 -0
  384. package/src/tool-result-spill.ts +12 -9
  385. package/src/tool-review-presentation.ts +385 -0
  386. package/src/transcription-recordings.ts +145 -131
  387. package/src/turn-serving-policy.ts +166 -0
  388. package/src/usage-allowances.ts +248 -0
  389. package/src/vaults.ts +850 -0
  390. package/src/video-generation.ts +385 -360
  391. package/src/work-claims.ts +173 -149
  392. package/src/workspace-instruction-policies.ts +349 -276
  393. package/src/workspace-integration-wire.ts +101 -0
  394. package/src/workspace-integrations.ts +724 -0
  395. package/src/workspace-learning-administration.ts +57 -44
  396. package/src/workspace-learning-policy.ts +127 -96
  397. package/src/workspace-state.ts +250 -220
  398. package/src/xai-provider-account-authority.ts +22 -17
  399. package/dist/chunk-2AC63F4S.js +0 -171
  400. package/dist/chunk-2AC63F4S.js.map +0 -1
  401. package/dist/chunk-3SIZGL3O.js.map +0 -1
  402. package/dist/chunk-7ABONTXE.js.map +0 -1
  403. package/dist/chunk-BCS7WHCK.js +0 -139
  404. package/dist/chunk-BCS7WHCK.js.map +0 -1
  405. package/dist/chunk-GRG7PHWQ.js +0 -25
  406. package/dist/chunk-GRG7PHWQ.js.map +0 -1
  407. package/dist/chunk-JUFK3T4Q.js +0 -80
  408. package/dist/chunk-JUFK3T4Q.js.map +0 -1
  409. package/dist/chunk-M5ZGRVIQ.js +0 -719
  410. package/dist/chunk-M5ZGRVIQ.js.map +0 -1
  411. package/dist/chunk-MRWYRAS5.js.map +0 -1
  412. package/dist/chunk-OVFORMPW.js +0 -348
  413. package/dist/chunk-OVFORMPW.js.map +0 -1
  414. package/dist/chunk-P3HLDT77.js +0 -59
  415. package/dist/chunk-P3HLDT77.js.map +0 -1
  416. package/dist/chunk-QQUJ6NPW.js +0 -23093
  417. package/dist/chunk-QQUJ6NPW.js.map +0 -1
  418. package/dist/chunk-TXTQIYCV.js.map +0 -1
  419. package/dist/chunk-WYBDERIY.js.map +0 -1
  420. package/dist/chunk-Y3KNXVTD.js.map +0 -1
  421. package/dist/chunk-YBW5JSA3.js.map +0 -1
  422. package/dist/chunk-YRXAWWCU.js +0 -45
  423. package/dist/chunk-YRXAWWCU.js.map +0 -1
  424. package/dist/host-mcp-resolvers.d.ts +0 -32
  425. package/dist/host-mcp-resolvers.js +0 -34
  426. package/dist/host-mcp-resolvers.js.map +0 -1
  427. package/src/host-mcp-resolvers.ts +0 -50
  428. /package/dist/{chunk-5LYFSZ7O.js.map → chunk-352X6ENP.js.map} +0 -0
  429. /package/dist/{chunk-O5LEQHDM.js.map → chunk-Z7WEVGCL.js.map} +0 -0
@@ -1,4 +1,6 @@
1
+ import { defineSchema } from "./define-schema";
1
2
  import { z } from "zod";
3
+ import { Permission } from "./permissions";
2
4
 
3
5
  export const ATTEMPT_TOOL_CATALOG_VERSION = 1 as const;
4
6
  export const TOOL_GATEWAY_CATALOG_VERSION = 1 as const;
@@ -14,365 +16,582 @@ export const CODEMODE_CLAIM_LEASE_MS = 30_000;
14
16
  export const CODEMODE_CLAIM_HEARTBEAT_MS = 10_000;
15
17
  export const CODEMODE_MAX_CONCURRENT_CALLS_PER_ATTEMPT = 16;
16
18
 
17
- const sha256 = z.string().regex(/^[0-9a-f]{64}$/u);
18
- const serverIdentifier = z
19
- .string()
20
- .min(1)
21
- .max(256)
22
- .regex(/^[A-Za-z0-9_-]+$/u);
23
- const toolIdentifier = z
24
- .string()
25
- .min(1)
26
- .max(512)
27
- .regex(/^[^\u0000-\u001f\u007f]+$/u);
28
- const namespaceSegment = z
29
- .string()
30
- .min(1)
31
- .max(128)
32
- .regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/u)
33
- .refine((value) => !["__proto__", "prototype", "constructor"].includes(value), {
34
- message: "unsafe Codemode namespace segment",
35
- });
36
- const jsonObject = z.record(z.string().max(512), z.json());
19
+ const sha256 = /* @__PURE__ */ defineSchema(() => z.string().regex(/^[0-9a-f]{64}$/u));
20
+ const serverIdentifier = /* @__PURE__ */ defineSchema(() =>
21
+ z
22
+ .string()
23
+ .min(1)
24
+ .max(256)
25
+ .regex(/^[A-Za-z0-9_-]+$/u),
26
+ );
27
+ const toolIdentifier = /* @__PURE__ */ defineSchema(() =>
28
+ z
29
+ .string()
30
+ .min(1)
31
+ .max(512)
32
+ .regex(/^[^\u0000-\u001f\u007f]+$/u),
33
+ );
34
+ const namespaceSegment = /* @__PURE__ */ defineSchema(() =>
35
+ z
36
+ .string()
37
+ .min(1)
38
+ .max(128)
39
+ .regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/u)
40
+ .refine((value) => !["__proto__", "prototype", "constructor"].includes(value), {
41
+ message: "unsafe Codemode namespace segment",
42
+ }),
43
+ );
44
+ const jsonObject = /* @__PURE__ */ defineSchema(() => z.record(z.string().max(512), z.json()));
37
45
 
38
46
  /** Opaque authority identity. Display/wire names must never be parsed as authority. */
39
- export const AttemptToolIdentity = z
40
- .object({
41
- serverId: serverIdentifier,
42
- toolName: toolIdentifier,
43
- })
44
- .strict();
47
+ export const AttemptToolIdentity = /* @__PURE__ */ defineSchema(() =>
48
+ z
49
+ .object({
50
+ serverId: serverIdentifier,
51
+ toolName: toolIdentifier,
52
+ })
53
+ .strict(),
54
+ );
45
55
  export type AttemptToolIdentity = z.infer<typeof AttemptToolIdentity>;
46
56
 
47
57
  /** Protocol-neutral tool identity shared by MCP, HTTP/SDK, agents, and Codemode. */
48
58
  export const ToolGatewayIdentity = AttemptToolIdentity;
49
59
  export type ToolGatewayIdentity = AttemptToolIdentity;
50
60
 
51
- export const AttemptToolCatalogIcon = z
52
- .object({
53
- src: z.string().min(1).max(8_192),
54
- mimeType: z.string().min(1).max(128).optional(),
55
- sizes: z.array(z.string().min(1).max(64)).max(16).optional(),
56
- theme: z.enum(["light", "dark"]).optional(),
57
- })
58
- .strict();
61
+ export const AttemptToolCatalogIcon = /* @__PURE__ */ defineSchema(() =>
62
+ z
63
+ .object({
64
+ src: z.string().min(1).max(8_192),
65
+ mimeType: z.string().min(1).max(128).optional(),
66
+ sizes: z.array(z.string().min(1).max(64)).max(16).optional(),
67
+ theme: z.enum(["light", "dark"]).optional(),
68
+ })
69
+ .strict(),
70
+ );
59
71
  export type AttemptToolCatalogIcon = z.infer<typeof AttemptToolCatalogIcon>;
60
72
 
61
73
  /** MCP annotations retained without inventing stronger effect guarantees. */
62
- export const AttemptToolAnnotations = z
63
- .object({
64
- title: z.string().max(512).optional(),
65
- readOnlyHint: z.boolean().optional(),
66
- destructiveHint: z.boolean().optional(),
67
- idempotentHint: z.boolean().optional(),
68
- openWorldHint: z.boolean().optional(),
69
- })
70
- .loose();
74
+ export const AttemptToolAnnotations = /* @__PURE__ */ defineSchema(() =>
75
+ z
76
+ .object({
77
+ title: z.string().max(512).optional(),
78
+ readOnlyHint: z.boolean().optional(),
79
+ destructiveHint: z.boolean().optional(),
80
+ idempotentHint: z.boolean().optional(),
81
+ openWorldHint: z.boolean().optional(),
82
+ })
83
+ .loose(),
84
+ );
71
85
  export type AttemptToolAnnotations = z.infer<typeof AttemptToolAnnotations>;
72
86
 
73
87
  /** JSON Schema is preserved as received. Runtime byte/node guards remain authoritative. */
74
88
  export const AttemptToolJsonSchema = jsonObject;
75
89
  export type AttemptToolJsonSchema = z.infer<typeof AttemptToolJsonSchema>;
76
90
 
77
- export const AttemptToolCatalogEntry = z
78
- .object({
79
- identity: AttemptToolIdentity,
80
- /** Exact model-wire projection for this generation, e.g. `slack__search`. */
81
- modelName: toolIdentifier,
82
- /** Safe generated Codemode namespace; convenience only, never authority. */
83
- codemodePath: z.array(namespaceSegment).min(2).max(ATTEMPT_TOOL_CATALOG_MAX_PATH_SEGMENTS),
84
- title: z.string().min(1).max(512).optional(),
85
- description: z.string().max(32_768).optional(),
86
- inputSchema: AttemptToolJsonSchema,
87
- outputSchema: AttemptToolJsonSchema.optional(),
88
- annotations: AttemptToolAnnotations.optional(),
89
- icons: z.array(AttemptToolCatalogIcon).max(16).optional(),
90
- source: z.enum(["opengeni", "files", "docs", "mcp", "codex_apps", "interaction"]),
91
- approval: z.enum(["none", "human", "policy"]),
92
- })
93
- .strict();
91
+ /** Presentation only; never parsed as execution or account authority. */
92
+ export const ToolDisplayMetadata = /* @__PURE__ */ defineSchema(() =>
93
+ z
94
+ .object({
95
+ toolName: toolIdentifier,
96
+ title: z.string().min(1).max(512).optional(),
97
+ /** Account to name beside the tool. Set only when the connector has more than one. */
98
+ accountLabel: z.string().min(1).max(1024).optional(),
99
+ /** The connector the tool belongs to, e.g. "Linear". */
100
+ connector: z.string().min(1).max(512).optional(),
101
+ /** The connector's provider, so a host can draw its logo. */
102
+ providerDomain: z.string().min(1).max(253).optional(),
103
+ })
104
+ .strict(),
105
+ );
106
+ export type ToolDisplayMetadata = z.infer<typeof ToolDisplayMetadata>;
107
+
108
+ /**
109
+ * How one connector account route is named. The model always gets the full
110
+ * account in tool descriptions; people see the connector, and the account only
111
+ * when there is more than one to tell apart.
112
+ */
113
+ export type McpAccountRouteLabel = {
114
+ /** Model-facing account description. */
115
+ model: string;
116
+ connector: string;
117
+ providerDomain: string;
118
+ /** Present only when the connector has several accounts in the turn. */
119
+ account?: string | undefined;
120
+ };
121
+
122
+ /** The short account line for approvals: "Linear", or "Linear · alice@example.com". */
123
+ export function mcpAccountRouteReviewLabel(label: McpAccountRouteLabel): string {
124
+ return label.account ? `${label.connector} · ${label.account}` : label.connector;
125
+ }
126
+
127
+ export const AttemptToolCatalogEntry = /* @__PURE__ */ defineSchema(() =>
128
+ z
129
+ .object({
130
+ identity: AttemptToolIdentity,
131
+ /** Exact model-wire projection for this generation, e.g. `slack__search`. */
132
+ modelName: toolIdentifier,
133
+ /** Safe generated Codemode namespace; convenience only, never authority. */
134
+ codemodePath: z.array(namespaceSegment).min(2).max(ATTEMPT_TOOL_CATALOG_MAX_PATH_SEGMENTS),
135
+ title: z.string().min(1).max(512).optional(),
136
+ description: z.string().max(32_768).optional(),
137
+ inputSchema: AttemptToolJsonSchema,
138
+ outputSchema: AttemptToolJsonSchema.optional(),
139
+ annotations: AttemptToolAnnotations.optional(),
140
+ icons: z.array(AttemptToolCatalogIcon).max(16).optional(),
141
+ source: z.enum(["opengeni", "files", "docs", "mcp", "codex_apps", "interaction"]),
142
+ approval: z.enum(["none", "human", "policy"]),
143
+ })
144
+ .strict(),
145
+ );
94
146
  export type AttemptToolCatalogEntry = z.infer<typeof AttemptToolCatalogEntry>;
95
147
 
96
148
  /** One canonical gateway entry. Adapter-specific names are projections, never authority. */
97
149
  export const ToolGatewayCatalogEntry = AttemptToolCatalogEntry;
98
150
  export type ToolGatewayCatalogEntry = AttemptToolCatalogEntry;
99
151
 
100
- export const ToolGatewayCatalog = z
101
- .object({
102
- version: z.literal(TOOL_GATEWAY_CATALOG_VERSION),
103
- accountId: z.string().uuid(),
104
- workspaceId: z.string().uuid(),
105
- generation: z.number().int().positive(),
106
- digest: sha256,
107
- createdAt: z.string().datetime({ offset: true }),
108
- entries: z.array(ToolGatewayCatalogEntry).max(ATTEMPT_TOOL_CATALOG_MAX_ENTRIES),
109
- })
110
- .strict()
111
- .superRefine((catalog, context) => {
112
- const identities = new Set<string>();
113
- const modelNames = new Set<string>();
114
- const toolPaths = new Set<string>();
115
- for (const [index, entry] of catalog.entries.entries()) {
116
- const identity = `${entry.identity.serverId}\u0000${entry.identity.toolName}`;
117
- const toolPath = entry.codemodePath.join(".");
118
- if (identities.has(identity)) {
119
- context.addIssue({
120
- code: "custom",
121
- path: ["entries", index, "identity"],
122
- message: "duplicate tool identity",
123
- });
124
- }
125
- if (modelNames.has(entry.modelName)) {
126
- context.addIssue({
127
- code: "custom",
128
- path: ["entries", index, "modelName"],
129
- message: "duplicate model tool name",
130
- });
131
- }
132
- if (toolPaths.has(toolPath)) {
133
- context.addIssue({
134
- code: "custom",
135
- path: ["entries", index, "codemodePath"],
136
- message: "duplicate tool path",
137
- });
152
+ export const ToolGatewayCatalog = /* @__PURE__ */ defineSchema(() =>
153
+ z
154
+ .object({
155
+ version: z.literal(TOOL_GATEWAY_CATALOG_VERSION),
156
+ accountId: z.string().uuid(),
157
+ workspaceId: z.string().uuid(),
158
+ generation: z.number().int().positive(),
159
+ digest: sha256,
160
+ createdAt: z.string().datetime({ offset: true }),
161
+ entries: z.array(ToolGatewayCatalogEntry).max(ATTEMPT_TOOL_CATALOG_MAX_ENTRIES),
162
+ })
163
+ .strict()
164
+ .superRefine((catalog, context) => {
165
+ const identities = new Set<string>();
166
+ const modelNames = new Set<string>();
167
+ const toolPaths = new Set<string>();
168
+ for (const [index, entry] of catalog.entries.entries()) {
169
+ const identity = `${entry.identity.serverId}\u0000${entry.identity.toolName}`;
170
+ const toolPath = entry.codemodePath.join(".");
171
+ if (identities.has(identity)) {
172
+ context.addIssue({
173
+ code: "custom",
174
+ path: ["entries", index, "identity"],
175
+ message: "duplicate tool identity",
176
+ });
177
+ }
178
+ if (modelNames.has(entry.modelName)) {
179
+ context.addIssue({
180
+ code: "custom",
181
+ path: ["entries", index, "modelName"],
182
+ message: "duplicate model tool name",
183
+ });
184
+ }
185
+ if (toolPaths.has(toolPath)) {
186
+ context.addIssue({
187
+ code: "custom",
188
+ path: ["entries", index, "codemodePath"],
189
+ message: "duplicate tool path",
190
+ });
191
+ }
192
+ identities.add(identity);
193
+ modelNames.add(entry.modelName);
194
+ toolPaths.add(toolPath);
138
195
  }
139
- identities.add(identity);
140
- modelNames.add(entry.modelName);
141
- toolPaths.add(toolPath);
142
- }
143
- });
196
+ }),
197
+ );
144
198
  export type ToolGatewayCatalog = z.infer<typeof ToolGatewayCatalog>;
145
199
 
146
- export const ToolGatewayCaller = z
147
- .object({
148
- kind: z.enum(["model", "codemode", "http", "mcp", "browser"]),
149
- subjectId: z.string().min(1).max(1_024),
150
- })
151
- .strict();
200
+ export const ToolGatewayCaller = /* @__PURE__ */ defineSchema(() =>
201
+ z
202
+ .object({
203
+ kind: z.enum(["model", "codemode", "http", "mcp", "browser"]),
204
+ subjectId: z.string().min(1).max(1_024),
205
+ })
206
+ .strict(),
207
+ );
152
208
  export type ToolGatewayCaller = z.infer<typeof ToolGatewayCaller>;
153
209
 
154
- export const AttemptToolCatalog = z
155
- .object({
156
- version: z.literal(ATTEMPT_TOOL_CATALOG_VERSION),
157
- accountId: z.string().uuid(),
158
- workspaceId: z.string().uuid(),
159
- sessionId: z.string().uuid(),
160
- turnId: z.string().uuid(),
161
- attemptId: z.string().uuid(),
162
- executionGeneration: z.number().int().positive(),
163
- generation: z.number().int().positive(),
164
- digest: sha256,
165
- createdAt: z.string().datetime({ offset: true }),
166
- entries: z.array(AttemptToolCatalogEntry).max(ATTEMPT_TOOL_CATALOG_MAX_ENTRIES),
167
- })
168
- .strict()
169
- .superRefine((catalog, context) => {
170
- const identities = new Set<string>();
171
- const modelNames = new Set<string>();
172
- const codemodePaths = new Set<string>();
173
- for (const [index, entry] of catalog.entries.entries()) {
174
- const identity = `${entry.identity.serverId}\u0000${entry.identity.toolName}`;
175
- const codemodePath = entry.codemodePath.join(".");
176
- if (identities.has(identity)) {
177
- context.addIssue({
178
- code: "custom",
179
- path: ["entries", index, "identity"],
180
- message: "duplicate tool identity",
181
- });
182
- }
183
- if (modelNames.has(entry.modelName)) {
184
- context.addIssue({
185
- code: "custom",
186
- path: ["entries", index, "modelName"],
187
- message: "duplicate model tool name",
188
- });
189
- }
190
- if (codemodePaths.has(codemodePath)) {
191
- context.addIssue({
192
- code: "custom",
193
- path: ["entries", index, "codemodePath"],
194
- message: "duplicate Codemode tool path",
195
- });
210
+ /**
211
+ * MCP request `_meta` key naming the attempt surface that issued a call to the
212
+ * first-party server: `model` for a direct model tool call, `codemode` for a
213
+ * Codemode script. Only the worker's own tool gateway sets it, and only for the
214
+ * first-party server. A read reached the model's context only when it says
215
+ * `model`; a Codemode script may keep the output to itself.
216
+ */
217
+ export const FIRST_PARTY_MCP_CALLER_META_KEY = "opengeniCaller";
218
+
219
+ export const AttemptToolCatalog = /* @__PURE__ */ defineSchema(() =>
220
+ z
221
+ .object({
222
+ version: z.literal(ATTEMPT_TOOL_CATALOG_VERSION),
223
+ accountId: z.string().uuid(),
224
+ workspaceId: z.string().uuid(),
225
+ sessionId: z.string().uuid(),
226
+ turnId: z.string().uuid(),
227
+ attemptId: z.string().uuid(),
228
+ executionGeneration: z.number().int().positive(),
229
+ generation: z.number().int().positive(),
230
+ digest: sha256,
231
+ createdAt: z.string().datetime({ offset: true }),
232
+ /** Native permission ceiling frozen by the worker with this catalog.
233
+ * Absence is legacy/unknown, not permission to derive a larger live set. */
234
+ firstPartyMcpPermissions: z.array(Permission).max(128).optional(),
235
+ entries: z.array(AttemptToolCatalogEntry).max(ATTEMPT_TOOL_CATALOG_MAX_ENTRIES),
236
+ })
237
+ .strict()
238
+ .superRefine((catalog, context) => {
239
+ const identities = new Set<string>();
240
+ const modelNames = new Set<string>();
241
+ const codemodePaths = new Set<string>();
242
+ for (const [index, entry] of catalog.entries.entries()) {
243
+ const identity = `${entry.identity.serverId}\u0000${entry.identity.toolName}`;
244
+ const codemodePath = entry.codemodePath.join(".");
245
+ if (identities.has(identity)) {
246
+ context.addIssue({
247
+ code: "custom",
248
+ path: ["entries", index, "identity"],
249
+ message: "duplicate tool identity",
250
+ });
251
+ }
252
+ if (modelNames.has(entry.modelName)) {
253
+ context.addIssue({
254
+ code: "custom",
255
+ path: ["entries", index, "modelName"],
256
+ message: "duplicate model tool name",
257
+ });
258
+ }
259
+ if (codemodePaths.has(codemodePath)) {
260
+ context.addIssue({
261
+ code: "custom",
262
+ path: ["entries", index, "codemodePath"],
263
+ message: "duplicate Codemode tool path",
264
+ });
265
+ }
266
+ identities.add(identity);
267
+ modelNames.add(entry.modelName);
268
+ codemodePaths.add(codemodePath);
196
269
  }
197
- identities.add(identity);
198
- modelNames.add(entry.modelName);
199
- codemodePaths.add(codemodePath);
200
- }
201
- });
270
+ }),
271
+ );
202
272
  export type AttemptToolCatalog = z.infer<typeof AttemptToolCatalog>;
203
273
 
204
- export const AttemptToolCaller = z
205
- .object({
206
- kind: z.enum(["model", "codemode"]),
207
- subjectId: z.string().min(1).max(1_024),
208
- })
209
- .strict();
274
+ export const AttemptToolCaller = /* @__PURE__ */ defineSchema(() =>
275
+ z
276
+ .object({
277
+ kind: z.enum(["model", "codemode"]),
278
+ subjectId: z.string().min(1).max(1_024),
279
+ })
280
+ .strict(),
281
+ );
210
282
  export type AttemptToolCaller = z.infer<typeof AttemptToolCaller>;
211
283
 
212
- export const AttemptToolCall = z
213
- .object({
214
- operationId: z.string().uuid(),
215
- catalogDigest: sha256,
216
- identity: AttemptToolIdentity,
217
- arguments: jsonObject,
218
- caller: AttemptToolCaller,
219
- })
220
- .strict();
284
+ export const AttemptToolCall = /* @__PURE__ */ defineSchema(() =>
285
+ z
286
+ .object({
287
+ operationId: z.string().uuid(),
288
+ catalogDigest: sha256,
289
+ identity: AttemptToolIdentity,
290
+ arguments: jsonObject,
291
+ caller: AttemptToolCaller,
292
+ })
293
+ .strict(),
294
+ );
221
295
  export type AttemptToolCall = z.infer<typeof AttemptToolCall>;
222
296
 
223
- const McpAnnotations = z.record(z.string().max(256), z.json()).optional();
224
- const McpMeta = z.record(z.string().max(512), z.json()).optional();
225
-
226
- export const AttemptToolTextContent = z
227
- .object({
228
- type: z.literal("text"),
229
- text: z.string(),
230
- annotations: McpAnnotations,
231
- _meta: McpMeta,
232
- })
233
- .loose();
234
-
235
- export const AttemptToolImageContent = z
236
- .object({
237
- type: z.literal("image"),
238
- data: z.string(),
239
- mimeType: z.string().min(1).max(128),
240
- annotations: McpAnnotations,
241
- _meta: McpMeta,
242
- })
243
- .loose();
244
-
245
- export const AttemptToolAudioContent = z
246
- .object({
247
- type: z.literal("audio"),
248
- data: z.string(),
249
- mimeType: z.string().min(1).max(128),
250
- annotations: McpAnnotations,
251
- _meta: McpMeta,
252
- })
253
- .loose();
254
-
255
- export const AttemptToolResourceLinkContent = z
256
- .object({
257
- type: z.literal("resource_link"),
258
- name: z.string().min(1).max(1_024),
259
- title: z.string().max(1_024).optional(),
260
- uri: z.string().min(1).max(16_384),
261
- description: z.string().max(32_768).optional(),
262
- mimeType: z.string().max(128).optional(),
263
- size: z.number().int().nonnegative().optional(),
264
- icons: z.array(AttemptToolCatalogIcon).max(16).optional(),
265
- annotations: McpAnnotations,
266
- _meta: McpMeta,
267
- })
268
- .loose();
269
-
270
- const AttemptToolTextResource = z
271
- .object({
272
- uri: z.string().min(1).max(16_384),
273
- mimeType: z.string().max(128).optional(),
274
- text: z.string(),
275
- _meta: McpMeta,
276
- })
277
- .loose();
278
-
279
- const AttemptToolBlobResource = z
280
- .object({
281
- uri: z.string().min(1).max(16_384),
282
- mimeType: z.string().max(128).optional(),
283
- blob: z.string(),
284
- _meta: McpMeta,
285
- })
286
- .loose();
287
-
288
- export const AttemptToolEmbeddedResourceContent = z
289
- .object({
290
- type: z.literal("resource"),
291
- resource: z.union([AttemptToolTextResource, AttemptToolBlobResource]),
292
- annotations: McpAnnotations,
293
- _meta: McpMeta,
294
- })
295
- .loose();
296
-
297
- export const AttemptToolContent = z.discriminatedUnion("type", [
298
- AttemptToolTextContent,
299
- AttemptToolImageContent,
300
- AttemptToolAudioContent,
301
- AttemptToolResourceLinkContent,
302
- AttemptToolEmbeddedResourceContent,
303
- ]);
297
+ const McpAnnotations = /* @__PURE__ */ defineSchema(() =>
298
+ z.record(z.string().max(256), z.json()).optional(),
299
+ );
300
+ const McpMeta = /* @__PURE__ */ defineSchema(() =>
301
+ z.record(z.string().max(512), z.json()).optional(),
302
+ );
303
+
304
+ export const AttemptToolTextContent = /* @__PURE__ */ defineSchema(() =>
305
+ z
306
+ .object({
307
+ type: z.literal("text"),
308
+ text: z.string(),
309
+ annotations: McpAnnotations,
310
+ _meta: McpMeta,
311
+ })
312
+ .loose(),
313
+ );
314
+
315
+ export const AttemptToolImageContent = /* @__PURE__ */ defineSchema(() =>
316
+ z
317
+ .object({
318
+ type: z.literal("image"),
319
+ data: z.string(),
320
+ mimeType: z.string().min(1).max(128),
321
+ annotations: McpAnnotations,
322
+ _meta: McpMeta,
323
+ })
324
+ .loose(),
325
+ );
326
+
327
+ export const AttemptToolAudioContent = /* @__PURE__ */ defineSchema(() =>
328
+ z
329
+ .object({
330
+ type: z.literal("audio"),
331
+ data: z.string(),
332
+ mimeType: z.string().min(1).max(128),
333
+ annotations: McpAnnotations,
334
+ _meta: McpMeta,
335
+ })
336
+ .loose(),
337
+ );
338
+
339
+ export const AttemptToolResourceLinkContent = /* @__PURE__ */ defineSchema(() =>
340
+ z
341
+ .object({
342
+ type: z.literal("resource_link"),
343
+ name: z.string().min(1).max(1_024),
344
+ title: z.string().max(1_024).optional(),
345
+ uri: z.string().min(1).max(16_384),
346
+ description: z.string().max(32_768).optional(),
347
+ mimeType: z.string().max(128).optional(),
348
+ size: z.number().int().nonnegative().optional(),
349
+ icons: z.array(AttemptToolCatalogIcon).max(16).optional(),
350
+ annotations: McpAnnotations,
351
+ _meta: McpMeta,
352
+ })
353
+ .loose(),
354
+ );
355
+
356
+ const AttemptToolTextResource = /* @__PURE__ */ defineSchema(() =>
357
+ z
358
+ .object({
359
+ uri: z.string().min(1).max(16_384),
360
+ mimeType: z.string().max(128).optional(),
361
+ text: z.string(),
362
+ _meta: McpMeta,
363
+ })
364
+ .loose(),
365
+ );
366
+
367
+ const AttemptToolBlobResource = /* @__PURE__ */ defineSchema(() =>
368
+ z
369
+ .object({
370
+ uri: z.string().min(1).max(16_384),
371
+ mimeType: z.string().max(128).optional(),
372
+ blob: z.string(),
373
+ _meta: McpMeta,
374
+ })
375
+ .loose(),
376
+ );
377
+
378
+ export const AttemptToolEmbeddedResourceContent = /* @__PURE__ */ defineSchema(() =>
379
+ z
380
+ .object({
381
+ type: z.literal("resource"),
382
+ resource: z.union([AttemptToolTextResource, AttemptToolBlobResource]),
383
+ annotations: McpAnnotations,
384
+ _meta: McpMeta,
385
+ })
386
+ .loose(),
387
+ );
388
+
389
+ export const AttemptToolContent = /* @__PURE__ */ defineSchema(() =>
390
+ z.discriminatedUnion("type", [
391
+ AttemptToolTextContent,
392
+ AttemptToolImageContent,
393
+ AttemptToolAudioContent,
394
+ AttemptToolResourceLinkContent,
395
+ AttemptToolEmbeddedResourceContent,
396
+ ]),
397
+ );
304
398
  export type AttemptToolContent = z.infer<typeof AttemptToolContent>;
305
399
 
306
400
  /** Exact MCP-shaped result. No output type is fabricated when `outputSchema` is absent. */
307
- export const AttemptToolResult = z
308
- .object({
309
- content: z.array(AttemptToolContent).max(ATTEMPT_TOOL_CATALOG_MAX_CONTENT_BLOCKS),
310
- structuredContent: jsonObject.optional(),
311
- isError: z.boolean().optional(),
312
- _meta: McpMeta,
313
- })
314
- .loose();
401
+ export const AttemptToolResult = /* @__PURE__ */ defineSchema(() =>
402
+ z
403
+ .object({
404
+ content: z.array(AttemptToolContent).max(ATTEMPT_TOOL_CATALOG_MAX_CONTENT_BLOCKS),
405
+ structuredContent: jsonObject.optional(),
406
+ isError: z.boolean().optional(),
407
+ _meta: McpMeta,
408
+ })
409
+ .loose(),
410
+ );
315
411
  export type AttemptToolResult = z.infer<typeof AttemptToolResult>;
316
412
 
317
413
  export const ToolGatewayResult = AttemptToolResult;
318
414
  export type ToolGatewayResult = AttemptToolResult;
319
415
 
320
- export const ToolGatewayCallRequest = z
321
- .object({
322
- operationId: z.string().uuid().optional(),
323
- catalogDigest: sha256,
324
- identity: ToolGatewayIdentity,
325
- arguments: jsonObject,
326
- /** Host-owned Site context. Publisher-controlled iframe code cannot set it. */
327
- siteArtifactId: z.string().uuid().optional(),
328
- siteVersionId: z.string().uuid().optional(),
329
- /** Opaque, server-issued, single-use capability for an approval-required call. */
330
- approvalToken: z
331
- .string()
332
- .regex(/^ogta_[A-Za-z0-9_-]{43}$/u)
333
- .optional(),
334
- })
335
- .strict()
336
- .superRefine(requireCompleteSiteToolContext);
416
+ export const ToolGatewayCallRequest = /* @__PURE__ */ defineSchema(() =>
417
+ z
418
+ .object({
419
+ operationId: z.string().uuid().optional(),
420
+ catalogDigest: sha256,
421
+ identity: ToolGatewayIdentity,
422
+ arguments: jsonObject,
423
+ /** Host-owned Site context. Publisher-controlled iframe code cannot set it. */
424
+ siteArtifactId: z.string().uuid().optional(),
425
+ siteVersionId: z.string().uuid().optional(),
426
+ /** Opaque, server-issued, single-use capability for an approval-required call. */
427
+ approvalToken: z
428
+ .string()
429
+ .regex(/^ogta_[A-Za-z0-9_-]{43}$/u)
430
+ .optional(),
431
+ })
432
+ .strict()
433
+ .superRefine(requireCompleteSiteToolContext),
434
+ );
337
435
  export type ToolGatewayCallRequest = z.infer<typeof ToolGatewayCallRequest>;
338
436
 
339
- export const ToolGatewayApprovalRequest = z
340
- .object({
341
- operationId: z.string().uuid(),
342
- catalogDigest: sha256,
343
- identity: ToolGatewayIdentity,
344
- arguments: jsonObject,
345
- })
346
- .strict();
437
+ export const ToolGatewayApprovalRequest = /* @__PURE__ */ defineSchema(() =>
438
+ z
439
+ .object({
440
+ operationId: z.string().uuid(),
441
+ catalogDigest: sha256,
442
+ identity: ToolGatewayIdentity,
443
+ arguments: jsonObject,
444
+ })
445
+ .strict(),
446
+ );
347
447
  export type ToolGatewayApprovalRequest = z.infer<typeof ToolGatewayApprovalRequest>;
348
448
 
349
- export const ToolGatewayApprovalResponse = z
350
- .object({
351
- operationId: z.string().uuid(),
352
- catalogDigest: sha256,
353
- identity: ToolGatewayIdentity,
354
- approvalToken: z.string().regex(/^ogta_[A-Za-z0-9_-]{43}$/u),
355
- expiresAt: z.string().datetime({ offset: true }),
356
- })
357
- .strict();
449
+ export const ToolGatewayApprovalResponse = /* @__PURE__ */ defineSchema(() =>
450
+ z
451
+ .object({
452
+ operationId: z.string().uuid(),
453
+ catalogDigest: sha256,
454
+ identity: ToolGatewayIdentity,
455
+ approvalToken: z.string().regex(/^ogta_[A-Za-z0-9_-]{43}$/u),
456
+ expiresAt: z.string().datetime({ offset: true }),
457
+ })
458
+ .strict(),
459
+ );
358
460
  export type ToolGatewayApprovalResponse = z.infer<typeof ToolGatewayApprovalResponse>;
359
461
 
360
- export const ToolGatewayCallResponse = z
361
- .object({
362
- operationId: z.string().uuid(),
363
- catalogDigest: sha256,
364
- result: ToolGatewayResult,
365
- })
366
- .strict();
462
+ export const ToolGatewayCallResponse = /* @__PURE__ */ defineSchema(() =>
463
+ z
464
+ .object({
465
+ operationId: z.string().uuid(),
466
+ catalogDigest: sha256,
467
+ result: ToolGatewayResult,
468
+ })
469
+ .strict(),
470
+ );
367
471
  export type ToolGatewayCallResponse = z.infer<typeof ToolGatewayCallResponse>;
368
472
 
369
- export const ToolGatewayDeclarationsResponse = z
370
- .object({
371
- catalogDigest: sha256,
372
- moduleSpecifier: z.string().min(1).max(512),
373
- source: z.string().max(16 * 1024 * 1024),
374
- })
375
- .strict();
473
+ /** A selector, never an authority claim. Symbolic paths use the canonical projection. */
474
+ export const ToolGatewayTarget = /* @__PURE__ */ defineSchema(() =>
475
+ z.union([
476
+ z.object({ identity: ToolGatewayIdentity }).strict(),
477
+ z.object({ path: z.array(namespaceSegment).min(2).max(8) }).strict(),
478
+ ]),
479
+ );
480
+ export type ToolGatewayTarget = z.infer<typeof ToolGatewayTarget>;
481
+
482
+ const targetContext = {
483
+ siteArtifactId: z.string().uuid().optional(),
484
+ siteVersionId: z.string().uuid().optional(),
485
+ };
486
+ export const ToolGatewayResolveRequest = /* @__PURE__ */ defineSchema(() =>
487
+ z
488
+ .object({
489
+ target: ToolGatewayTarget,
490
+ ...targetContext,
491
+ })
492
+ .strict()
493
+ .superRefine(requireCompleteSiteToolContext),
494
+ );
495
+ export type ToolGatewayResolveRequest = z.infer<typeof ToolGatewayResolveRequest>;
496
+
497
+ export const ToolGatewayResolvedTool = /* @__PURE__ */ defineSchema(() =>
498
+ z
499
+ .object({
500
+ version: z.literal(1),
501
+ definitionDigest: sha256,
502
+ entry: ToolGatewayCatalogEntry,
503
+ })
504
+ .strict(),
505
+ );
506
+ export type ToolGatewayResolvedTool = z.infer<typeof ToolGatewayResolvedTool>;
507
+
508
+ export const ToolGatewayInvokeRequest = /* @__PURE__ */ defineSchema(() =>
509
+ z
510
+ .object({
511
+ target: ToolGatewayTarget,
512
+ operationId: z.string().uuid(),
513
+ arguments: jsonObject,
514
+ /** Omission explicitly selects the current authorized definition. */
515
+ expectedDefinitionDigest: sha256.optional(),
516
+ approvalToken: z
517
+ .string()
518
+ .regex(/^ogta_[A-Za-z0-9_-]{43}$/u)
519
+ .optional(),
520
+ ...targetContext,
521
+ })
522
+ .strict()
523
+ .superRefine(requireCompleteSiteToolContext),
524
+ );
525
+ export type ToolGatewayInvokeRequest = z.infer<typeof ToolGatewayInvokeRequest>;
526
+
527
+ export const ToolGatewayInvokeResponse = /* @__PURE__ */ defineSchema(() =>
528
+ z
529
+ .object({
530
+ operationId: z.string().uuid(),
531
+ tool: ToolGatewayResolvedTool,
532
+ result: ToolGatewayResult,
533
+ })
534
+ .strict(),
535
+ );
536
+ export type ToolGatewayInvokeResponse = z.infer<typeof ToolGatewayInvokeResponse>;
537
+
538
+ export const ToolGatewayTargetApprovalRequest = /* @__PURE__ */ defineSchema(() =>
539
+ z
540
+ .object({
541
+ identity: ToolGatewayIdentity,
542
+ operationId: z.string().uuid(),
543
+ arguments: jsonObject,
544
+ expectedDefinitionDigest: sha256,
545
+ ...targetContext,
546
+ })
547
+ .strict()
548
+ .superRefine(requireCompleteSiteToolContext),
549
+ );
550
+ export type ToolGatewayTargetApprovalRequest = z.infer<typeof ToolGatewayTargetApprovalRequest>;
551
+ export const ToolGatewayTargetApprovalResponse = /* @__PURE__ */ defineSchema(() =>
552
+ z
553
+ .object({
554
+ bindingVersion: z.literal(2),
555
+ operationId: z.string().uuid(),
556
+ tool: ToolGatewayResolvedTool,
557
+ approvalToken: z.string().regex(/^ogta_[A-Za-z0-9_-]{43}$/u),
558
+ expiresAt: z.string().datetime({ offset: true }),
559
+ })
560
+ .strict(),
561
+ );
562
+ export type ToolGatewayTargetApprovalResponse = z.infer<typeof ToolGatewayTargetApprovalResponse>;
563
+
564
+ /** Bounded compatibility manifest, not workspace discovery. */
565
+ export const ToolGatewayManifestRequest = /* @__PURE__ */ defineSchema(() =>
566
+ z
567
+ .object({
568
+ identities: z.array(ToolGatewayIdentity).max(256),
569
+ ...targetContext,
570
+ })
571
+ .strict()
572
+ .superRefine(requireCompleteSiteToolContext),
573
+ );
574
+ export type ToolGatewayManifestRequest = z.infer<typeof ToolGatewayManifestRequest>;
575
+ export const ToolGatewayManifestResponse = /* @__PURE__ */ defineSchema(() =>
576
+ z
577
+ .object({
578
+ version: z.literal(1),
579
+ digest: sha256,
580
+ tools: z.array(ToolGatewayResolvedTool).max(256),
581
+ })
582
+ .strict(),
583
+ );
584
+ export type ToolGatewayManifestResponse = z.infer<typeof ToolGatewayManifestResponse>;
585
+
586
+ export const ToolGatewayDeclarationsResponse = /* @__PURE__ */ defineSchema(() =>
587
+ z
588
+ .object({
589
+ catalogDigest: sha256,
590
+ moduleSpecifier: z.string().min(1).max(512),
591
+ source: z.string().max(16 * 1024 * 1024),
592
+ })
593
+ .strict(),
594
+ );
376
595
  export type ToolGatewayDeclarationsResponse = z.infer<typeof ToolGatewayDeclarationsResponse>;
377
596
 
378
597
  function requireCompleteSiteToolContext(
@@ -387,14 +606,17 @@ function requireCompleteSiteToolContext(
387
606
  });
388
607
  }
389
608
 
390
- export const CodemodeOperationState = z.enum([
391
- "queued",
392
- "running",
393
- "completed",
394
- "failed",
395
- "outcome_unknown",
396
- "cancelled",
397
- ]);
609
+ export const CodemodeOperationState = /* @__PURE__ */ defineSchema(() =>
610
+ z.enum([
611
+ "queued",
612
+ "waiting_for_approval",
613
+ "running",
614
+ "completed",
615
+ "failed",
616
+ "outcome_unknown",
617
+ "cancelled",
618
+ ]),
619
+ );
398
620
  export type CodemodeOperationState = z.infer<typeof CodemodeOperationState>;
399
621
 
400
622
  /**
@@ -402,69 +624,84 @@ export type CodemodeOperationState = z.infer<typeof CodemodeOperationState>;
402
624
  * idempotency key to one exact call; callers may safely poll/retry the same
403
625
  * operation id but may never repurpose it.
404
626
  */
405
- export const CodemodeOperation = z
406
- .object({
407
- version: z.literal(CODEMODE_OPERATION_VERSION),
408
- operationId: z.string().uuid(),
409
- accountId: z.string().uuid(),
410
- workspaceId: z.string().uuid(),
411
- sessionId: z.string().uuid(),
412
- turnId: z.string().uuid(),
413
- attemptId: z.string().uuid(),
414
- executionGeneration: z.number().int().positive(),
415
- catalogDigest: sha256,
416
- requestDigest: sha256,
417
- identity: AttemptToolIdentity,
418
- arguments: jsonObject,
419
- caller: AttemptToolCaller.refine((caller) => caller.kind === "codemode", {
420
- message: "Codemode operation caller must be codemode",
421
- }),
422
- state: CodemodeOperationState,
423
- result: AttemptToolResult.nullable(),
424
- errorCode: z.string().min(1).max(128).nullable(),
425
- errorMessage: z.string().min(1).max(4_096).nullable(),
426
- createdAt: z.string().datetime({ offset: true }),
427
- claimedAt: z.string().datetime({ offset: true }).nullable(),
428
- executionStartedAt: z.string().datetime({ offset: true }).nullable(),
429
- completedAt: z.string().datetime({ offset: true }).nullable(),
430
- updatedAt: z.string().datetime({ offset: true }),
431
- })
432
- .strict();
627
+ export const CodemodeOperation = /* @__PURE__ */ defineSchema(() =>
628
+ z
629
+ .object({
630
+ version: z.literal(CODEMODE_OPERATION_VERSION),
631
+ operationId: z.string().uuid(),
632
+ accountId: z.string().uuid(),
633
+ workspaceId: z.string().uuid(),
634
+ sessionId: z.string().uuid(),
635
+ turnId: z.string().uuid(),
636
+ attemptId: z.string().uuid(),
637
+ executionGeneration: z.number().int().positive(),
638
+ catalogDigest: sha256,
639
+ requestDigest: sha256,
640
+ identity: AttemptToolIdentity,
641
+ arguments: jsonObject,
642
+ caller: AttemptToolCaller.refine((caller) => caller.kind === "codemode", {
643
+ message: "Codemode operation caller must be codemode",
644
+ }),
645
+ state: CodemodeOperationState,
646
+ /** Present only for clients that acknowledged durable approval continuation. */
647
+ durableApproval: z.literal(true).optional(),
648
+ approvalRequestId: z.string().uuid().optional(),
649
+ result: AttemptToolResult.nullable(),
650
+ errorCode: z.string().min(1).max(128).nullable(),
651
+ errorMessage: z.string().min(1).max(4_096).nullable(),
652
+ createdAt: z.string().datetime({ offset: true }),
653
+ claimedAt: z.string().datetime({ offset: true }).nullable(),
654
+ executionStartedAt: z.string().datetime({ offset: true }).nullable(),
655
+ completedAt: z.string().datetime({ offset: true }).nullable(),
656
+ updatedAt: z.string().datetime({ offset: true }),
657
+ })
658
+ .strict(),
659
+ );
433
660
  export type CodemodeOperation = z.infer<typeof CodemodeOperation>;
434
661
 
435
- export const CodemodeCallRequest = z
436
- .object({
437
- operationId: z.string().uuid(),
438
- catalogDigest: sha256,
439
- identity: AttemptToolIdentity,
440
- arguments: jsonObject,
441
- })
442
- .strict();
662
+ export const CodemodeCallRequest = /* @__PURE__ */ defineSchema(() =>
663
+ z
664
+ .object({
665
+ /** Opt-in transport capability, never permission to execute. */
666
+ durableApproval: z.literal(true).optional(),
667
+ operationId: z.string().uuid(),
668
+ catalogDigest: sha256,
669
+ identity: AttemptToolIdentity,
670
+ arguments: jsonObject,
671
+ })
672
+ .strict(),
673
+ );
443
674
  export type CodemodeCallRequest = z.infer<typeof CodemodeCallRequest>;
444
675
 
445
- export const CodemodeCallSubmission = z
446
- .object({
447
- operation: CodemodeOperation,
448
- dispatch: z.enum(["accepted", "already_running", "terminal", "unavailable", "rejected"]),
449
- })
450
- .strict();
676
+ export const CodemodeCallSubmission = /* @__PURE__ */ defineSchema(() =>
677
+ z
678
+ .object({
679
+ operation: CodemodeOperation,
680
+ dispatch: z.enum(["accepted", "already_running", "terminal", "unavailable", "rejected"]),
681
+ })
682
+ .strict(),
683
+ );
451
684
  export type CodemodeCallSubmission = z.infer<typeof CodemodeCallSubmission>;
452
685
 
453
686
  /** Tiny NATS wake-up. Postgres, never the broker payload, is durable truth. */
454
- export const CodemodeDispatchRequest = z
455
- .object({
456
- version: z.literal(CODEMODE_OPERATION_VERSION),
457
- operationId: z.string().uuid(),
458
- catalogDigest: sha256,
459
- })
460
- .strict();
687
+ export const CodemodeDispatchRequest = /* @__PURE__ */ defineSchema(() =>
688
+ z
689
+ .object({
690
+ version: z.literal(CODEMODE_OPERATION_VERSION),
691
+ operationId: z.string().uuid(),
692
+ catalogDigest: sha256,
693
+ })
694
+ .strict(),
695
+ );
461
696
  export type CodemodeDispatchRequest = z.infer<typeof CodemodeDispatchRequest>;
462
697
 
463
- export const CodemodeDispatchAck = z
464
- .object({
465
- version: z.literal(CODEMODE_OPERATION_VERSION),
466
- operationId: z.string().uuid(),
467
- status: z.enum(["accepted", "already_running", "terminal", "unavailable", "rejected"]),
468
- })
469
- .strict();
698
+ export const CodemodeDispatchAck = /* @__PURE__ */ defineSchema(() =>
699
+ z
700
+ .object({
701
+ version: z.literal(CODEMODE_OPERATION_VERSION),
702
+ operationId: z.string().uuid(),
703
+ status: z.enum(["accepted", "already_running", "terminal", "unavailable", "rejected"]),
704
+ })
705
+ .strict(),
706
+ );
470
707
  export type CodemodeDispatchAck = z.infer<typeof CodemodeDispatchAck>;