@opengeni/api-router 0.30.1 → 1.0.0

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 (436) hide show
  1. package/dist/access-grant-rls.d.ts +3 -0
  2. package/dist/admission-trace.d.ts +8 -0
  3. package/dist/api-websocket.d.ts +18 -0
  4. package/dist/app.d.ts +50 -2
  5. package/dist/app.js +12 -1
  6. package/dist/artifact-catalog-cursor.d.ts +27 -0
  7. package/dist/auth/managed-auth-attempt-context.d.ts +10 -0
  8. package/dist/auth/managed-auth-rate-limits.d.ts +167 -0
  9. package/dist/auth/managed-auth-session-adapter.d.ts +6 -0
  10. package/dist/auth/managed-auth.d.ts +102 -3
  11. package/dist/auth/managed-email.d.ts +29 -0
  12. package/dist/auth/managed-sign-in-notifications.d.ts +4 -0
  13. package/dist/auth/new-signups-gate.d.ts +23 -0
  14. package/dist/auth/organization-user-setup.d.ts +80 -0
  15. package/dist/auth/signup-funnel-metrics.d.ts +44 -0
  16. package/dist/browser-controller-authority.d.ts +1 -61
  17. package/dist/browser-ephemeral.d.ts +5 -0
  18. package/dist/browser-state-authority.d.ts +1 -27
  19. package/dist/chunk-6TZ5LG3O.js +123948 -0
  20. package/dist/chunk-6TZ5LG3O.js.map +1 -0
  21. package/dist/chunk-OGQDXVXY.js +18 -0
  22. package/dist/chunk-OGQDXVXY.js.map +1 -0
  23. package/dist/claude-subscription-account-conflicts.d.ts +1 -0
  24. package/dist/claude-subscription-account-usage.d.ts +39 -0
  25. package/dist/claude-subscription-oauth.d.ts +25 -0
  26. package/dist/claude-subscription-profile.d.ts +9 -0
  27. package/dist/claude-subscription-usage.d.ts +44 -0
  28. package/dist/claude-workspace-connection.d.ts +15 -0
  29. package/dist/codemode.d.ts +32 -1
  30. package/dist/company-brain-okf.d.ts +24 -0
  31. package/dist/connected-machine-computer-access.d.ts +11 -0
  32. package/dist/connection-ownership.d.ts +54 -0
  33. package/dist/controller-data-plane.d.ts +32 -0
  34. package/dist/editable-artifact-office-import.d.ts +7 -4
  35. package/dist/editable-artifact-source-session.d.ts +3 -0
  36. package/dist/editable-artifact-websocket.d.ts +10 -18
  37. package/dist/editable-artifact-workspace-files.d.ts +1 -1
  38. package/dist/fatal-process-boundary.d.ts +25 -0
  39. package/dist/github-access.d.ts +31 -2
  40. package/dist/http/acting-person.d.ts +24 -0
  41. package/dist/http/api-contract-compat.d.ts +19 -0
  42. package/dist/http/api-error.d.ts +27 -1
  43. package/dist/http/cors.d.ts +17 -0
  44. package/dist/http/deprecation.d.ts +42 -0
  45. package/dist/http/interaction-control-error.d.ts +13 -0
  46. package/dist/http/keyed-admission.d.ts +12 -0
  47. package/dist/http/local-browser-boundary.d.ts +72 -0
  48. package/dist/http/metrics-listener.d.ts +22 -0
  49. package/dist/http/path-identifier.d.ts +17 -0
  50. package/dist/http/registered-route-label.d.ts +16 -0
  51. package/dist/http/request-body.d.ts +27 -0
  52. package/dist/http/request-source.d.ts +52 -0
  53. package/dist/http/sse.d.ts +17 -6
  54. package/dist/http/unmatched-route.d.ts +18 -0
  55. package/dist/http/user-content.d.ts +36 -0
  56. package/dist/http/websocket-upgrade-dispatch.d.ts +18 -0
  57. package/dist/index.d.ts +10 -3
  58. package/dist/index.js +1129 -166
  59. package/dist/index.js.map +1 -1
  60. package/dist/integration-endpoint-test.d.ts +20 -0
  61. package/dist/integrations/api-integrations.d.ts +2 -2
  62. package/dist/integrations/atlassian.d.ts +29 -3
  63. package/dist/integrations/connect-authority.d.ts +1 -0
  64. package/dist/integrations/connect-callback-return.d.ts +6 -0
  65. package/dist/integrations/fiken.d.ts +16 -2
  66. package/dist/integrations/github-app-connect.d.ts +47 -0
  67. package/dist/integrations/github-installation-proof.d.ts +3 -0
  68. package/dist/integrations/github-lens-connect.d.ts +116 -0
  69. package/dist/integrations/github-skill-source.d.ts +1 -5
  70. package/dist/integrations/google-drive.d.ts +25 -0
  71. package/dist/integrations/integration-commit-authority.d.ts +13 -0
  72. package/dist/integrations/marketplace-plugin.d.ts +2691 -0
  73. package/dist/integrations/oauth-client.d.ts +178 -18
  74. package/dist/integrations/oauth-profiles.d.ts +222 -0
  75. package/dist/integrations/oauth-return-path.d.ts +1 -0
  76. package/dist/integrations/personal-github-repositories.d.ts +84 -0
  77. package/dist/integrations/personal-github.d.ts +42 -0
  78. package/dist/integrations/pr-review-provider.d.ts +22 -0
  79. package/dist/integrations/provider-oauth.d.ts +19 -1
  80. package/dist/integrations/slack-app-home.d.ts +24 -0
  81. package/dist/integrations/slack-bot.d.ts +367 -12
  82. package/dist/integrations/slack-file-upload-flow.d.ts +62 -0
  83. package/dist/integrations/slack-install.d.ts +20 -0
  84. package/dist/integrations/slack-interactions.d.ts +113 -10
  85. package/dist/integrations/slack-mrkdwn.d.ts +41 -0
  86. package/dist/integrations/slack-routing.d.ts +120 -0
  87. package/dist/integrations/slack-session-defaults.d.ts +58 -0
  88. package/dist/integrations/slack-task-file-upload.d.ts +36 -0
  89. package/dist/integrations/social-oauth.d.ts +7 -0
  90. package/dist/interaction-agent-access.d.ts +15 -0
  91. package/dist/interaction-frame-proxy.d.ts +68 -0
  92. package/dist/interaction-metrics.d.ts +2 -0
  93. package/dist/mcp/action-catalog-types.d.ts +9 -0
  94. package/dist/mcp/action-catalog.gen.d.ts +2 -0
  95. package/dist/mcp/capability-account-readiness.d.ts +7 -0
  96. package/dist/mcp/child-read-evidence.d.ts +9 -0
  97. package/dist/mcp/command-read.d.ts +24 -0
  98. package/dist/mcp/company-profile-agent-admin.d.ts +44 -0
  99. package/dist/mcp/contract-input.d.ts +11 -0
  100. package/dist/mcp/documents.d.ts +7 -5
  101. package/dist/mcp/files.d.ts +2 -2
  102. package/dist/mcp/first-party-tool-permissions.d.ts +650 -0
  103. package/dist/mcp/knowledge-entries.d.ts +5 -0
  104. package/dist/mcp/orchestration-failure-diagnostic.d.ts +43 -0
  105. package/dist/mcp/receipts.d.ts +9 -0
  106. package/dist/mcp/request-abort.d.ts +19 -0
  107. package/dist/mcp/scheduled-task-input.d.ts +1189 -0
  108. package/dist/mcp/scheduled-task-view.d.ts +22 -4
  109. package/dist/mcp/server.d.ts +255 -3
  110. package/dist/mcp/session-event-view.d.ts +94 -0
  111. package/dist/mcp/session-view.d.ts +66 -2
  112. package/dist/mcp/session-wait.d.ts +174 -0
  113. package/dist/mcp-oauth.d.ts +52 -0
  114. package/dist/model-catalog.d.ts +11 -31
  115. package/dist/observability.d.ts +3 -1
  116. package/dist/organization-mcp.d.ts +52 -0
  117. package/dist/organization-recovery-notifications.d.ts +41 -0
  118. package/dist/routes/analytics-consent.d.ts +26 -0
  119. package/dist/routes/api-integrations.d.ts +25 -0
  120. package/dist/routes/api-keys.d.ts +17 -0
  121. package/dist/routes/artifact-catalog.d.ts +6 -0
  122. package/dist/routes/automations.d.ts +19 -0
  123. package/dist/routes/billing.d.ts +49 -0
  124. package/dist/routes/browser-sessions.d.ts +71 -3
  125. package/dist/routes/claude-subscription-accounts.d.ts +3 -0
  126. package/dist/routes/claude-subscription-oauth.d.ts +3 -0
  127. package/dist/routes/client-errors.d.ts +146 -0
  128. package/dist/routes/codex.d.ts +76 -2
  129. package/dist/routes/company-brain.d.ts +3 -0
  130. package/dist/routes/company-profile.d.ts +2 -1
  131. package/dist/routes/computer-sessions.d.ts +14 -0
  132. package/dist/routes/connect.d.ts +5 -0
  133. package/dist/routes/editable-artifacts.d.ts +2 -0
  134. package/dist/routes/external-identity-links.d.ts +6 -0
  135. package/dist/routes/feedback.d.ts +3 -0
  136. package/dist/routes/files.d.ts +4 -0
  137. package/dist/routes/github-browser-pages.d.ts +12 -0
  138. package/dist/routes/github.d.ts +2 -0
  139. package/dist/routes/insights-response-cache.d.ts +10 -0
  140. package/dist/routes/insights-usage.d.ts +12 -0
  141. package/dist/routes/insights.d.ts +30 -1
  142. package/dist/routes/knowledge.d.ts +3 -0
  143. package/dist/routes/managed-auth-session-sets.d.ts +26 -0
  144. package/dist/routes/managed-onboarding.d.ts +29 -0
  145. package/dist/routes/managed-sign-in-methods.d.ts +6 -0
  146. package/dist/routes/model-connection-access.d.ts +3 -0
  147. package/dist/routes/organization-integration-policy.d.ts +3 -0
  148. package/dist/routes/organization-integrations.d.ts +6 -0
  149. package/dist/routes/organization-mcp-connections.d.ts +3 -0
  150. package/dist/routes/organization-model-providers.d.ts +3 -0
  151. package/dist/routes/organization-recovery.d.ts +19 -0
  152. package/dist/routes/organization-service-accounts.d.ts +3 -0
  153. package/dist/routes/organization-sessions.d.ts +26 -0
  154. package/dist/routes/personal-github-git-broker.d.ts +29 -0
  155. package/dist/routes/personal-github.d.ts +3 -0
  156. package/dist/routes/pr-review-github.d.ts +3 -0
  157. package/dist/routes/pr-review.d.ts +3 -0
  158. package/dist/routes/session-artifact-associations.d.ts +4 -0
  159. package/dist/routes/session-history-imports.d.ts +9 -0
  160. package/dist/routes/sessions.d.ts +44 -6
  161. package/dist/routes/skill-content.d.ts +4 -0
  162. package/dist/routes/skill-install-authority.d.ts +6 -0
  163. package/dist/routes/subscription-account-pools.d.ts +34 -0
  164. package/dist/routes/subscription-pool-access.d.ts +16 -0
  165. package/dist/routes/supergrok.d.ts +6 -1
  166. package/dist/routes/usage-allowances.d.ts +12 -0
  167. package/dist/routes/user-resource-authorities.d.ts +3 -0
  168. package/dist/routes/workspace-artifacts.d.ts +2 -1
  169. package/dist/routes/workspace-capture.d.ts +10 -2
  170. package/dist/routes/workspace-integrations.d.ts +35 -0
  171. package/dist/routes/workspace-learning.d.ts +3 -0
  172. package/dist/routes/workspace-model-providers.d.ts +4 -0
  173. package/dist/routes/workspaces.d.ts +29 -0
  174. package/dist/sandbox/auth-callout.d.ts +8 -0
  175. package/dist/sandbox/channel-a.d.ts +19 -1
  176. package/dist/sandbox/connection-authority.d.ts +3 -0
  177. package/dist/sandbox/enrollment.d.ts +9 -1
  178. package/dist/sandbox/machines.d.ts +5 -2
  179. package/dist/sandbox/metrics-ingestion.d.ts +28 -20
  180. package/dist/sandbox/rematerialize.d.ts +2 -0
  181. package/dist/sandbox/session-attach-variable-sets.d.ts +30 -0
  182. package/dist/sandbox/viewer.d.ts +26 -1
  183. package/dist/sandbox-file-artifacts.d.ts +50 -0
  184. package/dist/scheduled-task-deletion.d.ts +13 -0
  185. package/dist/session-create-observability.d.ts +5 -0
  186. package/dist/session-event-view-MPS2OZD3.js +292 -0
  187. package/dist/session-event-view-MPS2OZD3.js.map +1 -0
  188. package/dist/site-session-origin.d.ts +13 -0
  189. package/dist/site-uploads.d.ts +41 -0
  190. package/dist/slack-reaction-files.d.ts +1 -1
  191. package/dist/temporal-schedule-cleanup.d.ts +1 -0
  192. package/dist/temporal-schedule-sync.d.ts +26 -0
  193. package/dist/transcription/providers/xai-subscription.d.ts +1 -0
  194. package/dist/transcription/service.d.ts +2 -1
  195. package/dist/work-discovery-observability.d.ts +33 -0
  196. package/dist/workspace-artifact-content.d.ts +28 -0
  197. package/dist/workspace-artifact-provenance.d.ts +7 -0
  198. package/dist/workspace-delete-observability.d.ts +10 -0
  199. package/dist/workspace-deletion.d.ts +6 -0
  200. package/dist/workspace-state-projection.d.ts +3 -5
  201. package/dist/workspace-tool-gateway-observability.d.ts +17 -0
  202. package/dist/workspace-tool-gateway.d.ts +123 -0
  203. package/dist/workspace-webhook-dispatch.d.ts +26 -0
  204. package/package.json +23 -19
  205. package/src/access-grant-rls.ts +75 -0
  206. package/src/admission-trace.ts +14 -0
  207. package/src/api-websocket.ts +23 -0
  208. package/src/app.ts +1974 -256
  209. package/src/artifact-catalog-cursor.ts +60 -0
  210. package/src/auth/managed-auth-attempt-context.ts +70 -0
  211. package/src/auth/managed-auth-rate-limits.ts +252 -0
  212. package/src/auth/managed-auth-session-adapter.ts +222 -0
  213. package/src/auth/managed-auth.ts +536 -60
  214. package/src/auth/managed-email.ts +174 -0
  215. package/src/auth/managed-sign-in-notifications.ts +81 -0
  216. package/src/auth/new-signups-gate.ts +49 -0
  217. package/src/auth/organization-user-setup.ts +307 -0
  218. package/src/auth/signup-funnel-metrics.ts +164 -0
  219. package/src/browser-controller-authority.ts +1 -186
  220. package/src/browser-ephemeral.ts +39 -0
  221. package/src/browser-state-authority.ts +1 -236
  222. package/src/claude-subscription-account-conflicts.ts +12 -0
  223. package/src/claude-subscription-account-usage.ts +48 -0
  224. package/src/claude-subscription-oauth.ts +362 -0
  225. package/src/claude-subscription-profile.ts +73 -0
  226. package/src/claude-subscription-usage.ts +97 -0
  227. package/src/claude-workspace-connection.ts +82 -0
  228. package/src/codemode.ts +194 -30
  229. package/src/codex-realtime.ts +8 -2
  230. package/src/company-brain-okf.ts +340 -0
  231. package/src/connected-machine-computer-access.ts +33 -0
  232. package/src/connection-ownership.ts +199 -0
  233. package/src/controller-data-plane.ts +81 -0
  234. package/src/editable-artifact-native-kernel.ts +26 -15
  235. package/src/editable-artifact-office-import.ts +77 -9
  236. package/src/editable-artifact-production.ts +23 -7
  237. package/src/editable-artifact-source-session.ts +123 -0
  238. package/src/editable-artifact-websocket.ts +27 -21
  239. package/src/editable-artifact-workspace-files.ts +31 -6
  240. package/src/fatal-process-boundary.ts +246 -0
  241. package/src/gateway-realtime.ts +1 -1
  242. package/src/github-access.ts +147 -5
  243. package/src/http/acting-person.ts +71 -0
  244. package/src/http/api-contract-compat.ts +49 -0
  245. package/src/http/api-error.ts +115 -1
  246. package/src/http/auth.ts +48 -0
  247. package/src/http/cors.ts +67 -0
  248. package/src/http/deprecation.ts +118 -0
  249. package/src/http/interaction-control-error.ts +164 -0
  250. package/src/http/keyed-admission.ts +29 -0
  251. package/src/http/local-browser-boundary.ts +343 -0
  252. package/src/http/metrics-listener.ts +57 -0
  253. package/src/http/path-identifier.ts +54 -0
  254. package/src/http/registered-route-label.ts +34 -0
  255. package/src/http/request-body.ts +127 -0
  256. package/src/http/request-source.ts +178 -0
  257. package/src/http/sse.ts +486 -132
  258. package/src/http/unmatched-route.ts +60 -0
  259. package/src/http/user-content.ts +158 -0
  260. package/src/http/websocket-upgrade-dispatch.ts +29 -0
  261. package/src/index.ts +157 -52
  262. package/src/integration-endpoint-test.ts +291 -0
  263. package/src/integrations/api-integrations.ts +98 -11
  264. package/src/integrations/atlassian.ts +474 -136
  265. package/src/integrations/connect-authority.ts +2 -0
  266. package/src/integrations/connect-callback-return.ts +86 -0
  267. package/src/integrations/fiken.ts +354 -64
  268. package/src/integrations/github-app-connect.ts +435 -0
  269. package/src/integrations/github-installation-proof.ts +60 -0
  270. package/src/integrations/github-lens-connect.ts +76 -0
  271. package/src/integrations/github-skill-source.ts +2 -142
  272. package/src/integrations/google-drive.ts +820 -222
  273. package/src/integrations/integration-commit-authority.ts +69 -0
  274. package/src/integrations/marketplace-plugin.ts +48 -0
  275. package/src/integrations/oauth-client.ts +1356 -459
  276. package/src/integrations/oauth-profiles.ts +537 -0
  277. package/src/integrations/oauth-return-path.ts +18 -0
  278. package/src/integrations/personal-github-repositories.ts +674 -0
  279. package/src/integrations/personal-github.ts +825 -0
  280. package/src/integrations/pr-review-provider.ts +246 -0
  281. package/src/integrations/provider-oauth.ts +250 -22
  282. package/src/integrations/slack-app-home.ts +300 -0
  283. package/src/integrations/slack-bot.ts +963 -239
  284. package/src/integrations/slack-file-upload-flow.ts +147 -0
  285. package/src/integrations/slack-install.ts +83 -0
  286. package/src/integrations/slack-interactions.ts +3170 -474
  287. package/src/integrations/slack-mrkdwn.ts +193 -0
  288. package/src/integrations/slack-routing.ts +337 -0
  289. package/src/integrations/slack-session-defaults.ts +224 -0
  290. package/src/integrations/slack-task-file-upload.ts +323 -0
  291. package/src/integrations/social-oauth.ts +213 -15
  292. package/src/interaction-agent-access.ts +48 -0
  293. package/src/interaction-frame-proxy.ts +409 -0
  294. package/src/interaction-metrics.ts +30 -0
  295. package/src/mcp/action-catalog-types.ts +9 -0
  296. package/src/mcp/action-catalog.gen.ts +6696 -0
  297. package/src/mcp/capability-account-readiness.ts +17 -0
  298. package/src/mcp/child-read-evidence.ts +19 -0
  299. package/src/mcp/command-read.ts +109 -0
  300. package/src/mcp/company-profile-agent-admin.ts +198 -0
  301. package/src/mcp/contract-input.ts +141 -0
  302. package/src/mcp/documents.ts +65 -377
  303. package/src/mcp/editable-artifacts.ts +12 -6
  304. package/src/mcp/files.ts +80 -38
  305. package/src/mcp/first-party-tool-permissions.ts +305 -0
  306. package/src/mcp/knowledge-entries.ts +322 -0
  307. package/src/mcp/orchestration-failure-diagnostic.ts +43 -0
  308. package/src/mcp/receipts.ts +34 -0
  309. package/src/mcp/request-abort.ts +44 -0
  310. package/src/mcp/scheduled-task-input.ts +76 -0
  311. package/src/mcp/scheduled-task-view.ts +44 -3
  312. package/src/mcp/server.ts +3030 -1267
  313. package/src/mcp/session-event-view.ts +383 -0
  314. package/src/mcp/session-view.ts +84 -3
  315. package/src/mcp/session-wait.ts +665 -0
  316. package/src/mcp-oauth.ts +1123 -0
  317. package/src/model-catalog.ts +91 -333
  318. package/src/observability.ts +15 -1
  319. package/src/organization-mcp.ts +397 -0
  320. package/src/organization-recovery-notifications.ts +103 -0
  321. package/src/routes/analytics-consent.ts +123 -0
  322. package/src/routes/api-integrations.ts +364 -74
  323. package/src/routes/api-keys.ts +336 -10
  324. package/src/routes/artifact-catalog.ts +279 -0
  325. package/src/routes/automations.ts +768 -0
  326. package/src/routes/billing.ts +461 -46
  327. package/src/routes/browser-sessions.ts +839 -131
  328. package/src/routes/canonical-human-identities.ts +90 -14
  329. package/src/routes/capabilities.ts +107 -6
  330. package/src/routes/channels.ts +20 -3
  331. package/src/routes/claude-subscription-accounts.ts +334 -0
  332. package/src/routes/claude-subscription-oauth.ts +142 -0
  333. package/src/routes/client-errors.ts +362 -0
  334. package/src/routes/codex.ts +833 -116
  335. package/src/routes/company-brain.ts +322 -0
  336. package/src/routes/company-profile.ts +65 -1
  337. package/src/routes/computer-sessions.ts +557 -106
  338. package/src/routes/connect.ts +1938 -0
  339. package/src/routes/connections.ts +1040 -349
  340. package/src/routes/documents.ts +488 -287
  341. package/src/routes/editable-artifacts.ts +79 -9
  342. package/src/routes/enrollments.ts +135 -39
  343. package/src/routes/environments.ts +154 -58
  344. package/src/routes/external-identity-links.ts +201 -0
  345. package/src/routes/feedback.ts +113 -0
  346. package/src/routes/files.ts +337 -39
  347. package/src/routes/github-browser-pages.ts +162 -0
  348. package/src/routes/github.ts +446 -144
  349. package/src/routes/insights-response-cache.ts +83 -0
  350. package/src/routes/insights-usage.ts +345 -0
  351. package/src/routes/insights.ts +153 -19
  352. package/src/routes/install.ts +133 -38
  353. package/src/routes/integration-facets.ts +107 -33
  354. package/src/routes/interaction-resources.ts +30 -3
  355. package/src/routes/knowledge.ts +488 -0
  356. package/src/routes/machines.ts +313 -15
  357. package/src/routes/managed-auth-session-sets.ts +1218 -0
  358. package/src/routes/managed-onboarding.ts +337 -0
  359. package/src/routes/managed-sign-in-methods.ts +433 -0
  360. package/src/routes/memory-slack-publications.ts +3 -2
  361. package/src/routes/model-connection-access.ts +208 -0
  362. package/src/routes/organization-integration-policy.ts +116 -0
  363. package/src/routes/organization-integrations.ts +326 -0
  364. package/src/routes/organization-mcp-connections.ts +178 -0
  365. package/src/routes/organization-memberships.ts +1019 -27
  366. package/src/routes/organization-model-providers.ts +293 -0
  367. package/src/routes/organization-recovery.ts +325 -0
  368. package/src/routes/organization-service-accounts.ts +128 -0
  369. package/src/routes/organization-sessions.ts +350 -0
  370. package/src/routes/personal-github-git-broker.ts +785 -0
  371. package/src/routes/personal-github.ts +370 -0
  372. package/src/routes/plugins.ts +251 -22
  373. package/src/routes/pr-review-github.ts +881 -0
  374. package/src/routes/pr-review.ts +622 -0
  375. package/src/routes/preference-registry.ts +12 -93
  376. package/src/routes/rigs.ts +167 -50
  377. package/src/routes/scheduled-tasks.ts +346 -41
  378. package/src/routes/session-artifact-associations.ts +87 -0
  379. package/src/routes/session-history-imports.ts +280 -0
  380. package/src/routes/sessions.ts +2306 -264
  381. package/src/routes/skill-content.ts +297 -0
  382. package/src/routes/skill-install-authority.ts +64 -0
  383. package/src/routes/skills.ts +62 -9
  384. package/src/routes/social.ts +46 -18
  385. package/src/routes/subscription-account-pools.ts +436 -0
  386. package/src/routes/subscription-pool-access.ts +126 -0
  387. package/src/routes/supergrok.ts +219 -303
  388. package/src/routes/transcription-recordings.ts +38 -3
  389. package/src/routes/transcriptions.ts +4 -0
  390. package/src/routes/usage-allowances.ts +378 -0
  391. package/src/routes/user-resource-authorities.ts +138 -0
  392. package/src/routes/video-generation.ts +14 -10
  393. package/src/routes/workspace-artifacts.ts +275 -69
  394. package/src/routes/workspace-capture.ts +21 -0
  395. package/src/routes/workspace-integrations.ts +576 -0
  396. package/src/routes/workspace-learning.ts +159 -0
  397. package/src/routes/workspace-model-providers.ts +148 -0
  398. package/src/routes/workspace-state.ts +38 -25
  399. package/src/routes/workspaces.ts +1004 -127
  400. package/src/sandbox/auth-callout.ts +96 -19
  401. package/src/sandbox/channel-a.ts +323 -24
  402. package/src/sandbox/connection-authority.ts +3 -0
  403. package/src/sandbox/enrollment.ts +81 -6
  404. package/src/sandbox/machines.ts +218 -76
  405. package/src/sandbox/metrics-ingestion.ts +411 -62
  406. package/src/sandbox/rematerialize.ts +121 -19
  407. package/src/sandbox/session-attach-variable-sets.ts +131 -0
  408. package/src/sandbox/viewer.ts +280 -25
  409. package/src/sandbox-file-artifacts.ts +413 -0
  410. package/src/scheduled-task-deletion.ts +138 -0
  411. package/src/session-create-observability.ts +46 -0
  412. package/src/session-realtime-context.ts +6 -3
  413. package/src/site-session-origin.ts +48 -0
  414. package/src/site-uploads.ts +224 -0
  415. package/src/slack-reaction-files.ts +16 -5
  416. package/src/temporal-schedule-cleanup.ts +13 -0
  417. package/src/temporal-schedule-sync.ts +74 -0
  418. package/src/transcription/providers/codex-subscription.ts +2 -0
  419. package/src/transcription/providers/openai.ts +1 -0
  420. package/src/transcription/providers/xai-subscription.ts +49 -3
  421. package/src/transcription/segmenter.ts +8 -2
  422. package/src/transcription/service.ts +43 -6
  423. package/src/work-discovery-observability.ts +121 -0
  424. package/src/workspace-artifact-content.ts +144 -0
  425. package/src/workspace-artifact-provenance.ts +104 -0
  426. package/src/workspace-delete-observability.ts +75 -0
  427. package/src/workspace-deletion.ts +73 -0
  428. package/src/workspace-state-projection.ts +18 -148
  429. package/src/workspace-tool-gateway-observability.ts +100 -0
  430. package/src/workspace-tool-gateway.ts +870 -0
  431. package/src/workspace-webhook-dispatch.ts +190 -0
  432. package/src/xai-subscription-auth.ts +9 -2
  433. package/dist/chunk-2PQMSRCB.js +0 -49759
  434. package/dist/chunk-2PQMSRCB.js.map +0 -1
  435. package/dist/routes/packs.d.ts +0 -3
  436. package/src/routes/packs.ts +0 -729
@@ -0,0 +1,146 @@
1
+ import type { Settings } from "@opengeni/config";
2
+ import { CLIENT_ERROR_KINDS, CLIENT_ERROR_REPORT_MAX_BYTES, CLIENT_ERRORS_PATH, type ClientErrorKind } from "@opengeni/contracts/client-error-report";
3
+ import type { Observability } from "@opengeni/observability";
4
+ import type { Hono } from "hono";
5
+ import { z } from "zod";
6
+ import { type KeyedAdmission } from "../http/keyed-admission.js";
7
+ export { CLIENT_ERROR_KINDS, CLIENT_ERROR_REPORT_MAX_BYTES, CLIENT_ERRORS_PATH, type ClientErrorKind, };
8
+ export declare const ClientErrorReport: z.ZodObject<{
9
+ kind: z.ZodEnum<{
10
+ chunk_load: "chunk_load";
11
+ route_error: "route_error";
12
+ unhandled_rejection: "unhandled_rejection";
13
+ window_error: "window_error";
14
+ }>;
15
+ route: z.ZodString;
16
+ revision: z.ZodString;
17
+ }, z.core.$strict>;
18
+ export type ClientErrorReport = z.infer<typeof ClientErrorReport>;
19
+ export declare const ClientSignalReport: z.ZodDiscriminatedUnion<[z.ZodObject<{
20
+ signal: z.ZodLiteral<"request_failure">;
21
+ action: z.ZodEnum<{
22
+ checkout_start: "checkout_start";
23
+ composer_submit: "composer_submit";
24
+ connect_integration: "connect_integration";
25
+ connect_model: "connect_model";
26
+ create_session: "create_session";
27
+ retry_turn: "retry_turn";
28
+ send_message: "send_message";
29
+ steer_message: "steer_message";
30
+ }>;
31
+ reason: z.ZodEnum<{
32
+ network: "network";
33
+ offline: "offline";
34
+ timeout: "timeout";
35
+ }>;
36
+ route: z.ZodString;
37
+ revision: z.ZodString;
38
+ }, z.core.$strict>, z.ZodObject<{
39
+ signal: z.ZodLiteral<"stream">;
40
+ stream: z.ZodEnum<{
41
+ session: "session";
42
+ workspace: "workspace";
43
+ }>;
44
+ event: z.ZodEnum<{
45
+ long_disconnect: "long_disconnect";
46
+ reconnect: "reconnect";
47
+ reconnect_exhausted: "reconnect_exhausted";
48
+ }>;
49
+ route: z.ZodString;
50
+ revision: z.ZodString;
51
+ }, z.core.$strict>, z.ZodObject<{
52
+ signal: z.ZodLiteral<"web_vital">;
53
+ metric: z.ZodEnum<{
54
+ cls: "cls";
55
+ inp: "inp";
56
+ lcp: "lcp";
57
+ ttfb: "ttfb";
58
+ }>;
59
+ page: z.ZodEnum<{
60
+ "account-auth": "account-auth";
61
+ agents: "agents";
62
+ artifacts: "artifacts";
63
+ capabilities: "capabilities";
64
+ "checkout-return": "checkout-return";
65
+ "connect-agent": "connect-agent";
66
+ device: "device";
67
+ documents: "documents";
68
+ environments: "environments";
69
+ files: "files";
70
+ home: "home";
71
+ "identity-link": "identity-link";
72
+ insights: "insights";
73
+ "integration-return": "integration-return";
74
+ machines: "machines";
75
+ memory: "memory";
76
+ organization: "organization";
77
+ other: "other";
78
+ "personal-security": "personal-security";
79
+ plugins: "plugins";
80
+ priority: "priority";
81
+ "reset-password": "reset-password";
82
+ rigs: "rigs";
83
+ schedules: "schedules";
84
+ "session-link": "session-link";
85
+ sessions: "sessions";
86
+ settings: "settings";
87
+ "setup-account": "setup-account";
88
+ state: "state";
89
+ "variable-sets": "variable-sets";
90
+ }>;
91
+ value: z.ZodNumber;
92
+ revision: z.ZodString;
93
+ }, z.core.$strict>], "signal">;
94
+ export type ClientSignalReport = z.infer<typeof ClientSignalReport>;
95
+ export type ClientBeaconReport = ClientErrorReport | ClientSignalReport;
96
+ /**
97
+ * Bucket bounds cover the published good/poor thresholds of every metric:
98
+ * CLS 0.1/0.25, INP 0.2/0.5 s, TTFB 0.8/1.8 s, LCP 2.5/4 s.
99
+ */
100
+ export declare const CLIENT_WEB_VITAL_BUCKETS: number[];
101
+ export type ClientErrorAdmission = KeyedAdmission<ClientErrorKind>;
102
+ /** Keyed by `<signal>:<closed dimension>`, a finite set of buckets. */
103
+ export type ClientSignalAdmission = KeyedAdmission<string>;
104
+ /** Same bounds as the error kinds: one bucket per closed signal key. */
105
+ export declare function createClientSignalAdmission(options?: {
106
+ capacity?: number;
107
+ refillPerSecond?: number;
108
+ now?: () => number;
109
+ }): ClientSignalAdmission;
110
+ /**
111
+ * Web vitals arrive from every page load rather than only on failure, so they
112
+ * get a much larger dedicated bucket per metric (burst 1,200, then 20 a
113
+ * second per process). The browser samples vitals before sending.
114
+ */
115
+ export declare function createClientWebVitalAdmission(options?: {
116
+ capacity?: number;
117
+ refillPerSecond?: number;
118
+ now?: () => number;
119
+ }): ClientSignalAdmission;
120
+ /**
121
+ * One token bucket per closed kind bounds counter inflation and log volume
122
+ * from any caller, including an anonymous one, without per-client state.
123
+ */
124
+ export declare function createClientErrorAdmission(options?: {
125
+ capacity?: number;
126
+ refillPerSecond?: number;
127
+ now?: () => number;
128
+ }): ClientErrorAdmission;
129
+ export declare function parseClientErrorReport(body: string | null): ClientErrorReport | null;
130
+ /** Parse any accepted beacon body: an error report or a closed signal report. */
131
+ export declare function parseClientBeaconReport(body: string | null): ClientBeaconReport | null;
132
+ export declare function isClientSignalReport(report: ClientBeaconReport): report is ClientSignalReport;
133
+ /**
134
+ * The exact beacon request. The app-wide request-body limit skips it because
135
+ * the route enforces its own 512-byte limit on the streamed body; the generic
136
+ * ceiling would otherwise buffer a chunked body of many megabytes on an
137
+ * anonymous route before this one could refuse it.
138
+ */
139
+ export declare function isClientErrorReportRequest(method: string, pathname: string): boolean;
140
+ export declare function registerClientErrorRoutes(app: Hono, deps: {
141
+ observability: Observability;
142
+ settings: Pick<Settings, "corsAllowOriginRegex" | "publicBaseUrl" | "webBaseUrl">;
143
+ admission?: ClientErrorAdmission;
144
+ signalAdmission?: ClientSignalAdmission;
145
+ webVitalAdmission?: ClientSignalAdmission;
146
+ }): void;
@@ -1,4 +1,60 @@
1
- export declare function codexModelsForPicker(liveSlugs: readonly string[]): Array<{
1
+ import { type Settings } from "@opengeni/config";
2
+ import { type CodexAccountStatus } from "@opengeni/db";
3
+ export declare function codexAccountJson(row: CodexAccountStatus, options?: {
4
+ appsCredentialId?: string | null;
5
+ canManageApps?: boolean;
6
+ humanSubjectId?: string | null;
7
+ }): {
8
+ id: string;
9
+ source: "organization" | "workspace";
10
+ chatgptAccountId: string | null;
11
+ label: string | null;
12
+ email: string | null;
13
+ plan: string | null;
14
+ planCheckedAt: Date | null;
15
+ planChangedFrom: string | null;
16
+ planChangedAt: Date | null;
17
+ planExcludedModels: {
18
+ model: string;
19
+ label: string;
20
+ excludedAt: Date;
21
+ retryAfter: Date;
22
+ }[];
23
+ status: string;
24
+ active: boolean;
25
+ expiresAt: Date | null;
26
+ lastRefreshAt: Date | null;
27
+ lastError: string | null;
28
+ fiveHour: import("@opengeni/codex").CodexUsageWindow | null;
29
+ weekly: import("@opengeni/codex").CodexUsageWindow | null;
30
+ usageCheckedAt: Date | null;
31
+ allocatorEnabled: boolean;
32
+ allocatorVersion: number;
33
+ allocatorUpdatedAt: Date | null;
34
+ resetCreditAvailableCount: number | null;
35
+ resetCreditsCheckedAt: Date | null;
36
+ exhaustedUntil: Date | null;
37
+ appsDesignated: boolean;
38
+ canEnableApps: boolean;
39
+ };
40
+ /**
41
+ * Derive the two distinct cached worker-readiness meanings exposed by the
42
+ * status route. `poolReady` means at least one effective-pool account passes
43
+ * the worker's cached admission predicate. `workerRoutable` additionally
44
+ * honors rotation-off's active-pointer-only rule; it says nothing about a
45
+ * session-specific manual pin.
46
+ */
47
+ export declare function codexWorkerReadiness(input: {
48
+ effectiveSource: "workspace" | "organization" | "disabled";
49
+ rotationEnabled: boolean;
50
+ activeCredentialId: string | null;
51
+ accounts: ReadonlyArray<Pick<CodexAccountStatus, "id" | "status" | "allocatorEnabled" | "primaryUsedPercent" | "primaryResetAt" | "secondaryUsedPercent" | "secondaryResetAt" | "exhaustedUntil">>;
52
+ now: Date;
53
+ }): {
54
+ poolReady: boolean;
55
+ workerRoutable: boolean;
56
+ };
57
+ export declare function codexModelsForPicker(settings?: Settings, supportedSlugs?: readonly string[]): Array<{
2
58
  id: string;
3
59
  label: string;
4
60
  provider: string;
@@ -6,5 +62,23 @@ export declare function codexModelsForPicker(liveSlugs: readonly string[]): Arra
6
62
  api: "responses";
7
63
  }>;
8
64
  import { type ApiRouteDeps } from "@opengeni/core";
9
- import type { Hono } from "hono";
65
+ import type { Context, Hono } from "hono";
66
+ type ManagedCookieHuman = {
67
+ subjectId: string;
68
+ browserSessionHash: string;
69
+ };
70
+ export declare function managedCookieHuman(c: Context, deps: ApiRouteDeps): Promise<ManagedCookieHuman | null>;
71
+ /**
72
+ * The person in this browser, or an agent acting as them. Only for routes that
73
+ * then require the same person's workspace grant; provider sign-in steps keep
74
+ * managedCookieHuman. An agent has no browser session, so its hash never
75
+ * matches a sign-in started in one.
76
+ */
77
+ export declare function managedHumanOrAgent(c: Context, deps: ApiRouteDeps): Promise<ManagedCookieHuman | null>;
78
+ export declare function requireOrganizationCodexHuman(c: Context, deps: ApiRouteDeps, organizationId: string, options?: {
79
+ /** A provider sign-in step: the person does it in the browser, never an agent. */
80
+ providerConsent?: boolean;
81
+ }): Promise<ManagedCookieHuman>;
82
+ export declare function requireSameOriginBrowserMutation(c: Context, deps: ApiRouteDeps): void;
10
83
  export declare function registerCodexRoutes(app: Hono, deps: ApiRouteDeps): void;
84
+ export {};
@@ -0,0 +1,3 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ export declare function registerCompanyBrainRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -1,3 +1,4 @@
1
- import { type ApiRouteDeps } from "@opengeni/core";
1
+ import { type AccessGrantAuthorization, type ApiRouteDeps } from "@opengeni/core";
2
2
  import type { Hono } from "hono";
3
+ export declare function requireDirectAccountAdmin(access: AccessGrantAuthorization): void;
3
4
  export declare function registerCompanyProfileRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -1,6 +1,20 @@
1
1
  import { type ApiRouteDeps } from "@opengeni/core";
2
+ import { type ComputerControlFrame, type ExpectedComputerFrameEvidence } from "@opengeni/runtime/sandbox";
2
3
  import type { Hono } from "hono";
4
+ type ComputerFrameCaptureClient = {
5
+ capture(targetId: string, options: {
6
+ format?: "jpeg" | "png";
7
+ quality?: number;
8
+ maxWidth?: number;
9
+ maxHeight?: number;
10
+ }): Promise<ComputerControlFrame>;
11
+ };
12
+ export declare function validateComputerFrameForApi(frame: Pick<ComputerControlFrame, "data" | "mediaType" | "metadataHeader">, expected: ExpectedComputerFrameEvidence): ComputerControlFrame;
13
+ export declare function captureModelComputerFrame(sessionClient: ComputerFrameCaptureClient, expected: ExpectedComputerFrameEvidence): Promise<ComputerControlFrame>;
14
+ /** One validated screen frame, served as sandboxed, non-embeddable user content. */
15
+ export declare function computerScreenshotResponse(frame: Pick<ComputerControlFrame, "data" | "mediaType" | "metadataHeader">): Response;
3
16
  /** Public ComputerSession resource surface. Physical app/window authority stays
4
17
  * in the same placement controller used by BrowserSession; this route owns only
5
18
  * durable authorization, placement fencing, lifecycle receipts, and routing. */
6
19
  export declare function registerComputerSessionRoutes(app: Hono, deps: ApiRouteDeps): void;
20
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { Hono } from "hono";
2
+ import { type ApiRouteDeps } from "@opengeni/core";
3
+ /** Shared durable setup entry. Provider completion is distinct from
4
+ * subsequent preview/install; never report an OAuth token as a ready integration. */
5
+ export declare function registerConnectRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -42,3 +42,5 @@ export declare class EditableArtifactApplicationError extends Error {
42
42
  }
43
43
  export declare function registerEditableArtifactRoutes(app: Hono, deps: EditableArtifactRouteDependencies): void;
44
44
  export declare function editableArtifactActorForGrant(grant: AccessGrant, rawReplicaId: string): EditableArtifactRouteActor;
45
+ export declare function isInvisibleListCandidate(error: unknown): boolean;
46
+ export declare function editableArtifactHttpError(error: unknown): unknown;
@@ -0,0 +1,6 @@
1
+ import type { Hono } from "hono";
2
+ import { type ApiRouteDeps } from "@opengeni/core";
3
+ /** Both products address the link through a workspace they already own. The
4
+ * link itself is organization-local; the host's Personal workspace need not be
5
+ * exposed to the native human, and neither side names the other's subject. */
6
+ export declare function registerExternalIdentityLinkRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,3 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ export declare function registerFeedbackRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -2,3 +2,7 @@ import type { Hono } from "hono";
2
2
  import type { ApiRouteDeps } from "@opengeni/core";
3
3
  export declare function registerFileRoutes(app: Hono, deps: ApiRouteDeps): void;
4
4
  export declare function sanitizeFilename(filename: string): string;
5
+ /** Human and stable service grants already carry their immutable subject.
6
+ * Agent tokens carry only a technical worker subject, so resolve the exact
7
+ * live attempt and use the initiating human frozen on its durable turn. */
8
+ export declare function fileAuthoritySubjectIdForGrant(deps: Pick<ApiRouteDeps, "db">, grant: import("@opengeni/contracts").AccessGrant): Promise<string | null>;
@@ -0,0 +1,12 @@
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
+ export declare function githubSetupPendingHtml(): string;
5
+ /**
6
+ * Why a GitHub browser step could not continue. Browser navigation (a stale
7
+ * page-load link, GitHub's Cancel button, a non-owner) must land on a readable
8
+ * page with a way back, never on a raw JSON error body.
9
+ */
10
+ export type GitHubConnectFailure = "expired" | "cancelled" | "not_owner" | "forbidden" | "policy_denied" | "signed_out" | "failed";
11
+ export declare function githubConnectFailureHtml(failure: GitHubConnectFailure, returnUrl: string, detail?: string | null): string;
12
+ export declare function githubSuccessHtml(envLines: string[]): string;
@@ -1,3 +1,5 @@
1
+ import { type AccessGrant } from "@opengeni/contracts";
1
2
  import type { Hono } from "hono";
2
3
  import type { ApiRouteDeps } from "@opengeni/core";
3
4
  export declare function registerGitHubRoutes(app: Hono, deps: ApiRouteDeps): void;
5
+ export declare function requirePublicGitHubRepositoryVerificationPermission(grant: Pick<AccessGrant, "permissions">): 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,3 +1,32 @@
1
- import { type ApiRouteDeps } from "@opengeni/core";
1
+ import { type ApiRouteDeps, type WorkspaceInsightsFilterField } from "@opengeni/core";
2
2
  import type { Hono } from "hono";
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;
3
32
  export declare function registerInsightsRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,3 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ export declare function registerKnowledgeRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,26 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ export declare function registerManagedAuthSessionSetRoutes(app: Hono, deps: ApiRouteDeps): void;
4
+ export declare function validatedManagedAuthSocialAuthorizationUrl(input: {
5
+ provider: "google" | "github";
6
+ rawUrl: unknown;
7
+ expectedClientId: string;
8
+ expectedCallbackUrl: string;
9
+ }): string;
10
+ /**
11
+ * Better Auth 1.6.26 provider lifecycle routes retained while session-set mode
12
+ * owns all selected-session reads, enumeration, revocation, and user mutation.
13
+ * The list is intentionally exact so a dependency upgrade cannot silently add
14
+ * a selected-session capability under the wildcard.
15
+ */
16
+ export declare function requireManagedAuthProviderRouteAllowed(method: string, pathname: string): void;
17
+ /** Remove provider bearer/session material and enforce browser-auth cache/cookie policy. */
18
+ export declare function scrubManagedAuthProviderResponse(response: Response, options?: {
19
+ replacementCookies?: readonly string[] | undefined;
20
+ preserveCookieNames?: readonly string[] | undefined;
21
+ }): Promise<Response>;
22
+ export declare function parseSupportedDeepLink(path: string): {
23
+ workspaceId: string | null;
24
+ sessionId: string | null;
25
+ permission: "workspace:read" | "sessions:read";
26
+ } | null;
@@ -0,0 +1,29 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ export type ManagedOnboardingRouteOptions = {
4
+ accountSetupLimiter?: {
5
+ take(key: string): boolean;
6
+ };
7
+ hashPassword?: (password: string) => Promise<string>;
8
+ };
9
+ export declare function registerManagedOnboardingRoutes(app: Hono, deps: ApiRouteDeps, options?: ManagedOnboardingRouteOptions): void;
10
+ /**
11
+ * Bounded application-tier protection for the public setup bearer endpoint.
12
+ * The global bucket prevents spoofed/high-cardinality client keys from
13
+ * multiplying password-hash work, while the per-client bucket limits bursts.
14
+ * A full key map rejects new clients until an idle bucket can be pruned.
15
+ */
16
+ export declare class PublicSetupRateLimiter {
17
+ private readonly options;
18
+ private readonly buckets;
19
+ private global;
20
+ constructor(options?: {
21
+ globalCapacity?: number;
22
+ globalRefillPerSecond?: number;
23
+ clientCapacity?: number;
24
+ clientRefillPerSecond?: number;
25
+ maxClientKeys?: number;
26
+ now?: () => number;
27
+ });
28
+ take(key: string): boolean;
29
+ }
@@ -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>;
@@ -0,0 +1,3 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ export declare function registerModelConnectionAccessRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,3 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ export declare function registerOrganizationIntegrationPolicyRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,6 @@
1
+ import { type AccessContext } from "@opengeni/contracts";
2
+ import { type AccessGrantAuthorization, type ApiRouteDeps } from "@opengeni/core";
3
+ import type { Hono } from "hono";
4
+ /** Account administrators or verified full-access organization keys; never workspace keys. */
5
+ export declare function requireOrganizationIntegrationAdmin(context: AccessContext, organizationId: string, authorization?: AccessGrantAuthorization): string;
6
+ export declare function registerOrganizationIntegrationRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,3 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ export declare function registerOrganizationMcpConnectionRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,3 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ export declare function registerOrganizationModelProviderRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,19 @@
1
+ import { getManagedAuthRequestActorAdmissionStamp, getManagedAuthRequestActorLeaseStamp, requireCanonicalHumanRequestIdentity } from "@opengeni/core/canonical-human-identities";
2
+ import type { ApiRouteDeps } from "@opengeni/core";
3
+ import { acceptOrganizationRecoveryCustody, approveOrganizationRecoveryOperation, cancelOrganizationRecoveryOperation, configureOrganizationRecoveryPolicy, disableOrganizationRecoveryPolicy, executeOrganizationRecoveryOperation, getOrganizationRecoveryOverview, startOrganizationRecoveryOperation } from "@opengeni/db";
4
+ import type { Hono } from "hono";
5
+ export type OrganizationRecoveryRouteServices = {
6
+ requireCanonicalHumanRequestIdentity: typeof requireCanonicalHumanRequestIdentity;
7
+ getManagedAuthRequestActorAdmissionStamp: typeof getManagedAuthRequestActorAdmissionStamp;
8
+ getManagedAuthRequestActorLeaseStamp: typeof getManagedAuthRequestActorLeaseStamp;
9
+ getOrganizationRecoveryOverview: typeof getOrganizationRecoveryOverview;
10
+ configureOrganizationRecoveryPolicy: typeof configureOrganizationRecoveryPolicy;
11
+ acceptOrganizationRecoveryCustody: typeof acceptOrganizationRecoveryCustody;
12
+ disableOrganizationRecoveryPolicy: typeof disableOrganizationRecoveryPolicy;
13
+ startOrganizationRecoveryOperation: typeof startOrganizationRecoveryOperation;
14
+ approveOrganizationRecoveryOperation: typeof approveOrganizationRecoveryOperation;
15
+ cancelOrganizationRecoveryOperation: typeof cancelOrganizationRecoveryOperation;
16
+ executeOrganizationRecoveryOperation: typeof executeOrganizationRecoveryOperation;
17
+ };
18
+ export declare function organizationRecoveryHttpError(error: unknown): Error;
19
+ export declare function registerOrganizationRecoveryRoutes(app: Hono, deps: ApiRouteDeps, services?: OrganizationRecoveryRouteServices): void;
@@ -0,0 +1,3 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ export declare function registerOrganizationServiceAccountRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,26 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ /**
4
+ * Upper bound on the workspace page reads one request performs. The
5
+ * organization list fans out over every shared workspace in stable id order,
6
+ * one RLS-scoped transaction per workspace, so an organization with many empty
7
+ * tenant workspaces would otherwise turn a single request into an unbounded
8
+ * scan. When the budget runs out the page is returned short with `nextCursor`
9
+ * pointing at the next unread position.
10
+ */
11
+ export declare const ORGANIZATION_SESSION_LIST_MAX_WORKSPACE_READS = 25;
12
+ /**
13
+ * Base64url JSON `{ workspaceId, cursor, pinnedOffset? }`; `cursor` is the
14
+ * workspace list cursor or null. A subject's pinned sessions precede the
15
+ * ordinary keyset page of a workspace; when a page boundary falls inside that
16
+ * pinned prefix, `pinnedOffset` records how many pinned rows were already
17
+ * returned so the next page resumes after them instead of repeating them.
18
+ */
19
+ export type OrganizationSessionListCursor = {
20
+ workspaceId: string;
21
+ cursor: string | null;
22
+ pinnedOffset?: number | undefined;
23
+ };
24
+ export declare function encodeOrganizationSessionListCursor(cursor: OrganizationSessionListCursor): string;
25
+ export declare function decodeOrganizationSessionListCursor(value: string): OrganizationSessionListCursor | null;
26
+ export declare function registerOrganizationSessionRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,29 @@
1
+ import type { ApiRouteDeps } from "@opengeni/core";
2
+ import { type PersonalGitHubGitBrokerClaims, type PersonalGitHubGitBrokerRepositoryClaim } from "@opengeni/github";
3
+ import type { Hono } from "hono";
4
+ export declare const PERSONAL_GITHUB_GIT_BROKER_PATH_PREFIX = "/v1/git/personal/";
5
+ type BrokerOperation = "info_refs" | "upload_pack" | "receive_pack";
6
+ type BrokerRepository = Omit<PersonalGitHubGitBrokerRepositoryClaim, "routeId">;
7
+ type BrokerAuthority = {
8
+ claims: PersonalGitHubGitBrokerClaims;
9
+ repository: BrokerRepository;
10
+ providerPrincipalId: string;
11
+ };
12
+ export type PersonalGitHubGitBrokerServices = {
13
+ openClaims: (token: string) => PersonalGitHubGitBrokerClaims | null;
14
+ resolveAuthority: (claims: PersonalGitHubGitBrokerClaims, routeId: string) => Promise<BrokerAuthority>;
15
+ authorizeProviderRequest: (authority: BrokerAuthority, destinationUrl: string, operation: "identity_verify" | "repository_verify" | BrokerOperation) => Promise<string>;
16
+ fetch: typeof fetch;
17
+ idleTimeoutMs?: number;
18
+ };
19
+ /**
20
+ * Register the three closed Git smart-HTTP operations. These routes are not a
21
+ * product-auth bypass: their only credential is the short-lived encrypted,
22
+ * exact-attempt broker bearer and every physical provider request is fenced
23
+ * again against current database authority.
24
+ */
25
+ export declare function registerPersonalGitHubGitBrokerRoutes(app: Hono, deps: ApiRouteDeps, services?: PersonalGitHubGitBrokerServices): void;
26
+ export declare function isPersonalGitHubGitBrokerPath(pathname: string): boolean;
27
+ export declare function isPersonalGitHubGitBrokerRequest(method: string, pathname: string): boolean;
28
+ export declare function handlePersonalGitHubGitBrokerRequest(request: Request, routeId: string, operation: BrokerOperation, services: PersonalGitHubGitBrokerServices): Promise<Response>;
29
+ export {};
@@ -0,0 +1,3 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ export declare function registerPersonalGitHubRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,3 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ export declare function registerPrReviewGitHubRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,3 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ export declare function registerPrReviewRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,4 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Hono } from "hono";
3
+ /** Exact authorized membership proof, not a paginated artifact discovery API. */
4
+ export declare function registerSessionArtifactAssociationRoutes(app: Hono, deps: ApiRouteDeps): void;
@@ -0,0 +1,9 @@
1
+ import { type ApiRouteDeps } from "@opengeni/core";
2
+ import type { Context, Hono } from "hono";
3
+ /** Exact server-only routes with their own bounded, streaming JSON ingress. */
4
+ export declare function isSessionHistoryImportRequest(method: string, pathname: string): boolean;
5
+ /** Count raw UTF-8 bytes before decoding or parsing, including chunked bodies. */
6
+ export declare function readSessionHistoryImportJson(request: Request): Promise<unknown>;
7
+ /** Also used by the composed API for imported-session Send/Steer refusals. */
8
+ export declare function archivedSessionImportErrorResponse(c: Context, error: unknown): Response | null;
9
+ export declare function registerSessionHistoryImportRoutes(app: Hono, deps: ApiRouteDeps): void;