@opengeni/api-router 3.0.1 → 3.1.2

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 (546) hide show
  1. package/dist/access-grant-rls.d.ts +8 -1
  2. package/dist/admission-trace.d.ts +8 -0
  3. package/dist/app.d.ts +50 -3
  4. package/dist/app.js +10 -1
  5. package/dist/artifact-catalog-cursor.d.ts +1 -0
  6. package/dist/attached-browser-viewer.d.ts +11 -0
  7. package/dist/auth/managed-auth-attempt-context.d.ts +2 -0
  8. package/dist/auth/managed-auth-rate-limits.d.ts +167 -0
  9. package/dist/auth/managed-auth-session-adapter.d.ts +9 -1
  10. package/dist/auth/managed-auth.d.ts +72 -5
  11. package/dist/auth/managed-sign-in-notifications.d.ts +4 -0
  12. package/dist/auth/new-signups-gate.d.ts +23 -0
  13. package/dist/auth/signup-funnel-metrics.d.ts +44 -0
  14. package/dist/azure-live.d.ts +28 -0
  15. package/dist/browser-action-fences.d.ts +13 -0
  16. package/dist/browser-controller-authority.d.ts +1 -61
  17. package/dist/browser-ephemeral.d.ts +5 -0
  18. package/dist/browser-lost-runtime-end.d.ts +24 -0
  19. package/dist/browser-state-authority.d.ts +1 -27
  20. package/dist/chunk-OGQDXVXY.js +18 -0
  21. package/dist/chunk-OGQDXVXY.js.map +1 -0
  22. package/dist/{chunk-AJ62T5QN.js → chunk-OT56OY4V.js} +80503 -39869
  23. package/dist/chunk-OT56OY4V.js.map +1 -0
  24. package/dist/claude-default-models.d.ts +19 -0
  25. package/dist/claude-subscription-core.d.ts +50 -0
  26. package/dist/claude-subscription-oauth.d.ts +36 -0
  27. package/dist/claude-subscription-profile.d.ts +9 -0
  28. package/dist/claude-subscription-usage.d.ts +6 -0
  29. package/dist/claude-workspace-connection.d.ts +15 -0
  30. package/dist/codemode.d.ts +40 -5
  31. package/dist/codex-realtime.d.ts +29 -3
  32. package/dist/codex-session-pointers.d.ts +19 -0
  33. package/dist/connection-ownership.d.ts +6 -3
  34. package/dist/controller-data-plane.d.ts +16 -0
  35. package/dist/credit-promotion-snapshot.d.ts +6 -0
  36. package/dist/editable-artifact-source-session.d.ts +3 -0
  37. package/dist/editable-artifact-websocket.d.ts +5 -3
  38. package/dist/fatal-process-boundary.d.ts +9 -1
  39. package/dist/github-access.d.ts +7 -1
  40. package/dist/github-browser-flow.d.ts +1 -1
  41. package/dist/http/acting-person.d.ts +36 -0
  42. package/dist/http/api-contract-compat.d.ts +19 -0
  43. package/dist/http/api-error.d.ts +50 -1
  44. package/dist/http/auth.d.ts +8 -1
  45. package/dist/http/cors.d.ts +12 -0
  46. package/dist/http/deprecation.d.ts +42 -0
  47. package/dist/http/keyed-admission.d.ts +12 -0
  48. package/dist/http/local-browser-boundary.d.ts +72 -0
  49. package/dist/http/metrics-listener.d.ts +22 -0
  50. package/dist/http/path-identifier.d.ts +17 -0
  51. package/dist/http/registered-route-label.d.ts +16 -0
  52. package/dist/http/rejection-telemetry.d.ts +34 -0
  53. package/dist/http/request-body.d.ts +27 -0
  54. package/dist/http/request-source.d.ts +41 -3
  55. package/dist/http/sse.d.ts +12 -1
  56. package/dist/http/unmatched-route.d.ts +18 -0
  57. package/dist/http/user-content.d.ts +36 -0
  58. package/dist/http/variable-sets-removed.d.ts +41 -0
  59. package/dist/http/websocket-upgrade-dispatch.d.ts +18 -0
  60. package/dist/index.js +1279 -108
  61. package/dist/index.js.map +1 -1
  62. package/dist/integration-connect-metrics.d.ts +35 -0
  63. package/dist/integration-endpoint-test.d.ts +20 -0
  64. package/dist/integrations/api-integrations.d.ts +2 -2
  65. package/dist/integrations/atlassian.d.ts +8 -3
  66. package/dist/integrations/fiken.d.ts +3 -1
  67. package/dist/integrations/github-lens-connect.d.ts +37 -66
  68. package/dist/integrations/google-drive.d.ts +2 -0
  69. package/dist/integrations/integration-commit-authority.d.ts +13 -0
  70. package/dist/integrations/marketplace-plugin.d.ts +43 -43
  71. package/dist/integrations/oauth-client.d.ts +171 -12
  72. package/dist/integrations/oauth-profiles.d.ts +42 -13
  73. package/dist/integrations/onepassword-vault-provider.d.ts +9 -0
  74. package/dist/integrations/slack-bot.d.ts +285 -7
  75. package/dist/integrations/slack-file-upload-flow.d.ts +62 -0
  76. package/dist/integrations/slack-interactions.d.ts +89 -10
  77. package/dist/integrations/slack-mrkdwn.d.ts +41 -0
  78. package/dist/integrations/slack-routing.d.ts +1 -1
  79. package/dist/integrations/slack-session-defaults.d.ts +58 -0
  80. package/dist/integrations/slack-task-file-upload.d.ts +36 -0
  81. package/dist/integrations/slack-tool-review.d.ts +5 -0
  82. package/dist/interaction-agent-access.d.ts +13 -8
  83. package/dist/interaction-agent-version.d.ts +21 -0
  84. package/dist/interaction-holder-heartbeat.d.ts +5 -0
  85. package/dist/interaction-metrics.d.ts +27 -2
  86. package/dist/interaction-route-stages.d.ts +25 -0
  87. package/dist/interaction-secrets-vault.d.ts +20 -0
  88. package/dist/interaction-secrets.d.ts +103 -0
  89. package/dist/mcp/action-catalog-types.d.ts +14 -0
  90. package/dist/mcp/action-catalog.gen.d.ts +2 -0
  91. package/dist/mcp/action-descriptions.d.ts +4 -0
  92. package/dist/mcp/action-schema-imports.gen.d.ts +1 -0
  93. package/dist/mcp/capability-account-readiness.d.ts +7 -0
  94. package/dist/mcp/child-read-evidence.d.ts +9 -0
  95. package/dist/mcp/company-profile-agent-admin.d.ts +12 -0
  96. package/dist/mcp/contract-input.d.ts +13 -0
  97. package/dist/mcp/documents.d.ts +2 -0
  98. package/dist/mcp/first-party-tool-permissions.d.ts +3 -606
  99. package/dist/mcp/notification-tools.d.ts +26 -0
  100. package/dist/mcp/orchestration-failure-diagnostic.d.ts +43 -0
  101. package/dist/mcp/scheduled-task-input.d.ts +1309 -0
  102. package/dist/mcp/scheduled-task-view.d.ts +217 -3
  103. package/dist/mcp/secret-tools.d.ts +14 -0
  104. package/dist/mcp/server.d.ts +108 -5
  105. package/dist/mcp/session-admin-access-tools.d.ts +33 -0
  106. package/dist/mcp/session-event-errors.d.ts +28 -0
  107. package/dist/mcp/session-event-view.d.ts +62 -0
  108. package/dist/mcp/session-view.d.ts +15 -0
  109. package/dist/mcp/session-wait.d.ts +18 -0
  110. package/dist/mcp/site-agent-clamp-tools.d.ts +38 -0
  111. package/dist/mcp/site-data-tools.d.ts +22 -0
  112. package/dist/mcp/site-publication-tools.d.ts +19 -0
  113. package/dist/mcp/site-sql-tools.d.ts +27 -0
  114. package/dist/mcp-oauth.d.ts +37 -4
  115. package/dist/model-calls/chat-completions.d.ts +87 -0
  116. package/dist/model-calls/pending-usage-settlements.d.ts +57 -0
  117. package/dist/model-calls/service.d.ts +36 -0
  118. package/dist/model-catalog.d.ts +9 -3
  119. package/dist/native-push-dispatch.d.ts +69 -0
  120. package/dist/observability.d.ts +3 -1
  121. package/dist/organization-mcp.d.ts +82 -0
  122. package/dist/prepared-mcp-actor.d.ts +77 -0
  123. package/dist/prepared-mcp-permissions.d.ts +8 -0
  124. package/dist/routes/analytics-consent.d.ts +26 -0
  125. package/dist/routes/api-integrations.d.ts +11 -0
  126. package/dist/routes/api-keys.d.ts +7 -7
  127. package/dist/routes/automations.d.ts +2 -0
  128. package/dist/routes/billing.d.ts +59 -0
  129. package/dist/routes/browser-sessions.d.ts +65 -2
  130. package/dist/routes/chat-completions.d.ts +11 -0
  131. package/dist/routes/claude-core-usage.d.ts +20 -0
  132. package/dist/routes/claude-subscription-accounts.d.ts +3 -0
  133. package/dist/routes/claude-subscription-oauth.d.ts +3 -0
  134. package/dist/routes/client-errors.d.ts +182 -0
  135. package/dist/routes/codex-core.d.ts +401 -0
  136. package/dist/routes/codex.d.ts +64 -2
  137. package/dist/routes/computer-sessions.d.ts +6 -1
  138. package/dist/routes/desktop-distribution.d.ts +32 -0
  139. package/dist/routes/github-browser-fonts.gen.d.ts +2 -0
  140. package/dist/routes/github-browser-pages.d.ts +27 -0
  141. package/dist/routes/inbox.d.ts +13 -0
  142. package/dist/routes/insights-response-cache.d.ts +10 -0
  143. package/dist/routes/insights-usage.d.ts +12 -0
  144. package/dist/routes/insights.d.ts +28 -0
  145. package/dist/routes/interaction-placement-message.d.ts +7 -0
  146. package/dist/routes/managed-sign-in-methods.d.ts +6 -0
  147. package/dist/routes/model-account-choice.d.ts +13 -0
  148. package/dist/routes/model-account-settings.d.ts +19 -0
  149. package/dist/routes/native-app-auth.d.ts +12 -0
  150. package/dist/routes/organization-integration-policy.d.ts +8 -0
  151. package/dist/routes/organization-integrations.d.ts +6 -0
  152. package/dist/routes/organization-mcp-connections.d.ts +3 -0
  153. package/dist/routes/organization-model-defaults.d.ts +9 -0
  154. package/dist/routes/organization-service-accounts.d.ts +3 -0
  155. package/dist/routes/personal-api-keys.d.ts +3 -0
  156. package/dist/routes/session-admin-access.d.ts +3 -0
  157. package/dist/routes/session-artifact-associations.d.ts +4 -0
  158. package/dist/routes/session-history-imports.d.ts +20 -0
  159. package/dist/routes/sessions.d.ts +38 -2
  160. package/dist/routes/site-data.d.ts +18 -0
  161. package/dist/routes/site-publishing.d.ts +5 -0
  162. package/dist/routes/site-runtime.d.ts +31 -0
  163. package/dist/routes/site-sql.d.ts +16 -0
  164. package/dist/routes/slack-bot-access.d.ts +3 -0
  165. package/dist/routes/subscription-account-pools.d.ts +21 -0
  166. package/dist/routes/subscription-core-http.d.ts +5 -0
  167. package/dist/routes/subscription-pool-access.d.ts +37 -0
  168. package/dist/routes/subscription-pool-core.d.ts +153 -0
  169. package/dist/routes/supergrok.d.ts +6 -6
  170. package/dist/routes/usage-allowances.d.ts +12 -0
  171. package/dist/routes/variable-sets-removed.d.ts +2 -0
  172. package/dist/routes/vault-providers.d.ts +34 -0
  173. package/dist/routes/vaults.d.ts +3 -0
  174. package/dist/routes/workspace-integrations.d.ts +35 -0
  175. package/dist/routes/workspace-model-providers.d.ts +4 -0
  176. package/dist/routes/workspaces.d.ts +11 -2
  177. package/dist/sandbox/agent-update.d.ts +64 -0
  178. package/dist/sandbox/auth-callout.d.ts +8 -0
  179. package/dist/sandbox/channel-a.d.ts +15 -1
  180. package/dist/sandbox/enrollment.d.ts +26 -4
  181. package/dist/sandbox/machine-audience.d.ts +29 -0
  182. package/dist/sandbox/machines.d.ts +15 -2
  183. package/dist/sandbox/metrics-ingestion.d.ts +6 -2
  184. package/dist/sandbox/screen-control.d.ts +85 -0
  185. package/dist/sandbox/viewer.d.ts +5 -1
  186. package/dist/sandbox-file-artifacts.d.ts +17 -1
  187. package/dist/scheduled-task-blockers.d.ts +39 -0
  188. package/dist/scheduled-task-deletion.d.ts +3 -4
  189. package/dist/scheduled-task-lifecycle.d.ts +14 -0
  190. package/dist/secret-answers.d.ts +40 -0
  191. package/dist/session-create-observability.d.ts +5 -0
  192. package/dist/session-event-view-36GO3IL7.js +528 -0
  193. package/dist/session-event-view-36GO3IL7.js.map +1 -0
  194. package/dist/signed-state-secret.d.ts +18 -0
  195. package/dist/site-agent-guard.d.ts +53 -0
  196. package/dist/site-data/operations.d.ts +103 -0
  197. package/dist/site-data/service.d.ts +203 -0
  198. package/dist/site-frame-guard.d.ts +32 -0
  199. package/dist/site-publishing/agent-data-tools.d.ts +84 -0
  200. package/dist/site-publishing/agent-model.d.ts +58 -0
  201. package/dist/site-publishing/agent-session.d.ts +16 -0
  202. package/dist/site-publishing/content-scanner.d.ts +31 -0
  203. package/dist/site-publishing/edge-sync.d.ts +48 -0
  204. package/dist/site-publishing/gateway-signature.d.ts +56 -0
  205. package/dist/site-publishing/limits.d.ts +63 -0
  206. package/dist/site-publishing/page-tool-authority.d.ts +30 -0
  207. package/dist/site-publishing/platform-usage.d.ts +113 -0
  208. package/dist/site-publishing/platform.d.ts +21 -0
  209. package/dist/site-publishing/readiness.d.ts +62 -0
  210. package/dist/site-publishing/runtime.d.ts +179 -0
  211. package/dist/site-publishing/service.d.ts +264 -0
  212. package/dist/site-publishing/session-events.d.ts +22 -0
  213. package/dist/site-publishing/session-views.d.ts +36 -0
  214. package/dist/site-publishing/viewer.d.ts +40 -0
  215. package/dist/site-session-origin.d.ts +31 -6
  216. package/dist/site-sql/format.d.ts +47 -0
  217. package/dist/site-sql/gateway.d.ts +50 -0
  218. package/dist/site-sql/service.d.ts +213 -0
  219. package/dist/temporal-schedule-sync.d.ts +26 -0
  220. package/dist/transcription/billing-refusal.d.ts +8 -0
  221. package/dist/transcription/normalize.d.ts +23 -0
  222. package/dist/transcription/providers/azure-mai.d.ts +12 -0
  223. package/dist/transcription/providers/azure-openai.d.ts +4 -0
  224. package/dist/transcription/providers/openai.d.ts +16 -0
  225. package/dist/transcription/providers/subscription-core.d.ts +39 -0
  226. package/dist/transcription/service.d.ts +10 -1
  227. package/dist/transcription/wav-duration.d.ts +8 -0
  228. package/dist/workspace-tool-gateway-attestations.d.ts +37 -0
  229. package/dist/workspace-tool-gateway-observability.d.ts +16 -0
  230. package/dist/workspace-tool-gateway-secrets.d.ts +27 -0
  231. package/dist/workspace-tool-gateway.d.ts +102 -6
  232. package/dist/workspace-tool-target-fence.d.ts +116 -0
  233. package/dist/workspace-tool-target.d.ts +225 -0
  234. package/dist/workspace-webhook-dispatch.d.ts +26 -0
  235. package/dist/xai-subscription-core.d.ts +60 -0
  236. package/package.json +25 -20
  237. package/src/access-grant-rls.ts +64 -14
  238. package/src/admission-trace.ts +14 -0
  239. package/src/app.ts +1684 -252
  240. package/src/artifact-catalog-cursor.ts +1 -0
  241. package/src/attached-browser-viewer.ts +26 -0
  242. package/src/auth/managed-auth-attempt-context.ts +9 -0
  243. package/src/auth/managed-auth-rate-limits.ts +252 -0
  244. package/src/auth/managed-auth-session-adapter.ts +64 -29
  245. package/src/auth/managed-auth.ts +303 -35
  246. package/src/auth/managed-email.ts +18 -1
  247. package/src/auth/managed-sign-in-notifications.ts +81 -0
  248. package/src/auth/new-signups-gate.ts +49 -0
  249. package/src/auth/organization-user-setup.ts +3 -3
  250. package/src/auth/signup-funnel-metrics.ts +164 -0
  251. package/src/azure-live.ts +103 -0
  252. package/src/browser-action-fences.ts +45 -0
  253. package/src/browser-controller-authority.ts +1 -186
  254. package/src/browser-ephemeral.ts +39 -0
  255. package/src/browser-lost-runtime-end.ts +71 -0
  256. package/src/browser-state-authority.ts +1 -236
  257. package/src/claude-default-models.ts +37 -0
  258. package/src/claude-subscription-core.ts +154 -0
  259. package/src/claude-subscription-oauth.ts +352 -0
  260. package/src/claude-subscription-profile.ts +73 -0
  261. package/src/claude-subscription-usage.ts +51 -0
  262. package/src/claude-workspace-connection.ts +82 -0
  263. package/src/codemode.ts +236 -39
  264. package/src/codex-realtime.ts +181 -53
  265. package/src/codex-session-pointers.ts +80 -0
  266. package/src/company-brain-okf.ts +1 -1
  267. package/src/connected-machine-computer-access.ts +2 -1
  268. package/src/connection-ownership.ts +19 -13
  269. package/src/controller-data-plane.ts +34 -0
  270. package/src/credit-promotion-snapshot.ts +36 -0
  271. package/src/editable-artifact-production.ts +10 -0
  272. package/src/editable-artifact-source-session.ts +123 -0
  273. package/src/editable-artifact-websocket.ts +16 -3
  274. package/src/fatal-process-boundary.ts +67 -3
  275. package/src/gateway-realtime.ts +12 -8
  276. package/src/github-access.ts +31 -5
  277. package/src/github-browser-flow.ts +1 -1
  278. package/src/http/acting-person.ts +105 -0
  279. package/src/http/api-contract-compat.ts +49 -0
  280. package/src/http/api-error.ts +210 -2
  281. package/src/http/auth.ts +68 -4
  282. package/src/http/cors.ts +37 -5
  283. package/src/http/deprecation.ts +118 -0
  284. package/src/http/keyed-admission.ts +29 -0
  285. package/src/http/local-browser-boundary.ts +343 -0
  286. package/src/http/metrics-listener.ts +57 -0
  287. package/src/http/path-identifier.ts +54 -0
  288. package/src/http/registered-route-label.ts +34 -0
  289. package/src/http/rejection-telemetry.ts +120 -0
  290. package/src/http/request-body.ts +127 -0
  291. package/src/http/request-source.ts +154 -13
  292. package/src/http/sse.ts +88 -28
  293. package/src/http/unmatched-route.ts +60 -0
  294. package/src/http/user-content.ts +158 -0
  295. package/src/http/variable-sets-removed.ts +122 -0
  296. package/src/http/websocket-upgrade-dispatch.ts +29 -0
  297. package/src/index.ts +107 -57
  298. package/src/integration-connect-metrics.ts +228 -0
  299. package/src/integration-endpoint-test.ts +291 -0
  300. package/src/integrations/api-integrations.ts +81 -7
  301. package/src/integrations/atlassian.ts +202 -83
  302. package/src/integrations/fiken.ts +66 -38
  303. package/src/integrations/github-app-connect.ts +64 -18
  304. package/src/integrations/github-lens-connect.ts +8 -29
  305. package/src/integrations/google-drive.ts +448 -152
  306. package/src/integrations/integration-commit-authority.ts +69 -0
  307. package/src/integrations/marketplace-plugin.ts +1 -1
  308. package/src/integrations/oauth-client.ts +733 -193
  309. package/src/integrations/oauth-profiles.ts +116 -45
  310. package/src/integrations/onepassword-vault-provider.ts +16 -0
  311. package/src/integrations/personal-github-repositories.ts +1 -1
  312. package/src/integrations/personal-github.ts +61 -35
  313. package/src/integrations/provider-oauth.ts +67 -85
  314. package/src/integrations/slack-app-home.ts +5 -5
  315. package/src/integrations/slack-bot.ts +893 -201
  316. package/src/integrations/slack-file-upload-flow.ts +147 -0
  317. package/src/integrations/slack-install.ts +7 -7
  318. package/src/integrations/slack-interactions.ts +1589 -299
  319. package/src/integrations/slack-mrkdwn.ts +193 -0
  320. package/src/integrations/slack-routing.ts +2 -2
  321. package/src/integrations/slack-session-defaults.ts +224 -0
  322. package/src/integrations/slack-task-file-upload.ts +323 -0
  323. package/src/integrations/slack-tool-review.ts +65 -0
  324. package/src/integrations/social-oauth.ts +90 -58
  325. package/src/interaction-agent-access.ts +40 -20
  326. package/src/interaction-agent-version.ts +85 -0
  327. package/src/interaction-holder-heartbeat.ts +24 -8
  328. package/src/interaction-metrics.ts +164 -2
  329. package/src/interaction-route-stages.ts +94 -0
  330. package/src/interaction-secrets-vault.ts +213 -0
  331. package/src/interaction-secrets.ts +426 -0
  332. package/src/mcp/action-catalog-types.ts +14 -0
  333. package/src/mcp/action-catalog.gen.ts +8014 -0
  334. package/src/mcp/action-descriptions.ts +299 -0
  335. package/src/mcp/action-schema-imports.gen.ts +304 -0
  336. package/src/mcp/capability-account-readiness.ts +17 -0
  337. package/src/mcp/child-read-evidence.ts +19 -0
  338. package/src/mcp/company-profile-agent-admin.ts +13 -0
  339. package/src/mcp/contract-input.ts +165 -0
  340. package/src/mcp/documents.ts +9 -2
  341. package/src/mcp/editable-artifacts.ts +29 -11
  342. package/src/mcp/files.ts +5 -1
  343. package/src/mcp/first-party-tool-permissions.ts +7 -285
  344. package/src/mcp/knowledge-entries.ts +108 -34
  345. package/src/mcp/notification-tools.ts +480 -0
  346. package/src/mcp/orchestration-failure-diagnostic.ts +43 -0
  347. package/src/mcp/scheduled-task-input.ts +89 -0
  348. package/src/mcp/scheduled-task-view.ts +63 -3
  349. package/src/mcp/secret-tools.ts +185 -0
  350. package/src/mcp/server.ts +2213 -1116
  351. package/src/mcp/session-admin-access-tools.ts +163 -0
  352. package/src/mcp/session-event-errors.ts +123 -0
  353. package/src/mcp/session-event-view.ts +395 -13
  354. package/src/mcp/session-view.ts +3 -0
  355. package/src/mcp/session-wait.ts +67 -7
  356. package/src/mcp/site-agent-clamp-tools.ts +140 -0
  357. package/src/mcp/site-data-tools.ts +339 -0
  358. package/src/mcp/site-publication-tools.ts +201 -0
  359. package/src/mcp/site-sql-tools.ts +427 -0
  360. package/src/mcp-oauth.ts +635 -45
  361. package/src/model-calls/chat-completions.ts +352 -0
  362. package/src/model-calls/pending-usage-settlements.ts +125 -0
  363. package/src/model-calls/service.ts +694 -0
  364. package/src/model-catalog.ts +68 -17
  365. package/src/native-push-dispatch.ts +457 -0
  366. package/src/observability.ts +15 -1
  367. package/src/organization-mcp.ts +485 -0
  368. package/src/prepared-mcp-actor.ts +154 -0
  369. package/src/prepared-mcp-permissions.ts +38 -0
  370. package/src/routes/analytics-consent.ts +123 -0
  371. package/src/routes/api-integrations.ts +268 -9
  372. package/src/routes/api-keys.ts +164 -25
  373. package/src/routes/artifact-catalog.ts +111 -0
  374. package/src/routes/automations.ts +163 -90
  375. package/src/routes/billing.ts +535 -59
  376. package/src/routes/browser-sessions.ts +966 -342
  377. package/src/routes/canonical-human-identities.ts +61 -0
  378. package/src/routes/capabilities.ts +112 -5
  379. package/src/routes/channels.ts +4 -3
  380. package/src/routes/chat-completions.ts +235 -0
  381. package/src/routes/claude-core-usage.ts +147 -0
  382. package/src/routes/claude-subscription-accounts.ts +233 -0
  383. package/src/routes/claude-subscription-oauth.ts +175 -0
  384. package/src/routes/client-errors.ts +394 -0
  385. package/src/routes/codex-core.ts +687 -0
  386. package/src/routes/codex.ts +1277 -1119
  387. package/src/routes/company-brain.ts +4 -0
  388. package/src/routes/computer-sessions.ts +319 -85
  389. package/src/routes/connect.ts +277 -175
  390. package/src/routes/connections.ts +690 -363
  391. package/src/routes/desktop-distribution.ts +217 -0
  392. package/src/routes/documents.ts +13 -7
  393. package/src/routes/editable-artifacts.ts +74 -4
  394. package/src/routes/enrollments.ts +110 -16
  395. package/src/routes/external-identity-links.ts +13 -12
  396. package/src/routes/files.ts +41 -16
  397. package/src/routes/github-browser-fonts.gen.ts +12 -0
  398. package/src/routes/github-browser-pages.ts +258 -0
  399. package/src/routes/github.ts +200 -75
  400. package/src/routes/inbox.ts +353 -0
  401. package/src/routes/insights-response-cache.ts +83 -0
  402. package/src/routes/insights-usage.ts +345 -0
  403. package/src/routes/insights.ts +103 -8
  404. package/src/routes/install.ts +51 -10
  405. package/src/routes/integration-facets.ts +70 -28
  406. package/src/routes/interaction-placement-message.ts +12 -0
  407. package/src/routes/knowledge.ts +136 -27
  408. package/src/routes/machines.ts +189 -135
  409. package/src/routes/managed-auth-session-sets.ts +43 -10
  410. package/src/routes/managed-onboarding.ts +39 -19
  411. package/src/routes/managed-sign-in-methods.ts +433 -0
  412. package/src/routes/memory-slack-publications.ts +3 -2
  413. package/src/routes/model-account-choice.ts +194 -0
  414. package/src/routes/model-account-settings.ts +235 -0
  415. package/src/routes/model-connection-access.ts +210 -48
  416. package/src/routes/native-app-auth.ts +296 -0
  417. package/src/routes/organization-integration-policy.ts +116 -0
  418. package/src/routes/organization-integrations.ts +326 -0
  419. package/src/routes/organization-mcp-connections.ts +183 -0
  420. package/src/routes/organization-memberships.ts +205 -19
  421. package/src/routes/organization-model-defaults.ts +110 -0
  422. package/src/routes/organization-model-providers.ts +74 -3
  423. package/src/routes/organization-service-accounts.ts +128 -0
  424. package/src/routes/organization-sessions.ts +21 -5
  425. package/src/routes/personal-api-keys.ts +184 -0
  426. package/src/routes/personal-github-git-broker.ts +2 -2
  427. package/src/routes/personal-github.ts +9 -4
  428. package/src/routes/plugins.ts +46 -7
  429. package/src/routes/pr-review-github.ts +105 -118
  430. package/src/routes/pr-review.ts +88 -82
  431. package/src/routes/preference-registry.ts +18 -0
  432. package/src/routes/rigs.ts +48 -13
  433. package/src/routes/scheduled-tasks.ts +347 -27
  434. package/src/routes/session-admin-access.ts +271 -0
  435. package/src/routes/session-artifact-associations.ts +164 -0
  436. package/src/routes/session-history-imports.ts +305 -0
  437. package/src/routes/sessions.ts +1682 -363
  438. package/src/routes/site-data.ts +340 -0
  439. package/src/routes/site-publishing.ts +584 -0
  440. package/src/routes/site-runtime.ts +1944 -0
  441. package/src/routes/site-sql.ts +263 -0
  442. package/src/routes/skill-content.ts +72 -7
  443. package/src/routes/skills.ts +5 -4
  444. package/src/routes/slack-bot-access.ts +108 -0
  445. package/src/routes/social.ts +27 -15
  446. package/src/routes/subscription-account-pools.ts +209 -0
  447. package/src/routes/subscription-core-http.ts +18 -0
  448. package/src/routes/subscription-pool-access.ts +180 -0
  449. package/src/routes/subscription-pool-core.ts +552 -0
  450. package/src/routes/supergrok.ts +174 -655
  451. package/src/routes/transcription-recordings.ts +71 -4
  452. package/src/routes/transcriptions.ts +26 -2
  453. package/src/routes/usage-allowances.ts +381 -0
  454. package/src/routes/variable-sets-removed.ts +19 -0
  455. package/src/routes/vault-providers.ts +782 -0
  456. package/src/routes/vaults.ts +421 -0
  457. package/src/routes/video-generation.ts +30 -12
  458. package/src/routes/workspace-artifacts.ts +165 -53
  459. package/src/routes/workspace-integrations.ts +576 -0
  460. package/src/routes/workspace-model-providers.ts +148 -0
  461. package/src/routes/workspace-state.ts +4 -0
  462. package/src/routes/workspaces.ts +625 -117
  463. package/src/sandbox/agent-update.ts +315 -0
  464. package/src/sandbox/auth-callout.ts +104 -21
  465. package/src/sandbox/channel-a.ts +165 -55
  466. package/src/sandbox/enrollment.ts +131 -22
  467. package/src/sandbox/machine-audience.ts +192 -0
  468. package/src/sandbox/machines.ts +75 -31
  469. package/src/sandbox/metrics-ingestion.ts +133 -2
  470. package/src/sandbox/rematerialize.ts +51 -21
  471. package/src/sandbox/screen-control.ts +289 -0
  472. package/src/sandbox/viewer.ts +33 -58
  473. package/src/sandbox-file-artifacts.ts +53 -27
  474. package/src/scheduled-task-blockers.ts +293 -0
  475. package/src/scheduled-task-deletion.ts +13 -3
  476. package/src/scheduled-task-lifecycle.ts +84 -0
  477. package/src/secret-answers.ts +119 -0
  478. package/src/session-create-observability.ts +46 -0
  479. package/src/session-realtime-context.ts +26 -4
  480. package/src/signed-state-secret.ts +58 -0
  481. package/src/site-agent-guard.ts +261 -0
  482. package/src/site-data/operations.ts +777 -0
  483. package/src/site-data/service.ts +1043 -0
  484. package/src/site-frame-guard.ts +107 -0
  485. package/src/site-publishing/agent-data-tools.ts +250 -0
  486. package/src/site-publishing/agent-model.ts +127 -0
  487. package/src/site-publishing/agent-session.ts +148 -0
  488. package/src/site-publishing/content-scanner.ts +93 -0
  489. package/src/site-publishing/edge-sync.ts +148 -0
  490. package/src/site-publishing/gateway-signature.ts +198 -0
  491. package/src/site-publishing/limits.ts +315 -0
  492. package/src/site-publishing/page-tool-authority.ts +111 -0
  493. package/src/site-publishing/platform-usage.ts +479 -0
  494. package/src/site-publishing/platform.ts +98 -0
  495. package/src/site-publishing/readiness.ts +330 -0
  496. package/src/site-publishing/runtime.ts +831 -0
  497. package/src/site-publishing/service.ts +1282 -0
  498. package/src/site-publishing/session-events.ts +262 -0
  499. package/src/site-publishing/session-views.ts +262 -0
  500. package/src/site-publishing/viewer.ts +75 -0
  501. package/src/site-session-origin.ts +91 -6
  502. package/src/site-sql/format.ts +134 -0
  503. package/src/site-sql/gateway.ts +168 -0
  504. package/src/site-sql/service.ts +1636 -0
  505. package/src/site-uploads.ts +27 -5
  506. package/src/temporal-schedule-sync.ts +74 -0
  507. package/src/transcription/billing-refusal.ts +14 -0
  508. package/src/transcription/normalize.ts +77 -0
  509. package/src/transcription/providers/azure-mai.ts +98 -0
  510. package/src/transcription/providers/azure-openai.ts +16 -7
  511. package/src/transcription/providers/codex-subscription.ts +190 -67
  512. package/src/transcription/providers/openai.ts +79 -5
  513. package/src/transcription/providers/subscription-core.ts +125 -0
  514. package/src/transcription/providers/xai-subscription.ts +81 -83
  515. package/src/transcription/segmenter.ts +7 -1
  516. package/src/transcription/service.ts +239 -10
  517. package/src/transcription/wav-duration.ts +39 -0
  518. package/src/workspace-deletion.ts +25 -1
  519. package/src/workspace-tool-gateway-attestations.ts +133 -0
  520. package/src/workspace-tool-gateway-observability.ts +64 -0
  521. package/src/workspace-tool-gateway-secrets.ts +104 -0
  522. package/src/workspace-tool-gateway.ts +921 -103
  523. package/src/workspace-tool-target-fence.ts +380 -0
  524. package/src/workspace-tool-target.ts +554 -0
  525. package/src/workspace-webhook-dispatch.ts +225 -0
  526. package/src/xai-realtime.ts +85 -81
  527. package/src/xai-subscription-core.ts +172 -0
  528. package/dist/browser-auth-broker.d.ts +0 -20
  529. package/dist/chunk-AJ62T5QN.js.map +0 -1
  530. package/dist/connection-authority-owner.d.ts +0 -59
  531. package/dist/routes/connection-authorities.d.ts +0 -3
  532. package/dist/routes/environments.d.ts +0 -5
  533. package/dist/routes/host-mcp-bindings.d.ts +0 -5
  534. package/dist/routes/host-mcp-resolvers.d.ts +0 -3
  535. package/dist/routes/packs.d.ts +0 -3
  536. package/dist/session-event-view-MU3HMNV3.js +0 -264
  537. package/dist/session-event-view-MU3HMNV3.js.map +0 -1
  538. package/dist/xai-subscription-auth.d.ts +0 -23
  539. package/src/browser-auth-broker.ts +0 -155
  540. package/src/connection-authority-owner.ts +0 -61
  541. package/src/routes/connection-authorities.ts +0 -139
  542. package/src/routes/environments.ts +0 -388
  543. package/src/routes/host-mcp-bindings.ts +0 -122
  544. package/src/routes/host-mcp-resolvers.ts +0 -41
  545. package/src/routes/packs.ts +0 -784
  546. package/src/xai-subscription-auth.ts +0 -139
@@ -13,10 +13,9 @@ import { z } from "zod";
13
13
  *
14
14
  * Profiles come from two layers:
15
15
  *
16
- * 1. Built-in profiles below, for the providers whose fences are security
17
- * invariants (hosted Slack MCP and official Gmail are personal-only, their
18
- * authorization servers are origin-pinned). These live in code as data so
19
- * the fences never depend on catalog import state.
16
+ * 1. Built-in profiles pin known authorization servers and protocol quirks.
17
+ * Ownership defaults guide setup; users may choose personal or workspace.
18
+ * Authorization-server pins never depend on catalog import state.
20
19
  * 2. A validated `oauthProfile` object on a global catalog row (curated
21
20
  * overlay -> importer -> `capability_catalog_items.metadata`). A catalog
22
21
  * profile applies only when no built-in matches, and it can only narrow the
@@ -76,10 +75,13 @@ export type OAuthProviderProfile = {
76
75
  key: DeploymentManagedClientKey;
77
76
  message: string;
78
77
  };
79
- /** Ownerships a connection may take; a singleton also sets the default. */
80
- allowedOwnership: readonly ConnectionOwnership[];
81
- /** Exact 422 message when an explicit disallowed ownership is requested. */
82
- ownershipMessage?: string;
78
+ /** Suggested ownership; explicit choices remain subject to requiredOwnership. */
79
+ defaultOwnership?: ConnectionOwnership;
80
+ /** Built-in-only ownership restriction, including old reconnect/callback state. */
81
+ requiredOwnership?: {
82
+ ownership: ConnectionOwnership;
83
+ message: string;
84
+ };
83
85
  /** Bind reconnect/dedupe to the exact mcpUrl, not just the provider domain. */
84
86
  exactMcpBinding: boolean;
85
87
  /** How an existing connection is chosen for reconnect coalescing. */
@@ -106,6 +108,35 @@ export type OAuthProviderProfile = {
106
108
  extraAuthorizeParams?: Readonly<Record<string, string>>;
107
109
  /** Exact scope override; the caller can never widen past it. */
108
110
  requestedScopes?: readonly string[];
111
+ /** Reviewed local bridge grant normalization and token verification. Catalog profiles cannot supply code. */
112
+ normalizeGrantedScopes?: (scopes: readonly string[] | string) => string[];
113
+ reportedScopesRequired?: boolean;
114
+ /** Built-in durable API bridges may refuse a new grant without offline access. */
115
+ freshRefreshTokenRequired?: boolean;
116
+ /** The reviewed bridge exposes one tool contract, not a partial-scope variant. */
117
+ fullRequestedScopesRequired?: boolean;
118
+ /** Built-in web OAuth clients must use a configured secret and provider-supported authentication. */
119
+ confidentialClientRequired?: boolean;
120
+ /** Built-in API bridge discovery; catalog metadata cannot redirect this seam. */
121
+ providerOAuthDiscovery?: {
122
+ issuer: string;
123
+ metadataUrl: string;
124
+ };
125
+ localToolVerification?: {
126
+ url: string;
127
+ method?: "GET" | "POST";
128
+ /** An API bridge may require a verified account before accepting a grant. */
129
+ required?: boolean;
130
+ /** Distinguish a rejected OAuth grant from a temporary verification failure. */
131
+ isRejectedGrant?: (payload: Record<string, unknown>) => boolean;
132
+ validateIdentity: (payload: Record<string, unknown>) => Record<string, string>;
133
+ toolsForScopes: (scopes: readonly string[], deployment: {
134
+ gmailWatchTopicName?: string | undefined;
135
+ }) => Array<{
136
+ name: string;
137
+ description?: string;
138
+ }>;
139
+ };
109
140
  };
110
141
  export declare const DEFAULT_OAUTH_PROFILE: OAuthProviderProfile;
111
142
  /** Exact built-in profile by its stable key; throws on an unknown key. */
@@ -133,8 +164,6 @@ export declare function builtInOAuthProfileFor(input: {
133
164
  }): OAuthProviderProfile | null;
134
165
  /** Ownership an omitted request defaults to under a profile. */
135
166
  export declare function defaultOwnershipFor(profile: OAuthProviderProfile): ConnectionOwnership;
136
- /** Rejects an ownership outside the profile's allowed set with its exact message. */
137
- export declare function assertOwnershipAllowed(profile: OAuthProviderProfile, ownership: ConnectionOwnership): void;
138
167
  /** Enforces a profile's authorization-server origin pins with its exact message. */
139
168
  export declare function assertAuthorizationServerPins(as: PinnableAuthorizationServer, pins: Pick<AuthorizationServerPins, "issuerOrigins" | "authorizationEndpointOrigins" | "tokenEndpointOrigins" | "message">): void;
140
169
  /**
@@ -166,10 +195,10 @@ export declare const catalogOAuthProfileSchema: z.ZodObject<{
166
195
  pinnedIssuerOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
167
196
  pinnedEndpointOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
168
197
  sendResourceParameter: z.ZodOptional<z.ZodBoolean>;
169
- allowedOwnership: z.ZodOptional<z.ZodArray<z.ZodEnum<{
198
+ defaultOwnership: z.ZodOptional<z.ZodEnum<{
170
199
  personal: "personal";
171
200
  workspace: "workspace";
172
- }>>>;
201
+ }>>;
173
202
  requestedScopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
174
203
  extraAuthorizeParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
175
204
  }, z.core.$strict>;
@@ -190,6 +219,6 @@ export declare function catalogMcpUrlKey(value: string): string;
190
219
  *
191
220
  * A present-but-invalid profile fails closed with a 422: the row's operator
192
221
  * declared constraints, and silently degrading to the default profile would
193
- * drop an ownership fence or origin pin on a JSON typo.
222
+ * drop an origin pin on a JSON typo.
194
223
  */
195
224
  export declare function oauthProfileFromCatalog(mcpUrl: string, raw: unknown): OAuthProviderProfile;
@@ -0,0 +1,9 @@
1
+ import type { OnePasswordVaultProviderFactory } from "@opengeni/core";
2
+ /**
3
+ * Loads the 1Password adapter (and its ~14 MB WASM SDK) only when a request
4
+ * first touches 1Password. The only allowed import edge, besides apps/worker,
5
+ * is this dynamic one (OP-5, packages/vaults-onepassword/test/import-guard.test.ts).
6
+ */
7
+ export declare const loadOnePasswordVaultProvider: OnePasswordVaultProviderFactory;
8
+ /** The offline token check and connection-scoped provider used by the install route. */
9
+ export declare function loadOnePasswordModule(): Promise<typeof import("@opengeni/vaults-onepassword")>;
@@ -4,6 +4,7 @@ import { type Database } from "@opengeni/db";
4
4
  import { type FetchLike } from "@opengeni/network";
5
5
  import { HTTPException } from "hono/http-exception";
6
6
  export declare const SLACK_REACTION_IMAGE_MAX_BYTES: number;
7
+ export declare const SLACK_MCP_IMAGE_MAX_BYTES: number;
7
8
  declare const SLACK_REACTION_CONTEXT_CHECKPOINT_VERSION = 1;
8
9
  type SlackPayload = Record<string, unknown> & {
9
10
  ok?: unknown;
@@ -137,7 +138,7 @@ export type SlackHomeBlock = {
137
138
  } | {
138
139
  type: "divider";
139
140
  };
140
- type SlackBotOperation = "channels.list" | "search.context" | "channel_history.read" | "thread_replies.read" | "users.list" | "files.list" | "file.info" | "file.content.read" | "home.publish" | "message.post" | "message.update" | "message.delete";
141
+ type SlackBotOperation = "channels.list" | "search.context" | "channel_history.read" | "thread_replies.read" | "users.list" | "files.list" | "file.info" | "file.content.read" | "file.upload" | "home.publish" | "message.post" | "message.update" | "message.delete";
141
142
  type SlackBotContext = {
142
143
  accountId: string;
143
144
  workspaceId: string;
@@ -189,6 +190,25 @@ export declare class SlackBotProviderError extends Error {
189
190
  readonly retryAfterMs: number | null;
190
191
  constructor(code: string, retryAfterMs?: number | null);
191
192
  }
193
+ export declare function slackHistoryRateLimited(error: unknown): error is SlackBotProviderError;
194
+ /**
195
+ * The post or update ledger already binds this operation id to different
196
+ * request bytes. Raised from the durable claim, before any Slack write, so a
197
+ * caller that knows an earlier release wrote other bytes for the same operation
198
+ * may retry once with those bytes.
199
+ */
200
+ export declare class SlackBotOperationConflictError extends Error {
201
+ constructor(kind: "post" | "update" | "delete");
202
+ }
203
+ /** Only Slack's one-time HTTPS upload endpoint may receive retained bytes. */
204
+ export declare function slackFileUploadUrl(value: string): URL;
205
+ /** A channel listing alone is not proof of delivery to the requested thread. */
206
+ export declare function slackFileSharedToThread(value: unknown, input: {
207
+ fileId: string;
208
+ channelId: string;
209
+ threadTimestamp: string;
210
+ botUserId: string;
211
+ }): boolean;
192
212
  export declare function authorizeSlackSharedImageRead(channel: {
193
213
  isArchived: boolean;
194
214
  isShared: boolean;
@@ -221,7 +241,143 @@ export declare function resolveSlackBotConnectionForTool(input: {
221
241
  connection: ConnectionMetadata;
222
242
  metadata: OpenGeniSlackBotConnectionMetadata;
223
243
  context: SlackBotContext;
244
+ sharingGeneration?: number;
245
+ authorizeOrganizationAccess?: SlackProviderAuthorization;
246
+ }>;
247
+ /**
248
+ * The one destination a scheduled run may post to as the Opengeni bot: the
249
+ * channel a person chose on the task, through the bot connection frozen on the
250
+ * run's session. The agent never supplies a channel. Every call re-reads the
251
+ * task, so a person clearing or changing the channel takes effect at once.
252
+ */
253
+ export declare function resolveScheduledSlackBotPostTarget(input: {
254
+ db: Database;
255
+ grant: AccessGrant;
256
+ sessionId: string | null;
257
+ }): Promise<Awaited<ReturnType<typeof resolveSlackBotConnectionForTool>> & {
258
+ scheduledTaskId: string;
259
+ channelId: string;
260
+ }>;
261
+ /**
262
+ * Save one message for the task's channel without sending it. The returned id
263
+ * is server-owned and becomes the Slack post operation id, so retrying the
264
+ * send can never post the same message twice.
265
+ */
266
+ export declare function prepareScheduledSlackBotPost(input: {
267
+ db: Database;
268
+ grant: AccessGrant;
269
+ sessionId: string | null;
270
+ text: string;
271
+ threadTimestamp?: string | undefined;
272
+ }): Promise<{
273
+ messageId: string;
274
+ identity: "workspace_bot";
275
+ channelId: string;
276
+ threadTimestamp: string | null;
277
+ text: string;
278
+ sent: boolean;
279
+ }>;
280
+ /** Ordinary chats choose an explicit channel; scheduled roots retain their
281
+ * person-chosen destination and cannot enter this path through a child. */
282
+ export declare function prepareSlackBotPost(input: {
283
+ db: Database;
284
+ grant: AccessGrant;
285
+ sessionId: string | null;
286
+ text: string;
287
+ channelId?: string;
288
+ connectionId?: string;
289
+ threadTimestamp?: string;
290
+ }): Promise<{
291
+ messageId: string;
292
+ identity: "workspace_bot";
293
+ channelId: string;
294
+ threadTimestamp: string | null;
295
+ text: string;
296
+ sent: boolean;
297
+ } | {
298
+ messageId: string;
299
+ identity: "organization_bot";
300
+ channelId: string;
301
+ threadTimestamp: string | null;
302
+ text: string;
303
+ sent: boolean;
224
304
  }>;
305
+ /** The saved server-owned identity, destination, text and sharing generation
306
+ * are immutable. Neither a reconnect nor a revoked/re-enabled share redirects it. */
307
+ export declare function sendSlackBotPost(input: {
308
+ db: Database;
309
+ settings: Settings;
310
+ grant: AccessGrant;
311
+ sessionId: string | null;
312
+ messageId: string;
313
+ slackFetch?: typeof fetch;
314
+ authorizeProviderRequest?: SlackProviderAuthorization;
315
+ }): Promise<{
316
+ channelId: string | null;
317
+ timestamp: string | null;
318
+ threadTimestamp: string | null;
319
+ alreadySent: boolean;
320
+ receipt: {
321
+ credentialRole: "opengeni_slack_bot";
322
+ credentialLabel: "OpenGeni Slack bot";
323
+ connectionId: string;
324
+ operation: string;
325
+ operationId: string;
326
+ clientMessageId: string;
327
+ };
328
+ } | {
329
+ channelId: string;
330
+ timestamp: string;
331
+ threadTimestamp: string | null;
332
+ receipt: SlackBotReceipt;
333
+ }>;
334
+ /**
335
+ * Send a message this run prepared, exactly as saved. The destination must
336
+ * still be the task's channel and the bot connection unchanged; otherwise the
337
+ * send is refused rather than redirected.
338
+ */
339
+ export declare function sendScheduledSlackBotPost(input: {
340
+ db: Database;
341
+ settings: Settings;
342
+ grant: AccessGrant;
343
+ sessionId: string | null;
344
+ messageId: string;
345
+ slackFetch?: typeof fetch;
346
+ authorizeProviderRequest?: SlackProviderAuthorization;
347
+ }): Promise<{
348
+ channelId: string | null;
349
+ timestamp: string | null;
350
+ threadTimestamp: string | null;
351
+ alreadySent: boolean;
352
+ receipt: {
353
+ credentialRole: "opengeni_slack_bot";
354
+ credentialLabel: "OpenGeni Slack bot";
355
+ connectionId: string;
356
+ operation: string;
357
+ operationId: string;
358
+ clientMessageId: string;
359
+ };
360
+ } | {
361
+ channelId: string;
362
+ timestamp: string;
363
+ threadTimestamp: string | null;
364
+ receipt: SlackBotReceipt;
365
+ }>;
366
+ /**
367
+ * Check, with the bot's token, that a person's chosen task channel is one the
368
+ * bot is a member of, active, and not shared with another organization.
369
+ */
370
+ export declare function verifyScheduledTaskSlackChannel(deps: {
371
+ db: Database;
372
+ settings: Settings;
373
+ slackFetch?: typeof fetch;
374
+ }, input: {
375
+ accountId: string;
376
+ workspaceId: string;
377
+ subjectId: string;
378
+ connectionId: string;
379
+ channelId: string;
380
+ }): Promise<void>;
225
381
  export declare class OpenGeniSlackBotClient {
226
382
  private readonly db;
227
383
  private readonly settings;
@@ -230,8 +386,12 @@ export declare class OpenGeniSlackBotClient {
230
386
  private readonly context;
231
387
  private readonly fetchImpl;
232
388
  private readonly authorizeProviderRequest?;
389
+ private readonly authorizeBotAccess?;
233
390
  private readonly resolveCredential;
234
- constructor(db: Database, settings: Settings, connection: ConnectionMetadata, metadata: OpenGeniSlackBotConnectionMetadata, context: SlackBotContext, fetchImpl?: FetchLike, authorizeProviderRequest?: SlackProviderAuthorization | undefined);
391
+ private readonly rateLimit;
392
+ constructor(db: Database, settings: Settings, connection: ConnectionMetadata, metadata: OpenGeniSlackBotConnectionMetadata, context: SlackBotContext, fetchImpl?: FetchLike, authorizeProviderRequest?: SlackProviderAuthorization | undefined, authorizeBotAccess?: ((method: string) => Promise<boolean | void>) | undefined);
393
+ private historyPageLimit;
394
+ private postReconciliationPageLimit;
235
395
  listChannels(input?: {
236
396
  limit?: number;
237
397
  cursor?: string;
@@ -243,6 +403,7 @@ export declare class OpenGeniSlackBotClient {
243
403
  isMember: boolean;
244
404
  isDirectMessage: boolean;
245
405
  isMpim: boolean;
406
+ userId: string | null;
246
407
  isArchived: boolean;
247
408
  isShared: boolean;
248
409
  isExternallyShared: boolean;
@@ -266,6 +427,7 @@ export declare class OpenGeniSlackBotClient {
266
427
  isMember: boolean;
267
428
  isDirectMessage: boolean;
268
429
  isMpim: boolean;
430
+ userId: string | null;
269
431
  isArchived: boolean;
270
432
  isShared: boolean;
271
433
  isExternallyShared: boolean;
@@ -278,6 +440,50 @@ export declare class OpenGeniSlackBotClient {
278
440
  purpose: string;
279
441
  numMembers: number | null;
280
442
  }>;
443
+ /** Server-only upload preparation; the temporary URL never enters a tool result. */
444
+ allocateFileUpload(input: {
445
+ channelId: string;
446
+ privateRecipientSlackUserId?: string;
447
+ filename: string;
448
+ sizeBytes: number;
449
+ }): Promise<{
450
+ fileId: string;
451
+ uploadUrl: URL;
452
+ } & {
453
+ receipt: SlackBotReceipt;
454
+ }>;
455
+ transferFileUpload(input: {
456
+ channelId: string;
457
+ privateRecipientSlackUserId?: string;
458
+ uploadUrl: URL;
459
+ bytes: Uint8Array;
460
+ }): Promise<{
461
+ uploaded: boolean;
462
+ } & {
463
+ receipt: SlackBotReceipt;
464
+ }>;
465
+ completeFileUpload(input: {
466
+ channelId: string;
467
+ privateRecipientSlackUserId?: string;
468
+ threadTimestamp: string;
469
+ fileId: string;
470
+ title: string;
471
+ }): Promise<{
472
+ fileId: string;
473
+ } & {
474
+ receipt: SlackBotReceipt;
475
+ }>;
476
+ reconcileFileUpload(input: {
477
+ channelId: string;
478
+ privateRecipientSlackUserId?: string;
479
+ threadTimestamp: string;
480
+ fileId: string;
481
+ }): Promise<{
482
+ shared: boolean;
483
+ } & {
484
+ receipt: SlackBotReceipt;
485
+ }>;
486
+ private requireFileUploadScope;
281
487
  /**
282
488
  * Replace one Slack user's private App Home view. `views.publish` is a
283
489
  * naturally convergent replace operation: Slack event retries may safely
@@ -300,6 +506,7 @@ export declare class OpenGeniSlackBotClient {
300
506
  isMember: boolean;
301
507
  isDirectMessage: boolean;
302
508
  isMpim: boolean;
509
+ userId: string | null;
303
510
  isArchived: boolean;
304
511
  isShared: boolean;
305
512
  isExternallyShared: boolean;
@@ -321,6 +528,7 @@ export declare class OpenGeniSlackBotClient {
321
528
  isMember: boolean;
322
529
  isDirectMessage: boolean;
323
530
  isMpim: boolean;
531
+ userId: string | null;
324
532
  isArchived: boolean;
325
533
  isShared: boolean;
326
534
  isExternallyShared: boolean;
@@ -357,6 +565,7 @@ export declare class OpenGeniSlackBotClient {
357
565
  isMember: boolean;
358
566
  isDirectMessage: boolean;
359
567
  isMpim: boolean;
568
+ userId: string | null;
360
569
  isArchived: boolean;
361
570
  isShared: boolean;
362
571
  isExternallyShared: boolean;
@@ -408,6 +617,7 @@ export declare class OpenGeniSlackBotClient {
408
617
  isMember: boolean;
409
618
  isDirectMessage: boolean;
410
619
  isMpim: boolean;
620
+ userId: string | null;
411
621
  isArchived: boolean;
412
622
  isShared: boolean;
413
623
  isExternallyShared: boolean;
@@ -448,7 +658,6 @@ export declare class OpenGeniSlackBotClient {
448
658
  messageTimestamp: string;
449
659
  checkpoint: unknown | null;
450
660
  checkpointBinding: SlackReactionContextCheckpointBinding;
451
- saveCheckpoint: (checkpoint: SlackReactionContextCheckpoint) => Promise<void>;
452
661
  }): Promise<{
453
662
  channel: {
454
663
  id: string;
@@ -457,6 +666,7 @@ export declare class OpenGeniSlackBotClient {
457
666
  isMember: boolean;
458
667
  isDirectMessage: boolean;
459
668
  isMpim: boolean;
669
+ userId: string | null;
460
670
  isArchived: boolean;
461
671
  isShared: boolean;
462
672
  isExternallyShared: boolean;
@@ -507,6 +717,7 @@ export declare class OpenGeniSlackBotClient {
507
717
  }[];
508
718
  }[];
509
719
  truncated: boolean;
720
+ contextUnavailable?: boolean;
510
721
  } & {
511
722
  receipt: SlackBotReceipt;
512
723
  }>;
@@ -544,8 +755,9 @@ export declare class OpenGeniSlackBotClient {
544
755
  receipt: SlackBotReceipt;
545
756
  }>;
546
757
  /**
547
- * Workspace-wide public search through Slack's Real-time Search API
548
- * (`assistant.search.context`) under the bot identity.
758
+ * Public search in a trusted Slack interaction through Real-time Search
759
+ * (`assistant.search.context`) under the bot identity. Unlisted deployments
760
+ * cannot use this API; approved deployments also need Slack's action token.
549
761
  *
550
762
  * The bot never carries private-search authority: `channel_types` is pinned
551
763
  * to `public_channel` server-side regardless of caller input, so private
@@ -555,6 +767,8 @@ export declare class OpenGeniSlackBotClient {
555
767
  */
556
768
  searchContext(input: {
557
769
  query: string;
770
+ /** Server-owned Slack interaction token, never an agent tool argument. */
771
+ actionToken?: string;
558
772
  contentTypes?: readonly ("messages" | "files" | "channels")[];
559
773
  includeBots?: boolean;
560
774
  /** UNIX seconds bounds on message timestamps. */
@@ -610,6 +824,7 @@ export declare class OpenGeniSlackBotClient {
610
824
  isMember: boolean;
611
825
  isDirectMessage: boolean;
612
826
  isMpim: boolean;
827
+ userId: string | null;
613
828
  isArchived: boolean;
614
829
  isShared: boolean;
615
830
  isExternallyShared: boolean;
@@ -649,6 +864,7 @@ export declare class OpenGeniSlackBotClient {
649
864
  isMember: boolean;
650
865
  isDirectMessage: boolean;
651
866
  isMpim: boolean;
867
+ userId: string | null;
652
868
  isArchived: boolean;
653
869
  isShared: boolean;
654
870
  isExternallyShared: boolean;
@@ -680,7 +896,51 @@ export declare class OpenGeniSlackBotClient {
680
896
  fileId: string;
681
897
  parentFileId?: string;
682
898
  offset?: number;
683
- }): Promise<{
899
+ }): Promise<({
900
+ channel: {
901
+ id: string;
902
+ name: string;
903
+ isPrivate: boolean;
904
+ isMember: boolean;
905
+ isDirectMessage: boolean;
906
+ isMpim: boolean;
907
+ userId: string | null;
908
+ isArchived: boolean;
909
+ isShared: boolean;
910
+ isExternallyShared: boolean;
911
+ isOrgShared: boolean;
912
+ isPendingExternallyShared: boolean;
913
+ contextTeamId: string | null;
914
+ connectedTeamIds: string[] | null;
915
+ sharedTeamIds: string[] | null;
916
+ topic: string;
917
+ purpose: string;
918
+ numMembers: number | null;
919
+ };
920
+ file: {
921
+ id: string;
922
+ name: string;
923
+ title: string;
924
+ mimetype: string;
925
+ filetype: string;
926
+ mode: string;
927
+ size: number | null;
928
+ originatingHuddleId: string;
929
+ huddleTranscriptFileId: string;
930
+ };
931
+ image: Readonly<{
932
+ fileId: string;
933
+ filename: string;
934
+ contentType: "image/png" | "image/jpeg" | "image/webp";
935
+ bytes: Uint8Array;
936
+ }>;
937
+ contentType?: never;
938
+ offset?: never;
939
+ content?: never;
940
+ nextOffset?: never;
941
+ truncated?: never;
942
+ } | {
943
+ image?: never;
684
944
  channel: {
685
945
  id: string;
686
946
  name: string;
@@ -688,6 +948,7 @@ export declare class OpenGeniSlackBotClient {
688
948
  isMember: boolean;
689
949
  isDirectMessage: boolean;
690
950
  isMpim: boolean;
951
+ userId: string | null;
691
952
  isArchived: boolean;
692
953
  isShared: boolean;
693
954
  isExternallyShared: boolean;
@@ -716,7 +977,7 @@ export declare class OpenGeniSlackBotClient {
716
977
  content: string;
717
978
  nextOffset: number | null;
718
979
  truncated: boolean;
719
- } & {
980
+ }) & {
720
981
  receipt: SlackBotReceipt;
721
982
  }>;
722
983
  /**
@@ -783,11 +1044,14 @@ export declare class OpenGeniSlackBotClient {
783
1044
  private recordAudit;
784
1045
  private auditMetadata;
785
1046
  }
1047
+ /** Full decode guards the model image block against header-only or corrupt files. */
1048
+ export declare function validateSlackMcpImage(bytes: Uint8Array): Promise<void>;
786
1049
  export declare function createOpenGeniSlackBotClient(deps: {
787
1050
  db: Database;
788
1051
  settings: Settings;
789
1052
  slackFetch?: typeof fetch;
790
1053
  authorizeProviderRequest?: SlackProviderAuthorization;
1054
+ authorizeBotMutation?: () => Promise<void>;
791
1055
  }, resolved: Awaited<ReturnType<typeof resolveSlackBotConnectionForTool>>): OpenGeniSlackBotClient;
792
1056
  export declare function createOpenGeniSlackBotInteractionClient(deps: {
793
1057
  db: Database;
@@ -801,6 +1065,12 @@ export declare function createOpenGeniSlackBotInteractionClient(deps: {
801
1065
  subjectId: string;
802
1066
  sessionId?: string | null;
803
1067
  }): Promise<OpenGeniSlackBotClient>;
1068
+ /** A private route needs live provider proof of the exact linked requester's bot IM. */
1069
+ export declare function assertSlackPrivateTaskRecipient(channel: {
1070
+ isDirectMessage: boolean;
1071
+ isMpim: boolean;
1072
+ userId: string | null;
1073
+ }, slackUserId: string): void;
804
1074
  export declare function sniffSlackReactionImageMime(bytes: Uint8Array): "image/png" | "image/jpeg" | "image/webp" | null;
805
1075
  export declare function resolveSlackFilesListPage(input: {
806
1076
  channelId: string;
@@ -813,4 +1083,12 @@ export declare function createSlackFilesListCursor(input: {
813
1083
  page: number;
814
1084
  }, context: SlackFilesCursorContext): string;
815
1085
  export declare function nextSlackFilesListPage(payload: SlackPayload, requested: SlackFilesListPage, returnedFileCount: number): number | null;
1086
+ /**
1087
+ * Slack action IDs are unique within a block. Keep the logical card untouched
1088
+ * for the durable request digest, and partition repeated actions only on the
1089
+ * provider wire. In particular, a legacy invalid_blocks receipt can retry with
1090
+ * its original operation ID and digest; completed/uncertain posts keep their
1091
+ * existing replay/reconciliation path. Values and action IDs remain exact.
1092
+ */
1093
+ export declare function slackMessageWireBlocks(blocks: SlackMessageBlock[] | undefined): SlackMessageBlock[] | undefined;
816
1094
  export {};
@@ -0,0 +1,62 @@
1
+ /** Durability port: checkpoints must be lease-fenced before any provider write. */
2
+ export type SlackFileUploadPhase = "pending" | "uploading" | "uploaded" | "completing" | "outcome_unknown" | "completed";
3
+ export type SlackFileUploadState = {
4
+ phase: SlackFileUploadPhase;
5
+ slackFileId: string | null;
6
+ };
7
+ export type SlackFileUploadProvider = {
8
+ allocateFileUpload(input: {
9
+ channelId: string;
10
+ privateRecipientSlackUserId?: string;
11
+ filename: string;
12
+ sizeBytes: number;
13
+ }): Promise<{
14
+ fileId: string;
15
+ uploadUrl: URL;
16
+ }>;
17
+ transferFileUpload(input: {
18
+ channelId: string;
19
+ privateRecipientSlackUserId?: string;
20
+ uploadUrl: URL;
21
+ bytes: Uint8Array;
22
+ }): Promise<unknown>;
23
+ completeFileUpload(input: {
24
+ channelId: string;
25
+ privateRecipientSlackUserId?: string;
26
+ threadTimestamp: string;
27
+ fileId: string;
28
+ title: string;
29
+ }): Promise<unknown>;
30
+ reconcileFileUpload(input: {
31
+ channelId: string;
32
+ privateRecipientSlackUserId?: string;
33
+ threadTimestamp: string;
34
+ fileId: string;
35
+ }): Promise<{
36
+ shared: boolean;
37
+ }>;
38
+ };
39
+ export declare class SlackFileUploadClaimLostError extends Error {
40
+ constructor();
41
+ }
42
+ export declare class SlackFileUploadOutcomeUnknownError extends Error {
43
+ constructor();
44
+ }
45
+ /** No automatic retries. An uncertain completion is reconciled, never resent. */
46
+ export declare function runSlackFileUpload(input: {
47
+ state: SlackFileUploadState;
48
+ provider: SlackFileUploadProvider;
49
+ checkpoint: (update: {
50
+ expectedPhase: SlackFileUploadPhase;
51
+ phase: SlackFileUploadPhase;
52
+ slackFileId?: string;
53
+ }) => Promise<boolean>;
54
+ channelId: string;
55
+ privateRecipientSlackUserId?: string;
56
+ threadTimestamp: string;
57
+ filename: string;
58
+ bytes: Uint8Array;
59
+ }): Promise<{
60
+ slackFileId: string;
61
+ replayed: boolean;
62
+ }>;