@opengeni/contracts 5.5.0 → 5.5.2-canary.40656248492001

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 (543) hide show
  1. package/dist/agent-authored-durable-text.d.ts +9 -9
  2. package/dist/agent-config.d.ts +148 -37
  3. package/dist/api-key-presets.d.ts +19 -0
  4. package/dist/app-action-catalog-types.d.ts +32 -0
  5. package/dist/app-action-catalog.gen.d.ts +2 -0
  6. package/dist/app-actions.d.ts +91 -0
  7. package/dist/app-actions.js +10130 -0
  8. package/dist/app-actions.js.map +1 -0
  9. package/dist/app-shot.d.ts +55 -0
  10. package/dist/artifact-catalog.d.ts +33 -0
  11. package/dist/artifacts.d.ts +166 -0
  12. package/dist/atlassian-native-retirement.d.ts +16 -0
  13. package/dist/atlassian-native-retirement.js +30 -0
  14. package/dist/atlassian-native-retirement.js.map +1 -0
  15. package/dist/atlassian.js +48 -23
  16. package/dist/automation-templates.d.ts +434 -0
  17. package/dist/automation-templates.js +31 -0
  18. package/dist/automation-templates.js.map +1 -0
  19. package/dist/billing-subscriptions.d.ts +61 -0
  20. package/dist/bots.d.ts +583 -0
  21. package/dist/bundled-skills.d.ts +58 -2
  22. package/dist/canonical-human-identities.js +3 -1
  23. package/dist/child-lifecycle-notice-protocol.d.ts +45 -0
  24. package/dist/chunk-2QKIEAGY.js +396 -0
  25. package/dist/chunk-2QKIEAGY.js.map +1 -0
  26. package/dist/chunk-2WOWEWXV.js +426 -0
  27. package/dist/chunk-2WOWEWXV.js.map +1 -0
  28. package/dist/chunk-2ZIHHL72.js +153 -0
  29. package/dist/chunk-2ZIHHL72.js.map +1 -0
  30. package/dist/chunk-32U6NKQQ.js +389 -0
  31. package/dist/chunk-32U6NKQQ.js.map +1 -0
  32. package/dist/chunk-4YDDHSO2.js +799 -0
  33. package/dist/chunk-4YDDHSO2.js.map +1 -0
  34. package/dist/chunk-56SNIMDO.js +9 -0
  35. package/dist/chunk-56SNIMDO.js.map +1 -0
  36. package/dist/chunk-5RWB6QVL.js +101 -0
  37. package/dist/chunk-5RWB6QVL.js.map +1 -0
  38. package/dist/chunk-5UGUOT3L.js +243 -0
  39. package/dist/chunk-5UGUOT3L.js.map +1 -0
  40. package/dist/chunk-6LAT33BH.js +130 -0
  41. package/dist/chunk-6LAT33BH.js.map +1 -0
  42. package/dist/chunk-7272KVWZ.js +60 -0
  43. package/dist/chunk-7272KVWZ.js.map +1 -0
  44. package/dist/chunk-72QC2GTL.js +36 -0
  45. package/dist/chunk-72QC2GTL.js.map +1 -0
  46. package/dist/chunk-7EQGGZBY.js +105 -0
  47. package/dist/chunk-7EQGGZBY.js.map +1 -0
  48. package/dist/chunk-A3LXWVYU.js +382 -0
  49. package/dist/chunk-A3LXWVYU.js.map +1 -0
  50. package/dist/chunk-AQYDZUJV.js +34 -0
  51. package/dist/chunk-AQYDZUJV.js.map +1 -0
  52. package/dist/chunk-BHCEVVUP.js +93 -0
  53. package/dist/chunk-BHCEVVUP.js.map +1 -0
  54. package/dist/chunk-BMUTAZX5.js +486 -0
  55. package/dist/chunk-BMUTAZX5.js.map +1 -0
  56. package/dist/chunk-DGG6IBBK.js +150 -0
  57. package/dist/chunk-DGG6IBBK.js.map +1 -0
  58. package/dist/{chunk-YBW5JSA3.js → chunk-FBCTUMHI.js} +123 -102
  59. package/dist/chunk-FBCTUMHI.js.map +1 -0
  60. package/dist/chunk-G2KJTFIC.js +97 -0
  61. package/dist/chunk-G2KJTFIC.js.map +1 -0
  62. package/dist/chunk-G4RKARXZ.js +1167 -0
  63. package/dist/chunk-G4RKARXZ.js.map +1 -0
  64. package/dist/chunk-H6UJJIUM.js +350 -0
  65. package/dist/chunk-H6UJJIUM.js.map +1 -0
  66. package/dist/chunk-JOTHDW4H.js +18 -0
  67. package/dist/chunk-JOTHDW4H.js.map +1 -0
  68. package/dist/chunk-L4GUEP7K.js +56480 -0
  69. package/dist/chunk-L4GUEP7K.js.map +1 -0
  70. package/dist/{chunk-SIOU2K4U.js → chunk-LJH2EYGT.js} +23 -23
  71. package/dist/chunk-MTJKSIGA.js +161 -0
  72. package/dist/chunk-MTJKSIGA.js.map +1 -0
  73. package/dist/chunk-MYHMB6GZ.js +202 -0
  74. package/dist/chunk-MYHMB6GZ.js.map +1 -0
  75. package/dist/chunk-PI5VIKJY.js +660 -0
  76. package/dist/chunk-PI5VIKJY.js.map +1 -0
  77. package/dist/{chunk-RIY7GYQS.js → chunk-PTSROVDG.js} +2 -2
  78. package/dist/chunk-PUIUXIOL.js +189 -0
  79. package/dist/chunk-PUIUXIOL.js.map +1 -0
  80. package/dist/chunk-R6VXJIMB.js +19 -0
  81. package/dist/chunk-R6VXJIMB.js.map +1 -0
  82. package/dist/chunk-RLJUNVAM.js +15 -0
  83. package/dist/chunk-RLJUNVAM.js.map +1 -0
  84. package/dist/chunk-RR6APCBK.js +213 -0
  85. package/dist/chunk-RR6APCBK.js.map +1 -0
  86. package/dist/{chunk-TXTQIYCV.js → chunk-RUQ4I6DO.js} +59 -13
  87. package/dist/chunk-RUQ4I6DO.js.map +1 -0
  88. package/dist/{chunk-WYBDERIY.js → chunk-RWEEUDHD.js} +53 -42
  89. package/dist/chunk-RWEEUDHD.js.map +1 -0
  90. package/dist/chunk-S7MSQQL6.js +158 -0
  91. package/dist/chunk-S7MSQQL6.js.map +1 -0
  92. package/dist/{chunk-5Q54VCCH.js → chunk-SHO4YO4B.js} +20 -36
  93. package/dist/chunk-SHO4YO4B.js.map +1 -0
  94. package/dist/{chunk-HHZSZYYF.js → chunk-T3HSWMA5.js} +20 -4
  95. package/dist/chunk-T3HSWMA5.js.map +1 -0
  96. package/dist/{chunk-YRKRZ6OF.js → chunk-TOOJIBJC.js} +2 -2
  97. package/dist/chunk-UCUOTRS6.js +431 -0
  98. package/dist/chunk-UCUOTRS6.js.map +1 -0
  99. package/dist/chunk-UH4K7GP7.js +424 -0
  100. package/dist/chunk-UH4K7GP7.js.map +1 -0
  101. package/dist/chunk-UIZWGPHV.js +120 -0
  102. package/dist/chunk-UIZWGPHV.js.map +1 -0
  103. package/dist/chunk-VLUKBV6Y.js +1170 -0
  104. package/dist/chunk-VLUKBV6Y.js.map +1 -0
  105. package/dist/chunk-W2QQ5Y6K.js +55 -0
  106. package/dist/chunk-W2QQ5Y6K.js.map +1 -0
  107. package/dist/{chunk-Y3KNXVTD.js → chunk-W3NBPR4E.js} +131 -31
  108. package/dist/chunk-W3NBPR4E.js.map +1 -0
  109. package/dist/{chunk-NRMCVHAU.js → chunk-WMGO4HJU.js} +11 -9
  110. package/dist/chunk-WMGO4HJU.js.map +1 -0
  111. package/dist/{chunk-MYBZRDTY.js → chunk-WQI7VNN4.js} +19 -9
  112. package/dist/chunk-WQI7VNN4.js.map +1 -0
  113. package/dist/{chunk-PX3VCKAU.js → chunk-WVCFSOUZ.js} +1 -1
  114. package/dist/{chunk-PX3VCKAU.js.map → chunk-WVCFSOUZ.js.map} +1 -1
  115. package/dist/chunk-XB6GQLBH.js +76 -0
  116. package/dist/chunk-XB6GQLBH.js.map +1 -0
  117. package/dist/{chunk-D2HKF2EF.js → chunk-XP5M3IKT.js} +2 -2
  118. package/dist/{chunk-O77VSFYZ.js → chunk-ZMPU5BWE.js} +12 -2
  119. package/dist/chunk-ZMPU5BWE.js.map +1 -0
  120. package/dist/{chunk-3SIZGL3O.js → chunk-ZYVEJFNU.js} +22 -18
  121. package/dist/chunk-ZYVEJFNU.js.map +1 -0
  122. package/dist/claude-provider-account-authority.d.ts +18 -0
  123. package/dist/claude-subscription-oauth.d.ts +25 -0
  124. package/dist/claude-subscription-usage.d.ts +95 -1
  125. package/dist/client-error-report.d.ts +154 -8
  126. package/dist/client-error-report.js +157 -2
  127. package/dist/client-error-report.js.map +1 -1
  128. package/dist/code-search.d.ts +1 -1
  129. package/dist/code-search.js.map +1 -1
  130. package/dist/codex-provider-account-authority.js +23 -12
  131. package/dist/codex-provider-account-authority.js.map +1 -1
  132. package/dist/company-profile.d.ts +144 -0
  133. package/dist/connect.d.ts +38 -0
  134. package/dist/connect.js +244 -164
  135. package/dist/connect.js.map +1 -1
  136. package/dist/connection-account-label.d.ts +2 -0
  137. package/dist/connection-account-label.js +34 -0
  138. package/dist/connection-account-label.js.map +1 -0
  139. package/dist/connection-authority.js +49 -24
  140. package/dist/connector-attachments.js +3 -1
  141. package/dist/connector-destinations.js +3 -1
  142. package/dist/connector-tool-permissions.d.ts +68 -4
  143. package/dist/credential-profiles.d.ts +166 -0
  144. package/dist/cua-desktop-tools.d.ts +19 -0
  145. package/dist/define-schema.d.ts +8 -0
  146. package/dist/desktop-app.d.ts +28 -0
  147. package/dist/direct-model-provider.d.ts +38 -0
  148. package/dist/document-artifact-commands.js +2 -2
  149. package/dist/document-artifact-query.js +2 -2
  150. package/dist/editable-artifact-binary.d.ts +7 -0
  151. package/dist/editable-artifact-causal-frontier.js +2 -2
  152. package/dist/editable-artifact-codec-registry.js +7 -7
  153. package/dist/editable-artifact-committed-transaction.js +4 -2
  154. package/dist/editable-artifact-live.js +8 -8
  155. package/dist/editable-artifact-serialized-commit.js +9 -9
  156. package/dist/editable-artifact-versions.d.ts +7 -1
  157. package/dist/editable-artifact-versions.js +1 -1
  158. package/dist/editable-artifacts.js +49 -43
  159. package/dist/event-preview.d.ts +22 -0
  160. package/dist/event-triggers.d.ts +1253 -0
  161. package/dist/event-triggers.js +148 -0
  162. package/dist/event-triggers.js.map +1 -0
  163. package/dist/external-identities.d.ts +34 -0
  164. package/dist/external-identities.js +4 -2
  165. package/dist/feedback.d.ts +181 -0
  166. package/dist/file-access.d.ts +23 -0
  167. package/dist/first-party-tool-authorization.d.ts +852 -0
  168. package/dist/github-repository-contracts.js +64 -43
  169. package/dist/github-repository-contracts.js.map +1 -1
  170. package/dist/google-drive-native-retirement.d.ts +12 -0
  171. package/dist/google-drive-native-retirement.js +20 -0
  172. package/dist/google-drive-native-retirement.js.map +1 -0
  173. package/dist/google-drive.d.ts +1 -1
  174. package/dist/google-drive.js +323 -239
  175. package/dist/google-drive.js.map +1 -1
  176. package/dist/host-mcp-bindings.js +250 -198
  177. package/dist/host-mcp-bindings.js.map +1 -1
  178. package/dist/index.d.ts +29072 -20593
  179. package/dist/index.js +2432 -366
  180. package/dist/inference-residency.d.ts +22 -0
  181. package/dist/insights-usage.d.ts +948 -0
  182. package/dist/insights-usage.js +608 -0
  183. package/dist/insights-usage.js.map +1 -0
  184. package/dist/integration-capability-id.d.ts +8 -0
  185. package/dist/interaction-action-deadline.d.ts +48 -0
  186. package/dist/interaction-driver-diagnostic.d.ts +28 -0
  187. package/dist/interaction.d.ts +2126 -881
  188. package/dist/knowledge-entries.d.ts +38 -0
  189. package/dist/knowledge-preparation.d.ts +4 -0
  190. package/dist/learning-refusal.d.ts +43 -0
  191. package/dist/learning-refusal.js +49 -0
  192. package/dist/learning-refusal.js.map +1 -0
  193. package/dist/managed-auth-session-sets.d.ts +1 -0
  194. package/dist/managed-auth-session-sets.js +207 -146
  195. package/dist/managed-auth-session-sets.js.map +1 -1
  196. package/dist/managed-sign-in-methods.d.ts +96 -0
  197. package/dist/managed-sign-in-methods.js +157 -35
  198. package/dist/managed-sign-in-methods.js.map +1 -1
  199. package/dist/mcp-structured-content.d.ts +25 -0
  200. package/dist/message-time-zone.d.ts +38 -0
  201. package/dist/message-time-zone.js +19 -0
  202. package/dist/message-time-zone.js.map +1 -0
  203. package/dist/modal-native-proof-v2.d.ts +587 -0
  204. package/dist/modal-native-proof-v2.js +39 -0
  205. package/dist/modal-native-proof-v2.js.map +1 -0
  206. package/dist/model-account-choice.d.ts +237 -0
  207. package/dist/model-account-settings.d.ts +422 -0
  208. package/dist/model-availability.d.ts +15 -0
  209. package/dist/model-connection-access.d.ts +13 -0
  210. package/dist/model-context-inspector.d.ts +8 -0
  211. package/dist/model-display.d.ts +43 -0
  212. package/dist/model-display.js +17 -0
  213. package/dist/model-display.js.map +1 -0
  214. package/dist/model-picker-order.js.map +1 -1
  215. package/dist/model-residency.d.ts +304 -0
  216. package/dist/organization-access.d.ts +416 -0
  217. package/dist/organization-access.js +40 -0
  218. package/dist/organization-access.js.map +1 -0
  219. package/dist/organization-integration-policy.d.ts +18 -0
  220. package/dist/organization-membership-lifecycle.d.ts +66 -0
  221. package/dist/organization-model-usage.d.ts +146 -0
  222. package/dist/organization-model-usage.js +87 -0
  223. package/dist/organization-model-usage.js.map +1 -0
  224. package/dist/organization-recovery.js +3 -1
  225. package/dist/organization-usage.d.ts +12 -0
  226. package/dist/passkey-only-account.d.ts +14 -0
  227. package/dist/passkey-only-account.js +13 -0
  228. package/dist/passkey-only-account.js.map +1 -0
  229. package/dist/permissions.d.ts +19 -0
  230. package/dist/personal-github.js +220 -148
  231. package/dist/personal-github.js.map +1 -1
  232. package/dist/personal-integration-setup.d.ts +81 -0
  233. package/dist/personal-integration-setup.js +42 -0
  234. package/dist/personal-integration-setup.js.map +1 -0
  235. package/dist/prepared-mcp-setup.d.ts +54 -0
  236. package/dist/prepared-mcp-setup.js +13 -0
  237. package/dist/prepared-mcp-setup.js.map +1 -0
  238. package/dist/presentation-artifact-commands.js +2 -2
  239. package/dist/presentation-artifact-query.js +2 -2
  240. package/dist/primitives.d.ts +18 -0
  241. package/dist/product-analytics.d.ts +27 -10
  242. package/dist/product-lifecycle-facts.d.ts +26 -3
  243. package/dist/prompt-cache-diagnostics.d.ts +92 -0
  244. package/dist/recordings.d.ts +1371 -0
  245. package/dist/remember.d.ts +98 -2
  246. package/dist/retained-output.d.ts +4 -2
  247. package/dist/sandbox-file-artifacts.d.ts +19 -2
  248. package/dist/sandbox-provider-command.d.ts +5 -44
  249. package/dist/sandbox-recovery.d.ts +139 -8
  250. package/dist/secret-generator.d.ts +44 -0
  251. package/dist/secret-mask-strings.d.ts +32 -0
  252. package/dist/secret-references.d.ts +90 -0
  253. package/dist/secret-resolution.d.ts +143 -0
  254. package/dist/secret-shape-masking.d.ts +52 -0
  255. package/dist/secret-shape-masking.js +19 -0
  256. package/dist/secret-shape-masking.js.map +1 -0
  257. package/dist/secret-totp.d.ts +41 -0
  258. package/dist/secret-use-approval-question.d.ts +11 -0
  259. package/dist/secret-use-approval-question.js +11 -0
  260. package/dist/secret-use-approval-question.js.map +1 -0
  261. package/dist/secret-use-approvals.d.ts +106 -0
  262. package/dist/secret-value-masking.d.ts +299 -0
  263. package/dist/secret-value-masking.js +62 -0
  264. package/dist/secret-value-masking.js.map +1 -0
  265. package/dist/secret-value.d.ts +19 -0
  266. package/dist/session-history-import.d.ts +444 -8
  267. package/dist/session-history.d.ts +111 -0
  268. package/dist/session-history.js +35 -0
  269. package/dist/session-history.js.map +1 -0
  270. package/dist/session-list-entries.d.ts +8 -0
  271. package/dist/session-list-entries.js +61 -0
  272. package/dist/session-list-entries.js.map +1 -0
  273. package/dist/session-mcp-projections.d.ts +13 -1
  274. package/dist/session-mcp-tool-permissions.d.ts +62 -0
  275. package/dist/session-target.d.ts +18 -0
  276. package/dist/session-titles.d.ts +8 -0
  277. package/dist/session-titles.js +5 -1
  278. package/dist/session-usage-limit-refusal.d.ts +34 -0
  279. package/dist/session-usage-limit-refusal.js +15 -0
  280. package/dist/session-usage-limit-refusal.js.map +1 -0
  281. package/dist/session-usage-limits.d.ts +127 -0
  282. package/dist/session-usage-limits.js +43 -0
  283. package/dist/session-usage-limits.js.map +1 -0
  284. package/dist/site-data.d.ts +286 -0
  285. package/dist/site-operations.d.ts +39 -0
  286. package/dist/site-publishing.d.ts +813 -0
  287. package/dist/site-session-http.d.ts +103 -4
  288. package/dist/site-session-http.js +27 -1
  289. package/dist/site-sql.d.ts +425 -0
  290. package/dist/skills.d.ts +38 -0
  291. package/dist/slack-bot-scopes.d.ts +9 -7
  292. package/dist/slack-bot-scopes.js +6 -3
  293. package/dist/slack-rest-mcp.d.ts +36 -0
  294. package/dist/slack-rest-mcp.js +25 -0
  295. package/dist/slack-rest-mcp.js.map +1 -0
  296. package/dist/spreadsheet-artifact-commands.d.ts +14 -1
  297. package/dist/spreadsheet-artifact-commands.js +9 -2
  298. package/dist/spreadsheet-artifact-query.d.ts +13 -6
  299. package/dist/spreadsheet-artifact-query.js +4 -3
  300. package/dist/subscription-account-actions.d.ts +83 -0
  301. package/dist/subscription-account-pools.d.ts +326 -0
  302. package/dist/subscription-personal-authority-v2.d.ts +28 -0
  303. package/dist/subscription-personal-authority-v2.js +13 -0
  304. package/dist/subscription-personal-authority-v2.js.map +1 -0
  305. package/dist/subscription-plans.d.ts +38 -0
  306. package/dist/subscription-usage-pool.d.ts +89 -0
  307. package/dist/tool-action-review.d.ts +141 -0
  308. package/dist/tool-catalog.d.ts +479 -0
  309. package/dist/tool-policy.d.ts +5 -0
  310. package/dist/tool-review-presentation.d.ts +29 -0
  311. package/dist/tool-review-presentation.js +21 -0
  312. package/dist/tool-review-presentation.js.map +1 -0
  313. package/dist/turn-serving-policy.d.ts +223 -0
  314. package/dist/usage-allowances.d.ts +30 -0
  315. package/dist/usage-allowances.js +5 -1
  316. package/dist/values.d.ts +11 -0
  317. package/dist/values.js +19 -0
  318. package/dist/values.js.map +1 -0
  319. package/dist/vault-provider-wire.d.ts +907 -0
  320. package/dist/vault-provider-wire.js +74 -0
  321. package/dist/vault-provider-wire.js.map +1 -0
  322. package/dist/vaults.d.ts +2185 -0
  323. package/dist/video-generation.d.ts +75 -0
  324. package/dist/video-generation.js +8 -1
  325. package/dist/workspace-control-event.d.ts +18 -0
  326. package/dist/workspace-control-event.js +18 -0
  327. package/dist/workspace-control-event.js.map +1 -0
  328. package/dist/workspace-governance-context.d.ts +18 -0
  329. package/dist/workspace-integration-wire.d.ts +1 -1
  330. package/dist/workspace-integration-wire.js +1 -1
  331. package/dist/workspace-integrations.d.ts +212 -12
  332. package/dist/xai-provider-account-authority.js +3 -1
  333. package/package.json +121 -4
  334. package/src/agent-authored-durable-text.ts +14 -11
  335. package/src/agent-config.ts +382 -203
  336. package/src/agent-instruction-changes.ts +94 -74
  337. package/src/agent-learning.ts +94 -66
  338. package/src/agent-topology.ts +58 -52
  339. package/src/api-key-presets.ts +28 -0
  340. package/src/app-action-catalog-types.ts +32 -0
  341. package/src/app-action-catalog.gen.ts +9905 -0
  342. package/src/app-actions.ts +365 -0
  343. package/src/app-shot.ts +176 -0
  344. package/src/artifact-catalog.ts +81 -46
  345. package/src/artifacts.ts +360 -227
  346. package/src/atlassian-native-retirement.ts +33 -0
  347. package/src/atlassian.ts +136 -108
  348. package/src/automation-templates.ts +201 -0
  349. package/src/billing-subscriptions.ts +48 -0
  350. package/src/bots.ts +238 -0
  351. package/src/bundled-skills.ts +79 -22
  352. package/src/canonical-human-identities.ts +65 -62
  353. package/src/child-lifecycle-notice-protocol.gen.json +1310 -0
  354. package/src/child-lifecycle-notice-protocol.ts +224 -0
  355. package/src/claude-provider-account-authority.ts +12 -0
  356. package/src/claude-subscription-oauth.ts +61 -19
  357. package/src/claude-subscription-usage.ts +64 -35
  358. package/src/client-error-report.ts +344 -9
  359. package/src/code-search.ts +1 -1
  360. package/src/codex-provider-account-authority.ts +22 -16
  361. package/src/company-brain-governed-writes.ts +265 -244
  362. package/src/company-brain.ts +165 -154
  363. package/src/company-profile.ts +362 -297
  364. package/src/connect.ts +222 -173
  365. package/src/connection-account-label.ts +45 -0
  366. package/src/connection-authority.ts +172 -152
  367. package/src/connector-attachments.ts +139 -123
  368. package/src/connector-destinations.ts +48 -43
  369. package/src/connector-tool-permissions.ts +104 -46
  370. package/src/credential-profiles.ts +161 -0
  371. package/src/cua-desktop-tools.gen.json +6722 -0
  372. package/src/cua-desktop-tools.linux.gen.json +6798 -0
  373. package/src/cua-desktop-tools.ts +42 -0
  374. package/src/cua-desktop-tools.windows.gen.json +6739 -0
  375. package/src/define-schema.ts +10 -0
  376. package/src/desktop-app.ts +50 -0
  377. package/src/direct-model-provider.ts +112 -0
  378. package/src/editable-artifact-binary.ts +29 -8
  379. package/src/editable-artifact-committed-transaction.ts +19 -18
  380. package/src/editable-artifact-serialized-commit.ts +8 -2
  381. package/src/editable-artifact-versions.ts +7 -1
  382. package/src/event-preview.ts +53 -3
  383. package/src/event-triggers.ts +891 -0
  384. package/src/external-identities.ts +239 -195
  385. package/src/feedback.ts +125 -30
  386. package/src/file-access.ts +26 -0
  387. package/src/first-party-tool-authorization.ts +383 -0
  388. package/src/github-repository-contracts.ts +78 -64
  389. package/src/google-drive-native-retirement.ts +20 -0
  390. package/src/google-drive.ts +286 -234
  391. package/src/governed-learning-activation.ts +159 -137
  392. package/src/governed-learning-evaluator.ts +141 -133
  393. package/src/host-mcp-bindings.ts +244 -221
  394. package/src/image-generation.ts +105 -95
  395. package/src/index.ts +13928 -9899
  396. package/src/inference-residency.ts +36 -0
  397. package/src/insights-usage.ts +774 -0
  398. package/src/integration-capability-id.ts +16 -0
  399. package/src/interaction-action-deadline.ts +143 -0
  400. package/src/interaction-driver-diagnostic.ts +89 -0
  401. package/src/interaction.ts +3527 -2427
  402. package/src/knowledge-entries.ts +386 -299
  403. package/src/knowledge-preparation.ts +49 -41
  404. package/src/knowledge.ts +242 -213
  405. package/src/learning-refusal.ts +90 -0
  406. package/src/managed-auth-session-sets.ts +180 -133
  407. package/src/managed-sign-in-methods.ts +156 -34
  408. package/src/mcp-oauth.ts +58 -46
  409. package/src/mcp-receipts.ts +199 -194
  410. package/src/mcp-structured-content.ts +81 -0
  411. package/src/memory-slack-delivery.ts +172 -142
  412. package/src/message-time-zone.ts +109 -0
  413. package/src/modal-native-proof-v2.ts +430 -0
  414. package/src/model-account-choice.ts +178 -0
  415. package/src/model-account-settings.ts +210 -0
  416. package/src/model-availability.ts +22 -0
  417. package/src/model-connection-access.ts +62 -14
  418. package/src/model-context-inspector.ts +130 -109
  419. package/src/model-display.ts +221 -0
  420. package/src/model-picker-order.ts +1 -1
  421. package/src/model-residency.ts +535 -0
  422. package/src/organization-access.ts +216 -0
  423. package/src/organization-integration-policy.ts +47 -28
  424. package/src/organization-membership-lifecycle.ts +558 -384
  425. package/src/organization-model-usage.ts +82 -0
  426. package/src/organization-recovery.ts +148 -135
  427. package/src/organization-usage.ts +84 -52
  428. package/src/passkey-only-account.ts +29 -0
  429. package/src/permissions.ts +94 -52
  430. package/src/personal-github.ts +211 -171
  431. package/src/personal-integration-setup.ts +150 -0
  432. package/src/preference-registry.ts +319 -263
  433. package/src/prepared-mcp-setup.ts +190 -0
  434. package/src/primitives.ts +22 -0
  435. package/src/product-analytics.ts +40 -15
  436. package/src/product-lifecycle-facts.ts +50 -20
  437. package/src/prompt-cache-diagnostics.ts +212 -0
  438. package/src/recordings.ts +1153 -0
  439. package/src/remember.ts +184 -172
  440. package/src/retained-output.ts +181 -168
  441. package/src/sandbox-file-artifacts.ts +78 -57
  442. package/src/sandbox-provider-command.ts +55 -72
  443. package/src/sandbox-recovery.ts +163 -77
  444. package/src/scoped-knowledge.ts +62 -43
  445. package/src/secret-generator.ts +156 -0
  446. package/src/secret-mask-strings.ts +175 -0
  447. package/src/secret-references.ts +414 -0
  448. package/src/secret-resolution.ts +322 -0
  449. package/src/secret-shape-masking.ts +573 -0
  450. package/src/secret-totp.ts +188 -0
  451. package/src/secret-use-approval-question.ts +22 -0
  452. package/src/secret-use-approvals.ts +219 -0
  453. package/src/secret-value-masking.ts +1283 -0
  454. package/src/secret-value.ts +22 -0
  455. package/src/session-goal-reports.ts +55 -49
  456. package/src/session-history-import.ts +84 -68
  457. package/src/session-history.ts +197 -0
  458. package/src/session-list-entries.ts +106 -0
  459. package/src/session-mcp-projections.ts +21 -3
  460. package/src/session-mcp-tool-permissions.ts +109 -0
  461. package/src/session-message-search.ts +46 -38
  462. package/src/session-target.ts +58 -0
  463. package/src/session-titles.ts +40 -4
  464. package/src/session-topology-primitives.ts +20 -12
  465. package/src/session-usage-limit-refusal.ts +101 -0
  466. package/src/session-usage-limits.ts +169 -0
  467. package/src/signup-attribution.ts +20 -15
  468. package/src/site-data.ts +337 -0
  469. package/src/site-operations.ts +154 -0
  470. package/src/site-publishing.ts +903 -0
  471. package/src/site-session-http.ts +344 -16
  472. package/src/site-sql.ts +1120 -0
  473. package/src/skill-use.ts +18 -17
  474. package/src/skills.ts +105 -50
  475. package/src/slack-bot-scopes.ts +18 -35
  476. package/src/slack-rest-mcp.ts +222 -0
  477. package/src/slack-task-policy.ts +97 -73
  478. package/src/spreadsheet-artifact-commands.ts +74 -13
  479. package/src/spreadsheet-artifact-query.ts +188 -50
  480. package/src/subscription-account-actions.ts +103 -0
  481. package/src/subscription-account-pools.ts +74 -0
  482. package/src/subscription-personal-authority-v2.ts +69 -0
  483. package/src/subscription-plans.ts +51 -0
  484. package/src/subscription-usage-pool.ts +44 -0
  485. package/src/task-notes.ts +70 -68
  486. package/src/tool-action-review.ts +271 -0
  487. package/src/tool-catalog.ts +694 -379
  488. package/src/tool-policy.ts +82 -0
  489. package/src/tool-result-spill.ts +13 -9
  490. package/src/tool-review-presentation.ts +643 -0
  491. package/src/turn-serving-policy.ts +167 -0
  492. package/src/usage-allowances.ts +212 -136
  493. package/src/values.ts +25 -0
  494. package/src/vault-provider-wire.ts +580 -0
  495. package/src/vaults.ts +1296 -0
  496. package/src/video-generation.ts +430 -361
  497. package/src/work-claims.ts +183 -166
  498. package/src/workspace-control-event.ts +134 -0
  499. package/src/workspace-governance-context.ts +63 -0
  500. package/src/workspace-instruction-policies.ts +346 -279
  501. package/src/workspace-integration-wire.ts +10 -0
  502. package/src/workspace-integrations.ts +488 -398
  503. package/src/workspace-learning-administration.ts +58 -44
  504. package/src/workspace-learning-policy.ts +126 -99
  505. package/src/workspace-state.ts +239 -220
  506. package/src/xai-provider-account-authority.ts +23 -17
  507. package/dist/chunk-3SIZGL3O.js.map +0 -1
  508. package/dist/chunk-566IFOVP.js +0 -26133
  509. package/dist/chunk-566IFOVP.js.map +0 -1
  510. package/dist/chunk-5IXYF6XN.js +0 -728
  511. package/dist/chunk-5IXYF6XN.js.map +0 -1
  512. package/dist/chunk-5Q54VCCH.js.map +0 -1
  513. package/dist/chunk-BCS7WHCK.js +0 -139
  514. package/dist/chunk-BCS7WHCK.js.map +0 -1
  515. package/dist/chunk-EK7NDGFR.js +0 -128
  516. package/dist/chunk-EK7NDGFR.js.map +0 -1
  517. package/dist/chunk-GRG7PHWQ.js +0 -25
  518. package/dist/chunk-GRG7PHWQ.js.map +0 -1
  519. package/dist/chunk-HHZSZYYF.js.map +0 -1
  520. package/dist/chunk-ICDZGUX2.js +0 -186
  521. package/dist/chunk-ICDZGUX2.js.map +0 -1
  522. package/dist/chunk-JUFK3T4Q.js +0 -80
  523. package/dist/chunk-JUFK3T4Q.js.map +0 -1
  524. package/dist/chunk-MYBZRDTY.js.map +0 -1
  525. package/dist/chunk-NRMCVHAU.js.map +0 -1
  526. package/dist/chunk-O77VSFYZ.js.map +0 -1
  527. package/dist/chunk-P3HLDT77.js +0 -59
  528. package/dist/chunk-P3HLDT77.js.map +0 -1
  529. package/dist/chunk-TXTQIYCV.js.map +0 -1
  530. package/dist/chunk-WYBDERIY.js.map +0 -1
  531. package/dist/chunk-Y3KNXVTD.js.map +0 -1
  532. package/dist/chunk-YBW5JSA3.js.map +0 -1
  533. package/dist/chunk-YRXAWWCU.js +0 -45
  534. package/dist/chunk-YRXAWWCU.js.map +0 -1
  535. package/dist/chunk-YWMOIZ6A.js +0 -185
  536. package/dist/chunk-YWMOIZ6A.js.map +0 -1
  537. package/dist/site-request-headers.test.d.ts +0 -1
  538. package/dist/transcription-recordings.d.ts +0 -300
  539. package/src/transcription-recordings.ts +0 -169
  540. /package/dist/{chunk-SIOU2K4U.js.map → chunk-LJH2EYGT.js.map} +0 -0
  541. /package/dist/{chunk-RIY7GYQS.js.map → chunk-PTSROVDG.js.map} +0 -0
  542. /package/dist/{chunk-YRKRZ6OF.js.map → chunk-TOOJIBJC.js.map} +0 -0
  543. /package/dist/{chunk-D2HKF2EF.js.map → chunk-XP5M3IKT.js.map} +0 -0
@@ -0,0 +1,382 @@
1
+ import {
2
+ defineSchema
3
+ } from "./chunk-56SNIMDO.js";
4
+
5
+ // src/model-residency.ts
6
+ import { z } from "zod";
7
+ var MODEL_PROCESSING_GEOGRAPHIES = ["eu", "us", "global", "other", "unknown"];
8
+ var ModelProcessingGeography = /* @__PURE__ */ defineSchema(
9
+ () => z.enum(MODEL_PROCESSING_GEOGRAPHIES)
10
+ );
11
+ var MODEL_DEPLOYMENT_TYPES = [
12
+ "azure_regional",
13
+ "azure_data_zone",
14
+ "azure_global",
15
+ "bedrock_regional",
16
+ "bedrock_geo_profile",
17
+ "bedrock_global_profile",
18
+ "gateway",
19
+ "subscription",
20
+ "provider_default",
21
+ "self_hosted",
22
+ "unknown"
23
+ ];
24
+ var ModelDeploymentType = /* @__PURE__ */ defineSchema(
25
+ () => z.enum(MODEL_DEPLOYMENT_TYPES)
26
+ );
27
+ var EU_CAPABLE_DEPLOYMENT_TYPES = Object.freeze([
28
+ "azure_regional",
29
+ "azure_data_zone",
30
+ "bedrock_regional",
31
+ "bedrock_geo_profile",
32
+ "provider_default",
33
+ "self_hosted"
34
+ ]);
35
+ var EU_AZURE_REGIONS = Object.freeze([
36
+ "austriaeast",
37
+ "belgiumcentral",
38
+ "denmarkeast",
39
+ "francecentral",
40
+ "francesouth",
41
+ "germanynorth",
42
+ "germanywestcentral",
43
+ "italynorth",
44
+ "northeurope",
45
+ "norwayeast",
46
+ "norwaywest",
47
+ "polandcentral",
48
+ "spaincentral",
49
+ "swedencentral",
50
+ "swedensouth",
51
+ "switzerlandnorth",
52
+ "switzerlandwest",
53
+ "westeurope"
54
+ ]);
55
+ var EU_AWS_REGIONS = Object.freeze([
56
+ "eu-central-1",
57
+ "eu-central-2",
58
+ "eu-north-1",
59
+ "eu-south-1",
60
+ "eu-south-2",
61
+ "eu-west-1",
62
+ "eu-west-3"
63
+ ]);
64
+ function euRegionsFor(deploymentType) {
65
+ if (deploymentType === "azure_regional" || deploymentType === "azure_data_zone") {
66
+ return EU_AZURE_REGIONS;
67
+ }
68
+ if (deploymentType === "bedrock_regional" || deploymentType === "bedrock_geo_profile") {
69
+ return EU_AWS_REGIONS;
70
+ }
71
+ return null;
72
+ }
73
+ var MODEL_RESIDENCY_EVIDENCE_SOURCES = [
74
+ /** The deployment operator declared it in the reviewed catalog or environment. */
75
+ "operator_declaration",
76
+ /** Published provider documentation for this exact route type. */
77
+ "provider_documentation",
78
+ /** A provider API reported it (for example an Azure deployment SKU lookup). */
79
+ "provider_api",
80
+ /** A code-owned rule for a provider kind, reviewed with the code. */
81
+ "built_in_rule",
82
+ /** An organization admin declared it for their own connection. */
83
+ "admin_declaration",
84
+ /** Nothing establishes where this route processes data. */
85
+ "none"
86
+ ];
87
+ var ModelResidencyEvidenceSource = /* @__PURE__ */ defineSchema(
88
+ () => z.enum(MODEL_RESIDENCY_EVIDENCE_SOURCES)
89
+ );
90
+ var REGION_PATTERN = /^[a-z0-9][a-z0-9-]{0,62}$/u;
91
+ var ModelResidencyEvidenceV1 = /* @__PURE__ */ defineSchema(
92
+ () => z.object({
93
+ source: ModelResidencyEvidenceSource,
94
+ /** Where to check it: a document URL, resource and SKU, or rule description. */
95
+ reference: z.string().trim().min(1).max(1e3).nullable(),
96
+ /** Date (or date-time) the evidence was last checked. */
97
+ verifiedAt: z.union([z.iso.date(), z.iso.datetime()]).nullable()
98
+ }).strict()
99
+ );
100
+ function modelResidencyProblems(residency) {
101
+ const problems = [];
102
+ if (residency.geography === "unknown") {
103
+ return problems;
104
+ }
105
+ if (residency.evidence.source === "none" || residency.evidence.reference === null) {
106
+ problems.push({
107
+ path: ["evidence"],
108
+ message: "a known processing geography needs an evidence source and reference"
109
+ });
110
+ }
111
+ if (residency.geography !== "eu") return problems;
112
+ if (!EU_CAPABLE_DEPLOYMENT_TYPES.includes(residency.deploymentType)) {
113
+ problems.push({
114
+ path: ["deploymentType"],
115
+ message: `${residency.deploymentType} routing can leave the EU, so it cannot be declared eu`
116
+ });
117
+ return problems;
118
+ }
119
+ const allowedRegions = euRegionsFor(residency.deploymentType);
120
+ if (allowedRegions) {
121
+ if (residency.regions.length === 0) {
122
+ problems.push({ path: ["regions"], message: "an eu claim needs the route's regions" });
123
+ }
124
+ for (const region of residency.regions) {
125
+ if (!allowedRegions.includes(region)) {
126
+ problems.push({
127
+ path: ["regions"],
128
+ message: `${region} is not an EU region for ${residency.deploymentType}`
129
+ });
130
+ }
131
+ }
132
+ }
133
+ return problems;
134
+ }
135
+ var NON_EU_BEDROCK_PROFILE_PREFIXES = Object.freeze([
136
+ "us.",
137
+ "us-gov.",
138
+ "apac.",
139
+ "jp.",
140
+ "au.",
141
+ "ca.",
142
+ "global."
143
+ ]);
144
+ var NON_EU_MODEL_HOSTS = Object.freeze([
145
+ "ai-gateway.vercel.sh",
146
+ "api.anthropic.com",
147
+ "api.openai.com",
148
+ "api.x.ai",
149
+ "chatgpt.com",
150
+ "openrouter.ai"
151
+ ]);
152
+ function hostOf(baseUrl) {
153
+ try {
154
+ return new URL(baseUrl).hostname.toLowerCase().replace(/\.+$/u, "");
155
+ } catch {
156
+ return null;
157
+ }
158
+ }
159
+ function modelEndpointDeployment(url) {
160
+ let pathname;
161
+ try {
162
+ pathname = new URL(url).pathname;
163
+ } catch {
164
+ return null;
165
+ }
166
+ const segments = pathname.split("/").filter((raw) => raw !== "").map((raw) => {
167
+ let decoded;
168
+ try {
169
+ decoded = decodeURIComponent(raw);
170
+ } catch {
171
+ decoded = null;
172
+ }
173
+ return {
174
+ decoded,
175
+ marker: decoded?.toLowerCase() === "deployments",
176
+ hidesMarker: hidesDeploymentsMarker(raw),
177
+ plain: decoded !== null && isPlainDeploymentSegment(decoded)
178
+ };
179
+ });
180
+ const first = segments.findIndex((segment) => segment.marker || segment.hidesMarker);
181
+ if (first < 0) return null;
182
+ const marker = segments[first];
183
+ const name = segments[first + 1];
184
+ if (!marker.marker || !name) return "";
185
+ const rest = segments.slice(first + 1);
186
+ if (!rest.every((segment) => segment.plain)) return "";
187
+ if (rest.slice(1).some((segment) => segment.marker || segment.hidesMarker)) return "";
188
+ return name.decoded;
189
+ }
190
+ function isPlainDeploymentSegment(segment) {
191
+ return /^[A-Za-z0-9._-]+$/u.test(segment) && segment !== "." && segment !== "..";
192
+ }
193
+ function hidesDeploymentsMarker(raw) {
194
+ return looselyDecoded(raw).split(/[/\\]/u).some(
195
+ (part) => part.replace(/^[^A-Za-z0-9]+/u, "").toLowerCase().startsWith("deployments")
196
+ );
197
+ }
198
+ function looselyDecoded(raw) {
199
+ let value = raw;
200
+ for (let round = 0; round < 4; round += 1) {
201
+ const next = value.replace(
202
+ /%([0-7][0-9a-f])/giu,
203
+ (_, hex) => String.fromCharCode(Number.parseInt(hex, 16))
204
+ );
205
+ if (next === value) break;
206
+ value = next;
207
+ }
208
+ return value;
209
+ }
210
+ function modelResidencyRouteProblems(residency, route) {
211
+ if (residency.geography !== "eu") return [];
212
+ const problems = [];
213
+ const upstreamModelId = (route.upstreamModelId ?? "").toLowerCase();
214
+ if (residency.deploymentType.startsWith("bedrock_")) {
215
+ const prefix = NON_EU_BEDROCK_PROFILE_PREFIXES.find(
216
+ (candidate) => upstreamModelId.startsWith(candidate)
217
+ );
218
+ if (prefix) {
219
+ problems.push({
220
+ path: ["upstreamModelId"],
221
+ message: `${upstreamModelId} is a ${prefix} inference profile, which routes outside the EU`
222
+ });
223
+ } else if (residency.deploymentType === "bedrock_geo_profile" && !upstreamModelId.startsWith("eu.")) {
224
+ problems.push({
225
+ path: ["upstreamModelId"],
226
+ message: `an eu bedrock_geo_profile needs an eu. inference profile, not ${upstreamModelId}`
227
+ });
228
+ }
229
+ }
230
+ const host = route.baseUrl ? hostOf(route.baseUrl) : null;
231
+ if (host && NON_EU_MODEL_HOSTS.includes(host)) {
232
+ problems.push({
233
+ path: ["baseUrl"],
234
+ message: `${host} routes outside the EU, so a route on it cannot be declared eu`
235
+ });
236
+ }
237
+ const deployment = route.baseUrl ? modelEndpointDeployment(route.baseUrl) : null;
238
+ if (deployment === "") {
239
+ problems.push({
240
+ path: ["baseUrl"],
241
+ message: "the endpoint calls a deployment whose name can't be read, so it cannot be declared eu"
242
+ });
243
+ } else if (deployment !== null && deployment !== (route.upstreamModelId ?? "")) {
244
+ problems.push({
245
+ path: ["baseUrl"],
246
+ message: `the endpoint calls deployment ${deployment}, not ${route.upstreamModelId ?? "this model"}, so only ${deployment} can be declared eu on it`
247
+ });
248
+ }
249
+ return problems;
250
+ }
251
+ function modelResidencyClaim(residency) {
252
+ return {
253
+ geography: residency.geography,
254
+ deploymentType: residency.deploymentType,
255
+ regions: [...new Set(residency.regions)].sort()
256
+ };
257
+ }
258
+ var ModelResidencyV1 = /* @__PURE__ */ defineSchema(
259
+ () => z.object({
260
+ geography: ModelProcessingGeography,
261
+ deploymentType: ModelDeploymentType,
262
+ /** Provider regions where the endpoint or processing lives, when known. */
263
+ regions: z.array(z.string().regex(REGION_PATTERN)).max(32),
264
+ evidence: ModelResidencyEvidenceV1
265
+ }).strict().superRefine((residency, context) => {
266
+ for (const problem of modelResidencyProblems(residency)) {
267
+ context.addIssue({ code: "custom", path: problem.path, message: problem.message });
268
+ }
269
+ })
270
+ );
271
+ var ModelResidencyDeclaration = /* @__PURE__ */ defineSchema(
272
+ () => z.object({
273
+ geography: ModelProcessingGeography,
274
+ deploymentType: ModelDeploymentType,
275
+ regions: z.array(z.string().regex(REGION_PATTERN)).max(32).default([]),
276
+ evidence: z.object({
277
+ // Operator configuration states its own declaration or the provider
278
+ // documentation it relies on; other sources come from code or admins.
279
+ source: z.enum(["operator_declaration", "provider_documentation"]),
280
+ reference: z.string().trim().min(1).max(1e3),
281
+ verifiedAt: z.union([z.iso.date(), z.iso.datetime()]).nullable().default(null)
282
+ }).strict()
283
+ }).strict().superRefine((residency, context) => {
284
+ for (const problem of modelResidencyProblems(residency)) {
285
+ context.addIssue({ code: "custom", path: problem.path, message: problem.message });
286
+ }
287
+ })
288
+ );
289
+ var UNKNOWN_MODEL_RESIDENCY = Object.freeze({
290
+ geography: "unknown",
291
+ deploymentType: "unknown",
292
+ regions: Object.freeze([]),
293
+ evidence: Object.freeze({ source: "none", reference: null, verifiedAt: null })
294
+ });
295
+ function isEuResidency(residency) {
296
+ const parsed = ModelResidencyV1.safeParse(residency);
297
+ if (!parsed.success) return false;
298
+ return parsed.data.geography === "eu" && parsed.data.evidence.source !== "none" && parsed.data.evidence.reference !== null;
299
+ }
300
+ var ClientModelResidencyV1 = /* @__PURE__ */ defineSchema(
301
+ () => z.object({
302
+ geography: ModelProcessingGeography,
303
+ deploymentType: ModelDeploymentType,
304
+ regions: z.array(z.string()).max(32),
305
+ evidenceSource: ModelResidencyEvidenceSource,
306
+ eu: z.boolean()
307
+ }).strict()
308
+ );
309
+ function projectClientModelResidency(residency) {
310
+ return {
311
+ geography: residency.geography,
312
+ deploymentType: residency.deploymentType,
313
+ regions: [...residency.regions],
314
+ evidenceSource: residency.evidence.source,
315
+ eu: isEuResidency(residency)
316
+ };
317
+ }
318
+ var ModelCallProcessingResidencyV1 = /* @__PURE__ */ defineSchema(
319
+ () => z.object({
320
+ geography: ModelProcessingGeography,
321
+ deploymentType: ModelDeploymentType,
322
+ regions: z.array(z.string().regex(REGION_PATTERN)).max(32)
323
+ }).strict().superRefine((claim, context) => {
324
+ if (!recordedEuClaimHolds(claim)) {
325
+ context.addIssue({
326
+ code: "custom",
327
+ path: ["geography"],
328
+ message: "an eu claim needs an EU-capable deployment type and EU regions"
329
+ });
330
+ }
331
+ })
332
+ );
333
+ function recordedEuClaimHolds(claim) {
334
+ if (claim.geography !== "eu") return true;
335
+ if (!EU_CAPABLE_DEPLOYMENT_TYPES.includes(claim.deploymentType)) return false;
336
+ const allowedRegions = euRegionsFor(claim.deploymentType);
337
+ if (!allowedRegions) return true;
338
+ return claim.regions.length > 0 && claim.regions.every((region) => allowedRegions.includes(region));
339
+ }
340
+ function modelCallProcessingResidency(residency) {
341
+ const parsed = ModelResidencyV1.safeParse(residency);
342
+ return modelResidencyClaim(parsed.success ? parsed.data : UNKNOWN_MODEL_RESIDENCY);
343
+ }
344
+ function parseModelCallProcessingResidency(value) {
345
+ if (value === void 0 || value === null) return null;
346
+ const record = typeof value === "object" && !Array.isArray(value) ? value : {};
347
+ const parsed = ModelCallProcessingResidencyV1.safeParse({
348
+ geography: record.geography,
349
+ deploymentType: record.deploymentType,
350
+ regions: record.regions
351
+ });
352
+ return modelResidencyClaim(parsed.success ? parsed.data : UNKNOWN_MODEL_RESIDENCY);
353
+ }
354
+
355
+ export {
356
+ MODEL_PROCESSING_GEOGRAPHIES,
357
+ ModelProcessingGeography,
358
+ MODEL_DEPLOYMENT_TYPES,
359
+ ModelDeploymentType,
360
+ EU_CAPABLE_DEPLOYMENT_TYPES,
361
+ EU_AZURE_REGIONS,
362
+ EU_AWS_REGIONS,
363
+ MODEL_RESIDENCY_EVIDENCE_SOURCES,
364
+ ModelResidencyEvidenceSource,
365
+ ModelResidencyEvidenceV1,
366
+ modelResidencyProblems,
367
+ NON_EU_BEDROCK_PROFILE_PREFIXES,
368
+ NON_EU_MODEL_HOSTS,
369
+ modelEndpointDeployment,
370
+ modelResidencyRouteProblems,
371
+ modelResidencyClaim,
372
+ ModelResidencyV1,
373
+ ModelResidencyDeclaration,
374
+ UNKNOWN_MODEL_RESIDENCY,
375
+ isEuResidency,
376
+ ClientModelResidencyV1,
377
+ projectClientModelResidency,
378
+ ModelCallProcessingResidencyV1,
379
+ modelCallProcessingResidency,
380
+ parseModelCallProcessingResidency
381
+ };
382
+ //# sourceMappingURL=chunk-A3LXWVYU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/model-residency.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { defineSchema } from \"./define-schema\";\n\n/**\n * Where a model route processes prompts and outputs, and how we know.\n *\n * EU status is derived only from this record, never from a model name, label\n * or provider id. A route without a record is `unknown`, and unknown is never\n * EU. `eu` follows GDPR: EEA processing counts the same as EU processing, so a\n * provider's EU data zone (Azure Data Zone EU, Bedrock `eu.` inference\n * profiles) qualifies even when it can include Norway or Switzerland.\n */\nexport const MODEL_PROCESSING_GEOGRAPHIES = [\"eu\", \"us\", \"global\", \"other\", \"unknown\"] as const;\nexport const ModelProcessingGeography = /* @__PURE__ */ defineSchema(() =>\n z.enum(MODEL_PROCESSING_GEOGRAPHIES),\n);\nexport type ModelProcessingGeography = z.infer<typeof ModelProcessingGeography>;\n\n/** How the provider places the request. Global routing types can never be EU. */\nexport const MODEL_DEPLOYMENT_TYPES = [\n \"azure_regional\",\n \"azure_data_zone\",\n \"azure_global\",\n \"bedrock_regional\",\n \"bedrock_geo_profile\",\n \"bedrock_global_profile\",\n \"gateway\",\n \"subscription\",\n \"provider_default\",\n \"self_hosted\",\n \"unknown\",\n] as const;\nexport const ModelDeploymentType = /* @__PURE__ */ defineSchema(() =>\n z.enum(MODEL_DEPLOYMENT_TYPES),\n);\nexport type ModelDeploymentType = z.infer<typeof ModelDeploymentType>;\n\n/**\n * The only deployment types that can be EU. Anything else, including gateways,\n * subscriptions, global routing, unknown and any type added later, can never\n * be EU, whatever a declaration says.\n */\nexport const EU_CAPABLE_DEPLOYMENT_TYPES: readonly ModelDeploymentType[] = Object.freeze([\n \"azure_regional\",\n \"azure_data_zone\",\n \"bedrock_regional\",\n \"bedrock_geo_profile\",\n \"provider_default\",\n \"self_hosted\",\n]);\n\n/**\n * Cloud regions an EU claim may name, by deployment family: EEA regions plus\n * Switzerland, which provider EU data zones can include. A region outside\n * these lists rejects the claim (names only ever reject, never grant). The\n * United Kingdom is not in the EEA and is not listed.\n */\nexport const EU_AZURE_REGIONS: readonly string[] = Object.freeze([\n \"austriaeast\",\n \"belgiumcentral\",\n \"denmarkeast\",\n \"francecentral\",\n \"francesouth\",\n \"germanynorth\",\n \"germanywestcentral\",\n \"italynorth\",\n \"northeurope\",\n \"norwayeast\",\n \"norwaywest\",\n \"polandcentral\",\n \"spaincentral\",\n \"swedencentral\",\n \"swedensouth\",\n \"switzerlandnorth\",\n \"switzerlandwest\",\n \"westeurope\",\n]);\nexport const EU_AWS_REGIONS: readonly string[] = Object.freeze([\n \"eu-central-1\",\n \"eu-central-2\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-south-2\",\n \"eu-west-1\",\n \"eu-west-3\",\n]);\n\nfunction euRegionsFor(deploymentType: ModelDeploymentType): readonly string[] | null {\n if (deploymentType === \"azure_regional\" || deploymentType === \"azure_data_zone\") {\n return EU_AZURE_REGIONS;\n }\n if (deploymentType === \"bedrock_regional\" || deploymentType === \"bedrock_geo_profile\") {\n return EU_AWS_REGIONS;\n }\n return null;\n}\n\nexport const MODEL_RESIDENCY_EVIDENCE_SOURCES = [\n /** The deployment operator declared it in the reviewed catalog or environment. */\n \"operator_declaration\",\n /** Published provider documentation for this exact route type. */\n \"provider_documentation\",\n /** A provider API reported it (for example an Azure deployment SKU lookup). */\n \"provider_api\",\n /** A code-owned rule for a provider kind, reviewed with the code. */\n \"built_in_rule\",\n /** An organization admin declared it for their own connection. */\n \"admin_declaration\",\n /** Nothing establishes where this route processes data. */\n \"none\",\n] as const;\nexport const ModelResidencyEvidenceSource = /* @__PURE__ */ defineSchema(() =>\n z.enum(MODEL_RESIDENCY_EVIDENCE_SOURCES),\n);\nexport type ModelResidencyEvidenceSource = z.infer<typeof ModelResidencyEvidenceSource>;\n\nconst REGION_PATTERN = /^[a-z0-9][a-z0-9-]{0,62}$/u;\n\nexport const ModelResidencyEvidenceV1 = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n source: ModelResidencyEvidenceSource,\n /** Where to check it: a document URL, resource and SKU, or rule description. */\n reference: z.string().trim().min(1).max(1000).nullable(),\n /** Date (or date-time) the evidence was last checked. */\n verifiedAt: z.union([z.iso.date(), z.iso.datetime()]).nullable(),\n })\n .strict(),\n);\nexport type ModelResidencyEvidenceV1 = z.infer<typeof ModelResidencyEvidenceV1>;\n\n/** Problems that make a residency record unable to claim its geography. */\nexport function modelResidencyProblems(residency: {\n geography: ModelProcessingGeography;\n deploymentType: ModelDeploymentType;\n regions: readonly string[];\n evidence: { source: ModelResidencyEvidenceSource; reference: string | null };\n}): { path: string[]; message: string }[] {\n const problems: { path: string[]; message: string }[] = [];\n if (residency.geography === \"unknown\") {\n return problems;\n }\n if (residency.evidence.source === \"none\" || residency.evidence.reference === null) {\n problems.push({\n path: [\"evidence\"],\n message: \"a known processing geography needs an evidence source and reference\",\n });\n }\n if (residency.geography !== \"eu\") return problems;\n if (!EU_CAPABLE_DEPLOYMENT_TYPES.includes(residency.deploymentType)) {\n problems.push({\n path: [\"deploymentType\"],\n message: `${residency.deploymentType} routing can leave the EU, so it cannot be declared eu`,\n });\n return problems;\n }\n const allowedRegions = euRegionsFor(residency.deploymentType);\n if (allowedRegions) {\n if (residency.regions.length === 0) {\n problems.push({ path: [\"regions\"], message: \"an eu claim needs the route's regions\" });\n }\n for (const region of residency.regions) {\n if (!allowedRegions.includes(region)) {\n problems.push({\n path: [\"regions\"],\n message: `${region} is not an EU region for ${residency.deploymentType}`,\n });\n }\n }\n }\n return problems;\n}\n\n/** Bedrock inference profile prefixes that route outside the EU. */\nexport const NON_EU_BEDROCK_PROFILE_PREFIXES: readonly string[] = Object.freeze([\n \"us.\",\n \"us-gov.\",\n \"apac.\",\n \"jp.\",\n \"au.\",\n \"ca.\",\n \"global.\",\n]);\n\n/**\n * Hosts that route globally or process outside the EU. An EU claim on a route\n * whose endpoint is one of these exact hosts is wrong. Exact match only:\n * `eu.api.openai.com`, for example, is a different endpoint.\n */\nexport const NON_EU_MODEL_HOSTS: readonly string[] = Object.freeze([\n \"ai-gateway.vercel.sh\",\n \"api.anthropic.com\",\n \"api.openai.com\",\n \"api.x.ai\",\n \"chatgpt.com\",\n \"openrouter.ai\",\n]);\n\nfunction hostOf(baseUrl: string): string | null {\n try {\n // A trailing dot names the same host (openrouter.ai. is openrouter.ai).\n return new URL(baseUrl).hostname.toLowerCase().replace(/\\.+$/u, \"\");\n } catch {\n return null;\n }\n}\n\n/**\n * The deployment an endpoint URL calls, from its `/deployments/{name}` path\n * segment (Azure OpenAI's deployment-path form), or null when no segment\n * holds or hides a `deployments` marker. Such an endpoint runs that\n * deployment whatever model the request body names.\n *\n * Only a plain path is read: empty segments are dropped, the marker matches in\n * any case (percent-encoded too), and the name and every segment after it must\n * be readable `[A-Za-z0-9._-]+` and not `.` or `..`. Anything else returns an\n * empty string, meaning a deployment that can't be read, which is refused\n * under EU. That covers a missing name, a second marker, a marker hidden in a\n * longer or encoded segment (`deployments;`, `x%2Fdeployments`), and a later\n * segment that could lead somewhere else once decoded (`..%2F`, `%5C`, `;`).\n */\nexport function modelEndpointDeployment(url: string | URL): string | null {\n let pathname: string;\n try {\n // The URL parser has already resolved plain and %2e dot segments.\n pathname = new URL(url).pathname;\n } catch {\n return null;\n }\n const segments = pathname\n .split(\"/\")\n .filter((raw) => raw !== \"\")\n .map((raw) => {\n let decoded: string | null;\n try {\n decoded = decodeURIComponent(raw);\n } catch {\n decoded = null;\n }\n return {\n decoded,\n marker: decoded?.toLowerCase() === \"deployments\",\n hidesMarker: hidesDeploymentsMarker(raw),\n plain: decoded !== null && isPlainDeploymentSegment(decoded),\n };\n });\n const first = segments.findIndex((segment) => segment.marker || segment.hidesMarker);\n if (first < 0) return null;\n const marker = segments[first]!;\n const name = segments[first + 1];\n if (!marker.marker || !name) return \"\";\n const rest = segments.slice(first + 1);\n if (!rest.every((segment) => segment.plain)) return \"\";\n // A second marker after the name (the name itself may be anything plain).\n if (rest.slice(1).some((segment) => segment.marker || segment.hidesMarker)) return \"\";\n return name.decoded!;\n}\n\n/** A readable, plain path segment: `[A-Za-z0-9._-]+`, not `.` or `..`. */\nfunction isPlainDeploymentSegment(segment: string): boolean {\n return /^[A-Za-z0-9._-]+$/u.test(segment) && segment !== \".\" && segment !== \"..\";\n}\n\n/**\n * Whether a raw segment holds or hides `deployments`: any part of it, decoded\n * as far as it goes and split on separators, starts with the word in any case\n * once leading punctuation is dropped.\n */\nfunction hidesDeploymentsMarker(raw: string): boolean {\n return looselyDecoded(raw)\n .split(/[/\\\\]/u)\n .some((part) =>\n part\n .replace(/^[^A-Za-z0-9]+/u, \"\")\n .toLowerCase()\n .startsWith(\"deployments\"),\n );\n}\n\n/** Every ASCII %XX escape decoded, repeatedly (to catch double encoding). */\nfunction looselyDecoded(raw: string): string {\n let value = raw;\n for (let round = 0; round < 4; round += 1) {\n const next = value.replace(/%([0-7][0-9a-f])/giu, (_, hex: string) =>\n String.fromCharCode(Number.parseInt(hex, 16)),\n );\n if (next === value) break;\n value = next;\n }\n return value;\n}\n\n/**\n * Problems that make an EU claim wrong for the route it is declared on: a\n * Bedrock upstream id with a non-EU inference profile prefix, a Bedrock\n * geographic profile that is not `eu.`, an endpoint on a known global host,\n * or a deployment-path endpoint that calls a different deployment than the\n * model. Every resolver applies it. Names only ever reject a claim, never\n * grant one.\n */\nexport function modelResidencyRouteProblems(\n residency: { geography: ModelProcessingGeography; deploymentType: ModelDeploymentType },\n route: { upstreamModelId?: string | null | undefined; baseUrl?: string | null | undefined },\n): { path: string[]; message: string }[] {\n if (residency.geography !== \"eu\") return [];\n const problems: { path: string[]; message: string }[] = [];\n // Profile prefixes compare case-insensitively (US.anthropic... is us.).\n const upstreamModelId = (route.upstreamModelId ?? \"\").toLowerCase();\n if (residency.deploymentType.startsWith(\"bedrock_\")) {\n const prefix = NON_EU_BEDROCK_PROFILE_PREFIXES.find((candidate) =>\n upstreamModelId.startsWith(candidate),\n );\n if (prefix) {\n problems.push({\n path: [\"upstreamModelId\"],\n message: `${upstreamModelId} is a ${prefix} inference profile, which routes outside the EU`,\n });\n } else if (\n residency.deploymentType === \"bedrock_geo_profile\" &&\n !upstreamModelId.startsWith(\"eu.\")\n ) {\n problems.push({\n path: [\"upstreamModelId\"],\n message: `an eu bedrock_geo_profile needs an eu. inference profile, not ${upstreamModelId}`,\n });\n }\n }\n const host = route.baseUrl ? hostOf(route.baseUrl) : null;\n if (host && NON_EU_MODEL_HOSTS.includes(host)) {\n problems.push({\n path: [\"baseUrl\"],\n message: `${host} routes outside the EU, so a route on it cannot be declared eu`,\n });\n }\n const deployment = route.baseUrl ? modelEndpointDeployment(route.baseUrl) : null;\n if (deployment === \"\") {\n problems.push({\n path: [\"baseUrl\"],\n message:\n \"the endpoint calls a deployment whose name can't be read, so it cannot be declared eu\",\n });\n } else if (deployment !== null && deployment !== (route.upstreamModelId ?? \"\")) {\n problems.push({\n path: [\"baseUrl\"],\n message: `the endpoint calls deployment ${deployment}, not ${route.upstreamModelId ?? \"this model\"}, so only ${deployment} can be declared eu on it`,\n });\n }\n return problems;\n}\n\n/** The fields that move processing; evidence text and dates do not. */\nexport function modelResidencyClaim(residency: {\n geography: ModelProcessingGeography;\n deploymentType: ModelDeploymentType;\n regions: readonly string[];\n}): {\n geography: ModelProcessingGeography;\n deploymentType: ModelDeploymentType;\n regions: string[];\n} {\n return {\n geography: residency.geography,\n deploymentType: residency.deploymentType,\n regions: [...new Set(residency.regions)].sort(),\n };\n}\n\nexport const ModelResidencyV1 = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n geography: ModelProcessingGeography,\n deploymentType: ModelDeploymentType,\n /** Provider regions where the endpoint or processing lives, when known. */\n regions: z.array(z.string().regex(REGION_PATTERN)).max(32),\n evidence: ModelResidencyEvidenceV1,\n })\n .strict()\n .superRefine((residency, context) => {\n for (const problem of modelResidencyProblems(residency)) {\n context.addIssue({ code: \"custom\", path: problem.path, message: problem.message });\n }\n }),\n);\nexport type ModelResidencyV1 = z.infer<typeof ModelResidencyV1>;\n\n/** Operator-facing declaration: the same record, with optional regions and dates. */\nexport const ModelResidencyDeclaration = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n geography: ModelProcessingGeography,\n deploymentType: ModelDeploymentType,\n regions: z.array(z.string().regex(REGION_PATTERN)).max(32).default([]),\n evidence: z\n .object({\n // Operator configuration states its own declaration or the provider\n // documentation it relies on; other sources come from code or admins.\n source: z.enum([\"operator_declaration\", \"provider_documentation\"]),\n reference: z.string().trim().min(1).max(1000),\n verifiedAt: z.union([z.iso.date(), z.iso.datetime()]).nullable().default(null),\n })\n .strict(),\n })\n .strict()\n .superRefine((residency, context) => {\n for (const problem of modelResidencyProblems(residency)) {\n context.addIssue({ code: \"custom\", path: problem.path, message: problem.message });\n }\n }),\n);\nexport type ModelResidencyDeclaration = z.input<typeof ModelResidencyDeclaration>;\n\n/** The record for a route nothing describes. Unknown is never EU. */\nexport const UNKNOWN_MODEL_RESIDENCY: ModelResidencyV1 = Object.freeze({\n geography: \"unknown\",\n deploymentType: \"unknown\",\n regions: Object.freeze([]) as unknown as string[],\n evidence: Object.freeze({ source: \"none\", reference: null, verifiedAt: null }),\n}) as ModelResidencyV1;\n\n/**\n * The single EU predicate. Anything malformed, missing, unknown, globally\n * routed or without evidence is not EU.\n */\nexport function isEuResidency(residency: unknown): boolean {\n const parsed = ModelResidencyV1.safeParse(residency);\n if (!parsed.success) return false;\n return (\n parsed.data.geography === \"eu\" &&\n parsed.data.evidence.source !== \"none\" &&\n parsed.data.evidence.reference !== null\n );\n}\n\n/** Client-safe projection: no evidence reference text, which may name internal resources. */\nexport const ClientModelResidencyV1 = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n geography: ModelProcessingGeography,\n deploymentType: ModelDeploymentType,\n regions: z.array(z.string()).max(32),\n evidenceSource: ModelResidencyEvidenceSource,\n eu: z.boolean(),\n })\n .strict(),\n);\nexport type ClientModelResidencyV1 = z.infer<typeof ClientModelResidencyV1>;\n\nexport function projectClientModelResidency(residency: ModelResidencyV1): ClientModelResidencyV1 {\n return {\n geography: residency.geography,\n deploymentType: residency.deploymentType,\n regions: [...residency.regions],\n evidenceSource: residency.evidence.source,\n eu: isEuResidency(residency),\n };\n}\n\n/**\n * Where the route that served one model call processes data, as recorded on\n * the call's `model_call_facts` row and its durable `agent.model.usage` event:\n * the residency claim only. Evidence is never recorded, because its reference\n * text may name internal resources. An eu claim must still satisfy the same\n * deployment-type and region rules as the route record it came from; a stored\n * value that does not is read back as unknown, never as eu.\n */\nexport const ModelCallProcessingResidencyV1 = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n geography: ModelProcessingGeography,\n deploymentType: ModelDeploymentType,\n regions: z.array(z.string().regex(REGION_PATTERN)).max(32),\n })\n .strict()\n .superRefine((claim, context) => {\n if (!recordedEuClaimHolds(claim)) {\n context.addIssue({\n code: \"custom\",\n path: [\"geography\"],\n message: \"an eu claim needs an EU-capable deployment type and EU regions\",\n });\n }\n }),\n);\nexport type ModelCallProcessingResidencyV1 = z.infer<typeof ModelCallProcessingResidencyV1>;\n\n/**\n * Whether a recorded claim may say eu: the deployment type is EU-capable and,\n * for cloud families with known EU regions, it names at least one region and\n * every region is one of them. Non-eu claims always hold.\n */\nfunction recordedEuClaimHolds(claim: {\n geography: ModelProcessingGeography;\n deploymentType: ModelDeploymentType;\n regions: readonly string[];\n}): boolean {\n if (claim.geography !== \"eu\") return true;\n if (!EU_CAPABLE_DEPLOYMENT_TYPES.includes(claim.deploymentType)) return false;\n const allowedRegions = euRegionsFor(claim.deploymentType);\n if (!allowedRegions) return true;\n return (\n claim.regions.length > 0 && claim.regions.every((region) => allowedRegions.includes(region))\n );\n}\n\n/**\n * The recorded processing residency for a call served by a route with this\n * residency record. A missing or invalid record is recorded as unknown.\n */\nexport function modelCallProcessingResidency(\n residency: ModelResidencyV1 | null | undefined,\n): ModelCallProcessingResidencyV1 {\n const parsed = ModelResidencyV1.safeParse(residency);\n return modelResidencyClaim(parsed.success ? parsed.data : UNKNOWN_MODEL_RESIDENCY);\n}\n\n/**\n * Read a recorded processing residency (a fact column or event payload field).\n * Absent or null means the call was recorded before calls carried one. A value\n * that is present but malformed, or an eu claim that breaks the eu rules\n * (see `ModelCallProcessingResidencyV1`), is unknown. Any other field, such as\n * evidence, is dropped.\n */\nexport function parseModelCallProcessingResidency(\n value: unknown,\n): ModelCallProcessingResidencyV1 | null {\n if (value === undefined || value === null) return null;\n const record =\n typeof value === \"object\" && !Array.isArray(value) ? (value as Record<string, unknown>) : {};\n const parsed = ModelCallProcessingResidencyV1.safeParse({\n geography: record.geography,\n deploymentType: record.deploymentType,\n regions: record.regions,\n });\n return modelResidencyClaim(parsed.success ? parsed.data : UNKNOWN_MODEL_RESIDENCY);\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,34 @@
1
+ import {
2
+ defineSchema
3
+ } from "./chunk-56SNIMDO.js";
4
+
5
+ // src/primitives.ts
6
+ import { z } from "zod";
7
+ var string = /* @__PURE__ */ defineSchema(() => z.string());
8
+ var boolean = /* @__PURE__ */ defineSchema(() => z.boolean());
9
+ var uuid = /* @__PURE__ */ defineSchema(() => z.string().uuid());
10
+ var nonnegativeInteger = /* @__PURE__ */ defineSchema(
11
+ () => z.number().int().nonnegative()
12
+ );
13
+ var positiveInteger = /* @__PURE__ */ defineSchema(() => z.number().int().positive());
14
+ var nullableString = /* @__PURE__ */ defineSchema(() => string.nullable());
15
+ var nonEmptyString = /* @__PURE__ */ defineSchema(() => string.min(1));
16
+ var nullableUuid = /* @__PURE__ */ defineSchema(() => uuid.nullable());
17
+ var optionalBoolean = /* @__PURE__ */ defineSchema(() => boolean.optional());
18
+ var optionalUuid = /* @__PURE__ */ defineSchema(() => uuid.optional());
19
+ var dateTime = /* @__PURE__ */ defineSchema(() => string.datetime());
20
+
21
+ export {
22
+ string,
23
+ boolean,
24
+ uuid,
25
+ nonnegativeInteger,
26
+ positiveInteger,
27
+ nullableString,
28
+ nonEmptyString,
29
+ nullableUuid,
30
+ optionalBoolean,
31
+ optionalUuid,
32
+ dateTime
33
+ };
34
+ //# sourceMappingURL=chunk-AQYDZUJV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/primitives.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { defineSchema } from \"./define-schema\";\n\n/**\n * Reuse common validators instead of retaining thousands of identical Zod\n * instances. These are ordinary eager schemas, not a validation cache. Zod's\n * builder methods return derived schemas; attach field-specific metadata to a\n * derived schema rather than mutating a shared primitive's registry entry.\n */\nexport const string = /* @__PURE__ */ defineSchema(() => z.string());\nexport const boolean = /* @__PURE__ */ defineSchema(() => z.boolean());\nexport const uuid = /* @__PURE__ */ defineSchema(() => z.string().uuid());\nexport const nonnegativeInteger = /* @__PURE__ */ defineSchema(() =>\n z.number().int().nonnegative(),\n);\nexport const positiveInteger = /* @__PURE__ */ defineSchema(() => z.number().int().positive());\nexport const nullableString = /* @__PURE__ */ defineSchema(() => string.nullable());\nexport const nonEmptyString = /* @__PURE__ */ defineSchema(() => string.min(1));\nexport const nullableUuid = /* @__PURE__ */ defineSchema(() => uuid.nullable());\nexport const optionalBoolean = /* @__PURE__ */ defineSchema(() => boolean.optional());\nexport const optionalUuid = /* @__PURE__ */ defineSchema(() => uuid.optional());\nexport const dateTime = /* @__PURE__ */ defineSchema(() => string.datetime());\n"],"mappings":";;;;;AAAA,SAAS,SAAS;AASX,IAAM,SAAyB,6BAAa,MAAM,EAAE,OAAO,CAAC;AAC5D,IAAM,UAA0B,6BAAa,MAAM,EAAE,QAAQ,CAAC;AAC9D,IAAM,OAAuB,6BAAa,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;AACjE,IAAM,qBAAqC;AAAA,EAAa,MAC7D,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAC/B;AACO,IAAM,kBAAkC,6BAAa,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC;AACtF,IAAM,iBAAiC,6BAAa,MAAM,OAAO,SAAS,CAAC;AAC3E,IAAM,iBAAiC,6BAAa,MAAM,OAAO,IAAI,CAAC,CAAC;AACvE,IAAM,eAA+B,6BAAa,MAAM,KAAK,SAAS,CAAC;AACvE,IAAM,kBAAkC,6BAAa,MAAM,QAAQ,SAAS,CAAC;AAC7E,IAAM,eAA+B,6BAAa,MAAM,KAAK,SAAS,CAAC;AACvE,IAAM,WAA2B,6BAAa,MAAM,OAAO,SAAS,CAAC;","names":[]}
@@ -0,0 +1,93 @@
1
+ import {
2
+ dateTime,
3
+ nullableUuid,
4
+ optionalUuid,
5
+ positiveInteger,
6
+ string,
7
+ uuid
8
+ } from "./chunk-AQYDZUJV.js";
9
+ import {
10
+ defineSchema
11
+ } from "./chunk-56SNIMDO.js";
12
+
13
+ // src/canonical-human-identities.ts
14
+ import { z } from "zod";
15
+ var CanonicalHumanIdentityStatus = /* @__PURE__ */ defineSchema(
16
+ () => z.enum(["active", "recovery_required", "disputed", "disabled"])
17
+ );
18
+ var CanonicalHumanLoginBindingStatus = /* @__PURE__ */ defineSchema(
19
+ () => z.enum(["active", "recovery_pending", "stale", "disputed", "revoked"])
20
+ );
21
+ var CanonicalHumanRecoveryState = /* @__PURE__ */ defineSchema(
22
+ () => z.enum(["ready", "recovery_required", "lost_factor", "disputed", "disabled"])
23
+ );
24
+ var CanonicalHumanLoginBinding = /* @__PURE__ */ defineSchema(
25
+ () => z.object({
26
+ id: uuid,
27
+ providerId: z.string().min(1).max(128),
28
+ providerAccountId: z.string().min(1).max(1024),
29
+ status: CanonicalHumanLoginBindingStatus,
30
+ revision: positiveInteger,
31
+ verifiedAt: dateTime,
32
+ lastVerifiedAt: dateTime,
33
+ revokedAt: z.string().datetime().nullable(),
34
+ createdAt: dateTime,
35
+ updatedAt: dateTime
36
+ })
37
+ );
38
+ var CanonicalHumanIdentityProjection = /* @__PURE__ */ defineSchema(
39
+ () => z.object({
40
+ activeIdentity: z.object({
41
+ id: uuid,
42
+ displayName: z.string().min(1).max(256),
43
+ status: CanonicalHumanIdentityStatus,
44
+ identityRevision: positiveInteger,
45
+ authRevision: positiveInteger,
46
+ activeLoginBindingId: nullableUuid,
47
+ recoveryState: CanonicalHumanRecoveryState,
48
+ createdAt: dateTime,
49
+ updatedAt: dateTime
50
+ }),
51
+ loginBindings: z.array(CanonicalHumanLoginBinding).max(64)
52
+ })
53
+ );
54
+ var OperationFields = {
55
+ operationId: optionalUuid,
56
+ expectedIdentityRevision: positiveInteger,
57
+ reason: string.trim().min(1).max(512)
58
+ };
59
+ var LinkCanonicalHumanLoginBindingRequest = /* @__PURE__ */ defineSchema(
60
+ () => z.object({
61
+ ...OperationFields,
62
+ providerId: string.trim().min(1).max(128),
63
+ providerAccountId: string.trim().min(1).max(1024)
64
+ })
65
+ );
66
+ var CanonicalHumanBindingOperationRequest = /* @__PURE__ */ defineSchema(
67
+ () => z.object({
68
+ ...OperationFields
69
+ })
70
+ );
71
+ var CanonicalHumanIdentityMutationOutcome = /* @__PURE__ */ defineSchema(
72
+ () => z.enum(["applied", "lost_factor", "disputed"])
73
+ );
74
+ var CanonicalHumanIdentityMutationResponse = /* @__PURE__ */ defineSchema(
75
+ () => z.object({
76
+ outcome: CanonicalHumanIdentityMutationOutcome,
77
+ operationId: uuid,
78
+ identity: CanonicalHumanIdentityProjection
79
+ })
80
+ );
81
+
82
+ export {
83
+ CanonicalHumanIdentityStatus,
84
+ CanonicalHumanLoginBindingStatus,
85
+ CanonicalHumanRecoveryState,
86
+ CanonicalHumanLoginBinding,
87
+ CanonicalHumanIdentityProjection,
88
+ LinkCanonicalHumanLoginBindingRequest,
89
+ CanonicalHumanBindingOperationRequest,
90
+ CanonicalHumanIdentityMutationOutcome,
91
+ CanonicalHumanIdentityMutationResponse
92
+ };
93
+ //# sourceMappingURL=chunk-BHCEVVUP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/canonical-human-identities.ts"],"sourcesContent":["import * as primitives from \"./primitives\";\nimport { defineSchema } from \"./define-schema\";\nimport { z } from \"zod\";\n\nexport const CanonicalHumanIdentityStatus = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"active\", \"recovery_required\", \"disputed\", \"disabled\"]),\n);\nexport type CanonicalHumanIdentityStatus = z.infer<typeof CanonicalHumanIdentityStatus>;\n\nexport const CanonicalHumanLoginBindingStatus = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"active\", \"recovery_pending\", \"stale\", \"disputed\", \"revoked\"]),\n);\nexport type CanonicalHumanLoginBindingStatus = z.infer<typeof CanonicalHumanLoginBindingStatus>;\n\nexport const CanonicalHumanRecoveryState = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"ready\", \"recovery_required\", \"lost_factor\", \"disputed\", \"disabled\"]),\n);\nexport type CanonicalHumanRecoveryState = z.infer<typeof CanonicalHumanRecoveryState>;\n\nexport const CanonicalHumanLoginBinding = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: primitives.uuid,\n providerId: z.string().min(1).max(128),\n providerAccountId: z.string().min(1).max(1024),\n status: CanonicalHumanLoginBindingStatus,\n revision: primitives.positiveInteger,\n verifiedAt: primitives.dateTime,\n lastVerifiedAt: primitives.dateTime,\n revokedAt: z.string().datetime().nullable(),\n createdAt: primitives.dateTime,\n updatedAt: primitives.dateTime,\n }),\n);\nexport type CanonicalHumanLoginBinding = z.infer<typeof CanonicalHumanLoginBinding>;\n\nexport const CanonicalHumanIdentityProjection = /* @__PURE__ */ defineSchema(() =>\n z.object({\n activeIdentity: z.object({\n id: primitives.uuid,\n displayName: z.string().min(1).max(256),\n status: CanonicalHumanIdentityStatus,\n identityRevision: primitives.positiveInteger,\n authRevision: primitives.positiveInteger,\n activeLoginBindingId: primitives.nullableUuid,\n recoveryState: CanonicalHumanRecoveryState,\n createdAt: primitives.dateTime,\n updatedAt: primitives.dateTime,\n }),\n loginBindings: z.array(CanonicalHumanLoginBinding).max(64),\n }),\n);\nexport type CanonicalHumanIdentityProjection = z.infer<typeof CanonicalHumanIdentityProjection>;\n\nconst OperationFields = {\n operationId: primitives.optionalUuid,\n expectedIdentityRevision: primitives.positiveInteger,\n reason: primitives.string.trim().min(1).max(512),\n} as const;\n\nexport const LinkCanonicalHumanLoginBindingRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({\n ...OperationFields,\n providerId: primitives.string.trim().min(1).max(128),\n providerAccountId: primitives.string.trim().min(1).max(1024),\n }),\n);\nexport type LinkCanonicalHumanLoginBindingRequest = z.infer<\n typeof LinkCanonicalHumanLoginBindingRequest\n>;\n\nexport const CanonicalHumanBindingOperationRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({\n ...OperationFields,\n }),\n);\nexport type CanonicalHumanBindingOperationRequest = z.infer<\n typeof CanonicalHumanBindingOperationRequest\n>;\n\nexport const CanonicalHumanIdentityMutationOutcome = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"applied\", \"lost_factor\", \"disputed\"]),\n);\nexport type CanonicalHumanIdentityMutationOutcome = z.infer<\n typeof CanonicalHumanIdentityMutationOutcome\n>;\n\nexport const CanonicalHumanIdentityMutationResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({\n outcome: CanonicalHumanIdentityMutationOutcome,\n operationId: primitives.uuid,\n identity: CanonicalHumanIdentityProjection,\n }),\n);\nexport type CanonicalHumanIdentityMutationResponse = z.infer<\n typeof CanonicalHumanIdentityMutationResponse\n>;\n"],"mappings":";;;;;;;;;;;;;AAEA,SAAS,SAAS;AAEX,IAAM,+BAA+C;AAAA,EAAa,MACvE,EAAE,KAAK,CAAC,UAAU,qBAAqB,YAAY,UAAU,CAAC;AAChE;AAGO,IAAM,mCAAmD;AAAA,EAAa,MAC3E,EAAE,KAAK,CAAC,UAAU,oBAAoB,SAAS,YAAY,SAAS,CAAC;AACvE;AAGO,IAAM,8BAA8C;AAAA,EAAa,MACtE,EAAE,KAAK,CAAC,SAAS,qBAAqB,eAAe,YAAY,UAAU,CAAC;AAC9E;AAGO,IAAM,6BAA6C;AAAA,EAAa,MACrE,EAAE,OAAO;AAAA,IACP,IAAe;AAAA,IACf,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,IACrC,mBAAmB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI;AAAA,IAC7C,QAAQ;AAAA,IACR,UAAqB;AAAA,IACrB,YAAuB;AAAA,IACvB,gBAA2B;AAAA,IAC3B,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,IAC1C,WAAsB;AAAA,IACtB,WAAsB;AAAA,EACxB,CAAC;AACH;AAGO,IAAM,mCAAmD;AAAA,EAAa,MAC3E,EAAE,OAAO;AAAA,IACP,gBAAgB,EAAE,OAAO;AAAA,MACvB,IAAe;AAAA,MACf,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,MACtC,QAAQ;AAAA,MACR,kBAA6B;AAAA,MAC7B,cAAyB;AAAA,MACzB,sBAAiC;AAAA,MACjC,eAAe;AAAA,MACf,WAAsB;AAAA,MACtB,WAAsB;AAAA,IACxB,CAAC;AAAA,IACD,eAAe,EAAE,MAAM,0BAA0B,EAAE,IAAI,EAAE;AAAA,EAC3D,CAAC;AACH;AAGA,IAAM,kBAAkB;AAAA,EACtB,aAAwB;AAAA,EACxB,0BAAqC;AAAA,EACrC,QAAmB,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AACjD;AAEO,IAAM,wCAAwD;AAAA,EAAa,MAChF,EAAE,OAAO;AAAA,IACP,GAAG;AAAA,IACH,YAAuB,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,IACnD,mBAA8B,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI;AAAA,EAC7D,CAAC;AACH;AAKO,IAAM,wCAAwD;AAAA,EAAa,MAChF,EAAE,OAAO;AAAA,IACP,GAAG;AAAA,EACL,CAAC;AACH;AAKO,IAAM,wCAAwD;AAAA,EAAa,MAChF,EAAE,KAAK,CAAC,WAAW,eAAe,UAAU,CAAC;AAC/C;AAKO,IAAM,yCAAyD;AAAA,EAAa,MACjF,EAAE,OAAO;AAAA,IACP,SAAS;AAAA,IACT,aAAwB;AAAA,IACxB,UAAU;AAAA,EACZ,CAAC;AACH;","names":[]}