@capybara-hq/kernel 0.1.0-rc.4 → 0.1.0-rc.6
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 +51 -14
- package/dist/admin/admin.controller.js +60 -19
- 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 +54 -23
- package/dist/agents/agents.service.js +180 -76
- 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/models.controller.d.ts +34 -5
- package/dist/agents/models.controller.js +50 -6
- 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/readiness.controller.d.ts +5 -5
- package/dist/agents/readiness.controller.js +6 -6
- 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 +10 -2
- package/dist/config/schema.js +70 -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 +73 -15
- package/dist/conversations/conversations.service.js +115 -35
- 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 +20 -1
- package/dist/ctx/create-ctx.js +38 -7
- package/dist/db/kernel-schema.d.ts +386 -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 +85 -2
- package/dist/errors.js +85 -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 +20 -6
- package/dist/evals/runs.service.d.ts +2 -1
- package/dist/evals/runs.service.js +13 -12
- package/dist/evals/step-replay.d.ts +4 -6
- package/dist/evals/step-replay.js +4 -3
- 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/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- 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 +11 -11
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +24 -10
- package/dist/extensions/host.js +49 -54
- 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/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +38 -0
- package/dist/files/previewers.d.ts +8 -1
- package/dist/files/previewers.js +35 -6
- package/dist/http/api.module.js +25 -3
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/plugin-dispatch.d.ts +4 -1
- package/dist/http/plugin-dispatch.js +14 -2
- 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 +24 -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 +19 -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/embeddings.d.ts +82 -0
- package/dist/models/embeddings.js +326 -0
- package/dist/models/enablement.controller.d.ts +40 -0
- package/dist/models/enablement.controller.js +74 -0
- package/dist/models/enablement.d.ts +99 -0
- package/dist/models/enablement.js +263 -0
- package/dist/models/models.module.d.ts +5 -1
- package/dist/models/models.module.js +16 -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 +37 -12
- package/dist/models/purposes.js +63 -17
- 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 +1405 -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.d.ts +8 -1
- package/dist/runtime/hook-calls.js +40 -7
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +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 +38 -11
- package/dist/runtime/model-call.js +97 -24
- package/dist/runtime/providers.d.ts +146 -32
- package/dist/runtime/providers.js +321 -67
- 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 +12 -6
- package/dist/runtime/run-worker.js +58 -35
- 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 +46 -32
- 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-jobs.d.ts +88 -0
- package/dist/runtime/usage-report-jobs.js +158 -0
- package/dist/runtime/usage-report.d.ts +33 -38
- package/dist/runtime/usage-report.js +169 -96
- 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 +193 -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/src/migrations/0089_model_kinds_usage.sql +38 -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
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The method of the `Platform` tool (spec §5.2): the rules the root `browse` result carries, after
|
|
3
|
+
* the domains. Model-visible English; a tool result, never part of the tool definition, so
|
|
4
|
+
* changing it changes no definition fingerprint.
|
|
5
|
+
*/
|
|
6
|
+
export declare const PLATFORM_METHOD: string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The method of the `Platform` tool (spec §5.2): the rules the root `browse` result carries, after
|
|
3
|
+
* the domains. Model-visible English; a tool result, never part of the tool definition, so
|
|
4
|
+
* changing it changes no definition fingerprint.
|
|
5
|
+
*/
|
|
6
|
+
export const PLATFORM_METHOD = [
|
|
7
|
+
"How to work with the platform:",
|
|
8
|
+
"1. Read before you write: list or get what you are about to change.",
|
|
9
|
+
"2. Before a write, tell the person in one sentence what you will do and why; the platform then asks them to confirm.",
|
|
10
|
+
"3. A declined confirmation means stop; do not retry the same change another way.",
|
|
11
|
+
"4. An operation you may not call is not a dead end: its reason says who can (an org admin, the super admin) and whether a request operation exists; offer that.",
|
|
12
|
+
"5. Errors say what to do next; follow them.",
|
|
13
|
+
'6. When unsure how the platform works, use action "read" for the docs before acting.',
|
|
14
|
+
'Find an operation with "browse" (a domain) or "search", then "describe" it before you "call" it; never guess parameters.',
|
|
15
|
+
].join("\n");
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
import type { OrgAction } from "../orgs/roles.js";
|
|
3
|
+
/**
|
|
4
|
+
* How an operation is confirmed (spec §6.2): `read` runs; `personal` asks each time and may be
|
|
5
|
+
* remembered; `org` / `platform` ask each time and are never remembered.
|
|
6
|
+
*/
|
|
7
|
+
export type ConfirmClass = "read" | "personal" | "org" | "platform";
|
|
8
|
+
/** Who may call an operation: the org action of the route it mirrors, or the super admin. */
|
|
9
|
+
export type OperationAuthz = {
|
|
10
|
+
orgAction: OrgAction;
|
|
11
|
+
} | {
|
|
12
|
+
superAdmin: true;
|
|
13
|
+
};
|
|
14
|
+
/** What an operation's handler gets besides its input: the actor and where the call happens. */
|
|
15
|
+
export interface OperationContext {
|
|
16
|
+
orgId: string;
|
|
17
|
+
/** The run's trigger account (spec §6.1), the principal the handler acts as. */
|
|
18
|
+
actorAccountId: string;
|
|
19
|
+
agentId: string;
|
|
20
|
+
conversationId: string;
|
|
21
|
+
runId: string | null;
|
|
22
|
+
signal: AbortSignal;
|
|
23
|
+
}
|
|
24
|
+
/** One operation of the `Platform` tool (spec §7), defined next to its domain. */
|
|
25
|
+
export interface PlatformOperation<I = unknown> {
|
|
26
|
+
/** `<domain>.<verb>`, matching {@link OPERATION_ID}; the domain is one of {@link PLATFORM_DOMAINS}. */
|
|
27
|
+
id: string;
|
|
28
|
+
/** English, one paragraph; the first sentence is the line `browse` and `search` show. */
|
|
29
|
+
description: string;
|
|
30
|
+
/** Every string bounded; `describe` shows its JSON Schema. */
|
|
31
|
+
input: z.ZodType<I>;
|
|
32
|
+
example: I;
|
|
33
|
+
/** The route's authorization, or the role the service enforces (spec §9). */
|
|
34
|
+
authz: OperationAuthz;
|
|
35
|
+
/**
|
|
36
|
+
* `"service-enforced"`: the service enforces a higher role than the mirrored route's decorator,
|
|
37
|
+
* so `authz` may name a stricter action (`check:platform-ops` requires its role to be at least
|
|
38
|
+
* the route's).
|
|
39
|
+
*/
|
|
40
|
+
authzNote?: "service-enforced";
|
|
41
|
+
/** The HTTP routes it corresponds to, e.g. `POST /api/v1/orgs/:orgId/skills`; [] when synthetic. */
|
|
42
|
+
mirrors: readonly string[];
|
|
43
|
+
confirm: ConfirmClass;
|
|
44
|
+
/**
|
|
45
|
+
* The class of one call when it depends on the target (read at confirmation time): e.g.
|
|
46
|
+
* `agents.update` is `personal` only on a private agent the actor owns and `org` otherwise, so a
|
|
47
|
+
* remembered grant never carries over to a shared agent. Only for writes, never returns `read`;
|
|
48
|
+
* absent: `confirm`. The tool treats a throw as not remembered.
|
|
49
|
+
*/
|
|
50
|
+
confirmFor?(input: I, ctx: OperationContext): Promise<ConfirmClass>;
|
|
51
|
+
/**
|
|
52
|
+
* The notable error codes of the operation and what to do next (model-visible English), shown
|
|
53
|
+
* by `describe` (spec §3).
|
|
54
|
+
*/
|
|
55
|
+
errors?: readonly {
|
|
56
|
+
code: string;
|
|
57
|
+
next: string;
|
|
58
|
+
}[];
|
|
59
|
+
/**
|
|
60
|
+
* The bilingual card summary of a write, rendered from the input and kernel reads (names of
|
|
61
|
+
* the targets, preview counts), never from model text; required unless `confirm` is `read`.
|
|
62
|
+
* May read PG; the tool falls back to the operation id when it throws. Method syntax so an
|
|
63
|
+
* operation of any input type is a `PlatformOperation` (the registry's element type).
|
|
64
|
+
*/
|
|
65
|
+
summary?(input: I, ctx: OperationContext): {
|
|
66
|
+
zh: string;
|
|
67
|
+
en: string;
|
|
68
|
+
} | Promise<{
|
|
69
|
+
zh: string;
|
|
70
|
+
en: string;
|
|
71
|
+
}>;
|
|
72
|
+
run(input: I, ctx: OperationContext): Promise<unknown>;
|
|
73
|
+
}
|
|
74
|
+
/** Identity helper that types an operation's handler and summary from its input schema. */
|
|
75
|
+
export declare function defineOperation<I>(op: PlatformOperation<I>): PlatformOperation<I>;
|
|
76
|
+
/** The shape of an operation id: `<domain>.<verb>`, lower case words joined by `-`. */
|
|
77
|
+
export declare const OPERATION_ID: RegExp;
|
|
78
|
+
/** The domain part of an operation id (`skills` of `skills.list`). */
|
|
79
|
+
export declare const operationDomain: (id: string) => string;
|
|
80
|
+
/** The phase 1 domains (spec §7), in the order `browse` lists them; model-visible English. */
|
|
81
|
+
export declare const PLATFORM_DOMAINS: readonly {
|
|
82
|
+
id: string;
|
|
83
|
+
description: string;
|
|
84
|
+
}[];
|
|
85
|
+
/**
|
|
86
|
+
* Something that contributes operations (a domain's provider). Kept as a type only: providers
|
|
87
|
+
* call `PlatformOperations.register` from their `onModuleInit` (ruling P2), so `PlatformModule`
|
|
88
|
+
* imports no domain module.
|
|
89
|
+
*/
|
|
90
|
+
export interface OperationProvider {
|
|
91
|
+
operations(): readonly PlatformOperation[];
|
|
92
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** Identity helper that types an operation's handler and summary from its input schema. */
|
|
2
|
+
export function defineOperation(op) {
|
|
3
|
+
return op;
|
|
4
|
+
}
|
|
5
|
+
/** The shape of an operation id: `<domain>.<verb>`, lower case words joined by `-`. */
|
|
6
|
+
export const OPERATION_ID = /^[a-z][a-z-]*\.[a-z][a-z-]*$/;
|
|
7
|
+
/** The domain part of an operation id (`skills` of `skills.list`). */
|
|
8
|
+
export const operationDomain = (id) => id.slice(0, id.indexOf("."));
|
|
9
|
+
/** The phase 1 domains (spec §7), in the order `browse` lists them; model-visible English. */
|
|
10
|
+
export const PLATFORM_DOMAINS = [
|
|
11
|
+
{
|
|
12
|
+
id: "platform",
|
|
13
|
+
description: "What this platform is, its tool families, and what you and this agent can do.",
|
|
14
|
+
},
|
|
15
|
+
{ id: "skills", description: "The org's skill library: list, read, create, switch on or off." },
|
|
16
|
+
{
|
|
17
|
+
id: "agents",
|
|
18
|
+
description: "Agents in the org: list, read, create private ones, update those you may edit.",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
id: "agent-templates",
|
|
22
|
+
description: "Agent templates: list, read, save an agent as a template.",
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
id: "plugins",
|
|
26
|
+
description: "Plugins in the org and on the platform: list, read, enable, disable, update.",
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
id: "marketplaces",
|
|
30
|
+
description: "Marketplace sources and their entries: list, browse, add, request a plugin.",
|
|
31
|
+
},
|
|
32
|
+
{ id: "requests", description: "Requests to admins: list yours, create one." },
|
|
33
|
+
{ id: "connectors", description: "Connectors and connector templates: list and read." },
|
|
34
|
+
{ id: "extensions", description: "Extensions in the org (state only) and extension points." },
|
|
35
|
+
];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type OnModuleInit } from "@nestjs/common";
|
|
2
|
+
import { AgentsService } from "../../agents/agents.service.js";
|
|
3
|
+
import { OrgAgentTemplates } from "../../agents/org-templates.js";
|
|
4
|
+
import { AgentTemplatesService } from "../../agents/templates.js";
|
|
5
|
+
import { PlatformOperations } from "../registry.js";
|
|
6
|
+
/** Agent template operations of the `Platform` tool (spec §7). */
|
|
7
|
+
export declare class AgentTemplatesOperations implements OnModuleInit {
|
|
8
|
+
private readonly registry;
|
|
9
|
+
private readonly templates;
|
|
10
|
+
private readonly orgTemplates;
|
|
11
|
+
private readonly agents;
|
|
12
|
+
constructor(registry: PlatformOperations, templates: AgentTemplatesService, orgTemplates: OrgAgentTemplates, agents: AgentsService);
|
|
13
|
+
onModuleInit(): void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
import { AgentsService } from "../../agents/agents.service.js";
|
|
13
|
+
import { OrgAgentTemplates } from "../../agents/org-templates.js";
|
|
14
|
+
import { AgentTemplatesService } from "../../agents/templates.js";
|
|
15
|
+
import { defineOperation } from "../operation.js";
|
|
16
|
+
import { PlatformOperations } from "../registry.js";
|
|
17
|
+
import { asToolError, viaAgent } from "./errors.js";
|
|
18
|
+
import { named, orElse } from "./summary.js";
|
|
19
|
+
/** Agent template operations of the `Platform` tool (spec §7). */
|
|
20
|
+
let AgentTemplatesOperations = class AgentTemplatesOperations {
|
|
21
|
+
registry;
|
|
22
|
+
templates;
|
|
23
|
+
orgTemplates;
|
|
24
|
+
agents;
|
|
25
|
+
constructor(registry, templates, orgTemplates, agents) {
|
|
26
|
+
this.registry = registry;
|
|
27
|
+
this.templates = templates;
|
|
28
|
+
this.orgTemplates = orgTemplates;
|
|
29
|
+
this.agents = agents;
|
|
30
|
+
}
|
|
31
|
+
onModuleInit() {
|
|
32
|
+
this.registry.register([
|
|
33
|
+
defineOperation({
|
|
34
|
+
id: "agent-templates.list",
|
|
35
|
+
description: "List the agent templates usable in the org, the org's own and platform templates switched on in it. Each entry has an id, name, description and version; create an agent from one with agents.create-from-template.",
|
|
36
|
+
input: z.object({}).strict(),
|
|
37
|
+
example: {},
|
|
38
|
+
authz: { orgAction: "agents.create" },
|
|
39
|
+
mirrors: ["GET /api/v1/orgs/:orgId/agent-templates"],
|
|
40
|
+
confirm: "read",
|
|
41
|
+
run: async (_input, ctx) => ({ templates: await this.templates.listForOrg(ctx.orgId) }),
|
|
42
|
+
}),
|
|
43
|
+
defineOperation({
|
|
44
|
+
id: "agent-templates.get",
|
|
45
|
+
description: "Read one agent template with its definition (model tier, tools, skills, connectors it needs). Takes the template id from agent-templates.list.",
|
|
46
|
+
input: z.object({ templateId: z.string().min(1).max(100) }).strict(),
|
|
47
|
+
example: { templateId: "5d0c7a52-3a0e-4f0a-bd0a-0f8c3d2a9e10" },
|
|
48
|
+
authz: { orgAction: "agents.create" },
|
|
49
|
+
mirrors: ["GET /api/v1/orgs/:orgId/agent-templates/:id"],
|
|
50
|
+
confirm: "read",
|
|
51
|
+
run: async (input, ctx) => asToolError(async () => ({
|
|
52
|
+
template: await this.orgTemplates.detail(ctx.orgId, input.templateId),
|
|
53
|
+
})),
|
|
54
|
+
}),
|
|
55
|
+
defineOperation({
|
|
56
|
+
id: "agent-templates.save",
|
|
57
|
+
description: "Save an agent of the org as an org agent template under a new name, so members can create their own copy from it. Credentials and per-person settings are not carried over; the result lists what was omitted.",
|
|
58
|
+
input: z
|
|
59
|
+
.object({
|
|
60
|
+
agentId: z.string().min(1).max(100),
|
|
61
|
+
name: z.string().min(1).max(80),
|
|
62
|
+
description: z.string().min(1).max(1024),
|
|
63
|
+
})
|
|
64
|
+
.strict(),
|
|
65
|
+
example: {
|
|
66
|
+
agentId: "7c1a5b0e-9a53-4c6b-8d64-2f5a1b0c3e77",
|
|
67
|
+
name: "support-triage",
|
|
68
|
+
description: "Triages incoming support requests and drafts a first reply.",
|
|
69
|
+
},
|
|
70
|
+
authz: { orgAction: "agents.manage" },
|
|
71
|
+
mirrors: ["POST /api/v1/orgs/:orgId/agents/:agentId/save-as-template"],
|
|
72
|
+
confirm: "org",
|
|
73
|
+
summary: async (i, ctx) => {
|
|
74
|
+
const source = named(await orElse(async () => (await this.agents.get(ctx.orgId, i.agentId, ctx.actorAccountId)).definition.name, i.agentId));
|
|
75
|
+
return {
|
|
76
|
+
zh: `把智能体「${source}」另存为组织模板「${named(i.name)}」`,
|
|
77
|
+
en: `Save agent "${source}" as org template "${named(i.name)}"`,
|
|
78
|
+
};
|
|
79
|
+
},
|
|
80
|
+
run: async (input, ctx) => asToolError(() => this.orgTemplates.saveAs(ctx.orgId, ctx.actorAccountId, input.agentId, { name: input.name, description: input.description }, undefined, viaAgent("agent-templates.save", ctx))),
|
|
81
|
+
}),
|
|
82
|
+
]);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
AgentTemplatesOperations = __decorate([
|
|
86
|
+
Injectable(),
|
|
87
|
+
__param(0, Inject(PlatformOperations)),
|
|
88
|
+
__param(1, Inject(AgentTemplatesService)),
|
|
89
|
+
__param(2, Inject(OrgAgentTemplates)),
|
|
90
|
+
__param(3, Inject(AgentsService))
|
|
91
|
+
], AgentTemplatesOperations);
|
|
92
|
+
export { AgentTemplatesOperations };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type OnModuleInit } from "@nestjs/common";
|
|
2
|
+
import { AgentsService } from "../../agents/agents.service.js";
|
|
3
|
+
import { AgentsFromTemplate } from "../../agents/from-template.service.js";
|
|
4
|
+
import { OrgAgentTemplates } from "../../agents/org-templates.js";
|
|
5
|
+
import { PlatformOperations } from "../registry.js";
|
|
6
|
+
/** Agent operations of the `Platform` tool (spec §7); visibility is the person's own agents. */
|
|
7
|
+
export declare class AgentsOperations implements OnModuleInit {
|
|
8
|
+
private readonly registry;
|
|
9
|
+
private readonly agents;
|
|
10
|
+
private readonly fromTemplate;
|
|
11
|
+
private readonly orgTemplates;
|
|
12
|
+
constructor(registry: PlatformOperations, agents: AgentsService, fromTemplate: AgentsFromTemplate, orgTemplates: OrgAgentTemplates);
|
|
13
|
+
/**
|
|
14
|
+
* `agents.update`'s class (spec §13): `personal` (may be remembered) only on a private agent the
|
|
15
|
+
* actor owns; any other agent the actor may edit is shared, so each change is confirmed.
|
|
16
|
+
*/
|
|
17
|
+
private updateClass;
|
|
18
|
+
onModuleInit(): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { ToolError } from "@capybara-hq/plugin-sdk";
|
|
11
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
12
|
+
import { z } from "zod";
|
|
13
|
+
import { AgentsService } from "../../agents/agents.service.js";
|
|
14
|
+
import { AgentDefinitionSchema, DEFAULT_AGENT_TOOLS, SubagentsSchema, } from "../../agents/definition.js";
|
|
15
|
+
import { AgentsFromTemplate } from "../../agents/from-template.service.js";
|
|
16
|
+
import { OrgAgentTemplates } from "../../agents/org-templates.js";
|
|
17
|
+
import { defineOperation } from "../operation.js";
|
|
18
|
+
import { PlatformOperations } from "../registry.js";
|
|
19
|
+
import { asToolError, viaAgent } from "./errors.js";
|
|
20
|
+
import { named, orElse } from "./summary.js";
|
|
21
|
+
const Id = z.string().min(1).max(100);
|
|
22
|
+
const Short = z.string().min(1).max(200);
|
|
23
|
+
const Model = z.object({ provider: Short, model: Short }).strict();
|
|
24
|
+
const ToolRef = z.union([
|
|
25
|
+
z.object({ kind: z.literal("builtin"), name: Short }).strict(),
|
|
26
|
+
z.object({ kind: z.literal("plugin"), plugin: Short, name: Short }).strict(),
|
|
27
|
+
z
|
|
28
|
+
.object({
|
|
29
|
+
kind: z.literal("connector"),
|
|
30
|
+
connectorId: Short,
|
|
31
|
+
tools: z.union([z.literal("all"), z.array(Short).min(1).max(200)]),
|
|
32
|
+
})
|
|
33
|
+
.strict(),
|
|
34
|
+
]);
|
|
35
|
+
const ToolPolicies = z.record(Short, z.enum(["ask", "deny"]));
|
|
36
|
+
const Skills = z
|
|
37
|
+
.object({
|
|
38
|
+
orgSkills: z.array(Id).max(100),
|
|
39
|
+
pinned: z.array(Id).max(100).optional(),
|
|
40
|
+
})
|
|
41
|
+
.strict();
|
|
42
|
+
/** The definition fields an agent can set through the tool; the rest keep the web's defaults. */
|
|
43
|
+
const Fields = {
|
|
44
|
+
instructions: z.string().max(100_000),
|
|
45
|
+
model: Model,
|
|
46
|
+
tools: z.array(ToolRef).max(200),
|
|
47
|
+
toolPolicies: ToolPolicies,
|
|
48
|
+
skills: Skills,
|
|
49
|
+
subagents: SubagentsSchema,
|
|
50
|
+
};
|
|
51
|
+
const WEB_ONLY = "Agents created with the Platform tool are private, and no agent's visibility can be changed with it; sharing an agent with the org or with members is done on the agents page of the web app.";
|
|
52
|
+
const brief = (a) => ({
|
|
53
|
+
id: a.id,
|
|
54
|
+
name: a.definition.name,
|
|
55
|
+
description: a.profile.description,
|
|
56
|
+
visibility: a.visibility,
|
|
57
|
+
ownerAccountId: a.ownerAccountId,
|
|
58
|
+
currentVersion: a.currentVersion,
|
|
59
|
+
model: a.definition.model,
|
|
60
|
+
createdFromTemplate: a.createdFrom?.templateId ?? null,
|
|
61
|
+
updatedAt: a.updatedAt,
|
|
62
|
+
});
|
|
63
|
+
/** Agent operations of the `Platform` tool (spec §7); visibility is the person's own agents. */
|
|
64
|
+
let AgentsOperations = class AgentsOperations {
|
|
65
|
+
registry;
|
|
66
|
+
agents;
|
|
67
|
+
fromTemplate;
|
|
68
|
+
orgTemplates;
|
|
69
|
+
constructor(registry, agents, fromTemplate, orgTemplates) {
|
|
70
|
+
this.registry = registry;
|
|
71
|
+
this.agents = agents;
|
|
72
|
+
this.fromTemplate = fromTemplate;
|
|
73
|
+
this.orgTemplates = orgTemplates;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* `agents.update`'s class (spec §13): `personal` (may be remembered) only on a private agent the
|
|
77
|
+
* actor owns; any other agent the actor may edit is shared, so each change is confirmed.
|
|
78
|
+
*/
|
|
79
|
+
async updateClass(agentId, ctx) {
|
|
80
|
+
const a = await this.agents.get(ctx.orgId, agentId, ctx.actorAccountId);
|
|
81
|
+
return a.visibility === "private" && a.ownerAccountId === ctx.actorAccountId
|
|
82
|
+
? "personal"
|
|
83
|
+
: "org";
|
|
84
|
+
}
|
|
85
|
+
onModuleInit() {
|
|
86
|
+
this.registry.register([
|
|
87
|
+
defineOperation({
|
|
88
|
+
id: "agents.list",
|
|
89
|
+
description: "List the agents you can see in the org: your own and those shared with the org or with you. Each entry has an id, name, visibility, owner, version and model.",
|
|
90
|
+
input: z.object({}).strict(),
|
|
91
|
+
example: {},
|
|
92
|
+
authz: { orgAction: "agents.use" },
|
|
93
|
+
mirrors: ["GET /api/v1/orgs/:orgId/agents"],
|
|
94
|
+
confirm: "read",
|
|
95
|
+
run: async (_input, ctx) => ({
|
|
96
|
+
agents: (await this.agents.listVisible(ctx.orgId, ctx.actorAccountId)).map(brief),
|
|
97
|
+
}),
|
|
98
|
+
}),
|
|
99
|
+
defineOperation({
|
|
100
|
+
id: "agents.get",
|
|
101
|
+
description: "Read one agent you can see with its full definition: instructions, model, tools, skills and sub-agents. Takes the agent id from agents.list.",
|
|
102
|
+
input: z.object({ agentId: Id }).strict(),
|
|
103
|
+
example: { agentId: "7c1a5b0e-9a53-4c6b-8d64-2f5a1b0c3e77" },
|
|
104
|
+
authz: { orgAction: "agents.use" },
|
|
105
|
+
mirrors: ["GET /api/v1/orgs/:orgId/agents/:agentId"],
|
|
106
|
+
confirm: "read",
|
|
107
|
+
run: async (input, ctx) => asToolError(async () => ({
|
|
108
|
+
agent: await this.agents.get(ctx.orgId, input.agentId, ctx.actorAccountId),
|
|
109
|
+
})),
|
|
110
|
+
}),
|
|
111
|
+
defineOperation({
|
|
112
|
+
id: "agents.create",
|
|
113
|
+
description: "Create a new private agent owned by you, with a name, a model and optionally instructions, tools, skills and sub-agents. Without tools it gets the default ones. Agents created with the Platform tool are private; sharing an agent with the org or with members is done on the agents page of the web app.",
|
|
114
|
+
input: z
|
|
115
|
+
.object({
|
|
116
|
+
definition: z
|
|
117
|
+
.object({
|
|
118
|
+
name: z.string().min(1).max(80),
|
|
119
|
+
instructions: Fields.instructions.optional(),
|
|
120
|
+
model: Fields.model,
|
|
121
|
+
tools: Fields.tools.optional(),
|
|
122
|
+
toolPolicies: Fields.toolPolicies.optional(),
|
|
123
|
+
skills: Fields.skills.optional(),
|
|
124
|
+
subagents: Fields.subagents.optional(),
|
|
125
|
+
})
|
|
126
|
+
.strict(),
|
|
127
|
+
visibility: z.string().max(40).optional(),
|
|
128
|
+
})
|
|
129
|
+
.strict(),
|
|
130
|
+
example: {
|
|
131
|
+
definition: {
|
|
132
|
+
name: "Report writer",
|
|
133
|
+
instructions: "Write clear weekly reports from the notes you are given.",
|
|
134
|
+
model: { provider: "anthropic", model: "claude-sonnet-4-5" },
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
authz: { orgAction: "agents.create" },
|
|
138
|
+
mirrors: ["POST /api/v1/orgs/:orgId/agents"],
|
|
139
|
+
confirm: "personal",
|
|
140
|
+
summary: (i) => ({
|
|
141
|
+
zh: `新建私有智能体「${i.definition.name}」`,
|
|
142
|
+
en: `Create private agent "${i.definition.name}"`,
|
|
143
|
+
}),
|
|
144
|
+
run: async (input, ctx) => {
|
|
145
|
+
if (input.visibility !== undefined && input.visibility !== "private") {
|
|
146
|
+
throw new ToolError(WEB_ONLY);
|
|
147
|
+
}
|
|
148
|
+
const d = input.definition;
|
|
149
|
+
const parsed = AgentDefinitionSchema.omit({ pendingConnectors: true }).parse({
|
|
150
|
+
name: d.name,
|
|
151
|
+
model: d.model,
|
|
152
|
+
tools: d.tools ?? structuredClone(DEFAULT_AGENT_TOOLS),
|
|
153
|
+
...(d.toolPolicies !== undefined && { toolPolicies: d.toolPolicies }),
|
|
154
|
+
...(d.skills !== undefined && { skills: d.skills }),
|
|
155
|
+
...(d.subagents !== undefined && { subagents: d.subagents }),
|
|
156
|
+
});
|
|
157
|
+
return asToolError(() => this.agents.create(ctx.orgId, ctx.actorAccountId, {
|
|
158
|
+
definition: { ...parsed, instructions: d.instructions },
|
|
159
|
+
visibility: "private",
|
|
160
|
+
}, undefined, viaAgent("agents.create", ctx)));
|
|
161
|
+
},
|
|
162
|
+
}),
|
|
163
|
+
defineOperation({
|
|
164
|
+
id: "agents.update",
|
|
165
|
+
description: "Change an agent you may edit: your own, private or shared, and as an org admin any agent of the org. Send the version you read from agents.get and only the fields to change; the others keep their value. A version that is no longer current is refused, so read the agent again first. The visibility cannot be changed here (that is done on the agents page of the web app). A change to your own private agent may be remembered by the person; a change to a shared agent is confirmed every time.",
|
|
166
|
+
input: z
|
|
167
|
+
.object({
|
|
168
|
+
agentId: Id,
|
|
169
|
+
version: z.number().int().positive(),
|
|
170
|
+
name: z.string().min(1).max(80).optional(),
|
|
171
|
+
instructions: Fields.instructions.optional(),
|
|
172
|
+
model: Fields.model.optional(),
|
|
173
|
+
tools: Fields.tools.optional(),
|
|
174
|
+
toolPolicies: Fields.toolPolicies.optional(),
|
|
175
|
+
skills: Fields.skills.optional(),
|
|
176
|
+
subagents: Fields.subagents.optional(),
|
|
177
|
+
})
|
|
178
|
+
.strict(),
|
|
179
|
+
example: {
|
|
180
|
+
agentId: "7c1a5b0e-9a53-4c6b-8d64-2f5a1b0c3e77",
|
|
181
|
+
version: 3,
|
|
182
|
+
instructions: "Write short weekly reports, three bullets at most.",
|
|
183
|
+
},
|
|
184
|
+
authz: { orgAction: "agents.create" },
|
|
185
|
+
mirrors: ["PATCH /api/v1/orgs/:orgId/agents/:agentId"],
|
|
186
|
+
confirm: "personal",
|
|
187
|
+
errors: [
|
|
188
|
+
{
|
|
189
|
+
code: "agent.version_conflict",
|
|
190
|
+
next: "The agent changed since you read it: read it again with agents.get, then send its current version.",
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
confirmFor: (i, ctx) => this.updateClass(i.agentId, ctx),
|
|
194
|
+
summary: async (i, ctx) => {
|
|
195
|
+
const a = await this.agents.get(ctx.orgId, i.agentId, ctx.actorAccountId);
|
|
196
|
+
const name = named(a.definition.name);
|
|
197
|
+
return a.visibility === "private"
|
|
198
|
+
? {
|
|
199
|
+
zh: `修改私有智能体「${name}」(版本 ${i.version})`,
|
|
200
|
+
en: `Update private agent "${name}" (version ${i.version})`,
|
|
201
|
+
}
|
|
202
|
+
: {
|
|
203
|
+
zh: `修改共享智能体「${name}」(版本 ${i.version})`,
|
|
204
|
+
en: `Update shared agent "${name}" (version ${i.version})`,
|
|
205
|
+
};
|
|
206
|
+
},
|
|
207
|
+
run: async (input, ctx) => asToolError(async () => {
|
|
208
|
+
const { agentId, version, ...patch } = input;
|
|
209
|
+
const current = (await this.agents.get(ctx.orgId, agentId, ctx.actorAccountId))
|
|
210
|
+
.definition;
|
|
211
|
+
// the files are the authoring form of the prompt: a new prompt replaces them
|
|
212
|
+
const { instructionFiles, ...base } = current;
|
|
213
|
+
const definition = {
|
|
214
|
+
...(patch.instructions === undefined && instructionFiles !== undefined
|
|
215
|
+
? { ...base, instructionFiles }
|
|
216
|
+
: base),
|
|
217
|
+
...(patch.name !== undefined && { name: patch.name }),
|
|
218
|
+
...(patch.instructions !== undefined && { instructions: patch.instructions }),
|
|
219
|
+
...(patch.model !== undefined && { model: patch.model }),
|
|
220
|
+
...(patch.tools !== undefined && { tools: patch.tools }),
|
|
221
|
+
...(patch.toolPolicies !== undefined && { toolPolicies: patch.toolPolicies }),
|
|
222
|
+
...(patch.skills !== undefined && { skills: patch.skills }),
|
|
223
|
+
...(patch.subagents !== undefined && { subagents: patch.subagents }),
|
|
224
|
+
};
|
|
225
|
+
return this.agents.update(ctx.orgId, agentId, ctx.actorAccountId, { definition, expectedVersion: version }, undefined, viaAgent("agents.update", ctx));
|
|
226
|
+
}),
|
|
227
|
+
}),
|
|
228
|
+
defineOperation({
|
|
229
|
+
id: "agents.preview-from-template",
|
|
230
|
+
description: "Preview creating an agent from an agent template: what carries over, what is pending (connectors the org has not set up) or unavailable, the model that would be used, and a previewHash. agents.create-from-template needs that hash.",
|
|
231
|
+
input: z.object({ templateId: Id }).strict(),
|
|
232
|
+
example: { templateId: "5d0c7a52-3a0e-4f0a-bd0a-0f8c3d2a9e10" },
|
|
233
|
+
authz: { orgAction: "agents.create" },
|
|
234
|
+
mirrors: ["POST /api/v1/orgs/:orgId/agents/from-template/preview"],
|
|
235
|
+
confirm: "read",
|
|
236
|
+
run: async (input, ctx) => asToolError(() => this.fromTemplate.preview(ctx.orgId, input.templateId)),
|
|
237
|
+
}),
|
|
238
|
+
defineOperation({
|
|
239
|
+
id: "agents.create-from-template",
|
|
240
|
+
description: "Create a private agent from an agent template, with the previewHash of agents.preview-from-template; a changed template or org makes the hash stale and the preview must be redone. Connectors the template needs that the org lacks become pending entries and a setup request goes to the org admins. Agents created with the Platform tool are private; sharing an agent with the org or with members is done on the agents page of the web app.",
|
|
241
|
+
input: z
|
|
242
|
+
.object({
|
|
243
|
+
templateId: Id,
|
|
244
|
+
name: z.string().min(1).max(80),
|
|
245
|
+
previewHash: z.string().min(1).max(100),
|
|
246
|
+
model: Model.optional(),
|
|
247
|
+
visibility: z.string().max(40).optional(),
|
|
248
|
+
})
|
|
249
|
+
.strict(),
|
|
250
|
+
example: {
|
|
251
|
+
templateId: "5d0c7a52-3a0e-4f0a-bd0a-0f8c3d2a9e10",
|
|
252
|
+
name: "My triage agent",
|
|
253
|
+
previewHash: `${"0".repeat(64)}.${"0".repeat(16)}`,
|
|
254
|
+
},
|
|
255
|
+
authz: { orgAction: "agents.create" },
|
|
256
|
+
mirrors: ["POST /api/v1/orgs/:orgId/agents/from-template"],
|
|
257
|
+
confirm: "personal",
|
|
258
|
+
errors: [
|
|
259
|
+
{
|
|
260
|
+
code: "agent.template_preview_stale",
|
|
261
|
+
next: "Call agents.preview-from-template again and use its new previewHash.",
|
|
262
|
+
},
|
|
263
|
+
],
|
|
264
|
+
summary: async (i, ctx) => {
|
|
265
|
+
const t = named(await orElse(async () => (await this.orgTemplates.detail(ctx.orgId, i.templateId)).name, i.templateId));
|
|
266
|
+
return {
|
|
267
|
+
zh: `从模板「${t}」新建私有智能体「${named(i.name)}」`,
|
|
268
|
+
en: `Create private agent "${named(i.name)}" from template "${t}"`,
|
|
269
|
+
};
|
|
270
|
+
},
|
|
271
|
+
run: async (input, ctx) => {
|
|
272
|
+
if (input.visibility !== undefined && input.visibility !== "private") {
|
|
273
|
+
throw new ToolError(WEB_ONLY);
|
|
274
|
+
}
|
|
275
|
+
return asToolError(() => this.fromTemplate.create(ctx.orgId, ctx.actorAccountId, {
|
|
276
|
+
templateId: input.templateId,
|
|
277
|
+
name: input.name,
|
|
278
|
+
previewHash: input.previewHash,
|
|
279
|
+
visibility: "private",
|
|
280
|
+
...(input.model !== undefined && { model: input.model }),
|
|
281
|
+
}, undefined, viaAgent("agents.create-from-template", ctx)));
|
|
282
|
+
},
|
|
283
|
+
}),
|
|
284
|
+
]);
|
|
285
|
+
}
|
|
286
|
+
};
|
|
287
|
+
AgentsOperations = __decorate([
|
|
288
|
+
Injectable(),
|
|
289
|
+
__param(0, Inject(PlatformOperations)),
|
|
290
|
+
__param(1, Inject(AgentsService)),
|
|
291
|
+
__param(2, Inject(AgentsFromTemplate)),
|
|
292
|
+
__param(3, Inject(OrgAgentTemplates))
|
|
293
|
+
], AgentsOperations);
|
|
294
|
+
export { AgentsOperations };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type OnModuleInit } from "@nestjs/common";
|
|
2
|
+
import { ComponentScopeService } from "../../catalog/component-scope.service.js";
|
|
3
|
+
import { ConnectorsService } from "../../tools/connectors.service.js";
|
|
4
|
+
import { PlatformOperations } from "../registry.js";
|
|
5
|
+
/**
|
|
6
|
+
* Connector operations of the `Platform` tool (spec §7): read only. Creating a connector or
|
|
7
|
+
* entering a credential stays on the web (a person types credentials, spec §6.4).
|
|
8
|
+
*/
|
|
9
|
+
export declare class ConnectorsOperations implements OnModuleInit {
|
|
10
|
+
private readonly registry;
|
|
11
|
+
private readonly connectors;
|
|
12
|
+
private readonly components;
|
|
13
|
+
constructor(registry: PlatformOperations, connectors: ConnectorsService, components: ComponentScopeService);
|
|
14
|
+
onModuleInit(): void;
|
|
15
|
+
}
|