@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,10 @@
1
+ /**
2
+ * Construct a schema eagerly, but give bundlers one removable boundary around
3
+ * the whole initializer (including nested schemas and chained builders).
4
+ * Annotate calls with @__PURE__ only when the factory has no effects beyond
5
+ * constructing its returned schema. This is not lazy validation: used schemas
6
+ * are created once, in the same module evaluation order as ordinary constants.
7
+ */
8
+ export function defineSchema<Schema>(factory: () => Schema): Schema {
9
+ return factory();
10
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * The web console running inside an Opengeni desktop app.
3
+ *
4
+ * A sign-in the console starts there finishes in the person's own browser
5
+ * (providers refuse embedded app windows). The console marks its API requests
6
+ * with this header so a flow that ends in that browser can hand the person
7
+ * back to the app instead of leaving them on a web page. It only changes where
8
+ * the person's own browser goes afterwards; it never grants or narrows access.
9
+ */
10
+ export const OPENGENI_DESKTOP_APP_HEADER = "x-opengeni-desktop-app";
11
+
12
+ /** The console page that hands a finished browser flow back to the desktop app. */
13
+ export const DESKTOP_APP_RETURN_PATH = "/desktop-return";
14
+
15
+ /**
16
+ * Where a flow started in the desktop app should send the browser when it
17
+ * finishes: the console's hand-back page carrying the original destination.
18
+ * Only a destination on the requesting console's own origin is wrapped;
19
+ * anything else (an embedding product's page, a malformed origin) is returned
20
+ * unchanged, as is a destination that is already the hand-back page.
21
+ */
22
+ export function desktopAppReturnUrl(returnUrl: string, consoleOrigin: string | null): string {
23
+ if (!consoleOrigin) return returnUrl;
24
+ let target: URL;
25
+ let origin: string;
26
+ try {
27
+ target = new URL(returnUrl);
28
+ origin = new URL(consoleOrigin).origin;
29
+ } catch {
30
+ return returnUrl;
31
+ }
32
+ if (target.origin !== origin || target.pathname === DESKTOP_APP_RETURN_PATH) return returnUrl;
33
+ const handBack = new URL(DESKTOP_APP_RETURN_PATH, origin);
34
+ handBack.searchParams.set("url", returnUrl);
35
+ return handBack.toString();
36
+ }
37
+
38
+ /**
39
+ * The same hand-back for flows that name their destination as a console path
40
+ * (`/workspaces/…`) and add their outcome parameters to it when they finish;
41
+ * the hand-back page carries those parameters on to the destination. A path
42
+ * that is not console-relative, or is already the hand-back page, is returned
43
+ * unchanged.
44
+ */
45
+ export function desktopAppReturnPath(returnPath: string): string {
46
+ if (!returnPath.startsWith("/") || returnPath.startsWith("//")) return returnPath;
47
+ const base = "https://console.invalid";
48
+ if (new URL(returnPath, base).pathname === DESKTOP_APP_RETURN_PATH) return returnPath;
49
+ return `${DESKTOP_APP_RETURN_PATH}?${new URLSearchParams({ url: returnPath }).toString()}`;
50
+ }
@@ -0,0 +1,112 @@
1
+ import * as primitives from "./primitives";
2
+ import { defineSchema } from "./define-schema";
3
+ import { z } from "zod";
4
+
5
+ export const DirectModelProvider = /* @__PURE__ */ defineSchema(() =>
6
+ z.enum(["openai", "azure_openai"]),
7
+ );
8
+ export type DirectModelProvider = z.infer<typeof DirectModelProvider>;
9
+
10
+ /** Pin customer credentials to official provider origins, never arbitrary URLs. */
11
+ export const AzureOpenAIEndpoint = /* @__PURE__ */ defineSchema(() =>
12
+ primitives.string
13
+ .trim()
14
+ .url()
15
+ .superRefine((value, ctx) => {
16
+ let url: URL;
17
+ try {
18
+ url = new URL(value);
19
+ } catch {
20
+ // The preceding URL validator supplies the normal validation issue.
21
+ return;
22
+ }
23
+ if (
24
+ url.protocol !== "https:" ||
25
+ url.username ||
26
+ url.password ||
27
+ url.port ||
28
+ !/^[a-z0-9-]+\.openai\.azure\.com$/i.test(url.hostname) ||
29
+ !["", "/", "/openai/v1", "/openai/v1/"].includes(url.pathname) ||
30
+ url.search ||
31
+ url.hash
32
+ ) {
33
+ ctx.addIssue({
34
+ code: "custom",
35
+ message: "Enter your Azure OpenAI HTTPS resource endpoint",
36
+ });
37
+ }
38
+ })
39
+ .transform((value) => new URL(value).origin + "/openai/v1"),
40
+ );
41
+
42
+ /** An exact OpenAI model or Azure OpenAI deployment name. */
43
+ export const DirectModelName = /* @__PURE__ */ defineSchema(() =>
44
+ primitives.string
45
+ .trim()
46
+ .min(1)
47
+ .max(128)
48
+ .regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/),
49
+ );
50
+
51
+ export const DirectModelProviderMetadata = /* @__PURE__ */ defineSchema(() =>
52
+ z
53
+ .object({
54
+ provider: DirectModelProvider,
55
+ model: DirectModelName,
56
+ endpoint: AzureOpenAIEndpoint.optional(),
57
+ })
58
+ .strict()
59
+ .superRefine((value, ctx) => {
60
+ if (value.provider === "azure_openai" && !value.endpoint) {
61
+ ctx.addIssue({
62
+ code: "custom",
63
+ path: ["endpoint"],
64
+ message: "Azure OpenAI needs an endpoint",
65
+ });
66
+ }
67
+ if (value.provider === "openai" && value.endpoint) {
68
+ ctx.addIssue({
69
+ code: "custom",
70
+ path: ["endpoint"],
71
+ message: "OpenAI uses its official API endpoint",
72
+ });
73
+ }
74
+ }),
75
+ );
76
+ export type DirectModelProviderMetadata = z.infer<typeof DirectModelProviderMetadata>;
77
+
78
+ export function directModelConnectionSpec(connection: {
79
+ id: string;
80
+ version: number;
81
+ subjectId: string | null;
82
+ kind: string;
83
+ status: string;
84
+ providerDomain: string;
85
+ metadata: Record<string, unknown>;
86
+ }) {
87
+ if (
88
+ connection.subjectId !== null ||
89
+ connection.kind !== "api_key" ||
90
+ connection.status !== "active"
91
+ )
92
+ return null;
93
+ const parsed = DirectModelProviderMetadata.safeParse(connection.metadata.directModelProvider);
94
+ if (!parsed.success || connection.metadata.credentialRole !== `direct_${parsed.data.provider}`)
95
+ return null;
96
+ const config = parsed.data;
97
+ const baseUrl = config.provider === "openai" ? "https://api.openai.com/v1" : config.endpoint!;
98
+ if (connection.providerDomain.toLowerCase() !== new URL(baseUrl).hostname) return null;
99
+ const providerId = `workspace-${config.provider === "openai" ? "openai" : "azure-openai"}-${connection.id}`;
100
+ return {
101
+ ...config,
102
+ baseUrl,
103
+ providerId,
104
+ modelId: `${providerId}/${connection.version}/${config.model}`,
105
+ connectionId: connection.id,
106
+ version: connection.version,
107
+ };
108
+ }
109
+
110
+ export function isDirectModelId(modelId: string): boolean {
111
+ return /^workspace-(?:openai|azure-openai)-[0-9a-f-]{36}\//.test(modelId);
112
+ }
@@ -1,7 +1,10 @@
1
1
  const TEXT_ENCODER = new TextEncoder();
2
2
  const TEXT_DECODER = new TextDecoder("utf-8", { fatal: true });
3
- const FNV_OFFSET = 0xcbf29ce484222325n;
4
- const FNV_PRIME = 0x100000001b3n;
3
+ const FNV_OFFSET_LOW = 0x8422_2325;
4
+ const FNV_OFFSET_HIGH = 0xcbf2_9ce4;
5
+ // The 64-bit FNV prime is 2^40 + 0x1b3: multiply the low limb by 0x1b3 and
6
+ // carry `low << 40` into the high limb as `low * 2^8`.
7
+ const FNV_PRIME_LOW = 0x01b3;
5
8
  const SAFE_INTEGER = BigInt(Number.MAX_SAFE_INTEGER);
6
9
  const STABLE_ID = /^[0-9a-f]{32}$/u;
7
10
 
@@ -76,13 +79,31 @@ export function canonicalNumber(value: number, label: string): number {
76
79
  return value;
77
80
  }
78
81
 
82
+ /**
83
+ * FNV-1a-64 over `bytes[0, end)` using 32-bit integer limbs, with the low
84
+ * limb's product split into 16-bit halves so every step stays in int32
85
+ * arithmetic. Bit-identical to the BigInt definition without allocating a
86
+ * BigInt per byte (which made checksumming stored history a dominant CPU cost).
87
+ */
88
+ export function fnv1a64Limbs(
89
+ bytes: Uint8Array,
90
+ end: number = bytes.byteLength,
91
+ ): readonly [low: number, high: number] {
92
+ let low = FNV_OFFSET_LOW | 0;
93
+ let high = FNV_OFFSET_HIGH | 0;
94
+ for (let index = 0; index < end; index += 1) {
95
+ low ^= bytes[index]!;
96
+ const lowHalf = (low & 0xffff) * FNV_PRIME_LOW;
97
+ const highHalf = (low >>> 16) * FNV_PRIME_LOW + (lowHalf >>> 16);
98
+ high = (Math.imul(high, FNV_PRIME_LOW) + (highHalf >>> 16) + (low << 8)) | 0;
99
+ low = (highHalf << 16) | (lowHalf & 0xffff);
100
+ }
101
+ return [low >>> 0, high >>> 0];
102
+ }
103
+
79
104
  export function fnv1a64(bytes: Uint8Array): bigint {
80
- let hash = FNV_OFFSET;
81
- for (const byte of bytes) {
82
- hash ^= BigInt(byte);
83
- hash = BigInt.asUintN(64, hash * FNV_PRIME);
84
- }
85
- return hash;
105
+ const [low, high] = fnv1a64Limbs(bytes);
106
+ return (BigInt(high) << 32n) | BigInt(low);
86
107
  }
87
108
 
88
109
  export function equalBytes(left: Uint8Array, right: Uint8Array): boolean {
@@ -8,6 +8,12 @@
8
8
  */
9
9
 
10
10
  import { COMMITTED_TRANSACTION_PROTOCOL_VERSION } from "./editable-artifact-versions";
11
+ import { fnv1a64Limbs } from "./editable-artifact-binary";
12
+ import {
13
+ SPREADSHEET_DEFAULT_ROW_HEIGHT,
14
+ SPREADSHEET_DEFAULT_COLUMN_WIDTH,
15
+ SPREADSHEET_MAX_DIMENSION_PIXELS,
16
+ } from "./spreadsheet-artifact-commands";
11
17
 
12
18
  export { COMMITTED_TRANSACTION_PROTOCOL_VERSION } from "./editable-artifact-versions";
13
19
  export const MAX_COMMITTED_TRANSACTION_BYTES = 8 * 1024 * 1024;
@@ -25,9 +31,6 @@ const MAX_SAFE_U64_HIGH = 0x1f_ffff;
25
31
  const U32_SIZE = 0x1_0000_0000;
26
32
  const U32_MAX = 0xffff_ffff;
27
33
  const MAX_DATE_MILLISECONDS = 8_640_000_000_000_000n;
28
- const FNV_OFFSET_LOW = 0x8422_2325;
29
- const FNV_OFFSET_HIGH = 0xcbf2_9ce4;
30
- const FNV_PRIME_LOW = 0x01b3;
31
34
 
32
35
  const HEX = Array.from({ length: 256 }, (_, value) => value.toString(16).padStart(2, "0"));
33
36
 
@@ -91,7 +94,7 @@ export function decodeCommittedTransactionSummary(bytes: Uint8Array): CommittedT
91
94
  );
92
95
  }
93
96
 
94
- const [checksumLow, checksumHigh] = fnv1a64(bytes, payloadEnd);
97
+ const [checksumLow, checksumHigh] = fnv1a64Limbs(bytes, payloadEnd);
95
98
  if (
96
99
  view.getUint32(payloadEnd, true) !== checksumLow ||
97
100
  view.getUint32(payloadEnd + 4, true) !== checksumHigh
@@ -281,6 +284,18 @@ class Reader {
281
284
  case 5:
282
285
  this.stableId("selective undo target");
283
286
  return totalCells;
287
+ case 6:
288
+ case 7: {
289
+ this.skipGeneration("dimension sheet generation");
290
+ this.u32("dimension index");
291
+ const pixels = this.u32("dimension pixels");
292
+ const defaultPixels =
293
+ tag === 6 ? SPREADSHEET_DEFAULT_ROW_HEIGHT : SPREADSHEET_DEFAULT_COLUMN_WIDTH;
294
+ if (pixels > SPREADSHEET_MAX_DIMENSION_PIXELS || pixels === defaultPixels) {
295
+ throw new TypeError("OGACO002 dimension pixels are noncanonical or outside bounds");
296
+ }
297
+ return totalCells;
298
+ }
284
299
  default:
285
300
  throw new TypeError(`invalid OGACO002 collaboration command tag: ${tag}`);
286
301
  }
@@ -475,17 +490,3 @@ function hexBytes(bytes: Uint8Array): string {
475
490
  for (const byte of bytes) result += HEX[byte];
476
491
  return result;
477
492
  }
478
-
479
- /** FNV-1a-64 using exact 32-bit limbs; avoids a BigInt allocation per byte. */
480
- function fnv1a64(bytes: Uint8Array, end: number): readonly [low: number, high: number] {
481
- let low = FNV_OFFSET_LOW;
482
- let high = FNV_OFFSET_HIGH;
483
- for (let index = 0; index < end; index += 1) {
484
- low = (low ^ bytes[index]!) >>> 0;
485
- const lowProduct = low * FNV_PRIME_LOW;
486
- const carry = Math.floor(lowProduct / U32_SIZE);
487
- high = (high * FNV_PRIME_LOW + carry + low * 0x100) >>> 0;
488
- low = lowProduct >>> 0;
489
- }
490
- return [low, high];
491
- }
@@ -94,7 +94,11 @@ export type EditableArtifactSerializedCommitSummary = Readonly<{
94
94
  export function encodeEditableArtifactSerializedCommit(
95
95
  input: EditableArtifactSerializedCommitInput,
96
96
  ): Uint8Array {
97
- const normalized = normalizeSerializedCommit(input);
97
+ return encodeNormalizedSerializedCommit(normalizeSerializedCommit(input));
98
+ }
99
+
100
+ /** Encodes a commit whose fields `normalizeSerializedCommit` already validated. */
101
+ function encodeNormalizedSerializedCommit(normalized: NormalizedSerializedCommit): Uint8Array {
98
102
  const payload = new ArtifactBinaryWriter(
99
103
  EDITABLE_ARTIFACT_SERIALIZED_COMMIT_MAX_BYTES -
100
104
  EDITABLE_ARTIFACT_BINARY_HEADER_BYTES -
@@ -206,7 +210,9 @@ export function decodeEditableArtifactSerializedCommit(
206
210
  intentBytes,
207
211
  nativeReceiptBytes,
208
212
  });
209
- const canonical = encodeEditableArtifactSerializedCommit(normalized);
213
+ // The fields were just normalized; re-encoding them proves canonical bytes
214
+ // without decoding and validating the nested intent and receipt twice.
215
+ const canonical = encodeNormalizedSerializedCommit(normalized);
210
216
  if (!equalBytes(bytes, canonical)) {
211
217
  throw new TypeError("serialized commit is not canonically encoded");
212
218
  }
@@ -1,4 +1,10 @@
1
- /** Modality-specific durable semantic/schema versions. */
1
+ /**
2
+ * Modality-specific durable semantic/schema versions.
3
+ * Spreadsheet dimensions are an additive current-schema extension: existing
4
+ * command/operation tags and dimension-free snapshot bytes stay unchanged.
5
+ * Direct snapshots and private projections advertise their explicit extension
6
+ * flags; old executables reject new tags/flags, never silently discard them.
7
+ */
2
8
  export const SPREADSHEET_ARTIFACT_MODEL_SCHEMA_VERSION = 2 as const;
3
9
  export const DOCUMENT_ARTIFACT_MODEL_SCHEMA_VERSION = 1 as const;
4
10
  export const PRESENTATION_ARTIFACT_MODEL_SCHEMA_VERSION = 1 as const;
@@ -15,6 +15,18 @@ import {
15
15
 
16
16
  export const SESSION_EVENT_PAYLOAD_MAX_BYTES = 64 * 1024;
17
17
 
18
+ /**
19
+ * Durable ceiling for one `agent.toolCall.output` event. The event is the
20
+ * human/audit record of a tool result; model history keeps its own truncated
21
+ * copy separately. A tool can return far more than anyone ever sees (a shell
22
+ * command printing a 45 MB line, for example), and storing that inline made
23
+ * every later history read load it whole. The budget comfortably exceeds the
24
+ * model-facing tool-output truncation, so the timeline never shows less than
25
+ * the model saw.
26
+ */
27
+ export const TOOL_CALL_OUTPUT_EVENT_MAX_BYTES = 256 * 1024;
28
+ const TOOL_CALL_OUTPUT_EVENT_STRING_BYTES = 64 * 1024;
29
+
18
30
  const TARGET_PAYLOAD_BYTES = 60 * 1024;
19
31
  const DEFAULT_STRING_BYTES = 8 * 1024;
20
32
  const RETRY_STRING_BYTES = 1024;
@@ -90,6 +102,11 @@ export type SessionEventPayloadTruncation = {
90
102
  export type BoundSessionEventPayloadOptions = {
91
103
  surface?: SessionEventBoundarySurface;
92
104
  maxBytes?: number;
105
+ /**
106
+ * Per-string head+tail budget once the payload must be bounded. Defaults to
107
+ * the compact preview budget; larger budgets keep the byte target at maxBytes.
108
+ */
109
+ stringBytes?: number;
93
110
  /**
94
111
  * Separately trusted durable receipt. Producer payload fields never populate
95
112
  * this slot; invalid values fail closed to not_retained.
@@ -195,12 +212,23 @@ export function boundSessionEventPayload<T>(
195
212
  ): T {
196
213
  const maxBytes = Math.max(1024, Math.floor(options.maxBytes ?? SESSION_EVENT_PAYLOAD_MAX_BYTES));
197
214
  const surface = options.surface ?? "durable_audit";
215
+ const customStringBytes =
216
+ options.stringBytes === undefined
217
+ ? null
218
+ : Math.max(RETRY_STRING_BYTES, Math.floor(options.stringBytes));
219
+ const stringBytes = customStringBytes ?? DEFAULT_STRING_BYTES;
220
+ const retryStringBytes =
221
+ customStringBytes === null
222
+ ? RETRY_STRING_BYTES
223
+ : Math.max(RETRY_STRING_BYTES, Math.floor(customStringBytes / 8));
224
+ const targetBytes =
225
+ customStringBytes === null ? Math.min(maxBytes, TARGET_PAYLOAD_BYTES) : maxBytes;
198
226
  const fullEvidence =
199
227
  validateRetainedOutputEvidence(options.fullEvidence) ?? retainedOutputUnavailable();
200
228
  const originalMeasurement = measureJsonBytes(payload);
201
229
  const originalBytes = originalMeasurement.bytes;
202
230
 
203
- let state = previewState(DEFAULT_STRING_BYTES, DEFAULT_ARRAY_ENTRIES, DEFAULT_OBJECT_FIELDS);
231
+ let state = previewState(stringBytes, DEFAULT_ARRAY_ENTRIES, DEFAULT_OBJECT_FIELDS);
204
232
  let preview = previewValue(payload, state, "$", 0);
205
233
  if (!state.changed && originalBytes !== null && originalBytes <= maxBytes) {
206
234
  return payload;
@@ -212,8 +240,8 @@ export function boundSessionEventPayload<T>(
212
240
  boundaryMetadata(surface, reason, originalBytes, state, fullEvidence),
213
241
  );
214
242
 
215
- if (sessionEventJsonBytes(bounded) > Math.min(maxBytes, TARGET_PAYLOAD_BYTES)) {
216
- state = previewState(RETRY_STRING_BYTES, RETRY_ARRAY_ENTRIES, RETRY_OBJECT_FIELDS);
243
+ if (sessionEventJsonBytes(bounded) > targetBytes) {
244
+ state = previewState(retryStringBytes, RETRY_ARRAY_ENTRIES, RETRY_OBJECT_FIELDS);
217
245
  preview = previewValue(payload, state, "$", 0);
218
246
  reason = payloadTruncationReason(originalMeasurement, state);
219
247
  bounded = attachTruncation(
@@ -243,6 +271,28 @@ export function boundSessionEventPayload<T>(
243
271
  return bounded as T;
244
272
  }
245
273
 
274
+ /**
275
+ * Write-time bound for durable session events. Only tool-call output has an
276
+ * unbounded producer; it is kept intact up to TOOL_CALL_OUTPUT_EVENT_MAX_BYTES
277
+ * and otherwise stored as an explicit head+tail preview whose `truncation`
278
+ * records the original size. Every other event type is returned unchanged.
279
+ */
280
+ export function boundSessionEventPayloadForWrite<T>(type: string, payload: T): T {
281
+ if (type !== "agent.toolCall.output") return payload;
282
+ let bytes: number | null;
283
+ try {
284
+ bytes = sessionEventJsonBytes(payload);
285
+ } catch {
286
+ bytes = null;
287
+ }
288
+ if (bytes !== null && bytes <= TOOL_CALL_OUTPUT_EVENT_MAX_BYTES) return payload;
289
+ return boundSessionEventPayload(payload, {
290
+ surface: "durable_audit",
291
+ maxBytes: TOOL_CALL_OUTPUT_EVENT_MAX_BYTES,
292
+ stringBytes: TOOL_CALL_OUTPUT_EVENT_STRING_BYTES,
293
+ });
294
+ }
295
+
246
296
  function previewState(
247
297
  stringBytes: number,
248
298
  arrayEntries: number,