@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
package/src/feedback.ts CHANGED
@@ -1,39 +1,134 @@
1
+ import * as primitives from "./primitives";
2
+ import { defineSchema } from "./define-schema";
1
3
  import { z } from "zod";
2
4
 
3
- export const FeedbackSentiment = z.enum(["positive", "negative"]);
5
+ export const FeedbackSentiment = /* @__PURE__ */ defineSchema(() =>
6
+ z.enum(["positive", "negative"]),
7
+ );
4
8
  export type FeedbackSentiment = z.infer<typeof FeedbackSentiment>;
5
9
 
10
+ /** Screenshots one report may carry, and the largest one accepted. */
11
+ export const FEEDBACK_SCREENSHOT_MAX_COUNT = 3;
12
+ export const FEEDBACK_SCREENSHOT_MAX_BYTES = 3 * 1024 * 1024;
13
+ export const FEEDBACK_RECENT_ERRORS_MAX = 10;
14
+
15
+ export const FeedbackScreenshotContentType = /* @__PURE__ */ defineSchema(() =>
16
+ z.enum(["image/jpeg", "image/png"]),
17
+ );
18
+ export type FeedbackScreenshotContentType = z.infer<typeof FeedbackScreenshotContentType>;
19
+
20
+ /** A screenshot sent with a report: the image bytes, base64-encoded. */
21
+ export const FeedbackScreenshotUpload = /* @__PURE__ */ defineSchema(() =>
22
+ z
23
+ .object({
24
+ contentType: FeedbackScreenshotContentType,
25
+ base64: z
26
+ .string()
27
+ .min(1)
28
+ .max(Math.ceil(FEEDBACK_SCREENSHOT_MAX_BYTES / 3) * 4)
29
+ .regex(/^[A-Za-z0-9+/]+={0,2}$/, "Screenshot must be base64"),
30
+ })
31
+ .strict(),
32
+ );
33
+ export type FeedbackScreenshotUpload = z.infer<typeof FeedbackScreenshotUpload>;
34
+
35
+ /** A stored screenshot. Its bytes are read separately by index. */
36
+ export const FeedbackScreenshot = /* @__PURE__ */ defineSchema(() =>
37
+ z.object({
38
+ index: z.number().int().nonnegative(),
39
+ contentType: FeedbackScreenshotContentType,
40
+ sizeBytes: z.number().int().positive(),
41
+ sha256: z.string().regex(/^[0-9a-f]{64}$/),
42
+ }),
43
+ );
44
+ export type FeedbackScreenshot = z.infer<typeof FeedbackScreenshot>;
45
+
46
+ /** An error the person saw shortly before reporting, as the app showed it. */
47
+ export const FeedbackRecentError = /* @__PURE__ */ defineSchema(() =>
48
+ z
49
+ .object({
50
+ at: z.string().datetime(),
51
+ title: z.string().max(200).optional(),
52
+ message: z.string().min(1).max(1000),
53
+ code: z.string().max(120).optional(),
54
+ status: z.number().int().min(0).max(999).optional(),
55
+ screen: z.string().max(500).optional(),
56
+ })
57
+ .strict(),
58
+ );
59
+ export type FeedbackRecentError = z.infer<typeof FeedbackRecentError>;
60
+
61
+ /**
62
+ * Facts about the app and device a report came from, so it can be reproduced
63
+ * without asking. Every field but source is optional; clients send what they know.
64
+ */
65
+ export const FeedbackContext = /* @__PURE__ */ defineSchema(() =>
66
+ z
67
+ .object({
68
+ source: z.enum(["web", "desktop", "mobile"]),
69
+ /** How the person opened the report: a menu item, or shaking the phone. */
70
+ trigger: z.enum(["menu", "shake"]).optional(),
71
+ platform: z.string().max(32).optional(),
72
+ appVersion: z.string().max(64).optional(),
73
+ buildNumber: z.string().max(64).optional(),
74
+ osVersion: z.string().max(64).optional(),
75
+ deviceModel: z.string().max(120).optional(),
76
+ /** The screen in view, as an app path such as /session/<id>. */
77
+ screen: z.string().max(500).optional(),
78
+ locale: z.string().max(35).optional(),
79
+ timeZone: z.string().max(64).optional(),
80
+ online: z.boolean().optional(),
81
+ recentErrors: z.array(FeedbackRecentError).max(FEEDBACK_RECENT_ERRORS_MAX).optional(),
82
+ })
83
+ .strict(),
84
+ );
85
+ export type FeedbackContext = z.infer<typeof FeedbackContext>;
86
+
6
87
  /** A new key means a new submission; retry the same payload with the same key. */
7
- export const CreateFeedbackRequest = z
8
- .object({
9
- idempotencyKey: z.string().uuid(),
10
- sessionId: z.string().uuid().optional(),
11
- turnId: z.string().uuid().optional(),
12
- sentiment: FeedbackSentiment.optional(),
13
- comment: z.string().max(4000).optional(),
14
- })
15
- .strict()
16
- .superRefine((value, ctx) => {
17
- if (value.turnId && !value.sessionId)
18
- ctx.addIssue({ code: "custom", path: ["turnId"], message: "turnId requires sessionId" });
19
- if (value.sentiment && !value.sessionId)
20
- ctx.addIssue({ code: "custom", path: ["sentiment"], message: "Ratings require a session" });
21
- if (!value.sentiment && !value.comment?.trim())
22
- ctx.addIssue({ code: "custom", path: ["comment"], message: "Provide a rating or a comment" });
23
- });
88
+ export const CreateFeedbackRequest = /* @__PURE__ */ defineSchema(() =>
89
+ z
90
+ .object({
91
+ idempotencyKey: primitives.uuid,
92
+ sessionId: primitives.optionalUuid,
93
+ turnId: primitives.optionalUuid,
94
+ sentiment: FeedbackSentiment.optional(),
95
+ comment: z.string().max(4000).optional(),
96
+ context: FeedbackContext.optional(),
97
+ screenshots: z.array(FeedbackScreenshotUpload).max(FEEDBACK_SCREENSHOT_MAX_COUNT).optional(),
98
+ })
99
+ .strict()
100
+ .superRefine((value, ctx) => {
101
+ if (value.turnId && !value.sessionId)
102
+ ctx.addIssue({ code: "custom", path: ["turnId"], message: "turnId requires sessionId" });
103
+ if (value.sentiment && !value.sessionId)
104
+ ctx.addIssue({ code: "custom", path: ["sentiment"], message: "Ratings require a session" });
105
+ if (!value.sentiment && !value.comment?.trim())
106
+ ctx.addIssue({
107
+ code: "custom",
108
+ path: ["comment"],
109
+ message: "Provide a rating or a comment",
110
+ });
111
+ }),
112
+ );
24
113
  export type CreateFeedbackRequest = z.infer<typeof CreateFeedbackRequest>;
25
114
 
26
- export const Feedback = z.object({
27
- id: z.string().uuid(),
28
- workspaceId: z.string().uuid(),
29
- subjectId: z.string(),
30
- principalKind: z.string().nullable(),
31
- sessionId: z.string().uuid().nullable(),
32
- turnId: z.string().uuid().nullable(),
33
- sentiment: FeedbackSentiment.nullable(),
34
- comment: z.string().nullable(),
35
- createdAt: z.string().datetime(),
36
- });
115
+ export const Feedback = /* @__PURE__ */ defineSchema(() =>
116
+ z.object({
117
+ id: primitives.uuid,
118
+ workspaceId: primitives.uuid,
119
+ subjectId: primitives.string,
120
+ principalKind: primitives.nullableString,
121
+ sessionId: primitives.nullableUuid,
122
+ turnId: primitives.nullableUuid,
123
+ sentiment: FeedbackSentiment.nullable(),
124
+ comment: primitives.nullableString,
125
+ context: FeedbackContext.nullable(),
126
+ screenshots: z.array(FeedbackScreenshot),
127
+ createdAt: primitives.dateTime,
128
+ }),
129
+ );
37
130
  export type Feedback = z.infer<typeof Feedback>;
38
- export const FeedbackSubmissionResponse = z.object({ feedback: Feedback, replayed: z.boolean() });
131
+ export const FeedbackSubmissionResponse = /* @__PURE__ */ defineSchema(() =>
132
+ z.object({ feedback: Feedback, replayed: primitives.boolean }),
133
+ );
39
134
  export type FeedbackSubmissionResponse = z.infer<typeof FeedbackSubmissionResponse>;
@@ -0,0 +1,26 @@
1
+ import { defineSchema } from "./define-schema";
2
+ import { z } from "zod";
3
+
4
+ import { WorkspaceArtifactVisibility } from "./artifacts";
5
+
6
+ /**
7
+ * Who can open a file, in the same two words as a Site or a chat: only its
8
+ * owner ("private", shown as Only me) or everyone in the workspace.
9
+ * `whoCanOpen` is one plain sentence for the agent that made or shared the
10
+ * file, so it never sends a private link to someone who cannot open it.
11
+ */
12
+ export const FileAccess = /* @__PURE__ */ defineSchema(() =>
13
+ z
14
+ .object({
15
+ visibility: WorkspaceArtifactVisibility,
16
+ whoCanOpen: z.string().min(1).max(512),
17
+ })
18
+ .strict(),
19
+ );
20
+ export type FileAccess = z.infer<typeof FileAccess>;
21
+
22
+ /** The owner's change of who can open one file. */
23
+ export const UpdateFileVisibilityRequest = /* @__PURE__ */ defineSchema(() =>
24
+ z.object({ visibility: WorkspaceArtifactVisibility }).strict(),
25
+ );
26
+ export type UpdateFileVisibilityRequest = z.infer<typeof UpdateFileVisibilityRequest>;
@@ -0,0 +1,383 @@
1
+ import type { FirstPartyMcpToolName } from "./index";
2
+ import type { Permission } from "./permissions";
3
+
4
+ export type FirstPartyToolAuthorization = {
5
+ sessionRequired?: true;
6
+ /**
7
+ * Acts as a person: registered only in a session a person started
8
+ * themselves (not a child or service session) when selected, or whenever
9
+ * the session has full access. Never carried into a child's selection.
10
+ */
11
+ personSessionRequired?: true;
12
+ allOf?: readonly Permission[];
13
+ anyOf?: readonly Permission[];
14
+ };
15
+
16
+ /**
17
+ * Authorization is deliberately complete and separate from visibility. The
18
+ * `satisfies Record` check makes every catalog addition choose an explicit
19
+ * registration predicate before it can compile.
20
+ *
21
+ * The API's first-party MCP server registers a tool only when this predicate
22
+ * passes for the attempt's grant. The worker reads the same table to know which
23
+ * selected tools a permission ceiling can never admit (prompt rendering only).
24
+ */
25
+ export const FIRST_PARTY_TOOL_AUTHORIZATION = {
26
+ set_session_title: { sessionRequired: true, allOf: ["sessions:control"] },
27
+ notify_user: { sessionRequired: true, allOf: ["sessions:control"] },
28
+ notification_withdraw: { sessionRequired: true, allOf: ["sessions:control"] },
29
+ inbox_tidy: { sessionRequired: true, allOf: ["sessions:control"] },
30
+ goal_set: { sessionRequired: true, allOf: ["goals:manage"] },
31
+ goal_update: { sessionRequired: true, allOf: ["goals:manage"] },
32
+ goal_progress: { sessionRequired: true, allOf: ["goals:manage"] },
33
+ wait_for_input: { sessionRequired: true, allOf: ["sessions:control"] },
34
+ goal_complete: { sessionRequired: true, allOf: ["goals:manage"] },
35
+ goal_pause: { sessionRequired: true, allOf: ["goals:manage"] },
36
+ goal_resume: { sessionRequired: true, allOf: ["goals:manage"] },
37
+ knowledge_search: { sessionRequired: true, allOf: ["documents:search"] },
38
+ knowledge_prepare_save: { sessionRequired: true, allOf: ["documents:search"] },
39
+ knowledge_get: { sessionRequired: true, allOf: ["documents:search"] },
40
+ knowledge_browse: { sessionRequired: true, allOf: ["documents:search"] },
41
+ knowledge_retain_file: { sessionRequired: true, allOf: ["documents:search", "files:read"] },
42
+ // Recorded meetings, read as the person the session works for. Saving notes
43
+ // follows the meeting: it succeeds only on a meeting that person can see,
44
+ // like knowledge writes, and never needs session orchestration rights.
45
+ meetings_search: { sessionRequired: true, allOf: ["sessions:read"] },
46
+ meeting_read: { sessionRequired: true, allOf: ["sessions:read"] },
47
+ meeting_notes_save: { sessionRequired: true, allOf: ["sessions:read"] },
48
+ knowledge_retain_message: { sessionRequired: true, allOf: ["documents:search", "sessions:read"] },
49
+ knowledge_save: { sessionRequired: true, allOf: ["documents:search"] },
50
+ knowledge_archive: { sessionRequired: true, allOf: ["documents:search"] },
51
+ instruction_policy_save: { sessionRequired: true, allOf: ["documents:search"] },
52
+ instruction_policy_get: { sessionRequired: true, allOf: ["documents:search"] },
53
+ memory_search: { sessionRequired: true, allOf: ["documents:search"] },
54
+ memory_save: { sessionRequired: true, allOf: ["documents:search"] },
55
+ memory_correct: { sessionRequired: true, allOf: ["documents:search"] },
56
+ preference_registry_summary: {
57
+ sessionRequired: true,
58
+ allOf: ["workspace:read"],
59
+ },
60
+ preference_registry_get: { sessionRequired: true, allOf: ["workspace:read"] },
61
+ task_notes_list: { sessionRequired: true, allOf: ["sessions:read"] },
62
+ task_note_save: { sessionRequired: true, allOf: ["sessions:control"] },
63
+ task_note_archive: { sessionRequired: true, allOf: ["sessions:control"] },
64
+ task_note_replace: { sessionRequired: true, allOf: ["sessions:control"] },
65
+ work_claim_upsert: { sessionRequired: true, allOf: ["sessions:control"] },
66
+ work_claim_release: { sessionRequired: true, allOf: ["sessions:control"] },
67
+ knowledge_propose: { sessionRequired: true, allOf: ["documents:search"] },
68
+ knowledge_correct: { sessionRequired: true, allOf: ["documents:search"] },
69
+ task_note_promote_knowledge: {
70
+ sessionRequired: true,
71
+ allOf: ["documents:search", "sessions:control"],
72
+ },
73
+ task_note_promote_instruction_policy: {
74
+ sessionRequired: true,
75
+ allOf: ["documents:search", "sessions:control", "workspace:read"],
76
+ },
77
+ task_note_promote_preference: {
78
+ sessionRequired: true,
79
+ allOf: ["documents:search", "sessions:control", "workspace:read"],
80
+ },
81
+ instruction_policy_propose: {
82
+ sessionRequired: true,
83
+ allOf: ["documents:search", "workspace:read"],
84
+ },
85
+ preference_propose: {
86
+ sessionRequired: true,
87
+ allOf: ["documents:search", "workspace:read"],
88
+ },
89
+ // Explicit user-directed remember composes task-note evidence with the
90
+ // governed promotion path, so it needs the union of both permission sets.
91
+ remember: {
92
+ sessionRequired: true,
93
+ allOf: ["documents:search", "sessions:control", "workspace:read"],
94
+ },
95
+ remember_confirm: {
96
+ sessionRequired: true,
97
+ allOf: ["documents:search", "sessions:control", "workspace:read"],
98
+ },
99
+ company_profile_propose: {
100
+ sessionRequired: true,
101
+ allOf: ["sessions:control", "workspace:read"],
102
+ },
103
+ company_profile_confirm: {
104
+ sessionRequired: true,
105
+ allOf: ["sessions:control", "workspace:read"],
106
+ },
107
+ sandboxes_list: { sessionRequired: true, allOf: ["sessions:read"] },
108
+ sandbox_attach: { sessionRequired: true, allOf: ["sessions:control"] },
109
+ sandbox_swap: { sessionRequired: true, allOf: ["sessions:control"] },
110
+ run_on: { sessionRequired: true, allOf: ["sessions:control"] },
111
+ sandbox_provision: { sessionRequired: true, allOf: ["sessions:control"] },
112
+ connected_machine_remove: { allOf: ["enrollments:manage"] },
113
+ connected_machine_enroll_token: { allOf: ["enrollments:manage"] },
114
+ connected_machine_enable_screen_control: { allOf: ["enrollments:manage"] },
115
+ rig_list: { allOf: ["rigs:use"] },
116
+ rig_get: { allOf: ["rigs:use"] },
117
+ rig_propose_change: { allOf: ["rigs:use"] },
118
+ rig_verify: { allOf: ["rigs:use"] },
119
+ rig_promote: { allOf: ["rigs:manage"] },
120
+ sessions_list: { allOf: ["sessions:read"] },
121
+ session_get: { allOf: ["sessions:read"] },
122
+ session_set_model: { allOf: ["sessions:control"] },
123
+ session_events: { allOf: ["sessions:read"] },
124
+ // A bounded wait on named sessions. A live attempt also wakes for its own
125
+ // pending input; a sessionless caller (an operator, or a person's surface
126
+ // reached for a chat in another workspace) waits on the targets only.
127
+ session_wait: { allOf: ["sessions:read"] },
128
+ command_wait: { sessionRequired: true, allOf: ["sessions:read"] },
129
+ command_read: { sessionRequired: true, allOf: ["sessions:read"] },
130
+ session_create: { allOf: ["sessions:create"] },
131
+ session_send_message: { allOf: ["sessions:control"] },
132
+ session_message_status: { sessionRequired: true, allOf: ["sessions:read"] },
133
+ session_target_get: { sessionRequired: true, allOf: ["sessions:read"] },
134
+ session_target_set: { sessionRequired: true, allOf: ["sessions:read", "sessions:control"] },
135
+ session_pause: { allOf: ["sessions:control"] },
136
+ session_resume: { allOf: ["sessions:control"] },
137
+ // A live attempt sends a typed Agent Steer; a sessionless caller appends a
138
+ // human/API steer, as the REST steer route does.
139
+ session_steer: { allOf: ["sessions:control"] },
140
+ // A live attempt may answer another session's structured human-input
141
+ // request (never a tool approval, which stays human-only).
142
+ session_human_input_respond: { sessionRequired: true, allOf: ["sessions:control"] },
143
+ set_other_session_title: { allOf: ["sessions:control"] },
144
+ bot_template_save: { sessionRequired: true, allOf: ["sessions:create"] },
145
+ interaction_discover: { sessionRequired: true, allOf: ["sessions:read"] },
146
+ browser_open: { sessionRequired: true, allOf: ["sessions:control"] },
147
+ browser_tabs: { sessionRequired: true, allOf: ["sessions:control"] },
148
+ browser_observe: { sessionRequired: true, allOf: ["sessions:read"] },
149
+ browser_read: { sessionRequired: true, allOf: ["sessions:read"] },
150
+ browser_screenshot: { sessionRequired: true, allOf: ["sessions:read"] },
151
+ browser_act: { sessionRequired: true, allOf: ["sessions:control"] },
152
+ browser_clipboard: { sessionRequired: true, allOf: ["sessions:read"] },
153
+ browser_debug: { sessionRequired: true, allOf: ["sessions:read"] },
154
+ browser_downloads: { sessionRequired: true, allOf: ["sessions:read"] },
155
+ browser_download_save: {
156
+ sessionRequired: true,
157
+ allOf: ["sessions:control", "files:upload"],
158
+ },
159
+ browser_record: {
160
+ sessionRequired: true,
161
+ allOf: ["sessions:control", "files:upload"],
162
+ },
163
+ browser_auth: { sessionRequired: true, allOf: ["sessions:control"] },
164
+ interaction_request_human: {
165
+ sessionRequired: true,
166
+ allOf: ["sessions:control"],
167
+ },
168
+ browser_identity: { sessionRequired: true, allOf: ["sessions:control"] },
169
+ browser_publish: { sessionRequired: true, allOf: ["sessions:control"] },
170
+ browser_lifecycle: { sessionRequired: true, allOf: ["sessions:control"] },
171
+ computer_open: { sessionRequired: true, allOf: ["sessions:control"] },
172
+ computer_targets: { sessionRequired: true, allOf: ["sessions:read"] },
173
+ computer_observe: { sessionRequired: true, allOf: ["sessions:read"] },
174
+ computer_clipboard: { sessionRequired: true, allOf: ["sessions:read"] },
175
+ computer_act: { sessionRequired: true, allOf: ["sessions:control"] },
176
+ excel_run: { sessionRequired: true, allOf: ["sessions:control"] },
177
+ computer_lifecycle: { sessionRequired: true, allOf: ["sessions:control"] },
178
+ secret_search: { sessionRequired: true, allOf: ["secrets:list"] },
179
+ secret_save: { sessionRequired: true, allOf: ["secrets:write"] },
180
+ // Plaintext read: registered only for a literal `secrets:read` grant.
181
+ secret_get: { sessionRequired: true, allOf: ["secrets:read"] },
182
+ secret_move: { sessionRequired: true, allOf: ["secrets:write"] },
183
+ secret_delete: { sessionRequired: true, allOf: ["secrets:write"] },
184
+ // Credential profiles: reading names item references (secret metadata);
185
+ // changing one also needs workspace:admin (workspace) or sessions:control
186
+ // (session), checked when the tool runs.
187
+ secret_profile_get: { sessionRequired: true, allOf: ["secrets:list"] },
188
+ secret_profile_set: { sessionRequired: true, allOf: ["secrets:write"] },
189
+ // Retired (RETIRED_SECRET_TOOL_NAMES): never registered; kept for stored selections.
190
+ variable_set_list: { allOf: ["variable-sets:list", "secrets:list"] },
191
+ environment_list: { allOf: ["variable-sets:list", "secrets:list"] },
192
+ variable_set_get_variable: {
193
+ sessionRequired: true,
194
+ allOf: ["variable-sets:read", "secrets:read"],
195
+ },
196
+ variable_set_set_variable: {
197
+ allOf: ["variable-sets:write", "secrets:write"],
198
+ },
199
+ environment_set_variable: { allOf: ["variable-sets:write", "secrets:write"] },
200
+ capability_catalog_search: {
201
+ sessionRequired: true,
202
+ allOf: ["workspace:read"],
203
+ },
204
+ capability_authorization_request: {
205
+ sessionRequired: true,
206
+ allOf: ["workspace:read"],
207
+ },
208
+ custom_mcp_setup_request: {
209
+ sessionRequired: true,
210
+ allOf: ["workspace:read"],
211
+ },
212
+ github_connect_link: { allOf: ["github:use"] },
213
+ github_repositories_list: { allOf: ["github:use"] },
214
+ social_connections_list: { allOf: ["connections:read"] },
215
+ social_posts_recent: { allOf: ["connections:read"] },
216
+ social_daily_analysis_context: { allOf: ["connections:read"] },
217
+ social_search_live: { allOf: ["connections:read"] },
218
+ social_mentions_live: { allOf: ["connections:read"] },
219
+ social_thread_fetch: { allOf: ["connections:read"] },
220
+ // Writes the social_posts store, so it takes the write scope like the REST
221
+ // equivalent (POST /social/posts is workspace:admin).
222
+ social_posts_sync: { allOf: ["connections:write"] },
223
+ // Publishes under the user's identity: connections:write keeps it out of the
224
+ // default agent permission set, unlike the read-only social tools above.
225
+ social_post_reply: { allOf: ["connections:write"] },
226
+ x_accounts_list: { allOf: ["connections:read"] },
227
+ x_search_live: { allOf: ["connections:read"] },
228
+ x_mentions_live: { allOf: ["connections:read"] },
229
+ x_thread_fetch: { allOf: ["connections:read"] },
230
+ x_posts_sync: { allOf: ["connections:write"] },
231
+ x_post_reply: { allOf: ["connections:write"] },
232
+ reddit_accounts_list: { allOf: ["connections:read"] },
233
+ reddit_search_live: { allOf: ["connections:read"] },
234
+ reddit_mentions_live: { allOf: ["connections:read"] },
235
+ reddit_thread_fetch: { allOf: ["connections:read"] },
236
+ reddit_posts_sync: { allOf: ["connections:write"] },
237
+ reddit_post_reply: { allOf: ["connections:write"] },
238
+ scheduled_tasks_list: {
239
+ anyOf: ["scheduled_tasks:manage", "scheduled_tasks:run"],
240
+ },
241
+ scheduled_tasks_get: {
242
+ anyOf: ["scheduled_tasks:manage", "scheduled_tasks:run"],
243
+ },
244
+ scheduled_tasks_create: { allOf: ["scheduled_tasks:manage"] },
245
+ scheduled_tasks_update: { allOf: ["scheduled_tasks:manage"] },
246
+ scheduled_tasks_pause: { allOf: ["scheduled_tasks:manage"] },
247
+ scheduled_tasks_resume: { allOf: ["scheduled_tasks:manage"] },
248
+ scheduled_tasks_trigger: { allOf: ["scheduled_tasks:run"] },
249
+ scheduled_tasks_delete: { allOf: ["scheduled_tasks:manage"] },
250
+ scheduled_task_runs_list: {
251
+ anyOf: ["scheduled_tasks:manage", "scheduled_tasks:run"],
252
+ },
253
+ event_sources_list: {
254
+ anyOf: ["scheduled_tasks:manage", "scheduled_tasks:run"],
255
+ },
256
+ events_get: {
257
+ anyOf: ["scheduled_tasks:manage", "scheduled_tasks:run"],
258
+ },
259
+ slack_bot_list_channels: { allOf: ["connections:read"] },
260
+ slack_bot_search: { allOf: ["connections:read"] },
261
+ slack_bot_channel_history: { allOf: ["connections:read"] },
262
+ slack_bot_thread_replies: { allOf: ["connections:read"] },
263
+ slack_bot_list_users: { allOf: ["connections:read"] },
264
+ slack_bot_list_files: { allOf: ["connections:read"] },
265
+ slack_bot_file_info: { allOf: ["connections:read"] },
266
+ slack_bot_file_content: { allOf: ["connections:read"] },
267
+ slack_bot_upload_file: { sessionRequired: true, allOf: ["connections:read", "files:read"] },
268
+ slack_bot_post_message: { allOf: ["connections:read"] },
269
+ // Scheduled runs only; the destination is the task's human-chosen channel.
270
+ slack_bot_prepare_message: { sessionRequired: true, allOf: ["connections:read"] },
271
+ slack_bot_send_prepared_message: { sessionRequired: true, allOf: ["connections:read"] },
272
+ slack_bot_delete_message: { allOf: ["connections:read"] },
273
+ fiken_companies_list: { allOf: ["connections:read"] },
274
+ fiken_contacts_list: { allOf: ["connections:read"] },
275
+ fiken_products_list: { allOf: ["connections:read"] },
276
+ fiken_invoices_list: { allOf: ["connections:read"] },
277
+ fiken_invoice_get: { allOf: ["connections:read"] },
278
+ fiken_bank_accounts_list: { allOf: ["connections:read"] },
279
+ fiken_purchases_list: { allOf: ["connections:read"] },
280
+ fiken_sales_list: { allOf: ["connections:read"] },
281
+ // Writes into the workspace's real accounting ledger surface take the write
282
+ // scope, keeping them out of the default agent permission set.
283
+ fiken_contact_create: { allOf: ["connections:write"] },
284
+ fiken_invoice_draft_create: { allOf: ["connections:write"] },
285
+ atlassian_sources_list: { allOf: ["connections:read"] },
286
+ atlassian_search: { allOf: ["connections:read"] },
287
+ atlassian_get: { allOf: ["connections:read"] },
288
+ artifacts_list: { allOf: ["artifacts:read"] },
289
+ artifacts_get_source: { sessionRequired: true, allOf: ["artifacts:read"] },
290
+ artifacts_prepare_upload: { sessionRequired: true, allOf: ["artifacts:publish"] },
291
+ artifacts_create: { sessionRequired: true, allOf: ["artifacts:publish"] },
292
+ artifacts_publish: { sessionRequired: true, allOf: ["artifacts:publish"] },
293
+ artifacts_rollback: { sessionRequired: true, allOf: ["artifacts:publish"] },
294
+ artifacts_archive: { sessionRequired: true, allOf: ["artifacts:publish"] },
295
+ artifacts_restore: { sessionRequired: true, allOf: ["artifacts:publish"] },
296
+ site_data_describe: { sessionRequired: true, allOf: ["artifacts:read"] },
297
+ site_data_define_collection: { sessionRequired: true, allOf: ["artifacts:publish"] },
298
+ site_data_query: { sessionRequired: true, allOf: ["artifacts:read"] },
299
+ site_data_write: { sessionRequired: true, allOf: ["artifacts:publish"] },
300
+ site_data_import: { sessionRequired: true, allOf: ["artifacts:publish"] },
301
+ site_data_export: { sessionRequired: true, allOf: ["artifacts:read"] },
302
+ site_data_reset: { sessionRequired: true, allOf: ["artifacts:publish"] },
303
+ site_files_list: { sessionRequired: true, allOf: ["artifacts:read"] },
304
+ site_files_upload: { sessionRequired: true, allOf: ["artifacts:publish"] },
305
+ site_files_delete: { sessionRequired: true, allOf: ["artifacts:publish"] },
306
+ site_publication_get: { sessionRequired: true, allOf: ["artifacts:read"] },
307
+ site_publication_update: { sessionRequired: true, allOf: ["artifacts:publish"] },
308
+ site_publication_apply_fix: { sessionRequired: true, allOf: ["artifacts:publish"] },
309
+ site_hostname_check: { sessionRequired: true, allOf: ["artifacts:read"] },
310
+ site_sql_inspect: { sessionRequired: true, allOf: ["artifacts:read"] },
311
+ site_sql_enable: { sessionRequired: true, allOf: ["artifacts:publish"] },
312
+ site_sql_migrate: { sessionRequired: true, allOf: ["artifacts:publish"] },
313
+ site_sql_define_query: { sessionRequired: true, allOf: ["artifacts:publish"] },
314
+ site_sql_query: { sessionRequired: true, allOf: ["artifacts:read"] },
315
+ site_sql_run: { sessionRequired: true, allOf: ["artifacts:read"] },
316
+ site_sql_execute: { sessionRequired: true, allOf: ["artifacts:publish"] },
317
+ site_sql_export: { sessionRequired: true, allOf: ["artifacts:read"] },
318
+ site_sql_import: { sessionRequired: true, allOf: ["artifacts:publish"] },
319
+ site_sql_reset: { sessionRequired: true, allOf: ["artifacts:publish"] },
320
+ sandbox_file_publish: {
321
+ sessionRequired: true,
322
+ allOf: ["files:read", "files:upload"],
323
+ },
324
+ editable_artifact_list: { sessionRequired: true, allOf: ["artifacts:read"] },
325
+ editable_artifact_create: {
326
+ sessionRequired: true,
327
+ allOf: ["artifacts:publish"],
328
+ },
329
+ editable_artifact_import: {
330
+ sessionRequired: true,
331
+ allOf: ["artifacts:publish", "files:read"],
332
+ },
333
+ editable_artifact_get: { sessionRequired: true, allOf: ["artifacts:read"] },
334
+ editable_artifact_inspect: {
335
+ sessionRequired: true,
336
+ allOf: ["artifacts:read"],
337
+ },
338
+ editable_artifact_apply: {
339
+ sessionRequired: true,
340
+ allOf: ["artifacts:publish"],
341
+ },
342
+ editable_artifact_export: {
343
+ sessionRequired: true,
344
+ allOf: ["artifacts:read"],
345
+ },
346
+ editable_artifact_export_status: {
347
+ sessionRequired: true,
348
+ allOf: ["artifacts:read", "files:upload"],
349
+ },
350
+ project_list: { allOf: ["sessions:read"] },
351
+ project_get: { allOf: ["sessions:read"] },
352
+ project_create: { allOf: ["sessions:create"] },
353
+ project_update: { allOf: ["sessions:create"] },
354
+ project_reorder: { allOf: ["sessions:create"] },
355
+ project_delete: { allOf: ["sessions:create"] },
356
+ session_set_project: { allOf: ["sessions:control"] },
357
+ admin_actions_search: { sessionRequired: true, personSessionRequired: true },
358
+ admin_action_describe: { sessionRequired: true, personSessionRequired: true },
359
+ admin_action_call: { sessionRequired: true, personSessionRequired: true },
360
+ } satisfies Record<FirstPartyMcpToolName, FirstPartyToolAuthorization>;
361
+
362
+ /**
363
+ * The permissions a session's first-party tool selection can possibly
364
+ * exercise, derived from the same per-tool registration data that gates the
365
+ * MCP surface. A caller that only proxies REST handlers on behalf of a
366
+ * selection (the Codemode SDK proxy) must never hold more than this: a
367
+ * selection without any session_* orchestration tool cannot need
368
+ * sessions:create or sessions:control, so a delegated token for it must not
369
+ * carry them either. `anyOf` alternatives are all counted because any one of
370
+ * them could be the permission the selection actually holds.
371
+ */
372
+ export function permissionsRequiredByFirstPartyTools(
373
+ tools: readonly FirstPartyMcpToolName[],
374
+ ): Permission[] {
375
+ const required = new Set<Permission>();
376
+ for (const tool of tools) {
377
+ const policy: FirstPartyToolAuthorization | undefined = FIRST_PARTY_TOOL_AUTHORIZATION[tool];
378
+ if (!policy) continue;
379
+ for (const permission of policy.allOf ?? []) required.add(permission);
380
+ for (const permission of policy.anyOf ?? []) required.add(permission);
381
+ }
382
+ return [...required];
383
+ }