@capybara-hq/kernel 0.1.0-rc.4 → 0.1.0-rc.5
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 +61 -5
- package/dist/admin/admin.controller.d.ts +39 -13
- package/dist/admin/admin.controller.js +33 -17
- package/dist/admin/extensions.controller.d.ts +16 -2
- package/dist/admin/extensions.controller.js +26 -6
- 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/agents/agent-lookup.d.ts +16 -0
- package/dist/agents/agent-lookup.js +11 -0
- package/dist/agents/agents.controller.d.ts +76 -1
- package/dist/agents/agents.controller.js +90 -11
- package/dist/agents/agents.module.d.ts +4 -1
- package/dist/agents/agents.module.js +32 -6
- package/dist/agents/agents.service.d.ts +51 -22
- package/dist/agents/agents.service.js +172 -70
- package/dist/agents/definition.d.ts +49 -0
- package/dist/agents/definition.js +45 -0
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +649 -0
- package/dist/agents/from-template.service.d.ts +60 -0
- package/dist/agents/from-template.service.js +161 -0
- package/dist/agents/org-templates.d.ts +176 -0
- package/dist/agents/org-templates.js +827 -0
- package/dist/agents/pending-connector-requests.d.ts +77 -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/templates.controller.d.ts +86 -5
- package/dist/agents/templates.controller.js +171 -7
- package/dist/agents/templates.d.ts +127 -23
- package/dist/agents/templates.js +475 -52
- package/dist/background/background.module.js +8 -1
- package/dist/background/finish.d.ts +3 -2
- package/dist/background/launch-lock.d.ts +4 -3
- package/dist/background/launch-lock.js +4 -3
- package/dist/background/poll.job.d.ts +9 -6
- package/dist/background/poll.job.js +30 -22
- package/dist/background/session.d.ts +13 -2
- package/dist/background/session.js +13 -0
- package/dist/background/stop.d.ts +12 -6
- package/dist/background/stop.js +57 -39
- package/dist/background/store.d.ts +18 -6
- package/dist/background/store.js +12 -6
- package/dist/background/tasks.service.d.ts +15 -5
- package/dist/background/tasks.service.js +42 -17
- package/dist/background/wake-rules.d.ts +27 -18
- package/dist/background/wake-rules.js +52 -22
- package/dist/background/wake.d.ts +13 -11
- package/dist/background/wake.js +20 -14
- package/dist/catalog/admin-catalog.controller.d.ts +129 -30
- package/dist/catalog/admin-catalog.controller.js +213 -42
- package/dist/catalog/catalog-content.d.ts +58 -32
- package/dist/catalog/catalog-content.js +34 -8
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +60 -0
- package/dist/catalog/catalog-items.d.ts +111 -7
- package/dist/catalog/catalog-items.js +279 -13
- package/dist/catalog/catalog-scope.service.d.ts +260 -0
- package/dist/catalog/catalog-scope.service.js +1116 -0
- package/dist/catalog/catalog.module.d.ts +7 -9
- package/dist/catalog/catalog.module.js +41 -31
- package/dist/catalog/catalog.service.d.ts +101 -29
- package/dist/catalog/catalog.service.js +104 -106
- package/dist/catalog/cli.d.ts +11 -1
- package/dist/catalog/cli.js +26 -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 +152 -0
- package/dist/catalog/component-scope.controller.js +287 -0
- package/dist/catalog/component-scope.service.d.ts +303 -0
- package/dist/catalog/component-scope.service.js +936 -0
- package/dist/catalog/component-state.d.ts +174 -0
- package/dist/catalog/component-state.js +437 -0
- 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/marketplaces.controller.d.ts +22 -5
- package/dist/catalog/marketplaces.controller.js +56 -7
- package/dist/catalog/marketplaces.service.d.ts +54 -14
- package/dist/catalog/marketplaces.service.js +71 -22
- package/dist/catalog/org-catalog.controller.d.ts +125 -34
- package/dist/catalog/org-catalog.controller.js +181 -65
- package/dist/catalog/org-catalog.service.d.ts +65 -33
- package/dist/catalog/org-catalog.service.js +324 -157
- 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 +119 -0
- package/dist/catalog/org-extension.controller.js +266 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +98 -0
- package/dist/catalog/org-plugin-uploads.controller.js +213 -0
- package/dist/catalog/org-plugin-uploads.d.ts +63 -0
- package/dist/catalog/org-plugin-uploads.js +116 -0
- package/dist/catalog/owned-items.d.ts +184 -0
- package/dist/catalog/owned-items.js +789 -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 +221 -0
- package/dist/catalog/platform-components.js +761 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +582 -0
- package/dist/catalog/plugin-import.d.ts +178 -34
- package/dist/catalog/plugin-import.js +622 -82
- package/dist/catalog/plugin-install.d.ts +185 -41
- package/dist/catalog/plugin-install.js +758 -126
- package/dist/catalog/plugin-upgrade.d.ts +260 -225
- package/dist/catalog/plugin-upgrade.js +1147 -1136
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +193 -118
- package/dist/catalog/requests.service.js +526 -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 +118 -0
- package/dist/channels/actions.js +1 -0
- package/dist/channels/cards.js +20 -2
- package/dist/channels/channels.module.js +2 -0
- package/dist/channels/inbound.d.ts +9 -1
- package/dist/channels/inbound.js +67 -5
- package/dist/channels/phrases.d.ts +35 -0
- package/dist/channels/phrases.js +29 -0
- package/dist/config/docs.js +3 -1
- package/dist/config/schema.d.ts +6 -2
- package/dist/config/schema.js +46 -22
- package/dist/conversations/access.d.ts +6 -4
- package/dist/conversations/access.js +27 -5
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/conversations.controller.d.ts +43 -18
- package/dist/conversations/conversations.controller.js +79 -38
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +7 -7
- package/dist/conversations/conversations.service.d.ts +69 -12
- package/dist/conversations/conversations.service.js +106 -27
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +20 -5
- package/dist/conversations/event-log.js +60 -0
- package/dist/conversations/events.d.ts +84 -2
- package/dist/conversations/events.js +91 -17
- package/dist/conversations/queue.service.d.ts +1 -1
- package/dist/conversations/queue.service.js +5 -0
- package/dist/conversations/titles.d.ts +5 -3
- package/dist/conversations/titles.js +21 -8
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/create-ctx.d.ts +5 -0
- package/dist/ctx/create-ctx.js +15 -5
- package/dist/db/kernel-schema.d.ts +362 -18
- package/dist/environments/access.d.ts +41 -0
- package/dist/environments/access.js +77 -0
- package/dist/environments/conversation-environments.d.ts +61 -0
- package/dist/environments/conversation-environments.js +170 -0
- package/dist/environments/dto.d.ts +25 -0
- package/dist/environments/dto.js +12 -0
- package/dist/environments/environments.controller.d.ts +33 -0
- package/dist/environments/environments.controller.js +110 -0
- package/dist/environments/environments.module.d.ts +8 -0
- package/dist/environments/environments.module.js +27 -0
- package/dist/environments/environments.service.d.ts +153 -0
- package/dist/environments/environments.service.js +541 -0
- package/dist/environments/legacy-cleanup.job.d.ts +34 -0
- package/dist/environments/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +82 -2
- package/dist/errors.js +82 -2
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +26 -7
- package/dist/evals/run-replay.d.ts +4 -2
- package/dist/evals/run-replay.js +16 -4
- package/dist/evals/step-replay.d.ts +2 -5
- package/dist/evals/step-replay.js +1 -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 +36 -10
- package/dist/extensions/admin-ops.js +65 -42
- package/dist/extensions/admin-view.d.ts +37 -10
- package/dist/extensions/admin-view.js +103 -20
- package/dist/extensions/bootstrap.d.ts +17 -4
- package/dist/extensions/bootstrap.js +70 -9
- package/dist/extensions/cli.d.ts +12 -0
- package/dist/extensions/cli.js +11 -2
- package/dist/extensions/deployment-config.d.ts +28 -5
- package/dist/extensions/deployment-config.js +48 -7
- package/dist/extensions/effective-config.d.ts +127 -0
- package/dist/extensions/effective-config.js +368 -0
- package/dist/extensions/extensions.module.js +8 -2
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +19 -1
- package/dist/extensions/host.js +30 -7
- package/dist/extensions/installs.d.ts +20 -8
- package/dist/extensions/installs.js +37 -15
- package/dist/extensions/org-config.d.ts +75 -6
- package/dist/extensions/org-config.js +184 -32
- 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/permission-view.d.ts +16 -4
- package/dist/extensions/permission-view.js +4 -4
- package/dist/extensions/plugin-items.d.ts +21 -0
- package/dist/extensions/plugin-items.js +42 -0
- package/dist/extensions/point-defaults.d.ts +12 -5
- package/dist/extensions/point-defaults.js +37 -9
- package/dist/extensions/resolve.d.ts +5 -1
- package/dist/extensions/resolve.js +15 -2
- package/dist/files/previewers.d.ts +8 -1
- package/dist/files/previewers.js +35 -6
- package/dist/http/api.module.js +23 -3
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/identity/accounts.d.ts +29 -29
- package/dist/identity/accounts.js +47 -47
- package/dist/identity/audit.d.ts +2 -1
- package/dist/identity/auth.guard.d.ts +13 -5
- package/dist/identity/auth.guard.js +26 -9
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +4 -4
- package/dist/identity/me.controller.js +1 -1
- package/dist/identity/principal.d.ts +3 -3
- package/dist/identity/principal.js +3 -3
- package/dist/identity/settings.d.ts +22 -11
- package/dist/identity/settings.js +53 -18
- 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/inbox/inbox.module.d.ts +4 -1
- package/dist/inbox/inbox.module.js +7 -3
- package/dist/inbox/inbox.service.d.ts +62 -3
- 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 +151 -0
- package/dist/inbox/platform-inbox.service.js +263 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +21 -1
- 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 +11 -2
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- package/dist/kernel.module.js +6 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +1 -1
- package/dist/lifecycle/kernel-lifecycle.js +4 -4
- package/dist/models/prices.d.ts +5 -5
- package/dist/models/prices.js +4 -4
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +13 -7
- package/dist/models/purposes.d.ts +20 -9
- package/dist/models/purposes.js +17 -8
- package/dist/orgs/directory-sync.d.ts +14 -5
- package/dist/orgs/directory-sync.js +41 -17
- package/dist/orgs/offboarding.d.ts +9 -7
- package/dist/orgs/offboarding.js +28 -17
- 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.module.js +3 -0
- package/dist/orgs/orgs.service.d.ts +20 -7
- package/dist/orgs/orgs.service.js +32 -12
- 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 +15 -3
- package/dist/orgs/settings.service.js +6 -2
- package/dist/overrides.d.ts +3 -0
- package/dist/overrides.js +2 -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 +11 -0
- package/dist/platform/errors.js +26 -0
- package/dist/platform/exclusions.d.ts +12 -0
- package/dist/platform/exclusions.js +1387 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +92 -0
- package/dist/platform/operation.js +35 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +14 -0
- package/dist/platform/ops/agent-templates.ops.js +92 -0
- package/dist/platform/ops/agents.ops.d.ts +19 -0
- package/dist/platform/ops/agents.ops.js +294 -0
- package/dist/platform/ops/connectors.ops.d.ts +15 -0
- package/dist/platform/ops/connectors.ops.js +126 -0
- package/dist/platform/ops/errors.d.ts +11 -0
- package/dist/platform/ops/errors.js +22 -0
- package/dist/platform/ops/extensions.ops.d.ts +19 -0
- package/dist/platform/ops/extensions.ops.js +116 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +16 -0
- package/dist/platform/ops/marketplaces.ops.js +157 -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 +23 -0
- package/dist/platform/ops/platform.ops.js +158 -0
- package/dist/platform/ops/plugins.ops.d.ts +33 -0
- package/dist/platform/ops/plugins.ops.js +377 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +153 -0
- package/dist/platform/ops/role.d.ts +4 -0
- package/dist/platform/ops/role.js +10 -0
- package/dist/platform/ops/skills.ops.d.ts +13 -0
- package/dist/platform/ops/skills.ops.js +98 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/platform-ops.module.d.ts +7 -0
- package/dist/platform/platform-ops.module.js +55 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/redact-orgs.d.ts +7 -0
- package/dist/platform/redact-orgs.js +52 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- 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 +9 -1
- package/dist/runtime/context/build.d.ts +6 -4
- package/dist/runtime/context/build.js +26 -7
- package/dist/runtime/context/claude-tools.d.ts +2 -1
- package/dist/runtime/context/claude-tools.js +5 -4
- package/dist/runtime/context/compaction.js +9 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/skills.js +9 -2
- package/dist/runtime/context/tool-changes.d.ts +27 -0
- package/dist/runtime/context/tool-changes.js +60 -0
- package/dist/runtime/hook-calls.js +2 -0
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +35 -17
- package/dist/runtime/loop.d.ts +32 -4
- package/dist/runtime/maintenance.d.ts +7 -4
- package/dist/runtime/maintenance.js +23 -8
- package/dist/runtime/model-call.d.ts +30 -8
- package/dist/runtime/model-call.js +69 -19
- 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-jobs.d.ts +3 -5
- package/dist/runtime/run-jobs.js +3 -7
- package/dist/runtime/run-queue.d.ts +37 -3
- package/dist/runtime/run-queue.js +188 -11
- package/dist/runtime/run-worker.d.ts +11 -5
- package/dist/runtime/run-worker.js +54 -31
- package/dist/runtime/runtime.module.js +3 -0
- package/dist/runtime/step-log.d.ts +9 -4
- package/dist/runtime/step-log.js +8 -5
- 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 +12 -3
- package/dist/runtime/subagents/definition.js +43 -29
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +115 -26
- package/dist/runtime/subagents/dispatch.js +212 -141
- 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/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 +24 -7
- package/dist/runtime/subagents/roster.js +47 -11
- package/dist/runtime/subagents/skill-fork.d.ts +3 -2
- package/dist/runtime/subagents/skill-fork.js +8 -4
- 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 +7 -4
- package/dist/runtime/subagents/subagents.service.js +11 -6
- package/dist/runtime/usage-report.js +17 -12
- package/dist/runtime/waits.d.ts +140 -37
- package/dist/runtime/waits.js +394 -106
- 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 +2 -2
- package/dist/sandbox/providers.js +1 -1
- package/dist/sandbox/sandbox.module.d.ts +3 -2
- package/dist/sandbox/sandbox.module.js +4 -3
- package/dist/sandbox/sandbox.service.d.ts +229 -134
- package/dist/sandbox/sandbox.service.js +630 -409
- package/dist/skills/catalog.d.ts +3 -2
- package/dist/skills/catalog.js +21 -43
- package/dist/skills/changes.controller.d.ts +7 -0
- package/dist/skills/changes.controller.js +19 -1
- package/dist/skills/invoke.js +8 -3
- package/dist/skills/package.d.ts +20 -1
- package/dist/skills/package.js +28 -1
- package/dist/skills/skills.controller.d.ts +39 -4
- package/dist/skills/skills.controller.js +88 -10
- package/dist/skills/skills.module.js +10 -1
- package/dist/skills/skills.service.d.ts +106 -26
- package/dist/skills/skills.service.js +421 -75
- package/dist/skills/usable.d.ts +81 -0
- package/dist/skills/usable.js +379 -0
- package/dist/tools/approvals.service.d.ts +20 -2
- package/dist/tools/approvals.service.js +23 -4
- package/dist/tools/builtin-names.d.ts +21 -5
- package/dist/tools/builtin-names.js +30 -5
- package/dist/tools/builtins/agent.d.ts +23 -21
- package/dist/tools/builtins/agent.js +62 -55
- package/dist/tools/builtins/builtin-tools.d.ts +6 -2
- package/dist/tools/builtins/builtin-tools.js +37 -12
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +34 -0
- package/dist/tools/builtins/platform.js +362 -0
- package/dist/tools/builtins/sandbox/bash.js +13 -3
- package/dist/tools/builtins/sandbox/common.d.ts +43 -24
- package/dist/tools/builtins/sandbox/common.js +80 -45
- package/dist/tools/builtins/sandbox/edit.js +2 -2
- package/dist/tools/builtins/sandbox/glob.js +2 -2
- package/dist/tools/builtins/sandbox/grep.js +2 -4
- package/dist/tools/builtins/sandbox/index.d.ts +1 -1
- package/dist/tools/builtins/sandbox/index.js +1 -1
- package/dist/tools/builtins/sandbox/read.js +1 -1
- package/dist/tools/builtins/sandbox/task-output.d.ts +14 -3
- package/dist/tools/builtins/sandbox/task-output.js +30 -5
- package/dist/tools/builtins/sandbox/task-stop.js +2 -1
- package/dist/tools/builtins/sandbox/write.js +2 -2
- 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 +22 -14
- package/dist/tools/builtins/skill-load.js +86 -57
- package/dist/tools/builtins/skill-write.js +1 -1
- package/dist/tools/builtins/web/extract.js +5 -1
- package/dist/tools/builtins/web/fetch.js +1 -0
- package/dist/tools/builtins/web/search.js +1 -0
- package/dist/tools/connectors.controller.d.ts +10 -0
- package/dist/tools/connectors.controller.js +12 -0
- package/dist/tools/connectors.service.d.ts +46 -5
- package/dist/tools/connectors.service.js +94 -15
- 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 +42 -1
- package/dist/tools/info.js +64 -1
- package/dist/tools/org-tool-switches.d.ts +74 -0
- package/dist/tools/org-tool-switches.js +184 -0
- package/dist/tools/pipeline.d.ts +46 -40
- package/dist/tools/pipeline.js +187 -364
- package/dist/tools/policy.d.ts +1 -1
- package/dist/tools/policy.js +36 -16
- package/dist/tools/registry.d.ts +98 -5
- package/dist/tools/registry.js +87 -9
- package/dist/tools/tools.module.js +12 -2
- package/dist/ui/views.d.ts +2 -1
- package/dist/ui/views.js +17 -3
- package/package.json +3 -3
- 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/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 -32
- package/dist/extensions/org-config.controller.js +0 -70
package/dist/tools/policy.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export declare function isFixedAsk(tool: ResolvedTool, visibility?: "private" |
|
|
|
34
34
|
* - a sub-agent (template or general-purpose): `agentDef` is its frozen effective definition (the
|
|
35
35
|
* parent's policies with the template's on top) and `ctx.agentId` is the parent's agent, so the
|
|
36
36
|
* parent's current version still tightens it (sub-agents spec §5.3, §9); its "this conversation"
|
|
37
|
-
* grants are the
|
|
37
|
+
* grants are the root conversation's (agent map spec §7); an org agent sub-agent (§5.5): `ctx.agentId` is the
|
|
38
38
|
* dispatched agent (its current version, its "always" grants) and the parent agent's current
|
|
39
39
|
* policies apply on top ({@link parentAgentOverride});
|
|
40
40
|
* - 授权表(`conversation_tool_grants` / `tool_grants`),`spec_hash` 与当前定义不一致视为无效(D8),
|
package/dist/tools/policy.js
CHANGED
|
@@ -36,6 +36,17 @@ export function isFixedAsk(tool, visibility, skillWritePolicy) {
|
|
|
36
36
|
return !(builtinOnly && visibility === "private" && skillWritePolicy !== "ask");
|
|
37
37
|
}
|
|
38
38
|
const asOverride = (v) => v === "ask" || v === "deny" ? v : undefined;
|
|
39
|
+
/**
|
|
40
|
+
* An agent's tightening for a call: its policy on the tool key and, for a per-call key
|
|
41
|
+
* (`Platform:<operation>`), on that key, the stricter of the two (a policy can only tighten).
|
|
42
|
+
*/
|
|
43
|
+
function overrideOf(policies, toolKey, policyKey) {
|
|
44
|
+
const own = asOverride(policies?.[toolKey]);
|
|
45
|
+
if (policyKey === toolKey)
|
|
46
|
+
return own;
|
|
47
|
+
const s = stricter(own ?? "allow", asOverride(policies?.[policyKey]));
|
|
48
|
+
return s === "allow" ? undefined : s;
|
|
49
|
+
}
|
|
39
50
|
/**
|
|
40
51
|
* 执行时的策略判定(spec 3.6 R5:在动作执行那一刻判定)。每次调用都实时读取:
|
|
41
52
|
* - 沙箱工具(bash / write / edit / deliver)的组织设置 `sandboxToolPolicy`(为 ask 时组织默认至少 ask);
|
|
@@ -45,7 +56,7 @@ const asOverride = (v) => v === "ask" || v === "deny" ? v : undefined;
|
|
|
45
56
|
* - a sub-agent (template or general-purpose): `agentDef` is its frozen effective definition (the
|
|
46
57
|
* parent's policies with the template's on top) and `ctx.agentId` is the parent's agent, so the
|
|
47
58
|
* parent's current version still tightens it (sub-agents spec §5.3, §9); its "this conversation"
|
|
48
|
-
* grants are the
|
|
59
|
+
* grants are the root conversation's (agent map spec §7); an org agent sub-agent (§5.5): `ctx.agentId` is the
|
|
49
60
|
* dispatched agent (its current version, its "always" grants) and the parent agent's current
|
|
50
61
|
* policies apply on top ({@link parentAgentOverride});
|
|
51
62
|
* - 授权表(`conversation_tool_grants` / `tool_grants`),`spec_hash` 与当前定义不一致视为无效(D8),
|
|
@@ -57,7 +68,11 @@ const asOverride = (v) => v === "ask" || v === "deny" ? v : undefined;
|
|
|
57
68
|
*/
|
|
58
69
|
export function createDecidePolicy(db) {
|
|
59
70
|
return async (tool, agentDef, ctx) => {
|
|
60
|
-
|
|
71
|
+
// a per-call policy (Platform tool spec §6.2): its key replaces the tool key for policies,
|
|
72
|
+
// grants and approvals, and its policy replaces the tool's default
|
|
73
|
+
const call = ctx.callPolicy ?? null;
|
|
74
|
+
const policyKey = call?.key ?? tool.key;
|
|
75
|
+
let connectorDefault = call?.policy ?? tool.defaultPolicy;
|
|
61
76
|
let connectorId = null;
|
|
62
77
|
let hashCurrent = true;
|
|
63
78
|
if (tool.source.kind === "connector") {
|
|
@@ -101,7 +116,7 @@ export function createDecidePolicy(db) {
|
|
|
101
116
|
}
|
|
102
117
|
}
|
|
103
118
|
// 运行所用版本可能是加 toolPolicies 字段之前保存的:缺省为空
|
|
104
|
-
const runOverride =
|
|
119
|
+
const runOverride = overrideOf(agentDef.toolPolicies, tool.key, policyKey);
|
|
105
120
|
const current = await db
|
|
106
121
|
.selectFrom("agents")
|
|
107
122
|
.innerJoin("agent_versions", (j) => j
|
|
@@ -115,10 +130,10 @@ export function createDecidePolicy(db) {
|
|
|
115
130
|
? undefined
|
|
116
131
|
: await normalizeStoredDefinitionIn(db, ctx.orgId, current.definition);
|
|
117
132
|
const currentPolicies = currentDef?.toolPolicies;
|
|
118
|
-
const currentOverride =
|
|
133
|
+
const currentOverride = overrideOf(currentPolicies, tool.key, policyKey);
|
|
119
134
|
let strictest = stricter(runOverride ?? "allow", currentOverride);
|
|
120
135
|
if (ctx.parentConversationId !== undefined && ctx.parentAgentDiffers !== false) {
|
|
121
|
-
strictest = stricter(strictest, await parentAgentOverride(db, tool.key, ctx));
|
|
136
|
+
strictest = stricter(strictest, await parentAgentOverride(db, tool.key, policyKey, ctx));
|
|
122
137
|
}
|
|
123
138
|
const agentOverride = strictest === "allow" ? undefined : strictest;
|
|
124
139
|
let escalateTo = null;
|
|
@@ -137,7 +152,10 @@ export function createDecidePolicy(db) {
|
|
|
137
152
|
// 可见性实时读(R5):共享 agent 的 SkillWrite 固定 ask,私有 agent 不问(见 R3_SHARED_AGENT_ONLY_TOOL_KEYS)
|
|
138
153
|
// 当前版本的 skills.writePolicy 同样实时读(R5):运行中改为 ask,下一次调用即生效;固定 ask 时授权不放行
|
|
139
154
|
const writePolicy = currentDef?.skills?.writePolicy;
|
|
140
|
-
|
|
155
|
+
// `remember: false` on a call that is not a plain allow (an org / platform operation, or a read
|
|
156
|
+
// an agent tightened to ask): every call asks, grants never apply. A read (`allow`) never asks.
|
|
157
|
+
const fixedAsk = isFixedAsk(tool, current?.visibility, writePolicy) ||
|
|
158
|
+
(call !== null && !call.remember && (call.policy !== "allow" || agentOverride !== undefined));
|
|
141
159
|
const input = {
|
|
142
160
|
connectorDefault,
|
|
143
161
|
...(agentOverride !== undefined && { agentOverride }),
|
|
@@ -148,7 +166,7 @@ export function createDecidePolicy(db) {
|
|
|
148
166
|
if (pre === "deny")
|
|
149
167
|
return "deny";
|
|
150
168
|
if (pre === "ask" && !fixedAsk && escalateTo === null && hashCurrent) {
|
|
151
|
-
input.grant = await findGrant(db, tool, connectorId, ctx);
|
|
169
|
+
input.grant = await findGrant(db, tool, policyKey, connectorId, ctx);
|
|
152
170
|
}
|
|
153
171
|
const result = decide(input);
|
|
154
172
|
if (result === "allow" && escalateTo === null) {
|
|
@@ -156,7 +174,7 @@ export function createDecidePolicy(db) {
|
|
|
156
174
|
return pre === "ask" && input.grant !== null ? { grant: input.grant } : "allow";
|
|
157
175
|
}
|
|
158
176
|
const ask = {
|
|
159
|
-
toolKey:
|
|
177
|
+
toolKey: policyKey,
|
|
160
178
|
specHash: tool.specHash,
|
|
161
179
|
connectorId,
|
|
162
180
|
requestedFor: escalateTo === null ? ctx.accountId : null,
|
|
@@ -185,7 +203,7 @@ export function createDecidePolicy(db) {
|
|
|
185
203
|
* policy for the same key applies on top, so the parent's owner can tighten a running child too.
|
|
186
204
|
* For a template or general-purpose child the parent conversation has the same agent, already read.
|
|
187
205
|
*/
|
|
188
|
-
async function parentAgentOverride(db, toolKey, ctx) {
|
|
206
|
+
async function parentAgentOverride(db, toolKey, policyKey, ctx) {
|
|
189
207
|
const row = await db
|
|
190
208
|
.selectFrom("conversations as c")
|
|
191
209
|
.innerJoin("agents as a", "a.id", "c.agent_id")
|
|
@@ -198,21 +216,23 @@ async function parentAgentOverride(db, toolKey, ctx) {
|
|
|
198
216
|
// stored raw: an rc version's keys read as current keys, so its deny keeps applying (§8.3)
|
|
199
217
|
const policies = (await normalizeStoredDefinitionIn(db, ctx.orgId, row.definition))
|
|
200
218
|
.toolPolicies;
|
|
201
|
-
return
|
|
219
|
+
return overrideOf(policies, toolKey, policyKey);
|
|
202
220
|
}
|
|
203
221
|
/**
|
|
204
|
-
* A grant matching the current definition hash and source connector
|
|
222
|
+
* A grant matching the current definition hash and source connector, keyed by the call's policy key
|
|
223
|
+
* (the tool key, or a per-call key such as `Platform:<operation>`): this conversation's first,
|
|
205
224
|
* then "always". `connectorId` is the tool's source connector (null for plugin and builtin tools,
|
|
206
225
|
* which match only grants without a connector). A sub-agent's "this conversation" grants live on
|
|
207
|
-
*
|
|
226
|
+
* the root conversation of its tree (agent map spec §7), so the root and every sub-agent at any
|
|
227
|
+
* depth are approved once.
|
|
208
228
|
*/
|
|
209
|
-
async function findGrant(db, tool, connectorId, ctx) {
|
|
229
|
+
async function findGrant(db, tool, policyKey, connectorId, ctx) {
|
|
210
230
|
const sameConnector = sql `connector_id IS NOT DISTINCT FROM ${connectorId}`;
|
|
211
231
|
const session = await db
|
|
212
232
|
.selectFrom("conversation_tool_grants")
|
|
213
233
|
.select("spec_hash")
|
|
214
|
-
.where("conversation_id", "=", ctx.
|
|
215
|
-
.where("tool_key", "=",
|
|
234
|
+
.where("conversation_id", "=", ctx.rootConversationId ?? ctx.conversationId)
|
|
235
|
+
.where("tool_key", "=", policyKey)
|
|
216
236
|
.where(sameConnector)
|
|
217
237
|
.executeTakeFirst();
|
|
218
238
|
if (session?.spec_hash === tool.specHash)
|
|
@@ -223,7 +243,7 @@ async function findGrant(db, tool, connectorId, ctx) {
|
|
|
223
243
|
.where("org_id", "=", ctx.orgId)
|
|
224
244
|
.where("account_id", "=", ctx.accountId)
|
|
225
245
|
.where("agent_id", "=", ctx.agentId)
|
|
226
|
-
.where("tool_key", "=",
|
|
246
|
+
.where("tool_key", "=", policyKey)
|
|
227
247
|
.where(sameConnector)
|
|
228
248
|
.executeTakeFirst();
|
|
229
249
|
return always?.spec_hash === tool.specHash ? "always" : null;
|
package/dist/tools/registry.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Connector, HookParentScope, InputRequired, ToolAnnotations, ToolCallContext, ToolResult, ToolSpec } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import type { AgentDefinition } from "../agents/definition.js";
|
|
3
3
|
import type { ToolView } from "../conversations/events.js";
|
|
4
|
+
import { EffectiveConfigs } from "../extensions/effective-config.js";
|
|
4
5
|
import { ExtensionHost } from "../extensions/host.js";
|
|
5
6
|
import { ExtensionRegistry } from "../extensions/registry.js";
|
|
6
7
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
@@ -8,6 +9,7 @@ import { KernelDb } from "../infra/database/kernel-db.js";
|
|
|
8
9
|
import type { OrgRole } from "../orgs/roles.js";
|
|
9
10
|
import type { ConversationKindForHooks } from "../runtime/hook-calls.js";
|
|
10
11
|
import { BuiltinTools } from "./builtins/builtin-tools.js";
|
|
12
|
+
import { OrgToolSwitches } from "./org-tool-switches.js";
|
|
11
13
|
export { BUILTIN_TOOL_NAMES } from "./builtin-names.js";
|
|
12
14
|
export { canonicalJson } from "./canonical-json.js";
|
|
13
15
|
/** 保存 agent 时引用校验的问题(`path` 为 `tools.<i>`)。 */
|
|
@@ -29,12 +31,18 @@ export interface BuiltinCallContext extends ToolCallContext {
|
|
|
29
31
|
*/
|
|
30
32
|
runDeadline?: number;
|
|
31
33
|
/**
|
|
32
|
-
* The conversation whose sandbox this call uses (sub-agents spec §10.1): the
|
|
33
|
-
* for a sub-agent's call, the conversation itself otherwise (the
|
|
34
|
+
* The conversation whose sandbox this call uses (sub-agents spec §10.1, agent map spec §6): the
|
|
35
|
+
* root conversation for a sub-agent's call at any depth, the conversation itself otherwise (the
|
|
36
|
+
* default when absent).
|
|
34
37
|
*/
|
|
35
38
|
sandboxConversationId?: string;
|
|
36
39
|
/** The parent run of a sub-agent's run (absent for a top-level run). */
|
|
37
40
|
parentRunId?: string;
|
|
41
|
+
/**
|
|
42
|
+
* A sub-agent's run: the tree's budget window of this run (`SubagentParent.budgetRunId`), which
|
|
43
|
+
* a builtin's own model call (the `WebFetch` extraction) counts its tokens on.
|
|
44
|
+
*/
|
|
45
|
+
budgetRunId?: string;
|
|
38
46
|
/**
|
|
39
47
|
* The rest of the run's hook scope, for a builtin that makes a model call of its own (the
|
|
40
48
|
* `WebFetch` extraction fires `model.request` / `model.response`): the step of the call, the
|
|
@@ -79,6 +87,50 @@ export interface BuiltinTool {
|
|
|
79
87
|
unavailable?: (ctx: {
|
|
80
88
|
orgId: string;
|
|
81
89
|
}) => Promise<string | null> | string | null;
|
|
90
|
+
/**
|
|
91
|
+
* A policy key derived from the validated input (Platform tool spec §6.2), or null to use the
|
|
92
|
+
* tool key. With a key, agent and parent policies, grants and approvals are keyed by it (an
|
|
93
|
+
* agent's policy on the tool key still applies on top); the model-visible key stays the tool key.
|
|
94
|
+
* May be async (the `Platform` tool reads the actor's facts); it never throws for bad input:
|
|
95
|
+
* an input that cannot run is a `deny` with a `denyReason`.
|
|
96
|
+
*/
|
|
97
|
+
callPolicy?: CallPolicyFn;
|
|
98
|
+
}
|
|
99
|
+
/** Where a call happens, for {@link BuiltinTool.callPolicy}: the runtime's context, never input. */
|
|
100
|
+
export interface CallPolicyContext {
|
|
101
|
+
orgId: string;
|
|
102
|
+
/** The run's trigger account. */
|
|
103
|
+
accountId: string;
|
|
104
|
+
agentId: string;
|
|
105
|
+
conversationId: string;
|
|
106
|
+
/** Null outside a run (a builtin called directly). */
|
|
107
|
+
runId: string | null;
|
|
108
|
+
/**
|
|
109
|
+
* The call's input as the model sent it, before `{"$output": id}` references were resolved
|
|
110
|
+
* (the approval card shows this form). Absent outside the pipeline.
|
|
111
|
+
*/
|
|
112
|
+
rawInput?: unknown;
|
|
113
|
+
}
|
|
114
|
+
/** {@link BuiltinTool.callPolicy}. */
|
|
115
|
+
export type CallPolicyFn = (input: unknown, ctx: CallPolicyContext) => CallPolicy | null | Promise<CallPolicy | null>;
|
|
116
|
+
/** What {@link BuiltinTool.callPolicy} returns for one call. */
|
|
117
|
+
export interface CallPolicy {
|
|
118
|
+
/** The policy key, e.g. `Platform:skills.create`. */
|
|
119
|
+
key: string;
|
|
120
|
+
/** The default for this call (it replaces the tool's `defaultPolicy`). */
|
|
121
|
+
policy: ToolPolicy;
|
|
122
|
+
/**
|
|
123
|
+
* False: always confirm, only "once": the approval offers only "once" and remembered grants
|
|
124
|
+
* never apply.
|
|
125
|
+
*/
|
|
126
|
+
remember: boolean;
|
|
127
|
+
/** The bilingual summary shown on the approval (rendered by the kernel, never by the model). */
|
|
128
|
+
summary?: {
|
|
129
|
+
zh: string;
|
|
130
|
+
en: string;
|
|
131
|
+
};
|
|
132
|
+
/** With `policy: "deny"`: the actionable English reason returned as the tool error. */
|
|
133
|
+
denyReason?: string;
|
|
82
134
|
}
|
|
83
135
|
/**
|
|
84
136
|
* agent 定义里对工具的引用(Task 6 在 `AgentDefinitionSchema` 中落地同形的 zod schema)。
|
|
@@ -129,6 +181,8 @@ export interface ResolvedTool {
|
|
|
129
181
|
* (推给持有该角色的人)。M3 的内置与连接器工具都不设。
|
|
130
182
|
*/
|
|
131
183
|
requiredRole?: OrgRole;
|
|
184
|
+
/** A builtin's per-call policy key (see {@link BuiltinTool.callPolicy}). */
|
|
185
|
+
callPolicy?: CallPolicyFn;
|
|
132
186
|
}
|
|
133
187
|
/** 不可用的引用:`ref` 尽量写成模型认识的工具 key(`mcp__docs__search`、`mcp__docs__*`),否则 `app:<id>`。 */
|
|
134
188
|
export interface UnavailableTool {
|
|
@@ -174,9 +228,11 @@ export interface AgentTools {
|
|
|
174
228
|
*
|
|
175
229
|
* Availability:
|
|
176
230
|
* - builtin: in `builtins`;
|
|
177
|
-
* - extension tools: the extension is loaded and registered the tool,
|
|
231
|
+
* - extension tools: the extension is loaded and registered the tool, this org enabled the
|
|
178
232
|
* extension (`extension_org_configs.enabled`, spec 2.2 "installed at deployment level, enabled at
|
|
179
|
-
* org level"; required bootstrap plugins are enabled in every org, `enabled.ts`)
|
|
233
|
+
* org level"; required bootstrap plugins are enabled in every org, `enabled.ts`), and the
|
|
234
|
+
* extension's effective config for the org is valid (layering spec A §6) and the org did not
|
|
235
|
+
* turn the tool off (§7);
|
|
180
236
|
* - connector tools: the connector belongs to this org, is not deleted or disabled, the connector is
|
|
181
237
|
* installed, the tool status is `enabled` and the key is valid.
|
|
182
238
|
* `tools: "all"` takes only enabled tools; disabled / pending-review ones count as deliberately
|
|
@@ -191,6 +247,13 @@ export declare class ToolRegistry {
|
|
|
191
247
|
/** The installed connectors (`connector@1`, from the extension registry). */
|
|
192
248
|
private readonly extensions;
|
|
193
249
|
private readonly builtinTools;
|
|
250
|
+
/**
|
|
251
|
+
* The extensions' effective config per org (layering spec A §6): an extension tool is
|
|
252
|
+
* unavailable in an org whose effective config is not valid.
|
|
253
|
+
*/
|
|
254
|
+
private readonly effective;
|
|
255
|
+
/** The org's switches of single extension tools (layering spec A §7). */
|
|
256
|
+
private readonly switches;
|
|
194
257
|
/**
|
|
195
258
|
* `tools.searchThreshold*` and the sub-agent limits. Absent (some tests): `ToolSearch` is never
|
|
196
259
|
* offered and the sub-agent limits are the schema defaults.
|
|
@@ -201,6 +264,13 @@ export declare class ToolRegistry {
|
|
|
201
264
|
host: Pick<ExtensionHost, "tools" | "enabledPlugins">,
|
|
202
265
|
/** The installed connectors (`connector@1`, from the extension registry). */
|
|
203
266
|
extensions: Pick<ExtensionRegistry, "list">, builtinTools: Pick<BuiltinTools, "list">,
|
|
267
|
+
/**
|
|
268
|
+
* The extensions' effective config per org (layering spec A §6): an extension tool is
|
|
269
|
+
* unavailable in an org whose effective config is not valid.
|
|
270
|
+
*/
|
|
271
|
+
effective: Pick<EffectiveConfigs, "get">,
|
|
272
|
+
/** The org's switches of single extension tools (layering spec A §7). */
|
|
273
|
+
switches: Pick<OrgToolSwitches, "offKeys">,
|
|
204
274
|
/**
|
|
205
275
|
* `tools.searchThreshold*` and the sub-agent limits. Absent (some tests): `ToolSearch` is never
|
|
206
276
|
* offered and the sub-agent limits are the schema defaults.
|
|
@@ -229,6 +299,17 @@ export declare class ToolRegistry {
|
|
|
229
299
|
}[];
|
|
230
300
|
/** 已安装连接器的 kind 列表(去重,按加载顺序)。 */
|
|
231
301
|
connectorKinds(): string[];
|
|
302
|
+
/**
|
|
303
|
+
* The connector kinds `orgId` can create connectors of: the `connector@1` implementations loaded
|
|
304
|
+
* on this replica whose extension is enabled in the org (the first implementation of a kind, as
|
|
305
|
+
* {@link findConnector} picks it), sorted by kind.
|
|
306
|
+
*/
|
|
307
|
+
connectorKindsFor(orgId: string): Promise<{
|
|
308
|
+
kind: string;
|
|
309
|
+
plugin: string;
|
|
310
|
+
}[]>;
|
|
311
|
+
/** True when `kind` is one of {@link connectorKindsFor}: loaded here and enabled in the org. */
|
|
312
|
+
connectorKindAvailable(orgId: string, kind: string): Promise<boolean>;
|
|
232
313
|
/**
|
|
233
314
|
* 保存 agent 时校验工具引用(只看「存在」,停用 / 待复核 / 插件未启用等运行时状态不拒绝,由 `forAgent` 报不可用):
|
|
234
315
|
* - 内置:名字在 {@link BUILTIN_TOOL_NAMES} 中;
|
|
@@ -253,17 +334,29 @@ export declare class ToolRegistry {
|
|
|
253
334
|
skillLoad?: boolean;
|
|
254
335
|
/** The definition's sub-agent roster source: the `Agent` tool's description lists it. */
|
|
255
336
|
subagents?: AgentDefinition["subagents"];
|
|
337
|
+
/**
|
|
338
|
+
* The run is a sub-agent's (it has a parent): it gets `SendMessage` (to reach its parent)
|
|
339
|
+
* and `SubagentHandback` whatever its definition names (agent map spec §4.2, §4.3).
|
|
340
|
+
*/
|
|
341
|
+
child?: boolean;
|
|
342
|
+
/**
|
|
343
|
+
* The run is a fork invocation's child (phase D): its final reply is the skill's report, so
|
|
344
|
+
* it reaches its parent with neither tool (`SendMessage` only to its own sub-agents).
|
|
345
|
+
*/
|
|
346
|
+
forkChild?: boolean;
|
|
256
347
|
}): Promise<AgentTools>;
|
|
257
348
|
/** 是否启用 `ToolSearch`(见 {@link forAgent});先比阈值,超过才读组织设置。 */
|
|
258
349
|
private searchActive;
|
|
259
350
|
private resolve;
|
|
260
351
|
/**
|
|
261
|
-
* `subagents.
|
|
352
|
+
* `subagents.maxConcurrentPerConversation` with the organization's override, for the `Agent` tool's
|
|
262
353
|
* description (§4.3). A change of the limit changes the tool's spec hash; replays read the
|
|
263
354
|
* definition logged by hash, so no drift reason is involved. Without config (some tests): the
|
|
264
355
|
* schema default.
|
|
265
356
|
*/
|
|
266
357
|
private maxConcurrentSubagents;
|
|
358
|
+
/** The extensions enabled in the org (`extensions/enabled.ts`, through the host). */
|
|
359
|
+
enabledExtensions(orgId: string): Promise<Set<string>>;
|
|
267
360
|
/** Plugins the organization enabled (built-in plugins always count as enabled, C14). */
|
|
268
361
|
private enabledPlugins;
|
|
269
362
|
private loadConnectors;
|
package/dist/tools/registry.js
CHANGED
|
@@ -10,6 +10,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
10
10
|
import { createHash } from "node:crypto";
|
|
11
11
|
import { connectorToolKey, extensionToolKey } from "@capybara-hq/plugin-sdk";
|
|
12
12
|
import { Inject, Injectable } from "@nestjs/common";
|
|
13
|
+
import { EffectiveConfigs, NEEDS_CONFIG_REASON } from "../extensions/effective-config.js";
|
|
13
14
|
import { ExtensionHost } from "../extensions/host.js";
|
|
14
15
|
import { ExtensionRegistry } from "../extensions/registry.js";
|
|
15
16
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
@@ -18,12 +19,13 @@ import { readOrgSettings } from "../orgs/settings.service.js";
|
|
|
18
19
|
import { estimateTokens } from "../runtime/context/tokens.js";
|
|
19
20
|
import { SUBAGENT_LIMIT_DEFAULTS, subagentLimits } from "../runtime/subagents/limits.js";
|
|
20
21
|
import { resolveRoster } from "../runtime/subagents/roster.js";
|
|
21
|
-
import { AGENT_TOOL, BASH_COMPANION_TOOLS, BUILTIN, BUILTIN_TOOL_NAMES, SKILL_LOAD, TOOL_SEARCH, } from "./builtin-names.js";
|
|
22
|
+
import { AGENT_TOOL, BASH_COMPANION_TOOLS, BUILTIN, BUILTIN_TOOL_NAMES, SEND_MESSAGE, SKILL_LOAD, SUBAGENT_HANDBACK, SUBAGENT_MESSAGE_TOOLS, TOOL_SEARCH, } from "./builtin-names.js";
|
|
22
23
|
import { agentToolSpec } from "./builtins/agent.js";
|
|
23
24
|
import { BuiltinTools } from "./builtins/builtin-tools.js";
|
|
24
25
|
import { canonicalJson } from "./canonical-json.js";
|
|
25
26
|
import { legacyKeySaveText } from "./legacy-keys.js";
|
|
26
27
|
import { toolKeyIssue } from "./naming.js";
|
|
28
|
+
import { OrgToolSwitches, toolTurnedOffReason } from "./org-tool-switches.js";
|
|
27
29
|
export { BUILTIN_TOOL_NAMES } from "./builtin-names.js";
|
|
28
30
|
export { canonicalJson } from "./canonical-json.js";
|
|
29
31
|
/** The first 16 hex digits of sha256(canonicalJson(v)): a fingerprint independent of key order. */
|
|
@@ -80,6 +82,7 @@ const builtinTool = (b, spec) => ({
|
|
|
80
82
|
defaultPolicy: b.defaultPolicy,
|
|
81
83
|
...(b.timeoutMs !== undefined && { timeoutMs: b.timeoutMs }),
|
|
82
84
|
...(b.spillChars !== undefined && { spillChars: b.spillChars }),
|
|
85
|
+
...(b.callPolicy !== undefined && { callPolicy: b.callPolicy }),
|
|
83
86
|
});
|
|
84
87
|
/**
|
|
85
88
|
* Tool registry: resolves the references in an agent definition into the tools available for this
|
|
@@ -88,9 +91,11 @@ const builtinTool = (b, spec) => ({
|
|
|
88
91
|
*
|
|
89
92
|
* Availability:
|
|
90
93
|
* - builtin: in `builtins`;
|
|
91
|
-
* - extension tools: the extension is loaded and registered the tool,
|
|
94
|
+
* - extension tools: the extension is loaded and registered the tool, this org enabled the
|
|
92
95
|
* extension (`extension_org_configs.enabled`, spec 2.2 "installed at deployment level, enabled at
|
|
93
|
-
* org level"; required bootstrap plugins are enabled in every org, `enabled.ts`)
|
|
96
|
+
* org level"; required bootstrap plugins are enabled in every org, `enabled.ts`), and the
|
|
97
|
+
* extension's effective config for the org is valid (layering spec A §6) and the org did not
|
|
98
|
+
* turn the tool off (§7);
|
|
94
99
|
* - connector tools: the connector belongs to this org, is not deleted or disabled, the connector is
|
|
95
100
|
* installed, the tool status is `enabled` and the key is valid.
|
|
96
101
|
* `tools: "all"` takes only enabled tools; disabled / pending-review ones count as deliberately
|
|
@@ -103,12 +108,21 @@ let ToolRegistry = class ToolRegistry {
|
|
|
103
108
|
host;
|
|
104
109
|
extensions;
|
|
105
110
|
builtinTools;
|
|
111
|
+
effective;
|
|
112
|
+
switches;
|
|
106
113
|
config;
|
|
107
114
|
constructor(db,
|
|
108
115
|
/** Extension tools and the organization's enabled extensions. */
|
|
109
116
|
host,
|
|
110
117
|
/** The installed connectors (`connector@1`, from the extension registry). */
|
|
111
118
|
extensions, builtinTools,
|
|
119
|
+
/**
|
|
120
|
+
* The extensions' effective config per org (layering spec A §6): an extension tool is
|
|
121
|
+
* unavailable in an org whose effective config is not valid.
|
|
122
|
+
*/
|
|
123
|
+
effective,
|
|
124
|
+
/** The org's switches of single extension tools (layering spec A §7). */
|
|
125
|
+
switches,
|
|
112
126
|
/**
|
|
113
127
|
* `tools.searchThreshold*` and the sub-agent limits. Absent (some tests): `ToolSearch` is never
|
|
114
128
|
* offered and the sub-agent limits are the schema defaults.
|
|
@@ -118,6 +132,8 @@ let ToolRegistry = class ToolRegistry {
|
|
|
118
132
|
this.host = host;
|
|
119
133
|
this.extensions = extensions;
|
|
120
134
|
this.builtinTools = builtinTools;
|
|
135
|
+
this.effective = effective;
|
|
136
|
+
this.switches = switches;
|
|
121
137
|
this.config = config;
|
|
122
138
|
}
|
|
123
139
|
/** The kernel's builtin tools (`ToolSearch` is added by {@link forAgent}, not by definitions). */
|
|
@@ -173,6 +189,29 @@ let ToolRegistry = class ToolRegistry {
|
|
|
173
189
|
connectorKinds() {
|
|
174
190
|
return [...new Set(this.extensions.list("connector").map((e) => e.impl.kind))];
|
|
175
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* The connector kinds `orgId` can create connectors of: the `connector@1` implementations loaded
|
|
194
|
+
* on this replica whose extension is enabled in the org (the first implementation of a kind, as
|
|
195
|
+
* {@link findConnector} picks it), sorted by kind.
|
|
196
|
+
*/
|
|
197
|
+
async connectorKindsFor(orgId) {
|
|
198
|
+
const enabled = await this.enabledPlugins(orgId);
|
|
199
|
+
const out = new Map();
|
|
200
|
+
for (const e of this.extensions.list("connector")) {
|
|
201
|
+
const kind = e.impl?.kind;
|
|
202
|
+
if (typeof kind !== "string" || out.has(kind))
|
|
203
|
+
continue;
|
|
204
|
+
out.set(kind, e.plugin);
|
|
205
|
+
}
|
|
206
|
+
return [...out]
|
|
207
|
+
.filter(([, plugin]) => enabled.has(plugin))
|
|
208
|
+
.map(([kind, plugin]) => ({ kind, plugin }))
|
|
209
|
+
.sort((a, b) => a.kind.localeCompare(b.kind));
|
|
210
|
+
}
|
|
211
|
+
/** True when `kind` is one of {@link connectorKindsFor}: loaded here and enabled in the org. */
|
|
212
|
+
async connectorKindAvailable(orgId, kind) {
|
|
213
|
+
return (await this.connectorKindsFor(orgId)).some((k) => k.kind === kind);
|
|
214
|
+
}
|
|
176
215
|
/**
|
|
177
216
|
* 保存 agent 时校验工具引用(只看「存在」,停用 / 待复核 / 插件未启用等运行时状态不拒绝,由 `forAgent` 报不可用):
|
|
178
217
|
* - 内置:名字在 {@link BUILTIN_TOOL_NAMES} 中;
|
|
@@ -260,6 +299,18 @@ let ToolRegistry = class ToolRegistry {
|
|
|
260
299
|
*/
|
|
261
300
|
async forAgent(orgId, def) {
|
|
262
301
|
const { tools, unavailable, hidden } = await this.resolve(orgId, def);
|
|
302
|
+
// `SendMessage` to an agent that has `Agent` (to reach its sub-agents) or a parent;
|
|
303
|
+
// `SubagentHandback` to a sub-agent only; a fork invocation's child reports by its reply
|
|
304
|
+
const toParent = def.child === true && def.forkChild !== true;
|
|
305
|
+
const messageTools = [
|
|
306
|
+
...(toParent || tools.some((t) => t.key === AGENT_TOOL) ? [SEND_MESSAGE] : []),
|
|
307
|
+
...(toParent ? [SUBAGENT_HANDBACK] : []),
|
|
308
|
+
];
|
|
309
|
+
for (const name of messageTools) {
|
|
310
|
+
const b = this.builtins.find((x) => x.spec.name === name);
|
|
311
|
+
if (b)
|
|
312
|
+
tools.push(builtinTool(b, b.spec));
|
|
313
|
+
}
|
|
263
314
|
const sl = def.skillLoad === true && this.builtins.find((x) => x.spec.name === SKILL_LOAD);
|
|
264
315
|
if (sl) {
|
|
265
316
|
tools.push({
|
|
@@ -314,18 +365,30 @@ let ToolRegistry = class ToolRegistry {
|
|
|
314
365
|
});
|
|
315
366
|
}
|
|
316
367
|
};
|
|
317
|
-
const enabledPlugins = def.tools.some((r) => r.kind === "plugin")
|
|
318
|
-
? await this.enabledPlugins(orgId)
|
|
319
|
-
: new Set();
|
|
368
|
+
const [enabledPlugins, offKeys] = def.tools.some((r) => r.kind === "plugin")
|
|
369
|
+
? await Promise.all([this.enabledPlugins(orgId), this.switches.offKeys(orgId)])
|
|
370
|
+
: [new Set(), new Set()];
|
|
320
371
|
const connectorIds = [
|
|
321
372
|
...new Set(def.tools.flatMap((r) => (r.kind === "connector" ? [r.connectorId] : []))),
|
|
322
373
|
];
|
|
323
374
|
const apps = await this.loadConnectors(orgId, connectorIds);
|
|
324
375
|
const pluginTools = this.host.tools();
|
|
376
|
+
// one effective config read per extension and resolution, however many of its tools are named
|
|
377
|
+
const configured = new Map();
|
|
378
|
+
const configuredIn = (plugin) => {
|
|
379
|
+
let ok = configured.get(plugin);
|
|
380
|
+
if (!ok) {
|
|
381
|
+
ok = this.effective.get(orgId, plugin).then((e) => e.ok);
|
|
382
|
+
configured.set(plugin, ok);
|
|
383
|
+
}
|
|
384
|
+
return ok;
|
|
385
|
+
};
|
|
325
386
|
for (const ref of def.tools) {
|
|
326
387
|
if (ref.kind === "builtin") {
|
|
327
388
|
if (ref.name === TOOL_SEARCH || ref.name === SKILL_LOAD)
|
|
328
389
|
continue;
|
|
390
|
+
if (SUBAGENT_MESSAGE_TOOLS.has(ref.name))
|
|
391
|
+
continue;
|
|
329
392
|
const b = this.builtins.find((x) => x.spec.name === ref.name);
|
|
330
393
|
if (!b) {
|
|
331
394
|
unavailable.push({ ref: ref.name, reason: "Built-in tool does not exist" });
|
|
@@ -369,6 +432,15 @@ let ToolRegistry = class ToolRegistry {
|
|
|
369
432
|
});
|
|
370
433
|
continue;
|
|
371
434
|
}
|
|
435
|
+
// the pipeline refuses such calls too (a resumed step), this keeps them from the model
|
|
436
|
+
if (offKeys.has(key)) {
|
|
437
|
+
unavailable.push({ ref: key, reason: toolTurnedOffReason(key) });
|
|
438
|
+
continue;
|
|
439
|
+
}
|
|
440
|
+
if (!(await configuredIn(ref.plugin))) {
|
|
441
|
+
unavailable.push({ ref: key, reason: `Plugin ${ref.plugin} ${NEEDS_CONFIG_REASON}` });
|
|
442
|
+
continue;
|
|
443
|
+
}
|
|
372
444
|
const issue = toolKeyIssue(key);
|
|
373
445
|
if (issue) {
|
|
374
446
|
unavailable.push({ ref: key, reason: issue });
|
|
@@ -447,7 +519,7 @@ let ToolRegistry = class ToolRegistry {
|
|
|
447
519
|
return { tools, unavailable, hidden };
|
|
448
520
|
}
|
|
449
521
|
/**
|
|
450
|
-
* `subagents.
|
|
522
|
+
* `subagents.maxConcurrentPerConversation` with the organization's override, for the `Agent` tool's
|
|
451
523
|
* description (§4.3). A change of the limit changes the tool's spec hash; replays read the
|
|
452
524
|
* definition logged by hash, so no drift reason is involved. Without config (some tests): the
|
|
453
525
|
* schema default.
|
|
@@ -455,7 +527,11 @@ let ToolRegistry = class ToolRegistry {
|
|
|
455
527
|
async maxConcurrentSubagents(orgId) {
|
|
456
528
|
const cfg = this.config;
|
|
457
529
|
const config = cfg ?? { get: () => ({ subagents: SUBAGENT_LIMIT_DEFAULTS }) };
|
|
458
|
-
return (await subagentLimits(this.db.db, config, orgId)).
|
|
530
|
+
return (await subagentLimits(this.db.db, config, orgId)).maxConcurrentPerConversation;
|
|
531
|
+
}
|
|
532
|
+
/** The extensions enabled in the org (`extensions/enabled.ts`, through the host). */
|
|
533
|
+
async enabledExtensions(orgId) {
|
|
534
|
+
return this.host.enabledPlugins(orgId);
|
|
459
535
|
}
|
|
460
536
|
/** Plugins the organization enabled (built-in plugins always count as enabled, C14). */
|
|
461
537
|
async enabledPlugins(orgId) {
|
|
@@ -519,6 +595,8 @@ ToolRegistry = __decorate([
|
|
|
519
595
|
__param(1, Inject(ExtensionHost)),
|
|
520
596
|
__param(2, Inject(ExtensionRegistry)),
|
|
521
597
|
__param(3, Inject(BuiltinTools)),
|
|
522
|
-
__param(4, Inject(
|
|
598
|
+
__param(4, Inject(EffectiveConfigs)),
|
|
599
|
+
__param(5, Inject(OrgToolSwitches)),
|
|
600
|
+
__param(6, Inject(KernelConfigService))
|
|
523
601
|
], ToolRegistry);
|
|
524
602
|
export { ToolRegistry };
|
|
@@ -9,10 +9,12 @@ import { BackgroundModule } from "../background/background.module.js";
|
|
|
9
9
|
import { ConversationAccessModule } from "../conversations/access.js";
|
|
10
10
|
import { AttachmentsModule } from "../conversations/attachments.module.js";
|
|
11
11
|
import { EventLogModule } from "../conversations/event-log.js";
|
|
12
|
+
import { EnvironmentsModule } from "../environments/environments.module.js";
|
|
12
13
|
import { ExtensionsModule } from "../extensions/extensions.module.js";
|
|
13
14
|
import { QueueModule } from "../infra/queue/queue.module.js";
|
|
14
15
|
import { ModelsModule } from "../models/models.module.js";
|
|
15
16
|
import { OrgLockModule } from "../orgs/org-lock.js";
|
|
17
|
+
import { PlatformModule } from "../platform/platform.module.js";
|
|
16
18
|
import { MAINTENANCE_QUEUE_NAME } from "../runtime/maintenance-queue.js";
|
|
17
19
|
import { StepLogModule } from "../runtime/step-log.js";
|
|
18
20
|
import { SubagentsModule } from "../runtime/subagents/subagents.service.js";
|
|
@@ -28,8 +30,9 @@ import { ConnectorContent } from "./connector-content.js";
|
|
|
28
30
|
import { ConnectorsService } from "./connectors.service.js";
|
|
29
31
|
import { Credentials } from "./credentials.js";
|
|
30
32
|
import { ToolDrift } from "./drift.js";
|
|
31
|
-
import { ConversationToolInfo } from "./info.js";
|
|
33
|
+
import { ConversationToolInfo, OrgExtensionTools } from "./info.js";
|
|
32
34
|
import { OAuthFlow } from "./oauth/flow.js";
|
|
35
|
+
import { OrgToolSwitches } from "./org-tool-switches.js";
|
|
33
36
|
import { ToolOutputs } from "./outputs.js";
|
|
34
37
|
import { ToolPipeline } from "./pipeline.js";
|
|
35
38
|
import { QuestionsService } from "./questions.service.js";
|
|
@@ -55,8 +58,9 @@ ToolsModule = __decorate([
|
|
|
55
58
|
OrgLockModule,
|
|
56
59
|
// the `Agent` tool's dispatch
|
|
57
60
|
SubagentsModule,
|
|
58
|
-
// the builtin sandbox and skill tools run in the conversation's
|
|
61
|
+
// the builtin sandbox and skill tools run in the conversation's environment
|
|
59
62
|
SandboxModule,
|
|
63
|
+
EnvironmentsModule,
|
|
60
64
|
// `Bash` with run_in_background records its task; TaskOutput / TaskStop finish and stop it
|
|
61
65
|
BackgroundModule,
|
|
62
66
|
// the conversation page's tool metadata reads only what the viewer may see
|
|
@@ -65,6 +69,8 @@ ToolsModule = __decorate([
|
|
|
65
69
|
ModelsModule,
|
|
66
70
|
UsageReportModule,
|
|
67
71
|
StepLogModule,
|
|
72
|
+
// the `Platform` tool's operations, actor facts and agent docs (imports no domain module)
|
|
73
|
+
PlatformModule,
|
|
68
74
|
QueueModule.registerQueue(MAINTENANCE_QUEUE_NAME),
|
|
69
75
|
],
|
|
70
76
|
providers: [
|
|
@@ -82,6 +88,8 @@ ToolsModule = __decorate([
|
|
|
82
88
|
ConnectorsService,
|
|
83
89
|
OAuthFlow,
|
|
84
90
|
ConversationToolInfo,
|
|
91
|
+
OrgExtensionTools,
|
|
92
|
+
OrgToolSwitches,
|
|
85
93
|
],
|
|
86
94
|
exports: [
|
|
87
95
|
Credentials,
|
|
@@ -97,6 +105,8 @@ ToolsModule = __decorate([
|
|
|
97
105
|
ConnectorsService,
|
|
98
106
|
OAuthFlow,
|
|
99
107
|
ConversationToolInfo,
|
|
108
|
+
OrgExtensionTools,
|
|
109
|
+
OrgToolSwitches,
|
|
100
110
|
],
|
|
101
111
|
})
|
|
102
112
|
], ToolsModule);
|
package/dist/ui/views.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type FormAnswer, type Logger, type UiActionResult, type UiContribution, type UiIcon, type UiView } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import { ConversationsService } from "../conversations/conversations.service.js";
|
|
3
3
|
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
4
|
+
import { EffectiveConfigs } from "../extensions/effective-config.js";
|
|
4
5
|
import { ExtensionHost } from "../extensions/host.js";
|
|
5
6
|
import { PreviewerRegistry } from "../files/previewers.js";
|
|
6
7
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
@@ -78,7 +79,7 @@ export declare function dropForeignOpens(view: UiView, panels: ReadonlySet<strin
|
|
|
78
79
|
*/
|
|
79
80
|
export declare class UiViews {
|
|
80
81
|
private readonly d;
|
|
81
|
-
constructor(host: ExtensionHost, conversations: ConversationsService, previewers: PreviewerRegistry, db: KernelDb, log: Pick<Logger, "warn">);
|
|
82
|
+
constructor(host: ExtensionHost, conversations: ConversationsService, previewers: PreviewerRegistry, db: KernelDb, log: Pick<Logger, "warn">, effective: Pick<EffectiveConfigs, "get">);
|
|
82
83
|
/** 该组织、该角色可见的界面贡献:插件已启用且已加载;kind view 的要求插件注册了 render;组织页面要 member 以上。 */
|
|
83
84
|
contributions(orgId: string, role: OrgRole): Promise<UiContributionItem[]>;
|
|
84
85
|
/**
|