@opengeni/api-router 0.30.3 → 1.0.0
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 +3 -0
- package/dist/admission-trace.d.ts +8 -0
- package/dist/api-websocket.d.ts +18 -0
- package/dist/app.d.ts +50 -2
- package/dist/app.js +12 -1
- package/dist/artifact-catalog-cursor.d.ts +27 -0
- package/dist/auth/managed-auth-attempt-context.d.ts +10 -0
- package/dist/auth/managed-auth-rate-limits.d.ts +167 -0
- package/dist/auth/managed-auth-session-adapter.d.ts +6 -0
- package/dist/auth/managed-auth.d.ts +102 -3
- package/dist/auth/managed-email.d.ts +29 -0
- package/dist/auth/managed-sign-in-notifications.d.ts +4 -0
- package/dist/auth/new-signups-gate.d.ts +23 -0
- package/dist/auth/organization-user-setup.d.ts +80 -0
- package/dist/auth/signup-funnel-metrics.d.ts +44 -0
- package/dist/browser-controller-authority.d.ts +1 -61
- package/dist/browser-ephemeral.d.ts +5 -0
- package/dist/browser-state-authority.d.ts +1 -27
- package/dist/chunk-6TZ5LG3O.js +123948 -0
- package/dist/chunk-6TZ5LG3O.js.map +1 -0
- package/dist/chunk-OGQDXVXY.js +18 -0
- package/dist/chunk-OGQDXVXY.js.map +1 -0
- package/dist/claude-subscription-account-conflicts.d.ts +1 -0
- package/dist/claude-subscription-account-usage.d.ts +39 -0
- package/dist/claude-subscription-oauth.d.ts +25 -0
- package/dist/claude-subscription-profile.d.ts +9 -0
- package/dist/claude-subscription-usage.d.ts +44 -0
- package/dist/claude-workspace-connection.d.ts +15 -0
- package/dist/codemode.d.ts +32 -1
- package/dist/company-brain-okf.d.ts +24 -0
- package/dist/connected-machine-computer-access.d.ts +11 -0
- package/dist/connection-ownership.d.ts +54 -0
- package/dist/controller-data-plane.d.ts +32 -0
- package/dist/editable-artifact-source-session.d.ts +3 -0
- package/dist/editable-artifact-websocket.d.ts +10 -18
- package/dist/editable-artifact-workspace-files.d.ts +1 -1
- package/dist/fatal-process-boundary.d.ts +25 -0
- package/dist/github-access.d.ts +31 -2
- package/dist/http/acting-person.d.ts +24 -0
- package/dist/http/api-contract-compat.d.ts +19 -0
- package/dist/http/api-error.d.ts +27 -1
- package/dist/http/cors.d.ts +17 -0
- package/dist/http/deprecation.d.ts +42 -0
- package/dist/http/interaction-control-error.d.ts +13 -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/request-body.d.ts +27 -0
- package/dist/http/request-source.d.ts +52 -0
- package/dist/http/sse.d.ts +17 -6
- package/dist/http/unmatched-route.d.ts +18 -0
- package/dist/http/user-content.d.ts +36 -0
- package/dist/http/websocket-upgrade-dispatch.d.ts +18 -0
- package/dist/index.d.ts +10 -3
- package/dist/index.js +1091 -162
- package/dist/index.js.map +1 -1
- package/dist/integration-endpoint-test.d.ts +20 -0
- package/dist/integrations/api-integrations.d.ts +2 -2
- package/dist/integrations/atlassian.d.ts +29 -3
- package/dist/integrations/connect-authority.d.ts +1 -0
- package/dist/integrations/connect-callback-return.d.ts +6 -0
- package/dist/integrations/fiken.d.ts +16 -2
- package/dist/integrations/github-app-connect.d.ts +47 -0
- package/dist/integrations/github-installation-proof.d.ts +3 -0
- package/dist/integrations/github-lens-connect.d.ts +116 -0
- package/dist/integrations/github-skill-source.d.ts +1 -5
- package/dist/integrations/google-drive.d.ts +24 -0
- package/dist/integrations/integration-commit-authority.d.ts +13 -0
- package/dist/integrations/marketplace-plugin.d.ts +2691 -0
- package/dist/integrations/oauth-client.d.ts +178 -18
- package/dist/integrations/oauth-profiles.d.ts +222 -0
- package/dist/integrations/oauth-return-path.d.ts +1 -0
- package/dist/integrations/personal-github-repositories.d.ts +84 -0
- package/dist/integrations/personal-github.d.ts +42 -0
- package/dist/integrations/pr-review-provider.d.ts +22 -0
- package/dist/integrations/provider-oauth.d.ts +19 -1
- package/dist/integrations/slack-app-home.d.ts +24 -0
- package/dist/integrations/slack-bot.d.ts +367 -12
- package/dist/integrations/slack-file-upload-flow.d.ts +62 -0
- package/dist/integrations/slack-install.d.ts +20 -0
- package/dist/integrations/slack-interactions.d.ts +107 -9
- package/dist/integrations/slack-mrkdwn.d.ts +41 -0
- package/dist/integrations/slack-routing.d.ts +120 -0
- package/dist/integrations/slack-session-defaults.d.ts +58 -0
- package/dist/integrations/slack-task-file-upload.d.ts +36 -0
- package/dist/integrations/social-oauth.d.ts +7 -0
- package/dist/interaction-agent-access.d.ts +15 -0
- package/dist/interaction-frame-proxy.d.ts +68 -0
- package/dist/interaction-metrics.d.ts +2 -0
- package/dist/mcp/action-catalog-types.d.ts +9 -0
- package/dist/mcp/action-catalog.gen.d.ts +2 -0
- package/dist/mcp/capability-account-readiness.d.ts +7 -0
- package/dist/mcp/child-read-evidence.d.ts +9 -0
- package/dist/mcp/command-read.d.ts +24 -0
- package/dist/mcp/company-profile-agent-admin.d.ts +44 -0
- package/dist/mcp/contract-input.d.ts +11 -0
- package/dist/mcp/documents.d.ts +7 -5
- package/dist/mcp/files.d.ts +2 -2
- package/dist/mcp/first-party-tool-permissions.d.ts +650 -0
- package/dist/mcp/knowledge-entries.d.ts +5 -0
- package/dist/mcp/orchestration-failure-diagnostic.d.ts +43 -0
- package/dist/mcp/receipts.d.ts +9 -0
- package/dist/mcp/request-abort.d.ts +19 -0
- package/dist/mcp/scheduled-task-input.d.ts +1189 -0
- package/dist/mcp/scheduled-task-view.d.ts +22 -4
- package/dist/mcp/server.d.ts +255 -3
- package/dist/mcp/session-event-view.d.ts +94 -0
- package/dist/mcp/session-view.d.ts +66 -2
- package/dist/mcp/session-wait.d.ts +174 -0
- package/dist/mcp-oauth.d.ts +52 -0
- package/dist/model-catalog.d.ts +11 -31
- package/dist/observability.d.ts +3 -1
- package/dist/organization-mcp.d.ts +52 -0
- package/dist/organization-recovery-notifications.d.ts +41 -0
- package/dist/routes/analytics-consent.d.ts +26 -0
- package/dist/routes/api-integrations.d.ts +25 -0
- package/dist/routes/api-keys.d.ts +17 -0
- package/dist/routes/artifact-catalog.d.ts +6 -0
- package/dist/routes/automations.d.ts +19 -0
- package/dist/routes/billing.d.ts +49 -0
- package/dist/routes/browser-sessions.d.ts +59 -2
- 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 +146 -0
- package/dist/routes/codex.d.ts +76 -2
- package/dist/routes/company-brain.d.ts +3 -0
- package/dist/routes/company-profile.d.ts +2 -1
- package/dist/routes/computer-sessions.d.ts +14 -0
- package/dist/routes/connect.d.ts +5 -0
- package/dist/routes/editable-artifacts.d.ts +2 -0
- package/dist/routes/external-identity-links.d.ts +6 -0
- package/dist/routes/feedback.d.ts +3 -0
- package/dist/routes/github-browser-pages.d.ts +12 -0
- package/dist/routes/github.d.ts +2 -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 +30 -1
- package/dist/routes/knowledge.d.ts +3 -0
- package/dist/routes/managed-auth-session-sets.d.ts +26 -0
- package/dist/routes/managed-onboarding.d.ts +29 -0
- package/dist/routes/managed-sign-in-methods.d.ts +6 -0
- package/dist/routes/model-connection-access.d.ts +3 -0
- package/dist/routes/organization-integration-policy.d.ts +3 -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-providers.d.ts +3 -0
- package/dist/routes/organization-recovery.d.ts +19 -0
- package/dist/routes/organization-service-accounts.d.ts +3 -0
- package/dist/routes/organization-sessions.d.ts +26 -0
- package/dist/routes/personal-github-git-broker.d.ts +29 -0
- package/dist/routes/personal-github.d.ts +3 -0
- package/dist/routes/pr-review-github.d.ts +3 -0
- package/dist/routes/pr-review.d.ts +3 -0
- package/dist/routes/session-artifact-associations.d.ts +4 -0
- package/dist/routes/session-history-imports.d.ts +9 -0
- package/dist/routes/sessions.d.ts +44 -6
- package/dist/routes/skill-content.d.ts +4 -0
- package/dist/routes/skill-install-authority.d.ts +6 -0
- package/dist/routes/subscription-account-pools.d.ts +34 -0
- package/dist/routes/subscription-pool-access.d.ts +16 -0
- package/dist/routes/supergrok.d.ts +6 -1
- package/dist/routes/usage-allowances.d.ts +12 -0
- package/dist/routes/user-resource-authorities.d.ts +3 -0
- package/dist/routes/workspace-artifacts.d.ts +2 -1
- package/dist/routes/workspace-capture.d.ts +10 -2
- package/dist/routes/workspace-integrations.d.ts +35 -0
- package/dist/routes/workspace-learning.d.ts +3 -0
- package/dist/routes/workspace-model-providers.d.ts +4 -0
- package/dist/routes/workspaces.d.ts +29 -0
- package/dist/sandbox/auth-callout.d.ts +8 -0
- package/dist/sandbox/channel-a.d.ts +19 -1
- package/dist/sandbox/connection-authority.d.ts +3 -0
- package/dist/sandbox/enrollment.d.ts +9 -1
- package/dist/sandbox/machines.d.ts +5 -2
- package/dist/sandbox/metrics-ingestion.d.ts +28 -20
- package/dist/sandbox/rematerialize.d.ts +2 -0
- package/dist/sandbox/session-attach-variable-sets.d.ts +30 -0
- package/dist/sandbox/viewer.d.ts +26 -1
- package/dist/sandbox-file-artifacts.d.ts +50 -0
- package/dist/scheduled-task-deletion.d.ts +13 -0
- package/dist/session-create-observability.d.ts +5 -0
- package/dist/session-event-view-MPS2OZD3.js +292 -0
- package/dist/session-event-view-MPS2OZD3.js.map +1 -0
- package/dist/site-session-origin.d.ts +13 -0
- package/dist/site-uploads.d.ts +41 -0
- package/dist/slack-reaction-files.d.ts +1 -1
- package/dist/temporal-schedule-cleanup.d.ts +1 -0
- package/dist/temporal-schedule-sync.d.ts +26 -0
- package/dist/transcription/providers/xai-subscription.d.ts +1 -0
- package/dist/transcription/service.d.ts +2 -1
- package/dist/work-discovery-observability.d.ts +33 -0
- package/dist/workspace-artifact-content.d.ts +28 -0
- package/dist/workspace-artifact-provenance.d.ts +7 -0
- package/dist/workspace-delete-observability.d.ts +10 -0
- package/dist/workspace-deletion.d.ts +6 -0
- package/dist/workspace-state-projection.d.ts +3 -5
- package/dist/workspace-tool-gateway-observability.d.ts +17 -0
- package/dist/workspace-tool-gateway.d.ts +123 -0
- package/dist/workspace-webhook-dispatch.d.ts +26 -0
- package/package.json +23 -19
- package/src/access-grant-rls.ts +75 -0
- package/src/admission-trace.ts +14 -0
- package/src/api-websocket.ts +23 -0
- package/src/app.ts +1967 -252
- package/src/artifact-catalog-cursor.ts +60 -0
- package/src/auth/managed-auth-attempt-context.ts +70 -0
- package/src/auth/managed-auth-rate-limits.ts +252 -0
- package/src/auth/managed-auth-session-adapter.ts +222 -0
- package/src/auth/managed-auth.ts +536 -60
- package/src/auth/managed-email.ts +174 -0
- 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 +307 -0
- package/src/auth/signup-funnel-metrics.ts +164 -0
- package/src/browser-controller-authority.ts +1 -186
- package/src/browser-ephemeral.ts +39 -0
- package/src/browser-state-authority.ts +1 -236
- package/src/claude-subscription-account-conflicts.ts +12 -0
- package/src/claude-subscription-account-usage.ts +48 -0
- package/src/claude-subscription-oauth.ts +362 -0
- package/src/claude-subscription-profile.ts +73 -0
- package/src/claude-subscription-usage.ts +97 -0
- package/src/claude-workspace-connection.ts +82 -0
- package/src/codemode.ts +194 -30
- package/src/codex-realtime.ts +8 -2
- package/src/company-brain-okf.ts +340 -0
- package/src/connected-machine-computer-access.ts +33 -0
- package/src/connection-ownership.ts +199 -0
- package/src/controller-data-plane.ts +81 -0
- package/src/editable-artifact-native-kernel.ts +26 -15
- package/src/editable-artifact-office-import.ts +28 -3
- package/src/editable-artifact-production.ts +23 -7
- package/src/editable-artifact-source-session.ts +123 -0
- package/src/editable-artifact-websocket.ts +27 -21
- package/src/editable-artifact-workspace-files.ts +31 -6
- package/src/fatal-process-boundary.ts +246 -0
- package/src/gateway-realtime.ts +1 -1
- package/src/github-access.ts +147 -5
- package/src/http/acting-person.ts +71 -0
- package/src/http/api-contract-compat.ts +49 -0
- package/src/http/api-error.ts +115 -1
- package/src/http/auth.ts +48 -0
- package/src/http/cors.ts +67 -0
- package/src/http/deprecation.ts +118 -0
- package/src/http/interaction-control-error.ts +164 -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/request-body.ts +127 -0
- package/src/http/request-source.ts +178 -0
- package/src/http/sse.ts +486 -132
- package/src/http/unmatched-route.ts +60 -0
- package/src/http/user-content.ts +158 -0
- package/src/http/websocket-upgrade-dispatch.ts +29 -0
- package/src/index.ts +157 -52
- package/src/integration-endpoint-test.ts +291 -0
- package/src/integrations/api-integrations.ts +98 -11
- package/src/integrations/atlassian.ts +474 -136
- package/src/integrations/connect-authority.ts +2 -0
- package/src/integrations/connect-callback-return.ts +86 -0
- package/src/integrations/fiken.ts +354 -64
- package/src/integrations/github-app-connect.ts +435 -0
- package/src/integrations/github-installation-proof.ts +60 -0
- package/src/integrations/github-lens-connect.ts +76 -0
- package/src/integrations/github-skill-source.ts +2 -142
- package/src/integrations/google-drive.ts +717 -225
- package/src/integrations/integration-commit-authority.ts +69 -0
- package/src/integrations/marketplace-plugin.ts +48 -0
- package/src/integrations/oauth-client.ts +1356 -459
- package/src/integrations/oauth-profiles.ts +537 -0
- package/src/integrations/oauth-return-path.ts +18 -0
- package/src/integrations/personal-github-repositories.ts +674 -0
- package/src/integrations/personal-github.ts +825 -0
- package/src/integrations/pr-review-provider.ts +246 -0
- package/src/integrations/provider-oauth.ts +250 -22
- package/src/integrations/slack-app-home.ts +300 -0
- package/src/integrations/slack-bot.ts +963 -239
- package/src/integrations/slack-file-upload-flow.ts +147 -0
- package/src/integrations/slack-install.ts +83 -0
- package/src/integrations/slack-interactions.ts +3167 -474
- package/src/integrations/slack-mrkdwn.ts +193 -0
- package/src/integrations/slack-routing.ts +337 -0
- package/src/integrations/slack-session-defaults.ts +224 -0
- package/src/integrations/slack-task-file-upload.ts +323 -0
- package/src/integrations/social-oauth.ts +213 -15
- package/src/interaction-agent-access.ts +48 -0
- package/src/interaction-frame-proxy.ts +409 -0
- package/src/interaction-metrics.ts +30 -0
- package/src/mcp/action-catalog-types.ts +9 -0
- package/src/mcp/action-catalog.gen.ts +6696 -0
- package/src/mcp/capability-account-readiness.ts +17 -0
- package/src/mcp/child-read-evidence.ts +19 -0
- package/src/mcp/command-read.ts +109 -0
- package/src/mcp/company-profile-agent-admin.ts +198 -0
- package/src/mcp/contract-input.ts +141 -0
- package/src/mcp/documents.ts +65 -377
- package/src/mcp/editable-artifacts.ts +12 -6
- package/src/mcp/files.ts +80 -43
- package/src/mcp/first-party-tool-permissions.ts +305 -0
- package/src/mcp/knowledge-entries.ts +322 -0
- package/src/mcp/orchestration-failure-diagnostic.ts +43 -0
- package/src/mcp/receipts.ts +34 -0
- package/src/mcp/request-abort.ts +44 -0
- package/src/mcp/scheduled-task-input.ts +76 -0
- package/src/mcp/scheduled-task-view.ts +44 -3
- package/src/mcp/server.ts +3030 -1267
- package/src/mcp/session-event-view.ts +383 -0
- package/src/mcp/session-view.ts +84 -3
- package/src/mcp/session-wait.ts +665 -0
- package/src/mcp-oauth.ts +1123 -0
- package/src/model-catalog.ts +91 -333
- package/src/observability.ts +15 -1
- package/src/organization-mcp.ts +397 -0
- package/src/organization-recovery-notifications.ts +103 -0
- package/src/routes/analytics-consent.ts +123 -0
- package/src/routes/api-integrations.ts +364 -74
- package/src/routes/api-keys.ts +336 -10
- package/src/routes/artifact-catalog.ts +279 -0
- package/src/routes/automations.ts +768 -0
- package/src/routes/billing.ts +461 -46
- package/src/routes/browser-sessions.ts +780 -112
- package/src/routes/canonical-human-identities.ts +90 -14
- package/src/routes/capabilities.ts +107 -6
- package/src/routes/channels.ts +20 -3
- package/src/routes/claude-subscription-accounts.ts +334 -0
- package/src/routes/claude-subscription-oauth.ts +142 -0
- package/src/routes/client-errors.ts +362 -0
- package/src/routes/codex.ts +833 -116
- package/src/routes/company-brain.ts +322 -0
- package/src/routes/company-profile.ts +65 -1
- package/src/routes/computer-sessions.ts +557 -106
- package/src/routes/connect.ts +1938 -0
- package/src/routes/connections.ts +1039 -349
- package/src/routes/documents.ts +488 -287
- package/src/routes/editable-artifacts.ts +79 -9
- package/src/routes/enrollments.ts +135 -39
- package/src/routes/environments.ts +154 -58
- package/src/routes/external-identity-links.ts +201 -0
- package/src/routes/feedback.ts +113 -0
- package/src/routes/files.ts +267 -33
- package/src/routes/github-browser-pages.ts +162 -0
- package/src/routes/github.ts +446 -144
- package/src/routes/insights-response-cache.ts +83 -0
- package/src/routes/insights-usage.ts +345 -0
- package/src/routes/insights.ts +153 -19
- package/src/routes/install.ts +133 -38
- package/src/routes/integration-facets.ts +107 -33
- package/src/routes/interaction-resources.ts +30 -3
- package/src/routes/knowledge.ts +488 -0
- package/src/routes/machines.ts +313 -15
- package/src/routes/managed-auth-session-sets.ts +1218 -0
- package/src/routes/managed-onboarding.ts +337 -0
- package/src/routes/managed-sign-in-methods.ts +433 -0
- package/src/routes/memory-slack-publications.ts +3 -2
- package/src/routes/model-connection-access.ts +208 -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 +178 -0
- package/src/routes/organization-memberships.ts +1019 -27
- package/src/routes/organization-model-providers.ts +293 -0
- package/src/routes/organization-recovery.ts +325 -0
- package/src/routes/organization-service-accounts.ts +128 -0
- package/src/routes/organization-sessions.ts +350 -0
- package/src/routes/personal-github-git-broker.ts +785 -0
- package/src/routes/personal-github.ts +370 -0
- package/src/routes/plugins.ts +251 -22
- package/src/routes/pr-review-github.ts +881 -0
- package/src/routes/pr-review.ts +622 -0
- package/src/routes/preference-registry.ts +12 -93
- package/src/routes/rigs.ts +167 -50
- package/src/routes/scheduled-tasks.ts +346 -41
- package/src/routes/session-artifact-associations.ts +87 -0
- package/src/routes/session-history-imports.ts +280 -0
- package/src/routes/sessions.ts +2306 -264
- package/src/routes/skill-content.ts +297 -0
- package/src/routes/skill-install-authority.ts +64 -0
- package/src/routes/skills.ts +62 -9
- package/src/routes/social.ts +46 -18
- package/src/routes/subscription-account-pools.ts +436 -0
- package/src/routes/subscription-pool-access.ts +126 -0
- package/src/routes/supergrok.ts +219 -303
- package/src/routes/transcription-recordings.ts +38 -3
- package/src/routes/transcriptions.ts +4 -0
- package/src/routes/usage-allowances.ts +378 -0
- package/src/routes/user-resource-authorities.ts +138 -0
- package/src/routes/video-generation.ts +14 -10
- package/src/routes/workspace-artifacts.ts +275 -69
- package/src/routes/workspace-capture.ts +21 -0
- package/src/routes/workspace-integrations.ts +576 -0
- package/src/routes/workspace-learning.ts +159 -0
- package/src/routes/workspace-model-providers.ts +148 -0
- package/src/routes/workspace-state.ts +38 -25
- package/src/routes/workspaces.ts +1004 -127
- package/src/sandbox/auth-callout.ts +96 -19
- package/src/sandbox/channel-a.ts +323 -24
- package/src/sandbox/connection-authority.ts +3 -0
- package/src/sandbox/enrollment.ts +81 -6
- package/src/sandbox/machines.ts +218 -76
- package/src/sandbox/metrics-ingestion.ts +411 -62
- package/src/sandbox/rematerialize.ts +121 -19
- package/src/sandbox/session-attach-variable-sets.ts +131 -0
- package/src/sandbox/viewer.ts +280 -25
- package/src/sandbox-file-artifacts.ts +413 -0
- package/src/scheduled-task-deletion.ts +138 -0
- package/src/session-create-observability.ts +46 -0
- package/src/session-realtime-context.ts +6 -3
- package/src/site-session-origin.ts +48 -0
- package/src/site-uploads.ts +224 -0
- package/src/slack-reaction-files.ts +16 -5
- package/src/temporal-schedule-cleanup.ts +13 -0
- package/src/temporal-schedule-sync.ts +74 -0
- package/src/transcription/providers/codex-subscription.ts +2 -0
- package/src/transcription/providers/openai.ts +1 -0
- package/src/transcription/providers/xai-subscription.ts +49 -3
- package/src/transcription/segmenter.ts +8 -2
- package/src/transcription/service.ts +43 -6
- package/src/work-discovery-observability.ts +121 -0
- package/src/workspace-artifact-content.ts +144 -0
- package/src/workspace-artifact-provenance.ts +104 -0
- package/src/workspace-delete-observability.ts +75 -0
- package/src/workspace-deletion.ts +73 -0
- package/src/workspace-state-projection.ts +18 -148
- package/src/workspace-tool-gateway-observability.ts +100 -0
- package/src/workspace-tool-gateway.ts +870 -0
- package/src/workspace-webhook-dispatch.ts +190 -0
- package/src/xai-subscription-auth.ts +9 -2
- package/dist/chunk-WCXHI3FF.js +0 -49920
- package/dist/chunk-WCXHI3FF.js.map +0 -1
- package/dist/routes/packs.d.ts +0 -3
- package/src/routes/packs.ts +0 -729
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ToolGatewayIdentity, type WorkspaceArtifactSourceBundle as WorkspaceArtifactSourceBundleValue, type WorkspaceArtifactVersion } from "@opengeni/contracts";
|
|
2
|
+
import type { ObjectStorageDependency } from "@opengeni/core";
|
|
3
|
+
export type PreparedWorkspaceArtifactContent = {
|
|
4
|
+
contentKey: string;
|
|
5
|
+
contentSha256: null;
|
|
6
|
+
sizeBytes: number;
|
|
7
|
+
sourceKey: string | null;
|
|
8
|
+
sourceSha256: null;
|
|
9
|
+
sourceSizeBytes: number | null;
|
|
10
|
+
requestedTools?: ToolGatewayIdentity[];
|
|
11
|
+
persistContent: () => Promise<void>;
|
|
12
|
+
discardContent: () => Promise<void>;
|
|
13
|
+
};
|
|
14
|
+
export declare function prepareWorkspaceArtifactContent(objectStorage: NonNullable<ObjectStorageDependency>, workspaceId: string, input: {
|
|
15
|
+
html: string;
|
|
16
|
+
source?: WorkspaceArtifactSourceBundleValue;
|
|
17
|
+
requestedTools?: ToolGatewayIdentity[];
|
|
18
|
+
}): PreparedWorkspaceArtifactContent;
|
|
19
|
+
export declare function readWorkspaceArtifactContent(objectStorage: NonNullable<ObjectStorageDependency>, input: {
|
|
20
|
+
contentKey: string;
|
|
21
|
+
sourceKey: string | null;
|
|
22
|
+
version: WorkspaceArtifactVersion;
|
|
23
|
+
}): Promise<{
|
|
24
|
+
html: string;
|
|
25
|
+
source: WorkspaceArtifactSourceBundleValue;
|
|
26
|
+
requestedTools: ToolGatewayIdentity[];
|
|
27
|
+
}>;
|
|
28
|
+
export declare function sourceBundleFromHtml(html: string): WorkspaceArtifactSourceBundleValue;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WorkspaceArtifactDetailResponse, WorkspaceArtifactListResponse, WorkspaceArtifactMutationResponse, WorkspaceArtifactVersion } from "@opengeni/contracts";
|
|
2
|
+
type CanReadSession = (sessionId: string) => Promise<boolean>;
|
|
3
|
+
export declare function redactWorkspaceArtifactListProvenance(response: WorkspaceArtifactListResponse): WorkspaceArtifactListResponse;
|
|
4
|
+
export declare function projectWorkspaceArtifactVersionProvenance(version: WorkspaceArtifactVersion, canReadSession: CanReadSession): Promise<WorkspaceArtifactVersion>;
|
|
5
|
+
export declare function projectWorkspaceArtifactDetailProvenance(detail: WorkspaceArtifactDetailResponse, canReadSession: CanReadSession): Promise<WorkspaceArtifactDetailResponse>;
|
|
6
|
+
export declare function projectWorkspaceArtifactMutationProvenance(response: WorkspaceArtifactMutationResponse, canReadSession: CanReadSession): Promise<WorkspaceArtifactMutationResponse>;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { WorkspaceDeleteObserver } from "@opengeni/db";
|
|
2
|
+
import type { Observability } from "@opengeni/observability";
|
|
3
|
+
/**
|
|
4
|
+
* Retain exact workspace deletion timing and inventory without putting tenant
|
|
5
|
+
* identifiers in metric labels. Observer failures never change deletion truth.
|
|
6
|
+
*/
|
|
7
|
+
export declare function workspaceDeleteObserver(observability: Observability | null | undefined, identity: {
|
|
8
|
+
accountId: string;
|
|
9
|
+
workspaceId: string;
|
|
10
|
+
}): WorkspaceDeleteObserver | undefined;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { type WorkspaceInstructionPolicyListResponse, type WorkspaceInstructionPolicySnapshot, type WorkspaceStateResponse as WorkspaceStateResponseType } from "@opengeni/contracts";
|
|
2
|
-
import type { WorkspaceStateMemoryRecord } from "@opengeni/db";
|
|
3
|
-
import type { DocumentInventory } from "@opengeni/documents";
|
|
1
|
+
import { type KnowledgeEntrySummary, type WorkspaceInstructionPolicyListResponse, type WorkspaceInstructionPolicySnapshot, type WorkspaceStateResponse as WorkspaceStateResponseType } from "@opengeni/contracts";
|
|
4
2
|
type KnowledgeProjectionInput = {
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
entries: Pick<KnowledgeEntrySummary, "id" | "scope" | "revision" | "updatedAt">[];
|
|
4
|
+
nextCursor: string | null;
|
|
7
5
|
};
|
|
8
6
|
type PreferenceGovernanceIdentity = {
|
|
9
7
|
id: string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ToolGatewayCatalogEntry } from "@opengeni/contracts";
|
|
2
|
+
import type { Observability } from "@opengeni/observability";
|
|
3
|
+
export type WorkspaceToolGatewayAdapter = "http" | "mcp";
|
|
4
|
+
export type WorkspaceToolGatewayOperation = "approval" | "call";
|
|
5
|
+
export type WorkspaceToolGatewayOutcome = "ok" | "tool_error" | "approval_required" | "catalog_stale" | "invalid_input" | "not_found" | "rate_limited" | "failed";
|
|
6
|
+
/**
|
|
7
|
+
* Low-cardinality gateway telemetry shared by HTTP/SDK/Site and aggregate MCP
|
|
8
|
+
* adapters. Tool names, workspace/subject ids, arguments, results, credentials,
|
|
9
|
+
* and approval tokens are excluded by construction.
|
|
10
|
+
*/
|
|
11
|
+
export declare function startWorkspaceToolGatewayObservation(observability: Observability | null | undefined, input: {
|
|
12
|
+
adapter: WorkspaceToolGatewayAdapter;
|
|
13
|
+
operation: WorkspaceToolGatewayOperation;
|
|
14
|
+
source: ToolGatewayCatalogEntry["source"] | "aggregate";
|
|
15
|
+
}): {
|
|
16
|
+
end: (outcome: WorkspaceToolGatewayOutcome) => void;
|
|
17
|
+
};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { resolveSiteSessionOrigin } from "./site-session-origin.js";
|
|
2
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
3
|
+
import type { Settings } from "@opengeni/config";
|
|
4
|
+
import { ToolGatewayDeclarationsResponse, type AccessGrant, type ToolGatewayCatalog, type ToolGatewayIdentity } from "@opengeni/contracts";
|
|
5
|
+
import { type AccessGrantAuthorization, type ApiRouteDeps } from "@opengeni/core";
|
|
6
|
+
import { buildConnectionTokenResolver, consumeToolGatewayApproval, getWorkspaceArtifactContentRef, issueToolGatewayApproval } from "@opengeni/db";
|
|
7
|
+
import { type PreparedWorkspaceToolGatewayTools } from "@opengeni/runtime/workspace-tool-gateway";
|
|
8
|
+
import { type ToolGatewayDefinition } from "@opengeni/tool-gateway";
|
|
9
|
+
import type { Observability } from "@opengeni/observability";
|
|
10
|
+
export type PreparedWorkspaceToolGateway = Pick<PreparedWorkspaceToolGatewayTools, "toolGateway" | "toolGatewayCatalog" | "close"> & {
|
|
11
|
+
toolGateway: NonNullable<PreparedWorkspaceToolGatewayTools["toolGateway"]>;
|
|
12
|
+
toolGatewayCatalog: NonNullable<PreparedWorkspaceToolGatewayTools["toolGatewayCatalog"]>;
|
|
13
|
+
reauthorize?: () => Promise<void>;
|
|
14
|
+
};
|
|
15
|
+
type WorkspaceSiteToolContext = {
|
|
16
|
+
siteArtifactId: string;
|
|
17
|
+
siteVersionId: string;
|
|
18
|
+
identity: {
|
|
19
|
+
serverId: string;
|
|
20
|
+
toolName: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
type AuthorizeWorkspaceSiteTool = (db: ApiRouteDeps["db"], grant: AccessGrant, context: WorkspaceSiteToolContext) => Promise<void>;
|
|
24
|
+
export declare function grantUsesAttemptScopedMcp(grant: AccessGrant): boolean;
|
|
25
|
+
export declare function requireWorkspaceToolGatewayGrant(grant: AccessGrant): void;
|
|
26
|
+
export declare function requireWorkspaceToolGatewayAuthorization(authorization: AccessGrantAuthorization): AccessGrant;
|
|
27
|
+
export declare function prepareWorkspaceToolGateway(routeDeps: ApiRouteDeps, authorization: AccessGrantAuthorization): Promise<PreparedWorkspaceToolGateway>;
|
|
28
|
+
export declare function prepareMcpOAuthWorkspaceToolGateway(routeDeps: ApiRouteDeps, grant: AccessGrant, allowedIdentities: readonly {
|
|
29
|
+
serverId: string;
|
|
30
|
+
toolName: string;
|
|
31
|
+
}[]): Promise<PreparedWorkspaceToolGateway>;
|
|
32
|
+
export declare function prepareWorkspaceToolGatewayForGrant(routeDeps: ApiRouteDeps, grant: AccessGrant, allowedIdentities?: readonly {
|
|
33
|
+
serverId: string;
|
|
34
|
+
toolName: string;
|
|
35
|
+
}[]): Promise<PreparedWorkspaceToolGateway>;
|
|
36
|
+
/** Keep live caller authority independent of native connection acquisition and refresh. */
|
|
37
|
+
export declare function withWorkspaceConnectionAuthorization(resolve: ReturnType<typeof buildConnectionTokenResolver>, reauthorize?: () => Promise<void>): ReturnType<typeof buildConnectionTokenResolver>;
|
|
38
|
+
export declare function workspaceToolGatewayDefinitionFilter(settings: Pick<Settings, "allowedFirstPartyMcpTools">, allowedIdentities?: readonly ToolGatewayIdentity[]): (definition: ToolGatewayDefinition) => boolean;
|
|
39
|
+
export declare function workspaceToolGatewaySettingsForGrant(settings: Settings, grant: AccessGrant, allowedIdentities?: readonly {
|
|
40
|
+
serverId: string;
|
|
41
|
+
toolName: string;
|
|
42
|
+
}[]): Settings;
|
|
43
|
+
export declare function buildWorkspaceToolGatewayMcpServer(prepared: PreparedWorkspaceToolGateway, grant: AccessGrant, observability?: Observability): Server;
|
|
44
|
+
export declare function callWorkspaceToolGateway(prepared: PreparedWorkspaceToolGateway, grant: AccessGrant, input: unknown, db?: ApiRouteDeps["db"], consumeApproval?: typeof consumeToolGatewayApproval, observability?: Observability, authorizeSiteTool?: AuthorizeWorkspaceSiteTool, resolveOrigin?: typeof resolveSiteSessionOrigin): Promise<{
|
|
45
|
+
operationId: string;
|
|
46
|
+
catalogDigest: string;
|
|
47
|
+
result: {
|
|
48
|
+
[x: string]: unknown;
|
|
49
|
+
content: ({
|
|
50
|
+
[x: string]: unknown;
|
|
51
|
+
type: "text";
|
|
52
|
+
text: string;
|
|
53
|
+
annotations?: Record<string, import("zod").JSONType> | undefined;
|
|
54
|
+
_meta?: Record<string, import("zod").JSONType> | undefined;
|
|
55
|
+
} | {
|
|
56
|
+
[x: string]: unknown;
|
|
57
|
+
type: "image";
|
|
58
|
+
data: string;
|
|
59
|
+
mimeType: string;
|
|
60
|
+
annotations?: Record<string, import("zod").JSONType> | undefined;
|
|
61
|
+
_meta?: Record<string, import("zod").JSONType> | undefined;
|
|
62
|
+
} | {
|
|
63
|
+
[x: string]: unknown;
|
|
64
|
+
type: "audio";
|
|
65
|
+
data: string;
|
|
66
|
+
mimeType: string;
|
|
67
|
+
annotations?: Record<string, import("zod").JSONType> | undefined;
|
|
68
|
+
_meta?: Record<string, import("zod").JSONType> | undefined;
|
|
69
|
+
} | {
|
|
70
|
+
[x: string]: unknown;
|
|
71
|
+
type: "resource_link";
|
|
72
|
+
name: string;
|
|
73
|
+
title?: string | undefined;
|
|
74
|
+
uri: string;
|
|
75
|
+
description?: string | undefined;
|
|
76
|
+
mimeType?: string | undefined;
|
|
77
|
+
size?: number | undefined;
|
|
78
|
+
icons?: {
|
|
79
|
+
src: string;
|
|
80
|
+
mimeType?: string | undefined;
|
|
81
|
+
sizes?: string[] | undefined;
|
|
82
|
+
theme?: "dark" | "light" | undefined;
|
|
83
|
+
}[] | undefined;
|
|
84
|
+
annotations?: Record<string, import("zod").JSONType> | undefined;
|
|
85
|
+
_meta?: Record<string, import("zod").JSONType> | undefined;
|
|
86
|
+
} | {
|
|
87
|
+
[x: string]: unknown;
|
|
88
|
+
type: "resource";
|
|
89
|
+
resource: {
|
|
90
|
+
[x: string]: unknown;
|
|
91
|
+
uri: string;
|
|
92
|
+
mimeType?: string | undefined;
|
|
93
|
+
text: string;
|
|
94
|
+
_meta?: Record<string, import("zod").JSONType> | undefined;
|
|
95
|
+
} | {
|
|
96
|
+
[x: string]: unknown;
|
|
97
|
+
uri: string;
|
|
98
|
+
mimeType?: string | undefined;
|
|
99
|
+
blob: string;
|
|
100
|
+
_meta?: Record<string, import("zod").JSONType> | undefined;
|
|
101
|
+
};
|
|
102
|
+
annotations?: Record<string, import("zod").JSONType> | undefined;
|
|
103
|
+
_meta?: Record<string, import("zod").JSONType> | undefined;
|
|
104
|
+
})[];
|
|
105
|
+
structuredContent?: Record<string, import("zod").JSONType> | undefined;
|
|
106
|
+
isError?: boolean | undefined;
|
|
107
|
+
_meta?: Record<string, import("zod").JSONType> | undefined;
|
|
108
|
+
};
|
|
109
|
+
}>;
|
|
110
|
+
export declare function approveWorkspaceToolGatewayCall(prepared: PreparedWorkspaceToolGateway, grant: AccessGrant, db: ApiRouteDeps["db"], input: unknown, issueApproval?: typeof issueToolGatewayApproval, observability?: Observability): Promise<{
|
|
111
|
+
operationId: string;
|
|
112
|
+
catalogDigest: string;
|
|
113
|
+
identity: {
|
|
114
|
+
serverId: string;
|
|
115
|
+
toolName: string;
|
|
116
|
+
};
|
|
117
|
+
approvalToken: string;
|
|
118
|
+
expiresAt: string;
|
|
119
|
+
}>;
|
|
120
|
+
export declare function requireWorkspaceSiteToolAuthorization(db: ApiRouteDeps["db"], grant: AccessGrant, context: WorkspaceSiteToolContext, resolveVersion?: typeof getWorkspaceArtifactContentRef): Promise<void>;
|
|
121
|
+
export declare function toolGatewayCatalogResponse(catalog: ToolGatewayCatalog): ToolGatewayCatalog;
|
|
122
|
+
export declare function workspaceToolGatewayDeclarations(prepared: PreparedWorkspaceToolGateway): ToolGatewayDeclarationsResponse;
|
|
123
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type Settings } from "@opengeni/config";
|
|
2
|
+
import { type Database } from "@opengeni/db";
|
|
3
|
+
import { pinnedFetch } from "@opengeni/network";
|
|
4
|
+
import type { Observability } from "@opengeni/observability";
|
|
5
|
+
export declare const WORKSPACE_WEBHOOK_DISPATCH_BATCH_SIZE = 32;
|
|
6
|
+
export type WorkspaceWebhookDispatchDeps = {
|
|
7
|
+
db: Database;
|
|
8
|
+
settings: Settings;
|
|
9
|
+
observability?: Pick<Observability, "info" | "warn" | "error">;
|
|
10
|
+
fetch?: typeof pinnedFetch;
|
|
11
|
+
};
|
|
12
|
+
export type WorkspaceWebhookBatchResult = {
|
|
13
|
+
claimed: number;
|
|
14
|
+
delivered: number;
|
|
15
|
+
failed: number;
|
|
16
|
+
};
|
|
17
|
+
/** Claim and deliver one globally bounded batch. At-least-once: receivers dedupe on event id. */
|
|
18
|
+
export declare function drainWorkspaceWebhookDeliveries(deps: WorkspaceWebhookDispatchDeps): Promise<WorkspaceWebhookBatchResult>;
|
|
19
|
+
/**
|
|
20
|
+
* One non-overlapping loop per API replica. PostgreSQL claims coordinate
|
|
21
|
+
* replicas; a crash only delays a delivery until its claim expires.
|
|
22
|
+
*/
|
|
23
|
+
export declare function startWorkspaceWebhookDispatchPump(deps: WorkspaceWebhookDispatchDeps, options?: {
|
|
24
|
+
intervalMs?: number;
|
|
25
|
+
drain?: (deps: WorkspaceWebhookDispatchDeps) => Promise<WorkspaceWebhookBatchResult>;
|
|
26
|
+
}): () => Promise<void>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeni/api-router",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "OpenGeni HTTP surface: the Hono adapter/router (createApp), routes, MCP HTTP transport, and HTTP access adapters over @opengeni/core. An engine-distribution surface — its runtime closure includes engine-internal packages.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -41,32 +41,36 @@
|
|
|
41
41
|
"@aws-sdk/client-s3": "^3.1044.0",
|
|
42
42
|
"@aws-sdk/s3-request-presigner": "^3.1044.0",
|
|
43
43
|
"@hono/zod-validator": "^0.7.6",
|
|
44
|
-
"@llamaindex/liteparse": "
|
|
44
|
+
"@llamaindex/liteparse": "2.14.2",
|
|
45
45
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
46
|
-
"@opengeni/agent-proto": "
|
|
47
|
-
"@opengeni/artifact-tool": "
|
|
48
|
-
"@opengeni/capabilities": "
|
|
49
|
-
"@opengeni/codemode": "
|
|
50
|
-
"@opengeni/codex": "
|
|
51
|
-
"@opengeni/config": "
|
|
52
|
-
"@opengeni/contracts": "
|
|
53
|
-
"@opengeni/core": "
|
|
54
|
-
"@opengeni/db": "
|
|
55
|
-
"@opengeni/documents": "
|
|
56
|
-
"@opengeni/events": "
|
|
57
|
-
"@opengeni/github": "
|
|
58
|
-
"@opengeni/
|
|
59
|
-
"@opengeni/
|
|
60
|
-
"@opengeni/
|
|
61
|
-
"@opengeni/
|
|
62
|
-
"@opengeni/
|
|
46
|
+
"@opengeni/agent-proto": "1.0.0",
|
|
47
|
+
"@opengeni/artifact-tool": "1.0.0",
|
|
48
|
+
"@opengeni/capabilities": "1.0.0",
|
|
49
|
+
"@opengeni/codemode": "1.0.0",
|
|
50
|
+
"@opengeni/codex": "1.0.0",
|
|
51
|
+
"@opengeni/config": "1.0.0",
|
|
52
|
+
"@opengeni/contracts": "1.0.0",
|
|
53
|
+
"@opengeni/core": "1.0.0",
|
|
54
|
+
"@opengeni/db": "1.0.0",
|
|
55
|
+
"@opengeni/documents": "1.0.0",
|
|
56
|
+
"@opengeni/events": "1.0.0",
|
|
57
|
+
"@opengeni/github": "1.0.0",
|
|
58
|
+
"@opengeni/interaction": "1.0.0",
|
|
59
|
+
"@opengeni/network": "1.0.0",
|
|
60
|
+
"@opengeni/observability": "1.0.0",
|
|
61
|
+
"@opengeni/runtime": "1.0.0",
|
|
62
|
+
"@opengeni/storage": "1.0.0",
|
|
63
|
+
"@opengeni/tool-gateway": "1.0.0",
|
|
64
|
+
"@opengeni/xai-subscription": "1.0.0",
|
|
63
65
|
"@temporalio/client": "^1.17.0",
|
|
64
66
|
"better-auth": "^1.6.14",
|
|
65
67
|
"hono": "^4.12.18",
|
|
68
|
+
"json-bigint": "^1.0.0",
|
|
66
69
|
"pg": "^8.21.0",
|
|
67
70
|
"resend": "^6.12.4",
|
|
68
71
|
"sharp": "^0.34.5",
|
|
69
72
|
"stripe": "^22.2.0",
|
|
73
|
+
"ws": "8.21.1",
|
|
70
74
|
"zod": "^4.2.1"
|
|
71
75
|
},
|
|
72
76
|
"engines": {
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { AccessGrant } from "@opengeni/contracts";
|
|
2
|
+
import {
|
|
3
|
+
requireLiveAgentAttemptAuthorization,
|
|
4
|
+
SessionAuthorizationDeniedError,
|
|
5
|
+
type ApiRouteDeps,
|
|
6
|
+
} from "@opengeni/core";
|
|
7
|
+
import {
|
|
8
|
+
freezeAgentLearningPolicy,
|
|
9
|
+
withSessionRlsActorContext,
|
|
10
|
+
withCreditDebitAttribution,
|
|
11
|
+
} from "@opengeni/db";
|
|
12
|
+
import { HTTPException } from "hono/http-exception";
|
|
13
|
+
|
|
14
|
+
export async function withAccessGrantSessionRlsContext<T>(
|
|
15
|
+
deps: Pick<ApiRouteDeps, "db">,
|
|
16
|
+
grant: AccessGrant,
|
|
17
|
+
fn: () => Promise<T>,
|
|
18
|
+
): Promise<T> {
|
|
19
|
+
if (grant.principalKind !== "agent_attempt") {
|
|
20
|
+
return await withCreditDebitAttribution(
|
|
21
|
+
grant.principalKind === "human_session"
|
|
22
|
+
? { kind: "human", initiatingHumanSubjectId: grant.subjectId }
|
|
23
|
+
: grant.principalKind === "service" ||
|
|
24
|
+
grant.principalKind === "api_key" ||
|
|
25
|
+
grant.principalKind === "configured_key" ||
|
|
26
|
+
grant.principalKind === "mcp_gateway"
|
|
27
|
+
? { kind: "service" }
|
|
28
|
+
: { kind: "unknown" },
|
|
29
|
+
() => withSessionRlsActorContext({ subjectId: grant.subjectId }, fn),
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
const callerSessionId = grant.metadata?.sessionId;
|
|
33
|
+
if (typeof callerSessionId !== "string") {
|
|
34
|
+
throw new HTTPException(403, { message: "agent attempt authority is invalid" });
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const actor = await requireLiveAgentAttemptAuthorization(deps.db, grant, callerSessionId);
|
|
38
|
+
const learning = await freezeAgentLearningPolicy(deps.db, {
|
|
39
|
+
accountId: grant.accountId,
|
|
40
|
+
workspaceId: grant.workspaceId,
|
|
41
|
+
actor: {
|
|
42
|
+
kind: "agent",
|
|
43
|
+
sessionId: actor.callerSessionId,
|
|
44
|
+
turnId: actor.turnId,
|
|
45
|
+
attemptId: actor.attemptId,
|
|
46
|
+
executionGeneration: actor.executionGeneration,
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
return await withCreditDebitAttribution(
|
|
50
|
+
{
|
|
51
|
+
kind: "turn",
|
|
52
|
+
turnId: actor.turnId,
|
|
53
|
+
initiatingHumanSubjectId: actor.initiatingHumanSubjectId ?? null,
|
|
54
|
+
},
|
|
55
|
+
() =>
|
|
56
|
+
withSessionRlsActorContext(
|
|
57
|
+
{
|
|
58
|
+
subjectId: actor.subjectId,
|
|
59
|
+
initiatingHumanSubjectId: actor.initiatingHumanSubjectId,
|
|
60
|
+
privateFileOwnerSubjectId:
|
|
61
|
+
learning.defaultScope === "personal" ? learning.subjectId : null,
|
|
62
|
+
},
|
|
63
|
+
fn,
|
|
64
|
+
),
|
|
65
|
+
);
|
|
66
|
+
} catch (error) {
|
|
67
|
+
if (error instanceof SessionAuthorizationDeniedError) {
|
|
68
|
+
throw new HTTPException(403, {
|
|
69
|
+
message: "agent attempt authority is invalid",
|
|
70
|
+
cause: error,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Observability } from "@opengeni/observability";
|
|
2
|
+
|
|
3
|
+
/** Only committed, non-replayed server event identities mint admission anchors. */
|
|
4
|
+
export function recordAcceptedApiAdmission(
|
|
5
|
+
observability: Observability | undefined,
|
|
6
|
+
result: { accepted: { id: string }; replay: boolean },
|
|
7
|
+
): void {
|
|
8
|
+
if (result.replay) return;
|
|
9
|
+
try {
|
|
10
|
+
observability?.recordAdmissionTrace(result.accepted.id);
|
|
11
|
+
} catch {
|
|
12
|
+
// Telemetry must never turn a committed admission into an HTTP failure.
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type ApiWebSocketConnection = Readonly<{
|
|
2
|
+
attach(socket: ApiWebSocketLike): void;
|
|
3
|
+
receive(message: string | Uint8Array | ArrayBuffer): void;
|
|
4
|
+
transportClosed(): void;
|
|
5
|
+
}>;
|
|
6
|
+
|
|
7
|
+
export type ApiWebSocketLike = Readonly<{
|
|
8
|
+
data: ApiWebSocketConnection;
|
|
9
|
+
send(data: Uint8Array, compress?: boolean): number;
|
|
10
|
+
close(code?: number, reason?: string): void;
|
|
11
|
+
readonly bufferedAmount?: number;
|
|
12
|
+
getBufferedAmount?(): number;
|
|
13
|
+
}>;
|
|
14
|
+
|
|
15
|
+
export type ApiWebSocketUpgradeServer = Readonly<{
|
|
16
|
+
upgrade(
|
|
17
|
+
request: Request,
|
|
18
|
+
options: Readonly<{
|
|
19
|
+
data: ApiWebSocketConnection;
|
|
20
|
+
headers: HeadersInit;
|
|
21
|
+
}>,
|
|
22
|
+
): boolean;
|
|
23
|
+
}>;
|