@capybara-hq/kernel 0.1.0-rc.2 → 0.1.0-rc.20
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 +85 -5
- package/dist/admin/admin-agents.controller.d.ts +28 -0
- package/dist/admin/admin-agents.controller.js +79 -0
- package/dist/admin/admin-connectors.controller.d.ts +29 -0
- package/dist/admin/admin-connectors.controller.js +79 -0
- package/dist/admin/admin-items.schemas.d.ts +42 -0
- package/dist/admin/admin-items.schemas.js +48 -0
- package/dist/admin/admin.controller.d.ts +52 -80
- package/dist/admin/admin.controller.js +112 -81
- package/dist/admin/admin.module.d.ts +4 -1
- package/dist/admin/admin.module.js +50 -4
- package/dist/admin/admin.schemas.d.ts +69 -0
- package/dist/admin/admin.schemas.js +53 -0
- package/dist/admin/audit.controller.d.ts +14 -0
- package/dist/admin/audit.controller.js +42 -0
- package/dist/admin/audit.schemas.d.ts +8 -0
- package/dist/admin/audit.schemas.js +17 -0
- package/dist/admin/extensions.controller.d.ts +34 -3
- package/dist/admin/extensions.controller.js +66 -8
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/health.service.d.ts +104 -0
- package/dist/admin/health.service.js +246 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/overview.controller.d.ts +31 -0
- package/dist/admin/overview.controller.js +78 -0
- package/dist/admin/overview.schemas.d.ts +8 -0
- package/dist/admin/overview.schemas.js +13 -0
- package/dist/admin/overview.service.d.ts +112 -0
- package/dist/admin/overview.service.js +223 -0
- package/dist/admin/platform-audit.service.d.ts +41 -0
- package/dist/admin/platform-audit.service.js +70 -0
- 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/admin/usage.service.d.ts +149 -0
- package/dist/admin/usage.service.js +321 -0
- package/dist/agents/admin-agents.d.ts +92 -0
- package/dist/agents/admin-agents.js +170 -0
- package/dist/agents/agent-lookup.d.ts +24 -0
- package/dist/agents/agent-lookup.js +46 -2
- package/dist/agents/agent-profile.service.d.ts +31 -0
- package/dist/agents/agent-profile.service.js +122 -0
- package/dist/agents/agents.controller.d.ts +53 -168
- package/dist/agents/agents.controller.js +163 -34
- package/dist/agents/agents.module.d.ts +6 -2
- package/dist/agents/agents.module.js +41 -7
- package/dist/agents/agents.schemas.d.ts +392 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +121 -36
- package/dist/agents/agents.service.js +411 -121
- package/dist/agents/definition.d.ts +142 -21
- package/dist/agents/definition.js +389 -43
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +680 -0
- package/dist/agents/from-template.service.d.ts +72 -0
- package/dist/agents/from-template.service.js +178 -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 +44 -6
- package/dist/agents/models.controller.js +84 -8
- package/dist/agents/org-templates.d.ts +186 -0
- package/dist/agents/org-templates.js +876 -0
- package/dist/agents/pending-connector-requests.d.ts +79 -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 +114 -0
- package/dist/agents/profile.js +55 -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 +77 -5
- package/dist/agents/templates.controller.js +153 -7
- package/dist/agents/templates.d.ts +127 -23
- package/dist/agents/templates.js +482 -44
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -0
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +88 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/background.schemas.d.ts +10 -0
- package/dist/background/background.schemas.js +16 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +95 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +42 -0
- package/dist/background/launch.js +77 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +195 -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 +80 -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 +244 -0
- package/dist/background/store.d.ts +167 -0
- package/dist/background/store.js +361 -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 +109 -0
- package/dist/background/tasks.service.js +271 -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 +136 -52
- package/dist/catalog/admin-catalog.controller.js +275 -65
- package/dist/catalog/admin-catalog.schemas.d.ts +82 -0
- package/dist/catalog/admin-catalog.schemas.js +99 -0
- package/dist/catalog/appearance.schemas.d.ts +10 -0
- package/dist/catalog/appearance.schemas.js +20 -0
- package/dist/catalog/appearance.service.d.ts +105 -0
- package/dist/catalog/appearance.service.js +306 -0
- package/dist/catalog/catalog-content.d.ts +122 -35
- package/dist/catalog/catalog-content.js +122 -14
- package/dist/catalog/catalog-files.d.ts +42 -0
- package/dist/catalog/catalog-files.js +89 -0
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +63 -0
- package/dist/catalog/catalog-items.d.ts +122 -7
- package/dist/catalog/catalog-items.js +301 -13
- package/dist/catalog/catalog-scope.service.d.ts +293 -0
- package/dist/catalog/catalog-scope.service.js +1236 -0
- package/dist/catalog/catalog.module.d.ts +7 -9
- package/dist/catalog/catalog.module.js +47 -31
- package/dist/catalog/catalog.service.d.ts +122 -31
- package/dist/catalog/catalog.service.js +177 -105
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/claude/translate.js +3 -0
- package/dist/catalog/cli.d.ts +11 -1
- package/dist/catalog/cli.js +29 -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 +102 -0
- package/dist/catalog/component-scope.controller.js +257 -0
- package/dist/catalog/component-scope.schemas.d.ts +118 -0
- package/dist/catalog/component-scope.schemas.js +97 -0
- package/dist/catalog/component-scope.service.d.ts +394 -0
- package/dist/catalog/component-scope.service.js +1133 -0
- package/dist/catalog/component-state.d.ts +207 -0
- package/dist/catalog/component-state.js +484 -0
- package/dist/catalog/git-source.d.ts +9 -1
- package/dist/catalog/git-source.js +29 -2
- 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/marketplace-icons.d.ts +64 -0
- package/dist/catalog/marketplace-icons.js +131 -0
- package/dist/catalog/marketplaces.controller.d.ts +50 -41
- package/dist/catalog/marketplaces.controller.js +130 -46
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +110 -17
- package/dist/catalog/marketplaces.service.js +337 -29
- package/dist/catalog/org-catalog.controller.d.ts +114 -62
- package/dist/catalog/org-catalog.controller.js +191 -98
- package/dist/catalog/org-catalog.schemas.d.ts +104 -0
- package/dist/catalog/org-catalog.schemas.js +107 -0
- package/dist/catalog/org-catalog.service.d.ts +72 -33
- package/dist/catalog/org-catalog.service.js +367 -158
- 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 +133 -0
- package/dist/catalog/org-extension.controller.js +313 -0
- package/dist/catalog/org-extension.schemas.d.ts +15 -0
- package/dist/catalog/org-extension.schemas.js +22 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
- package/dist/catalog/org-plugin-uploads.controller.js +200 -0
- package/dist/catalog/org-plugin-uploads.d.ts +71 -0
- package/dist/catalog/org-plugin-uploads.js +122 -0
- package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
- package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
- package/dist/catalog/owned-items.d.ts +188 -0
- package/dist/catalog/owned-items.js +808 -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 +243 -0
- package/dist/catalog/platform-components.js +872 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +583 -0
- package/dist/catalog/plugin-import.d.ts +254 -47
- package/dist/catalog/plugin-import.js +810 -112
- package/dist/catalog/plugin-install.d.ts +205 -42
- package/dist/catalog/plugin-install.js +828 -126
- package/dist/catalog/plugin-package.d.ts +43 -4
- package/dist/catalog/plugin-package.js +194 -7
- package/dist/catalog/plugin-upgrade.d.ts +308 -225
- package/dist/catalog/plugin-upgrade.js +1325 -1131
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +194 -118
- package/dist/catalog/requests.service.js +530 -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 +119 -0
- package/dist/channels/actions.js +10 -3
- package/dist/channels/cards.d.ts +36 -10
- package/dist/channels/cards.js +100 -25
- package/dist/channels/channels.module.js +13 -2
- package/dist/channels/channels.schemas.d.ts +41 -0
- package/dist/channels/channels.schemas.js +40 -0
- package/dist/channels/connections.controller.d.ts +46 -37
- package/dist/channels/connections.controller.js +76 -34
- package/dist/channels/connections.service.d.ts +102 -10
- package/dist/channels/connections.service.js +271 -24
- package/dist/channels/inbound.d.ts +11 -1
- package/dist/channels/inbound.js +87 -7
- package/dist/channels/outbound.d.ts +14 -1
- package/dist/channels/outbound.js +64 -15
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +2 -0
- package/dist/channels/supervisor.js +4 -0
- package/dist/channels/threads.d.ts +5 -0
- package/dist/channels/threads.js +8 -0
- package/dist/channels/webhook.d.ts +21 -1
- package/dist/channels/webhook.js +39 -4
- package/dist/client/client-access.service.d.ts +102 -0
- package/dist/client/client-access.service.js +303 -0
- package/dist/client/client-builds.service.d.ts +109 -0
- package/dist/client/client-builds.service.js +229 -0
- package/dist/client/client-delivery.controller.d.ts +25 -0
- package/dist/client/client-delivery.controller.js +66 -0
- package/dist/client/client-files.d.ts +48 -0
- package/dist/client/client-files.js +136 -0
- package/dist/client/client-reports.cron.d.ts +13 -0
- package/dist/client/client-reports.cron.js +42 -0
- package/dist/client/client-reports.service.d.ts +30 -0
- package/dist/client/client-reports.service.js +102 -0
- package/dist/client/client-sign-in.service.d.ts +21 -0
- package/dist/client/client-sign-in.service.js +49 -0
- package/dist/client/client.controller.d.ts +49 -0
- package/dist/client/client.controller.js +129 -0
- package/dist/client/client.module.d.ts +8 -0
- package/dist/client/client.module.js +28 -0
- package/dist/client/client.schemas.d.ts +61 -0
- package/dist/client/client.schemas.js +27 -0
- package/dist/config/docs.js +5 -1
- package/dist/config/schema.d.ts +35 -2
- package/dist/config/schema.js +216 -21
- 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/artifacts.d.ts +1 -1
- package/dist/conversations/artifacts.js +1 -1
- 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 -44
- package/dist/conversations/conversations.controller.js +133 -82
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +10 -7
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +161 -13
- package/dist/conversations/conversations.service.js +329 -57
- package/dist/conversations/device-status.d.ts +24 -0
- package/dist/conversations/device-status.js +71 -0
- package/dist/conversations/event-log.d.ts +45 -9
- package/dist/conversations/event-log.js +113 -6
- package/dist/conversations/events.d.ts +255 -9
- package/dist/conversations/events.js +250 -34
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/queue.d.ts +5 -2
- package/dist/conversations/queue.js +24 -4
- package/dist/conversations/queue.service.d.ts +2 -2
- package/dist/conversations/queue.service.js +21 -3
- package/dist/conversations/titles.d.ts +12 -3
- package/dist/conversations/titles.js +40 -16
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/create-ctx.d.ts +48 -5
- package/dist/ctx/create-ctx.js +174 -34
- package/dist/db/kernel-schema.d.ts +668 -27
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +3 -0
- package/dist/devices/access.d.ts +66 -0
- package/dist/devices/access.js +113 -0
- package/dist/devices/conversation-devices.d.ts +75 -0
- package/dist/devices/conversation-devices.js +230 -0
- package/dist/devices/devices.controller.d.ts +36 -0
- package/dist/devices/devices.controller.js +124 -0
- package/dist/devices/devices.module.d.ts +8 -0
- package/dist/devices/devices.module.js +34 -0
- package/dist/devices/devices.schemas.d.ts +3 -0
- package/dist/devices/devices.schemas.js +14 -0
- package/dist/devices/devices.service.d.ts +251 -0
- package/dist/devices/devices.service.js +791 -0
- package/dist/devices/dto.d.ts +25 -0
- package/dist/devices/dto.js +12 -0
- package/dist/devices/label.d.ts +11 -0
- package/dist/devices/label.js +25 -0
- package/dist/devices/legacy-cleanup.job.d.ts +34 -0
- package/dist/devices/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +215 -3
- package/dist/errors.js +215 -3
- package/dist/evals/evals.module.js +11 -2
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -0
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +36 -10
- package/dist/evals/recorded-tools.d.ts +37 -1
- package/dist/evals/recorded-tools.js +120 -10
- package/dist/evals/run-replay.d.ts +20 -3
- package/dist/evals/run-replay.js +78 -14
- package/dist/evals/runs.controller.d.ts +2 -57
- package/dist/evals/runs.controller.js +1 -42
- package/dist/evals/runs.service.d.ts +8 -7
- package/dist/evals/runs.service.js +45 -30
- package/dist/evals/sets.controller.d.ts +2 -28
- package/dist/evals/sets.controller.js +1 -31
- package/dist/evals/sets.service.d.ts +7 -7
- package/dist/evals/sets.service.js +23 -17
- package/dist/evals/snapshot.d.ts +3 -2
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +4 -6
- package/dist/evals/step-replay.js +16 -9
- package/dist/evals/trajectory.d.ts +5 -3
- package/dist/evals/trajectory.js +4 -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 +81 -14
- package/dist/extensions/admin-ops.js +181 -47
- package/dist/extensions/admin-view.d.ts +57 -10
- package/dist/extensions/admin-view.js +249 -27
- package/dist/extensions/approvals.d.ts +12 -2
- package/dist/extensions/blobs.d.ts +14 -1
- package/dist/extensions/blobs.js +49 -5
- package/dist/extensions/bootstrap.d.ts +41 -5
- package/dist/extensions/bootstrap.js +121 -19
- package/dist/extensions/cli.d.ts +12 -0
- package/dist/extensions/cli.js +11 -2
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- 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 +94 -9
- package/dist/extensions/deployment-config.js +255 -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 +133 -0
- package/dist/extensions/effective-config.js +379 -0
- package/dist/extensions/extensions.module.js +31 -12
- package/dist/extensions/guide-places.d.ts +68 -0
- package/dist/extensions/guide-places.js +152 -0
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +105 -12
- package/dist/extensions/host.js +372 -87
- package/dist/extensions/installs.d.ts +30 -9
- package/dist/extensions/installs.js +57 -16
- package/dist/extensions/instance.d.ts +17 -2
- package/dist/extensions/instance.js +21 -0
- package/dist/extensions/ledger.d.ts +1 -1
- package/dist/extensions/locks.d.ts +12 -0
- package/dist/extensions/locks.js +26 -0
- package/dist/extensions/org-config.d.ts +97 -7
- package/dist/extensions/org-config.js +215 -45
- 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 +18 -4
- package/dist/extensions/package.js +56 -3
- package/dist/extensions/permission-set.d.ts +35 -5
- package/dist/extensions/permission-set.js +36 -5
- package/dist/extensions/permission-view.d.ts +106 -13
- package/dist/extensions/permission-view.js +33 -15
- package/dist/extensions/plugin-guides.d.ts +282 -0
- package/dist/extensions/plugin-guides.js +554 -0
- package/dist/extensions/plugin-icons.d.ts +54 -0
- package/dist/extensions/plugin-icons.js +125 -0
- 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 +28 -0
- package/dist/extensions/point-defaults.controller.js +69 -0
- package/dist/extensions/point-defaults.d.ts +73 -0
- package/dist/extensions/point-defaults.js +236 -0
- package/dist/extensions/point-defaults.schemas.d.ts +9 -0
- package/dist/extensions/point-defaults.schemas.js +14 -0
- package/dist/extensions/registry.d.ts +1 -1
- package/dist/extensions/registry.js +2 -0
- package/dist/extensions/resolve.d.ts +51 -1
- package/dist/extensions/resolve.js +85 -3
- package/dist/extensions/single-provider.d.ts +92 -0
- package/dist/extensions/single-provider.js +180 -0
- package/dist/extensions/sources.d.ts +13 -2
- package/dist/extensions/sources.js +2 -0
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +46 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/previewers.controller.js +2 -3
- package/dist/files/previewers.d.ts +10 -3
- package/dist/files/previewers.js +40 -11
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/api.module.js +76 -4
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/gateway-routes.d.ts +7 -3
- package/dist/http/gateway-routes.js +6 -3
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- package/dist/http/plugin-dispatch.d.ts +4 -1
- package/dist/http/plugin-dispatch.js +14 -2
- package/dist/identity/accounts.d.ts +77 -31
- package/dist/identity/accounts.js +133 -52
- 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 +35 -9
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +7 -4
- package/dist/identity/initial-passwords.controller.d.ts +22 -0
- package/dist/identity/initial-passwords.controller.js +49 -0
- package/dist/identity/initial-passwords.d.ts +61 -0
- package/dist/identity/initial-passwords.job.d.ts +16 -0
- package/dist/identity/initial-passwords.job.js +46 -0
- package/dist/identity/initial-passwords.js +159 -0
- package/dist/identity/me.controller.d.ts +17 -1
- package/dist/identity/me.controller.js +45 -4
- package/dist/identity/me.schemas.d.ts +24 -0
- package/dist/identity/me.schemas.js +25 -0
- package/dist/identity/principal.d.ts +11 -3
- package/dist/identity/principal.js +11 -3
- package/dist/identity/sessions.d.ts +12 -0
- package/dist/identity/sessions.js +45 -0
- package/dist/identity/settings.d.ts +99 -12
- package/dist/identity/settings.js +234 -25
- 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/identity/write-actor.d.ts +11 -0
- package/dist/identity/write-actor.js +7 -0
- package/dist/inbox/inbox.module.d.ts +4 -1
- package/dist/inbox/inbox.module.js +7 -3
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +64 -4
- 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 +157 -0
- package/dist/inbox/platform-inbox.service.js +281 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +7 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +32 -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 +31 -3
- package/dist/infra/lifecycle/process-guards.js +4 -0
- package/dist/infra/lock/lock.service.d.ts +8 -0
- package/dist/infra/lock/lock.service.js +27 -0
- package/dist/infra/logging/logging.module.d.ts +4 -2
- package/dist/infra/logging/logging.module.js +24 -6
- package/dist/infra/presence/presence.module.d.ts +6 -0
- package/dist/infra/presence/presence.module.js +22 -0
- package/dist/infra/presence/replica-presence.d.ts +87 -0
- package/dist/infra/presence/replica-presence.js +189 -0
- 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/throttler/named-throttlers.d.ts +12 -0
- package/dist/infra/throttler/named-throttlers.js +67 -0
- package/dist/infra/throttler/throttler.guard.js +1 -1
- package/dist/infra/tokens.d.ts +6 -1
- package/dist/infra/tokens.js +6 -1
- package/dist/kernel.module.js +15 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +4 -2
- package/dist/lifecycle/kernel-lifecycle.js +35 -7
- package/dist/local-devices/device-auth.controller.d.ts +42 -0
- package/dist/local-devices/device-auth.controller.js +116 -0
- package/dist/local-devices/device-auth.d.ts +119 -0
- package/dist/local-devices/device-auth.js +401 -0
- package/dist/local-devices/device-auth.module.d.ts +7 -0
- package/dist/local-devices/device-auth.module.js +25 -0
- package/dist/local-devices/device-routes.d.ts +36 -0
- package/dist/local-devices/device-routes.js +90 -0
- package/dist/local-devices/dto.d.ts +66 -0
- package/dist/local-devices/dto.js +44 -0
- package/dist/local-devices/keys.d.ts +25 -0
- package/dist/local-devices/keys.js +25 -0
- package/dist/local-devices/local-device-gateway.d.ts +134 -0
- package/dist/local-devices/local-device-gateway.js +542 -0
- package/dist/local-devices/local-device-provider.d.ts +89 -0
- package/dist/local-devices/local-device-provider.js +151 -0
- package/dist/local-devices/local-devices.module.d.ts +16 -0
- package/dist/local-devices/local-devices.module.js +44 -0
- package/dist/local-devices/machines.d.ts +118 -0
- package/dist/local-devices/machines.js +366 -0
- package/dist/local-devices/relay.d.ts +100 -0
- package/dist/local-devices/relay.js +373 -0
- package/dist/local-devices/targets.d.ts +28 -0
- package/dist/local-devices/targets.js +73 -0
- package/dist/log.d.ts +13 -1
- package/dist/log.js +93 -17
- package/dist/models/embeddings.d.ts +82 -0
- package/dist/models/embeddings.js +326 -0
- package/dist/models/enablement.controller.d.ts +40 -0
- package/dist/models/enablement.controller.js +74 -0
- package/dist/models/enablement.d.ts +101 -0
- package/dist/models/enablement.js +264 -0
- package/dist/models/models.module.d.ts +5 -1
- package/dist/models/models.module.js +16 -4
- package/dist/models/org-models.schemas.d.ts +8 -0
- package/dist/models/org-models.schemas.js +22 -0
- package/dist/models/prices.d.ts +8 -6
- package/dist/models/prices.js +11 -9
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +13 -7
- package/dist/models/purposes.d.ts +72 -14
- package/dist/models/purposes.js +115 -34
- 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.controller.d.ts +2 -5
- package/dist/orgs/orgs.controller.js +3 -6
- package/dist/orgs/orgs.module.js +3 -0
- package/dist/orgs/orgs.schemas.d.ts +8 -0
- package/dist/orgs/orgs.schemas.js +16 -0
- package/dist/orgs/orgs.service.d.ts +23 -8
- package/dist/orgs/orgs.service.js +38 -16
- 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 +66 -6
- package/dist/orgs/settings.service.js +89 -10
- package/dist/overrides.d.ts +16 -1
- package/dist/overrides.js +10 -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 +28 -0
- package/dist/platform/errors.js +65 -0
- package/dist/platform/exclusions.d.ts +11 -0
- package/dist/platform/exclusions.js +774 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +169 -0
- package/dist/platform/operation.js +102 -0
- package/dist/platform/ops/accounts.ops.d.ts +32 -0
- package/dist/platform/ops/accounts.ops.js +291 -0
- package/dist/platform/ops/admin-items.ops.d.ts +37 -0
- package/dist/platform/ops/admin-items.ops.js +278 -0
- package/dist/platform/ops/admin.ops.d.ts +38 -0
- package/dist/platform/ops/admin.ops.js +497 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +50 -0
- package/dist/platform/ops/agent-skills.ops.js +509 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
- package/dist/platform/ops/agent-templates.ops.js +272 -0
- package/dist/platform/ops/agents.ops.d.ts +37 -0
- package/dist/platform/ops/agents.ops.js +730 -0
- package/dist/platform/ops/approvals.ops.d.ts +30 -0
- package/dist/platform/ops/approvals.ops.js +116 -0
- package/dist/platform/ops/background.ops.d.ts +14 -0
- package/dist/platform/ops/background.ops.js +134 -0
- package/dist/platform/ops/catalog-admin.ops.d.ts +92 -0
- package/dist/platform/ops/catalog-admin.ops.js +682 -0
- package/dist/platform/ops/channels.ops.d.ts +16 -0
- package/dist/platform/ops/channels.ops.js +195 -0
- package/dist/platform/ops/components.ops.d.ts +46 -0
- package/dist/platform/ops/components.ops.js +854 -0
- package/dist/platform/ops/connectors.ops.d.ts +17 -0
- package/dist/platform/ops/connectors.ops.js +190 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/devices.ops.d.ts +26 -0
- package/dist/platform/ops/devices.ops.js +311 -0
- package/dist/platform/ops/errors.d.ts +16 -0
- package/dist/platform/ops/errors.js +30 -0
- package/dist/platform/ops/evals.ops.d.ts +28 -0
- package/dist/platform/ops/evals.ops.js +783 -0
- package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
- package/dist/platform/ops/extensions-admin.ops.js +372 -0
- package/dist/platform/ops/extensions.ops.d.ts +25 -0
- package/dist/platform/ops/extensions.ops.js +347 -0
- package/dist/platform/ops/inbox.ops.d.ts +25 -0
- package/dist/platform/ops/inbox.ops.js +381 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
- package/dist/platform/ops/marketplaces.ops.js +466 -0
- package/dist/platform/ops/models.ops.d.ts +25 -0
- package/dist/platform/ops/models.ops.js +232 -0
- package/dist/platform/ops/org-plugins.ops.d.ts +35 -0
- package/dist/platform/ops/org-plugins.ops.js +388 -0
- package/dist/platform/ops/org-settings.ops.d.ts +18 -0
- package/dist/platform/ops/org-settings.ops.js +127 -0
- package/dist/platform/ops/orgs.ops.d.ts +28 -0
- package/dist/platform/ops/orgs.ops.js +298 -0
- package/dist/platform/ops/other-orgs.d.ts +20 -0
- package/dist/platform/ops/other-orgs.js +72 -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 +30 -0
- package/dist/platform/ops/platform.ops.js +231 -0
- package/dist/platform/ops/plugins.ops.d.ts +35 -0
- package/dist/platform/ops/plugins.ops.js +476 -0
- package/dist/platform/ops/previewers.ops.d.ts +14 -0
- package/dist/platform/ops/previewers.ops.js +109 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +191 -0
- package/dist/platform/ops/role.d.ts +4 -0
- package/dist/platform/ops/role.js +10 -0
- package/dist/platform/ops/setup.ops.d.ts +24 -0
- package/dist/platform/ops/setup.ops.js +212 -0
- package/dist/platform/ops/skills.ops.d.ts +17 -0
- package/dist/platform/ops/skills.ops.js +160 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/ops/themes.ops.d.ts +14 -0
- package/dist/platform/ops/themes.ops.js +47 -0
- package/dist/platform/ops/ui.ops.d.ts +8 -0
- package/dist/platform/ops/ui.ops.js +41 -0
- package/dist/platform/ops/unavailable.d.ts +23 -0
- package/dist/platform/ops/unavailable.js +118 -0
- package/dist/platform/parity.d.ts +33 -0
- package/dist/platform/parity.js +272 -0
- package/dist/platform/platform-ops.module.d.ts +43 -0
- package/dist/platform/platform-ops.module.js +142 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- package/dist/platform/route-schemas.d.ts +18 -0
- package/dist/platform/route-schemas.js +85 -0
- package/dist/roles/gateway-role.d.ts +18 -3
- package/dist/roles/gateway-role.js +33 -5
- package/dist/roles/gateway.module.d.ts +2 -1
- package/dist/roles/gateway.module.js +6 -3
- 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 +21 -1
- package/dist/runtime/context/build.d.ts +21 -13
- package/dist/runtime/context/build.js +106 -29
- package/dist/runtime/context/claude-tools.d.ts +4 -1
- package/dist/runtime/context/claude-tools.js +13 -12
- package/dist/runtime/context/compaction.js +24 -1
- package/dist/runtime/context/device-paths.d.ts +40 -0
- package/dist/runtime/context/device-paths.js +48 -0
- package/dist/runtime/context/legacy-text.d.ts +22 -0
- package/dist/runtime/context/legacy-text.js +37 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/run-context.d.ts +65 -0
- package/dist/runtime/context/run-context.js +215 -0
- package/dist/runtime/context/skills.d.ts +29 -11
- package/dist/runtime/context/skills.js +46 -32
- package/dist/runtime/context/tool-changes.d.ts +27 -0
- package/dist/runtime/context/tool-changes.js +60 -0
- package/dist/runtime/hook-calls.d.ts +8 -1
- package/dist/runtime/hook-calls.js +40 -7
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +36 -17
- package/dist/runtime/loop.d.ts +35 -6
- package/dist/runtime/maintenance.d.ts +9 -4
- package/dist/runtime/maintenance.js +35 -8
- package/dist/runtime/model-call.d.ts +54 -11
- package/dist/runtime/model-call.js +105 -28
- package/dist/runtime/providers.d.ts +149 -29
- package/dist/runtime/providers.js +332 -63
- package/dist/runtime/run-context.service.d.ts +65 -0
- package/dist/runtime/run-context.service.js +236 -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-finish.d.ts +1 -1
- package/dist/runtime/run-jobs.d.ts +3 -5
- package/dist/runtime/run-jobs.js +7 -9
- package/dist/runtime/run-queue.d.ts +62 -5
- package/dist/runtime/run-queue.js +313 -40
- package/dist/runtime/run-worker.d.ts +19 -8
- package/dist/runtime/run-worker.js +105 -44
- package/dist/runtime/runtime.module.js +13 -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 +31 -26
- package/dist/runtime/subagents/definition.js +89 -142
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +116 -27
- package/dist/runtime/subagents/dispatch.js +213 -142
- 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/org-agents.js +2 -1
- 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 +25 -8
- package/dist/runtime/subagents/roster.js +48 -12
- package/dist/runtime/subagents/skill-fork.d.ts +4 -3
- package/dist/runtime/subagents/skill-fork.js +9 -5
- 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 +9 -6
- package/dist/runtime/subagents/subagents.service.js +13 -8
- package/dist/runtime/usage-report-jobs.d.ts +88 -0
- package/dist/runtime/usage-report-jobs.js +158 -0
- package/dist/runtime/usage-report.d.ts +35 -39
- package/dist/runtime/usage-report.js +171 -97
- package/dist/runtime/waits.d.ts +148 -39
- package/dist/runtime/waits.js +426 -112
- 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 +34 -7
- package/dist/sandbox/providers.js +54 -9
- package/dist/sandbox/sandbox-file-reader.d.ts +35 -0
- package/dist/sandbox/sandbox-file-reader.js +98 -0
- package/dist/sandbox/sandbox.module.d.ts +3 -2
- package/dist/sandbox/sandbox.module.js +10 -4
- package/dist/sandbox/sandbox.service.d.ts +345 -132
- package/dist/sandbox/sandbox.service.js +883 -399
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/setup/kernel-checks.d.ts +91 -0
- package/dist/setup/kernel-checks.js +295 -0
- package/dist/setup/oauth-token-probe.d.ts +47 -0
- package/dist/setup/oauth-token-probe.js +108 -0
- package/dist/setup/redact-check.d.ts +18 -0
- package/dist/setup/redact-check.js +46 -0
- package/dist/setup/setup-check-registry.d.ts +86 -0
- package/dist/setup/setup-check-registry.js +75 -0
- package/dist/setup/setup-checks.controller.d.ts +28 -0
- package/dist/setup/setup-checks.controller.js +78 -0
- package/dist/setup/setup-checks.schemas.d.ts +38 -0
- package/dist/setup/setup-checks.schemas.js +43 -0
- package/dist/setup/setup-checks.service.d.ts +144 -0
- package/dist/setup/setup-checks.service.js +683 -0
- package/dist/setup/setup-guides.controller.d.ts +18 -0
- package/dist/setup/setup-guides.controller.js +48 -0
- package/dist/setup/setup-guides.schemas.d.ts +10 -0
- package/dist/setup/setup-guides.schemas.js +6 -0
- package/dist/setup/setup-guides.service.d.ts +126 -0
- package/dist/setup/setup-guides.service.js +315 -0
- package/dist/setup/setup.module.d.ts +8 -0
- package/dist/setup/setup.module.js +31 -0
- package/dist/skills/agent-skills.controller.d.ts +48 -0
- package/dist/skills/agent-skills.controller.js +131 -0
- package/dist/skills/agent-skills.service.d.ts +262 -0
- package/dist/skills/agent-skills.service.js +996 -0
- package/dist/skills/catalog.d.ts +14 -11
- package/dist/skills/catalog.js +32 -50
- package/dist/skills/changes.controller.d.ts +12 -22
- package/dist/skills/changes.controller.js +27 -56
- package/dist/skills/changes.service.d.ts +69 -115
- package/dist/skills/changes.service.js +249 -598
- package/dist/skills/conversation-catalog.d.ts +53 -0
- package/dist/skills/conversation-catalog.js +149 -0
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +2 -2
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +3 -3
- package/dist/skills/invoke.js +21 -8
- package/dist/skills/package.d.ts +15 -1
- package/dist/skills/package.js +14 -1
- package/dist/skills/skills.controller.d.ts +32 -6
- package/dist/skills/skills.controller.js +64 -11
- package/dist/skills/skills.module.js +25 -3
- package/dist/skills/skills.schemas.d.ts +44 -0
- package/dist/skills/skills.schemas.js +68 -0
- package/dist/skills/skills.service.d.ts +123 -26
- package/dist/skills/skills.service.js +493 -76
- package/dist/skills/usable.d.ts +82 -0
- package/dist/skills/usable.js +388 -0
- package/dist/themes/render-css.d.ts +13 -0
- package/dist/themes/render-css.js +135 -0
- package/dist/themes/theme-delivery.service.d.ts +36 -0
- package/dist/themes/theme-delivery.service.js +116 -0
- package/dist/themes/theme-state.d.ts +116 -0
- package/dist/themes/theme-state.js +221 -0
- package/dist/themes/theme-usage.d.ts +61 -0
- package/dist/themes/theme-usage.js +98 -0
- package/dist/themes/themes-public.controller.d.ts +33 -0
- package/dist/themes/themes-public.controller.js +98 -0
- package/dist/themes/themes.controller.d.ts +13 -0
- package/dist/themes/themes.controller.js +38 -0
- package/dist/themes/themes.module.d.ts +3 -0
- package/dist/themes/themes.module.js +21 -0
- package/dist/themes/themes.schemas.d.ts +3 -0
- package/dist/themes/themes.schemas.js +2 -0
- package/dist/themes/themes.service.d.ts +50 -0
- package/dist/themes/themes.service.js +99 -0
- package/dist/time-zone.d.ts +5 -0
- package/dist/time-zone.js +19 -0
- package/dist/tools/admin-connectors.d.ts +69 -0
- package/dist/tools/admin-connectors.js +135 -0
- package/dist/tools/approvals.controller.js +2 -3
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +26 -2
- package/dist/tools/approvals.service.js +44 -5
- package/dist/tools/builtin-names.d.ts +104 -0
- package/dist/tools/builtin-names.js +164 -0
- package/dist/tools/builtins/agent.d.ts +27 -25
- package/dist/tools/builtins/agent.js +66 -63
- package/dist/tools/builtins/ask-user.d.ts +1 -1
- package/dist/tools/builtins/ask-user.js +5 -4
- package/dist/tools/builtins/builtin-tools.d.ts +23 -4
- package/dist/tools/builtins/builtin-tools.js +78 -12
- package/dist/tools/builtins/current-time.d.ts +26 -0
- package/dist/tools/builtins/current-time.js +99 -0
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +51 -0
- package/dist/tools/builtins/platform.js +451 -0
- package/dist/tools/builtins/read-tool-output.d.ts +1 -1
- package/dist/tools/builtins/read-tool-output.js +2 -2
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +291 -39
- package/dist/tools/builtins/sandbox/common.d.ts +135 -36
- package/dist/tools/builtins/sandbox/common.js +222 -62
- package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
- package/dist/tools/builtins/sandbox/deliver.js +19 -16
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +64 -50
- package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
- package/dist/tools/builtins/sandbox/file-state.js +34 -0
- package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob-match.js +1 -1
- package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob.js +17 -12
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +153 -34
- package/dist/tools/builtins/sandbox/index.d.ts +9 -5
- package/dist/tools/builtins/sandbox/index.js +13 -5
- package/dist/tools/builtins/sandbox/read.d.ts +2 -2
- package/dist/tools/builtins/sandbox/read.js +29 -19
- package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
- package/dist/tools/builtins/sandbox/task-output.js +334 -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.d.ts +1 -1
- package/dist/tools/builtins/sandbox/write.js +51 -44
- 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 +29 -18
- package/dist/tools/builtins/skill-load.js +125 -73
- package/dist/tools/builtins/tool-search.d.ts +13 -9
- package/dist/tools/builtins/tool-search.js +25 -14
- 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/connector-account-policies.d.ts +51 -0
- package/dist/tools/connector-account-policies.js +165 -0
- package/dist/tools/connectors.controller.d.ts +74 -9
- package/dist/tools/connectors.controller.js +133 -16
- package/dist/tools/connectors.schemas.d.ts +27 -0
- package/dist/tools/connectors.schemas.js +34 -0
- package/dist/tools/connectors.service.d.ts +101 -8
- package/dist/tools/connectors.service.js +266 -28
- package/dist/tools/credentials.d.ts +23 -0
- package/dist/tools/credentials.js +90 -1
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.js +5 -5
- package/dist/tools/elicitation.js +1 -1
- 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 +61 -4
- package/dist/tools/info.js +119 -33
- package/dist/tools/legacy-data.d.ts +34 -0
- package/dist/tools/legacy-data.js +76 -0
- package/dist/tools/legacy-keys.d.ts +51 -0
- package/dist/tools/legacy-keys.js +114 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +1 -1
- package/dist/tools/oauth/flow-paths.js +1 -1
- package/dist/tools/oauth/flow.js +1 -1
- package/dist/tools/oauth/tokens.d.ts +54 -7
- package/dist/tools/oauth/tokens.js +87 -17
- package/dist/tools/org-tool-switches.d.ts +89 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.js +1 -1
- package/dist/tools/pipeline.d.ts +67 -47
- package/dist/tools/pipeline.js +319 -380
- package/dist/tools/policy.d.ts +30 -23
- package/dist/tools/policy.js +142 -64
- package/dist/tools/questions.controller.d.ts +1 -1
- package/dist/tools/questions.controller.js +1 -1
- package/dist/tools/questions.service.d.ts +23 -2
- package/dist/tools/questions.service.js +104 -2
- package/dist/tools/registry.d.ts +189 -68
- package/dist/tools/registry.js +318 -236
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/tools.module.js +31 -3
- package/dist/tools/validate.js +1 -1
- package/dist/ui/admin-ui.controller.d.ts +56 -0
- package/dist/ui/admin-ui.controller.js +192 -0
- package/dist/ui/arrangement.d.ts +65 -0
- package/dist/ui/arrangement.js +171 -0
- package/dist/ui/embed-token.d.ts +2 -2
- package/dist/ui/embed-token.js +30 -5
- package/dist/ui/registry.d.ts +42 -17
- package/dist/ui/registry.js +46 -14
- package/dist/ui/slots.controller.d.ts +11 -0
- package/dist/ui/slots.controller.js +25 -0
- package/dist/ui/ui-stream.d.ts +20 -3
- package/dist/ui/ui-stream.js +25 -7
- package/dist/ui/ui.schemas.d.ts +70 -0
- package/dist/ui/ui.schemas.js +65 -0
- package/dist/ui/views.controller.d.ts +35 -49
- package/dist/ui/views.controller.js +48 -70
- package/dist/ui/views.d.ts +112 -18
- package/dist/ui/views.js +254 -47
- package/package.json +6 -3
- package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
- 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/src/migrations/0089_model_kinds_usage.sql +38 -0
- package/src/migrations/0090_initial_passwords.sql +27 -0
- package/src/migrations/0091_account_time_zone.sql +4 -0
- package/src/migrations/0092_tools_default_on.sql +27 -0
- package/src/migrations/0093_connected_environments.sql +37 -0
- package/src/migrations/0094_environment_paths_idx.sql +7 -0
- package/src/migrations/0095_environment_files_resets.sql +5 -0
- package/src/migrations/0096_environment_demoted_default.sql +18 -0
- package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
- package/src/migrations/0098_single_provider_running_first.sql +41 -0
- package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
- package/src/migrations/0100_catalog_files.sql +13 -0
- package/src/migrations/0101_marketplace_icons.sql +32 -0
- package/src/migrations/0102_themes.sql +64 -0
- package/src/migrations/0103_ui_theme_setting.sql +7 -0
- package/src/migrations/0104_connector_tool_account_policies.sql +16 -0
- package/src/migrations/0105_devices_rename.sql +136 -0
- package/src/migrations/0106_setup_guides_v2.sql +10 -0
- package/src/migrations/0107_extension_client_builds.sql +50 -0
- package/src/migrations/0108_question_skipped.sql +6 -0
- package/src/migrations/0109_audit_platform_idx.sql +5 -0
- package/src/migrations/0110_usage_time_idx.sql +8 -0
- package/src/migrations/0111_agent_skill_sharing.sql +22 -0
- package/src/migrations/0112_skill_share_requests.sql +4 -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
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
- package/dist/tools/builtins/skill-write.d.ts +0 -59
- package/dist/tools/builtins/skill-write.js +0 -244
|
@@ -11,20 +11,50 @@ import { randomUUID } from "node:crypto";
|
|
|
11
11
|
import { Inject, Injectable } from "@nestjs/common";
|
|
12
12
|
import { sql } from "kysely";
|
|
13
13
|
import { AgentLookup, visibleTo } from "../agents/agent-lookup.js";
|
|
14
|
+
import { BackgroundTaskStopper } from "../background/stop.js";
|
|
15
|
+
import { unbindConversation } from "../channels/threads.js";
|
|
16
|
+
import { ConversationDevices, } from "../devices/conversation-devices.js";
|
|
14
17
|
import { ApiError } from "../errors.js";
|
|
15
18
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
16
19
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
17
20
|
import { Transactional } from "../infra/database/transactional.decorator.js";
|
|
21
|
+
import { KernelEvents } from "../infra/events/kernel-events.js";
|
|
18
22
|
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
19
23
|
import { ProviderRegistry } from "../runtime/providers.js";
|
|
20
24
|
import { RunControl as RunControlService } from "../runtime/run-control.js";
|
|
25
|
+
import { rootConversationOf } from "../runtime/subagents/child.js";
|
|
21
26
|
import { SkillInvoker } from "../skills/invoke.js";
|
|
22
27
|
import { ConnectorContent } from "../tools/connector-content.js";
|
|
28
|
+
import { QuestionsService } from "../tools/questions.service.js";
|
|
23
29
|
import { ConversationAccess, parentReachable } from "./access.js";
|
|
30
|
+
import { readAgentTree } from "./agent-tree.js";
|
|
24
31
|
import { AttachmentsService } from "./attachments.service.js";
|
|
25
32
|
import { EventLog } from "./event-log.js";
|
|
26
33
|
import { userMessageIdemKey } from "./idem-keys.js";
|
|
34
|
+
import { readMessageContext, } from "./message-context.js";
|
|
27
35
|
import { NO_SELECTION, planSelection, readSelection } from "./selection.js";
|
|
36
|
+
import { conversationTree } from "./tree.js";
|
|
37
|
+
/** Escapes `\`, `%` and `_` so user text is matched literally by `LIKE … ESCAPE '\'`. */
|
|
38
|
+
export function escapeLike(s) {
|
|
39
|
+
return s.replace(/[\\%_]/g, (ch) => `\\${ch}`);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* SQL for the activity of the conversation row aliased/named `ref` (a correlated subquery).
|
|
43
|
+
* A run waiting on its sub-agents (status waiting with `wait_expires_at`, set only for a
|
|
44
|
+
* `subagents` wait) is still working, so it reports `running`; only a wait for a person
|
|
45
|
+
* (approval, input) reports `waiting`.
|
|
46
|
+
*/
|
|
47
|
+
function activitySql(ref) {
|
|
48
|
+
const id = sql.ref(`${ref}.id`);
|
|
49
|
+
return sql `(
|
|
50
|
+
SELECT CASE
|
|
51
|
+
WHEN lr.status IN ('queued', 'running') THEN 'running'
|
|
52
|
+
WHEN lr.status = 'waiting' AND lr.wait_expires_at IS NOT NULL THEN 'running'
|
|
53
|
+
WHEN lr.status = 'waiting' THEN 'waiting' END
|
|
54
|
+
FROM capybara.runs lr WHERE lr.conversation_id = ${id}
|
|
55
|
+
ORDER BY lr.created_at DESC, lr.id DESC LIMIT 1
|
|
56
|
+
)`;
|
|
57
|
+
}
|
|
28
58
|
const notFound = () => new ApiError("conversation.not_found", "Conversation not found");
|
|
29
59
|
export { userMessageIdemKey } from "./idem-keys.js";
|
|
30
60
|
const COLUMNS = [
|
|
@@ -40,6 +70,8 @@ const COLUMNS = [
|
|
|
40
70
|
"updated_at",
|
|
41
71
|
"parent_conversation_id",
|
|
42
72
|
"subagent_type",
|
|
73
|
+
"archived_at",
|
|
74
|
+
"device_id",
|
|
43
75
|
];
|
|
44
76
|
function toView(r) {
|
|
45
77
|
return {
|
|
@@ -55,10 +87,18 @@ function toView(r) {
|
|
|
55
87
|
updatedAt: r.updated_at,
|
|
56
88
|
parentConversationId: r.parent_conversation_id,
|
|
57
89
|
subagentType: r.subagent_type,
|
|
90
|
+
archivedAt: r.archived_at,
|
|
91
|
+
deviceId: r.device_id,
|
|
92
|
+
activity: r.activity ?? null,
|
|
58
93
|
};
|
|
59
94
|
}
|
|
60
95
|
/** The longest conversation title (characters, after trimming). */
|
|
61
96
|
export const CONVERSATION_TITLE_MAX_CHARS = 120;
|
|
97
|
+
/**
|
|
98
|
+
* How far back a `before` page of events reaches past its `limit` for the start of a turn (history
|
|
99
|
+
* paging spec §2); a longer run starts mid-run.
|
|
100
|
+
*/
|
|
101
|
+
export const EVENTS_TURN_EXTEND = 2000;
|
|
62
102
|
/** The sums of the `usage` events matching `where` (over `conversation_events e`), one row. */
|
|
63
103
|
const usageSums = (where) => sql `
|
|
64
104
|
SELECT
|
|
@@ -90,6 +130,10 @@ let ConversationsService = class ConversationsService {
|
|
|
90
130
|
content;
|
|
91
131
|
attachments;
|
|
92
132
|
invoker;
|
|
133
|
+
background;
|
|
134
|
+
devices;
|
|
135
|
+
questions;
|
|
136
|
+
events;
|
|
93
137
|
txHost;
|
|
94
138
|
constructor(db, eventLog, agents, access,
|
|
95
139
|
/** Starts and stops the conversation's runs. */
|
|
@@ -101,7 +145,13 @@ let ConversationsService = class ConversationsService {
|
|
|
101
145
|
/** Binds uploaded files to the conversation in the message's transaction. */
|
|
102
146
|
attachments,
|
|
103
147
|
/** Renders a person's skill invocation (phase D). */
|
|
104
|
-
invoker,
|
|
148
|
+
invoker,
|
|
149
|
+
/** Stops a deleted conversation's background tasks. */
|
|
150
|
+
background,
|
|
151
|
+
/** The device a new conversation is bound to (environments spec §4.1 item 1). */
|
|
152
|
+
devices,
|
|
153
|
+
/** A starter's message skips the run's pending questions (reply-while-question spec §8.1). */
|
|
154
|
+
questions, events, txHost) {
|
|
105
155
|
this.db = db;
|
|
106
156
|
this.eventLog = eventLog;
|
|
107
157
|
this.agents = agents;
|
|
@@ -112,6 +162,10 @@ let ConversationsService = class ConversationsService {
|
|
|
112
162
|
this.content = content;
|
|
113
163
|
this.attachments = attachments;
|
|
114
164
|
this.invoker = invoker;
|
|
165
|
+
this.background = background;
|
|
166
|
+
this.devices = devices;
|
|
167
|
+
this.questions = questions;
|
|
168
|
+
this.events = events;
|
|
115
169
|
this.txHost = txHost;
|
|
116
170
|
}
|
|
117
171
|
/**
|
|
@@ -123,12 +177,24 @@ let ConversationsService = class ConversationsService {
|
|
|
123
177
|
.ensureRun(conversationId)
|
|
124
178
|
.catch((err) => this.log.warn("ensureRun on conversation open failed", { conversationId, err }));
|
|
125
179
|
}
|
|
126
|
-
/**
|
|
127
|
-
|
|
180
|
+
/**
|
|
181
|
+
* Creates an empty conversation bound to its device (`pick`, see
|
|
182
|
+
* {@link ConversationDevices.forNew}); an agent the account cannot use →
|
|
183
|
+
* `agent.not_found`, a device it may not use → `device.not_found` /
|
|
184
|
+
* `device.unavailable`, and nothing is created.
|
|
185
|
+
*/
|
|
186
|
+
async create(orgId, accountId, agentId, pick = {}) {
|
|
128
187
|
await this.agents.get(orgId, agentId, accountId);
|
|
188
|
+
const deviceId = await this.devices.forNew(orgId, accountId, pick);
|
|
129
189
|
const row = await this.db
|
|
130
190
|
.insertInto("conversations")
|
|
131
|
-
.values({
|
|
191
|
+
.values({
|
|
192
|
+
id: randomUUID(),
|
|
193
|
+
org_id: orgId,
|
|
194
|
+
agent_id: agentId,
|
|
195
|
+
account_id: accountId,
|
|
196
|
+
device_id: deviceId,
|
|
197
|
+
})
|
|
132
198
|
.returning(COLUMNS)
|
|
133
199
|
.executeTakeFirstOrThrow();
|
|
134
200
|
return toView(row);
|
|
@@ -139,18 +205,22 @@ let ConversationsService = class ConversationsService {
|
|
|
139
205
|
* message's `clientMessageId` (`create_request_id`), so a retried send returns the same
|
|
140
206
|
* conversation and event with `created: false`. An agent the caller cannot use →
|
|
141
207
|
* `agent.not_found` and nothing is written. Queues a run afterwards, like `postUserMessage`.
|
|
208
|
+
* `events` are every event the create wrote, in seq order from seq 1 (a `model_switched` before
|
|
209
|
+
* the message when the send switched), so a client can seed the new conversation's log whole.
|
|
142
210
|
*/
|
|
143
|
-
async createWithMessage(orgId, accountId, agentId, input) {
|
|
211
|
+
async createWithMessage(orgId, accountId, agentId, input, pick = {}) {
|
|
144
212
|
const agent = await this.agents.get(orgId, agentId, accountId);
|
|
145
213
|
const prior = await this.findCreated(orgId, accountId, agentId, input.clientMessageId);
|
|
146
214
|
if (prior)
|
|
147
215
|
return prior;
|
|
148
|
-
const
|
|
216
|
+
const deviceId = await this.devices.forNew(orgId, accountId, pick);
|
|
217
|
+
const next = await this.planSwitch(orgId, agent.definition, NO_SELECTION, input);
|
|
149
218
|
const extra = await this.resolveExtra(orgId, accountId, input);
|
|
150
219
|
const invoked = await this.prepareSkill(orgId, agentId, undefined, agent.definition, input);
|
|
151
220
|
const id = randomUUID();
|
|
152
|
-
const
|
|
153
|
-
|
|
221
|
+
const all = await this.createIn({ id, orgId, accountId, agentId, deviceId }, input, next, extra, invoked);
|
|
222
|
+
const written = all?.at(-1);
|
|
223
|
+
if (!all || !written) {
|
|
154
224
|
const raced = await this.findCreated(orgId, accountId, agentId, input.clientMessageId);
|
|
155
225
|
if (!raced)
|
|
156
226
|
throw new ApiError("conflict", "The conversation is being created; retry");
|
|
@@ -158,18 +228,20 @@ let ConversationsService = class ConversationsService {
|
|
|
158
228
|
}
|
|
159
229
|
await this.eventLog.notify(id, written.seq);
|
|
160
230
|
await this.runs.ensureRun(id);
|
|
161
|
-
return { conversation: await this.rowView(id), event: written, created: true };
|
|
231
|
+
return { conversation: await this.rowView(id), event: written, events: all, created: true };
|
|
162
232
|
}
|
|
163
233
|
/** The conversation row and its first message (undefined: a concurrent retry committed first). */
|
|
164
234
|
// its own transaction: the caller notifies and publishes after the commit
|
|
165
|
-
async createIn(
|
|
235
|
+
async createIn(conv, input, next, extra, invoked) {
|
|
236
|
+
const { id, orgId, accountId } = conv;
|
|
166
237
|
const row = await this.db
|
|
167
238
|
.insertInto("conversations")
|
|
168
239
|
.values({
|
|
169
240
|
id,
|
|
170
241
|
org_id: orgId,
|
|
171
|
-
agent_id: agentId,
|
|
242
|
+
agent_id: conv.agentId,
|
|
172
243
|
account_id: accountId,
|
|
244
|
+
device_id: conv.deviceId,
|
|
173
245
|
create_request_id: input.clientMessageId,
|
|
174
246
|
})
|
|
175
247
|
.onConflict((oc) => oc
|
|
@@ -182,7 +254,9 @@ let ConversationsService = class ConversationsService {
|
|
|
182
254
|
if (!row)
|
|
183
255
|
return undefined;
|
|
184
256
|
const blocks = await this.bindIn(orgId, id, accountId, input.files ?? []);
|
|
185
|
-
|
|
257
|
+
// a new conversation has no run yet, so nothing to skip
|
|
258
|
+
return (await this.writeMessage(orgId, id, accountId, input, next, extra, blocks, invoked))
|
|
259
|
+
.events;
|
|
186
260
|
}
|
|
187
261
|
/**
|
|
188
262
|
* The conversation (and its first event) an earlier first send with this id created. The id used
|
|
@@ -206,8 +280,10 @@ let ConversationsService = class ConversationsService {
|
|
|
206
280
|
const event = await this.eventLog.findByIdem(row.id, userMessageIdemKey(clientMessageId));
|
|
207
281
|
if (!event)
|
|
208
282
|
return null;
|
|
283
|
+
// what the first send wrote: the log from its start up to the message
|
|
284
|
+
const events = (await this.eventLog.readAfter(row.id, 0, event.seq)).filter((e) => e.seq <= event.seq);
|
|
209
285
|
await this.runs.ensureRun(row.id);
|
|
210
|
-
return { conversation: toView(row), event, created: false };
|
|
286
|
+
return { conversation: toView(row), event, events, created: false };
|
|
211
287
|
}
|
|
212
288
|
async rowView(id) {
|
|
213
289
|
return toView(await this.db
|
|
@@ -231,6 +307,65 @@ let ConversationsService = class ConversationsService {
|
|
|
231
307
|
await this.eventLog.publishChanged(conversationId, "title");
|
|
232
308
|
return toView(row);
|
|
233
309
|
}
|
|
310
|
+
/**
|
|
311
|
+
* Archives or unarchives a conversation (owner only, as {@link rename}). An archived
|
|
312
|
+
* conversation leaves the default lists but stays readable. Publishes `changed: archived`.
|
|
313
|
+
*/
|
|
314
|
+
async setArchived(orgId, conversationId, accountId, archived) {
|
|
315
|
+
await this.writable(orgId, conversationId, accountId);
|
|
316
|
+
const row = await this.db
|
|
317
|
+
.updateTable("conversations")
|
|
318
|
+
.set({ archived_at: archived ? sql `now()` : null })
|
|
319
|
+
.where("id", "=", conversationId)
|
|
320
|
+
.returning(COLUMNS)
|
|
321
|
+
.executeTakeFirstOrThrow();
|
|
322
|
+
await this.eventLog.publishChanged(conversationId, "archived");
|
|
323
|
+
return toView(row);
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Soft-deletes a conversation (owner only; a sub-agent's conversation is `conversation.read_only`):
|
|
327
|
+
* stops an active run, hides the conversation everywhere for its owner and drops its channel
|
|
328
|
+
* bindings, stops every running background task in its sandbox (its sub-agents' too; outside
|
|
329
|
+
* the delete's transaction, a task whose sandbox cannot be reached ends `lost` with
|
|
330
|
+
* `kill_pending`), then every active run of its sub-agent tree (agent map spec §10). The tasks
|
|
331
|
+
* are stopped after the conversation is marked deleted, so no finish
|
|
332
|
+
* (the stops' own, or one the poller writes meanwhile) can wake a run on it: `ensureRun` refuses a
|
|
333
|
+
* deleted conversation (the stops' finishes carry `stoppedBy: "deletion"` as well). The event
|
|
334
|
+
* log, runs and trajectory stay (super admins still see them).
|
|
335
|
+
*/
|
|
336
|
+
async remove(orgId, conversationId, accountId) {
|
|
337
|
+
await this.writable(orgId, conversationId, accountId);
|
|
338
|
+
try {
|
|
339
|
+
await this.abort(orgId, conversationId, accountId);
|
|
340
|
+
}
|
|
341
|
+
catch (e) {
|
|
342
|
+
if (!(e instanceof ApiError && e.code === "run.not_active"))
|
|
343
|
+
throw e;
|
|
344
|
+
}
|
|
345
|
+
await this.markDeleted(conversationId);
|
|
346
|
+
// after the mark, so no finish or delivery of the stops below can start a run on the deleted
|
|
347
|
+
// root (`ensureRun` refuses it). The sandbox's tasks stop first, so the sub-agents' tasks end
|
|
348
|
+
// as a deletion; the tree stop then only stops a task a sub-agent started in between
|
|
349
|
+
// (`stoppedBy: "subagent_end"`, which never wakes either)
|
|
350
|
+
await this.background.stopForDeletedConversation(conversationId);
|
|
351
|
+
// the whole tree stops (agent map spec §10)
|
|
352
|
+
await this.runs.stopTree(conversationId, accountId, { includeSelf: false });
|
|
353
|
+
await this.eventLog.publishChanged(conversationId, "deleted");
|
|
354
|
+
}
|
|
355
|
+
// the publish happens after the commit, in the caller
|
|
356
|
+
async markDeleted(conversationId) {
|
|
357
|
+
await this.db
|
|
358
|
+
.updateTable("conversations")
|
|
359
|
+
.set({ deleted_at: sql `now()` })
|
|
360
|
+
.where("id", "=", conversationId)
|
|
361
|
+
.execute();
|
|
362
|
+
// Queued messages must not start a run on a deleted conversation
|
|
363
|
+
await this.db
|
|
364
|
+
.deleteFrom("conversation_queue")
|
|
365
|
+
.where("conversation_id", "=", conversationId)
|
|
366
|
+
.execute();
|
|
367
|
+
await unbindConversation(this.db.db, conversationId);
|
|
368
|
+
}
|
|
234
369
|
/** 读会话:非所有者、或 agent 已对所有者不可用 → `conversation.not_found`。 */
|
|
235
370
|
async get(orgId, conversationId, viewerAccountId) {
|
|
236
371
|
const { kind: _kind, ...row } = await this.readable(orgId, conversationId, viewerAccountId);
|
|
@@ -255,6 +390,7 @@ let ConversationsService = class ConversationsService {
|
|
|
255
390
|
.where("id", "=", conversationId)
|
|
256
391
|
.where("org_id", "=", orgId)
|
|
257
392
|
.where("account_id", "=", viewerAccountId)
|
|
393
|
+
.where("deleted_at", "is", null)
|
|
258
394
|
// Hidden eval replay conversations (kind 'eval') are not reachable here (only the trajectory
|
|
259
395
|
// viewer shows them); a sub-agent's conversation is, for its owner (sub-agents spec §6.1)
|
|
260
396
|
.where("kind", "in", ["chat", "subagent"])
|
|
@@ -284,10 +420,13 @@ let ConversationsService = class ConversationsService {
|
|
|
284
420
|
let q = this.db
|
|
285
421
|
.selectFrom("conversations")
|
|
286
422
|
.select(COLUMNS)
|
|
423
|
+
.select(activitySql("conversations").as("activity"))
|
|
287
424
|
.where("org_id", "=", orgId)
|
|
288
425
|
.where("account_id", "=", accountId)
|
|
289
426
|
// 评测回放的隐藏对话(kind = 'eval')不在「我的对话」里
|
|
290
427
|
.where("kind", "=", "chat")
|
|
428
|
+
.where("deleted_at", "is", null)
|
|
429
|
+
.where("archived_at", opts.archived === true ? "is not" : "is", null)
|
|
291
430
|
.where((eb) => eb.exists(eb
|
|
292
431
|
.selectFrom("agents")
|
|
293
432
|
.select(sql `1`.as("one"))
|
|
@@ -299,6 +438,12 @@ let ConversationsService = class ConversationsService {
|
|
|
299
438
|
.limit(opts.limit);
|
|
300
439
|
if (opts.agentId !== undefined)
|
|
301
440
|
q = q.where("agent_id", "=", opts.agentId);
|
|
441
|
+
if (opts.q !== undefined) {
|
|
442
|
+
q = q.where(sql `conversations.title ILIKE ${`%${escapeLike(opts.q)}%`} ESCAPE '\\'`);
|
|
443
|
+
}
|
|
444
|
+
if (opts.state !== undefined) {
|
|
445
|
+
q = q.where(sql `${activitySql("conversations")} = ${opts.state}`);
|
|
446
|
+
}
|
|
302
447
|
if (opts.after !== undefined) {
|
|
303
448
|
const after = opts.after;
|
|
304
449
|
q = q.where((eb) => sql `(${eb.ref("updated_at")}, ${eb.ref("id")}) < (
|
|
@@ -322,6 +467,11 @@ let ConversationsService = class ConversationsService {
|
|
|
322
467
|
.where("agents.org_id", "=", orgId)
|
|
323
468
|
.where("agents.deleted_at", "is", null)
|
|
324
469
|
.where(visibleTo(accountId));
|
|
470
|
+
const archivedFilter = opts.archived === true ? sql `c.archived_at IS NOT NULL` : sql `c.archived_at IS NULL`;
|
|
471
|
+
const searchFilter = opts.q === undefined
|
|
472
|
+
? sql ``
|
|
473
|
+
: sql `AND c.title ILIKE ${`%${escapeLike(opts.q)}%`} ESCAPE '\\'`;
|
|
474
|
+
const stateFilter = opts.state === undefined ? sql `` : sql `AND ${activitySql("c")} = ${opts.state}`;
|
|
325
475
|
const cursor = opts.after === undefined
|
|
326
476
|
? sql ``
|
|
327
477
|
: sql `WHERE (g.latest_at, g.agent_id) < (
|
|
@@ -332,6 +482,7 @@ let ConversationsService = class ConversationsService {
|
|
|
332
482
|
SELECT c.agent_id, max(c.updated_at) AS latest_at
|
|
333
483
|
FROM capybara.conversations c
|
|
334
484
|
WHERE c.org_id = ${orgId} AND c.account_id = ${accountId} AND c.kind = 'chat'
|
|
485
|
+
AND c.deleted_at IS NULL AND ${archivedFilter} ${searchFilter} ${stateFilter}
|
|
335
486
|
AND c.agent_id IN ${visibleAgents}
|
|
336
487
|
GROUP BY c.agent_id
|
|
337
488
|
), page AS (
|
|
@@ -341,16 +492,19 @@ let ConversationsService = class ConversationsService {
|
|
|
341
492
|
LIMIT ${opts.limit + 1}
|
|
342
493
|
)
|
|
343
494
|
SELECT page.agent_id, page.latest_at, v.definition ->> 'name' AS agent_name,
|
|
344
|
-
cs.id, cs.org_id, cs.account_id, cs.title, cs.title_source, cs.selection, cs.last_seq,
|
|
345
|
-
cs.created_at, cs.updated_at, cs.parent_conversation_id, cs.subagent_type
|
|
495
|
+
a.profile_avatar, a.profile_updated_at, cs.id, cs.org_id, cs.account_id, cs.title, cs.title_source, cs.selection, cs.last_seq,
|
|
496
|
+
cs.created_at, cs.updated_at, cs.parent_conversation_id, cs.subagent_type,
|
|
497
|
+
cs.archived_at, cs.device_id, cs.activity
|
|
346
498
|
FROM page
|
|
347
499
|
JOIN capybara.agents a ON a.id = page.agent_id
|
|
348
500
|
JOIN capybara.agent_versions v ON v.agent_id = a.id AND v.version = a.current_version
|
|
349
501
|
CROSS JOIN LATERAL (
|
|
350
502
|
SELECT c.id, c.org_id, c.account_id, c.title, c.title_source, c.selection, c.last_seq,
|
|
351
|
-
c.created_at, c.updated_at, c.parent_conversation_id, c.subagent_type
|
|
503
|
+
c.created_at, c.updated_at, c.parent_conversation_id, c.subagent_type,
|
|
504
|
+
c.archived_at, c.device_id, ${activitySql("c")} AS activity
|
|
352
505
|
FROM capybara.conversations c
|
|
353
506
|
WHERE c.org_id = ${orgId} AND c.account_id = ${accountId} AND c.kind = 'chat'
|
|
507
|
+
AND c.deleted_at IS NULL AND ${archivedFilter} ${searchFilter} ${stateFilter}
|
|
354
508
|
AND c.agent_id = page.agent_id
|
|
355
509
|
ORDER BY c.updated_at DESC, c.id DESC
|
|
356
510
|
LIMIT ${opts.perGroup + 1}
|
|
@@ -362,7 +516,14 @@ let ConversationsService = class ConversationsService {
|
|
|
362
516
|
for (const r of rows) {
|
|
363
517
|
if (current?.agent.id !== r.agent_id) {
|
|
364
518
|
current = {
|
|
365
|
-
agent: {
|
|
519
|
+
agent: {
|
|
520
|
+
id: r.agent_id,
|
|
521
|
+
name: r.agent_name ?? "",
|
|
522
|
+
profile: {
|
|
523
|
+
avatar: r.profile_avatar,
|
|
524
|
+
updatedAt: r.profile_updated_at.toISOString(),
|
|
525
|
+
},
|
|
526
|
+
},
|
|
366
527
|
latestAt: r.latest_at,
|
|
367
528
|
conversations: [],
|
|
368
529
|
more: false,
|
|
@@ -377,7 +538,14 @@ let ConversationsService = class ConversationsService {
|
|
|
377
538
|
}
|
|
378
539
|
const page = groups.slice(0, opts.limit);
|
|
379
540
|
const next = groups.length > opts.limit ? (page.at(-1)?.agent.id ?? null) : null;
|
|
380
|
-
|
|
541
|
+
// The archived entry's count ignores `q` and `state`
|
|
542
|
+
const counted = await sql `
|
|
543
|
+
SELECT count(*) AS n FROM capybara.conversations c
|
|
544
|
+
WHERE c.org_id = ${orgId} AND c.account_id = ${accountId} AND c.kind = 'chat'
|
|
545
|
+
AND c.deleted_at IS NULL AND c.archived_at IS NOT NULL
|
|
546
|
+
AND c.agent_id IN ${visibleAgents}
|
|
547
|
+
`.execute(this.db.db);
|
|
548
|
+
return { groups: page, next, archivedCount: Number(counted.rows[0]?.n ?? 0) };
|
|
381
549
|
}
|
|
382
550
|
/**
|
|
383
551
|
* The sub-agents of a conversation, newest first (sub-agents spec §14.3); owner only, as
|
|
@@ -459,26 +627,38 @@ let ConversationsService = class ConversationsService {
|
|
|
459
627
|
return { subagents, next };
|
|
460
628
|
}
|
|
461
629
|
/**
|
|
462
|
-
*
|
|
463
|
-
*
|
|
630
|
+
* The agent tree of a root conversation (agent map spec §8, §9.2): the root and every sub-agent
|
|
631
|
+
* below it with status, model, time, tokens and tool calls. Owner only, as {@link isAccessible};
|
|
632
|
+
* a sub-agent's id (not a root) is `conversation.not_found` too.
|
|
633
|
+
*/
|
|
634
|
+
async agentTree(orgId, conversationId, viewerAccountId) {
|
|
635
|
+
if (!(await this.isAccessible(orgId, conversationId, viewerAccountId)))
|
|
636
|
+
throw notFound();
|
|
637
|
+
const root = await readAgentTree(this.db.db, orgId, conversationId);
|
|
638
|
+
if (!root)
|
|
639
|
+
throw notFound();
|
|
640
|
+
return { root };
|
|
641
|
+
}
|
|
642
|
+
/**
|
|
643
|
+
* A conversation's token usage: its own `usage` events (compaction included) plus those of every
|
|
644
|
+
* sub-agent below it, at any depth (sub-agents spec §8.3, agent map spec §6: every descendant
|
|
645
|
+
* counts toward the root; `conversationTree`), whose logs keep their own. Owner only, as
|
|
646
|
+
* {@link get}.
|
|
464
647
|
*/
|
|
465
648
|
async usage(orgId, conversationId, viewerAccountId) {
|
|
466
649
|
if (!(await this.isAccessible(orgId, conversationId, viewerAccountId)))
|
|
467
650
|
throw notFound();
|
|
468
|
-
const
|
|
469
|
-
|
|
470
|
-
UNION ALL
|
|
471
|
-
SELECT c.id FROM capybara.conversations c
|
|
472
|
-
WHERE c.parent_conversation_id = ${conversationId} AND c.kind = 'subagent'
|
|
473
|
-
)`)}`.execute(this.db.db);
|
|
651
|
+
const ids = (await conversationTree(this.db.db, conversationId)).map((c) => c.id);
|
|
652
|
+
const { rows } = await sql `${usageSums(sql `e.conversation_id IN (${sql.join(ids.length > 0 ? ids : [conversationId])})`)}`.execute(this.db.db);
|
|
474
653
|
const row = rows[0];
|
|
475
654
|
return row
|
|
476
655
|
? toUsage(row)
|
|
477
656
|
: { inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0 };
|
|
478
657
|
}
|
|
479
658
|
/**
|
|
480
|
-
* The conversation whose sandbox `conversationId` works in: a sub-agent's is its
|
|
481
|
-
* (sub-agents spec §10.1), any other its own. Call
|
|
659
|
+
* The conversation whose sandbox `conversationId` works in: a sub-agent's is its root
|
|
660
|
+
* conversation's at any depth (sub-agents spec §10.1, agent map spec §6), any other its own. Call
|
|
661
|
+
* only after an access check.
|
|
482
662
|
*/
|
|
483
663
|
async sandboxConversationOf(orgId, conversationId) {
|
|
484
664
|
const row = await this.db
|
|
@@ -487,7 +667,9 @@ let ConversationsService = class ConversationsService {
|
|
|
487
667
|
.where("id", "=", conversationId)
|
|
488
668
|
.where("org_id", "=", orgId)
|
|
489
669
|
.executeTakeFirst();
|
|
490
|
-
|
|
670
|
+
if (!row?.parent_conversation_id)
|
|
671
|
+
return conversationId;
|
|
672
|
+
return rootConversationOf(this.db.db, row.parent_conversation_id);
|
|
491
673
|
}
|
|
492
674
|
/** 读事件(先做 `get` 的可见性判定);顺带不阻塞地 {@link kickRun}。 */
|
|
493
675
|
async listEvents(orgId, conversationId, viewerAccountId, afterSeq, limit) {
|
|
@@ -495,6 +677,16 @@ let ConversationsService = class ConversationsService {
|
|
|
495
677
|
this.kickRun(conversationId);
|
|
496
678
|
return this.eventLog.readAfter(conversationId, afterSeq, limit);
|
|
497
679
|
}
|
|
680
|
+
/**
|
|
681
|
+
* The turn-aligned page of events before `beforeSeq` (`null`: the log's last page), with how
|
|
682
|
+
* many runs started before it ({@link EventLog.readTurnPageBefore}; history paging spec §2).
|
|
683
|
+
* Visibility as {@link get}; kicks a stalled run as {@link listEvents} does.
|
|
684
|
+
*/
|
|
685
|
+
async listEventsBefore(orgId, conversationId, viewerAccountId, beforeSeq, limit) {
|
|
686
|
+
await this.get(orgId, conversationId, viewerAccountId);
|
|
687
|
+
this.kickRun(conversationId);
|
|
688
|
+
return this.eventLog.readTurnPageBefore(conversationId, beforeSeq, limit, EVENTS_TURN_EXTEND);
|
|
689
|
+
}
|
|
498
690
|
/**
|
|
499
691
|
* 追加一条用户消息;带 `clientMessageId` 时重复提交返回同一事件。写入后调用 `ensureRun`:
|
|
500
692
|
* 没有进行中的运行时投递一轮;运行中则由当前运行在步骤间隙吸收,或在它结束时再次 `ensureRun`。
|
|
@@ -527,46 +719,60 @@ let ConversationsService = class ConversationsService {
|
|
|
527
719
|
: undefined;
|
|
528
720
|
const next = agent === undefined || (input.model === undefined && input.effort === undefined)
|
|
529
721
|
? null
|
|
530
|
-
: await this.planSwitch(agent, conv.selection, input);
|
|
722
|
+
: await this.planSwitch(orgId, agent, conv.selection, input);
|
|
531
723
|
const extra = await this.resolveExtra(orgId, accountId, input);
|
|
532
724
|
const invoked = agent === undefined
|
|
533
725
|
? undefined
|
|
534
726
|
: await this.prepareSkill(orgId, conv.agentId, conversationId, agent, input);
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
727
|
+
// one transaction: the sender, time zone and language are read with the message's write
|
|
728
|
+
// (run context spec §3.2)
|
|
729
|
+
const { event, skipped, toSeq } = await this.postIn(orgId, conversationId, accountId, input, next, extra, invoked);
|
|
730
|
+
await this.eventLog.notify(conversationId, toSeq);
|
|
731
|
+
await this.announceSkipped(skipped);
|
|
732
|
+
if (next !== null)
|
|
733
|
+
await this.eventLog.publishChanged(conversationId, "selection");
|
|
734
|
+
// The message is written: it brings an archived conversation back into the default lists
|
|
735
|
+
if (conv.archivedAt !== null) {
|
|
736
|
+
await this.db
|
|
737
|
+
.updateTable("conversations")
|
|
738
|
+
.set({ archived_at: null })
|
|
739
|
+
.where("id", "=", conversationId)
|
|
740
|
+
.execute();
|
|
741
|
+
await this.eventLog.publishChanged(conversationId, "archived");
|
|
546
742
|
}
|
|
547
743
|
await this.runs.ensureRun(conversationId);
|
|
548
744
|
return event;
|
|
549
745
|
}
|
|
550
|
-
/**
|
|
746
|
+
/**
|
|
747
|
+
* Writes a message in one transaction: binds its files, reads its sender context and appends it
|
|
748
|
+
* (after its `model_switched` when it switches).
|
|
749
|
+
*/
|
|
551
750
|
// its own transaction: the caller notifies and publishes after the commit
|
|
552
751
|
async postIn(orgId, conversationId, accountId, input, next, extra, invoked) {
|
|
553
752
|
const blocks = await this.bindIn(orgId, conversationId, accountId, input.files ?? []);
|
|
554
|
-
|
|
753
|
+
const written = await this.writeMessage(orgId, conversationId, accountId, input, next, extra, blocks, invoked);
|
|
754
|
+
const event = written.events.at(-1);
|
|
755
|
+
return {
|
|
756
|
+
event,
|
|
757
|
+
skipped: written.skipped,
|
|
758
|
+
toSeq: Math.max(event.seq, written.skippedToSeq ?? 0),
|
|
759
|
+
};
|
|
555
760
|
}
|
|
556
761
|
/**
|
|
557
762
|
* The selection a message switches to, or null when it changes nothing. A model equal to the
|
|
558
763
|
* agent's means "back to the agent's model" (null); a model change without `effort` resets the
|
|
559
764
|
* effort. The target model must resolve (`agent.model_unavailable`) and declare the effort
|
|
560
|
-
* (`validation_failed`). Resolving is the agent editor's check
|
|
561
|
-
*
|
|
562
|
-
* worker's `fallBackIfUnavailable`
|
|
765
|
+
* (`validation_failed`). Resolving is the agent editor's check, for the org (its effective
|
|
766
|
+
* provider config, spec B §5.5) and its disabled lists: a model the platform or the org disabled,
|
|
767
|
+
* or a non-chat model, is refused (spec B §5.3), as the run worker's `fallBackIfUnavailable` falls
|
|
768
|
+
* back from it.
|
|
563
769
|
*/
|
|
564
|
-
async planSwitch(agent, current, input) {
|
|
770
|
+
async planSwitch(orgId, agent, current, input) {
|
|
565
771
|
const next = planSelection(agent.model, current, input);
|
|
566
772
|
if (next === null)
|
|
567
773
|
return null;
|
|
568
774
|
const { model, effort } = next;
|
|
569
|
-
const { info } = await this.providers.resolve(model ?? agent.model);
|
|
775
|
+
const { info } = await this.providers.resolve(orgId, model ?? agent.model);
|
|
570
776
|
if (effort !== null) {
|
|
571
777
|
const knob = info.parameters.find((p) => p.key === "effort");
|
|
572
778
|
const values = knob?.schema?.enum ?? [];
|
|
@@ -587,13 +793,40 @@ let ConversationsService = class ConversationsService {
|
|
|
587
793
|
if (pick.model === undefined && pick.effort === undefined)
|
|
588
794
|
return;
|
|
589
795
|
const agent = await this.agents.get(orgId, conv.agentId, accountId);
|
|
590
|
-
await this.planSwitch(agent.definition, conv.selection, pick);
|
|
796
|
+
await this.planSwitch(orgId, agent.definition, conv.selection, pick);
|
|
797
|
+
}
|
|
798
|
+
/**
|
|
799
|
+
* Skips, in the caller's transaction (it wrote `accountId`'s message at `messageSeq` and holds the
|
|
800
|
+
* conversation row lock), the pending questions that message closes (reply-while-question spec
|
|
801
|
+
* §8.1). The queue's "send now" uses it as the direct send does; announce after the commit with
|
|
802
|
+
* {@link announceSkipped}.
|
|
803
|
+
*/
|
|
804
|
+
async skipQuestionsIn(conversationId, accountId, messageSeq) {
|
|
805
|
+
return this.questions.skipPendingIn(conversationId, accountId, messageSeq);
|
|
806
|
+
}
|
|
807
|
+
/**
|
|
808
|
+
* After the commit: announces each skipped question (`question.answered`, outcome `skipped`), so
|
|
809
|
+
* its run resumes (waits) and its IM card updates (channel jobs).
|
|
810
|
+
*/
|
|
811
|
+
async announceSkipped(records) {
|
|
812
|
+
for (const q of records) {
|
|
813
|
+
await this.events.emit("question.answered", {
|
|
814
|
+
id: q.id,
|
|
815
|
+
orgId: q.orgId,
|
|
816
|
+
conversationId: q.conversationId,
|
|
817
|
+
runId: q.runId,
|
|
818
|
+
outcome: "skipped",
|
|
819
|
+
});
|
|
820
|
+
}
|
|
591
821
|
}
|
|
592
822
|
/**
|
|
593
823
|
* Writes the message (preceded by its `model_switched` when it switches) inside `t` and updates
|
|
594
|
-
* `conversations.selection`; returns the
|
|
824
|
+
* `conversations.selection`; returns the events written, in seq order (the `user_message`
|
|
825
|
+
* last). A message this call newly wrote (not a retry's deduped one) then skips the pending
|
|
826
|
+
* questions its author may answer (reply-while-question spec §8.1): `skipped` and the highest
|
|
827
|
+
* seq their events took. The caller notifies and emits `question.answered` after commit.
|
|
595
828
|
*/
|
|
596
|
-
async writeMessage(conversationId, accountId, input, next, extra, blocks, invoked) {
|
|
829
|
+
async writeMessage(orgId, conversationId, accountId, input, next, extra, blocks, invoked) {
|
|
597
830
|
const events = [];
|
|
598
831
|
if (next !== null) {
|
|
599
832
|
events.push({
|
|
@@ -604,8 +837,19 @@ let ConversationsService = class ConversationsService {
|
|
|
604
837
|
payload: { ...next, byAccountId: accountId, reason: "user" },
|
|
605
838
|
});
|
|
606
839
|
}
|
|
607
|
-
|
|
608
|
-
|
|
840
|
+
const context = await readMessageContext(this.db.db, {
|
|
841
|
+
orgId,
|
|
842
|
+
accountId,
|
|
843
|
+
senderName: input.senderName,
|
|
844
|
+
browser: { timeZone: input.timeZone, locale: input.locale },
|
|
845
|
+
im: input.im,
|
|
846
|
+
});
|
|
847
|
+
events.push(this.userMessage(accountId, input, extra, blocks, invoked, context));
|
|
848
|
+
const { events: written, fresh } = await this.eventLog.appendInReport(conversationId, events);
|
|
849
|
+
const message = written.at(-1);
|
|
850
|
+
const skips = fresh.at(-1) === true
|
|
851
|
+
? await this.skipQuestionsIn(conversationId, accountId, message.seq)
|
|
852
|
+
: { records: [], toSeq: null };
|
|
609
853
|
if (next !== null) {
|
|
610
854
|
const t = this.db.db;
|
|
611
855
|
// the cache follows the log (a retried message's switch may be an old, deduped event that a
|
|
@@ -616,7 +860,7 @@ let ConversationsService = class ConversationsService {
|
|
|
616
860
|
.where("id", "=", conversationId)
|
|
617
861
|
.execute();
|
|
618
862
|
}
|
|
619
|
-
return written.
|
|
863
|
+
return { events: written, skipped: skips.records, skippedToSeq: skips.toSeq };
|
|
620
864
|
}
|
|
621
865
|
/**
|
|
622
866
|
* Renders the message's skill invocation (phase D), or undefined when it has none. Resolved
|
|
@@ -661,7 +905,7 @@ let ConversationsService = class ConversationsService {
|
|
|
661
905
|
return [];
|
|
662
906
|
return this.attachments.bindForMessage(orgId, conversationId, accountId, files);
|
|
663
907
|
}
|
|
664
|
-
userMessage(accountId, input, extra, fileBlocks, invoked) {
|
|
908
|
+
userMessage(accountId, input, extra, fileBlocks, invoked, context) {
|
|
665
909
|
// a skill invocation's rendered text replaces the typed arguments as content[0]
|
|
666
910
|
const text = invoked?.text ?? input.text;
|
|
667
911
|
return {
|
|
@@ -678,6 +922,7 @@ let ConversationsService = class ConversationsService {
|
|
|
678
922
|
],
|
|
679
923
|
...(extra.attachments.length > 0 && { attachments: extra.attachments }),
|
|
680
924
|
authorAccountId: accountId,
|
|
925
|
+
...context,
|
|
681
926
|
...(input.clientMessageId !== undefined && { clientMessageId: input.clientMessageId }),
|
|
682
927
|
...(input.retryOf !== undefined && { retryOf: input.retryOf }),
|
|
683
928
|
...(invoked !== undefined && { skill: invoked.skill }),
|
|
@@ -688,9 +933,26 @@ let ConversationsService = class ConversationsService {
|
|
|
688
933
|
* 中止会话当前的运行(queued / running / waiting):返回 runId;没有 → `run.not_active`。
|
|
689
934
|
* 等人处理的运行没有 worker:直接取消等待并写终态。其余经 Redis 广播,运行所在的任意副本都会收到;
|
|
690
935
|
* 运行已是孤儿(没有任何 worker 在执行)时直接写终态。
|
|
936
|
+
*
|
|
937
|
+
* A root conversation's stop stops only its own run: its background sub-agents keep working
|
|
938
|
+
* (agent map spec §6). A sub-agent's conversation (its owner, from the agent map) stops that
|
|
939
|
+
* sub-agent with every descendant (`RunControl.stopTree`); `run.not_active` when nothing in that
|
|
940
|
+
* subtree runs, else the sub-agent's latest run id.
|
|
691
941
|
*/
|
|
692
942
|
async abort(orgId, conversationId, accountId) {
|
|
693
|
-
await this.get(orgId, conversationId, accountId);
|
|
943
|
+
const conv = await this.get(orgId, conversationId, accountId);
|
|
944
|
+
if (conv.parentConversationId !== null) {
|
|
945
|
+
const latest = await this.db
|
|
946
|
+
.selectFrom("runs")
|
|
947
|
+
.select("id")
|
|
948
|
+
.where("conversation_id", "=", conversationId)
|
|
949
|
+
.orderBy("created_at", "desc")
|
|
950
|
+
.executeTakeFirst();
|
|
951
|
+
const n = await this.runs.stopTree(conversationId, accountId);
|
|
952
|
+
if (n === 0 || !latest)
|
|
953
|
+
throw new ApiError("run.not_active", "No active run to abort");
|
|
954
|
+
return latest.id;
|
|
955
|
+
}
|
|
694
956
|
const run = await this.db
|
|
695
957
|
.selectFrom("runs")
|
|
696
958
|
.select(["id", "status"])
|
|
@@ -718,9 +980,15 @@ let ConversationsService = class ConversationsService {
|
|
|
718
980
|
__decorate([
|
|
719
981
|
Transactional({ propagation: "requires_new" })
|
|
720
982
|
], ConversationsService.prototype, "createIn", null);
|
|
983
|
+
__decorate([
|
|
984
|
+
Transactional()
|
|
985
|
+
], ConversationsService.prototype, "markDeleted", null);
|
|
721
986
|
__decorate([
|
|
722
987
|
Transactional({ propagation: "requires_new" })
|
|
723
988
|
], ConversationsService.prototype, "postIn", null);
|
|
989
|
+
__decorate([
|
|
990
|
+
Transactional({ propagation: "mandatory" })
|
|
991
|
+
], ConversationsService.prototype, "skipQuestionsIn", null);
|
|
724
992
|
__decorate([
|
|
725
993
|
Transactional({ propagation: "mandatory" })
|
|
726
994
|
], ConversationsService.prototype, "writeMessage", null);
|
|
@@ -739,6 +1007,10 @@ ConversationsService = __decorate([
|
|
|
739
1007
|
__param(7, Inject(ConnectorContent)),
|
|
740
1008
|
__param(8, Inject(AttachmentsService)),
|
|
741
1009
|
__param(9, Inject(SkillInvoker)),
|
|
742
|
-
__param(10, Inject(
|
|
1010
|
+
__param(10, Inject(BackgroundTaskStopper)),
|
|
1011
|
+
__param(11, Inject(ConversationDevices)),
|
|
1012
|
+
__param(12, Inject(QuestionsService)),
|
|
1013
|
+
__param(13, Inject(KernelEvents)),
|
|
1014
|
+
__param(14, Inject(TransactionHost))
|
|
743
1015
|
], ConversationsService);
|
|
744
1016
|
export { ConversationsService };
|