@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
@@ -1,6 +1,12 @@
1
1
  import { z } from "zod";
2
2
  import type { SessionEventSliceOptions, SessionEventSlicePage } from "@opengeni/db/session-event-slices";
3
3
  export declare const SESSION_EVENT_VIEW_MAX_BYTES: number;
4
+ /**
5
+ * toolName with includeOutput reads each named call's result through the exact
6
+ * callId path, so one page carries at most this many call/result pairs inside
7
+ * the same 16 KiB envelope. An omitted limit means the newest (or oldest) one.
8
+ */
9
+ export declare const SESSION_EVENT_NAMED_OUTPUT_MAX_CALLS = 3;
4
10
  declare const selectionSchema: z.ZodObject<{
5
11
  sessionId: z.ZodString;
6
12
  view: z.ZodEnum<{
@@ -11,12 +17,26 @@ declare const selectionSchema: z.ZodObject<{
11
17
  includeArguments: z.ZodBoolean;
12
18
  includeOutput: z.ZodBoolean;
13
19
  callId: z.ZodNullable<z.ZodString>;
20
+ toolName: z.ZodDefault<z.ZodNullable<z.ZodString>>;
21
+ limit: z.ZodOptional<z.ZodNumber>;
14
22
  direction: z.ZodEnum<{
15
23
  after: "after";
16
24
  before: "before";
17
25
  }>;
18
26
  after: z.ZodNumber;
19
27
  before: z.ZodNullable<z.ZodNumber>;
28
+ named: z.ZodOptional<z.ZodObject<{
29
+ toolName: z.ZodString;
30
+ includeArguments: z.ZodBoolean;
31
+ limit: z.ZodNumber;
32
+ direction: z.ZodEnum<{
33
+ after: "after";
34
+ before: "before";
35
+ }>;
36
+ after: z.ZodNumber;
37
+ before: z.ZodNullable<z.ZodNumber>;
38
+ more: z.ZodBoolean;
39
+ }, z.core.$strip>>;
20
40
  }, z.core.$strip>;
21
41
  type Selection = z.infer<typeof selectionSchema>;
22
42
  export type SessionEventViewInput = {
@@ -28,6 +48,7 @@ export type SessionEventViewInput = {
28
48
  limit?: number | undefined;
29
49
  cursor?: string | undefined;
30
50
  callId?: string | undefined;
51
+ toolName?: string | undefined;
31
52
  includeArguments?: boolean | undefined;
32
53
  includeOutput?: boolean | undefined;
33
54
  };
@@ -46,9 +67,20 @@ export declare function resolveSessionEventView(input: SessionEventViewInput): {
46
67
  includeArguments: boolean;
47
68
  includeOutput: boolean;
48
69
  callId: string | null;
70
+ toolName: string | null;
71
+ limit?: number | undefined;
49
72
  direction: "after" | "before";
50
73
  after: number;
51
74
  before: number | null;
75
+ named?: {
76
+ toolName: string;
77
+ includeArguments: boolean;
78
+ limit: number;
79
+ direction: "after" | "before";
80
+ after: number;
81
+ before: number | null;
82
+ more: boolean;
83
+ } | undefined;
52
84
  };
53
85
  continuation: {
54
86
  v: 1 | 2;
@@ -58,17 +90,47 @@ export declare function resolveSessionEventView(input: SessionEventViewInput): {
58
90
  includeArguments: boolean;
59
91
  includeOutput: boolean;
60
92
  callId: string | null;
93
+ toolName: string | null;
94
+ limit?: number | undefined;
61
95
  direction: "after" | "before";
62
96
  after: number;
63
97
  before: number | null;
98
+ named?: {
99
+ toolName: string;
100
+ includeArguments: boolean;
101
+ limit: number;
102
+ direction: "after" | "before";
103
+ after: number;
104
+ before: number | null;
105
+ more: boolean;
106
+ } | undefined;
64
107
  };
65
108
  sequence: number | null;
66
109
  offset: number;
67
110
  } | null;
111
+ notice: string | undefined;
68
112
  };
69
113
  /** Read-only projection over the existing RLS/audit query. No command observations. */
70
114
  export declare function readSessionEventView(input: SessionEventViewInput, read: ReadPage): Promise<{
115
+ notice: string;
116
+ view: "conversation" | "results" | "tools";
117
+ effectiveLimit: number;
118
+ direction: "after" | "before";
119
+ events: Item[];
120
+ nextAfter: number | null;
121
+ nextBefore: number | null;
122
+ hasMore: boolean;
123
+ nextCursor: string | null;
124
+ sourceExact: boolean;
125
+ sourceLoss?: {
126
+ reason: "structured_value_exceeds_budget";
127
+ completeTextAvailable: false;
128
+ message: string;
129
+ };
130
+ maxBytes: number;
131
+ } | {
71
132
  view: "conversation" | "results" | "tools";
133
+ effectiveLimit: number;
72
134
  direction: "after" | "before";
73
135
  events: Item[];
74
136
  nextAfter: number | null;
@@ -79,6 +79,12 @@ export declare function boundSessionCompactDetailMcp(session: Session, monitorin
79
79
  parentSessionId?: string;
80
80
  activeTurnId?: string;
81
81
  lastSequence: number;
82
+ archive?: {
83
+ state: "archived" | "archiving";
84
+ archivedAt: string | null;
85
+ readOnly: boolean;
86
+ };
87
+ keepLive?: boolean;
82
88
  goal?: {
83
89
  status: "active" | "completed" | "paused";
84
90
  summary: string | null;
@@ -138,6 +144,8 @@ export declare function boundSessionDetailMcp(session: Session, effectiveControl
138
144
  tools: unknown;
139
145
  metadata: unknown;
140
146
  model: string;
147
+ reasoningEffort: "high" | "low" | "max" | "medium" | "minimal" | "none" | "xhigh";
148
+ latencyMode: "fast" | "priority" | "standard";
141
149
  sandboxBackend: string;
142
150
  sandboxOs: "linux" | "macos" | "windows";
143
151
  sandboxGroupId: string;
@@ -167,6 +175,13 @@ export declare function boundSessionDetailMcp(session: Session, effectiveControl
167
175
  pinned: boolean;
168
176
  pinnedAt: string | null;
169
177
  pinVersion: number;
178
+ retention?: {
179
+ keepLive: boolean;
180
+ archive: {
181
+ state: "archived" | "archiving";
182
+ archivedAt: string | null;
183
+ } | null;
184
+ };
170
185
  treeStats?: {
171
186
  directChildren: number;
172
187
  totalDescendants: number;
@@ -38,6 +38,8 @@ export declare const SESSION_WAIT_EVENTS_PER_TARGET = 20;
38
38
  * agent messages, blocking failures, goal facts, and session status/control
39
39
  * changes. Raw deltas, tool receipts, sandbox/machine diagnostics, and PTY
40
40
  * noise never wake a waiter; `session_events` remains the drill-down for them.
41
+ * The change mode further drops per-message completions: see
42
+ * {@link sessionWaitChangeEventMatches}.
41
43
  */
42
44
  export declare const SESSION_WAIT_EVENT_TYPES: readonly ["turn.started", "turn.completed", "turn.failed", "turn.cancelled", "turn.superseded", "turn.capacity_waiting", "agent.message.completed", "session.status.changed", "session.requiresAction", "session.humanInput.requested", "session.control.paused", "session.control.resumed", "session.wait.started", "session.wait.finished", "tool.auth_needed", "session.command.finished", "credential.auth_needed", "rig.setup.failed", "goal.set", "goal.updated", "goal.progress", "goal.rewrite.proposed", "goal.rewrite.rejected", "goal.completed", "goal.paused", "goal.resumed", "goal.cleared", "goal.continuation"];
43
45
  /**
@@ -55,6 +57,15 @@ export declare const SESSION_WAIT_COMPLETION_EVENT_TYPES: readonly ["turn.comple
55
57
  * while the session still has work to do, so they must not release a parent.
56
58
  */
57
59
  export declare function sessionWaitCompletionEventMatches(event: SessionEvent): boolean;
60
+ /**
61
+ * `waitFor=change` wakes on settled changes. A per-message assistant completion
62
+ * (commentary, or a final message the turn is about to settle) is not one: the
63
+ * `turn.completed` that follows carries the answer. Waking on every progress
64
+ * note would only buy the waiter another poll. The phase-less, id-less
65
+ * completion older workers publish with `turn.completed` still matches.
66
+ * Readers pair this with `excludeStreamedAssistantMessages` in SQL.
67
+ */
68
+ export declare function sessionWaitChangeEventMatches(event: SessionEvent): boolean;
58
69
  /** The self-session event that announces a newly pending machine input. */
59
70
  export declare const SESSION_WAIT_OWN_PENDING_EVENT_TYPE = "system.update.pending";
60
71
  /**
@@ -63,12 +74,19 @@ export declare const SESSION_WAIT_OWN_PENDING_EVENT_TYPE = "system.update.pendin
63
74
  * child notices are reported but do not end the wait by themselves.
64
75
  */
65
76
  export declare function ownPendingKindWakes(kind: string): boolean;
77
+ /**
78
+ * Re-derive the caller's own pending-input facts after the returned content
79
+ * consumed some of that input, keeping the same byte bound.
80
+ */
81
+ export declare function withOwnPendingUpdateKinds(result: SessionWaitResult, kinds: readonly string[]): SessionWaitResult;
66
82
  export declare function sessionWaitSemanticClass(type: SessionEventType): SessionEventSemanticClass;
67
83
  export type SessionWaitTarget = {
68
84
  sessionId: string;
69
85
  afterSequence: number;
70
86
  };
71
87
  export type SessionWaitEventSummary = {
88
+ /** True only when every semantic result field survived all projections. */
89
+ contentComplete?: boolean;
72
90
  id: string;
73
91
  sequence: number;
74
92
  type: SessionEventType;
@@ -0,0 +1,38 @@
1
+ import type { AccessGrant } from "@opengeni/contracts";
2
+ import { type ApiRouteDeps, type SiteAgentClamp, type SiteClampedResource } from "@opengeni/core";
3
+ /** A refused write by an agent started from a Site page, as first-party tools return it. */
4
+ export declare function siteAgentClampedToolResult(message: string): {
5
+ isError: true;
6
+ content: {
7
+ type: "text";
8
+ text: string;
9
+ }[];
10
+ };
11
+ export type SiteAgentClampedToolResult = ReturnType<typeof siteAgentClampedToolResult>;
12
+ /**
13
+ * Null, or the refusal when `grant` is an agent started from a Site page
14
+ * (the Site clamp): such an agent cannot create or change `what`.
15
+ */
16
+ export declare function siteAgentClampRefusal(deps: Pick<ApiRouteDeps, "db">, grant: AccessGrant, what: SiteClampedResource): Promise<SiteAgentClampedToolResult | null>;
17
+ /**
18
+ * Null, or the refusal when `grant` is an agent started from a Site page:
19
+ * such an agent cannot run on, attach, swap or provision sandboxes or
20
+ * Connected Machines (the viewer's machines among them).
21
+ */
22
+ export declare function siteAgentComputeRefusal(deps: Pick<ApiRouteDeps, "db">, grant: AccessGrant): Promise<SiteAgentClampedToolResult | null>;
23
+ /** The first-party tools that write documents, spreadsheets and presentations. */
24
+ export declare const SITE_AGENT_EDITABLE_ARTIFACT_WRITE_TOOLS: ReadonlySet<string>;
25
+ export declare const SITE_AGENT_EDITABLE_ARTIFACT_RESOURCE: "documents, spreadsheets or presentations the Site did not declare";
26
+ /**
27
+ * Whether a Site-clamped agent may write documents, spreadsheets and
28
+ * presentations: only when a published Site it was started from declares a
29
+ * first-party editing tool (`editable_artifact_create`, `_import` or
30
+ * `_apply`) in its current version's requested tools. Console frames (no
31
+ * published Site) and Sites that declare none may not; a read that fails
32
+ * refuses. Existing artifacts additionally need immutable creation provenance
33
+ * in this same Site-clamped session tree; merely reading/associating one is not
34
+ * authority to edit it. There is no explicit artifact declaration surface yet.
35
+ */
36
+ export declare function siteAgentMayEditArtifacts(deps: Pick<ApiRouteDeps, "db">, grant: Pick<AccessGrant, "accountId" | "workspaceId" | "metadata">, clamp: SiteAgentClamp, artifactId?: string): Promise<boolean>;
37
+ /** Null, or the refusal of an undeclared document, spreadsheet or presentation write. */
38
+ export declare function siteAgentEditableArtifactRefusal(deps: Pick<ApiRouteDeps, "db">, grant: AccessGrant, artifactId?: string): Promise<SiteAgentClampedToolResult | null>;
@@ -0,0 +1,22 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { type AccessGrant } from "@opengeni/contracts";
3
+ import type { ApiRouteDeps } from "@opengeni/core";
4
+ import { type SiteAgentDataResolution } from "../site-publishing/agent-data-tools.js";
5
+ type JsonResult = (value: unknown) => {
6
+ content: Array<{
7
+ type: "text";
8
+ text: string;
9
+ }>;
10
+ };
11
+ /**
12
+ * First-party Site Data tools. They act with the agent's own authority: the
13
+ * person it acts for (a chat's person or a schedule's owner) decides whether
14
+ * it manages the Site's data or is one of its viewers.
15
+ *
16
+ * A published Site's own agent (`siteAgent` resolves a Site context) is
17
+ * different: only `site_data_query` and `site_data_write` work, pinned to
18
+ * that Site (any other siteId is refused) and acting as the conversation's
19
+ * viewer, exactly as the Site's page does; every other tool refuses it.
20
+ */
21
+ export declare function registerSiteDataTools(server: McpServer, deps: ApiRouteDeps, grant: AccessGrant, authorize: () => Promise<void>, json: JsonResult, siteAgent?: () => Promise<SiteAgentDataResolution>): void;
22
+ export {};
@@ -0,0 +1,19 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { type AccessGrant } from "@opengeni/contracts";
3
+ import type { ApiRouteDeps } from "@opengeni/core";
4
+ type JsonResult = (value: unknown) => {
5
+ content: Array<{
6
+ type: "text";
7
+ text: string;
8
+ }>;
9
+ };
10
+ /** What people outside the workspace may do, stated in every publication answer. */
11
+ export declare const SITE_AUDIENCE_RULES = "Workspace members may use everything the Site declares, within what they may do in the workspace, and are never limited by Site limits. People outside the workspace (invited people and public visitors) get only the Site's own data: Site Data (by each collection's access mode, and its guest access for anonymous visitors), Site SQL named queries their audience allows, and the page. They never get workspace tools or subscription-billed models, and their assistant use counts toward the Site limit.";
12
+ /**
13
+ * First-party tools for publishing a Site on its own hostname. They act with
14
+ * the agent's own authority: only a Site's managers (its owner, a workspace
15
+ * admin, or an agent acting for one) read or change its publication, and
16
+ * only a workspace admin changes its limits. Takedown stays with people.
17
+ */
18
+ export declare function registerSitePublicationTools(server: McpServer, deps: ApiRouteDeps, grant: AccessGrant, authorize: () => Promise<void>, json: JsonResult): void;
19
+ export {};
@@ -0,0 +1,27 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { type AccessGrant } from "@opengeni/contracts";
3
+ import type { ApiRouteDeps } from "@opengeni/core";
4
+ import { type SiteAgentDataResolution } from "../site-publishing/agent-data-tools.js";
5
+ type JsonResult = (value: unknown) => {
6
+ content: Array<{
7
+ type: "text";
8
+ text: string;
9
+ }>;
10
+ };
11
+ /**
12
+ * First-party Site SQL tools: optional per-Site Cloudflare storage (one SQLite
13
+ * database per Site). Only the Site's managers (its owner, a workspace admin,
14
+ * or an agent acting for them) can manage it; Site pages call named queries
15
+ * with site.sql.run, and so can agents with site_sql_run. The tools act with
16
+ * the agent's own authority, through the same service as the HTTP routes. An
17
+ * agent started from a Site page gets that page's reach (resolveSiteDataAccess):
18
+ * every management tool refuses it, and site_sql_run runs only the named
19
+ * queries the page itself could run, on that Site.
20
+ *
21
+ * A published Site's own agent (`siteAgent` resolves a Site context) gets
22
+ * `site_sql_run` as the conversation's viewer (audiences and `:viewer` as on
23
+ * the page) and, for workspace members, read-only `site_sql_query`; both are
24
+ * pinned to that Site and every other tool refuses it.
25
+ */
26
+ export declare function registerSiteSqlTools(server: McpServer, deps: ApiRouteDeps, grant: AccessGrant, authorize: () => Promise<void>, json: JsonResult, siteAgent?: () => Promise<SiteAgentDataResolution>): void;
27
+ export {};
@@ -1,10 +1,14 @@
1
- import { type AccessGrant, type ToolGatewayCatalog, type ToolGatewayIdentity } from "@opengeni/contracts";
1
+ import { OrganizationAccessPolicy, type AccessGrant, type ToolGatewayCatalog, type ToolGatewayIdentity } from "@opengeni/contracts";
2
+ import { type McpOAuthAccess } from "@opengeni/db";
2
3
  import { type ApiRouteDeps } from "@opengeni/core";
3
- import { Hono } from "hono";
4
+ import { Hono, type Context } from "hono";
5
+ /** One organization MCP server for everyone; the sign-in chooses the organization. */
6
+ export declare const ORGANIZATION_MCP_PATH = "/v1/mcp";
4
7
  export type McpOAuthResource = {
5
8
  resource: string;
6
- workspaceId: string;
7
- kind: "all" | "docs" | "files";
9
+ /** Null for the organization server. */
10
+ workspaceId: string | null;
11
+ kind: "all" | "docs" | "files" | "organization";
8
12
  };
9
13
  export type McpOAuthRouteAccess = {
10
14
  grant: AccessGrant;
@@ -17,3 +21,32 @@ export declare function isMcpOAuthResourcePath(pathname: string): boolean;
17
21
  export declare function mcpOAuthConsentToolIdentities(catalog: ToolGatewayCatalog): ToolGatewayIdentity[];
18
22
  export declare function isMcpOAuthPublicProtocolPath(pathname: string): boolean;
19
23
  export declare function mcpOAuthAuthenticateHeader(deps: ApiRouteDeps, pathname: string): string;
24
+ export declare function mcpOAuthRedirectUriCandidates(registered: string[], requested: string): string[];
25
+ export declare function completeAuthorizationRedirect(c: Context, redirectTo: string): Response;
26
+ export type McpOAuthConsentAccount = {
27
+ id: string;
28
+ name: string;
29
+ };
30
+ export type McpOAuthConsentWorkspace = {
31
+ id: string;
32
+ accountId: string;
33
+ name: string;
34
+ kind: "personal" | "shared";
35
+ };
36
+ export declare function renderMcpOAuthConsentPage(input: {
37
+ clientName: string;
38
+ requestToken: string;
39
+ accounts: McpOAuthConsentAccount[];
40
+ workspaces: McpOAuthConsentWorkspace[];
41
+ selectedWorkspaceId: string;
42
+ }): string;
43
+ export declare function renderMcpOAuthContinuePage(redirectTo: string): string;
44
+ export declare function renderMcpOAuthExpiredPage(message: string): string;
45
+ /**
46
+ * The organization connection behind an organization-server bearer, or null
47
+ * when the request carries no MCP OAuth token. Invalid, revoked, expired or
48
+ * workspace-bound tokens are refused.
49
+ */
50
+ export declare function resolveOrganizationMcpOAuthAccess(deps: ApiRouteDeps, request: Request): Promise<(McpOAuthAccess & {
51
+ organizationAccess: OrganizationAccessPolicy;
52
+ }) | null>;
@@ -0,0 +1,87 @@
1
+ import { ModelCallError, type ModelCallInput } from "@opengeni/core";
2
+ import { type SingleModelCallResult } from "@opengeni/runtime/model-call";
3
+ export type ParsedChatCompletionRequest = {
4
+ model: string | null;
5
+ request: ModelCallInput["request"];
6
+ stream: boolean;
7
+ includeUsage: boolean;
8
+ };
9
+ export declare function parseChatCompletionRequest(body: unknown): ParsedChatCompletionRequest;
10
+ export declare function chatCompletionUsage(usage: SingleModelCallResult["usage"]): {
11
+ prompt_tokens: number;
12
+ completion_tokens: number;
13
+ total_tokens: number;
14
+ prompt_tokens_details: {
15
+ cached_tokens: number;
16
+ };
17
+ completion_tokens_details: {
18
+ reasoning_tokens: number;
19
+ };
20
+ } | null;
21
+ export declare function chatCompletionId(requestId: string): string;
22
+ export declare function chatCompletionResponse(input: {
23
+ requestId: string;
24
+ created: number;
25
+ model: string;
26
+ result: SingleModelCallResult;
27
+ }): {
28
+ id: string;
29
+ object: string;
30
+ created: number;
31
+ model: string;
32
+ choices: {
33
+ index: number;
34
+ message: {
35
+ role: string;
36
+ content: string;
37
+ refusal: null;
38
+ };
39
+ logprobs: null;
40
+ finish_reason: import("@opengeni/runtime").SingleModelCallFinishReason;
41
+ }[];
42
+ usage: {
43
+ prompt_tokens: number;
44
+ completion_tokens: number;
45
+ total_tokens: number;
46
+ prompt_tokens_details: {
47
+ cached_tokens: number;
48
+ };
49
+ completion_tokens_details: {
50
+ reasoning_tokens: number;
51
+ };
52
+ } | null;
53
+ };
54
+ export declare function chatCompletionChunk(input: {
55
+ requestId: string;
56
+ created: number;
57
+ model: string;
58
+ delta: {
59
+ role?: "assistant";
60
+ content?: string;
61
+ };
62
+ finishReason: SingleModelCallResult["finishReason"] | null;
63
+ includeUsage: boolean;
64
+ }): {
65
+ id: string;
66
+ object: string;
67
+ created: number;
68
+ model: string;
69
+ choices: {
70
+ index: number;
71
+ delta: {
72
+ role?: "assistant";
73
+ content?: string;
74
+ };
75
+ logprobs: null;
76
+ finish_reason: import("@opengeni/runtime").SingleModelCallFinishReason | null;
77
+ }[];
78
+ usage?: null;
79
+ };
80
+ export declare function chatCompletionError(error: ModelCallError): {
81
+ error: {
82
+ message: string;
83
+ type: import("@opengeni/core").ModelCallErrorType;
84
+ param: string | null;
85
+ code: string | null;
86
+ };
87
+ };
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Fast in-process retry for task usage receipts of attempt-authenticated
3
+ * single model calls. Durable custody lives in the database, not here.
4
+ *
5
+ * Before dispatch, admission opens a durable pending marker for the call's
6
+ * source identity (`model_call:<requestId>`). The provider response has
7
+ * already been returned when settlement runs, so a failed settlement is never
8
+ * fixed by calling the provider again:
9
+ *
10
+ * - the exact settlement is retained here and retried against the database
11
+ * with bounded backoff until it lands (no expiry, no silent eviction);
12
+ * - the marker is fenced at once when possible, and any marker left unfilled
13
+ * (fenced, or older than the overdue window after a crash or on another
14
+ * replica) blocks new model requests for the whole task on every replica;
15
+ * - maintenance discloses a marker that is never filled as an unpriced call,
16
+ * so coverage reads partial instead of complete.
17
+ *
18
+ * Settlement is idempotent on the source identity and fills the marker
19
+ * exactly once, so a retry racing a slow original write records usage once.
20
+ * When this process already retains `maxEntries` settlements it refuses new
21
+ * task calls instead of dropping any.
22
+ */
23
+ export type RetainedSettlement = () => Promise<unknown>;
24
+ export type PendingUsageSettlementsOptions = {
25
+ /** Upper bound on retained settlements across all sessions. */
26
+ maxEntries?: number;
27
+ /** First background retry delay; doubles up to `maxDelayMs`. */
28
+ initialDelayMs?: number;
29
+ maxDelayMs?: number;
30
+ /** Test hook; defaults to setTimeout with unref. */
31
+ schedule?: (fn: () => void, delayMs: number) => void;
32
+ };
33
+ export declare class PendingUsageSettlements {
34
+ private readonly options;
35
+ private readonly entries;
36
+ private readonly maxEntries;
37
+ private readonly initialDelayMs;
38
+ private readonly maxDelayMs;
39
+ constructor(options?: PendingUsageSettlementsOptions);
40
+ get size(): number;
41
+ /** True when no further settlement can be retained: new task calls are refused. */
42
+ get full(): boolean;
43
+ /** True when this session has a retained, not yet recorded settlement. */
44
+ has(sessionId: string): boolean;
45
+ /**
46
+ * Retain a failed settlement for exact DB-only retry. Returns false only
47
+ * when the process is already at capacity; the durable marker then remains
48
+ * the custody (fenced or overdue, later disclosed as unpriced).
49
+ */
50
+ retain(sessionId: string, sourceId: string, settle: RetainedSettlement): boolean;
51
+ /**
52
+ * Record every retained settlement of `sessionId`. Throws the first failure;
53
+ * successful ones are removed either way.
54
+ */
55
+ flush(sessionId: string): Promise<void>;
56
+ private scheduleRetry;
57
+ }
@@ -0,0 +1,36 @@
1
+ import { type CodexFetch, type CodexUsagePayload } from "@opengeni/codex";
2
+ import { type Settings } from "@opengeni/config";
3
+ import type { EntitlementsPort } from "@opengeni/contracts";
4
+ import { type SessionUsageLimitMetricsSink, type ModelCallService, type WorkspaceModelSelection } from "@opengeni/core";
5
+ import { type Database } from "@opengeni/db";
6
+ import { PendingUsageSettlements } from "./pending-usage-settlements.js";
7
+ export type ModelCallServiceDeps = {
8
+ db: Database;
9
+ settings: Settings;
10
+ /** Catalog source settings; defaults to `settings`. */
11
+ catalogSourceSettings?: Settings;
12
+ entitlements?: EntitlementsPort | null;
13
+ codexFetch?: CodexFetch;
14
+ log?: (message: string, attributes: Record<string, string | number | boolean>) => void;
15
+ /** Content-free task usage-limit counters (closed-set labels). */
16
+ usageLimitMetrics?: SessionUsageLimitMetricsSink | null;
17
+ /** Retained task usage receipts awaiting DB-only recovery (tests inject one). */
18
+ pendingUsageSettlements?: PendingUsageSettlements;
19
+ };
20
+ export declare function createModelCallService(deps: ModelCallServiceDeps): ModelCallService;
21
+ /**
22
+ * SuperGrok runs only on the shared subscription core, whose single-call
23
+ * `completion` operation stays Codex-only (design 5.3): this API neither
24
+ * lists nor serves a SuperGrok subscription model, so a request for one is
25
+ * `model_not_found` before admission, never a misleading capacity error.
26
+ */
27
+ export declare function servedBySingleModelCalls(selection: WorkspaceModelSelection): boolean;
28
+ /**
29
+ * Whether the account still has included plan usage. A single call never
30
+ * spends a ChatGPT account's paid extra credits: an exhausted or unverifiable
31
+ * account is skipped before anything reaches the provider.
32
+ */
33
+ export declare function codexIncludedUsageAvailable(usage: CodexUsagePayload, now?: number): boolean;
34
+ export declare function isModelCallAbort(error: unknown): boolean;
35
+ /** Map a provider or runtime failure to a public error; aborts pass through. */
36
+ export declare function publicModelCallError(error: unknown): unknown;
@@ -1,6 +1,6 @@
1
1
  import { type ConfiguredModel } from "@opengeni/config";
2
- import { ClientModel, type WorkspaceModelCatalogResponse as WorkspaceModelCatalogResponseType } from "@opengeni/contracts";
3
- import { type WorkspaceModelSelectionInput } from "@opengeni/core";
2
+ import { ClientModel, type DefaultModelSelection, type WorkspaceModelCatalogResponse as WorkspaceModelCatalogResponseType } from "@opengeni/contracts";
3
+ import { type WorkspaceModelSelection, type WorkspaceModelSelectionInput } from "@opengeni/core";
4
4
  export { MODEL_CREDENTIAL_READINESS_OBSERVATION_MAX_AGE_MS, type ModelAvailabilityObservation, type ModelCredentialReadinessObservation, } from "@opengeni/core";
5
5
  /** Static, client-safe definition projection. No provider secret is reachable. */
6
6
  export declare function projectClientModel(model: ConfiguredModel): ClientModel;
@@ -12,4 +12,10 @@ export declare function projectClientModel(model: ConfiguredModel): ClientModel;
12
12
  * successful typed resolver observation; credential health and provider health
13
13
  * are separate inputs and neither is fabricated.
14
14
  */
15
- export declare function buildWorkspaceModelCatalog(input: WorkspaceModelSelectionInput): WorkspaceModelCatalogResponseType;
15
+ export declare function buildWorkspaceModelCatalog(input: WorkspaceModelSelectionInput, defaults?: WorkspaceModelCatalogDefaults): WorkspaceModelCatalogResponseType;
16
+ /** Resolved new-chat defaults published beside the catalog rows. */
17
+ export type WorkspaceModelCatalogDefaults = {
18
+ defaultSelection: DefaultModelSelection;
19
+ creditsSelection: DefaultModelSelection | null;
20
+ };
21
+ export declare function projectWorkspaceModelCatalog(selections: readonly WorkspaceModelSelection[], defaults?: WorkspaceModelCatalogDefaults): WorkspaceModelCatalogResponseType;
@@ -0,0 +1,69 @@
1
+ import type { Settings } from "@opengeni/config";
2
+ import { type ClaimedNativePushDelivery, type Database, type NativePushOutcome } from "@opengeni/db";
3
+ import type { Observability } from "@opengeni/observability";
4
+ export type NativePushSendResult = {
5
+ outcome: NativePushOutcome;
6
+ error?: string;
7
+ };
8
+ export type NativePushSender = (delivery: ClaimedNativePushDelivery) => Promise<NativePushSendResult>;
9
+ /** A claimed payload, marked when its question asks for a secret. */
10
+ export type NativePushPayload = ClaimedNativePushDelivery["payload"] & {
11
+ secretQuestion?: boolean;
12
+ };
13
+ export type NativePushDispatchDeps = {
14
+ db: Database;
15
+ settings: Settings;
16
+ observability?: Pick<Observability, "info" | "warn" | "error">;
17
+ senders?: Partial<Record<"ios" | "android", NativePushSender>>;
18
+ };
19
+ /**
20
+ * A notification message as plain text for the lock screen: links keep their
21
+ * text, emphasis and code marks go, and "- " bullets become "•".
22
+ */
23
+ export declare function plainNotificationText(markdown: string): string;
24
+ /** The visible text of a push: title, optional subtitle, and the message with its facts. */
25
+ export declare function nativePushAlert(payload: NativePushPayload): {
26
+ title: string;
27
+ subtitle?: string;
28
+ body?: string;
29
+ };
30
+ /**
31
+ * What breaks through Focus: an agent notification the agent marked
32
+ * time-sensitive, and questions and approvals for a person who asked for them
33
+ * to (their setting puts the urgency on the delivery). Everything else, and
34
+ * replies and failures always, arrive as ordinary alerts, so Focus and the
35
+ * person's own notification settings decide when they show.
36
+ */
37
+ export declare function nativePushInterruptionLevel(payload: ClaimedNativePushDelivery["payload"]): "time-sensitive" | "active";
38
+ /** What the app reads on tap: enough to open the session in the right account. */
39
+ export declare function nativePushData(payload: ClaimedNativePushDelivery["payload"]): {
40
+ sessionId: string;
41
+ workspaceId: string;
42
+ subjectId: string;
43
+ rule: "agent" | "failed" | "needs_input" | "reply_ready";
44
+ eventType?: string;
45
+ sequence?: number;
46
+ };
47
+ /**
48
+ * The notification category the app registers actions for: an approval can be
49
+ * approved (behind device unlock) or denied, a question answered inline.
50
+ */
51
+ export declare function nativePushCategory(payload: NativePushPayload): "og.approval" | "og.question" | undefined;
52
+ /** APNs with a token-based (.p8) key; one HTTP/2 connection per environment. */
53
+ export declare function createApnsSender(input: {
54
+ keyId: string;
55
+ teamId: string;
56
+ privateKey: string;
57
+ }): NativePushSender;
58
+ /** FCM HTTP v1 with a service account; data-only, so the app presents it. */
59
+ export declare function createFcmSender(input: {
60
+ serviceAccountJson: string;
61
+ fetch?: typeof fetch;
62
+ }): NativePushSender;
63
+ /** The senders this deployment has credentials for. */
64
+ export declare function configuredNativePushSenders(settings: Settings): Partial<Record<"ios" | "android", NativePushSender>>;
65
+ export declare function drainNativePushDeliveries(deps: NativePushDispatchDeps): Promise<{
66
+ claimed: number;
67
+ delivered: number;
68
+ }>;
69
+ export declare function startNativePushDispatchPump(deps: NativePushDispatchDeps): () => Promise<void>;
@@ -1,3 +1,5 @@
1
- import type { EventLogger } from "@opengeni/events";
1
+ import { type EventBusOptions, type EventLogger } from "@opengeni/events";
2
2
  import type { Observability } from "@opengeni/observability";
3
+ /** Logger plus the closed-label subscription-termination counter for NATS connections. */
4
+ export declare function observabilityEventBusOptions(observability: Observability): Pick<EventBusOptions, "logger" | "onSubscriptionTerminated">;
3
5
  export declare function observabilityEventLogger(observability: Observability): EventLogger;