@opengeni/contracts 0.44.1 → 1.0.0

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 (382) hide show
  1. package/dist/agent-authored-durable-text.d.ts +70 -0
  2. package/dist/agent-config.d.ts +869 -0
  3. package/dist/agent-instruction-changes.d.ts +110 -0
  4. package/dist/agent-learning.d.ts +243 -0
  5. package/dist/agent-topology.d.ts +292 -0
  6. package/dist/allowance-refusal.d.ts +9 -0
  7. package/dist/allowance-refusal.js +50 -0
  8. package/dist/allowance-refusal.js.map +1 -0
  9. package/dist/analytics-consent-report.d.ts +19 -0
  10. package/dist/analytics-consent-report.js +10 -0
  11. package/dist/analytics-consent-report.js.map +1 -0
  12. package/dist/api-key-presets.d.ts +19 -0
  13. package/dist/artifact-catalog.d.ts +161 -0
  14. package/dist/artifacts.d.ts +135 -11
  15. package/dist/atlassian-native-retirement.d.ts +16 -0
  16. package/dist/atlassian-native-retirement.js +30 -0
  17. package/dist/atlassian-native-retirement.js.map +1 -0
  18. package/dist/atlassian.d.ts +2 -0
  19. package/dist/atlassian.js +27 -11
  20. package/dist/browser-storage.d.ts +5 -0
  21. package/dist/browser-storage.js +9 -0
  22. package/dist/browser-storage.js.map +1 -0
  23. package/dist/bundled-skills.d.ts +40 -0
  24. package/dist/canonical-human-identities.d.ts +157 -0
  25. package/dist/canonical-human-identities.js +23 -0
  26. package/dist/canonical-human-identities.js.map +1 -0
  27. package/dist/chunk-2ACYHZFB.js +292 -0
  28. package/dist/chunk-2ACYHZFB.js.map +1 -0
  29. package/dist/chunk-2VORLN2R.js +353 -0
  30. package/dist/chunk-2VORLN2R.js.map +1 -0
  31. package/dist/{chunk-Y3MLSLB4.js → chunk-3SIZGL3O.js} +42 -30
  32. package/dist/chunk-3SIZGL3O.js.map +1 -0
  33. package/dist/chunk-46KLD2UH.js +186 -0
  34. package/dist/chunk-46KLD2UH.js.map +1 -0
  35. package/dist/chunk-4JGHSSB7.js +11 -0
  36. package/dist/chunk-4JGHSSB7.js.map +1 -0
  37. package/dist/{chunk-52SGB2QO.js → chunk-5IXYF6XN.js} +50 -10
  38. package/dist/chunk-5IXYF6XN.js.map +1 -0
  39. package/dist/chunk-BCS7WHCK.js +139 -0
  40. package/dist/chunk-BCS7WHCK.js.map +1 -0
  41. package/dist/chunk-EK7NDGFR.js +128 -0
  42. package/dist/chunk-EK7NDGFR.js.map +1 -0
  43. package/dist/{chunk-5UDNP7AO.js → chunk-FZ6BXQHL.js} +78 -38
  44. package/dist/chunk-FZ6BXQHL.js.map +1 -0
  45. package/dist/chunk-GRG7PHWQ.js +25 -0
  46. package/dist/chunk-GRG7PHWQ.js.map +1 -0
  47. package/dist/chunk-JUFK3T4Q.js +80 -0
  48. package/dist/chunk-JUFK3T4Q.js.map +1 -0
  49. package/dist/chunk-KHHZTBP7.js +11 -0
  50. package/dist/chunk-KHHZTBP7.js.map +1 -0
  51. package/dist/chunk-KR2V42UZ.js +187 -0
  52. package/dist/chunk-KR2V42UZ.js.map +1 -0
  53. package/dist/chunk-MZLBPKFE.js +168 -0
  54. package/dist/chunk-MZLBPKFE.js.map +1 -0
  55. package/dist/{chunk-H5BVCZKF.js → chunk-NRMCVHAU.js} +6 -5
  56. package/dist/chunk-NRMCVHAU.js.map +1 -0
  57. package/dist/{chunk-TZ6YEYN4.js → chunk-NVJMJWLL.js} +3 -1
  58. package/dist/chunk-NVJMJWLL.js.map +1 -0
  59. package/dist/chunk-O77VSFYZ.js +70 -0
  60. package/dist/chunk-O77VSFYZ.js.map +1 -0
  61. package/dist/chunk-PX3VCKAU.js +29 -0
  62. package/dist/chunk-PX3VCKAU.js.map +1 -0
  63. package/dist/chunk-QR5D2IQC.js +61 -0
  64. package/dist/chunk-QR5D2IQC.js.map +1 -0
  65. package/dist/chunk-RJ76DRPO.js +117 -0
  66. package/dist/chunk-RJ76DRPO.js.map +1 -0
  67. package/dist/chunk-RKX3NQYS.js +28 -0
  68. package/dist/chunk-RKX3NQYS.js.map +1 -0
  69. package/dist/{chunk-FJBG5E4O.js → chunk-SIOU2K4U.js} +45 -22
  70. package/dist/chunk-SIOU2K4U.js.map +1 -0
  71. package/dist/chunk-TSCDAGET.js +75 -0
  72. package/dist/chunk-TSCDAGET.js.map +1 -0
  73. package/dist/{chunk-LSB7GRLG.js → chunk-TXTQIYCV.js} +15 -11
  74. package/dist/chunk-TXTQIYCV.js.map +1 -0
  75. package/dist/chunk-X7ETVO4P.js +26544 -0
  76. package/dist/chunk-X7ETVO4P.js.map +1 -0
  77. package/dist/{chunk-CADSX6UN.js → chunk-Y3KNXVTD.js} +2 -2
  78. package/dist/chunk-YBW5JSA3.js +251 -0
  79. package/dist/chunk-YBW5JSA3.js.map +1 -0
  80. package/dist/chunk-YRXAWWCU.js +45 -0
  81. package/dist/chunk-YRXAWWCU.js.map +1 -0
  82. package/dist/claude-provider-account-authority.d.ts +18 -0
  83. package/dist/claude-subscription-oauth.d.ts +42 -0
  84. package/dist/claude-subscription-usage.d.ts +159 -0
  85. package/dist/client-error-report.d.ts +109 -0
  86. package/dist/client-error-report.js +87 -0
  87. package/dist/client-error-report.js.map +1 -0
  88. package/dist/code-search.d.ts +52 -0
  89. package/dist/code-search.js +40 -0
  90. package/dist/code-search.js.map +1 -0
  91. package/dist/codex-provider-account-authority.d.ts +23 -0
  92. package/dist/codex-provider-account-authority.js +23 -0
  93. package/dist/codex-provider-account-authority.js.map +1 -0
  94. package/dist/company-brain-governed-writes.d.ts +475 -0
  95. package/dist/company-brain.d.ts +336 -0
  96. package/dist/company-profile.d.ts +566 -0
  97. package/dist/connect.d.ts +325 -0
  98. package/dist/connect.js +191 -0
  99. package/dist/connect.js.map +1 -0
  100. package/dist/connection-account-label.d.ts +2 -0
  101. package/dist/connection-account-label.js +35 -0
  102. package/dist/connection-account-label.js.map +1 -0
  103. package/dist/connection-authority.d.ts +193 -0
  104. package/dist/connection-authority.js +50 -0
  105. package/dist/connection-authority.js.map +1 -0
  106. package/dist/connector-attachments.d.ts +95 -0
  107. package/dist/connector-attachments.js +51 -0
  108. package/dist/connector-attachments.js.map +1 -0
  109. package/dist/connector-tool-permissions.d.ts +73 -0
  110. package/dist/direct-model-provider.d.ts +36 -0
  111. package/dist/editable-artifact-codec-registry.d.ts +16 -7
  112. package/dist/editable-artifact-codec-registry.js +19 -9
  113. package/dist/editable-artifact-committed-transaction.d.ts +2 -2
  114. package/dist/editable-artifact-committed-transaction.js +2 -2
  115. package/dist/editable-artifact-live.d.ts +11 -12
  116. package/dist/editable-artifact-live.js +110 -45
  117. package/dist/editable-artifact-live.js.map +1 -1
  118. package/dist/editable-artifact-serialized-commit.d.ts +2 -1
  119. package/dist/editable-artifact-serialized-commit.js +8 -7
  120. package/dist/editable-artifact-versions.d.ts +20 -5
  121. package/dist/editable-artifact-versions.js +23 -5
  122. package/dist/editable-artifacts.d.ts +2 -0
  123. package/dist/editable-artifacts.js +48 -36
  124. package/dist/external-identities.d.ts +784 -0
  125. package/dist/external-identities.js +44 -0
  126. package/dist/external-identities.js.map +1 -0
  127. package/dist/feedback.d.ts +51 -0
  128. package/dist/github-repository-contracts.d.ts +36 -0
  129. package/dist/github-repository-contracts.js +59 -0
  130. package/dist/github-repository-contracts.js.map +1 -0
  131. package/dist/github-repository.d.ts +14 -0
  132. package/dist/github-repository.js +36 -0
  133. package/dist/github-repository.js.map +1 -0
  134. package/dist/google-drive.d.ts +90 -1
  135. package/dist/google-drive.js +91 -15
  136. package/dist/google-drive.js.map +1 -1
  137. package/dist/governed-learning-activation.d.ts +154 -0
  138. package/dist/governed-learning-evaluator.d.ts +152 -0
  139. package/dist/host-mcp-bindings.d.ts +326 -0
  140. package/dist/host-mcp-bindings.js +252 -0
  141. package/dist/host-mcp-bindings.js.map +1 -0
  142. package/dist/image-generation.d.ts +1 -0
  143. package/dist/index.d.ts +27574 -5374
  144. package/dist/index.js +2531 -177
  145. package/dist/insights-usage.d.ts +877 -0
  146. package/dist/insights-usage.js +509 -0
  147. package/dist/insights-usage.js.map +1 -0
  148. package/dist/interaction.d.ts +1752 -13
  149. package/dist/knowledge-entries.d.ts +982 -0
  150. package/dist/knowledge-preparation.d.ts +237 -0
  151. package/dist/knowledge.d.ts +740 -0
  152. package/dist/managed-auth-session-sets.d.ts +241 -0
  153. package/dist/managed-auth-session-sets.js +191 -0
  154. package/dist/managed-auth-session-sets.js.map +1 -0
  155. package/dist/managed-sign-in-methods.d.ts +56 -0
  156. package/dist/managed-sign-in-methods.js +46 -0
  157. package/dist/managed-sign-in-methods.js.map +1 -0
  158. package/dist/mcp-catalog-limits.d.ts +2 -0
  159. package/dist/mcp-endpoint.d.ts +7 -0
  160. package/dist/mcp-endpoint.js +9 -0
  161. package/dist/mcp-endpoint.js.map +1 -0
  162. package/dist/mcp-oauth.d.ts +71 -0
  163. package/dist/modal-native-proof-v2.d.ts +587 -0
  164. package/dist/modal-native-proof-v2.js +37 -0
  165. package/dist/modal-native-proof-v2.js.map +1 -0
  166. package/dist/model-availability.d.ts +15 -0
  167. package/dist/model-connection-access.d.ts +24 -0
  168. package/dist/model-context-inspector.d.ts +329 -0
  169. package/dist/model-display.d.ts +38 -0
  170. package/dist/model-display.js +134 -0
  171. package/dist/model-display.js.map +1 -0
  172. package/dist/model-picker-order.d.ts +25 -0
  173. package/dist/model-picker-order.js +42 -0
  174. package/dist/model-picker-order.js.map +1 -0
  175. package/dist/organization-access.d.ts +231 -0
  176. package/dist/organization-access.js +34 -0
  177. package/dist/organization-access.js.map +1 -0
  178. package/dist/organization-integration-policy.d.ts +27 -0
  179. package/dist/organization-membership-lifecycle.d.ts +1022 -0
  180. package/dist/organization-model-usage.d.ts +146 -0
  181. package/dist/organization-model-usage.js +67 -0
  182. package/dist/organization-model-usage.js.map +1 -0
  183. package/dist/organization-recovery.d.ts +337 -0
  184. package/dist/organization-recovery.js +37 -0
  185. package/dist/organization-recovery.js.map +1 -0
  186. package/dist/organization-usage.d.ts +138 -0
  187. package/dist/permissions.d.ts +54 -0
  188. package/dist/personal-github.d.ts +320 -0
  189. package/dist/personal-github.js +222 -0
  190. package/dist/personal-github.js.map +1 -0
  191. package/dist/plugin-discovery.d.ts +35 -0
  192. package/dist/plugin-discovery.js +7 -0
  193. package/dist/plugin-discovery.js.map +1 -0
  194. package/dist/preference-registry.d.ts +44 -1
  195. package/dist/product-analytics.d.ts +113 -0
  196. package/dist/product-lifecycle-facts.d.ts +73 -0
  197. package/dist/remember.d.ts +350 -0
  198. package/dist/retained-output.d.ts +8 -0
  199. package/dist/sandbox-file-artifacts.d.ts +57 -0
  200. package/dist/sandbox-provider-command.d.ts +113 -0
  201. package/dist/sandbox-recovery.d.ts +146 -0
  202. package/dist/sandbox-snapshots.d.ts +39 -0
  203. package/dist/session-final-reply.d.ts +6 -0
  204. package/dist/session-final-reply.js +9 -0
  205. package/dist/session-final-reply.js.map +1 -0
  206. package/dist/session-goal-reports.d.ts +21 -0
  207. package/dist/session-history-import.d.ts +947 -0
  208. package/dist/session-list-entries.d.ts +4 -0
  209. package/dist/session-list-entries.js +51 -0
  210. package/dist/session-list-entries.js.map +1 -0
  211. package/dist/session-mcp-projections.d.ts +215 -0
  212. package/dist/session-message-search.d.ts +68 -0
  213. package/dist/session-titles.d.ts +68 -0
  214. package/dist/session-titles.js +25 -0
  215. package/dist/session-titles.js.map +1 -0
  216. package/dist/session-topology-primitives.d.ts +22 -0
  217. package/dist/signup-attribution.d.ts +39 -0
  218. package/dist/site-request-headers.test.d.ts +1 -0
  219. package/dist/site-session-http.d.ts +11 -0
  220. package/dist/site-session-http.js +11 -0
  221. package/dist/site-session-http.js.map +1 -0
  222. package/dist/skill-catalog-context.d.ts +7 -0
  223. package/dist/skill-files.d.ts +12 -0
  224. package/dist/skill-metadata.d.ts +9 -0
  225. package/dist/skill-use.d.ts +61 -0
  226. package/dist/skills.d.ts +185 -0
  227. package/dist/slack-bot-scopes.d.ts +46 -21
  228. package/dist/slack-bot-scopes.js +14 -3
  229. package/dist/slack-rest-mcp.d.ts +31 -0
  230. package/dist/slack-rest-mcp.js +19 -0
  231. package/dist/slack-rest-mcp.js.map +1 -0
  232. package/dist/slack-task-policy.d.ts +294 -0
  233. package/dist/spreadsheet-artifact-commands.d.ts +2 -3
  234. package/dist/spreadsheet-artifact-commands.js +4 -2
  235. package/dist/spreadsheet-artifact-query.js +3 -2
  236. package/dist/subscription-account-pools.d.ts +292 -0
  237. package/dist/task-notes.d.ts +169 -0
  238. package/dist/tool-catalog.d.ts +286 -0
  239. package/dist/tool-result-spill.d.ts +16 -0
  240. package/dist/usage-allowances.d.ts +285 -0
  241. package/dist/usage-allowances.js +49 -0
  242. package/dist/usage-allowances.js.map +1 -0
  243. package/dist/video-generation.d.ts +51 -0
  244. package/dist/video-generation.js +9 -1
  245. package/dist/work-claims.d.ts +411 -0
  246. package/dist/workspace-instruction-policies.d.ts +94 -0
  247. package/dist/workspace-integration-wire.d.ts +36 -0
  248. package/dist/workspace-integration-wire.js +23 -0
  249. package/dist/workspace-integration-wire.js.map +1 -0
  250. package/dist/workspace-integrations.d.ts +948 -0
  251. package/dist/workspace-learning-administration.d.ts +289 -0
  252. package/dist/workspace-learning-policy.d.ts +1 -1
  253. package/dist/workspace-state.d.ts +85 -416
  254. package/dist/xai-provider-account-authority.d.ts +26 -0
  255. package/dist/xai-provider-account-authority.js +9 -0
  256. package/dist/xai-provider-account-authority.js.map +1 -0
  257. package/package.json +146 -1
  258. package/src/agent-authored-durable-text.ts +116 -0
  259. package/src/agent-config.ts +1527 -0
  260. package/src/agent-instruction-changes.ts +98 -0
  261. package/src/agent-learning.ts +161 -0
  262. package/src/agent-topology.ts +69 -0
  263. package/src/allowance-refusal.ts +81 -0
  264. package/src/analytics-consent-report.ts +20 -0
  265. package/src/api-key-presets.ts +25 -0
  266. package/src/artifact-catalog.ts +60 -0
  267. package/src/artifacts.ts +146 -18
  268. package/src/atlassian-native-retirement.ts +33 -0
  269. package/src/browser-storage.ts +10 -0
  270. package/src/bundled-skills.ts +73 -0
  271. package/src/canonical-human-identities.ts +93 -0
  272. package/src/claude-provider-account-authority.ts +12 -0
  273. package/src/claude-subscription-oauth.ts +62 -0
  274. package/src/claude-subscription-usage.ts +59 -0
  275. package/src/client-error-report.ts +184 -0
  276. package/src/code-search.ts +105 -0
  277. package/src/codex-provider-account-authority.ts +37 -0
  278. package/src/company-brain-governed-writes.ts +356 -0
  279. package/src/company-brain.ts +201 -0
  280. package/src/company-profile.ts +167 -1
  281. package/src/connect.ts +202 -0
  282. package/src/connection-account-label.ts +46 -0
  283. package/src/connection-authority.ts +213 -0
  284. package/src/connector-attachments.ts +327 -0
  285. package/src/connector-tool-permissions.ts +60 -0
  286. package/src/direct-model-provider.ts +98 -0
  287. package/src/editable-artifact-codec-registry.ts +55 -17
  288. package/src/editable-artifact-committed-transaction.ts +44 -31
  289. package/src/editable-artifact-live.ts +123 -57
  290. package/src/editable-artifact-serialized-commit.ts +2 -1
  291. package/src/editable-artifact-versions.ts +26 -5
  292. package/src/editable-artifacts.ts +2 -0
  293. package/src/external-identities.ts +285 -0
  294. package/src/feedback.ts +39 -0
  295. package/src/github-repository-contracts.ts +85 -0
  296. package/src/github-repository.ts +59 -0
  297. package/src/google-drive.ts +76 -4
  298. package/src/governed-learning-activation.ts +191 -0
  299. package/src/governed-learning-evaluator.ts +176 -0
  300. package/src/host-mcp-bindings.ts +298 -0
  301. package/src/image-generation.ts +8 -2
  302. package/src/index.ts +8019 -1799
  303. package/src/insights-usage.ts +679 -0
  304. package/src/interaction.ts +1102 -6
  305. package/src/knowledge-entries.ts +375 -0
  306. package/src/knowledge-preparation.ts +50 -0
  307. package/src/knowledge.ts +335 -0
  308. package/src/managed-auth-session-sets.ts +253 -0
  309. package/src/managed-sign-in-methods.ts +37 -0
  310. package/src/mcp-catalog-limits.ts +2 -0
  311. package/src/mcp-endpoint.ts +30 -0
  312. package/src/mcp-oauth.ts +66 -0
  313. package/src/modal-native-proof-v2.ts +398 -0
  314. package/src/model-availability.ts +22 -0
  315. package/src/model-connection-access.ts +17 -0
  316. package/src/model-context-inspector.ts +139 -0
  317. package/src/model-display.ts +195 -0
  318. package/src/model-picker-order.ts +97 -0
  319. package/src/organization-access.ts +176 -0
  320. package/src/organization-integration-policy.ts +54 -0
  321. package/src/organization-membership-lifecycle.ts +559 -0
  322. package/src/organization-model-usage.ts +72 -0
  323. package/src/organization-recovery.ts +186 -0
  324. package/src/organization-usage.ts +79 -0
  325. package/src/permissions.ts +58 -0
  326. package/src/personal-github.ts +267 -0
  327. package/src/plugin-discovery.ts +33 -0
  328. package/src/preference-registry.ts +20 -1
  329. package/src/product-analytics.ts +253 -0
  330. package/src/product-lifecycle-facts.ts +121 -0
  331. package/src/remember.ts +243 -0
  332. package/src/retained-output.ts +20 -3
  333. package/src/sandbox-file-artifacts.ts +73 -0
  334. package/src/sandbox-provider-command.ts +82 -0
  335. package/src/sandbox-recovery.ts +116 -0
  336. package/src/sandbox-snapshots.ts +142 -0
  337. package/src/session-final-reply.ts +16 -0
  338. package/src/session-goal-reports.ts +55 -0
  339. package/src/session-history-import.ts +159 -0
  340. package/src/session-list-entries.ts +91 -0
  341. package/src/session-mcp-projections.ts +273 -0
  342. package/src/session-message-search.ts +54 -0
  343. package/src/session-titles.ts +467 -0
  344. package/src/session-topology-primitives.ts +21 -0
  345. package/src/signup-attribution.ts +81 -0
  346. package/src/site-request-headers.test.ts +28 -0
  347. package/src/site-session-http.ts +63 -0
  348. package/src/skill-catalog-context.ts +50 -0
  349. package/src/skill-files.ts +52 -0
  350. package/src/skill-metadata.ts +40 -0
  351. package/src/skill-use.ts +77 -0
  352. package/src/skills.ts +136 -0
  353. package/src/slack-bot-scopes.ts +106 -42
  354. package/src/slack-rest-mcp.ts +194 -0
  355. package/src/slack-task-policy.ts +215 -0
  356. package/src/spreadsheet-artifact-commands.ts +12 -13
  357. package/src/subscription-account-pools.ts +44 -0
  358. package/src/task-notes.ts +105 -0
  359. package/src/tool-catalog.ts +155 -0
  360. package/src/tool-result-spill.ts +35 -0
  361. package/src/usage-allowances.ts +187 -0
  362. package/src/video-generation.ts +43 -6
  363. package/src/work-claims.ts +266 -0
  364. package/src/workspace-instruction-policies.ts +31 -0
  365. package/src/workspace-integration-wire.ts +99 -0
  366. package/src/workspace-integrations.ts +640 -0
  367. package/src/workspace-learning-administration.ts +88 -0
  368. package/src/workspace-learning-policy.ts +4 -3
  369. package/src/workspace-state.ts +16 -126
  370. package/src/xai-provider-account-authority.ts +38 -0
  371. package/dist/chunk-52SGB2QO.js.map +0 -1
  372. package/dist/chunk-5UDNP7AO.js.map +0 -1
  373. package/dist/chunk-BVGIYW7D.js +0 -11
  374. package/dist/chunk-BVGIYW7D.js.map +0 -1
  375. package/dist/chunk-FJBG5E4O.js.map +0 -1
  376. package/dist/chunk-H5BVCZKF.js.map +0 -1
  377. package/dist/chunk-LSB7GRLG.js.map +0 -1
  378. package/dist/chunk-TZ6YEYN4.js.map +0 -1
  379. package/dist/chunk-VA22KRHS.js +0 -15177
  380. package/dist/chunk-VA22KRHS.js.map +0 -1
  381. package/dist/chunk-Y3MLSLB4.js.map +0 -1
  382. /package/dist/{chunk-CADSX6UN.js.map → chunk-Y3KNXVTD.js.map} +0 -0
@@ -0,0 +1,326 @@
1
+ import { z } from "zod";
2
+ export { HostMcpCreateSelections, type HostMcpCreateSelection } from "./index.js";
3
+ import { McpServerConnectionRef } from "./index.js";
4
+ export declare const HostMcpOwnerSubject: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
5
+ /** Credential-free, immutable destination and host connection selection. */
6
+ export declare const HostMcpBindingDefinition: z.ZodObject<{
7
+ serverId: z.ZodString;
8
+ destinationUrl: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
9
+ connectionRef: z.ZodObject<{
10
+ connectionId: z.ZodOptional<z.ZodString>;
11
+ accountSelection: z.ZodOptional<z.ZodLiteral<"all_eligible">>;
12
+ authoritySource: z.ZodOptional<z.ZodLiteral<"host">>;
13
+ hostBinding: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
14
+ bindingId: z.ZodString;
15
+ generation: z.ZodNumber;
16
+ }, z.core.$strict>, z.ZodObject<{
17
+ selection: z.ZodLiteral<"accepted_turn">;
18
+ }, z.core.$strict>]>>;
19
+ provider: z.ZodOptional<z.ZodString>;
20
+ providerDomain: z.ZodString;
21
+ kind: z.ZodOptional<z.ZodEnum<{
22
+ api_key: "api_key";
23
+ app_install: "app_install";
24
+ delegated: "delegated";
25
+ oauth2: "oauth2";
26
+ }>>;
27
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
28
+ resource: z.ZodOptional<z.ZodString>;
29
+ selectedResources: z.ZodOptional<z.ZodArray<z.ZodObject<{
30
+ id: z.ZodString;
31
+ kind: z.ZodLiteral<"repository">;
32
+ }, z.core.$strict>>>;
33
+ subjectScope: z.ZodOptional<z.ZodEnum<{
34
+ subject: "subject";
35
+ workspace: "workspace";
36
+ }>>;
37
+ }, z.core.$strict>;
38
+ }, z.core.$strict>;
39
+ export type HostMcpBindingDefinition = z.infer<typeof HostMcpBindingDefinition>;
40
+ /** Configuration ceiling, never execution authority. The complete destination
41
+ * and provider/scope/resource selection stay exact; only the account identifier
42
+ * is chosen by a captured owner grant in explicit accepted-turn mode. */
43
+ export type HostMcpBindingSelection = {
44
+ serverId: string;
45
+ destinationUrl: string;
46
+ connectionRef: McpServerConnectionRef;
47
+ };
48
+ export declare function hostMcpBindingMatchesSelection(binding: {
49
+ id: string;
50
+ generation: number;
51
+ definition: HostMcpBindingDefinition;
52
+ }, selection: HostMcpBindingSelection): boolean;
53
+ export declare const HostMcpBinding: z.ZodObject<{
54
+ id: z.ZodString;
55
+ accountId: z.ZodString;
56
+ workspaceId: z.ZodString;
57
+ ownerSubjectId: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
58
+ authorizationRevision: z.ZodNumber;
59
+ generation: z.ZodNumber;
60
+ status: z.ZodEnum<{
61
+ active: "active";
62
+ revoked: "revoked";
63
+ }>;
64
+ definition: z.ZodObject<{
65
+ serverId: z.ZodString;
66
+ destinationUrl: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
67
+ connectionRef: z.ZodObject<{
68
+ connectionId: z.ZodOptional<z.ZodString>;
69
+ accountSelection: z.ZodOptional<z.ZodLiteral<"all_eligible">>;
70
+ authoritySource: z.ZodOptional<z.ZodLiteral<"host">>;
71
+ hostBinding: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
72
+ bindingId: z.ZodString;
73
+ generation: z.ZodNumber;
74
+ }, z.core.$strict>, z.ZodObject<{
75
+ selection: z.ZodLiteral<"accepted_turn">;
76
+ }, z.core.$strict>]>>;
77
+ provider: z.ZodOptional<z.ZodString>;
78
+ providerDomain: z.ZodString;
79
+ kind: z.ZodOptional<z.ZodEnum<{
80
+ api_key: "api_key";
81
+ app_install: "app_install";
82
+ delegated: "delegated";
83
+ oauth2: "oauth2";
84
+ }>>;
85
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
86
+ resource: z.ZodOptional<z.ZodString>;
87
+ selectedResources: z.ZodOptional<z.ZodArray<z.ZodObject<{
88
+ id: z.ZodString;
89
+ kind: z.ZodLiteral<"repository">;
90
+ }, z.core.$strict>>>;
91
+ subjectScope: z.ZodOptional<z.ZodEnum<{
92
+ subject: "subject";
93
+ workspace: "workspace";
94
+ }>>;
95
+ }, z.core.$strict>;
96
+ }, z.core.$strict>;
97
+ createdAt: z.ZodString;
98
+ revokedAt: z.ZodNullable<z.ZodString>;
99
+ }, z.core.$strict>;
100
+ export type HostMcpBinding = z.infer<typeof HostMcpBinding>;
101
+ export declare const CreateHostMcpBindingRequest: z.ZodObject<{
102
+ operationId: z.ZodString;
103
+ definition: z.ZodObject<{
104
+ serverId: z.ZodString;
105
+ destinationUrl: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
106
+ connectionRef: z.ZodObject<{
107
+ connectionId: z.ZodOptional<z.ZodString>;
108
+ accountSelection: z.ZodOptional<z.ZodLiteral<"all_eligible">>;
109
+ authoritySource: z.ZodOptional<z.ZodLiteral<"host">>;
110
+ hostBinding: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
111
+ bindingId: z.ZodString;
112
+ generation: z.ZodNumber;
113
+ }, z.core.$strict>, z.ZodObject<{
114
+ selection: z.ZodLiteral<"accepted_turn">;
115
+ }, z.core.$strict>]>>;
116
+ provider: z.ZodOptional<z.ZodString>;
117
+ providerDomain: z.ZodString;
118
+ kind: z.ZodOptional<z.ZodEnum<{
119
+ api_key: "api_key";
120
+ app_install: "app_install";
121
+ delegated: "delegated";
122
+ oauth2: "oauth2";
123
+ }>>;
124
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
125
+ resource: z.ZodOptional<z.ZodString>;
126
+ selectedResources: z.ZodOptional<z.ZodArray<z.ZodObject<{
127
+ id: z.ZodString;
128
+ kind: z.ZodLiteral<"repository">;
129
+ }, z.core.$strict>>>;
130
+ subjectScope: z.ZodOptional<z.ZodEnum<{
131
+ subject: "subject";
132
+ workspace: "workspace";
133
+ }>>;
134
+ }, z.core.$strict>;
135
+ }, z.core.$strict>;
136
+ }, z.core.$strict>;
137
+ export type CreateHostMcpBindingRequest = z.infer<typeof CreateHostMcpBindingRequest>;
138
+ export declare const IssueHostMcpDelegationRequest: z.ZodObject<{
139
+ operationId: z.ZodString;
140
+ bindingId: z.ZodString;
141
+ expectedBindingGeneration: z.ZodNumber;
142
+ grant: z.ZodObject<{
143
+ scope: z.ZodLiteral<"user">;
144
+ mode: z.ZodEnum<{
145
+ always: "always";
146
+ session: "session";
147
+ }>;
148
+ context: z.ZodEnum<{
149
+ user_private: "user_private";
150
+ workspace_shared: "workspace_shared";
151
+ }>;
152
+ sessionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
153
+ expectedAuthorityEpoch: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
154
+ workspaceSharedAcknowledged: z.ZodDefault<z.ZodBoolean>;
155
+ }, z.core.$strict>;
156
+ }, z.core.$strict>;
157
+ export type IssueHostMcpDelegationRequest = z.infer<typeof IssueHostMcpDelegationRequest>;
158
+ export declare const HostMcpDelegation: z.ZodObject<{
159
+ id: z.ZodString;
160
+ accountId: z.ZodString;
161
+ workspaceId: z.ZodString;
162
+ ownerSubjectId: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
163
+ ownerAuthorizationRevision: z.ZodNumber;
164
+ bindingId: z.ZodString;
165
+ bindingGeneration: z.ZodNumber;
166
+ grant: z.ZodObject<{
167
+ scope: z.ZodLiteral<"user">;
168
+ mode: z.ZodEnum<{
169
+ always: "always";
170
+ session: "session";
171
+ }>;
172
+ context: z.ZodEnum<{
173
+ user_private: "user_private";
174
+ workspace_shared: "workspace_shared";
175
+ }>;
176
+ sessionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
177
+ expectedAuthorityEpoch: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
178
+ workspaceSharedAcknowledged: z.ZodDefault<z.ZodBoolean>;
179
+ }, z.core.$strict>;
180
+ generation: z.ZodNumber;
181
+ status: z.ZodEnum<{
182
+ active: "active";
183
+ revoked: "revoked";
184
+ }>;
185
+ createdAt: z.ZodString;
186
+ revokedAt: z.ZodNullable<z.ZodString>;
187
+ }, z.core.$strict>;
188
+ export type HostMcpDelegation = z.infer<typeof HostMcpDelegation>;
189
+ /** Internal admission evidence, not a caller-supplied permission or credential.
190
+ * Persistence must construct this from live authenticated authority and freeze
191
+ * it with accepted work. Runtime use must independently revalidate that work,
192
+ * membership, binding and delegation. No API key is retained as execution rights.
193
+ */
194
+ export declare const HostMcpAcceptedAuthority: z.ZodObject<{
195
+ version: z.ZodLiteral<1>;
196
+ accountId: z.ZodString;
197
+ workspaceId: z.ZodString;
198
+ targetSessionId: z.ZodString;
199
+ targetSessionVisibility: z.ZodEnum<{
200
+ user_private: "user_private";
201
+ workspace_shared: "workspace_shared";
202
+ }>;
203
+ targetSessionAuthorityEpoch: z.ZodNumber;
204
+ acceptedWork: z.ZodDiscriminatedUnion<[z.ZodObject<{
205
+ kind: z.ZodLiteral<"turn">;
206
+ turnId: z.ZodString;
207
+ }, z.core.$strict>, z.ZodObject<{
208
+ kind: z.ZodLiteral<"scheduled_task">;
209
+ taskId: z.ZodString;
210
+ taskAuthorityRevision: z.ZodNumber;
211
+ runId: z.ZodString;
212
+ }, z.core.$strict>], "kind">;
213
+ bindingId: z.ZodString;
214
+ bindingGeneration: z.ZodNumber;
215
+ definition: z.ZodObject<{
216
+ serverId: z.ZodString;
217
+ destinationUrl: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
218
+ connectionRef: z.ZodObject<{
219
+ connectionId: z.ZodOptional<z.ZodString>;
220
+ accountSelection: z.ZodOptional<z.ZodLiteral<"all_eligible">>;
221
+ authoritySource: z.ZodOptional<z.ZodLiteral<"host">>;
222
+ hostBinding: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
223
+ bindingId: z.ZodString;
224
+ generation: z.ZodNumber;
225
+ }, z.core.$strict>, z.ZodObject<{
226
+ selection: z.ZodLiteral<"accepted_turn">;
227
+ }, z.core.$strict>]>>;
228
+ provider: z.ZodOptional<z.ZodString>;
229
+ providerDomain: z.ZodString;
230
+ kind: z.ZodOptional<z.ZodEnum<{
231
+ api_key: "api_key";
232
+ app_install: "app_install";
233
+ delegated: "delegated";
234
+ oauth2: "oauth2";
235
+ }>>;
236
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
237
+ resource: z.ZodOptional<z.ZodString>;
238
+ selectedResources: z.ZodOptional<z.ZodArray<z.ZodObject<{
239
+ id: z.ZodString;
240
+ kind: z.ZodLiteral<"repository">;
241
+ }, z.core.$strict>>>;
242
+ subjectScope: z.ZodOptional<z.ZodEnum<{
243
+ subject: "subject";
244
+ workspace: "workspace";
245
+ }>>;
246
+ }, z.core.$strict>;
247
+ }, z.core.$strict>;
248
+ ownerSubjectId: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
249
+ ownerOrganizationMembershipId: z.ZodString;
250
+ ownerMembershipAuthorizationRevision: z.ZodNumber;
251
+ delegationId: z.ZodString;
252
+ delegationGeneration: z.ZodNumber;
253
+ scheduledOrigin: z.ZodOptional<z.ZodObject<{
254
+ taskId: z.ZodString;
255
+ taskAuthorityRevision: z.ZodNumber;
256
+ runId: z.ZodString;
257
+ }, z.core.$strict>>;
258
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
259
+ kind: z.ZodLiteral<"direct">;
260
+ }, z.core.$strict>, z.ZodObject<{
261
+ kind: z.ZodLiteral<"scheduled_task">;
262
+ }, z.core.$strict>, z.ZodObject<{
263
+ kind: z.ZodLiteral<"child_turn">;
264
+ sessionId: z.ZodString;
265
+ turnId: z.ZodString;
266
+ }, z.core.$strict>, z.ZodObject<{
267
+ kind: z.ZodLiteral<"inherited_turn">;
268
+ sessionId: z.ZodString;
269
+ turnId: z.ZodString;
270
+ }, z.core.$strict>], "kind">;
271
+ }, z.core.$strict>;
272
+ export type HostMcpAcceptedAuthority = z.infer<typeof HostMcpAcceptedAuthority>;
273
+ /** Credential-free selection frozen on one immutable scheduled-task revision. */
274
+ export declare const HostMcpTaskAuthority: z.ZodObject<{
275
+ version: z.ZodLiteral<1>;
276
+ accountId: z.ZodString;
277
+ workspaceId: z.ZodString;
278
+ taskId: z.ZodString;
279
+ taskAuthorityRevision: z.ZodNumber;
280
+ taskExecutionDigest: z.ZodString;
281
+ ownerSubjectId: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
282
+ ownerOrganizationMembershipId: z.ZodString;
283
+ ownerMembershipAuthorizationRevision: z.ZodNumber;
284
+ bindingId: z.ZodString;
285
+ bindingGeneration: z.ZodNumber;
286
+ delegationId: z.ZodString;
287
+ delegationGeneration: z.ZodNumber;
288
+ definition: z.ZodObject<{
289
+ serverId: z.ZodString;
290
+ destinationUrl: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
291
+ connectionRef: z.ZodObject<{
292
+ connectionId: z.ZodOptional<z.ZodString>;
293
+ accountSelection: z.ZodOptional<z.ZodLiteral<"all_eligible">>;
294
+ authoritySource: z.ZodOptional<z.ZodLiteral<"host">>;
295
+ hostBinding: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
296
+ bindingId: z.ZodString;
297
+ generation: z.ZodNumber;
298
+ }, z.core.$strict>, z.ZodObject<{
299
+ selection: z.ZodLiteral<"accepted_turn">;
300
+ }, z.core.$strict>]>>;
301
+ provider: z.ZodOptional<z.ZodString>;
302
+ providerDomain: z.ZodString;
303
+ kind: z.ZodOptional<z.ZodEnum<{
304
+ api_key: "api_key";
305
+ app_install: "app_install";
306
+ delegated: "delegated";
307
+ oauth2: "oauth2";
308
+ }>>;
309
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
310
+ resource: z.ZodOptional<z.ZodString>;
311
+ selectedResources: z.ZodOptional<z.ZodArray<z.ZodObject<{
312
+ id: z.ZodString;
313
+ kind: z.ZodLiteral<"repository">;
314
+ }, z.core.$strict>>>;
315
+ subjectScope: z.ZodOptional<z.ZodEnum<{
316
+ subject: "subject";
317
+ workspace: "workspace";
318
+ }>>;
319
+ }, z.core.$strict>;
320
+ }, z.core.$strict>;
321
+ context: z.ZodEnum<{
322
+ user_private: "user_private";
323
+ workspace_shared: "workspace_shared";
324
+ }>;
325
+ }, z.core.$strict>;
326
+ export type HostMcpTaskAuthority = z.infer<typeof HostMcpTaskAuthority>;
@@ -0,0 +1,252 @@
1
+ import {
2
+ ExternalIdentity
3
+ } from "./chunk-KR2V42UZ.js";
4
+ import {
5
+ ConnectionUseAuthoritySnapshot
6
+ } from "./chunk-46KLD2UH.js";
7
+ import {
8
+ HostMcpCreateSelections,
9
+ ManagedUserResourceGrantMode,
10
+ McpServerConnectionRef,
11
+ SessionTenancyVisibility,
12
+ stableJson
13
+ } from "./chunk-X7ETVO4P.js";
14
+ import "./chunk-5IXYF6XN.js";
15
+ import "./chunk-NRMCVHAU.js";
16
+ import "./chunk-WYBDERIY.js";
17
+ import "./chunk-4JGHSSB7.js";
18
+ import "./chunk-EK7NDGFR.js";
19
+ import "./chunk-O77VSFYZ.js";
20
+ import "./chunk-NVJMJWLL.js";
21
+ import "./chunk-SIOU2K4U.js";
22
+ import "./chunk-YRKRZ6OF.js";
23
+ import "./chunk-2VORLN2R.js";
24
+ import "./chunk-FZ6BXQHL.js";
25
+ import "./chunk-GRG7PHWQ.js";
26
+ import "./chunk-YRXAWWCU.js";
27
+ import "./chunk-2ACYHZFB.js";
28
+ import "./chunk-KHHZTBP7.js";
29
+ import "./chunk-YBW5JSA3.js";
30
+ import "./chunk-RJ76DRPO.js";
31
+ import "./chunk-QR5D2IQC.js";
32
+ import "./chunk-3SIZGL3O.js";
33
+ import "./chunk-RIY7GYQS.js";
34
+ import "./chunk-JUFK3T4Q.js";
35
+ import "./chunk-TSCDAGET.js";
36
+ import "./chunk-BCS7WHCK.js";
37
+ import "./chunk-D2HKF2EF.js";
38
+ import "./chunk-MYBZRDTY.js";
39
+ import "./chunk-MZLBPKFE.js";
40
+ import "./chunk-RKX3NQYS.js";
41
+ import "./chunk-Y3KNXVTD.js";
42
+ import "./chunk-TXTQIYCV.js";
43
+ import "./chunk-PX3VCKAU.js";
44
+
45
+ // src/host-mcp-bindings.ts
46
+ import { z } from "zod";
47
+ var HostMcpOwnerSubject = z.union([
48
+ ExternalIdentity.shape.subjectId,
49
+ z.string().max(4096).regex(/^user:[^\r\n\u0000]+$/)
50
+ ]);
51
+ var HostMcpBindingDefinition = z.object({
52
+ serverId: z.string().min(1).max(256),
53
+ destinationUrl: z.string().url().max(4096).refine((value) => {
54
+ const url = new URL(value);
55
+ return url.protocol === "https:" && !url.username && !url.password && !url.hash;
56
+ }, "Host binding requires an HTTPS destination without userinfo or fragment").transform((value) => new URL(value).toString()),
57
+ connectionRef: McpServerConnectionRef
58
+ }).strict().superRefine((value, context) => {
59
+ if (value.connectionRef.hostBinding)
60
+ context.addIssue({
61
+ code: "custom",
62
+ path: ["connectionRef", "hostBinding"],
63
+ message: "A binding definition cannot reference another binding"
64
+ });
65
+ if (value.connectionRef.authoritySource !== "host" || !value.connectionRef.connectionId)
66
+ context.addIssue({
67
+ code: "custom",
68
+ path: ["connectionRef"],
69
+ message: "Explicit host connection authority is required"
70
+ });
71
+ if (new TextEncoder().encode(JSON.stringify(value)).byteLength > 65536)
72
+ context.addIssue({ code: "custom", message: "Host binding definition exceeds 64 KiB" });
73
+ });
74
+ function hostMcpBindingMatchesSelection(binding, selection) {
75
+ const parsed = McpServerConnectionRef.safeParse(selection.connectionRef);
76
+ if (!parsed.success || !parsed.data.hostBinding) return false;
77
+ const { hostBinding, ...configuredRef } = parsed.data;
78
+ const definition = HostMcpBindingDefinition.safeParse(binding.definition);
79
+ if (!definition.success) return false;
80
+ let destinationUrl;
81
+ try {
82
+ destinationUrl = new URL(selection.destinationUrl).toString();
83
+ } catch {
84
+ return false;
85
+ }
86
+ if (selection.serverId !== definition.data.serverId || destinationUrl !== definition.data.destinationUrl)
87
+ return false;
88
+ if ("selection" in hostBinding) {
89
+ const { connectionId: _connectionId, ...selectedRef } = definition.data.connectionRef;
90
+ return stableJson(configuredRef) === stableJson(selectedRef);
91
+ }
92
+ return binding.id === hostBinding.bindingId && binding.generation === hostBinding.generation && stableJson(configuredRef) === stableJson(definition.data.connectionRef);
93
+ }
94
+ var HostMcpBinding = z.object({
95
+ id: z.string().uuid(),
96
+ accountId: z.string().uuid(),
97
+ workspaceId: z.string().uuid(),
98
+ ownerSubjectId: HostMcpOwnerSubject,
99
+ authorizationRevision: z.number().int().positive().safe(),
100
+ generation: z.number().int().positive().safe(),
101
+ status: z.enum(["active", "revoked"]),
102
+ definition: HostMcpBindingDefinition,
103
+ createdAt: z.string().datetime({ offset: true }),
104
+ revokedAt: z.string().datetime({ offset: true }).nullable()
105
+ }).strict();
106
+ var CreateHostMcpBindingRequest = z.object({
107
+ operationId: z.string().uuid(),
108
+ definition: HostMcpBindingDefinition
109
+ }).strict();
110
+ var HostMcpGrantRequest = z.object({
111
+ scope: z.literal("user"),
112
+ mode: ManagedUserResourceGrantMode,
113
+ context: SessionTenancyVisibility,
114
+ sessionId: z.string().uuid().nullable().optional(),
115
+ expectedAuthorityEpoch: z.number().int().positive().nullable().optional(),
116
+ workspaceSharedAcknowledged: z.boolean().default(false)
117
+ }).strict().superRefine((value, context) => {
118
+ if (value.context === "workspace_shared" && !value.workspaceSharedAcknowledged) {
119
+ context.addIssue({
120
+ code: "custom",
121
+ path: ["workspaceSharedAcknowledged"],
122
+ message: "workspace_shared requires durable shared-output acknowledgement"
123
+ });
124
+ }
125
+ if (value.mode === "always" && (value.sessionId || value.expectedAuthorityEpoch)) {
126
+ context.addIssue({ code: "custom", path: ["sessionId"], message: "always is unbound" });
127
+ }
128
+ if (value.mode === "session" && (!value.sessionId || !value.expectedAuthorityEpoch)) {
129
+ context.addIssue({
130
+ code: "custom",
131
+ path: ["sessionId"],
132
+ message: "session requires a target session and expectedAuthorityEpoch"
133
+ });
134
+ }
135
+ });
136
+ var HostMcpDelegationGrant = HostMcpGrantRequest.superRefine((value, context) => {
137
+ if (Boolean(value.sessionId) !== (value.expectedAuthorityEpoch != null) || value.expectedAuthorityEpoch != null && !Number.isSafeInteger(value.expectedAuthorityEpoch)) {
138
+ context.addIssue({
139
+ code: "custom",
140
+ message: "Host session grants require a matching safe authority epoch"
141
+ });
142
+ }
143
+ });
144
+ var IssueHostMcpDelegationRequest = z.object({
145
+ operationId: z.string().uuid(),
146
+ bindingId: z.string().uuid(),
147
+ expectedBindingGeneration: z.number().int().positive().safe(),
148
+ grant: HostMcpDelegationGrant
149
+ }).strict();
150
+ var HostMcpDelegation = z.object({
151
+ id: z.string().uuid(),
152
+ accountId: z.string().uuid(),
153
+ workspaceId: z.string().uuid(),
154
+ ownerSubjectId: HostMcpOwnerSubject,
155
+ ownerAuthorizationRevision: z.number().int().positive().safe(),
156
+ bindingId: z.string().uuid(),
157
+ bindingGeneration: z.number().int().positive().safe(),
158
+ grant: HostMcpDelegationGrant,
159
+ generation: z.number().int().positive().safe(),
160
+ status: z.enum(["active", "revoked"]),
161
+ createdAt: z.string().datetime({ offset: true }),
162
+ revokedAt: z.string().datetime({ offset: true }).nullable()
163
+ }).strict();
164
+ var HostMcpAcceptedAuthority = z.object({
165
+ version: z.literal(1),
166
+ accountId: z.string().uuid(),
167
+ workspaceId: z.string().uuid(),
168
+ targetSessionId: z.string().uuid(),
169
+ targetSessionVisibility: SessionTenancyVisibility,
170
+ targetSessionAuthorityEpoch: z.number().int().positive().safe(),
171
+ acceptedWork: ConnectionUseAuthoritySnapshot.shape.acceptedWork,
172
+ bindingId: z.string().uuid(),
173
+ bindingGeneration: z.number().int().positive().safe(),
174
+ definition: HostMcpBindingDefinition,
175
+ ownerSubjectId: HostMcpOwnerSubject,
176
+ ownerOrganizationMembershipId: z.string().uuid(),
177
+ ownerMembershipAuthorizationRevision: z.number().int().positive().safe(),
178
+ delegationId: z.string().uuid(),
179
+ delegationGeneration: z.number().int().positive().safe(),
180
+ scheduledOrigin: z.object({
181
+ taskId: z.string().uuid(),
182
+ taskAuthorityRevision: z.number().int().positive().safe(),
183
+ runId: z.string().uuid()
184
+ }).strict().optional(),
185
+ source: z.discriminatedUnion("kind", [
186
+ z.object({ kind: z.literal("direct") }).strict(),
187
+ z.object({ kind: z.literal("scheduled_task") }).strict(),
188
+ z.object({
189
+ kind: z.literal("child_turn"),
190
+ sessionId: z.string().uuid(),
191
+ turnId: z.string().uuid()
192
+ }).strict(),
193
+ z.object({
194
+ kind: z.literal("inherited_turn"),
195
+ sessionId: z.string().uuid(),
196
+ turnId: z.string().uuid()
197
+ }).strict()
198
+ ])
199
+ }).strict().superRefine((value, context) => {
200
+ if (value.source.kind === "direct" && value.scheduledOrigin || value.source.kind === "scheduled_task" && (!value.scheduledOrigin || value.acceptedWork.kind !== "scheduled_task" || value.scheduledOrigin.taskId !== value.acceptedWork.taskId || value.scheduledOrigin.runId !== value.acceptedWork.runId || value.scheduledOrigin.taskAuthorityRevision !== value.acceptedWork.taskAuthorityRevision))
201
+ context.addIssue({
202
+ code: "custom",
203
+ message: "Scheduled host authority must retain its exact run origin"
204
+ });
205
+ if (value.acceptedWork.kind === "turn" && value.source.kind === "inherited_turn" && value.acceptedWork.turnId === value.source.turnId) {
206
+ context.addIssue({
207
+ code: "custom",
208
+ path: ["source"],
209
+ message: "Accepted work cannot inherit from itself"
210
+ });
211
+ }
212
+ if (value.acceptedWork.kind === "scheduled_task" && !Number.isSafeInteger(value.acceptedWork.taskAuthorityRevision)) {
213
+ context.addIssue({
214
+ code: "custom",
215
+ path: ["acceptedWork"],
216
+ message: "Task authority revision must be a safe integer"
217
+ });
218
+ }
219
+ if (new TextEncoder().encode(JSON.stringify(value)).byteLength > 65536) {
220
+ context.addIssue({ code: "custom", message: "Host accepted authority exceeds 64 KiB" });
221
+ }
222
+ });
223
+ var HostMcpTaskAuthority = z.object({
224
+ version: z.literal(1),
225
+ accountId: z.string().uuid(),
226
+ workspaceId: z.string().uuid(),
227
+ taskId: z.string().uuid(),
228
+ taskAuthorityRevision: z.number().int().positive().safe(),
229
+ taskExecutionDigest: z.string().regex(/^[0-9a-f]{64}$/),
230
+ ownerSubjectId: HostMcpOwnerSubject,
231
+ ownerOrganizationMembershipId: z.string().uuid(),
232
+ ownerMembershipAuthorizationRevision: z.number().int().positive().safe(),
233
+ bindingId: z.string().uuid(),
234
+ bindingGeneration: z.number().int().positive().safe(),
235
+ delegationId: z.string().uuid(),
236
+ delegationGeneration: z.number().int().positive().safe(),
237
+ definition: HostMcpBindingDefinition,
238
+ context: SessionTenancyVisibility
239
+ }).strict();
240
+ export {
241
+ CreateHostMcpBindingRequest,
242
+ HostMcpAcceptedAuthority,
243
+ HostMcpBinding,
244
+ HostMcpBindingDefinition,
245
+ HostMcpCreateSelections,
246
+ HostMcpDelegation,
247
+ HostMcpOwnerSubject,
248
+ HostMcpTaskAuthority,
249
+ IssueHostMcpDelegationRequest,
250
+ hostMcpBindingMatchesSelection
251
+ };
252
+ //# sourceMappingURL=host-mcp-bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/host-mcp-bindings.ts"],"sourcesContent":["import { z } from \"zod\";\nexport { HostMcpCreateSelections, type HostMcpCreateSelection } from \"./index\";\nimport {\n McpServerConnectionRef,\n SessionTenancyVisibility,\n ManagedUserResourceGrantMode,\n stableJson,\n} from \"./index\";\nimport { ConnectionUseAuthoritySnapshot } from \"./connection-authority\";\nimport { ExternalIdentity } from \"./external-identities\";\nexport const HostMcpOwnerSubject = z.union([\n ExternalIdentity.shape.subjectId,\n z\n .string()\n .max(4096)\n .regex(/^user:[^\\r\\n\\u0000]+$/),\n]);\n\n/** Credential-free, immutable destination and host connection selection. */\nexport const HostMcpBindingDefinition = z\n .object({\n serverId: z.string().min(1).max(256),\n destinationUrl: z\n .string()\n .url()\n .max(4096)\n .refine((value) => {\n const url = new URL(value);\n return url.protocol === \"https:\" && !url.username && !url.password && !url.hash;\n }, \"Host binding requires an HTTPS destination without userinfo or fragment\")\n .transform((value) => new URL(value).toString()),\n connectionRef: McpServerConnectionRef,\n })\n .strict()\n .superRefine((value, context) => {\n if (value.connectionRef.hostBinding)\n context.addIssue({\n code: \"custom\",\n path: [\"connectionRef\", \"hostBinding\"],\n message: \"A binding definition cannot reference another binding\",\n });\n if (value.connectionRef.authoritySource !== \"host\" || !value.connectionRef.connectionId)\n context.addIssue({\n code: \"custom\",\n path: [\"connectionRef\"],\n message: \"Explicit host connection authority is required\",\n });\n if (new TextEncoder().encode(JSON.stringify(value)).byteLength > 65_536)\n context.addIssue({ code: \"custom\", message: \"Host binding definition exceeds 64 KiB\" });\n });\nexport type HostMcpBindingDefinition = z.infer<typeof HostMcpBindingDefinition>;\n\n/** Configuration ceiling, never execution authority. The complete destination\n * and provider/scope/resource selection stay exact; only the account identifier\n * is chosen by a captured owner grant in explicit accepted-turn mode. */\nexport type HostMcpBindingSelection = {\n serverId: string;\n destinationUrl: string;\n connectionRef: McpServerConnectionRef;\n};\n\nexport function hostMcpBindingMatchesSelection(\n binding: { id: string; generation: number; definition: HostMcpBindingDefinition },\n selection: HostMcpBindingSelection,\n): boolean {\n const parsed = McpServerConnectionRef.safeParse(selection.connectionRef);\n if (!parsed.success || !parsed.data.hostBinding) return false;\n const { hostBinding, ...configuredRef } = parsed.data;\n const definition = HostMcpBindingDefinition.safeParse(binding.definition);\n if (!definition.success) return false;\n let destinationUrl: string;\n try {\n destinationUrl = new URL(selection.destinationUrl).toString();\n } catch {\n return false;\n }\n if (\n selection.serverId !== definition.data.serverId ||\n destinationUrl !== definition.data.destinationUrl\n )\n return false;\n if (\"selection\" in hostBinding) {\n const { connectionId: _connectionId, ...selectedRef } = definition.data.connectionRef;\n return stableJson(configuredRef) === stableJson(selectedRef);\n }\n return (\n binding.id === hostBinding.bindingId &&\n binding.generation === hostBinding.generation &&\n stableJson(configuredRef) === stableJson(definition.data.connectionRef)\n );\n}\n\nexport const HostMcpBinding = z\n .object({\n id: z.string().uuid(),\n accountId: z.string().uuid(),\n workspaceId: z.string().uuid(),\n ownerSubjectId: HostMcpOwnerSubject,\n authorizationRevision: z.number().int().positive().safe(),\n generation: z.number().int().positive().safe(),\n status: z.enum([\"active\", \"revoked\"]),\n definition: HostMcpBindingDefinition,\n createdAt: z.string().datetime({ offset: true }),\n revokedAt: z.string().datetime({ offset: true }).nullable(),\n })\n .strict();\nexport type HostMcpBinding = z.infer<typeof HostMcpBinding>;\n\nexport const CreateHostMcpBindingRequest = z\n .object({\n operationId: z.string().uuid(),\n definition: HostMcpBindingDefinition,\n })\n .strict();\nexport type CreateHostMcpBindingRequest = z.infer<typeof CreateHostMcpBindingRequest>;\n\nconst HostMcpGrantRequest = z\n .object({\n scope: z.literal(\"user\"),\n mode: ManagedUserResourceGrantMode,\n context: SessionTenancyVisibility,\n sessionId: z.string().uuid().nullable().optional(),\n expectedAuthorityEpoch: z.number().int().positive().nullable().optional(),\n workspaceSharedAcknowledged: z.boolean().default(false),\n })\n .strict()\n .superRefine((value, context) => {\n if (value.context === \"workspace_shared\" && !value.workspaceSharedAcknowledged) {\n context.addIssue({\n code: \"custom\",\n path: [\"workspaceSharedAcknowledged\"],\n message: \"workspace_shared requires durable shared-output acknowledgement\",\n });\n }\n if (value.mode === \"always\" && (value.sessionId || value.expectedAuthorityEpoch)) {\n context.addIssue({ code: \"custom\", path: [\"sessionId\"], message: \"always is unbound\" });\n }\n if (value.mode === \"session\" && (!value.sessionId || !value.expectedAuthorityEpoch)) {\n context.addIssue({\n code: \"custom\",\n path: [\"sessionId\"],\n message: \"session requires a target session and expectedAuthorityEpoch\",\n });\n }\n });\n\n/** Internal owner-authorized issuance; never itself proves caller identity. */\nconst HostMcpDelegationGrant = HostMcpGrantRequest.superRefine((value, context) => {\n if (\n Boolean(value.sessionId) !== (value.expectedAuthorityEpoch != null) ||\n (value.expectedAuthorityEpoch != null && !Number.isSafeInteger(value.expectedAuthorityEpoch))\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Host session grants require a matching safe authority epoch\",\n });\n }\n});\nexport const IssueHostMcpDelegationRequest = z\n .object({\n operationId: z.string().uuid(),\n bindingId: z.string().uuid(),\n expectedBindingGeneration: z.number().int().positive().safe(),\n grant: HostMcpDelegationGrant,\n })\n .strict();\nexport type IssueHostMcpDelegationRequest = z.infer<typeof IssueHostMcpDelegationRequest>;\n\nexport const HostMcpDelegation = z\n .object({\n id: z.string().uuid(),\n accountId: z.string().uuid(),\n workspaceId: z.string().uuid(),\n ownerSubjectId: HostMcpOwnerSubject,\n ownerAuthorizationRevision: z.number().int().positive().safe(),\n bindingId: z.string().uuid(),\n bindingGeneration: z.number().int().positive().safe(),\n grant: HostMcpDelegationGrant,\n generation: z.number().int().positive().safe(),\n status: z.enum([\"active\", \"revoked\"]),\n createdAt: z.string().datetime({ offset: true }),\n revokedAt: z.string().datetime({ offset: true }).nullable(),\n })\n .strict();\nexport type HostMcpDelegation = z.infer<typeof HostMcpDelegation>;\n\n/** Internal admission evidence, not a caller-supplied permission or credential.\n * Persistence must construct this from live authenticated authority and freeze\n * it with accepted work. Runtime use must independently revalidate that work,\n * membership, binding and delegation. No API key is retained as execution rights.\n */\nexport const HostMcpAcceptedAuthority = z\n .object({\n version: z.literal(1),\n accountId: z.string().uuid(),\n workspaceId: z.string().uuid(),\n targetSessionId: z.string().uuid(),\n targetSessionVisibility: SessionTenancyVisibility,\n targetSessionAuthorityEpoch: z.number().int().positive().safe(),\n acceptedWork: ConnectionUseAuthoritySnapshot.shape.acceptedWork,\n bindingId: z.string().uuid(),\n bindingGeneration: z.number().int().positive().safe(),\n definition: HostMcpBindingDefinition,\n ownerSubjectId: HostMcpOwnerSubject,\n ownerOrganizationMembershipId: z.string().uuid(),\n ownerMembershipAuthorizationRevision: z.number().int().positive().safe(),\n delegationId: z.string().uuid(),\n delegationGeneration: z.number().int().positive().safe(),\n scheduledOrigin: z\n .object({\n taskId: z.string().uuid(),\n taskAuthorityRevision: z.number().int().positive().safe(),\n runId: z.string().uuid(),\n })\n .strict()\n .optional(),\n source: z.discriminatedUnion(\"kind\", [\n z.object({ kind: z.literal(\"direct\") }).strict(),\n z.object({ kind: z.literal(\"scheduled_task\") }).strict(),\n z\n .object({\n kind: z.literal(\"child_turn\"),\n sessionId: z.string().uuid(),\n turnId: z.string().uuid(),\n })\n .strict(),\n z\n .object({\n kind: z.literal(\"inherited_turn\"),\n sessionId: z.string().uuid(),\n turnId: z.string().uuid(),\n })\n .strict(),\n ]),\n })\n .strict()\n .superRefine((value, context) => {\n if (\n (value.source.kind === \"direct\" && value.scheduledOrigin) ||\n (value.source.kind === \"scheduled_task\" &&\n (!value.scheduledOrigin ||\n value.acceptedWork.kind !== \"scheduled_task\" ||\n value.scheduledOrigin.taskId !== value.acceptedWork.taskId ||\n value.scheduledOrigin.runId !== value.acceptedWork.runId ||\n value.scheduledOrigin.taskAuthorityRevision !== value.acceptedWork.taskAuthorityRevision))\n )\n context.addIssue({\n code: \"custom\",\n message: \"Scheduled host authority must retain its exact run origin\",\n });\n if (\n value.acceptedWork.kind === \"turn\" &&\n value.source.kind === \"inherited_turn\" &&\n value.acceptedWork.turnId === value.source.turnId\n ) {\n context.addIssue({\n code: \"custom\",\n path: [\"source\"],\n message: \"Accepted work cannot inherit from itself\",\n });\n }\n if (\n value.acceptedWork.kind === \"scheduled_task\" &&\n !Number.isSafeInteger(value.acceptedWork.taskAuthorityRevision)\n ) {\n context.addIssue({\n code: \"custom\",\n path: [\"acceptedWork\"],\n message: \"Task authority revision must be a safe integer\",\n });\n }\n if (new TextEncoder().encode(JSON.stringify(value)).byteLength > 65_536) {\n context.addIssue({ code: \"custom\", message: \"Host accepted authority exceeds 64 KiB\" });\n }\n });\nexport type HostMcpAcceptedAuthority = z.infer<typeof HostMcpAcceptedAuthority>;\n\n/** Credential-free selection frozen on one immutable scheduled-task revision. */\nexport const HostMcpTaskAuthority = z\n .object({\n version: z.literal(1),\n accountId: z.string().uuid(),\n workspaceId: z.string().uuid(),\n taskId: z.string().uuid(),\n taskAuthorityRevision: z.number().int().positive().safe(),\n taskExecutionDigest: z.string().regex(/^[0-9a-f]{64}$/),\n ownerSubjectId: HostMcpOwnerSubject,\n ownerOrganizationMembershipId: z.string().uuid(),\n ownerMembershipAuthorizationRevision: z.number().int().positive().safe(),\n bindingId: z.string().uuid(),\n bindingGeneration: z.number().int().positive().safe(),\n delegationId: z.string().uuid(),\n delegationGeneration: z.number().int().positive().safe(),\n definition: HostMcpBindingDefinition,\n context: SessionTenancyVisibility,\n })\n .strict();\nexport type HostMcpTaskAuthority = z.infer<typeof HostMcpTaskAuthority>;\n"],"mappings":"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","names":[]}
@@ -35,6 +35,7 @@ export declare const GeneratedImageReceiptSchema: z.ZodObject<{
35
35
  artifactId: z.ZodString;
36
36
  kind: z.ZodEnum<{
37
37
  assistant_completion: "assistant_completion";
38
+ browser_screenshot: "browser_screenshot";
38
39
  computer_screenshot: "computer_screenshot";
39
40
  event_media: "event_media";
40
41
  file: "file";