@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
|
@@ -13,10 +13,9 @@ import { z } from "zod";
|
|
|
13
13
|
*
|
|
14
14
|
* Profiles come from two layers:
|
|
15
15
|
*
|
|
16
|
-
* 1. Built-in profiles
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* the fences never depend on catalog import state.
|
|
16
|
+
* 1. Built-in profiles pin known authorization servers and protocol quirks.
|
|
17
|
+
* Ownership defaults guide setup; users may choose personal or workspace.
|
|
18
|
+
* Authorization-server pins never depend on catalog import state.
|
|
20
19
|
* 2. A validated `oauthProfile` object on a global catalog row (curated
|
|
21
20
|
* overlay -> importer -> `capability_catalog_items.metadata`). A catalog
|
|
22
21
|
* profile applies only when no built-in matches, and it can only narrow the
|
|
@@ -76,10 +75,13 @@ export type OAuthProviderProfile = {
|
|
|
76
75
|
key: DeploymentManagedClientKey;
|
|
77
76
|
message: string;
|
|
78
77
|
};
|
|
79
|
-
/**
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
|
|
78
|
+
/** Suggested ownership; explicit choices remain subject to requiredOwnership. */
|
|
79
|
+
defaultOwnership?: ConnectionOwnership;
|
|
80
|
+
/** Built-in-only ownership restriction, including old reconnect/callback state. */
|
|
81
|
+
requiredOwnership?: {
|
|
82
|
+
ownership: ConnectionOwnership;
|
|
83
|
+
message: string;
|
|
84
|
+
};
|
|
83
85
|
/** Bind reconnect/dedupe to the exact mcpUrl, not just the provider domain. */
|
|
84
86
|
exactMcpBinding: boolean;
|
|
85
87
|
/** How an existing connection is chosen for reconnect coalescing. */
|
|
@@ -106,6 +108,35 @@ export type OAuthProviderProfile = {
|
|
|
106
108
|
extraAuthorizeParams?: Readonly<Record<string, string>>;
|
|
107
109
|
/** Exact scope override; the caller can never widen past it. */
|
|
108
110
|
requestedScopes?: readonly string[];
|
|
111
|
+
/** Reviewed local bridge grant normalization and token verification. Catalog profiles cannot supply code. */
|
|
112
|
+
normalizeGrantedScopes?: (scopes: readonly string[] | string) => string[];
|
|
113
|
+
reportedScopesRequired?: boolean;
|
|
114
|
+
/** Built-in durable API bridges may refuse a new grant without offline access. */
|
|
115
|
+
freshRefreshTokenRequired?: boolean;
|
|
116
|
+
/** The reviewed bridge exposes one tool contract, not a partial-scope variant. */
|
|
117
|
+
fullRequestedScopesRequired?: boolean;
|
|
118
|
+
/** Built-in web OAuth clients must use a configured secret and provider-supported authentication. */
|
|
119
|
+
confidentialClientRequired?: boolean;
|
|
120
|
+
/** Built-in API bridge discovery; catalog metadata cannot redirect this seam. */
|
|
121
|
+
providerOAuthDiscovery?: {
|
|
122
|
+
issuer: string;
|
|
123
|
+
metadataUrl: string;
|
|
124
|
+
};
|
|
125
|
+
localToolVerification?: {
|
|
126
|
+
url: string;
|
|
127
|
+
method?: "GET" | "POST";
|
|
128
|
+
/** An API bridge may require a verified account before accepting a grant. */
|
|
129
|
+
required?: boolean;
|
|
130
|
+
/** Distinguish a rejected OAuth grant from a temporary verification failure. */
|
|
131
|
+
isRejectedGrant?: (payload: Record<string, unknown>) => boolean;
|
|
132
|
+
validateIdentity: (payload: Record<string, unknown>) => Record<string, string>;
|
|
133
|
+
toolsForScopes: (scopes: readonly string[], deployment: {
|
|
134
|
+
gmailWatchTopicName?: string | undefined;
|
|
135
|
+
}) => Array<{
|
|
136
|
+
name: string;
|
|
137
|
+
description?: string;
|
|
138
|
+
}>;
|
|
139
|
+
};
|
|
109
140
|
};
|
|
110
141
|
export declare const DEFAULT_OAUTH_PROFILE: OAuthProviderProfile;
|
|
111
142
|
/** Exact built-in profile by its stable key; throws on an unknown key. */
|
|
@@ -133,8 +164,6 @@ export declare function builtInOAuthProfileFor(input: {
|
|
|
133
164
|
}): OAuthProviderProfile | null;
|
|
134
165
|
/** Ownership an omitted request defaults to under a profile. */
|
|
135
166
|
export declare function defaultOwnershipFor(profile: OAuthProviderProfile): ConnectionOwnership;
|
|
136
|
-
/** Rejects an ownership outside the profile's allowed set with its exact message. */
|
|
137
|
-
export declare function assertOwnershipAllowed(profile: OAuthProviderProfile, ownership: ConnectionOwnership): void;
|
|
138
167
|
/** Enforces a profile's authorization-server origin pins with its exact message. */
|
|
139
168
|
export declare function assertAuthorizationServerPins(as: PinnableAuthorizationServer, pins: Pick<AuthorizationServerPins, "issuerOrigins" | "authorizationEndpointOrigins" | "tokenEndpointOrigins" | "message">): void;
|
|
140
169
|
/**
|
|
@@ -166,10 +195,10 @@ export declare const catalogOAuthProfileSchema: z.ZodObject<{
|
|
|
166
195
|
pinnedIssuerOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
167
196
|
pinnedEndpointOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
168
197
|
sendResourceParameter: z.ZodOptional<z.ZodBoolean>;
|
|
169
|
-
|
|
198
|
+
defaultOwnership: z.ZodOptional<z.ZodEnum<{
|
|
170
199
|
personal: "personal";
|
|
171
200
|
workspace: "workspace";
|
|
172
|
-
}
|
|
201
|
+
}>>;
|
|
173
202
|
requestedScopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
174
203
|
extraAuthorizeParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
175
204
|
}, z.core.$strict>;
|
|
@@ -190,6 +219,6 @@ export declare function catalogMcpUrlKey(value: string): string;
|
|
|
190
219
|
*
|
|
191
220
|
* A present-but-invalid profile fails closed with a 422: the row's operator
|
|
192
221
|
* declared constraints, and silently degrading to the default profile would
|
|
193
|
-
* drop an
|
|
222
|
+
* drop an origin pin on a JSON typo.
|
|
194
223
|
*/
|
|
195
224
|
export declare function oauthProfileFromCatalog(mcpUrl: string, raw: unknown): OAuthProviderProfile;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { OnePasswordVaultProviderFactory } from "@opengeni/core";
|
|
2
|
+
/**
|
|
3
|
+
* Loads the 1Password adapter (and its ~14 MB WASM SDK) only when a request
|
|
4
|
+
* first touches 1Password. The only allowed import edge, besides apps/worker,
|
|
5
|
+
* is this dynamic one (OP-5, packages/vaults-onepassword/test/import-guard.test.ts).
|
|
6
|
+
*/
|
|
7
|
+
export declare const loadOnePasswordVaultProvider: OnePasswordVaultProviderFactory;
|
|
8
|
+
/** The offline token check and connection-scoped provider used by the install route. */
|
|
9
|
+
export declare function loadOnePasswordModule(): Promise<typeof import("@opengeni/vaults-onepassword")>;
|
|
@@ -4,6 +4,7 @@ import { type Database } from "@opengeni/db";
|
|
|
4
4
|
import { type FetchLike } from "@opengeni/network";
|
|
5
5
|
import { HTTPException } from "hono/http-exception";
|
|
6
6
|
export declare const SLACK_REACTION_IMAGE_MAX_BYTES: number;
|
|
7
|
+
export declare const SLACK_MCP_IMAGE_MAX_BYTES: number;
|
|
7
8
|
declare const SLACK_REACTION_CONTEXT_CHECKPOINT_VERSION = 1;
|
|
8
9
|
type SlackPayload = Record<string, unknown> & {
|
|
9
10
|
ok?: unknown;
|
|
@@ -137,7 +138,7 @@ export type SlackHomeBlock = {
|
|
|
137
138
|
} | {
|
|
138
139
|
type: "divider";
|
|
139
140
|
};
|
|
140
|
-
type SlackBotOperation = "channels.list" | "search.context" | "channel_history.read" | "thread_replies.read" | "users.list" | "files.list" | "file.info" | "file.content.read" | "home.publish" | "message.post" | "message.update" | "message.delete";
|
|
141
|
+
type SlackBotOperation = "channels.list" | "search.context" | "channel_history.read" | "thread_replies.read" | "users.list" | "files.list" | "file.info" | "file.content.read" | "file.upload" | "home.publish" | "message.post" | "message.update" | "message.delete";
|
|
141
142
|
type SlackBotContext = {
|
|
142
143
|
accountId: string;
|
|
143
144
|
workspaceId: string;
|
|
@@ -189,6 +190,25 @@ export declare class SlackBotProviderError extends Error {
|
|
|
189
190
|
readonly retryAfterMs: number | null;
|
|
190
191
|
constructor(code: string, retryAfterMs?: number | null);
|
|
191
192
|
}
|
|
193
|
+
export declare function slackHistoryRateLimited(error: unknown): error is SlackBotProviderError;
|
|
194
|
+
/**
|
|
195
|
+
* The post or update ledger already binds this operation id to different
|
|
196
|
+
* request bytes. Raised from the durable claim, before any Slack write, so a
|
|
197
|
+
* caller that knows an earlier release wrote other bytes for the same operation
|
|
198
|
+
* may retry once with those bytes.
|
|
199
|
+
*/
|
|
200
|
+
export declare class SlackBotOperationConflictError extends Error {
|
|
201
|
+
constructor(kind: "post" | "update" | "delete");
|
|
202
|
+
}
|
|
203
|
+
/** Only Slack's one-time HTTPS upload endpoint may receive retained bytes. */
|
|
204
|
+
export declare function slackFileUploadUrl(value: string): URL;
|
|
205
|
+
/** A channel listing alone is not proof of delivery to the requested thread. */
|
|
206
|
+
export declare function slackFileSharedToThread(value: unknown, input: {
|
|
207
|
+
fileId: string;
|
|
208
|
+
channelId: string;
|
|
209
|
+
threadTimestamp: string;
|
|
210
|
+
botUserId: string;
|
|
211
|
+
}): boolean;
|
|
192
212
|
export declare function authorizeSlackSharedImageRead(channel: {
|
|
193
213
|
isArchived: boolean;
|
|
194
214
|
isShared: boolean;
|
|
@@ -221,7 +241,143 @@ export declare function resolveSlackBotConnectionForTool(input: {
|
|
|
221
241
|
connection: ConnectionMetadata;
|
|
222
242
|
metadata: OpenGeniSlackBotConnectionMetadata;
|
|
223
243
|
context: SlackBotContext;
|
|
244
|
+
sharingGeneration?: number;
|
|
245
|
+
authorizeOrganizationAccess?: SlackProviderAuthorization;
|
|
246
|
+
}>;
|
|
247
|
+
/**
|
|
248
|
+
* The one destination a scheduled run may post to as the Opengeni bot: the
|
|
249
|
+
* channel a person chose on the task, through the bot connection frozen on the
|
|
250
|
+
* run's session. The agent never supplies a channel. Every call re-reads the
|
|
251
|
+
* task, so a person clearing or changing the channel takes effect at once.
|
|
252
|
+
*/
|
|
253
|
+
export declare function resolveScheduledSlackBotPostTarget(input: {
|
|
254
|
+
db: Database;
|
|
255
|
+
grant: AccessGrant;
|
|
256
|
+
sessionId: string | null;
|
|
257
|
+
}): Promise<Awaited<ReturnType<typeof resolveSlackBotConnectionForTool>> & {
|
|
258
|
+
scheduledTaskId: string;
|
|
259
|
+
channelId: string;
|
|
260
|
+
}>;
|
|
261
|
+
/**
|
|
262
|
+
* Save one message for the task's channel without sending it. The returned id
|
|
263
|
+
* is server-owned and becomes the Slack post operation id, so retrying the
|
|
264
|
+
* send can never post the same message twice.
|
|
265
|
+
*/
|
|
266
|
+
export declare function prepareScheduledSlackBotPost(input: {
|
|
267
|
+
db: Database;
|
|
268
|
+
grant: AccessGrant;
|
|
269
|
+
sessionId: string | null;
|
|
270
|
+
text: string;
|
|
271
|
+
threadTimestamp?: string | undefined;
|
|
272
|
+
}): Promise<{
|
|
273
|
+
messageId: string;
|
|
274
|
+
identity: "workspace_bot";
|
|
275
|
+
channelId: string;
|
|
276
|
+
threadTimestamp: string | null;
|
|
277
|
+
text: string;
|
|
278
|
+
sent: boolean;
|
|
279
|
+
}>;
|
|
280
|
+
/** Ordinary chats choose an explicit channel; scheduled roots retain their
|
|
281
|
+
* person-chosen destination and cannot enter this path through a child. */
|
|
282
|
+
export declare function prepareSlackBotPost(input: {
|
|
283
|
+
db: Database;
|
|
284
|
+
grant: AccessGrant;
|
|
285
|
+
sessionId: string | null;
|
|
286
|
+
text: string;
|
|
287
|
+
channelId?: string;
|
|
288
|
+
connectionId?: string;
|
|
289
|
+
threadTimestamp?: string;
|
|
290
|
+
}): Promise<{
|
|
291
|
+
messageId: string;
|
|
292
|
+
identity: "workspace_bot";
|
|
293
|
+
channelId: string;
|
|
294
|
+
threadTimestamp: string | null;
|
|
295
|
+
text: string;
|
|
296
|
+
sent: boolean;
|
|
297
|
+
} | {
|
|
298
|
+
messageId: string;
|
|
299
|
+
identity: "organization_bot";
|
|
300
|
+
channelId: string;
|
|
301
|
+
threadTimestamp: string | null;
|
|
302
|
+
text: string;
|
|
303
|
+
sent: boolean;
|
|
224
304
|
}>;
|
|
305
|
+
/** The saved server-owned identity, destination, text and sharing generation
|
|
306
|
+
* are immutable. Neither a reconnect nor a revoked/re-enabled share redirects it. */
|
|
307
|
+
export declare function sendSlackBotPost(input: {
|
|
308
|
+
db: Database;
|
|
309
|
+
settings: Settings;
|
|
310
|
+
grant: AccessGrant;
|
|
311
|
+
sessionId: string | null;
|
|
312
|
+
messageId: string;
|
|
313
|
+
slackFetch?: typeof fetch;
|
|
314
|
+
authorizeProviderRequest?: SlackProviderAuthorization;
|
|
315
|
+
}): Promise<{
|
|
316
|
+
channelId: string | null;
|
|
317
|
+
timestamp: string | null;
|
|
318
|
+
threadTimestamp: string | null;
|
|
319
|
+
alreadySent: boolean;
|
|
320
|
+
receipt: {
|
|
321
|
+
credentialRole: "opengeni_slack_bot";
|
|
322
|
+
credentialLabel: "OpenGeni Slack bot";
|
|
323
|
+
connectionId: string;
|
|
324
|
+
operation: string;
|
|
325
|
+
operationId: string;
|
|
326
|
+
clientMessageId: string;
|
|
327
|
+
};
|
|
328
|
+
} | {
|
|
329
|
+
channelId: string;
|
|
330
|
+
timestamp: string;
|
|
331
|
+
threadTimestamp: string | null;
|
|
332
|
+
receipt: SlackBotReceipt;
|
|
333
|
+
}>;
|
|
334
|
+
/**
|
|
335
|
+
* Send a message this run prepared, exactly as saved. The destination must
|
|
336
|
+
* still be the task's channel and the bot connection unchanged; otherwise the
|
|
337
|
+
* send is refused rather than redirected.
|
|
338
|
+
*/
|
|
339
|
+
export declare function sendScheduledSlackBotPost(input: {
|
|
340
|
+
db: Database;
|
|
341
|
+
settings: Settings;
|
|
342
|
+
grant: AccessGrant;
|
|
343
|
+
sessionId: string | null;
|
|
344
|
+
messageId: string;
|
|
345
|
+
slackFetch?: typeof fetch;
|
|
346
|
+
authorizeProviderRequest?: SlackProviderAuthorization;
|
|
347
|
+
}): Promise<{
|
|
348
|
+
channelId: string | null;
|
|
349
|
+
timestamp: string | null;
|
|
350
|
+
threadTimestamp: string | null;
|
|
351
|
+
alreadySent: boolean;
|
|
352
|
+
receipt: {
|
|
353
|
+
credentialRole: "opengeni_slack_bot";
|
|
354
|
+
credentialLabel: "OpenGeni Slack bot";
|
|
355
|
+
connectionId: string;
|
|
356
|
+
operation: string;
|
|
357
|
+
operationId: string;
|
|
358
|
+
clientMessageId: string;
|
|
359
|
+
};
|
|
360
|
+
} | {
|
|
361
|
+
channelId: string;
|
|
362
|
+
timestamp: string;
|
|
363
|
+
threadTimestamp: string | null;
|
|
364
|
+
receipt: SlackBotReceipt;
|
|
365
|
+
}>;
|
|
366
|
+
/**
|
|
367
|
+
* Check, with the bot's token, that a person's chosen task channel is one the
|
|
368
|
+
* bot is a member of, active, and not shared with another organization.
|
|
369
|
+
*/
|
|
370
|
+
export declare function verifyScheduledTaskSlackChannel(deps: {
|
|
371
|
+
db: Database;
|
|
372
|
+
settings: Settings;
|
|
373
|
+
slackFetch?: typeof fetch;
|
|
374
|
+
}, input: {
|
|
375
|
+
accountId: string;
|
|
376
|
+
workspaceId: string;
|
|
377
|
+
subjectId: string;
|
|
378
|
+
connectionId: string;
|
|
379
|
+
channelId: string;
|
|
380
|
+
}): Promise<void>;
|
|
225
381
|
export declare class OpenGeniSlackBotClient {
|
|
226
382
|
private readonly db;
|
|
227
383
|
private readonly settings;
|
|
@@ -230,8 +386,12 @@ export declare class OpenGeniSlackBotClient {
|
|
|
230
386
|
private readonly context;
|
|
231
387
|
private readonly fetchImpl;
|
|
232
388
|
private readonly authorizeProviderRequest?;
|
|
389
|
+
private readonly authorizeBotAccess?;
|
|
233
390
|
private readonly resolveCredential;
|
|
234
|
-
|
|
391
|
+
private readonly rateLimit;
|
|
392
|
+
constructor(db: Database, settings: Settings, connection: ConnectionMetadata, metadata: OpenGeniSlackBotConnectionMetadata, context: SlackBotContext, fetchImpl?: FetchLike, authorizeProviderRequest?: SlackProviderAuthorization | undefined, authorizeBotAccess?: ((method: string) => Promise<boolean | void>) | undefined);
|
|
393
|
+
private historyPageLimit;
|
|
394
|
+
private postReconciliationPageLimit;
|
|
235
395
|
listChannels(input?: {
|
|
236
396
|
limit?: number;
|
|
237
397
|
cursor?: string;
|
|
@@ -243,6 +403,7 @@ export declare class OpenGeniSlackBotClient {
|
|
|
243
403
|
isMember: boolean;
|
|
244
404
|
isDirectMessage: boolean;
|
|
245
405
|
isMpim: boolean;
|
|
406
|
+
userId: string | null;
|
|
246
407
|
isArchived: boolean;
|
|
247
408
|
isShared: boolean;
|
|
248
409
|
isExternallyShared: boolean;
|
|
@@ -266,6 +427,7 @@ export declare class OpenGeniSlackBotClient {
|
|
|
266
427
|
isMember: boolean;
|
|
267
428
|
isDirectMessage: boolean;
|
|
268
429
|
isMpim: boolean;
|
|
430
|
+
userId: string | null;
|
|
269
431
|
isArchived: boolean;
|
|
270
432
|
isShared: boolean;
|
|
271
433
|
isExternallyShared: boolean;
|
|
@@ -278,6 +440,50 @@ export declare class OpenGeniSlackBotClient {
|
|
|
278
440
|
purpose: string;
|
|
279
441
|
numMembers: number | null;
|
|
280
442
|
}>;
|
|
443
|
+
/** Server-only upload preparation; the temporary URL never enters a tool result. */
|
|
444
|
+
allocateFileUpload(input: {
|
|
445
|
+
channelId: string;
|
|
446
|
+
privateRecipientSlackUserId?: string;
|
|
447
|
+
filename: string;
|
|
448
|
+
sizeBytes: number;
|
|
449
|
+
}): Promise<{
|
|
450
|
+
fileId: string;
|
|
451
|
+
uploadUrl: URL;
|
|
452
|
+
} & {
|
|
453
|
+
receipt: SlackBotReceipt;
|
|
454
|
+
}>;
|
|
455
|
+
transferFileUpload(input: {
|
|
456
|
+
channelId: string;
|
|
457
|
+
privateRecipientSlackUserId?: string;
|
|
458
|
+
uploadUrl: URL;
|
|
459
|
+
bytes: Uint8Array;
|
|
460
|
+
}): Promise<{
|
|
461
|
+
uploaded: boolean;
|
|
462
|
+
} & {
|
|
463
|
+
receipt: SlackBotReceipt;
|
|
464
|
+
}>;
|
|
465
|
+
completeFileUpload(input: {
|
|
466
|
+
channelId: string;
|
|
467
|
+
privateRecipientSlackUserId?: string;
|
|
468
|
+
threadTimestamp: string;
|
|
469
|
+
fileId: string;
|
|
470
|
+
title: string;
|
|
471
|
+
}): Promise<{
|
|
472
|
+
fileId: string;
|
|
473
|
+
} & {
|
|
474
|
+
receipt: SlackBotReceipt;
|
|
475
|
+
}>;
|
|
476
|
+
reconcileFileUpload(input: {
|
|
477
|
+
channelId: string;
|
|
478
|
+
privateRecipientSlackUserId?: string;
|
|
479
|
+
threadTimestamp: string;
|
|
480
|
+
fileId: string;
|
|
481
|
+
}): Promise<{
|
|
482
|
+
shared: boolean;
|
|
483
|
+
} & {
|
|
484
|
+
receipt: SlackBotReceipt;
|
|
485
|
+
}>;
|
|
486
|
+
private requireFileUploadScope;
|
|
281
487
|
/**
|
|
282
488
|
* Replace one Slack user's private App Home view. `views.publish` is a
|
|
283
489
|
* naturally convergent replace operation: Slack event retries may safely
|
|
@@ -300,6 +506,7 @@ export declare class OpenGeniSlackBotClient {
|
|
|
300
506
|
isMember: boolean;
|
|
301
507
|
isDirectMessage: boolean;
|
|
302
508
|
isMpim: boolean;
|
|
509
|
+
userId: string | null;
|
|
303
510
|
isArchived: boolean;
|
|
304
511
|
isShared: boolean;
|
|
305
512
|
isExternallyShared: boolean;
|
|
@@ -321,6 +528,7 @@ export declare class OpenGeniSlackBotClient {
|
|
|
321
528
|
isMember: boolean;
|
|
322
529
|
isDirectMessage: boolean;
|
|
323
530
|
isMpim: boolean;
|
|
531
|
+
userId: string | null;
|
|
324
532
|
isArchived: boolean;
|
|
325
533
|
isShared: boolean;
|
|
326
534
|
isExternallyShared: boolean;
|
|
@@ -357,6 +565,7 @@ export declare class OpenGeniSlackBotClient {
|
|
|
357
565
|
isMember: boolean;
|
|
358
566
|
isDirectMessage: boolean;
|
|
359
567
|
isMpim: boolean;
|
|
568
|
+
userId: string | null;
|
|
360
569
|
isArchived: boolean;
|
|
361
570
|
isShared: boolean;
|
|
362
571
|
isExternallyShared: boolean;
|
|
@@ -408,6 +617,7 @@ export declare class OpenGeniSlackBotClient {
|
|
|
408
617
|
isMember: boolean;
|
|
409
618
|
isDirectMessage: boolean;
|
|
410
619
|
isMpim: boolean;
|
|
620
|
+
userId: string | null;
|
|
411
621
|
isArchived: boolean;
|
|
412
622
|
isShared: boolean;
|
|
413
623
|
isExternallyShared: boolean;
|
|
@@ -448,7 +658,6 @@ export declare class OpenGeniSlackBotClient {
|
|
|
448
658
|
messageTimestamp: string;
|
|
449
659
|
checkpoint: unknown | null;
|
|
450
660
|
checkpointBinding: SlackReactionContextCheckpointBinding;
|
|
451
|
-
saveCheckpoint: (checkpoint: SlackReactionContextCheckpoint) => Promise<void>;
|
|
452
661
|
}): Promise<{
|
|
453
662
|
channel: {
|
|
454
663
|
id: string;
|
|
@@ -457,6 +666,7 @@ export declare class OpenGeniSlackBotClient {
|
|
|
457
666
|
isMember: boolean;
|
|
458
667
|
isDirectMessage: boolean;
|
|
459
668
|
isMpim: boolean;
|
|
669
|
+
userId: string | null;
|
|
460
670
|
isArchived: boolean;
|
|
461
671
|
isShared: boolean;
|
|
462
672
|
isExternallyShared: boolean;
|
|
@@ -507,6 +717,7 @@ export declare class OpenGeniSlackBotClient {
|
|
|
507
717
|
}[];
|
|
508
718
|
}[];
|
|
509
719
|
truncated: boolean;
|
|
720
|
+
contextUnavailable?: boolean;
|
|
510
721
|
} & {
|
|
511
722
|
receipt: SlackBotReceipt;
|
|
512
723
|
}>;
|
|
@@ -544,8 +755,9 @@ export declare class OpenGeniSlackBotClient {
|
|
|
544
755
|
receipt: SlackBotReceipt;
|
|
545
756
|
}>;
|
|
546
757
|
/**
|
|
547
|
-
*
|
|
548
|
-
* (`assistant.search.context`) under the bot identity.
|
|
758
|
+
* Public search in a trusted Slack interaction through Real-time Search
|
|
759
|
+
* (`assistant.search.context`) under the bot identity. Unlisted deployments
|
|
760
|
+
* cannot use this API; approved deployments also need Slack's action token.
|
|
549
761
|
*
|
|
550
762
|
* The bot never carries private-search authority: `channel_types` is pinned
|
|
551
763
|
* to `public_channel` server-side regardless of caller input, so private
|
|
@@ -555,6 +767,8 @@ export declare class OpenGeniSlackBotClient {
|
|
|
555
767
|
*/
|
|
556
768
|
searchContext(input: {
|
|
557
769
|
query: string;
|
|
770
|
+
/** Server-owned Slack interaction token, never an agent tool argument. */
|
|
771
|
+
actionToken?: string;
|
|
558
772
|
contentTypes?: readonly ("messages" | "files" | "channels")[];
|
|
559
773
|
includeBots?: boolean;
|
|
560
774
|
/** UNIX seconds bounds on message timestamps. */
|
|
@@ -610,6 +824,7 @@ export declare class OpenGeniSlackBotClient {
|
|
|
610
824
|
isMember: boolean;
|
|
611
825
|
isDirectMessage: boolean;
|
|
612
826
|
isMpim: boolean;
|
|
827
|
+
userId: string | null;
|
|
613
828
|
isArchived: boolean;
|
|
614
829
|
isShared: boolean;
|
|
615
830
|
isExternallyShared: boolean;
|
|
@@ -649,6 +864,7 @@ export declare class OpenGeniSlackBotClient {
|
|
|
649
864
|
isMember: boolean;
|
|
650
865
|
isDirectMessage: boolean;
|
|
651
866
|
isMpim: boolean;
|
|
867
|
+
userId: string | null;
|
|
652
868
|
isArchived: boolean;
|
|
653
869
|
isShared: boolean;
|
|
654
870
|
isExternallyShared: boolean;
|
|
@@ -680,7 +896,51 @@ export declare class OpenGeniSlackBotClient {
|
|
|
680
896
|
fileId: string;
|
|
681
897
|
parentFileId?: string;
|
|
682
898
|
offset?: number;
|
|
683
|
-
}): Promise<{
|
|
899
|
+
}): Promise<({
|
|
900
|
+
channel: {
|
|
901
|
+
id: string;
|
|
902
|
+
name: string;
|
|
903
|
+
isPrivate: boolean;
|
|
904
|
+
isMember: boolean;
|
|
905
|
+
isDirectMessage: boolean;
|
|
906
|
+
isMpim: boolean;
|
|
907
|
+
userId: string | null;
|
|
908
|
+
isArchived: boolean;
|
|
909
|
+
isShared: boolean;
|
|
910
|
+
isExternallyShared: boolean;
|
|
911
|
+
isOrgShared: boolean;
|
|
912
|
+
isPendingExternallyShared: boolean;
|
|
913
|
+
contextTeamId: string | null;
|
|
914
|
+
connectedTeamIds: string[] | null;
|
|
915
|
+
sharedTeamIds: string[] | null;
|
|
916
|
+
topic: string;
|
|
917
|
+
purpose: string;
|
|
918
|
+
numMembers: number | null;
|
|
919
|
+
};
|
|
920
|
+
file: {
|
|
921
|
+
id: string;
|
|
922
|
+
name: string;
|
|
923
|
+
title: string;
|
|
924
|
+
mimetype: string;
|
|
925
|
+
filetype: string;
|
|
926
|
+
mode: string;
|
|
927
|
+
size: number | null;
|
|
928
|
+
originatingHuddleId: string;
|
|
929
|
+
huddleTranscriptFileId: string;
|
|
930
|
+
};
|
|
931
|
+
image: Readonly<{
|
|
932
|
+
fileId: string;
|
|
933
|
+
filename: string;
|
|
934
|
+
contentType: "image/png" | "image/jpeg" | "image/webp";
|
|
935
|
+
bytes: Uint8Array;
|
|
936
|
+
}>;
|
|
937
|
+
contentType?: never;
|
|
938
|
+
offset?: never;
|
|
939
|
+
content?: never;
|
|
940
|
+
nextOffset?: never;
|
|
941
|
+
truncated?: never;
|
|
942
|
+
} | {
|
|
943
|
+
image?: never;
|
|
684
944
|
channel: {
|
|
685
945
|
id: string;
|
|
686
946
|
name: string;
|
|
@@ -688,6 +948,7 @@ export declare class OpenGeniSlackBotClient {
|
|
|
688
948
|
isMember: boolean;
|
|
689
949
|
isDirectMessage: boolean;
|
|
690
950
|
isMpim: boolean;
|
|
951
|
+
userId: string | null;
|
|
691
952
|
isArchived: boolean;
|
|
692
953
|
isShared: boolean;
|
|
693
954
|
isExternallyShared: boolean;
|
|
@@ -716,7 +977,7 @@ export declare class OpenGeniSlackBotClient {
|
|
|
716
977
|
content: string;
|
|
717
978
|
nextOffset: number | null;
|
|
718
979
|
truncated: boolean;
|
|
719
|
-
} & {
|
|
980
|
+
}) & {
|
|
720
981
|
receipt: SlackBotReceipt;
|
|
721
982
|
}>;
|
|
722
983
|
/**
|
|
@@ -783,11 +1044,14 @@ export declare class OpenGeniSlackBotClient {
|
|
|
783
1044
|
private recordAudit;
|
|
784
1045
|
private auditMetadata;
|
|
785
1046
|
}
|
|
1047
|
+
/** Full decode guards the model image block against header-only or corrupt files. */
|
|
1048
|
+
export declare function validateSlackMcpImage(bytes: Uint8Array): Promise<void>;
|
|
786
1049
|
export declare function createOpenGeniSlackBotClient(deps: {
|
|
787
1050
|
db: Database;
|
|
788
1051
|
settings: Settings;
|
|
789
1052
|
slackFetch?: typeof fetch;
|
|
790
1053
|
authorizeProviderRequest?: SlackProviderAuthorization;
|
|
1054
|
+
authorizeBotMutation?: () => Promise<void>;
|
|
791
1055
|
}, resolved: Awaited<ReturnType<typeof resolveSlackBotConnectionForTool>>): OpenGeniSlackBotClient;
|
|
792
1056
|
export declare function createOpenGeniSlackBotInteractionClient(deps: {
|
|
793
1057
|
db: Database;
|
|
@@ -801,6 +1065,12 @@ export declare function createOpenGeniSlackBotInteractionClient(deps: {
|
|
|
801
1065
|
subjectId: string;
|
|
802
1066
|
sessionId?: string | null;
|
|
803
1067
|
}): Promise<OpenGeniSlackBotClient>;
|
|
1068
|
+
/** A private route needs live provider proof of the exact linked requester's bot IM. */
|
|
1069
|
+
export declare function assertSlackPrivateTaskRecipient(channel: {
|
|
1070
|
+
isDirectMessage: boolean;
|
|
1071
|
+
isMpim: boolean;
|
|
1072
|
+
userId: string | null;
|
|
1073
|
+
}, slackUserId: string): void;
|
|
804
1074
|
export declare function sniffSlackReactionImageMime(bytes: Uint8Array): "image/png" | "image/jpeg" | "image/webp" | null;
|
|
805
1075
|
export declare function resolveSlackFilesListPage(input: {
|
|
806
1076
|
channelId: string;
|
|
@@ -813,4 +1083,12 @@ export declare function createSlackFilesListCursor(input: {
|
|
|
813
1083
|
page: number;
|
|
814
1084
|
}, context: SlackFilesCursorContext): string;
|
|
815
1085
|
export declare function nextSlackFilesListPage(payload: SlackPayload, requested: SlackFilesListPage, returnedFileCount: number): number | null;
|
|
1086
|
+
/**
|
|
1087
|
+
* Slack action IDs are unique within a block. Keep the logical card untouched
|
|
1088
|
+
* for the durable request digest, and partition repeated actions only on the
|
|
1089
|
+
* provider wire. In particular, a legacy invalid_blocks receipt can retry with
|
|
1090
|
+
* its original operation ID and digest; completed/uncertain posts keep their
|
|
1091
|
+
* existing replay/reconciliation path. Values and action IDs remain exact.
|
|
1092
|
+
*/
|
|
1093
|
+
export declare function slackMessageWireBlocks(blocks: SlackMessageBlock[] | undefined): SlackMessageBlock[] | undefined;
|
|
816
1094
|
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/** Durability port: checkpoints must be lease-fenced before any provider write. */
|
|
2
|
+
export type SlackFileUploadPhase = "pending" | "uploading" | "uploaded" | "completing" | "outcome_unknown" | "completed";
|
|
3
|
+
export type SlackFileUploadState = {
|
|
4
|
+
phase: SlackFileUploadPhase;
|
|
5
|
+
slackFileId: string | null;
|
|
6
|
+
};
|
|
7
|
+
export type SlackFileUploadProvider = {
|
|
8
|
+
allocateFileUpload(input: {
|
|
9
|
+
channelId: string;
|
|
10
|
+
privateRecipientSlackUserId?: string;
|
|
11
|
+
filename: string;
|
|
12
|
+
sizeBytes: number;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
fileId: string;
|
|
15
|
+
uploadUrl: URL;
|
|
16
|
+
}>;
|
|
17
|
+
transferFileUpload(input: {
|
|
18
|
+
channelId: string;
|
|
19
|
+
privateRecipientSlackUserId?: string;
|
|
20
|
+
uploadUrl: URL;
|
|
21
|
+
bytes: Uint8Array;
|
|
22
|
+
}): Promise<unknown>;
|
|
23
|
+
completeFileUpload(input: {
|
|
24
|
+
channelId: string;
|
|
25
|
+
privateRecipientSlackUserId?: string;
|
|
26
|
+
threadTimestamp: string;
|
|
27
|
+
fileId: string;
|
|
28
|
+
title: string;
|
|
29
|
+
}): Promise<unknown>;
|
|
30
|
+
reconcileFileUpload(input: {
|
|
31
|
+
channelId: string;
|
|
32
|
+
privateRecipientSlackUserId?: string;
|
|
33
|
+
threadTimestamp: string;
|
|
34
|
+
fileId: string;
|
|
35
|
+
}): Promise<{
|
|
36
|
+
shared: boolean;
|
|
37
|
+
}>;
|
|
38
|
+
};
|
|
39
|
+
export declare class SlackFileUploadClaimLostError extends Error {
|
|
40
|
+
constructor();
|
|
41
|
+
}
|
|
42
|
+
export declare class SlackFileUploadOutcomeUnknownError extends Error {
|
|
43
|
+
constructor();
|
|
44
|
+
}
|
|
45
|
+
/** No automatic retries. An uncertain completion is reconciled, never resent. */
|
|
46
|
+
export declare function runSlackFileUpload(input: {
|
|
47
|
+
state: SlackFileUploadState;
|
|
48
|
+
provider: SlackFileUploadProvider;
|
|
49
|
+
checkpoint: (update: {
|
|
50
|
+
expectedPhase: SlackFileUploadPhase;
|
|
51
|
+
phase: SlackFileUploadPhase;
|
|
52
|
+
slackFileId?: string;
|
|
53
|
+
}) => Promise<boolean>;
|
|
54
|
+
channelId: string;
|
|
55
|
+
privateRecipientSlackUserId?: string;
|
|
56
|
+
threadTimestamp: string;
|
|
57
|
+
filename: string;
|
|
58
|
+
bytes: Uint8Array;
|
|
59
|
+
}): Promise<{
|
|
60
|
+
slackFileId: string;
|
|
61
|
+
replayed: boolean;
|
|
62
|
+
}>;
|