@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
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { sql } from "kysely";
|
|
2
|
+
import { readOrgSettings } from "../orgs/settings.service.js";
|
|
3
|
+
import { sanitizeSenderName } from "../runtime/context/run-context.js";
|
|
4
|
+
import { isTimeZone } from "../time-zone.js";
|
|
5
|
+
/** The name of an anonymous IM guest whose IM profile gives none. */
|
|
6
|
+
export const ANONYMOUS_SENDER_NAME = "Anonymous guest";
|
|
7
|
+
/**
|
|
8
|
+
* An IM sender's language tag as a run-context language: `zh` and `zh-*` / `zh_*` (any case) are
|
|
9
|
+
* Chinese, any other non-empty tag English; not a string or blank: undefined.
|
|
10
|
+
*/
|
|
11
|
+
export function imLocale(tag) {
|
|
12
|
+
if (typeof tag !== "string")
|
|
13
|
+
return undefined;
|
|
14
|
+
const t = tag.trim().toLowerCase();
|
|
15
|
+
if (t === "" || t.length > 64)
|
|
16
|
+
return undefined;
|
|
17
|
+
return t === "zh" || t.startsWith("zh-") || t.startsWith("zh_") ? "zh" : "en";
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The time zone and language an inbound channel event's sender carries (values from an extension,
|
|
21
|
+
* so checked here): a time zone the runtime knows, the language normalized by {@link imLocale}.
|
|
22
|
+
*/
|
|
23
|
+
export function imSenderContext(sender) {
|
|
24
|
+
const tz = sender.timeZone;
|
|
25
|
+
const locale = imLocale(sender.locale);
|
|
26
|
+
return {
|
|
27
|
+
...(typeof tz === "string" && isTimeZone(tz) && { timeZone: tz }),
|
|
28
|
+
...(locale !== undefined && { locale }),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/** How many of the person's latest web conversations {@link latestWebLocale} looks at. */
|
|
32
|
+
export const WEB_LOCALE_CONVERSATIONS = 20;
|
|
33
|
+
/**
|
|
34
|
+
* The UI language of the person's most recent web message in the org (run context spec §3.4):
|
|
35
|
+
* the latest `user_message` they wrote in each of their {@link WEB_LOCALE_CONVERSATIONS} most
|
|
36
|
+
* recently updated chat conversations that are not IM threads, the newest one with a recorded
|
|
37
|
+
* `locale`. Bounded and index-friendly: `conversations_account_idx`, then one backwards primary-key
|
|
38
|
+
* walk per conversation that stops at its latest user message. Undefined when none.
|
|
39
|
+
*/
|
|
40
|
+
export async function latestWebLocale(t, orgId, accountId) {
|
|
41
|
+
const r = await sql `
|
|
42
|
+
SELECT m.locale FROM (
|
|
43
|
+
SELECT c.id FROM capybara.conversations c
|
|
44
|
+
WHERE c.org_id = ${orgId} AND c.account_id = ${accountId} AND c.kind = 'chat'
|
|
45
|
+
AND c.deleted_at IS NULL
|
|
46
|
+
AND NOT EXISTS (SELECT 1 FROM capybara.channel_threads th WHERE th.conversation_id = c.id)
|
|
47
|
+
ORDER BY c.updated_at DESC
|
|
48
|
+
LIMIT ${WEB_LOCALE_CONVERSATIONS}
|
|
49
|
+
) c
|
|
50
|
+
CROSS JOIN LATERAL (
|
|
51
|
+
SELECT e.payload->>'locale' AS locale, e.created_at FROM capybara.conversation_events e
|
|
52
|
+
WHERE e.conversation_id = c.id AND e.type = 'user_message'
|
|
53
|
+
AND e.payload->>'authorAccountId' = ${accountId}
|
|
54
|
+
ORDER BY e.seq DESC
|
|
55
|
+
LIMIT 1
|
|
56
|
+
) m
|
|
57
|
+
WHERE m.locale IN ('zh', 'en')
|
|
58
|
+
ORDER BY m.created_at DESC
|
|
59
|
+
LIMIT 1`.execute(t);
|
|
60
|
+
const locale = r.rows[0]?.locale;
|
|
61
|
+
return locale === "zh" || locale === "en" ? locale : undefined;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The language of kernel-generated IM text for one person (run context spec §3.4, maintainer
|
|
65
|
+
* decision 2026-11-08: in IM, language is per person): `im` (what the IM platform gave for the
|
|
66
|
+
* sender, already normalized by {@link imLocale}), else the UI language of the person's most recent
|
|
67
|
+
* web message in the org ({@link latestWebLocale}; no account, e.g. a speaker not resolved yet or
|
|
68
|
+
* the shared anonymous guest: skipped), else the org's `locale`. Read from PG on every call: no
|
|
69
|
+
* cache, so every replica answers the same.
|
|
70
|
+
*/
|
|
71
|
+
export async function recipientLocale(t, input) {
|
|
72
|
+
if (input.im !== undefined)
|
|
73
|
+
return input.im;
|
|
74
|
+
if (input.accountId) {
|
|
75
|
+
const web = await latestWebLocale(t, input.orgId, input.accountId);
|
|
76
|
+
if (web !== undefined)
|
|
77
|
+
return web;
|
|
78
|
+
}
|
|
79
|
+
return (await readOrgSettings(t, input.orgId)).locale;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Who wrote a message and in which time zone and language (run context spec §3.2, §3.4), read in
|
|
83
|
+
* the message's transaction (`t`):
|
|
84
|
+
* - `sender`: the account's display name and org role at send time; the org's anonymous guest
|
|
85
|
+
* account (`org_anonymous_accounts`) is `{ name: <senderName, else "Anonymous guest">, role:
|
|
86
|
+
* "guest", anonymous: true }`. Names are sanitised; an empty one leaves `sender` out.
|
|
87
|
+
* - `timeZone`: what the IM platform gave for the sender (`im`, when valid), else the account's
|
|
88
|
+
* setting, else the browser's (when valid), else the org default, else UTC. The anonymous guest
|
|
89
|
+
* account has no setting of its own, so it gets the IM value or the org default.
|
|
90
|
+
* - `locale`: the IM platform's value, else the browser's UI language, else the UI language of the
|
|
91
|
+
* person's most recent web message in the org ({@link latestWebLocale}; not for the shared
|
|
92
|
+
* anonymous guest account), else the org's `locale`.
|
|
93
|
+
*
|
|
94
|
+
* The values used are recorded on the message, so the run context is derived from the log.
|
|
95
|
+
*/
|
|
96
|
+
export async function readMessageContext(t, input) {
|
|
97
|
+
const row = await t
|
|
98
|
+
.selectFrom("accounts")
|
|
99
|
+
.leftJoin("memberships", (j) => j
|
|
100
|
+
.onRef("memberships.account_id", "=", "accounts.id")
|
|
101
|
+
.on("memberships.org_id", "=", input.orgId))
|
|
102
|
+
.leftJoin("org_anonymous_accounts as anon", (j) => j.onRef("anon.account_id", "=", "accounts.id").on("anon.org_id", "=", input.orgId))
|
|
103
|
+
.select([
|
|
104
|
+
"accounts.display_name",
|
|
105
|
+
"accounts.time_zone",
|
|
106
|
+
"memberships.role",
|
|
107
|
+
"anon.account_id as anonymous",
|
|
108
|
+
])
|
|
109
|
+
.where("accounts.id", "=", input.accountId)
|
|
110
|
+
.executeTakeFirst();
|
|
111
|
+
const org = await readOrgSettings(t, input.orgId);
|
|
112
|
+
const anonymous = row?.anonymous !== null && row?.anonymous !== undefined;
|
|
113
|
+
let sender;
|
|
114
|
+
if (row !== undefined) {
|
|
115
|
+
const name = anonymous
|
|
116
|
+
? sanitizeSenderName(input.senderName ?? "") || ANONYMOUS_SENDER_NAME
|
|
117
|
+
: sanitizeSenderName(row.display_name);
|
|
118
|
+
if (name !== "") {
|
|
119
|
+
sender = anonymous
|
|
120
|
+
? { name, role: "guest", anonymous: true }
|
|
121
|
+
: { name, ...(row.role !== null && { role: row.role }) };
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const im = input.im?.timeZone;
|
|
125
|
+
const own = row?.time_zone ?? null;
|
|
126
|
+
const browser = input.browser?.timeZone;
|
|
127
|
+
const timeZone = im !== undefined && isTimeZone(im)
|
|
128
|
+
? im
|
|
129
|
+
: own !== null && isTimeZone(own)
|
|
130
|
+
? own
|
|
131
|
+
: browser !== undefined && isTimeZone(browser)
|
|
132
|
+
? browser
|
|
133
|
+
: (org.timeZone ?? "UTC");
|
|
134
|
+
const locale = input.im?.locale ??
|
|
135
|
+
input.browser?.locale ??
|
|
136
|
+
(row !== undefined && !anonymous
|
|
137
|
+
? await latestWebLocale(t, input.orgId, input.accountId)
|
|
138
|
+
: undefined) ??
|
|
139
|
+
org.locale;
|
|
140
|
+
return {
|
|
141
|
+
...(sender !== undefined && { sender }),
|
|
142
|
+
timeZone,
|
|
143
|
+
locale,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
@@ -5,6 +5,7 @@ import { type InvocationRecord, type RenderedInvocation } from "../skills/invoke
|
|
|
5
5
|
import type { AttachmentRef } from "./conversations.service.js";
|
|
6
6
|
import { type AppendEvent, type EventLog } from "./event-log.js";
|
|
7
7
|
import type { ConversationEvent, LogContentBlock } from "./events.js";
|
|
8
|
+
import { type MessageContext } from "./message-context.js";
|
|
8
9
|
/**
|
|
9
10
|
* Queued messages (UI refresh B, spec §5.7): messages a person queued while a run was going. They
|
|
10
11
|
* are conversation state in PG, not events: the model has not seen them, so they enter the log only
|
|
@@ -113,7 +114,7 @@ export declare function storedSkill(invokedAs: string, invoked: RenderedInvocati
|
|
|
113
114
|
first: LogContentBlock;
|
|
114
115
|
};
|
|
115
116
|
/** The `user_message` a queued item becomes, as `postUserMessage` would have written it. */
|
|
116
|
-
export declare function queuedUserMessage(r: QueueRow): AppendEvent;
|
|
117
|
+
export declare function queuedUserMessage(r: QueueRow, context?: MessageContext): AppendEvent;
|
|
117
118
|
/**
|
|
118
119
|
* Appends a queued item inside `t` (the caller holds the conversation row lock): its pick, re-planned
|
|
119
120
|
* against the selection in effect now, becomes a `model_switched` before the `user_message`, as a
|
|
@@ -125,6 +126,7 @@ export declare function queuedUserMessage(r: QueueRow): AppendEvent;
|
|
|
125
126
|
export declare function appendQueuedIn(t: KernelTrx, eventLog: Pick<EventLog, "appendIn">, conversationId: string, r: QueueRow): Promise<{
|
|
126
127
|
event: ConversationEvent;
|
|
127
128
|
switched: boolean;
|
|
129
|
+
unarchived: boolean;
|
|
128
130
|
}>;
|
|
129
131
|
/**
|
|
130
132
|
* Why a queued item's skill can no longer be invoked, or null (also null for a plain message).
|
|
@@ -145,11 +147,12 @@ export declare const queueFull: () => ApiError;
|
|
|
145
147
|
* when the queue is empty. An item whose message is already in the log (a retried enqueue after it
|
|
146
148
|
* was sent) is dropped and the next one is taken. A head item whose skill can no longer be invoked
|
|
147
149
|
* stays queued and the queue pauses (`skill_not_invocable`): `{ paused }`. The caller notifies
|
|
148
|
-
* after commit.
|
|
150
|
+
* after commit (and publishes `archived` when the send unarchived the conversation).
|
|
149
151
|
*/
|
|
150
152
|
export declare function dispatchQueuedIn(t: KernelTrx, eventLog: Pick<EventLog, "appendIn">, conversationId: string): Promise<{
|
|
151
153
|
event: ConversationEvent;
|
|
152
154
|
switched: boolean;
|
|
155
|
+
unarchived: boolean;
|
|
153
156
|
} | {
|
|
154
157
|
paused: QueuePauseReason;
|
|
155
158
|
} | null>;
|
|
@@ -4,6 +4,7 @@ import { ApiError } from "../errors.js";
|
|
|
4
4
|
import { recordedSkillBlocked, } from "../skills/invoke.js";
|
|
5
5
|
import { payloadJson } from "./event-log.js";
|
|
6
6
|
import { userMessageIdemKey } from "./idem-keys.js";
|
|
7
|
+
import { readMessageContext } from "./message-context.js";
|
|
7
8
|
import { planSelection, readSelection } from "./selection.js";
|
|
8
9
|
/**
|
|
9
10
|
* Queued messages (UI refresh B, spec §5.7): messages a person queued while a run was going. They
|
|
@@ -77,7 +78,7 @@ export function storedSkill(invokedAs, invoked) {
|
|
|
77
78
|
return { skill: payloadJson(skill), first: { type: "text", text: invoked.text } };
|
|
78
79
|
}
|
|
79
80
|
/** The `user_message` a queued item becomes, as `postUserMessage` would have written it. */
|
|
80
|
-
export function queuedUserMessage(r) {
|
|
81
|
+
export function queuedUserMessage(r, context = {}) {
|
|
81
82
|
const attachments = r.attachments;
|
|
82
83
|
const skill = r.skill;
|
|
83
84
|
return {
|
|
@@ -91,6 +92,7 @@ export function queuedUserMessage(r) {
|
|
|
91
92
|
],
|
|
92
93
|
...(attachments.length > 0 && { attachments }),
|
|
93
94
|
authorAccountId: r.account_id,
|
|
95
|
+
...context,
|
|
94
96
|
clientMessageId: r.client_message_id,
|
|
95
97
|
...(skill !== null && { skill: skill.record }),
|
|
96
98
|
},
|
|
@@ -120,7 +122,14 @@ export async function appendQueuedIn(t, eventLog, conversationId, r) {
|
|
|
120
122
|
payload: { ...next, byAccountId: r.account_id, reason: "user" },
|
|
121
123
|
});
|
|
122
124
|
}
|
|
123
|
-
|
|
125
|
+
// run context spec §3.4: no browser values were stored with a leftover row
|
|
126
|
+
const org = await t
|
|
127
|
+
.selectFrom("conversations")
|
|
128
|
+
.select("org_id")
|
|
129
|
+
.where("id", "=", conversationId)
|
|
130
|
+
.executeTakeFirstOrThrow();
|
|
131
|
+
const context = await readMessageContext(t, { orgId: org.org_id, accountId: r.account_id });
|
|
132
|
+
events.push(queuedUserMessage(r, context));
|
|
124
133
|
const written = await eventLog.appendIn(conversationId, events);
|
|
125
134
|
if (next !== null) {
|
|
126
135
|
await t
|
|
@@ -129,7 +138,18 @@ export async function appendQueuedIn(t, eventLog, conversationId, r) {
|
|
|
129
138
|
.where("id", "=", conversationId)
|
|
130
139
|
.execute();
|
|
131
140
|
}
|
|
132
|
-
|
|
141
|
+
// As a direct send: the message brings an archived conversation back into the default lists
|
|
142
|
+
const unarchived = await t
|
|
143
|
+
.updateTable("conversations")
|
|
144
|
+
.set({ archived_at: null })
|
|
145
|
+
.where("id", "=", conversationId)
|
|
146
|
+
.where("archived_at", "is not", null)
|
|
147
|
+
.executeTakeFirst();
|
|
148
|
+
return {
|
|
149
|
+
event: written.at(-1),
|
|
150
|
+
switched: next !== null,
|
|
151
|
+
unarchived: Number(unarchived.numUpdatedRows) > 0,
|
|
152
|
+
};
|
|
133
153
|
}
|
|
134
154
|
/** The model of the conversation agent's current version (inside `t`). */
|
|
135
155
|
async function agentModel(t, conversationId) {
|
|
@@ -206,7 +226,7 @@ export const queueFull = () => new ApiError("conversation.queue_full", `A conver
|
|
|
206
226
|
* when the queue is empty. An item whose message is already in the log (a retried enqueue after it
|
|
207
227
|
* was sent) is dropped and the next one is taken. A head item whose skill can no longer be invoked
|
|
208
228
|
* stays queued and the queue pauses (`skill_not_invocable`): `{ paused }`. The caller notifies
|
|
209
|
-
* after commit.
|
|
229
|
+
* after commit (and publishes `archived` when the send unarchived the conversation).
|
|
210
230
|
*/
|
|
211
231
|
export async function dispatchQueuedIn(t, eventLog, conversationId) {
|
|
212
232
|
for (;;) {
|
|
@@ -15,9 +15,9 @@ export declare class ConversationQueue {
|
|
|
15
15
|
/** Starts the conversation's next run (`ensureRun`). */
|
|
16
16
|
private readonly runs;
|
|
17
17
|
readonly txHost: TransactionHost;
|
|
18
|
-
constructor(db: KernelDb, eventLog: Pick<EventLog, "appendIn" | "notify" | "publishChanged" | "findByIdem">, conversations: Pick<ConversationsService, "get" | "writable" | "resolveExtra" | "bindIn" | "checkPick" | "prepareQueuedSkill">,
|
|
18
|
+
constructor(db: KernelDb, eventLog: Pick<EventLog, "appendIn" | "notify" | "publishChanged" | "findByIdem">, conversations: Pick<ConversationsService, "get" | "writable" | "resolveExtra" | "bindIn" | "checkPick" | "prepareQueuedSkill" | "skipQuestionsIn" | "announceSkipped">,
|
|
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,17 @@ 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, skipped, toSeq } = await this.sendNowIn(conversationId, itemId);
|
|
244
246
|
if (fresh)
|
|
245
|
-
await this.eventLog.notify(conversationId,
|
|
247
|
+
await this.eventLog.notify(conversationId, toSeq);
|
|
248
|
+
await this.conversations.announceSkipped(skipped);
|
|
246
249
|
if (switched)
|
|
247
250
|
await this.eventLog.publishChanged(conversationId, "selection");
|
|
251
|
+
if (unarchived)
|
|
252
|
+
await this.eventLog.publishChanged(conversationId, "archived");
|
|
248
253
|
await this.eventLog.publishChanged(conversationId, "queue");
|
|
249
254
|
await this.runs.ensureRun(conversationId);
|
|
255
|
+
await this.runs.wakeHeldTree(conversationId);
|
|
250
256
|
return event;
|
|
251
257
|
}
|
|
252
258
|
// its own transaction: the caller notifies and publishes after the commit
|
|
@@ -279,7 +285,17 @@ let ConversationQueue = class ConversationQueue {
|
|
|
279
285
|
const sent = await alreadySent(t, conversationId, row.client_message_id);
|
|
280
286
|
const out = await appendQueuedIn(t, this.eventLog, conversationId, row);
|
|
281
287
|
await unpauseIfEmpty(t, conversationId);
|
|
282
|
-
|
|
288
|
+
// sent during the run, the item is the author's message like a direct send: it skips the
|
|
289
|
+
// pending questions they may answer (reply-while-question spec §4.2)
|
|
290
|
+
const skips = sent
|
|
291
|
+
? { records: [], toSeq: null }
|
|
292
|
+
: await this.conversations.skipQuestionsIn(conversationId, row.account_id, out.event.seq);
|
|
293
|
+
return {
|
|
294
|
+
...out,
|
|
295
|
+
fresh: !sent,
|
|
296
|
+
skipped: skips.records,
|
|
297
|
+
toSeq: Math.max(out.event.seq, skips.toSeq ?? 0),
|
|
298
|
+
};
|
|
283
299
|
}
|
|
284
300
|
/** "Continue sending": clears the pause and lets `ensureRun` send the head item. */
|
|
285
301
|
async resume(orgId, conversationId, accountId) {
|
|
@@ -291,6 +307,8 @@ let ConversationQueue = class ConversationQueue {
|
|
|
291
307
|
.execute();
|
|
292
308
|
await this.eventLog.publishChanged(conversationId, "queue");
|
|
293
309
|
await this.runs.ensureRun(conversationId);
|
|
310
|
+
// a paused root holds the wakes of its whole tree (agent map spec §5.3)
|
|
311
|
+
await this.runs.wakeHeldTree(conversationId);
|
|
294
312
|
}
|
|
295
313
|
/** A queued item or a sent message for this client id (outside any transaction). */
|
|
296
314
|
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);
|
|
@@ -500,20 +528,16 @@ TitleQueue = __decorate([
|
|
|
500
528
|
__param(3, Inject(KERNEL_LOGGER))
|
|
501
529
|
], TitleQueue);
|
|
502
530
|
export { TitleQueue };
|
|
531
|
+
/** The title queue's registration (re-exported: the admin health reads its counts). */
|
|
532
|
+
const TITLE_QUEUE_MODULE = QueueModule.registerQueue(TITLE_QUEUE);
|
|
503
533
|
/** Conversation titles: the queue and the job (consumed on the worker role). */
|
|
504
534
|
let TitlesModule = class TitlesModule {
|
|
505
535
|
};
|
|
506
536
|
TitlesModule = __decorate([
|
|
507
537
|
Module({
|
|
508
|
-
imports: [
|
|
509
|
-
EventLogModule,
|
|
510
|
-
ModelsModule,
|
|
511
|
-
ExtensionsModule,
|
|
512
|
-
UsageReportModule,
|
|
513
|
-
QueueModule.registerQueue(TITLE_QUEUE),
|
|
514
|
-
],
|
|
538
|
+
imports: [EventLogModule, ModelsModule, ExtensionsModule, UsageReportModule, TITLE_QUEUE_MODULE],
|
|
515
539
|
providers: [TitleGenerator, TitleQueue],
|
|
516
|
-
exports: [TitleQueue],
|
|
540
|
+
exports: [TitleQueue, TITLE_QUEUE_MODULE],
|
|
517
541
|
})
|
|
518
542
|
], TitlesModule);
|
|
519
543
|
export { TitlesModule };
|
|
@@ -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
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { type ExtensionContext, type ExtensionManifest, type ExtensionPointRef, type Logger, type ToolHandler, type ToolSpec } from "@capybara-hq/plugin-sdk";
|
|
1
|
+
import { type ExtensionContext, type ExtensionManifest, type ExtensionPointRef, type Logger, resolveUiSlots, type SetupCheckArgs, type SetupGuidePlace, type ToolHandler, type ToolSpec } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import type { Redis } from "ioredis";
|
|
3
3
|
import { Kysely } from "kysely";
|
|
4
4
|
import { type RegisteredHook } from "../extensions/hooks.js";
|
|
5
5
|
import { RegistrationLedger } from "../extensions/ledger.js";
|
|
6
6
|
import type { LockService } from "../infra/lock/lock.service.js";
|
|
7
|
+
import type { ModelEmbeddings } from "../models/embeddings.js";
|
|
8
|
+
import type { HookRunner } from "../runtime/hook-calls.js";
|
|
7
9
|
import type { EmbedTokens } from "../ui/embed-token.js";
|
|
8
10
|
import { type UiActionHandler, type UiRender } from "../ui/registry.js";
|
|
9
11
|
import { type BusSubscriber } from "./bus.js";
|
|
@@ -22,6 +24,17 @@ export interface KernelDeps {
|
|
|
22
24
|
keyring: Keyring;
|
|
23
25
|
/** Verifies embed tokens (`ctx.ui` embed requests; the one `EmbedTokens` provider). */
|
|
24
26
|
embedTokens: Pick<EmbedTokens, "verify">;
|
|
27
|
+
/**
|
|
28
|
+
* The `ctx.models` broker (the one `ModelEmbeddings` provider). Absent (a ctx built alone in a
|
|
29
|
+
* test): `ctx.models` calls reject.
|
|
30
|
+
*/
|
|
31
|
+
models?: Pick<ModelEmbeddings, "embed" | "describe">;
|
|
32
|
+
/**
|
|
33
|
+
* The host's hook registry: `ctx.models.embed` fires `model.request` through it (spec B §5.4).
|
|
34
|
+
* A required key, so no builder leaves policy hooks out by omission (fail closed by
|
|
35
|
+
* construction); only a ctx built alone in a test passes `undefined` (no hooks fire).
|
|
36
|
+
*/
|
|
37
|
+
hooks: HookRunner | undefined;
|
|
25
38
|
runWorkers: boolean;
|
|
26
39
|
/** 内核 logger(`debug` 可选:插件 Logger 没有它,测试可不给)。 */
|
|
27
40
|
log: Logger & {
|
|
@@ -39,6 +52,15 @@ export type RegisteredTool = {
|
|
|
39
52
|
spec: ToolSpec;
|
|
40
53
|
handler: ToolHandler;
|
|
41
54
|
};
|
|
55
|
+
/**
|
|
56
|
+
* A setup check registered through `ctx.setup.check`: `place` and `run` read once from the
|
|
57
|
+
* definition at registration and frozen, so the extension cannot swap them afterwards (a getter
|
|
58
|
+
* on the definition runs once, at registration, never when a check runs).
|
|
59
|
+
*/
|
|
60
|
+
export type RegisteredSetupCheck = Readonly<{
|
|
61
|
+
place: SetupGuidePlace;
|
|
62
|
+
run: (args: SetupCheckArgs) => Promise<unknown>;
|
|
63
|
+
}>;
|
|
42
64
|
/** 插件经 `ctx.extensionPoints` 取用其他插件能力时,内核注入的访问接口。 */
|
|
43
65
|
export interface ExtensionPointAccess {
|
|
44
66
|
/** 已加载(setup 完成)的提供方,按加载顺序;按完整引用(含主版本)精确匹配。 */
|
|
@@ -48,14 +70,26 @@ export interface ExtensionPointAccess {
|
|
|
48
70
|
}[];
|
|
49
71
|
/** Names of the extensions enabled in the organization (`extension_org_configs.enabled` plus required bootstrap plugins, `enabled.ts`); queried every time, not cached. */
|
|
50
72
|
enabledPlugins(orgId: string): Promise<Set<string>>;
|
|
73
|
+
/**
|
|
74
|
+
* Whether the extension's effective config is valid in the organization (layering spec A §6):
|
|
75
|
+
* a provider that is not is excluded from point resolution for that org.
|
|
76
|
+
*/
|
|
77
|
+
configOk(orgId: string, plugin: string): Promise<boolean>;
|
|
51
78
|
}
|
|
52
79
|
/**
|
|
53
80
|
* Queries the names of the extensions enabled in the organization (org config rows plus the
|
|
54
81
|
* required bootstrap plugins, see `extensions/enabled.ts`), not cached.
|
|
55
82
|
*/
|
|
56
83
|
export declare function queryEnabledPlugins(db: Kysely<any>, orgId: string): Promise<Set<string>>;
|
|
84
|
+
/**
|
|
85
|
+
* Whether the account is, right now, an active super admin (one query): what a platform embed
|
|
86
|
+
* token and the platform refresh stream re-check.
|
|
87
|
+
*/
|
|
88
|
+
export declare function currentPlatformAccount(db: KernelDeps["db"], accountId: string): Promise<boolean>;
|
|
57
89
|
/** 插件的 PG schema 名:`plugin_<name>`,name 中的 `-` 换成 `_`。 */
|
|
58
90
|
export declare function pluginSchemaName(name: string): string;
|
|
91
|
+
/** What {@link resolveUiSlots} returns for a manifest. */
|
|
92
|
+
export type UiResolution = ReturnType<typeof resolveUiSlots>;
|
|
59
93
|
/** 内核视角的插件 ctx:插件契约之外还带宿主要用的登记信息与关闭方法。 */
|
|
60
94
|
export type KernelExtensionContext = ExtensionContext & {
|
|
61
95
|
/** 本实例的登记账(C17):每次登记记一笔,撤销时逐项撤销。 */
|
|
@@ -74,11 +108,17 @@ export type KernelExtensionContext = ExtensionContext & {
|
|
|
74
108
|
registeredTools: RegisteredTool[];
|
|
75
109
|
/** Hooks registered through `ctx.hooks.on` (registration order). */
|
|
76
110
|
registeredHooks: RegisteredHook[];
|
|
111
|
+
/** The manifest's `ui` resolved against the slot catalog once per load (UI slots spec §3.2). */
|
|
112
|
+
uiResolution: UiResolution;
|
|
77
113
|
/** 经 `ctx.ui.view` 注册的视图(按贡献 id)。 */
|
|
78
114
|
uiViews: ReadonlyMap<string, UiRender>;
|
|
79
115
|
/** 经 `ctx.ui.action` 注册的动作处理函数(按贡献 id)。 */
|
|
80
116
|
uiActions: ReadonlyMap<string, UiActionHandler>;
|
|
81
|
-
/**
|
|
117
|
+
/** Setup checks registered through `ctx.setup.check`, by id. */
|
|
118
|
+
setupChecks: ReadonlyMap<string, RegisteredSetupCheck>;
|
|
119
|
+
/**
|
|
120
|
+
* setup 结束后调用:此后 `tools.register`、`ui.view`、`ui.action`、`hooks.on`、`setup.check` 抛错。
|
|
121
|
+
*/
|
|
82
122
|
sealTools(): void;
|
|
83
123
|
/** 中止 signal、封账并逐项撤销仍在账上的登记、关闭队列连接(幂等)。 */
|
|
84
124
|
close(): Promise<void>;
|
|
@@ -97,10 +137,13 @@ export declare class LiveConfig {
|
|
|
97
137
|
* `deploymentConfig` may be a {@link LiveConfig} (shared by the instance, replaceable in place);
|
|
98
138
|
* otherwise a fixed value is wrapped.
|
|
99
139
|
* - Granted automatically: `kv`, `lock`, `bus`, `queue`, `log`, `db`, `config`, `provide`;
|
|
100
|
-
* - `secrets` only with `permissions.secrets`, `storage` only with `permissions.storage
|
|
140
|
+
* - `secrets` only with `permissions.secrets`, `storage` only with `permissions.storage`, `models`
|
|
141
|
+
* only with `permissions.models` (and only its `embedding` purposes, through `deps.models`); `http.route`
|
|
101
142
|
* only the method + path declared in `permissions.http`; `tools.register` only names declared in
|
|
102
|
-
* `permissions.tools`; `ui.view` / `ui.action` only ids declared in `permissions.ui.views`
|
|
103
|
-
*
|
|
143
|
+
* `permissions.tools`; `ui.view` / `ui.action` only ids declared in `permissions.ui.views` or
|
|
144
|
+
* `permissions.ui.components` (a component's server view; during setup only); `setup.check` only
|
|
145
|
+
* ids declared in `permissions.setupChecks` (during setup only, `place` and `run` read once and
|
|
146
|
+
* frozen); `ui.invalidate` sends a refresh over the kernel bus (namespace `kernel`), across
|
|
104
147
|
* replicas; `ui.verifyEmbedToken` checks an embed token the kernel signed: `claims.plugin` must be
|
|
105
148
|
* this extension, the extension still enabled in that org and the caller still an active member of
|
|
106
149
|
* the org (org not deleted); returns the current role;
|