@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
|
@@ -129,7 +129,18 @@ export async function appendQueuedIn(t, eventLog, conversationId, r) {
|
|
|
129
129
|
.where("id", "=", conversationId)
|
|
130
130
|
.execute();
|
|
131
131
|
}
|
|
132
|
-
|
|
132
|
+
// As a direct send: the message brings an archived conversation back into the default lists
|
|
133
|
+
const unarchived = await t
|
|
134
|
+
.updateTable("conversations")
|
|
135
|
+
.set({ archived_at: null })
|
|
136
|
+
.where("id", "=", conversationId)
|
|
137
|
+
.where("archived_at", "is not", null)
|
|
138
|
+
.executeTakeFirst();
|
|
139
|
+
return {
|
|
140
|
+
event: written.at(-1),
|
|
141
|
+
switched: next !== null,
|
|
142
|
+
unarchived: Number(unarchived.numUpdatedRows) > 0,
|
|
143
|
+
};
|
|
133
144
|
}
|
|
134
145
|
/** The model of the conversation agent's current version (inside `t`). */
|
|
135
146
|
async function agentModel(t, conversationId) {
|
|
@@ -206,7 +217,7 @@ export const queueFull = () => new ApiError("conversation.queue_full", `A conver
|
|
|
206
217
|
* when the queue is empty. An item whose message is already in the log (a retried enqueue after it
|
|
207
218
|
* was sent) is dropped and the next one is taken. A head item whose skill can no longer be invoked
|
|
208
219
|
* stays queued and the queue pauses (`skill_not_invocable`): `{ paused }`. The caller notifies
|
|
209
|
-
* after commit.
|
|
220
|
+
* after commit (and publishes `archived` when the send unarchived the conversation).
|
|
210
221
|
*/
|
|
211
222
|
export async function dispatchQueuedIn(t, eventLog, conversationId) {
|
|
212
223
|
for (;;) {
|
|
@@ -17,7 +17,7 @@ export declare class ConversationQueue {
|
|
|
17
17
|
readonly txHost: TransactionHost;
|
|
18
18
|
constructor(db: KernelDb, eventLog: Pick<EventLog, "appendIn" | "notify" | "publishChanged" | "findByIdem">, conversations: Pick<ConversationsService, "get" | "writable" | "resolveExtra" | "bindIn" | "checkPick" | "prepareQueuedSkill">,
|
|
19
19
|
/** Starts the conversation's next run (`ensureRun`). */
|
|
20
|
-
runs: Pick<RunControl, "ensureRun">, txHost: TransactionHost);
|
|
20
|
+
runs: Pick<RunControl, "ensureRun" | "wakeHeldTree">, txHost: TransactionHost);
|
|
21
21
|
list(orgId: string, conversationId: string, accountId: string): Promise<{
|
|
22
22
|
items: QueueItem[];
|
|
23
23
|
paused: boolean;
|
|
@@ -218,6 +218,8 @@ let ConversationQueue = class ConversationQueue {
|
|
|
218
218
|
await this.conversations.writable(orgId, conversationId, accountId);
|
|
219
219
|
await this.removeIn(conversationId, itemId);
|
|
220
220
|
await this.eventLog.publishChanged(conversationId, "queue");
|
|
221
|
+
// removing the last item unpauses the queue: the wakes it held for the tree go out
|
|
222
|
+
await this.runs.wakeHeldTree(conversationId);
|
|
221
223
|
}
|
|
222
224
|
// its own transaction: the caller notifies and publishes after the commit
|
|
223
225
|
async removeIn(conversationId, itemId) {
|
|
@@ -240,13 +242,16 @@ let ConversationQueue = class ConversationQueue {
|
|
|
240
242
|
*/
|
|
241
243
|
async sendNow(orgId, conversationId, accountId, itemId) {
|
|
242
244
|
await this.conversations.writable(orgId, conversationId, accountId);
|
|
243
|
-
const { event, fresh, switched } = await this.sendNowIn(conversationId, itemId);
|
|
245
|
+
const { event, fresh, switched, unarchived } = await this.sendNowIn(conversationId, itemId);
|
|
244
246
|
if (fresh)
|
|
245
247
|
await this.eventLog.notify(conversationId, event.seq);
|
|
246
248
|
if (switched)
|
|
247
249
|
await this.eventLog.publishChanged(conversationId, "selection");
|
|
250
|
+
if (unarchived)
|
|
251
|
+
await this.eventLog.publishChanged(conversationId, "archived");
|
|
248
252
|
await this.eventLog.publishChanged(conversationId, "queue");
|
|
249
253
|
await this.runs.ensureRun(conversationId);
|
|
254
|
+
await this.runs.wakeHeldTree(conversationId);
|
|
250
255
|
return event;
|
|
251
256
|
}
|
|
252
257
|
// its own transaction: the caller notifies and publishes after the commit
|
|
@@ -291,6 +296,8 @@ let ConversationQueue = class ConversationQueue {
|
|
|
291
296
|
.execute();
|
|
292
297
|
await this.eventLog.publishChanged(conversationId, "queue");
|
|
293
298
|
await this.runs.ensureRun(conversationId);
|
|
299
|
+
// a paused root holds the wakes of its whole tree (agent map spec §5.3)
|
|
300
|
+
await this.runs.wakeHeldTree(conversationId);
|
|
294
301
|
}
|
|
295
302
|
/** A queued item or a sent message for this client id (outside any transaction). */
|
|
296
303
|
async prior(conversationId, clientMessageId) {
|
|
@@ -29,10 +29,19 @@ export declare const titleJobId: (conversationId: string, attempt: number) => st
|
|
|
29
29
|
export declare const TITLE_MAX_ATTEMPTS = 3;
|
|
30
30
|
/** Output cap of the title call. */
|
|
31
31
|
export declare const TITLE_MAX_OUTPUT_TOKENS = 32;
|
|
32
|
-
/** The longest
|
|
32
|
+
/** The longest title a person can give by renaming (characters). */
|
|
33
33
|
export declare const TITLE_MAX_CHARS = 120;
|
|
34
|
+
/** The longest generated title by display width (CJK and emoji count 2: ~24 CJK / 48 Latin). */
|
|
35
|
+
export declare const TITLE_MAX_WIDTH = 48;
|
|
34
36
|
/** Each side of the excerpt is cut to this many characters. */
|
|
35
37
|
export declare const TITLE_EXCERPT_CHARS = 1000;
|
|
38
|
+
/**
|
|
39
|
+
* Parameters of the title call where the target model declares them and the `title` purpose does
|
|
40
|
+
* not set them: no thinking, so the {@link TITLE_MAX_OUTPUT_TOKENS} budget goes to the title.
|
|
41
|
+
*/
|
|
42
|
+
export declare const TITLE_PARAM_DEFAULTS: {
|
|
43
|
+
readonly thinking: "off";
|
|
44
|
+
};
|
|
36
45
|
/** Time limit of one title call. */
|
|
37
46
|
export declare const TITLE_TIMEOUT_MS = 60000;
|
|
38
47
|
/** The system prompt of the title call (model-facing, English). */
|
|
@@ -41,8 +50,8 @@ export declare const TITLE_PROMPT: string;
|
|
|
41
50
|
export declare function titleExcerpt(firstUser: string, firstReply: string): string;
|
|
42
51
|
/**
|
|
43
52
|
* The title from a model reply: the first non-empty line, without control or format characters,
|
|
44
|
-
* wrapping quotes or trailing punctuation, at most {@link
|
|
45
|
-
* nothing is left.
|
|
53
|
+
* wrapping quotes or trailing punctuation, at most {@link TITLE_MAX_WIDTH} display width (cut on a
|
|
54
|
+
* character boundary, no ellipsis); null when nothing is left.
|
|
46
55
|
*/
|
|
47
56
|
export declare function cleanTitle(reply: string): string | null;
|
|
48
57
|
export interface TitleDeps {
|
|
@@ -47,10 +47,17 @@ export const titleJobId = (conversationId, attempt) => `title-${conversationId}-
|
|
|
47
47
|
export const TITLE_MAX_ATTEMPTS = 3;
|
|
48
48
|
/** Output cap of the title call. */
|
|
49
49
|
export const TITLE_MAX_OUTPUT_TOKENS = 32;
|
|
50
|
-
/** The longest
|
|
50
|
+
/** The longest title a person can give by renaming (characters). */
|
|
51
51
|
export const TITLE_MAX_CHARS = 120;
|
|
52
|
+
/** The longest generated title by display width (CJK and emoji count 2: ~24 CJK / 48 Latin). */
|
|
53
|
+
export const TITLE_MAX_WIDTH = 48;
|
|
52
54
|
/** Each side of the excerpt is cut to this many characters. */
|
|
53
55
|
export const TITLE_EXCERPT_CHARS = 1000;
|
|
56
|
+
/**
|
|
57
|
+
* Parameters of the title call where the target model declares them and the `title` purpose does
|
|
58
|
+
* not set them: no thinking, so the {@link TITLE_MAX_OUTPUT_TOKENS} budget goes to the title.
|
|
59
|
+
*/
|
|
60
|
+
export const TITLE_PARAM_DEFAULTS = { thinking: "off" };
|
|
54
61
|
/** Time limit of one title call. */
|
|
55
62
|
export const TITLE_TIMEOUT_MS = 60_000;
|
|
56
63
|
/** How far into the log the excerpt is looked for (events). */
|
|
@@ -58,8 +65,13 @@ const EXCERPT_SCAN_EVENTS = 2000;
|
|
|
58
65
|
const PAGE = 500;
|
|
59
66
|
const JOB = "title";
|
|
60
67
|
/** The system prompt of the title call (model-facing, English). */
|
|
61
|
-
export const TITLE_PROMPT = "Write a
|
|
68
|
+
export const TITLE_PROMPT = "Write a short topic of what the user asked, not the reply, as a title for this conversation, " +
|
|
69
|
+
"in the language the user writes in. Use a noun phrase of at most 6 words or about 16 CJK " +
|
|
70
|
+
"characters: no sentence, no list. " +
|
|
62
71
|
"Reply with the title only, no quotes or punctuation at the end.";
|
|
72
|
+
const WIDE_RE = /[\u1100-\u115F\u2E80-\u303E\u3041-\u33FF\u3400-\u4DBF\u4E00-\u9FFF\uA000-\uA4CF\uAC00-\uD7A3\uF900-\uFAFF\uFE30-\uFE6F\uFF00-\uFF60\uFFE0-\uFFE6]|\p{Extended_Pictographic}|[\u{20000}-\u{3FFFD}]/u;
|
|
73
|
+
/** Display width of a character: 2 for CJK, fullwidth forms and emoji, else 1. */
|
|
74
|
+
const widthOf = (ch) => (WIDE_RE.test(ch) ? 2 : 1);
|
|
63
75
|
const cut = (s) => {
|
|
64
76
|
const cps = Array.from(s);
|
|
65
77
|
return cps.length <= TITLE_EXCERPT_CHARS ? s : `${cps.slice(0, TITLE_EXCERPT_CHARS).join("")}…`;
|
|
@@ -70,8 +82,8 @@ export function titleExcerpt(firstUser, firstReply) {
|
|
|
70
82
|
}
|
|
71
83
|
/**
|
|
72
84
|
* The title from a model reply: the first non-empty line, without control or format characters,
|
|
73
|
-
* wrapping quotes or trailing punctuation, at most {@link
|
|
74
|
-
* nothing is left.
|
|
85
|
+
* wrapping quotes or trailing punctuation, at most {@link TITLE_MAX_WIDTH} display width (cut on a
|
|
86
|
+
* character boundary, no ellipsis); null when nothing is left.
|
|
75
87
|
*/
|
|
76
88
|
export function cleanTitle(reply) {
|
|
77
89
|
const line = reply
|
|
@@ -86,10 +98,16 @@ export function cleanTitle(reply) {
|
|
|
86
98
|
.replace(/^["'“”‘’「」《》`*]+|["'“”‘’「」《》`*]+$/gu, "")
|
|
87
99
|
.replace(/[.。!!??,,;;::]+$/u, "")
|
|
88
100
|
.trim();
|
|
89
|
-
//
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
101
|
+
// cut by display width over code points, so a cut never splits a surrogate pair
|
|
102
|
+
let width = 0;
|
|
103
|
+
let out = "";
|
|
104
|
+
for (const ch of t) {
|
|
105
|
+
width += widthOf(ch);
|
|
106
|
+
if (width > TITLE_MAX_WIDTH)
|
|
107
|
+
break;
|
|
108
|
+
out += ch;
|
|
109
|
+
}
|
|
110
|
+
t = out.trimEnd();
|
|
93
111
|
return t === "" ? null : t;
|
|
94
112
|
}
|
|
95
113
|
const textOf = (content) => content.flatMap((b) => (b.type === "text" ? [b.text] : [])).join("");
|
|
@@ -204,6 +222,8 @@ export async function runTitleJob(d, conversationId, attempt) {
|
|
|
204
222
|
maxOutputTokens: TITLE_MAX_OUTPUT_TOKENS,
|
|
205
223
|
}, signal, {
|
|
206
224
|
...(fallback && { fallback: { model: fallback, params: {} } }),
|
|
225
|
+
// a thinking model spends the small output budget on thinking and returns no text
|
|
226
|
+
paramDefaults: TITLE_PARAM_DEFAULTS,
|
|
207
227
|
beforeSend: async (target, request) => {
|
|
208
228
|
await checkTitleHooks(d, scope, target, request, signal);
|
|
209
229
|
sent = { ...target, at: Date.now() };
|
|
@@ -246,6 +266,14 @@ export async function runTitleJob(d, conversationId, attempt) {
|
|
|
246
266
|
if (sent && d.hooks)
|
|
247
267
|
observeTitle(d, scope, sent, out, null, signal);
|
|
248
268
|
const title = cleanTitle(textOf(out.content));
|
|
269
|
+
if (title === null) {
|
|
270
|
+
d.log.warn("conversation title call returned no title", {
|
|
271
|
+
conversationId,
|
|
272
|
+
attempt,
|
|
273
|
+
stopReason: out.stopReason,
|
|
274
|
+
outputTokens: out.usage.outputTokens,
|
|
275
|
+
});
|
|
276
|
+
}
|
|
249
277
|
const { written, usage } = await d.writes.writeResult(conversationId, attempt, out, title);
|
|
250
278
|
if (usage) {
|
|
251
279
|
await d.eventLog.notify(conversationId, usage.seq);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
2
|
+
/**
|
|
3
|
+
* A conversation and every sub-agent conversation below it (agent map spec §6: its children,
|
|
4
|
+
* grandchildren and so on, through `conversations.parent_conversation_id`), each with its level
|
|
5
|
+
* below `conversationId` (0 for the conversation itself), shallowest first. Deleted conversations
|
|
6
|
+
* are included (a deleted root's tree is still stopped); an unknown id yields nothing.
|
|
7
|
+
*/
|
|
8
|
+
export declare function conversationTree(db: KernelSchemaDb, conversationId: string): Promise<{
|
|
9
|
+
id: string;
|
|
10
|
+
level: number;
|
|
11
|
+
}[]>;
|
|
12
|
+
/**
|
|
13
|
+
* The ancestors of a conversation (agent map spec §8: live progress reaches every level above a
|
|
14
|
+
* sub-agent), nearest first: its parent, the parent's parent and so on up to the root, through
|
|
15
|
+
* `conversations.parent_conversation_id`. Empty for a root or an unknown id.
|
|
16
|
+
*/
|
|
17
|
+
export declare function conversationAncestors(db: KernelSchemaDb, conversationId: string): Promise<string[]>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { sql } from "kysely";
|
|
2
|
+
/**
|
|
3
|
+
* How many levels below a conversation the tree reads walk at most: far above
|
|
4
|
+
* `subagents.maxDepth`'s bound of 5, so a corrupt parent chain cannot loop forever.
|
|
5
|
+
*/
|
|
6
|
+
const TREE_MAX_LEVELS = 16;
|
|
7
|
+
/**
|
|
8
|
+
* A conversation and every sub-agent conversation below it (agent map spec §6: its children,
|
|
9
|
+
* grandchildren and so on, through `conversations.parent_conversation_id`), each with its level
|
|
10
|
+
* below `conversationId` (0 for the conversation itself), shallowest first. Deleted conversations
|
|
11
|
+
* are included (a deleted root's tree is still stopped); an unknown id yields nothing.
|
|
12
|
+
*/
|
|
13
|
+
export async function conversationTree(db, conversationId) {
|
|
14
|
+
const r = await sql `
|
|
15
|
+
WITH RECURSIVE tree(id, level) AS (
|
|
16
|
+
SELECT c.id, 0 FROM capybara.conversations c WHERE c.id = ${conversationId}
|
|
17
|
+
UNION ALL
|
|
18
|
+
SELECT c.id, t.level + 1
|
|
19
|
+
FROM capybara.conversations c JOIN tree t ON c.parent_conversation_id = t.id
|
|
20
|
+
WHERE c.kind = 'subagent' AND t.level < ${TREE_MAX_LEVELS}
|
|
21
|
+
)
|
|
22
|
+
SELECT id, level FROM tree ORDER BY level, id`.execute(db);
|
|
23
|
+
return r.rows;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The ancestors of a conversation (agent map spec §8: live progress reaches every level above a
|
|
27
|
+
* sub-agent), nearest first: its parent, the parent's parent and so on up to the root, through
|
|
28
|
+
* `conversations.parent_conversation_id`. Empty for a root or an unknown id.
|
|
29
|
+
*/
|
|
30
|
+
export async function conversationAncestors(db, conversationId) {
|
|
31
|
+
const r = await sql `
|
|
32
|
+
WITH RECURSIVE up(id, parent, level) AS (
|
|
33
|
+
SELECT c.id, c.parent_conversation_id, 0 FROM capybara.conversations c
|
|
34
|
+
WHERE c.id = ${conversationId}
|
|
35
|
+
UNION ALL
|
|
36
|
+
SELECT c.id, c.parent_conversation_id, up.level + 1
|
|
37
|
+
FROM capybara.conversations c JOIN up ON c.id = up.parent
|
|
38
|
+
WHERE up.level < ${TREE_MAX_LEVELS}
|
|
39
|
+
)
|
|
40
|
+
SELECT id FROM up WHERE level > 0 ORDER BY level`.execute(db);
|
|
41
|
+
return r.rows.map((row) => row.id);
|
|
42
|
+
}
|
package/dist/ctx/create-ctx.d.ts
CHANGED
|
@@ -48,6 +48,11 @@ export interface ExtensionPointAccess {
|
|
|
48
48
|
}[];
|
|
49
49
|
/** Names of the extensions enabled in the organization (`extension_org_configs.enabled` plus required bootstrap plugins, `enabled.ts`); queried every time, not cached. */
|
|
50
50
|
enabledPlugins(orgId: string): Promise<Set<string>>;
|
|
51
|
+
/**
|
|
52
|
+
* Whether the extension's effective config is valid in the organization (layering spec A §6):
|
|
53
|
+
* a provider that is not is excluded from point resolution for that org.
|
|
54
|
+
*/
|
|
55
|
+
configOk(orgId: string, plugin: string): Promise<boolean>;
|
|
51
56
|
}
|
|
52
57
|
/**
|
|
53
58
|
* Queries the names of the extensions enabled in the organization (org config rows plus the
|
package/dist/ctx/create-ctx.js
CHANGED
|
@@ -146,6 +146,7 @@ function guardBuilder(builder, plugin) {
|
|
|
146
146
|
const noProviders = (deps) => ({
|
|
147
147
|
providers: () => [],
|
|
148
148
|
enabledPlugins: (orgId) => queryEnabledPlugins(deps.db, orgId),
|
|
149
|
+
configOk: async () => true,
|
|
149
150
|
});
|
|
150
151
|
/**
|
|
151
152
|
* 插件实例的部署配置(已校验):`ctx.config` 是读它的 getter。hot 字段改动时宿主替换 `value`(C10),
|
|
@@ -260,12 +261,21 @@ export function createExtensionContext(deps, manifest, deploymentConfig, extensi
|
|
|
260
261
|
throw new ExtensionPointUnavailableError(`extension point ${ref} has no provider`);
|
|
261
262
|
return { info, chosen };
|
|
262
263
|
};
|
|
263
|
-
/**
|
|
264
|
+
/**
|
|
265
|
+
* The org's view of the providers: an orgScoped point keeps only those the org enabled (queried
|
|
266
|
+
* every time, not cached), and every point drops those whose effective config is not valid in
|
|
267
|
+
* the org (layering spec A §6: a call on behalf of an org never reaches such a provider).
|
|
268
|
+
*/
|
|
264
269
|
const forOrg = async (orgScoped, orgId, entries) => {
|
|
265
|
-
if (
|
|
270
|
+
if (entries.length === 0)
|
|
266
271
|
return entries;
|
|
267
|
-
|
|
268
|
-
|
|
272
|
+
let out = entries;
|
|
273
|
+
if (orgScoped) {
|
|
274
|
+
const enabled = await extensionPointAccess.enabledPlugins(orgId);
|
|
275
|
+
out = out.filter((e) => enabled.has(e.plugin));
|
|
276
|
+
}
|
|
277
|
+
const ok = await Promise.all(out.map((e) => extensionPointAccess.configOk(orgId, e.plugin)));
|
|
278
|
+
return out.filter((_, i) => ok[i]);
|
|
269
279
|
};
|
|
270
280
|
const listAll = (ref) => {
|
|
271
281
|
const info = checkExtensionPoint(ref);
|
|
@@ -280,7 +290,7 @@ export function createExtensionContext(deps, manifest, deploymentConfig, extensi
|
|
|
280
290
|
return (async () => {
|
|
281
291
|
const { info, chosen } = pick(ref, provider);
|
|
282
292
|
if ((await forOrg(info.orgScoped, orgId, [chosen])).length === 0) {
|
|
283
|
-
throw new ExtensionPointUnavailableError(`extension point ${ref} provider ${chosen.plugin} is not
|
|
293
|
+
throw new ExtensionPointUnavailableError(`extension point ${ref} provider ${chosen.plugin} is not available in organization ${orgId} (not enabled there, or its configuration is not valid there)`);
|
|
284
294
|
}
|
|
285
295
|
return chosen.impl;
|
|
286
296
|
})();
|