@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
|
@@ -18,9 +18,25 @@ export interface AgentView {
|
|
|
18
18
|
memberIds: string[] | null;
|
|
19
19
|
/** 负责人离职后被转给组织所有者、等待管理员重新指派。 */
|
|
20
20
|
needsReassignment: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* The template the agent was created from (ruling P4-8; set once, never versioned), null for an
|
|
23
|
+
* agent created otherwise. `name` and `version` are the snapshot taken at create.
|
|
24
|
+
*/
|
|
25
|
+
createdFrom: AgentProvenance | null;
|
|
21
26
|
createdAt: Date;
|
|
22
27
|
updatedAt: Date;
|
|
23
28
|
}
|
|
29
|
+
/** {@link AgentView.createdFrom}. */
|
|
30
|
+
export interface AgentProvenance {
|
|
31
|
+
templateId: string;
|
|
32
|
+
version: number;
|
|
33
|
+
name: string;
|
|
34
|
+
/**
|
|
35
|
+
* The template is still usable in the org (the agent page links it only then). Set on the
|
|
36
|
+
* agents API's responses only (`AgentsService.withTemplateLinks`), never on internal reads.
|
|
37
|
+
*/
|
|
38
|
+
available?: boolean;
|
|
39
|
+
}
|
|
24
40
|
/**
|
|
25
41
|
* 可见性判定(`canUse`)的 SQL 条件:agent 未删除、所属组织未删除,且
|
|
26
42
|
* - viewer 为账号:仍是该组织成员(含访客),并且是负责人 / visibility='org' / 在 agent_members 名单中;
|
|
@@ -136,6 +136,9 @@ let AgentLookup = class AgentLookup {
|
|
|
136
136
|
"agents.profile_description",
|
|
137
137
|
"agents.profile_quick_actions",
|
|
138
138
|
"agents.profile_updated_at",
|
|
139
|
+
"agents.created_from_template_id",
|
|
140
|
+
"agents.created_from_template_version",
|
|
141
|
+
"agents.created_from_template_name",
|
|
139
142
|
"agent_versions.definition",
|
|
140
143
|
])
|
|
141
144
|
.where("agents.id", "in", ids)
|
|
@@ -158,6 +161,7 @@ let AgentLookup = class AgentLookup {
|
|
|
158
161
|
const r = byId.get(id);
|
|
159
162
|
if (!r)
|
|
160
163
|
return [];
|
|
164
|
+
const fromId = r.created_from_template_id;
|
|
161
165
|
return [
|
|
162
166
|
{
|
|
163
167
|
id: r.id,
|
|
@@ -176,6 +180,13 @@ let AgentLookup = class AgentLookup {
|
|
|
176
180
|
? memberRows.filter((m) => m.agent_id === id).map((m) => m.account_id)
|
|
177
181
|
: null,
|
|
178
182
|
needsReassignment: r.needs_reassignment,
|
|
183
|
+
createdFrom: fromId === null
|
|
184
|
+
? null
|
|
185
|
+
: {
|
|
186
|
+
templateId: fromId,
|
|
187
|
+
version: r.created_from_template_version ?? 1,
|
|
188
|
+
name: r.created_from_template_name ?? "",
|
|
189
|
+
},
|
|
179
190
|
createdAt: r.created_at,
|
|
180
191
|
updatedAt: r.updated_at,
|
|
181
192
|
},
|
|
@@ -5,6 +5,7 @@ import { type Principal } from "../identity/principal.js";
|
|
|
5
5
|
import { type OrgContext } from "../orgs/org.guard.js";
|
|
6
6
|
import { AgentProfileService } from "./agent-profile.service.js";
|
|
7
7
|
import { AgentsService, type AgentVersionSummary, type AgentView, type AgentWarning } from "./agents.service.js";
|
|
8
|
+
import { AgentsFromTemplate, type TemplatePreview } from "./from-template.service.js";
|
|
8
9
|
import { type AgentProfile } from "./profile.js";
|
|
9
10
|
declare const OwnerBody: z.ZodObject<{
|
|
10
11
|
accountId: z.ZodString;
|
|
@@ -234,6 +235,28 @@ declare const UpdateBody: z.ZodObject<{
|
|
|
234
235
|
}, z.core.$strict>>>;
|
|
235
236
|
dispatchable: z.ZodOptional<z.ZodBoolean>;
|
|
236
237
|
}, z.core.$strict>>;
|
|
238
|
+
pendingConnectors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
239
|
+
key: z.ZodString;
|
|
240
|
+
label: z.ZodString;
|
|
241
|
+
source: z.ZodUnion<readonly [z.ZodObject<{
|
|
242
|
+
template: z.ZodString;
|
|
243
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
244
|
+
needs: z.ZodObject<{
|
|
245
|
+
protocol: z.ZodEnum<{
|
|
246
|
+
mcp: "mcp";
|
|
247
|
+
openapi: "openapi";
|
|
248
|
+
}>;
|
|
249
|
+
endpoint: z.ZodString;
|
|
250
|
+
tools: z.ZodArray<z.ZodString>;
|
|
251
|
+
label: z.ZodString;
|
|
252
|
+
}, z.core.$strict>;
|
|
253
|
+
}, z.core.$strict>]>;
|
|
254
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
255
|
+
policies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
256
|
+
ask: "ask";
|
|
257
|
+
deny: "deny";
|
|
258
|
+
}>>>;
|
|
259
|
+
}, z.core.$strict>>>;
|
|
237
260
|
instructions: z.ZodOptional<z.ZodString>;
|
|
238
261
|
}, z.core.$strip>>;
|
|
239
262
|
visibility: z.ZodOptional<z.ZodEnum<{
|
|
@@ -244,6 +267,39 @@ declare const UpdateBody: z.ZodObject<{
|
|
|
244
267
|
memberIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
245
268
|
expectedVersion: z.ZodOptional<z.ZodNumber>;
|
|
246
269
|
}, z.core.$strict>;
|
|
270
|
+
declare const FromTemplatePreviewBody: z.ZodObject<{
|
|
271
|
+
templateId: z.ZodString;
|
|
272
|
+
}, z.core.$strict>;
|
|
273
|
+
declare const FromTemplateBody: z.ZodObject<{
|
|
274
|
+
templateId: z.ZodString;
|
|
275
|
+
name: z.ZodString;
|
|
276
|
+
visibility: z.ZodOptional<z.ZodEnum<{
|
|
277
|
+
members: "members";
|
|
278
|
+
org: "org";
|
|
279
|
+
private: "private";
|
|
280
|
+
}>>;
|
|
281
|
+
members: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
282
|
+
model: z.ZodOptional<z.ZodObject<{
|
|
283
|
+
provider: z.ZodString;
|
|
284
|
+
model: z.ZodString;
|
|
285
|
+
}, z.core.$strict>>;
|
|
286
|
+
avatar: z.ZodOptional<z.ZodObject<{
|
|
287
|
+
kind: z.ZodLiteral<"preset">;
|
|
288
|
+
id: z.ZodEnum<{
|
|
289
|
+
"black-bear": "black-bear";
|
|
290
|
+
capybara: "capybara";
|
|
291
|
+
elephant: "elephant";
|
|
292
|
+
fox: "fox";
|
|
293
|
+
owl: "owl";
|
|
294
|
+
panda: "panda";
|
|
295
|
+
penguin: "penguin";
|
|
296
|
+
rabbit: "rabbit";
|
|
297
|
+
turtle: "turtle";
|
|
298
|
+
whale: "whale";
|
|
299
|
+
}>;
|
|
300
|
+
}, z.core.$strict>>;
|
|
301
|
+
previewHash: z.ZodString;
|
|
302
|
+
}, z.core.$strict>;
|
|
247
303
|
/**
|
|
248
304
|
* Agent 定义(`/api/v1/orgs/:orgId/agents`)。读用 `agents.use`(访客与服务令牌可用),
|
|
249
305
|
* 写用 `agents.create`(member 以上、HUMAN_ONLY),修改 / 删除的负责人或管理员判定在服务的组织行锁内完成。
|
|
@@ -252,7 +308,26 @@ export declare class AgentsController {
|
|
|
252
308
|
private readonly agents;
|
|
253
309
|
private readonly profiles;
|
|
254
310
|
private readonly attachments;
|
|
255
|
-
|
|
311
|
+
private readonly fromTemplate;
|
|
312
|
+
constructor(agents: AgentsService, profiles: AgentProfileService, attachments: AttachmentsService, fromTemplate: AgentsFromTemplate);
|
|
313
|
+
/** A response's view with its provenance link (`createdFrom.available`, ruling P4-8). */
|
|
314
|
+
private linked;
|
|
315
|
+
/**
|
|
316
|
+
* What creating an agent from a template would carry over (rulings P4-3, P4-5): the items
|
|
317
|
+
* (carried / pending / unavailable, with reasons), the model the dialog preselects (P4-4), the
|
|
318
|
+
* template fields with no place in the agent, and the `previewHash` the create must send. A
|
|
319
|
+
* template not usable in the org → 404 `component.not_found`.
|
|
320
|
+
*/
|
|
321
|
+
previewFromTemplate(org: OrgContext, body: z.infer<typeof FromTemplatePreviewBody>): Promise<TemplatePreview>;
|
|
322
|
+
/**
|
|
323
|
+
* Creates an agent from a template (ruling P4-3): private by default; another visibility without
|
|
324
|
+
* `agents.manage` → 403 `agent.visibility_forbidden`; a plan that no longer matches the preview →
|
|
325
|
+
* 409 `agent.template_preview_stale`. The agent records its provenance (P4-8) and carries the
|
|
326
|
+
* template's missing connectors as `pendingConnectors` (P4-6).
|
|
327
|
+
*/
|
|
328
|
+
createFromTemplate(principal: Principal, org: OrgContext, body: z.infer<typeof FromTemplateBody>): Promise<{
|
|
329
|
+
agent: AgentView;
|
|
330
|
+
}>;
|
|
256
331
|
create(principal: Principal, org: OrgContext, body: z.infer<typeof CreateBody>): Promise<{
|
|
257
332
|
agent: AgentView;
|
|
258
333
|
warnings: AgentWarning[];
|
|
@@ -18,8 +18,9 @@ import { ZBody } from "../infra/validation/zod-params.js";
|
|
|
18
18
|
import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
|
|
19
19
|
import { AgentProfileService } from "./agent-profile.service.js";
|
|
20
20
|
import { AGENT_VISIBILITIES, AgentsService, } from "./agents.service.js";
|
|
21
|
-
import { AgentDefinitionSchema, AgentToolRef, DEFAULT_AGENT_TOOLS } from "./definition.js";
|
|
22
|
-
import {
|
|
21
|
+
import { AgentDefinitionSchema, AgentToolRef, DEFAULT_AGENT_TOOLS, ModelRef, } from "./definition.js";
|
|
22
|
+
import { AgentsFromTemplate } from "./from-template.service.js";
|
|
23
|
+
import { PRESET_IDS, ProfileInputSchema } from "./profile.js";
|
|
23
24
|
const MemberIds = z.array(z.string().min(1).max(100)).max(1000);
|
|
24
25
|
const OwnerBody = z.object({ accountId: z.string().min(1).max(100) }).strict();
|
|
25
26
|
/** 创建时未给 `tools` → 默认工具(Ruling P7);修改请求不注入默认值,版本里总是存显式的 tools。 */
|
|
@@ -28,7 +29,8 @@ const OwnerBody = z.object({ accountId: z.string().min(1).max(100) }).strict();
|
|
|
28
29
|
* new agent given neither gets the `AGENTS.md` starter (`deriveInstructions`).
|
|
29
30
|
*/
|
|
30
31
|
const RequestInstructions = z.string().max(100_000).optional();
|
|
31
|
-
|
|
32
|
+
/** Pending connectors come only from a template (ruling P4-6): a create request's are dropped. */
|
|
33
|
+
const CreateDefinition = AgentDefinitionSchema.omit({ pendingConnectors: true }).extend({
|
|
32
34
|
instructions: RequestInstructions,
|
|
33
35
|
tools: z.array(AgentToolRef).default(() => structuredClone(DEFAULT_AGENT_TOOLS)),
|
|
34
36
|
});
|
|
@@ -69,6 +71,27 @@ const UpdateBody = z
|
|
|
69
71
|
expectedVersion: z.number().int().positive().optional(),
|
|
70
72
|
})
|
|
71
73
|
.strict();
|
|
74
|
+
const TemplateId = z.string().min(1).max(100);
|
|
75
|
+
const FromTemplatePreviewBody = z.object({ templateId: TemplateId }).strict();
|
|
76
|
+
const FromTemplateBody = z
|
|
77
|
+
.object({
|
|
78
|
+
templateId: TemplateId,
|
|
79
|
+
name: z.string().min(1).max(80),
|
|
80
|
+
/** Default `private`; anything else needs `agents.manage` (ruling P4-3). */
|
|
81
|
+
visibility: z.enum(AGENT_VISIBILITIES).optional(),
|
|
82
|
+
/** The accounts of a `members` agent. */
|
|
83
|
+
members: MemberIds.optional(),
|
|
84
|
+
/** The person's choice; absent = the template's model resolution (P4-4). */
|
|
85
|
+
model: ModelRef.strict().optional(),
|
|
86
|
+
/** A preset avatar; absent = a random one. */
|
|
87
|
+
avatar: z
|
|
88
|
+
.object({ kind: z.literal("preset"), id: z.enum(PRESET_IDS) })
|
|
89
|
+
.strict()
|
|
90
|
+
.optional(),
|
|
91
|
+
/** The preview's `previewHash`; another one → 409 `agent.template_preview_stale`. */
|
|
92
|
+
previewHash: z.string().regex(/^[0-9a-f]{64}\.[0-9a-f]{16}$/),
|
|
93
|
+
})
|
|
94
|
+
.strict();
|
|
72
95
|
/** 服务令牌没有账号:以 null 作为 viewer,只看到 visibility='org' 的 agent。 */
|
|
73
96
|
const viewerOf = (p) => (p.kind === "user" ? p.account.id : null);
|
|
74
97
|
class AgentCreateBodyDto extends createZodDto(CreateBody, "AgentCreateBody") {
|
|
@@ -81,6 +104,10 @@ class AgentAvatarUploadBodyDto extends createZodDto(AvatarUploadBody, "AgentAvat
|
|
|
81
104
|
}
|
|
82
105
|
class AgentOwnerBodyDto extends createZodDto(OwnerBody, "AgentOwnerBody") {
|
|
83
106
|
}
|
|
107
|
+
class AgentFromTemplatePreviewBodyDto extends createZodDto(FromTemplatePreviewBody, "AgentFromTemplatePreviewBody") {
|
|
108
|
+
}
|
|
109
|
+
class AgentFromTemplateBodyDto extends createZodDto(FromTemplateBody, "AgentFromTemplateBody") {
|
|
110
|
+
}
|
|
84
111
|
/**
|
|
85
112
|
* Agent 定义(`/api/v1/orgs/:orgId/agents`)。读用 `agents.use`(访客与服务令牌可用),
|
|
86
113
|
* 写用 `agents.create`(member 以上、HUMAN_ONLY),修改 / 删除的负责人或管理员判定在服务的组织行锁内完成。
|
|
@@ -89,10 +116,44 @@ let AgentsController = class AgentsController {
|
|
|
89
116
|
agents;
|
|
90
117
|
profiles;
|
|
91
118
|
attachments;
|
|
92
|
-
|
|
119
|
+
fromTemplate;
|
|
120
|
+
constructor(agents, profiles, attachments, fromTemplate) {
|
|
93
121
|
this.agents = agents;
|
|
94
122
|
this.profiles = profiles;
|
|
95
123
|
this.attachments = attachments;
|
|
124
|
+
this.fromTemplate = fromTemplate;
|
|
125
|
+
}
|
|
126
|
+
/** A response's view with its provenance link (`createdFrom.available`, ruling P4-8). */
|
|
127
|
+
async linked(orgId, view) {
|
|
128
|
+
return (await this.agents.withTemplateLinks(orgId, [view]))[0];
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* What creating an agent from a template would carry over (rulings P4-3, P4-5): the items
|
|
132
|
+
* (carried / pending / unavailable, with reasons), the model the dialog preselects (P4-4), the
|
|
133
|
+
* template fields with no place in the agent, and the `previewHash` the create must send. A
|
|
134
|
+
* template not usable in the org → 404 `component.not_found`.
|
|
135
|
+
*/
|
|
136
|
+
async previewFromTemplate(org, body) {
|
|
137
|
+
return this.fromTemplate.preview(org.orgId, body.templateId);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Creates an agent from a template (ruling P4-3): private by default; another visibility without
|
|
141
|
+
* `agents.manage` → 403 `agent.visibility_forbidden`; a plan that no longer matches the preview →
|
|
142
|
+
* 409 `agent.template_preview_stale`. The agent records its provenance (P4-8) and carries the
|
|
143
|
+
* template's missing connectors as `pendingConnectors` (P4-6).
|
|
144
|
+
*/
|
|
145
|
+
async createFromTemplate(principal, org, body) {
|
|
146
|
+
const p = requireUser(principal);
|
|
147
|
+
const { agent } = await this.fromTemplate.create(org.orgId, p.account.id, {
|
|
148
|
+
templateId: body.templateId,
|
|
149
|
+
name: body.name,
|
|
150
|
+
previewHash: body.previewHash,
|
|
151
|
+
...(body.visibility !== undefined && { visibility: body.visibility }),
|
|
152
|
+
...(body.members !== undefined && { members: body.members }),
|
|
153
|
+
...(body.model !== undefined && { model: body.model }),
|
|
154
|
+
...(body.avatar !== undefined && { avatar: body.avatar }),
|
|
155
|
+
}, patTokenId(p));
|
|
156
|
+
return { agent: await this.linked(org.orgId, agent) };
|
|
96
157
|
}
|
|
97
158
|
async create(principal, org, body) {
|
|
98
159
|
const p = requireUser(principal);
|
|
@@ -104,14 +165,18 @@ let AgentsController = class AgentsController {
|
|
|
104
165
|
}, patTokenId(p));
|
|
105
166
|
}
|
|
106
167
|
async list(principal, org) {
|
|
107
|
-
|
|
168
|
+
const agents = await this.agents.listVisible(org.orgId, viewerOf(principal));
|
|
169
|
+
return { agents: await this.agents.withTemplateLinks(org.orgId, agents) };
|
|
108
170
|
}
|
|
109
171
|
async get(principal, org, agentId) {
|
|
110
|
-
return {
|
|
172
|
+
return {
|
|
173
|
+
agent: await this.linked(org.orgId, await this.agents.get(org.orgId, agentId, viewerOf(principal))),
|
|
174
|
+
};
|
|
111
175
|
}
|
|
112
176
|
async update(principal, org, agentId, body) {
|
|
113
177
|
const p = requireUser(principal);
|
|
114
|
-
|
|
178
|
+
const r = await this.agents.update(org.orgId, agentId, p.account.id, body, patTokenId(p));
|
|
179
|
+
return { ...r, agent: await this.linked(org.orgId, r.agent) };
|
|
115
180
|
}
|
|
116
181
|
/** Display data only: no agent version. Same permission as `PATCH :agentId`. */
|
|
117
182
|
async updateProfile(principal, org, agentId, body) {
|
|
@@ -166,15 +231,28 @@ let AgentsController = class AgentsController {
|
|
|
166
231
|
/** 重新指派负责人(admin,如负责人离职后);清除 `needsReassignment`。 */
|
|
167
232
|
async reassign(principal, org, agentId, body) {
|
|
168
233
|
const p = requireUser(principal);
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
};
|
|
234
|
+
const agent = await this.agents.reassignOwner(org.orgId, agentId, body.accountId, p.account.id, patTokenId(p));
|
|
235
|
+
return { agent: await this.linked(org.orgId, agent) };
|
|
172
236
|
}
|
|
173
237
|
async versions(principal, org, agentId) {
|
|
174
238
|
await this.agents.get(org.orgId, agentId, viewerOf(principal));
|
|
175
239
|
return { versions: await this.agents.listVersions(agentId) };
|
|
176
240
|
}
|
|
177
241
|
};
|
|
242
|
+
__decorate([
|
|
243
|
+
Post("from-template/preview"),
|
|
244
|
+
HttpCode(200),
|
|
245
|
+
OrgAction("agents.create"),
|
|
246
|
+
__param(0, CurrentOrg()),
|
|
247
|
+
__param(1, ZBody(AgentFromTemplatePreviewBodyDto))
|
|
248
|
+
], AgentsController.prototype, "previewFromTemplate", null);
|
|
249
|
+
__decorate([
|
|
250
|
+
Post("from-template"),
|
|
251
|
+
OrgAction("agents.create"),
|
|
252
|
+
__param(0, CurrentPrincipal()),
|
|
253
|
+
__param(1, CurrentOrg()),
|
|
254
|
+
__param(2, ZBody(AgentFromTemplateBodyDto))
|
|
255
|
+
], AgentsController.prototype, "createFromTemplate", null);
|
|
178
256
|
__decorate([
|
|
179
257
|
Post(),
|
|
180
258
|
OrgAction("agents.create"),
|
|
@@ -255,6 +333,7 @@ AgentsController = __decorate([
|
|
|
255
333
|
Controller("api/v1/orgs/:orgId/agents"),
|
|
256
334
|
__param(0, Inject(AgentsService)),
|
|
257
335
|
__param(1, Inject(AgentProfileService)),
|
|
258
|
-
__param(2, Inject(AttachmentsService))
|
|
336
|
+
__param(2, Inject(AttachmentsService)),
|
|
337
|
+
__param(3, Inject(AgentsFromTemplate))
|
|
259
338
|
], AgentsController);
|
|
260
339
|
export { AgentsController };
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agents: the one {@link AgentsService} (definitions, versions, visibility; writes under the org
|
|
3
|
-
* row lock)
|
|
3
|
+
* row lock), the agent templates (the plugin ones, and the org's own: `OrgAgentTemplates`),
|
|
4
|
+
* creating agents from templates (`AgentsFromTemplate`) with its pending connector request seam
|
|
5
|
+
* (`PendingConnectorRequests`, ruling P4-7), and binding pending connectors
|
|
6
|
+
* (`PendingConnectorsService`, P4-6). Reads for a viewer are {@link AgentLookupModule}'s
|
|
4
7
|
* (re-exported), which the conversations and the skill invoker use without this module.
|
|
5
8
|
*/
|
|
6
9
|
export declare class AgentsModule {
|
|
@@ -7,18 +7,26 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { Module } from "@nestjs/common";
|
|
8
8
|
import { AttachmentsModule } from "../conversations/attachments.module.js";
|
|
9
9
|
import { EvalBudgetModule } from "../evals/budget.js";
|
|
10
|
+
import { ExtensionsModule } from "../extensions/extensions.module.js";
|
|
11
|
+
import { ModelsModule } from "../models/models.module.js";
|
|
10
12
|
import { OrgLockModule } from "../orgs/org-lock.js";
|
|
11
13
|
import { ProvidersModule } from "../runtime/providers.js";
|
|
12
|
-
import { SandboxModule } from "../sandbox/sandbox.module.js";
|
|
13
14
|
import { SkillsModule } from "../skills/skills.module.js";
|
|
14
15
|
import { ToolsModule } from "../tools/tools.module.js";
|
|
15
16
|
import { AgentLookupModule } from "./agent-lookup.js";
|
|
16
17
|
import { AgentProfileService } from "./agent-profile.service.js";
|
|
17
18
|
import { AgentsService } from "./agents.service.js";
|
|
19
|
+
import { AgentsFromTemplate } from "./from-template.service.js";
|
|
20
|
+
import { OrgAgentTemplates } from "./org-templates.js";
|
|
21
|
+
import { PendingConnectorRequests } from "./pending-connector-requests.js";
|
|
22
|
+
import { PendingConnectorsService } from "./pending-connectors.service.js";
|
|
18
23
|
import { AgentTemplatesService } from "./templates.js";
|
|
19
24
|
/**
|
|
20
25
|
* Agents: the one {@link AgentsService} (definitions, versions, visibility; writes under the org
|
|
21
|
-
* row lock)
|
|
26
|
+
* row lock), the agent templates (the plugin ones, and the org's own: `OrgAgentTemplates`),
|
|
27
|
+
* creating agents from templates (`AgentsFromTemplate`) with its pending connector request seam
|
|
28
|
+
* (`PendingConnectorRequests`, ruling P4-7), and binding pending connectors
|
|
29
|
+
* (`PendingConnectorsService`, P4-6). Reads for a viewer are {@link AgentLookupModule}'s
|
|
22
30
|
* (re-exported), which the conversations and the skill invoker use without this module.
|
|
23
31
|
*/
|
|
24
32
|
let AgentsModule = class AgentsModule {
|
|
@@ -33,13 +41,31 @@ AgentsModule = __decorate([
|
|
|
33
41
|
ProvidersModule,
|
|
34
42
|
SkillsModule,
|
|
35
43
|
ToolsModule,
|
|
36
|
-
// the producer of sandbox-destroy-for jobs after a delete
|
|
37
|
-
SandboxModule,
|
|
38
44
|
// cancels the deleted agent's eval runs
|
|
39
45
|
EvalBudgetModule,
|
|
46
|
+
// creating from a template: the extension tools and the tier purposes (rulings P4-4, P4-5)
|
|
47
|
+
ExtensionsModule,
|
|
48
|
+
ModelsModule,
|
|
49
|
+
],
|
|
50
|
+
providers: [
|
|
51
|
+
AgentsService,
|
|
52
|
+
AgentProfileService,
|
|
53
|
+
AgentTemplatesService,
|
|
54
|
+
OrgAgentTemplates,
|
|
55
|
+
AgentsFromTemplate,
|
|
56
|
+
PendingConnectorRequests,
|
|
57
|
+
PendingConnectorsService,
|
|
58
|
+
],
|
|
59
|
+
exports: [
|
|
60
|
+
AgentLookupModule,
|
|
61
|
+
AgentsService,
|
|
62
|
+
AgentProfileService,
|
|
63
|
+
AgentTemplatesService,
|
|
64
|
+
OrgAgentTemplates,
|
|
65
|
+
AgentsFromTemplate,
|
|
66
|
+
PendingConnectorRequests,
|
|
67
|
+
PendingConnectorsService,
|
|
40
68
|
],
|
|
41
|
-
providers: [AgentsService, AgentProfileService, AgentTemplatesService],
|
|
42
|
-
exports: [AgentLookupModule, AgentsService, AgentProfileService, AgentTemplatesService],
|
|
43
69
|
})
|
|
44
70
|
], AgentsModule);
|
|
45
71
|
export { AgentsModule };
|
|
@@ -2,15 +2,15 @@ import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
|
2
2
|
import { EvalBudget } from "../evals/budget.js";
|
|
3
3
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
4
4
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
5
|
-
import type { KernelLogger } from "../log.js";
|
|
6
5
|
import { OrgLock } from "../orgs/org-lock.js";
|
|
6
|
+
import { type OrgRole } from "../orgs/roles.js";
|
|
7
7
|
import { ProviderRegistry } from "../runtime/providers.js";
|
|
8
|
-
import { SandboxJobs } from "../sandbox/jobs.js";
|
|
9
8
|
import { SkillChangesService } from "../skills/changes.service.js";
|
|
10
9
|
import { ToolRegistry } from "../tools/registry.js";
|
|
11
10
|
import { AgentLookup, type AgentView, type AgentVisibility } from "./agent-lookup.js";
|
|
12
|
-
import { type AgentDefinition } from "./definition.js";
|
|
11
|
+
import { type AgentDefinition, type PendingConnector } from "./definition.js";
|
|
13
12
|
import { type AgentDefinitionInput } from "./instruction-files.js";
|
|
13
|
+
import { PendingConnectorRequests } from "./pending-connector-requests.js";
|
|
14
14
|
import { type ProfileInput } from "./profile.js";
|
|
15
15
|
export { AGENT_VISIBILITIES, type AgentView, type AgentVisibility, isAgentVisibleTo, visibleTo, } from "./agent-lookup.js";
|
|
16
16
|
export { paramIssues, SUBAGENT_ROSTER_MAX } from "./definition.js";
|
|
@@ -25,14 +25,29 @@ export type AgentVersionSummary = Omit<AgentVersion, "definition">;
|
|
|
25
25
|
export type AgentWarning = "fallback_same_provider";
|
|
26
26
|
/** A new agent has no id to bind an upload to yet: a client can only choose a preset on create. */
|
|
27
27
|
export declare function assertProfileWritable(profile: ProfileInput | undefined): void;
|
|
28
|
+
/**
|
|
29
|
+
* The pending connectors of a saved definition (ruling P4-6): absent from the request = the current
|
|
30
|
+
* version's (an editor that does not know them never drops them); given = a subset of the current
|
|
31
|
+
* ones, unchanged (only creating from a template adds them, only binding resolves them); `[]`
|
|
32
|
+
* removes them all. Another entry → 400 `validation_failed` at `pendingConnectors.<i>`.
|
|
33
|
+
*/
|
|
34
|
+
export declare function keepPendingConnectors(definition: AgentDefinition, given: readonly PendingConnector[] | undefined, current: readonly PendingConnector[] | undefined): AgentDefinition;
|
|
35
|
+
/** Where an agent created from a template came from (ruling P4-8; set once, never versioned). */
|
|
36
|
+
export interface TemplateProvenance {
|
|
37
|
+
id: string;
|
|
38
|
+
version: number;
|
|
39
|
+
name: string;
|
|
40
|
+
}
|
|
28
41
|
/** Why a `subagents` block is refused (`agent.subagents_invalid` details). */
|
|
29
42
|
export type SubagentsProblem = "not_found" | "invalid_name" | "duplicate" | "tool_not_selected" | "skill_not_selected" | "agent_not_available" | "self" | "too_many";
|
|
30
43
|
/**
|
|
31
44
|
* Checks `subagents` of an agent definition in the caller's transaction (spec §5.2); throws 400
|
|
32
45
|
* `agent.subagents_invalid` with one detail per problem (`{ reason, path, value? }`):
|
|
33
|
-
* - `not_found`: a template id that is not a
|
|
46
|
+
* - `not_found`: a template id that is not a usable agent template of the org (its own, a linked
|
|
47
|
+
* copy, or a platform template on in the org);
|
|
34
48
|
* - `invalid_name`: an inline name or `agents[].as` outside {@link SUBAGENT_NAME_RE}, or
|
|
35
|
-
* `general-purpose`; `duplicate`: a roster type listed twice (a template id twice included
|
|
49
|
+
* `general-purpose`; `duplicate`: a roster type listed twice (a template id twice included, a
|
|
50
|
+
* bare template type equal to an inline name, a template typed `general-purpose`);
|
|
36
51
|
* - `tool_not_selected`: an inline template's `tools`, `disallowedTools` or `toolPolicies` key that
|
|
37
52
|
* is not a tool key of this agent (`toolKeys`, from `ToolRegistry.checkRefs`);
|
|
38
53
|
* - `skill_not_selected`: an inline skill id that is neither in `skills.orgSkills` nor a live
|
|
@@ -67,29 +82,22 @@ export declare class AgentsService {
|
|
|
67
82
|
private readonly orgLock;
|
|
68
83
|
/** Resolves the agent's models (and their parameter declarations) when it is saved. */
|
|
69
84
|
private readonly providers;
|
|
70
|
-
/**
|
|
71
|
-
* The sandbox destruction after a delete (内核投递一次性维护任务 `sandbox-destroy-for`,worker
|
|
72
|
-
* 在锁内逐个销毁,幂等).
|
|
73
|
-
*/
|
|
74
|
-
private readonly sandboxJobs;
|
|
75
|
-
private readonly log;
|
|
76
85
|
readonly txHost: TransactionHost;
|
|
77
86
|
/** Cancels the deleted agent's running eval runs (in the delete's transaction). */
|
|
78
87
|
private readonly evalBudget;
|
|
88
|
+
/** Settles the agent's connector setup request when its pending connectors change (P4-7). */
|
|
89
|
+
private readonly setupRequests;
|
|
79
90
|
constructor(db: KernelDb, lookup: AgentLookup, tools: Pick<ToolRegistry, "checkRefs">,
|
|
80
91
|
/** 删除 agent 时取消它待处理的技能改动(T15)。 */
|
|
81
92
|
skillChanges: Pick<SkillChangesService, "cancelPendingForAgent" | "finishCancel">,
|
|
82
93
|
/** The org row lock (orgs/org-lock.ts): joins the caller's transaction. */
|
|
83
94
|
orgLock: Pick<OrgLock, "lockAndAuthorize">,
|
|
84
95
|
/** Resolves the agent's models (and their parameter declarations) when it is saved. */
|
|
85
|
-
providers: Pick<ProviderRegistry, "resolve">,
|
|
86
|
-
/**
|
|
87
|
-
* The sandbox destruction after a delete (内核投递一次性维护任务 `sandbox-destroy-for`,worker
|
|
88
|
-
* 在锁内逐个销毁,幂等).
|
|
89
|
-
*/
|
|
90
|
-
sandboxJobs: Pick<SandboxJobs, "destroy">, log: Pick<KernelLogger, "warn">, txHost: TransactionHost,
|
|
96
|
+
providers: Pick<ProviderRegistry, "resolve">, txHost: TransactionHost,
|
|
91
97
|
/** Cancels the deleted agent's running eval runs (in the delete's transaction). */
|
|
92
|
-
evalBudget: Pick<EvalBudget, "cancelRuns"
|
|
98
|
+
evalBudget: Pick<EvalBudget, "cancelRuns">,
|
|
99
|
+
/** Settles the agent's connector setup request when its pending connectors change (P4-7). */
|
|
100
|
+
setupRequests: Pick<PendingConnectorRequests, "settleIn" | "retargetIn">);
|
|
93
101
|
/**
|
|
94
102
|
* 校验工具引用与工具策略:引用的内置 / 插件 / 连接器工具必须存在(见 `ToolRegistry.checkRefs`);
|
|
95
103
|
* `toolPolicies` 的键必须是这些引用产生的工具 key(取值只能收紧,已由 schema 保证)。
|
|
@@ -113,10 +121,28 @@ export declare class AgentsService {
|
|
|
113
121
|
visibility: AgentVisibility;
|
|
114
122
|
memberIds?: string[];
|
|
115
123
|
profile?: ProfileInput;
|
|
116
|
-
}, actorTokenId?: string): Promise<{
|
|
124
|
+
}, actorTokenId?: string, auditDetail?: Record<string, unknown>): Promise<{
|
|
117
125
|
agent: AgentView;
|
|
118
126
|
warnings: AgentWarning[];
|
|
119
127
|
}>;
|
|
128
|
+
/**
|
|
129
|
+
* Creates an agent from a planned template definition (rulings P4-3, P4-8): {@link create}'s
|
|
130
|
+
* checks, plus, under the org row lock, 403 `agent.visibility_forbidden` when the visibility is
|
|
131
|
+
* not `private` and the creator lacks `agents.manage`; the provenance columns are written once.
|
|
132
|
+
* Returns the creator's role read under the lock (the caller decides on the pending connector
|
|
133
|
+
* request after the commit).
|
|
134
|
+
*/
|
|
135
|
+
createFromTemplate(orgId: string, actorAccountId: string, request: {
|
|
136
|
+
definition: AgentDefinitionInput;
|
|
137
|
+
visibility: AgentVisibility;
|
|
138
|
+
memberIds?: string[];
|
|
139
|
+
profile?: ProfileInput;
|
|
140
|
+
}, template: TemplateProvenance, actorTokenId?: string, auditDetail?: Record<string, unknown>): Promise<{
|
|
141
|
+
agent: AgentView;
|
|
142
|
+
warnings: AgentWarning[];
|
|
143
|
+
role: OrgRole;
|
|
144
|
+
}>;
|
|
145
|
+
private createChecked;
|
|
120
146
|
private createIn;
|
|
121
147
|
/**
|
|
122
148
|
* 锁组织行并复核发起人,再锁 agent 行:发起人须仍具备 `agents.create`(member 以上),且是负责人或组织管理员以上;
|
|
@@ -139,7 +165,7 @@ export declare class AgentsService {
|
|
|
139
165
|
* 不产生新版本,所以检测不到别人只改了可见范围(之后的保存会按本次给出的 visibility 覆盖)。
|
|
140
166
|
*/
|
|
141
167
|
expectedVersion?: number | undefined;
|
|
142
|
-
}, actorTokenId?: string): Promise<{
|
|
168
|
+
}, actorTokenId?: string, auditDetail?: Record<string, unknown>): Promise<{
|
|
143
169
|
agent: AgentView;
|
|
144
170
|
warnings: AgentWarning[];
|
|
145
171
|
}>;
|
|
@@ -147,14 +173,17 @@ export declare class AgentsService {
|
|
|
147
173
|
/** 软删除:权限同 update。待处理的技能改动与该 agent 评测集在执行的评测运行一并取消,提交后删除草稿(T15)。 */
|
|
148
174
|
softDelete(orgId: string, agentId: string, actorAccountId: string, actorTokenId?: string): Promise<void>;
|
|
149
175
|
private softDeleteIn;
|
|
150
|
-
/** 提交后尽力而为:投递销毁这个 agent 各对话还没销毁的沙箱(失败只记日志,留给不活跃销毁扫描)。 */
|
|
151
|
-
private destroySandboxes;
|
|
152
176
|
/**
|
|
153
177
|
* 重新指派负责人(`agents.manage`,admin):在组织行锁内授权;agent 不存在 / 已删除 → `agent.not_found`;
|
|
154
178
|
* 新负责人不是该组织成员 → `member.not_found`;是匿名访客 → `member.anonymous_guest`。
|
|
155
179
|
* 清除 `needs_reassignment`,审计 `agent.owner_changed`。
|
|
156
180
|
*/
|
|
157
181
|
reassignOwner(orgId: string, agentId: string, newOwnerId: string, actorAccountId: string, actorTokenId?: string): Promise<AgentView>;
|
|
182
|
+
/**
|
|
183
|
+
* `views` with `createdFrom.available` set (ruling P4-8): whether each recorded template is
|
|
184
|
+
* still usable in the org. One template read for all of them; only the agents API calls it.
|
|
185
|
+
*/
|
|
186
|
+
withTemplateLinks<T extends AgentView>(orgId: string, views: T[]): Promise<T[]>;
|
|
158
187
|
/** 取对 viewer 可见的 agent;`viewerAccountId = null` 表示该组织的服务令牌。不可见 → `agent.not_found`。 */
|
|
159
188
|
get(orgId: string, agentId: string, viewerAccountId: string | null): Promise<AgentView>;
|
|
160
189
|
/** 组织内对 viewer 可见的全部 agent(按创建时间)。 */
|