@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,22 @@
1
+ import { z } from "zod";
2
+
3
+ /**
4
+ * Schemas whose value is a secret: a password, key, token, or a bundle of
5
+ * credential headers or values. The action catalog generator reads this
6
+ * registry, so every action whose request or response carries such a field is
7
+ * marked as handling secrets wherever the schema is reused, whatever the
8
+ * field is called. Field names that already say "secret" ("apiKey",
9
+ * "clientSecret") are caught by name as well.
10
+ */
11
+ export const secretValues = z.registry<{ secret: true }, z.ZodType>();
12
+
13
+ /**
14
+ * Mark a schema as holding a secret value. Pass the schema built for this
15
+ * field ("z.record(...)"), never a shared one such as a primitive: the mark
16
+ * belongs to the schema instance, so marking a shared one would mark every
17
+ * field that uses it.
18
+ */
19
+ export function secretValue<Schema extends z.ZodType>(schema: Schema): Schema {
20
+ secretValues.add(schema as z.ZodType, { secret: true });
21
+ return schema;
22
+ }
@@ -1,55 +1,61 @@
1
+ import * as primitives from "./primitives";
2
+ import { defineSchema } from "./define-schema";
1
3
  import { z } from "zod";
2
4
 
3
- export const SessionGoalReportRequirement = z
4
- .object({
5
- id: z
6
- .string()
7
- .max(64)
8
- .describe(
9
- "Stable report requirement identifier, at most 64 ASCII characters; not a title or status.",
10
- )
11
- .regex(/^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/),
12
- title: z
13
- .string()
14
- .trim()
15
- .min(1)
16
- .max(512)
17
- .describe(
18
- "Short human-readable report title, at most 512 UTF-8 bytes. Keep normal spaces; do not put the report or a progress transcript here.",
19
- )
20
- .refine(
21
- (value) => new TextEncoder().encode(value).byteLength <= 512,
22
- "Report title exceeds 512 UTF-8 bytes",
23
- ),
24
- })
25
- .strict();
5
+ export const SessionGoalReportRequirement = /* @__PURE__ */ defineSchema(() =>
6
+ z
7
+ .object({
8
+ id: z
9
+ .string()
10
+ .max(64)
11
+ .describe(
12
+ "Stable report requirement identifier, at most 64 ASCII characters; not a title or status.",
13
+ )
14
+ .regex(/^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/),
15
+ title: primitives.string
16
+ .trim()
17
+ .min(1)
18
+ .max(512)
19
+ .describe(
20
+ "Short human-readable report title, at most 512 UTF-8 bytes. Keep normal spaces; do not put the report or a progress transcript here.",
21
+ )
22
+ .refine(
23
+ (value) => new TextEncoder().encode(value).byteLength <= 512,
24
+ "Report title exceeds 512 UTF-8 bytes",
25
+ ),
26
+ })
27
+ .strict(),
28
+ );
26
29
  export type SessionGoalReportRequirement = z.infer<typeof SessionGoalReportRequirement>;
27
30
 
28
- export const SessionGoalReportRequirements = z
29
- .array(SessionGoalReportRequirement)
30
- .max(16)
31
- .superRefine((requirements, context) => {
32
- if (new Set(requirements.map((item) => item.id)).size !== requirements.length) {
33
- context.addIssue({ code: "custom", message: "Duplicate report requirement IDs" });
34
- }
35
- });
31
+ export const SessionGoalReportRequirements = /* @__PURE__ */ defineSchema(() =>
32
+ z
33
+ .array(SessionGoalReportRequirement)
34
+ .max(16)
35
+ .superRefine((requirements, context) => {
36
+ if (new Set(requirements.map((item) => item.id)).size !== requirements.length) {
37
+ context.addIssue({ code: "custom", message: "Duplicate report requirement IDs" });
38
+ }
39
+ }),
40
+ );
36
41
 
37
- export const SessionGoalReportDelivery = z
38
- .object({
39
- requirementId: SessionGoalReportRequirement.shape.id,
40
- artifactId: z
41
- .string()
42
- .regex(/^[0-9a-f]{32}$/)
43
- .refine((value) => !/^0+$/.test(value)),
44
- inspectionReceiptId: z.string().uuid(),
45
- })
46
- .strict();
42
+ export const SessionGoalReportDelivery = /* @__PURE__ */ defineSchema(() =>
43
+ z
44
+ .object({
45
+ requirementId: SessionGoalReportRequirement.shape.id,
46
+ artifactId: primitives.string.regex(/^[0-9a-f]{32}$/).refine((value) => !/^0+$/.test(value)),
47
+ inspectionReceiptId: primitives.uuid,
48
+ })
49
+ .strict(),
50
+ );
47
51
  export type SessionGoalReportDelivery = z.infer<typeof SessionGoalReportDelivery>;
48
- export const SessionGoalReportDeliveries = z
49
- .array(SessionGoalReportDelivery)
50
- .max(16)
51
- .superRefine((deliveries, context) => {
52
- if (new Set(deliveries.map((item) => item.requirementId)).size !== deliveries.length) {
53
- context.addIssue({ code: "custom", message: "Duplicate report delivery requirement IDs" });
54
- }
55
- });
52
+ export const SessionGoalReportDeliveries = /* @__PURE__ */ defineSchema(() =>
53
+ z
54
+ .array(SessionGoalReportDelivery)
55
+ .max(16)
56
+ .superRefine((deliveries, context) => {
57
+ if (new Set(deliveries.map((item) => item.requirementId)).size !== deliveries.length) {
58
+ context.addIssue({ code: "custom", message: "Duplicate report delivery requirement IDs" });
59
+ }
60
+ }),
61
+ );
@@ -1,3 +1,5 @@
1
+ import * as primitives from "./primitives";
2
+ import { defineSchema } from "./define-schema";
1
3
  import { z } from "zod";
2
4
  import { Session } from "./index";
3
5
  import type { SessionEventType } from "./index";
@@ -30,19 +32,23 @@ export const ARCHIVED_SESSION_IMPORT_EVENT_TYPES = [
30
32
  "goal.cleared",
31
33
  ] as const satisfies readonly SessionEventType[];
32
34
 
33
- export const SessionImportedArchive = /* @__PURE__ */ z
34
- .object({
35
- importId: z.string().min(1).max(200),
36
- importedAt: z.iso.datetime({ offset: true }),
37
- readOnly: z.literal(true),
38
- })
39
- .strict();
35
+ export const SessionImportedArchive = /* @__PURE__ */ /* @__PURE__ */ defineSchema(() =>
36
+ z
37
+ .object({
38
+ importId: z.string().min(1).max(200),
39
+ importedAt: z.iso.datetime({ offset: true }),
40
+ readOnly: z.literal(true),
41
+ })
42
+ .strict(),
43
+ );
40
44
  export type SessionImportedArchive = z.infer<typeof SessionImportedArchive>;
41
45
 
42
46
  /** JS/SQL session seams preserve millisecond precision; never silently truncate. */
43
- const sourceTimestamp = /* @__PURE__ */ z.iso
44
- .datetime({ offset: true })
45
- .refine((value) => !/\.\d{4}/u.test(value), "Source timestamp supports at most milliseconds");
47
+ const sourceTimestamp = /* @__PURE__ */ /* @__PURE__ */ defineSchema(() =>
48
+ z.iso
49
+ .datetime({ offset: true })
50
+ .refine((value) => !/\.\d{4}/u.test(value), "Source timestamp supports at most milliseconds"),
51
+ );
46
52
 
47
53
  /** Validate JSON without coercing dates, dropping undefined, or rewriting text. */
48
54
  function isImportJson(value: unknown): boolean {
@@ -86,74 +92,84 @@ function jsonBytes(value: unknown): number {
86
92
  }
87
93
  }
88
94
 
89
- export const ArchivedSessionImportEvent = /* @__PURE__ */ z
90
- .object({
91
- type: z.enum(ARCHIVED_SESSION_IMPORT_EVENT_TYPES),
92
- createdAt: sourceTimestamp,
93
- /** Source turn identity is presentation correlation; no execution row is created. */
94
- turnId: z.string().uuid().nullable().optional(),
95
- payload: z.record(z.string(), z.unknown()).refine(isImportJson, "Payload must be bounded JSON"),
96
- })
97
- .strict()
98
- .refine(
99
- (event) => isImportJson(event) && jsonBytes(event) <= SESSION_HISTORY_IMPORT_MAX_EVENT_BYTES,
100
- "Imported event exceeds its JSON or byte limit",
101
- );
95
+ export const ArchivedSessionImportEvent = /* @__PURE__ */ /* @__PURE__ */ defineSchema(() =>
96
+ z
97
+ .object({
98
+ type: z.enum(ARCHIVED_SESSION_IMPORT_EVENT_TYPES),
99
+ createdAt: sourceTimestamp,
100
+ /** Source turn identity is presentation correlation; no execution row is created. */
101
+ turnId: z.string().uuid().nullable().optional(),
102
+ payload: z
103
+ .record(primitives.string, z.unknown())
104
+ .refine(isImportJson, "Payload must be bounded JSON"),
105
+ })
106
+ .strict()
107
+ .refine(
108
+ (event) => isImportJson(event) && jsonBytes(event) <= SESSION_HISTORY_IMPORT_MAX_EVENT_BYTES,
109
+ "Imported event exceeds its JSON or byte limit",
110
+ ),
111
+ );
102
112
  export type ArchivedSessionImportEvent = z.infer<typeof ArchivedSessionImportEvent>;
103
113
 
104
- const importEvents = /* @__PURE__ */ z
105
- .array(ArchivedSessionImportEvent)
106
- .max(SESSION_HISTORY_IMPORT_MAX_EVENTS);
114
+ const importEvents = /* @__PURE__ */ /* @__PURE__ */ defineSchema(() =>
115
+ z.array(ArchivedSessionImportEvent).max(SESSION_HISTORY_IMPORT_MAX_EVENTS),
116
+ );
107
117
 
108
- export const ImportArchivedSessionRequest = /* @__PURE__ */ z
109
- .object({
110
- importId: z.string().min(1).max(200),
111
- title: z.string().min(1).max(200),
112
- createdAt: sourceTimestamp,
113
- /** The authenticated asUser actor supplies creator/owner, never a display label. */
114
- visibility: z.enum(["workspace_shared", "user_private"]).optional(),
115
- events: importEvents.default([]),
116
- })
117
- .strict()
118
- .refine(
119
- (request) => jsonBytes(request) <= SESSION_HISTORY_IMPORT_MAX_BODY_BYTES,
120
- "Import request exceeds its byte limit",
121
- );
118
+ export const ImportArchivedSessionRequest = /* @__PURE__ */ /* @__PURE__ */ defineSchema(() =>
119
+ z
120
+ .object({
121
+ importId: z.string().min(1).max(200),
122
+ title: z.string().min(1).max(200),
123
+ createdAt: sourceTimestamp,
124
+ /** The authenticated asUser actor supplies creator/owner, never a display label. */
125
+ visibility: z.enum(["workspace_shared", "user_private"]).optional(),
126
+ events: importEvents.default([]),
127
+ })
128
+ .strict()
129
+ .refine(
130
+ (request) => jsonBytes(request) <= SESSION_HISTORY_IMPORT_MAX_BODY_BYTES,
131
+ "Import request exceeds its byte limit",
132
+ ),
133
+ );
122
134
  export type ImportArchivedSessionRequest = z.input<typeof ImportArchivedSessionRequest>;
123
135
 
124
- export const AppendArchivedSessionEventsRequest = /* @__PURE__ */ z
125
- .object({
126
- batchId: z.string().min(1).max(200),
127
- offset: z
128
- .number()
129
- .int()
130
- .nonnegative()
131
- .max(Number.MAX_SAFE_INTEGER)
132
- .refine((value) => !Object.is(value, -0)),
133
- events: importEvents.min(1),
134
- })
135
- .strict()
136
- .refine(
137
- (request) => jsonBytes(request) <= SESSION_HISTORY_IMPORT_MAX_BODY_BYTES,
138
- "Import batch exceeds its byte limit",
139
- );
136
+ export const AppendArchivedSessionEventsRequest = /* @__PURE__ */ /* @__PURE__ */ defineSchema(() =>
137
+ z
138
+ .object({
139
+ batchId: z.string().min(1).max(200),
140
+ offset: primitives.nonnegativeInteger
141
+ .max(Number.MAX_SAFE_INTEGER)
142
+ .refine((value) => !Object.is(value, -0)),
143
+ events: importEvents.min(1),
144
+ })
145
+ .strict()
146
+ .refine(
147
+ (request) => jsonBytes(request) <= SESSION_HISTORY_IMPORT_MAX_BODY_BYTES,
148
+ "Import batch exceeds its byte limit",
149
+ ),
150
+ );
140
151
  export type AppendArchivedSessionEventsRequest = z.infer<typeof AppendArchivedSessionEventsRequest>;
141
152
 
142
153
  // Lazy to preserve the root contracts initialization order; SDK uses types only.
143
- export const ImportArchivedSessionResponse = /* @__PURE__ */ z.object({
144
- session: /* @__PURE__ */ z.lazy(() => Session),
145
- importId: z.string(),
146
- created: z.boolean(),
147
- nextOffset: z.number().int().nonnegative(),
148
- });
154
+ export const ImportArchivedSessionResponse = /* @__PURE__ */ /* @__PURE__ */ defineSchema(() =>
155
+ z.object({
156
+ session: /* @__PURE__ */ z.lazy(() => Session),
157
+ importId: primitives.string,
158
+ created: primitives.boolean,
159
+ nextOffset: primitives.nonnegativeInteger,
160
+ }),
161
+ );
149
162
  export type ImportArchivedSessionResponse = z.infer<typeof ImportArchivedSessionResponse>;
150
163
 
151
- export const AppendArchivedSessionEventsResponse = /* @__PURE__ */ z.object({
152
- sessionId: z.string().uuid(),
153
- importId: z.string(),
154
- nextOffset: z.number().int().nonnegative(),
155
- replayed: z.boolean(),
156
- });
164
+ export const AppendArchivedSessionEventsResponse = /* @__PURE__ */ /* @__PURE__ */ defineSchema(
165
+ () =>
166
+ z.object({
167
+ sessionId: primitives.uuid,
168
+ importId: primitives.string,
169
+ nextOffset: primitives.nonnegativeInteger,
170
+ replayed: primitives.boolean,
171
+ }),
172
+ );
157
173
  export type AppendArchivedSessionEventsResponse = z.infer<
158
174
  typeof AppendArchivedSessionEventsResponse
159
175
  >;
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Conversation-first session history: which durable events are the steps of a
3
+ * turn, and which tool results stay visible without opening those steps.
4
+ * Dependency-free so browser packages can import it without the schema bundle.
5
+ */
6
+ /**
7
+ * The bulk of a long agent turn: tool calls, their outputs and streamed
8
+ * reasoning or command output. A turn whose window skips any of these has
9
+ * steps a reader can open.
10
+ */
11
+ export const SESSION_EVENT_CONTENT_STEP_TYPES = [
12
+ "agent.toolCall.created",
13
+ "agent.toolCall.output",
14
+ "agent.reasoning.delta",
15
+ "sandbox.command.output.delta",
16
+ "terminal.pty.output.delta",
17
+ ] as const;
18
+
19
+ /**
20
+ * Turn bookkeeping that renders nothing in the conversation: a turn writes a
21
+ * few `agent.model.request` rows and an `agent.model.usage` row per model
22
+ * call. Only a turn's request rows up to its first model response draw
23
+ * anything (the "first model response" startup phase); a conversation-filter
24
+ * server keeps those, and every bookkeeping row of a turn without other
25
+ * steps, so it never looks like it has steps to open.
26
+ */
27
+ export const SESSION_EVENT_BOOKKEEPING_STEP_TYPES = [
28
+ "agent.model.request",
29
+ "agent.model.usage",
30
+ ] as const;
31
+
32
+ /**
33
+ * Everything conversation-first history reads exclude and load per turn, only
34
+ * when a reader asks for that turn's steps.
35
+ */
36
+ export const SESSION_EVENT_STEP_TYPES = [
37
+ ...SESSION_EVENT_CONTENT_STEP_TYPES,
38
+ ...SESSION_EVENT_BOOKKEEPING_STEP_TYPES,
39
+ ] as const;
40
+
41
+ /**
42
+ * The conversation-filter behavior a server applies to a read that sends
43
+ * `presentedToolCalls=include`, announced in the `X-OpenGeni-Conversation-Filter`
44
+ * response header. Version 2 keeps presented tool calls and the bookkeeping
45
+ * rows described by {@link SESSION_EVENT_BOOKKEEPING_STEP_TYPES}; excluded
46
+ * turnless output (PTY and command output) stays out, for the sandbox dock to
47
+ * read itself. A server without the header may ignore `presentedToolCalls`
48
+ * entirely.
49
+ */
50
+ export const SESSION_EVENT_CONVERSATION_FILTER_VERSION = 2;
51
+ export const SESSION_EVENT_CONVERSATION_FILTER_HEADER = "X-OpenGeni-Conversation-Filter";
52
+
53
+ /**
54
+ * What a reader excludes from a conversation read when the server has not
55
+ * announced {@link SESSION_EVENT_CONVERSATION_FILTER_VERSION}: tool calls stay
56
+ * in (an older server would otherwise drop presented calls with them) and the
57
+ * reader drops the ones that are not presented.
58
+ */
59
+ export const SESSION_EVENT_COMPAT_EXCLUDED_STEP_TYPES = [
60
+ "agent.toolCall.output",
61
+ "agent.reasoning.delta",
62
+ "sandbox.command.output.delta",
63
+ "terminal.pty.output.delta",
64
+ ] as const;
65
+
66
+ /**
67
+ * Whether an `agent.model.request` phase is the model's first response. A
68
+ * turn's request rows after its first response no longer change what the
69
+ * conversation draws.
70
+ */
71
+ export function isSessionModelResponsePhase(phase: unknown): boolean {
72
+ return phase === "first_byte" || phase === "first_event";
73
+ }
74
+
75
+ /**
76
+ * Tools whose result is primary output a reader sees without opening the
77
+ * turn's steps: presented images and published files, Skill changes that may
78
+ * need review, learning writes whose refusal is told outside the folded work
79
+ * row, and worker spawns or messages that a turn's wait counts. Matched on the
80
+ * tool name's leaf (`x__leaf` or `leaf`).
81
+ */
82
+ export const SESSION_EVENT_PRESENTED_TOOL_LEAVES = [
83
+ "generate_image",
84
+ "image_generation_call",
85
+ "sandbox_file_publish",
86
+ "skill_save",
87
+ "skill_remove",
88
+ "skill_install",
89
+ "skill_publish",
90
+ "instruction_policy_save",
91
+ "knowledge_save",
92
+ "knowledge_retain_file",
93
+ "knowledge_retain_message",
94
+ "knowledge_archive",
95
+ "task_note_promote_knowledge",
96
+ "remember_confirm",
97
+ "session_create",
98
+ "session_send_message",
99
+ ] as const;
100
+
101
+ /** Whether a tool name is one of {@link SESSION_EVENT_PRESENTED_TOOL_LEAVES}. */
102
+ export function isPresentedSessionToolName(name: unknown): boolean {
103
+ if (typeof name !== "string" || name.length === 0) return false;
104
+ return SESSION_EVENT_PRESENTED_TOOL_LEAVES.some(
105
+ (leaf) => name === leaf || name.endsWith(`__${leaf}`),
106
+ );
107
+ }
108
+
109
+ /** The tool leaf a session runs the app's own actions through. */
110
+ export const SESSION_EVENT_APP_ACTION_CALL_LEAF = "admin_action_call";
111
+
112
+ /** The page an app action opens: buying credits, starting a subscription, or the billing portal. */
113
+ export type PresentedAppActionPage = "credits" | "subscription" | "portal";
114
+
115
+ /**
116
+ * App actions whose call is primary output too: each opens a payment page,
117
+ * and the chat shows it as a button that later confirms the payment, which a
118
+ * person returning to the chat (often in a reloaded tab) needs to see.
119
+ * Keyed by action id, with the "METHOD /path" a call may name it by instead
120
+ * (as `findAppAction` accepts) and the page it opens.
121
+ */
122
+ export const SESSION_EVENT_PRESENTED_APP_ACTIONS = {
123
+ createBillingCheckout: { route: "POST /v1/billing/checkout", page: "credits" },
124
+ createSubscriptionCheckout: {
125
+ route: "POST /v1/billing/subscription/checkout",
126
+ page: "subscription",
127
+ },
128
+ createBillingPortalSession: { route: "POST /v1/billing/portal", page: "portal" },
129
+ createSubscriptionPortalSession: {
130
+ route: "POST /v1/billing/subscription/portal",
131
+ page: "portal",
132
+ },
133
+ } as const satisfies Record<string, { route: string; page: PresentedAppActionPage }>;
134
+
135
+ export type PresentedAppActionId = keyof typeof SESSION_EVENT_PRESENTED_APP_ACTIONS;
136
+
137
+ /**
138
+ * The whitespace a call's action id is trimmed of before it's matched: exactly
139
+ * what `String.prototype.trim` removes, as the action runner trims the id
140
+ * (`findAppAction`), spelled out so the history query (Postgres `btrim`) and
141
+ * every client agree.
142
+ */
143
+ export const SESSION_EVENT_APP_ACTION_ID_SPACE =
144
+ " \t\n\v\f\r\u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff";
145
+
146
+ /** Every name that calls one of {@link SESSION_EVENT_PRESENTED_APP_ACTIONS}: each id and its "METHOD /path". */
147
+ export const SESSION_EVENT_PRESENTED_APP_ACTION_NAMES: readonly string[] = Object.entries(
148
+ SESSION_EVENT_PRESENTED_APP_ACTIONS,
149
+ ).flatMap(([id, { route }]) => [id, route]);
150
+
151
+ const PRESENTED_APP_ACTION_BY_NAME: ReadonlyMap<string, PresentedAppActionId> = new Map(
152
+ Object.entries(SESSION_EVENT_PRESENTED_APP_ACTIONS).flatMap(([id, { route }]) => [
153
+ [id, id as PresentedAppActionId],
154
+ [route, id as PresentedAppActionId],
155
+ ]),
156
+ );
157
+
158
+ function trimActionId(value: string): string {
159
+ let start = 0;
160
+ let end = value.length;
161
+ while (start < end && SESSION_EVENT_APP_ACTION_ID_SPACE.includes(value[start]!)) start += 1;
162
+ while (end > start && SESSION_EVENT_APP_ACTION_ID_SPACE.includes(value[end - 1]!)) end -= 1;
163
+ return value.slice(start, end);
164
+ }
165
+
166
+ /**
167
+ * Which of {@link SESSION_EVENT_PRESENTED_APP_ACTIONS} an app action call's
168
+ * `id` names, by its id or its "METHOD /path"; undefined for anything else.
169
+ */
170
+ export function presentedAppActionId(id: unknown): PresentedAppActionId | undefined {
171
+ return typeof id === "string" ? PRESENTED_APP_ACTION_BY_NAME.get(trimActionId(id)) : undefined;
172
+ }
173
+
174
+ /**
175
+ * Whether a tool call's result is primary output: a presented tool
176
+ * ({@link isPresentedSessionToolName}), or an app action call that runs one of
177
+ * {@link SESSION_EVENT_PRESENTED_APP_ACTIONS} (its arguments' top-level `id`,
178
+ * see {@link presentedAppActionId}). Takes the `agent.toolCall.created`
179
+ * payload (its `name` and `arguments`, an object or JSON text).
180
+ */
181
+ export function isPresentedSessionToolCall(call: unknown): boolean {
182
+ if (!call || typeof call !== "object") return false;
183
+ const { name, arguments: args } = call as { name?: unknown; arguments?: unknown };
184
+ if (isPresentedSessionToolName(name)) return true;
185
+ const leaf = SESSION_EVENT_APP_ACTION_CALL_LEAF;
186
+ if (typeof name !== "string" || (name !== leaf && !name.endsWith(`__${leaf}`))) return false;
187
+ let parsed: unknown = args;
188
+ if (typeof args === "string") {
189
+ try {
190
+ parsed = JSON.parse(args);
191
+ } catch {
192
+ return false;
193
+ }
194
+ }
195
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return false;
196
+ return presentedAppActionId((parsed as { id?: unknown }).id) !== undefined;
197
+ }
@@ -0,0 +1,106 @@
1
+ import type { Session, SessionListEntry } from "./index";
2
+ import {
3
+ deriveAutomaticSessionTitlePreview,
4
+ deriveSessionDisplayTitle,
5
+ sessionTitleIsPending,
6
+ } from "./session-titles";
7
+
8
+ /** Explicit list projection. Detail/configuration remains available from getSession. */
9
+ export type SessionListEntryInput = Omit<
10
+ SessionListEntry,
11
+ | "displayTitle"
12
+ | "renameSeed"
13
+ | "scheduledTaskId"
14
+ | "siteOrigin"
15
+ | "pinned"
16
+ | "pinnedAt"
17
+ | "pinVersion"
18
+ | "unread"
19
+ | "activelyWorking"
20
+ | "attentionVersion"
21
+ | "archived"
22
+ | "archivedAt"
23
+ | "archiveVersion"
24
+ | "description"
25
+ | "avatar"
26
+ > & {
27
+ /** Absent from older servers' rows and SDK-projected sessions. */
28
+ description?: string | null | undefined;
29
+ avatar?: Session["avatar"] | undefined;
30
+ } & Partial<
31
+ Pick<
32
+ Session,
33
+ | "pinned"
34
+ | "pinnedAt"
35
+ | "pinVersion"
36
+ | "unread"
37
+ | "activelyWorking"
38
+ | "attentionVersion"
39
+ | "archived"
40
+ | "archivedAt"
41
+ | "archiveVersion"
42
+ >
43
+ > &
44
+ Pick<Session, "metadata" | "initialMessage">;
45
+
46
+ export function sessionListEntry(session: SessionListEntryInput): SessionListEntry {
47
+ const origin = session.metadata._opengeniSiteOrigin as
48
+ | { siteId?: unknown; title?: unknown }
49
+ | undefined;
50
+ const siteOrigin =
51
+ origin &&
52
+ typeof origin.siteId === "string" &&
53
+ /^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/i.test(origin.siteId) &&
54
+ typeof origin.title === "string"
55
+ ? { siteId: origin.siteId, title: origin.title }
56
+ : null;
57
+ const scheduledTaskId = session.metadata.scheduledTaskId;
58
+ return {
59
+ id: session.id,
60
+ workspaceId: session.workspaceId,
61
+ accountId: session.accountId,
62
+ status: session.status,
63
+ backgroundCommandActivity: session.backgroundCommandActivity,
64
+ hasSchedules: session.hasSchedules,
65
+ hasUpcomingSchedules: session.hasUpcomingSchedules,
66
+ waitingForEvents: session.waitingForEvents,
67
+ automationWait: session.automationWait,
68
+ title: session.title,
69
+ titleSource: session.titleSource,
70
+ description: session.description ?? null,
71
+ avatar: session.avatar ?? null,
72
+ displayTitle: deriveSessionDisplayTitle(session),
73
+ renameSeed: sessionTitleIsPending(session)
74
+ ? (deriveAutomaticSessionTitlePreview(session.initialMessage) ?? "")
75
+ : (session.title?.trim() ?? ""),
76
+ scheduledTaskId:
77
+ typeof scheduledTaskId === "string" && scheduledTaskId.length > 0 ? scheduledTaskId : null,
78
+ siteOrigin,
79
+ ...(session.model ? { model: session.model } : {}),
80
+ ...(session.reasoningEffort ? { reasoningEffort: session.reasoningEffort } : {}),
81
+ createdBy: session.createdBy,
82
+ channelId: session.channelId,
83
+ parentSessionId: session.parentSessionId,
84
+ rootSessionId: session.rootSessionId,
85
+ effectiveControl: session.effectiveControl,
86
+ inputWait: session.inputWait,
87
+ lastSequence: session.lastSequence,
88
+ pinned: session.pinned ?? false,
89
+ pinnedAt: session.pinnedAt ?? null,
90
+ pinVersion: session.pinVersion ?? 0,
91
+ unread: session.unread ?? false,
92
+ activelyWorking: session.activelyWorking ?? false,
93
+ attentionVersion: session.attentionVersion ?? 0,
94
+ archived: session.archived ?? false,
95
+ archivedAt: session.archivedAt ?? null,
96
+ importedArchive: session.importedArchive,
97
+ ...(session.retention ? { retention: session.retention } : {}),
98
+ archiveVersion: session.archiveVersion ?? 0,
99
+ treeStats: session.treeStats,
100
+ requiresActionSince: session.requiresActionSince,
101
+ // Lets lists tell a runtime-held session apart from one waiting on a person.
102
+ ...(session.admissionBlock !== undefined ? { admissionBlock: session.admissionBlock } : {}),
103
+ createdAt: session.createdAt,
104
+ updatedAt: session.updatedAt,
105
+ };
106
+ }