@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,82 @@
|
|
|
1
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
|
+
import { type CallToolResult, type Icon } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
import { type OrganizationAccessPolicy } from "@opengeni/contracts";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import type { ActionCatalogEntry } from "./mcp/action-catalog-types.js";
|
|
6
|
+
export type OrganizationMcpCaller = {
|
|
7
|
+
kind: "person";
|
|
8
|
+
accountId: string;
|
|
9
|
+
subjectId: string;
|
|
10
|
+
access: OrganizationAccessPolicy;
|
|
11
|
+
} | {
|
|
12
|
+
kind: "key";
|
|
13
|
+
authorization: string;
|
|
14
|
+
accessKey: string | null;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Requests that only read but are sent as POST (a search query or a file path
|
|
18
|
+
* in the body). Read only connections may run them; each route still checks
|
|
19
|
+
* its own read permission.
|
|
20
|
+
*/
|
|
21
|
+
export declare const READ_ONLY_POST_ACTIONS: ReadonlySet<string>;
|
|
22
|
+
export declare const OrganizationActionSearchInput: z.ZodObject<{
|
|
23
|
+
query: z.ZodDefault<z.ZodString>;
|
|
24
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
25
|
+
offset: z.ZodDefault<z.ZodNumber>;
|
|
26
|
+
}, z.core.$strict>;
|
|
27
|
+
export declare const OrganizationActionDescribeInput: z.ZodObject<{
|
|
28
|
+
id: z.ZodString;
|
|
29
|
+
}, z.core.$strict>;
|
|
30
|
+
export declare const OrganizationActionCallInput: z.ZodObject<{
|
|
31
|
+
id: z.ZodString;
|
|
32
|
+
pathParameters: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
33
|
+
query: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>]>>>;
|
|
34
|
+
body: z.ZodOptional<z.ZodUnknown>;
|
|
35
|
+
}, z.core.$strict>;
|
|
36
|
+
/**
|
|
37
|
+
* MCP `serverInfo.icons` (spec 2025-11-25). Self-contained data URIs work for
|
|
38
|
+
* every deployment; the web app's PNG is added when its public origin is known.
|
|
39
|
+
*/
|
|
40
|
+
export declare function organizationMcpIcons(publicOrigin: string | null): Icon[];
|
|
41
|
+
export type OrganizationActionContext = {
|
|
42
|
+
caller: OrganizationMcpCaller;
|
|
43
|
+
/** This API's own origin; the call never leaves the process. */
|
|
44
|
+
origin: string;
|
|
45
|
+
/** The web app's public origin, when configured; serves the PNG icon. */
|
|
46
|
+
publicOrigin?: string | null;
|
|
47
|
+
dispatch: (request: Request) => Promise<Response>;
|
|
48
|
+
signal?: AbortSignal;
|
|
49
|
+
};
|
|
50
|
+
export declare function buildOrganizationMcpServer(input: OrganizationActionContext): Server;
|
|
51
|
+
export declare function findAction(id: string): ActionCatalogEntry | undefined;
|
|
52
|
+
export declare function searchActions(input: {
|
|
53
|
+
query: string;
|
|
54
|
+
limit: number;
|
|
55
|
+
offset: number;
|
|
56
|
+
}): {
|
|
57
|
+
total: number;
|
|
58
|
+
offset: number;
|
|
59
|
+
actions: {
|
|
60
|
+
id: string;
|
|
61
|
+
method: string;
|
|
62
|
+
path: string;
|
|
63
|
+
description?: string;
|
|
64
|
+
}[];
|
|
65
|
+
};
|
|
66
|
+
/** The describe tool's answer for an action id, or why it can't be used. */
|
|
67
|
+
export declare function describeActionResult(id: string): CallToolResult;
|
|
68
|
+
export declare function describeAction(entry: ActionCatalogEntry): {
|
|
69
|
+
id: string;
|
|
70
|
+
method: string;
|
|
71
|
+
path: string;
|
|
72
|
+
description?: string;
|
|
73
|
+
pathParameters: string[];
|
|
74
|
+
input: {
|
|
75
|
+
name: string;
|
|
76
|
+
in: string;
|
|
77
|
+
schema: unknown;
|
|
78
|
+
}[];
|
|
79
|
+
response: string[];
|
|
80
|
+
};
|
|
81
|
+
/** Run one public action in process as the caller; the route's own checks decide. */
|
|
82
|
+
export declare function callOrganizationAction(context: OrganizationActionContext, input: z.infer<typeof OrganizationActionCallInput>): Promise<CallToolResult>;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { ConnectAttempt } from "@opengeni/contracts/connect";
|
|
2
|
+
import { type Database } from "@opengeni/db";
|
|
3
|
+
import { type AccessGrantAuthorization, type ApiRouteDeps } from "@opengeni/core";
|
|
4
|
+
/** The normal browser and the exact agent attempt share Connect storage and
|
|
5
|
+
* verification. This adapter is ONLY for prepared MCP keys, never interactive
|
|
6
|
+
* OAuth, arbitrary native connections, or a caller-supplied owner identity. */
|
|
7
|
+
export declare function connectRequestActor(deps: ApiRouteDeps, authorization: AccessGrantAuthorization): Promise<{
|
|
8
|
+
scope: {
|
|
9
|
+
accountId: string;
|
|
10
|
+
workspaceId: string;
|
|
11
|
+
subjectId: string;
|
|
12
|
+
personalOwnerVerified: boolean;
|
|
13
|
+
externalContinuation?: {
|
|
14
|
+
identity: {
|
|
15
|
+
externalId: string;
|
|
16
|
+
source: string;
|
|
17
|
+
};
|
|
18
|
+
actor: {
|
|
19
|
+
accountId: string;
|
|
20
|
+
authenticatingApiKeyId: string;
|
|
21
|
+
externalIdentityId: string;
|
|
22
|
+
externalSubjectId: string;
|
|
23
|
+
externalAuthorizationRevision: number;
|
|
24
|
+
effectiveSubjectId: string;
|
|
25
|
+
actingMode: "external" | "linked_native";
|
|
26
|
+
linkId?: string | undefined;
|
|
27
|
+
linkRevision?: number | undefined;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
grant: {
|
|
32
|
+
workspaceId: string;
|
|
33
|
+
accountId: string;
|
|
34
|
+
subjectId: string;
|
|
35
|
+
subjectLabel?: string | undefined;
|
|
36
|
+
permissions: ("account:admin" | "account:read" | "api_keys:manage" | "artifacts:publish" | "artifacts:read" | "billing:manage" | "billing:read" | "capabilities:manage" | "codemode:call" | "connections:read" | "connections:write" | "documents:manage" | "documents:search" | "enrollments:manage" | "enrollments:read" | "environments:manage" | "environments:use" | "files:read" | "files:upload" | "files:write" | "github:manage" | "github:use" | "goals:manage" | "mcp_servers:attach" | "members:manage" | "rigs:manage" | "rigs:use" | "scheduled_tasks:manage" | "scheduled_tasks:run" | "secrets:list" | "secrets:read" | "secrets:use" | "secrets:write" | "sessions:control" | "sessions:create" | "sessions:read" | "stream:acknowledge" | "stream:control" | "stream:view" | "terminal:attach" | "usage_allowances:manage" | "variable-sets:attach" | "variable-sets:list" | "variable-sets:manage" | "variable-sets:read" | "variable-sets:use" | "variable-sets:write" | "workspace:admin" | "workspace:create" | "workspace:read")[];
|
|
37
|
+
permissionMode?: "explicit" | "legacy" | undefined;
|
|
38
|
+
principalKind?: "agent_attempt" | "api_key" | "configured_key" | "human_session" | "service" | undefined;
|
|
39
|
+
metadata?: Record<string, unknown> | undefined;
|
|
40
|
+
serviceInitiator?: {
|
|
41
|
+
kind: "service";
|
|
42
|
+
subjectId: string;
|
|
43
|
+
label?: string | undefined;
|
|
44
|
+
} | undefined;
|
|
45
|
+
serviceInitiatorContext?: Record<string, unknown> | undefined;
|
|
46
|
+
};
|
|
47
|
+
beforeOperation: undefined;
|
|
48
|
+
preparedOnly: boolean;
|
|
49
|
+
} | {
|
|
50
|
+
scope: {
|
|
51
|
+
accountId: string;
|
|
52
|
+
workspaceId: string;
|
|
53
|
+
subjectId: string;
|
|
54
|
+
personalOwnerVerified: boolean;
|
|
55
|
+
};
|
|
56
|
+
grant: {
|
|
57
|
+
workspaceId: string;
|
|
58
|
+
accountId: string;
|
|
59
|
+
subjectId: string;
|
|
60
|
+
subjectLabel?: string | undefined;
|
|
61
|
+
permissions: ("account:admin" | "account:read" | "api_keys:manage" | "artifacts:publish" | "artifacts:read" | "billing:manage" | "billing:read" | "capabilities:manage" | "codemode:call" | "connections:read" | "connections:write" | "documents:manage" | "documents:search" | "enrollments:manage" | "enrollments:read" | "environments:manage" | "environments:use" | "files:read" | "files:upload" | "files:write" | "github:manage" | "github:use" | "goals:manage" | "mcp_servers:attach" | "members:manage" | "rigs:manage" | "rigs:use" | "scheduled_tasks:manage" | "scheduled_tasks:run" | "secrets:list" | "secrets:read" | "secrets:use" | "secrets:write" | "sessions:control" | "sessions:create" | "sessions:read" | "stream:acknowledge" | "stream:control" | "stream:view" | "terminal:attach" | "usage_allowances:manage" | "variable-sets:attach" | "variable-sets:list" | "variable-sets:manage" | "variable-sets:read" | "variable-sets:use" | "variable-sets:write" | "workspace:admin" | "workspace:create" | "workspace:read")[];
|
|
62
|
+
permissionMode?: "explicit" | "legacy" | undefined;
|
|
63
|
+
principalKind?: "agent_attempt" | "api_key" | "configured_key" | "human_session" | "service" | undefined;
|
|
64
|
+
metadata?: Record<string, unknown> | undefined;
|
|
65
|
+
serviceInitiator?: {
|
|
66
|
+
kind: "service";
|
|
67
|
+
subjectId: string;
|
|
68
|
+
label?: string | undefined;
|
|
69
|
+
} | undefined;
|
|
70
|
+
serviceInitiatorContext?: Record<string, unknown> | undefined;
|
|
71
|
+
};
|
|
72
|
+
beforeOperation: (tx: Database) => Promise<void>;
|
|
73
|
+
preparedOnly: boolean;
|
|
74
|
+
}>;
|
|
75
|
+
export declare function assertAgentPreparedConnect(actor: {
|
|
76
|
+
preparedOnly: boolean;
|
|
77
|
+
}, attempt: Pick<ConnectAttempt, "providerId" | "mcpSetup">): void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AttemptToolCatalog, Permission } from "@opengeni/contracts";
|
|
2
|
+
export declare const PREPARED_MCP_PERMISSIONS: readonly ["connections:read", "connections:write", "capabilities:manage"];
|
|
3
|
+
/** Only the existing native Connect resource can receive setup permissions.
|
|
4
|
+
* This never expands SDK access to unrelated credential or settings routes. */
|
|
5
|
+
export declare function isPreparedMcpConnectPath(path: string, method: string): boolean;
|
|
6
|
+
/** The accepted tool must be present without an outstanding human-review gate.
|
|
7
|
+
* A session/settings edit can remove authority but cannot add it to this attempt. */
|
|
8
|
+
export declare function preparedMcpProxyPermissions(catalog: AttemptToolCatalog, livePermissions: readonly Permission[]): Permission[];
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Settings } from "@opengeni/config";
|
|
2
|
+
import { ANALYTICS_CONSENT_DECISIONS, ANALYTICS_CONSENT_PATH, type AnalyticsConsentDecision } from "@opengeni/contracts/analytics-consent-report";
|
|
3
|
+
import type { Observability } from "@opengeni/observability";
|
|
4
|
+
import type { Hono } from "hono";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
import { type KeyedAdmission } from "../http/keyed-admission.js";
|
|
7
|
+
export { ANALYTICS_CONSENT_DECISIONS, ANALYTICS_CONSENT_PATH, type AnalyticsConsentDecision };
|
|
8
|
+
export declare const AnalyticsConsentReport: z.ZodObject<{
|
|
9
|
+
decision: z.ZodEnum<{
|
|
10
|
+
denied: "denied";
|
|
11
|
+
granted: "granted";
|
|
12
|
+
}>;
|
|
13
|
+
}, z.core.$strict>;
|
|
14
|
+
export type AnalyticsConsentReport = z.infer<typeof AnalyticsConsentReport>;
|
|
15
|
+
export type AnalyticsConsentAdmission = KeyedAdmission<AnalyticsConsentDecision>;
|
|
16
|
+
export declare function parseAnalyticsConsentReport(body: string | null): AnalyticsConsentReport | null;
|
|
17
|
+
/**
|
|
18
|
+
* The exact beacon request. The app-wide request-body limit skips it because
|
|
19
|
+
* the route enforces its own small limit on the streamed body.
|
|
20
|
+
*/
|
|
21
|
+
export declare function isAnalyticsConsentReportRequest(method: string, pathname: string): boolean;
|
|
22
|
+
export declare function registerAnalyticsConsentRoutes(app: Hono, deps: {
|
|
23
|
+
observability: Observability;
|
|
24
|
+
settings: Pick<Settings, "corsAllowOriginRegex" | "publicBaseUrl" | "webBaseUrl">;
|
|
25
|
+
admission?: AnalyticsConsentAdmission;
|
|
26
|
+
}): void;
|
|
@@ -12,10 +12,21 @@ export declare function apiIntegrationRequiresConnection(authScheme: Record<stri
|
|
|
12
12
|
/** Shared native/embedded install validation. The caller must still authorize
|
|
13
13
|
* capabilities:manage and commit under its own live-authority boundary. */
|
|
14
14
|
export declare function validatedIntegrationInstallInput(grant: AccessGrant, workspaceId: string, payload: InstallApiIntegrationRequest, resolved: ResolvedApiIntegrationPreview): Parameters<typeof installApiIntegration>[1];
|
|
15
|
+
/**
|
|
16
|
+
* `allowedTools` names tools by their preview `id`, the stable identity the
|
|
17
|
+
* install persists. Reject anything else as a client error that lists the
|
|
18
|
+
* valid ids; a caller that sent a preview `operationKey` is told which id it
|
|
19
|
+
* maps to rather than having it silently reinterpreted.
|
|
20
|
+
*/
|
|
21
|
+
export declare function validatedAllowedToolIds(allowedTools: readonly string[], tools: readonly {
|
|
22
|
+
id: string;
|
|
23
|
+
operationKey: string;
|
|
24
|
+
}[]): string[];
|
|
15
25
|
export declare function registerApiIntegrationRoutes(app: Hono, deps: ApiRouteDeps, overrides?: ApiIntegrationRouteOverrides): void;
|
|
16
26
|
export declare function resolveForRoute(input: {
|
|
17
27
|
deps: ApiRouteDeps;
|
|
18
28
|
transport: ReturnType<typeof createPinnedIntegrationTransport>;
|
|
29
|
+
accountId: string;
|
|
19
30
|
workspaceId: string;
|
|
20
31
|
subjectId: string;
|
|
21
32
|
payload: PreviewApiIntegrationRequest | InstallApiIntegrationRequest;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Permission, type OrganizationApiKeyAccess } from "@opengeni/contracts";
|
|
1
|
+
import { CreateOrganizationApiKeyRequest, Permission, type AccessContext, type OrganizationApiKeyAccess } from "@opengeni/contracts";
|
|
2
2
|
import type { Hono } from "hono";
|
|
3
3
|
import type { ApiRouteDeps } from "@opengeni/core";
|
|
4
|
+
export { organizationApiKeyAccess } from "@opengeni/core";
|
|
4
5
|
/** Permissions minted onto a `full` organization API key. */
|
|
5
6
|
export declare const organizationApiKeyPermissions: Permission[];
|
|
6
7
|
/**
|
|
@@ -11,10 +12,9 @@ export declare const organizationApiKeyPermissions: Permission[];
|
|
|
11
12
|
*/
|
|
12
13
|
export declare const organizationReadApiKeyPermissions: Permission[];
|
|
13
14
|
export declare function organizationApiKeyPermissionsForAccess(access: OrganizationApiKeyAccess): Permission[];
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
* key that carries the `workspace:admin` wildcard administers the
|
|
17
|
-
* organization, any other organization key is read-only.
|
|
18
|
-
*/
|
|
19
|
-
export declare function organizationApiKeyAccess(permissions: Permission[]): OrganizationApiKeyAccess;
|
|
15
|
+
/** Existing callers retain their expiry; setup keys default to one day. */
|
|
16
|
+
export declare function organizationApiKeyExpiryDate(request: Pick<CreateOrganizationApiKeyRequest, "preset" | "expiresAt"> & Partial<Pick<CreateOrganizationApiKeyRequest, "access">>, now?: Date): Date | null;
|
|
20
17
|
export declare function registerApiKeyRoutes(app: Hono, deps: ApiRouteDeps): void;
|
|
18
|
+
/** Service account problems read as the person would expect. */
|
|
19
|
+
export declare function throwServiceAccountError(error: unknown): void;
|
|
20
|
+
export declare function requireOrganizationApiKeyControlPermission(context: AccessContext, organizationId: string): void;
|
|
@@ -7,6 +7,8 @@ export declare function acceptAutomationEvent(deps: ApiRouteDeps, source: Automa
|
|
|
7
7
|
deliveryKey: string;
|
|
8
8
|
requestDigest: string;
|
|
9
9
|
normalizedEvent: AutomationNormalizedEvent;
|
|
10
|
+
/** Canonical manual caller restriction, not normalized event metadata. */
|
|
11
|
+
credentialRestriction?: "developer_setup";
|
|
10
12
|
}): Promise<{
|
|
11
13
|
accepted: boolean;
|
|
12
14
|
duplicate: boolean;
|
package/dist/routes/billing.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type AccessContext, type Permission, type PromotionalCreditScope } from "@opengeni/contracts";
|
|
1
2
|
import type { Hono } from "hono";
|
|
2
3
|
import Stripe from "stripe";
|
|
3
4
|
import type { ApiRouteDeps } from "@opengeni/core";
|
|
@@ -9,13 +10,71 @@ export declare function stripeCheckoutSessionCreateParams(input: {
|
|
|
9
10
|
amountMicros: number;
|
|
10
11
|
creditsProductId?: string | undefined;
|
|
11
12
|
publicBaseUrl?: string | undefined;
|
|
13
|
+
webBaseUrl?: string | undefined;
|
|
12
14
|
successUrl?: string | undefined;
|
|
13
15
|
cancelUrl?: string | undefined;
|
|
14
16
|
idempotencyKey: string;
|
|
17
|
+
/** Apply this promotion code up front instead of letting Stripe ask for one. */
|
|
18
|
+
promotionCodeId?: string | undefined;
|
|
19
|
+
couponId?: string | undefined;
|
|
20
|
+
promotionalScope?: PromotionalCreditScope | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* The applied code covers the whole package, so the total is $0. Nothing is
|
|
23
|
+
* taxable, so Checkout skips tax and with it the billing address: the
|
|
24
|
+
* customer only confirms.
|
|
25
|
+
*/
|
|
26
|
+
fullyDiscounted?: boolean | undefined;
|
|
15
27
|
}): Stripe.Checkout.SessionCreateParams;
|
|
16
28
|
export declare function stripeBillingPortalSessionCreateParams(input: {
|
|
17
29
|
customerId: string;
|
|
18
30
|
publicBaseUrl?: string | undefined;
|
|
31
|
+
webBaseUrl?: string | undefined;
|
|
19
32
|
returnUrl?: string | undefined;
|
|
20
33
|
}): Stripe.BillingPortal.SessionCreateParams;
|
|
34
|
+
export type StripeCheckoutCreditDecision = {
|
|
35
|
+
action: "grant";
|
|
36
|
+
credit: CheckoutCreditMetadata;
|
|
37
|
+
} | {
|
|
38
|
+
action: "ignore";
|
|
39
|
+
reason: "foreign_checkout" | "not_payment_mode" | "payment_not_paid";
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Decides whether a Checkout Session webhook grants Opengeni credits.
|
|
43
|
+
*
|
|
44
|
+
* Sessions created outside Opengeni on the same Stripe account carry no
|
|
45
|
+
* `opengeni_` metadata and are acknowledged without effect. An Opengeni
|
|
46
|
+
* session with malformed credit metadata still throws so the failure stays
|
|
47
|
+
* visible. Credits are granted once Stripe reports the payment `paid` or a
|
|
48
|
+
* completed checkout fully covered by a coupon:
|
|
49
|
+
* on `checkout.session.completed` for immediate methods, or on
|
|
50
|
+
* `checkout.session.async_payment_succeeded` for delayed methods, whose
|
|
51
|
+
* completion event arrives `unpaid`. Both events carry the same session
|
|
52
|
+
* metadata, so the ledger idempotency key grants at most once.
|
|
53
|
+
*/
|
|
54
|
+
export declare function stripeCheckoutCreditDecision(session: Stripe.Checkout.Session): StripeCheckoutCreditDecision;
|
|
55
|
+
/**
|
|
56
|
+
* One paid credit purchase (a `credit_topup` ledger row from a Stripe
|
|
57
|
+
* checkout). Fully discounted coupon checkouts are grants, not purchases, and
|
|
58
|
+
* are counted by `opengeni_credit_granted_micros_total{grant_class="coupon"}`.
|
|
59
|
+
* Labels are the closed `mode` (live | test) only; never an account or
|
|
60
|
+
* customer identifier.
|
|
61
|
+
*/
|
|
62
|
+
export declare function recordCreditPurchaseMetrics(observability: ApiRouteDeps["observability"], input: {
|
|
63
|
+
livemode: boolean;
|
|
64
|
+
creditMicros: number;
|
|
65
|
+
currency: string | null | undefined;
|
|
66
|
+
amountTotal: number | null | undefined;
|
|
67
|
+
}): void;
|
|
68
|
+
export type CheckoutCreditMetadata = {
|
|
69
|
+
accountId: string;
|
|
70
|
+
amountMicros: number;
|
|
71
|
+
idempotencyKey: string;
|
|
72
|
+
amountUsd?: string;
|
|
73
|
+
packageId?: string;
|
|
74
|
+
};
|
|
21
75
|
export declare function stripeCustomerProvider(input: ApiRouteDeps | Stripe.Event): "stripe:live" | "stripe:test";
|
|
76
|
+
/** Billing routes do not traverse the workspace actor middleware. Always bind
|
|
77
|
+
* these reads explicitly; only a revalidated live attempt may supply a human
|
|
78
|
+
* initiator. Neither query parameters nor serviceInitiator claims are proof. */
|
|
79
|
+
export declare function withBillingUsageActor<T>(deps: ApiRouteDeps, context: AccessContext, accountId: string, read: () => Promise<T>): Promise<T>;
|
|
80
|
+
export declare function requireSelectedAccount(context: AccessContext, requested: string | undefined, permission: Permission): string;
|
|
@@ -1,12 +1,75 @@
|
|
|
1
|
-
import { InteractionActor, type AccessGrant, type FileAsset } from "@opengeni/contracts";
|
|
1
|
+
import { InteractionActor, type AccessGrant, type FileAsset, type CreateBrowserSessionRequest as CreateBrowserSessionRequestValue, type InteractionPlacement } from "@opengeni/contracts";
|
|
2
2
|
import { type ApiRouteDeps, type ResolvedSessionAuthorization } from "@opengeni/core";
|
|
3
|
+
import { type BrowserControlScreenshotOptions, type BrowserControlFrame } from "@opengeni/runtime/sandbox";
|
|
3
4
|
import type { Hono } from "hono";
|
|
4
|
-
|
|
5
|
+
import { type InteractionSecretsPort } from "../interaction-secrets.js";
|
|
6
|
+
export declare function registerBrowserSessionRoutes(app: Hono, deps: ApiRouteDeps, options?: {
|
|
7
|
+
interactionSecrets?: InteractionSecretsPort | null;
|
|
8
|
+
}): void;
|
|
9
|
+
export declare function browserCreateInput(grant: AccessGrant, workspaceId: string, request: CreateBrowserSessionRequestValue, placement: InteractionPlacement): {
|
|
10
|
+
accountId: string;
|
|
11
|
+
workspaceId: string;
|
|
12
|
+
operationId: string;
|
|
13
|
+
associatedSessionId: string;
|
|
14
|
+
actorSubjectId: string;
|
|
15
|
+
name: string;
|
|
16
|
+
initialUrl: string | null;
|
|
17
|
+
placement: {
|
|
18
|
+
kind: "sandbox_group";
|
|
19
|
+
sandboxGroupId: string;
|
|
20
|
+
} | {
|
|
21
|
+
kind: "connected_machine";
|
|
22
|
+
sandboxId: string;
|
|
23
|
+
} | {
|
|
24
|
+
kind: "attached_device";
|
|
25
|
+
deviceId: string;
|
|
26
|
+
} | {
|
|
27
|
+
kind: "external_provider";
|
|
28
|
+
providerId: string;
|
|
29
|
+
placementId: string;
|
|
30
|
+
};
|
|
31
|
+
driverId: string;
|
|
32
|
+
engine: "chrome" | "chromium" | "external" | "lightpanda";
|
|
33
|
+
headless: boolean;
|
|
34
|
+
identityId: string | null;
|
|
35
|
+
baseRevisionId: string | null;
|
|
36
|
+
networkRouteId: string | null;
|
|
37
|
+
linkedComputerSessionId: string | null;
|
|
38
|
+
resolveDefaultRevision: boolean;
|
|
39
|
+
capabilities?: {
|
|
40
|
+
semanticObservation: boolean;
|
|
41
|
+
screenshots: boolean;
|
|
42
|
+
liveFrames: boolean;
|
|
43
|
+
humanInput: boolean;
|
|
44
|
+
tabs: boolean;
|
|
45
|
+
downloads: boolean;
|
|
46
|
+
uploads: boolean;
|
|
47
|
+
clipboard: boolean;
|
|
48
|
+
permissions: boolean;
|
|
49
|
+
diagnostics: boolean;
|
|
50
|
+
rawCdp: boolean;
|
|
51
|
+
linkedComputer: boolean;
|
|
52
|
+
privateCheckpoint: boolean;
|
|
53
|
+
identityPublication: boolean;
|
|
54
|
+
parallelTargets: boolean;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
5
57
|
export declare function browserNeedsStandaloneDisplayStack(input: {
|
|
6
58
|
headless: boolean;
|
|
7
59
|
linkedComputer: boolean;
|
|
8
60
|
nativeBrowserControl: boolean;
|
|
9
61
|
}): boolean;
|
|
62
|
+
export declare function parseBrowserScreenshotOptions(query: URLSearchParams): BrowserControlScreenshotOptions;
|
|
63
|
+
/** Preserve the controller's definite tab diagnosis (a tab that stopped
|
|
64
|
+
* answering, or one whose renderer crashed) through the public API with its
|
|
65
|
+
* own code and guidance. Any other controller failure keeps the ordinary
|
|
66
|
+
* envelope, which never publishes driver diagnostics. This only handles typed
|
|
67
|
+
* read/pre-dispatch failures. Dispatched action uncertainty stays in the
|
|
68
|
+
* action receipt, never relabeled as a safe retry. */
|
|
69
|
+
export declare function browserTabDiagnosisError(error: unknown): unknown;
|
|
70
|
+
/** Keep a definite read timeout useful without publishing driver diagnostics. */
|
|
71
|
+
export declare function browserScreenshotError(error: unknown): unknown;
|
|
72
|
+
export declare function browserScreenshotResponse(frame: Pick<BrowserControlFrame, "data" | "mediaType" | "metadataHeader">): Response;
|
|
10
73
|
export declare function interactionActorForGrant(grant: AccessGrant): ReturnType<typeof InteractionActor.parse>;
|
|
11
74
|
/** Resolve Drive authority from the same immutable session authorization that
|
|
12
75
|
* admitted the browser action. Agent-attempt subjects are technical worker
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ApiRouteDeps, type ModelCallService } from "@opengeni/core";
|
|
2
|
+
import type { Hono } from "hono";
|
|
3
|
+
/**
|
|
4
|
+
* OpenAI-compatible stateless model calls. A stock OpenAI SDK works with its
|
|
5
|
+
* base URL set to `/v1/workspaces/{workspaceId}` and an Opengeni API key.
|
|
6
|
+
* Running one costs what the same model call costs inside a session, and
|
|
7
|
+
* requires the same `sessions:create` authority.
|
|
8
|
+
*/
|
|
9
|
+
export declare function registerChatCompletionRoutes(app: Hono, deps: ApiRouteDeps & {
|
|
10
|
+
modelCalls: ModelCallService | null;
|
|
11
|
+
}): void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Context } from "hono";
|
|
2
|
+
import type { ClaudeSubscriptionUsage } from "@opengeni/contracts";
|
|
3
|
+
import type { ApiRouteDeps } from "@opengeni/core";
|
|
4
|
+
/** An authenticated usage caller whose organization serves Claude from the core. */
|
|
5
|
+
export type CoreClaudeUsageCaller = {
|
|
6
|
+
core: true;
|
|
7
|
+
accountId: string;
|
|
8
|
+
/** Null on the organization path. */
|
|
9
|
+
workspaceId: string | null;
|
|
10
|
+
subjectId: string;
|
|
11
|
+
/** The route's account id: a canonical connection id or a cutover alias. */
|
|
12
|
+
accountIdParam: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Require Claude's core route for an authenticated usage caller. Missing or
|
|
16
|
+
* disabled receipts fail closed with the typed 503 the Codex routes use.
|
|
17
|
+
*/
|
|
18
|
+
export declare function claudeUsageRoute(deps: ApiRouteDeps, accountId: string, workspaceId: string | null): Promise<"core">;
|
|
19
|
+
/** GET or POST refresh of one Claude account's usage on the core. */
|
|
20
|
+
export declare function coreClaudeUsage(c: Context, deps: ApiRouteDeps, caller: CoreClaudeUsageCaller, mutation: boolean): Promise<ClaudeSubscriptionUsage>;
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import type { Settings } from "@opengeni/config";
|
|
2
|
+
import { CLIENT_ERROR_KINDS, CLIENT_ERROR_REPORT_MAX_BYTES, CLIENT_ERRORS_PATH, type ClientErrorDetail, type ClientErrorKind } from "@opengeni/contracts/client-error-report";
|
|
3
|
+
import type { Observability } from "@opengeni/observability";
|
|
4
|
+
import type { Hono } from "hono";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
import { type KeyedAdmission } from "../http/keyed-admission.js";
|
|
7
|
+
export { CLIENT_ERROR_KINDS, CLIENT_ERROR_REPORT_MAX_BYTES, CLIENT_ERRORS_PATH, type ClientErrorKind, };
|
|
8
|
+
export declare const ClientErrorReport: z.ZodPipe<z.ZodObject<{
|
|
9
|
+
kind: z.ZodEnum<{
|
|
10
|
+
chunk_load: "chunk_load";
|
|
11
|
+
route_error: "route_error";
|
|
12
|
+
unhandled_rejection: "unhandled_rejection";
|
|
13
|
+
window_error: "window_error";
|
|
14
|
+
}>;
|
|
15
|
+
route: z.ZodString;
|
|
16
|
+
revision: z.ZodString;
|
|
17
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
18
|
+
name: z.ZodOptional<z.ZodString>;
|
|
19
|
+
message: z.ZodOptional<z.ZodString>;
|
|
20
|
+
stack: z.ZodOptional<z.ZodString>;
|
|
21
|
+
componentStack: z.ZodOptional<z.ZodString>;
|
|
22
|
+
}, z.core.$strict>>;
|
|
23
|
+
}, z.core.$strict>, z.ZodTransform<{
|
|
24
|
+
kind: "chunk_load" | "route_error" | "unhandled_rejection" | "window_error";
|
|
25
|
+
route: string;
|
|
26
|
+
revision: string;
|
|
27
|
+
} | {
|
|
28
|
+
kind: "chunk_load" | "route_error" | "unhandled_rejection" | "window_error";
|
|
29
|
+
route: string;
|
|
30
|
+
revision: string;
|
|
31
|
+
error: Partial<Record<"componentStack" | "message" | "name" | "stack", string>>;
|
|
32
|
+
}, {
|
|
33
|
+
kind: "chunk_load" | "route_error" | "unhandled_rejection" | "window_error";
|
|
34
|
+
route: string;
|
|
35
|
+
revision: string;
|
|
36
|
+
error?: {
|
|
37
|
+
name?: string | undefined;
|
|
38
|
+
message?: string | undefined;
|
|
39
|
+
stack?: string | undefined;
|
|
40
|
+
componentStack?: string | undefined;
|
|
41
|
+
} | undefined;
|
|
42
|
+
}>>;
|
|
43
|
+
export type ClientErrorReport = {
|
|
44
|
+
kind: ClientErrorKind;
|
|
45
|
+
route: string;
|
|
46
|
+
revision: string;
|
|
47
|
+
error?: ClientErrorDetail;
|
|
48
|
+
};
|
|
49
|
+
export declare const ClientSignalReport: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
50
|
+
signal: z.ZodLiteral<"request_failure">;
|
|
51
|
+
action: z.ZodEnum<{
|
|
52
|
+
checkout_start: "checkout_start";
|
|
53
|
+
composer_submit: "composer_submit";
|
|
54
|
+
connect_integration: "connect_integration";
|
|
55
|
+
connect_model: "connect_model";
|
|
56
|
+
create_session: "create_session";
|
|
57
|
+
retry_turn: "retry_turn";
|
|
58
|
+
send_message: "send_message";
|
|
59
|
+
steer_message: "steer_message";
|
|
60
|
+
}>;
|
|
61
|
+
reason: z.ZodEnum<{
|
|
62
|
+
network: "network";
|
|
63
|
+
offline: "offline";
|
|
64
|
+
timeout: "timeout";
|
|
65
|
+
}>;
|
|
66
|
+
route: z.ZodString;
|
|
67
|
+
revision: z.ZodString;
|
|
68
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
69
|
+
signal: z.ZodLiteral<"stream">;
|
|
70
|
+
stream: z.ZodEnum<{
|
|
71
|
+
session: "session";
|
|
72
|
+
workspace: "workspace";
|
|
73
|
+
}>;
|
|
74
|
+
event: z.ZodEnum<{
|
|
75
|
+
long_disconnect: "long_disconnect";
|
|
76
|
+
reconnect: "reconnect";
|
|
77
|
+
reconnect_exhausted: "reconnect_exhausted";
|
|
78
|
+
}>;
|
|
79
|
+
route: z.ZodString;
|
|
80
|
+
revision: z.ZodString;
|
|
81
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
82
|
+
signal: z.ZodLiteral<"web_vital">;
|
|
83
|
+
metric: z.ZodEnum<{
|
|
84
|
+
cls: "cls";
|
|
85
|
+
inp: "inp";
|
|
86
|
+
lcp: "lcp";
|
|
87
|
+
ttfb: "ttfb";
|
|
88
|
+
}>;
|
|
89
|
+
page: z.ZodEnum<{
|
|
90
|
+
"account-auth": "account-auth";
|
|
91
|
+
agents: "agents";
|
|
92
|
+
artifacts: "artifacts";
|
|
93
|
+
capabilities: "capabilities";
|
|
94
|
+
"checkout-return": "checkout-return";
|
|
95
|
+
"connect-agent": "connect-agent";
|
|
96
|
+
device: "device";
|
|
97
|
+
documents: "documents";
|
|
98
|
+
environments: "environments";
|
|
99
|
+
files: "files";
|
|
100
|
+
home: "home";
|
|
101
|
+
"identity-link": "identity-link";
|
|
102
|
+
inbox: "inbox";
|
|
103
|
+
insights: "insights";
|
|
104
|
+
"integration-return": "integration-return";
|
|
105
|
+
machines: "machines";
|
|
106
|
+
memory: "memory";
|
|
107
|
+
"native-sign-in": "native-sign-in";
|
|
108
|
+
organization: "organization";
|
|
109
|
+
other: "other";
|
|
110
|
+
"personal-security": "personal-security";
|
|
111
|
+
playground: "playground";
|
|
112
|
+
plugins: "plugins";
|
|
113
|
+
priority: "priority";
|
|
114
|
+
"read-only-chats": "read-only-chats";
|
|
115
|
+
"reset-password": "reset-password";
|
|
116
|
+
rigs: "rigs";
|
|
117
|
+
schedules: "schedules";
|
|
118
|
+
secrets: "secrets";
|
|
119
|
+
"session-link": "session-link";
|
|
120
|
+
sessions: "sessions";
|
|
121
|
+
settings: "settings";
|
|
122
|
+
"setup-account": "setup-account";
|
|
123
|
+
"site-auth": "site-auth";
|
|
124
|
+
state: "state";
|
|
125
|
+
"variable-sets": "variable-sets";
|
|
126
|
+
}>;
|
|
127
|
+
value: z.ZodNumber;
|
|
128
|
+
revision: z.ZodString;
|
|
129
|
+
}, z.core.$strict>], "signal">;
|
|
130
|
+
export type ClientSignalReport = z.infer<typeof ClientSignalReport>;
|
|
131
|
+
export type ClientBeaconReport = ClientErrorReport | ClientSignalReport;
|
|
132
|
+
/**
|
|
133
|
+
* Bucket bounds cover the published good/poor thresholds of every metric:
|
|
134
|
+
* CLS 0.1/0.25, INP 0.2/0.5 s, TTFB 0.8/1.8 s, LCP 2.5/4 s.
|
|
135
|
+
*/
|
|
136
|
+
export declare const CLIENT_WEB_VITAL_BUCKETS: number[];
|
|
137
|
+
export type ClientErrorAdmission = KeyedAdmission<ClientErrorKind>;
|
|
138
|
+
/** Keyed by `<signal>:<closed dimension>`, a finite set of buckets. */
|
|
139
|
+
export type ClientSignalAdmission = KeyedAdmission<string>;
|
|
140
|
+
/** Same bounds as the error kinds: one bucket per closed signal key. */
|
|
141
|
+
export declare function createClientSignalAdmission(options?: {
|
|
142
|
+
capacity?: number;
|
|
143
|
+
refillPerSecond?: number;
|
|
144
|
+
now?: () => number;
|
|
145
|
+
}): ClientSignalAdmission;
|
|
146
|
+
/**
|
|
147
|
+
* Web vitals arrive from every page load rather than only on failure, so they
|
|
148
|
+
* get a much larger dedicated bucket per metric (burst 1,200, then 20 a
|
|
149
|
+
* second per process). The browser samples vitals before sending.
|
|
150
|
+
*/
|
|
151
|
+
export declare function createClientWebVitalAdmission(options?: {
|
|
152
|
+
capacity?: number;
|
|
153
|
+
refillPerSecond?: number;
|
|
154
|
+
now?: () => number;
|
|
155
|
+
}): ClientSignalAdmission;
|
|
156
|
+
/**
|
|
157
|
+
* One token bucket per closed kind bounds counter inflation and log volume
|
|
158
|
+
* from any caller, including an anonymous one, without per-client state.
|
|
159
|
+
*/
|
|
160
|
+
export declare function createClientErrorAdmission(options?: {
|
|
161
|
+
capacity?: number;
|
|
162
|
+
refillPerSecond?: number;
|
|
163
|
+
now?: () => number;
|
|
164
|
+
}): ClientErrorAdmission;
|
|
165
|
+
export declare function parseClientErrorReport(body: string | null): ClientErrorReport | null;
|
|
166
|
+
/** Parse any accepted beacon body: an error report or a closed signal report. */
|
|
167
|
+
export declare function parseClientBeaconReport(body: string | null): ClientBeaconReport | null;
|
|
168
|
+
export declare function isClientSignalReport(report: ClientBeaconReport): report is ClientSignalReport;
|
|
169
|
+
/**
|
|
170
|
+
* The exact beacon request. The app-wide request-body limit skips it because
|
|
171
|
+
* the route enforces its own small limit on the streamed body; the generic
|
|
172
|
+
* ceiling would otherwise buffer a chunked body of many megabytes on an
|
|
173
|
+
* anonymous route before this one could refuse it.
|
|
174
|
+
*/
|
|
175
|
+
export declare function isClientErrorReportRequest(method: string, pathname: string): boolean;
|
|
176
|
+
export declare function registerClientErrorRoutes(app: Hono, deps: {
|
|
177
|
+
observability: Observability;
|
|
178
|
+
settings: Pick<Settings, "corsAllowOriginRegex" | "publicBaseUrl" | "webBaseUrl">;
|
|
179
|
+
admission?: ClientErrorAdmission;
|
|
180
|
+
signalAdmission?: ClientSignalAdmission;
|
|
181
|
+
webVitalAdmission?: ClientSignalAdmission;
|
|
182
|
+
}): void;
|