@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.
- package/dist/access-grant-rls.d.ts +8 -1
- package/dist/admission-trace.d.ts +8 -0
- package/dist/app.d.ts +50 -3
- package/dist/app.js +10 -1
- package/dist/artifact-catalog-cursor.d.ts +1 -0
- package/dist/attached-browser-viewer.d.ts +11 -0
- package/dist/auth/managed-auth-attempt-context.d.ts +2 -0
- package/dist/auth/managed-auth-rate-limits.d.ts +167 -0
- package/dist/auth/managed-auth-session-adapter.d.ts +9 -1
- package/dist/auth/managed-auth.d.ts +72 -5
- package/dist/auth/managed-sign-in-notifications.d.ts +4 -0
- package/dist/auth/new-signups-gate.d.ts +23 -0
- package/dist/auth/signup-funnel-metrics.d.ts +44 -0
- package/dist/azure-live.d.ts +28 -0
- package/dist/browser-action-fences.d.ts +13 -0
- package/dist/browser-controller-authority.d.ts +1 -61
- package/dist/browser-ephemeral.d.ts +5 -0
- package/dist/browser-lost-runtime-end.d.ts +24 -0
- package/dist/browser-state-authority.d.ts +1 -27
- package/dist/chunk-OGQDXVXY.js +18 -0
- package/dist/chunk-OGQDXVXY.js.map +1 -0
- package/dist/{chunk-AJ62T5QN.js → chunk-OT56OY4V.js} +80503 -39869
- package/dist/chunk-OT56OY4V.js.map +1 -0
- package/dist/claude-default-models.d.ts +19 -0
- package/dist/claude-subscription-core.d.ts +50 -0
- package/dist/claude-subscription-oauth.d.ts +36 -0
- package/dist/claude-subscription-profile.d.ts +9 -0
- package/dist/claude-subscription-usage.d.ts +6 -0
- package/dist/claude-workspace-connection.d.ts +15 -0
- package/dist/codemode.d.ts +40 -5
- package/dist/codex-realtime.d.ts +29 -3
- package/dist/codex-session-pointers.d.ts +19 -0
- package/dist/connection-ownership.d.ts +6 -3
- package/dist/controller-data-plane.d.ts +16 -0
- package/dist/credit-promotion-snapshot.d.ts +6 -0
- package/dist/editable-artifact-source-session.d.ts +3 -0
- package/dist/editable-artifact-websocket.d.ts +5 -3
- package/dist/fatal-process-boundary.d.ts +9 -1
- package/dist/github-access.d.ts +7 -1
- package/dist/github-browser-flow.d.ts +1 -1
- package/dist/http/acting-person.d.ts +36 -0
- package/dist/http/api-contract-compat.d.ts +19 -0
- package/dist/http/api-error.d.ts +50 -1
- package/dist/http/auth.d.ts +8 -1
- package/dist/http/cors.d.ts +12 -0
- package/dist/http/deprecation.d.ts +42 -0
- package/dist/http/keyed-admission.d.ts +12 -0
- package/dist/http/local-browser-boundary.d.ts +72 -0
- package/dist/http/metrics-listener.d.ts +22 -0
- package/dist/http/path-identifier.d.ts +17 -0
- package/dist/http/registered-route-label.d.ts +16 -0
- package/dist/http/rejection-telemetry.d.ts +34 -0
- package/dist/http/request-body.d.ts +27 -0
- package/dist/http/request-source.d.ts +41 -3
- package/dist/http/sse.d.ts +12 -1
- package/dist/http/unmatched-route.d.ts +18 -0
- package/dist/http/user-content.d.ts +36 -0
- package/dist/http/variable-sets-removed.d.ts +41 -0
- package/dist/http/websocket-upgrade-dispatch.d.ts +18 -0
- package/dist/index.js +1279 -108
- package/dist/index.js.map +1 -1
- package/dist/integration-connect-metrics.d.ts +35 -0
- package/dist/integration-endpoint-test.d.ts +20 -0
- package/dist/integrations/api-integrations.d.ts +2 -2
- package/dist/integrations/atlassian.d.ts +8 -3
- package/dist/integrations/fiken.d.ts +3 -1
- package/dist/integrations/github-lens-connect.d.ts +37 -66
- package/dist/integrations/google-drive.d.ts +2 -0
- package/dist/integrations/integration-commit-authority.d.ts +13 -0
- package/dist/integrations/marketplace-plugin.d.ts +43 -43
- package/dist/integrations/oauth-client.d.ts +171 -12
- package/dist/integrations/oauth-profiles.d.ts +42 -13
- package/dist/integrations/onepassword-vault-provider.d.ts +9 -0
- package/dist/integrations/slack-bot.d.ts +285 -7
- package/dist/integrations/slack-file-upload-flow.d.ts +62 -0
- package/dist/integrations/slack-interactions.d.ts +89 -10
- package/dist/integrations/slack-mrkdwn.d.ts +41 -0
- package/dist/integrations/slack-routing.d.ts +1 -1
- package/dist/integrations/slack-session-defaults.d.ts +58 -0
- package/dist/integrations/slack-task-file-upload.d.ts +36 -0
- package/dist/integrations/slack-tool-review.d.ts +5 -0
- package/dist/interaction-agent-access.d.ts +13 -8
- package/dist/interaction-agent-version.d.ts +21 -0
- package/dist/interaction-holder-heartbeat.d.ts +5 -0
- package/dist/interaction-metrics.d.ts +27 -2
- package/dist/interaction-route-stages.d.ts +25 -0
- package/dist/interaction-secrets-vault.d.ts +20 -0
- package/dist/interaction-secrets.d.ts +103 -0
- package/dist/mcp/action-catalog-types.d.ts +14 -0
- package/dist/mcp/action-catalog.gen.d.ts +2 -0
- package/dist/mcp/action-descriptions.d.ts +4 -0
- package/dist/mcp/action-schema-imports.gen.d.ts +1 -0
- package/dist/mcp/capability-account-readiness.d.ts +7 -0
- package/dist/mcp/child-read-evidence.d.ts +9 -0
- package/dist/mcp/company-profile-agent-admin.d.ts +12 -0
- package/dist/mcp/contract-input.d.ts +13 -0
- package/dist/mcp/documents.d.ts +2 -0
- package/dist/mcp/first-party-tool-permissions.d.ts +3 -606
- package/dist/mcp/notification-tools.d.ts +26 -0
- package/dist/mcp/orchestration-failure-diagnostic.d.ts +43 -0
- package/dist/mcp/scheduled-task-input.d.ts +1309 -0
- package/dist/mcp/scheduled-task-view.d.ts +217 -3
- package/dist/mcp/secret-tools.d.ts +14 -0
- package/dist/mcp/server.d.ts +108 -5
- package/dist/mcp/session-admin-access-tools.d.ts +33 -0
- package/dist/mcp/session-event-errors.d.ts +28 -0
- package/dist/mcp/session-event-view.d.ts +62 -0
- package/dist/mcp/session-view.d.ts +15 -0
- package/dist/mcp/session-wait.d.ts +18 -0
- package/dist/mcp/site-agent-clamp-tools.d.ts +38 -0
- package/dist/mcp/site-data-tools.d.ts +22 -0
- package/dist/mcp/site-publication-tools.d.ts +19 -0
- package/dist/mcp/site-sql-tools.d.ts +27 -0
- package/dist/mcp-oauth.d.ts +37 -4
- package/dist/model-calls/chat-completions.d.ts +87 -0
- package/dist/model-calls/pending-usage-settlements.d.ts +57 -0
- package/dist/model-calls/service.d.ts +36 -0
- package/dist/model-catalog.d.ts +9 -3
- package/dist/native-push-dispatch.d.ts +69 -0
- package/dist/observability.d.ts +3 -1
- package/dist/organization-mcp.d.ts +82 -0
- package/dist/prepared-mcp-actor.d.ts +77 -0
- package/dist/prepared-mcp-permissions.d.ts +8 -0
- package/dist/routes/analytics-consent.d.ts +26 -0
- package/dist/routes/api-integrations.d.ts +11 -0
- package/dist/routes/api-keys.d.ts +7 -7
- package/dist/routes/automations.d.ts +2 -0
- package/dist/routes/billing.d.ts +59 -0
- package/dist/routes/browser-sessions.d.ts +65 -2
- package/dist/routes/chat-completions.d.ts +11 -0
- package/dist/routes/claude-core-usage.d.ts +20 -0
- package/dist/routes/claude-subscription-accounts.d.ts +3 -0
- package/dist/routes/claude-subscription-oauth.d.ts +3 -0
- package/dist/routes/client-errors.d.ts +182 -0
- package/dist/routes/codex-core.d.ts +401 -0
- package/dist/routes/codex.d.ts +64 -2
- package/dist/routes/computer-sessions.d.ts +6 -1
- package/dist/routes/desktop-distribution.d.ts +32 -0
- package/dist/routes/github-browser-fonts.gen.d.ts +2 -0
- package/dist/routes/github-browser-pages.d.ts +27 -0
- package/dist/routes/inbox.d.ts +13 -0
- package/dist/routes/insights-response-cache.d.ts +10 -0
- package/dist/routes/insights-usage.d.ts +12 -0
- package/dist/routes/insights.d.ts +28 -0
- package/dist/routes/interaction-placement-message.d.ts +7 -0
- package/dist/routes/managed-sign-in-methods.d.ts +6 -0
- package/dist/routes/model-account-choice.d.ts +13 -0
- package/dist/routes/model-account-settings.d.ts +19 -0
- package/dist/routes/native-app-auth.d.ts +12 -0
- package/dist/routes/organization-integration-policy.d.ts +8 -0
- package/dist/routes/organization-integrations.d.ts +6 -0
- package/dist/routes/organization-mcp-connections.d.ts +3 -0
- package/dist/routes/organization-model-defaults.d.ts +9 -0
- package/dist/routes/organization-service-accounts.d.ts +3 -0
- package/dist/routes/personal-api-keys.d.ts +3 -0
- package/dist/routes/session-admin-access.d.ts +3 -0
- package/dist/routes/session-artifact-associations.d.ts +4 -0
- package/dist/routes/session-history-imports.d.ts +20 -0
- package/dist/routes/sessions.d.ts +38 -2
- package/dist/routes/site-data.d.ts +18 -0
- package/dist/routes/site-publishing.d.ts +5 -0
- package/dist/routes/site-runtime.d.ts +31 -0
- package/dist/routes/site-sql.d.ts +16 -0
- package/dist/routes/slack-bot-access.d.ts +3 -0
- package/dist/routes/subscription-account-pools.d.ts +21 -0
- package/dist/routes/subscription-core-http.d.ts +5 -0
- package/dist/routes/subscription-pool-access.d.ts +37 -0
- package/dist/routes/subscription-pool-core.d.ts +153 -0
- package/dist/routes/supergrok.d.ts +6 -6
- package/dist/routes/usage-allowances.d.ts +12 -0
- package/dist/routes/variable-sets-removed.d.ts +2 -0
- package/dist/routes/vault-providers.d.ts +34 -0
- package/dist/routes/vaults.d.ts +3 -0
- package/dist/routes/workspace-integrations.d.ts +35 -0
- package/dist/routes/workspace-model-providers.d.ts +4 -0
- package/dist/routes/workspaces.d.ts +11 -2
- package/dist/sandbox/agent-update.d.ts +64 -0
- package/dist/sandbox/auth-callout.d.ts +8 -0
- package/dist/sandbox/channel-a.d.ts +15 -1
- package/dist/sandbox/enrollment.d.ts +26 -4
- package/dist/sandbox/machine-audience.d.ts +29 -0
- package/dist/sandbox/machines.d.ts +15 -2
- package/dist/sandbox/metrics-ingestion.d.ts +6 -2
- package/dist/sandbox/screen-control.d.ts +85 -0
- package/dist/sandbox/viewer.d.ts +5 -1
- package/dist/sandbox-file-artifacts.d.ts +17 -1
- package/dist/scheduled-task-blockers.d.ts +39 -0
- package/dist/scheduled-task-deletion.d.ts +3 -4
- package/dist/scheduled-task-lifecycle.d.ts +14 -0
- package/dist/secret-answers.d.ts +40 -0
- package/dist/session-create-observability.d.ts +5 -0
- package/dist/session-event-view-36GO3IL7.js +528 -0
- package/dist/session-event-view-36GO3IL7.js.map +1 -0
- package/dist/signed-state-secret.d.ts +18 -0
- package/dist/site-agent-guard.d.ts +53 -0
- package/dist/site-data/operations.d.ts +103 -0
- package/dist/site-data/service.d.ts +203 -0
- package/dist/site-frame-guard.d.ts +32 -0
- package/dist/site-publishing/agent-data-tools.d.ts +84 -0
- package/dist/site-publishing/agent-model.d.ts +58 -0
- package/dist/site-publishing/agent-session.d.ts +16 -0
- package/dist/site-publishing/content-scanner.d.ts +31 -0
- package/dist/site-publishing/edge-sync.d.ts +48 -0
- package/dist/site-publishing/gateway-signature.d.ts +56 -0
- package/dist/site-publishing/limits.d.ts +63 -0
- package/dist/site-publishing/page-tool-authority.d.ts +30 -0
- package/dist/site-publishing/platform-usage.d.ts +113 -0
- package/dist/site-publishing/platform.d.ts +21 -0
- package/dist/site-publishing/readiness.d.ts +62 -0
- package/dist/site-publishing/runtime.d.ts +179 -0
- package/dist/site-publishing/service.d.ts +264 -0
- package/dist/site-publishing/session-events.d.ts +22 -0
- package/dist/site-publishing/session-views.d.ts +36 -0
- package/dist/site-publishing/viewer.d.ts +40 -0
- package/dist/site-session-origin.d.ts +31 -6
- package/dist/site-sql/format.d.ts +47 -0
- package/dist/site-sql/gateway.d.ts +50 -0
- package/dist/site-sql/service.d.ts +213 -0
- package/dist/temporal-schedule-sync.d.ts +26 -0
- package/dist/transcription/billing-refusal.d.ts +8 -0
- package/dist/transcription/normalize.d.ts +23 -0
- package/dist/transcription/providers/azure-mai.d.ts +12 -0
- package/dist/transcription/providers/azure-openai.d.ts +4 -0
- package/dist/transcription/providers/openai.d.ts +16 -0
- package/dist/transcription/providers/subscription-core.d.ts +39 -0
- package/dist/transcription/service.d.ts +10 -1
- package/dist/transcription/wav-duration.d.ts +8 -0
- package/dist/workspace-tool-gateway-attestations.d.ts +37 -0
- package/dist/workspace-tool-gateway-observability.d.ts +16 -0
- package/dist/workspace-tool-gateway-secrets.d.ts +27 -0
- package/dist/workspace-tool-gateway.d.ts +102 -6
- package/dist/workspace-tool-target-fence.d.ts +116 -0
- package/dist/workspace-tool-target.d.ts +225 -0
- package/dist/workspace-webhook-dispatch.d.ts +26 -0
- package/dist/xai-subscription-core.d.ts +60 -0
- package/package.json +25 -20
- package/src/access-grant-rls.ts +64 -14
- package/src/admission-trace.ts +14 -0
- package/src/app.ts +1684 -252
- package/src/artifact-catalog-cursor.ts +1 -0
- package/src/attached-browser-viewer.ts +26 -0
- package/src/auth/managed-auth-attempt-context.ts +9 -0
- package/src/auth/managed-auth-rate-limits.ts +252 -0
- package/src/auth/managed-auth-session-adapter.ts +64 -29
- package/src/auth/managed-auth.ts +303 -35
- package/src/auth/managed-email.ts +18 -1
- package/src/auth/managed-sign-in-notifications.ts +81 -0
- package/src/auth/new-signups-gate.ts +49 -0
- package/src/auth/organization-user-setup.ts +3 -3
- package/src/auth/signup-funnel-metrics.ts +164 -0
- package/src/azure-live.ts +103 -0
- package/src/browser-action-fences.ts +45 -0
- package/src/browser-controller-authority.ts +1 -186
- package/src/browser-ephemeral.ts +39 -0
- package/src/browser-lost-runtime-end.ts +71 -0
- package/src/browser-state-authority.ts +1 -236
- package/src/claude-default-models.ts +37 -0
- package/src/claude-subscription-core.ts +154 -0
- package/src/claude-subscription-oauth.ts +352 -0
- package/src/claude-subscription-profile.ts +73 -0
- package/src/claude-subscription-usage.ts +51 -0
- package/src/claude-workspace-connection.ts +82 -0
- package/src/codemode.ts +236 -39
- package/src/codex-realtime.ts +181 -53
- package/src/codex-session-pointers.ts +80 -0
- package/src/company-brain-okf.ts +1 -1
- package/src/connected-machine-computer-access.ts +2 -1
- package/src/connection-ownership.ts +19 -13
- package/src/controller-data-plane.ts +34 -0
- package/src/credit-promotion-snapshot.ts +36 -0
- package/src/editable-artifact-production.ts +10 -0
- package/src/editable-artifact-source-session.ts +123 -0
- package/src/editable-artifact-websocket.ts +16 -3
- package/src/fatal-process-boundary.ts +67 -3
- package/src/gateway-realtime.ts +12 -8
- package/src/github-access.ts +31 -5
- package/src/github-browser-flow.ts +1 -1
- package/src/http/acting-person.ts +105 -0
- package/src/http/api-contract-compat.ts +49 -0
- package/src/http/api-error.ts +210 -2
- package/src/http/auth.ts +68 -4
- package/src/http/cors.ts +37 -5
- package/src/http/deprecation.ts +118 -0
- package/src/http/keyed-admission.ts +29 -0
- package/src/http/local-browser-boundary.ts +343 -0
- package/src/http/metrics-listener.ts +57 -0
- package/src/http/path-identifier.ts +54 -0
- package/src/http/registered-route-label.ts +34 -0
- package/src/http/rejection-telemetry.ts +120 -0
- package/src/http/request-body.ts +127 -0
- package/src/http/request-source.ts +154 -13
- package/src/http/sse.ts +88 -28
- package/src/http/unmatched-route.ts +60 -0
- package/src/http/user-content.ts +158 -0
- package/src/http/variable-sets-removed.ts +122 -0
- package/src/http/websocket-upgrade-dispatch.ts +29 -0
- package/src/index.ts +107 -57
- package/src/integration-connect-metrics.ts +228 -0
- package/src/integration-endpoint-test.ts +291 -0
- package/src/integrations/api-integrations.ts +81 -7
- package/src/integrations/atlassian.ts +202 -83
- package/src/integrations/fiken.ts +66 -38
- package/src/integrations/github-app-connect.ts +64 -18
- package/src/integrations/github-lens-connect.ts +8 -29
- package/src/integrations/google-drive.ts +448 -152
- package/src/integrations/integration-commit-authority.ts +69 -0
- package/src/integrations/marketplace-plugin.ts +1 -1
- package/src/integrations/oauth-client.ts +733 -193
- package/src/integrations/oauth-profiles.ts +116 -45
- package/src/integrations/onepassword-vault-provider.ts +16 -0
- package/src/integrations/personal-github-repositories.ts +1 -1
- package/src/integrations/personal-github.ts +61 -35
- package/src/integrations/provider-oauth.ts +67 -85
- package/src/integrations/slack-app-home.ts +5 -5
- package/src/integrations/slack-bot.ts +893 -201
- package/src/integrations/slack-file-upload-flow.ts +147 -0
- package/src/integrations/slack-install.ts +7 -7
- package/src/integrations/slack-interactions.ts +1589 -299
- package/src/integrations/slack-mrkdwn.ts +193 -0
- package/src/integrations/slack-routing.ts +2 -2
- package/src/integrations/slack-session-defaults.ts +224 -0
- package/src/integrations/slack-task-file-upload.ts +323 -0
- package/src/integrations/slack-tool-review.ts +65 -0
- package/src/integrations/social-oauth.ts +90 -58
- package/src/interaction-agent-access.ts +40 -20
- package/src/interaction-agent-version.ts +85 -0
- package/src/interaction-holder-heartbeat.ts +24 -8
- package/src/interaction-metrics.ts +164 -2
- package/src/interaction-route-stages.ts +94 -0
- package/src/interaction-secrets-vault.ts +213 -0
- package/src/interaction-secrets.ts +426 -0
- package/src/mcp/action-catalog-types.ts +14 -0
- package/src/mcp/action-catalog.gen.ts +8014 -0
- package/src/mcp/action-descriptions.ts +299 -0
- package/src/mcp/action-schema-imports.gen.ts +304 -0
- package/src/mcp/capability-account-readiness.ts +17 -0
- package/src/mcp/child-read-evidence.ts +19 -0
- package/src/mcp/company-profile-agent-admin.ts +13 -0
- package/src/mcp/contract-input.ts +165 -0
- package/src/mcp/documents.ts +9 -2
- package/src/mcp/editable-artifacts.ts +29 -11
- package/src/mcp/files.ts +5 -1
- package/src/mcp/first-party-tool-permissions.ts +7 -285
- package/src/mcp/knowledge-entries.ts +108 -34
- package/src/mcp/notification-tools.ts +480 -0
- package/src/mcp/orchestration-failure-diagnostic.ts +43 -0
- package/src/mcp/scheduled-task-input.ts +89 -0
- package/src/mcp/scheduled-task-view.ts +63 -3
- package/src/mcp/secret-tools.ts +185 -0
- package/src/mcp/server.ts +2213 -1116
- package/src/mcp/session-admin-access-tools.ts +163 -0
- package/src/mcp/session-event-errors.ts +123 -0
- package/src/mcp/session-event-view.ts +395 -13
- package/src/mcp/session-view.ts +3 -0
- package/src/mcp/session-wait.ts +67 -7
- package/src/mcp/site-agent-clamp-tools.ts +140 -0
- package/src/mcp/site-data-tools.ts +339 -0
- package/src/mcp/site-publication-tools.ts +201 -0
- package/src/mcp/site-sql-tools.ts +427 -0
- package/src/mcp-oauth.ts +635 -45
- package/src/model-calls/chat-completions.ts +352 -0
- package/src/model-calls/pending-usage-settlements.ts +125 -0
- package/src/model-calls/service.ts +694 -0
- package/src/model-catalog.ts +68 -17
- package/src/native-push-dispatch.ts +457 -0
- package/src/observability.ts +15 -1
- package/src/organization-mcp.ts +485 -0
- package/src/prepared-mcp-actor.ts +154 -0
- package/src/prepared-mcp-permissions.ts +38 -0
- package/src/routes/analytics-consent.ts +123 -0
- package/src/routes/api-integrations.ts +268 -9
- package/src/routes/api-keys.ts +164 -25
- package/src/routes/artifact-catalog.ts +111 -0
- package/src/routes/automations.ts +163 -90
- package/src/routes/billing.ts +535 -59
- package/src/routes/browser-sessions.ts +966 -342
- package/src/routes/canonical-human-identities.ts +61 -0
- package/src/routes/capabilities.ts +112 -5
- package/src/routes/channels.ts +4 -3
- package/src/routes/chat-completions.ts +235 -0
- package/src/routes/claude-core-usage.ts +147 -0
- package/src/routes/claude-subscription-accounts.ts +233 -0
- package/src/routes/claude-subscription-oauth.ts +175 -0
- package/src/routes/client-errors.ts +394 -0
- package/src/routes/codex-core.ts +687 -0
- package/src/routes/codex.ts +1277 -1119
- package/src/routes/company-brain.ts +4 -0
- package/src/routes/computer-sessions.ts +319 -85
- package/src/routes/connect.ts +277 -175
- package/src/routes/connections.ts +690 -363
- package/src/routes/desktop-distribution.ts +217 -0
- package/src/routes/documents.ts +13 -7
- package/src/routes/editable-artifacts.ts +74 -4
- package/src/routes/enrollments.ts +110 -16
- package/src/routes/external-identity-links.ts +13 -12
- package/src/routes/files.ts +41 -16
- package/src/routes/github-browser-fonts.gen.ts +12 -0
- package/src/routes/github-browser-pages.ts +258 -0
- package/src/routes/github.ts +200 -75
- package/src/routes/inbox.ts +353 -0
- package/src/routes/insights-response-cache.ts +83 -0
- package/src/routes/insights-usage.ts +345 -0
- package/src/routes/insights.ts +103 -8
- package/src/routes/install.ts +51 -10
- package/src/routes/integration-facets.ts +70 -28
- package/src/routes/interaction-placement-message.ts +12 -0
- package/src/routes/knowledge.ts +136 -27
- package/src/routes/machines.ts +189 -135
- package/src/routes/managed-auth-session-sets.ts +43 -10
- package/src/routes/managed-onboarding.ts +39 -19
- package/src/routes/managed-sign-in-methods.ts +433 -0
- package/src/routes/memory-slack-publications.ts +3 -2
- package/src/routes/model-account-choice.ts +194 -0
- package/src/routes/model-account-settings.ts +235 -0
- package/src/routes/model-connection-access.ts +210 -48
- package/src/routes/native-app-auth.ts +296 -0
- package/src/routes/organization-integration-policy.ts +116 -0
- package/src/routes/organization-integrations.ts +326 -0
- package/src/routes/organization-mcp-connections.ts +183 -0
- package/src/routes/organization-memberships.ts +205 -19
- package/src/routes/organization-model-defaults.ts +110 -0
- package/src/routes/organization-model-providers.ts +74 -3
- package/src/routes/organization-service-accounts.ts +128 -0
- package/src/routes/organization-sessions.ts +21 -5
- package/src/routes/personal-api-keys.ts +184 -0
- package/src/routes/personal-github-git-broker.ts +2 -2
- package/src/routes/personal-github.ts +9 -4
- package/src/routes/plugins.ts +46 -7
- package/src/routes/pr-review-github.ts +105 -118
- package/src/routes/pr-review.ts +88 -82
- package/src/routes/preference-registry.ts +18 -0
- package/src/routes/rigs.ts +48 -13
- package/src/routes/scheduled-tasks.ts +347 -27
- package/src/routes/session-admin-access.ts +271 -0
- package/src/routes/session-artifact-associations.ts +164 -0
- package/src/routes/session-history-imports.ts +305 -0
- package/src/routes/sessions.ts +1682 -363
- package/src/routes/site-data.ts +340 -0
- package/src/routes/site-publishing.ts +584 -0
- package/src/routes/site-runtime.ts +1944 -0
- package/src/routes/site-sql.ts +263 -0
- package/src/routes/skill-content.ts +72 -7
- package/src/routes/skills.ts +5 -4
- package/src/routes/slack-bot-access.ts +108 -0
- package/src/routes/social.ts +27 -15
- package/src/routes/subscription-account-pools.ts +209 -0
- package/src/routes/subscription-core-http.ts +18 -0
- package/src/routes/subscription-pool-access.ts +180 -0
- package/src/routes/subscription-pool-core.ts +552 -0
- package/src/routes/supergrok.ts +174 -655
- package/src/routes/transcription-recordings.ts +71 -4
- package/src/routes/transcriptions.ts +26 -2
- package/src/routes/usage-allowances.ts +381 -0
- package/src/routes/variable-sets-removed.ts +19 -0
- package/src/routes/vault-providers.ts +782 -0
- package/src/routes/vaults.ts +421 -0
- package/src/routes/video-generation.ts +30 -12
- package/src/routes/workspace-artifacts.ts +165 -53
- package/src/routes/workspace-integrations.ts +576 -0
- package/src/routes/workspace-model-providers.ts +148 -0
- package/src/routes/workspace-state.ts +4 -0
- package/src/routes/workspaces.ts +625 -117
- package/src/sandbox/agent-update.ts +315 -0
- package/src/sandbox/auth-callout.ts +104 -21
- package/src/sandbox/channel-a.ts +165 -55
- package/src/sandbox/enrollment.ts +131 -22
- package/src/sandbox/machine-audience.ts +192 -0
- package/src/sandbox/machines.ts +75 -31
- package/src/sandbox/metrics-ingestion.ts +133 -2
- package/src/sandbox/rematerialize.ts +51 -21
- package/src/sandbox/screen-control.ts +289 -0
- package/src/sandbox/viewer.ts +33 -58
- package/src/sandbox-file-artifacts.ts +53 -27
- package/src/scheduled-task-blockers.ts +293 -0
- package/src/scheduled-task-deletion.ts +13 -3
- package/src/scheduled-task-lifecycle.ts +84 -0
- package/src/secret-answers.ts +119 -0
- package/src/session-create-observability.ts +46 -0
- package/src/session-realtime-context.ts +26 -4
- package/src/signed-state-secret.ts +58 -0
- package/src/site-agent-guard.ts +261 -0
- package/src/site-data/operations.ts +777 -0
- package/src/site-data/service.ts +1043 -0
- package/src/site-frame-guard.ts +107 -0
- package/src/site-publishing/agent-data-tools.ts +250 -0
- package/src/site-publishing/agent-model.ts +127 -0
- package/src/site-publishing/agent-session.ts +148 -0
- package/src/site-publishing/content-scanner.ts +93 -0
- package/src/site-publishing/edge-sync.ts +148 -0
- package/src/site-publishing/gateway-signature.ts +198 -0
- package/src/site-publishing/limits.ts +315 -0
- package/src/site-publishing/page-tool-authority.ts +111 -0
- package/src/site-publishing/platform-usage.ts +479 -0
- package/src/site-publishing/platform.ts +98 -0
- package/src/site-publishing/readiness.ts +330 -0
- package/src/site-publishing/runtime.ts +831 -0
- package/src/site-publishing/service.ts +1282 -0
- package/src/site-publishing/session-events.ts +262 -0
- package/src/site-publishing/session-views.ts +262 -0
- package/src/site-publishing/viewer.ts +75 -0
- package/src/site-session-origin.ts +91 -6
- package/src/site-sql/format.ts +134 -0
- package/src/site-sql/gateway.ts +168 -0
- package/src/site-sql/service.ts +1636 -0
- package/src/site-uploads.ts +27 -5
- package/src/temporal-schedule-sync.ts +74 -0
- package/src/transcription/billing-refusal.ts +14 -0
- package/src/transcription/normalize.ts +77 -0
- package/src/transcription/providers/azure-mai.ts +98 -0
- package/src/transcription/providers/azure-openai.ts +16 -7
- package/src/transcription/providers/codex-subscription.ts +190 -67
- package/src/transcription/providers/openai.ts +79 -5
- package/src/transcription/providers/subscription-core.ts +125 -0
- package/src/transcription/providers/xai-subscription.ts +81 -83
- package/src/transcription/segmenter.ts +7 -1
- package/src/transcription/service.ts +239 -10
- package/src/transcription/wav-duration.ts +39 -0
- package/src/workspace-deletion.ts +25 -1
- package/src/workspace-tool-gateway-attestations.ts +133 -0
- package/src/workspace-tool-gateway-observability.ts +64 -0
- package/src/workspace-tool-gateway-secrets.ts +104 -0
- package/src/workspace-tool-gateway.ts +921 -103
- package/src/workspace-tool-target-fence.ts +380 -0
- package/src/workspace-tool-target.ts +554 -0
- package/src/workspace-webhook-dispatch.ts +225 -0
- package/src/xai-realtime.ts +85 -81
- package/src/xai-subscription-core.ts +172 -0
- package/dist/browser-auth-broker.d.ts +0 -20
- package/dist/chunk-AJ62T5QN.js.map +0 -1
- package/dist/connection-authority-owner.d.ts +0 -59
- package/dist/routes/connection-authorities.d.ts +0 -3
- package/dist/routes/environments.d.ts +0 -5
- package/dist/routes/host-mcp-bindings.d.ts +0 -5
- package/dist/routes/host-mcp-resolvers.d.ts +0 -3
- package/dist/routes/packs.d.ts +0 -3
- package/dist/session-event-view-MU3HMNV3.js +0 -264
- package/dist/session-event-view-MU3HMNV3.js.map +0 -1
- package/dist/xai-subscription-auth.d.ts +0 -23
- package/src/browser-auth-broker.ts +0 -155
- package/src/connection-authority-owner.ts +0 -61
- package/src/routes/connection-authorities.ts +0 -139
- package/src/routes/environments.ts +0 -388
- package/src/routes/host-mcp-bindings.ts +0 -122
- package/src/routes/host-mcp-resolvers.ts +0 -41
- package/src/routes/packs.ts +0 -784
- package/src/xai-subscription-auth.ts +0 -139
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
2
|
+
import type { Hono } from "hono";
|
|
3
|
+
/**
|
|
4
|
+
* Explicit model-account choice for a session and a person's own
|
|
5
|
+
* preferences, for every provider on the shared subscription core
|
|
6
|
+
* (SUB-SEL-02, SUB-SEL-04, SUB-ELIG-05, SUB-OWN-05, D-24, D-27, D-28).
|
|
7
|
+
*
|
|
8
|
+
* The session routes sit behind the session authorization middleware
|
|
9
|
+
* (`session.read` to read, the account-choice operation to write), so a
|
|
10
|
+
* private session is reachable only by its owner. The database enforces
|
|
11
|
+
* which account a session may use; these routes translate its outcome.
|
|
12
|
+
*/
|
|
13
|
+
export declare function registerModelAccountChoiceRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
2
|
+
import type { Hono } from "hono";
|
|
3
|
+
import { ApiHttpError } from "../http/api-error.js";
|
|
4
|
+
/**
|
|
5
|
+
* 409 `setting_locked` for any write the organization's settings lock refused:
|
|
6
|
+
* these routes and every older route whose write meets the 0724 guard (for
|
|
7
|
+
* example a Codex rotation, primary or source change). Mapped centrally in
|
|
8
|
+
* the app error handler.
|
|
9
|
+
*/
|
|
10
|
+
export declare function subscriptionSettingsLockedHttpError(error: unknown): ApiHttpError | null;
|
|
11
|
+
/**
|
|
12
|
+
* Model-account settings (SUB-SET-01..05). Organization owners and admins
|
|
13
|
+
* read and change the organization's values and locks and read the overview
|
|
14
|
+
* of every shared workspace. Workspace members read their workspace's
|
|
15
|
+
* effective values; its administrators (and organization administrators)
|
|
16
|
+
* override what the organization has not locked. The database enforces
|
|
17
|
+
* every refusal; these routes only translate it.
|
|
18
|
+
*/
|
|
19
|
+
export declare function registerModelAccountSettingsRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
2
|
+
import type { Hono } from "hono";
|
|
3
|
+
export declare const NATIVE_APP_CODE_TTL_MS: number;
|
|
4
|
+
export declare const NATIVE_APP_PLATFORMS: readonly ["ios", "android", "macos", "windows", "linux"];
|
|
5
|
+
type NativeAppPlatform = (typeof NATIVE_APP_PLATFORMS)[number];
|
|
6
|
+
/** The device label shown in the person's signed-in sessions. */
|
|
7
|
+
export declare function nativeAppSessionUserAgent(platform: NativeAppPlatform, deviceName: string | null): string;
|
|
8
|
+
/** A registered native callback: exactly `<allowed scheme>://auth/callback`. */
|
|
9
|
+
export declare function nativeAppRedirectAllowed(redirectUri: string, schemes: readonly string[]): boolean;
|
|
10
|
+
export declare function pkceS256Challenge(verifier: string): string;
|
|
11
|
+
export declare function registerNativeAppAuthRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
2
|
+
import type { Context, Hono } from "hono";
|
|
3
|
+
/** The database rechecks current organization membership/key authority at commit. */
|
|
4
|
+
export declare function authorizeOrganizationIntegrationAdministration(context: Context, deps: ApiRouteDeps, accountId: string, mutation: boolean): Promise<{
|
|
5
|
+
accountId: string;
|
|
6
|
+
subjectId: string;
|
|
7
|
+
}>;
|
|
8
|
+
export declare function registerOrganizationIntegrationPolicyRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type AccessContext } from "@opengeni/contracts";
|
|
2
|
+
import { type AccessGrantAuthorization, type ApiRouteDeps } from "@opengeni/core";
|
|
3
|
+
import type { Hono } from "hono";
|
|
4
|
+
/** Account administrators or verified full-access organization keys; never workspace keys. */
|
|
5
|
+
export declare function requireOrganizationIntegrationAdmin(context: AccessContext, organizationId: string, authorization?: AccessGrantAuthorization): string;
|
|
6
|
+
export declare function registerOrganizationIntegrationRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ApiRouteDeps } from "@opengeni/core";
|
|
2
|
+
import type { Hono } from "hono";
|
|
3
|
+
/**
|
|
4
|
+
* Organization model defaults: what every workspace follows until it saves
|
|
5
|
+
* its own default model, allowed models or compaction trigger. Owners and
|
|
6
|
+
* admins read and change them; workspaces read them through their own model
|
|
7
|
+
* routes, which report where each value comes from.
|
|
8
|
+
*/
|
|
9
|
+
export declare function registerOrganizationModelDefaultsRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
2
|
+
import type { Hono } from "hono";
|
|
3
|
+
/** Exact authorized membership proof, not a paginated artifact discovery API. */
|
|
4
|
+
export declare function registerSessionArtifactAssociationRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
2
|
+
import type { Context, Hono } from "hono";
|
|
3
|
+
/** Exact server-only routes with their own bounded, streaming JSON ingress. */
|
|
4
|
+
export declare function isSessionHistoryImportRequest(method: string, pathname: string): boolean;
|
|
5
|
+
/** Count raw UTF-8 bytes before decoding or parsing, including chunked bodies. */
|
|
6
|
+
export declare function readSessionHistoryImportJson(request: Request): Promise<unknown>;
|
|
7
|
+
export declare const SESSION_ARCHIVED_MESSAGE = "This session is archived and read-only. Start a new session to continue the work.";
|
|
8
|
+
export declare const SESSION_IMPORTED_MESSAGE = "Imported session history is read-only";
|
|
9
|
+
export type ReadOnlySessionRefusal = {
|
|
10
|
+
code: "SESSION_ARCHIVED_READ_ONLY" | "SESSION_IMPORTED_READ_ONLY";
|
|
11
|
+
message: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Classifies a write refused because its session is read-only (archived or an
|
|
15
|
+
* imported history), for HTTP responses and agent tool results alike.
|
|
16
|
+
*/
|
|
17
|
+
export declare function readOnlySessionRefusal(error: unknown): ReadOnlySessionRefusal | null;
|
|
18
|
+
/** Also used by the composed API for imported- and archived-session Send/Steer refusals. */
|
|
19
|
+
export declare function archivedSessionImportErrorResponse(c: Context, error: unknown): Response | null;
|
|
20
|
+
export declare function registerSessionHistoryImportRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type
|
|
1
|
+
import { type AgentCapabilities } from "@opengeni/contracts";
|
|
2
|
+
import { ClientSessionEvent, SessionScopeSubjectId, SteerSessionMessageRequest, type SessionStatus, type WorkClaimSubjectFilter, type SessionGoalRevision, type SessionAuthorizationOperation } from "@opengeni/contracts";
|
|
3
|
+
import { decodeSessionListCursor, type SessionDiscoveryCursor } from "@opengeni/db";
|
|
3
4
|
import type { Context, Hono } from "hono";
|
|
5
|
+
import { HTTPException } from "hono/http-exception";
|
|
4
6
|
import type { ApiRouteDeps } from "@opengeni/core";
|
|
5
7
|
import { type ViewerServices } from "../sandbox/viewer.js";
|
|
6
8
|
type SessionRouteDeps = ApiRouteDeps & Pick<ViewerServices, "establishSandboxSession">;
|
|
7
9
|
export declare function registerSessionRoutes(app: Hono, deps: SessionRouteDeps): void;
|
|
8
10
|
export declare function goalProposalMatchesExpectedRevision(revision: Pick<SessionGoalRevision, "baseObjectiveRevision">, expectedObjectiveRevision: number): boolean;
|
|
11
|
+
export declare function sessionRealtimeHttpError(error: unknown): HTTPException;
|
|
9
12
|
/**
|
|
10
13
|
* Map every mounted session-addressed HTTP path to the host-neutral operation
|
|
11
14
|
* the embedding port authorizes. Returning null is deliberately fail-closed in
|
|
@@ -13,6 +16,32 @@ export declare function goalProposalMatchesExpectedRevision(revision: Pick<Sessi
|
|
|
13
16
|
*/
|
|
14
17
|
export declare function sessionAuthorizationOperationForHttp(method: string, pathname: string, sessionId: string): SessionAuthorizationOperation | null;
|
|
15
18
|
export declare function sessionTenancyHttpError(error: unknown): Error;
|
|
19
|
+
export declare function sessionListQuery(query: Record<string, string>, allowCursor?: boolean): {
|
|
20
|
+
originSiteId: string | undefined;
|
|
21
|
+
limit: string | undefined;
|
|
22
|
+
parentSessionId: string | null | undefined;
|
|
23
|
+
cursor: ReturnType<typeof decodeSessionListCursor> | undefined;
|
|
24
|
+
search: string | undefined;
|
|
25
|
+
pinsOnly: boolean;
|
|
26
|
+
includePinned: boolean;
|
|
27
|
+
includeTotals: boolean;
|
|
28
|
+
needsYouOnly: boolean;
|
|
29
|
+
contentArchivedOnly: boolean;
|
|
30
|
+
archivedOnly: boolean;
|
|
31
|
+
sortBy: "updatedAt" | "createdAt" | "name" | undefined;
|
|
32
|
+
archiveStatus: "active" | "archived" | "all" | undefined;
|
|
33
|
+
channelId: string | null | undefined;
|
|
34
|
+
createdBy: {
|
|
35
|
+
kind: "subject" | "service";
|
|
36
|
+
subjectId: string;
|
|
37
|
+
} | undefined;
|
|
38
|
+
updatedFrom: Date | undefined;
|
|
39
|
+
updatedBefore: Date | undefined;
|
|
40
|
+
createdFrom: Date | undefined;
|
|
41
|
+
createdBefore: Date | undefined;
|
|
42
|
+
scopeSubjectId: SessionScopeSubjectId | undefined;
|
|
43
|
+
hasPageFilters: boolean;
|
|
44
|
+
};
|
|
16
45
|
export type AgentTopologyCursorEnvelope = {
|
|
17
46
|
cursor: SessionDiscoveryCursor;
|
|
18
47
|
parentSessionId: string | null | "all";
|
|
@@ -37,6 +66,13 @@ export declare function agentTopologyQuery(query: Record<string, string>): {
|
|
|
37
66
|
claimLimit: number | undefined;
|
|
38
67
|
cursor: SessionDiscoveryCursor | undefined;
|
|
39
68
|
};
|
|
69
|
+
/**
|
|
70
|
+
* A Site page's session capabilities: the workspace default with workspace
|
|
71
|
+
* administration (sandboxes, Connected Machines, `run_on`) and browser and
|
|
72
|
+
* computer control off. Capabilities this server does not offer are left to
|
|
73
|
+
* the default, so the create never fails on them.
|
|
74
|
+
*/
|
|
75
|
+
export declare function siteFrameCapabilities(workspaceDefault: AgentCapabilities, unavailable: Readonly<Partial<Record<string, string>>>): Exclude<AgentCapabilities, string>;
|
|
40
76
|
/** Stable, value-free JSON errors for only the create-session boundary. */
|
|
41
77
|
export declare function sessionCreateErrorResponse(c: Context, error: unknown): Response;
|
|
42
78
|
export declare function parseSessionEventAdmission(raw: unknown): ClientSessionEvent;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
2
|
+
import { SiteDataError } from "@opengeni/db";
|
|
3
|
+
import type { Hono } from "hono";
|
|
4
|
+
import { ApiHttpError } from "../http/api-error.js";
|
|
5
|
+
/** Typed Site Data errors in the public envelope; `details.code` is the Site Data code. */
|
|
6
|
+
export declare function siteDataHttpError(error: SiteDataError): ApiHttpError;
|
|
7
|
+
/**
|
|
8
|
+
* Site Data routes. Reads and record writes need Site access (the viewer's
|
|
9
|
+
* audience and `artifacts:read`); the collection's access mode decides the
|
|
10
|
+
* rest. Management (describe, define, reset, import, export) needs a manager.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* A Site Data file upload. It streams its body under its own per-file cap,
|
|
14
|
+
* read only after access, the rate window and the quota pass, so the generic
|
|
15
|
+
* request ceiling (which buffers bodies without a Content-Length) skips it.
|
|
16
|
+
*/
|
|
17
|
+
export declare function isSiteDataFileUploadRequest(method: string, pathname: string): boolean;
|
|
18
|
+
export declare function registerSiteDataRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
2
|
+
import type { Hono } from "hono";
|
|
3
|
+
/** A one-time sign-in code lives this long. */
|
|
4
|
+
export declare const SITE_AUTH_CODE_TTL_SECONDS = 60;
|
|
5
|
+
export declare function registerSitePublishingRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type SiteEmbeddedAgent, type ToolRef } from "@opengeni/contracts";
|
|
2
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
3
|
+
import type { Hono } from "hono";
|
|
4
|
+
import { type SiteRuntimeViewer } from "../site-publishing/viewer.js";
|
|
5
|
+
/** Request bodies site-runtime reads at most (the gateway enforces the same caps). */
|
|
6
|
+
export declare const SITE_RUNTIME_JSON_BODY_LIMIT: number;
|
|
7
|
+
export declare const SITE_RUNTIME_FILE_BODY_LIMIT: number;
|
|
8
|
+
/** A version a publish or rollback replaced is still served this long (open pages keep loading). */
|
|
9
|
+
export declare const SITE_VERSION_GRACE_SECONDS = 600;
|
|
10
|
+
/** The document policy for a published version: scripts in an opaque origin, framed only by its own shell. */
|
|
11
|
+
export declare const SITE_VERSION_CONTENT_SECURITY_POLICY = "sandbox allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-downloads allow-modals; frame-ancestors 'self'";
|
|
12
|
+
/**
|
|
13
|
+
* The Site-safe projection of a session: no account or workspace ids,
|
|
14
|
+
* instructions, tools or policies, metadata, creator, sandbox or diagnostics.
|
|
15
|
+
*/
|
|
16
|
+
export declare function siteSessionProjection(session: unknown): Record<string, unknown>;
|
|
17
|
+
/**
|
|
18
|
+
* The workspace tools a Site conversation gets: the OVERLAP of what the Site
|
|
19
|
+
* declares (its admin-chosen MCP connections) and what the viewer may do in
|
|
20
|
+
* the workspace. Only workspace members who may attach MCP connections to
|
|
21
|
+
* their own sessions (`mcp_servers:attach`, or workspace admins) get them.
|
|
22
|
+
* People outside the workspace (invited people and public visitors, signed in
|
|
23
|
+
* or anonymous) never get workspace tools: only the Site's own data and the
|
|
24
|
+
* page. There is no setting that changes this; `guestTools` is ignored.
|
|
25
|
+
* Optional references: a connection the workspace does not have is skipped
|
|
26
|
+
* rather than failing the conversation.
|
|
27
|
+
*/
|
|
28
|
+
export declare function siteAgentToolRefs(agent: Pick<SiteEmbeddedAgent, "tools">, viewer: Pick<SiteRuntimeViewer, "kind">, memberPermissions?: readonly string[] | null): ToolRef[];
|
|
29
|
+
/** Only workspace members who may use MCP connections get the Site's tools. */
|
|
30
|
+
export declare function siteViewerGetsTools(viewer: Pick<SiteRuntimeViewer, "kind">, memberPermissions: readonly string[] | null): boolean;
|
|
31
|
+
export declare function registerSiteRuntimeRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
2
|
+
import type { Context, Hono } from "hono";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { ApiHttpError } from "../http/api-error.js";
|
|
5
|
+
import { SiteSqlError } from "../site-sql/service.js";
|
|
6
|
+
/** Typed Site SQL errors in the public envelope; `details.code` is the Site SQL code. */
|
|
7
|
+
export declare function siteSqlHttpError(error: SiteSqlError): ApiHttpError;
|
|
8
|
+
export declare function runSiteSqlRoute<T>(fn: () => Promise<T>): Promise<T>;
|
|
9
|
+
export declare function siteSqlBody<S extends z.ZodType>(context: Context, schema: S): Promise<z.infer<S>>;
|
|
10
|
+
/**
|
|
11
|
+
* Site SQL routes. Running a named query needs Site access (`artifacts:read`
|
|
12
|
+
* and the viewer's audience); the query's audience decides the rest. Everything
|
|
13
|
+
* else is management: a manager of the Site outside any Site frame, with
|
|
14
|
+
* `artifacts:read` to look and `artifacts:publish` to change.
|
|
15
|
+
*/
|
|
16
|
+
export declare function registerSiteSqlRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { XaiSubscriptionAccountMetadata } from "@opengeni/db";
|
|
2
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
3
|
+
import type { Hono } from "hono";
|
|
4
|
+
import { type SubscriptionPoolCore } from "./subscription-pool-core.js";
|
|
5
|
+
/** The legacy pool repository; only Claude still has one (until its own cutover). */
|
|
6
|
+
/** The legacy pool account shape SuperGrok and Claude share (SuperGrok's metadata defines it). */
|
|
7
|
+
export type SubscriptionPoolAccount = XaiSubscriptionAccountMetadata;
|
|
8
|
+
/**
|
|
9
|
+
* The repository of a provider whose legacy runtime was deleted after its
|
|
10
|
+
* cutover: its routes serve only the core (`requireSubscriptionCoreRoute`
|
|
11
|
+
* refuses any other route first), so no legacy handler can reach these.
|
|
12
|
+
*/
|
|
13
|
+
/** Account CRUD uses one authority, allocator and wake contract for every pool. */
|
|
14
|
+
export declare function registerSubscriptionAccountPoolRoutes(app: Hono, deps: ApiRouteDeps, options: {
|
|
15
|
+
provider: "xai" | "claude";
|
|
16
|
+
route: "supergrok" | "claude";
|
|
17
|
+
displayName: "SuperGrok" | "Claude";
|
|
18
|
+
enabled: () => boolean;
|
|
19
|
+
accountJson: (account: XaiSubscriptionAccountMetadata, activeId: string | null) => Record<string, unknown>;
|
|
20
|
+
core: SubscriptionPoolCore;
|
|
21
|
+
}): void;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ApiHttpError } from "../http/api-error.js";
|
|
2
|
+
/** `details.reason` of the 503 a provider's route answers while its cutover row is missing or disabled. */
|
|
3
|
+
export declare const SUBSCRIPTION_CORE_CUTOVER_DISABLED = "subscription_core_cutover_disabled";
|
|
4
|
+
/** The public error envelope with the core reason in `details.reason`. */
|
|
5
|
+
export declare function typedHttpError(status: 409 | 503, reason: string, message: string): ApiHttpError;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
2
|
+
import type { Context } from "hono";
|
|
3
|
+
type ManagedCookieHuman = {
|
|
4
|
+
subjectId: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Where a private (scope `user`) subscription is managed. The legacy pools
|
|
8
|
+
* keep a person's private accounts in an ordinary workspace they are a member
|
|
9
|
+
* of; the shared subscription core keeps a personal connection only in its
|
|
10
|
+
* owner's own Personal workspace (D-03), so on the core the private routes
|
|
11
|
+
* answer there and nowhere else.
|
|
12
|
+
*/
|
|
13
|
+
export type PrivateSubscriptionPlace = "ordinary_workspace" | "personal_workspace";
|
|
14
|
+
export declare function managedCookieHuman(c: Context, deps: ApiRouteDeps): Promise<ManagedCookieHuman | null>;
|
|
15
|
+
export declare function requireSameOriginBrowserMutation(c: Context, deps: ApiRouteDeps): void;
|
|
16
|
+
export declare function requirePrivateSubscriptionHuman(c: Context, deps: ApiRouteDeps, workspaceId: string, displayName: string, place?: PrivateSubscriptionPlace): Promise<{
|
|
17
|
+
accountId: string;
|
|
18
|
+
subjectId: string;
|
|
19
|
+
}>;
|
|
20
|
+
export declare function requireSubscriptionScopeMutation(c: Context, deps: ApiRouteDeps, workspaceId: string, scope: "workspace" | "user" | "organization", displayName: string, place?: PrivateSubscriptionPlace): Promise<{
|
|
21
|
+
accountId: string;
|
|
22
|
+
subjectId: string;
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* The mutation gate of a pool whose legacy repository is deleted (Claude,
|
|
26
|
+
* C4). The account's scope can no longer be read, so every caller gets the
|
|
27
|
+
* workspace-scope gate of `requireSubscriptionScopeMutation` (a browser
|
|
28
|
+
* request must be same-origin, and the caller needs `workspace:admin`)
|
|
29
|
+
* before the route fails closed; nothing is read or written either way.
|
|
30
|
+
* For a former private (user-scope) account this changes two outcomes: an
|
|
31
|
+
* ordinary bearer with `workspace:admin` now reaches the 503 where it got
|
|
32
|
+
* 403 (no verified owning user), and the owner without `workspace:admin` now
|
|
33
|
+
* gets 403 where it passed. C2b restores the per-scope check, including the
|
|
34
|
+
* owner's path, when the core serves these routes.
|
|
35
|
+
*/
|
|
36
|
+
export declare function requireDeletedSubscriptionPoolMutation(c: Context, deps: ApiRouteDeps, workspaceId: string): Promise<void>;
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import type { Context } from "hono";
|
|
2
|
+
import { HTTPException } from "hono/http-exception";
|
|
3
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
4
|
+
import { type Database, type SubscriptionCoreConnectRefusal, type SubscriptionCoreProvider, type SubscriptionCoreWake } from "@opengeni/db";
|
|
5
|
+
import type { SubscriptionPoolAccount } from "./subscription-account-pools.js";
|
|
6
|
+
import { typedHttpError } from "./subscription-core-http.js";
|
|
7
|
+
/** The legacy pool account shape every pool route shares. */
|
|
8
|
+
type PoolAccount = SubscriptionPoolAccount;
|
|
9
|
+
export type SubscriptionCorePoolProjection = {
|
|
10
|
+
source: "workspace" | "user" | "organization";
|
|
11
|
+
accounts: PoolAccount[];
|
|
12
|
+
activeCredentialId: string | null;
|
|
13
|
+
rotationEnabled: boolean;
|
|
14
|
+
};
|
|
15
|
+
/** What a provider supplies to serve its pool routes from the core. */
|
|
16
|
+
export type SubscriptionPoolCore = {
|
|
17
|
+
binding: SubscriptionCoreProvider;
|
|
18
|
+
workspaceProjection(db: Database, input: {
|
|
19
|
+
accountId: string;
|
|
20
|
+
workspaceId: string;
|
|
21
|
+
viewerSubjectId: string;
|
|
22
|
+
}): Promise<SubscriptionCorePoolProjection>;
|
|
23
|
+
organizationProjection(db: Database, input: {
|
|
24
|
+
organizationId: string;
|
|
25
|
+
subjectId: string;
|
|
26
|
+
}): Promise<SubscriptionCorePoolProjection>;
|
|
27
|
+
/**
|
|
28
|
+
* The JSON of one core account in the listings, when it differs from the
|
|
29
|
+
* legacy `accountJson` (fields the legacy listing adds beside it, such as
|
|
30
|
+
* a usage reading). Defaults to the legacy `accountJson`; every other
|
|
31
|
+
* route answers the legacy `accountJson`.
|
|
32
|
+
*/
|
|
33
|
+
listedAccountJson?: (account: PoolAccount, activeId: string | null) => Record<string, unknown>;
|
|
34
|
+
};
|
|
35
|
+
type PoolContext = {
|
|
36
|
+
deps: ApiRouteDeps;
|
|
37
|
+
core: SubscriptionPoolCore;
|
|
38
|
+
displayName: string;
|
|
39
|
+
accountJson: (account: PoolAccount, activeId: string | null) => Record<string, unknown>;
|
|
40
|
+
/** The listings' account JSON (`SubscriptionPoolCore.listedAccountJson`). */
|
|
41
|
+
listedAccountJson: (account: PoolAccount, activeId: string | null) => Record<string, unknown>;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* The runtime serving this provider for the organization: `legacy` without
|
|
45
|
+
* the provider's cutover receipt (one read; `accountId` is not called),
|
|
46
|
+
* `core` with an enabled switch row; maintenance fails closed and never
|
|
47
|
+
* falls back to legacy state.
|
|
48
|
+
*/
|
|
49
|
+
export declare function subscriptionCoreRoute(deps: ApiRouteDeps, provider: string, displayName: string, accountId: () => Promise<string>): Promise<"legacy" | "core">;
|
|
50
|
+
/**
|
|
51
|
+
* The runtime for a provider whose legacy runtime was deleted after its
|
|
52
|
+
* cutover: only `core` serves. Any other route (maintenance, or no receipt,
|
|
53
|
+
* which the deployed binary's readiness check refuses) fails closed exactly
|
|
54
|
+
* as maintenance does.
|
|
55
|
+
*/
|
|
56
|
+
export declare function requireSubscriptionCoreRoute(deps: ApiRouteDeps, provider: string, displayName: string, accountId: () => Promise<string>): Promise<"core">;
|
|
57
|
+
/** The typed refusal of a core-only provider that is not on `core`. */
|
|
58
|
+
export declare function subscriptionCoreMaintenanceError(displayName: string): import("../http/api-error.js").ApiHttpError;
|
|
59
|
+
/** Deliver a committed change's wake; never fails the request (waiters recheck). */
|
|
60
|
+
export declare function deliverPoolCoreWake(deps: ApiRouteDeps, core: Pick<SubscriptionPoolCore, "binding">, wake: SubscriptionCoreWake | null): Promise<void>;
|
|
61
|
+
/** The legacy texts for a refused core connect. */
|
|
62
|
+
export declare function coreConnectRefused(reason: SubscriptionCoreConnectRefusal, displayName: string, personal: boolean): HTTPException | ReturnType<typeof typedHttpError>;
|
|
63
|
+
/**
|
|
64
|
+
* A route's account id as the canonical core connection id: a legacy id the
|
|
65
|
+
* drained cutover kept as an alias resolves to its connection as the caller
|
|
66
|
+
* may see it (`resolveSubscriptionCoreRouteConnectionId`). Anything else is
|
|
67
|
+
* returned as given; the caller's projection or writer decides whether it
|
|
68
|
+
* exists and is theirs.
|
|
69
|
+
*/
|
|
70
|
+
export declare function canonicalConnectionId(deps: ApiRouteDeps, binding: SubscriptionCoreProvider, input: {
|
|
71
|
+
accountId: string;
|
|
72
|
+
workspaceId: string | null;
|
|
73
|
+
subjectId: string;
|
|
74
|
+
routeId: string;
|
|
75
|
+
}): Promise<string>;
|
|
76
|
+
export declare function coreWorkspaceAccounts(c: Context, ctx: PoolContext, workspaceId: string): Promise<Response & import("hono").TypedResponse<{
|
|
77
|
+
source: "organization" | "user" | "workspace";
|
|
78
|
+
organizationId: string;
|
|
79
|
+
accounts: {
|
|
80
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
81
|
+
}[];
|
|
82
|
+
activeAccountId: string | null;
|
|
83
|
+
settings: {
|
|
84
|
+
rotationEnabled: boolean;
|
|
85
|
+
rotationStrategy: "sharded";
|
|
86
|
+
activeCredentialId: string | null;
|
|
87
|
+
};
|
|
88
|
+
}, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
|
|
89
|
+
/** Legacy "activate": the provider's effective primary at the scope the caller administers. */
|
|
90
|
+
export declare function coreWorkspaceActivate(c: Context, ctx: PoolContext, workspaceId: string, routeId: string): Promise<Response & import("hono").TypedResponse<{
|
|
91
|
+
activated: true;
|
|
92
|
+
accountId: string;
|
|
93
|
+
}, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
|
|
94
|
+
/** Legacy rotation toggle: on is `spread`, off is `primary_first`. */
|
|
95
|
+
export declare function coreWorkspaceSettings(c: Context, ctx: PoolContext, workspaceId: string, rotationEnabled: boolean): Promise<Response & import("hono").TypedResponse<{
|
|
96
|
+
rotationEnabled: boolean;
|
|
97
|
+
rotationStrategy: "sharded";
|
|
98
|
+
activeCredentialId: string | null;
|
|
99
|
+
}, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
|
|
100
|
+
export declare function coreWorkspaceAllocator(c: Context, ctx: PoolContext, workspaceId: string, routeId: string, body: {
|
|
101
|
+
enabled: boolean;
|
|
102
|
+
expectedVersion: number;
|
|
103
|
+
}): Promise<Response & import("hono").TypedResponse<{
|
|
104
|
+
allocatorEnabled: boolean;
|
|
105
|
+
allocatorVersion: number;
|
|
106
|
+
allocatorUpdatedAt: string | null;
|
|
107
|
+
changed: boolean;
|
|
108
|
+
}, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
|
|
109
|
+
export declare function coreWorkspaceRename(c: Context, ctx: PoolContext, workspaceId: string, routeId: string, label: string | null): Promise<Response & import("hono").TypedResponse<{
|
|
110
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
111
|
+
}, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
|
|
112
|
+
export declare function coreWorkspaceDisconnect(c: Context, ctx: PoolContext, workspaceId: string, routeId: string): Promise<Response & import("hono").TypedResponse<{
|
|
113
|
+
disconnected: true;
|
|
114
|
+
newActiveId: string | null;
|
|
115
|
+
}, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
|
|
116
|
+
type OrganizationActor = {
|
|
117
|
+
organizationId: string;
|
|
118
|
+
actorSubjectId: string;
|
|
119
|
+
};
|
|
120
|
+
export declare function coreOrganizationAccounts(c: Context, ctx: PoolContext, actor: OrganizationActor): Promise<Response & import("hono").TypedResponse<{
|
|
121
|
+
accounts: {
|
|
122
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
123
|
+
}[];
|
|
124
|
+
activeAccountId: string | null;
|
|
125
|
+
source: string;
|
|
126
|
+
organizationId: string;
|
|
127
|
+
settings: {
|
|
128
|
+
rotationEnabled: boolean;
|
|
129
|
+
rotationStrategy: "sharded";
|
|
130
|
+
activeCredentialId: string | null;
|
|
131
|
+
};
|
|
132
|
+
}, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
|
|
133
|
+
export declare function coreOrganizationSettings(c: Context, ctx: PoolContext, actor: OrganizationActor, rotationEnabled: boolean): Promise<Response & import("hono").TypedResponse<{
|
|
134
|
+
rotationEnabled: boolean;
|
|
135
|
+
rotationStrategy: "sharded";
|
|
136
|
+
activeCredentialId: string | null;
|
|
137
|
+
}, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
|
|
138
|
+
/** The legacy organization account mutations: one change per request. */
|
|
139
|
+
export declare function coreOrganizationAccount(c: Context, ctx: PoolContext, actor: OrganizationActor, routeId: string, change: {
|
|
140
|
+
activate: true;
|
|
141
|
+
} | {
|
|
142
|
+
disconnect: true;
|
|
143
|
+
} | {
|
|
144
|
+
label: string | null;
|
|
145
|
+
} | {
|
|
146
|
+
allocatorEnabled: boolean;
|
|
147
|
+
expectedAllocatorVersion: number;
|
|
148
|
+
}): Promise<(Response & import("hono").TypedResponse<{
|
|
149
|
+
disconnected: true;
|
|
150
|
+
}, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
|
|
151
|
+
updated: true;
|
|
152
|
+
}, import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
|
|
153
|
+
export {};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
export { managedCookieHuman } from "./subscription-pool-access.js";
|
|
1
2
|
import { type ApiRouteDeps } from "@opengeni/core";
|
|
2
3
|
import type { Context, Hono } from "hono";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export declare
|
|
4
|
+
/**
|
|
5
|
+
* The legacy scope check; on the shared core a private (`user`) account is
|
|
6
|
+
* managed only from its owner's Personal workspace.
|
|
7
|
+
*/
|
|
8
|
+
export declare const requireScopeMutation: (c: Context, deps: ApiRouteDeps, workspaceId: string, scope: "workspace" | "user" | "organization", runtime?: "legacy" | "core") => Promise<{
|
|
8
9
|
accountId: string;
|
|
9
10
|
subjectId: string;
|
|
10
11
|
}>;
|
|
11
12
|
export declare function registerSuperGrokRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
12
|
-
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Hono } from "hono";
|
|
2
|
+
import { type AccessContext } from "@opengeni/contracts";
|
|
3
|
+
import { type AccessGrantAuthorization, type ApiRouteDeps } from "@opengeni/core";
|
|
4
|
+
type Authority = {
|
|
5
|
+
authorization: AccessGrantAuthorization;
|
|
6
|
+
context: AccessContext;
|
|
7
|
+
};
|
|
8
|
+
type Operation = "read" | "budget-read" | "workspace-write" | "member-write" | "own";
|
|
9
|
+
/** No workspace wildcard, service initiator, or actor label can confer budget authority. */
|
|
10
|
+
export declare function requireAllowanceAuthority({ authorization, context }: Authority, operation: Operation): void;
|
|
11
|
+
export declare function registerUsageAllowanceRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Hono } from "hono";
|
|
2
|
+
import { type ApiRouteDeps, type OnePasswordConnectionMetadata, type OnePasswordVaultProviderFactory } from "@opengeni/core";
|
|
3
|
+
import { type VaultDbContext } from "@opengeni/db";
|
|
4
|
+
import { type VaultProvider, type VaultProviderRegistry } from "@opengeni/vaults";
|
|
5
|
+
export declare function onePasswordFactoryFor(deps: ApiRouteDeps): OnePasswordVaultProviderFactory;
|
|
6
|
+
/**
|
|
7
|
+
* The 1Password provider for a stored connection the caller can see, plus its
|
|
8
|
+
* metadata. Throws 404 for other connections.
|
|
9
|
+
*/
|
|
10
|
+
export declare function onePasswordProviderForConnection(deps: ApiRouteDeps, input: {
|
|
11
|
+
workspaceId: string;
|
|
12
|
+
connectionId: string;
|
|
13
|
+
subjectId: string | null;
|
|
14
|
+
}): Promise<{
|
|
15
|
+
provider: VaultProvider;
|
|
16
|
+
metadata: OnePasswordConnectionMetadata;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* The provider registry for one request: 1Password vaults load their
|
|
20
|
+
* connection token for the acting subject in this workspace; host vaults use
|
|
21
|
+
* the embedder's `connectionCredentials.vaultProvider`.
|
|
22
|
+
*/
|
|
23
|
+
export declare function vaultProviderRegistryFor(deps: ApiRouteDeps, input: {
|
|
24
|
+
workspaceId: string;
|
|
25
|
+
subjectId: string | null;
|
|
26
|
+
}): VaultProviderRegistry;
|
|
27
|
+
export type LinkedVaultLookup = (input: {
|
|
28
|
+
workspaceId: string;
|
|
29
|
+
connectionId: string;
|
|
30
|
+
context: VaultDbContext;
|
|
31
|
+
}) => Promise<ReadonlyMap<string, string>>;
|
|
32
|
+
export declare function registerVaultProviderRoutes(app: Hono, deps: ApiRouteDeps, options?: {
|
|
33
|
+
linkedVaults?: LinkedVaultLookup;
|
|
34
|
+
}): void;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { WorkspaceWebhookDelivery, type AccessGrant } from "@opengeni/contracts";
|
|
2
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
3
|
+
import { type WorkspaceCredentialProviderRow, type WorkspaceWebhookDeliveryRow, type WorkspaceWebhookRow } from "@opengeni/db";
|
|
4
|
+
import { type pinnedFetch } from "@opengeni/network";
|
|
5
|
+
import type { Context, Hono } from "hono";
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
export declare function newIntegrationSecret(prefix: string): string;
|
|
8
|
+
export declare function integrationWebhookFields(row: Omit<WorkspaceWebhookRow, "workspaceId">): {
|
|
9
|
+
id: string;
|
|
10
|
+
url: string;
|
|
11
|
+
eventTypes: string[];
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
description: string | null;
|
|
14
|
+
createdAt: string;
|
|
15
|
+
updatedAt: string;
|
|
16
|
+
};
|
|
17
|
+
export declare function integrationDeliveryProjection(row: WorkspaceWebhookDeliveryRow): WorkspaceWebhookDelivery;
|
|
18
|
+
export declare function integrationProviderFields(row: Omit<WorkspaceCredentialProviderRow, "workspaceId">): {
|
|
19
|
+
url: string;
|
|
20
|
+
enabled: boolean;
|
|
21
|
+
timeoutMs: number;
|
|
22
|
+
createdAt: string;
|
|
23
|
+
updatedAt: string;
|
|
24
|
+
};
|
|
25
|
+
export declare function integrationBody<T extends z.ZodTypeAny>(c: Context, schema: T, invalidStatus?: 400 | 422): Promise<z.output<T>>;
|
|
26
|
+
export declare function integrationRouteConfiguration(deps: ApiRouteDeps, scope: "workspace" | "organization"): {
|
|
27
|
+
requireKey(): Uint8Array;
|
|
28
|
+
requireDeployableUrl(url: string): void;
|
|
29
|
+
};
|
|
30
|
+
export declare function isIntegrationAgent(grant: Pick<AccessGrant, "principalKind" | "metadata">): boolean;
|
|
31
|
+
export type WorkspaceIntegrationRouteOptions = {
|
|
32
|
+
/** Tests inject a fetch; production uses the pinned outbound client. */
|
|
33
|
+
fetch?: typeof pinnedFetch;
|
|
34
|
+
};
|
|
35
|
+
export declare function registerWorkspaceIntegrationRoutes(app: Hono, deps: ApiRouteDeps, options?: WorkspaceIntegrationRouteOptions): void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ApiRouteDeps } from "@opengeni/core";
|
|
2
|
+
import type { Hono } from "hono";
|
|
3
|
+
/** Workspace-owned Claude models use the same immutable-generation protocol as gateway models. */
|
|
4
|
+
export declare function registerWorkspaceModelProviderRoutes(app: Hono, deps: ApiRouteDeps): void;
|