@capybara-hq/kernel 0.1.0-rc.2 → 0.1.0-rc.21
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/bootstrap.json +94 -5
- package/dist/admin/admin-agents.controller.d.ts +28 -0
- package/dist/admin/admin-agents.controller.js +79 -0
- package/dist/admin/admin-connectors.controller.d.ts +29 -0
- package/dist/admin/admin-connectors.controller.js +79 -0
- package/dist/admin/admin-items.schemas.d.ts +42 -0
- package/dist/admin/admin-items.schemas.js +48 -0
- package/dist/admin/admin.controller.d.ts +52 -80
- package/dist/admin/admin.controller.js +112 -81
- package/dist/admin/admin.module.d.ts +4 -1
- package/dist/admin/admin.module.js +50 -4
- package/dist/admin/admin.schemas.d.ts +69 -0
- package/dist/admin/admin.schemas.js +53 -0
- package/dist/admin/audit.controller.d.ts +14 -0
- package/dist/admin/audit.controller.js +42 -0
- package/dist/admin/audit.schemas.d.ts +8 -0
- package/dist/admin/audit.schemas.js +17 -0
- package/dist/admin/extensions.controller.d.ts +34 -3
- package/dist/admin/extensions.controller.js +66 -8
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/health.service.d.ts +104 -0
- package/dist/admin/health.service.js +246 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/overview.controller.d.ts +31 -0
- package/dist/admin/overview.controller.js +78 -0
- package/dist/admin/overview.schemas.d.ts +8 -0
- package/dist/admin/overview.schemas.js +13 -0
- package/dist/admin/overview.service.d.ts +112 -0
- package/dist/admin/overview.service.js +223 -0
- package/dist/admin/platform-audit.service.d.ts +41 -0
- package/dist/admin/platform-audit.service.js +70 -0
- package/dist/admin/setup-lock.d.ts +1 -1
- package/dist/admin/setup-lock.js +1 -1
- package/dist/admin/setup.controller.d.ts +1 -1
- package/dist/admin/setup.controller.js +1 -1
- package/dist/admin/setup.service.d.ts +4 -4
- package/dist/admin/setup.service.js +8 -8
- package/dist/admin/usage.service.d.ts +149 -0
- package/dist/admin/usage.service.js +321 -0
- package/dist/agents/admin-agents.d.ts +92 -0
- package/dist/agents/admin-agents.js +170 -0
- package/dist/agents/agent-lookup.d.ts +24 -0
- package/dist/agents/agent-lookup.js +46 -2
- package/dist/agents/agent-profile.service.d.ts +31 -0
- package/dist/agents/agent-profile.service.js +122 -0
- package/dist/agents/agents.controller.d.ts +53 -168
- package/dist/agents/agents.controller.js +163 -34
- package/dist/agents/agents.module.d.ts +6 -2
- package/dist/agents/agents.module.js +41 -7
- package/dist/agents/agents.schemas.d.ts +392 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +121 -36
- package/dist/agents/agents.service.js +411 -121
- package/dist/agents/definition.d.ts +142 -21
- package/dist/agents/definition.js +389 -43
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +680 -0
- package/dist/agents/from-template.service.d.ts +72 -0
- package/dist/agents/from-template.service.js +178 -0
- package/dist/agents/instruction-files.d.ts +60 -0
- package/dist/agents/instruction-files.js +111 -0
- package/dist/agents/models.controller.d.ts +44 -6
- package/dist/agents/models.controller.js +84 -8
- package/dist/agents/org-templates.d.ts +186 -0
- package/dist/agents/org-templates.js +876 -0
- package/dist/agents/pending-connector-requests.d.ts +79 -0
- package/dist/agents/pending-connector-requests.js +215 -0
- package/dist/agents/pending-connectors.controller.d.ts +39 -0
- package/dist/agents/pending-connectors.controller.js +91 -0
- package/dist/agents/pending-connectors.service.d.ts +62 -0
- package/dist/agents/pending-connectors.service.js +282 -0
- package/dist/agents/profile.d.ts +114 -0
- package/dist/agents/profile.js +55 -0
- package/dist/agents/readiness.controller.d.ts +26 -0
- package/dist/agents/readiness.controller.js +56 -0
- package/dist/agents/templates.controller.d.ts +77 -5
- package/dist/agents/templates.controller.js +153 -7
- package/dist/agents/templates.d.ts +127 -23
- package/dist/agents/templates.js +482 -44
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -0
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +88 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/background.schemas.d.ts +10 -0
- package/dist/background/background.schemas.js +16 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +95 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +42 -0
- package/dist/background/launch.js +77 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +195 -0
- package/dist/background/render.d.ts +23 -0
- package/dist/background/render.js +48 -0
- package/dist/background/session.d.ts +48 -0
- package/dist/background/session.js +80 -0
- package/dist/background/status.d.ts +35 -0
- package/dist/background/status.js +57 -0
- package/dist/background/stop.d.ts +68 -0
- package/dist/background/stop.js +244 -0
- package/dist/background/store.d.ts +167 -0
- package/dist/background/store.js +361 -0
- package/dist/background/store.module.d.ts +6 -0
- package/dist/background/store.module.js +22 -0
- package/dist/background/tasks.service.d.ts +109 -0
- package/dist/background/tasks.service.js +271 -0
- package/dist/background/wake-rules.d.ts +66 -0
- package/dist/background/wake-rules.js +113 -0
- package/dist/background/wake.d.ts +30 -0
- package/dist/background/wake.js +63 -0
- package/dist/catalog/admin-catalog.controller.d.ts +136 -52
- package/dist/catalog/admin-catalog.controller.js +275 -65
- package/dist/catalog/admin-catalog.schemas.d.ts +82 -0
- package/dist/catalog/admin-catalog.schemas.js +99 -0
- package/dist/catalog/appearance.schemas.d.ts +10 -0
- package/dist/catalog/appearance.schemas.js +20 -0
- package/dist/catalog/appearance.service.d.ts +105 -0
- package/dist/catalog/appearance.service.js +306 -0
- package/dist/catalog/catalog-content.d.ts +122 -35
- package/dist/catalog/catalog-content.js +122 -14
- package/dist/catalog/catalog-files.d.ts +42 -0
- package/dist/catalog/catalog-files.js +89 -0
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +63 -0
- package/dist/catalog/catalog-items.d.ts +122 -7
- package/dist/catalog/catalog-items.js +301 -13
- package/dist/catalog/catalog-scope.service.d.ts +293 -0
- package/dist/catalog/catalog-scope.service.js +1236 -0
- package/dist/catalog/catalog.module.d.ts +7 -9
- package/dist/catalog/catalog.module.js +47 -31
- package/dist/catalog/catalog.service.d.ts +122 -31
- package/dist/catalog/catalog.service.js +177 -105
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/claude/translate.js +3 -0
- package/dist/catalog/cli.d.ts +11 -1
- package/dist/catalog/cli.js +29 -1
- package/dist/catalog/component-promotion.d.ts +96 -0
- package/dist/catalog/component-promotion.js +395 -0
- package/dist/catalog/component-scope.controller.d.ts +102 -0
- package/dist/catalog/component-scope.controller.js +257 -0
- package/dist/catalog/component-scope.schemas.d.ts +118 -0
- package/dist/catalog/component-scope.schemas.js +97 -0
- package/dist/catalog/component-scope.service.d.ts +394 -0
- package/dist/catalog/component-scope.service.js +1133 -0
- package/dist/catalog/component-state.d.ts +207 -0
- package/dist/catalog/component-state.js +484 -0
- package/dist/catalog/git-source.d.ts +9 -1
- package/dist/catalog/git-source.js +29 -2
- package/dist/catalog/job-ids.d.ts +30 -0
- package/dist/catalog/job-ids.js +25 -0
- package/dist/catalog/marketplace-fetch.d.ts +1 -1
- package/dist/catalog/marketplace-icons.d.ts +64 -0
- package/dist/catalog/marketplace-icons.js +131 -0
- package/dist/catalog/marketplaces.controller.d.ts +50 -41
- package/dist/catalog/marketplaces.controller.js +130 -46
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +110 -17
- package/dist/catalog/marketplaces.service.js +337 -29
- package/dist/catalog/org-catalog.controller.d.ts +114 -62
- package/dist/catalog/org-catalog.controller.js +191 -98
- package/dist/catalog/org-catalog.schemas.d.ts +104 -0
- package/dist/catalog/org-catalog.schemas.js +107 -0
- package/dist/catalog/org-catalog.service.d.ts +72 -33
- package/dist/catalog/org-catalog.service.js +367 -158
- package/dist/catalog/org-extension-switch.d.ts +41 -0
- package/dist/catalog/org-extension-switch.js +115 -0
- package/dist/catalog/org-extension.controller.d.ts +133 -0
- package/dist/catalog/org-extension.controller.js +313 -0
- package/dist/catalog/org-extension.schemas.d.ts +15 -0
- package/dist/catalog/org-extension.schemas.js +22 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
- package/dist/catalog/org-plugin-uploads.controller.js +200 -0
- package/dist/catalog/org-plugin-uploads.d.ts +71 -0
- package/dist/catalog/org-plugin-uploads.js +122 -0
- package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
- package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
- package/dist/catalog/owned-items.d.ts +188 -0
- package/dist/catalog/owned-items.js +808 -0
- package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
- package/dist/catalog/owned-plugin-cleanup.js +194 -0
- package/dist/catalog/ownership.d.ts +172 -0
- package/dist/catalog/ownership.js +326 -0
- package/dist/catalog/platform-components.d.ts +243 -0
- package/dist/catalog/platform-components.js +872 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +583 -0
- package/dist/catalog/plugin-import.d.ts +254 -47
- package/dist/catalog/plugin-import.js +810 -112
- package/dist/catalog/plugin-install.d.ts +205 -42
- package/dist/catalog/plugin-install.js +828 -126
- package/dist/catalog/plugin-package.d.ts +43 -4
- package/dist/catalog/plugin-package.js +194 -7
- package/dist/catalog/plugin-upgrade.d.ts +308 -225
- package/dist/catalog/plugin-upgrade.js +1325 -1131
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +194 -118
- package/dist/catalog/requests.service.js +530 -343
- package/dist/catalog/reserved-names.d.ts +8 -0
- package/dist/catalog/reserved-names.js +42 -0
- package/dist/catalog/scope-orgs.d.ts +21 -0
- package/dist/catalog/scope-orgs.js +67 -0
- package/dist/catalog/scope-state.d.ts +35 -0
- package/dist/catalog/scope-state.js +87 -0
- package/dist/catalog/scope-sync-workers.d.ts +7 -0
- package/dist/catalog/scope-sync-workers.js +29 -0
- package/dist/catalog/scope-sync.d.ts +176 -0
- package/dist/catalog/scope-sync.js +576 -0
- package/dist/catalog/scope.d.ts +42 -0
- package/dist/catalog/scope.js +42 -0
- package/dist/catalog/unshare.d.ts +22 -0
- package/dist/catalog/unshare.js +119 -0
- package/dist/channels/actions.js +10 -3
- package/dist/channels/cards.d.ts +36 -10
- package/dist/channels/cards.js +100 -25
- package/dist/channels/channels.module.js +13 -2
- package/dist/channels/channels.schemas.d.ts +41 -0
- package/dist/channels/channels.schemas.js +40 -0
- package/dist/channels/connections.controller.d.ts +46 -37
- package/dist/channels/connections.controller.js +76 -34
- package/dist/channels/connections.service.d.ts +102 -10
- package/dist/channels/connections.service.js +271 -24
- package/dist/channels/inbound.d.ts +11 -1
- package/dist/channels/inbound.js +87 -7
- package/dist/channels/outbound.d.ts +14 -1
- package/dist/channels/outbound.js +64 -15
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +2 -0
- package/dist/channels/supervisor.js +4 -0
- package/dist/channels/threads.d.ts +5 -0
- package/dist/channels/threads.js +8 -0
- package/dist/channels/webhook.d.ts +21 -1
- package/dist/channels/webhook.js +39 -4
- package/dist/client/client-access.service.d.ts +102 -0
- package/dist/client/client-access.service.js +303 -0
- package/dist/client/client-builds.service.d.ts +109 -0
- package/dist/client/client-builds.service.js +229 -0
- package/dist/client/client-delivery.controller.d.ts +25 -0
- package/dist/client/client-delivery.controller.js +66 -0
- package/dist/client/client-files.d.ts +48 -0
- package/dist/client/client-files.js +136 -0
- package/dist/client/client-reports.cron.d.ts +13 -0
- package/dist/client/client-reports.cron.js +42 -0
- package/dist/client/client-reports.service.d.ts +30 -0
- package/dist/client/client-reports.service.js +102 -0
- package/dist/client/client-sign-in.service.d.ts +21 -0
- package/dist/client/client-sign-in.service.js +49 -0
- package/dist/client/client.controller.d.ts +49 -0
- package/dist/client/client.controller.js +129 -0
- package/dist/client/client.module.d.ts +8 -0
- package/dist/client/client.module.js +28 -0
- package/dist/client/client.schemas.d.ts +61 -0
- package/dist/client/client.schemas.js +27 -0
- package/dist/config/docs.js +5 -1
- package/dist/config/schema.d.ts +35 -2
- package/dist/config/schema.js +216 -21
- package/dist/conversations/access.d.ts +6 -4
- package/dist/conversations/access.js +29 -5
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/artifacts.d.ts +1 -1
- package/dist/conversations/artifacts.js +1 -1
- package/dist/conversations/attachments.service.d.ts +30 -0
- package/dist/conversations/attachments.service.js +130 -5
- package/dist/conversations/conversations.controller.d.ts +79 -44
- package/dist/conversations/conversations.controller.js +133 -82
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +10 -7
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +161 -13
- package/dist/conversations/conversations.service.js +329 -57
- package/dist/conversations/device-status.d.ts +24 -0
- package/dist/conversations/device-status.js +71 -0
- package/dist/conversations/event-log.d.ts +45 -9
- package/dist/conversations/event-log.js +113 -6
- package/dist/conversations/events.d.ts +255 -9
- package/dist/conversations/events.js +250 -34
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/queue.d.ts +5 -2
- package/dist/conversations/queue.js +24 -4
- package/dist/conversations/queue.service.d.ts +2 -2
- package/dist/conversations/queue.service.js +21 -3
- package/dist/conversations/titles.d.ts +12 -3
- package/dist/conversations/titles.js +40 -16
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/create-ctx.d.ts +48 -5
- package/dist/ctx/create-ctx.js +174 -34
- package/dist/db/kernel-schema.d.ts +668 -27
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +3 -0
- package/dist/devices/access.d.ts +66 -0
- package/dist/devices/access.js +113 -0
- package/dist/devices/conversation-devices.d.ts +75 -0
- package/dist/devices/conversation-devices.js +230 -0
- package/dist/devices/devices.controller.d.ts +36 -0
- package/dist/devices/devices.controller.js +124 -0
- package/dist/devices/devices.module.d.ts +8 -0
- package/dist/devices/devices.module.js +34 -0
- package/dist/devices/devices.schemas.d.ts +3 -0
- package/dist/devices/devices.schemas.js +14 -0
- package/dist/devices/devices.service.d.ts +251 -0
- package/dist/devices/devices.service.js +791 -0
- package/dist/devices/dto.d.ts +25 -0
- package/dist/devices/dto.js +12 -0
- package/dist/devices/label.d.ts +11 -0
- package/dist/devices/label.js +25 -0
- package/dist/devices/legacy-cleanup.job.d.ts +34 -0
- package/dist/devices/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +215 -3
- package/dist/errors.js +215 -3
- package/dist/evals/evals.module.js +11 -2
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -0
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +36 -10
- package/dist/evals/recorded-tools.d.ts +37 -1
- package/dist/evals/recorded-tools.js +120 -10
- package/dist/evals/run-replay.d.ts +20 -3
- package/dist/evals/run-replay.js +78 -14
- package/dist/evals/runs.controller.d.ts +2 -57
- package/dist/evals/runs.controller.js +1 -42
- package/dist/evals/runs.service.d.ts +8 -7
- package/dist/evals/runs.service.js +45 -30
- package/dist/evals/sets.controller.d.ts +2 -28
- package/dist/evals/sets.controller.js +1 -31
- package/dist/evals/sets.service.d.ts +7 -7
- package/dist/evals/sets.service.js +23 -17
- package/dist/evals/snapshot.d.ts +3 -2
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +4 -6
- package/dist/evals/step-replay.js +16 -9
- package/dist/evals/trajectory.d.ts +5 -3
- package/dist/evals/trajectory.js +4 -1
- package/dist/evals/trajectory.service.d.ts +8 -3
- package/dist/evals/trajectory.service.js +26 -14
- package/dist/evals/worker.d.ts +5 -5
- package/dist/evals/worker.js +9 -3
- package/dist/extensions/admin-ops.d.ts +81 -14
- package/dist/extensions/admin-ops.js +181 -47
- package/dist/extensions/admin-view.d.ts +57 -10
- package/dist/extensions/admin-view.js +249 -27
- package/dist/extensions/approvals.d.ts +12 -2
- package/dist/extensions/blobs.d.ts +14 -1
- package/dist/extensions/blobs.js +49 -5
- package/dist/extensions/bootstrap.d.ts +85 -10
- package/dist/extensions/bootstrap.js +215 -36
- package/dist/extensions/cli.d.ts +12 -0
- package/dist/extensions/cli.js +11 -2
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/config-issues.d.ts +13 -1
- package/dist/extensions/config-issues.js +22 -5
- package/dist/extensions/config-json-schema.d.ts +43 -7
- package/dist/extensions/config-json-schema.js +124 -58
- package/dist/extensions/deployment-config-store.d.ts +6 -0
- package/dist/extensions/deployment-config.d.ts +94 -9
- package/dist/extensions/deployment-config.js +255 -34
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +133 -0
- package/dist/extensions/effective-config.js +379 -0
- package/dist/extensions/extensions.module.js +31 -12
- package/dist/extensions/guide-places.d.ts +68 -0
- package/dist/extensions/guide-places.js +152 -0
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +105 -12
- package/dist/extensions/host.js +372 -87
- package/dist/extensions/installs.d.ts +30 -9
- package/dist/extensions/installs.js +57 -16
- package/dist/extensions/instance.d.ts +17 -2
- package/dist/extensions/instance.js +21 -0
- package/dist/extensions/ledger.d.ts +1 -1
- package/dist/extensions/locks.d.ts +12 -0
- package/dist/extensions/locks.js +26 -0
- package/dist/extensions/org-config.d.ts +97 -7
- package/dist/extensions/org-config.js +215 -45
- package/dist/extensions/org-levels.d.ts +37 -0
- package/dist/extensions/org-levels.js +71 -0
- package/dist/extensions/org-overrides.d.ts +151 -0
- package/dist/extensions/org-overrides.js +524 -0
- package/dist/extensions/package.d.ts +18 -4
- package/dist/extensions/package.js +56 -3
- package/dist/extensions/permission-set.d.ts +35 -5
- package/dist/extensions/permission-set.js +36 -5
- package/dist/extensions/permission-view.d.ts +106 -13
- package/dist/extensions/permission-view.js +33 -15
- package/dist/extensions/plugin-guides.d.ts +282 -0
- package/dist/extensions/plugin-guides.js +554 -0
- package/dist/extensions/plugin-icons.d.ts +54 -0
- package/dist/extensions/plugin-icons.js +125 -0
- package/dist/extensions/plugin-items.d.ts +21 -0
- package/dist/extensions/plugin-items.js +42 -0
- package/dist/extensions/point-defaults.controller.d.ts +28 -0
- package/dist/extensions/point-defaults.controller.js +69 -0
- package/dist/extensions/point-defaults.d.ts +73 -0
- package/dist/extensions/point-defaults.js +236 -0
- package/dist/extensions/point-defaults.schemas.d.ts +9 -0
- package/dist/extensions/point-defaults.schemas.js +14 -0
- package/dist/extensions/registry.d.ts +1 -1
- package/dist/extensions/registry.js +2 -0
- package/dist/extensions/resolve.d.ts +51 -1
- package/dist/extensions/resolve.js +85 -3
- package/dist/extensions/single-provider.d.ts +92 -0
- package/dist/extensions/single-provider.js +180 -0
- package/dist/extensions/sources.d.ts +13 -2
- package/dist/extensions/sources.js +2 -0
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +46 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/previewers.controller.js +2 -3
- package/dist/files/previewers.d.ts +10 -3
- package/dist/files/previewers.js +40 -11
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/api.module.js +76 -4
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/gateway-routes.d.ts +7 -3
- package/dist/http/gateway-routes.js +6 -3
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- package/dist/http/plugin-dispatch.d.ts +4 -1
- package/dist/http/plugin-dispatch.js +14 -2
- package/dist/identity/accounts.d.ts +77 -31
- package/dist/identity/accounts.js +133 -52
- package/dist/identity/audit.d.ts +2 -1
- package/dist/identity/auth.controller.js +9 -5
- package/dist/identity/auth.guard.d.ts +13 -5
- package/dist/identity/auth.guard.js +35 -9
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +7 -4
- package/dist/identity/initial-passwords.controller.d.ts +22 -0
- package/dist/identity/initial-passwords.controller.js +49 -0
- package/dist/identity/initial-passwords.d.ts +61 -0
- package/dist/identity/initial-passwords.job.d.ts +16 -0
- package/dist/identity/initial-passwords.job.js +46 -0
- package/dist/identity/initial-passwords.js +159 -0
- package/dist/identity/me.controller.d.ts +17 -1
- package/dist/identity/me.controller.js +45 -4
- package/dist/identity/me.schemas.d.ts +24 -0
- package/dist/identity/me.schemas.js +25 -0
- package/dist/identity/principal.d.ts +11 -3
- package/dist/identity/principal.js +11 -3
- package/dist/identity/sessions.d.ts +12 -0
- package/dist/identity/sessions.js +45 -0
- package/dist/identity/settings.d.ts +99 -12
- package/dist/identity/settings.js +234 -25
- package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
- package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
- package/dist/identity/write-actor.d.ts +11 -0
- package/dist/identity/write-actor.js +7 -0
- package/dist/inbox/inbox.module.d.ts +4 -1
- package/dist/inbox/inbox.module.js +7 -3
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +64 -4
- package/dist/inbox/inbox.service.js +74 -4
- package/dist/inbox/org-notices.d.ts +63 -0
- package/dist/inbox/org-notices.js +91 -0
- package/dist/inbox/platform-inbox.controller.d.ts +23 -0
- package/dist/inbox/platform-inbox.controller.js +58 -0
- package/dist/inbox/platform-inbox.service.d.ts +157 -0
- package/dist/inbox/platform-inbox.service.js +281 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +7 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +32 -1
- package/dist/infra/database/database.module.js +1 -0
- package/dist/infra/database/xact-lock.d.ts +1 -1
- package/dist/infra/database/xact-lock.js +1 -1
- package/dist/infra/events/kernel-events.d.ts +31 -3
- package/dist/infra/lifecycle/process-guards.js +4 -0
- package/dist/infra/lock/lock.service.d.ts +8 -0
- package/dist/infra/lock/lock.service.js +27 -0
- package/dist/infra/logging/logging.module.d.ts +4 -2
- package/dist/infra/logging/logging.module.js +24 -6
- package/dist/infra/presence/presence.module.d.ts +6 -0
- package/dist/infra/presence/presence.module.js +22 -0
- package/dist/infra/presence/replica-presence.d.ts +87 -0
- package/dist/infra/presence/replica-presence.js +189 -0
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- package/dist/infra/queue/redis-connection.d.ts +6 -0
- package/dist/infra/queue/redis-connection.js +7 -0
- package/dist/infra/redis/redis.module.js +6 -2
- package/dist/infra/throttler/named-throttlers.d.ts +12 -0
- package/dist/infra/throttler/named-throttlers.js +67 -0
- package/dist/infra/throttler/throttler.guard.js +1 -1
- package/dist/infra/tokens.d.ts +6 -1
- package/dist/infra/tokens.js +6 -1
- package/dist/kernel.module.js +15 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +9 -3
- package/dist/lifecycle/kernel-lifecycle.js +51 -11
- package/dist/local-devices/device-auth.controller.d.ts +42 -0
- package/dist/local-devices/device-auth.controller.js +116 -0
- package/dist/local-devices/device-auth.d.ts +119 -0
- package/dist/local-devices/device-auth.js +401 -0
- package/dist/local-devices/device-auth.module.d.ts +7 -0
- package/dist/local-devices/device-auth.module.js +25 -0
- package/dist/local-devices/device-routes.d.ts +36 -0
- package/dist/local-devices/device-routes.js +90 -0
- package/dist/local-devices/dto.d.ts +66 -0
- package/dist/local-devices/dto.js +44 -0
- package/dist/local-devices/keys.d.ts +25 -0
- package/dist/local-devices/keys.js +25 -0
- package/dist/local-devices/local-device-gateway.d.ts +134 -0
- package/dist/local-devices/local-device-gateway.js +542 -0
- package/dist/local-devices/local-device-provider.d.ts +89 -0
- package/dist/local-devices/local-device-provider.js +151 -0
- package/dist/local-devices/local-devices.module.d.ts +16 -0
- package/dist/local-devices/local-devices.module.js +44 -0
- package/dist/local-devices/machines.d.ts +118 -0
- package/dist/local-devices/machines.js +366 -0
- package/dist/local-devices/relay.d.ts +100 -0
- package/dist/local-devices/relay.js +373 -0
- package/dist/local-devices/targets.d.ts +28 -0
- package/dist/local-devices/targets.js +73 -0
- package/dist/log.d.ts +13 -1
- package/dist/log.js +93 -17
- package/dist/models/embeddings.d.ts +82 -0
- package/dist/models/embeddings.js +326 -0
- package/dist/models/enablement.controller.d.ts +40 -0
- package/dist/models/enablement.controller.js +74 -0
- package/dist/models/enablement.d.ts +101 -0
- package/dist/models/enablement.js +264 -0
- package/dist/models/models.module.d.ts +5 -1
- package/dist/models/models.module.js +16 -4
- package/dist/models/org-models.schemas.d.ts +8 -0
- package/dist/models/org-models.schemas.js +22 -0
- package/dist/models/prices.d.ts +8 -6
- package/dist/models/prices.js +11 -9
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +13 -7
- package/dist/models/purposes.d.ts +72 -14
- package/dist/models/purposes.js +115 -34
- package/dist/orgs/directory-sync.d.ts +14 -5
- package/dist/orgs/directory-sync.js +41 -17
- package/dist/orgs/offboarding.d.ts +12 -8
- package/dist/orgs/offboarding.js +54 -33
- package/dist/orgs/org-lock.d.ts +5 -0
- package/dist/orgs/org-lock.js +13 -0
- package/dist/orgs/org.guard.d.ts +10 -0
- package/dist/orgs/org.guard.js +43 -32
- package/dist/orgs/orgs.controller.d.ts +2 -5
- package/dist/orgs/orgs.controller.js +3 -6
- package/dist/orgs/orgs.module.js +3 -0
- package/dist/orgs/orgs.schemas.d.ts +8 -0
- package/dist/orgs/orgs.schemas.js +16 -0
- package/dist/orgs/orgs.service.d.ts +23 -8
- package/dist/orgs/orgs.service.js +38 -16
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +1 -1
- package/dist/orgs/settings.service.d.ts +66 -6
- package/dist/orgs/settings.service.js +89 -10
- package/dist/overrides.d.ts +16 -1
- package/dist/overrides.js +10 -0
- package/dist/platform/actor.d.ts +48 -0
- package/dist/platform/actor.js +100 -0
- package/dist/platform/agent-docs.d.ts +18 -0
- package/dist/platform/agent-docs.js +59 -0
- package/dist/platform/availability.d.ts +14 -0
- package/dist/platform/availability.js +43 -0
- package/dist/platform/errors.d.ts +28 -0
- package/dist/platform/errors.js +65 -0
- package/dist/platform/exclusions.d.ts +11 -0
- package/dist/platform/exclusions.js +774 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +169 -0
- package/dist/platform/operation.js +102 -0
- package/dist/platform/ops/accounts.ops.d.ts +32 -0
- package/dist/platform/ops/accounts.ops.js +291 -0
- package/dist/platform/ops/admin-items.ops.d.ts +37 -0
- package/dist/platform/ops/admin-items.ops.js +278 -0
- package/dist/platform/ops/admin.ops.d.ts +38 -0
- package/dist/platform/ops/admin.ops.js +497 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +50 -0
- package/dist/platform/ops/agent-skills.ops.js +509 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
- package/dist/platform/ops/agent-templates.ops.js +272 -0
- package/dist/platform/ops/agents.ops.d.ts +37 -0
- package/dist/platform/ops/agents.ops.js +730 -0
- package/dist/platform/ops/approvals.ops.d.ts +30 -0
- package/dist/platform/ops/approvals.ops.js +116 -0
- package/dist/platform/ops/background.ops.d.ts +14 -0
- package/dist/platform/ops/background.ops.js +134 -0
- package/dist/platform/ops/catalog-admin.ops.d.ts +92 -0
- package/dist/platform/ops/catalog-admin.ops.js +682 -0
- package/dist/platform/ops/channels.ops.d.ts +16 -0
- package/dist/platform/ops/channels.ops.js +195 -0
- package/dist/platform/ops/components.ops.d.ts +46 -0
- package/dist/platform/ops/components.ops.js +854 -0
- package/dist/platform/ops/connectors.ops.d.ts +17 -0
- package/dist/platform/ops/connectors.ops.js +190 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/devices.ops.d.ts +26 -0
- package/dist/platform/ops/devices.ops.js +311 -0
- package/dist/platform/ops/errors.d.ts +16 -0
- package/dist/platform/ops/errors.js +30 -0
- package/dist/platform/ops/evals.ops.d.ts +28 -0
- package/dist/platform/ops/evals.ops.js +783 -0
- package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
- package/dist/platform/ops/extensions-admin.ops.js +372 -0
- package/dist/platform/ops/extensions.ops.d.ts +25 -0
- package/dist/platform/ops/extensions.ops.js +347 -0
- package/dist/platform/ops/inbox.ops.d.ts +25 -0
- package/dist/platform/ops/inbox.ops.js +381 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
- package/dist/platform/ops/marketplaces.ops.js +466 -0
- package/dist/platform/ops/models.ops.d.ts +25 -0
- package/dist/platform/ops/models.ops.js +232 -0
- package/dist/platform/ops/org-plugins.ops.d.ts +35 -0
- package/dist/platform/ops/org-plugins.ops.js +388 -0
- package/dist/platform/ops/org-settings.ops.d.ts +18 -0
- package/dist/platform/ops/org-settings.ops.js +127 -0
- package/dist/platform/ops/orgs.ops.d.ts +28 -0
- package/dist/platform/ops/orgs.ops.js +298 -0
- package/dist/platform/ops/other-orgs.d.ts +20 -0
- package/dist/platform/ops/other-orgs.js +72 -0
- package/dist/platform/ops/paging.d.ts +14 -0
- package/dist/platform/ops/paging.js +20 -0
- package/dist/platform/ops/platform.ops.d.ts +30 -0
- package/dist/platform/ops/platform.ops.js +231 -0
- package/dist/platform/ops/plugins.ops.d.ts +35 -0
- package/dist/platform/ops/plugins.ops.js +476 -0
- package/dist/platform/ops/previewers.ops.d.ts +14 -0
- package/dist/platform/ops/previewers.ops.js +109 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +191 -0
- package/dist/platform/ops/role.d.ts +4 -0
- package/dist/platform/ops/role.js +10 -0
- package/dist/platform/ops/setup.ops.d.ts +24 -0
- package/dist/platform/ops/setup.ops.js +212 -0
- package/dist/platform/ops/skills.ops.d.ts +17 -0
- package/dist/platform/ops/skills.ops.js +160 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/ops/themes.ops.d.ts +14 -0
- package/dist/platform/ops/themes.ops.js +47 -0
- package/dist/platform/ops/ui.ops.d.ts +8 -0
- package/dist/platform/ops/ui.ops.js +41 -0
- package/dist/platform/ops/unavailable.d.ts +23 -0
- package/dist/platform/ops/unavailable.js +118 -0
- package/dist/platform/parity.d.ts +33 -0
- package/dist/platform/parity.js +272 -0
- package/dist/platform/platform-ops.module.d.ts +43 -0
- package/dist/platform/platform-ops.module.js +142 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- package/dist/platform/route-schemas.d.ts +18 -0
- package/dist/platform/route-schemas.js +85 -0
- package/dist/roles/gateway-role.d.ts +18 -3
- package/dist/roles/gateway-role.js +33 -5
- package/dist/roles/gateway.module.d.ts +2 -1
- package/dist/roles/gateway.module.js +6 -3
- package/dist/roles/worker-role.d.ts +6 -4
- package/dist/roles/worker-role.js +14 -7
- package/dist/roles/worker.module.d.ts +1 -1
- package/dist/roles/worker.module.js +21 -1
- package/dist/runtime/context/build.d.ts +21 -13
- package/dist/runtime/context/build.js +106 -29
- package/dist/runtime/context/claude-tools.d.ts +4 -1
- package/dist/runtime/context/claude-tools.js +13 -12
- package/dist/runtime/context/compaction.js +24 -1
- package/dist/runtime/context/device-paths.d.ts +40 -0
- package/dist/runtime/context/device-paths.js +48 -0
- package/dist/runtime/context/legacy-text.d.ts +22 -0
- package/dist/runtime/context/legacy-text.js +37 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/run-context.d.ts +65 -0
- package/dist/runtime/context/run-context.js +215 -0
- package/dist/runtime/context/skills.d.ts +29 -11
- package/dist/runtime/context/skills.js +46 -32
- package/dist/runtime/context/tool-changes.d.ts +27 -0
- package/dist/runtime/context/tool-changes.js +60 -0
- package/dist/runtime/hook-calls.d.ts +8 -1
- package/dist/runtime/hook-calls.js +40 -7
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +36 -17
- package/dist/runtime/loop.d.ts +35 -6
- package/dist/runtime/maintenance.d.ts +9 -4
- package/dist/runtime/maintenance.js +35 -8
- package/dist/runtime/model-call.d.ts +54 -11
- package/dist/runtime/model-call.js +105 -28
- package/dist/runtime/providers.d.ts +149 -29
- package/dist/runtime/providers.js +332 -63
- package/dist/runtime/run-context.service.d.ts +65 -0
- package/dist/runtime/run-context.service.js +236 -0
- package/dist/runtime/run-control.d.ts +11 -1
- package/dist/runtime/run-control.js +12 -0
- package/dist/runtime/run-drafts.d.ts +85 -0
- package/dist/runtime/run-drafts.js +230 -0
- package/dist/runtime/run-finish.d.ts +1 -1
- package/dist/runtime/run-jobs.d.ts +3 -5
- package/dist/runtime/run-jobs.js +7 -9
- package/dist/runtime/run-queue.d.ts +62 -5
- package/dist/runtime/run-queue.js +313 -40
- package/dist/runtime/run-worker.d.ts +19 -8
- package/dist/runtime/run-worker.js +105 -44
- package/dist/runtime/runtime.module.js +13 -3
- package/dist/runtime/step-log.d.ts +15 -4
- package/dist/runtime/step-log.js +24 -7
- package/dist/runtime/stream.controller.d.ts +23 -1
- package/dist/runtime/stream.controller.js +60 -3
- package/dist/runtime/stream.d.ts +4 -1
- package/dist/runtime/stream.js +27 -3
- package/dist/runtime/subagents/child.d.ts +55 -7
- package/dist/runtime/subagents/child.js +105 -7
- package/dist/runtime/subagents/definition.d.ts +31 -26
- package/dist/runtime/subagents/definition.js +89 -142
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +116 -27
- package/dist/runtime/subagents/dispatch.js +213 -142
- package/dist/runtime/subagents/limits.d.ts +24 -5
- package/dist/runtime/subagents/limits.js +40 -6
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/org-agents.js +2 -1
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +8 -6
- package/dist/runtime/subagents/progress.js +11 -6
- package/dist/runtime/subagents/render.d.ts +30 -0
- package/dist/runtime/subagents/render.js +53 -0
- package/dist/runtime/subagents/roster.d.ts +25 -8
- package/dist/runtime/subagents/roster.js +48 -12
- package/dist/runtime/subagents/skill-fork.d.ts +4 -3
- package/dist/runtime/subagents/skill-fork.js +9 -5
- package/dist/runtime/subagents/status.d.ts +14 -0
- package/dist/runtime/subagents/status.js +23 -0
- package/dist/runtime/subagents/subagents.service.d.ts +9 -6
- package/dist/runtime/subagents/subagents.service.js +13 -8
- package/dist/runtime/usage-report-jobs.d.ts +88 -0
- package/dist/runtime/usage-report-jobs.js +158 -0
- package/dist/runtime/usage-report.d.ts +35 -39
- package/dist/runtime/usage-report.js +171 -97
- package/dist/runtime/waits.d.ts +148 -39
- package/dist/runtime/waits.js +426 -112
- package/dist/sandbox/jobs.d.ts +40 -13
- package/dist/sandbox/jobs.js +57 -20
- package/dist/sandbox/leases.d.ts +37 -54
- package/dist/sandbox/leases.js +71 -115
- package/dist/sandbox/providers.d.ts +34 -7
- package/dist/sandbox/providers.js +54 -9
- package/dist/sandbox/sandbox-file-reader.d.ts +35 -0
- package/dist/sandbox/sandbox-file-reader.js +98 -0
- package/dist/sandbox/sandbox.module.d.ts +3 -2
- package/dist/sandbox/sandbox.module.js +10 -4
- package/dist/sandbox/sandbox.service.d.ts +345 -132
- package/dist/sandbox/sandbox.service.js +883 -399
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/setup/kernel-checks.d.ts +91 -0
- package/dist/setup/kernel-checks.js +295 -0
- package/dist/setup/oauth-token-probe.d.ts +47 -0
- package/dist/setup/oauth-token-probe.js +108 -0
- package/dist/setup/redact-check.d.ts +18 -0
- package/dist/setup/redact-check.js +46 -0
- package/dist/setup/setup-check-registry.d.ts +86 -0
- package/dist/setup/setup-check-registry.js +75 -0
- package/dist/setup/setup-checks.controller.d.ts +28 -0
- package/dist/setup/setup-checks.controller.js +78 -0
- package/dist/setup/setup-checks.schemas.d.ts +38 -0
- package/dist/setup/setup-checks.schemas.js +43 -0
- package/dist/setup/setup-checks.service.d.ts +144 -0
- package/dist/setup/setup-checks.service.js +683 -0
- package/dist/setup/setup-guides.controller.d.ts +18 -0
- package/dist/setup/setup-guides.controller.js +48 -0
- package/dist/setup/setup-guides.schemas.d.ts +10 -0
- package/dist/setup/setup-guides.schemas.js +6 -0
- package/dist/setup/setup-guides.service.d.ts +126 -0
- package/dist/setup/setup-guides.service.js +315 -0
- package/dist/setup/setup.module.d.ts +8 -0
- package/dist/setup/setup.module.js +31 -0
- package/dist/skills/agent-skills.controller.d.ts +48 -0
- package/dist/skills/agent-skills.controller.js +131 -0
- package/dist/skills/agent-skills.service.d.ts +262 -0
- package/dist/skills/agent-skills.service.js +996 -0
- package/dist/skills/catalog.d.ts +14 -11
- package/dist/skills/catalog.js +32 -50
- package/dist/skills/changes.controller.d.ts +12 -22
- package/dist/skills/changes.controller.js +27 -56
- package/dist/skills/changes.service.d.ts +69 -115
- package/dist/skills/changes.service.js +249 -598
- package/dist/skills/conversation-catalog.d.ts +53 -0
- package/dist/skills/conversation-catalog.js +149 -0
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +2 -2
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +3 -3
- package/dist/skills/invoke.js +21 -8
- package/dist/skills/package.d.ts +15 -1
- package/dist/skills/package.js +14 -1
- package/dist/skills/skills.controller.d.ts +32 -6
- package/dist/skills/skills.controller.js +64 -11
- package/dist/skills/skills.module.js +25 -3
- package/dist/skills/skills.schemas.d.ts +44 -0
- package/dist/skills/skills.schemas.js +68 -0
- package/dist/skills/skills.service.d.ts +123 -26
- package/dist/skills/skills.service.js +493 -76
- package/dist/skills/usable.d.ts +82 -0
- package/dist/skills/usable.js +388 -0
- package/dist/themes/render-css.d.ts +13 -0
- package/dist/themes/render-css.js +135 -0
- package/dist/themes/theme-delivery.service.d.ts +36 -0
- package/dist/themes/theme-delivery.service.js +116 -0
- package/dist/themes/theme-state.d.ts +116 -0
- package/dist/themes/theme-state.js +221 -0
- package/dist/themes/theme-usage.d.ts +61 -0
- package/dist/themes/theme-usage.js +98 -0
- package/dist/themes/themes-public.controller.d.ts +33 -0
- package/dist/themes/themes-public.controller.js +98 -0
- package/dist/themes/themes.controller.d.ts +13 -0
- package/dist/themes/themes.controller.js +38 -0
- package/dist/themes/themes.module.d.ts +3 -0
- package/dist/themes/themes.module.js +21 -0
- package/dist/themes/themes.schemas.d.ts +3 -0
- package/dist/themes/themes.schemas.js +2 -0
- package/dist/themes/themes.service.d.ts +50 -0
- package/dist/themes/themes.service.js +99 -0
- package/dist/time-zone.d.ts +5 -0
- package/dist/time-zone.js +19 -0
- package/dist/tools/admin-connectors.d.ts +69 -0
- package/dist/tools/admin-connectors.js +135 -0
- package/dist/tools/approvals.controller.js +2 -3
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +26 -2
- package/dist/tools/approvals.service.js +44 -5
- package/dist/tools/builtin-names.d.ts +104 -0
- package/dist/tools/builtin-names.js +164 -0
- package/dist/tools/builtins/agent.d.ts +27 -25
- package/dist/tools/builtins/agent.js +66 -63
- package/dist/tools/builtins/ask-user.d.ts +1 -1
- package/dist/tools/builtins/ask-user.js +5 -4
- package/dist/tools/builtins/builtin-tools.d.ts +23 -4
- package/dist/tools/builtins/builtin-tools.js +78 -12
- package/dist/tools/builtins/current-time.d.ts +26 -0
- package/dist/tools/builtins/current-time.js +99 -0
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +51 -0
- package/dist/tools/builtins/platform.js +451 -0
- package/dist/tools/builtins/read-tool-output.d.ts +1 -1
- package/dist/tools/builtins/read-tool-output.js +2 -2
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +291 -39
- package/dist/tools/builtins/sandbox/common.d.ts +135 -36
- package/dist/tools/builtins/sandbox/common.js +222 -62
- package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
- package/dist/tools/builtins/sandbox/deliver.js +19 -16
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +64 -50
- package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
- package/dist/tools/builtins/sandbox/file-state.js +34 -0
- package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob-match.js +1 -1
- package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob.js +17 -12
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +153 -34
- package/dist/tools/builtins/sandbox/index.d.ts +9 -5
- package/dist/tools/builtins/sandbox/index.js +13 -5
- package/dist/tools/builtins/sandbox/read.d.ts +2 -2
- package/dist/tools/builtins/sandbox/read.js +29 -19
- package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
- package/dist/tools/builtins/sandbox/task-output.js +334 -0
- package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
- package/dist/tools/builtins/sandbox/task-stop.js +113 -0
- package/dist/tools/builtins/sandbox/write.d.ts +1 -1
- package/dist/tools/builtins/sandbox/write.js +51 -44
- package/dist/tools/builtins/send-message.d.ts +56 -0
- package/dist/tools/builtins/send-message.js +100 -0
- package/dist/tools/builtins/skill-load.d.ts +29 -18
- package/dist/tools/builtins/skill-load.js +125 -73
- package/dist/tools/builtins/tool-search.d.ts +13 -9
- package/dist/tools/builtins/tool-search.js +25 -14
- package/dist/tools/builtins/web/errors.d.ts +8 -0
- package/dist/tools/builtins/web/errors.js +53 -0
- package/dist/tools/builtins/web/extract.d.ts +62 -0
- package/dist/tools/builtins/web/extract.js +271 -0
- package/dist/tools/builtins/web/fetch.d.ts +55 -0
- package/dist/tools/builtins/web/fetch.js +175 -0
- package/dist/tools/builtins/web/index.d.ts +13 -0
- package/dist/tools/builtins/web/index.js +12 -0
- package/dist/tools/builtins/web/page-cache.d.ts +25 -0
- package/dist/tools/builtins/web/page-cache.js +77 -0
- package/dist/tools/builtins/web/search.d.ts +25 -0
- package/dist/tools/builtins/web/search.js +210 -0
- package/dist/tools/builtins/web/url.d.ts +17 -0
- package/dist/tools/builtins/web/url.js +43 -0
- package/dist/tools/connector-account-policies.d.ts +51 -0
- package/dist/tools/connector-account-policies.js +165 -0
- package/dist/tools/connectors.controller.d.ts +74 -9
- package/dist/tools/connectors.controller.js +133 -16
- package/dist/tools/connectors.schemas.d.ts +27 -0
- package/dist/tools/connectors.schemas.js +34 -0
- package/dist/tools/connectors.service.d.ts +101 -8
- package/dist/tools/connectors.service.js +266 -28
- package/dist/tools/credentials.d.ts +23 -0
- package/dist/tools/credentials.js +90 -1
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.js +5 -5
- package/dist/tools/elicitation.js +1 -1
- package/dist/tools/extension-tools.controller.d.ts +14 -0
- package/dist/tools/extension-tools.controller.js +37 -0
- package/dist/tools/info.d.ts +61 -4
- package/dist/tools/info.js +119 -33
- package/dist/tools/legacy-data.d.ts +34 -0
- package/dist/tools/legacy-data.js +76 -0
- package/dist/tools/legacy-keys.d.ts +51 -0
- package/dist/tools/legacy-keys.js +114 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +1 -1
- package/dist/tools/oauth/flow-paths.js +1 -1
- package/dist/tools/oauth/flow.js +1 -1
- package/dist/tools/oauth/tokens.d.ts +54 -7
- package/dist/tools/oauth/tokens.js +87 -17
- package/dist/tools/org-tool-switches.d.ts +89 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.js +1 -1
- package/dist/tools/pipeline.d.ts +67 -47
- package/dist/tools/pipeline.js +319 -380
- package/dist/tools/policy.d.ts +30 -23
- package/dist/tools/policy.js +142 -64
- package/dist/tools/questions.controller.d.ts +1 -1
- package/dist/tools/questions.controller.js +1 -1
- package/dist/tools/questions.service.d.ts +23 -2
- package/dist/tools/questions.service.js +104 -2
- package/dist/tools/registry.d.ts +189 -68
- package/dist/tools/registry.js +318 -236
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/tools.module.js +31 -3
- package/dist/tools/validate.js +1 -1
- package/dist/ui/admin-ui.controller.d.ts +56 -0
- package/dist/ui/admin-ui.controller.js +192 -0
- package/dist/ui/arrangement.d.ts +65 -0
- package/dist/ui/arrangement.js +171 -0
- package/dist/ui/embed-token.d.ts +2 -2
- package/dist/ui/embed-token.js +30 -5
- package/dist/ui/registry.d.ts +42 -17
- package/dist/ui/registry.js +46 -14
- package/dist/ui/slots.controller.d.ts +11 -0
- package/dist/ui/slots.controller.js +25 -0
- package/dist/ui/ui-stream.d.ts +20 -3
- package/dist/ui/ui-stream.js +25 -7
- package/dist/ui/ui.schemas.d.ts +70 -0
- package/dist/ui/ui.schemas.js +65 -0
- package/dist/ui/views.controller.d.ts +35 -49
- package/dist/ui/views.controller.js +48 -70
- package/dist/ui/views.d.ts +112 -18
- package/dist/ui/views.js +254 -47
- package/package.json +6 -3
- package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
- package/src/migrations/0064_account_last_org.sql +7 -0
- package/src/migrations/0065_conversation_archive.sql +8 -0
- package/src/migrations/0066_extension_display_name.sql +4 -0
- package/src/migrations/0067_agent_profiles.sql +20 -0
- package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
- package/src/migrations/0069_attachments_agent_idx.sql +3 -0
- package/src/migrations/0070_background_tasks.sql +37 -0
- package/src/migrations/0071_background_tasks_reserve.sql +6 -0
- package/src/migrations/0072_background_tasks_stopping.sql +5 -0
- package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
- package/src/migrations/0074_subagent_tree.sql +50 -0
- package/src/migrations/0075_plugin_scope.sql +61 -0
- package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
- package/src/migrations/0077_scope_requests.sql +52 -0
- package/src/migrations/0078_scope_grant_switches.sql +18 -0
- package/src/migrations/0079_scope_live_install_switches.sql +19 -0
- package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
- package/src/migrations/0081_platform_components.sql +129 -0
- package/src/migrations/0082_platform_migration.sql +33 -0
- package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
- package/src/migrations/0084_org_owned_items.sql +85 -0
- package/src/migrations/0085_agent_templates_phase4.sql +45 -0
- package/src/migrations/0086_org_layering.sql +30 -0
- package/src/migrations/0087_approval_summary.sql +6 -0
- package/src/migrations/0088_environments.sql +80 -0
- package/src/migrations/0089_model_kinds_usage.sql +38 -0
- package/src/migrations/0090_initial_passwords.sql +27 -0
- package/src/migrations/0091_account_time_zone.sql +4 -0
- package/src/migrations/0092_tools_default_on.sql +27 -0
- package/src/migrations/0093_connected_environments.sql +37 -0
- package/src/migrations/0094_environment_paths_idx.sql +7 -0
- package/src/migrations/0095_environment_files_resets.sql +5 -0
- package/src/migrations/0096_environment_demoted_default.sql +18 -0
- package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
- package/src/migrations/0098_single_provider_running_first.sql +41 -0
- package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
- package/src/migrations/0100_catalog_files.sql +13 -0
- package/src/migrations/0101_marketplace_icons.sql +32 -0
- package/src/migrations/0102_themes.sql +64 -0
- package/src/migrations/0103_ui_theme_setting.sql +7 -0
- package/src/migrations/0104_connector_tool_account_policies.sql +16 -0
- package/src/migrations/0105_devices_rename.sql +136 -0
- package/src/migrations/0106_setup_guides_v2.sql +10 -0
- package/src/migrations/0107_extension_client_builds.sql +50 -0
- package/src/migrations/0108_question_skipped.sql +6 -0
- package/src/migrations/0109_audit_platform_idx.sql +5 -0
- package/src/migrations/0110_usage_time_idx.sql +8 -0
- package/src/migrations/0111_agent_skill_sharing.sql +22 -0
- package/src/migrations/0112_skill_share_requests.sql +4 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -56
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -24
- package/dist/conversations/sandbox-status.js +0 -52
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -62
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
- package/dist/tools/builtins/skill-write.d.ts +0 -59
- package/dist/tools/builtins/skill-write.js +0 -244
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { type ContentBlock, type ModelRequest, type ModelUsage, type ParamValue, type StopReason } from "@capybara-hq/plugin-sdk";
|
|
1
|
+
import { type ContentBlock, type LocalizedName, type ModelRequest, type ModelUsage, type ParamValue, type StopReason } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { ModelRef } from "../agents/definition.js";
|
|
4
4
|
import { ExtensionRegistry } from "../extensions/registry.js";
|
|
5
|
-
import {
|
|
5
|
+
import { SuperAdminLock } from "../identity/super-admin.js";
|
|
6
6
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
7
7
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
8
8
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
@@ -11,9 +11,11 @@ import { ProviderRegistry } from "../runtime/providers.js";
|
|
|
11
11
|
/**
|
|
12
12
|
* 模型用途映射(C9):内核与插件按「用途」取模型,不在代码里写死模型。
|
|
13
13
|
* - 用途 = 内核用途 {@link KERNEL_PURPOSES}(目前只有评委 `eval`),或已加载插件 `permissions.models` 声明的;
|
|
14
|
-
* - 映射 = 部署默认(`org_id` 为 null
|
|
14
|
+
* - 映射 = 部署默认(`org_id` 为 null,超级管理员设)+ 组织覆盖(组织管理员设,`org.models.manage`);
|
|
15
15
|
* 生效的映射先取组织覆盖、再取部署默认,都没有 → `model.unconfigured`;
|
|
16
|
-
* -
|
|
16
|
+
* - a target's kind must equal the purpose's kind; an org's override must be enabled in the org on
|
|
17
|
+
* save (a deployment default: not disabled on the platform), and an effective target disabled in
|
|
18
|
+
* the org (by either layer) counts as unconfigured there (spec B §5.3);参数按目标模型自己的声明严格校验;
|
|
17
19
|
* - 每次都查 PG,不在进程内缓存(多副本下改映射立即生效)。`ctx.models` 仍预留,插件暂不能调用。
|
|
18
20
|
*/
|
|
19
21
|
/**
|
|
@@ -35,25 +37,32 @@ export declare const KERNEL_PURPOSES: readonly [{
|
|
|
35
37
|
readonly zh: "会话标题";
|
|
36
38
|
readonly en: "Conversation titles";
|
|
37
39
|
};
|
|
40
|
+
}, {
|
|
41
|
+
readonly purpose: "web_fetch";
|
|
42
|
+
readonly kind: "chat";
|
|
43
|
+
readonly label: {
|
|
44
|
+
readonly zh: "网页提取";
|
|
45
|
+
readonly en: "Web page extraction";
|
|
46
|
+
};
|
|
38
47
|
}, {
|
|
39
48
|
readonly purpose: "subagent_fast";
|
|
40
49
|
readonly kind: "chat";
|
|
41
50
|
readonly label: {
|
|
42
|
-
readonly zh: "
|
|
51
|
+
readonly zh: "子智能体:快速";
|
|
43
52
|
readonly en: "Sub-agent: fast";
|
|
44
53
|
};
|
|
45
54
|
}, {
|
|
46
55
|
readonly purpose: "subagent_standard";
|
|
47
56
|
readonly kind: "chat";
|
|
48
57
|
readonly label: {
|
|
49
|
-
readonly zh: "
|
|
58
|
+
readonly zh: "子智能体:标准";
|
|
50
59
|
readonly en: "Sub-agent: standard";
|
|
51
60
|
};
|
|
52
61
|
}, {
|
|
53
62
|
readonly purpose: "subagent_capable";
|
|
54
63
|
readonly kind: "chat";
|
|
55
64
|
readonly label: {
|
|
56
|
-
readonly zh: "
|
|
65
|
+
readonly zh: "子智能体:最强";
|
|
57
66
|
readonly en: "Sub-agent: capable";
|
|
58
67
|
};
|
|
59
68
|
}];
|
|
@@ -75,6 +84,17 @@ export interface PurposeView {
|
|
|
75
84
|
override: PurposeTarget | null;
|
|
76
85
|
effective: PurposeTarget | null;
|
|
77
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* A purpose as the purpose APIs return it: the view plus the declaring extension's display name
|
|
89
|
+
* (`null` for a kernel purpose, or an extension without one), so a page names the extension.
|
|
90
|
+
*/
|
|
91
|
+
export interface PurposeListing extends PurposeView {
|
|
92
|
+
declaredByName: LocalizedName | null;
|
|
93
|
+
}
|
|
94
|
+
/** {@link PurposeListing}s of `views`, the display names read in one call. */
|
|
95
|
+
export declare function withDeclaredByNames(views: PurposeView[], names: {
|
|
96
|
+
many(names: string[]): Promise<Map<string, LocalizedName | null>>;
|
|
97
|
+
}): Promise<PurposeListing[]>;
|
|
78
98
|
/** `PUT …/model-purposes/:purpose` 的 body:设映射,或 `target: null` 清除。 */
|
|
79
99
|
export declare const PURPOSE_PUT: z.ZodObject<{
|
|
80
100
|
target: z.ZodNullable<z.ZodObject<{
|
|
@@ -121,7 +141,7 @@ export declare class ModelPurposesService {
|
|
|
121
141
|
readonly txHost: TransactionHost;
|
|
122
142
|
private readonly adminLock;
|
|
123
143
|
private readonly orgLock;
|
|
124
|
-
constructor(db: KernelDb, extensions: ExtensionRegistry, config: KernelConfigService, providers: Pick<ProviderRegistry, "resolve">, txHost: TransactionHost, adminLock:
|
|
144
|
+
constructor(db: KernelDb, extensions: ExtensionRegistry, config: KernelConfigService, providers: Pick<ProviderRegistry, "resolve" | "platformInfo">, txHost: TransactionHost, adminLock: SuperAdminLock, orgLock: OrgLock);
|
|
125
145
|
/** 全部已声明的用途:内核的在前,其后按插件加载顺序。 */
|
|
126
146
|
private declared;
|
|
127
147
|
private find;
|
|
@@ -129,17 +149,52 @@ export declare class ModelPurposesService {
|
|
|
129
149
|
private views;
|
|
130
150
|
/** 全部用途与映射;不给 `orgId` = 部署级视图(`override` 一律为 null)。 */
|
|
131
151
|
list(orgId?: string): Promise<PurposeView[]>;
|
|
132
|
-
/**
|
|
152
|
+
/**
|
|
153
|
+
* 校验目标:模型可解析且启用(an org's override for the org, a deployment default in the
|
|
154
|
+
* platform view)、its kind is the purpose's `kind`、参数按它的声明严格通过。
|
|
155
|
+
*/
|
|
133
156
|
private check;
|
|
134
157
|
private set;
|
|
135
|
-
/**
|
|
158
|
+
/**
|
|
159
|
+
* The checks {@link set} runs before writing, nothing written: an unknown purpose, and a target
|
|
160
|
+
* model the scope cannot use, of another kind, or with invalid params (the Platform tool's
|
|
161
|
+
* precheck, so a known failure never reaches the confirmation card).
|
|
162
|
+
*/
|
|
163
|
+
validate(orgId: string | null, purpose: string, target: PurposeTarget | null): Promise<void>;
|
|
164
|
+
/** The mapping write of {@link set}, under the super admin or org lock. */
|
|
136
165
|
private write;
|
|
137
|
-
/** 设置(或 `null`
|
|
138
|
-
setDefault(purpose: string, target: PurposeTarget | null, actor: string, actorTokenId?: string
|
|
166
|
+
/** 设置(或 `null` 清除)部署默认;只有超级管理员(事务内复核)。 */
|
|
167
|
+
setDefault(purpose: string, target: PurposeTarget | null, actor: string, actorTokenId?: string,
|
|
168
|
+
/** Merged into the audit detail (a write made through the Platform tool). */
|
|
169
|
+
auditDetail?: Record<string, unknown>): Promise<PurposeView>;
|
|
139
170
|
/** 设置(或 `null` 清除)组织覆盖;事务内锁组织并复核 `org.models.manage`。 */
|
|
140
|
-
setOrg(orgId: string, purpose: string, target: PurposeTarget | null, actor: string, actorTokenId?: string
|
|
141
|
-
/**
|
|
171
|
+
setOrg(orgId: string, purpose: string, target: PurposeTarget | null, actor: string, actorTokenId?: string,
|
|
172
|
+
/** Merged into the audit detail (a write made through the Platform tool). */
|
|
173
|
+
auditDetail?: Record<string, unknown>): Promise<PurposeView>;
|
|
174
|
+
/**
|
|
175
|
+
* 生效的映射:组织覆盖,否则部署默认;都没有 → `model.unconfigured`;用途未声明 → `model.purpose_unknown`。
|
|
176
|
+
* An effective target the org cannot use counts as unconfigured there (spec B §5.3): checked in
|
|
177
|
+
* the registry's org view, so a model the platform or the org disabled, a provider off or needing
|
|
178
|
+
* configuration in the org, a model gone from the org's list or of another kind than the purpose
|
|
179
|
+
* all give `model.unconfigured`. A provider whose list fails (`ProviderListError`) keeps the
|
|
180
|
+
* mapping: the call that follows resolves the model again and fails there, retryably, so paths
|
|
181
|
+
* that only read the mapping (sub-agent tiers, eval start, `ctx.models.describe`) do not fail on
|
|
182
|
+
* a transient list error.
|
|
183
|
+
*/
|
|
142
184
|
resolve(orgId: string, purpose: string): Promise<PurposeTarget>;
|
|
185
|
+
/** The target a {@link chat} call on `purpose` uses: the mapping, else `fallback` when unmapped. */
|
|
186
|
+
private chatTarget;
|
|
187
|
+
/**
|
|
188
|
+
* The limits of the model a {@link chat} call on `purpose` would use now (the same mapping and
|
|
189
|
+
* `fallback` rule): its context window and output cap, so a caller can size its request (e.g.
|
|
190
|
+
* the `WebFetch` page) before the call. Fails as `chat` does before sending.
|
|
191
|
+
*/
|
|
192
|
+
chatLimits(orgId: string, purpose: string, opts?: {
|
|
193
|
+
fallback?: PurposeTarget;
|
|
194
|
+
}): Promise<{
|
|
195
|
+
contextWindow: number;
|
|
196
|
+
maxOutputTokens: number;
|
|
197
|
+
}>;
|
|
143
198
|
/**
|
|
144
199
|
* 按用途发一次对话请求:解析映射、按目标模型的声明宽松处理参数(补默认值,与运行时一致),用 `consumeModelStream`
|
|
145
200
|
* 收完(只有流空闲看门狗)。输出上限取 `min(req.maxOutputTokens, 目标模型的 maxOutputTokens)`。
|
|
@@ -147,10 +202,13 @@ export declare class ModelPurposesService {
|
|
|
147
202
|
* `opts.fallback`: the target used when the purpose is not mapped (`model.unconfigured`).
|
|
148
203
|
* `opts.beforeSend`: called with the resolved target and the final request just before sending;
|
|
149
204
|
* what it throws is thrown as is (a pre-send failure, e.g. a denied `model.request` hook).
|
|
205
|
+
* `opts.paramDefaults`: values for parameters the target does not set, kept only where the
|
|
206
|
+
* target model declares the key and the value fits it (e.g. `thinking: "off"` for a short call).
|
|
150
207
|
*/
|
|
151
208
|
chat(orgId: string, purpose: string, req: Omit<ModelRequest, "model" | "params">, signal: AbortSignal, opts?: {
|
|
152
209
|
fallback?: PurposeTarget;
|
|
153
210
|
beforeSend?: (target: ModelRef, request: ModelRequest) => Promise<void>;
|
|
211
|
+
paramDefaults?: Record<string, ParamValue>;
|
|
154
212
|
}): Promise<{
|
|
155
213
|
content: ContentBlock[];
|
|
156
214
|
stopReason: StopReason;
|
package/dist/models/purposes.js
CHANGED
|
@@ -14,7 +14,7 @@ import { ModelRef, paramIssues } from "../agents/definition.js";
|
|
|
14
14
|
import { ApiError } from "../errors.js";
|
|
15
15
|
import { ExtensionRegistry } from "../extensions/registry.js";
|
|
16
16
|
import { audit } from "../identity/audit.js";
|
|
17
|
-
import {
|
|
17
|
+
import { SuperAdminLock } from "../identity/super-admin.js";
|
|
18
18
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
19
19
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
20
20
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
@@ -27,9 +27,11 @@ import { ProviderListError, ProviderRegistry } from "../runtime/providers.js";
|
|
|
27
27
|
/**
|
|
28
28
|
* 模型用途映射(C9):内核与插件按「用途」取模型,不在代码里写死模型。
|
|
29
29
|
* - 用途 = 内核用途 {@link KERNEL_PURPOSES}(目前只有评委 `eval`),或已加载插件 `permissions.models` 声明的;
|
|
30
|
-
* - 映射 = 部署默认(`org_id` 为 null
|
|
30
|
+
* - 映射 = 部署默认(`org_id` 为 null,超级管理员设)+ 组织覆盖(组织管理员设,`org.models.manage`);
|
|
31
31
|
* 生效的映射先取组织覆盖、再取部署默认,都没有 → `model.unconfigured`;
|
|
32
|
-
* -
|
|
32
|
+
* - a target's kind must equal the purpose's kind; an org's override must be enabled in the org on
|
|
33
|
+
* save (a deployment default: not disabled on the platform), and an effective target disabled in
|
|
34
|
+
* the org (by either layer) counts as unconfigured there (spec B §5.3);参数按目标模型自己的声明严格校验;
|
|
33
35
|
* - 每次都查 PG,不在进程内缓存(多副本下改映射立即生效)。`ctx.models` 仍预留,插件暂不能调用。
|
|
34
36
|
*/
|
|
35
37
|
/**
|
|
@@ -41,22 +43,36 @@ export const KERNEL_PURPOSES = [
|
|
|
41
43
|
{ purpose: "eval", kind: "chat", label: { zh: "评测评委", en: "Eval judge" } },
|
|
42
44
|
/** Conversation titles (UI refresh B); unmapped → the conversation's current chat model. */
|
|
43
45
|
{ purpose: "title", kind: "chat", label: { zh: "会话标题", en: "Conversation titles" } },
|
|
46
|
+
/**
|
|
47
|
+
* The `WebFetch` extraction call (web tools spec §5); unmapped → the calling conversation's
|
|
48
|
+
* current chat model (a sub-agent's call: the sub-agent's).
|
|
49
|
+
*/
|
|
50
|
+
{ purpose: "web_fetch", kind: "chat", label: { zh: "网页提取", en: "Web page extraction" } },
|
|
44
51
|
{
|
|
45
52
|
purpose: "subagent_fast",
|
|
46
53
|
kind: "chat",
|
|
47
|
-
label: { zh: "
|
|
54
|
+
label: { zh: "子智能体:快速", en: "Sub-agent: fast" },
|
|
48
55
|
},
|
|
49
56
|
{
|
|
50
57
|
purpose: "subagent_standard",
|
|
51
58
|
kind: "chat",
|
|
52
|
-
label: { zh: "
|
|
59
|
+
label: { zh: "子智能体:标准", en: "Sub-agent: standard" },
|
|
53
60
|
},
|
|
54
61
|
{
|
|
55
62
|
purpose: "subagent_capable",
|
|
56
63
|
kind: "chat",
|
|
57
|
-
label: { zh: "
|
|
64
|
+
label: { zh: "子智能体:最强", en: "Sub-agent: capable" },
|
|
58
65
|
},
|
|
59
66
|
];
|
|
67
|
+
/** {@link PurposeListing}s of `views`, the display names read in one call. */
|
|
68
|
+
export async function withDeclaredByNames(views, names) {
|
|
69
|
+
const plugins = views.map((v) => v.declaredBy).filter((d) => d !== "kernel");
|
|
70
|
+
const found = await names.many(plugins);
|
|
71
|
+
return views.map((v) => ({
|
|
72
|
+
...v,
|
|
73
|
+
declaredByName: v.declaredBy === "kernel" ? null : (found.get(v.declaredBy) ?? null),
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
60
76
|
/** `PUT …/model-purposes/:purpose` 的 body:设映射,或 `target: null` 清除。 */
|
|
61
77
|
export const PURPOSE_PUT = z
|
|
62
78
|
.object({
|
|
@@ -175,11 +191,17 @@ let ModelPurposesService = class ModelPurposesService {
|
|
|
175
191
|
async list(orgId) {
|
|
176
192
|
return this.views(this.declared(), orgId);
|
|
177
193
|
}
|
|
178
|
-
/**
|
|
179
|
-
|
|
194
|
+
/**
|
|
195
|
+
* 校验目标:模型可解析且启用(an org's override for the org, a deployment default in the
|
|
196
|
+
* platform view)、its kind is the purpose's `kind`、参数按它的声明严格通过。
|
|
197
|
+
*/
|
|
198
|
+
async check(orgId, target, kind) {
|
|
180
199
|
let info;
|
|
181
200
|
try {
|
|
182
|
-
|
|
201
|
+
info =
|
|
202
|
+
orgId === null
|
|
203
|
+
? await this.providers.platformInfo(target.model, { kind: "callable" })
|
|
204
|
+
: (await this.providers.resolve(orgId, target.model, { kind: "callable" })).info;
|
|
183
205
|
}
|
|
184
206
|
catch (e) {
|
|
185
207
|
if (e instanceof ProviderListError)
|
|
@@ -189,20 +211,38 @@ let ModelPurposesService = class ModelPurposesService {
|
|
|
189
211
|
}
|
|
190
212
|
throw e;
|
|
191
213
|
}
|
|
214
|
+
if (info.kind !== kind) {
|
|
215
|
+
throw invalid([
|
|
216
|
+
{
|
|
217
|
+
path: "target.model",
|
|
218
|
+
message: `this purpose needs ${kind === "embedding" ? "an" : "a"} ${kind} model, not ${info.kind}`,
|
|
219
|
+
},
|
|
220
|
+
]);
|
|
221
|
+
}
|
|
192
222
|
const issues = paramIssues("target.params", info.parameters, target.params);
|
|
193
223
|
if (issues.length > 0)
|
|
194
224
|
throw invalid(issues);
|
|
195
225
|
}
|
|
196
|
-
async set(orgId, purpose, target, actor, actorTokenId) {
|
|
226
|
+
async set(orgId, purpose, target, actor, actorTokenId, auditDetail) {
|
|
197
227
|
const decl = this.find(purpose);
|
|
198
228
|
if (target)
|
|
199
|
-
await this.check(target);
|
|
200
|
-
await this.write(orgId, purpose, target, actor, actorTokenId);
|
|
229
|
+
await this.check(orgId, target, decl.kind);
|
|
230
|
+
await this.write(orgId, purpose, target, actor, actorTokenId, auditDetail);
|
|
201
231
|
const [view] = await this.views([decl], orgId ?? undefined);
|
|
202
232
|
return view;
|
|
203
233
|
}
|
|
204
|
-
/**
|
|
205
|
-
|
|
234
|
+
/**
|
|
235
|
+
* The checks {@link set} runs before writing, nothing written: an unknown purpose, and a target
|
|
236
|
+
* model the scope cannot use, of another kind, or with invalid params (the Platform tool's
|
|
237
|
+
* precheck, so a known failure never reaches the confirmation card).
|
|
238
|
+
*/
|
|
239
|
+
async validate(orgId, purpose, target) {
|
|
240
|
+
const decl = this.find(purpose);
|
|
241
|
+
if (target)
|
|
242
|
+
await this.check(orgId, target, decl.kind);
|
|
243
|
+
}
|
|
244
|
+
/** The mapping write of {@link set}, under the super admin or org lock. */
|
|
245
|
+
async write(orgId, purpose, target, actor, actorTokenId, auditDetail) {
|
|
206
246
|
if (orgId === null)
|
|
207
247
|
await this.adminLock.lockAndAuthorize(actor);
|
|
208
248
|
else
|
|
@@ -235,25 +275,71 @@ let ModelPurposesService = class ModelPurposesService {
|
|
|
235
275
|
...(orgId !== null && { orgId }),
|
|
236
276
|
action: "model.purpose_mapped",
|
|
237
277
|
target: purpose,
|
|
238
|
-
detail: { scope: orgId === null ? "deployment" : "org", target },
|
|
278
|
+
detail: { scope: orgId === null ? "deployment" : "org", target, ...auditDetail },
|
|
239
279
|
});
|
|
240
280
|
}
|
|
241
|
-
/** 设置(或 `null`
|
|
242
|
-
setDefault(purpose, target, actor, actorTokenId
|
|
243
|
-
|
|
281
|
+
/** 设置(或 `null` 清除)部署默认;只有超级管理员(事务内复核)。 */
|
|
282
|
+
setDefault(purpose, target, actor, actorTokenId,
|
|
283
|
+
/** Merged into the audit detail (a write made through the Platform tool). */
|
|
284
|
+
auditDetail) {
|
|
285
|
+
return this.set(null, purpose, target, actor, actorTokenId, auditDetail);
|
|
244
286
|
}
|
|
245
287
|
/** 设置(或 `null` 清除)组织覆盖;事务内锁组织并复核 `org.models.manage`。 */
|
|
246
|
-
setOrg(orgId, purpose, target, actor, actorTokenId
|
|
247
|
-
|
|
288
|
+
setOrg(orgId, purpose, target, actor, actorTokenId,
|
|
289
|
+
/** Merged into the audit detail (a write made through the Platform tool). */
|
|
290
|
+
auditDetail) {
|
|
291
|
+
return this.set(orgId, purpose, target, actor, actorTokenId, auditDetail);
|
|
248
292
|
}
|
|
249
|
-
/**
|
|
293
|
+
/**
|
|
294
|
+
* 生效的映射:组织覆盖,否则部署默认;都没有 → `model.unconfigured`;用途未声明 → `model.purpose_unknown`。
|
|
295
|
+
* An effective target the org cannot use counts as unconfigured there (spec B §5.3): checked in
|
|
296
|
+
* the registry's org view, so a model the platform or the org disabled, a provider off or needing
|
|
297
|
+
* configuration in the org, a model gone from the org's list or of another kind than the purpose
|
|
298
|
+
* all give `model.unconfigured`. A provider whose list fails (`ProviderListError`) keeps the
|
|
299
|
+
* mapping: the call that follows resolves the model again and fails there, retryably, so paths
|
|
300
|
+
* that only read the mapping (sub-agent tiers, eval start, `ctx.models.describe`) do not fail on
|
|
301
|
+
* a transient list error.
|
|
302
|
+
*/
|
|
250
303
|
async resolve(orgId, purpose) {
|
|
251
|
-
const
|
|
304
|
+
const decl = this.find(purpose);
|
|
305
|
+
const [view] = await this.views([decl], orgId);
|
|
252
306
|
if (!view?.effective) {
|
|
253
307
|
throw new ApiError("model.unconfigured", `No model is configured for the "${purpose}" purpose`);
|
|
254
308
|
}
|
|
309
|
+
try {
|
|
310
|
+
await this.providers.resolve(orgId, view.effective.model, { kind: decl.kind });
|
|
311
|
+
}
|
|
312
|
+
catch (e) {
|
|
313
|
+
if (e instanceof ProviderListError)
|
|
314
|
+
return view.effective;
|
|
315
|
+
if (e instanceof ApiError && e.code === "agent.model_unavailable") {
|
|
316
|
+
throw new ApiError("model.unconfigured", `The model configured for the "${purpose}" purpose is not available in this organization`);
|
|
317
|
+
}
|
|
318
|
+
throw e;
|
|
319
|
+
}
|
|
255
320
|
return view.effective;
|
|
256
321
|
}
|
|
322
|
+
/** The target a {@link chat} call on `purpose` uses: the mapping, else `fallback` when unmapped. */
|
|
323
|
+
async chatTarget(orgId, purpose, fallback) {
|
|
324
|
+
try {
|
|
325
|
+
return await this.resolve(orgId, purpose);
|
|
326
|
+
}
|
|
327
|
+
catch (e) {
|
|
328
|
+
if (!(e instanceof ApiError && e.code === "model.unconfigured") || !fallback)
|
|
329
|
+
throw e;
|
|
330
|
+
return fallback;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* The limits of the model a {@link chat} call on `purpose` would use now (the same mapping and
|
|
335
|
+
* `fallback` rule): its context window and output cap, so a caller can size its request (e.g.
|
|
336
|
+
* the `WebFetch` page) before the call. Fails as `chat` does before sending.
|
|
337
|
+
*/
|
|
338
|
+
async chatLimits(orgId, purpose, opts = {}) {
|
|
339
|
+
const target = await this.chatTarget(orgId, purpose, opts.fallback);
|
|
340
|
+
const { info } = await this.providers.resolve(orgId, target.model);
|
|
341
|
+
return { contextWindow: info.contextWindow, maxOutputTokens: info.maxOutputTokens };
|
|
342
|
+
}
|
|
257
343
|
/**
|
|
258
344
|
* 按用途发一次对话请求:解析映射、按目标模型的声明宽松处理参数(补默认值,与运行时一致),用 `consumeModelStream`
|
|
259
345
|
* 收完(只有流空闲看门狗)。输出上限取 `min(req.maxOutputTokens, 目标模型的 maxOutputTokens)`。
|
|
@@ -261,22 +347,17 @@ let ModelPurposesService = class ModelPurposesService {
|
|
|
261
347
|
* `opts.fallback`: the target used when the purpose is not mapped (`model.unconfigured`).
|
|
262
348
|
* `opts.beforeSend`: called with the resolved target and the final request just before sending;
|
|
263
349
|
* what it throws is thrown as is (a pre-send failure, e.g. a denied `model.request` hook).
|
|
350
|
+
* `opts.paramDefaults`: values for parameters the target does not set, kept only where the
|
|
351
|
+
* target model declares the key and the value fits it (e.g. `thinking: "off"` for a short call).
|
|
264
352
|
*/
|
|
265
353
|
async chat(orgId, purpose, req, signal, opts = {}) {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
target = await this.resolve(orgId, purpose);
|
|
269
|
-
}
|
|
270
|
-
catch (e) {
|
|
271
|
-
if (!(e instanceof ApiError && e.code === "model.unconfigured") || !opts.fallback)
|
|
272
|
-
throw e;
|
|
273
|
-
target = opts.fallback;
|
|
274
|
-
}
|
|
275
|
-
const { provider, info } = await this.providers.resolve(target.model);
|
|
354
|
+
const target = await this.chatTarget(orgId, purpose, opts.fallback);
|
|
355
|
+
const { provider, info } = await this.providers.resolve(orgId, target.model);
|
|
276
356
|
const request = {
|
|
277
357
|
...req,
|
|
278
358
|
model: info.id,
|
|
279
|
-
|
|
359
|
+
// undeclared or unfitting defaults are dropped like any other parameter
|
|
360
|
+
params: sanitizeParams(info.parameters, { ...opts.paramDefaults, ...target.params }).value,
|
|
280
361
|
// 输出上限不超过目标模型自己的上限(与运行时 assembleModelRequest 一致)
|
|
281
362
|
maxOutputTokens: Math.min(req.maxOutputTokens, info.maxOutputTokens),
|
|
282
363
|
};
|
|
@@ -311,7 +392,7 @@ ModelPurposesService = __decorate([
|
|
|
311
392
|
__param(2, Inject(KernelConfigService)),
|
|
312
393
|
__param(3, Inject(ProviderRegistry)),
|
|
313
394
|
__param(4, Inject(TransactionHost)),
|
|
314
|
-
__param(5, Inject(
|
|
395
|
+
__param(5, Inject(SuperAdminLock)),
|
|
315
396
|
__param(6, Inject(OrgLock))
|
|
316
397
|
], ModelPurposesService);
|
|
317
398
|
export { ModelPurposesService };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Queue } from "bullmq";
|
|
2
2
|
import type { Redis } from "ioredis";
|
|
3
|
+
import { EffectiveConfigs } from "../extensions/effective-config.js";
|
|
3
4
|
import { OrgExtensionConfigs } from "../extensions/org-config.js";
|
|
4
5
|
import { ExtensionRegistry } from "../extensions/registry.js";
|
|
5
6
|
import { ExternalIdentities } from "../identity/external.js";
|
|
@@ -35,9 +36,11 @@ export declare const DIRECTORY_MAX_PAGES = 10000;
|
|
|
35
36
|
export type DirectorySyncTrigger = "schedule" | "changed" | "manual";
|
|
36
37
|
/**
|
|
37
38
|
* 不同步的原因(陈旧任务、插件已停用 / 配置不再有效、组织已删除、另一同步在跑;`not_configured`:插件的
|
|
38
|
-
* `Directory.configured` 说这份组织配置没配好通讯录,Ruling A28
|
|
39
|
+
* `Directory.configured` 说这份组织配置没配好通讯录,Ruling A28,静默跳过)。`needs_config`: the
|
|
40
|
+
* extension's effective deployment config for the org is not valid (layering spec A §6): skipped
|
|
41
|
+
* silently like `not_configured`; the org admin sees the extension as needing configuration.
|
|
39
42
|
*/
|
|
40
|
-
export type DirectorySkipReason = "plugin_unavailable" | "org_not_found" | "not_enabled" | "config_invalid" | "not_configured" | "locked";
|
|
43
|
+
export type DirectorySkipReason = "plugin_unavailable" | "org_not_found" | "not_enabled" | "config_invalid" | "not_configured" | "needs_config" | "locked";
|
|
41
44
|
export type DirectorySyncResult = {
|
|
42
45
|
status: "skipped";
|
|
43
46
|
reason: DirectorySkipReason;
|
|
@@ -122,18 +125,23 @@ export declare class DirectorySync {
|
|
|
122
125
|
private readonly redis;
|
|
123
126
|
private readonly registry;
|
|
124
127
|
private readonly orgConfigs;
|
|
128
|
+
private readonly effective;
|
|
125
129
|
private readonly external;
|
|
126
130
|
private readonly offboarding;
|
|
127
131
|
private readonly orgLock;
|
|
128
132
|
private readonly queue;
|
|
129
133
|
readonly lockService: LockService;
|
|
130
134
|
readonly log: KernelLogger;
|
|
131
|
-
constructor(db: KernelDb, txHost: TransactionHost, redis: Redis, registry: Pick<ExtensionRegistry, "list">, orgConfigs: Pick<OrgExtensionConfigs, "get">, external: Pick<ExternalIdentities, "resolve">, offboarding: Pick<Offboarding, "offboard" | "afterOffboard">, orgLock: OrgLock, queue: Pick<Queue, "add">, lockService: LockService, log: KernelLogger);
|
|
135
|
+
constructor(db: KernelDb, txHost: TransactionHost, redis: Redis, registry: Pick<ExtensionRegistry, "list">, orgConfigs: Pick<OrgExtensionConfigs, "get">, effective: Pick<EffectiveConfigs, "get">, external: Pick<ExternalIdentities, "resolve">, offboarding: Pick<Offboarding, "offboard" | "afterOffboard">, orgLock: OrgLock, queue: Pick<Queue, "add">, lockService: LockService, log: KernelLogger);
|
|
132
136
|
/** A `directory-sync` job (dispatched by `MaintenanceProcessor`). */
|
|
133
137
|
runSyncJob(data: SyncJobData): Promise<void>;
|
|
134
138
|
/** 插件提供的 `directory@1`;未加载或不提供时 undefined。 */
|
|
135
139
|
private provider;
|
|
136
|
-
/**
|
|
140
|
+
/**
|
|
141
|
+
* The org exists, the extension provides a directory, is enabled in the org, its org config
|
|
142
|
+
* satisfies the schema (reuses the `OrgExtensionConfigs.get` validation) and its effective
|
|
143
|
+
* deployment config for the org is valid (layering spec A §6).
|
|
144
|
+
*/
|
|
137
145
|
private eligible;
|
|
138
146
|
/**
|
|
139
147
|
* 投递一次 `directory_changed` 同步(按分钟桶去重);返回 job id。入站 `directory_changed` 经
|
|
@@ -146,7 +154,8 @@ export declare class DirectorySync {
|
|
|
146
154
|
* Manual trigger by an admin: re-checks `org.members.manage` live under the org row lock, then that
|
|
147
155
|
* the extension can sync (does not provide a directory -> `extension.not_found`, not enabled ->
|
|
148
156
|
* `extension.not_enabled`, config no longer valid -> `extension.config_invalid`, the extension says
|
|
149
|
-
* the directory is not configured -> `directory.not_configured`, Ruling A28
|
|
157
|
+
* the directory is not configured -> `directory.not_configured`, Ruling A28; the effective config
|
|
158
|
+
* is not valid in the org -> `extension.needs_config`, layering spec A §6), and enqueues a sync
|
|
150
159
|
* job with a unique id.
|
|
151
160
|
*/
|
|
152
161
|
request(orgId: string, plugin: string, actorAccountId: string, actorTokenId?: string): Promise<{
|
|
@@ -12,6 +12,7 @@ import { DIRECTORY_EXTENSION_POINT, } from "@capybara-hq/plugin-sdk";
|
|
|
12
12
|
import { getQueueToken } from "@nestjs/bullmq";
|
|
13
13
|
import { Inject, Injectable } from "@nestjs/common";
|
|
14
14
|
import { ApiError } from "../errors.js";
|
|
15
|
+
import { EffectiveConfigs } from "../extensions/effective-config.js";
|
|
15
16
|
import { enabledExtensionsByOrg } from "../extensions/enabled.js";
|
|
16
17
|
import { OrgExtensionConfigs } from "../extensions/org-config.js";
|
|
17
18
|
import { ExtensionRegistry } from "../extensions/registry.js";
|
|
@@ -80,6 +81,8 @@ export function directorySyncJobId(orgId, plugin, trigger, now = new Date()) {
|
|
|
80
81
|
return `${base}-manual-${randomUUID()}`;
|
|
81
82
|
}
|
|
82
83
|
}
|
|
84
|
+
/** Skips that log nothing and enqueue nothing: Ruling A28 and an org needing configuration. */
|
|
85
|
+
const silentSkip = (reason) => reason === "not_configured" || reason === "needs_config";
|
|
83
86
|
/** 组织已删除(同步途中):停止本轮。 */
|
|
84
87
|
class OrgGone extends Error {
|
|
85
88
|
}
|
|
@@ -122,18 +125,20 @@ let DirectorySync = class DirectorySync {
|
|
|
122
125
|
redis;
|
|
123
126
|
registry;
|
|
124
127
|
orgConfigs;
|
|
128
|
+
effective;
|
|
125
129
|
external;
|
|
126
130
|
offboarding;
|
|
127
131
|
orgLock;
|
|
128
132
|
queue;
|
|
129
133
|
lockService;
|
|
130
134
|
log;
|
|
131
|
-
constructor(db, txHost, redis, registry, orgConfigs, external, offboarding, orgLock, queue, lockService, log) {
|
|
135
|
+
constructor(db, txHost, redis, registry, orgConfigs, effective, external, offboarding, orgLock, queue, lockService, log) {
|
|
132
136
|
this.db = db;
|
|
133
137
|
this.txHost = txHost;
|
|
134
138
|
this.redis = redis;
|
|
135
139
|
this.registry = registry;
|
|
136
140
|
this.orgConfigs = orgConfigs;
|
|
141
|
+
this.effective = effective;
|
|
137
142
|
this.external = external;
|
|
138
143
|
this.offboarding = offboarding;
|
|
139
144
|
this.orgLock = orgLock;
|
|
@@ -144,8 +149,8 @@ let DirectorySync = class DirectorySync {
|
|
|
144
149
|
/** A `directory-sync` job (dispatched by `MaintenanceProcessor`). */
|
|
145
150
|
async runSyncJob(data) {
|
|
146
151
|
const r = await this.sync(data.orgId, data.plugin, data);
|
|
147
|
-
// 通讯录未配置(Ruling A28
|
|
148
|
-
if (r.status === "skipped" && r.reason
|
|
152
|
+
// 通讯录未配置(Ruling A28)and an org needing configuration (spec A §6) are skipped silently
|
|
153
|
+
if (r.status === "skipped" && !silentSkip(r.reason)) {
|
|
149
154
|
this.log.info("directory sync skipped", {
|
|
150
155
|
orgId: data.orgId,
|
|
151
156
|
plugin: data.plugin,
|
|
@@ -159,7 +164,11 @@ let DirectorySync = class DirectorySync {
|
|
|
159
164
|
.list("directory")
|
|
160
165
|
.find((e) => e.plugin === plugin && e.capability === DIRECTORY_EXTENSION_POINT)?.impl;
|
|
161
166
|
}
|
|
162
|
-
/**
|
|
167
|
+
/**
|
|
168
|
+
* The org exists, the extension provides a directory, is enabled in the org, its org config
|
|
169
|
+
* satisfies the schema (reuses the `OrgExtensionConfigs.get` validation) and its effective
|
|
170
|
+
* deployment config for the org is valid (layering spec A §6).
|
|
171
|
+
*/
|
|
163
172
|
async eligible(orgId, plugin) {
|
|
164
173
|
const directory = this.provider(plugin);
|
|
165
174
|
if (!directory)
|
|
@@ -186,11 +195,21 @@ let DirectorySync = class DirectorySync {
|
|
|
186
195
|
}
|
|
187
196
|
if (!cfg?.enabled)
|
|
188
197
|
return { ok: false, reason: "not_enabled" };
|
|
198
|
+
let effective;
|
|
199
|
+
try {
|
|
200
|
+
effective = await this.effective.get(orgId, plugin);
|
|
201
|
+
}
|
|
202
|
+
catch (err) {
|
|
203
|
+
this.log.warn("directory sync: cannot read the effective config", { orgId, plugin, err });
|
|
204
|
+
return { ok: false, reason: "config_invalid" };
|
|
205
|
+
}
|
|
206
|
+
if (!effective.ok)
|
|
207
|
+
return { ok: false, reason: "needs_config" };
|
|
189
208
|
// Ruling A28:插件说通讯录没配好(组织只用它的别的能力)→ 不同步;插件实现出错按未配置处理
|
|
190
209
|
if (directory.configured !== undefined) {
|
|
191
210
|
let configured = false;
|
|
192
211
|
try {
|
|
193
|
-
configured = directory.configured(cfg.config) === true;
|
|
212
|
+
configured = directory.configured(cfg.config, effective.config) === true;
|
|
194
213
|
}
|
|
195
214
|
catch {
|
|
196
215
|
configured = false;
|
|
@@ -198,7 +217,7 @@ let DirectorySync = class DirectorySync {
|
|
|
198
217
|
if (!configured)
|
|
199
218
|
return { ok: false, reason: "not_configured" };
|
|
200
219
|
}
|
|
201
|
-
return { ok: true, directory, orgConfig: cfg.config };
|
|
220
|
+
return { ok: true, directory, orgConfig: cfg.config, config: effective.config };
|
|
202
221
|
}
|
|
203
222
|
/**
|
|
204
223
|
* 投递一次 `directory_changed` 同步(按分钟桶去重);返回 job id。入站 `directory_changed` 经
|
|
@@ -207,7 +226,7 @@ let DirectorySync = class DirectorySync {
|
|
|
207
226
|
*/
|
|
208
227
|
async enqueue(orgId, plugin, now = new Date()) {
|
|
209
228
|
const e = await this.eligible(orgId, plugin);
|
|
210
|
-
if (!e.ok && e.reason
|
|
229
|
+
if (!e.ok && silentSkip(e.reason))
|
|
211
230
|
return undefined;
|
|
212
231
|
return this.addJob(orgId, plugin, "changed", directorySyncJobId(orgId, plugin, "changed", now));
|
|
213
232
|
}
|
|
@@ -234,7 +253,8 @@ let DirectorySync = class DirectorySync {
|
|
|
234
253
|
* Manual trigger by an admin: re-checks `org.members.manage` live under the org row lock, then that
|
|
235
254
|
* the extension can sync (does not provide a directory -> `extension.not_found`, not enabled ->
|
|
236
255
|
* `extension.not_enabled`, config no longer valid -> `extension.config_invalid`, the extension says
|
|
237
|
-
* the directory is not configured -> `directory.not_configured`, Ruling A28
|
|
256
|
+
* the directory is not configured -> `directory.not_configured`, Ruling A28; the effective config
|
|
257
|
+
* is not valid in the org -> `extension.needs_config`, layering spec A §6), and enqueues a sync
|
|
238
258
|
* job with a unique id.
|
|
239
259
|
*/
|
|
240
260
|
async request(orgId, plugin, actorAccountId, actorTokenId) {
|
|
@@ -252,6 +272,8 @@ let DirectorySync = class DirectorySync {
|
|
|
252
272
|
throw new ApiError("extension.config_invalid", `Invalid organization config for extension ${plugin}`);
|
|
253
273
|
case "not_configured":
|
|
254
274
|
throw new ApiError("directory.not_configured", `The directory of extension ${plugin} is not configured for this organization`);
|
|
275
|
+
case "needs_config":
|
|
276
|
+
throw new ApiError("extension.needs_config", `Extension ${plugin} needs configuration in this organization`);
|
|
255
277
|
}
|
|
256
278
|
}
|
|
257
279
|
const jobId = await this.addJob(orgId, plugin, "manual", directorySyncJobId(orgId, plugin, "manual"), { accountId: actorAccountId, tokenId: actorTokenId });
|
|
@@ -324,7 +346,7 @@ let DirectorySync = class DirectorySync {
|
|
|
324
346
|
// 锁丢了(续租失败、过期后被他人取得):停止本轮,不再移除任何人
|
|
325
347
|
const signal = lease.lost;
|
|
326
348
|
try {
|
|
327
|
-
return await this.run(orgId, plugin, e.directory, e.orgConfig, signal, opts);
|
|
349
|
+
return await this.run(orgId, plugin, e.directory, e.orgConfig, e.config, signal, opts);
|
|
328
350
|
}
|
|
329
351
|
finally {
|
|
330
352
|
await lease.release().catch(() => { });
|
|
@@ -346,7 +368,7 @@ let DirectorySync = class DirectorySync {
|
|
|
346
368
|
this.log.warn("directory sync: cannot enqueue follow-up sync", { orgId, plugin, err });
|
|
347
369
|
}
|
|
348
370
|
}
|
|
349
|
-
async run(orgId, plugin, directory, orgConfig, signal, opts) {
|
|
371
|
+
async run(orgId, plugin, directory, orgConfig, config, signal, opts) {
|
|
350
372
|
const source = `directory:${plugin}`;
|
|
351
373
|
const counts = { added: 0, removed: 0, skippedLastOwner: 0, failed: 0, total: 0 };
|
|
352
374
|
/** 本轮仍在职的账号(只在本次任务内使用)。 */
|
|
@@ -363,6 +385,7 @@ let DirectorySync = class DirectorySync {
|
|
|
363
385
|
signal.throwIfAborted();
|
|
364
386
|
const r = await directory.listMembers({
|
|
365
387
|
orgConfig,
|
|
388
|
+
config,
|
|
366
389
|
...(cursor !== undefined && { cursor }),
|
|
367
390
|
signal: AbortSignal.any([signal, AbortSignal.timeout(DIRECTORY_PAGE_TIMEOUT_MS)]),
|
|
368
391
|
});
|
|
@@ -409,7 +432,7 @@ let DirectorySync = class DirectorySync {
|
|
|
409
432
|
if (!still.ok) {
|
|
410
433
|
partial = true;
|
|
411
434
|
// 途中通讯录配置被清空(Ruling A28):照样不移除,但不记警告
|
|
412
|
-
if (still.reason
|
|
435
|
+
if (!silentSkip(still.reason)) {
|
|
413
436
|
this.log.warn("directory sync: plugin no longer eligible before removals", {
|
|
414
437
|
orgId,
|
|
415
438
|
plugin,
|
|
@@ -609,12 +632,13 @@ DirectorySync = __decorate([
|
|
|
609
632
|
__param(2, Inject(REDIS)),
|
|
610
633
|
__param(3, Inject(ExtensionRegistry)),
|
|
611
634
|
__param(4, Inject(OrgExtensionConfigs)),
|
|
612
|
-
__param(5, Inject(
|
|
613
|
-
__param(6, Inject(
|
|
614
|
-
__param(7, Inject(
|
|
615
|
-
__param(8, Inject(
|
|
616
|
-
__param(9, Inject(
|
|
617
|
-
__param(10, Inject(
|
|
635
|
+
__param(5, Inject(EffectiveConfigs)),
|
|
636
|
+
__param(6, Inject(ExternalIdentities)),
|
|
637
|
+
__param(7, Inject(Offboarding)),
|
|
638
|
+
__param(8, Inject(OrgLock)),
|
|
639
|
+
__param(9, Inject(getQueueToken(MAINTENANCE_QUEUE_NAME))),
|
|
640
|
+
__param(10, Inject(LockService)),
|
|
641
|
+
__param(11, Inject(KERNEL_LOGGER))
|
|
618
642
|
], DirectorySync);
|
|
619
643
|
export { DirectorySync };
|
|
620
644
|
/** The hourly directory scan ({@link DirectorySync.scan}), once per tick across replicas; a worker-role job (`WorkerModule`). */
|