@capybara-hq/kernel 0.1.0-rc.3 → 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 +47 -16
- package/dist/admin/admin.controller.js +44 -19
- package/dist/admin/extensions.controller.d.ts +24 -3
- package/dist/admin/extensions.controller.js +48 -8
- 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 +19 -0
- package/dist/agents/agent-lookup.js +21 -0
- package/dist/agents/agent-profile.service.d.ts +29 -0
- package/dist/agents/agent-profile.service.js +117 -0
- package/dist/agents/agents.controller.d.ts +168 -3
- package/dist/agents/agents.controller.js +201 -12
- package/dist/agents/agents.module.d.ts +4 -1
- package/dist/agents/agents.module.js +36 -6
- package/dist/agents/agents.service.d.ts +64 -27
- package/dist/agents/agents.service.js +199 -74
- package/dist/agents/definition.d.ts +53 -0
- package/dist/agents/definition.js +55 -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/instruction-files.d.ts +60 -0
- package/dist/agents/instruction-files.js +111 -0
- package/dist/agents/models.controller.d.ts +9 -3
- package/dist/agents/models.controller.js +19 -4
- 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/profile.d.ts +96 -0
- package/dist/agents/profile.js +51 -0
- package/dist/agents/readiness.controller.d.ts +26 -0
- package/dist/agents/readiness.controller.js +56 -0
- package/dist/agents/templates.controller.d.ts +86 -5
- package/dist/agents/templates.controller.js +171 -7
- package/dist/agents/templates.d.ts +127 -23
- package/dist/agents/templates.js +476 -53
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +87 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +94 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +36 -0
- package/dist/background/launch.js +70 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +190 -0
- package/dist/background/render.d.ts +23 -0
- package/dist/background/render.js +48 -0
- package/dist/background/session.d.ts +48 -0
- package/dist/background/session.js +79 -0
- package/dist/background/status.d.ts +35 -0
- package/dist/background/status.js +57 -0
- package/dist/background/stop.d.ts +68 -0
- package/dist/background/stop.js +243 -0
- package/dist/background/store.d.ts +162 -0
- package/dist/background/store.js +357 -0
- package/dist/background/store.module.d.ts +6 -0
- package/dist/background/store.module.js +22 -0
- package/dist/background/tasks.service.d.ts +77 -0
- package/dist/background/tasks.service.js +211 -0
- package/dist/background/wake-rules.d.ts +66 -0
- package/dist/background/wake-rules.js +113 -0
- package/dist/background/wake.d.ts +30 -0
- package/dist/background/wake.js +63 -0
- package/dist/catalog/admin-catalog.controller.d.ts +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/claude/agents.js +2 -0
- 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 +623 -83
- 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 +1148 -1137
- 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 +21 -3
- package/dist/channels/channels.module.js +2 -0
- package/dist/channels/connections.service.d.ts +16 -1
- package/dist/channels/connections.service.js +38 -4
- 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/channels/threads.d.ts +5 -0
- package/dist/channels/threads.js +8 -0
- package/dist/config/docs.js +3 -1
- package/dist/config/schema.d.ts +24 -2
- package/dist/config/schema.js +145 -19
- package/dist/conversations/access.d.ts +6 -4
- package/dist/conversations/access.js +29 -5
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/attachments.service.d.ts +30 -0
- package/dist/conversations/attachments.service.js +130 -5
- package/dist/conversations/conversations.controller.d.ts +79 -23
- package/dist/conversations/conversations.controller.js +141 -50
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +10 -7
- package/dist/conversations/conversations.service.d.ts +108 -9
- package/dist/conversations/conversations.service.js +237 -30
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +21 -6
- package/dist/conversations/event-log.js +70 -1
- package/dist/conversations/events.d.ts +140 -0
- package/dist/conversations/events.js +142 -13
- package/dist/conversations/queue.d.ts +3 -1
- package/dist/conversations/queue.js +13 -2
- package/dist/conversations/queue.service.d.ts +1 -1
- package/dist/conversations/queue.service.js +8 -1
- package/dist/conversations/titles.d.ts +12 -3
- package/dist/conversations/titles.js +36 -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 +420 -20
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +3 -0
- 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 +90 -2
- package/dist/errors.js +90 -2
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +26 -7
- package/dist/evals/run-replay.d.ts +7 -2
- package/dist/evals/run-replay.js +42 -7
- package/dist/evals/step-replay.d.ts +2 -5
- package/dist/evals/step-replay.js +13 -7
- package/dist/evals/trajectory.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 +67 -42
- package/dist/extensions/admin-view.d.ts +39 -10
- package/dist/extensions/admin-view.js +111 -20
- package/dist/extensions/blobs.js +1 -0
- 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-issues.d.ts +13 -1
- package/dist/extensions/config-issues.js +22 -5
- package/dist/extensions/config-json-schema.d.ts +43 -7
- package/dist/extensions/config-json-schema.js +124 -58
- package/dist/extensions/deployment-config-store.d.ts +6 -0
- package/dist/extensions/deployment-config.d.ts +78 -8
- package/dist/extensions/deployment-config.js +172 -34
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +127 -0
- package/dist/extensions/effective-config.js +368 -0
- package/dist/extensions/extensions.module.js +14 -2
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +45 -2
- package/dist/extensions/host.js +112 -16
- package/dist/extensions/installs.d.ts +20 -8
- package/dist/extensions/installs.js +37 -15
- package/dist/extensions/org-config.d.ts +81 -6
- package/dist/extensions/org-config.js +195 -44
- package/dist/extensions/org-levels.d.ts +37 -0
- package/dist/extensions/org-levels.js +71 -0
- package/dist/extensions/org-overrides.d.ts +151 -0
- package/dist/extensions/org-overrides.js +524 -0
- package/dist/extensions/package.d.ts +14 -1
- package/dist/extensions/package.js +51 -2
- package/dist/extensions/permission-view.d.ts +19 -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.controller.d.ts +34 -0
- package/dist/extensions/point-defaults.controller.js +71 -0
- package/dist/extensions/point-defaults.d.ts +71 -0
- package/dist/extensions/point-defaults.js +234 -0
- package/dist/extensions/registry.d.ts +1 -1
- package/dist/extensions/registry.js +2 -0
- 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 +31 -3
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- 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.controller.js +9 -5
- package/dist/identity/auth.guard.d.ts +13 -5
- package/dist/identity/auth.guard.js +26 -9
- package/dist/identity/cookies.d.ts +20 -5
- package/dist/identity/cookies.js +44 -6
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +4 -4
- package/dist/identity/me.controller.d.ts +5 -1
- package/dist/identity/me.controller.js +12 -3
- package/dist/identity/principal.d.ts +3 -3
- package/dist/identity/principal.js +3 -3
- package/dist/identity/sessions.d.ts +12 -0
- package/dist/identity/sessions.js +45 -0
- 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 +2 -2
- package/dist/index.js +1 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +27 -1
- package/dist/infra/database/database.module.js +1 -0
- package/dist/infra/database/xact-lock.d.ts +1 -1
- package/dist/infra/database/xact-lock.js +1 -1
- package/dist/infra/events/kernel-events.d.ts +19 -2
- package/dist/infra/lifecycle/process-guards.js +4 -0
- package/dist/infra/logging/logging.module.d.ts +4 -2
- package/dist/infra/logging/logging.module.js +24 -6
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- package/dist/infra/queue/redis-connection.d.ts +6 -0
- package/dist/infra/queue/redis-connection.js +7 -0
- package/dist/infra/redis/redis.module.js +6 -2
- package/dist/infra/tokens.d.ts +6 -1
- package/dist/infra/tokens.js +6 -1
- 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/log.d.ts +13 -1
- package/dist/log.js +93 -17
- 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 +43 -9
- package/dist/models/purposes.js +48 -18
- package/dist/orgs/directory-sync.d.ts +14 -5
- package/dist/orgs/directory-sync.js +41 -17
- package/dist/orgs/offboarding.d.ts +12 -8
- package/dist/orgs/offboarding.js +54 -33
- package/dist/orgs/org-lock.d.ts +5 -0
- package/dist/orgs/org-lock.js +13 -0
- package/dist/orgs/org.guard.d.ts +10 -0
- package/dist/orgs/org.guard.js +43 -32
- package/dist/orgs/orgs.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 +20 -3
- package/dist/orgs/settings.service.js +19 -4
- 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 +15 -1
- package/dist/runtime/context/build.d.ts +11 -7
- package/dist/runtime/context/build.js +46 -19
- package/dist/runtime/context/claude-tools.d.ts +3 -1
- package/dist/runtime/context/claude-tools.js +8 -6
- package/dist/runtime/context/compaction.js +13 -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 +36 -17
- package/dist/runtime/loop.d.ts +34 -5
- package/dist/runtime/maintenance.d.ts +9 -4
- package/dist/runtime/maintenance.js +35 -8
- package/dist/runtime/model-call.d.ts +46 -8
- package/dist/runtime/model-call.js +72 -21
- package/dist/runtime/providers.d.ts +6 -0
- package/dist/runtime/providers.js +8 -0
- package/dist/runtime/run-control.d.ts +11 -1
- package/dist/runtime/run-control.js +12 -0
- package/dist/runtime/run-drafts.d.ts +85 -0
- package/dist/runtime/run-drafts.js +230 -0
- package/dist/runtime/run-jobs.d.ts +3 -5
- package/dist/runtime/run-jobs.js +3 -7
- package/dist/runtime/run-queue.d.ts +59 -2
- package/dist/runtime/run-queue.js +311 -38
- package/dist/runtime/run-worker.d.ts +11 -5
- package/dist/runtime/run-worker.js +69 -33
- package/dist/runtime/runtime.module.js +11 -3
- package/dist/runtime/step-log.d.ts +15 -4
- package/dist/runtime/step-log.js +24 -7
- package/dist/runtime/stream.controller.d.ts +23 -1
- package/dist/runtime/stream.controller.js +60 -3
- package/dist/runtime/stream.d.ts +4 -1
- package/dist/runtime/stream.js +27 -3
- package/dist/runtime/subagents/child.d.ts +55 -7
- package/dist/runtime/subagents/child.js +105 -7
- package/dist/runtime/subagents/definition.d.ts +12 -3
- package/dist/runtime/subagents/definition.js +44 -28
- 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.d.ts +2 -1
- package/dist/runtime/usage-report.js +19 -13
- package/dist/runtime/waits.d.ts +145 -36
- package/dist/runtime/waits.js +423 -109
- 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 +10 -4
- package/dist/sandbox/sandbox.service.d.ts +282 -129
- package/dist/sandbox/sandbox.service.js +736 -381
- 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 +25 -4
- package/dist/tools/builtin-names.d.ts +41 -7
- package/dist/tools/builtin-names.js +59 -7
- 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 +19 -1
- package/dist/tools/builtins/builtin-tools.js +59 -2
- 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.d.ts +1 -1
- package/dist/tools/builtins/sandbox/bash.js +241 -4
- package/dist/tools/builtins/sandbox/common.d.ts +69 -27
- package/dist/tools/builtins/sandbox/common.js +87 -48
- package/dist/tools/builtins/sandbox/deliver.js +1 -1
- 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 +3 -1
- package/dist/tools/builtins/sandbox/index.js +7 -1
- package/dist/tools/builtins/sandbox/read.js +1 -1
- package/dist/tools/builtins/sandbox/task-output.d.ts +74 -0
- package/dist/tools/builtins/sandbox/task-output.js +329 -0
- package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
- package/dist/tools/builtins/sandbox/task-stop.js +113 -0
- package/dist/tools/builtins/sandbox/write.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/errors.d.ts +8 -0
- package/dist/tools/builtins/web/errors.js +53 -0
- package/dist/tools/builtins/web/extract.d.ts +62 -0
- package/dist/tools/builtins/web/extract.js +271 -0
- package/dist/tools/builtins/web/fetch.d.ts +55 -0
- package/dist/tools/builtins/web/fetch.js +175 -0
- package/dist/tools/builtins/web/index.d.ts +13 -0
- package/dist/tools/builtins/web/index.js +12 -0
- package/dist/tools/builtins/web/page-cache.d.ts +25 -0
- package/dist/tools/builtins/web/page-cache.js +77 -0
- package/dist/tools/builtins/web/search.d.ts +25 -0
- package/dist/tools/builtins/web/search.js +210 -0
- package/dist/tools/builtins/web/url.d.ts +17 -0
- package/dist/tools/builtins/web/url.js +43 -0
- package/dist/tools/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/oauth/flow-paths.d.ts +1 -1
- package/dist/tools/oauth/flow-paths.js +1 -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 +202 -364
- package/dist/tools/policy.d.ts +1 -1
- package/dist/tools/policy.js +36 -16
- package/dist/tools/registry.d.ts +120 -8
- package/dist/tools/registry.js +112 -19
- package/dist/tools/tools.module.js +24 -2
- package/dist/tools/validate.js +1 -1
- package/dist/ui/views.d.ts +2 -1
- package/dist/ui/views.js +17 -3
- package/package.json +3 -3
- package/src/migrations/0064_account_last_org.sql +7 -0
- package/src/migrations/0065_conversation_archive.sql +8 -0
- package/src/migrations/0066_extension_display_name.sql +4 -0
- package/src/migrations/0067_agent_profiles.sql +20 -0
- package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
- package/src/migrations/0069_attachments_agent_idx.sql +3 -0
- package/src/migrations/0070_background_tasks.sql +37 -0
- package/src/migrations/0071_background_tasks_reserve.sql +6 -0
- package/src/migrations/0072_background_tasks_stopping.sql +5 -0
- package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
- package/src/migrations/0074_subagent_tree.sql +50 -0
- package/src/migrations/0075_plugin_scope.sql +61 -0
- package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
- package/src/migrations/0077_scope_requests.sql +52 -0
- package/src/migrations/0078_scope_grant_switches.sql +18 -0
- package/src/migrations/0079_scope_live_install_switches.sql +19 -0
- package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
- package/src/migrations/0081_platform_components.sql +129 -0
- package/src/migrations/0082_platform_migration.sql +33 -0
- package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
- package/src/migrations/0084_org_owned_items.sql +85 -0
- package/src/migrations/0085_agent_templates_phase4.sql +45 -0
- package/src/migrations/0086_org_layering.sql +30 -0
- package/src/migrations/0087_approval_summary.sql +6 -0
- package/src/migrations/0088_environments.sql +80 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -56
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -24
- package/dist/conversations/sandbox-status.js +0 -52
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -62
|
@@ -7,30 +7,61 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
8
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
9
|
};
|
|
10
|
-
import {
|
|
10
|
+
import { hasControlChars, MEDIA_NAME_MAX_CHARS } from "@capybara-hq/plugin-sdk";
|
|
11
|
+
import { Controller, Delete, Get, HttpCode, Inject, Param, Patch, Post, Res } from "@nestjs/common";
|
|
11
12
|
import { z } from "zod";
|
|
13
|
+
import { AGENT_AVATAR_CONTENT_TYPES, AGENT_AVATAR_DOWNLOAD_TTL_SECONDS, AGENT_AVATAR_MAX_BYTES, AttachmentsService, } from "../conversations/attachments.service.js";
|
|
14
|
+
import { ApiError } from "../errors.js";
|
|
12
15
|
import { CurrentPrincipal, patTokenId, requireUser, } from "../identity/principal.js";
|
|
13
16
|
import { createZodDto } from "../infra/validation/create-zod-dto.js";
|
|
14
17
|
import { ZBody } from "../infra/validation/zod-params.js";
|
|
15
18
|
import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
|
|
19
|
+
import { AgentProfileService } from "./agent-profile.service.js";
|
|
16
20
|
import { AGENT_VISIBILITIES, AgentsService, } from "./agents.service.js";
|
|
17
|
-
import { AgentDefinitionSchema, AgentToolRef, DEFAULT_AGENT_TOOLS } from "./definition.js";
|
|
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";
|
|
18
24
|
const MemberIds = z.array(z.string().min(1).max(100)).max(1000);
|
|
19
25
|
const OwnerBody = z.object({ accountId: z.string().min(1).max(100) }).strict();
|
|
20
26
|
/** 创建时未给 `tools` → 默认工具(Ruling P7);修改请求不注入默认值,版本里总是存显式的 tools。 */
|
|
21
|
-
|
|
27
|
+
/**
|
|
28
|
+
* `instructions` has no default in a request: with `instructionFiles` the kernel derives it, and a
|
|
29
|
+
* new agent given neither gets the `AGENTS.md` starter (`deriveInstructions`).
|
|
30
|
+
*/
|
|
31
|
+
const RequestInstructions = z.string().max(100_000).optional();
|
|
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({
|
|
34
|
+
instructions: RequestInstructions,
|
|
22
35
|
tools: z.array(AgentToolRef).default(() => structuredClone(DEFAULT_AGENT_TOOLS)),
|
|
23
36
|
});
|
|
37
|
+
const UpdateDefinition = AgentDefinitionSchema.extend({ instructions: RequestInstructions });
|
|
24
38
|
const CreateBody = z
|
|
25
39
|
.object({
|
|
26
40
|
definition: CreateDefinition,
|
|
27
41
|
visibility: z.enum(AGENT_VISIBILITIES),
|
|
28
42
|
memberIds: MemberIds.optional(),
|
|
43
|
+
/** Without an avatar the agent gets a random preset. */
|
|
44
|
+
profile: ProfileInputSchema.optional(),
|
|
45
|
+
})
|
|
46
|
+
.strict();
|
|
47
|
+
const ProfileBody = ProfileInputSchema.extend({
|
|
48
|
+
/** The `profile.updatedAt` the client read; a different one → 409 `agent.profile_conflict`. */
|
|
49
|
+
expectedUpdatedAt: z.string().min(1).max(40),
|
|
50
|
+
}).strict();
|
|
51
|
+
const AvatarUploadBody = z
|
|
52
|
+
.object({
|
|
53
|
+
name: z
|
|
54
|
+
.string()
|
|
55
|
+
.min(1)
|
|
56
|
+
.max(MEDIA_NAME_MAX_CHARS)
|
|
57
|
+
.refine((s) => !hasControlChars(s), "name must not contain control characters"),
|
|
58
|
+
contentType: z.enum(AGENT_AVATAR_CONTENT_TYPES),
|
|
59
|
+
size: z.number().int().min(1).max(AGENT_AVATAR_MAX_BYTES),
|
|
29
60
|
})
|
|
30
61
|
.strict();
|
|
31
62
|
const UpdateBody = z
|
|
32
63
|
.object({
|
|
33
|
-
definition:
|
|
64
|
+
definition: UpdateDefinition.optional(),
|
|
34
65
|
visibility: z.enum(AGENT_VISIBILITIES).optional(),
|
|
35
66
|
memberIds: MemberIds.optional(),
|
|
36
67
|
/**
|
|
@@ -40,22 +71,89 @@ const UpdateBody = z
|
|
|
40
71
|
expectedVersion: z.number().int().positive().optional(),
|
|
41
72
|
})
|
|
42
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();
|
|
43
95
|
/** 服务令牌没有账号:以 null 作为 viewer,只看到 visibility='org' 的 agent。 */
|
|
44
96
|
const viewerOf = (p) => (p.kind === "user" ? p.account.id : null);
|
|
45
97
|
class AgentCreateBodyDto extends createZodDto(CreateBody, "AgentCreateBody") {
|
|
46
98
|
}
|
|
47
99
|
class AgentUpdateBodyDto extends createZodDto(UpdateBody, "AgentUpdateBody") {
|
|
48
100
|
}
|
|
101
|
+
class AgentProfileBodyDto extends createZodDto(ProfileBody, "AgentProfileBody") {
|
|
102
|
+
}
|
|
103
|
+
class AgentAvatarUploadBodyDto extends createZodDto(AvatarUploadBody, "AgentAvatarUploadBody") {
|
|
104
|
+
}
|
|
49
105
|
class AgentOwnerBodyDto extends createZodDto(OwnerBody, "AgentOwnerBody") {
|
|
50
106
|
}
|
|
107
|
+
class AgentFromTemplatePreviewBodyDto extends createZodDto(FromTemplatePreviewBody, "AgentFromTemplatePreviewBody") {
|
|
108
|
+
}
|
|
109
|
+
class AgentFromTemplateBodyDto extends createZodDto(FromTemplateBody, "AgentFromTemplateBody") {
|
|
110
|
+
}
|
|
51
111
|
/**
|
|
52
112
|
* Agent 定义(`/api/v1/orgs/:orgId/agents`)。读用 `agents.use`(访客与服务令牌可用),
|
|
53
113
|
* 写用 `agents.create`(member 以上、HUMAN_ONLY),修改 / 删除的负责人或管理员判定在服务的组织行锁内完成。
|
|
54
114
|
*/
|
|
55
115
|
let AgentsController = class AgentsController {
|
|
56
116
|
agents;
|
|
57
|
-
|
|
117
|
+
profiles;
|
|
118
|
+
attachments;
|
|
119
|
+
fromTemplate;
|
|
120
|
+
constructor(agents, profiles, attachments, fromTemplate) {
|
|
58
121
|
this.agents = agents;
|
|
122
|
+
this.profiles = profiles;
|
|
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) };
|
|
59
157
|
}
|
|
60
158
|
async create(principal, org, body) {
|
|
61
159
|
const p = requireUser(principal);
|
|
@@ -63,17 +161,68 @@ let AgentsController = class AgentsController {
|
|
|
63
161
|
definition: body.definition,
|
|
64
162
|
visibility: body.visibility,
|
|
65
163
|
...(body.memberIds !== undefined && { memberIds: body.memberIds }),
|
|
164
|
+
...(body.profile !== undefined && { profile: body.profile }),
|
|
66
165
|
}, patTokenId(p));
|
|
67
166
|
}
|
|
68
167
|
async list(principal, org) {
|
|
69
|
-
|
|
168
|
+
const agents = await this.agents.listVisible(org.orgId, viewerOf(principal));
|
|
169
|
+
return { agents: await this.agents.withTemplateLinks(org.orgId, agents) };
|
|
70
170
|
}
|
|
71
171
|
async get(principal, org, agentId) {
|
|
72
|
-
return {
|
|
172
|
+
return {
|
|
173
|
+
agent: await this.linked(org.orgId, await this.agents.get(org.orgId, agentId, viewerOf(principal))),
|
|
174
|
+
};
|
|
73
175
|
}
|
|
74
176
|
async update(principal, org, agentId, body) {
|
|
75
177
|
const p = requireUser(principal);
|
|
76
|
-
|
|
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) };
|
|
180
|
+
}
|
|
181
|
+
/** Display data only: no agent version. Same permission as `PATCH :agentId`. */
|
|
182
|
+
async updateProfile(principal, org, agentId, body) {
|
|
183
|
+
const p = requireUser(principal);
|
|
184
|
+
const { expectedUpdatedAt, ...patch } = body;
|
|
185
|
+
return {
|
|
186
|
+
profile: await this.profiles.update(org.orgId, agentId, p.account.id, patch, expectedUpdatedAt, patTokenId(p)),
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Registers an avatar image upload (presigned, like chat attachments and skill packages): the
|
|
191
|
+
* browser uploads straight to the object store, then saves `{ kind: "upload", uploadId }` with
|
|
192
|
+
* the profile PATCH, which finalizes it. 503 `storage.unavailable` without an object store.
|
|
193
|
+
*/
|
|
194
|
+
async createAvatarUpload(principal, org, agentId, body) {
|
|
195
|
+
const p = requireUser(principal);
|
|
196
|
+
// the agent must exist and be visible to the caller (writing is checked when it is saved)
|
|
197
|
+
await this.agents.get(org.orgId, agentId, viewerOf(p));
|
|
198
|
+
return this.attachments.create(org.orgId, p.account.id, body, "agent-avatar");
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* The avatar image: 302 to a short-lived presigned URL for an upload avatar, or to the stored
|
|
202
|
+
* URL of an external avatar when it is https; 404 for presets, no avatar, or an agent the
|
|
203
|
+
* reader cannot see.
|
|
204
|
+
*/
|
|
205
|
+
async avatar(principal, org, agentId, reply) {
|
|
206
|
+
const view = await this.agents.get(org.orgId, agentId, viewerOf(principal));
|
|
207
|
+
const avatar = view.profile.avatar;
|
|
208
|
+
let location = null;
|
|
209
|
+
if (avatar?.kind === "upload") {
|
|
210
|
+
location = await this.attachments.agentAvatarUrl(org.orgId, agentId, avatar.uploadId);
|
|
211
|
+
}
|
|
212
|
+
else if (avatar?.kind === "external") {
|
|
213
|
+
try {
|
|
214
|
+
if (new URL(avatar.url).protocol === "https:")
|
|
215
|
+
location = avatar.url;
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
// a malformed migrated URL: no image
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
if (location === null)
|
|
222
|
+
throw new ApiError("agent.not_found", "The agent has no avatar image");
|
|
223
|
+
await reply
|
|
224
|
+
.header("cache-control", `private, max-age=${Math.floor(AGENT_AVATAR_DOWNLOAD_TTL_SECONDS / 5)}`)
|
|
225
|
+
.redirect(location, 302);
|
|
77
226
|
}
|
|
78
227
|
async remove(principal, org, agentId) {
|
|
79
228
|
const p = requireUser(principal);
|
|
@@ -82,15 +231,28 @@ let AgentsController = class AgentsController {
|
|
|
82
231
|
/** 重新指派负责人(admin,如负责人离职后);清除 `needsReassignment`。 */
|
|
83
232
|
async reassign(principal, org, agentId, body) {
|
|
84
233
|
const p = requireUser(principal);
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
};
|
|
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) };
|
|
88
236
|
}
|
|
89
237
|
async versions(principal, org, agentId) {
|
|
90
238
|
await this.agents.get(org.orgId, agentId, viewerOf(principal));
|
|
91
239
|
return { versions: await this.agents.listVersions(agentId) };
|
|
92
240
|
}
|
|
93
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);
|
|
94
256
|
__decorate([
|
|
95
257
|
Post(),
|
|
96
258
|
OrgAction("agents.create"),
|
|
@@ -119,6 +281,30 @@ __decorate([
|
|
|
119
281
|
__param(2, Param("agentId")),
|
|
120
282
|
__param(3, ZBody(AgentUpdateBodyDto))
|
|
121
283
|
], AgentsController.prototype, "update", null);
|
|
284
|
+
__decorate([
|
|
285
|
+
Patch(":agentId/profile"),
|
|
286
|
+
OrgAction("agents.create"),
|
|
287
|
+
__param(0, CurrentPrincipal()),
|
|
288
|
+
__param(1, CurrentOrg()),
|
|
289
|
+
__param(2, Param("agentId")),
|
|
290
|
+
__param(3, ZBody(AgentProfileBodyDto))
|
|
291
|
+
], AgentsController.prototype, "updateProfile", null);
|
|
292
|
+
__decorate([
|
|
293
|
+
Post(":agentId/avatar/uploads"),
|
|
294
|
+
OrgAction("agents.create"),
|
|
295
|
+
__param(0, CurrentPrincipal()),
|
|
296
|
+
__param(1, CurrentOrg()),
|
|
297
|
+
__param(2, Param("agentId")),
|
|
298
|
+
__param(3, ZBody(AgentAvatarUploadBodyDto))
|
|
299
|
+
], AgentsController.prototype, "createAvatarUpload", null);
|
|
300
|
+
__decorate([
|
|
301
|
+
Get(":agentId/avatar"),
|
|
302
|
+
OrgAction("agents.use"),
|
|
303
|
+
__param(0, CurrentPrincipal()),
|
|
304
|
+
__param(1, CurrentOrg()),
|
|
305
|
+
__param(2, Param("agentId")),
|
|
306
|
+
__param(3, Res())
|
|
307
|
+
], AgentsController.prototype, "avatar", null);
|
|
122
308
|
__decorate([
|
|
123
309
|
Delete(":agentId"),
|
|
124
310
|
HttpCode(204),
|
|
@@ -145,6 +331,9 @@ __decorate([
|
|
|
145
331
|
], AgentsController.prototype, "versions", null);
|
|
146
332
|
AgentsController = __decorate([
|
|
147
333
|
Controller("api/v1/orgs/:orgId/agents"),
|
|
148
|
-
__param(0, Inject(AgentsService))
|
|
334
|
+
__param(0, Inject(AgentsService)),
|
|
335
|
+
__param(1, Inject(AgentProfileService)),
|
|
336
|
+
__param(2, Inject(AttachmentsService)),
|
|
337
|
+
__param(3, Inject(AgentsFromTemplate))
|
|
149
338
|
], AgentsController);
|
|
150
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 {
|
|
@@ -5,18 +5,28 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { Module } from "@nestjs/common";
|
|
8
|
+
import { AttachmentsModule } from "../conversations/attachments.module.js";
|
|
8
9
|
import { EvalBudgetModule } from "../evals/budget.js";
|
|
10
|
+
import { ExtensionsModule } from "../extensions/extensions.module.js";
|
|
11
|
+
import { ModelsModule } from "../models/models.module.js";
|
|
9
12
|
import { OrgLockModule } from "../orgs/org-lock.js";
|
|
10
13
|
import { ProvidersModule } from "../runtime/providers.js";
|
|
11
|
-
import { SandboxModule } from "../sandbox/sandbox.module.js";
|
|
12
14
|
import { SkillsModule } from "../skills/skills.module.js";
|
|
13
15
|
import { ToolsModule } from "../tools/tools.module.js";
|
|
14
16
|
import { AgentLookupModule } from "./agent-lookup.js";
|
|
17
|
+
import { AgentProfileService } from "./agent-profile.service.js";
|
|
15
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";
|
|
16
23
|
import { AgentTemplatesService } from "./templates.js";
|
|
17
24
|
/**
|
|
18
25
|
* Agents: the one {@link AgentsService} (definitions, versions, visibility; writes under the org
|
|
19
|
-
* 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
|
|
20
30
|
* (re-exported), which the conversations and the skill invoker use without this module.
|
|
21
31
|
*/
|
|
22
32
|
let AgentsModule = class AgentsModule {
|
|
@@ -25,17 +35,37 @@ AgentsModule = __decorate([
|
|
|
25
35
|
Module({
|
|
26
36
|
imports: [
|
|
27
37
|
AgentLookupModule,
|
|
38
|
+
// avatar uploads
|
|
39
|
+
AttachmentsModule,
|
|
28
40
|
OrgLockModule,
|
|
29
41
|
ProvidersModule,
|
|
30
42
|
SkillsModule,
|
|
31
43
|
ToolsModule,
|
|
32
|
-
// the producer of sandbox-destroy-for jobs after a delete
|
|
33
|
-
SandboxModule,
|
|
34
44
|
// cancels the deleted agent's eval runs
|
|
35
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,
|
|
36
68
|
],
|
|
37
|
-
providers: [AgentsService, AgentTemplatesService],
|
|
38
|
-
exports: [AgentLookupModule, AgentsService, AgentTemplatesService],
|
|
39
69
|
})
|
|
40
70
|
], AgentsModule);
|
|
41
71
|
export { AgentsModule };
|
|
@@ -2,14 +2,16 @@ 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";
|
|
12
|
+
import { type AgentDefinitionInput } from "./instruction-files.js";
|
|
13
|
+
import { PendingConnectorRequests } from "./pending-connector-requests.js";
|
|
14
|
+
import { type ProfileInput } from "./profile.js";
|
|
13
15
|
export { AGENT_VISIBILITIES, type AgentView, type AgentVisibility, isAgentVisibleTo, visibleTo, } from "./agent-lookup.js";
|
|
14
16
|
export { paramIssues, SUBAGENT_ROSTER_MAX } from "./definition.js";
|
|
15
17
|
export interface AgentVersion {
|
|
@@ -21,14 +23,31 @@ export interface AgentVersion {
|
|
|
21
23
|
export type AgentVersionSummary = Omit<AgentVersion, "definition">;
|
|
22
24
|
/** 创建 / 修改的提示(不拒绝):`fallback_same_provider` = 兜底与主模型同一供应商(spec 4.5)。 */
|
|
23
25
|
export type AgentWarning = "fallback_same_provider";
|
|
26
|
+
/** A new agent has no id to bind an upload to yet: a client can only choose a preset on create. */
|
|
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
|
+
}
|
|
24
41
|
/** Why a `subagents` block is refused (`agent.subagents_invalid` details). */
|
|
25
42
|
export type SubagentsProblem = "not_found" | "invalid_name" | "duplicate" | "tool_not_selected" | "skill_not_selected" | "agent_not_available" | "self" | "too_many";
|
|
26
43
|
/**
|
|
27
44
|
* Checks `subagents` of an agent definition in the caller's transaction (spec §5.2); throws 400
|
|
28
45
|
* `agent.subagents_invalid` with one detail per problem (`{ reason, path, value? }`):
|
|
29
|
-
* - `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);
|
|
30
48
|
* - `invalid_name`: an inline name or `agents[].as` outside {@link SUBAGENT_NAME_RE}, or
|
|
31
|
-
* `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`);
|
|
32
51
|
* - `tool_not_selected`: an inline template's `tools`, `disallowedTools` or `toolPolicies` key that
|
|
33
52
|
* is not a tool key of this agent (`toolKeys`, from `ToolRegistry.checkRefs`);
|
|
34
53
|
* - `skill_not_selected`: an inline skill id that is neither in `skills.orgSkills` nor a live
|
|
@@ -63,29 +82,22 @@ export declare class AgentsService {
|
|
|
63
82
|
private readonly orgLock;
|
|
64
83
|
/** Resolves the agent's models (and their parameter declarations) when it is saved. */
|
|
65
84
|
private readonly providers;
|
|
66
|
-
/**
|
|
67
|
-
* The sandbox destruction after a delete (内核投递一次性维护任务 `sandbox-destroy-for`,worker
|
|
68
|
-
* 在锁内逐个销毁,幂等).
|
|
69
|
-
*/
|
|
70
|
-
private readonly sandboxJobs;
|
|
71
|
-
private readonly log;
|
|
72
85
|
readonly txHost: TransactionHost;
|
|
73
86
|
/** Cancels the deleted agent's running eval runs (in the delete's transaction). */
|
|
74
87
|
private readonly evalBudget;
|
|
88
|
+
/** Settles the agent's connector setup request when its pending connectors change (P4-7). */
|
|
89
|
+
private readonly setupRequests;
|
|
75
90
|
constructor(db: KernelDb, lookup: AgentLookup, tools: Pick<ToolRegistry, "checkRefs">,
|
|
76
91
|
/** 删除 agent 时取消它待处理的技能改动(T15)。 */
|
|
77
92
|
skillChanges: Pick<SkillChangesService, "cancelPendingForAgent" | "finishCancel">,
|
|
78
93
|
/** The org row lock (orgs/org-lock.ts): joins the caller's transaction. */
|
|
79
94
|
orgLock: Pick<OrgLock, "lockAndAuthorize">,
|
|
80
95
|
/** Resolves the agent's models (and their parameter declarations) when it is saved. */
|
|
81
|
-
providers: Pick<ProviderRegistry, "resolve">,
|
|
82
|
-
/**
|
|
83
|
-
* The sandbox destruction after a delete (内核投递一次性维护任务 `sandbox-destroy-for`,worker
|
|
84
|
-
* 在锁内逐个销毁,幂等).
|
|
85
|
-
*/
|
|
86
|
-
sandboxJobs: Pick<SandboxJobs, "destroy">, log: Pick<KernelLogger, "warn">, txHost: TransactionHost,
|
|
96
|
+
providers: Pick<ProviderRegistry, "resolve">, txHost: TransactionHost,
|
|
87
97
|
/** Cancels the deleted agent's running eval runs (in the delete's transaction). */
|
|
88
|
-
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">);
|
|
89
101
|
/**
|
|
90
102
|
* 校验工具引用与工具策略:引用的内置 / 插件 / 连接器工具必须存在(见 `ToolRegistry.checkRefs`);
|
|
91
103
|
* `toolPolicies` 的键必须是这些引用产生的工具 key(取值只能收紧,已由 schema 保证)。
|
|
@@ -104,26 +116,48 @@ export declare class AgentsService {
|
|
|
104
116
|
* 新建 agent(版本 1):在组织行锁内授权 `agents.create`;主模型与兜底都必须可解析
|
|
105
117
|
* (`agent.model_unavailable`);兜底与主模型同一供应商只提示 `fallback_same_provider`。
|
|
106
118
|
*/
|
|
107
|
-
create(orgId: string, actorAccountId: string,
|
|
108
|
-
definition:
|
|
119
|
+
create(orgId: string, actorAccountId: string, request: {
|
|
120
|
+
definition: AgentDefinitionInput;
|
|
109
121
|
visibility: AgentVisibility;
|
|
110
122
|
memberIds?: string[];
|
|
111
|
-
|
|
123
|
+
profile?: ProfileInput;
|
|
124
|
+
}, actorTokenId?: string, auditDetail?: Record<string, unknown>): Promise<{
|
|
112
125
|
agent: AgentView;
|
|
113
126
|
warnings: AgentWarning[];
|
|
114
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;
|
|
115
146
|
private createIn;
|
|
116
147
|
/**
|
|
117
148
|
* 锁组织行并复核发起人,再锁 agent 行:发起人须仍具备 `agents.create`(member 以上),且是负责人或组织管理员以上;
|
|
118
149
|
* 对发起人不可见的 agent(非管理员)→ `agent.not_found`,可见但无权 → `forbidden`。
|
|
119
150
|
*/
|
|
120
|
-
|
|
151
|
+
lockForWrite(orgId: string, agentId: string, actorAccountId: string): Promise<{
|
|
152
|
+
visibility: AgentVisibility;
|
|
153
|
+
current_version: number;
|
|
154
|
+
}>;
|
|
121
155
|
/**
|
|
122
156
|
* 修改 agent:`definition` 变化时写新版本(`current_version + 1`),只改 visibility / memberIds 不产生新版本。
|
|
123
157
|
* 只有负责人或组织管理员以上可改,在组织行锁内复核。
|
|
124
158
|
*/
|
|
125
|
-
update(orgId: string, agentId: string, actorAccountId: string,
|
|
126
|
-
definition?:
|
|
159
|
+
update(orgId: string, agentId: string, actorAccountId: string, request: {
|
|
160
|
+
definition?: AgentDefinitionInput | undefined;
|
|
127
161
|
visibility?: AgentVisibility | undefined;
|
|
128
162
|
memberIds?: string[] | undefined;
|
|
129
163
|
/**
|
|
@@ -131,7 +165,7 @@ export declare class AgentsService {
|
|
|
131
165
|
* 不产生新版本,所以检测不到别人只改了可见范围(之后的保存会按本次给出的 visibility 覆盖)。
|
|
132
166
|
*/
|
|
133
167
|
expectedVersion?: number | undefined;
|
|
134
|
-
}, actorTokenId?: string): Promise<{
|
|
168
|
+
}, actorTokenId?: string, auditDetail?: Record<string, unknown>): Promise<{
|
|
135
169
|
agent: AgentView;
|
|
136
170
|
warnings: AgentWarning[];
|
|
137
171
|
}>;
|
|
@@ -139,14 +173,17 @@ export declare class AgentsService {
|
|
|
139
173
|
/** 软删除:权限同 update。待处理的技能改动与该 agent 评测集在执行的评测运行一并取消,提交后删除草稿(T15)。 */
|
|
140
174
|
softDelete(orgId: string, agentId: string, actorAccountId: string, actorTokenId?: string): Promise<void>;
|
|
141
175
|
private softDeleteIn;
|
|
142
|
-
/** 提交后尽力而为:投递销毁这个 agent 各对话还没销毁的沙箱(失败只记日志,留给不活跃销毁扫描)。 */
|
|
143
|
-
private destroySandboxes;
|
|
144
176
|
/**
|
|
145
177
|
* 重新指派负责人(`agents.manage`,admin):在组织行锁内授权;agent 不存在 / 已删除 → `agent.not_found`;
|
|
146
178
|
* 新负责人不是该组织成员 → `member.not_found`;是匿名访客 → `member.anonymous_guest`。
|
|
147
179
|
* 清除 `needs_reassignment`,审计 `agent.owner_changed`。
|
|
148
180
|
*/
|
|
149
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[]>;
|
|
150
187
|
/** 取对 viewer 可见的 agent;`viewerAccountId = null` 表示该组织的服务令牌。不可见 → `agent.not_found`。 */
|
|
151
188
|
get(orgId: string, agentId: string, viewerAccountId: string | null): Promise<AgentView>;
|
|
152
189
|
/** 组织内对 viewer 可见的全部 agent(按创建时间)。 */
|