@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
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { Logger } from "@capybara-hq/plugin-sdk";
|
|
1
2
|
import type { AgentDefinition } from "../../agents/definition.js";
|
|
3
|
+
import { templateTypeOf } from "../../agents/templates.js";
|
|
2
4
|
import type { KernelSchemaDb } from "../../db/kernel-schema.js";
|
|
3
5
|
/**
|
|
4
6
|
* The sub-agent roster of an agent version (phase C, spec §4.3, §5.1): the agent types its `agent`
|
|
@@ -10,8 +12,18 @@ export interface RosterEntry {
|
|
|
10
12
|
source: "general" | "inline" | "plugin" | "agent";
|
|
11
13
|
/** When to use it (shown in the tool description), cut to {@link ROSTER_DESCRIPTION_MAX}. */
|
|
12
14
|
description: string;
|
|
13
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Plugin templates: the selected id (an org template's, a linked copy's own, or a platform
|
|
17
|
+
* template's; `subagent_started.template.id`).
|
|
18
|
+
*/
|
|
14
19
|
templateId?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Plugin templates: other selected ids this entry stands for: ids resolving to the same platform
|
|
22
|
+
* template under this type (an org copy linked since the save), or a selected platform id an org
|
|
23
|
+
* row of the same component shadows (the entry is that row); a follow-up recorded under one of
|
|
24
|
+
* them finds this entry.
|
|
25
|
+
*/
|
|
26
|
+
aliasTemplateIds?: string[];
|
|
15
27
|
/** Org agents: the allowlisted agent id. */
|
|
16
28
|
agentId?: string;
|
|
17
29
|
/** Org agents: the agent's current name, when it is still a live agent of the org. */
|
|
@@ -22,16 +34,21 @@ export interface RosterEntry {
|
|
|
22
34
|
export declare const ROSTER_DESCRIPTION_MAX = 1024;
|
|
23
35
|
/** The description of `general-purpose` in the roster (spec §4.3, model-visible). */
|
|
24
36
|
export declare const GENERAL_PURPOSE_DESCRIPTION = "a copy of you with your tools and skills, for multi-step work.";
|
|
25
|
-
/** Plugin template type: `<plugin>:<name
|
|
26
|
-
export declare const templateType:
|
|
37
|
+
/** Plugin template type: `<plugin>:<name>`; the bare `<name>` for a template without a plugin. */
|
|
38
|
+
export declare const templateType: typeof templateTypeOf;
|
|
27
39
|
/**
|
|
28
40
|
* Resolves the roster of `parent` (spec §4.3): `general-purpose` first unless
|
|
29
41
|
* `subagents.general === false`, then the plugin templates, inline templates and allowlisted org
|
|
30
|
-
* agents, each in the owner's order, at most {@link SUBAGENT_ROSTER_MAX} entries. Templates
|
|
31
|
-
*
|
|
32
|
-
*
|
|
42
|
+
* agents, each in the owner's order, at most {@link SUBAGENT_ROSTER_MAX} entries. Templates are
|
|
43
|
+
* the org's and the platform's ({@link loadTemplates}); ones deleted or off since the save are
|
|
44
|
+
* skipped. A template whose type is taken (`general-purpose`, an earlier template, an inline
|
|
45
|
+
* template's name; only a bare `<name>` can clash with the last two kinds, and the save refuses
|
|
46
|
+
* every clash) is skipped with a warning; when it resolves to the same platform template as the
|
|
47
|
+
* entry kept, its id becomes that entry's alias. Allowlisted org agents stay listed (the dispatch
|
|
48
|
+
* checks their gates and refuses with the §4.5 text), with `agentName` only while the agent is
|
|
49
|
+
* live.
|
|
33
50
|
*/
|
|
34
|
-
export declare function resolveRoster(db: KernelSchemaDb, orgId: string, parent: Pick<AgentDefinition, "subagents">): Promise<RosterEntry[]>;
|
|
51
|
+
export declare function resolveRoster(db: KernelSchemaDb, orgId: string, parent: Pick<AgentDefinition, "subagents">, log?: Pick<Logger, "warn">): Promise<RosterEntry[]>;
|
|
35
52
|
/**
|
|
36
53
|
* The roster entry for a requested `subagent_type`: an exact type first; else a bare `<name>`
|
|
37
54
|
* matches the plugin template `<plugin>:<name>` when exactly one has it (as Claude Code accepts
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { SUBAGENT_ROSTER_MAX } from "../../agents/definition.js";
|
|
2
|
-
import { loadTemplates } from "../../agents/templates.js";
|
|
2
|
+
import { loadTemplates, templateTypeOf } from "../../agents/templates.js";
|
|
3
3
|
export const ROSTER_DESCRIPTION_MAX = 1024;
|
|
4
4
|
/** The description of `general-purpose` in the roster (spec §4.3, model-visible). */
|
|
5
5
|
export const GENERAL_PURPOSE_DESCRIPTION = "a copy of you with your tools and skills, for multi-step work.";
|
|
6
6
|
const cut = (s) => s.slice(0, ROSTER_DESCRIPTION_MAX);
|
|
7
|
-
/** Plugin template type: `<plugin>:<name
|
|
8
|
-
export const templateType =
|
|
7
|
+
/** Plugin template type: `<plugin>:<name>`; the bare `<name>` for a template without a plugin. */
|
|
8
|
+
export const templateType = templateTypeOf;
|
|
9
9
|
/**
|
|
10
10
|
* Resolves the roster of `parent` (spec §4.3): `general-purpose` first unless
|
|
11
11
|
* `subagents.general === false`, then the plugin templates, inline templates and allowlisted org
|
|
12
|
-
* agents, each in the owner's order, at most {@link SUBAGENT_ROSTER_MAX} entries. Templates
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* agents, each in the owner's order, at most {@link SUBAGENT_ROSTER_MAX} entries. Templates are
|
|
13
|
+
* the org's and the platform's ({@link loadTemplates}); ones deleted or off since the save are
|
|
14
|
+
* skipped. A template whose type is taken (`general-purpose`, an earlier template, an inline
|
|
15
|
+
* template's name; only a bare `<name>` can clash with the last two kinds, and the save refuses
|
|
16
|
+
* every clash) is skipped with a warning; when it resolves to the same platform template as the
|
|
17
|
+
* entry kept, its id becomes that entry's alias. Allowlisted org agents stay listed (the dispatch
|
|
18
|
+
* checks their gates and refuses with the §4.5 text), with `agentName` only while the agent is
|
|
19
|
+
* live.
|
|
15
20
|
*/
|
|
16
|
-
export async function resolveRoster(db, orgId, parent) {
|
|
21
|
+
export async function resolveRoster(db, orgId, parent, log) {
|
|
17
22
|
const sub = parent.subagents;
|
|
18
23
|
const out = [];
|
|
19
24
|
if (sub?.general !== false) {
|
|
@@ -24,19 +29,50 @@ export async function resolveRoster(db, orgId, parent) {
|
|
|
24
29
|
});
|
|
25
30
|
}
|
|
26
31
|
const templateIds = sub?.templates ?? [];
|
|
27
|
-
const templates = await loadTemplates(db, orgId, templateIds);
|
|
32
|
+
const templates = await loadTemplates(db, orgId, templateIds, log);
|
|
33
|
+
const inlineNames = new Set((sub?.inline ?? []).map((t) => t.name));
|
|
34
|
+
const kept = new Map();
|
|
35
|
+
const alias = (e, id) => {
|
|
36
|
+
if (e.templateId !== id && !e.aliasTemplateIds?.includes(id)) {
|
|
37
|
+
e.aliasTemplateIds = [...(e.aliasTemplateIds ?? []), id];
|
|
38
|
+
}
|
|
39
|
+
};
|
|
28
40
|
for (const id of templateIds) {
|
|
29
41
|
const r = templates.get(id);
|
|
30
42
|
if (!r)
|
|
31
43
|
continue;
|
|
44
|
+
const type = templateType(r.plugin, r.name);
|
|
45
|
+
const first = kept.get(type);
|
|
46
|
+
if (first !== undefined || type === "general-purpose" || inlineNames.has(type)) {
|
|
47
|
+
if (first !== undefined &&
|
|
48
|
+
(first.entry.templateId === r.id ||
|
|
49
|
+
(r.platformTemplateId !== undefined && first.platformTemplateId === r.platformTemplateId))) {
|
|
50
|
+
alias(first.entry, id);
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
log?.warn("agent template skipped in the roster: its type is taken", {
|
|
54
|
+
orgId,
|
|
55
|
+
type,
|
|
56
|
+
templateId: r.id,
|
|
57
|
+
});
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
32
60
|
const description = r.template.description;
|
|
33
|
-
|
|
34
|
-
type
|
|
61
|
+
const entry = {
|
|
62
|
+
type,
|
|
35
63
|
source: "plugin",
|
|
36
64
|
description: cut(typeof description === "string" ? description : ""),
|
|
37
65
|
templateId: r.id,
|
|
38
|
-
plugin: r.plugin,
|
|
66
|
+
...(r.plugin ? { plugin: r.plugin } : {}),
|
|
67
|
+
};
|
|
68
|
+
// a selected platform id that an org row of the same component shadows resolves to that row
|
|
69
|
+
if (r.id !== id)
|
|
70
|
+
alias(entry, id);
|
|
71
|
+
kept.set(type, {
|
|
72
|
+
entry,
|
|
73
|
+
...(r.platformTemplateId !== undefined && { platformTemplateId: r.platformTemplateId }),
|
|
39
74
|
});
|
|
75
|
+
out.push(entry);
|
|
40
76
|
}
|
|
41
77
|
for (const t of sub?.inline ?? []) {
|
|
42
78
|
out.push({ type: t.name, source: "inline", description: cut(t.description) });
|
|
@@ -8,8 +8,9 @@ import { type DispatchDeps } from "./dispatch.js";
|
|
|
8
8
|
/**
|
|
9
9
|
* Forked skills (phase D spec §6): a person's invocation of a `context: fork` skill starts its own
|
|
10
10
|
* run (the run boundary, {@link forkBoundary}), whose `prepare` node dispatches the sub-agent
|
|
11
|
-
* through phase C's `dispatchSubagent` before any model call and waits on it
|
|
12
|
-
*
|
|
11
|
+
* through phase C's `dispatchSubagent` before any model call and waits on it (`subagents` wait
|
|
12
|
+
* `sa-<runId>-0`; the dispatch row has `for_skill`, agent map spec §5.4: a fork stays in the
|
|
13
|
+
* foreground while `Agent` calls run in the background). When the child has ended, `prepare` appends the model-visible
|
|
13
14
|
* `skill_fork_result` and the parent's model answers. Every terminal path of the run (and the wait
|
|
14
15
|
* sweep) pairs a fork invocation without a report ({@link pairStoppedForks}), so the log never holds
|
|
15
16
|
* a fork lead whose report is missing before the next model call.
|
|
@@ -7,8 +7,9 @@ import { dispatchSubagent } from "./dispatch.js";
|
|
|
7
7
|
/**
|
|
8
8
|
* Forked skills (phase D spec §6): a person's invocation of a `context: fork` skill starts its own
|
|
9
9
|
* run (the run boundary, {@link forkBoundary}), whose `prepare` node dispatches the sub-agent
|
|
10
|
-
* through phase C's `dispatchSubagent` before any model call and waits on it
|
|
11
|
-
*
|
|
10
|
+
* through phase C's `dispatchSubagent` before any model call and waits on it (`subagents` wait
|
|
11
|
+
* `sa-<runId>-0`; the dispatch row has `for_skill`, agent map spec §5.4: a fork stays in the
|
|
12
|
+
* foreground while `Agent` calls run in the background). When the child has ended, `prepare` appends the model-visible
|
|
12
13
|
* `skill_fork_result` and the parent's model answers. Every terminal path of the run (and the wait
|
|
13
14
|
* sweep) pairs a fork invocation without a report ({@link pairStoppedForks}), so the log never holds
|
|
14
15
|
* a fork lead whose report is missing before the next model call.
|
|
@@ -92,7 +93,7 @@ export async function advanceSkillForks(d, a) {
|
|
|
92
93
|
const callId = skillCallId(seq);
|
|
93
94
|
const row = await dispatchOfCall(d.db, ctx.runId, callId);
|
|
94
95
|
if (row) {
|
|
95
|
-
const r = await childResult(d.eventLog, row
|
|
96
|
+
const r = await childResult(d.eventLog, row);
|
|
96
97
|
if (!r)
|
|
97
98
|
return ctx.signal.aborted ? { kind: "aborted" } : suspend(d, ctx);
|
|
98
99
|
await report(r.content, row, [finishedEvent(row, r.finished)]);
|
|
@@ -236,6 +237,7 @@ t, eventLog, runId) {
|
|
|
236
237
|
"parent_conversation_id",
|
|
237
238
|
"child_conversation_id",
|
|
238
239
|
"child_run_id",
|
|
240
|
+
"budget_run_id",
|
|
239
241
|
])
|
|
240
242
|
.where("parent_run_id", "=", runId)
|
|
241
243
|
.where("parent_call_id", "=", callId)
|
|
@@ -251,6 +253,8 @@ t, eventLog, runId) {
|
|
|
251
253
|
parentConversationId: d.parent_conversation_id,
|
|
252
254
|
childConversationId: d.child_conversation_id,
|
|
253
255
|
childRunId: d.child_run_id,
|
|
256
|
+
budgetRunId: d.budget_run_id,
|
|
257
|
+
forSkill: true,
|
|
254
258
|
};
|
|
255
259
|
const child = await t
|
|
256
260
|
.selectFrom("runs")
|
|
@@ -259,7 +263,7 @@ t, eventLog, runId) {
|
|
|
259
263
|
.executeTakeFirst();
|
|
260
264
|
// a child that already ended keeps its own result (its log is committed)
|
|
261
265
|
const ended = child !== undefined && TERMINAL_STATUSES.has(child.status)
|
|
262
|
-
? await childResult(eventLog, row
|
|
266
|
+
? await childResult(eventLog, row)
|
|
263
267
|
: null;
|
|
264
268
|
if (ended)
|
|
265
269
|
events.push(finishedEvent(row, ended.finished));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { EventPayload } from "../../conversations/events.js";
|
|
2
|
+
/** How a sub-agent's run ended (`subagent_finished.status`, a finished `subagent_delivery`). */
|
|
3
|
+
export type SubagentStatus = EventPayload<"subagent_finished">["status"];
|
|
4
|
+
/** Who stopped an aborted sub-agent: a person, or the kernel on its parent run's behalf. */
|
|
5
|
+
export type SubagentAbortedBy = "user" | "parent";
|
|
6
|
+
/**
|
|
7
|
+
* How a sub-agent's run ended, as the model reads it: the status of `agentResultText`'s bracket
|
|
8
|
+
* line (a fork invocation's report) and of a finished `subagent_delivery`
|
|
9
|
+
* (`renderSubagentDelivery`).
|
|
10
|
+
*/
|
|
11
|
+
export declare function subagentStatusText(status: SubagentStatus, opts?: {
|
|
12
|
+
errorCode?: string | undefined;
|
|
13
|
+
abortedBy?: SubagentAbortedBy | undefined;
|
|
14
|
+
}): string;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How a sub-agent's run ended, as the model reads it: the status of `agentResultText`'s bracket
|
|
3
|
+
* line (a fork invocation's report) and of a finished `subagent_delivery`
|
|
4
|
+
* (`renderSubagentDelivery`).
|
|
5
|
+
*/
|
|
6
|
+
export function subagentStatusText(status, opts = {}) {
|
|
7
|
+
switch (status) {
|
|
8
|
+
case "completed":
|
|
9
|
+
return "completed";
|
|
10
|
+
case "max_steps":
|
|
11
|
+
return "stopped at the step limit; the reply may be partial";
|
|
12
|
+
case "max_duration":
|
|
13
|
+
return "stopped at the time limit; the reply may be partial";
|
|
14
|
+
case "budget":
|
|
15
|
+
return "stopped: token budget used up";
|
|
16
|
+
case "aborted":
|
|
17
|
+
return opts.abortedBy === "parent" ? "stopped with this run" : "stopped by the user";
|
|
18
|
+
case "timed_out":
|
|
19
|
+
return "timed out";
|
|
20
|
+
case "failed":
|
|
21
|
+
return opts.errorCode === undefined ? "failed" : `failed (${opts.errorCode})`;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -15,9 +15,9 @@ import { type SkillForkDeps, type SkillForks } from "./skill-fork.js";
|
|
|
15
15
|
* Sub-agents (phase C, spec §7) and forked skills (phase D): the `Agent` tool's dispatch (the
|
|
16
16
|
* tool pipeline calls {@link dispatch}), a run's fork invocation ({@link skillForks}, the loop's
|
|
17
17
|
* `prepare`) and a child step's progress on the parent's stream ({@link progress}). Child runs go
|
|
18
|
-
* to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch
|
|
19
|
-
*
|
|
20
|
-
* (
|
|
18
|
+
* to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch is the
|
|
19
|
+
* waits' (`Waits.childFinished`): a background child's finish is delivered to its parent
|
|
20
|
+
* ({@link SubagentDeliveries}), a fork invocation's child resumes its waiting parent run.
|
|
21
21
|
*/
|
|
22
22
|
export declare class SubagentsService {
|
|
23
23
|
private readonly bus;
|
|
@@ -35,6 +35,9 @@ export declare class SubagentsService {
|
|
|
35
35
|
/** A sub-agent's finished step on its parent's stream (sub-agents spec §14.2). Never throws. */
|
|
36
36
|
progress(s: SubagentStep): Promise<void>;
|
|
37
37
|
}
|
|
38
|
-
/**
|
|
38
|
+
/**
|
|
39
|
+
* Sub-agent dispatch, deliveries and messages (the tools domain's `Agent`, `SendMessage` and
|
|
40
|
+
* `SubagentHandback`, the run loop, the waits).
|
|
41
|
+
*/
|
|
39
42
|
export declare class SubagentsModule {
|
|
40
43
|
}
|
|
@@ -20,16 +20,18 @@ import { SkillInvoker } from "../../skills/invoke.js";
|
|
|
20
20
|
import { SkillsModule } from "../../skills/skills.module.js";
|
|
21
21
|
import { ProviderRegistry, ProvidersModule } from "../providers.js";
|
|
22
22
|
import { RunJobs, RunJobsModule } from "../run-jobs.js";
|
|
23
|
+
import { SubagentDeliveries } from "./deliveries.js";
|
|
23
24
|
import { commitDispatchIn, dispatchSubagent, } from "./dispatch.js";
|
|
25
|
+
import { SubagentMessages } from "./messages.js";
|
|
24
26
|
import { publishSubagentProgress } from "./progress.js";
|
|
25
27
|
import { liveSkillForks } from "./skill-fork.js";
|
|
26
28
|
/**
|
|
27
29
|
* Sub-agents (phase C, spec §7) and forked skills (phase D): the `Agent` tool's dispatch (the
|
|
28
30
|
* tool pipeline calls {@link dispatch}), a run's fork invocation ({@link skillForks}, the loop's
|
|
29
31
|
* `prepare`) and a child step's progress on the parent's stream ({@link progress}). Child runs go
|
|
30
|
-
* to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch
|
|
31
|
-
*
|
|
32
|
-
* (
|
|
32
|
+
* to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch is the
|
|
33
|
+
* waits' (`Waits.childFinished`): a background child's finish is delivered to its parent
|
|
34
|
+
* ({@link SubagentDeliveries}), a fork invocation's child resumes its waiting parent run.
|
|
33
35
|
*/
|
|
34
36
|
let SubagentsService = class SubagentsService {
|
|
35
37
|
bus;
|
|
@@ -88,14 +90,17 @@ SubagentsService = __decorate([
|
|
|
88
90
|
__param(9, Inject(TransactionHost))
|
|
89
91
|
], SubagentsService);
|
|
90
92
|
export { SubagentsService };
|
|
91
|
-
/**
|
|
93
|
+
/**
|
|
94
|
+
* Sub-agent dispatch, deliveries and messages (the tools domain's `Agent`, `SendMessage` and
|
|
95
|
+
* `SubagentHandback`, the run loop, the waits).
|
|
96
|
+
*/
|
|
92
97
|
let SubagentsModule = class SubagentsModule {
|
|
93
98
|
};
|
|
94
99
|
SubagentsModule = __decorate([
|
|
95
100
|
Module({
|
|
96
101
|
imports: [EventLogModule, ModelsModule, ProvidersModule, RunJobsModule, SkillsModule],
|
|
97
|
-
providers: [SubagentsService],
|
|
98
|
-
exports: [SubagentsService],
|
|
102
|
+
providers: [SubagentsService, SubagentDeliveries, SubagentMessages],
|
|
103
|
+
exports: [SubagentsService, SubagentDeliveries, SubagentMessages],
|
|
99
104
|
})
|
|
100
105
|
], SubagentsModule);
|
|
101
106
|
export { SubagentsModule };
|
|
@@ -93,7 +93,8 @@ export declare function narrowPending(stored: readonly string[] | undefined, fai
|
|
|
93
93
|
* using up an attempt.
|
|
94
94
|
* Handlers must be idempotent by `eventId` (`<conversationId>/<seq>`). Nothing is written to the event
|
|
95
95
|
* log (never model-visible). Compaction calls log usage too (`purpose: "compaction"`) and are reported,
|
|
96
|
-
* as are conversation title calls (`purpose: "title"`, no run: `runId` is "")
|
|
96
|
+
* as are conversation title calls (`purpose: "title"`, no run: `runId` is "") and `WebFetch`
|
|
97
|
+
* extraction calls (`purpose: "web_fetch"`).
|
|
97
98
|
* Single-step eval replays and judge requests log no usage: not reported (M7).
|
|
98
99
|
*/
|
|
99
100
|
export declare class UsageReporter {
|
|
@@ -13,7 +13,7 @@ import { DelayedError, Job, UnrecoverableError, } from "bullmq";
|
|
|
13
13
|
import { sql } from "kysely";
|
|
14
14
|
import { enabledExtensionsQuery } from "../extensions/enabled.js";
|
|
15
15
|
import { ExtensionsModule } from "../extensions/extensions.module.js";
|
|
16
|
-
import { deepFreeze, errMsg } from "../extensions/hooks.js";
|
|
16
|
+
import { deepFreeze, errMsg, HookNeedsConfigError, } from "../extensions/hooks.js";
|
|
17
17
|
import { ExtensionHost } from "../extensions/host.js";
|
|
18
18
|
import { STALE_RECONCILE_PERIODS } from "../extensions/lifecycle-topics.js";
|
|
19
19
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
@@ -22,6 +22,7 @@ import { LockService } from "../infra/lock/lock.service.js";
|
|
|
22
22
|
import { QueueModule } from "../infra/queue/queue.module.js";
|
|
23
23
|
import { LockedCron } from "../infra/schedule/locked-cron.decorator.js";
|
|
24
24
|
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
25
|
+
import { deliveryRowOfChildRun } from "./subagents/child.js";
|
|
25
26
|
/** Queue of `usage.report` deliveries (no `:` in the name). */
|
|
26
27
|
export const USAGE_REPORT_QUEUE = "cap-kernel-usage-report";
|
|
27
28
|
/** One job per `usage` event (no `:`: conversation ids are UUIDs, seq is a number). */
|
|
@@ -160,7 +161,8 @@ export function narrowPending(stored, failed) {
|
|
|
160
161
|
* using up an attempt.
|
|
161
162
|
* Handlers must be idempotent by `eventId` (`<conversationId>/<seq>`). Nothing is written to the event
|
|
162
163
|
* log (never model-visible). Compaction calls log usage too (`purpose: "compaction"`) and are reported,
|
|
163
|
-
* as are conversation title calls (`purpose: "title"`, no run: `runId` is "")
|
|
164
|
+
* as are conversation title calls (`purpose: "title"`, no run: `runId` is "") and `WebFetch`
|
|
165
|
+
* extraction calls (`purpose: "web_fetch"`).
|
|
164
166
|
* Single-step eval replays and judge requests log no usage: not reported (M7).
|
|
165
167
|
*/
|
|
166
168
|
let UsageReporter = class UsageReporter {
|
|
@@ -370,8 +372,6 @@ let UsageReporter = class UsageReporter {
|
|
|
370
372
|
.selectFrom("conversation_events as e")
|
|
371
373
|
.innerJoin("conversations as c", "c.id", "e.conversation_id")
|
|
372
374
|
.leftJoin("runs as r", "r.id", "e.run_id")
|
|
373
|
-
// a sub-agent's run: its dispatch says where it was dispatched from (spec §11)
|
|
374
|
-
.leftJoin("subagent_dispatches as sd", "sd.child_run_id", "e.run_id")
|
|
375
375
|
.select([
|
|
376
376
|
"e.payload",
|
|
377
377
|
"e.run_id",
|
|
@@ -382,9 +382,6 @@ let UsageReporter = class UsageReporter {
|
|
|
382
382
|
"c.account_id",
|
|
383
383
|
"c.kind",
|
|
384
384
|
"r.trigger_account_id",
|
|
385
|
-
"sd.parent_conversation_id",
|
|
386
|
-
"sd.parent_run_id",
|
|
387
|
-
"sd.parent_call_id",
|
|
388
385
|
])
|
|
389
386
|
.where("e.conversation_id", "=", conversationId)
|
|
390
387
|
.where("e.seq", "=", String(seq))
|
|
@@ -392,6 +389,11 @@ let UsageReporter = class UsageReporter {
|
|
|
392
389
|
if (row?.type !== "usage")
|
|
393
390
|
return null;
|
|
394
391
|
const p = row.payload;
|
|
392
|
+
// a sub-agent's run: where it was dispatched from (spec §11), its own dispatch, else (a wake
|
|
393
|
+
// run nobody dispatched, agent map spec §5.3) its conversation's latest one
|
|
394
|
+
const parent = row.kind === "subagent" && row.run_id !== null
|
|
395
|
+
? await deliveryRowOfChildRun(this.db, row.run_id)
|
|
396
|
+
: null;
|
|
395
397
|
return {
|
|
396
398
|
eventId: `${conversationId}/${seq}`,
|
|
397
399
|
purpose: p.purpose ?? "step",
|
|
@@ -402,13 +404,11 @@ let UsageReporter = class UsageReporter {
|
|
|
402
404
|
// a sub-agent's calls report "chat" (spec §11: the SDK union is not widened)
|
|
403
405
|
conversationKind: row.kind === "eval" ? "eval" : "chat",
|
|
404
406
|
runId: row.run_id ?? "",
|
|
405
|
-
...(
|
|
406
|
-
row.parent_run_id !== null &&
|
|
407
|
-
row.parent_call_id !== null && {
|
|
407
|
+
...(parent !== null && {
|
|
408
408
|
parent: {
|
|
409
|
-
conversationId:
|
|
410
|
-
runId:
|
|
411
|
-
callId:
|
|
409
|
+
conversationId: parent.parentConversationId,
|
|
410
|
+
runId: parent.parentRunId,
|
|
411
|
+
callId: parent.parentCallId,
|
|
412
412
|
},
|
|
413
413
|
}),
|
|
414
414
|
provider: p.provider,
|
|
@@ -492,6 +492,12 @@ let UsageReporter = class UsageReporter {
|
|
|
492
492
|
notHere.push(plugin);
|
|
493
493
|
return;
|
|
494
494
|
}
|
|
495
|
+
// layering spec A §6: the extension's effective config is not valid in this organization, so
|
|
496
|
+
// it is not called there (an observe hook skipped); dropped, not retried
|
|
497
|
+
if (r.reason instanceof HookNeedsConfigError) {
|
|
498
|
+
dropped.set(plugin, "needs configuration in this organization");
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
495
501
|
failed.push(plugin);
|
|
496
502
|
if (!this.stopping.signal.aborted) {
|
|
497
503
|
this.log.warn("usage.report delivery to a plugin failed", {
|