@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
package/src/mcp/documents.ts
CHANGED
|
@@ -1,433 +1,121 @@
|
|
|
1
|
+
import { searchKnowledgeEntries } from "@opengeni/core";
|
|
2
|
+
import type { Settings } from "@opengeni/config";
|
|
3
|
+
import { KnowledgeEntryListRequest } from "@opengeni/contracts";
|
|
4
|
+
import type { DocumentServices } from "@opengeni/documents";
|
|
1
5
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
ListIndexedDocumentsResponse,
|
|
8
|
-
} from "@opengeni/contracts";
|
|
9
|
-
import {
|
|
10
|
-
browseEffectiveKnowledge,
|
|
11
|
-
getEffectiveKnowledgeRecord,
|
|
12
|
-
getDocumentChunk,
|
|
13
|
-
listDocumentBases,
|
|
14
|
-
listEffectiveIndexedDocuments,
|
|
15
|
-
searchEffectiveKnowledge,
|
|
16
|
-
searchEffectiveDocuments,
|
|
17
|
-
type DocumentAccessFilter,
|
|
18
|
-
type DocumentServices,
|
|
19
|
-
} from "@opengeni/documents";
|
|
20
|
-
import { createKnowledgeMemory, listKnowledgeMemories, type Database } from "@opengeni/db";
|
|
6
|
+
getKnowledgeEntry,
|
|
7
|
+
listKnowledgeEntries,
|
|
8
|
+
type KnowledgeContext,
|
|
9
|
+
type Database,
|
|
10
|
+
} from "@opengeni/db";
|
|
21
11
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
22
12
|
import * as z from "zod/v4";
|
|
23
|
-
import { mcpMutationReceipt } from "./receipts";
|
|
24
|
-
|
|
25
|
-
const SearchInputSchema = {
|
|
26
|
-
query: z.string().min(1),
|
|
27
|
-
baseIds: z.array(z.string().uuid()).optional(),
|
|
28
|
-
limit: z.number().int().positive().max(50).optional(),
|
|
29
|
-
mode: z.enum(["hybrid", "vector", "keyword"]).optional(),
|
|
30
|
-
sourceKinds: z
|
|
31
|
-
.array(
|
|
32
|
-
z.enum([
|
|
33
|
-
"manual_upload",
|
|
34
|
-
"meeting_transcript",
|
|
35
|
-
"repository",
|
|
36
|
-
"email",
|
|
37
|
-
"chat",
|
|
38
|
-
"document",
|
|
39
|
-
"web",
|
|
40
|
-
"other",
|
|
41
|
-
]),
|
|
42
|
-
)
|
|
43
|
-
.optional(),
|
|
44
|
-
aclTags: z.array(z.string().min(1)).optional(),
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const MemoryKindSchema = z.enum(["semantic", "episodic", "procedural", "decision", "preference"]);
|
|
48
|
-
const SourceRefSchema = z.object({
|
|
49
|
-
kind: z.enum(["document_chunk", "document", "session_event", "memory", "external"]),
|
|
50
|
-
id: z.string().min(1),
|
|
51
|
-
uri: z.string().min(1).optional(),
|
|
52
|
-
title: z.string().min(1).optional(),
|
|
53
|
-
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
54
|
-
});
|
|
55
13
|
|
|
14
|
+
/** The docs endpoint is a transport for canonical Knowledge retrieval. Legacy
|
|
15
|
+
* chunk/base retrieval is retired: it cannot bypass pending Knowledge review. */
|
|
56
16
|
export function buildDocumentsMcpServer(
|
|
57
17
|
db: Database,
|
|
58
18
|
accountId: string,
|
|
59
19
|
workspaceId: string,
|
|
60
20
|
documentServices: DocumentServices,
|
|
61
|
-
options: {
|
|
62
|
-
createdBySessionId?: string | undefined;
|
|
63
|
-
/** Immutable human subject whose agent is making this retrieval request. */
|
|
64
|
-
initiatingSubjectId: string;
|
|
65
|
-
},
|
|
21
|
+
options: { knowledge: KnowledgeContext; settings?: Settings },
|
|
66
22
|
): McpServer {
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
});
|
|
71
|
-
// This server is the agent retrieval surface. Agent-disabled documents are
|
|
72
|
-
// never reachable. Workspace-visible documents are shared; private
|
|
73
|
-
// documents are available only to the creating subject's agent.
|
|
74
|
-
const agentAccess: DocumentAccessFilter = {
|
|
75
|
-
agentOnly: true,
|
|
76
|
-
viewerSubjectId: options.initiatingSubjectId,
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
server.registerTool(
|
|
80
|
-
"list_document_bases",
|
|
81
|
-
{
|
|
82
|
-
description: "List document bases available for retrieval.",
|
|
83
|
-
inputSchema: {},
|
|
84
|
-
},
|
|
85
|
-
async () => ({
|
|
86
|
-
content: [{ type: "text", text: JSON.stringify(await listDocumentBases(db, workspaceId)) }],
|
|
87
|
-
}),
|
|
88
|
-
);
|
|
89
|
-
|
|
90
|
-
server.registerTool(
|
|
91
|
-
"search_documents",
|
|
92
|
-
{
|
|
93
|
-
description: "Search indexed documents with hybrid, vector, or keyword retrieval.",
|
|
94
|
-
inputSchema: SearchInputSchema,
|
|
95
|
-
},
|
|
96
|
-
async (input) =>
|
|
97
|
-
searchContent(
|
|
98
|
-
db,
|
|
99
|
-
accountId,
|
|
100
|
-
workspaceId,
|
|
101
|
-
documentServices,
|
|
102
|
-
input,
|
|
103
|
-
options.initiatingSubjectId,
|
|
104
|
-
),
|
|
105
|
-
);
|
|
106
|
-
|
|
23
|
+
const context = options.knowledge;
|
|
24
|
+
if (context.accountId !== accountId || context.workspaceId !== workspaceId)
|
|
25
|
+
throw new Error("Knowledge gateway authority mismatch");
|
|
26
|
+
const server = new McpServer({ name: "opengeni-knowledge", version: "2.0.0" });
|
|
107
27
|
server.registerTool(
|
|
108
28
|
"knowledge_search",
|
|
109
29
|
{
|
|
110
30
|
description:
|
|
111
|
-
"Search the
|
|
112
|
-
inputSchema:
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
documentServices,
|
|
120
|
-
input,
|
|
121
|
-
options.initiatingSubjectId,
|
|
122
|
-
),
|
|
123
|
-
);
|
|
124
|
-
|
|
125
|
-
server.registerTool(
|
|
126
|
-
"knowledge_get",
|
|
127
|
-
{
|
|
128
|
-
description:
|
|
129
|
-
"Fetch one stable Knowledge record by the id returned from knowledge_search or knowledge_browse. Authorization and agent access are rechecked before content or links are returned.",
|
|
130
|
-
inputSchema: { id: KnowledgeRecordId },
|
|
131
|
-
},
|
|
132
|
-
async ({ id }) => {
|
|
133
|
-
const record = await getEffectiveKnowledgeRecord(db, {
|
|
134
|
-
accountId,
|
|
135
|
-
workspaceId,
|
|
136
|
-
initiatingSubjectId: options.initiatingSubjectId,
|
|
137
|
-
id,
|
|
138
|
-
});
|
|
139
|
-
return {
|
|
140
|
-
content: [
|
|
141
|
-
{
|
|
142
|
-
type: "text",
|
|
143
|
-
text: record
|
|
144
|
-
? JSON.stringify(KnowledgeGetResponse.parse({ record }))
|
|
145
|
-
: `knowledge record not found: ${id}`,
|
|
146
|
-
},
|
|
147
|
-
],
|
|
148
|
-
isError: !record,
|
|
149
|
-
};
|
|
150
|
-
},
|
|
151
|
-
);
|
|
152
|
-
|
|
153
|
-
server.registerTool(
|
|
154
|
-
"knowledge_browse",
|
|
155
|
-
{
|
|
156
|
-
description:
|
|
157
|
-
"Browse authorized Knowledge without crawling folders. Omit parentId to list source documents; pass a document record id to inspect its chunks. Opaque cursors are bound to this user, workspace, parent, and filters.",
|
|
158
|
-
inputSchema: {
|
|
159
|
-
parentId: KnowledgeRecordId.optional(),
|
|
160
|
-
topic: z.string().min(1).max(256).optional(),
|
|
161
|
-
sourceKinds: SearchInputSchema.sourceKinds,
|
|
162
|
-
cursor: z.string().min(1).max(KNOWLEDGE_BROWSE_CURSOR_MAX_CHARS).optional(),
|
|
163
|
-
limit: z.number().int().positive().max(50).optional(),
|
|
164
|
-
},
|
|
165
|
-
},
|
|
166
|
-
async ({ parentId, topic, sourceKinds, cursor, limit }) => ({
|
|
31
|
+
"Search published structured Knowledge and retained source text in the current authorized scope. Use a concise subject or entity name first (for example Acme); omit scope to search all authorized scopes. If a query returns no entries, retry the key name alone in the same scope or browse groups before concluding the information is absent.",
|
|
32
|
+
inputSchema: KnowledgeEntryListRequest.omit({
|
|
33
|
+
view: true,
|
|
34
|
+
sessionId: true,
|
|
35
|
+
reviewBatchId: true,
|
|
36
|
+
}).shape,
|
|
37
|
+
},
|
|
38
|
+
async (input) => ({
|
|
167
39
|
content: [
|
|
168
40
|
{
|
|
169
41
|
type: "text",
|
|
170
42
|
text: JSON.stringify(
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
...(topic ? { topic } : {}),
|
|
178
|
-
...(sourceKinds ? { sourceKinds } : {}),
|
|
179
|
-
...(cursor ? { cursor } : {}),
|
|
180
|
-
...(limit ? { limit } : {}),
|
|
181
|
-
}),
|
|
43
|
+
await searchKnowledgeEntries(
|
|
44
|
+
db,
|
|
45
|
+
context,
|
|
46
|
+
input,
|
|
47
|
+
() => documentServices.embedder,
|
|
48
|
+
options.settings,
|
|
182
49
|
),
|
|
183
50
|
),
|
|
184
51
|
},
|
|
185
52
|
],
|
|
186
53
|
}),
|
|
187
54
|
);
|
|
188
|
-
|
|
189
55
|
server.registerTool(
|
|
190
|
-
"
|
|
191
|
-
{
|
|
192
|
-
description:
|
|
193
|
-
"List agent-authorized documents that became ready after an opaque checkpoint, ordered by durable indexing completion. Results include source and authority/ingestion provenance. Persist nextCheckpoint only after successfully processing the returned page, then pass it on the next scheduled run to avoid repeats.",
|
|
194
|
-
inputSchema: {
|
|
195
|
-
checkpoint: z.string().min(1).max(1_024).optional(),
|
|
196
|
-
limit: z.number().int().positive().max(100).optional(),
|
|
197
|
-
},
|
|
198
|
-
},
|
|
199
|
-
async ({ checkpoint, limit }) => ({
|
|
200
|
-
content: [
|
|
201
|
-
{
|
|
202
|
-
type: "text",
|
|
203
|
-
text: JSON.stringify(
|
|
204
|
-
ListIndexedDocumentsResponse.parse(
|
|
205
|
-
await listEffectiveIndexedDocuments(db, {
|
|
206
|
-
accountId,
|
|
207
|
-
workspaceId,
|
|
208
|
-
initiatingSubjectId: options.initiatingSubjectId,
|
|
209
|
-
...(checkpoint ? { checkpoint } : {}),
|
|
210
|
-
...(limit ? { limit } : {}),
|
|
211
|
-
}),
|
|
212
|
-
),
|
|
213
|
-
),
|
|
214
|
-
},
|
|
215
|
-
],
|
|
216
|
-
}),
|
|
217
|
-
);
|
|
218
|
-
|
|
219
|
-
server.registerTool(
|
|
220
|
-
"fetch_document_chunk",
|
|
221
|
-
{
|
|
222
|
-
description: "Fetch one indexed document chunk by id.",
|
|
223
|
-
inputSchema: {
|
|
224
|
-
chunkId: z.string().uuid(),
|
|
225
|
-
},
|
|
226
|
-
},
|
|
227
|
-
async ({ chunkId }) => {
|
|
228
|
-
const found = await getDocumentChunk(db, accountId, workspaceId, chunkId, agentAccess);
|
|
229
|
-
return {
|
|
230
|
-
content: [
|
|
231
|
-
{ type: "text", text: found ? JSON.stringify(found) : `chunk not found: ${chunkId}` },
|
|
232
|
-
],
|
|
233
|
-
isError: !found,
|
|
234
|
-
};
|
|
235
|
-
},
|
|
236
|
-
);
|
|
237
|
-
|
|
238
|
-
server.registerTool(
|
|
239
|
-
"knowledge_fetch",
|
|
240
|
-
{
|
|
241
|
-
description: "Fetch one knowledge source chunk by id.",
|
|
242
|
-
inputSchema: {
|
|
243
|
-
chunkId: z.string().uuid(),
|
|
244
|
-
},
|
|
245
|
-
},
|
|
246
|
-
async ({ chunkId }) => {
|
|
247
|
-
const found = await getDocumentChunk(db, accountId, workspaceId, chunkId, agentAccess);
|
|
248
|
-
return {
|
|
249
|
-
content: [
|
|
250
|
-
{ type: "text", text: found ? JSON.stringify(found) : `chunk not found: ${chunkId}` },
|
|
251
|
-
],
|
|
252
|
-
isError: !found,
|
|
253
|
-
};
|
|
254
|
-
},
|
|
255
|
-
);
|
|
256
|
-
|
|
257
|
-
server.registerTool(
|
|
258
|
-
"memory_search",
|
|
56
|
+
"knowledge_browse",
|
|
259
57
|
{
|
|
260
|
-
description: "
|
|
58
|
+
description: "Browse Knowledge groups or entries in one group, across sources.",
|
|
261
59
|
inputSchema: {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
limit: z.number().int().positive().max(100).optional(),
|
|
60
|
+
groupId: z.uuid().optional(),
|
|
61
|
+
cursor: z.string().optional(),
|
|
62
|
+
limit: z.number().int().positive().max(50).optional(),
|
|
266
63
|
},
|
|
267
64
|
},
|
|
268
|
-
async (
|
|
65
|
+
async (input) => ({
|
|
269
66
|
content: [
|
|
270
67
|
{
|
|
271
68
|
type: "text",
|
|
272
69
|
text: JSON.stringify(
|
|
273
|
-
await
|
|
274
|
-
...
|
|
275
|
-
|
|
276
|
-
...(kind ? { kind } : {}),
|
|
277
|
-
...(scope ? { scope } : {}),
|
|
278
|
-
...(limit ? { limit } : {}),
|
|
70
|
+
await listKnowledgeEntries(db, context, {
|
|
71
|
+
...input,
|
|
72
|
+
...(input.groupId ? {} : { kind: "group" }),
|
|
279
73
|
}),
|
|
280
74
|
),
|
|
281
75
|
},
|
|
282
76
|
],
|
|
283
77
|
}),
|
|
284
78
|
);
|
|
285
|
-
|
|
286
79
|
server.registerTool(
|
|
287
|
-
"
|
|
80
|
+
"knowledge_get",
|
|
288
81
|
{
|
|
289
|
-
description:
|
|
82
|
+
description:
|
|
83
|
+
"Read an exact published Knowledge revision and its evidence. Long source text is paginated.",
|
|
290
84
|
inputSchema: {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
confidence: z.number().min(0).max(1).optional(),
|
|
296
|
-
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
85
|
+
entryId: z.uuid(),
|
|
86
|
+
revisionId: z.uuid().optional(),
|
|
87
|
+
offset: z.number().int().nonnegative().default(0),
|
|
88
|
+
maxChars: z.number().int().positive().max(16000).default(8000),
|
|
297
89
|
},
|
|
298
90
|
},
|
|
299
|
-
async (
|
|
300
|
-
const
|
|
301
|
-
|
|
302
|
-
workspaceId,
|
|
303
|
-
status: "proposed",
|
|
304
|
-
kind: kind ?? "semantic",
|
|
305
|
-
scope: scope ?? "workspace",
|
|
306
|
-
text,
|
|
307
|
-
sourceRefs:
|
|
308
|
-
sourceRefs?.map((sourceRef) => ({
|
|
309
|
-
...sourceRef,
|
|
310
|
-
metadata: sourceRef.metadata ?? {},
|
|
311
|
-
})) ?? [],
|
|
312
|
-
confidence: confidence ?? 0.5,
|
|
313
|
-
metadata: metadata ?? {},
|
|
314
|
-
createdBySessionId: options.createdBySessionId,
|
|
91
|
+
async (input) => {
|
|
92
|
+
const record = await getKnowledgeEntry(db, context, input.entryId, {
|
|
93
|
+
revisionId: input.revisionId,
|
|
315
94
|
});
|
|
95
|
+
if (!record) return { content: [{ type: "text", text: JSON.stringify({ found: false }) }] };
|
|
96
|
+
const text = record.revision.entry.content;
|
|
97
|
+
const end = Math.min(text.length, input.offset + input.maxChars);
|
|
316
98
|
return {
|
|
317
99
|
content: [
|
|
318
100
|
{
|
|
319
101
|
type: "text",
|
|
320
|
-
text: JSON.stringify(
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
nextAction: { tool: "memory_search", arguments: {} },
|
|
334
|
-
}),
|
|
335
|
-
),
|
|
102
|
+
text: JSON.stringify({
|
|
103
|
+
...record,
|
|
104
|
+
revision: {
|
|
105
|
+
...record.revision,
|
|
106
|
+
entry: { ...record.revision.entry, content: text.slice(input.offset, end) },
|
|
107
|
+
},
|
|
108
|
+
contentRange: {
|
|
109
|
+
start: input.offset,
|
|
110
|
+
end,
|
|
111
|
+
total: text.length,
|
|
112
|
+
nextOffset: end < text.length ? end : null,
|
|
113
|
+
},
|
|
114
|
+
}),
|
|
336
115
|
},
|
|
337
116
|
],
|
|
338
117
|
};
|
|
339
118
|
},
|
|
340
119
|
);
|
|
341
|
-
|
|
342
120
|
return server;
|
|
343
121
|
}
|
|
344
|
-
|
|
345
|
-
async function searchContent(
|
|
346
|
-
db: Database,
|
|
347
|
-
accountId: string,
|
|
348
|
-
workspaceId: string,
|
|
349
|
-
documentServices: DocumentServices,
|
|
350
|
-
input: {
|
|
351
|
-
query: string;
|
|
352
|
-
baseIds?: string[] | undefined;
|
|
353
|
-
limit?: number | undefined;
|
|
354
|
-
mode?: "hybrid" | "vector" | "keyword" | undefined;
|
|
355
|
-
sourceKinds?:
|
|
356
|
-
| Array<
|
|
357
|
-
| "manual_upload"
|
|
358
|
-
| "meeting_transcript"
|
|
359
|
-
| "repository"
|
|
360
|
-
| "email"
|
|
361
|
-
| "chat"
|
|
362
|
-
| "document"
|
|
363
|
-
| "web"
|
|
364
|
-
| "other"
|
|
365
|
-
>
|
|
366
|
-
| undefined;
|
|
367
|
-
aclTags?: string[] | undefined;
|
|
368
|
-
},
|
|
369
|
-
initiatingSubjectId: string,
|
|
370
|
-
) {
|
|
371
|
-
const results = await searchEffectiveDocuments(
|
|
372
|
-
db,
|
|
373
|
-
{
|
|
374
|
-
accountId,
|
|
375
|
-
workspaceId,
|
|
376
|
-
query: input.query,
|
|
377
|
-
...(input.baseIds ? { baseIds: input.baseIds } : {}),
|
|
378
|
-
...(input.limit ? { limit: input.limit } : {}),
|
|
379
|
-
...(input.mode ? { mode: input.mode } : {}),
|
|
380
|
-
...(input.sourceKinds ? { sourceKinds: input.sourceKinds } : {}),
|
|
381
|
-
...(input.aclTags ? { aclTags: input.aclTags } : {}),
|
|
382
|
-
initiatingSubjectId,
|
|
383
|
-
surface: "agent",
|
|
384
|
-
},
|
|
385
|
-
documentServices,
|
|
386
|
-
);
|
|
387
|
-
return {
|
|
388
|
-
content: [
|
|
389
|
-
{
|
|
390
|
-
type: "text" as const,
|
|
391
|
-
text: JSON.stringify(results),
|
|
392
|
-
},
|
|
393
|
-
],
|
|
394
|
-
};
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
async function searchKnowledge(
|
|
398
|
-
db: Database,
|
|
399
|
-
accountId: string,
|
|
400
|
-
workspaceId: string,
|
|
401
|
-
documentServices: DocumentServices,
|
|
402
|
-
input: {
|
|
403
|
-
query: string;
|
|
404
|
-
baseIds?: string[] | undefined;
|
|
405
|
-
limit?: number | undefined;
|
|
406
|
-
mode?: "hybrid" | "vector" | "keyword" | undefined;
|
|
407
|
-
sourceKinds?: Parameters<typeof searchContent>[4]["sourceKinds"];
|
|
408
|
-
aclTags?: string[] | undefined;
|
|
409
|
-
},
|
|
410
|
-
initiatingSubjectId: string,
|
|
411
|
-
) {
|
|
412
|
-
const response = await searchEffectiveKnowledge(
|
|
413
|
-
db,
|
|
414
|
-
{
|
|
415
|
-
accountId,
|
|
416
|
-
workspaceId,
|
|
417
|
-
query: input.query,
|
|
418
|
-
...(input.baseIds ? { baseIds: input.baseIds } : {}),
|
|
419
|
-
...(input.limit ? { limit: input.limit } : {}),
|
|
420
|
-
...(input.mode ? { mode: input.mode } : {}),
|
|
421
|
-
...(input.sourceKinds ? { sourceKinds: input.sourceKinds } : {}),
|
|
422
|
-
...(input.aclTags ? { aclTags: input.aclTags } : {}),
|
|
423
|
-
initiatingSubjectId,
|
|
424
|
-
surface: "agent",
|
|
425
|
-
},
|
|
426
|
-
documentServices,
|
|
427
|
-
);
|
|
428
|
-
return {
|
|
429
|
-
content: [
|
|
430
|
-
{ type: "text" as const, text: JSON.stringify(KnowledgeSearchResponse.parse(response)) },
|
|
431
|
-
],
|
|
432
|
-
};
|
|
433
|
-
}
|
|
@@ -32,12 +32,13 @@ const ArtifactCommand = z
|
|
|
32
32
|
.object({ kind: z.string().min(1).max(128) })
|
|
33
33
|
.passthrough()
|
|
34
34
|
.describe(
|
|
35
|
-
"One canonical modality command. Use the exact
|
|
35
|
+
"One canonical modality command. Use the exact Opengeni document, spreadsheet, or presentation skill command contract; never send local-file facade calls here.",
|
|
36
36
|
);
|
|
37
37
|
|
|
38
38
|
const ArtifactMetadata = z
|
|
39
39
|
.object({
|
|
40
40
|
id: ArtifactId,
|
|
41
|
+
artifactReference: z.string(),
|
|
41
42
|
modality: Modality,
|
|
42
43
|
title: z.string(),
|
|
43
44
|
lifecycle: z.enum(["active", "archived"]),
|
|
@@ -203,13 +204,17 @@ export function registerEditableArtifactAgentTools(
|
|
|
203
204
|
{
|
|
204
205
|
title: "Inspect editable artifact",
|
|
205
206
|
description:
|
|
206
|
-
"Query the artifact's current canonical head through the same native kernel used by the browser. Use bounded modality queries; results are current, not a sandbox-file snapshot.",
|
|
207
|
+
"Query the artifact's current canonical head through the same native kernel used by the browser. Use bounded modality queries; results are current, not a sandbox-file snapshot. Native document queries return a server-issued inspectionReceiptId; use a post-edit body inspection receipt for declared report completion. If the document changes during inspection, retry against its current head.",
|
|
207
208
|
inputSchema: {
|
|
208
209
|
artifactId: ArtifactId,
|
|
209
210
|
modality: Modality,
|
|
210
211
|
request: EditableArtifactQueryRequestSchema,
|
|
211
212
|
},
|
|
212
|
-
outputSchema: {
|
|
213
|
+
outputSchema: {
|
|
214
|
+
artifact: ArtifactMetadata,
|
|
215
|
+
projection: z.unknown(),
|
|
216
|
+
inspectionReceiptId: z.string().uuid().optional(),
|
|
217
|
+
},
|
|
213
218
|
annotations: readOnlyAnnotations("Inspect editable artifact"),
|
|
214
219
|
},
|
|
215
220
|
async ({ artifactId, modality, request }, extra) =>
|
|
@@ -262,11 +267,12 @@ export function registerEditableArtifactAgentTools(
|
|
|
262
267
|
"editable_artifact_export",
|
|
263
268
|
{
|
|
264
269
|
title: "Export editable artifact",
|
|
265
|
-
description:
|
|
266
|
-
"Pin the current artifact head and start an immutable Office/PDF/image export. This does not write into the sandbox. Poll opengeni__editable_artifact_export_status for the resulting workspace file ID.",
|
|
270
|
+
description: `Pin the current artifact head and start an immutable file export. ${input.deps.editableArtifactAgent?.describeExportFormats?.() ?? "No exporter capability description is available; query this deployment before promising a format."} This does not write into the sandbox. Poll opengeni__editable_artifact_export_status for the resulting workspace file ID.`,
|
|
267
271
|
inputSchema: {
|
|
268
272
|
artifactId: ArtifactId,
|
|
269
|
-
format: Format
|
|
273
|
+
format: Format.describe(
|
|
274
|
+
"Target file format. Only the formats listed in this tool's description are served; any other combination is refused with unsupported_format.",
|
|
275
|
+
),
|
|
270
276
|
options: JsonRecord.optional(),
|
|
271
277
|
},
|
|
272
278
|
outputSchema: {
|