@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
|
@@ -0,0 +1,228 @@
|
|
|
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 { sql } from "kysely";
|
|
12
|
+
import { EventLog } from "../../conversations/event-log.js";
|
|
13
|
+
import { afterCommit } from "../../infra/database/after-commit.js";
|
|
14
|
+
import { KernelDb } from "../../infra/database/kernel-db.js";
|
|
15
|
+
import { TransactionHost } from "../../infra/database/transaction-host.js";
|
|
16
|
+
import { Transactional } from "../../infra/database/transactional.decorator.js";
|
|
17
|
+
import { KernelEvents } from "../../infra/events/kernel-events.js";
|
|
18
|
+
import { KERNEL_LOGGER } from "../../infra/tokens.js";
|
|
19
|
+
import { TERMINAL_STATUSES } from "../run-finish.js";
|
|
20
|
+
import { childResult, deliveryRowOfChildRun, finishedEvent } from "./child.js";
|
|
21
|
+
import { dispatchedIdemKey } from "./dispatch.js";
|
|
22
|
+
/** Idempotency key of a child run's finished delivery (one per child run). */
|
|
23
|
+
export const finishedDeliveryIdemKey = (childRunId) => `subagent_delivery:${childRunId}:finished`;
|
|
24
|
+
/** The longest `subagent_delivery.text` (the event schema's bound). */
|
|
25
|
+
const DELIVERY_TEXT_MAX = 200_000;
|
|
26
|
+
/**
|
|
27
|
+
* Deliveries from a sub-agent to its parent conversation (agent map spec §4.5, §5.2): each is one
|
|
28
|
+
* model-visible, absorbable `subagent_delivery` event in the parent's log. A parent run that is
|
|
29
|
+
* active absorbs it at its next model call; an idle parent is woken from the `subagent.delivered`
|
|
30
|
+
* domain event (emitted after the commit, with the log's notify).
|
|
31
|
+
*
|
|
32
|
+
* A background child's run reaching a terminal state ({@link childFinished}) writes the
|
|
33
|
+
* display-only `subagent_finished` and a `finished` delivery in one transaction, both idempotent by
|
|
34
|
+
* the child run, so of two finishers (the worker and a stop, the orphan sweep) exactly one writes
|
|
35
|
+
* them. A run that handed back a report and then completed writes no delivery (acceptance
|
|
36
|
+
* 2026-11-07): the report already told the parent everything, and a content-free "completed" line
|
|
37
|
+
* only woke an idle parent for nothing and pushed the report away from the end of its request. Fork invocations (phase D, `for_skill`) do not deliver: their parent run waits on the child
|
|
38
|
+
* and writes the report itself (`advanceSkillForks`).
|
|
39
|
+
*/
|
|
40
|
+
let SubagentDeliveries = class SubagentDeliveries {
|
|
41
|
+
kdb;
|
|
42
|
+
eventLog;
|
|
43
|
+
events;
|
|
44
|
+
log;
|
|
45
|
+
txHost;
|
|
46
|
+
constructor(kdb, eventLog, events, log, txHost) {
|
|
47
|
+
this.kdb = kdb;
|
|
48
|
+
this.eventLog = eventLog;
|
|
49
|
+
this.events = events;
|
|
50
|
+
this.log = log;
|
|
51
|
+
this.txHost = txHost;
|
|
52
|
+
}
|
|
53
|
+
/** The context's handle (the transaction of a `@Transactional` method, else the pool). */
|
|
54
|
+
get db() {
|
|
55
|
+
return this.kdb.db;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Appends one delivery of the dispatch `row` to the parent log, in the caller's transaction or
|
|
59
|
+
* one of its own: the description is the dispatch's (`subagent_dispatched`), the trigger account
|
|
60
|
+
* the child run's (a wake runs as that person, §7). Idempotent by `opts.idemKey` (a finish's
|
|
61
|
+
* default is {@link finishedDeliveryIdemKey}; a report or a note must name its own): under the
|
|
62
|
+
* parent conversation's row lock, an existing delivery returns null and writes nothing. After
|
|
63
|
+
* the commit: the log's notify and `subagent.delivered`. Returns the new event's seq.
|
|
64
|
+
*/
|
|
65
|
+
async deliverIn(row, d, opts = {}) {
|
|
66
|
+
const idemKey = opts.idemKey ?? (d.kind === "finished" ? finishedDeliveryIdemKey(row.childRunId) : undefined);
|
|
67
|
+
if (idemKey === undefined)
|
|
68
|
+
throw new Error(`a ${d.kind} delivery needs its idempotency key`);
|
|
69
|
+
const t = this.db;
|
|
70
|
+
const parent = row.parentConversationId;
|
|
71
|
+
await t
|
|
72
|
+
.selectFrom("conversations")
|
|
73
|
+
.select("id")
|
|
74
|
+
.where("id", "=", parent)
|
|
75
|
+
.forUpdate()
|
|
76
|
+
.executeTakeFirst();
|
|
77
|
+
const existing = await t
|
|
78
|
+
.selectFrom("conversation_events")
|
|
79
|
+
.select("seq")
|
|
80
|
+
.where("conversation_id", "=", parent)
|
|
81
|
+
.where("idem_key", "=", idemKey)
|
|
82
|
+
.executeTakeFirst();
|
|
83
|
+
if (existing)
|
|
84
|
+
return null;
|
|
85
|
+
const run = await t
|
|
86
|
+
.selectFrom("runs")
|
|
87
|
+
.select("trigger_account_id")
|
|
88
|
+
.where("id", "=", row.childRunId)
|
|
89
|
+
.executeTakeFirstOrThrow();
|
|
90
|
+
const [event] = await this.eventLog.appendIn(parent, [
|
|
91
|
+
{
|
|
92
|
+
type: "subagent_delivery",
|
|
93
|
+
idemKey,
|
|
94
|
+
payload: {
|
|
95
|
+
subagentId: row.childConversationId,
|
|
96
|
+
childRunId: row.childRunId,
|
|
97
|
+
description: await this.descriptionOf(row),
|
|
98
|
+
...d,
|
|
99
|
+
text: d.text.length > DELIVERY_TEXT_MAX ? d.text.slice(0, DELIVERY_TEXT_MAX) : d.text,
|
|
100
|
+
triggerAccountId: run.trigger_account_id,
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
]);
|
|
104
|
+
if (!event)
|
|
105
|
+
return null;
|
|
106
|
+
afterCommit(async () => {
|
|
107
|
+
await this.eventLog.notify(parent, event.seq);
|
|
108
|
+
await this.events.emit("subagent.delivered", { conversationId: parent });
|
|
109
|
+
});
|
|
110
|
+
return event.seq;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* A background child run reached a terminal state (agent map spec §4.5, §5.2): appends the
|
|
114
|
+
* parent's `subagent_finished` (display only) and a `finished` delivery in one transaction, for
|
|
115
|
+
* every run of a child conversation (dispatched, sent a message or woken;
|
|
116
|
+
* {@link deliveryRowOfChildRun}), each once by its run. The delivery
|
|
117
|
+
* carries the final reply when the run handed back no report, else no text and `handedBack`; a
|
|
118
|
+
* failed run's error message and code, an aborted run who stopped it. A run that handed back and
|
|
119
|
+
* then `completed` gets only `subagent_finished` (not model-visible, wakes nothing); the log's
|
|
120
|
+
* notify still announces it to viewers. A run of a conversation never dispatched, a fork
|
|
121
|
+
* invocation's child, or not terminal yet is left alone. True when this call wrote the finish.
|
|
122
|
+
*/
|
|
123
|
+
async childFinished(childRunId) {
|
|
124
|
+
const row = await deliveryRowOfChildRun(this.db, childRunId);
|
|
125
|
+
if (!row || row.forSkill === true)
|
|
126
|
+
return false;
|
|
127
|
+
const run = await this.db
|
|
128
|
+
.selectFrom("runs")
|
|
129
|
+
.select("status")
|
|
130
|
+
.where("id", "=", childRunId)
|
|
131
|
+
.executeTakeFirst();
|
|
132
|
+
if (!run || !TERMINAL_STATUSES.has(run.status))
|
|
133
|
+
return false;
|
|
134
|
+
const r = await childResult(this.eventLog, row);
|
|
135
|
+
if (!r) {
|
|
136
|
+
this.log.warn("sub-agent run is terminal without a terminal event", { childRunId });
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
return this.finishIn(row, r);
|
|
140
|
+
}
|
|
141
|
+
/** {@link childFinished}'s transaction. */
|
|
142
|
+
async finishIn(row, r) {
|
|
143
|
+
const { status, errorCode } = r.finished;
|
|
144
|
+
const handedBack = await this.handedBack(row);
|
|
145
|
+
if (handedBack && status === "completed")
|
|
146
|
+
return this.finishSilentlyIn(row, r.finished);
|
|
147
|
+
await this.eventLog.appendIn(row.parentConversationId, [finishedEvent(row, r.finished)]);
|
|
148
|
+
const text = handedBack
|
|
149
|
+
? ""
|
|
150
|
+
: status === "failed"
|
|
151
|
+
? (r.errorMessage ?? "")
|
|
152
|
+
: status === "aborted" || status === "timed_out"
|
|
153
|
+
? ""
|
|
154
|
+
: r.reply;
|
|
155
|
+
const seq = await this.deliverIn(row, {
|
|
156
|
+
kind: "finished",
|
|
157
|
+
status,
|
|
158
|
+
text,
|
|
159
|
+
...(handedBack && { handedBack: true }),
|
|
160
|
+
...(errorCode !== undefined && { errorCode }),
|
|
161
|
+
...(r.abortedBy !== undefined && { abortedBy: r.abortedBy }),
|
|
162
|
+
});
|
|
163
|
+
return seq !== null;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* {@link finishIn} for a run that handed back and completed: only `subagent_finished`, written
|
|
167
|
+
* once under the parent conversation's row lock (idempotent by the child run), then the log's
|
|
168
|
+
* notify after the commit. No `subagent.delivered`: nothing model-visible arrived, so no wake.
|
|
169
|
+
* True when this call wrote it.
|
|
170
|
+
*/
|
|
171
|
+
async finishSilentlyIn(row, finished) {
|
|
172
|
+
const parent = row.parentConversationId;
|
|
173
|
+
const event = finishedEvent(row, finished);
|
|
174
|
+
await this.db
|
|
175
|
+
.selectFrom("conversations")
|
|
176
|
+
.select("id")
|
|
177
|
+
.where("id", "=", parent)
|
|
178
|
+
.forUpdate()
|
|
179
|
+
.executeTakeFirst();
|
|
180
|
+
if (event.idemKey !== undefined && (await this.eventLog.findByIdem(parent, event.idemKey)))
|
|
181
|
+
return false;
|
|
182
|
+
const [written] = await this.eventLog.appendIn(parent, [event]);
|
|
183
|
+
if (!written)
|
|
184
|
+
return false;
|
|
185
|
+
afterCommit(() => this.eventLog.notify(parent, written.seq));
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
/** Whether the child run handed back a report (`SubagentHandback`) before it finished. */
|
|
189
|
+
async handedBack(row) {
|
|
190
|
+
const hit = await this.db
|
|
191
|
+
.selectFrom("conversation_events")
|
|
192
|
+
.select("seq")
|
|
193
|
+
.where("conversation_id", "=", row.parentConversationId)
|
|
194
|
+
.where("type", "=", "subagent_delivery")
|
|
195
|
+
.where(sql `payload ->> 'childRunId'`, "=", row.childRunId)
|
|
196
|
+
.where(sql `payload ->> 'kind'`, "=", "report")
|
|
197
|
+
.limit(1)
|
|
198
|
+
.executeTakeFirst();
|
|
199
|
+
return hit !== undefined;
|
|
200
|
+
}
|
|
201
|
+
/** The dispatch's task label (`subagent_dispatched.description`), else the child's title. */
|
|
202
|
+
async descriptionOf(row) {
|
|
203
|
+
const dispatched = await this.eventLog.findByIdem(row.parentConversationId, dispatchedIdemKey(row.parentRunId, row.parentCallId));
|
|
204
|
+
if (dispatched?.type === "subagent_dispatched")
|
|
205
|
+
return dispatched.payload.description;
|
|
206
|
+
const conv = await this.db
|
|
207
|
+
.selectFrom("conversations")
|
|
208
|
+
.select("title")
|
|
209
|
+
.where("id", "=", row.childConversationId)
|
|
210
|
+
.executeTakeFirst();
|
|
211
|
+
return conv?.title ?? "";
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
__decorate([
|
|
215
|
+
Transactional()
|
|
216
|
+
], SubagentDeliveries.prototype, "deliverIn", null);
|
|
217
|
+
__decorate([
|
|
218
|
+
Transactional()
|
|
219
|
+
], SubagentDeliveries.prototype, "finishIn", null);
|
|
220
|
+
SubagentDeliveries = __decorate([
|
|
221
|
+
Injectable(),
|
|
222
|
+
__param(0, Inject(KernelDb)),
|
|
223
|
+
__param(1, Inject(EventLog)),
|
|
224
|
+
__param(2, Inject(KernelEvents)),
|
|
225
|
+
__param(3, Inject(KERNEL_LOGGER)),
|
|
226
|
+
__param(4, Inject(TransactionHost))
|
|
227
|
+
], SubagentDeliveries);
|
|
228
|
+
export { SubagentDeliveries };
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { Logger } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import {
|
|
2
|
+
import type { AgentDefinition } from "../../agents/definition.js";
|
|
3
3
|
import type { EventLog } from "../../conversations/event-log.js";
|
|
4
4
|
import type { ConversationEvent, EventPayload } from "../../conversations/events.js";
|
|
5
5
|
import type { ConversationKind, KernelSchemaDb } from "../../db/kernel-schema.js";
|
|
6
6
|
import type { KernelConfigService } from "../../infra/config/kernel-config.service.js";
|
|
7
7
|
import type { ModelPurposesService } from "../../models/purposes.js";
|
|
8
|
-
import { type AgentToolInputT } from "../../tools/builtins/agent.js";
|
|
8
|
+
import { AGENT_REFUSALS, type AgentToolInputT } from "../../tools/builtins/agent.js";
|
|
9
9
|
import type { ToolStepContext } from "../../tools/pipeline.js";
|
|
10
10
|
import type { ProviderRegistry } from "../providers.js";
|
|
11
11
|
import { type RunJobData } from "../run-jobs.js";
|
|
12
|
-
import { type CheckedOrgAgent } from "./definition.js";
|
|
12
|
+
import { type CheckedOrgAgent, type FollowUpNarrowing } from "./definition.js";
|
|
13
13
|
import { type RosterEntry } from "./roster.js";
|
|
14
14
|
export interface DispatchDeps {
|
|
15
15
|
/** The context's handle: inside {@link commitDispatchIn} it is the dispatch's transaction. */
|
|
@@ -33,7 +33,31 @@ export interface DispatchArgs {
|
|
|
33
33
|
callId: string;
|
|
34
34
|
input: AgentToolInputT;
|
|
35
35
|
forSkill?: SkillForkDispatch;
|
|
36
|
+
/**
|
|
37
|
+
* The `Agent` call's own record (not for a fork invocation): the logged key its `tool_result`
|
|
38
|
+
* keeps (the rc `agent` for a call logged before the rename), the `tool.called` audit's
|
|
39
|
+
* authorization fields, and when the pipeline started it (the audit's duration).
|
|
40
|
+
*/
|
|
41
|
+
call?: {
|
|
42
|
+
toolKey: string;
|
|
43
|
+
authorization: Record<string, unknown>;
|
|
44
|
+
startedAt: number;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* A `SendMessage` that starts an idle sub-agent again (agent map spec §5.1, §6): its call's
|
|
48
|
+
* immediate result, written with the dispatch instead of `agentStartedText`, and the texts of
|
|
49
|
+
* the limit refusals. `input.description` is the sub-agent's task label, `input.prompt` the
|
|
50
|
+
* message.
|
|
51
|
+
*/
|
|
52
|
+
sent?: {
|
|
53
|
+
content: string;
|
|
54
|
+
refusals: LimitRefusals;
|
|
55
|
+
};
|
|
36
56
|
}
|
|
57
|
+
/** The texts of the limit refusals of a dispatch (§4.5, agent map spec §6), and of a stopped run. */
|
|
58
|
+
export type LimitRefusals = Pick<typeof AGENT_REFUSALS, "depthLimit" | "budget" | "tooManyDispatches" | "tooManyConcurrent"> & {
|
|
59
|
+
notAvailableHere: string;
|
|
60
|
+
};
|
|
37
61
|
/**
|
|
38
62
|
* Writes the child's events in the dispatch's transaction (`db` is its handle); `checked` is the
|
|
39
63
|
* org agent version the in-lock gates passed. Null refuses.
|
|
@@ -42,6 +66,9 @@ export type ChildWriter = (db: KernelSchemaDb, checked?: CheckedOrgAgent) => Pro
|
|
|
42
66
|
export type DispatchOutcome = {
|
|
43
67
|
kind: "dispatched";
|
|
44
68
|
childRunId: string;
|
|
69
|
+
childConversationId: string;
|
|
70
|
+
/** The call's immediate result (`agentStartedText`). */
|
|
71
|
+
content: string;
|
|
45
72
|
} | {
|
|
46
73
|
kind: "refused";
|
|
47
74
|
content: string;
|
|
@@ -62,6 +89,11 @@ export interface SkillForkDispatch {
|
|
|
62
89
|
/** The task for the sub-agent's effective definition (replaces `input.prompt`). */
|
|
63
90
|
task: (child: AgentDefinition) => string;
|
|
64
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* The depth of the run behind `ctx` below the root (agent map spec §6): 0 for a root
|
|
94
|
+
* conversation's run, its parent's depth plus one for a sub-agent's.
|
|
95
|
+
*/
|
|
96
|
+
export declare const runDepth: (ctx: Pick<ToolStepContext, "parent">) => number;
|
|
65
97
|
/** Idempotency key of the parent's `subagent_dispatched` event. */
|
|
66
98
|
export declare const dispatchedIdemKey: (runId: string, callId: string) => string;
|
|
67
99
|
/** What one dispatch writes, decided before its transaction. */
|
|
@@ -83,28 +115,74 @@ export interface DispatchPlan {
|
|
|
83
115
|
tierFallback: boolean;
|
|
84
116
|
}
|
|
85
117
|
/**
|
|
86
|
-
* Dispatches the sub-agent of one `Agent` call (spec §7.1), after the
|
|
87
|
-
* policy, approval and `tool.preExecute` stages
|
|
88
|
-
* definition, then in one transaction (holding the parent run's row lock, so the
|
|
89
|
-
* run serialize) inserts the child conversation, appends `subagent_started` and
|
|
90
|
-
* inserts the child run (`queued`) and the `subagent_dispatches` row, appends
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
* enqueue only logs (the dispatch is durable, the wait
|
|
118
|
+
* Dispatches the sub-agent of one `Agent` call (spec §7.1, agent map spec §4.1), after the
|
|
119
|
+
* pipeline's validation, policy, approval and `tool.preExecute` stages: resolves its type and
|
|
120
|
+
* effective definition, then in one transaction (holding the parent run's row lock, so the
|
|
121
|
+
* dispatches of one run serialize) inserts the child conversation, appends `subagent_started` and
|
|
122
|
+
* the task message, inserts the child run (`queued`) and the `subagent_dispatches` row, appends
|
|
123
|
+
* `subagent_dispatched` and the call's `tool_result` ({@link agentStartedText}: the sub-agent runs
|
|
124
|
+
* in the background) to the parent and audits `subagent.dispatched` and `tool.called`. After
|
|
125
|
+
* commit the child run is enqueued; a failed enqueue only logs (the dispatch is durable, the wait
|
|
126
|
+
* sweep re-enqueues it). A fork invocation (`forSkill`) writes no `tool_result`: its run waits on
|
|
127
|
+
* the child (`advanceSkillForks`).
|
|
94
128
|
*
|
|
95
|
-
* Refusals (§4.5) start nothing: a call from a
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
|
|
129
|
+
* Refusals (§4.5) start nothing: a call from a run at `subagents.maxDepth` (agent map spec §4.1:
|
|
130
|
+
* its definition has no `Agent`, so only a forged call or a lowered limit gets here), an unknown
|
|
131
|
+
* type, or an org agent that fails one of its gates ({@link orgAgentGates}, checked at every
|
|
132
|
+
* level; audited `subagent.refused`).
|
|
133
|
+
*/
|
|
134
|
+
export declare function dispatchSubagent(d: DispatchDeps, a: DispatchArgs): Promise<DispatchOutcome>;
|
|
135
|
+
/**
|
|
136
|
+
* The gates of an org agent sub-agent (§5.5) for this call: the allowlist of the parent agent's
|
|
137
|
+
* **current** version (R5), the agent's `dispatchable`, its visibility to the person who started
|
|
138
|
+
* the parent run, and not deleted. A refusal is audited `subagent.refused` and answers with the
|
|
139
|
+
* §4.5 text, which names only the roster type. Checked before the dispatch transaction (a new
|
|
140
|
+
* sub-agent freezes the definition read here) and again inside it under the parent run's row lock
|
|
141
|
+
* ({@link commit}), so a gate revoked in between refuses (batch 9 review M1).
|
|
100
142
|
*/
|
|
101
|
-
export declare function
|
|
143
|
+
export declare function orgAgentGates(db: KernelSchemaDb, a: {
|
|
102
144
|
ctx: ToolStepContext;
|
|
103
145
|
callId: string;
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
146
|
+
}, agentId: string, agentType: string, resumed: boolean): Promise<{
|
|
147
|
+
checked: CheckedOrgAgent;
|
|
148
|
+
} | {
|
|
149
|
+
refused: DispatchOutcome;
|
|
150
|
+
}>;
|
|
151
|
+
/**
|
|
152
|
+
* A sub-agent's task message, or (`message`) a `SendMessage` from its parent (agent map spec
|
|
153
|
+
* §5.1: `dispatch.kind: "message"`, idempotent by the sending call, with the follow-up narrowing
|
|
154
|
+
* the run it triggers uses).
|
|
155
|
+
*/
|
|
156
|
+
export declare const taskMessage: (ctx: ToolStepContext, callId: string, prompt: string, narrowed?: FollowUpNarrowing, skill?: SkillForkDispatch["skill"], message?: boolean) => {
|
|
157
|
+
type: "user_message";
|
|
158
|
+
idemKey?: string;
|
|
159
|
+
payload: {
|
|
160
|
+
content: {
|
|
161
|
+
type: "text";
|
|
162
|
+
text: string;
|
|
163
|
+
}[];
|
|
164
|
+
skill?: {
|
|
165
|
+
id: string;
|
|
166
|
+
version: number;
|
|
167
|
+
source: string;
|
|
168
|
+
name: string;
|
|
169
|
+
plugin?: string | undefined;
|
|
170
|
+
arguments: string;
|
|
171
|
+
mode: "fork" | "inline";
|
|
172
|
+
agentType?: string | undefined;
|
|
173
|
+
};
|
|
174
|
+
authorAccountId: string;
|
|
175
|
+
dispatch: {
|
|
176
|
+
parentConversationId: string;
|
|
177
|
+
parentRunId: string;
|
|
178
|
+
callId: string;
|
|
179
|
+
kind?: "message";
|
|
180
|
+
narrowed?: FollowUpNarrowing;
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
};
|
|
184
|
+
/** Idempotency key of a `SendMessage`'s `user_message` in the sub-agent's log. */
|
|
185
|
+
export declare const sentMessageIdemKey: (runId: string, callId: string) => string;
|
|
108
186
|
/**
|
|
109
187
|
* The dispatch transaction shared by new sub-agents and follow-ups: locks the parent conversation
|
|
110
188
|
* row, then the parent run row (the order every terminal path uses),
|
|
@@ -115,20 +193,27 @@ export declare function dispatchSubagent(d: DispatchDeps, a: {
|
|
|
115
193
|
*
|
|
116
194
|
* Under the parent run's row lock it first re-checks what the pipeline checked without it: a call
|
|
117
195
|
* already dispatched (a second holder of the same step, e.g. after a stalled-job takeover) gets
|
|
118
|
-
* the existing child run back and writes nothing, and a parent run that is no longer `running`
|
|
119
|
-
* (stopped, orphaned) dispatches nothing. Then the
|
|
120
|
-
* read fresh:
|
|
121
|
-
* included) at the cap, or as many active children
|
|
122
|
-
*
|
|
196
|
+
* the existing child run back and writes nothing but a missing `Agent` result, and a parent run that is no longer `running`
|
|
197
|
+
* (stopped, orphaned) dispatches nothing. Then the limits (§8.2, agent map spec §6,
|
|
198
|
+
* {@link subagentLimits}), read fresh: the depth, the tree's token counter at or over the cap,
|
|
199
|
+
* its dispatches (follow-ups included) at the cap, or as many active children of the parent
|
|
200
|
+
* conversation as may run at once each refuse with the §4.5 text. The budget run's row lock
|
|
201
|
+
* serializes the dispatches of one tree, so the counts cannot race.
|
|
123
202
|
*/
|
|
124
203
|
/** What the dispatch transaction did. */
|
|
125
204
|
export type DispatchCommit = {
|
|
126
205
|
kind: "existing";
|
|
127
206
|
childRunId: string;
|
|
207
|
+
childConversationId: string;
|
|
128
208
|
requeue: {
|
|
129
209
|
conversationId: string;
|
|
130
210
|
seq: number;
|
|
131
211
|
} | null;
|
|
212
|
+
/** The call's logged result (null for a fork dispatch) and its seq, to notify. */
|
|
213
|
+
result: {
|
|
214
|
+
content: string;
|
|
215
|
+
seq: number;
|
|
216
|
+
} | null;
|
|
132
217
|
} | {
|
|
133
218
|
kind: "stopped";
|
|
134
219
|
} | {
|
|
@@ -142,9 +227,13 @@ export type DispatchCommit = {
|
|
|
142
227
|
childRunId: string;
|
|
143
228
|
childSeq: number;
|
|
144
229
|
parentSeq: number;
|
|
230
|
+
content: string;
|
|
145
231
|
};
|
|
146
232
|
/**
|
|
147
233
|
* {@link commit}'s transaction (run by `SubagentsService.commitDispatch`, `d.db` its handle).
|
|
148
234
|
* Null when `child` refused.
|
|
149
235
|
*/
|
|
150
236
|
export declare function commitDispatchIn(d: Pick<DispatchDeps, "db" | "eventLog" | "config">, a: DispatchArgs, plan: DispatchPlan, child: ChildWriter): Promise<DispatchCommit | null>;
|
|
237
|
+
export declare function commit(d: Pick<DispatchDeps, "commitDispatch" | "enqueue" | "log" | "eventLog">, a: DispatchArgs, plan: DispatchPlan,
|
|
238
|
+
/** Writes the child's events; `checked` is the org agent version the in-lock gates passed. */
|
|
239
|
+
child: ChildWriter): Promise<DispatchOutcome | null>;
|