@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,51 @@
1
+ import * as primitives from "./primitives";
2
+ import { z } from "zod";
3
+
4
+ /** Operator-managed catalog; monetary amounts are USD micro-units. */
5
+ export const SubscriptionPlan = z.strictObject({
6
+ key: primitives.string.regex(/^[a-z][a-z0-9_-]{0,39}$/),
7
+ label: primitives.string.trim().min(1).max(120),
8
+ stripePriceId: primitives.string.trim().min(1).max(200).nullable(),
9
+ /** Existing subscriptions only; checkout and plan changes use stripePriceId. */
10
+ legacyStripePriceIds: z.array(primitives.string.trim().min(1).max(200)).max(100).optional(),
11
+ monthlyPriceMicros: primitives.nonnegativeInteger.max(Number.MAX_SAFE_INTEGER).nullable(),
12
+ monthlyCreditMicros: primitives.nonnegativeInteger.max(Number.MAX_SAFE_INTEGER),
13
+ seatLimit: z.number().int().positive().max(1_000_000).nullable(),
14
+ freeCredit: primitives.boolean,
15
+ });
16
+ export type SubscriptionPlan = z.infer<typeof SubscriptionPlan>;
17
+
18
+ export const SubscriptionPlanCatalog = z
19
+ .array(SubscriptionPlan)
20
+ .min(1)
21
+ .max(100)
22
+ .superRefine((plans, context) => {
23
+ if (new Set(plans.map((plan) => plan.key)).size !== plans.length) {
24
+ context.addIssue({ code: "custom", message: "Plan keys must be unique" });
25
+ }
26
+ const prices = plans.flatMap((plan) => [
27
+ ...(plan.stripePriceId ? [plan.stripePriceId] : []),
28
+ ...(plan.legacyStripePriceIds ?? []),
29
+ ]);
30
+ if (new Set(prices).size !== prices.length) {
31
+ context.addIssue({ code: "custom", message: "Stripe price IDs must be unique" });
32
+ }
33
+ });
34
+ export type SubscriptionPlanCatalog = z.infer<typeof SubscriptionPlanCatalog>;
35
+
36
+ export const BillingPlanBalance = z.object({
37
+ key: primitives.string,
38
+ label: primitives.string,
39
+ status: primitives.string,
40
+ creditGrantedMicros: primitives.nonnegativeInteger,
41
+ creditRemainingMicros: primitives.nonnegativeInteger,
42
+ /** Already unavailable, but not yet removed from the physical ledger. */
43
+ creditPendingExpiryMicros: z.number().int().nonnegative().optional(),
44
+ /** The granted period is model-scoped, rather than part of general credit. */
45
+ creditScoped: primitives.optionalBoolean,
46
+ periodResetAt: primitives.nullableString,
47
+ seatLimit: z.number().int().positive().nullable(),
48
+ seatsUsed: primitives.nonnegativeInteger,
49
+ cancelAtPeriodEnd: primitives.boolean,
50
+ });
51
+ export type BillingPlanBalance = z.infer<typeof BillingPlanBalance>;
@@ -0,0 +1,44 @@
1
+ import * as primitives from "./primitives";
2
+ import { z } from "zod";
3
+ import { defineSchema } from "./define-schema";
4
+
5
+ /** Informational limits, never a routing/admission decision or a spending total. */
6
+ export const SubscriptionUsagePool = /* @__PURE__ */ defineSchema(() =>
7
+ z.object({
8
+ provider: z.enum(["codex", "claude", "xai"]),
9
+ observedAt: z.string().datetime().nullable(),
10
+ windows: z.array(
11
+ z.object({
12
+ id: z.enum(["five_hour", "weekly"]),
13
+ remainingPercent: z.number().min(0).max(100).nullable(),
14
+ accounts: z.array(
15
+ z.object({
16
+ id: primitives.uuid,
17
+ label: primitives.string,
18
+ remainingPercent: z.number().min(0).max(100).nullable(),
19
+ resetsAt: z.string().datetime().nullable(),
20
+ weight: z.number().positive(),
21
+ weightBasis: z.enum(["observed", "plan_estimate"]),
22
+ observedAt: z.string().datetime().nullable(),
23
+ }),
24
+ ),
25
+ forecast: z.object({
26
+ kind: z.enum(["runs_out", "unused", "insufficient_history"]),
27
+ basis: primitives.string,
28
+ runsOutAt: z.string().datetime().nullable(),
29
+ nextResetAt: z.string().datetime().nullable(),
30
+ unusedPercent: z.number().min(0).max(100).nullable(),
31
+ utilizationPercent: z.number().min(0).max(100).nullable().optional(),
32
+ lowestPercent: z.number().min(0).max(100).nullable(),
33
+ historyDays: z.number().nonnegative(),
34
+ }),
35
+ }),
36
+ ),
37
+ }),
38
+ );
39
+ export type SubscriptionUsagePool = z.infer<typeof SubscriptionUsagePool>;
40
+
41
+ export const SubscriptionUsagePoolsResponse = /* @__PURE__ */ defineSchema(() =>
42
+ z.object({ pools: z.array(SubscriptionUsagePool), checkedAt: primitives.dateTime }),
43
+ );
44
+ export type SubscriptionUsagePoolsResponse = z.infer<typeof SubscriptionUsagePoolsResponse>;
package/src/task-notes.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import * as primitives from "./primitives";
2
+ import { defineSchema } from "./define-schema";
1
3
  import { z } from "zod";
2
4
 
3
5
  export const TASK_NOTE_TEXT_MAX_BYTES = 4_096;
@@ -11,23 +13,20 @@ export const TASK_NOTE_LIST_RESPONSE_MAX_BYTES = 96 * 1_024;
11
13
  const utf8Bytes = (value: string): number => new TextEncoder().encode(value).byteLength;
12
14
 
13
15
  export function boundedTaskNoteText(maxBytes: number, label: string) {
14
- return z
15
- .string()
16
- .min(1)
17
- .superRefine((value, ctx) => {
18
- if (value !== value.trim()) {
19
- ctx.addIssue({
20
- code: z.ZodIssueCode.custom,
21
- message: `${label} must not have leading or trailing whitespace`,
22
- });
23
- }
24
- if (utf8Bytes(value) > maxBytes) {
25
- ctx.addIssue({
26
- code: z.ZodIssueCode.custom,
27
- message: `${label} must be at most ${maxBytes} UTF-8 bytes`,
28
- });
29
- }
30
- });
16
+ return primitives.nonEmptyString.superRefine((value, ctx) => {
17
+ if (value !== value.trim()) {
18
+ ctx.addIssue({
19
+ code: z.ZodIssueCode.custom,
20
+ message: `${label} must not have leading or trailing whitespace`,
21
+ });
22
+ }
23
+ if (utf8Bytes(value) > maxBytes) {
24
+ ctx.addIssue({
25
+ code: z.ZodIssueCode.custom,
26
+ message: `${label} must be at most ${maxBytes} UTF-8 bytes`,
27
+ });
28
+ }
29
+ });
31
30
  }
32
31
 
33
32
  export const TaskNoteText = boundedTaskNoteText(TASK_NOTE_TEXT_MAX_BYTES, "task note text");
@@ -36,70 +35,73 @@ export const TaskNoteReason = boundedTaskNoteText(
36
35
  "task note archive reason",
37
36
  );
38
37
 
39
- export const TaskNoteKind = z.enum([
40
- "finding",
41
- "decision",
42
- "blocker",
43
- "ownership",
44
- "artifact",
45
- "handoff",
46
- ]);
38
+ export const TaskNoteKind = /* @__PURE__ */ defineSchema(() =>
39
+ z.enum(["finding", "decision", "blocker", "ownership", "artifact", "handoff"]),
40
+ );
47
41
  export type TaskNoteKind = z.infer<typeof TaskNoteKind>;
48
42
 
49
- export const TaskNoteStatus = z.enum(["active", "archived"]);
43
+ export const TaskNoteStatus = /* @__PURE__ */ defineSchema(() => z.enum(["active", "archived"]));
50
44
  export type TaskNoteStatus = z.infer<typeof TaskNoteStatus>;
51
45
 
52
- export const TaskNoteActorKind = z.enum(["human", "service"]);
46
+ export const TaskNoteActorKind = /* @__PURE__ */ defineSchema(() => z.enum(["human", "service"]));
53
47
  export type TaskNoteActorKind = z.infer<typeof TaskNoteActorKind>;
54
48
 
55
- export const TaskNote = z.object({
56
- id: z.string().uuid(),
57
- rootSessionId: z.string().uuid(),
58
- kind: TaskNoteKind,
59
- text: TaskNoteText,
60
- status: TaskNoteStatus,
61
- version: z.number().int().positive(),
62
- expiresAt: z.string().datetime({ offset: true }),
63
- createdAt: z.string().datetime({ offset: true }),
64
- updatedAt: z.string().datetime({ offset: true }),
65
- archivedAt: z.string().datetime({ offset: true }).nullable(),
66
- provenance: z.object({
67
- actorKind: TaskNoteActorKind,
68
- sourceSessionId: z.string().uuid(),
69
- sourceTurnId: z.string().uuid(),
49
+ export const TaskNote = /* @__PURE__ */ defineSchema(() =>
50
+ z.object({
51
+ id: primitives.uuid,
52
+ rootSessionId: primitives.uuid,
53
+ kind: TaskNoteKind,
54
+ text: TaskNoteText,
55
+ status: TaskNoteStatus,
56
+ version: primitives.positiveInteger,
57
+ expiresAt: primitives.string.datetime({ offset: true }),
58
+ createdAt: primitives.string.datetime({ offset: true }),
59
+ updatedAt: primitives.string.datetime({ offset: true }),
60
+ archivedAt: primitives.string.datetime({ offset: true }).nullable(),
61
+ provenance: z.object({
62
+ actorKind: TaskNoteActorKind,
63
+ sourceSessionId: primitives.uuid,
64
+ sourceTurnId: primitives.uuid,
65
+ }),
70
66
  }),
71
- });
67
+ );
72
68
  export type TaskNote = z.infer<typeof TaskNote>;
73
69
 
74
- export const TaskNoteMutationResult = z.object({
75
- note: TaskNote,
76
- replayed: z.boolean(),
77
- });
70
+ export const TaskNoteMutationResult = /* @__PURE__ */ defineSchema(() =>
71
+ z.object({
72
+ note: TaskNote,
73
+ replayed: primitives.boolean,
74
+ }),
75
+ );
78
76
  export type TaskNoteMutationResult = z.infer<typeof TaskNoteMutationResult>;
79
77
 
80
78
  /** Atomic correction lineage: archive one exact v1 note and create one v1 replacement. */
81
- export const TaskNoteReplacementResult = z.object({
82
- operationId: z.string().uuid(),
83
- inputHash: z.string().regex(/^[0-9a-f]{64}$/),
84
- replaces: z.object({
85
- noteId: z.string().uuid(),
86
- archivedVersion: z.literal(2),
79
+ export const TaskNoteReplacementResult = /* @__PURE__ */ defineSchema(() =>
80
+ z.object({
81
+ operationId: primitives.uuid,
82
+ inputHash: primitives.string.regex(/^[0-9a-f]{64}$/),
83
+ replaces: z.object({
84
+ noteId: primitives.uuid,
85
+ archivedVersion: z.literal(2),
86
+ }),
87
+ replacement: TaskNote,
88
+ replayed: primitives.boolean,
87
89
  }),
88
- replacement: TaskNote,
89
- replayed: z.boolean(),
90
- });
90
+ );
91
91
  export type TaskNoteReplacementResult = z.infer<typeof TaskNoteReplacementResult>;
92
92
 
93
- export const TaskNoteListResponse = z
94
- .object({
95
- notes: z.array(TaskNote).max(TASK_NOTE_LIST_MAX_LIMIT),
96
- })
97
- .superRefine((value, ctx) => {
98
- if (utf8Bytes(JSON.stringify(value)) > TASK_NOTE_LIST_RESPONSE_MAX_BYTES) {
99
- ctx.addIssue({
100
- code: z.ZodIssueCode.custom,
101
- message: `task note list response must be at most ${TASK_NOTE_LIST_RESPONSE_MAX_BYTES} UTF-8 bytes`,
102
- });
103
- }
104
- });
93
+ export const TaskNoteListResponse = /* @__PURE__ */ defineSchema(() =>
94
+ z
95
+ .object({
96
+ notes: z.array(TaskNote).max(TASK_NOTE_LIST_MAX_LIMIT),
97
+ })
98
+ .superRefine((value, ctx) => {
99
+ if (utf8Bytes(JSON.stringify(value)) > TASK_NOTE_LIST_RESPONSE_MAX_BYTES) {
100
+ ctx.addIssue({
101
+ code: z.ZodIssueCode.custom,
102
+ message: `task note list response must be at most ${TASK_NOTE_LIST_RESPONSE_MAX_BYTES} UTF-8 bytes`,
103
+ });
104
+ }
105
+ }),
106
+ );
105
107
  export type TaskNoteListResponse = z.infer<typeof TaskNoteListResponse>;
@@ -0,0 +1,271 @@
1
+ import * as primitives from "./primitives";
2
+ import { defineSchema } from "./define-schema";
3
+ import { z } from "zod";
4
+
5
+ /** Gmail's batch modify limit: one review never selects more messages than this. */
6
+ export const TOOL_REVIEW_SELECTION_LABELS_MAX = 1000;
7
+ /** One selected item described by trusted provider metadata, never by agent arguments. */
8
+ const ToolReviewSelectionLabel = /* @__PURE__ */ defineSchema(() =>
9
+ z
10
+ .object({
11
+ id: z.string().max(256),
12
+ title: z.string().max(256),
13
+ subtitle: z.string().max(256).optional(),
14
+ provenance: z.literal("provider_metadata"),
15
+ })
16
+ .strict(),
17
+ );
18
+
19
+ /** Trusted adapter hints, never read from agent arguments or tool output. */
20
+ export const ToolReviewContext = /* @__PURE__ */ defineSchema(() =>
21
+ z
22
+ .object({
23
+ kind: z.enum(["generic", "gmail"]).default("generic"),
24
+ title: z.string().max(256).optional(),
25
+ accountLabel: z.string().max(256).optional(),
26
+ fieldLabels: z.record(primitives.string, z.string().max(256)).optional(),
27
+ protectedFields: z.array(primitives.string).optional(),
28
+ email: z
29
+ .object({
30
+ from: z.string().max(4096),
31
+ to: z.string().max(32768),
32
+ cc: z.string().max(32768),
33
+ bcc: z.string().max(32768),
34
+ subject: z.string().max(32768),
35
+ textBody: z.string().max(262144),
36
+ htmlBody: z.string().max(262144),
37
+ contentSha256: primitives.string.regex(/^[0-9a-f]{64}$/),
38
+ attachments: z
39
+ .array(
40
+ z
41
+ .object({
42
+ name: z.string().max(1024),
43
+ mediaType: z.string().max(256),
44
+ bytes: primitives.nonnegativeInteger,
45
+ })
46
+ .strict(),
47
+ )
48
+ .max(100),
49
+ })
50
+ .strict()
51
+ .optional(),
52
+ samples: z.array(ToolReviewSelectionLabel).max(3).optional(),
53
+ /**
54
+ * Provider metadata for the whole selection, read when the review was
55
+ * prepared. Only the details page reads it; entries may be missing.
56
+ */
57
+ selectionLabels: z
58
+ .array(ToolReviewSelectionLabel)
59
+ .max(TOOL_REVIEW_SELECTION_LABELS_MAX)
60
+ .optional(),
61
+ })
62
+ .strict(),
63
+ );
64
+ export type ToolReviewContext = z.infer<typeof ToolReviewContext>;
65
+
66
+ // Names are exact saved identities, never display labels. A name protected by
67
+ // any reachable schema stays protected at every depth (conservative for sibling
68
+ // properties with the same name). Never truncate this set and expose its tail.
69
+ function schemaProtectedFields(root: Record<string, unknown>): string[] {
70
+ const protectedFields = new Set<string>();
71
+ const seen = new WeakMap<object, Set<string | undefined>>();
72
+ let visited = 0;
73
+ const object = (value: unknown): value is Record<string, unknown> =>
74
+ value !== null && typeof value === "object" && !Array.isArray(value);
75
+ const refuse = () => {
76
+ throw new Error("Tool review schema cannot be safely displayed");
77
+ };
78
+ const visit = (node: unknown, owner?: string, depth = 0): void => {
79
+ if (!object(node)) return;
80
+ const owners = seen.get(node) ?? new Set<string | undefined>();
81
+ if (owners.has(owner)) return;
82
+ owners.add(owner);
83
+ seen.set(node, owners);
84
+ if (++visited > 20000 || depth > 100) refuse();
85
+ if (node.$dynamicRef !== undefined || node.$recursiveRef !== undefined) refuse();
86
+ // A nested resource identifier changes the resolution base of local refs.
87
+ if (node !== root && node.$id !== undefined) refuse();
88
+ if (node.writeOnly === true) {
89
+ if (owner === undefined) refuse();
90
+ protectedFields.add(owner!);
91
+ }
92
+ if (node.contentSchema !== undefined) {
93
+ // Encoded content is one opaque argument value. Nested privacy annotations
94
+ // cannot be applied to its string without decoding and changing the bytes.
95
+ if (owner === undefined) refuse();
96
+ protectedFields.add(owner!);
97
+ }
98
+ if (typeof node.$ref === "string") {
99
+ if (node.$ref !== "#" && !node.$ref.startsWith("#/")) refuse();
100
+ let target: unknown = root;
101
+ if (node.$ref !== "#")
102
+ for (const part of node.$ref.slice(2).split("/")) {
103
+ const key = part.replaceAll("~1", "/").replaceAll("~0", "~");
104
+ if (!object(target) || !Object.hasOwn(target, key)) refuse();
105
+ target = (target as Record<string, unknown>)[key];
106
+ }
107
+ if (!object(target) && typeof target !== "boolean") refuse();
108
+ visit(target, owner, depth + 1);
109
+ }
110
+ if (object(node.properties))
111
+ for (const [key, schema] of Object.entries(node.properties)) visit(schema, key, depth + 1);
112
+ for (const key of [
113
+ "items",
114
+ "additionalItems",
115
+ "additionalProperties",
116
+ "unevaluatedItems",
117
+ "unevaluatedProperties",
118
+ "contains",
119
+ "if",
120
+ "then",
121
+ "else",
122
+ "not",
123
+ ]) {
124
+ const value = node[key];
125
+ if (Array.isArray(value)) for (const child of value) visit(child, owner, depth + 1);
126
+ else visit(value, owner, depth + 1);
127
+ }
128
+ for (const key of ["allOf", "anyOf", "oneOf", "prefixItems"]) {
129
+ if (Array.isArray(node[key])) for (const child of node[key]) visit(child, owner, depth + 1);
130
+ }
131
+ // A pattern cannot be represented by this exact-name privacy contract.
132
+ // Protect its containing object if any branch declares a private value.
133
+ for (const key of ["patternProperties", "dependentSchemas", "dependencies"]) {
134
+ if (object(node[key]))
135
+ for (const child of Object.values(node[key])) visit(child, owner, depth + 1);
136
+ }
137
+ };
138
+ try {
139
+ visit(root);
140
+ return [...protectedFields];
141
+ } catch {
142
+ // Review formatting must not change Allow/Block execution. Unsupported
143
+ // schema privacy is conservative: display no values, never guess a key.
144
+ return ["*"];
145
+ }
146
+ }
147
+
148
+ export function toolReviewContextFromSchema(
149
+ inputSchema: unknown,
150
+ hints: Omit<ToolReviewContext, "fieldLabels" | "protectedFields">,
151
+ ): ToolReviewContext {
152
+ const schema =
153
+ inputSchema && typeof inputSchema === "object" ? (inputSchema as Record<string, unknown>) : {};
154
+ const properties =
155
+ schema.properties && typeof schema.properties === "object"
156
+ ? Object.entries(schema.properties)
157
+ : [];
158
+ const clean = (text: string) =>
159
+ text
160
+ .replaceAll("\u0000", "")
161
+ .replace(/\p{Surrogate}/gu, "�")
162
+ .slice(0, 256);
163
+ return {
164
+ kind: hints.kind,
165
+ ...(hints.title ? { title: clean(hints.title) } : {}),
166
+ ...(hints.accountLabel ? { accountLabel: clean(hints.accountLabel) } : {}),
167
+ fieldLabels: Object.fromEntries(
168
+ properties
169
+ .slice(0, 128)
170
+ .flatMap(([key, value]) =>
171
+ value && typeof value === "object" && typeof value.title === "string"
172
+ ? [[key, clean(value.title)]]
173
+ : [],
174
+ ),
175
+ ),
176
+ protectedFields: schemaProtectedFields(schema),
177
+ };
178
+ }
179
+
180
+ export const ToolReviewStatus = /* @__PURE__ */ defineSchema(() =>
181
+ z.enum([
182
+ "pending",
183
+ "approved",
184
+ "executing",
185
+ "completed",
186
+ "partial",
187
+ "unknown",
188
+ "rejected",
189
+ "cancelled",
190
+ "expired",
191
+ "revoked",
192
+ "blocked",
193
+ "stale",
194
+ "failed",
195
+ "unavailable",
196
+ ]),
197
+ );
198
+ export type ToolReviewStatus = z.infer<typeof ToolReviewStatus>;
199
+ export const ToolReviewField = /* @__PURE__ */ defineSchema(() =>
200
+ z
201
+ .object({
202
+ path: primitives.string,
203
+ label: primitives.string,
204
+ preview: primitives.string,
205
+ count: z.number().int().nonnegative().optional(),
206
+ truncated: primitives.boolean,
207
+ protected: primitives.optionalBoolean,
208
+ })
209
+ .strict(),
210
+ );
211
+ export const ToolActionReview = /* @__PURE__ */ defineSchema(() =>
212
+ z
213
+ .object({
214
+ version: z.literal(1),
215
+ id: primitives.string,
216
+ actionDigest: primitives.string,
217
+ revision: primitives.string,
218
+ status: ToolReviewStatus,
219
+ title: primitives.string,
220
+ accountLabel: z.string().optional(),
221
+ consequence: z.string().optional(),
222
+ effects: z.array(primitives.string),
223
+ selectionCount: z.number().int().nonnegative().optional(),
224
+ selectionKind: z.enum(["messages", "threads"]).optional(),
225
+ samples: ToolReviewContext.shape.samples,
226
+ fields: z.array(ToolReviewField),
227
+ moreFields: primitives.nonnegativeInteger,
228
+ reason: primitives.string,
229
+ createdAt: primitives.string,
230
+ updatedAt: primitives.string,
231
+ approveLabel: primitives.string,
232
+ availableActions: z.array(z.enum(["approve", "reject"])),
233
+ detailsAvailable: primitives.boolean,
234
+ })
235
+ .strict(),
236
+ );
237
+ export type ToolActionReview = z.infer<typeof ToolActionReview>;
238
+ export const ToolReviewDetailsPage = /* @__PURE__ */ defineSchema(() =>
239
+ z
240
+ .object({
241
+ version: z.literal(1),
242
+ id: primitives.string,
243
+ actionDigest: primitives.string,
244
+ path: primitives.string,
245
+ items: z.array(
246
+ z
247
+ .object({
248
+ label: primitives.string,
249
+ value: primitives.string,
250
+ /** A secondary line, such as a selected message's sender and identifier. */
251
+ detail: z.string().optional(),
252
+ path: z.string().optional(),
253
+ truncated: primitives.optionalBoolean,
254
+ })
255
+ .strict(),
256
+ ),
257
+ total: primitives.nonnegativeInteger,
258
+ nextOffset: z.number().int().nonnegative().nullable(),
259
+ })
260
+ .strict(),
261
+ );
262
+ export type ToolReviewDetailsPage = z.infer<typeof ToolReviewDetailsPage>;
263
+
264
+ export {
265
+ decodeReviewArguments,
266
+ safeReviewValue,
267
+ toolReviewAction,
268
+ toolReviewDetails,
269
+ toolReviewFieldLabel,
270
+ toolReviewFields,
271
+ } from "./tool-review-presentation";