@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
|
@@ -28,13 +28,16 @@ export declare const conversationTopic: (conversationId: string) => string;
|
|
|
28
28
|
* 会话频道上的总线消息:
|
|
29
29
|
* - `events`:会话日志已推进到 `toSeq`(订阅方据此 `readAfter` 补读,消息本身不携带事件);
|
|
30
30
|
* - `delta`:运行的流式增量(文本 / 思考 / `step_reset`:丢弃该步此前推出的增量),只是草稿,
|
|
31
|
-
* 最终内容以日志中的 assistant_message 为准。`offset
|
|
32
|
-
*
|
|
31
|
+
* 最终内容以日志中的 assistant_message 为准。`offset` (text and thinking): the characters of
|
|
32
|
+
* that channel this attempt of the step streamed before the delta; a subscriber that joined midway
|
|
33
|
+
* tells by it whether it has the step's text from the start (the channel outbound only drafts
|
|
34
|
+
* complete text) and drops what a live draft already covers (spec 2026-11-07 §3.2);
|
|
33
35
|
* - `ui`:插件经 `ctx.ui.invalidate` 告知这个会话的某个界面贡献变了(不进日志、不是模型可见内容),
|
|
34
36
|
* SSE 转发为 `event: ui`,网页据此重新取视图。
|
|
35
|
-
* - `subagent_progress`: after each step of a sub-agent run, on
|
|
36
|
-
* spec §14.2
|
|
37
|
-
* log; the SSE forwards it as
|
|
37
|
+
* - `subagent_progress`: after each step of a sub-agent run, on the topic of **every ancestor**
|
|
38
|
+
* (sub-agents spec §14.2, agent map spec §8), `subagentId` the progressing agent: its step and
|
|
39
|
+
* tool call count so far, and its last tool's key. Not in any log; the SSE forwards it as
|
|
40
|
+
* `event: subagent_progress` (data without `kind`).
|
|
38
41
|
*/
|
|
39
42
|
export type ConversationBusMessage = {
|
|
40
43
|
kind: "events";
|
|
@@ -64,7 +67,7 @@ export type ConversationBusMessage = {
|
|
|
64
67
|
* What changed about a conversation outside its event log (UI refresh B): the SSE stream sends it as
|
|
65
68
|
* `event: changed` with `{ what }`, and the web refetches that part. Never model-visible.
|
|
66
69
|
*/
|
|
67
|
-
export declare const CONVERSATION_CHANGES: readonly ["title", "queue", "selection", "files"];
|
|
70
|
+
export declare const CONVERSATION_CHANGES: readonly ["title", "queue", "selection", "files", "archived", "deleted", "background"];
|
|
68
71
|
export type ConversationChange = (typeof CONVERSATION_CHANGES)[number];
|
|
69
72
|
/**
|
|
70
73
|
* 会话事件日志:只追加,是 agent 运行的唯一事实来源。
|
|
@@ -107,6 +110,18 @@ export declare class EventLog {
|
|
|
107
110
|
publishChanged(conversationId: string, what: ConversationChange): Promise<void>;
|
|
108
111
|
/** 读 `afterSeq` 之后的事件,按 seq 升序,最多 `limit` 条。 */
|
|
109
112
|
readAfter(conversationId: string, afterSeq: number, limit?: number): Promise<ConversationEvent[]>;
|
|
113
|
+
/**
|
|
114
|
+
* The page of the log that ends right before `beforeSeq` (`null`: the log's end), in ascending
|
|
115
|
+
* seq: the last `limit` events before it, extended back so the first event is the log's first or
|
|
116
|
+
* the first one after a run's end (`run_finished` / `run_failed` / `run_aborted`), at most
|
|
117
|
+
* `extend` events further back (a longer run then starts mid-run). `turnsBefore`: how many runs
|
|
118
|
+
* started (distinct `run_id` of `run_started`) before the page's first event. History paging
|
|
119
|
+
* spec §2.
|
|
120
|
+
*/
|
|
121
|
+
readTurnPageBefore(conversationId: string, beforeSeq: number | null, limit: number, extend: number): Promise<{
|
|
122
|
+
events: ConversationEvent[];
|
|
123
|
+
turnsBefore: number;
|
|
124
|
+
}>;
|
|
110
125
|
/**
|
|
111
126
|
* 读 `afterSeq` 之后、属于 `runIds` 中某次运行的事件,按 seq 升序,最多 `limit` 条(轨迹按运行分页用)。
|
|
112
127
|
* `runIds` 为空时返回空数组。走部分索引 `conversation_events_run_idx (conversation_id, run_id, seq)`(0027):
|
|
@@ -41,7 +41,16 @@ export const conversationTopic = (conversationId) => `conv.${conversationId}`;
|
|
|
41
41
|
* What changed about a conversation outside its event log (UI refresh B): the SSE stream sends it as
|
|
42
42
|
* `event: changed` with `{ what }`, and the web refetches that part. Never model-visible.
|
|
43
43
|
*/
|
|
44
|
-
export const CONVERSATION_CHANGES = [
|
|
44
|
+
export const CONVERSATION_CHANGES = [
|
|
45
|
+
"title",
|
|
46
|
+
"queue",
|
|
47
|
+
"selection",
|
|
48
|
+
"files",
|
|
49
|
+
"archived",
|
|
50
|
+
"deleted",
|
|
51
|
+
// the conversation's background tasks (or its sub-agents')
|
|
52
|
+
"background",
|
|
53
|
+
];
|
|
45
54
|
const notFound = () => new ApiError("conversation.not_found", "Conversation not found");
|
|
46
55
|
function toEvent(r) {
|
|
47
56
|
return {
|
|
@@ -146,6 +155,66 @@ let EventLog = class EventLog {
|
|
|
146
155
|
.execute();
|
|
147
156
|
return rows.map(toEvent);
|
|
148
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* The page of the log that ends right before `beforeSeq` (`null`: the log's end), in ascending
|
|
160
|
+
* seq: the last `limit` events before it, extended back so the first event is the log's first or
|
|
161
|
+
* the first one after a run's end (`run_finished` / `run_failed` / `run_aborted`), at most
|
|
162
|
+
* `extend` events further back (a longer run then starts mid-run). `turnsBefore`: how many runs
|
|
163
|
+
* started (distinct `run_id` of `run_started`) before the page's first event. History paging
|
|
164
|
+
* spec §2.
|
|
165
|
+
*/
|
|
166
|
+
async readTurnPageBefore(conversationId, beforeSeq, limit, extend) {
|
|
167
|
+
let q = this.db
|
|
168
|
+
.selectFrom("conversation_events")
|
|
169
|
+
.select(EVENT_COLUMNS)
|
|
170
|
+
.where("conversation_id", "=", conversationId);
|
|
171
|
+
if (beforeSeq !== null)
|
|
172
|
+
q = q.where("seq", "<", String(beforeSeq));
|
|
173
|
+
const rows = (await q.orderBy("seq", "desc").limit(limit).execute()).reverse();
|
|
174
|
+
const first = rows[0] === undefined ? null : Number(rows[0].seq);
|
|
175
|
+
if (first === null)
|
|
176
|
+
return { events: [], turnsBefore: 0 };
|
|
177
|
+
let start = first;
|
|
178
|
+
if (first > 1) {
|
|
179
|
+
// the latest run end at or before the event just above the page, within the extension
|
|
180
|
+
const end = await this.db
|
|
181
|
+
.selectFrom("conversation_events")
|
|
182
|
+
.select((eb) => eb.fn.max("seq").as("seq"))
|
|
183
|
+
.where("conversation_id", "=", conversationId)
|
|
184
|
+
.where("seq", "<", String(first))
|
|
185
|
+
.where("seq", ">=", String(Math.max(1, first - 1 - extend)))
|
|
186
|
+
.where("type", "in", ["run_finished", "run_failed", "run_aborted"])
|
|
187
|
+
.executeTakeFirst();
|
|
188
|
+
// none within reach: the page starts at the log's start when that is in reach, else mid-run
|
|
189
|
+
if (end?.seq != null)
|
|
190
|
+
start = Number(end.seq) + 1;
|
|
191
|
+
else if (first - 1 <= extend)
|
|
192
|
+
start = 1;
|
|
193
|
+
}
|
|
194
|
+
const head = start < first
|
|
195
|
+
? await this.db
|
|
196
|
+
.selectFrom("conversation_events")
|
|
197
|
+
.select(EVENT_COLUMNS)
|
|
198
|
+
.where("conversation_id", "=", conversationId)
|
|
199
|
+
.where("seq", ">=", String(start))
|
|
200
|
+
.where("seq", "<", String(first))
|
|
201
|
+
.orderBy("seq")
|
|
202
|
+
.execute()
|
|
203
|
+
: [];
|
|
204
|
+
const turns = start > 1
|
|
205
|
+
? await this.db
|
|
206
|
+
.selectFrom("conversation_events")
|
|
207
|
+
.select((eb) => eb.fn.count("run_id").distinct().as("n"))
|
|
208
|
+
.where("conversation_id", "=", conversationId)
|
|
209
|
+
.where("type", "=", "run_started")
|
|
210
|
+
.where("seq", "<", String(start))
|
|
211
|
+
.executeTakeFirst()
|
|
212
|
+
: undefined;
|
|
213
|
+
return {
|
|
214
|
+
events: [...head, ...rows].map(toEvent),
|
|
215
|
+
turnsBefore: Number(turns?.n ?? 0),
|
|
216
|
+
};
|
|
217
|
+
}
|
|
149
218
|
/**
|
|
150
219
|
* 读 `afterSeq` 之后、属于 `runIds` 中某次运行的事件,按 seq 升序,最多 `limit` 条(轨迹按运行分页用)。
|
|
151
220
|
* `runIds` 为空时返回空数组。走部分索引 `conversation_events_run_idx (conversation_id, run_id, seq)`(0027):
|
|
@@ -132,6 +132,19 @@ export declare const ToolViewSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
132
132
|
}, z.core.$strip>>;
|
|
133
133
|
}, z.core.$strip>], "kind">;
|
|
134
134
|
export type ToolView = z.infer<typeof ToolViewSchema>;
|
|
135
|
+
/**
|
|
136
|
+
* How a sub-agent's run ended (`subagent_finished`, a `subagent_delivery` finish). `timed_out`:
|
|
137
|
+
* stopped by the parent's sub-agents wait timeout (`run_aborted.detail`).
|
|
138
|
+
*/
|
|
139
|
+
export declare const SubagentFinishStatusSchema: z.ZodEnum<{
|
|
140
|
+
aborted: "aborted";
|
|
141
|
+
budget: "budget";
|
|
142
|
+
completed: "completed";
|
|
143
|
+
failed: "failed";
|
|
144
|
+
max_duration: "max_duration";
|
|
145
|
+
max_steps: "max_steps";
|
|
146
|
+
timed_out: "timed_out";
|
|
147
|
+
}>;
|
|
135
148
|
/**
|
|
136
149
|
* 会话事件(`type` + `payload`)的判别联合。事件日志只追加,写入前用它校验 payload;
|
|
137
150
|
* 读出时按写入时的形状原样返回。
|
|
@@ -223,6 +236,10 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
223
236
|
parentConversationId: z.ZodString;
|
|
224
237
|
parentRunId: z.ZodString;
|
|
225
238
|
callId: z.ZodString;
|
|
239
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
240
|
+
message: "message";
|
|
241
|
+
task: "task";
|
|
242
|
+
}>>;
|
|
226
243
|
narrowed: z.ZodOptional<z.ZodObject<{
|
|
227
244
|
tools: z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
228
245
|
kind: z.ZodLiteral<"builtin">;
|
|
@@ -272,6 +289,12 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
272
289
|
model: z.ZodString;
|
|
273
290
|
}, z.core.$strip>;
|
|
274
291
|
triggerAccountId: z.ZodString;
|
|
292
|
+
trigger: z.ZodOptional<z.ZodEnum<{
|
|
293
|
+
background_task: "background_task";
|
|
294
|
+
message: "message";
|
|
295
|
+
subagent: "subagent";
|
|
296
|
+
}>>;
|
|
297
|
+
triggerSeq: z.ZodOptional<z.ZodNumber>;
|
|
275
298
|
}, z.core.$strip>;
|
|
276
299
|
}, z.core.$strip>, z.ZodObject<{
|
|
277
300
|
type: z.ZodLiteral<"model_call">;
|
|
@@ -406,7 +429,9 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
406
429
|
purpose: z.ZodOptional<z.ZodEnum<{
|
|
407
430
|
compaction: "compaction";
|
|
408
431
|
title: "title";
|
|
432
|
+
web_fetch: "web_fetch";
|
|
409
433
|
}>>;
|
|
434
|
+
callId: z.ZodOptional<z.ZodString>;
|
|
410
435
|
}, z.core.$strip>;
|
|
411
436
|
}, z.core.$strip>, z.ZodObject<{
|
|
412
437
|
type: z.ZodLiteral<"reminder">;
|
|
@@ -414,6 +439,13 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
414
439
|
step: z.ZodNumber;
|
|
415
440
|
text: z.ZodString;
|
|
416
441
|
}, z.core.$strip>;
|
|
442
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
443
|
+
type: z.ZodLiteral<"tools_changed">;
|
|
444
|
+
payload: z.ZodObject<{
|
|
445
|
+
step: z.ZodNumber;
|
|
446
|
+
added: z.ZodArray<z.ZodString>;
|
|
447
|
+
removed: z.ZodArray<z.ZodString>;
|
|
448
|
+
}, z.core.$strip>;
|
|
417
449
|
}, z.core.$strip>, z.ZodObject<{
|
|
418
450
|
type: z.ZodLiteral<"tool_call_started">;
|
|
419
451
|
payload: z.ZodObject<{
|
|
@@ -496,6 +528,13 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
496
528
|
}, z.core.$strip>, z.ZodObject<{
|
|
497
529
|
type: z.ZodLiteral<"approval_requested">;
|
|
498
530
|
payload: z.ZodObject<{
|
|
531
|
+
requestedFor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
532
|
+
approverRole: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
533
|
+
admin: "admin";
|
|
534
|
+
guest: "guest";
|
|
535
|
+
member: "member";
|
|
536
|
+
owner: "owner";
|
|
537
|
+
}>>>;
|
|
499
538
|
step: z.ZodNumber;
|
|
500
539
|
callId: z.ZodString;
|
|
501
540
|
approvalId: z.ZodString;
|
|
@@ -649,6 +688,7 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
649
688
|
id: z.ZodOptional<z.ZodString>;
|
|
650
689
|
version: z.ZodOptional<z.ZodNumber>;
|
|
651
690
|
plugin: z.ZodOptional<z.ZodString>;
|
|
691
|
+
platformTemplateId: z.ZodOptional<z.ZodString>;
|
|
652
692
|
invokedSkill: z.ZodOptional<z.ZodObject<{
|
|
653
693
|
id: z.ZodString;
|
|
654
694
|
version: z.ZodNumber;
|
|
@@ -659,6 +699,10 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
659
699
|
name: z.ZodString;
|
|
660
700
|
avatarUrl: z.ZodDefault<z.ZodNullable<z.ZodURL>>;
|
|
661
701
|
instructions: z.ZodDefault<z.ZodString>;
|
|
702
|
+
instructionFiles: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
703
|
+
name: z.ZodString;
|
|
704
|
+
content: z.ZodString;
|
|
705
|
+
}, z.core.$strict>>>;
|
|
662
706
|
model: z.ZodObject<{
|
|
663
707
|
provider: z.ZodString;
|
|
664
708
|
model: z.ZodString;
|
|
@@ -729,6 +773,28 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
729
773
|
}, z.core.$strict>>>;
|
|
730
774
|
dispatchable: z.ZodOptional<z.ZodBoolean>;
|
|
731
775
|
}, z.core.$strict>>;
|
|
776
|
+
pendingConnectors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
777
|
+
key: z.ZodString;
|
|
778
|
+
label: z.ZodString;
|
|
779
|
+
source: z.ZodUnion<readonly [z.ZodObject<{
|
|
780
|
+
template: z.ZodString;
|
|
781
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
782
|
+
needs: z.ZodObject<{
|
|
783
|
+
protocol: z.ZodEnum<{
|
|
784
|
+
mcp: "mcp";
|
|
785
|
+
openapi: "openapi";
|
|
786
|
+
}>;
|
|
787
|
+
endpoint: z.ZodString;
|
|
788
|
+
tools: z.ZodArray<z.ZodString>;
|
|
789
|
+
label: z.ZodString;
|
|
790
|
+
}, z.core.$strict>;
|
|
791
|
+
}, z.core.$strict>]>;
|
|
792
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
793
|
+
policies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
794
|
+
ask: "ask";
|
|
795
|
+
deny: "deny";
|
|
796
|
+
}>>>;
|
|
797
|
+
}, z.core.$strict>>>;
|
|
732
798
|
}, z.core.$strip>;
|
|
733
799
|
preamble: z.ZodString;
|
|
734
800
|
maxSteps: z.ZodNumber;
|
|
@@ -754,8 +820,16 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
754
820
|
}, z.core.$strip>, z.ZodObject<{
|
|
755
821
|
type: z.ZodLiteral<"subagent_waiting">;
|
|
756
822
|
payload: z.ZodObject<{
|
|
823
|
+
requestedFor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
824
|
+
approverRole: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
825
|
+
admin: "admin";
|
|
826
|
+
guest: "guest";
|
|
827
|
+
member: "member";
|
|
828
|
+
owner: "owner";
|
|
829
|
+
}>>>;
|
|
757
830
|
subagentId: z.ZodString;
|
|
758
831
|
childRunId: z.ZodString;
|
|
832
|
+
path: z.ZodArray<z.ZodString>;
|
|
759
833
|
kind: z.ZodEnum<{
|
|
760
834
|
approval: "approval";
|
|
761
835
|
connect: "connect";
|
|
@@ -791,6 +865,35 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
791
865
|
cacheWriteTokens: z.ZodNumber;
|
|
792
866
|
}, z.core.$strip>;
|
|
793
867
|
}, z.core.$strip>;
|
|
868
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
869
|
+
type: z.ZodLiteral<"subagent_delivery">;
|
|
870
|
+
payload: z.ZodObject<{
|
|
871
|
+
subagentId: z.ZodString;
|
|
872
|
+
childRunId: z.ZodString;
|
|
873
|
+
description: z.ZodString;
|
|
874
|
+
kind: z.ZodEnum<{
|
|
875
|
+
finished: "finished";
|
|
876
|
+
note: "note";
|
|
877
|
+
report: "report";
|
|
878
|
+
}>;
|
|
879
|
+
text: z.ZodString;
|
|
880
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
881
|
+
aborted: "aborted";
|
|
882
|
+
budget: "budget";
|
|
883
|
+
completed: "completed";
|
|
884
|
+
failed: "failed";
|
|
885
|
+
max_duration: "max_duration";
|
|
886
|
+
max_steps: "max_steps";
|
|
887
|
+
timed_out: "timed_out";
|
|
888
|
+
}>>;
|
|
889
|
+
handedBack: z.ZodOptional<z.ZodBoolean>;
|
|
890
|
+
errorCode: z.ZodOptional<z.ZodString>;
|
|
891
|
+
abortedBy: z.ZodOptional<z.ZodEnum<{
|
|
892
|
+
parent: "parent";
|
|
893
|
+
user: "user";
|
|
894
|
+
}>>;
|
|
895
|
+
triggerAccountId: z.ZodString;
|
|
896
|
+
}, z.core.$strip>;
|
|
794
897
|
}, z.core.$strip>, z.ZodObject<{
|
|
795
898
|
type: z.ZodLiteral<"skill_fork_result">;
|
|
796
899
|
payload: z.ZodObject<{
|
|
@@ -799,6 +902,30 @@ export declare const ConversationEventSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
799
902
|
childRunId: z.ZodOptional<z.ZodString>;
|
|
800
903
|
text: z.ZodString;
|
|
801
904
|
}, z.core.$strip>;
|
|
905
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
906
|
+
type: z.ZodLiteral<"background_task_finished">;
|
|
907
|
+
payload: z.ZodObject<{
|
|
908
|
+
taskId: z.ZodString;
|
|
909
|
+
description: z.ZodString;
|
|
910
|
+
status: z.ZodEnum<{
|
|
911
|
+
completed: "completed";
|
|
912
|
+
failed: "failed";
|
|
913
|
+
lost: "lost";
|
|
914
|
+
stopped: "stopped";
|
|
915
|
+
timed_out: "timed_out";
|
|
916
|
+
}>;
|
|
917
|
+
exitCode: z.ZodNullable<z.ZodNumber>;
|
|
918
|
+
elapsedMs: z.ZodNumber;
|
|
919
|
+
lastLines: z.ZodString;
|
|
920
|
+
outputPath: z.ZodString;
|
|
921
|
+
reported: z.ZodBoolean;
|
|
922
|
+
lostReason: z.ZodOptional<z.ZodString>;
|
|
923
|
+
stoppedBy: z.ZodOptional<z.ZodEnum<{
|
|
924
|
+
deletion: "deletion";
|
|
925
|
+
person: "person";
|
|
926
|
+
subagent_end: "subagent_end";
|
|
927
|
+
}>>;
|
|
928
|
+
}, z.core.$strip>;
|
|
802
929
|
}, z.core.$strip>, z.ZodObject<{
|
|
803
930
|
type: z.ZodLiteral<"compaction_summary">;
|
|
804
931
|
payload: z.ZodObject<{
|
|
@@ -859,6 +986,19 @@ export type ConversationEvent = ConversationEventBody & {
|
|
|
859
986
|
runId: string | null;
|
|
860
987
|
createdAt: Date;
|
|
861
988
|
};
|
|
989
|
+
/**
|
|
990
|
+
* An event a run absorbs at a step boundary: a person's message, a finished background task or a
|
|
991
|
+
* sub-agent's delivery.
|
|
992
|
+
*/
|
|
993
|
+
export type AbsorbableEvent = Extract<ConversationEvent, {
|
|
994
|
+
type: "user_message" | "background_task_finished" | "subagent_delivery";
|
|
995
|
+
}>;
|
|
996
|
+
/**
|
|
997
|
+
* Whether `e` is absorbed like an interjection (spec 2026-11-05-background-bash-design §2.4): the
|
|
998
|
+
* loop takes it at its next step boundary, `consumed_seq` moves past it, and request building
|
|
999
|
+
* places it where the model call that absorbed it was built.
|
|
1000
|
+
*/
|
|
1001
|
+
export declare const isAbsorbable: (e: ConversationEvent) => e is AbsorbableEvent;
|
|
862
1002
|
/**
|
|
863
1003
|
* What the person typed for a skill invocation (phase D): `/<plugin>:<name> <arguments>` (no
|
|
864
1004
|
* plugin: `/<name>`). Titles and eval case titles use it instead of the rendered skill in
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DOCUMENT_MEDIA_TYPES, hasControlChars, IMAGE_MEDIA_TYPES, isAttachmentId, isSkillName, MEDIA_NAME_MAX_CHARS, } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { AgentDefinitionSchema, AgentToolRef, ModelRef } from "../agents/definition.js";
|
|
4
|
+
import { ORG_ROLES } from "../orgs/roles.js";
|
|
4
5
|
import { TOOL_VIEW_DIFF_MAX_LINES, TOOL_VIEW_LINE_MAX_CHARS, TOOL_VIEW_PATH_MAX_CHARS, } from "../tools/view.js";
|
|
5
6
|
/** 供应商私有数据(`ProviderOpaque`):原样保存、只回放给同一供应商。 */
|
|
6
7
|
const ProviderOpaqueSchema = z.object({
|
|
@@ -17,6 +18,15 @@ const RefMediaSourceSchema = z.object({
|
|
|
17
18
|
kind: z.literal("ref"),
|
|
18
19
|
attachmentId: AttachmentIdSchema,
|
|
19
20
|
});
|
|
21
|
+
/**
|
|
22
|
+
* Who may decide an approval, as the approval row says (display only, absent in older logs): the
|
|
23
|
+
* assigned account (`requestedFor`), else the escalation role (`approverRole`). Pages word the
|
|
24
|
+
* waiting state with it ("等待 张三 批准") for viewers who cannot decide.
|
|
25
|
+
*/
|
|
26
|
+
const ApproverFields = {
|
|
27
|
+
requestedFor: z.string().nullable().optional(),
|
|
28
|
+
approverRole: z.enum(ORG_ROLES).nullable().optional(),
|
|
29
|
+
};
|
|
20
30
|
/** The longest deny reason (characters): the decision route's limit and `approval_decided.reason`'s. */
|
|
21
31
|
export const APPROVAL_DENY_REASON_MAX_CHARS = 500;
|
|
22
32
|
/** 一条 `media_excluded` 事件最多的附件数。 */
|
|
@@ -134,6 +144,19 @@ const ModelUsageShape = {
|
|
|
134
144
|
cacheReadTokens: count,
|
|
135
145
|
cacheWriteTokens: count,
|
|
136
146
|
};
|
|
147
|
+
/**
|
|
148
|
+
* How a sub-agent's run ended (`subagent_finished`, a `subagent_delivery` finish). `timed_out`:
|
|
149
|
+
* stopped by the parent's sub-agents wait timeout (`run_aborted.detail`).
|
|
150
|
+
*/
|
|
151
|
+
export const SubagentFinishStatusSchema = z.enum([
|
|
152
|
+
"completed",
|
|
153
|
+
"max_steps",
|
|
154
|
+
"max_duration",
|
|
155
|
+
"budget",
|
|
156
|
+
"aborted",
|
|
157
|
+
"timed_out",
|
|
158
|
+
"failed",
|
|
159
|
+
]);
|
|
137
160
|
/** 双语或纯文本(plugin-sdk `InputForm` 的文案字段)。 */
|
|
138
161
|
const FormTextSchema = z.union([z.string(), z.object({ zh: z.string(), en: z.string() })]);
|
|
139
162
|
/** 交互表单(plugin-sdk 的 `InputForm`;字段 schema 已由 `validateInputForm` 校验过,这里只记形状)。 */
|
|
@@ -203,6 +226,11 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
|
|
|
203
226
|
parentConversationId: z.string(),
|
|
204
227
|
parentRunId: z.string(),
|
|
205
228
|
callId: z.string(),
|
|
229
|
+
/**
|
|
230
|
+
* `message`: sent by the parent agent with `SendMessage` (agent map spec §5.1); absent or
|
|
231
|
+
* `task`: the task of a dispatch or follow-up.
|
|
232
|
+
*/
|
|
233
|
+
kind: z.enum(["task", "message"]).optional(),
|
|
206
234
|
/**
|
|
207
235
|
* A follow-up (`resume`, final review I1): the frozen tools and org skills intersected
|
|
208
236
|
* with the current version (`narrowFollowUp`); the child's run uses these instead of
|
|
@@ -239,6 +267,18 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
|
|
|
239
267
|
agentVersion: z.number().int().positive(),
|
|
240
268
|
model: ModelRef,
|
|
241
269
|
triggerAccountId: z.string(),
|
|
270
|
+
/**
|
|
271
|
+
* What started the run (display only): absent or `message` = a person's message (or a
|
|
272
|
+
* sub-agent's task), `background_task` = a finished background task woke the conversation
|
|
273
|
+
* (spec 2026-11-05-background-bash-design §3), `subagent` = a sub-agent's delivery woke it
|
|
274
|
+
* (agent map spec §5.3).
|
|
275
|
+
*/
|
|
276
|
+
trigger: z.enum(["message", "background_task", "subagent"]).optional(),
|
|
277
|
+
/**
|
|
278
|
+
* A wake run's boundary: the seq of the finish or delivery that woke it (full-run replay
|
|
279
|
+
* seeds from it).
|
|
280
|
+
*/
|
|
281
|
+
triggerSeq: seqNo.optional(),
|
|
242
282
|
})),
|
|
243
283
|
ev("model_call", z.object({
|
|
244
284
|
step: count,
|
|
@@ -326,16 +366,27 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
|
|
|
326
366
|
* Usage of one model call. Absent `purpose` = the step's call (written with its
|
|
327
367
|
* `assistant_message`); `compaction` = the compaction call before the step (I-1: billed and
|
|
328
368
|
* reported, but no step consumer may pair it with the step's `model_call`); `title` = the
|
|
329
|
-
* conversation title call (UI refresh B: no run, `step` 0, not model-visible, billed and reported)
|
|
369
|
+
* conversation title call (UI refresh B: no run, `step` 0, not model-visible, billed and reported);
|
|
370
|
+
* `web_fetch` = a `WebFetch` extraction call (web tools spec §5: the tool call's run and step,
|
|
371
|
+
* `callId` = the call; not model-visible, billed and reported, counted on a sub-agent's parent).
|
|
330
372
|
*/
|
|
331
373
|
ev("usage", z.object({
|
|
332
374
|
step: count,
|
|
333
375
|
provider: z.string(),
|
|
334
376
|
model: z.string(),
|
|
335
377
|
...ModelUsageShape,
|
|
336
|
-
purpose: z.enum(["compaction", "title"]).optional(),
|
|
378
|
+
purpose: z.enum(["compaction", "title", "web_fetch"]).optional(),
|
|
379
|
+
/** The tool call a `web_fetch` usage belongs to. */
|
|
380
|
+
callId: z.string().optional(),
|
|
337
381
|
})),
|
|
338
382
|
ev("reminder", z.object({ step: count, text: z.string() })),
|
|
383
|
+
/**
|
|
384
|
+
* The step's resolved tool set differs from the one the conversation's previous model request
|
|
385
|
+
* offered (`toolSetChange`): tool names as the model sees them, sorted. Written before that
|
|
386
|
+
* step's request, never before a conversation's first one. **Model-visible**: rendered at its
|
|
387
|
+
* position as a system message (`toolsChangedText`); dropped once a summary covers it.
|
|
388
|
+
*/
|
|
389
|
+
ev("tools_changed", z.object({ step: count, added: z.array(z.string()), removed: z.array(z.string()) })),
|
|
339
390
|
/** 工具调用开始执行之前写入(续跑时「有开始无结果」的调用记为结果未知,不再执行)。 */
|
|
340
391
|
ev("tool_call_started", z.object({ step: count, callId: z.string(), toolKey: z.string(), specHash: z.string() })),
|
|
341
392
|
/**
|
|
@@ -392,6 +443,7 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
|
|
|
392
443
|
expiresAt: z.string(),
|
|
393
444
|
/** Which rule asked (UI refresh B; display only, absent in older logs). */
|
|
394
445
|
policy: z.enum(["agent", "connector", "default", "role", "org", "fixed"]).optional(),
|
|
446
|
+
...ApproverFields,
|
|
395
447
|
})),
|
|
396
448
|
/** 审批已处理(批准 / 拒绝 / 超时 / 取消);`scope` 只在批准时出现,`byAccountId` 为处理人(超时 / 取消为 null)。 */
|
|
397
449
|
ev("approval_decided", z.object({
|
|
@@ -530,6 +582,12 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
|
|
|
530
582
|
id: z.string().optional(),
|
|
531
583
|
version: z.number().int().positive().optional(),
|
|
532
584
|
plugin: z.string().optional(),
|
|
585
|
+
/**
|
|
586
|
+
* Plugin scope phase 2: the platform template whose content a `plugin` child ran (a
|
|
587
|
+
* platform template, or an org copy linked to one, recorded under the copy's `id`). Absent
|
|
588
|
+
* = the org's own template (and in every older event). Eval metadata, not model-visible.
|
|
589
|
+
*/
|
|
590
|
+
platformTemplateId: z.string().optional(),
|
|
533
591
|
/**
|
|
534
592
|
* Phase D: the child runs a forked skill a person invoked (display and eval metadata, not
|
|
535
593
|
* model-visible).
|
|
@@ -566,36 +624,74 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
|
|
|
566
624
|
*/
|
|
567
625
|
invokedSeq: seqNo.optional(),
|
|
568
626
|
})),
|
|
569
|
-
/**
|
|
627
|
+
/**
|
|
628
|
+
* Root log (agent map spec §7): a sub-agent `subagentId` of the tree, at any depth, waits for a
|
|
629
|
+
* person (approval, input or a connection). Not model-visible. `path`: the child conversation ids
|
|
630
|
+
* from the root's child down to `subagentId` (`[subagentId]` for a child of the root); logged under
|
|
631
|
+
* the root run that last dispatched the root's child on that path.
|
|
632
|
+
*/
|
|
570
633
|
ev("subagent_waiting", z.object({
|
|
571
634
|
subagentId: z.string(),
|
|
572
635
|
childRunId: z.string(),
|
|
636
|
+
path: z.array(z.string()).min(1).max(16),
|
|
573
637
|
kind: z.enum(["approval", "input", "connect"]),
|
|
574
638
|
approvalId: z.string().optional(),
|
|
575
639
|
questionId: z.string().optional(),
|
|
576
640
|
toolKey: z.string(),
|
|
577
641
|
expiresAt: z.string().optional(),
|
|
642
|
+
/** An approval's approver (`kind: "approval"`), as in `approval_requested`. */
|
|
643
|
+
...ApproverFields,
|
|
578
644
|
})),
|
|
579
645
|
/** Parent log: a sub-agent's run ended. Not model-visible (its reply is the call's tool_result). */
|
|
580
646
|
ev("subagent_finished", z.object({
|
|
581
647
|
subagentId: z.string(),
|
|
582
648
|
childRunId: z.string(),
|
|
583
649
|
callId: z.string(),
|
|
584
|
-
|
|
585
|
-
status: z.enum([
|
|
586
|
-
"completed",
|
|
587
|
-
"max_steps",
|
|
588
|
-
"max_duration",
|
|
589
|
-
"budget",
|
|
590
|
-
"aborted",
|
|
591
|
-
"timed_out",
|
|
592
|
-
"failed",
|
|
593
|
-
]),
|
|
650
|
+
status: SubagentFinishStatusSchema,
|
|
594
651
|
errorCode: z.string().optional(),
|
|
595
652
|
toolCalls: count,
|
|
596
653
|
durationMs: count,
|
|
597
654
|
usage: z.object(ModelUsageShape),
|
|
598
655
|
})),
|
|
656
|
+
/**
|
|
657
|
+
* Parent log (agent map spec §4.5, §5.2): a sub-agent `subagentId` (its child conversation id)
|
|
658
|
+
* handed back a report (`SubagentHandback`), sent a note (`SendMessage to: "parent"`) or its run
|
|
659
|
+
* `childRunId` finished. **Model-visible**: absorbed like an interjection and rendered as a system
|
|
660
|
+
* message (`renderSubagentDelivery`). A finish after a handback carries `text: ""` and
|
|
661
|
+
* `handedBack: true` and renders as one status line, except that a run that handed back and
|
|
662
|
+
* `completed` writes no finished delivery at all (acceptance 2026-11-07; older logs have one and
|
|
663
|
+
* keep rendering it); a finish without a handback carries the child's
|
|
664
|
+
* final reply, a failed finish its error message (`errorCode` the code), an aborted one no text
|
|
665
|
+
* (`abortedBy` who stopped it), with `subagent_finished`'s vocabulary. `status` is present exactly
|
|
666
|
+
* on `kind: "finished"`. `triggerAccountId`: the child run's trigger account, the one a wake runs
|
|
667
|
+
* as (§7).
|
|
668
|
+
*/
|
|
669
|
+
ev("subagent_delivery", z
|
|
670
|
+
.object({
|
|
671
|
+
subagentId: z.string(),
|
|
672
|
+
childRunId: z.string(),
|
|
673
|
+
description: z.string(),
|
|
674
|
+
kind: z.enum(["report", "note", "finished"]),
|
|
675
|
+
text: z.string().max(200_000),
|
|
676
|
+
/** `kind: "finished"` only (required there). */
|
|
677
|
+
status: SubagentFinishStatusSchema.optional(),
|
|
678
|
+
/** `kind: "finished"` only: a report was handed back before the run finished. */
|
|
679
|
+
handedBack: z.boolean().optional(),
|
|
680
|
+
/** `status: "failed"` only: the child run's error code. */
|
|
681
|
+
errorCode: z.string().optional(),
|
|
682
|
+
/** `status: "aborted"` only: a person stopped it, or the kernel on its parent's behalf. */
|
|
683
|
+
abortedBy: z.enum(["user", "parent"]).optional(),
|
|
684
|
+
triggerAccountId: z.string(),
|
|
685
|
+
})
|
|
686
|
+
.superRefine((p, ctx) => {
|
|
687
|
+
if ((p.kind === "finished") !== (p.status !== undefined)) {
|
|
688
|
+
ctx.addIssue({
|
|
689
|
+
code: "custom",
|
|
690
|
+
path: ["status"],
|
|
691
|
+
message: "status is required on a finished delivery and allowed only there",
|
|
692
|
+
});
|
|
693
|
+
}
|
|
694
|
+
})),
|
|
599
695
|
/**
|
|
600
696
|
* Phase D (spec §6.3): the report of the sub-agent that ran a person's fork invocation
|
|
601
697
|
* (`invokedSeq`), written once (idem `skill_fork_result:<seq>`) before the parent's next model
|
|
@@ -609,6 +705,31 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
|
|
|
609
705
|
childRunId: z.string().optional(),
|
|
610
706
|
text: z.string(),
|
|
611
707
|
})),
|
|
708
|
+
/**
|
|
709
|
+
* A background Bash task ended (spec 2026-11-05-background-bash-design §2). Model-visible: it is
|
|
710
|
+
* absorbed like an interjection and rendered as a system message (`renderBackgroundFinished`).
|
|
711
|
+
* `reported`: a TaskOutput or TaskStop in the same run already told the model; it is absorbed
|
|
712
|
+
* like any other, renders as one short line and never wakes a run. `lastLines` is the tail of
|
|
713
|
+
* the task's output.
|
|
714
|
+
*/
|
|
715
|
+
ev("background_task_finished", z.object({
|
|
716
|
+
taskId: z.string().min(1).max(64),
|
|
717
|
+
description: z.string(),
|
|
718
|
+
status: z.enum(["completed", "failed", "stopped", "timed_out", "lost"]),
|
|
719
|
+
exitCode: z.number().int().nullable(),
|
|
720
|
+
elapsedMs: count,
|
|
721
|
+
lastLines: z.string().max(4000),
|
|
722
|
+
outputPath: z.string(),
|
|
723
|
+
reported: z.boolean(),
|
|
724
|
+
lostReason: z.string().optional(),
|
|
725
|
+
/**
|
|
726
|
+
* The finish never wakes a run, but the next run absorbs it like any other (background
|
|
727
|
+
* Bash §3): `person`, a person stopped the task (the conversation's background section);
|
|
728
|
+
* `deletion`, the conversation was being deleted; `subagent_end`, the sub-agent that owns it
|
|
729
|
+
* ended (a fork's run, or a stopped background sub-agent; agent map spec §5.3).
|
|
730
|
+
*/
|
|
731
|
+
stoppedBy: z.enum(["person", "deletion", "subagent_end"]).optional(),
|
|
732
|
+
})),
|
|
612
733
|
ev("compaction_summary", z.object({ coversUpToSeq: seqNo, text: z.string() })),
|
|
613
734
|
ev("compaction_failed", z.object({ attempt: count, reason: z.string() })),
|
|
614
735
|
ev("run_finished", z.object({
|
|
@@ -630,6 +751,14 @@ export const ConversationEventSchema = z.discriminatedUnion("type", [
|
|
|
630
751
|
.optional(),
|
|
631
752
|
})),
|
|
632
753
|
]);
|
|
754
|
+
/**
|
|
755
|
+
* Whether `e` is absorbed like an interjection (spec 2026-11-05-background-bash-design §2.4): the
|
|
756
|
+
* loop takes it at its next step boundary, `consumed_seq` moves past it, and request building
|
|
757
|
+
* places it where the model call that absorbed it was built.
|
|
758
|
+
*/
|
|
759
|
+
export const isAbsorbable = (e) => e.type === "user_message" ||
|
|
760
|
+
e.type === "background_task_finished" ||
|
|
761
|
+
e.type === "subagent_delivery";
|
|
633
762
|
/**
|
|
634
763
|
* What the person typed for a skill invocation (phase D): `/<plugin>:<name> <arguments>` (no
|
|
635
764
|
* plugin: `/<name>`). Titles and eval case titles use it instead of the rendered skill in
|
|
@@ -125,6 +125,7 @@ export declare function queuedUserMessage(r: QueueRow): AppendEvent;
|
|
|
125
125
|
export declare function appendQueuedIn(t: KernelTrx, eventLog: Pick<EventLog, "appendIn">, conversationId: string, r: QueueRow): Promise<{
|
|
126
126
|
event: ConversationEvent;
|
|
127
127
|
switched: boolean;
|
|
128
|
+
unarchived: boolean;
|
|
128
129
|
}>;
|
|
129
130
|
/**
|
|
130
131
|
* Why a queued item's skill can no longer be invoked, or null (also null for a plain message).
|
|
@@ -145,11 +146,12 @@ export declare const queueFull: () => ApiError;
|
|
|
145
146
|
* when the queue is empty. An item whose message is already in the log (a retried enqueue after it
|
|
146
147
|
* was sent) is dropped and the next one is taken. A head item whose skill can no longer be invoked
|
|
147
148
|
* stays queued and the queue pauses (`skill_not_invocable`): `{ paused }`. The caller notifies
|
|
148
|
-
* after commit.
|
|
149
|
+
* after commit (and publishes `archived` when the send unarchived the conversation).
|
|
149
150
|
*/
|
|
150
151
|
export declare function dispatchQueuedIn(t: KernelTrx, eventLog: Pick<EventLog, "appendIn">, conversationId: string): Promise<{
|
|
151
152
|
event: ConversationEvent;
|
|
152
153
|
switched: boolean;
|
|
154
|
+
unarchived: boolean;
|
|
153
155
|
} | {
|
|
154
156
|
paused: QueuePauseReason;
|
|
155
157
|
} | null>;
|