@opengeni/api-router 3.0.1 → 3.0.2-canary.38894290271001
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-AJ62T5QN.js → chunk-GBUJ2DYZ.js} +80507 -39878
- package/dist/chunk-GBUJ2DYZ.js.map +1 -0
- package/dist/chunk-OGQDXVXY.js +18 -0
- package/dist/chunk-OGQDXVXY.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 +150 -49
- 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
|
@@ -4,6 +4,8 @@ import {
|
|
|
4
4
|
PublishWorkspaceArtifactVersionRequest,
|
|
5
5
|
RollbackWorkspaceArtifactRequest,
|
|
6
6
|
SetWorkspaceArtifactStatusRequest,
|
|
7
|
+
UpdateWorkspaceArtifactVisibilityRequest,
|
|
8
|
+
UpdateWorkspaceArtifactVisibilityResponse,
|
|
7
9
|
WorkspaceArtifactContentResponse,
|
|
8
10
|
WorkspaceArtifactDetailResponse,
|
|
9
11
|
WorkspaceArtifactListQuery,
|
|
@@ -16,8 +18,11 @@ import {
|
|
|
16
18
|
requireAccessGrant,
|
|
17
19
|
requireAccessGrantAuthorization,
|
|
18
20
|
requireSessionAuthorization,
|
|
21
|
+
resolveNewSiteAudience,
|
|
22
|
+
resolveSiteAudienceChange,
|
|
19
23
|
SessionAuthorizationDeniedError,
|
|
20
24
|
SessionAuthorizationUnavailableError,
|
|
25
|
+
siteViewerForGrant,
|
|
21
26
|
type ApiRouteDeps,
|
|
22
27
|
} from "@opengeni/core";
|
|
23
28
|
import {
|
|
@@ -29,14 +34,22 @@ import {
|
|
|
29
34
|
publishWorkspaceArtifactVersion,
|
|
30
35
|
rollbackWorkspaceArtifact,
|
|
31
36
|
setWorkspaceArtifactStatus,
|
|
37
|
+
updateWorkspaceArtifactVisibility,
|
|
32
38
|
WorkspaceArtifactConflictError,
|
|
33
39
|
WorkspaceArtifactNotFoundError,
|
|
34
40
|
WorkspaceArtifactOperationError,
|
|
41
|
+
WorkspaceArtifactOwnerRequiredError,
|
|
35
42
|
} from "@opengeni/db";
|
|
36
43
|
import type { Context, Hono } from "hono";
|
|
37
44
|
import { HTTPException } from "hono/http-exception";
|
|
38
45
|
import { z } from "zod";
|
|
39
46
|
import { readWorkspaceArtifactContent } from "../workspace-artifact-content";
|
|
47
|
+
import { userContentDispositionHeaders } from "../http/user-content";
|
|
48
|
+
import {
|
|
49
|
+
afterSiteArtifactMutation,
|
|
50
|
+
notifySitePublicationChanged,
|
|
51
|
+
requireSiteVersionPublishOpen,
|
|
52
|
+
} from "../site-publishing/service";
|
|
40
53
|
import {
|
|
41
54
|
projectWorkspaceArtifactDetailProvenance,
|
|
42
55
|
projectWorkspaceArtifactMutationProvenance,
|
|
@@ -85,6 +98,9 @@ export function workspaceArtifactErrorResponse(context: Context, error: unknown)
|
|
|
85
98
|
409,
|
|
86
99
|
);
|
|
87
100
|
}
|
|
101
|
+
if (error instanceof WorkspaceArtifactOwnerRequiredError) {
|
|
102
|
+
return context.json({ code: "WORKSPACE_ARTIFACT_OWNER_REQUIRED", message: error.message }, 403);
|
|
103
|
+
}
|
|
88
104
|
if (error instanceof WorkspaceArtifactOperationError) {
|
|
89
105
|
return context.json(
|
|
90
106
|
{ code: "INVALID_WORKSPACE_ARTIFACT_OPERATION", message: error.message },
|
|
@@ -166,6 +182,15 @@ export function registerWorkspaceArtifactRoutes(app: Hono, deps: ApiRouteDeps):
|
|
|
166
182
|
// `published-artifacts` deliberately avoids the existing `/artifacts/:id`
|
|
167
183
|
// retained-output API. The product route remains simply `/artifacts`.
|
|
168
184
|
const base = "/v1/workspaces/:workspaceId/published-artifacts";
|
|
185
|
+
// A published Site follows its Site: a new version, rollback, archive or
|
|
186
|
+
// restore advances its host map (after commit, never blocking the change),
|
|
187
|
+
// through the same hook the agent artifact tools run. Recorded before the
|
|
188
|
+
// response so the next host lookup sees the change; publish and rollback
|
|
189
|
+
// scan the version that became current.
|
|
190
|
+
const publishedSiteChanged = async <T extends WorkspaceArtifactMutationResponse>(
|
|
191
|
+
result: T,
|
|
192
|
+
scan = false,
|
|
193
|
+
): Promise<T> => await afterSiteArtifactMutation(deps, result, { scan });
|
|
169
194
|
|
|
170
195
|
app.post(`${base}/uploads`, async (context) => {
|
|
171
196
|
const grant = await requireAccessGrant(
|
|
@@ -179,18 +204,23 @@ export function registerWorkspaceArtifactRoutes(app: Hono, deps: ApiRouteDeps):
|
|
|
179
204
|
|
|
180
205
|
app.get(`${base}/:artifactId/downloads`, async (context) => {
|
|
181
206
|
const workspaceId = context.req.param("workspaceId");
|
|
182
|
-
await requireAccessGrant(context, deps, workspaceId, "artifacts:read");
|
|
207
|
+
const grant = await requireAccessGrant(context, deps, workspaceId, "artifacts:read");
|
|
183
208
|
if (!deps.objectStorage)
|
|
184
209
|
throw new HTTPException(503, {
|
|
185
210
|
message: "Object storage is not configured",
|
|
186
211
|
});
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
212
|
+
try {
|
|
213
|
+
const ref = await getWorkspaceArtifactContentRef(
|
|
214
|
+
deps.db,
|
|
215
|
+
workspaceId,
|
|
216
|
+
await siteViewerForGrant(deps.db, grant),
|
|
217
|
+
artifactId(context),
|
|
218
|
+
parseVersionId(context.req.query("versionId")),
|
|
219
|
+
);
|
|
220
|
+
return context.json(await workspaceArtifactDownloads(deps.objectStorage, ref, "public"));
|
|
221
|
+
} catch (error) {
|
|
222
|
+
return workspaceArtifactErrorResponse(context, error);
|
|
223
|
+
}
|
|
194
224
|
});
|
|
195
225
|
|
|
196
226
|
app.get(base, async (context) => {
|
|
@@ -213,14 +243,19 @@ export function registerWorkspaceArtifactRoutes(app: Hono, deps: ApiRouteDeps):
|
|
|
213
243
|
return context.json(
|
|
214
244
|
WorkspaceArtifactListResponse.parse(
|
|
215
245
|
redactWorkspaceArtifactListProvenance(
|
|
216
|
-
await listWorkspaceArtifacts(
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
: {}),
|
|
223
|
-
|
|
246
|
+
await listWorkspaceArtifacts(
|
|
247
|
+
deps.db,
|
|
248
|
+
workspaceId,
|
|
249
|
+
await siteViewerForGrant(deps.db, grant),
|
|
250
|
+
{
|
|
251
|
+
limit: query.data.limit,
|
|
252
|
+
...(query.data.cursor ? { cursor: query.data.cursor } : {}),
|
|
253
|
+
...(query.data.status ? { status: query.data.status } : {}),
|
|
254
|
+
...(query.data.sourceSessionId
|
|
255
|
+
? { sourceSessionId: query.data.sourceSessionId }
|
|
256
|
+
: {}),
|
|
257
|
+
},
|
|
258
|
+
),
|
|
224
259
|
),
|
|
225
260
|
),
|
|
226
261
|
);
|
|
@@ -243,6 +278,14 @@ export function registerWorkspaceArtifactRoutes(app: Hono, deps: ApiRouteDeps):
|
|
|
243
278
|
const slugBase = request.slug ?? (normalizeWorkspaceArtifactSlug(request.title) || "artifact");
|
|
244
279
|
const slug = request.slug ?? `${slugBase.slice(0, 87)}-${id.slice(0, 8)}`;
|
|
245
280
|
try {
|
|
281
|
+
const audience = await resolveNewSiteAudience({
|
|
282
|
+
db: deps.db,
|
|
283
|
+
settings: deps.settings,
|
|
284
|
+
grant,
|
|
285
|
+
viewer: await siteViewerForGrant(deps.db, grant),
|
|
286
|
+
requested: request.visibility,
|
|
287
|
+
sourceSessionId: null,
|
|
288
|
+
});
|
|
246
289
|
const content = await prepareContent(deps, grant, {
|
|
247
290
|
...(request.html !== undefined ? { html: request.html } : {}),
|
|
248
291
|
...(request.uploadId ? { uploadId: request.uploadId } : {}),
|
|
@@ -254,6 +297,7 @@ export function registerWorkspaceArtifactRoutes(app: Hono, deps: ApiRouteDeps):
|
|
|
254
297
|
deps,
|
|
255
298
|
grant,
|
|
256
299
|
await createWorkspaceArtifact(deps.db, {
|
|
300
|
+
...audience,
|
|
257
301
|
accountId: grant.accountId,
|
|
258
302
|
workspaceId,
|
|
259
303
|
artifactId: id,
|
|
@@ -276,7 +320,12 @@ export function registerWorkspaceArtifactRoutes(app: Hono, deps: ApiRouteDeps):
|
|
|
276
320
|
const workspaceId = context.req.param("workspaceId");
|
|
277
321
|
const grant = await requireAccessGrant(context, deps, workspaceId, "artifacts:read");
|
|
278
322
|
try {
|
|
279
|
-
const detail = await getWorkspaceArtifact(
|
|
323
|
+
const detail = await getWorkspaceArtifact(
|
|
324
|
+
deps.db,
|
|
325
|
+
workspaceId,
|
|
326
|
+
await siteViewerForGrant(deps.db, grant),
|
|
327
|
+
artifactId(context),
|
|
328
|
+
);
|
|
280
329
|
return context.json(
|
|
281
330
|
WorkspaceArtifactDetailResponse.parse(
|
|
282
331
|
await projectWorkspaceArtifactDetailProvenance(detail, (sessionId) =>
|
|
@@ -291,17 +340,23 @@ export function registerWorkspaceArtifactRoutes(app: Hono, deps: ApiRouteDeps):
|
|
|
291
340
|
|
|
292
341
|
app.get(`${base}/:artifactId/html`, async (context) => {
|
|
293
342
|
const workspaceId = context.req.param("workspaceId");
|
|
294
|
-
await requireAccessGrant(context, deps, workspaceId, "artifacts:read");
|
|
343
|
+
const grant = await requireAccessGrant(context, deps, workspaceId, "artifacts:read");
|
|
295
344
|
if (!deps.objectStorage)
|
|
296
345
|
throw new HTTPException(503, {
|
|
297
346
|
message: "Object storage is not configured",
|
|
298
347
|
});
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
348
|
+
let ref: Awaited<ReturnType<typeof getWorkspaceArtifactContentRef>>;
|
|
349
|
+
try {
|
|
350
|
+
ref = await getWorkspaceArtifactContentRef(
|
|
351
|
+
deps.db,
|
|
352
|
+
workspaceId,
|
|
353
|
+
await siteViewerForGrant(deps.db, grant),
|
|
354
|
+
artifactId(context),
|
|
355
|
+
parseVersionId(context.req.query("versionId")),
|
|
356
|
+
);
|
|
357
|
+
} catch (error) {
|
|
358
|
+
return workspaceArtifactErrorResponse(context, error);
|
|
359
|
+
}
|
|
305
360
|
const iterator = readArtifactObject(deps.objectStorage, ref.contentKey);
|
|
306
361
|
return new Response(
|
|
307
362
|
new ReadableStream({
|
|
@@ -322,7 +377,15 @@ export function registerWorkspaceArtifactRoutes(app: Hono, deps: ApiRouteDeps):
|
|
|
322
377
|
headers: {
|
|
323
378
|
"Content-Type": "text/html; charset=utf-8",
|
|
324
379
|
"Cache-Control": "private, no-store",
|
|
380
|
+
// A Site runs its own scripts, but only inside an opaque origin: no
|
|
381
|
+
// same-origin access to the console, and no cross-site embedding.
|
|
325
382
|
"Content-Security-Policy": "sandbox allow-scripts",
|
|
383
|
+
"Cross-Origin-Resource-Policy": "same-origin",
|
|
384
|
+
"X-Content-Type-Options": "nosniff",
|
|
385
|
+
// Clients read this HTML with fetch and render it in their own frame
|
|
386
|
+
// (the console uses srcdoc). Opening the raw URL downloads it rather
|
|
387
|
+
// than running a publisher-authored page at an app-origin URL.
|
|
388
|
+
...userContentDispositionHeaders("text/html", "site.html"),
|
|
326
389
|
},
|
|
327
390
|
},
|
|
328
391
|
);
|
|
@@ -330,7 +393,7 @@ export function registerWorkspaceArtifactRoutes(app: Hono, deps: ApiRouteDeps):
|
|
|
330
393
|
|
|
331
394
|
app.get(`${base}/:artifactId/content`, async (context) => {
|
|
332
395
|
const workspaceId = context.req.param("workspaceId");
|
|
333
|
-
await requireAccessGrant(context, deps, workspaceId, "artifacts:read");
|
|
396
|
+
const grant = await requireAccessGrant(context, deps, workspaceId, "artifacts:read");
|
|
334
397
|
if (!deps.objectStorage)
|
|
335
398
|
throw new HTTPException(503, {
|
|
336
399
|
message: "Object storage is not configured",
|
|
@@ -340,6 +403,7 @@ export function registerWorkspaceArtifactRoutes(app: Hono, deps: ApiRouteDeps):
|
|
|
340
403
|
const ref = await getWorkspaceArtifactContentRef(
|
|
341
404
|
deps.db,
|
|
342
405
|
workspaceId,
|
|
406
|
+
await siteViewerForGrant(deps.db, grant),
|
|
343
407
|
artifactId(context),
|
|
344
408
|
parsedVersion,
|
|
345
409
|
);
|
|
@@ -377,6 +441,8 @@ export function registerWorkspaceArtifactRoutes(app: Hono, deps: ApiRouteDeps):
|
|
|
377
441
|
const grant = authorization.grant;
|
|
378
442
|
const request = await body(context, PublishWorkspaceArtifactVersionRequest);
|
|
379
443
|
const id = artifactId(context);
|
|
444
|
+
// A published Site gets no new versions while the platform brake is engaged.
|
|
445
|
+
await requireSiteVersionPublishOpen(deps, { accountId: grant.accountId, workspaceId }, id);
|
|
380
446
|
try {
|
|
381
447
|
const content = await prepareContent(deps, grant, {
|
|
382
448
|
...(request.html !== undefined ? { html: request.html } : {}),
|
|
@@ -388,16 +454,20 @@ export function registerWorkspaceArtifactRoutes(app: Hono, deps: ApiRouteDeps):
|
|
|
388
454
|
await mutationResponse(
|
|
389
455
|
deps,
|
|
390
456
|
grant,
|
|
391
|
-
await
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
457
|
+
await publishedSiteChanged(
|
|
458
|
+
await publishWorkspaceArtifactVersion(deps.db, {
|
|
459
|
+
accountId: grant.accountId,
|
|
460
|
+
workspaceId,
|
|
461
|
+
artifactId: id,
|
|
462
|
+
viewer: await siteViewerForGrant(deps.db, grant),
|
|
463
|
+
expectedCurrentVersionId: request.expectedCurrentVersionId,
|
|
464
|
+
...(request.title !== undefined ? { title: request.title } : {}),
|
|
465
|
+
...(request.description !== undefined ? { description: request.description } : {}),
|
|
466
|
+
...content,
|
|
467
|
+
...provenance(grant.subjectId, request.idempotencyKey),
|
|
468
|
+
}),
|
|
469
|
+
true,
|
|
470
|
+
),
|
|
401
471
|
),
|
|
402
472
|
);
|
|
403
473
|
} catch (error) {
|
|
@@ -421,15 +491,19 @@ export function registerWorkspaceArtifactRoutes(app: Hono, deps: ApiRouteDeps):
|
|
|
421
491
|
await mutationResponse(
|
|
422
492
|
deps,
|
|
423
493
|
grant,
|
|
424
|
-
await
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
494
|
+
await publishedSiteChanged(
|
|
495
|
+
await rollbackWorkspaceArtifact(deps.db, {
|
|
496
|
+
accountId: grant.accountId,
|
|
497
|
+
workspaceId,
|
|
498
|
+
artifactId: id,
|
|
499
|
+
viewer: await siteViewerForGrant(deps.db, grant),
|
|
500
|
+
versionId: request.versionId,
|
|
501
|
+
expectedCurrentVersionId: request.expectedCurrentVersionId,
|
|
502
|
+
reason: request.reason,
|
|
503
|
+
...provenance(grant.subjectId, request.idempotencyKey),
|
|
504
|
+
}),
|
|
505
|
+
true,
|
|
506
|
+
),
|
|
433
507
|
),
|
|
434
508
|
);
|
|
435
509
|
} catch (error) {
|
|
@@ -453,19 +527,57 @@ export function registerWorkspaceArtifactRoutes(app: Hono, deps: ApiRouteDeps):
|
|
|
453
527
|
await mutationResponse(
|
|
454
528
|
deps,
|
|
455
529
|
grant,
|
|
456
|
-
await
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
530
|
+
await publishedSiteChanged(
|
|
531
|
+
await setWorkspaceArtifactStatus(deps.db, {
|
|
532
|
+
accountId: grant.accountId,
|
|
533
|
+
workspaceId,
|
|
534
|
+
artifactId: id,
|
|
535
|
+
viewer: await siteViewerForGrant(deps.db, grant),
|
|
536
|
+
status: request.status,
|
|
537
|
+
expectedCurrentVersionId: request.expectedCurrentVersionId,
|
|
538
|
+
reason: request.reason,
|
|
539
|
+
...provenance(grant.subjectId, request.idempotencyKey),
|
|
540
|
+
}),
|
|
541
|
+
),
|
|
465
542
|
),
|
|
466
543
|
);
|
|
467
544
|
} catch (error) {
|
|
468
545
|
return workspaceArtifactErrorResponse(context, error);
|
|
469
546
|
}
|
|
470
547
|
});
|
|
548
|
+
|
|
549
|
+
// Who can see the Site: the whole workspace, or only its owner. Only the
|
|
550
|
+
// owner changes it, like a chat's or a schedule's audience.
|
|
551
|
+
app.put(`${base}/:artifactId/visibility`, async (context) => {
|
|
552
|
+
const workspaceId = context.req.param("workspaceId");
|
|
553
|
+
const grant = await requireAccessGrant(context, deps, workspaceId, "artifacts:publish");
|
|
554
|
+
const request = await body(context, UpdateWorkspaceArtifactVisibilityRequest);
|
|
555
|
+
const id = artifactId(context);
|
|
556
|
+
try {
|
|
557
|
+
const viewer = await siteViewerForGrant(deps.db, grant);
|
|
558
|
+
const visibility = await resolveSiteAudienceChange({
|
|
559
|
+
db: deps.db,
|
|
560
|
+
settings: deps.settings,
|
|
561
|
+
grant,
|
|
562
|
+
viewer,
|
|
563
|
+
requested: request.visibility,
|
|
564
|
+
});
|
|
565
|
+
const artifact = await updateWorkspaceArtifactVisibility(deps.db, {
|
|
566
|
+
workspaceId,
|
|
567
|
+
artifactId: id,
|
|
568
|
+
viewer,
|
|
569
|
+
visibility,
|
|
570
|
+
});
|
|
571
|
+
await notifySitePublicationChanged(deps, { accountId: grant.accountId, workspaceId }, id);
|
|
572
|
+
const projected = await projectWorkspaceArtifactDetailProvenance(
|
|
573
|
+
{ artifact, versions: [], events: [], versionsTruncated: false, eventsTruncated: false },
|
|
574
|
+
(sessionId) => canReadProvenanceSession(deps, grant, sessionId),
|
|
575
|
+
);
|
|
576
|
+
return context.json(
|
|
577
|
+
UpdateWorkspaceArtifactVisibilityResponse.parse({ artifact: projected.artifact }),
|
|
578
|
+
);
|
|
579
|
+
} catch (error) {
|
|
580
|
+
return workspaceArtifactErrorResponse(context, error);
|
|
581
|
+
}
|
|
582
|
+
});
|
|
471
583
|
}
|