@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,130 @@
1
+ import {
2
+ string
3
+ } from "./chunk-AQYDZUJV.js";
4
+ import {
5
+ defineSchema
6
+ } from "./chunk-56SNIMDO.js";
7
+
8
+ // src/prepared-mcp-setup.ts
9
+ import { z } from "zod";
10
+ var fieldId = /* @__PURE__ */ defineSchema(
11
+ () => string.regex(/^[A-Za-z][A-Za-z0-9_]{0,63}$/)
12
+ );
13
+ var headerName = /* @__PURE__ */ defineSchema(
14
+ () => z.string().min(1).max(256).regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/)
15
+ );
16
+ var headerPart = /* @__PURE__ */ defineSchema(
17
+ () => z.string().max(16384).regex(/^[^\r\n\0]*$/)
18
+ );
19
+ var PreparedMcpSetup = /* @__PURE__ */ defineSchema(
20
+ () => z.object({
21
+ name: string.trim().min(1).max(256),
22
+ endpointUrl: z.string().url().max(2048).refine((value) => {
23
+ try {
24
+ const url = new URL(value);
25
+ return url.protocol === "https:" && !url.username && !url.password && !url.search && !url.hash;
26
+ } catch {
27
+ return false;
28
+ }
29
+ }, "Use an HTTPS endpoint without credentials, query parameters, or a fragment"),
30
+ headers: z.array(
31
+ z.union([
32
+ z.object({ name: headerName, value: headerPart.min(1) }).strict(),
33
+ z.object({
34
+ name: headerName,
35
+ secret: fieldId,
36
+ prefix: headerPart.optional(),
37
+ suffix: headerPart.optional()
38
+ }).strict()
39
+ ])
40
+ ).min(1).max(32),
41
+ secretFields: z.array(z.object({ id: fieldId, label: string.trim().min(1).max(256) }).strict()).max(32)
42
+ }).strict().superRefine((value, context) => {
43
+ const names = value.headers.map((header) => header.name.toLowerCase());
44
+ const ids = value.secretFields.map((field) => field.id);
45
+ if (new Set(names).size !== names.length)
46
+ context.addIssue({
47
+ code: "custom",
48
+ path: ["headers"],
49
+ message: "Header names must be unique"
50
+ });
51
+ if (new Set(ids).size !== ids.length)
52
+ context.addIssue({
53
+ code: "custom",
54
+ path: ["secretFields"],
55
+ message: "Secret field IDs must be unique"
56
+ });
57
+ const used = new Set(
58
+ value.headers.flatMap((header) => "secret" in header ? [header.secret] : [])
59
+ );
60
+ if (used.size !== ids.length || ids.some((id) => !used.has(id)))
61
+ context.addIssue({
62
+ code: "custom",
63
+ path: ["secretFields"],
64
+ message: "Declare exactly the secret fields used by the headers"
65
+ });
66
+ for (const [index, header] of value.headers.entries()) {
67
+ if ("value" in header && ["authorization", "proxy-authorization", "cookie", "x-api-key", "api-key"].includes(
68
+ header.name.toLowerCase()
69
+ ))
70
+ context.addIssue({
71
+ code: "custom",
72
+ path: ["headers", index],
73
+ message: "Credential headers must reference a protected secret field"
74
+ });
75
+ }
76
+ })
77
+ );
78
+ var CustomMcpSetupRequest = /* @__PURE__ */ defineSchema(
79
+ () => z.object({
80
+ kind: z.literal("mcp"),
81
+ name: string.trim().min(1).max(256),
82
+ endpointUrl: z.string().url().max(2048).refine((value) => {
83
+ try {
84
+ const url = new URL(value);
85
+ return url.protocol === "https:" && !url.username && !url.password && !url.hash && !url.search;
86
+ } catch {
87
+ return false;
88
+ }
89
+ }),
90
+ rationale: string.trim().min(1).max(2e3),
91
+ ownership: z.enum(["personal", "workspace"]).optional(),
92
+ mcpSetup: PreparedMcpSetup.optional()
93
+ }).strict().superRefine((value, context) => {
94
+ if (Boolean(value.ownership) !== Boolean(value.mcpSetup))
95
+ context.addIssue({ code: "custom", message: "Prepared setup requires explicit ownership" });
96
+ if (value.mcpSetup && (value.name !== value.mcpSetup.name || value.endpointUrl !== value.mcpSetup.endpointUrl))
97
+ context.addIssue({
98
+ code: "custom",
99
+ message: "Prepared setup must match the displayed server"
100
+ });
101
+ })
102
+ );
103
+ function preparedMcpHeaders(configuration, values) {
104
+ const setup = PreparedMcpSetup.parse(configuration);
105
+ const supplied = Object.keys(values);
106
+ if (supplied.length !== setup.secretFields.length || setup.secretFields.some((field) => !Object.hasOwn(values, field.id)) || supplied.some((key) => {
107
+ const value = values[key];
108
+ return typeof value !== "string" || value.length === 0 || value.length > 16384 || /[\r\n\0]/.test(value);
109
+ }))
110
+ throw new Error("Supply exactly the requested secret fields");
111
+ const headers = {};
112
+ for (const header of setup.headers) {
113
+ const value = "value" in header ? header.value : `${header.prefix ?? ""}${values[header.secret]}${header.suffix ?? ""}`;
114
+ if (value.length > 16384) throw new Error("Prepared credential header is too long");
115
+ Object.defineProperty(headers, header.name, {
116
+ value,
117
+ enumerable: true,
118
+ configurable: true,
119
+ writable: true
120
+ });
121
+ }
122
+ return headers;
123
+ }
124
+
125
+ export {
126
+ PreparedMcpSetup,
127
+ CustomMcpSetupRequest,
128
+ preparedMcpHeaders
129
+ };
130
+ //# sourceMappingURL=chunk-6LAT33BH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/prepared-mcp-setup.ts"],"sourcesContent":["import * as primitives from \"./primitives\";\nimport { defineSchema } from \"./define-schema\";\nimport { z } from \"zod\";\n\nconst fieldId = /* @__PURE__ */ defineSchema(() =>\n primitives.string.regex(/^[A-Za-z][A-Za-z0-9_]{0,63}$/),\n);\nconst headerName = /* @__PURE__ */ defineSchema(() =>\n z\n .string()\n .min(1)\n .max(256)\n .regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/),\n);\nconst headerPart = /* @__PURE__ */ defineSchema(() =>\n z\n .string()\n .max(16_384)\n .regex(/^[^\\r\\n\\0]*$/),\n);\n\n/** Configuration is safe to retain; secret values enter only the protected\n * Connect credential request, never this model-visible setup description. */\nexport const PreparedMcpSetup = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n name: primitives.string.trim().min(1).max(256),\n endpointUrl: z\n .string()\n .url()\n .max(2048)\n .refine((value) => {\n try {\n const url = new URL(value);\n return (\n url.protocol === \"https:\" &&\n !url.username &&\n !url.password &&\n !url.search &&\n !url.hash\n );\n } catch {\n return false;\n }\n }, \"Use an HTTPS endpoint without credentials, query parameters, or a fragment\"),\n headers: z\n .array(\n z.union([\n z.object({ name: headerName, value: headerPart.min(1) }).strict(),\n z\n .object({\n name: headerName,\n secret: fieldId,\n prefix: headerPart.optional(),\n suffix: headerPart.optional(),\n })\n .strict(),\n ]),\n )\n .min(1)\n .max(32),\n secretFields: z\n .array(z.object({ id: fieldId, label: primitives.string.trim().min(1).max(256) }).strict())\n .max(32),\n })\n .strict()\n .superRefine((value, context) => {\n const names = value.headers.map((header) => header.name.toLowerCase());\n const ids = value.secretFields.map((field) => field.id);\n if (new Set(names).size !== names.length)\n context.addIssue({\n code: \"custom\",\n path: [\"headers\"],\n message: \"Header names must be unique\",\n });\n if (new Set(ids).size !== ids.length)\n context.addIssue({\n code: \"custom\",\n path: [\"secretFields\"],\n message: \"Secret field IDs must be unique\",\n });\n const used = new Set(\n value.headers.flatMap((header) => (\"secret\" in header ? [header.secret] : [])),\n );\n if (used.size !== ids.length || ids.some((id) => !used.has(id)))\n context.addIssue({\n code: \"custom\",\n path: [\"secretFields\"],\n message: \"Declare exactly the secret fields used by the headers\",\n });\n for (const [index, header] of value.headers.entries()) {\n if (\n \"value\" in header &&\n [\"authorization\", \"proxy-authorization\", \"cookie\", \"x-api-key\", \"api-key\"].includes(\n header.name.toLowerCase(),\n )\n )\n context.addIssue({\n code: \"custom\",\n path: [\"headers\", index],\n message: \"Credential headers must reference a protected secret field\",\n });\n }\n }),\n);\nexport type PreparedMcpSetup = z.infer<typeof PreparedMcpSetup>;\n\n/** A missing-key proposal retains configuration only. Ownership is explicit\n * and the displayed identity must equal the destination actually configured. */\nexport const CustomMcpSetupRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n kind: z.literal(\"mcp\"),\n name: primitives.string.trim().min(1).max(256),\n endpointUrl: z\n .string()\n .url()\n .max(2048)\n .refine((value) => {\n try {\n const url = new URL(value);\n return (\n url.protocol === \"https:\" &&\n !url.username &&\n !url.password &&\n !url.hash &&\n !url.search\n );\n } catch {\n return false;\n }\n }),\n rationale: primitives.string.trim().min(1).max(2000),\n ownership: z.enum([\"personal\", \"workspace\"]).optional(),\n mcpSetup: PreparedMcpSetup.optional(),\n })\n .strict()\n .superRefine((value, context) => {\n if (Boolean(value.ownership) !== Boolean(value.mcpSetup))\n context.addIssue({ code: \"custom\", message: \"Prepared setup requires explicit ownership\" });\n if (\n value.mcpSetup &&\n (value.name !== value.mcpSetup.name || value.endpointUrl !== value.mcpSetup.endpointUrl)\n )\n context.addIssue({\n code: \"custom\",\n message: \"Prepared setup must match the displayed server\",\n });\n }),\n);\nexport type CustomMcpSetupRequest = z.infer<typeof CustomMcpSetupRequest>;\n\n/** Values are intentionally accepted separately. Errors name neither supplied\n * values nor undeclared input keys, which may themselves contain credentials. */\nexport function preparedMcpHeaders(\n configuration: PreparedMcpSetup,\n values: Readonly<Record<string, string>>,\n): Record<string, string> {\n const setup = PreparedMcpSetup.parse(configuration);\n const supplied = Object.keys(values);\n if (\n supplied.length !== setup.secretFields.length ||\n setup.secretFields.some((field) => !Object.hasOwn(values, field.id)) ||\n supplied.some((key) => {\n const value = values[key];\n return (\n typeof value !== \"string\" ||\n value.length === 0 ||\n value.length > 16_384 ||\n /[\\r\\n\\0]/.test(value)\n );\n })\n )\n throw new Error(\"Supply exactly the requested secret fields\");\n const headers: Record<string, string> = {};\n for (const header of setup.headers) {\n const value =\n \"value\" in header\n ? header.value\n : `${header.prefix ?? \"\"}${values[header.secret]}${header.suffix ?? \"\"}`;\n if (value.length > 16_384) throw new Error(\"Prepared credential header is too long\");\n Object.defineProperty(headers, header.name, {\n value,\n enumerable: true,\n configurable: true,\n writable: true,\n });\n }\n return headers;\n}\n"],"mappings":";;;;;;;;AAEA,SAAS,SAAS;AAElB,IAAM,UAA0B;AAAA,EAAa,MAChC,OAAO,MAAM,8BAA8B;AACxD;AACA,IAAM,aAA6B;AAAA,EAAa,MAC9C,EACG,OAAO,EACP,IAAI,CAAC,EACL,IAAI,GAAG,EACP,MAAM,+BAA+B;AAC1C;AACA,IAAM,aAA6B;AAAA,EAAa,MAC9C,EACG,OAAO,EACP,IAAI,KAAM,EACV,MAAM,cAAc;AACzB;AAIO,IAAM,mBAAmC;AAAA,EAAa,MAC3D,EACG,OAAO;AAAA,IACN,MAAiB,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,IAC7C,aAAa,EACV,OAAO,EACP,IAAI,EACJ,IAAI,IAAI,EACR,OAAO,CAAC,UAAU;AACjB,UAAI;AACF,cAAM,MAAM,IAAI,IAAI,KAAK;AACzB,eACE,IAAI,aAAa,YACjB,CAAC,IAAI,YACL,CAAC,IAAI,YACL,CAAC,IAAI,UACL,CAAC,IAAI;AAAA,MAET,QAAQ;AACN,eAAO;AAAA,MACT;AAAA,IACF,GAAG,4EAA4E;AAAA,IACjF,SAAS,EACN;AAAA,MACC,EAAE,MAAM;AAAA,QACN,EAAE,OAAO,EAAE,MAAM,YAAY,OAAO,WAAW,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,QAChE,EACG,OAAO;AAAA,UACN,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,QAAQ,WAAW,SAAS;AAAA,UAC5B,QAAQ,WAAW,SAAS;AAAA,QAC9B,CAAC,EACA,OAAO;AAAA,MACZ,CAAC;AAAA,IACH,EACC,IAAI,CAAC,EACL,IAAI,EAAE;AAAA,IACT,cAAc,EACX,MAAM,EAAE,OAAO,EAAE,IAAI,SAAS,OAAkB,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EACzF,IAAI,EAAE;AAAA,EACX,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,UAAM,QAAQ,MAAM,QAAQ,IAAI,CAAC,WAAW,OAAO,KAAK,YAAY,CAAC;AACrE,UAAM,MAAM,MAAM,aAAa,IAAI,CAAC,UAAU,MAAM,EAAE;AACtD,QAAI,IAAI,IAAI,KAAK,EAAE,SAAS,MAAM;AAChC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,SAAS;AAAA,QAChB,SAAS;AAAA,MACX,CAAC;AACH,QAAI,IAAI,IAAI,GAAG,EAAE,SAAS,IAAI;AAC5B,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,cAAc;AAAA,QACrB,SAAS;AAAA,MACX,CAAC;AACH,UAAM,OAAO,IAAI;AAAA,MACf,MAAM,QAAQ,QAAQ,CAAC,WAAY,YAAY,SAAS,CAAC,OAAO,MAAM,IAAI,CAAC,CAAE;AAAA,IAC/E;AACA,QAAI,KAAK,SAAS,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;AAC5D,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,cAAc;AAAA,QACrB,SAAS;AAAA,MACX,CAAC;AACH,eAAW,CAAC,OAAO,MAAM,KAAK,MAAM,QAAQ,QAAQ,GAAG;AACrD,UACE,WAAW,UACX,CAAC,iBAAiB,uBAAuB,UAAU,aAAa,SAAS,EAAE;AAAA,QACzE,OAAO,KAAK,YAAY;AAAA,MAC1B;AAEA,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,WAAW,KAAK;AAAA,UACvB,SAAS;AAAA,QACX,CAAC;AAAA,IACL;AAAA,EACF,CAAC;AACL;AAKO,IAAM,wBAAwC;AAAA,EAAa,MAChE,EACG,OAAO;AAAA,IACN,MAAM,EAAE,QAAQ,KAAK;AAAA,IACrB,MAAiB,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,IAC7C,aAAa,EACV,OAAO,EACP,IAAI,EACJ,IAAI,IAAI,EACR,OAAO,CAAC,UAAU;AACjB,UAAI;AACF,cAAM,MAAM,IAAI,IAAI,KAAK;AACzB,eACE,IAAI,aAAa,YACjB,CAAC,IAAI,YACL,CAAC,IAAI,YACL,CAAC,IAAI,QACL,CAAC,IAAI;AAAA,MAET,QAAQ;AACN,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAAA,IACH,WAAsB,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAI;AAAA,IACnD,WAAW,EAAE,KAAK,CAAC,YAAY,WAAW,CAAC,EAAE,SAAS;AAAA,IACtD,UAAU,iBAAiB,SAAS;AAAA,EACtC,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAI,QAAQ,MAAM,SAAS,MAAM,QAAQ,MAAM,QAAQ;AACrD,cAAQ,SAAS,EAAE,MAAM,UAAU,SAAS,6CAA6C,CAAC;AAC5F,QACE,MAAM,aACL,MAAM,SAAS,MAAM,SAAS,QAAQ,MAAM,gBAAgB,MAAM,SAAS;AAE5E,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,EACL,CAAC;AACL;AAKO,SAAS,mBACd,eACA,QACwB;AACxB,QAAM,QAAQ,iBAAiB,MAAM,aAAa;AAClD,QAAM,WAAW,OAAO,KAAK,MAAM;AACnC,MACE,SAAS,WAAW,MAAM,aAAa,UACvC,MAAM,aAAa,KAAK,CAAC,UAAU,CAAC,OAAO,OAAO,QAAQ,MAAM,EAAE,CAAC,KACnE,SAAS,KAAK,CAAC,QAAQ;AACrB,UAAM,QAAQ,OAAO,GAAG;AACxB,WACE,OAAO,UAAU,YACjB,MAAM,WAAW,KACjB,MAAM,SAAS,SACf,WAAW,KAAK,KAAK;AAAA,EAEzB,CAAC;AAED,UAAM,IAAI,MAAM,4CAA4C;AAC9D,QAAM,UAAkC,CAAC;AACzC,aAAW,UAAU,MAAM,SAAS;AAClC,UAAM,QACJ,WAAW,SACP,OAAO,QACP,GAAG,OAAO,UAAU,EAAE,GAAG,OAAO,OAAO,MAAM,CAAC,GAAG,OAAO,UAAU,EAAE;AAC1E,QAAI,MAAM,SAAS,MAAQ,OAAM,IAAI,MAAM,wCAAwC;AACnF,WAAO,eAAe,SAAS,OAAO,MAAM;AAAA,MAC1C;AAAA,MACA,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,60 @@
1
+ // src/session-usage-limit-refusal.ts
2
+ var SESSION_USAGE_LIMIT_SEGMENT = "session_usage_limit";
3
+ var SESSION_USAGE_LIMIT_GOAL_PAUSED_REASON = "session_usage_limit";
4
+ var BASIS = "model_api_equivalent_v1";
5
+ var MAX_LIMIT_MICROS = 1e7 * 1e6;
6
+ var MESSAGE_MAX_UTF8_BYTES = 1024;
7
+ var UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
8
+ function record(value) {
9
+ return value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
10
+ }
11
+ function micros(value, max = Number.MAX_SAFE_INTEGER) {
12
+ return typeof value === "number" && Number.isSafeInteger(value) && value >= 0 && value <= max;
13
+ }
14
+ function boundedMessage(value) {
15
+ const normalized = value.slice(0, MESSAGE_MAX_UTF8_BYTES * 2).replace(/[\u0000-\u001f\u007f]+/g, " ").trim();
16
+ const bytes = new TextEncoder().encode(normalized);
17
+ let end = Math.min(bytes.length, MESSAGE_MAX_UTF8_BYTES);
18
+ while (end > 0 && end < bytes.length && (bytes[end] & 192) === 128) end -= 1;
19
+ return new TextDecoder().decode(bytes.slice(0, end)).trim();
20
+ }
21
+ function parseSessionUsageLimitReachedRefusal(value) {
22
+ const outer = record(value);
23
+ if (!outer) return null;
24
+ const source = record(outer.sessionUsageLimit) ?? outer;
25
+ if (source.code !== "session_usage_limit_reached") return null;
26
+ const fields = record(source.details) ?? source;
27
+ if (fields.basis !== BASIS || typeof fields.rootSessionId !== "string" || !UUID.test(fields.rootSessionId) || !micros(fields.limitMicros, MAX_LIMIT_MICROS) || !micros(fields.usedMicros)) {
28
+ return null;
29
+ }
30
+ const refusal = {
31
+ code: "session_usage_limit_reached",
32
+ basis: BASIS,
33
+ rootSessionId: fields.rootSessionId.toLowerCase(),
34
+ limitMicros: fields.limitMicros,
35
+ usedMicros: fields.usedMicros,
36
+ message: ""
37
+ };
38
+ const message = typeof source.message === "string" ? boundedMessage(source.message) : "";
39
+ return { ...refusal, message: message || sessionUsageLimitReachedMessage(refusal) };
40
+ }
41
+ function formatSessionUsageMicros(value) {
42
+ if (value > 0 && value < 1e4) return "<$0.01";
43
+ const dollars = value / 1e6;
44
+ return `$${dollars.toLocaleString("en-US", {
45
+ minimumFractionDigits: 2,
46
+ maximumFractionDigits: 2
47
+ })}`;
48
+ }
49
+ function sessionUsageLimitReachedMessage(refusal) {
50
+ return `This task's usage limit is reached (${formatSessionUsageMicros(refusal.usedMicros)} of ${formatSessionUsageMicros(refusal.limitMicros)} API-equivalent model usage). A person can raise or remove the limit to continue.`;
51
+ }
52
+
53
+ export {
54
+ SESSION_USAGE_LIMIT_SEGMENT,
55
+ SESSION_USAGE_LIMIT_GOAL_PAUSED_REASON,
56
+ parseSessionUsageLimitReachedRefusal,
57
+ formatSessionUsageMicros,
58
+ sessionUsageLimitReachedMessage
59
+ };
60
+ //# sourceMappingURL=chunk-7272KVWZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/session-usage-limit-refusal.ts"],"sourcesContent":["/**\n * Browser/React Native-safe session usage limit helpers. Deliberately free of\n * the zod runtime so synchronous timeline projection can use it; contract\n * parity tests keep it aligned with `session-usage-limits.ts`.\n */\n\n/** `turn.completed.segmentLimit` for a stop caused by a task usage limit. */\nexport const SESSION_USAGE_LIMIT_SEGMENT = \"session_usage_limit\" as const;\n/** `SessionGoal.pausedReason` for a goal paused by a task usage limit. */\nexport const SESSION_USAGE_LIMIT_GOAL_PAUSED_REASON = \"session_usage_limit\" as const;\n\nconst BASIS = \"model_api_equivalent_v1\";\nconst MAX_LIMIT_MICROS = 10_000_000 * 1_000_000;\nconst MESSAGE_MAX_UTF8_BYTES = 1_024;\nconst UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n\nexport type ParsedSessionUsageLimitReachedRefusal = {\n code: \"session_usage_limit_reached\";\n basis: \"model_api_equivalent_v1\";\n rootSessionId: string;\n limitMicros: number;\n usedMicros: number;\n message: string;\n};\n\nfunction record(value: unknown): Record<string, unknown> | null {\n return value !== null && typeof value === \"object\" && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : null;\n}\n\nfunction micros(value: unknown, max = Number.MAX_SAFE_INTEGER): value is number {\n return typeof value === \"number\" && Number.isSafeInteger(value) && value >= 0 && value <= max;\n}\n\nfunction boundedMessage(value: string): string {\n const normalized = value\n .slice(0, MESSAGE_MAX_UTF8_BYTES * 2)\n .replace(/[\\u0000-\\u001f\\u007f]+/g, \" \")\n .trim();\n const bytes = new TextEncoder().encode(normalized);\n let end = Math.min(bytes.length, MESSAGE_MAX_UTF8_BYTES);\n while (end > 0 && end < bytes.length && (bytes[end]! & 0xc0) === 0x80) end -= 1;\n return new TextDecoder().decode(bytes.slice(0, end)).trim();\n}\n\n/**\n * Select only the public refusal fields from an API error body (fields may sit\n * in `details`), a `turn.completed` payload's `sessionUsageLimit` record, or a\n * refusal object. Anything malformed returns null instead of a guessed amount.\n */\nexport function parseSessionUsageLimitReachedRefusal(\n value: unknown,\n): ParsedSessionUsageLimitReachedRefusal | null {\n const outer = record(value);\n if (!outer) return null;\n const source = record(outer.sessionUsageLimit) ?? outer;\n if (source.code !== \"session_usage_limit_reached\") return null;\n const fields = record(source.details) ?? source;\n if (\n fields.basis !== BASIS ||\n typeof fields.rootSessionId !== \"string\" ||\n !UUID.test(fields.rootSessionId) ||\n !micros(fields.limitMicros, MAX_LIMIT_MICROS) ||\n !micros(fields.usedMicros)\n ) {\n return null;\n }\n const refusal = {\n code: \"session_usage_limit_reached\" as const,\n basis: BASIS as \"model_api_equivalent_v1\",\n rootSessionId: fields.rootSessionId.toLowerCase(),\n limitMicros: fields.limitMicros,\n usedMicros: fields.usedMicros,\n message: \"\",\n };\n const message = typeof source.message === \"string\" ? boundedMessage(source.message) : \"\";\n return { ...refusal, message: message || sessionUsageLimitReachedMessage(refusal) };\n}\n\n/**\n * \"$12.34\" for known amounts, \"<$0.01\" for a positive amount under a cent.\n * Callers must not pass unknown usage: render \"Preparing usage\" or\n * \"Usage unavailable\" instead of a dollar figure.\n */\nexport function formatSessionUsageMicros(value: number): string {\n if (value > 0 && value < 10_000) return \"<$0.01\";\n const dollars = value / 1_000_000;\n return `$${dollars.toLocaleString(\"en-US\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}`;\n}\n\n/** Fixed, bounded wording: no reset date, purchase remedy or invoice claim. */\nexport function sessionUsageLimitReachedMessage(refusal: {\n limitMicros: number;\n usedMicros: number;\n}): string {\n return `This task's usage limit is reached (${formatSessionUsageMicros(refusal.usedMicros)} of ${formatSessionUsageMicros(refusal.limitMicros)} API-equivalent model usage). A person can raise or remove the limit to continue.`;\n}\n"],"mappings":";AAOO,IAAM,8BAA8B;AAEpC,IAAM,yCAAyC;AAEtD,IAAM,QAAQ;AACd,IAAM,mBAAmB,MAAa;AACtC,IAAM,yBAAyB;AAC/B,IAAM,OAAO;AAWb,SAAS,OAAO,OAAgD;AAC9D,SAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,IACrE,QACD;AACN;AAEA,SAAS,OAAO,OAAgB,MAAM,OAAO,kBAAmC;AAC9E,SAAO,OAAO,UAAU,YAAY,OAAO,cAAc,KAAK,KAAK,SAAS,KAAK,SAAS;AAC5F;AAEA,SAAS,eAAe,OAAuB;AAC7C,QAAM,aAAa,MAChB,MAAM,GAAG,yBAAyB,CAAC,EACnC,QAAQ,2BAA2B,GAAG,EACtC,KAAK;AACR,QAAM,QAAQ,IAAI,YAAY,EAAE,OAAO,UAAU;AACjD,MAAI,MAAM,KAAK,IAAI,MAAM,QAAQ,sBAAsB;AACvD,SAAO,MAAM,KAAK,MAAM,MAAM,WAAW,MAAM,GAAG,IAAK,SAAU,IAAM,QAAO;AAC9E,SAAO,IAAI,YAAY,EAAE,OAAO,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,KAAK;AAC5D;AAOO,SAAS,qCACd,OAC8C;AAC9C,QAAM,QAAQ,OAAO,KAAK;AAC1B,MAAI,CAAC,MAAO,QAAO;AACnB,QAAM,SAAS,OAAO,MAAM,iBAAiB,KAAK;AAClD,MAAI,OAAO,SAAS,8BAA+B,QAAO;AAC1D,QAAM,SAAS,OAAO,OAAO,OAAO,KAAK;AACzC,MACE,OAAO,UAAU,SACjB,OAAO,OAAO,kBAAkB,YAChC,CAAC,KAAK,KAAK,OAAO,aAAa,KAC/B,CAAC,OAAO,OAAO,aAAa,gBAAgB,KAC5C,CAAC,OAAO,OAAO,UAAU,GACzB;AACA,WAAO;AAAA,EACT;AACA,QAAM,UAAU;AAAA,IACd,MAAM;AAAA,IACN,OAAO;AAAA,IACP,eAAe,OAAO,cAAc,YAAY;AAAA,IAChD,aAAa,OAAO;AAAA,IACpB,YAAY,OAAO;AAAA,IACnB,SAAS;AAAA,EACX;AACA,QAAM,UAAU,OAAO,OAAO,YAAY,WAAW,eAAe,OAAO,OAAO,IAAI;AACtF,SAAO,EAAE,GAAG,SAAS,SAAS,WAAW,gCAAgC,OAAO,EAAE;AACpF;AAOO,SAAS,yBAAyB,OAAuB;AAC9D,MAAI,QAAQ,KAAK,QAAQ,IAAQ,QAAO;AACxC,QAAM,UAAU,QAAQ;AACxB,SAAO,IAAI,QAAQ,eAAe,SAAS;AAAA,IACzC,uBAAuB;AAAA,IACvB,uBAAuB;AAAA,EACzB,CAAC,CAAC;AACJ;AAGO,SAAS,gCAAgC,SAGrC;AACT,SAAO,uCAAuC,yBAAyB,QAAQ,UAAU,CAAC,OAAO,yBAAyB,QAAQ,WAAW,CAAC;AAChJ;","names":[]}
@@ -0,0 +1,36 @@
1
+ import {
2
+ positiveInteger
3
+ } from "./chunk-AQYDZUJV.js";
4
+ import {
5
+ defineSchema
6
+ } from "./chunk-56SNIMDO.js";
7
+
8
+ // src/xai-provider-account-authority.ts
9
+ import { z } from "zod";
10
+ var PositiveSafeInteger = /* @__PURE__ */ defineSchema(
11
+ () => positiveInteger.max(Number.MAX_SAFE_INTEGER)
12
+ );
13
+ var XaiProviderAccountAuthoritySnapshotV1 = /* @__PURE__ */ defineSchema(
14
+ () => z.discriminatedUnion("scope", [
15
+ z.object({ version: z.literal(1), scope: z.literal("organization") }).strict(),
16
+ z.object({
17
+ version: z.literal(1),
18
+ scope: z.literal("workspace")
19
+ }).strict(),
20
+ z.object({
21
+ version: z.literal(1),
22
+ scope: z.literal("user"),
23
+ authorityGeneration: PositiveSafeInteger
24
+ }).strict()
25
+ ])
26
+ );
27
+ var WORKSPACE_XAI_PROVIDER_ACCOUNT_AUTHORITY_SNAPSHOT_V1 = {
28
+ version: 1,
29
+ scope: "workspace"
30
+ };
31
+
32
+ export {
33
+ XaiProviderAccountAuthoritySnapshotV1,
34
+ WORKSPACE_XAI_PROVIDER_ACCOUNT_AUTHORITY_SNAPSHOT_V1
35
+ };
36
+ //# sourceMappingURL=chunk-72QC2GTL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/xai-provider-account-authority.ts"],"sourcesContent":["import * as primitives from \"./primitives\";\nimport { defineSchema } from \"./define-schema\";\nimport { z } from \"zod\";\n\nconst PositiveSafeInteger = /* @__PURE__ */ defineSchema(() =>\n primitives.positiveInteger.max(Number.MAX_SAFE_INTEGER),\n);\n\n/**\n * Opaque authority frozen at an xAI provider-account acceptance boundary.\n *\n * This snapshot deliberately carries no organization, membership, credential,\n * provider-account, subject, label, quota, token, or plan identity. User scope\n * becomes executable only after exact live database revalidation against the\n * separately stored causal subject and xAI subscription authority row.\n */\nexport const XaiProviderAccountAuthoritySnapshotV1 = /* @__PURE__ */ defineSchema(() =>\n z.discriminatedUnion(\"scope\", [\n z.object({ version: z.literal(1), scope: z.literal(\"organization\") }).strict(),\n z\n .object({\n version: z.literal(1),\n scope: z.literal(\"workspace\"),\n })\n .strict(),\n z\n .object({\n version: z.literal(1),\n scope: z.literal(\"user\"),\n authorityGeneration: PositiveSafeInteger,\n })\n .strict(),\n ]),\n);\n\nexport type XaiProviderAccountAuthoritySnapshotV1 = z.infer<\n typeof XaiProviderAccountAuthoritySnapshotV1\n>;\n\n/** Explicit compatibility value for workspace-default accepted work. */\nexport const WORKSPACE_XAI_PROVIDER_ACCOUNT_AUTHORITY_SNAPSHOT_V1 = {\n version: 1,\n scope: \"workspace\",\n} as const satisfies XaiProviderAccountAuthoritySnapshotV1;\n"],"mappings":";;;;;;;;AAEA,SAAS,SAAS;AAElB,IAAM,sBAAsC;AAAA,EAAa,MAC5C,gBAAgB,IAAI,OAAO,gBAAgB;AACxD;AAUO,IAAM,wCAAwD;AAAA,EAAa,MAChF,EAAE,mBAAmB,SAAS;AAAA,IAC5B,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,OAAO,EAAE,QAAQ,cAAc,EAAE,CAAC,EAAE,OAAO;AAAA,IAC7E,EACG,OAAO;AAAA,MACN,SAAS,EAAE,QAAQ,CAAC;AAAA,MACpB,OAAO,EAAE,QAAQ,WAAW;AAAA,IAC9B,CAAC,EACA,OAAO;AAAA,IACV,EACG,OAAO;AAAA,MACN,SAAS,EAAE,QAAQ,CAAC;AAAA,MACpB,OAAO,EAAE,QAAQ,MAAM;AAAA,MACvB,qBAAqB;AAAA,IACvB,CAAC,EACA,OAAO;AAAA,EACZ,CAAC;AACH;AAOO,IAAM,uDAAuD;AAAA,EAClE,SAAS;AAAA,EACT,OAAO;AACT;","names":[]}
@@ -0,0 +1,105 @@
1
+ import {
2
+ boolean,
3
+ dateTime,
4
+ nonnegativeInteger,
5
+ nullableString,
6
+ nullableUuid,
7
+ optionalUuid,
8
+ string,
9
+ uuid
10
+ } from "./chunk-AQYDZUJV.js";
11
+ import {
12
+ defineSchema
13
+ } from "./chunk-56SNIMDO.js";
14
+
15
+ // src/organization-usage.ts
16
+ import { z } from "zod";
17
+ var OrganizationUsagePeriod = /* @__PURE__ */ defineSchema(
18
+ () => z.enum(["today", "week", "month", "ytd"])
19
+ );
20
+ var OrganizationUsageQuery = /* @__PURE__ */ defineSchema(
21
+ () => z.object({
22
+ period: OrganizationUsagePeriod.default("month")
23
+ })
24
+ );
25
+ var OrganizationUsageWorkspacePageQuery = /* @__PURE__ */ defineSchema(
26
+ () => OrganizationUsageQuery.extend({
27
+ until: dateTime,
28
+ afterWorkspaceId: optionalUuid
29
+ })
30
+ );
31
+ var OrganizationUsageTotal = /* @__PURE__ */ defineSchema(
32
+ () => z.object({
33
+ eventType: string,
34
+ unit: string,
35
+ quantity: string.regex(/^-?\d+$/),
36
+ eventCount: string.regex(/^\d+$/)
37
+ })
38
+ );
39
+ var OrganizationUsagePersonalWorkspace = /* @__PURE__ */ defineSchema(
40
+ () => z.object({
41
+ membershipId: uuid,
42
+ totals: z.array(OrganizationUsageTotal)
43
+ })
44
+ );
45
+ var OrganizationUsageSummary = /* @__PURE__ */ defineSchema(
46
+ () => z.object({
47
+ accountId: uuid,
48
+ period: OrganizationUsagePeriod,
49
+ since: dateTime,
50
+ until: dateTime,
51
+ granularity: z.enum(["hour", "day"]),
52
+ totals: z.array(OrganizationUsageTotal),
53
+ buckets: z.array(
54
+ z.object({ bucket: string, totals: z.array(OrganizationUsageTotal) })
55
+ ),
56
+ workspaces: z.array(
57
+ z.object({
58
+ workspaceId: uuid,
59
+ name: nullableString,
60
+ totals: z.array(OrganizationUsageTotal)
61
+ })
62
+ ).max(50),
63
+ nextWorkspaceCursor: nullableUuid,
64
+ /**
65
+ * Usage in each member's Personal workspace, keyed by the owner's
66
+ * organization membership: amounts only, never the workspace's id, name or
67
+ * content. Only Personal workspaces with usage in the period, the 50 that
68
+ * spent the most. Absent before migration 0543, hence the defaults.
69
+ */
70
+ personalWorkspaces: z.array(OrganizationUsagePersonalWorkspace).max(50).default([]),
71
+ /** How many Personal workspaces had usage in the period, listed or not. */
72
+ personalWorkspaceCount: nonnegativeInteger.default(0),
73
+ /** Other people's Only-me chats in shared workspaces: member amounts only. */
74
+ privateChats: z.array(
75
+ z.object({
76
+ workspaceId: uuid,
77
+ membershipId: nullableUuid,
78
+ name: nullableString,
79
+ totals: z.array(OrganizationUsageTotal)
80
+ })
81
+ ).default([]),
82
+ privateChatsTruncated: boolean.default(false)
83
+ })
84
+ );
85
+ var OrganizationUsageWorkspacePage = /* @__PURE__ */ defineSchema(
86
+ () => OrganizationUsageSummary.omit({
87
+ totals: true,
88
+ buckets: true,
89
+ personalWorkspaces: true,
90
+ personalWorkspaceCount: true,
91
+ privateChats: true,
92
+ privateChatsTruncated: true
93
+ })
94
+ );
95
+
96
+ export {
97
+ OrganizationUsagePeriod,
98
+ OrganizationUsageQuery,
99
+ OrganizationUsageWorkspacePageQuery,
100
+ OrganizationUsageTotal,
101
+ OrganizationUsagePersonalWorkspace,
102
+ OrganizationUsageSummary,
103
+ OrganizationUsageWorkspacePage
104
+ };
105
+ //# sourceMappingURL=chunk-7EQGGZBY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/organization-usage.ts"],"sourcesContent":["import * as primitives from \"./primitives\";\nimport { defineSchema } from \"./define-schema\";\nimport { z } from \"zod\";\n\nexport const OrganizationUsagePeriod = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"today\", \"week\", \"month\", \"ytd\"]),\n);\nexport type OrganizationUsagePeriod = z.infer<typeof OrganizationUsagePeriod>;\nexport const OrganizationUsageQuery = /* @__PURE__ */ defineSchema(() =>\n z.object({\n period: OrganizationUsagePeriod.default(\"month\"),\n }),\n);\nexport const OrganizationUsageWorkspacePageQuery = /* @__PURE__ */ defineSchema(() =>\n OrganizationUsageQuery.extend({\n until: primitives.dateTime,\n afterWorkspaceId: primitives.optionalUuid,\n }),\n);\n// PostgreSQL SUM(bigint) must never pass through a JavaScript number.\nexport const OrganizationUsageTotal = /* @__PURE__ */ defineSchema(() =>\n z.object({\n eventType: primitives.string,\n unit: primitives.string,\n quantity: primitives.string.regex(/^-?\\d+$/),\n eventCount: primitives.string.regex(/^\\d+$/),\n }),\n);\n/** One member's Personal workspace, as usage only. */\nexport const OrganizationUsagePersonalWorkspace = /* @__PURE__ */ defineSchema(() =>\n z.object({\n membershipId: primitives.uuid,\n totals: z.array(OrganizationUsageTotal),\n }),\n);\nexport type OrganizationUsagePersonalWorkspace = z.infer<typeof OrganizationUsagePersonalWorkspace>;\nexport const OrganizationUsageSummary = /* @__PURE__ */ defineSchema(() =>\n z.object({\n accountId: primitives.uuid,\n period: OrganizationUsagePeriod,\n since: primitives.dateTime,\n until: primitives.dateTime,\n granularity: z.enum([\"hour\", \"day\"]),\n totals: z.array(OrganizationUsageTotal),\n buckets: z.array(\n z.object({ bucket: primitives.string, totals: z.array(OrganizationUsageTotal) }),\n ),\n workspaces: z\n .array(\n z.object({\n workspaceId: primitives.uuid,\n name: primitives.nullableString,\n totals: z.array(OrganizationUsageTotal),\n }),\n )\n .max(50),\n nextWorkspaceCursor: primitives.nullableUuid,\n /**\n * Usage in each member's Personal workspace, keyed by the owner's\n * organization membership: amounts only, never the workspace's id, name or\n * content. Only Personal workspaces with usage in the period, the 50 that\n * spent the most. Absent before migration 0543, hence the defaults.\n */\n personalWorkspaces: z.array(OrganizationUsagePersonalWorkspace).max(50).default([]),\n /** How many Personal workspaces had usage in the period, listed or not. */\n personalWorkspaceCount: primitives.nonnegativeInteger.default(0),\n /** Other people's Only-me chats in shared workspaces: member amounts only. */\n privateChats: z\n .array(\n z.object({\n workspaceId: primitives.uuid,\n membershipId: primitives.nullableUuid,\n name: primitives.nullableString,\n totals: z.array(OrganizationUsageTotal),\n }),\n )\n .default([]),\n privateChatsTruncated: primitives.boolean.default(false),\n }),\n);\nexport type OrganizationUsageSummary = z.infer<typeof OrganizationUsageSummary>;\n\n/**\n * A page deliberately excludes totals, charts and Personal rows: those are not\n * recomputed. Pages continue the shared workspaces only.\n */\nexport const OrganizationUsageWorkspacePage = /* @__PURE__ */ defineSchema(() =>\n OrganizationUsageSummary.omit({\n totals: true,\n buckets: true,\n personalWorkspaces: true,\n personalWorkspaceCount: true,\n privateChats: true,\n privateChatsTruncated: true,\n }),\n);\nexport type OrganizationUsageWorkspacePage = z.infer<typeof OrganizationUsageWorkspacePage>;\n"],"mappings":";;;;;;;;;;;;;;;AAEA,SAAS,SAAS;AAEX,IAAM,0BAA0C;AAAA,EAAa,MAClE,EAAE,KAAK,CAAC,SAAS,QAAQ,SAAS,KAAK,CAAC;AAC1C;AAEO,IAAM,yBAAyC;AAAA,EAAa,MACjE,EAAE,OAAO;AAAA,IACP,QAAQ,wBAAwB,QAAQ,OAAO;AAAA,EACjD,CAAC;AACH;AACO,IAAM,sCAAsD;AAAA,EAAa,MAC9E,uBAAuB,OAAO;AAAA,IAC5B,OAAkB;AAAA,IAClB,kBAA6B;AAAA,EAC/B,CAAC;AACH;AAEO,IAAM,yBAAyC;AAAA,EAAa,MACjE,EAAE,OAAO;AAAA,IACP,WAAsB;AAAA,IACtB,MAAiB;AAAA,IACjB,UAAqB,OAAO,MAAM,SAAS;AAAA,IAC3C,YAAuB,OAAO,MAAM,OAAO;AAAA,EAC7C,CAAC;AACH;AAEO,IAAM,qCAAqD;AAAA,EAAa,MAC7E,EAAE,OAAO;AAAA,IACP,cAAyB;AAAA,IACzB,QAAQ,EAAE,MAAM,sBAAsB;AAAA,EACxC,CAAC;AACH;AAEO,IAAM,2BAA2C;AAAA,EAAa,MACnE,EAAE,OAAO;AAAA,IACP,WAAsB;AAAA,IACtB,QAAQ;AAAA,IACR,OAAkB;AAAA,IAClB,OAAkB;AAAA,IAClB,aAAa,EAAE,KAAK,CAAC,QAAQ,KAAK,CAAC;AAAA,IACnC,QAAQ,EAAE,MAAM,sBAAsB;AAAA,IACtC,SAAS,EAAE;AAAA,MACT,EAAE,OAAO,EAAE,QAAmB,QAAQ,QAAQ,EAAE,MAAM,sBAAsB,EAAE,CAAC;AAAA,IACjF;AAAA,IACA,YAAY,EACT;AAAA,MACC,EAAE,OAAO;AAAA,QACP,aAAwB;AAAA,QACxB,MAAiB;AAAA,QACjB,QAAQ,EAAE,MAAM,sBAAsB;AAAA,MACxC,CAAC;AAAA,IACH,EACC,IAAI,EAAE;AAAA,IACT,qBAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOhC,oBAAoB,EAAE,MAAM,kCAAkC,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;AAAA;AAAA,IAElF,wBAAmC,mBAAmB,QAAQ,CAAC;AAAA;AAAA,IAE/D,cAAc,EACX;AAAA,MACC,EAAE,OAAO;AAAA,QACP,aAAwB;AAAA,QACxB,cAAyB;AAAA,QACzB,MAAiB;AAAA,QACjB,QAAQ,EAAE,MAAM,sBAAsB;AAAA,MACxC,CAAC;AAAA,IACH,EACC,QAAQ,CAAC,CAAC;AAAA,IACb,uBAAkC,QAAQ,QAAQ,KAAK;AAAA,EACzD,CAAC;AACH;AAOO,IAAM,iCAAiD;AAAA,EAAa,MACzE,yBAAyB,KAAK;AAAA,IAC5B,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,oBAAoB;AAAA,IACpB,wBAAwB;AAAA,IACxB,cAAc;AAAA,IACd,uBAAuB;AAAA,EACzB,CAAC;AACH;","names":[]}