@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,774 @@
1
+ import * as primitives from "./primitives";
2
+ import { defineSchema } from "./define-schema";
3
+ import { ModelProcessingGeography } from "./model-residency";
4
+ // Deliberately exported only from @opengeni/contracts/insights-usage. Importing
5
+ // these schemas must not pull in the root contracts index or its browser graph.
6
+ import { z } from "zod";
7
+
8
+ const SafeCount = /* @__PURE__ */ defineSchema(() =>
9
+ primitives.nonnegativeInteger.max(Number.MAX_SAFE_INTEGER),
10
+ );
11
+ const UtcDateTime = /* @__PURE__ */ defineSchema(() => primitives.dateTime);
12
+ const Identifier = /* @__PURE__ */ defineSchema(() => primitives.uuid);
13
+ const OpaqueKey = /* @__PURE__ */ defineSchema(() => primitives.nonEmptyString);
14
+
15
+ export const InsightsUsageRange = /* @__PURE__ */ defineSchema(() =>
16
+ z.enum(["today", "week", "month", "30d", "90d", "ytd", "custom"]),
17
+ );
18
+ export type InsightsUsageRange = z.infer<typeof InsightsUsageRange>;
19
+
20
+ /** Aggregate Site accounting only: no viewer, session, turn or prompt identities. */
21
+ export const InsightsSiteUsageQuery = /* @__PURE__ */ defineSchema(() =>
22
+ z
23
+ .object({ range: z.enum(["today", "week", "month", "30d", "90d", "ytd"]).default("month") })
24
+ .strict(),
25
+ );
26
+ export type InsightsSiteUsageQuery = z.infer<typeof InsightsSiteUsageQuery>;
27
+ export const InsightsSiteUsageRow = /* @__PURE__ */ defineSchema(() =>
28
+ z
29
+ .object({
30
+ siteId: Identifier.nullable(),
31
+ title: primitives.string,
32
+ kind: z.enum(["site", "restricted", "other"]),
33
+ calls: SafeCount,
34
+ pricedCalls: SafeCount,
35
+ /** Settled negative model-usage ledger entries, not a provider price. */
36
+ chargedMicros: SafeCount,
37
+ /** Recorded API-equivalent estimates across all payment paths. */
38
+ apiEquivalentMicros: SafeCount,
39
+ subscriptionApiEquivalentMicros: SafeCount,
40
+ ownKeyApiEquivalentMicros: SafeCount,
41
+ })
42
+ .strict(),
43
+ );
44
+ export type InsightsSiteUsageRow = z.infer<typeof InsightsSiteUsageRow>;
45
+ export const InsightsSiteUsageResponse = /* @__PURE__ */ defineSchema(() =>
46
+ z
47
+ .object({
48
+ workspaceId: Identifier,
49
+ range: InsightsSiteUsageQuery.shape.range,
50
+ windowStart: UtcDateTime,
51
+ windowEnd: UtcDateTime,
52
+ rows: z.array(InsightsSiteUsageRow).max(201),
53
+ })
54
+ .strict(),
55
+ );
56
+ export type InsightsSiteUsageResponse = z.infer<typeof InsightsSiteUsageResponse>;
57
+
58
+ export const InsightsUsageGroupBy = /* @__PURE__ */ defineSchema(() =>
59
+ z.enum([
60
+ "model",
61
+ "provider",
62
+ "payer",
63
+ "plan",
64
+ "workspace",
65
+ "project",
66
+ "session",
67
+ "rootSession",
68
+ "person",
69
+ "schedule",
70
+ "source",
71
+ ]),
72
+ );
73
+ export type InsightsUsageGroupBy = z.infer<typeof InsightsUsageGroupBy>;
74
+
75
+ /** Recorded entry surface only; API includes SDK/embed. Missing provenance is other. */
76
+ export const InsightsUsageSource = /* @__PURE__ */ defineSchema(() =>
77
+ z.enum(["web", "api", "slack", "schedule", "agent", "other"]),
78
+ );
79
+ export type InsightsUsageSource = z.infer<typeof InsightsUsageSource>;
80
+
81
+ const UtcDay = /* @__PURE__ */ defineSchema(() =>
82
+ primitives.string.regex(/^\d{4}-\d{2}-\d{2}$/).refine((value) => {
83
+ const instant = Date.parse(`${value}T00:00:00Z`);
84
+ return (
85
+ !value.startsWith("0000-") &&
86
+ Number.isFinite(instant) &&
87
+ new Date(instant).toISOString().slice(0, 10) === value
88
+ );
89
+ }, "Expected a real UTC calendar date in years 0001 through 9999 (YYYY-MM-DD)"),
90
+ );
91
+ const CustomUtcDateTime = /* @__PURE__ */ defineSchema(() =>
92
+ UtcDateTime.refine(
93
+ (value) => !value.startsWith("0000-"),
94
+ "Custom UTC boundaries must use years 0001 through 9999",
95
+ ),
96
+ );
97
+ const DAY_MS = 86_400_000;
98
+ const CUSTOM_MAX_DAYS = 370;
99
+
100
+ function customWindow(from: string, to: string) {
101
+ if (!UtcDay.safeParse(from).success || !UtcDay.safeParse(to).success) return undefined;
102
+ const start = Date.parse(`${from}T00:00:00Z`);
103
+ const end = Date.parse(`${to}T00:00:00Z`) + DAY_MS;
104
+ if (start >= end || end - start > CUSTOM_MAX_DAYS * DAY_MS) return undefined;
105
+ const priorStart = start - (end - start);
106
+ const windows = {
107
+ windowStart: new Date(start).toISOString(),
108
+ windowEnd: new Date(end).toISOString(),
109
+ priorWindowStart: new Date(priorStart).toISOString(),
110
+ priorWindowEnd: new Date(start).toISOString(),
111
+ };
112
+ // Four-digit AD years must also represent the prior and exclusive end.
113
+ // PostgreSQL has no year zero even though ISO/Zod datetime permits it.
114
+ if (!Object.values(windows).every((value) => CustomUtcDateTime.safeParse(value).success))
115
+ return undefined;
116
+ return { ...windows, bucket: end - start <= 2 * DAY_MS ? ("hour" as const) : ("day" as const) };
117
+ }
118
+
119
+ const CustomDates = /* @__PURE__ */ defineSchema(() =>
120
+ z
121
+ .object({ from: UtcDay, to: UtcDay })
122
+ .strict()
123
+ .refine(
124
+ (value) => customWindow(value.from, value.to) !== undefined,
125
+ "Custom days must be ordered, span at most 370 days and have representable current/prior windows",
126
+ ),
127
+ );
128
+
129
+ /** At most 370 inclusive UTC days; exclusive end and equally long immediate prior. */
130
+ export function resolveInsightsUsageCustomWindow(dates: { from: string; to: string }) {
131
+ const parsed = CustomDates.parse(dates);
132
+ return customWindow(parsed.from, parsed.to)!;
133
+ }
134
+
135
+ function validateWindowQuery(
136
+ value: { range: InsightsUsageRange; from?: string | undefined; to?: string | undefined },
137
+ context: z.RefinementCtx,
138
+ ) {
139
+ if (value.range === "custom") {
140
+ if (value.from === undefined || value.to === undefined) {
141
+ context.addIssue({
142
+ code: "custom",
143
+ path: [value.from === undefined ? "from" : "to"],
144
+ message: "Custom range requires both from and to",
145
+ });
146
+ } else if (customWindow(value.from, value.to) === undefined) {
147
+ context.addIssue({
148
+ code: "custom",
149
+ path: ["to"],
150
+ message:
151
+ "Custom days must be ordered, span at most 370 days and have representable current/prior windows",
152
+ });
153
+ }
154
+ } else if (value.from !== undefined || value.to !== undefined) {
155
+ context.addIssue({
156
+ code: "custom",
157
+ path: ["range"],
158
+ message: "from/to are only valid with range=custom",
159
+ });
160
+ }
161
+ }
162
+
163
+ // Literal union avoids replacing existing, structurally identical named enum
164
+ // fingerprints in the additive public-API inventory.
165
+ export const InsightsUsagePayer = /* @__PURE__ */ defineSchema(() =>
166
+ z.union([z.literal("opengeni_credits"), z.literal("subscription"), z.literal("own_key")]),
167
+ );
168
+ export type InsightsUsagePayer = z.infer<typeof InsightsUsagePayer>;
169
+
170
+ /** Split at the FIRST slash: model IDs themselves may contain slashes. */
171
+ export const InsightsUsageModelKey = /* @__PURE__ */ defineSchema(() =>
172
+ primitives.string.regex(/^[^/\s]+\/\S+$/),
173
+ );
174
+ export type InsightsUsageModelKey = z.infer<typeof InsightsUsageModelKey>;
175
+
176
+ function repeated<T extends z.ZodType>(item: T) {
177
+ return z
178
+ .union([primitives.string, z.array(primitives.string).min(1)])
179
+ .transform((value, context) => {
180
+ const entries = (Array.isArray(value) ? value : [value]).flatMap((part) =>
181
+ part.split(",").map((entry) => entry.trim()),
182
+ );
183
+ const parsed = z.array(item).min(1).safeParse(entries);
184
+ if (!parsed.success) {
185
+ for (const issue of parsed.error.issues) {
186
+ context.addIssue({ code: "custom", path: issue.path, message: issue.message });
187
+ }
188
+ return z.NEVER;
189
+ }
190
+ return parsed.data;
191
+ })
192
+ .optional();
193
+ }
194
+
195
+ function queryLimit(max: number) {
196
+ return z
197
+ .union([z.number(), primitives.string.regex(/^\d+$/).transform(Number)])
198
+ .pipe(SafeCount.min(1).max(max))
199
+ .default(50);
200
+ }
201
+
202
+ const QueryBoolean = /* @__PURE__ */ defineSchema(() =>
203
+ z
204
+ .union([primitives.boolean, z.enum(["true", "false"])])
205
+ .transform((value) => value === true || value === "true"),
206
+ );
207
+
208
+ // Repeated, comma-separated, and mixed values: AND across fields, OR within a
209
+ // field. Empty segments are rejected, never silently widened to all records.
210
+ const Filters = {
211
+ range: InsightsUsageRange.default("week"),
212
+ from: UtcDay.optional(),
213
+ to: UtcDay.optional(),
214
+ /** At workspace scope this intersects the path workspace; it never expands scope. */
215
+ workspaceId: repeated(Identifier),
216
+ provider: repeated(OpaqueKey),
217
+ model: repeated(InsightsUsageModelKey),
218
+ payer: repeated(InsightsUsagePayer),
219
+ /** Recorded opaque plan key; missing historical snapshots use unknown, not today's plan. */
220
+ plan: repeated(OpaqueKey),
221
+ source: repeated(InsightsUsageSource),
222
+ projectId: repeated(z.union([Identifier, z.literal("unfiled")])),
223
+ /** Authorized owner/member facet key, not a hidden causal initiator. */
224
+ person: repeated(OpaqueKey),
225
+ /** Leaf session and root chat selectors are deliberately separate. */
226
+ sessionId: repeated(Identifier),
227
+ rootSessionId: repeated(Identifier),
228
+ scheduleId: repeated(Identifier),
229
+ };
230
+
231
+ export const WorkspaceInsightsUsageQuery = /* @__PURE__ */ defineSchema(() =>
232
+ z
233
+ .object({
234
+ ...Filters,
235
+ groupBy: InsightsUsageGroupBy.default("model"),
236
+ seriesGroups: QueryBoolean.optional(),
237
+ limit: queryLimit(200),
238
+ })
239
+ .strict()
240
+ .superRefine(validateWindowQuery),
241
+ );
242
+ export type WorkspaceInsightsUsageQuery = z.infer<typeof WorkspaceInsightsUsageQuery>;
243
+ export type WorkspaceInsightsUsageQueryInput = z.input<typeof WorkspaceInsightsUsageQuery>;
244
+
245
+ export const OrganizationInsightsUsageQuery = /* @__PURE__ */ defineSchema(() =>
246
+ z
247
+ .object({
248
+ ...Filters,
249
+ groupBy: InsightsUsageGroupBy.default("model"),
250
+ seriesGroups: QueryBoolean.optional(),
251
+ limit: queryLimit(200),
252
+ })
253
+ .strict()
254
+ .superRefine(validateWindowQuery),
255
+ );
256
+ export type OrganizationInsightsUsageQuery = z.infer<typeof OrganizationInsightsUsageQuery>;
257
+ export type OrganizationInsightsUsageQueryInput = z.input<typeof OrganizationInsightsUsageQuery>;
258
+
259
+ /** Organization-capable shared shape; use the workspace parser at workspace scope. */
260
+ export const InsightsUsageQuery = OrganizationInsightsUsageQuery;
261
+ export type InsightsUsageQuery = OrganizationInsightsUsageQuery;
262
+ export type InsightsUsageQueryInput = OrganizationInsightsUsageQueryInput;
263
+
264
+ export const WorkspaceInsightsCallsQuery = /* @__PURE__ */ defineSchema(() =>
265
+ z
266
+ .object({
267
+ ...Filters,
268
+ cursor: OpaqueKey.optional(),
269
+ limit: queryLimit(100),
270
+ })
271
+ .strict()
272
+ .superRefine(validateWindowQuery),
273
+ );
274
+ export type WorkspaceInsightsCallsQuery = z.infer<typeof WorkspaceInsightsCallsQuery>;
275
+ export type WorkspaceInsightsCallsQueryInput = z.input<typeof WorkspaceInsightsCallsQuery>;
276
+
277
+ export const OrganizationInsightsCallsQuery = WorkspaceInsightsCallsQuery;
278
+ export type OrganizationInsightsCallsQuery = z.infer<typeof OrganizationInsightsCallsQuery>;
279
+ export type OrganizationInsightsCallsQueryInput = z.input<typeof OrganizationInsightsCallsQuery>;
280
+ export const InsightsCallsQuery = OrganizationInsightsCallsQuery;
281
+ export type InsightsCallsQuery = OrganizationInsightsCallsQuery;
282
+ export type InsightsCallsQueryInput = OrganizationInsightsCallsQueryInput;
283
+
284
+ /** Missing historical token classes are represented by known-call counters, not guessed zeroes. */
285
+ export const InsightsUsageTokens = /* @__PURE__ */ defineSchema(() =>
286
+ z
287
+ .object({
288
+ uncachedInput: SafeCount,
289
+ cacheRead: SafeCount,
290
+ cacheWrite: SafeCount,
291
+ output: SafeCount,
292
+ reasoning: SafeCount,
293
+ })
294
+ .strict(),
295
+ );
296
+ export type InsightsUsageTokens = z.infer<typeof InsightsUsageTokens>;
297
+
298
+ /**
299
+ * List-price classes only: exact write-time snapshots or flagged historical
300
+ * allocations of each call's recorded total, never repricing that total.
301
+ * chargedMicros is the actual debit-ledger total and has no class split.
302
+ */
303
+ export const InsightsUsageClassMicros = /* @__PURE__ */ defineSchema(() =>
304
+ z
305
+ .object({
306
+ uncachedInput: SafeCount,
307
+ cacheRead: SafeCount,
308
+ cacheWrite: SafeCount,
309
+ output: SafeCount,
310
+ })
311
+ .strict(),
312
+ );
313
+ export type InsightsUsageClassMicros = z.infer<typeof InsightsUsageClassMicros>;
314
+
315
+ const PayerMeasures = /* @__PURE__ */ defineSchema(() =>
316
+ z
317
+ .object({
318
+ calls: SafeCount,
319
+ chargedMicros: SafeCount,
320
+ listMicros: SafeCount,
321
+ })
322
+ .strict(),
323
+ );
324
+
325
+ function classTotal(value: InsightsUsageClassMicros): bigint {
326
+ return (
327
+ BigInt(value.uncachedInput) +
328
+ BigInt(value.cacheRead) +
329
+ BigInt(value.cacheWrite) +
330
+ BigInt(value.output)
331
+ );
332
+ }
333
+
334
+ export const InsightsUsageMeasures = /* @__PURE__ */ defineSchema(() =>
335
+ z
336
+ .object({
337
+ calls: SafeCount,
338
+ tokenKnownCalls: SafeCount,
339
+ cacheKnownCalls: SafeCount,
340
+ cacheWriteKnownCalls: SafeCount,
341
+ /** Priced calls covered by exact snapshots OR flagged recorded-total allocations. */
342
+ listClassKnownCalls: SafeCount,
343
+ tokens: InsightsUsageTokens,
344
+ /** Actual debit ledger, not a model price that may exceed a clipped debit. */
345
+ chargedMicros: SafeCount,
346
+ listMicros: SafeCount,
347
+ listByClassMicros: InsightsUsageClassMicros.nullable(),
348
+ /** True when any covered class values allocate a historical recorded total. */
349
+ listByClassApprox: primitives.boolean,
350
+ pricedCalls: SafeCount,
351
+ byPayer: z
352
+ .object({
353
+ opengeni_credits: PayerMeasures,
354
+ subscription: PayerMeasures,
355
+ own_key: PayerMeasures,
356
+ })
357
+ .strict(),
358
+ })
359
+ .strict()
360
+ .superRefine((value, context) => {
361
+ for (const field of [
362
+ "tokenKnownCalls",
363
+ "cacheKnownCalls",
364
+ "cacheWriteKnownCalls",
365
+ "pricedCalls",
366
+ ] as const) {
367
+ if (value[field] > value.calls) {
368
+ context.addIssue({
369
+ code: "custom",
370
+ path: [field],
371
+ message: "Known calls cannot exceed calls",
372
+ });
373
+ }
374
+ }
375
+ if (value.listClassKnownCalls > value.pricedCalls) {
376
+ context.addIssue({
377
+ code: "custom",
378
+ path: ["listClassKnownCalls"],
379
+ message: "Class coverage cannot exceed priced calls",
380
+ });
381
+ }
382
+ if (value.listByClassMicros !== null) {
383
+ const coveredTotal = classTotal(value.listByClassMicros);
384
+ if (
385
+ coveredTotal > BigInt(value.listMicros) ||
386
+ (value.listClassKnownCalls === value.pricedCalls &&
387
+ coveredTotal !== BigInt(value.listMicros))
388
+ ) {
389
+ context.addIssue({
390
+ code: "custom",
391
+ path: ["listByClassMicros"],
392
+ message:
393
+ "Covered classes cannot exceed the recorded total; complete coverage must preserve it exactly",
394
+ });
395
+ }
396
+ }
397
+ for (const field of ["calls", "chargedMicros", "listMicros"] as const) {
398
+ const total = Object.values(value.byPayer).reduce(
399
+ (sum, payer) => sum + BigInt(payer[field]),
400
+ 0n,
401
+ );
402
+ if (total !== BigInt(value[field])) {
403
+ context.addIssue({
404
+ code: "custom",
405
+ path: ["byPayer"],
406
+ message: `Payer ${field} must sum to the total`,
407
+ });
408
+ }
409
+ }
410
+ }),
411
+ );
412
+ export type InsightsUsageMeasures = z.infer<typeof InsightsUsageMeasures>;
413
+
414
+ export const InsightsUsageScope = /* @__PURE__ */ defineSchema(() =>
415
+ z.discriminatedUnion("kind", [
416
+ z
417
+ .object({ kind: z.literal("workspace"), accountId: Identifier, workspaceId: Identifier })
418
+ .strict(),
419
+ z
420
+ .object({ kind: z.literal("organization"), accountId: Identifier, workspaceId: z.null() })
421
+ .strict(),
422
+ ]),
423
+ );
424
+ export type InsightsUsageScope = z.infer<typeof InsightsUsageScope>;
425
+
426
+ export const InsightsUsageGroup = /* @__PURE__ */ defineSchema(() =>
427
+ z
428
+ .object({
429
+ /** Private/personal keys remain kind-scoped; named source keys are the source value. */
430
+ key: OpaqueKey,
431
+ kind: z.enum([
432
+ "item",
433
+ "other",
434
+ "deleted",
435
+ "private",
436
+ "personal",
437
+ "unfiled",
438
+ "service",
439
+ "restricted",
440
+ ]),
441
+ label: primitives.string,
442
+ provider: OpaqueKey.optional(),
443
+ model: OpaqueKey.optional(),
444
+ workspaceId: Identifier.optional(),
445
+ /** Only an already-authorized people facet key; permits person-only amount selection. */
446
+ personKey: OpaqueKey.optional(),
447
+ you: primitives.optionalBoolean,
448
+ measures: InsightsUsageMeasures,
449
+ })
450
+ .strict(),
451
+ );
452
+ export type InsightsUsageGroup = z.infer<typeof InsightsUsageGroup>;
453
+
454
+ const SeriesGroup = /* @__PURE__ */ defineSchema(() =>
455
+ z
456
+ .object({
457
+ chargedMicros: SafeCount,
458
+ listMicros: SafeCount,
459
+ tokens: InsightsUsageTokens,
460
+ calls: SafeCount,
461
+ byPayer: InsightsUsageMeasures.shape.byPayer,
462
+ })
463
+ .strict()
464
+ .superRefine((value, context) => {
465
+ for (const field of ["calls", "chargedMicros", "listMicros"] as const) {
466
+ const total = Object.values(value.byPayer).reduce(
467
+ (sum, payer) => sum + BigInt(payer[field]),
468
+ 0n,
469
+ );
470
+ if (total !== BigInt(value[field])) {
471
+ context.addIssue({
472
+ code: "custom",
473
+ path: ["byPayer"],
474
+ message: `Payer ${field} must sum to the total`,
475
+ });
476
+ }
477
+ }
478
+ }),
479
+ );
480
+
481
+ export const InsightsUsageSeriesPoint = /* @__PURE__ */ defineSchema(() =>
482
+ z
483
+ .object({
484
+ start: UtcDateTime,
485
+ measures: InsightsUsageMeasures,
486
+ /** Top six active groups plus remainder; source uses other:folded to avoid other collisions. */
487
+ groups: z
488
+ .record(primitives.string, SeriesGroup)
489
+ .refine(
490
+ (value) =>
491
+ Object.keys(value).length <= 7 &&
492
+ Object.keys(value).filter((key) => key !== "other" && key !== "other:folded").length <=
493
+ 6,
494
+ {
495
+ message: "Series may include at most six groups plus other",
496
+ },
497
+ )
498
+ .optional(),
499
+ })
500
+ .strict(),
501
+ );
502
+ export type InsightsUsageSeriesPoint = z.infer<typeof InsightsUsageSeriesPoint>;
503
+
504
+ /** Range/scope-only authorized metadata, not hidden row IDs or unconditional profile hydration. */
505
+ export const InsightsUsageFacets = /* @__PURE__ */ defineSchema(() =>
506
+ z
507
+ .object({
508
+ workspaces: z.array(
509
+ z
510
+ .object({ id: Identifier, name: primitives.string, personal: primitives.boolean })
511
+ .strict(),
512
+ ),
513
+ providers: z.array(OpaqueKey),
514
+ models: z.array(z.object({ provider: OpaqueKey, model: OpaqueKey }).strict()),
515
+ payers: z.array(OpaqueKey),
516
+ /** Recorded opaque plan keys, with unknown for absent snapshots. */
517
+ plans: z.array(OpaqueKey).default([]),
518
+ /** Capability marker: omit until source/custom support is actually implemented. */
519
+ sources: z.array(InsightsUsageSource).optional(),
520
+ projects: z.array(z.object({ id: Identifier, name: primitives.string }).strict()),
521
+ people: z.array(
522
+ z
523
+ .object({ key: OpaqueKey, name: primitives.nullableString, you: primitives.boolean })
524
+ .strict(),
525
+ ),
526
+ schedules: z.array(z.object({ id: Identifier, name: primitives.string }).strict()),
527
+ })
528
+ .strict(),
529
+ );
530
+ export type InsightsUsageFacets = z.infer<typeof InsightsUsageFacets>;
531
+
532
+ export const InsightsUsageResponse = /* @__PURE__ */ defineSchema(() =>
533
+ z
534
+ .object({
535
+ scope: InsightsUsageScope,
536
+ range: InsightsUsageRange,
537
+ windowStart: UtcDateTime,
538
+ windowEnd: UtcDateTime,
539
+ priorWindowStart: UtcDateTime,
540
+ priorWindowEnd: UtcDateTime,
541
+ bucket: z.enum(["hour", "day"]),
542
+ generatedAt: UtcDateTime,
543
+ dataThrough: UtcDateTime.nullable(),
544
+ totals: InsightsUsageMeasures,
545
+ /** Null for truly empty prior windows; ledger-only money survives missing call facts. */
546
+ prior: InsightsUsageMeasures.nullable(),
547
+ groupBy: InsightsUsageGroupBy,
548
+ groups: z.array(InsightsUsageGroup),
549
+ groupCount: SafeCount,
550
+ groupsTruncated: primitives.boolean,
551
+ series: z.array(InsightsUsageSeriesPoint),
552
+ facets: InsightsUsageFacets,
553
+ })
554
+ .strict()
555
+ .superRefine((value, context) => {
556
+ const windowStart = Date.parse(value.windowStart);
557
+ const windowEnd = Date.parse(value.windowEnd);
558
+ const priorWindowStart = Date.parse(value.priorWindowStart);
559
+ const priorWindowEnd = Date.parse(value.priorWindowEnd);
560
+ if (windowStart > windowEnd) {
561
+ context.addIssue({
562
+ code: "custom",
563
+ path: ["windowEnd"],
564
+ message: "Window end must not precede start",
565
+ });
566
+ }
567
+ if (priorWindowStart > priorWindowEnd) {
568
+ context.addIssue({
569
+ code: "custom",
570
+ path: ["priorWindowEnd"],
571
+ message: "Prior window end must not precede start",
572
+ });
573
+ }
574
+ // At an exact UTC range boundary, elapsed current/prior windows can be
575
+ // zero-length. Preserve that canonical window instead of inventing a future end.
576
+ if (windowStart === windowEnd) {
577
+ if (
578
+ value.totals.calls !== 0 ||
579
+ value.totals.chargedMicros !== 0 ||
580
+ value.totals.listMicros !== 0 ||
581
+ Object.values(value.totals.tokens).some((tokens) => tokens !== 0)
582
+ ) {
583
+ context.addIssue({
584
+ code: "custom",
585
+ path: ["totals"],
586
+ message: "Zero-length windows must have empty measures",
587
+ });
588
+ }
589
+ if (value.groups.length !== 0 || value.groupCount !== 0 || value.groupsTruncated) {
590
+ context.addIssue({
591
+ code: "custom",
592
+ path: ["groups"],
593
+ message: "Zero-length windows must have no groups",
594
+ });
595
+ }
596
+ if (value.series.length !== 0) {
597
+ context.addIssue({
598
+ code: "custom",
599
+ path: ["series"],
600
+ message: "Zero-length windows must have no series points",
601
+ });
602
+ }
603
+ }
604
+ if (priorWindowStart === priorWindowEnd && value.prior !== null) {
605
+ context.addIssue({
606
+ code: "custom",
607
+ path: ["prior"],
608
+ message: "Zero-length prior windows must have null measures",
609
+ });
610
+ }
611
+ const expectedBucket =
612
+ value.range === "custom"
613
+ ? windowEnd - windowStart <= 2 * DAY_MS
614
+ ? "hour"
615
+ : "day"
616
+ : value.range === "today"
617
+ ? "hour"
618
+ : "day";
619
+ if (value.bucket !== expectedBucket) {
620
+ context.addIssue({
621
+ code: "custom",
622
+ path: ["bucket"],
623
+ message: "Bucket is automatic for the range",
624
+ });
625
+ }
626
+ // Model-call facts can soft-fail after money is recorded. Preserve those
627
+ // amounts without inventing calls or known token/class coverage.
628
+ if (
629
+ value.prior?.calls === 0 &&
630
+ value.prior.chargedMicros === 0 &&
631
+ value.prior.listMicros === 0
632
+ ) {
633
+ context.addIssue({
634
+ code: "custom",
635
+ path: ["prior"],
636
+ message: "Prior without recorded calls or money must be null",
637
+ });
638
+ }
639
+ if (value.range === "custom") {
640
+ for (const field of [
641
+ "windowStart",
642
+ "windowEnd",
643
+ "priorWindowStart",
644
+ "priorWindowEnd",
645
+ ] as const) {
646
+ if (!CustomUtcDateTime.safeParse(value[field]).success) {
647
+ context.addIssue({
648
+ code: "custom",
649
+ path: [field],
650
+ message: "Custom UTC boundaries must use years 0001 through 9999",
651
+ });
652
+ }
653
+ }
654
+ if (
655
+ windowStart === windowEnd ||
656
+ windowEnd - windowStart > CUSTOM_MAX_DAYS * DAY_MS ||
657
+ windowStart % DAY_MS !== 0 ||
658
+ windowEnd % DAY_MS !== 0 ||
659
+ priorWindowStart !== windowStart - (windowEnd - windowStart) ||
660
+ priorWindowEnd !== windowStart
661
+ ) {
662
+ context.addIssue({
663
+ code: "custom",
664
+ path: ["windowEnd"],
665
+ message:
666
+ "Custom windows must span at most 370 complete UTC days with an immediate equal-duration prior",
667
+ });
668
+ }
669
+ }
670
+ if (value.groupBy === "source") {
671
+ for (const [index, group] of value.groups.entries()) {
672
+ if (group.kind === "item" && !InsightsUsageSource.safeParse(group.key).success) {
673
+ context.addIssue({
674
+ code: "custom",
675
+ path: ["groups", index, "key"],
676
+ message: "Named source keys must equal their source value",
677
+ });
678
+ }
679
+ if (group.kind === "other" && group.key !== "other:folded") {
680
+ context.addIssue({
681
+ code: "custom",
682
+ path: ["groups", index, "key"],
683
+ message: "Source remainder must use other:folded, distinct from the other source",
684
+ });
685
+ }
686
+ }
687
+ for (const [index, point] of value.series.entries()) {
688
+ if (
689
+ point.groups &&
690
+ Object.keys(point.groups).filter((key) => key !== "other:folded").length > 6
691
+ ) {
692
+ context.addIssue({
693
+ code: "custom",
694
+ path: ["series", index, "groups"],
695
+ message: "Source series permits six named groups plus other:folded",
696
+ });
697
+ }
698
+ }
699
+ }
700
+ const peopleKeys = new Set(value.facets.people.map((person) => person.key));
701
+ for (const [index, group] of value.groups.entries()) {
702
+ if (group.personKey !== undefined && !peopleKeys.has(group.personKey)) {
703
+ context.addIssue({
704
+ code: "custom",
705
+ path: ["groups", index, "personKey"],
706
+ message: "Person amount keys must come from the authorized people facets",
707
+ });
708
+ }
709
+ }
710
+ }),
711
+ );
712
+ export type InsightsUsageResponse = z.infer<typeof InsightsUsageResponse>;
713
+
714
+ /** Backend must omit unreadable calls entirely; this schema grants no access. */
715
+ export const InsightsCall = /* @__PURE__ */ defineSchema(() =>
716
+ z
717
+ .object({
718
+ id: Identifier,
719
+ occurredAt: UtcDateTime,
720
+ workspaceId: Identifier,
721
+ sessionId: Identifier.nullable(),
722
+ sessionTitle: primitives.nullableString,
723
+ sessionKind: z.enum(["visible", "private", "deleted"]),
724
+ personKey: OpaqueKey.nullable(),
725
+ provider: OpaqueKey,
726
+ model: OpaqueKey,
727
+ payer: InsightsUsagePayer,
728
+ tokens: InsightsUsageTokens.nullable(),
729
+ chargedMicros: SafeCount,
730
+ listMicros: SafeCount.nullable(),
731
+ listByClassMicros: InsightsUsageClassMicros.nullable(),
732
+ /**
733
+ * Where the route that served the call processed it. Null for calls
734
+ * recorded before calls carried a processing residency; unknown is never EU.
735
+ * Undefined in responses from servers older than this release.
736
+ */
737
+ processingGeography: ModelProcessingGeography.nullable(),
738
+ })
739
+ .strict()
740
+ .superRefine((value, context) => {
741
+ if (
742
+ value.sessionKind === "private" &&
743
+ (value.sessionId !== null || value.sessionTitle !== null)
744
+ ) {
745
+ context.addIssue({
746
+ code: "custom",
747
+ path: ["sessionKind"],
748
+ message: "Private calls expose no session id or title",
749
+ });
750
+ }
751
+ if (
752
+ value.listByClassMicros !== null &&
753
+ (value.listMicros === null ||
754
+ classTotal(value.listByClassMicros) !== BigInt(value.listMicros))
755
+ ) {
756
+ context.addIssue({
757
+ code: "custom",
758
+ path: ["listByClassMicros"],
759
+ message: "Call list classes must sum to its recorded listMicros",
760
+ });
761
+ }
762
+ }),
763
+ );
764
+ export type InsightsCall = z.infer<typeof InsightsCall>;
765
+
766
+ export const InsightsCallsResponse = /* @__PURE__ */ defineSchema(() =>
767
+ z
768
+ .object({
769
+ calls: z.array(InsightsCall).max(100),
770
+ nextCursor: OpaqueKey.nullable(),
771
+ })
772
+ .strict(),
773
+ );
774
+ export type InsightsCallsResponse = z.infer<typeof InsightsCallsResponse>;