@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
@@ -0,0 +1,116 @@
1
+ import { type AccessGrantAuthorization, type ApiRouteDeps } from "@opengeni/core";
2
+ import { type Database } from "@opengeni/db";
3
+ import { ApiHttpError } from "./http/api-error.js";
4
+ /**
5
+ * One evaluation's budget. Below the MCP SDK's 5 s setup-request timeout, so a
6
+ * stalled authority read is reported as unavailable authority rather than
7
+ * silently dropping the target connector (a 404).
8
+ */
9
+ export declare const TARGET_FENCE_DEADLINE_MS = 2500;
10
+ /**
11
+ * A part of the live fence. `db` is the evaluation's bounded transaction;
12
+ * `stop` aborts once the evaluation's deadline passes or its request ends. The
13
+ * evaluation checks it before each part; the route part also checks it between
14
+ * its capability, integration and connection reads.
15
+ */
16
+ export type TargetFenceCheck = (db: Database, stop: AbortSignal) => Promise<void>;
17
+ export type TargetFenceCaller = {
18
+ /** Read inside the evaluation's bounded transaction. */
19
+ scoped?: TargetFenceCheck;
20
+ /** Runs beside it: its own bounded transaction, or the route's fresh grant. */
21
+ standalone?: (stop: AbortSignal) => Promise<void>;
22
+ };
23
+ type Outcome = "denied" | "approval_required" | "unavailable" | "aborted" | "closed";
24
+ export type TargetFenceStats = {
25
+ /** Started evaluations (caller-only plus full). */
26
+ evaluations: number;
27
+ full: number;
28
+ /** Wall time spent inside evaluations, summed (they may overlap). */
29
+ durationMs: number;
30
+ outcomes: Partial<Record<Outcome, number>>;
31
+ };
32
+ /**
33
+ * Authority could not be read in time: a 503 distinct from a provider failure
34
+ * (502, outcome unknown). Never names the target, its connector or its owner.
35
+ */
36
+ export declare function targetAuthorityUnavailable(retryable: boolean): ApiHttpError;
37
+ /**
38
+ * Live caller authority for one targeted request. A verified organization key
39
+ * is read without a lock or write (admission already recorded its use); an
40
+ * external continuation keeps its complete commit authorizer; a person keeps
41
+ * the route's fresh grant (`reauthorize`), unchanged. That grant runs outside
42
+ * the evaluation's transaction: the deadline answers the request without
43
+ * cancelling it.
44
+ */
45
+ export declare function targetFenceCaller(deps: Pick<ApiRouteDeps, "db">, authorization: AccessGrantAuthorization, reauthorize: (() => Promise<void>) | undefined): TargetFenceCaller;
46
+ /**
47
+ * The single live fence of one targeted request: exact caller, pinned Site,
48
+ * selected route (connector configuration and connection) and action policy.
49
+ *
50
+ * Every evaluation reads current state; nothing is cached, shared between
51
+ * physical requests, or reused across requests. `full()` runs once for each
52
+ * installed physical-request boundary, after that request's last credential
53
+ * step. Its Site, route, policy and organization-key reads share one
54
+ * transaction bounded by `statement_timeout`; an external actor's authorizer
55
+ * runs in a second bounded transaction and a person's fresh grant beside them.
56
+ * At the deadline the evaluation is answered as unavailable authority and no
57
+ * further part starts. The running part may still finish its current read and
58
+ * issue its remaining ones (a pinned Site's version after its artifact, the
59
+ * next selected connection), each bounded by the statement timeout; the
60
+ * transaction then rolls back.
61
+ * Boundaries swallow hook failures, so the fence records each outcome itself;
62
+ * `settle()` reports a recorded denial or unavailable authority instead of an
63
+ * opaque missing connector. After `close()` (strictly after the awaited
64
+ * cleanup) every evaluation fails, so nothing is authorized once the request
65
+ * scope ends.
66
+ */
67
+ export declare class TargetAuthorityFence {
68
+ #private;
69
+ private readonly input;
70
+ readonly stats: TargetFenceStats;
71
+ constructor(input: {
72
+ db: Database;
73
+ /** A targeted request must install its route before any full evaluation. */
74
+ targeted: boolean;
75
+ caller: TargetFenceCaller;
76
+ signal?: AbortSignal | undefined;
77
+ deadlineMs?: number;
78
+ });
79
+ /** Each part is installed once; a later install never replaces it. */
80
+ setSite(check: TargetFenceCheck): void;
81
+ /** Installed by preparation before any provider is constructed. */
82
+ setRoute(check: TargetFenceCheck): void;
83
+ /** Installed when the selected call's action policy is decided. */
84
+ setPolicy(check: TargetFenceCheck): void;
85
+ /** Live caller only: before credential acquisition may refresh or record use. */
86
+ caller(): Promise<void>;
87
+ /** Admission: the live caller, with unavailable authority as a retryable 503. */
88
+ admit(): Promise<void>;
89
+ /** Caller, Site, route and policy: once per physical provider request. */
90
+ full(): Promise<void>;
91
+ /** Credential hooks report a boolean; their failure is recorded, not lost. */
92
+ allows(): Promise<boolean>;
93
+ /**
94
+ * An explicit fence before an application step. Denials keep their error;
95
+ * unavailable authority becomes a 503 (retryable only before begin).
96
+ */
97
+ check(options: {
98
+ retryable: boolean;
99
+ }): Promise<void>;
100
+ /** Transport boundary of a credential-fenced connector: no database read. */
101
+ assertOpen(): void;
102
+ close(): void;
103
+ /**
104
+ * Classify a failed preparation or a missing target. Waits (bounded) for
105
+ * evaluations already started, then prefers a recorded denial, then an
106
+ * approval change, then unavailable authority; otherwise `error` stands.
107
+ * In-flight, aborted and post-close evaluations never decide by themselves.
108
+ */
109
+ settle(error: unknown, options?: {
110
+ retryable: boolean;
111
+ }): Promise<never>;
112
+ failure(options?: {
113
+ retryable: boolean;
114
+ }): Promise<unknown>;
115
+ }
116
+ export {};
@@ -0,0 +1,225 @@
1
+ import { type ToolGatewayResolveRequest, type ToolGatewayInvokeRequest, type ToolGatewayTargetApprovalRequest, type ToolGatewayManifestRequest } from "@opengeni/contracts";
2
+ import { type AccessGrantAuthorization, type ApiRouteDeps } from "@opengeni/core";
3
+ import { beginTargetToolGatewayCall, issueToolGatewayApproval } from "@opengeni/db";
4
+ import { prepareWorkspaceToolGateway, requireWorkspaceSiteToolAuthorization, type WorkspaceToolGatewayAuthorization } from "./workspace-tool-gateway.js";
5
+ import { TargetAuthorityFence } from "./workspace-tool-target-fence.js";
6
+ export type TargetGatewayOptions = {
7
+ signal?: AbortSignal;
8
+ /** The route's fresh human grant; organization keys and external actors use their own reads. */
9
+ reauthorize?: () => Promise<void>;
10
+ prepare?: typeof prepareWorkspaceToolGateway;
11
+ begin?: typeof beginTargetToolGatewayCall;
12
+ issue?: typeof issueToolGatewayApproval;
13
+ authorizeSite?: typeof requireWorkspaceSiteToolAuthorization;
14
+ /** Observes the request's fence (statistics), never its authority. */
15
+ onFence?: (fence: TargetAuthorityFence) => void;
16
+ };
17
+ /**
18
+ * The request's single live fence. The owner closes it strictly after the
19
+ * awaited preparation cleanup. `targeted` requests must install their route.
20
+ */
21
+ export declare function createTargetFence(deps: ApiRouteDeps, authorization: WorkspaceToolGatewayAuthorization, options: TargetGatewayOptions, targeted: boolean): TargetAuthorityFence;
22
+ export declare function resolveWorkspaceToolTarget(deps: ApiRouteDeps, authorization: WorkspaceToolGatewayAuthorization, request: ToolGatewayResolveRequest, options?: TargetGatewayOptions): Promise<{
23
+ version: 1;
24
+ definitionDigest: string;
25
+ entry: {
26
+ identity: {
27
+ serverId: string;
28
+ toolName: string;
29
+ };
30
+ modelName: string;
31
+ codemodePath: string[];
32
+ title?: string | undefined;
33
+ description?: string | undefined;
34
+ inputSchema: Record<string, import("zod").JSONType>;
35
+ outputSchema?: Record<string, import("zod").JSONType> | undefined;
36
+ annotations?: {
37
+ [x: string]: unknown;
38
+ title?: string | undefined;
39
+ readOnlyHint?: boolean | undefined;
40
+ destructiveHint?: boolean | undefined;
41
+ idempotentHint?: boolean | undefined;
42
+ openWorldHint?: boolean | undefined;
43
+ } | undefined;
44
+ icons?: {
45
+ src: string;
46
+ mimeType?: string | undefined;
47
+ sizes?: string[] | undefined;
48
+ theme?: "dark" | "light" | undefined;
49
+ }[] | undefined;
50
+ source: "codex_apps" | "docs" | "files" | "interaction" | "mcp" | "opengeni";
51
+ approval: "human" | "none" | "policy";
52
+ };
53
+ }>;
54
+ export declare function invokeWorkspaceToolTarget(deps: ApiRouteDeps, authorization: WorkspaceToolGatewayAuthorization, request: ToolGatewayInvokeRequest, options?: TargetGatewayOptions): Promise<{
55
+ operationId: string;
56
+ tool: {
57
+ version: 1;
58
+ definitionDigest: string;
59
+ entry: {
60
+ identity: {
61
+ serverId: string;
62
+ toolName: string;
63
+ };
64
+ modelName: string;
65
+ codemodePath: string[];
66
+ title?: string | undefined;
67
+ description?: string | undefined;
68
+ inputSchema: Record<string, import("zod").JSONType>;
69
+ outputSchema?: Record<string, import("zod").JSONType> | undefined;
70
+ annotations?: {
71
+ [x: string]: unknown;
72
+ title?: string | undefined;
73
+ readOnlyHint?: boolean | undefined;
74
+ destructiveHint?: boolean | undefined;
75
+ idempotentHint?: boolean | undefined;
76
+ openWorldHint?: boolean | undefined;
77
+ } | undefined;
78
+ icons?: {
79
+ src: string;
80
+ mimeType?: string | undefined;
81
+ sizes?: string[] | undefined;
82
+ theme?: "dark" | "light" | undefined;
83
+ }[] | undefined;
84
+ source: "codex_apps" | "docs" | "files" | "interaction" | "mcp" | "opengeni";
85
+ approval: "human" | "none" | "policy";
86
+ };
87
+ };
88
+ result: {
89
+ [x: string]: unknown;
90
+ content: ({
91
+ [x: string]: unknown;
92
+ type: "text";
93
+ text: string;
94
+ annotations?: Record<string, import("zod").JSONType> | undefined;
95
+ _meta?: Record<string, import("zod").JSONType> | undefined;
96
+ } | {
97
+ [x: string]: unknown;
98
+ type: "image";
99
+ data: string;
100
+ mimeType: string;
101
+ annotations?: Record<string, import("zod").JSONType> | undefined;
102
+ _meta?: Record<string, import("zod").JSONType> | undefined;
103
+ } | {
104
+ [x: string]: unknown;
105
+ type: "audio";
106
+ data: string;
107
+ mimeType: string;
108
+ annotations?: Record<string, import("zod").JSONType> | undefined;
109
+ _meta?: Record<string, import("zod").JSONType> | undefined;
110
+ } | {
111
+ [x: string]: unknown;
112
+ type: "resource_link";
113
+ name: string;
114
+ title?: string | undefined;
115
+ uri: string;
116
+ description?: string | undefined;
117
+ mimeType?: string | undefined;
118
+ size?: number | undefined;
119
+ icons?: {
120
+ src: string;
121
+ mimeType?: string | undefined;
122
+ sizes?: string[] | undefined;
123
+ theme?: "dark" | "light" | undefined;
124
+ }[] | undefined;
125
+ annotations?: Record<string, import("zod").JSONType> | undefined;
126
+ _meta?: Record<string, import("zod").JSONType> | undefined;
127
+ } | {
128
+ [x: string]: unknown;
129
+ type: "resource";
130
+ resource: {
131
+ [x: string]: unknown;
132
+ uri: string;
133
+ mimeType?: string | undefined;
134
+ text: string;
135
+ _meta?: Record<string, import("zod").JSONType> | undefined;
136
+ } | {
137
+ [x: string]: unknown;
138
+ uri: string;
139
+ mimeType?: string | undefined;
140
+ blob: string;
141
+ _meta?: Record<string, import("zod").JSONType> | undefined;
142
+ };
143
+ annotations?: Record<string, import("zod").JSONType> | undefined;
144
+ _meta?: Record<string, import("zod").JSONType> | undefined;
145
+ })[];
146
+ structuredContent?: Record<string, import("zod").JSONType> | undefined;
147
+ isError?: boolean | undefined;
148
+ _meta?: Record<string, import("zod").JSONType> | undefined;
149
+ };
150
+ }>;
151
+ export declare function approveWorkspaceToolTarget(deps: ApiRouteDeps, authorization: AccessGrantAuthorization, request: ToolGatewayTargetApprovalRequest, options?: TargetGatewayOptions): Promise<{
152
+ bindingVersion: 2;
153
+ operationId: string;
154
+ tool: {
155
+ version: 1;
156
+ definitionDigest: string;
157
+ entry: {
158
+ identity: {
159
+ serverId: string;
160
+ toolName: string;
161
+ };
162
+ modelName: string;
163
+ codemodePath: string[];
164
+ title?: string | undefined;
165
+ description?: string | undefined;
166
+ inputSchema: Record<string, import("zod").JSONType>;
167
+ outputSchema?: Record<string, import("zod").JSONType> | undefined;
168
+ annotations?: {
169
+ [x: string]: unknown;
170
+ title?: string | undefined;
171
+ readOnlyHint?: boolean | undefined;
172
+ destructiveHint?: boolean | undefined;
173
+ idempotentHint?: boolean | undefined;
174
+ openWorldHint?: boolean | undefined;
175
+ } | undefined;
176
+ icons?: {
177
+ src: string;
178
+ mimeType?: string | undefined;
179
+ sizes?: string[] | undefined;
180
+ theme?: "dark" | "light" | undefined;
181
+ }[] | undefined;
182
+ source: "codex_apps" | "docs" | "files" | "interaction" | "mcp" | "opengeni";
183
+ approval: "human" | "none" | "policy";
184
+ };
185
+ };
186
+ approvalToken: string;
187
+ expiresAt: string;
188
+ }>;
189
+ /** Compatibility discovery is bounded by requested identities, grouped per connector. */
190
+ export declare function resolveWorkspaceToolManifest(deps: ApiRouteDeps, authorization: AccessGrantAuthorization, request: ToolGatewayManifestRequest, options?: TargetGatewayOptions): Promise<{
191
+ version: 1;
192
+ digest: string;
193
+ tools: {
194
+ version: 1;
195
+ entry: {
196
+ identity: {
197
+ serverId: string;
198
+ toolName: string;
199
+ };
200
+ modelName: string;
201
+ codemodePath: string[];
202
+ title?: string | undefined;
203
+ description?: string | undefined;
204
+ inputSchema: Record<string, import("zod").JSONType>;
205
+ outputSchema?: Record<string, import("zod").JSONType> | undefined;
206
+ annotations?: {
207
+ [x: string]: unknown;
208
+ title?: string | undefined;
209
+ readOnlyHint?: boolean | undefined;
210
+ destructiveHint?: boolean | undefined;
211
+ idempotentHint?: boolean | undefined;
212
+ openWorldHint?: boolean | undefined;
213
+ } | undefined;
214
+ icons?: {
215
+ src: string;
216
+ mimeType?: string | undefined;
217
+ sizes?: string[] | undefined;
218
+ theme?: "dark" | "light" | undefined;
219
+ }[] | undefined;
220
+ source: "codex_apps" | "docs" | "files" | "interaction" | "mcp" | "opengeni";
221
+ approval: "human" | "none" | "policy";
222
+ };
223
+ definitionDigest: string;
224
+ }[];
225
+ }>;
@@ -0,0 +1,26 @@
1
+ import { type Settings } from "@opengeni/config";
2
+ import { type Database } from "@opengeni/db";
3
+ import { pinnedFetch } from "@opengeni/network";
4
+ import type { Observability } from "@opengeni/observability";
5
+ export declare const WORKSPACE_WEBHOOK_DISPATCH_BATCH_SIZE = 32;
6
+ export type WorkspaceWebhookDispatchDeps = {
7
+ db: Database;
8
+ settings: Settings;
9
+ observability?: Pick<Observability, "info" | "warn" | "error"> & Partial<Pick<Observability, "incrementCounter">>;
10
+ fetch?: typeof pinnedFetch;
11
+ };
12
+ export type WorkspaceWebhookBatchResult = {
13
+ claimed: number;
14
+ delivered: number;
15
+ failed: number;
16
+ };
17
+ /** Claim and deliver one globally bounded batch. At-least-once: receivers dedupe on event id. */
18
+ export declare function drainWorkspaceWebhookDeliveries(deps: WorkspaceWebhookDispatchDeps): Promise<WorkspaceWebhookBatchResult>;
19
+ /**
20
+ * One non-overlapping loop per API replica. PostgreSQL claims coordinate
21
+ * replicas; a crash only delays a delivery until its claim expires.
22
+ */
23
+ export declare function startWorkspaceWebhookDispatchPump(deps: WorkspaceWebhookDispatchDeps, options?: {
24
+ intervalMs?: number;
25
+ drain?: (deps: WorkspaceWebhookDispatchDeps) => Promise<WorkspaceWebhookBatchResult>;
26
+ }): () => Promise<void>;
@@ -0,0 +1,60 @@
1
+ import type { Settings } from "@opengeni/config";
2
+ import { type Database } from "@opengeni/db";
3
+ /**
4
+ * Whether SuperGrok can serve a workspace-level operation (video funding,
5
+ * realtime catalog, transcription): "a shared xAI candidate exists for
6
+ * this workspace" on the shared core, organization- or workspace-scoped
7
+ * shared connections only, never the viewer's personal accounts (design 5.3,
8
+ * EP-N11). Any route other than `core` (maintenance, or no receipt, which
9
+ * this binary's readiness check refuses) serves nothing.
10
+ */
11
+ export declare function workspaceXaiOperationAvailable(db: Database, settings: Settings, input: {
12
+ accountId: string;
13
+ workspaceId: string;
14
+ subjectId: string;
15
+ }): Promise<boolean>;
16
+ /** The SuperGrok status payload. */
17
+ export type XaiStatusPayload<Model> = {
18
+ connected: boolean;
19
+ valid: boolean;
20
+ accountCount: number;
21
+ models?: Model[];
22
+ activeAccount?: {
23
+ id: string;
24
+ label: string | null;
25
+ subject: string | null;
26
+ scope: "workspace" | "organization" | "user";
27
+ };
28
+ };
29
+ /**
30
+ * The SuperGrok status after the cutover receipt (design 5.3, status
31
+ * probe): the workspace's shared pool and its effective primary, validated
32
+ * by one live model read through the adapter on that connection. Any route
33
+ * other than the shared core reports nothing usable.
34
+ *
35
+ * The viewer's own personal connections count as connected wherever the
36
+ * owner-only reader shows them. Only in the viewer's own Personal workspace,
37
+ * only without a shared primary, and only for a caller who passes the
38
+ * owner check of a private account (`ownerVerified`: the verified owning
39
+ * person with `connections:write`, by browser sign-in, a verified
40
+ * external-identity assertion linked to them, or an agent acting with their
41
+ * full access; never a read-only agent, a plain bearer or the person's own
42
+ * API keys), is a personal connection the effective account (legacy scope
43
+ * `user`),
44
+ * validated by one live usage read as its owner there; that read also
45
+ * applies the organization's personal-connections rule (0735). Any other
46
+ * caller gets the stored count only, with no live read and no wake.
47
+ * Another person's personal connections are never listed.
48
+ */
49
+ export declare function readXaiCoreStatus<Model>(deps: {
50
+ db: Database;
51
+ settings: Settings;
52
+ }, input: {
53
+ accountId: string;
54
+ workspaceId: string;
55
+ subjectId: string;
56
+ models: () => Promise<Model[]>;
57
+ /** Asked only before a live personal read; false refuses it. */
58
+ ownerVerified: () => Promise<boolean>;
59
+ fetch?: unknown;
60
+ }): Promise<XaiStatusPayload<Model>>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@opengeni/api-router",
3
- "version": "3.0.1",
4
- "description": "OpenGeni HTTP surface: the Hono adapter/router (createApp), routes, MCP HTTP transport, and HTTP access adapters over @opengeni/core. An engine-distribution surface — its runtime closure includes engine-internal packages.",
3
+ "version": "3.1.2",
4
+ "description": "Opengeni HTTP surface: the Hono adapter/router (createApp), routes, MCP HTTP transport, and HTTP access adapters over @opengeni/core. An engine-distribution surface — its runtime closure includes engine-internal packages.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -38,30 +38,35 @@
38
38
  "prepublishOnly": "bash ../../scripts/prepublish-guard"
39
39
  },
40
40
  "dependencies": {
41
+ "@1password/sdk": "0.5.0",
41
42
  "@aws-sdk/client-s3": "^3.1044.0",
42
43
  "@aws-sdk/s3-request-presigner": "^3.1044.0",
43
44
  "@hono/zod-validator": "^0.7.6",
44
45
  "@llamaindex/liteparse": "2.14.2",
45
46
  "@modelcontextprotocol/sdk": "^1.29.0",
46
- "@opengeni/agent-proto": "^0.6.0",
47
- "@opengeni/artifact-tool": "^0.3.29",
48
- "@opengeni/capabilities": "^0.3.4",
49
- "@opengeni/codemode": "^0.5.9",
50
- "@opengeni/codex": "^0.2.23",
51
- "@opengeni/config": "^1.2.2",
52
- "@opengeni/contracts": "^4.1.0",
53
- "@opengeni/core": "^3.0.1",
54
- "@opengeni/db": "^5.0.1",
55
- "@opengeni/documents": "^0.8.30",
56
- "@opengeni/events": "^0.4.28",
57
- "@opengeni/github": "^0.7.13",
58
- "@opengeni/network": "^0.3.1",
59
- "@opengeni/observability": "^0.8.29",
60
- "@opengeni/runtime": "^3.0.1",
61
- "@opengeni/storage": "^0.2.130",
62
- "@opengeni/tool-gateway": "^0.1.10",
63
- "@opengeni/xai-subscription": "^0.1.4",
47
+ "@opengeni/agent-proto": "3.1.2",
48
+ "@opengeni/artifact-tool": "3.1.2",
49
+ "@opengeni/capabilities": "3.1.2",
50
+ "@opengeni/codemode": "3.1.2",
51
+ "@opengeni/codex": "3.1.2",
52
+ "@opengeni/config": "3.1.2",
53
+ "@opengeni/contracts": "3.1.2",
54
+ "@opengeni/core": "3.1.2",
55
+ "@opengeni/db": "3.1.2",
56
+ "@opengeni/documents": "3.1.2",
57
+ "@opengeni/events": "3.1.2",
58
+ "@opengeni/github": "3.1.2",
59
+ "@opengeni/interaction": "3.1.2",
60
+ "@opengeni/network": "3.1.2",
61
+ "@opengeni/observability": "3.1.2",
62
+ "@opengeni/runtime": "3.1.2",
63
+ "@opengeni/storage": "3.1.2",
64
+ "@opengeni/tool-gateway": "3.1.2",
65
+ "@opengeni/vaults": "3.1.2",
66
+ "@opengeni/vaults-onepassword": "3.1.2",
67
+ "@opengeni/xai-subscription": "3.1.2",
64
68
  "@temporalio/client": "^1.17.0",
69
+ "ajv": "^8.20.0",
65
70
  "better-auth": "^1.6.14",
66
71
  "hono": "^4.12.18",
67
72
  "json-bigint": "^1.0.0",
@@ -4,20 +4,64 @@ import {
4
4
  SessionAuthorizationDeniedError,
5
5
  type ApiRouteDeps,
6
6
  } from "@opengeni/core";
7
- import { freezeAgentLearningPolicy, withSessionRlsActorContext } from "@opengeni/db";
8
- import { HTTPException } from "hono/http-exception";
7
+ import {
8
+ freezeAgentLearningPolicy,
9
+ withSessionRlsActorContext,
10
+ withCreditDebitAttribution,
11
+ type CreditDebitAttribution,
12
+ currentCreditDebitAttribution,
13
+ } from "@opengeni/db";
14
+ import { ApiHttpError } from "./http/api-error";
15
+
16
+ const AGENT_ATTEMPT_AUTHORITY_INVALID = "agent attempt authority is invalid";
17
+
18
+ /**
19
+ * A refused agent-attempt credential. The detail code names why, so request
20
+ * telemetry can tell a process that outlived its turn (`caller_stale`) from a
21
+ * malformed or revoked credential instead of reporting it as unclassified.
22
+ */
23
+ function agentAttemptAuthorityError(
24
+ reason: "malformed" | SessionAuthorizationDeniedError["reason"],
25
+ cause?: unknown,
26
+ ): ApiHttpError {
27
+ const error = new ApiHttpError(403, {
28
+ code: "forbidden",
29
+ message: AGENT_ATTEMPT_AUTHORITY_INVALID,
30
+ retryable: false,
31
+ outcomeUnknown: false,
32
+ details: { code: `agent_attempt_${reason}` },
33
+ });
34
+ if (cause !== undefined) error.cause = cause;
35
+ return error;
36
+ }
37
+
38
+ /**
39
+ * Trusted payer for a non-agent grant: an authenticated human session pays as
40
+ * that human; keys and services are service work. An agent attempt must be
41
+ * resolved through the validated middleware context installed below.
42
+ */
43
+ export function creditDebitAttributionForGrant(grant: AccessGrant): CreditDebitAttribution {
44
+ if (grant.principalKind === "agent_attempt") return currentCreditDebitAttribution();
45
+ return grant.principalKind === "human_session"
46
+ ? { kind: "human", initiatingHumanSubjectId: grant.subjectId }
47
+ : ["service", "api_key", "configured_key", "mcp_gateway"].includes(grant.principalKind ?? "")
48
+ ? { kind: "service" }
49
+ : { kind: "unknown" };
50
+ }
9
51
 
10
52
  export async function withAccessGrantSessionRlsContext<T>(
11
- deps: ApiRouteDeps,
53
+ deps: Pick<ApiRouteDeps, "db">,
12
54
  grant: AccessGrant,
13
55
  fn: () => Promise<T>,
14
56
  ): Promise<T> {
15
57
  if (grant.principalKind !== "agent_attempt") {
16
- return await withSessionRlsActorContext({ subjectId: grant.subjectId }, fn);
58
+ return await withCreditDebitAttribution(creditDebitAttributionForGrant(grant), () =>
59
+ withSessionRlsActorContext({ subjectId: grant.subjectId }, fn),
60
+ );
17
61
  }
18
62
  const callerSessionId = grant.metadata?.sessionId;
19
63
  if (typeof callerSessionId !== "string") {
20
- throw new HTTPException(403, { message: "agent attempt authority is invalid" });
64
+ throw agentAttemptAuthorityError("malformed");
21
65
  }
22
66
  try {
23
67
  const actor = await requireLiveAgentAttemptAuthorization(deps.db, grant, callerSessionId);
@@ -32,20 +76,26 @@ export async function withAccessGrantSessionRlsContext<T>(
32
76
  executionGeneration: actor.executionGeneration,
33
77
  },
34
78
  });
35
- return await withSessionRlsActorContext(
79
+ return await withCreditDebitAttribution(
36
80
  {
37
- subjectId: actor.subjectId,
38
- initiatingHumanSubjectId: actor.initiatingHumanSubjectId,
39
- privateFileOwnerSubjectId: learning.defaultScope === "personal" ? learning.subjectId : null,
81
+ kind: "turn",
82
+ turnId: actor.turnId,
83
+ initiatingHumanSubjectId: actor.initiatingHumanSubjectId ?? null,
40
84
  },
41
- fn,
85
+ () =>
86
+ withSessionRlsActorContext(
87
+ {
88
+ subjectId: actor.subjectId,
89
+ initiatingHumanSubjectId: actor.initiatingHumanSubjectId,
90
+ privateFileOwnerSubjectId:
91
+ learning.defaultScope === "personal" ? learning.subjectId : null,
92
+ },
93
+ fn,
94
+ ),
42
95
  );
43
96
  } catch (error) {
44
97
  if (error instanceof SessionAuthorizationDeniedError) {
45
- throw new HTTPException(403, {
46
- message: "agent attempt authority is invalid",
47
- cause: error,
48
- });
98
+ throw agentAttemptAuthorityError(error.reason, error);
49
99
  }
50
100
  throw error;
51
101
  }
@@ -0,0 +1,14 @@
1
+ import type { Observability } from "@opengeni/observability";
2
+
3
+ /** Only committed, non-replayed server event identities mint admission anchors. */
4
+ export function recordAcceptedApiAdmission(
5
+ observability: Observability | undefined,
6
+ result: { accepted: { id: string }; replay: boolean },
7
+ ): void {
8
+ if (result.replay) return;
9
+ try {
10
+ observability?.recordAdmissionTrace(result.accepted.id);
11
+ } catch {
12
+ // Telemetry must never turn a committed admission into an HTTP failure.
13
+ }
14
+ }