@opengeni/api-router 3.0.1 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (546) hide show
  1. package/dist/access-grant-rls.d.ts +8 -1
  2. package/dist/admission-trace.d.ts +8 -0
  3. package/dist/app.d.ts +50 -3
  4. package/dist/app.js +10 -1
  5. package/dist/artifact-catalog-cursor.d.ts +1 -0
  6. package/dist/attached-browser-viewer.d.ts +11 -0
  7. package/dist/auth/managed-auth-attempt-context.d.ts +2 -0
  8. package/dist/auth/managed-auth-rate-limits.d.ts +167 -0
  9. package/dist/auth/managed-auth-session-adapter.d.ts +9 -1
  10. package/dist/auth/managed-auth.d.ts +72 -5
  11. package/dist/auth/managed-sign-in-notifications.d.ts +4 -0
  12. package/dist/auth/new-signups-gate.d.ts +23 -0
  13. package/dist/auth/signup-funnel-metrics.d.ts +44 -0
  14. package/dist/azure-live.d.ts +28 -0
  15. package/dist/browser-action-fences.d.ts +13 -0
  16. package/dist/browser-controller-authority.d.ts +1 -61
  17. package/dist/browser-ephemeral.d.ts +5 -0
  18. package/dist/browser-lost-runtime-end.d.ts +24 -0
  19. package/dist/browser-state-authority.d.ts +1 -27
  20. package/dist/chunk-OGQDXVXY.js +18 -0
  21. package/dist/chunk-OGQDXVXY.js.map +1 -0
  22. package/dist/{chunk-AJ62T5QN.js → chunk-OT56OY4V.js} +80503 -39869
  23. package/dist/chunk-OT56OY4V.js.map +1 -0
  24. package/dist/claude-default-models.d.ts +19 -0
  25. package/dist/claude-subscription-core.d.ts +50 -0
  26. package/dist/claude-subscription-oauth.d.ts +36 -0
  27. package/dist/claude-subscription-profile.d.ts +9 -0
  28. package/dist/claude-subscription-usage.d.ts +6 -0
  29. package/dist/claude-workspace-connection.d.ts +15 -0
  30. package/dist/codemode.d.ts +40 -5
  31. package/dist/codex-realtime.d.ts +29 -3
  32. package/dist/codex-session-pointers.d.ts +19 -0
  33. package/dist/connection-ownership.d.ts +6 -3
  34. package/dist/controller-data-plane.d.ts +16 -0
  35. package/dist/credit-promotion-snapshot.d.ts +6 -0
  36. package/dist/editable-artifact-source-session.d.ts +3 -0
  37. package/dist/editable-artifact-websocket.d.ts +5 -3
  38. package/dist/fatal-process-boundary.d.ts +9 -1
  39. package/dist/github-access.d.ts +7 -1
  40. package/dist/github-browser-flow.d.ts +1 -1
  41. package/dist/http/acting-person.d.ts +36 -0
  42. package/dist/http/api-contract-compat.d.ts +19 -0
  43. package/dist/http/api-error.d.ts +50 -1
  44. package/dist/http/auth.d.ts +8 -1
  45. package/dist/http/cors.d.ts +12 -0
  46. package/dist/http/deprecation.d.ts +42 -0
  47. package/dist/http/keyed-admission.d.ts +12 -0
  48. package/dist/http/local-browser-boundary.d.ts +72 -0
  49. package/dist/http/metrics-listener.d.ts +22 -0
  50. package/dist/http/path-identifier.d.ts +17 -0
  51. package/dist/http/registered-route-label.d.ts +16 -0
  52. package/dist/http/rejection-telemetry.d.ts +34 -0
  53. package/dist/http/request-body.d.ts +27 -0
  54. package/dist/http/request-source.d.ts +41 -3
  55. package/dist/http/sse.d.ts +12 -1
  56. package/dist/http/unmatched-route.d.ts +18 -0
  57. package/dist/http/user-content.d.ts +36 -0
  58. package/dist/http/variable-sets-removed.d.ts +41 -0
  59. package/dist/http/websocket-upgrade-dispatch.d.ts +18 -0
  60. package/dist/index.js +1279 -108
  61. package/dist/index.js.map +1 -1
  62. package/dist/integration-connect-metrics.d.ts +35 -0
  63. package/dist/integration-endpoint-test.d.ts +20 -0
  64. package/dist/integrations/api-integrations.d.ts +2 -2
  65. package/dist/integrations/atlassian.d.ts +8 -3
  66. package/dist/integrations/fiken.d.ts +3 -1
  67. package/dist/integrations/github-lens-connect.d.ts +37 -66
  68. package/dist/integrations/google-drive.d.ts +2 -0
  69. package/dist/integrations/integration-commit-authority.d.ts +13 -0
  70. package/dist/integrations/marketplace-plugin.d.ts +43 -43
  71. package/dist/integrations/oauth-client.d.ts +171 -12
  72. package/dist/integrations/oauth-profiles.d.ts +42 -13
  73. package/dist/integrations/onepassword-vault-provider.d.ts +9 -0
  74. package/dist/integrations/slack-bot.d.ts +285 -7
  75. package/dist/integrations/slack-file-upload-flow.d.ts +62 -0
  76. package/dist/integrations/slack-interactions.d.ts +89 -10
  77. package/dist/integrations/slack-mrkdwn.d.ts +41 -0
  78. package/dist/integrations/slack-routing.d.ts +1 -1
  79. package/dist/integrations/slack-session-defaults.d.ts +58 -0
  80. package/dist/integrations/slack-task-file-upload.d.ts +36 -0
  81. package/dist/integrations/slack-tool-review.d.ts +5 -0
  82. package/dist/interaction-agent-access.d.ts +13 -8
  83. package/dist/interaction-agent-version.d.ts +21 -0
  84. package/dist/interaction-holder-heartbeat.d.ts +5 -0
  85. package/dist/interaction-metrics.d.ts +27 -2
  86. package/dist/interaction-route-stages.d.ts +25 -0
  87. package/dist/interaction-secrets-vault.d.ts +20 -0
  88. package/dist/interaction-secrets.d.ts +103 -0
  89. package/dist/mcp/action-catalog-types.d.ts +14 -0
  90. package/dist/mcp/action-catalog.gen.d.ts +2 -0
  91. package/dist/mcp/action-descriptions.d.ts +4 -0
  92. package/dist/mcp/action-schema-imports.gen.d.ts +1 -0
  93. package/dist/mcp/capability-account-readiness.d.ts +7 -0
  94. package/dist/mcp/child-read-evidence.d.ts +9 -0
  95. package/dist/mcp/company-profile-agent-admin.d.ts +12 -0
  96. package/dist/mcp/contract-input.d.ts +13 -0
  97. package/dist/mcp/documents.d.ts +2 -0
  98. package/dist/mcp/first-party-tool-permissions.d.ts +3 -606
  99. package/dist/mcp/notification-tools.d.ts +26 -0
  100. package/dist/mcp/orchestration-failure-diagnostic.d.ts +43 -0
  101. package/dist/mcp/scheduled-task-input.d.ts +1309 -0
  102. package/dist/mcp/scheduled-task-view.d.ts +217 -3
  103. package/dist/mcp/secret-tools.d.ts +14 -0
  104. package/dist/mcp/server.d.ts +108 -5
  105. package/dist/mcp/session-admin-access-tools.d.ts +33 -0
  106. package/dist/mcp/session-event-errors.d.ts +28 -0
  107. package/dist/mcp/session-event-view.d.ts +62 -0
  108. package/dist/mcp/session-view.d.ts +15 -0
  109. package/dist/mcp/session-wait.d.ts +18 -0
  110. package/dist/mcp/site-agent-clamp-tools.d.ts +38 -0
  111. package/dist/mcp/site-data-tools.d.ts +22 -0
  112. package/dist/mcp/site-publication-tools.d.ts +19 -0
  113. package/dist/mcp/site-sql-tools.d.ts +27 -0
  114. package/dist/mcp-oauth.d.ts +37 -4
  115. package/dist/model-calls/chat-completions.d.ts +87 -0
  116. package/dist/model-calls/pending-usage-settlements.d.ts +57 -0
  117. package/dist/model-calls/service.d.ts +36 -0
  118. package/dist/model-catalog.d.ts +9 -3
  119. package/dist/native-push-dispatch.d.ts +69 -0
  120. package/dist/observability.d.ts +3 -1
  121. package/dist/organization-mcp.d.ts +82 -0
  122. package/dist/prepared-mcp-actor.d.ts +77 -0
  123. package/dist/prepared-mcp-permissions.d.ts +8 -0
  124. package/dist/routes/analytics-consent.d.ts +26 -0
  125. package/dist/routes/api-integrations.d.ts +11 -0
  126. package/dist/routes/api-keys.d.ts +7 -7
  127. package/dist/routes/automations.d.ts +2 -0
  128. package/dist/routes/billing.d.ts +59 -0
  129. package/dist/routes/browser-sessions.d.ts +65 -2
  130. package/dist/routes/chat-completions.d.ts +11 -0
  131. package/dist/routes/claude-core-usage.d.ts +20 -0
  132. package/dist/routes/claude-subscription-accounts.d.ts +3 -0
  133. package/dist/routes/claude-subscription-oauth.d.ts +3 -0
  134. package/dist/routes/client-errors.d.ts +182 -0
  135. package/dist/routes/codex-core.d.ts +401 -0
  136. package/dist/routes/codex.d.ts +64 -2
  137. package/dist/routes/computer-sessions.d.ts +6 -1
  138. package/dist/routes/desktop-distribution.d.ts +32 -0
  139. package/dist/routes/github-browser-fonts.gen.d.ts +2 -0
  140. package/dist/routes/github-browser-pages.d.ts +27 -0
  141. package/dist/routes/inbox.d.ts +13 -0
  142. package/dist/routes/insights-response-cache.d.ts +10 -0
  143. package/dist/routes/insights-usage.d.ts +12 -0
  144. package/dist/routes/insights.d.ts +28 -0
  145. package/dist/routes/interaction-placement-message.d.ts +7 -0
  146. package/dist/routes/managed-sign-in-methods.d.ts +6 -0
  147. package/dist/routes/model-account-choice.d.ts +13 -0
  148. package/dist/routes/model-account-settings.d.ts +19 -0
  149. package/dist/routes/native-app-auth.d.ts +12 -0
  150. package/dist/routes/organization-integration-policy.d.ts +8 -0
  151. package/dist/routes/organization-integrations.d.ts +6 -0
  152. package/dist/routes/organization-mcp-connections.d.ts +3 -0
  153. package/dist/routes/organization-model-defaults.d.ts +9 -0
  154. package/dist/routes/organization-service-accounts.d.ts +3 -0
  155. package/dist/routes/personal-api-keys.d.ts +3 -0
  156. package/dist/routes/session-admin-access.d.ts +3 -0
  157. package/dist/routes/session-artifact-associations.d.ts +4 -0
  158. package/dist/routes/session-history-imports.d.ts +20 -0
  159. package/dist/routes/sessions.d.ts +38 -2
  160. package/dist/routes/site-data.d.ts +18 -0
  161. package/dist/routes/site-publishing.d.ts +5 -0
  162. package/dist/routes/site-runtime.d.ts +31 -0
  163. package/dist/routes/site-sql.d.ts +16 -0
  164. package/dist/routes/slack-bot-access.d.ts +3 -0
  165. package/dist/routes/subscription-account-pools.d.ts +21 -0
  166. package/dist/routes/subscription-core-http.d.ts +5 -0
  167. package/dist/routes/subscription-pool-access.d.ts +37 -0
  168. package/dist/routes/subscription-pool-core.d.ts +153 -0
  169. package/dist/routes/supergrok.d.ts +6 -6
  170. package/dist/routes/usage-allowances.d.ts +12 -0
  171. package/dist/routes/variable-sets-removed.d.ts +2 -0
  172. package/dist/routes/vault-providers.d.ts +34 -0
  173. package/dist/routes/vaults.d.ts +3 -0
  174. package/dist/routes/workspace-integrations.d.ts +35 -0
  175. package/dist/routes/workspace-model-providers.d.ts +4 -0
  176. package/dist/routes/workspaces.d.ts +11 -2
  177. package/dist/sandbox/agent-update.d.ts +64 -0
  178. package/dist/sandbox/auth-callout.d.ts +8 -0
  179. package/dist/sandbox/channel-a.d.ts +15 -1
  180. package/dist/sandbox/enrollment.d.ts +26 -4
  181. package/dist/sandbox/machine-audience.d.ts +29 -0
  182. package/dist/sandbox/machines.d.ts +15 -2
  183. package/dist/sandbox/metrics-ingestion.d.ts +6 -2
  184. package/dist/sandbox/screen-control.d.ts +85 -0
  185. package/dist/sandbox/viewer.d.ts +5 -1
  186. package/dist/sandbox-file-artifacts.d.ts +17 -1
  187. package/dist/scheduled-task-blockers.d.ts +39 -0
  188. package/dist/scheduled-task-deletion.d.ts +3 -4
  189. package/dist/scheduled-task-lifecycle.d.ts +14 -0
  190. package/dist/secret-answers.d.ts +40 -0
  191. package/dist/session-create-observability.d.ts +5 -0
  192. package/dist/session-event-view-36GO3IL7.js +528 -0
  193. package/dist/session-event-view-36GO3IL7.js.map +1 -0
  194. package/dist/signed-state-secret.d.ts +18 -0
  195. package/dist/site-agent-guard.d.ts +53 -0
  196. package/dist/site-data/operations.d.ts +103 -0
  197. package/dist/site-data/service.d.ts +203 -0
  198. package/dist/site-frame-guard.d.ts +32 -0
  199. package/dist/site-publishing/agent-data-tools.d.ts +84 -0
  200. package/dist/site-publishing/agent-model.d.ts +58 -0
  201. package/dist/site-publishing/agent-session.d.ts +16 -0
  202. package/dist/site-publishing/content-scanner.d.ts +31 -0
  203. package/dist/site-publishing/edge-sync.d.ts +48 -0
  204. package/dist/site-publishing/gateway-signature.d.ts +56 -0
  205. package/dist/site-publishing/limits.d.ts +63 -0
  206. package/dist/site-publishing/page-tool-authority.d.ts +30 -0
  207. package/dist/site-publishing/platform-usage.d.ts +113 -0
  208. package/dist/site-publishing/platform.d.ts +21 -0
  209. package/dist/site-publishing/readiness.d.ts +62 -0
  210. package/dist/site-publishing/runtime.d.ts +179 -0
  211. package/dist/site-publishing/service.d.ts +264 -0
  212. package/dist/site-publishing/session-events.d.ts +22 -0
  213. package/dist/site-publishing/session-views.d.ts +36 -0
  214. package/dist/site-publishing/viewer.d.ts +40 -0
  215. package/dist/site-session-origin.d.ts +31 -6
  216. package/dist/site-sql/format.d.ts +47 -0
  217. package/dist/site-sql/gateway.d.ts +50 -0
  218. package/dist/site-sql/service.d.ts +213 -0
  219. package/dist/temporal-schedule-sync.d.ts +26 -0
  220. package/dist/transcription/billing-refusal.d.ts +8 -0
  221. package/dist/transcription/normalize.d.ts +23 -0
  222. package/dist/transcription/providers/azure-mai.d.ts +12 -0
  223. package/dist/transcription/providers/azure-openai.d.ts +4 -0
  224. package/dist/transcription/providers/openai.d.ts +16 -0
  225. package/dist/transcription/providers/subscription-core.d.ts +39 -0
  226. package/dist/transcription/service.d.ts +10 -1
  227. package/dist/transcription/wav-duration.d.ts +8 -0
  228. package/dist/workspace-tool-gateway-attestations.d.ts +37 -0
  229. package/dist/workspace-tool-gateway-observability.d.ts +16 -0
  230. package/dist/workspace-tool-gateway-secrets.d.ts +27 -0
  231. package/dist/workspace-tool-gateway.d.ts +102 -6
  232. package/dist/workspace-tool-target-fence.d.ts +116 -0
  233. package/dist/workspace-tool-target.d.ts +225 -0
  234. package/dist/workspace-webhook-dispatch.d.ts +26 -0
  235. package/dist/xai-subscription-core.d.ts +60 -0
  236. package/package.json +25 -20
  237. package/src/access-grant-rls.ts +64 -14
  238. package/src/admission-trace.ts +14 -0
  239. package/src/app.ts +1684 -252
  240. package/src/artifact-catalog-cursor.ts +1 -0
  241. package/src/attached-browser-viewer.ts +26 -0
  242. package/src/auth/managed-auth-attempt-context.ts +9 -0
  243. package/src/auth/managed-auth-rate-limits.ts +252 -0
  244. package/src/auth/managed-auth-session-adapter.ts +64 -29
  245. package/src/auth/managed-auth.ts +303 -35
  246. package/src/auth/managed-email.ts +18 -1
  247. package/src/auth/managed-sign-in-notifications.ts +81 -0
  248. package/src/auth/new-signups-gate.ts +49 -0
  249. package/src/auth/organization-user-setup.ts +3 -3
  250. package/src/auth/signup-funnel-metrics.ts +164 -0
  251. package/src/azure-live.ts +103 -0
  252. package/src/browser-action-fences.ts +45 -0
  253. package/src/browser-controller-authority.ts +1 -186
  254. package/src/browser-ephemeral.ts +39 -0
  255. package/src/browser-lost-runtime-end.ts +71 -0
  256. package/src/browser-state-authority.ts +1 -236
  257. package/src/claude-default-models.ts +37 -0
  258. package/src/claude-subscription-core.ts +154 -0
  259. package/src/claude-subscription-oauth.ts +352 -0
  260. package/src/claude-subscription-profile.ts +73 -0
  261. package/src/claude-subscription-usage.ts +51 -0
  262. package/src/claude-workspace-connection.ts +82 -0
  263. package/src/codemode.ts +236 -39
  264. package/src/codex-realtime.ts +181 -53
  265. package/src/codex-session-pointers.ts +80 -0
  266. package/src/company-brain-okf.ts +1 -1
  267. package/src/connected-machine-computer-access.ts +2 -1
  268. package/src/connection-ownership.ts +19 -13
  269. package/src/controller-data-plane.ts +34 -0
  270. package/src/credit-promotion-snapshot.ts +36 -0
  271. package/src/editable-artifact-production.ts +10 -0
  272. package/src/editable-artifact-source-session.ts +123 -0
  273. package/src/editable-artifact-websocket.ts +16 -3
  274. package/src/fatal-process-boundary.ts +67 -3
  275. package/src/gateway-realtime.ts +12 -8
  276. package/src/github-access.ts +31 -5
  277. package/src/github-browser-flow.ts +1 -1
  278. package/src/http/acting-person.ts +105 -0
  279. package/src/http/api-contract-compat.ts +49 -0
  280. package/src/http/api-error.ts +210 -2
  281. package/src/http/auth.ts +68 -4
  282. package/src/http/cors.ts +37 -5
  283. package/src/http/deprecation.ts +118 -0
  284. package/src/http/keyed-admission.ts +29 -0
  285. package/src/http/local-browser-boundary.ts +343 -0
  286. package/src/http/metrics-listener.ts +57 -0
  287. package/src/http/path-identifier.ts +54 -0
  288. package/src/http/registered-route-label.ts +34 -0
  289. package/src/http/rejection-telemetry.ts +120 -0
  290. package/src/http/request-body.ts +127 -0
  291. package/src/http/request-source.ts +154 -13
  292. package/src/http/sse.ts +88 -28
  293. package/src/http/unmatched-route.ts +60 -0
  294. package/src/http/user-content.ts +158 -0
  295. package/src/http/variable-sets-removed.ts +122 -0
  296. package/src/http/websocket-upgrade-dispatch.ts +29 -0
  297. package/src/index.ts +107 -57
  298. package/src/integration-connect-metrics.ts +228 -0
  299. package/src/integration-endpoint-test.ts +291 -0
  300. package/src/integrations/api-integrations.ts +81 -7
  301. package/src/integrations/atlassian.ts +202 -83
  302. package/src/integrations/fiken.ts +66 -38
  303. package/src/integrations/github-app-connect.ts +64 -18
  304. package/src/integrations/github-lens-connect.ts +8 -29
  305. package/src/integrations/google-drive.ts +448 -152
  306. package/src/integrations/integration-commit-authority.ts +69 -0
  307. package/src/integrations/marketplace-plugin.ts +1 -1
  308. package/src/integrations/oauth-client.ts +733 -193
  309. package/src/integrations/oauth-profiles.ts +116 -45
  310. package/src/integrations/onepassword-vault-provider.ts +16 -0
  311. package/src/integrations/personal-github-repositories.ts +1 -1
  312. package/src/integrations/personal-github.ts +61 -35
  313. package/src/integrations/provider-oauth.ts +67 -85
  314. package/src/integrations/slack-app-home.ts +5 -5
  315. package/src/integrations/slack-bot.ts +893 -201
  316. package/src/integrations/slack-file-upload-flow.ts +147 -0
  317. package/src/integrations/slack-install.ts +7 -7
  318. package/src/integrations/slack-interactions.ts +1589 -299
  319. package/src/integrations/slack-mrkdwn.ts +193 -0
  320. package/src/integrations/slack-routing.ts +2 -2
  321. package/src/integrations/slack-session-defaults.ts +224 -0
  322. package/src/integrations/slack-task-file-upload.ts +323 -0
  323. package/src/integrations/slack-tool-review.ts +65 -0
  324. package/src/integrations/social-oauth.ts +90 -58
  325. package/src/interaction-agent-access.ts +40 -20
  326. package/src/interaction-agent-version.ts +85 -0
  327. package/src/interaction-holder-heartbeat.ts +24 -8
  328. package/src/interaction-metrics.ts +164 -2
  329. package/src/interaction-route-stages.ts +94 -0
  330. package/src/interaction-secrets-vault.ts +213 -0
  331. package/src/interaction-secrets.ts +426 -0
  332. package/src/mcp/action-catalog-types.ts +14 -0
  333. package/src/mcp/action-catalog.gen.ts +8014 -0
  334. package/src/mcp/action-descriptions.ts +299 -0
  335. package/src/mcp/action-schema-imports.gen.ts +304 -0
  336. package/src/mcp/capability-account-readiness.ts +17 -0
  337. package/src/mcp/child-read-evidence.ts +19 -0
  338. package/src/mcp/company-profile-agent-admin.ts +13 -0
  339. package/src/mcp/contract-input.ts +165 -0
  340. package/src/mcp/documents.ts +9 -2
  341. package/src/mcp/editable-artifacts.ts +29 -11
  342. package/src/mcp/files.ts +5 -1
  343. package/src/mcp/first-party-tool-permissions.ts +7 -285
  344. package/src/mcp/knowledge-entries.ts +108 -34
  345. package/src/mcp/notification-tools.ts +480 -0
  346. package/src/mcp/orchestration-failure-diagnostic.ts +43 -0
  347. package/src/mcp/scheduled-task-input.ts +89 -0
  348. package/src/mcp/scheduled-task-view.ts +63 -3
  349. package/src/mcp/secret-tools.ts +185 -0
  350. package/src/mcp/server.ts +2213 -1116
  351. package/src/mcp/session-admin-access-tools.ts +163 -0
  352. package/src/mcp/session-event-errors.ts +123 -0
  353. package/src/mcp/session-event-view.ts +395 -13
  354. package/src/mcp/session-view.ts +3 -0
  355. package/src/mcp/session-wait.ts +67 -7
  356. package/src/mcp/site-agent-clamp-tools.ts +140 -0
  357. package/src/mcp/site-data-tools.ts +339 -0
  358. package/src/mcp/site-publication-tools.ts +201 -0
  359. package/src/mcp/site-sql-tools.ts +427 -0
  360. package/src/mcp-oauth.ts +635 -45
  361. package/src/model-calls/chat-completions.ts +352 -0
  362. package/src/model-calls/pending-usage-settlements.ts +125 -0
  363. package/src/model-calls/service.ts +694 -0
  364. package/src/model-catalog.ts +68 -17
  365. package/src/native-push-dispatch.ts +457 -0
  366. package/src/observability.ts +15 -1
  367. package/src/organization-mcp.ts +485 -0
  368. package/src/prepared-mcp-actor.ts +154 -0
  369. package/src/prepared-mcp-permissions.ts +38 -0
  370. package/src/routes/analytics-consent.ts +123 -0
  371. package/src/routes/api-integrations.ts +268 -9
  372. package/src/routes/api-keys.ts +164 -25
  373. package/src/routes/artifact-catalog.ts +111 -0
  374. package/src/routes/automations.ts +163 -90
  375. package/src/routes/billing.ts +535 -59
  376. package/src/routes/browser-sessions.ts +966 -342
  377. package/src/routes/canonical-human-identities.ts +61 -0
  378. package/src/routes/capabilities.ts +112 -5
  379. package/src/routes/channels.ts +4 -3
  380. package/src/routes/chat-completions.ts +235 -0
  381. package/src/routes/claude-core-usage.ts +147 -0
  382. package/src/routes/claude-subscription-accounts.ts +233 -0
  383. package/src/routes/claude-subscription-oauth.ts +175 -0
  384. package/src/routes/client-errors.ts +394 -0
  385. package/src/routes/codex-core.ts +687 -0
  386. package/src/routes/codex.ts +1277 -1119
  387. package/src/routes/company-brain.ts +4 -0
  388. package/src/routes/computer-sessions.ts +319 -85
  389. package/src/routes/connect.ts +277 -175
  390. package/src/routes/connections.ts +690 -363
  391. package/src/routes/desktop-distribution.ts +217 -0
  392. package/src/routes/documents.ts +13 -7
  393. package/src/routes/editable-artifacts.ts +74 -4
  394. package/src/routes/enrollments.ts +110 -16
  395. package/src/routes/external-identity-links.ts +13 -12
  396. package/src/routes/files.ts +41 -16
  397. package/src/routes/github-browser-fonts.gen.ts +12 -0
  398. package/src/routes/github-browser-pages.ts +258 -0
  399. package/src/routes/github.ts +200 -75
  400. package/src/routes/inbox.ts +353 -0
  401. package/src/routes/insights-response-cache.ts +83 -0
  402. package/src/routes/insights-usage.ts +345 -0
  403. package/src/routes/insights.ts +103 -8
  404. package/src/routes/install.ts +51 -10
  405. package/src/routes/integration-facets.ts +70 -28
  406. package/src/routes/interaction-placement-message.ts +12 -0
  407. package/src/routes/knowledge.ts +136 -27
  408. package/src/routes/machines.ts +189 -135
  409. package/src/routes/managed-auth-session-sets.ts +43 -10
  410. package/src/routes/managed-onboarding.ts +39 -19
  411. package/src/routes/managed-sign-in-methods.ts +433 -0
  412. package/src/routes/memory-slack-publications.ts +3 -2
  413. package/src/routes/model-account-choice.ts +194 -0
  414. package/src/routes/model-account-settings.ts +235 -0
  415. package/src/routes/model-connection-access.ts +210 -48
  416. package/src/routes/native-app-auth.ts +296 -0
  417. package/src/routes/organization-integration-policy.ts +116 -0
  418. package/src/routes/organization-integrations.ts +326 -0
  419. package/src/routes/organization-mcp-connections.ts +183 -0
  420. package/src/routes/organization-memberships.ts +205 -19
  421. package/src/routes/organization-model-defaults.ts +110 -0
  422. package/src/routes/organization-model-providers.ts +74 -3
  423. package/src/routes/organization-service-accounts.ts +128 -0
  424. package/src/routes/organization-sessions.ts +21 -5
  425. package/src/routes/personal-api-keys.ts +184 -0
  426. package/src/routes/personal-github-git-broker.ts +2 -2
  427. package/src/routes/personal-github.ts +9 -4
  428. package/src/routes/plugins.ts +46 -7
  429. package/src/routes/pr-review-github.ts +105 -118
  430. package/src/routes/pr-review.ts +88 -82
  431. package/src/routes/preference-registry.ts +18 -0
  432. package/src/routes/rigs.ts +48 -13
  433. package/src/routes/scheduled-tasks.ts +347 -27
  434. package/src/routes/session-admin-access.ts +271 -0
  435. package/src/routes/session-artifact-associations.ts +164 -0
  436. package/src/routes/session-history-imports.ts +305 -0
  437. package/src/routes/sessions.ts +1682 -363
  438. package/src/routes/site-data.ts +340 -0
  439. package/src/routes/site-publishing.ts +584 -0
  440. package/src/routes/site-runtime.ts +1944 -0
  441. package/src/routes/site-sql.ts +263 -0
  442. package/src/routes/skill-content.ts +72 -7
  443. package/src/routes/skills.ts +5 -4
  444. package/src/routes/slack-bot-access.ts +108 -0
  445. package/src/routes/social.ts +27 -15
  446. package/src/routes/subscription-account-pools.ts +209 -0
  447. package/src/routes/subscription-core-http.ts +18 -0
  448. package/src/routes/subscription-pool-access.ts +180 -0
  449. package/src/routes/subscription-pool-core.ts +552 -0
  450. package/src/routes/supergrok.ts +174 -655
  451. package/src/routes/transcription-recordings.ts +71 -4
  452. package/src/routes/transcriptions.ts +26 -2
  453. package/src/routes/usage-allowances.ts +381 -0
  454. package/src/routes/variable-sets-removed.ts +19 -0
  455. package/src/routes/vault-providers.ts +782 -0
  456. package/src/routes/vaults.ts +421 -0
  457. package/src/routes/video-generation.ts +30 -12
  458. package/src/routes/workspace-artifacts.ts +165 -53
  459. package/src/routes/workspace-integrations.ts +576 -0
  460. package/src/routes/workspace-model-providers.ts +148 -0
  461. package/src/routes/workspace-state.ts +4 -0
  462. package/src/routes/workspaces.ts +625 -117
  463. package/src/sandbox/agent-update.ts +315 -0
  464. package/src/sandbox/auth-callout.ts +104 -21
  465. package/src/sandbox/channel-a.ts +165 -55
  466. package/src/sandbox/enrollment.ts +131 -22
  467. package/src/sandbox/machine-audience.ts +192 -0
  468. package/src/sandbox/machines.ts +75 -31
  469. package/src/sandbox/metrics-ingestion.ts +133 -2
  470. package/src/sandbox/rematerialize.ts +51 -21
  471. package/src/sandbox/screen-control.ts +289 -0
  472. package/src/sandbox/viewer.ts +33 -58
  473. package/src/sandbox-file-artifacts.ts +53 -27
  474. package/src/scheduled-task-blockers.ts +293 -0
  475. package/src/scheduled-task-deletion.ts +13 -3
  476. package/src/scheduled-task-lifecycle.ts +84 -0
  477. package/src/secret-answers.ts +119 -0
  478. package/src/session-create-observability.ts +46 -0
  479. package/src/session-realtime-context.ts +26 -4
  480. package/src/signed-state-secret.ts +58 -0
  481. package/src/site-agent-guard.ts +261 -0
  482. package/src/site-data/operations.ts +777 -0
  483. package/src/site-data/service.ts +1043 -0
  484. package/src/site-frame-guard.ts +107 -0
  485. package/src/site-publishing/agent-data-tools.ts +250 -0
  486. package/src/site-publishing/agent-model.ts +127 -0
  487. package/src/site-publishing/agent-session.ts +148 -0
  488. package/src/site-publishing/content-scanner.ts +93 -0
  489. package/src/site-publishing/edge-sync.ts +148 -0
  490. package/src/site-publishing/gateway-signature.ts +198 -0
  491. package/src/site-publishing/limits.ts +315 -0
  492. package/src/site-publishing/page-tool-authority.ts +111 -0
  493. package/src/site-publishing/platform-usage.ts +479 -0
  494. package/src/site-publishing/platform.ts +98 -0
  495. package/src/site-publishing/readiness.ts +330 -0
  496. package/src/site-publishing/runtime.ts +831 -0
  497. package/src/site-publishing/service.ts +1282 -0
  498. package/src/site-publishing/session-events.ts +262 -0
  499. package/src/site-publishing/session-views.ts +262 -0
  500. package/src/site-publishing/viewer.ts +75 -0
  501. package/src/site-session-origin.ts +91 -6
  502. package/src/site-sql/format.ts +134 -0
  503. package/src/site-sql/gateway.ts +168 -0
  504. package/src/site-sql/service.ts +1636 -0
  505. package/src/site-uploads.ts +27 -5
  506. package/src/temporal-schedule-sync.ts +74 -0
  507. package/src/transcription/billing-refusal.ts +14 -0
  508. package/src/transcription/normalize.ts +77 -0
  509. package/src/transcription/providers/azure-mai.ts +98 -0
  510. package/src/transcription/providers/azure-openai.ts +16 -7
  511. package/src/transcription/providers/codex-subscription.ts +190 -67
  512. package/src/transcription/providers/openai.ts +79 -5
  513. package/src/transcription/providers/subscription-core.ts +125 -0
  514. package/src/transcription/providers/xai-subscription.ts +81 -83
  515. package/src/transcription/segmenter.ts +7 -1
  516. package/src/transcription/service.ts +239 -10
  517. package/src/transcription/wav-duration.ts +39 -0
  518. package/src/workspace-deletion.ts +25 -1
  519. package/src/workspace-tool-gateway-attestations.ts +133 -0
  520. package/src/workspace-tool-gateway-observability.ts +64 -0
  521. package/src/workspace-tool-gateway-secrets.ts +104 -0
  522. package/src/workspace-tool-gateway.ts +921 -103
  523. package/src/workspace-tool-target-fence.ts +380 -0
  524. package/src/workspace-tool-target.ts +554 -0
  525. package/src/workspace-webhook-dispatch.ts +225 -0
  526. package/src/xai-realtime.ts +85 -81
  527. package/src/xai-subscription-core.ts +172 -0
  528. package/dist/browser-auth-broker.d.ts +0 -20
  529. package/dist/chunk-AJ62T5QN.js.map +0 -1
  530. package/dist/connection-authority-owner.d.ts +0 -59
  531. package/dist/routes/connection-authorities.d.ts +0 -3
  532. package/dist/routes/environments.d.ts +0 -5
  533. package/dist/routes/host-mcp-bindings.d.ts +0 -5
  534. package/dist/routes/host-mcp-resolvers.d.ts +0 -3
  535. package/dist/routes/packs.d.ts +0 -3
  536. package/dist/session-event-view-MU3HMNV3.js +0 -264
  537. package/dist/session-event-view-MU3HMNV3.js.map +0 -1
  538. package/dist/xai-subscription-auth.d.ts +0 -23
  539. package/src/browser-auth-broker.ts +0 -155
  540. package/src/connection-authority-owner.ts +0 -61
  541. package/src/routes/connection-authorities.ts +0 -139
  542. package/src/routes/environments.ts +0 -388
  543. package/src/routes/host-mcp-bindings.ts +0 -122
  544. package/src/routes/host-mcp-resolvers.ts +0 -41
  545. package/src/routes/packs.ts +0 -784
  546. package/src/xai-subscription-auth.ts +0 -139
@@ -0,0 +1,264 @@
1
+ import { type ErrorCode, type Permission, type SiteHostMapRecord, type SiteHostnameAvailability, type SitePublication, type UpsertSitePublicationRequest } from "@opengeni/contracts";
2
+ import type { AccessGrant } from "@opengeni/contracts";
3
+ import { type ApiRouteDeps } from "@opengeni/core";
4
+ import { SitePublishingError, type PublishedSiteRecord, type SiteDataSite, type SiteHostnameEdgeState, type SitePublicationRecord, type SitePublishingScope, type StoredSiteLimitProfile } from "@opengeni/db";
5
+ import { ApiHttpError } from "../http/api-error.js";
6
+ import { type SiteContentScanner } from "./content-scanner.js";
7
+ import { type SiteEdgeSync } from "./edge-sync.js";
8
+ /**
9
+ * Published Sites: publication management, the host map, and the work that
10
+ * follows a change (edge sync, content scan). Postgres is the source of truth;
11
+ * the edge copies are rebuildable and written after commit, never blocking it.
12
+ */
13
+ export type SitePublishingDeps = Pick<ApiRouteDeps, "db" | "settings" | "objectStorage"> & Partial<Pick<ApiRouteDeps, "managedEmailTransport">>;
14
+ /** The configured Sites domain, or null when publishing is off (unset or invalid). */
15
+ export declare function configuredSitesDomain(settings: ApiRouteDeps["settings"]): string | null;
16
+ export declare function sitePublishingError(status: number, code: ErrorCode, detail: string, message: string, extra?: Record<string, unknown>): ApiHttpError;
17
+ /** The Sites domain, or 404 when this deployment does not publish Sites. */
18
+ export declare function requireSitesDomain(settings: ApiRouteDeps["settings"]): string;
19
+ export declare function sitePublishingHttpError(error: SitePublishingError): ApiHttpError;
20
+ export declare function runSitePublishing<T>(fn: () => Promise<T>): Promise<T>;
21
+ export type SitePublishingEffects = {
22
+ edgeSync: SiteEdgeSync;
23
+ scanner: SiteContentScanner;
24
+ /** Wait for every scheduled effect (tests and graceful shutdown). */
25
+ flush(): Promise<void>;
26
+ /**
27
+ * Run `run` in the background, at most `SITE_EFFECT_CONCURRENCY` at a time;
28
+ * the rest wait in a bounded queue (beyond it a task is dropped and logged:
29
+ * edge copies self-heal and expire, scans and notices are best effort).
30
+ * Returns false when the task was dropped, so callers can release what
31
+ * they reserved for it.
32
+ */
33
+ schedule(name: string, run: () => Promise<void>): boolean;
34
+ /** Hostnames with an edge sync running or queued, and what it still owes. */
35
+ edgeLabels: Map<string, {
36
+ again: boolean;
37
+ purge: boolean;
38
+ siteIdHint: string | null;
39
+ }>;
40
+ };
41
+ /** Background effects running at once per process. */
42
+ export declare const SITE_EFFECT_CONCURRENCY = 4;
43
+ /**
44
+ * The app's in-process dispatch, registered with the site-runtime routes, so
45
+ * publication changes can cancel a Site's conversations through the ordinary
46
+ * session routes. Without it (the operator script) cancellation is skipped.
47
+ */
48
+ export declare function setSitePublishingDispatch(settings: ApiRouteDeps["settings"], dispatch: (request: Request) => Promise<Response>): void;
49
+ export declare function sitePublishingDispatch(settings: ApiRouteDeps["settings"]): ((request: Request) => Promise<Response>) | null;
50
+ type SitePublishingEffectsOptions = {
51
+ fetch?: typeof fetch;
52
+ backoffMs?: number;
53
+ scanner?: SiteContentScanner;
54
+ /** Waiting tasks before new ones are dropped (tests fill a small queue). */
55
+ queueLimit?: number;
56
+ };
57
+ /** The effects for this deployment's settings (one set per settings object). */
58
+ export declare function sitePublishingEffects(settings: ApiRouteDeps["settings"]): SitePublishingEffects;
59
+ /** Replace the effects for a settings object (tests: a fake fetch or scanner). */
60
+ export declare function configureSitePublishingEffects(settings: ApiRouteDeps["settings"], options: SitePublishingEffectsOptions): SitePublishingEffects;
61
+ /** Whether a Site may be served at all: active and visible to its workspace. */
62
+ export declare function siteServable(site: Pick<PublishedSiteRecord, "status" | "visibility">): boolean;
63
+ export declare function siteHostMapRecord(settings: ApiRouteDeps["settings"], domain: string, publication: SitePublicationRecord, site: PublishedSiteRecord): SiteHostMapRecord;
64
+ /**
65
+ * The host-map record a hostname should have now: the live Site's, else a
66
+ * tombstone (unpublished, no version) with a fresh generation, so it replaces
67
+ * whatever the edge holds for that hostname. Null when no Site is known.
68
+ */
69
+ export declare function siteHostnameEdgeRecord(settings: ApiRouteDeps["settings"], domain: string, state: SiteHostnameEdgeState, siteIdHint: string | null): SiteHostMapRecord | null;
70
+ /**
71
+ * Sync one hostname to the edge: read what it should hold (under the
72
+ * hostname's lock, in a short transaction that commits before any HTTP),
73
+ * write the live Site's record or a tombstone, purge the edge cache when
74
+ * asked, and record the generation the edge holds. Then re-read the label's
75
+ * live generation; if it moved while the HTTP calls ran, write again (up to
76
+ * `SITE_EDGE_SYNC_ROUNDS` times). No database transaction or lock is held
77
+ * during the Cloudflare calls. A no-op without edge settings.
78
+ */
79
+ export declare function syncSiteHostnameEdge(deps: SitePublishingDeps, label: string, options?: {
80
+ purge?: boolean;
81
+ siteIdHint?: string | null;
82
+ }): Promise<"synced" | "skipped" | "disabled">;
83
+ /**
84
+ * After commit: rewrite the edge copy of each hostname (the Site's label and
85
+ * a released previous one), and purge their edge cache when asked
86
+ * (takedown, unpublish). A no-op without edge settings; failures are retried
87
+ * and logged, and a missed sync heals on the next host lookup. Lost if the
88
+ * process stops first: the KV TTL then bounds how long the edge stays stale.
89
+ * One sync per hostname at a time; background effects run with bounded
90
+ * concurrency (`SITE_EFFECT_CONCURRENCY`).
91
+ */
92
+ export declare function scheduleSiteEdgeSync(deps: SitePublishingDeps, labels: ReadonlyArray<string | null | undefined>, options?: {
93
+ purge?: boolean;
94
+ siteIdHint?: string | null;
95
+ }): void;
96
+ /**
97
+ * Self-heal: the edge copy of a live hostname is behind its publication
98
+ * (a sync was lost or failed). Schedules one sync per hostname at most every
99
+ * 30 seconds, and at most `SITE_EDGE_HEALS_PER_MINUTE` in all, per process;
100
+ * none while a sync for that hostname is already running.
101
+ */
102
+ export declare function healSiteEdgeIfStale(deps: SitePublishingDeps, publication: Pick<SitePublicationRecord, "label" | "generation" | "edgeSyncedGeneration" | "siteId">): void;
103
+ /**
104
+ * After commit: scan the URLs in the published version's HTML with the
105
+ * configured scanner and record the findings. Never blocks publishing; the
106
+ * `none` scanner records nothing.
107
+ */
108
+ export declare function scheduleSiteContentScan(deps: SitePublishingDeps, scope: SitePublishingScope, siteId: string, versionId: string | null): void;
109
+ /**
110
+ * A Site changed outside publishing (new version, rollback, archive, audience):
111
+ * advance its publication generation and resync the edge, and scan a newly
112
+ * current version. A no-op when the Site is not published. Never throws.
113
+ */
114
+ export declare function notifySitePublicationChanged(deps: SitePublishingDeps, scope: SitePublishingScope, siteId: string, options?: {
115
+ scanVersionId?: string | null;
116
+ }): Promise<void>;
117
+ /**
118
+ * The one hook every Site artifact mutation runs, from the API routes and
119
+ * the agent tools alike (publish, rollback, archive, restore): a published
120
+ * Site follows its Site. `scan` scans the version that became current
121
+ * (publish and rollback). Replays changed nothing and do nothing.
122
+ */
123
+ export declare function afterSiteArtifactMutation<T extends {
124
+ replayed?: boolean;
125
+ artifact: {
126
+ id: string;
127
+ accountId: string;
128
+ workspaceId: string;
129
+ };
130
+ version?: {
131
+ id: string;
132
+ } | null;
133
+ }>(deps: SitePublishingDeps, result: T, options?: {
134
+ scan?: boolean;
135
+ }): Promise<T>;
136
+ /**
137
+ * Refuse a new version of a published (active) Site while the Opengeni-wide
138
+ * platform brake is engaged. Sites that are not published, rollbacks and
139
+ * unpublishing are never braked.
140
+ */
141
+ export declare function requireSiteVersionPublishOpen(deps: SitePublishingDeps, scope: SitePublishingScope, siteId: string): Promise<void>;
142
+ /** The authority Site agent sessions run with: sessions only, nothing else. */
143
+ export declare const SITE_RUNTIME_AGENT_PERMISSIONS: readonly Permission[];
144
+ /**
145
+ * A request to an ordinary session route as the Site's service principal
146
+ * (`site:<siteId>`), with a 60-second delegated token carrying only session
147
+ * permissions, for in-process dispatch. The Site headers ride along so the
148
+ * API's Site frame guard and provenance see which Site acts.
149
+ * `extraPermissions` adds what one request must delegate onward (a
150
+ * conversation start delegates its Site data tools' permissions).
151
+ */
152
+ export declare function siteServiceSessionRequest(deps: Pick<SitePublishingDeps, "settings">, scope: SitePublishingScope, site: {
153
+ id: string;
154
+ versionId: string | null;
155
+ }, input: {
156
+ origin: string;
157
+ method: string;
158
+ path: string;
159
+ body?: unknown;
160
+ label: string;
161
+ extraPermissions?: readonly Permission[];
162
+ }): Promise<Request>;
163
+ /**
164
+ * Stop a Site's viewers after a takedown, unpublish or narrower access:
165
+ * revoke every site-session now, and after commit cancel the Site's agent
166
+ * conversations that may still be working (in-flight turns and queued
167
+ * messages), as the Site itself through the ordinary control route. The
168
+ * gateway refuses new work at once regardless: every site-runtime call
169
+ * re-checks the publication. Without an in-process dispatch (the operator
170
+ * script) the cancellation is skipped and logged; per-conversation caps
171
+ * still bound what running turns can spend.
172
+ */
173
+ export declare function stopSiteViewers(deps: SitePublishingDeps, scope: SitePublishingScope, siteId: string, options: {
174
+ revokeSessions?: boolean;
175
+ cancelConversations?: boolean;
176
+ /** Cancel only conversations holding tools outside these (see `siteAgentToolsNarrowed`). */
177
+ toolsNarrowedTo?: {
178
+ tools: readonly string[];
179
+ everyoneTools: boolean;
180
+ };
181
+ reason: string;
182
+ }): Promise<{
183
+ revokedSessions: number;
184
+ }>;
185
+ /**
186
+ * Tell the platform about an abuse report or a flagged content scan: always a
187
+ * structured log line (`site_abuse_notice`), and, when OPENGENI_SITES_ABUSE_EMAIL
188
+ * is set, an email through the deployment's managed email transport (at most
189
+ * one per Site per hour, best effort, after the request). The operator's
190
+ * cross-workspace queue (`scripts/operator/site-moderation-queue.ts`) lists
191
+ * everything open.
192
+ */
193
+ export declare function notifySiteAbuse(deps: SitePublishingDeps, input: {
194
+ scope: SitePublishingScope;
195
+ siteId: string;
196
+ hostname: string;
197
+ kind: "report" | "flagged_scan";
198
+ detail: string;
199
+ }): void;
200
+ export type SiteManagement = {
201
+ scope: SitePublishingScope;
202
+ site: SiteDataSite;
203
+ record: PublishedSiteRecord;
204
+ manager: boolean;
205
+ admin: boolean;
206
+ owner: boolean;
207
+ subjectId: string | null;
208
+ };
209
+ /**
210
+ * Publication changes come from people and their own agents, never from a
211
+ * Site page: refuse a request that carries a validated Site origin (a Site or
212
+ * frame page reaching the API through a host) and an agent started from a
213
+ * Site page, or acting in a turn one sent (the Site clamp).
214
+ */
215
+ export declare function requireSitePublicationWriter(deps: SitePublishingDeps, grant: AccessGrant): Promise<void>;
216
+ export declare const SITE_AGENT_OTHER_SITE_MESSAGE = "An agent started from a Site page can change only its own Site and Sites it created";
217
+ /**
218
+ * Whether `grant` may change a Site's content (new versions, rollback,
219
+ * archive, restore, audience). An agent started from a Site page may only
220
+ * for a Site it was started from, or one an agent in its own session tree
221
+ * created with the artifact tools (the Site's first version records that
222
+ * session). It never rewrites another Site the person can edit, published
223
+ * or not, so a page cannot spread itself through the person's drafts. Other
224
+ * callers are not limited here.
225
+ */
226
+ export declare function siteAgentMayChangeArtifact(deps: SitePublishingDeps, grant: AccessGrant, artifactId: string): Promise<boolean>;
227
+ /** `siteAgentMayChangeArtifact`, refusing with 403 `site_agent_forbidden`. */
228
+ export declare function requireSiteAgentMayChangeArtifact(deps: SitePublishingDeps, grant: AccessGrant, artifactId: string): Promise<void>;
229
+ /**
230
+ * Resolve a Site for publication management. The caller must see the Site
231
+ * (its audience); managers are the Site Data managers (owner, workspace admin,
232
+ * an agent acting for one, or a person-less key with artifacts:publish).
233
+ * `mutate` callers must also pass `requireSitePublicationWriter`.
234
+ */
235
+ export declare function resolveSiteManagement(deps: SitePublishingDeps, grant: AccessGrant, siteId: string, options?: {
236
+ mutate?: boolean;
237
+ }): Promise<SiteManagement>;
238
+ export declare function requireSiteManager(management: SiteManagement): void;
239
+ export declare function siteLimitInputs(deps: SitePublishingDeps, scope: SitePublishingScope, publication: Pick<SitePublicationRecord, "limitProfile"> | null): Promise<{
240
+ site: StoredSiteLimitProfile | null;
241
+ workspace: StoredSiteLimitProfile | null;
242
+ }>;
243
+ /** The publication as the management API returns it. */
244
+ export declare function sitePublicationView(deps: SitePublishingDeps, scope: SitePublishingScope, publication: SitePublicationRecord): Promise<SitePublication>;
245
+ /** Hostname availability for this Site (the label rules, then global uniqueness and the hold). */
246
+ export declare function siteHostnameAvailability(deps: SitePublishingDeps, scope: SitePublishingScope, label: string, siteId: string | null): Promise<SiteHostnameAvailability>;
247
+ /**
248
+ * Create or change a Site's publication. The caller is a manager; a Site must
249
+ * be active and visible to its workspace to be served; public access needs the
250
+ * deployment to allow it; changing the limit profile needs a workspace admin.
251
+ */
252
+ export declare function upsertSitePublicationForManager(deps: SitePublishingDeps, grant: AccessGrant, management: SiteManagement, request: UpsertSitePublicationRequest): Promise<{
253
+ publication: SitePublication;
254
+ created: boolean;
255
+ }>;
256
+ /**
257
+ * Why a publication change must stop current viewers, or null: unpublished,
258
+ * a narrower access mode, a removed invitation, or the assistant turned off
259
+ * (conversations only).
260
+ */
261
+ export declare function siteAccessNarrowed(before: Pick<SitePublicationRecord, "status" | "access" | "invitedEmails" | "agent">, after: Pick<SitePublicationRecord, "status" | "access" | "invitedEmails" | "agent">): "unpublished" | "access_narrowed" | "agent_disabled" | null;
262
+ /** Whether a Site's workspace tools narrowed: a tool removed. */
263
+ export declare function siteAgentToolsNarrowed(before: Pick<SitePublicationRecord["agent"], "tools">, after: Pick<SitePublicationRecord["agent"], "tools">): boolean;
264
+ export {};
@@ -0,0 +1,22 @@
1
+ /** The event types a Site viewer can receive with their content. */
2
+ export declare const SITE_VISIBLE_SESSION_EVENT_TYPES: ReadonlySet<string>;
3
+ export type SiteSessionEventPayloadMode = "summary" | "none";
4
+ /**
5
+ * Project one event for a Site viewer, or null when it is not an event at all.
6
+ * Hidden events become an omitted placeholder at the same sequence.
7
+ */
8
+ export declare function siteSessionEventProjection(event: unknown, options?: {
9
+ payload?: SiteSessionEventPayloadMode;
10
+ }): Record<string, unknown> | null;
11
+ /** Rewrites a session event stream (SSE or a finite SSE batch) frame by frame. */
12
+ export declare function siteSessionEventSseTransform(): TransformStream<Uint8Array, Uint8Array>;
13
+ /** A forwarded event stream, answered with the Site-safe projection. */
14
+ export declare function siteSessionEventStreamResponse(response: Response): Response;
15
+ /** A forwarded event page, answered with the Site-safe projection. */
16
+ export declare function siteSessionEventPageResponse(response: Response, options?: {
17
+ payload?: SiteSessionEventPayloadMode;
18
+ }): Promise<Response>;
19
+ /** A page of already projected events with monitoring-read headers. */
20
+ export declare function siteSessionEventPage(events: readonly Record<string, unknown>[], options?: {
21
+ payload?: SiteSessionEventPayloadMode;
22
+ }, upstream?: Headers): Response;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Site-safe views of the session reads and command results a published
3
+ * Site's viewer gets back: the conversation's own text, states and versions,
4
+ * never the workspace behind it (account and workspace ids, workflow and
5
+ * attempt ids, tools, sandboxes, metadata, lineage, initiators, people's
6
+ * subject ids, pause reasons, credentials or human-input answers). Each view
7
+ * keeps the field shapes the SDK expects, with empty lists and objects where
8
+ * a field is withheld. Event pages and streams use the event projection in
9
+ * `session-events.ts`; sessions use `siteSessionProjection`.
10
+ */
11
+ type Fields = Record<string, unknown>;
12
+ /** A conversation's effective control: its state and versions, and a resume of itself only. */
13
+ export declare function siteControlView(value: unknown): Fields | null;
14
+ /** A turn: its message text, model, place and state. */
15
+ export declare function siteTurnView(value: unknown): Fields | null;
16
+ /** The conversation's queue: its own turns, without machine inputs. */
17
+ export declare function siteQueueView(value: unknown): Fields | null;
18
+ /** A composer draft: text and model only (Site drafts carry nothing else). */
19
+ export declare function siteDraftView(value: unknown): Fields | null;
20
+ /**
21
+ * A human-input request: its questions without secret specs or review
22
+ * references, and never the answers or who gave them (a Site does not
23
+ * answer; answers belong to whoever did, in the console).
24
+ */
25
+ export declare function siteHumanInputRequestView(value: unknown): Fields | null;
26
+ /** `{ requests }` from the human-input list. */
27
+ export declare function siteHumanInputListView(value: unknown): Fields;
28
+ /** A queue command result (move, edit, delete, steer). */
29
+ export declare function siteQueueMutationView(value: unknown): Fields | null;
30
+ /** An accepted message (composer submit, steer): the event, turn and routing. */
31
+ export declare function siteAcceptedMessageView(value: unknown): Fields | null;
32
+ /** A control result: the receipt and the conversation's control. */
33
+ export declare function siteControlResultView(value: unknown): Fields | null;
34
+ /** An accepted event (`POST /events`): the Site event projection. */
35
+ export declare function siteAcceptedEventView(value: unknown): Fields | null;
36
+ export {};
@@ -0,0 +1,40 @@
1
+ import type { SiteAccessMode, SiteViewer } from "@opengeni/contracts";
2
+ import type { Settings } from "@opengeni/config";
3
+ /**
4
+ * Who may open a published Site. The API decides this on sign-in and again
5
+ * on every site-runtime call; the gateway's own checks are only a convenience.
6
+ */
7
+ export type SiteViewerAccessSettings = Pick<Settings, "sitesPublicEnabled" | "sitesLoginOnly">;
8
+ /** Public access needs the deployment switch; without it a public Site is members-only. */
9
+ export declare function effectiveSiteAccess(access: SiteAccessMode, settings: SiteViewerAccessSettings): SiteAccessMode;
10
+ /**
11
+ * The kind of a signed-in viewer, or null when the Site does not admit them:
12
+ * workspace members always; invited email addresses (verified) for invited
13
+ * and public Sites; anyone signed in for public Sites.
14
+ */
15
+ export declare function signedInSiteViewerKind(input: {
16
+ access: SiteAccessMode;
17
+ member: boolean;
18
+ email: string | null;
19
+ invitedEmails: readonly string[];
20
+ }): "member" | "invited" | "user" | null;
21
+ /** Anonymous guests reach only public Sites, and never on a login-only deployment. */
22
+ export declare function siteGuestsAllowed(access: SiteAccessMode, settings: SiteViewerAccessSettings): boolean;
23
+ /** Gateway-minted visitor ids: opaque, URL-safe, bounded. */
24
+ export declare const SITE_VISITOR_ID: RegExp;
25
+ export type SiteRuntimeViewer = {
26
+ kind: SiteViewer["kind"];
27
+ /** `user:<subject>` or `guest:<visitor>`: the Site Data owner and conversation owner. */
28
+ principal: string;
29
+ subjectId: string | null;
30
+ name: string | null;
31
+ email: string | null;
32
+ /** The site-session row when signed in. */
33
+ sessionId: string | null;
34
+ /**
35
+ * Set while a workspace member previews the Site as another role ("View
36
+ * as visitor"): the viewer is then exactly that role, never more.
37
+ */
38
+ viewAs?: "invited" | "public" | null;
39
+ };
40
+ export declare function publicSiteViewer(viewer: SiteRuntimeViewer): SiteViewer;
@@ -1,6 +1,31 @@
1
- import type { ApiRouteDeps } from "@opengeni/core";
2
- /** Validates a caller-asserted Site association, not browser execution or authority. */
3
- export declare function resolveSiteSessionOrigin(db: ApiRouteDeps["db"], workspaceId: string, siteId?: string, versionId?: string): Promise<{
4
- siteId: string;
5
- title: string;
6
- } | null>;
1
+ import type { AccessGrant } from "@opengeni/contracts";
2
+ import { type SiteFrameHeaders } from "@opengeni/contracts/site-session-http";
3
+ import { type ApiRouteDeps, type SiteSessionOrigin } from "@opengeni/core";
4
+ /** The host-set frame marker and per-frame id a Site request carried. */
5
+ export type SiteFrameMarker = {
6
+ marker?: string | null | undefined;
7
+ frameId?: string | null | undefined;
8
+ };
9
+ /**
10
+ * Validates a host-asserted Site association, not browser execution or
11
+ * authority. A published Site (id and version) must be visible to the caller.
12
+ * A request carrying only the host's frame marker came from a frame without a
13
+ * published Site (inline HTML, a Codemode preview): it is recorded as that
14
+ * frame (`siteId: null`, `frame`, `frameId`), never as a published Site.
15
+ */
16
+ export declare function resolveSiteSessionOrigin(db: ApiRouteDeps["db"], grant: AccessGrant, siteId?: string, versionId?: string, frame?: SiteFrameMarker): Promise<SiteSessionOrigin | null>;
17
+ /**
18
+ * The strict origin of a request a host marked as coming from a Site frame:
19
+ * an unverifiable published Site fails the request (400/404) instead of
20
+ * running it without provenance.
21
+ */
22
+ export declare function resolveSiteRequestOrigin(db: ApiRouteDeps["db"], grant: AccessGrant, frame: SiteFrameHeaders): Promise<SiteSessionOrigin>;
23
+ /**
24
+ * Run a follow-up command (Send or Steer) inside the request's Site scope when
25
+ * the published Site bridge supplied a valid origin, so its turn records the
26
+ * `site` surface. Provenance only: a missing or unverifiable origin leaves the
27
+ * command unscoped instead of rejecting a message that is otherwise valid.
28
+ * Requests a host marked as Site frames already run inside their validated
29
+ * origin (apps/api/src/site-frame-guard.ts), which this keeps.
30
+ */
31
+ export declare function withOptionalSiteCommandOrigin<T>(db: ApiRouteDeps["db"], grant: AccessGrant, siteId: string | undefined, versionId: string | undefined, run: () => Promise<T>): Promise<T>;
@@ -0,0 +1,47 @@
1
+ import { type SiteDbSchemaEntry, type SiteSqlValue } from "@opengeni/contracts";
2
+ /**
3
+ * Site SQL export and import formats, so a Site's data can always leave
4
+ * Cloudflare: a SQL dump (schema, then INSERT statements), CSV for one table,
5
+ * and JSON rows per table. Blobs travel as `{ "$base64": "..." }` in JSON,
6
+ * X'..' literals in SQL and base64 text in CSV. SQL and JSON keep every value
7
+ * as stored; CSV turns every value into text (an empty cell is NULL on
8
+ * import) and blobs into base64.
9
+ */
10
+ export type SiteSqlExportTable = {
11
+ name: string;
12
+ columns: string[];
13
+ rows: unknown[][];
14
+ };
15
+ /** Rows per INSERT statement of a SQL dump. */
16
+ export declare const SITE_SQL_INSERT_ROWS = 500;
17
+ /**
18
+ * Most bytes per INSERT statement of a SQL dump: Durable Object SQLite
19
+ * refuses statements over 100 KB. A single row past this still gets its own
20
+ * statement (and needs a JSON import to load back).
21
+ */
22
+ export declare const SITE_SQL_INSERT_BYTES = 90000;
23
+ /** One value as a SQLite literal. */
24
+ export declare function siteSqlLiteral(value: unknown): string;
25
+ /** Schema entries that belong to one table (its own entry, its indexes and triggers), or all. */
26
+ export declare function siteSqlSchemaEntries(schema: readonly SiteDbSchemaEntry[], table?: string): SiteDbSchemaEntry[];
27
+ /** The schema statements of a dump, tables first, each ending with a semicolon. */
28
+ export declare function siteSqlSchemaStatements(schema: readonly SiteDbSchemaEntry[]): string[];
29
+ /**
30
+ * INSERT statements for one exported page of a table: up to
31
+ * SITE_SQL_INSERT_ROWS rows and SITE_SQL_INSERT_BYTES bytes each, one
32
+ * statement per line.
33
+ */
34
+ export declare function siteSqlInsertStatements(table: SiteSqlExportTable): string[];
35
+ /** A CSV cell for an exported value (formula-safe, like Site Data exports). */
36
+ export declare function siteSqlCsvCell(value: unknown): string;
37
+ export declare function siteSqlCsvLine(values: readonly unknown[]): string;
38
+ /** Rows as objects keyed by column, for JSON exports. */
39
+ export declare function siteSqlRowObjects(table: SiteSqlExportTable): Array<Record<string, unknown>>;
40
+ /**
41
+ * Rows of a JSON import as column lists and value rows: the columns are every
42
+ * key any row uses, in first-seen order; a missing key is NULL.
43
+ */
44
+ export declare function siteSqlImportRows(rows: ReadonlyArray<Record<string, SiteSqlValue>>): {
45
+ columns: string[];
46
+ values: SiteSqlValue[][];
47
+ };
@@ -0,0 +1,50 @@
1
+ import { type SiteDbOperation } from "@opengeni/contracts";
2
+ import type { Settings } from "@opengeni/config";
3
+ /**
4
+ * The API's client for a Site's Durable Object, through the Site gateway's
5
+ * internal route (`POST <origin>/_og/internal/site-db/<siteId>/<operation>`).
6
+ * Requests are signed like gateway -> API requests, in the other direction:
7
+ * HMAC-SHA256 with the shared gateway secret over `siteGatewayCanonicalString`
8
+ * (the internal path, the gateway's host, the body digest and the time; no
9
+ * viewer fields). Every request names a fresh id the Durable Object refuses
10
+ * to see twice. Nothing here decides who may do what: the service does that
11
+ * before calling.
12
+ */
13
+ export type SiteSqlGatewayConfig = {
14
+ origin: string;
15
+ secret: string;
16
+ timeoutMs: number;
17
+ };
18
+ export type SiteSqlGatewaySettings = Pick<Settings, "sitesCloudflareStorageEnabled" | "sitesGatewayInternalOrigin" | "sitesGatewaySecret" | "sitesSqlTimeoutMs">;
19
+ /**
20
+ * The gateway to call, or null when no gateway origin and secret are
21
+ * configured. This alone lets the API reach Durable Objects that already
22
+ * exist (export, inspect, dropping data); offering Site SQL also needs the
23
+ * flag (siteSqlOffered).
24
+ */
25
+ export declare function siteSqlGatewayConfig(settings: SiteSqlGatewaySettings): SiteSqlGatewayConfig | null;
26
+ /**
27
+ * Whether this deployment offers Site SQL: the flag is on and the gateway is
28
+ * configured. Turning it on, migrating, rebuilding, importing and running
29
+ * SQL need this; export, inspect and dropping a database only need the
30
+ * gateway.
31
+ */
32
+ export declare function siteSqlOffered(settings: SiteSqlGatewaySettings): boolean;
33
+ /** A refusal or failure from the gateway or the Durable Object. */
34
+ export declare class SiteDbCallError extends Error {
35
+ readonly status: number;
36
+ readonly code: string;
37
+ /** True when the operation may have run (a timeout or lost response). */
38
+ readonly outcomeUnknown: boolean;
39
+ constructor(status: number, code: string, message: string,
40
+ /** True when the operation may have run (a timeout or lost response). */
41
+ outcomeUnknown?: boolean);
42
+ }
43
+ export type SiteDbFetch = (input: string, init: RequestInit) => Promise<Response>;
44
+ /** Sign one internal request. Exported for tests. */
45
+ export declare function signSiteDbRequest(config: Pick<SiteSqlGatewayConfig, "origin" | "secret">, siteId: string, operation: SiteDbOperation, body: string, nowSeconds?: number): {
46
+ url: string;
47
+ headers: Record<string, string>;
48
+ };
49
+ /** Call one Durable Object operation and return its JSON. */
50
+ export declare function callSiteDb<T>(config: SiteSqlGatewayConfig, siteId: string, operation: SiteDbOperation, payload: Record<string, unknown>, fetchImpl?: SiteDbFetch): Promise<T>;