@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,427 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import {
3
+ SiteSqlExportFormat,
4
+ SiteSqlImportRequest,
5
+ SiteSqlQueryDefinitionRequest,
6
+ SiteSqlResetRequest,
7
+ SiteSqlRunRequest,
8
+ SiteSqlStatementRequest,
9
+ type AccessGrant,
10
+ } from "@opengeni/contracts";
11
+ import type { ApiRouteDeps } from "@opengeni/core";
12
+ import { siteAgentClamp, siteViewerForGrant } from "@opengeni/core";
13
+ import { isSiteWorkspaceMember } from "@opengeni/db";
14
+ import * as z4 from "zod/v4";
15
+ import { contractToolInput } from "./contract-input";
16
+ import {
17
+ defineSiteSqlQuery,
18
+ describeSiteSql,
19
+ exportSiteSql,
20
+ importSiteSql,
21
+ inspectSiteSql,
22
+ migrateSiteSql,
23
+ resetSiteSql,
24
+ runSiteSqlQuery,
25
+ runSiteSqlStatement,
26
+ setSiteSqlSettings,
27
+ SiteSqlError,
28
+ } from "../site-sql/service";
29
+ import {
30
+ SITE_AGENT_MANAGEMENT_MESSAGE,
31
+ SITE_AGENT_OTHER_SITE_MESSAGE,
32
+ type SiteAgentDataContext,
33
+ type SiteAgentDataResolution,
34
+ } from "../site-publishing/agent-data-tools";
35
+
36
+ type JsonResult = (value: unknown) => {
37
+ content: Array<{ type: "text"; text: string }>;
38
+ };
39
+
40
+ const SiteIdInput = z4.string().uuid().describe("The Site (published artifact) id.");
41
+ const NameInput = z4
42
+ .string()
43
+ .regex(/^[A-Za-z][A-Za-z0-9_-]{0,63}$/)
44
+ .describe("A letter, then letters, digits, - or _ (up to 64).");
45
+ /** Export pieces through the tool stay small, so they fit in an agent's context. */
46
+ const SITE_SQL_TOOL_EXPORT_DEFAULT_BYTES = 512 * 1024;
47
+ const SITE_SQL_TOOL_EXPORT_MAX_BYTES = 2 * 1024 * 1024;
48
+
49
+ /**
50
+ * First-party Site SQL tools: optional per-Site Cloudflare storage (one SQLite
51
+ * database per Site). Only the Site's managers (its owner, a workspace admin,
52
+ * or an agent acting for them) can manage it; Site pages call named queries
53
+ * with site.sql.run, and so can agents with site_sql_run. The tools act with
54
+ * the agent's own authority, through the same service as the HTTP routes. An
55
+ * agent started from a Site page gets that page's reach (resolveSiteDataAccess):
56
+ * every management tool refuses it, and site_sql_run runs only the named
57
+ * queries the page itself could run, on that Site.
58
+ *
59
+ * A published Site's own agent (`siteAgent` resolves a Site context) gets
60
+ * `site_sql_run` as the conversation's viewer (audiences and `:viewer` as on
61
+ * the page) and, for workspace members, read-only `site_sql_query`; both are
62
+ * pinned to that Site and every other tool refuses it.
63
+ */
64
+ export function registerSiteSqlTools(
65
+ server: McpServer,
66
+ deps: ApiRouteDeps,
67
+ grant: AccessGrant,
68
+ authorize: () => Promise<void>,
69
+ json: JsonResult,
70
+ siteAgent?: () => Promise<SiteAgentDataResolution>,
71
+ ): void {
72
+ const call =
73
+ <A extends { siteId: string }>(
74
+ fn: (args: A) => Promise<unknown>,
75
+ forSiteAgent?: (site: SiteAgentDataContext, args: A) => Promise<unknown>,
76
+ ) =>
77
+ async (args: A) => {
78
+ await authorize();
79
+ try {
80
+ const site = siteAgent ? await siteAgent() : null;
81
+ if (site && site.kind !== "ordinary") {
82
+ if (site.kind === "refused") throw new SiteSqlError("forbidden", site.message);
83
+ if (!forSiteAgent) throw new SiteSqlError("forbidden", SITE_AGENT_MANAGEMENT_MESSAGE);
84
+ if (args.siteId !== site.siteId)
85
+ throw new SiteSqlError("forbidden", SITE_AGENT_OTHER_SITE_MESSAGE);
86
+ return json(await forSiteAgent(site, args));
87
+ }
88
+ return json(await fn(args));
89
+ } catch (error) {
90
+ if (!(error instanceof SiteSqlError)) throw error;
91
+ const envelope = {
92
+ error: { code: error.code, message: error.message, details: error.details },
93
+ };
94
+ return {
95
+ content: [{ type: "text" as const, text: JSON.stringify(envelope, null, 2) }],
96
+ structuredContent: envelope,
97
+ isError: true as const,
98
+ };
99
+ }
100
+ };
101
+
102
+ server.registerTool(
103
+ "site_sql_inspect",
104
+ {
105
+ description:
106
+ "Describe a Site's SQL database (optional Cloudflare storage, one SQLite database per Site): whether it is available and turned on, its migrations, named queries, usage and limits, and, when it exists, its tables, columns, row counts and indexes. Only the Site's managers can use Site SQL tools.",
107
+ inputSchema: { siteId: SiteIdInput },
108
+ },
109
+ call(async ({ siteId }: { siteId: string }) => {
110
+ const described = await describeSiteSql(deps, grant, siteId);
111
+ // The database is inspectable whenever it exists and the gateway is
112
+ // configured, also while Site SQL is off or no longer offered.
113
+ try {
114
+ return { ...described, database: await inspectSiteSql(deps, grant, siteId) };
115
+ } catch (error) {
116
+ if (
117
+ error instanceof SiteSqlError &&
118
+ (error.code === "unavailable" || error.code === "disabled")
119
+ )
120
+ return { ...described, database: null };
121
+ throw error;
122
+ }
123
+ }),
124
+ );
125
+
126
+ server.registerTool(
127
+ "site_sql_enable",
128
+ {
129
+ description:
130
+ "Turn a Site's SQL database on or off. Turn it on before adding migrations or queries. Turning it off stops Site pages and SQL tools from using it but keeps its data, migrations and queries (export still works).",
131
+ inputSchema: { siteId: SiteIdInput, enabled: z4.boolean() },
132
+ },
133
+ call((args: { siteId: string; enabled: boolean }) =>
134
+ setSiteSqlSettings(deps, grant, args.siteId, { enabled: args.enabled }),
135
+ ),
136
+ );
137
+
138
+ server.registerTool(
139
+ "site_sql_migrate",
140
+ {
141
+ description:
142
+ "Change a Site's database schema with a named migration (CREATE TABLE, CREATE INDEX, ALTER TABLE, and optional seed INSERTs). Migrations are kept in order and replayed when the database is rebuilt; a name can be used once. Any earlier migration the database is missing is applied first.",
143
+ inputSchema: {
144
+ siteId: SiteIdInput,
145
+ name: NameInput.describe("A unique migration name, such as create_votes."),
146
+ sql: z4
147
+ .string()
148
+ .min(1)
149
+ .max(2 * 1024 * 1024)
150
+ .describe("One or more statements, separated by semicolons. No :parameters."),
151
+ },
152
+ },
153
+ call((args: { siteId: string; name: string; sql: string }) =>
154
+ migrateSiteSql(deps, grant, args.siteId, { name: args.name, sql: args.sql }),
155
+ ),
156
+ );
157
+
158
+ server.registerTool(
159
+ "site_sql_define_query",
160
+ {
161
+ description:
162
+ 'Create, replace or delete a named query a Site page runs with site.sql.run(name, params). Exactly one SELECT, INSERT, UPDATE, DELETE or REPLACE statement with :name parameters; pages pass values only, never SQL. :viewer (the viewer\'s principal, such as user:<id> or guest:<id>), :viewer_kind and :viewer_signed_in are bound by Opengeni, so a query can keep rows per viewer: e.g. INSERT INTO votes (voter, choice) VALUES (:viewer, :choice). audience: everyone (including anonymous guests of public Sites), signed_in (default) or managers (agents and the console only). Set action to "delete" to remove the query.',
163
+ inputSchema: contractToolInput(
164
+ z4.object({
165
+ siteId: SiteIdInput,
166
+ name: NameInput,
167
+ action: z4
168
+ .enum(["upsert", "delete"])
169
+ .optional()
170
+ .describe("upsert (default) creates or replaces; delete removes the query."),
171
+ ...SiteSqlQueryDefinitionRequest.shape,
172
+ sql: SiteSqlQueryDefinitionRequest.shape.sql.optional().describe("Required for upsert."),
173
+ }),
174
+ ),
175
+ },
176
+ call(
177
+ async (args: {
178
+ siteId: string;
179
+ name: string;
180
+ action?: "upsert" | "delete" | undefined;
181
+ sql?: string | undefined;
182
+ audience?: "everyone" | "signed_in" | "managers" | undefined;
183
+ description?: string | undefined;
184
+ maxRows?: number | undefined;
185
+ }) => {
186
+ if (args.action === "delete") {
187
+ await defineSiteSqlQuery(deps, grant, args.siteId, args.name, null);
188
+ return { deleted: args.name };
189
+ }
190
+ if (!args.sql) throw new SiteSqlError("validation", "Give sql to define a query");
191
+ const result = await defineSiteSqlQuery(deps, grant, args.siteId, args.name, {
192
+ sql: args.sql,
193
+ ...(args.audience ? { audience: args.audience } : {}),
194
+ ...(args.description !== undefined ? { description: args.description } : {}),
195
+ ...(args.maxRows !== undefined ? { maxRows: args.maxRows } : {}),
196
+ });
197
+ return { query: result.query, created: result.created };
198
+ },
199
+ ),
200
+ );
201
+
202
+ const statementInput = contractToolInput(
203
+ z4.object({ siteId: SiteIdInput, ...SiteSqlStatementRequest.shape }),
204
+ );
205
+
206
+ server.registerTool(
207
+ "site_sql_query",
208
+ {
209
+ description:
210
+ "Run one read-only statement (SELECT, WITH, read-only PRAGMA or EXPLAIN) on a Site's database and return its rows. A statement that writes is refused.",
211
+ inputSchema: statementInput,
212
+ },
213
+ call(
214
+ async (args: {
215
+ siteId: string;
216
+ sql: string;
217
+ params?: Record<string, string | number | boolean | null> | undefined;
218
+ maxRows?: number | undefined;
219
+ }) => {
220
+ const clamp = await siteAgentClamp(deps.db, grant);
221
+ if (clamp?.clamped) {
222
+ const viewer = await siteViewerForGrant(deps.db, grant);
223
+ if (
224
+ clamp.originSiteIds.length !== 1 ||
225
+ clamp.originSiteIds[0] !== args.siteId ||
226
+ !viewer.subjectId ||
227
+ !(await isSiteWorkspaceMember(deps.db, grant, viewer.subjectId))
228
+ )
229
+ throw new SiteSqlError("forbidden", SITE_AGENT_OTHER_SITE_MESSAGE);
230
+ }
231
+ return await runSiteSqlStatement(
232
+ deps,
233
+ grant,
234
+ args.siteId,
235
+ {
236
+ sql: args.sql,
237
+ ...(args.params ? { params: args.params } : {}),
238
+ ...(args.maxRows ? { maxRows: args.maxRows } : {}),
239
+ },
240
+ "read",
241
+ { asSiteMember: clamp?.clamped === true },
242
+ );
243
+ },
244
+ async (site, args) => {
245
+ // Workspace members only, read-only, as that member.
246
+ if (site.viewerKind !== "member")
247
+ throw new SiteSqlError(
248
+ "forbidden",
249
+ "Only workspace members can query this Site's database through its assistant",
250
+ );
251
+ return await runSiteSqlStatement(
252
+ deps,
253
+ site.viewer,
254
+ site.siteId,
255
+ {
256
+ sql: args.sql,
257
+ ...(args.params ? { params: args.params } : {}),
258
+ ...(args.maxRows ? { maxRows: args.maxRows } : {}),
259
+ },
260
+ "read",
261
+ { asSiteMember: true },
262
+ );
263
+ },
264
+ ),
265
+ );
266
+
267
+ server.registerTool(
268
+ "site_sql_run",
269
+ {
270
+ description:
271
+ "Run one of a Site's named queries by name, as a Site page does with site.sql.run(name, params). The query's audience applies to you as it would to the page's viewer; :viewer and the other principal parameters are bound from you, not from params. Use site_sql_inspect to list the queries.",
272
+ inputSchema: contractToolInput(
273
+ z4.object({
274
+ siteId: SiteIdInput,
275
+ name: NameInput.describe("The named query, as defined with site_sql_define_query."),
276
+ ...SiteSqlRunRequest.shape,
277
+ }),
278
+ ),
279
+ },
280
+ call(
281
+ (args: {
282
+ siteId: string;
283
+ name: string;
284
+ params?: Record<string, string | number | boolean | null> | undefined;
285
+ }) => runSiteSqlQuery(deps, grant, args.siteId, args.name, args.params ?? {}),
286
+ (site, args) =>
287
+ runSiteSqlQuery(
288
+ deps,
289
+ site.viewer,
290
+ site.siteId,
291
+ args.name,
292
+ args.params ?? {},
293
+ { frameSiteId: site.siteId },
294
+ {
295
+ profileKind: site.profileKind,
296
+ beforeWrite: async () => {
297
+ // Guests' write queries count against the guest write limit.
298
+ const wait = await site.guestWrite();
299
+ if (wait !== null)
300
+ throw new SiteSqlError("rate_limited", "Too many writes; try again shortly", {
301
+ retryAfterSeconds: wait,
302
+ });
303
+ },
304
+ },
305
+ ),
306
+ ),
307
+ );
308
+
309
+ server.registerTool(
310
+ "site_sql_execute",
311
+ {
312
+ description:
313
+ "Run one statement that changes data (INSERT, UPDATE, DELETE, REPLACE) on a Site's database. Schema changes go through site_sql_migrate so the database can be rebuilt.",
314
+ inputSchema: statementInput,
315
+ },
316
+ call(
317
+ (args: {
318
+ siteId: string;
319
+ sql: string;
320
+ params?: Record<string, string | number | boolean | null> | undefined;
321
+ maxRows?: number | undefined;
322
+ }) =>
323
+ runSiteSqlStatement(
324
+ deps,
325
+ grant,
326
+ args.siteId,
327
+ {
328
+ sql: args.sql,
329
+ ...(args.params ? { params: args.params } : {}),
330
+ ...(args.maxRows ? { maxRows: args.maxRows } : {}),
331
+ },
332
+ "write",
333
+ ),
334
+ ),
335
+ );
336
+
337
+ server.registerTool(
338
+ "site_sql_export",
339
+ {
340
+ description:
341
+ "Export a Site's database so its data can always leave Cloudflare: sql (schema, multi-row INSERT statements, then triggers; ready for site_sql_import or any SQLite), csv (one table; values become text) or json (schema and rows per table). SQL and JSON keep every value. One call returns at most maxBytes (default 512 KB); when nextCursor is set, call again with it as cursor and append the pieces in order (only the first piece has the schema or CSV header, only the last SQL piece has the triggers). Works while Site SQL is off.",
342
+ inputSchema: {
343
+ siteId: SiteIdInput,
344
+ format: SiteSqlExportFormat.optional().describe("sql (default), csv or json."),
345
+ table: z4
346
+ .string()
347
+ .regex(/^[A-Za-z_][A-Za-z0-9_]{0,127}$/u)
348
+ .optional()
349
+ .describe("Only this table (required for csv)."),
350
+ cursor: z4
351
+ .string()
352
+ .min(1)
353
+ .max(4096)
354
+ .optional()
355
+ .describe("nextCursor from the previous piece, to continue the export."),
356
+ maxBytes: z4
357
+ .number()
358
+ .int()
359
+ .min(1024)
360
+ .max(SITE_SQL_TOOL_EXPORT_MAX_BYTES)
361
+ .optional()
362
+ .describe("Most bytes of this piece (default 512 KB, at most 2 MB)."),
363
+ },
364
+ },
365
+ call(
366
+ async (args: {
367
+ siteId: string;
368
+ format?: "sql" | "csv" | "json" | undefined;
369
+ table?: string | undefined;
370
+ cursor?: string | undefined;
371
+ maxBytes?: number | undefined;
372
+ }) => {
373
+ const exported = await exportSiteSql(deps, grant, args.siteId, {
374
+ format: args.format ?? "sql",
375
+ ...(args.table ? { table: args.table } : {}),
376
+ ...(args.cursor ? { cursor: args.cursor } : {}),
377
+ maxBytes: Math.min(
378
+ args.maxBytes ?? SITE_SQL_TOOL_EXPORT_DEFAULT_BYTES,
379
+ SITE_SQL_TOOL_EXPORT_MAX_BYTES,
380
+ ),
381
+ });
382
+ return {
383
+ format: args.format ?? "sql",
384
+ filename: exported.filename,
385
+ truncated: exported.truncated,
386
+ nextCursor: exported.nextCursor,
387
+ content: exported.content,
388
+ };
389
+ },
390
+ ),
391
+ );
392
+
393
+ server.registerTool(
394
+ "site_sql_import",
395
+ {
396
+ description:
397
+ "Import data into a Site's database (at most 2 MB per call). sql: schema statements (CREATE TABLE, INDEX, VIEW) are recorded as a migration first, the data statements run in batches, and triggers are recorded as a second migration after the data so they do not fire on imported rows; import the pieces of a large site_sql_export in order. csv: a header row of column names, then rows, into an existing table (an empty cell is NULL). json: rows as objects keyed by column, into an existing table. onConflict (csv, json): fail (default), replace or ignore. When a batch fails, earlier batches stay; the error says how much landed and which migration was recorded.",
398
+ inputSchema: contractToolInput(
399
+ z4.object({ siteId: SiteIdInput, ...SiteSqlImportRequest.shape }),
400
+ ),
401
+ },
402
+ call((args: { siteId: string } & Record<string, unknown>) => {
403
+ const { siteId, ...rest } = args;
404
+ const parsed = SiteSqlImportRequest.safeParse(rest);
405
+ if (!parsed.success)
406
+ throw new SiteSqlError(
407
+ "validation",
408
+ parsed.error.issues[0]?.message ?? "Give sql for sql, or table plus csv or rows",
409
+ );
410
+ return importSiteSql(deps, grant, siteId, parsed.data);
411
+ }),
412
+ );
413
+
414
+ server.registerTool(
415
+ "site_sql_reset",
416
+ {
417
+ description:
418
+ 'Empty a Site\'s database. schema "keep" (default) deletes every row and rebuilds the tables from the migrations; "drop" deletes the database and forgets every migration and named query. Export first if the data matters. Needs confirm: true.',
419
+ inputSchema: contractToolInput(
420
+ z4.object({ siteId: SiteIdInput, ...SiteSqlResetRequest.shape }),
421
+ ),
422
+ },
423
+ call((args: { siteId: string; schema?: "keep" | "drop" | undefined; confirm: true }) =>
424
+ resetSiteSql(deps, grant, args.siteId, { schema: args.schema }),
425
+ ),
426
+ );
427
+ }