@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,358 +1,163 @@
1
+ import { defineSchema } from "./define-schema";
1
2
  import { z } from "zod";
2
- import {
3
- ConnectionKind,
4
- ManagedUserResourceGrantMode,
5
- SessionTenancyVisibility,
6
- UserResourceAuthorityGrant,
7
- UserResourceDelegation,
8
- } from "./index";
3
+ import { ConnectionKind, SessionTenancyVisibility } from "./index";
9
4
 
10
- /** The only generic grant action that authorizes use of a connection. */
11
- export const ConnectionUseAction = z.literal("connection.use");
12
- export type ConnectionUseAction = z.infer<typeof ConnectionUseAction>;
13
-
14
- /**
15
- * Connection authority is either workspace-owned or user-owned. Omission is
16
- * intentionally compatible with the historical workspace connection path.
17
- */
18
- export const ConnectionAuthorityEnvelope = z
19
- .object({
20
- scope: z.enum(["workspace", "user"]).default("workspace"),
21
- userDelegation: UserResourceDelegation.optional(),
22
- })
23
- .strict()
24
- .superRefine((value, context) => {
25
- if (value.scope === "workspace" && value.userDelegation !== undefined) {
26
- context.addIssue({
27
- code: "custom",
28
- path: ["userDelegation"],
29
- message: "workspace connections cannot carry user delegation",
30
- });
31
- return;
32
- }
33
- if (value.scope === "user" && value.userDelegation === undefined) {
34
- context.addIssue({
35
- code: "custom",
36
- path: ["userDelegation"],
37
- message: "user connections require an immutable delegation",
38
- });
39
- return;
40
- }
41
- if (value.userDelegation && value.userDelegation.action !== ConnectionUseAction.value) {
42
- context.addIssue({
43
- code: "custom",
44
- path: ["userDelegation", "action"],
45
- message: "connection delegation must use connection.use",
46
- });
47
- }
48
- });
49
- export type ConnectionAuthorityEnvelope = z.infer<typeof ConnectionAuthorityEnvelope>;
50
-
51
- export const ConnectionAuthorityGrant = UserResourceAuthorityGrant.extend({
52
- action: ConnectionUseAction,
53
- }).strict();
54
- export type ConnectionAuthorityGrant = z.infer<typeof ConnectionAuthorityGrant>;
55
-
56
- /** Owner-only opaque projection; connection identity and owner metadata stay server-side. */
57
- export const ConnectionAuthoritySummary = z
58
- .object({
59
- authorityId: z.string().uuid(),
60
- resourceId: z.string().uuid(),
61
- originWorkspaceId: z.string().uuid().nullable(),
62
- generation: z.number().int().positive(),
63
- status: z.enum(["active", "retained", "revoked"]),
64
- grants: z.array(ConnectionAuthorityGrant),
65
- })
66
- .strict();
67
- export type ConnectionAuthoritySummary = z.infer<typeof ConnectionAuthoritySummary>;
68
-
69
- export const ListConnectionAuthoritiesQuery = z
70
- .object({
71
- scope: z.literal("user"),
72
- cursor: z.string().uuid().optional(),
73
- limit: z.coerce.number().int().min(1).max(100).default(50),
74
- })
75
- .strict();
76
- export const ListConnectionAuthoritiesResponse = z
77
- .object({
78
- scope: z.literal("user"),
79
- authorities: z.array(ConnectionAuthoritySummary),
80
- nextCursor: z.string().uuid().nullable(),
81
- })
82
- .strict();
83
-
84
- export const IssueConnectionUseGrantRequest = z
85
- .object({
86
- scope: z.literal("user"),
87
- mode: ManagedUserResourceGrantMode,
88
- context: SessionTenancyVisibility,
89
- sessionId: z.string().uuid().nullable().optional(),
90
- expectedAuthorityEpoch: z.number().int().positive().nullable().optional(),
91
- workspaceSharedAcknowledged: z.boolean().default(false),
92
- })
93
- .strict()
94
- .superRefine((value, context) => {
95
- if (value.context === "workspace_shared" && !value.workspaceSharedAcknowledged) {
96
- context.addIssue({
97
- code: "custom",
98
- path: ["workspaceSharedAcknowledged"],
99
- message: "workspace_shared requires durable shared-output acknowledgement",
100
- });
101
- }
102
- if (value.mode === "always" && (value.sessionId || value.expectedAuthorityEpoch)) {
103
- context.addIssue({ code: "custom", path: ["sessionId"], message: "always is unbound" });
104
- }
105
- if (value.mode === "session" && (!value.sessionId || !value.expectedAuthorityEpoch)) {
106
- context.addIssue({
107
- code: "custom",
108
- path: ["sessionId"],
109
- message: "session requires a target session and expectedAuthorityEpoch",
110
- });
111
- }
112
- });
113
- export type IssueConnectionUseGrantRequest = z.infer<typeof IssueConnectionUseGrantRequest>;
114
-
115
- export const RevokeConnectionUseGrantQuery = z.object({ scope: z.literal("user") }).strict();
5
+ export const ConnectionAuthoritySelectionSource = /* @__PURE__ */ defineSchema(() =>
6
+ z.enum(["explicit_workspace", "sender"]),
7
+ );
8
+ export type ConnectionAuthoritySelectionSource = z.infer<typeof ConnectionAuthoritySelectionSource>;
116
9
 
117
- export const ConnectionUseGrantMutationResponse = z
118
- .object({
119
- scope: z.literal("user"),
120
- grant: ConnectionAuthorityGrant,
121
- })
122
- .strict();
123
- export type ConnectionUseGrantMutationResponse = z.infer<typeof ConnectionUseGrantMutationResponse>;
10
+ export const ConnectionUseSelectionSource = /* @__PURE__ */ defineSchema(() =>
11
+ z
12
+ .string()
13
+ .min(1)
14
+ .max(128)
15
+ .regex(/^[a-z0-9](?:[a-z0-9._:-]*[a-z0-9])?$/u),
16
+ );
17
+ export type ConnectionUseSelectionSource = z.infer<typeof ConnectionUseSelectionSource>;
124
18
 
125
- export const ConnectionUseGrantRevocationResponse = z
126
- .object({
127
- scope: z.literal("user"),
128
- grant: z
19
+ const AcceptedConnectionWork = /* @__PURE__ */ defineSchema(() =>
20
+ z.discriminatedUnion("kind", [
21
+ z
129
22
  .object({
130
- grantId: z.string().uuid(),
131
- generation: z.number().int().positive(),
132
- status: z.literal("revoked"),
133
- revokedAt: z.string().datetime(),
23
+ kind: z.literal("turn"),
24
+ turnId: z.string().uuid(),
134
25
  })
135
26
  .strict(),
136
- })
137
- .strict();
138
- export type ConnectionUseGrantRevocationResponse = z.infer<
139
- typeof ConnectionUseGrantRevocationResponse
140
- >;
141
-
142
- export const ConnectionAuthoritySelectionSource = z.enum([
143
- "explicit_workspace",
144
- "legacy_workspace_omission",
145
- "legacy_user_compatibility",
146
- "user_delegation",
147
- ]);
148
- export type ConnectionAuthoritySelectionSource = z.infer<typeof ConnectionAuthoritySelectionSource>;
149
-
150
- export const ConnectionUseSelectionSource = z
151
- .string()
152
- .min(1)
153
- .max(128)
154
- .regex(/^[a-z0-9](?:[a-z0-9._:-]*[a-z0-9])?$/u);
155
- export type ConnectionUseSelectionSource = z.infer<typeof ConnectionUseSelectionSource>;
156
-
157
- const AcceptedConnectionWork = z.discriminatedUnion("kind", [
158
- z
159
- .object({
160
- kind: z.literal("turn"),
161
- turnId: z.string().uuid(),
162
- })
163
- .strict(),
164
- z
165
- .object({
166
- kind: z.literal("scheduled_task"),
167
- taskId: z.string().uuid(),
168
- taskAuthorityRevision: z.number().int().positive(),
169
- runId: z.string().uuid(),
170
- })
171
- .strict(),
172
- ]);
27
+ z
28
+ .object({
29
+ kind: z.literal("scheduled_task"),
30
+ taskId: z.string().uuid(),
31
+ taskAuthorityRevision: z.number().int().positive(),
32
+ runId: z.string().uuid(),
33
+ })
34
+ .strict(),
35
+ ]),
36
+ );
173
37
 
174
38
  /**
175
39
  * Internal, credential-free authority frozen when work is accepted. Personal
176
40
  * owner identity is retained only for live authorization and usage/audit
177
41
  * attribution; it is never part of the public delegation envelope.
178
42
  */
179
- export const ConnectionUseAuthoritySnapshot = z
180
- .object({
181
- organizationId: z.string().uuid(),
182
- originWorkspaceId: z.string().uuid(),
183
- targetWorkspaceId: z.string().uuid(),
184
- targetSessionId: z.string().uuid(),
185
- targetSessionVisibility: SessionTenancyVisibility,
186
- targetSessionAuthorityEpoch: z.number().int().positive(),
187
- acceptedWork: AcceptedConnectionWork,
188
- connectionId: z.string().uuid(),
189
- connectionGeneration: z.number().int().positive(),
190
- connectionStatus: z.literal("active"),
191
- providerDomain: z.string().min(1).max(2048),
192
- connectionKind: ConnectionKind,
193
- scope: z.enum(["workspace", "user", "legacy_user"]),
194
- ownerSubjectId: z.string().min(1).max(512).nullable(),
195
- ownerOrganizationMembershipId: z.string().uuid().nullable(),
196
- ownerMembershipAuthorizationRevision: z.number().int().positive().nullable().default(null),
197
- authoritySource: ConnectionAuthoritySelectionSource,
198
- selectionSources: z.array(ConnectionUseSelectionSource).min(1).max(128),
199
- userDelegation: UserResourceDelegation.nullable(),
200
- })
201
- .strict()
202
- .superRefine((value, context) => {
203
- const ownedBySubject = value.scope !== "workspace";
204
- const delegated = value.scope === "user";
205
- if (ownedBySubject !== (value.ownerSubjectId !== null)) {
206
- context.addIssue({
207
- code: "custom",
208
- path: ["ownerSubjectId"],
209
- message: "personal connections retain an owner subject",
210
- });
211
- }
212
- if (delegated !== (value.ownerOrganizationMembershipId !== null)) {
213
- context.addIssue({
214
- code: "custom",
215
- path: ["ownerOrganizationMembershipId"],
216
- message: "only user connections retain an owner membership",
217
- });
218
- }
219
- if (delegated !== (value.ownerMembershipAuthorizationRevision !== null)) {
220
- context.addIssue({
221
- code: "custom",
222
- path: ["ownerMembershipAuthorizationRevision"],
223
- message: "only user connections retain an owner membership revision",
224
- });
225
- }
226
- if (delegated !== (value.userDelegation !== null)) {
227
- context.addIssue({
228
- code: "custom",
229
- path: ["userDelegation"],
230
- message: "only user connections retain a delegation",
231
- });
232
- }
233
- if (delegated && value.authoritySource !== "user_delegation") {
234
- context.addIssue({
235
- code: "custom",
236
- path: ["authoritySource"],
237
- message: "user connections require user_delegation provenance",
238
- });
239
- }
240
- if (!delegated && value.authoritySource === "user_delegation") {
241
- context.addIssue({
242
- code: "custom",
243
- path: ["authoritySource"],
244
- message: "non-delegated connections cannot claim user delegation provenance",
245
- });
246
- }
247
- if (value.scope === "legacy_user" && value.authoritySource !== "legacy_user_compatibility") {
248
- context.addIssue({
249
- code: "custom",
250
- path: ["authoritySource"],
251
- message: "legacy user connections require explicit compatibility provenance",
252
- });
253
- }
254
- if (value.scope === "workspace" && value.authoritySource === "legacy_user_compatibility") {
255
- context.addIssue({
256
- code: "custom",
257
- path: ["authoritySource"],
258
- message: "workspace connections cannot claim legacy user provenance",
259
- });
260
- }
261
- if (!delegated && value.originWorkspaceId !== value.targetWorkspaceId) {
262
- context.addIssue({
263
- code: "custom",
264
- path: ["originWorkspaceId"],
265
- message: "workspace connections must be owned by the target workspace",
266
- });
267
- }
268
- const delegation = value.userDelegation;
269
- if (!delegation) return;
270
- const exactFacts: Array<[boolean, (string | number)[], string]> = [
271
- [
272
- delegation.organizationId === value.organizationId,
273
- ["userDelegation", "organizationId"],
274
- "delegation organization mismatch",
275
- ],
276
- [
277
- delegation.workspaceId === value.targetWorkspaceId,
278
- ["userDelegation", "workspaceId"],
279
- "delegation target workspace mismatch",
280
- ],
281
- [
282
- delegation.action === ConnectionUseAction.value,
283
- ["userDelegation", "action"],
284
- "delegation action mismatch",
285
- ],
286
- [
287
- delegation.context === value.targetSessionVisibility,
288
- ["userDelegation", "context"],
289
- "delegation visibility mismatch",
290
- ],
291
- ];
292
- for (const [matches, path, message] of exactFacts) {
293
- if (!matches) context.addIssue({ code: "custom", path, message });
294
- }
295
- if (delegation.sessionId !== null && delegation.sessionId !== value.targetSessionId) {
296
- context.addIssue({
297
- code: "custom",
298
- path: ["userDelegation", "sessionId"],
299
- message: "delegation session mismatch",
300
- });
301
- }
302
- if (
303
- delegation.authorityEpoch !== null &&
304
- delegation.authorityEpoch !== value.targetSessionAuthorityEpoch
305
- ) {
306
- context.addIssue({
307
- code: "custom",
308
- path: ["userDelegation", "authorityEpoch"],
309
- message: "delegation authority epoch mismatch",
310
- });
311
- }
312
- });
43
+ export const ConnectionUseAuthoritySnapshot = /* @__PURE__ */ defineSchema(() =>
44
+ z
45
+ .object({
46
+ organizationId: z.string().uuid(),
47
+ originWorkspaceId: z.string().uuid(),
48
+ targetWorkspaceId: z.string().uuid(),
49
+ targetSessionId: z.string().uuid(),
50
+ targetSessionVisibility: SessionTenancyVisibility,
51
+ targetSessionAuthorityEpoch: z.number().int().positive(),
52
+ acceptedWork: AcceptedConnectionWork,
53
+ connectionId: z.string().uuid(),
54
+ connectionGeneration: z.number().int().positive(),
55
+ connectionStatus: z.literal("active"),
56
+ providerDomain: z.string().min(1).max(2048),
57
+ connectionKind: ConnectionKind,
58
+ scope: z.enum(["workspace", "user"]),
59
+ ownerSubjectId: z.string().min(1).max(512).nullable(),
60
+ ownerOrganizationMembershipId: z.string().uuid().nullable(),
61
+ ownerMembershipAuthorizationRevision: z.number().int().positive().nullable().default(null),
62
+ authoritySource: ConnectionAuthoritySelectionSource,
63
+ selectionSources: z.array(ConnectionUseSelectionSource).min(1).max(128),
64
+ userDelegation: z.null(),
65
+ })
66
+ .strict()
67
+ .superRefine((value, context) => {
68
+ const ownedBySubject = value.scope !== "workspace";
69
+ const delegated = value.scope === "user";
70
+ if (ownedBySubject !== (value.ownerSubjectId !== null)) {
71
+ context.addIssue({
72
+ code: "custom",
73
+ path: ["ownerSubjectId"],
74
+ message: "personal connections retain an owner subject",
75
+ });
76
+ }
77
+ if (delegated !== (value.ownerOrganizationMembershipId !== null)) {
78
+ context.addIssue({
79
+ code: "custom",
80
+ path: ["ownerOrganizationMembershipId"],
81
+ message: "only user connections retain an owner membership",
82
+ });
83
+ }
84
+ if (delegated !== (value.ownerMembershipAuthorizationRevision !== null)) {
85
+ context.addIssue({
86
+ code: "custom",
87
+ path: ["ownerMembershipAuthorizationRevision"],
88
+ message: "only user connections retain an owner membership revision",
89
+ });
90
+ }
91
+ if (delegated && value.authoritySource !== "sender") {
92
+ context.addIssue({
93
+ code: "custom",
94
+ path: ["authoritySource"],
95
+ message: "user connections require authenticated sender provenance",
96
+ });
97
+ }
98
+ if (!delegated && value.authoritySource === "sender") {
99
+ context.addIssue({
100
+ code: "custom",
101
+ path: ["authoritySource"],
102
+ message: "workspace connections cannot claim sender provenance",
103
+ });
104
+ }
105
+ if (!delegated && value.originWorkspaceId !== value.targetWorkspaceId) {
106
+ context.addIssue({
107
+ code: "custom",
108
+ path: ["originWorkspaceId"],
109
+ message: "workspace connections must be owned by the target workspace",
110
+ });
111
+ }
112
+ }),
113
+ );
313
114
  export type ConnectionUseAuthoritySnapshot = z.infer<typeof ConnectionUseAuthoritySnapshot>;
314
115
 
315
- export const ConnectionUseDenialReason = z.enum([
316
- "tenant_mismatch",
317
- "workspace_access_inactive",
318
- "session_inactive",
319
- "session_identity_changed",
320
- "session_visibility_changed",
321
- "session_authority_epoch_changed",
322
- "accepted_attempt_authority_required",
323
- "accepted_snapshot_digest_changed",
324
- "connection_missing",
325
- "connection_identity_changed",
326
- "connection_generation_changed",
327
- "connection_status_inactive",
328
- "connection_owner_changed",
329
- "owner_membership_inactive",
330
- "authority_missing",
331
- "authority_identity_changed",
332
- "authority_generation_changed",
333
- "authority_status_inactive",
334
- "grant_missing",
335
- "grant_identity_changed",
336
- "grant_generation_changed",
337
- "grant_status_inactive",
338
- "grant_expired",
339
- "grant_already_consumed",
340
- ]);
116
+ export const ConnectionUseDenialReason = /* @__PURE__ */ defineSchema(() =>
117
+ z.enum([
118
+ "tenant_mismatch",
119
+ "workspace_access_inactive",
120
+ "session_inactive",
121
+ "session_identity_changed",
122
+ "session_visibility_changed",
123
+ "session_authority_epoch_changed",
124
+ "accepted_attempt_authority_required",
125
+ "accepted_snapshot_digest_changed",
126
+ "connection_missing",
127
+ "connection_identity_changed",
128
+ "connection_generation_changed",
129
+ "connection_status_inactive",
130
+ "connection_owner_changed",
131
+ "owner_membership_inactive",
132
+ "authority_missing",
133
+ "authority_identity_changed",
134
+ "authority_generation_changed",
135
+ "authority_status_inactive",
136
+ "grant_missing",
137
+ "grant_identity_changed",
138
+ "grant_generation_changed",
139
+ "grant_status_inactive",
140
+ "grant_expired",
141
+ "grant_already_consumed",
142
+ ]),
143
+ );
341
144
  export type ConnectionUseDenialReason = z.infer<typeof ConnectionUseDenialReason>;
342
145
 
343
- const ConnectionUseAttributionFields = z
344
- .object({
345
- organizationId: z.string().uuid(),
346
- workspaceId: z.string().uuid(),
347
- sessionId: z.string().uuid(),
348
- connectionId: z.string().uuid(),
349
- connectionGeneration: z.number().int().positive(),
350
- scope: z.enum(["workspace", "user", "legacy_user"]),
351
- ownerSubjectId: z.string().min(1).max(512).nullable(),
352
- authorityId: z.string().uuid().nullable(),
353
- grantId: z.string().uuid().nullable(),
354
- })
355
- .strict();
146
+ const ConnectionUseAttributionFields = /* @__PURE__ */ defineSchema(() =>
147
+ z
148
+ .object({
149
+ organizationId: z.string().uuid(),
150
+ workspaceId: z.string().uuid(),
151
+ sessionId: z.string().uuid(),
152
+ connectionId: z.string().uuid(),
153
+ connectionGeneration: z.number().int().positive(),
154
+ scope: z.enum(["workspace", "user", "legacy_user"]),
155
+ ownerSubjectId: z.string().min(1).max(512).nullable(),
156
+ authorityId: z.string().uuid().nullable(),
157
+ grantId: z.string().uuid().nullable(),
158
+ })
159
+ .strict(),
160
+ );
356
161
 
357
162
  function refineConnectionUseAttribution(
358
163
  value: z.infer<typeof ConnectionUseAttributionFields>,
@@ -370,44 +175,58 @@ function refineConnectionUseAttribution(
370
175
  });
371
176
  }
372
177
  }
373
- const delegated = value.scope === "user";
374
- for (const field of ["authorityId", "grantId"] as const) {
375
- if (delegated !== (value[field] !== null)) {
178
+ const owned = value.scope === "user";
179
+ for (const field of ["authorityId"] as const) {
180
+ if (owned !== (value[field] !== null)) {
376
181
  context.addIssue({
377
182
  code: "custom",
378
183
  path: [field],
379
- message: delegated
380
- ? `delegated personal attribution requires ${field}`
381
- : `non-delegated attribution cannot carry ${field}`,
184
+ message: owned
185
+ ? `personal attribution requires ${field}`
186
+ : `non-personal attribution cannot carry ${field}`,
382
187
  });
383
188
  }
384
189
  }
190
+ if (!owned && value.grantId !== null) {
191
+ context.addIssue({
192
+ code: "custom",
193
+ path: ["grantId"],
194
+ message: "only historical personal attribution can carry a grant",
195
+ });
196
+ }
385
197
  }
386
198
 
387
199
  /** Metadata-only attribution emitted after pre-use authorization. */
388
- export const ConnectionUseAttribution = ConnectionUseAttributionFields.superRefine(
389
- refineConnectionUseAttribution,
200
+ export const ConnectionUseAttribution = /* @__PURE__ */ defineSchema(() =>
201
+ ConnectionUseAttributionFields.extend({
202
+ scope: z.enum(["workspace", "user"]),
203
+ grantId: z.null(),
204
+ }).superRefine(refineConnectionUseAttribution),
390
205
  );
391
206
  export type ConnectionUseAttribution = z.infer<typeof ConnectionUseAttribution>;
392
207
 
393
- export const ConnectionUseAuditFact = ConnectionUseAttributionFields.extend({
394
- outcome: z.enum(["authorized", "denied"]),
395
- denialReason: ConnectionUseDenialReason.nullable(),
396
- occurredAt: z.string().datetime({ offset: true }),
397
- }).superRefine((value, context) => {
398
- refineConnectionUseAttribution(value, context);
399
- if ((value.outcome === "denied") !== (value.denialReason !== null)) {
400
- context.addIssue({
401
- code: "custom",
402
- path: ["denialReason"],
403
- message: "only denied connection use carries a denial reason",
404
- });
405
- }
406
- });
208
+ export const ConnectionUseAuditFact = /* @__PURE__ */ defineSchema(() =>
209
+ ConnectionUseAttributionFields.extend({
210
+ outcome: z.enum(["authorized", "denied"]),
211
+ denialReason: ConnectionUseDenialReason.nullable(),
212
+ occurredAt: z.string().datetime({ offset: true }),
213
+ }).superRefine((value, context) => {
214
+ refineConnectionUseAttribution(value, context);
215
+ if ((value.outcome === "denied") !== (value.denialReason !== null)) {
216
+ context.addIssue({
217
+ code: "custom",
218
+ path: ["denialReason"],
219
+ message: "only denied connection use carries a denial reason",
220
+ });
221
+ }
222
+ }),
223
+ );
407
224
  export type ConnectionUseAuditFact = z.infer<typeof ConnectionUseAuditFact>;
408
225
 
409
- export const ConnectionUseAuthorizationResult = z.discriminatedUnion("status", [
410
- z.object({ status: z.literal("authorized"), attribution: ConnectionUseAttribution }).strict(),
411
- z.object({ status: z.literal("denied"), reason: ConnectionUseDenialReason }).strict(),
412
- ]);
226
+ export const ConnectionUseAuthorizationResult = /* @__PURE__ */ defineSchema(() =>
227
+ z.discriminatedUnion("status", [
228
+ z.object({ status: z.literal("authorized"), attribution: ConnectionUseAttribution }).strict(),
229
+ z.object({ status: z.literal("denied"), reason: ConnectionUseDenialReason }).strict(),
230
+ ]),
231
+ );
413
232
  export type ConnectionUseAuthorizationResult = z.infer<typeof ConnectionUseAuthorizationResult>;