@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,401 @@
1
+ import type { Context } from "hono";
2
+ import { requireAccessGrant, type ApiRouteDeps } from "@opengeni/core";
3
+ import { type SubscriptionCoreCodexCredentialInput } from "@opengeni/db";
4
+ import type { CodexUsagePayload } from "@opengeni/codex";
5
+ import { codexModelsForPicker, requireCodexAppsHuman } from "./codex.js";
6
+ import { SUBSCRIPTION_CORE_CUTOVER_DISABLED, typedHttpError } from "./subscription-core-http.js";
7
+ export { SUBSCRIPTION_CORE_CUTOVER_DISABLED, typedHttpError };
8
+ /**
9
+ * Only an enabled Codex cutover admits a request. Missing and disabled rows
10
+ * are maintenance: fail closed, never fall back to legacy state.
11
+ */
12
+ export declare function codexRouteDisposition(deps: ApiRouteDeps, accountId: string): Promise<"core">;
13
+ /**
14
+ * Persist a finished device-code sign-in on the core (M3 PR 3b): the legacy
15
+ * `connect/poll` response. `workspaceId` null is the organization route.
16
+ */
17
+ export declare function coreCodexConnected(c: Context, deps: ApiRouteDeps, input: {
18
+ accountId: string;
19
+ workspaceId: string | null;
20
+ subjectId: string;
21
+ credential: SubscriptionCoreCodexCredentialInput;
22
+ }): Promise<Response & import("hono").TypedResponse<{
23
+ status: string;
24
+ plan: string | null;
25
+ accountId: string;
26
+ isActive: boolean;
27
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
28
+ /** Disconnect one account on the core: the legacy `{ disconnected, newActiveId }`. */
29
+ export declare function coreCodexDisconnect(c: Context, deps: ApiRouteDeps, input: {
30
+ accountId: string;
31
+ workspaceId: string | null;
32
+ subjectId: string;
33
+ connectionId: string;
34
+ }): Promise<Response & import("hono").TypedResponse<{
35
+ disconnected: boolean;
36
+ newActiveId: string | null;
37
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
38
+ /** The legacy workspace "disconnect all" on the core: `{ disconnected }`. */
39
+ export declare function coreCodexDisconnectAll(c: Context, deps: ApiRouteDeps, input: {
40
+ accountId: string;
41
+ workspaceId: string;
42
+ subjectId: string;
43
+ }): Promise<Response & import("hono").TypedResponse<{
44
+ disconnected: boolean;
45
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
46
+ export declare function coreCodexSource(c: Context, deps: ApiRouteDeps, accountId: string, workspaceId: string): Promise<Response & import("hono").TypedResponse<{
47
+ accountId: string;
48
+ workspaceId: string;
49
+ workspaceKind: "personal" | "shared";
50
+ mode: import("@opengeni/db").WorkspaceCodexSubscriptionMode;
51
+ effectiveSource: import("@opengeni/db").EffectiveCodexSubscriptionSource;
52
+ workspaceAvailable: boolean;
53
+ organizationAvailable: boolean;
54
+ workspaceSetAside?: boolean;
55
+ organizationCount?: number;
56
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
57
+ export declare function coreCodexSetSource(c: Context, deps: ApiRouteDeps, input: {
58
+ accountId: string;
59
+ workspaceId: string;
60
+ subjectId: string;
61
+ mode: "automatic" | "workspace" | "organization" | "disabled";
62
+ }): Promise<Response & import("hono").TypedResponse<{
63
+ accountId: string;
64
+ workspaceId: string;
65
+ workspaceKind: "personal" | "shared";
66
+ mode: import("@opengeni/db").WorkspaceCodexSubscriptionMode;
67
+ effectiveSource: import("@opengeni/db").EffectiveCodexSubscriptionSource;
68
+ workspaceAvailable: boolean;
69
+ organizationAvailable: boolean;
70
+ workspaceSetAside?: boolean;
71
+ organizationCount?: number;
72
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
73
+ /**
74
+ * Readiness is computed from the core pool; there is no live provider model
75
+ * probe (that needs a connection-level credential read, which is PR 2c's usage
76
+ * seam), so `valid` reports whether a serviceable account exists and `models`
77
+ * is the configured Codex catalog.
78
+ */
79
+ export declare function coreCodexStatus(c: Context, deps: ApiRouteDeps, accountId: string, workspaceId: string, catalogSettings: Parameters<typeof codexModelsForPicker>[0], viewerSubjectId: string): Promise<Response & import("hono").TypedResponse<{
80
+ connected: boolean;
81
+ plan: string | null;
82
+ valid: boolean;
83
+ activeAccountValid: boolean;
84
+ poolReady: boolean;
85
+ workerRoutable: boolean;
86
+ expiresAt: string | null;
87
+ lastError: string | null;
88
+ models: {
89
+ id: string;
90
+ label: string;
91
+ provider: string;
92
+ providerLabel: string;
93
+ api: "responses";
94
+ }[];
95
+ activeAccount: {
96
+ id: string;
97
+ label: string | null;
98
+ chatgptAccountId: string | null;
99
+ } | null;
100
+ accountCount: number;
101
+ source: {
102
+ accountId: string;
103
+ workspaceId: string;
104
+ workspaceKind: "personal" | "shared";
105
+ mode: import("@opengeni/db").WorkspaceCodexSubscriptionMode;
106
+ effectiveSource: import("@opengeni/db").EffectiveCodexSubscriptionSource;
107
+ workspaceAvailable: boolean;
108
+ organizationAvailable: boolean;
109
+ workspaceSetAside?: boolean;
110
+ organizationCount?: number;
111
+ };
112
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
113
+ export declare function coreCodexAccounts(c: Context, deps: ApiRouteDeps, grant: Awaited<ReturnType<typeof requireAccessGrant>>, workspaceId: string): Promise<Response & import("hono").TypedResponse<{
114
+ accounts: {
115
+ canEnableApps: boolean;
116
+ id: string;
117
+ source: "organization" | "workspace";
118
+ chatgptAccountId: string | null;
119
+ label: string | null;
120
+ email: string | null;
121
+ plan: string | null;
122
+ planCheckedAt: string | null;
123
+ planChangedFrom: string | null;
124
+ planChangedAt: string | null;
125
+ planExcludedModels: {
126
+ model: string;
127
+ label: string;
128
+ excludedAt: string;
129
+ retryAfter: string;
130
+ }[];
131
+ status: string;
132
+ active: boolean;
133
+ expiresAt: string | null;
134
+ lastRefreshAt: string | null;
135
+ lastError: string | null;
136
+ fiveHour: {
137
+ used: number;
138
+ limit: number;
139
+ remaining: number;
140
+ percent: number;
141
+ resetAt: string | null;
142
+ resetAfterSeconds: number | null;
143
+ limitWindowSeconds: number;
144
+ } | null;
145
+ weekly: {
146
+ used: number;
147
+ limit: number;
148
+ remaining: number;
149
+ percent: number;
150
+ resetAt: string | null;
151
+ resetAfterSeconds: number | null;
152
+ limitWindowSeconds: number;
153
+ } | null;
154
+ usageCheckedAt: string | null;
155
+ extraCreditsEnabled: boolean;
156
+ extraCreditsVersion: number;
157
+ extraCreditsUpdatedAt: string | null;
158
+ allocatorEnabled: boolean;
159
+ allocatorVersion: number;
160
+ allocatorUpdatedAt: string | null;
161
+ resetCreditAvailableCount: number | null;
162
+ resetCreditsCheckedAt: string | null;
163
+ exhaustedUntil: string | null;
164
+ ownInWorkspaceIds?: string[] | undefined;
165
+ appsDesignated: boolean;
166
+ }[];
167
+ activeAccountId: string | null;
168
+ source: {
169
+ accountId: string;
170
+ workspaceId: string;
171
+ workspaceKind: "personal" | "shared";
172
+ mode: import("@opengeni/db").WorkspaceCodexSubscriptionMode;
173
+ effectiveSource: import("@opengeni/db").EffectiveCodexSubscriptionSource;
174
+ workspaceAvailable: boolean;
175
+ organizationAvailable: boolean;
176
+ workspaceSetAside?: boolean;
177
+ organizationCount?: number;
178
+ };
179
+ apps: {
180
+ available: boolean;
181
+ credentialId: string | null;
182
+ version: number;
183
+ designatedAt: string | null;
184
+ canDisable: boolean;
185
+ };
186
+ settings: {
187
+ rotationEnabled: boolean;
188
+ rotationStrategy: string;
189
+ activeCredentialId: string | null;
190
+ };
191
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
192
+ type AppsHuman = Awaited<ReturnType<typeof requireCodexAppsHuman>>;
193
+ export declare function coreCodexDesignateApps(c: Context, deps: ApiRouteDeps, workspaceId: string, { human, accountId }: AppsHuman): Promise<Response & import("hono").TypedResponse<{
194
+ credentialId: string | null;
195
+ version: number;
196
+ designatedAt: string | null;
197
+ changed: boolean;
198
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
199
+ export declare function coreCodexClearApps(c: Context, deps: ApiRouteDeps, workspaceId: string, { human, accountId }: AppsHuman): Promise<Response & import("hono").TypedResponse<{
200
+ credentialId: string | null;
201
+ version: number;
202
+ designatedAt: string | null;
203
+ changed: boolean;
204
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
205
+ type Admin = {
206
+ accountId: string;
207
+ workspaceId: string | null;
208
+ subjectId: string;
209
+ };
210
+ export declare function coreCodexActivate(c: Context, deps: ApiRouteDeps, admin: Admin, connectionId: string): Promise<Response & import("hono").TypedResponse<{
211
+ activated: true;
212
+ accountId: string;
213
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
214
+ export declare function coreCodexSetRotation(c: Context, deps: ApiRouteDeps, admin: Admin, rotationEnabled: boolean): Promise<Response & import("hono").TypedResponse<{
215
+ rotationEnabled: boolean;
216
+ rotationStrategy: string;
217
+ activeCredentialId: string | null;
218
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
219
+ export declare function coreCodexRename(c: Context, deps: ApiRouteDeps, admin: Admin, connectionId: string, label: string | null): Promise<Response & import("hono").TypedResponse<{
220
+ id: string;
221
+ source: "organization" | "workspace";
222
+ chatgptAccountId: string | null;
223
+ label: string | null;
224
+ email: string | null;
225
+ plan: string | null;
226
+ planCheckedAt: string | null;
227
+ planChangedFrom: string | null;
228
+ planChangedAt: string | null;
229
+ planExcludedModels: {
230
+ model: string;
231
+ label: string;
232
+ excludedAt: string;
233
+ retryAfter: string;
234
+ }[];
235
+ status: string;
236
+ active: boolean;
237
+ expiresAt: string | null;
238
+ lastRefreshAt: string | null;
239
+ lastError: string | null;
240
+ fiveHour: {
241
+ used: number;
242
+ limit: number;
243
+ remaining: number;
244
+ percent: number;
245
+ resetAt: string | null;
246
+ resetAfterSeconds: number | null;
247
+ limitWindowSeconds: number;
248
+ } | null;
249
+ weekly: {
250
+ used: number;
251
+ limit: number;
252
+ remaining: number;
253
+ percent: number;
254
+ resetAt: string | null;
255
+ resetAfterSeconds: number | null;
256
+ limitWindowSeconds: number;
257
+ } | null;
258
+ usageCheckedAt: string | null;
259
+ extraCreditsEnabled: boolean;
260
+ extraCreditsVersion: number;
261
+ extraCreditsUpdatedAt: string | null;
262
+ allocatorEnabled: boolean;
263
+ allocatorVersion: number;
264
+ allocatorUpdatedAt: string | null;
265
+ resetCreditAvailableCount: number | null;
266
+ resetCreditsCheckedAt: string | null;
267
+ exhaustedUntil: string | null;
268
+ ownInWorkspaceIds?: string[] | undefined;
269
+ appsDesignated: boolean;
270
+ canEnableApps: boolean;
271
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
272
+ export declare function coreCodexAllocator(c: Context, deps: ApiRouteDeps, admin: Admin, connectionId: string, body: {
273
+ enabled: boolean;
274
+ expectedVersion: number;
275
+ }): Promise<Response & import("hono").TypedResponse<{
276
+ allocatorEnabled: boolean;
277
+ allocatorVersion: number;
278
+ allocatorUpdatedAt: string | null;
279
+ changed: boolean;
280
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
281
+ export declare function coreCodexExtraCredits(c: Context, deps: ApiRouteDeps, admin: Admin, connectionId: string, body: {
282
+ enabled: boolean;
283
+ expectedVersion: number;
284
+ }): Promise<Response & import("hono").TypedResponse<{
285
+ extraCreditsEnabled: boolean;
286
+ extraCreditsVersion: number;
287
+ extraCreditsUpdatedAt: string | null;
288
+ changed: boolean;
289
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
290
+ export declare function coreOrganizationCodexAccounts(c: Context, deps: ApiRouteDeps, organizationId: string, subjectId: string): Promise<Response & import("hono").TypedResponse<{
291
+ accounts: {
292
+ id: string;
293
+ source: "organization" | "workspace";
294
+ chatgptAccountId: string | null;
295
+ label: string | null;
296
+ email: string | null;
297
+ plan: string | null;
298
+ planCheckedAt: string | null;
299
+ planChangedFrom: string | null;
300
+ planChangedAt: string | null;
301
+ planExcludedModels: {
302
+ model: string;
303
+ label: string;
304
+ excludedAt: string;
305
+ retryAfter: string;
306
+ }[];
307
+ status: string;
308
+ active: boolean;
309
+ expiresAt: string | null;
310
+ lastRefreshAt: string | null;
311
+ lastError: string | null;
312
+ fiveHour: {
313
+ used: number;
314
+ limit: number;
315
+ remaining: number;
316
+ percent: number;
317
+ resetAt: string | null;
318
+ resetAfterSeconds: number | null;
319
+ limitWindowSeconds: number;
320
+ } | null;
321
+ weekly: {
322
+ used: number;
323
+ limit: number;
324
+ remaining: number;
325
+ percent: number;
326
+ resetAt: string | null;
327
+ resetAfterSeconds: number | null;
328
+ limitWindowSeconds: number;
329
+ } | null;
330
+ usageCheckedAt: string | null;
331
+ extraCreditsEnabled: boolean;
332
+ extraCreditsVersion: number;
333
+ extraCreditsUpdatedAt: string | null;
334
+ allocatorEnabled: boolean;
335
+ allocatorVersion: number;
336
+ allocatorUpdatedAt: string | null;
337
+ resetCreditAvailableCount: number | null;
338
+ resetCreditsCheckedAt: string | null;
339
+ exhaustedUntil: string | null;
340
+ ownInWorkspaceIds?: string[] | undefined;
341
+ appsDesignated: boolean;
342
+ canEnableApps: boolean;
343
+ }[];
344
+ activeAccountId: string | null;
345
+ settings: {
346
+ rotationEnabled: boolean;
347
+ rotationStrategy: string;
348
+ activeCredentialId: string | null;
349
+ };
350
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
351
+ type Grant = Awaited<ReturnType<typeof requireAccessGrant>>;
352
+ /**
353
+ * Live usage on the core (EP-N21): the workspace's effective primary
354
+ * connection (the legacy active account), or one connection of the
355
+ * workspace's pool by id or legacy alias. The 404 copy matches legacy.
356
+ */
357
+ export declare function coreCodexUsage(c: Context, deps: ApiRouteDeps, grant: Grant, workspaceId: string, requestedId: string | null): Promise<Response & import("hono").TypedResponse<{
358
+ status: CodexUsagePayload["status"];
359
+ usage: {
360
+ status: import("@opengeni/codex").CodexUsageStatus;
361
+ planType: string | null;
362
+ fiveHour: import("@opengeni/codex").CodexUsageWindow | null;
363
+ weekly: import("@opengeni/codex").CodexUsageWindow | null;
364
+ limitReached: boolean;
365
+ fetchedAt: string;
366
+ rateLimitResetCredits: import("@opengeni/codex").CodexRateLimitResetCreditsSummary | null;
367
+ reason?: "needs_relogin" | undefined;
368
+ additionalLimits?: import("@opengeni/codex").CodexAdditionalLimit[] | undefined;
369
+ credits?: {
370
+ hasCredits: boolean;
371
+ unlimited: boolean;
372
+ overageLimitReached: boolean;
373
+ balance: string | null;
374
+ } | undefined;
375
+ };
376
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
377
+ /** Batched live refresh over the workspace's core pool, four provider calls at a time. */
378
+ export declare function coreCodexUsageRefresh(c: Context, deps: ApiRouteDeps, grant: Grant, workspaceId: string): Promise<Response & import("hono").TypedResponse<{
379
+ usage: {
380
+ [x: string]: {
381
+ status: CodexUsagePayload["status"];
382
+ usage: {
383
+ status: import("@opengeni/codex").CodexUsageStatus;
384
+ planType: string | null;
385
+ fiveHour: import("@opengeni/codex").CodexUsageWindow | null;
386
+ weekly: import("@opengeni/codex").CodexUsageWindow | null;
387
+ limitReached: boolean;
388
+ fetchedAt: string;
389
+ rateLimitResetCredits: import("@opengeni/codex").CodexRateLimitResetCreditsSummary | null;
390
+ reason?: "needs_relogin" | undefined;
391
+ additionalLimits?: import("@opengeni/codex").CodexAdditionalLimit[] | undefined;
392
+ credits?: {
393
+ hasCredits: boolean;
394
+ unlimited: boolean;
395
+ overageLimitReached: boolean;
396
+ balance: string | null;
397
+ } | undefined;
398
+ };
399
+ };
400
+ };
401
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
@@ -1,4 +1,47 @@
1
+ import { type Settings } from "@opengeni/config";
2
+ import { type CodexUsagePayload } from "@opengeni/codex";
1
3
  import { type CodexAccountStatus } from "@opengeni/db";
4
+ export declare function codexAccountJson(row: CodexAccountStatus, options?: {
5
+ appsCredentialId?: string | null;
6
+ canManageApps?: boolean;
7
+ humanSubjectId?: string | null;
8
+ }): {
9
+ id: string;
10
+ source: "organization" | "workspace";
11
+ chatgptAccountId: string | null;
12
+ label: string | null;
13
+ email: string | null;
14
+ plan: string | null;
15
+ planCheckedAt: Date | null;
16
+ planChangedFrom: string | null;
17
+ planChangedAt: Date | null;
18
+ planExcludedModels: {
19
+ model: string;
20
+ label: string;
21
+ excludedAt: Date;
22
+ retryAfter: Date;
23
+ }[];
24
+ status: string;
25
+ active: boolean;
26
+ expiresAt: Date | null;
27
+ lastRefreshAt: Date | null;
28
+ lastError: string | null;
29
+ fiveHour: import("@opengeni/codex").CodexUsageWindow | null;
30
+ weekly: import("@opengeni/codex").CodexUsageWindow | null;
31
+ usageCheckedAt: Date | null;
32
+ extraCreditsEnabled: boolean;
33
+ extraCreditsVersion: number;
34
+ extraCreditsUpdatedAt: Date | null;
35
+ allocatorEnabled: boolean;
36
+ allocatorVersion: number;
37
+ allocatorUpdatedAt: Date | null;
38
+ resetCreditAvailableCount: number | null;
39
+ resetCreditsCheckedAt: Date | null;
40
+ exhaustedUntil: Date | null;
41
+ ownInWorkspaceIds?: string[];
42
+ appsDesignated: boolean;
43
+ canEnableApps: boolean;
44
+ };
2
45
  /**
3
46
  * Derive the two distinct cached worker-readiness meanings exposed by the
4
47
  * status route. `poolReady` means at least one effective-pool account passes
@@ -16,7 +59,11 @@ export declare function codexWorkerReadiness(input: {
16
59
  poolReady: boolean;
17
60
  workerRoutable: boolean;
18
61
  };
19
- export declare function codexModelsForPicker(): Array<{
62
+ export declare function codexUsageJson(payload: CodexUsagePayload): {
63
+ status: CodexUsagePayload["status"];
64
+ usage: CodexUsagePayload;
65
+ };
66
+ export declare function codexModelsForPicker(settings?: Settings, supportedSlugs?: readonly string[]): Array<{
20
67
  id: string;
21
68
  label: string;
22
69
  provider: string;
@@ -29,7 +76,22 @@ type ManagedCookieHuman = {
29
76
  subjectId: string;
30
77
  browserSessionHash: string;
31
78
  };
32
- export declare function requireOrganizationCodexHuman(c: Context, deps: ApiRouteDeps, organizationId: string): Promise<ManagedCookieHuman>;
79
+ export declare function managedCookieHuman(c: Context, deps: ApiRouteDeps): Promise<ManagedCookieHuman | null>;
80
+ /**
81
+ * The person in this browser, or an agent acting as them. Only for routes that
82
+ * then require the same person's workspace grant; provider sign-in steps keep
83
+ * managedCookieHuman. An agent has no browser session, so its hash never
84
+ * matches a sign-in started in one.
85
+ */
86
+ export declare function managedHumanOrAgent(c: Context, deps: ApiRouteDeps): Promise<ManagedCookieHuman | null>;
87
+ export declare function requireOrganizationCodexHuman(c: Context, deps: ApiRouteDeps, organizationId: string, options?: {
88
+ /** A provider sign-in step: the person does it in the browser, never an agent. */
89
+ providerConsent?: boolean;
90
+ }): Promise<ManagedCookieHuman>;
33
91
  export declare function requireSameOriginBrowserMutation(c: Context, deps: ApiRouteDeps): void;
92
+ export declare function requireCodexAppsHuman(c: Context, deps: ApiRouteDeps, workspaceId: string): Promise<{
93
+ human: ManagedCookieHuman;
94
+ accountId: string;
95
+ }>;
34
96
  export declare function registerCodexRoutes(app: Hono, deps: ApiRouteDeps): void;
35
97
  export {};
@@ -1,6 +1,7 @@
1
1
  import { type ApiRouteDeps } from "@opengeni/core";
2
2
  import { type ComputerControlFrame, type ExpectedComputerFrameEvidence } from "@opengeni/runtime/sandbox";
3
3
  import type { Hono } from "hono";
4
+ import { type InteractionSecretsPort } from "../interaction-secrets.js";
4
5
  type ComputerFrameCaptureClient = {
5
6
  capture(targetId: string, options: {
6
7
  format?: "jpeg" | "png";
@@ -11,8 +12,12 @@ type ComputerFrameCaptureClient = {
11
12
  };
12
13
  export declare function validateComputerFrameForApi(frame: Pick<ComputerControlFrame, "data" | "mediaType" | "metadataHeader">, expected: ExpectedComputerFrameEvidence): ComputerControlFrame;
13
14
  export declare function captureModelComputerFrame(sessionClient: ComputerFrameCaptureClient, expected: ExpectedComputerFrameEvidence): Promise<ComputerControlFrame>;
15
+ /** One validated screen frame, served as sandboxed, non-embeddable user content. */
16
+ export declare function computerScreenshotResponse(frame: Pick<ComputerControlFrame, "data" | "mediaType" | "metadataHeader">): Response;
14
17
  /** Public ComputerSession resource surface. Physical app/window authority stays
15
18
  * in the same placement controller used by BrowserSession; this route owns only
16
19
  * durable authorization, placement fencing, lifecycle receipts, and routing. */
17
- export declare function registerComputerSessionRoutes(app: Hono, deps: ApiRouteDeps): void;
20
+ export declare function registerComputerSessionRoutes(app: Hono, deps: ApiRouteDeps, options?: {
21
+ interactionSecrets?: InteractionSecretsPort | null;
22
+ }): void;
18
23
  export {};
@@ -0,0 +1,32 @@
1
+ import type { Hono } from "hono";
2
+ import type { ApiRouteDeps } from "@opengeni/core";
3
+ export declare const DESKTOP_INSTALLER_PATH = "/desktop/install.sh";
4
+ export declare const DESKTOP_RELEASE_PAGE_PATH = "/desktop/latest";
5
+ export declare const DESKTOP_DOWNLOAD_PREFIX = "/desktop/latest/";
6
+ /** The versioned release file for a version-less name, or null if it isn't one. */
7
+ export declare function desktopReleaseFile(asset: string, version: string): string | null;
8
+ /** The highest stable version among desktop-v<version> tags. */
9
+ export declare function newestDesktopVersion(tags: readonly string[]): string | null;
10
+ /** owner/name for a https://github.com/<owner>/<name>/releases base, else null. */
11
+ export declare function githubRepositoryOf(releasesBase: string): string | null;
12
+ export interface DesktopVersionResolverOptions {
13
+ /** An operator pin. When set, it is the only version ever served. */
14
+ pinnedVersion?: string | undefined;
15
+ releasesBase: string;
16
+ fetchImpl?: typeof fetch;
17
+ now?: () => number;
18
+ /** How long a looked-up version is reused. */
19
+ freshForMs?: number;
20
+ /** How long to wait before looking again after a failed lookup. */
21
+ retryAfterMs?: number;
22
+ }
23
+ /**
24
+ * The version /desktop/latest serves: the pin, or the newest desktop-v tag on
25
+ * the release repository. A lookup is shared by concurrent requests and reused
26
+ * for ten minutes, well within GitHub's unauthenticated rate limit. When GitHub
27
+ * is unreachable the last known version keeps serving.
28
+ */
29
+ export declare function createDesktopVersionResolver(options: DesktopVersionResolverOptions): () => Promise<string>;
30
+ export declare function desktopInstallerFor(body: string, publicBaseUrl: string | undefined): string;
31
+ export declare function registerDesktopDistributionRoutes(app: Hono, deps: ApiRouteDeps, resolveVersion?: () => Promise<string>): void;
32
+ export declare function isDesktopDistributionPath(path: string): boolean;
@@ -0,0 +1,2 @@
1
+ /** `@font-face` rules for the fonts above, embedded as data: URIs. */
2
+ export declare const GITHUB_PAGE_FONT_FACES: string;
@@ -0,0 +1,27 @@
1
+ import type { GitHubInstallationBindingCandidate } from "@opengeni/contracts";
2
+ export declare function githubInstallationChooserHtml(candidates: GitHubInstallationBindingCandidate[], state: string, workspaceId: string, baseUrl: string): string;
3
+ export declare function githubSetupSuccessHtml(account: string, returnUrl: string): string;
4
+ /**
5
+ * GitHub sends a non-owner here after they ask their organization owners to
6
+ * approve the app (`setup_action=request`). Nothing is connected yet: an owner
7
+ * approves on GitHub, then an owner connects the organization in Opengeni.
8
+ */
9
+ export declare function githubSetupPendingHtml(returnUrl?: string | null): string;
10
+ /**
11
+ * Where GitHub sends an organization owner after they approve a member's
12
+ * request (or install the app straight from GitHub). The redirect carries no
13
+ * Opengeni state, so it cannot name a workspace and must not connect one: an
14
+ * owner chooses the workspace explicitly from inside Opengeni.
15
+ */
16
+ export declare function githubOwnerApprovedHtml(homeUrl: string): string;
17
+ /**
18
+ * Why a GitHub browser step could not continue. Browser navigation (a stale
19
+ * page-load link, GitHub's Cancel button, a non-owner) must land on a readable
20
+ * page with a way back, never on a raw JSON error body.
21
+ */
22
+ export type GitHubConnectFailure = "expired" | "cancelled" | "not_owner" | "forbidden" | "policy_denied" | "signed_out" | "failed";
23
+ export declare function githubConnectFailureHtml(failure: GitHubConnectFailure, returnUrl: string, detail?: string | null): string;
24
+ export declare function prReviewInstallationChooserHtml(candidates: GitHubInstallationBindingCandidate[], state: string, action: string): string;
25
+ export declare function prReviewSetupSuccessHtml(account: string, returnUrl: string): string;
26
+ export declare function prReviewSetupPendingHtml(): string;
27
+ export declare function githubSuccessHtml(envLines: string[]): string;
@@ -0,0 +1,13 @@
1
+ import { type InboxItem } from "@opengeni/contracts";
2
+ import { type ApiRouteDeps } from "@opengeni/core";
3
+ import { type InboxItemRow } from "@opengeni/db";
4
+ import type { Hono } from "hono";
5
+ /**
6
+ * The items another member's agent sent from a session the person cannot
7
+ * open (such as that member's private session). Those show no session: no
8
+ * title and no link. The person's own items are never checked here.
9
+ */
10
+ export declare function itemsWithUnavailableSession(rows: readonly InboxItemRow[], canRead: (row: InboxItemRow) => Promise<boolean>): Promise<Set<string>>;
11
+ /** An inbox row as the person sees it. */
12
+ export declare function presentInboxItem(row: InboxItemRow, sessionTitle: string | null, sessionAvailable: boolean): InboxItem;
13
+ export declare function registerInboxRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,10 @@
1
+ export declare const INSIGHTS_RESPONSE_TTL_MS = 60000;
2
+ /** Ephemeral keyed digest: raw credentials never become retained map keys or logs. */
3
+ export declare function createInsightsCredentialPartition(): (authorization: string | undefined, cookie: string | undefined) => string;
4
+ export declare function createInsightsResponseCache(clock?: () => number): {
5
+ get<T>(key: string, fence: string): T | null;
6
+ put(key: string, fence: string, value: unknown): void;
7
+ readonly size: number;
8
+ };
9
+ /** Match existing bounded cause-chain PostgreSQL timeout handling; never expose SQL. */
10
+ export declare function insightsWithFriendlyTimeout<T>(read: () => Promise<T>): Promise<T>;
@@ -0,0 +1,12 @@
1
+ import type { AccessContext } from "@opengeni/contracts";
2
+ import { type ApiRouteDeps, type InsightsQueryScope } from "@opengeni/core";
3
+ import type { Hono } from "hono";
4
+ /** Keep repeated filters, but reject repeated scalar options in the strict schema. */
5
+ export declare function insightsQueryParameters(query: Record<string, string[]>): Record<string, string | string[]>;
6
+ /** Frozen interim capabilities: a newer additive contract must not silently widen a raw query. */
7
+ export declare function insightsRawQuerySupported(query: Record<string, unknown>, organization: boolean, calls: boolean): boolean;
8
+ /** The actor and its canonical detail authority are part of every sharing key. */
9
+ export declare function insightsUsageCoalesceKey(scope: InsightsQueryScope, query: unknown, actor: string | null): string;
10
+ /** Reuse canonical read grants, never infer session access from billing authority. */
11
+ export declare function organizationInsightsScope(context: AccessContext, accountId: string): InsightsQueryScope;
12
+ export declare function registerInsightsUsageRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -1,4 +1,32 @@
1
1
  import { type ApiRouteDeps, type WorkspaceInsightsFilterField } from "@opengeni/core";
2
2
  import type { Hono } from "hono";
3
3
  export declare function normalizeWorkspaceInsightsQueryFilter(value: string | null | undefined, field: WorkspaceInsightsFilterField): string | null;
4
+ /**
5
+ * Share one in-flight computation between identical concurrent callers.
6
+ *
7
+ * A reload, a second tab, or a retried fetch joins the rollup already running
8
+ * instead of starting another multi-second aggregate on the database.
9
+ * Authorization and filter validation still run per request before a caller
10
+ * may join; the map only ever holds running work. The caller supplies the
11
+ * complete sharing key, which must identify everything the result depends on.
12
+ */
13
+ export declare function createInFlightCoalescer<T>(): {
14
+ run: (key: string, work: () => Promise<T>) => Promise<T>;
15
+ readonly size: number;
16
+ };
17
+ /**
18
+ * Insights rows are filtered by the database RLS actor (private sessions are
19
+ * visible only to their owner), so two administrators of one workspace can
20
+ * legitimately receive different responses. The actor identity is part of
21
+ * the key; requests share work only when every visibility input is equal.
22
+ */
23
+ export declare function workspaceInsightsCoalesceKey(input: {
24
+ workspaceId: string;
25
+ range: string;
26
+ provider: string | null;
27
+ model: string | null;
28
+ rootSessionId?: string | null;
29
+ sessionId?: string | null;
30
+ rlsActor: string | null;
31
+ }): string;
4
32
  export declare function registerInsightsRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The 422 a session gets when it asks for a computer or browser on a Connected
3
+ * Machine it is not currently placed on. Name the exact way to get there so an
4
+ * agent switches itself over instead of delegating or giving up, and keep it
5
+ * conditional because not every session is allowed to swap.
6
+ */
7
+ export declare function wrongInteractionPlacementMessage(targetSandboxId: string): string;
@@ -0,0 +1,6 @@
1
+ import type { ApiRouteDeps } from "@opengeni/core";
2
+ import type { Context, Hono } from "hono";
3
+ export declare function admitManagedSignInMutation(context: Context, deps: ApiRouteDeps): Promise<void>;
4
+ export declare function registerManagedSignInMethodRoutes(app: Hono, deps: ApiRouteDeps): void;
5
+ /** Intercept only database-backed, product-issued explicit connect states. */
6
+ export declare function handleManagedSignInConnectCallback(context: Context, deps: ApiRouteDeps, provider: "google" | "github"): Promise<Response | null>;