@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
|
@@ -8,16 +8,18 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
8
8
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
9
|
};
|
|
10
10
|
import { randomUUID } from "node:crypto";
|
|
11
|
-
import {
|
|
11
|
+
import { isIP } from "node:net";
|
|
12
|
+
import { CHANNEL_EXTENSION_POINT, missingInboundModeFields, } from "@capybara-hq/plugin-sdk";
|
|
12
13
|
import { Inject, Injectable } from "@nestjs/common";
|
|
13
14
|
import { sql } from "kysely";
|
|
14
|
-
import { configFields, getPath, secretValues } from "../config/fields.js";
|
|
15
|
+
import { configFields, getPath, secretScalars, secretValues } from "../config/fields.js";
|
|
15
16
|
import { queryEnabledPlugins } from "../ctx/create-ctx.js";
|
|
16
17
|
import { createSecrets } from "../ctx/secrets.js";
|
|
17
18
|
import { ApiError } from "../errors.js";
|
|
18
19
|
import { toIssues } from "../extensions/config-issues.js";
|
|
19
|
-
import {
|
|
20
|
+
import { configMessages, describeConfigUiProblems, safeConfigFormSchema, } from "../extensions/config-json-schema.js";
|
|
20
21
|
import { enabledExtensionsByOrg } from "../extensions/enabled.js";
|
|
22
|
+
import { PluginGuides } from "../extensions/plugin-guides.js";
|
|
21
23
|
import { ExtensionRegistry } from "../extensions/registry.js";
|
|
22
24
|
import { audit } from "../identity/audit.js";
|
|
23
25
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
@@ -27,11 +29,35 @@ import { Transactional } from "../infra/database/transactional.decorator.js";
|
|
|
27
29
|
import { KernelEvents } from "../infra/events/kernel-events.js";
|
|
28
30
|
import { KERNEL_BUS, KERNEL_LOGGER, KEYRING, REDIS } from "../infra/tokens.js";
|
|
29
31
|
import { createRedactor } from "../log.js";
|
|
32
|
+
import { isForbiddenAddress, isLoopbackHost, normalizeHost } from "../net/public-address.js";
|
|
30
33
|
import { OrgLock } from "../orgs/org-lock.js";
|
|
31
34
|
import { readOrgSettings } from "../orgs/settings.service.js";
|
|
32
35
|
import { adaptToFeatures } from "./features.js";
|
|
33
36
|
import { ChannelJobs } from "./jobs.js";
|
|
34
37
|
import { webhookBase, webhookUrlOf } from "./webhook-url.js";
|
|
38
|
+
/**
|
|
39
|
+
* A public https address: https, and the host is not loopback, a private / link-local / reserved
|
|
40
|
+
* IP, `localhost`, `*.localhost`, `*.local`, `*.internal` or a single label (no DNS lookup).
|
|
41
|
+
*/
|
|
42
|
+
export function isPublicHttpsUrl(url) {
|
|
43
|
+
let u;
|
|
44
|
+
try {
|
|
45
|
+
u = new URL(url);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
if (u.protocol !== "https:")
|
|
51
|
+
return false;
|
|
52
|
+
const host = normalizeHost(u.hostname);
|
|
53
|
+
if (isLoopbackHost(host))
|
|
54
|
+
return false;
|
|
55
|
+
if (isIP(host) !== 0)
|
|
56
|
+
return !isForbiddenAddress(host);
|
|
57
|
+
if (!host.includes("."))
|
|
58
|
+
return false;
|
|
59
|
+
return ![".localhost", ".local", ".internal"].some((s) => host.endsWith(s));
|
|
60
|
+
}
|
|
35
61
|
/** 内核 secrets 命名空间(插件名不能取 `kernel`)。 */
|
|
36
62
|
const SECRETS_NAMESPACE = "kernel";
|
|
37
63
|
/** 连接配置里全部密钥字段存成一行:`{ 点路径: 值 }` 的 JSON。 */
|
|
@@ -99,6 +125,7 @@ const COLUMNS = [
|
|
|
99
125
|
"last_error",
|
|
100
126
|
"bot_user_id",
|
|
101
127
|
"tenant_id",
|
|
128
|
+
"guide_ack",
|
|
102
129
|
"created_by",
|
|
103
130
|
"created_at",
|
|
104
131
|
"updated_at",
|
|
@@ -120,7 +147,10 @@ let ChannelConnections = class ChannelConnections {
|
|
|
120
147
|
config;
|
|
121
148
|
log;
|
|
122
149
|
txHost;
|
|
150
|
+
guides;
|
|
123
151
|
unsubscribe;
|
|
152
|
+
/** `<plugin>@<version>` whose invalid connection hints were warned about (a log dedupe only). */
|
|
153
|
+
hintsWarned = new Set();
|
|
124
154
|
constructor(db,
|
|
125
155
|
/** The org row lock (orgs/org-lock.ts): joins the transaction of the write. */
|
|
126
156
|
orgLock, keyring, registry, bus, redis,
|
|
@@ -129,7 +159,9 @@ let ChannelConnections = class ChannelConnections {
|
|
|
129
159
|
/** `channels.webhookBaseUrl`: without it webhook mode is unavailable. */
|
|
130
160
|
config, events,
|
|
131
161
|
/** Secret values handled here (written or decrypted) are redacted from the logs (`addOrgSecrets`). */
|
|
132
|
-
log, txHost
|
|
162
|
+
log, txHost,
|
|
163
|
+
/** The setup guide acks (spec 2026-11-09-setup-guides-v2-design.md §11). */
|
|
164
|
+
guides) {
|
|
133
165
|
this.db = db;
|
|
134
166
|
this.orgLock = orgLock;
|
|
135
167
|
this.keyring = keyring;
|
|
@@ -140,6 +172,7 @@ let ChannelConnections = class ChannelConnections {
|
|
|
140
172
|
this.config = config;
|
|
141
173
|
this.log = log;
|
|
142
174
|
this.txHost = txHost;
|
|
175
|
+
this.guides = guides;
|
|
143
176
|
this.unsubscribe = [
|
|
144
177
|
// a deleted org's channel connections drop their long connections at once
|
|
145
178
|
events.on("org.deleted", ({ orgId }) => this.notifyOrgChanged(orgId)),
|
|
@@ -171,14 +204,46 @@ let ChannelConnections = class ChannelConnections {
|
|
|
171
204
|
throw new ApiError("extension.not_enabled", `Extension ${plugin} is not enabled for this organization`);
|
|
172
205
|
}
|
|
173
206
|
}
|
|
174
|
-
/**
|
|
207
|
+
/**
|
|
208
|
+
* The connection schema's form JSON Schema (secret fields carry `x-secret`, no values), a copy.
|
|
209
|
+
* Never throws: when even the plain conversion fails, an empty object schema (a save is still
|
|
210
|
+
* validated here).
|
|
211
|
+
*/
|
|
175
212
|
jsonSchema(plugin) {
|
|
176
|
-
|
|
213
|
+
const entry = this.channelEntry(plugin);
|
|
214
|
+
const r = this.formSchema(plugin, entry.version, entry.impl.connectionSchema);
|
|
215
|
+
return r ? structuredClone(r.schema) : { type: "object" };
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* The connection schema's form JSON Schema; invalid hints are stripped and warned about once per
|
|
219
|
+
* `<plugin>@<version>` on this replica (spec §4.1: the connection level is checked at its first
|
|
220
|
+
* conversion, not at load). Never throws: a hint conversion that throws serves the plain schema,
|
|
221
|
+
* else null, with one warning per schema.
|
|
222
|
+
*/
|
|
223
|
+
formSchema(plugin, version, schema) {
|
|
224
|
+
const r = safeConfigFormSchema(schema, "connection", (err, fallback) => this.log.warn("the channel connection form schema could not be built with its UI hints; hints dropped", { plugin, version, schema: fallback, err }));
|
|
225
|
+
const key = `${plugin}@${version}`;
|
|
226
|
+
if (r && r.problems.length > 0 && !this.hintsWarned.has(key)) {
|
|
227
|
+
this.hintsWarned.add(key);
|
|
228
|
+
this.log.warn("extension config UI hints are invalid and ignored", {
|
|
229
|
+
plugin,
|
|
230
|
+
version,
|
|
231
|
+
detail: describeConfigUiProblems("connection", r.problems),
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
return r;
|
|
235
|
+
}
|
|
236
|
+
/** The loaded version of a channel extension, for warnings ("unknown" when not provided). */
|
|
237
|
+
versionOf(plugin) {
|
|
238
|
+
return (this.registry
|
|
239
|
+
.list("channel")
|
|
240
|
+
.find((x) => x.plugin === plugin && x.capability === CHANNEL_EXTENSION_POINT)?.version ??
|
|
241
|
+
"unknown");
|
|
177
242
|
}
|
|
178
243
|
parse(plugin, schema, config) {
|
|
179
244
|
const r = schema.safeParse(config);
|
|
180
245
|
if (!r.success) {
|
|
181
|
-
throw new ApiError("extension.config_invalid", `Invalid channel connection config for extension ${plugin}`, toIssues(r.error));
|
|
246
|
+
throw new ApiError("extension.config_invalid", `Invalid channel connection config for extension ${plugin}`, toIssues(r.error, configMessages(this.formSchema(plugin, this.versionOf(plugin), schema)?.schema)));
|
|
182
247
|
}
|
|
183
248
|
return r.data;
|
|
184
249
|
}
|
|
@@ -242,6 +307,7 @@ let ChannelConnections = class ChannelConnections {
|
|
|
242
307
|
lastError: r.last_error,
|
|
243
308
|
botUserId: r.bot_user_id,
|
|
244
309
|
tenantId: r.tenant_id,
|
|
310
|
+
guideAck: r.guide_ack ?? null,
|
|
245
311
|
config: r.config ?? {},
|
|
246
312
|
secrets: paths.map((path) => ({ path, set: setPaths.has(path) })),
|
|
247
313
|
createdBy: r.created_by,
|
|
@@ -264,6 +330,38 @@ let ChannelConnections = class ChannelConnections {
|
|
|
264
330
|
throw new ApiError("channel.webhook_unavailable", "Webhook inbound needs channels.webhookBaseUrl to be configured");
|
|
265
331
|
}
|
|
266
332
|
}
|
|
333
|
+
/**
|
|
334
|
+
* The fields the inbound mode requires (`x-ui.inboundModes`, channel inbound mode fields spec
|
|
335
|
+
* §3) must have a value in `full` (the parsed config, stored secrets included): 400
|
|
336
|
+
* `extension.config_invalid` with one issue per missing field otherwise. A plugin without the
|
|
337
|
+
* hint passes.
|
|
338
|
+
*/
|
|
339
|
+
assertModeFields(plugin, schema, mode, full) {
|
|
340
|
+
const js = this.formSchema(plugin, this.versionOf(plugin), schema)?.schema;
|
|
341
|
+
if (js === undefined)
|
|
342
|
+
return;
|
|
343
|
+
const missing = missingInboundModeFields(js, mode, (field) => {
|
|
344
|
+
const v = getPath(full, field);
|
|
345
|
+
return v !== undefined && v !== null && v !== "";
|
|
346
|
+
});
|
|
347
|
+
if (missing.length === 0)
|
|
348
|
+
return;
|
|
349
|
+
throw new ApiError("extension.config_invalid", `Invalid channel connection config for extension ${plugin}`, missing.map((field) => ({
|
|
350
|
+
path: field,
|
|
351
|
+
segments: [field],
|
|
352
|
+
message: `required in ${mode} mode`,
|
|
353
|
+
})));
|
|
354
|
+
}
|
|
355
|
+
/** Whether the plugin's connections can use webhook inbound (spec §4); `extension.not_found`. */
|
|
356
|
+
inboundInfo(plugin) {
|
|
357
|
+
const webhookSupported = this.channel(plugin).webhook !== undefined;
|
|
358
|
+
const base = this.webhookBase();
|
|
359
|
+
return {
|
|
360
|
+
webhookSupported,
|
|
361
|
+
webhookAvailable: webhookSupported && base !== undefined,
|
|
362
|
+
webhookPublic: webhookSupported && base !== undefined && isPublicHttpsUrl(base),
|
|
363
|
+
};
|
|
364
|
+
}
|
|
267
365
|
async viewOf(row) {
|
|
268
366
|
return this.view(row, new Set(Object.keys(await this.readSecrets(row.org_id, row.id))));
|
|
269
367
|
}
|
|
@@ -290,10 +388,16 @@ let ChannelConnections = class ChannelConnections {
|
|
|
290
388
|
await this.assertEnabled(orgId, input.plugin);
|
|
291
389
|
const schema = channel.connectionSchema;
|
|
292
390
|
const full = this.parse(input.plugin, schema, input.config);
|
|
391
|
+
const mode = input.inboundMode ?? "long_connection";
|
|
392
|
+
if (mode === "webhook")
|
|
393
|
+
this.assertWebhookAvailable(input.plugin);
|
|
394
|
+
this.assertModeFields(input.plugin, schema, mode, full);
|
|
293
395
|
await this.assertAgent(orgId, input.agentId);
|
|
294
396
|
const verified = await this.verify(channel, full);
|
|
295
397
|
const id = randomUUID();
|
|
296
398
|
const { plain, secrets } = split(schema, full);
|
|
399
|
+
// the guide the 新建渠道 page showed: the plugin's current one, for the mode picked there
|
|
400
|
+
const guideAck = await this.guides.currentAck(input.plugin, "channel-connection", { mode });
|
|
297
401
|
const row = await this.insertIn({
|
|
298
402
|
orgId,
|
|
299
403
|
id,
|
|
@@ -301,6 +405,7 @@ let ChannelConnections = class ChannelConnections {
|
|
|
301
405
|
plain,
|
|
302
406
|
secrets,
|
|
303
407
|
verified,
|
|
408
|
+
guideAck,
|
|
304
409
|
actorAccountId,
|
|
305
410
|
actorTokenId,
|
|
306
411
|
});
|
|
@@ -326,8 +431,10 @@ let ChannelConnections = class ChannelConnections {
|
|
|
326
431
|
agent_id: input.agentId,
|
|
327
432
|
config: JSON.stringify(a.plain),
|
|
328
433
|
unbound_policy: input.unboundPolicy ?? "bind",
|
|
434
|
+
inbound_mode: input.inboundMode ?? "long_connection",
|
|
329
435
|
bot_user_id: a.verified.botUserId,
|
|
330
436
|
tenant_id: a.verified.tenantId,
|
|
437
|
+
guide_ack: a.guideAck === null ? null : JSON.stringify(a.guideAck),
|
|
331
438
|
created_by: actorAccountId,
|
|
332
439
|
})
|
|
333
440
|
.returning(COLUMNS)
|
|
@@ -338,15 +445,32 @@ let ChannelConnections = class ChannelConnections {
|
|
|
338
445
|
orgId,
|
|
339
446
|
action: "channel.created",
|
|
340
447
|
target: id,
|
|
341
|
-
detail: {
|
|
448
|
+
detail: {
|
|
449
|
+
plugin: input.plugin,
|
|
450
|
+
agentId: input.agentId,
|
|
451
|
+
inboundMode: input.inboundMode ?? "long_connection",
|
|
452
|
+
},
|
|
342
453
|
});
|
|
343
454
|
return inserted;
|
|
344
455
|
}
|
|
456
|
+
/** The read-only refusals of {@link update} that need no write (the Platform tool's precheck). */
|
|
457
|
+
async checkUpdate(orgId, id, patch) {
|
|
458
|
+
const current = await this.live(orgId).where("id", "=", id).executeTakeFirst();
|
|
459
|
+
if (!current)
|
|
460
|
+
throw notFound();
|
|
461
|
+
if (patch.agentId !== undefined)
|
|
462
|
+
await this.assertAgent(orgId, patch.agentId);
|
|
463
|
+
if (patch.inboundMode === "webhook" && patch.inboundMode !== current.inbound_mode) {
|
|
464
|
+
this.assertWebhookAvailable(current.plugin);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
345
467
|
/**
|
|
346
468
|
* 修改名称、agent、未绑定策略、启停,或轮换凭据(新配置同样先 `verify`,失败什么都不改)。
|
|
347
469
|
* 插件在该组织停用时仍可轮换凭据,此时不 verify,返回 `verifySkipped: true`。
|
|
348
470
|
*/
|
|
349
|
-
async update(orgId, id, patch, actorAccountId, actorTokenId
|
|
471
|
+
async update(orgId, id, patch, actorAccountId, actorTokenId,
|
|
472
|
+
/** Merged into the audit detail (the Platform tool's `via: "agent"`). */
|
|
473
|
+
auditDetail) {
|
|
350
474
|
const current = await this.live(orgId).where("id", "=", id).executeTakeFirst();
|
|
351
475
|
if (!current)
|
|
352
476
|
throw notFound();
|
|
@@ -377,16 +501,38 @@ let ChannelConnections = class ChannelConnections {
|
|
|
377
501
|
const modeChanged = patch.inboundMode !== undefined && patch.inboundMode !== current.inbound_mode;
|
|
378
502
|
if (modeChanged && patch.inboundMode === "webhook")
|
|
379
503
|
this.assertWebhookAvailable(current.plugin);
|
|
504
|
+
if (rotated || modeChanged) {
|
|
505
|
+
// the fields the effective mode requires (spec §3): the new config, else the stored one
|
|
506
|
+
const schema = this.channel(current.plugin).connectionSchema;
|
|
507
|
+
const full = rotated?.full ?? {
|
|
508
|
+
...(current.config ?? {}),
|
|
509
|
+
...(await this.readSecrets(orgId, id)),
|
|
510
|
+
};
|
|
511
|
+
this.assertModeFields(current.plugin, schema, patch.inboundMode ?? current.inbound_mode, full);
|
|
512
|
+
}
|
|
380
513
|
if (patch.agentId !== undefined)
|
|
381
514
|
await this.assertAgent(orgId, patch.agentId);
|
|
515
|
+
// A mode switch sets the platform app up for the new mode: the guide of that mode is the one
|
|
516
|
+
// on the page. Only an ack without drift moves on: a drifted one stays until the person
|
|
517
|
+
// confirms through guide-ack, so switching modes never clears the update notice (spec
|
|
518
|
+
// 2026-11-09-setup-guides-v2-design.md §11)
|
|
519
|
+
const guideAck = modeChanged &&
|
|
520
|
+
patch.inboundMode !== undefined &&
|
|
521
|
+
!(await this.guides.ackDrifted(current.plugin, "channel-connection", current.guide_ack ?? null))
|
|
522
|
+
? await this.guides.currentAck(current.plugin, "channel-connection", {
|
|
523
|
+
mode: patch.inboundMode,
|
|
524
|
+
})
|
|
525
|
+
: undefined;
|
|
382
526
|
const row = await this.updateIn({
|
|
383
527
|
orgId,
|
|
384
528
|
id,
|
|
385
529
|
patch,
|
|
386
530
|
rotated,
|
|
387
531
|
verified,
|
|
532
|
+
guideAck,
|
|
388
533
|
actorAccountId,
|
|
389
534
|
actorTokenId,
|
|
535
|
+
auditDetail,
|
|
390
536
|
});
|
|
391
537
|
if (rotated)
|
|
392
538
|
this.reportSecrets(rotated.schema, rotated.full);
|
|
@@ -409,7 +555,7 @@ let ChannelConnections = class ChannelConnections {
|
|
|
409
555
|
}
|
|
410
556
|
/** The rows of {@link update}, in their own transaction (the caller publishes after the commit). */
|
|
411
557
|
async updateIn(a) {
|
|
412
|
-
const { orgId, id, patch, rotated, verified, actorAccountId, actorTokenId } = a;
|
|
558
|
+
const { orgId, id, patch, rotated, verified, actorAccountId, actorTokenId, auditDetail } = a;
|
|
413
559
|
await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "channels.manage");
|
|
414
560
|
if (patch.agentId !== undefined)
|
|
415
561
|
await this.assertAgent(orgId, patch.agentId);
|
|
@@ -430,6 +576,9 @@ let ChannelConnections = class ChannelConnections {
|
|
|
430
576
|
...(patch.unboundPolicy !== undefined && { unbound_policy: patch.unboundPolicy }),
|
|
431
577
|
...(patch.status !== undefined && { status: patch.status }),
|
|
432
578
|
...(patch.inboundMode !== undefined && { inbound_mode: patch.inboundMode }),
|
|
579
|
+
...(a.guideAck !== undefined && {
|
|
580
|
+
guide_ack: a.guideAck === null ? null : JSON.stringify(a.guideAck),
|
|
581
|
+
}),
|
|
433
582
|
...(rotated && { config: JSON.stringify(rotated.plain) }),
|
|
434
583
|
// 跳过了 verify:机器人 id 与租户保留原值(重新启用后插件按新凭据连接,入站以连接行的租户判断外部人员)
|
|
435
584
|
...(verified && { bot_user_id: verified.botUserId, tenant_id: verified.tenantId }),
|
|
@@ -454,17 +603,69 @@ let ChannelConnections = class ChannelConnections {
|
|
|
454
603
|
...Object.keys(patch).filter((k) => k !== "config" && patch[k] !== undefined),
|
|
455
604
|
...(rotated ? ["config"] : []),
|
|
456
605
|
],
|
|
606
|
+
...auditDetail,
|
|
457
607
|
},
|
|
458
608
|
});
|
|
459
609
|
return updated;
|
|
460
610
|
}
|
|
611
|
+
/**
|
|
612
|
+
* 「我已更新应用」: records the plugin's current channel-connection guide for the connection's
|
|
613
|
+
* mode as the one it is set up with. `hash` is the drift hash of the guide the person was
|
|
614
|
+
* shown; when the plugin has moved on since, 409 `channel.guide_changed` (show the new guide
|
|
615
|
+
* first). A plugin without a guide, or whose item the org's catalog does not show -> 404
|
|
616
|
+
* `catalog.guide_not_found`.
|
|
617
|
+
*/
|
|
618
|
+
async ackGuide(org, id, hash, actorAccountId, actorTokenId) {
|
|
619
|
+
const { orgId } = org;
|
|
620
|
+
const current = await this.live(orgId).where("id", "=", id).executeTakeFirst();
|
|
621
|
+
if (!current)
|
|
622
|
+
throw notFound();
|
|
623
|
+
// the guide read's visibility: an item the org's catalog does not show has no guide to ack
|
|
624
|
+
const ack = await this.guides.currentAck(current.plugin, "channel-connection", {
|
|
625
|
+
mode: current.inbound_mode,
|
|
626
|
+
org,
|
|
627
|
+
});
|
|
628
|
+
if (ack === null) {
|
|
629
|
+
throw new ApiError("catalog.guide_not_found", "The plugin has no channel setup guide");
|
|
630
|
+
}
|
|
631
|
+
if (ack.hash !== hash) {
|
|
632
|
+
throw new ApiError("channel.guide_changed", "The plugin's setup guide changed since it was shown; review the new guide first");
|
|
633
|
+
}
|
|
634
|
+
const row = await this.ackIn(orgId, id, ack, actorAccountId, actorTokenId);
|
|
635
|
+
return this.viewOf(row);
|
|
636
|
+
}
|
|
637
|
+
/** The row of {@link ackGuide}, in its own transaction. */
|
|
638
|
+
async ackIn(orgId, id, ack, actorAccountId, actorTokenId) {
|
|
639
|
+
await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "channels.manage");
|
|
640
|
+
const row = await this.db
|
|
641
|
+
.updateTable("channel_connections")
|
|
642
|
+
.set({ guide_ack: JSON.stringify(ack), updated_at: sql `now()` })
|
|
643
|
+
.where("id", "=", id)
|
|
644
|
+
.where("org_id", "=", orgId)
|
|
645
|
+
.where("deleted_at", "is", null)
|
|
646
|
+
.returning(COLUMNS)
|
|
647
|
+
.executeTakeFirst();
|
|
648
|
+
if (!row)
|
|
649
|
+
throw notFound();
|
|
650
|
+
await audit(this.db.db, {
|
|
651
|
+
actorAccountId,
|
|
652
|
+
...(actorTokenId !== undefined && { actorTokenId }),
|
|
653
|
+
orgId,
|
|
654
|
+
action: "channel.guide_confirmed",
|
|
655
|
+
target: id,
|
|
656
|
+
detail: { guideId: ack.guideId, version: ack.version },
|
|
657
|
+
});
|
|
658
|
+
return row;
|
|
659
|
+
}
|
|
461
660
|
/** 删除(软删除,同一事务删掉密钥);持有长连接的副本收到广播后断开。 */
|
|
462
|
-
async remove(orgId, id, actorAccountId, actorTokenId
|
|
463
|
-
|
|
661
|
+
async remove(orgId, id, actorAccountId, actorTokenId,
|
|
662
|
+
/** Merged into the audit detail (the Platform tool's `via: "agent"`). */
|
|
663
|
+
auditDetail) {
|
|
664
|
+
await this.removeIn(orgId, id, actorAccountId, actorTokenId, auditDetail);
|
|
464
665
|
await this.changed(id, true);
|
|
465
666
|
}
|
|
466
667
|
/** The rows of {@link remove}, in their own transaction (the caller publishes after the commit). */
|
|
467
|
-
async removeIn(orgId, id, actorAccountId, actorTokenId) {
|
|
668
|
+
async removeIn(orgId, id, actorAccountId, actorTokenId, auditDetail) {
|
|
468
669
|
await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "channels.manage");
|
|
469
670
|
const r = await this.db
|
|
470
671
|
.updateTable("channel_connections")
|
|
@@ -482,6 +683,7 @@ let ChannelConnections = class ChannelConnections {
|
|
|
482
683
|
orgId,
|
|
483
684
|
action: "channel.deleted",
|
|
484
685
|
target: id,
|
|
686
|
+
...(auditDetail !== undefined && { detail: auditDetail }),
|
|
485
687
|
});
|
|
486
688
|
}
|
|
487
689
|
/** 提交后广播;失败只记日志(持有方每轮续租时也会复核连接状态)。 */
|
|
@@ -552,6 +754,42 @@ let ChannelConnections = class ChannelConnections {
|
|
|
552
754
|
for (const r of rows)
|
|
553
755
|
await this.changed(r.id, true);
|
|
554
756
|
}
|
|
757
|
+
/**
|
|
758
|
+
* For setup checks (setup guides v2 §10.4): the input revision of a live connection of the org
|
|
759
|
+
* on `plugin`: the `updated_at` of its row and of its secrets row (ISO), never a value. Missing,
|
|
760
|
+
* deleted, of another org or plugin -> `channel.not_found`.
|
|
761
|
+
*/
|
|
762
|
+
async checkRevision(orgId, plugin, id) {
|
|
763
|
+
const row = await this.live(orgId)
|
|
764
|
+
.where("id", "=", id)
|
|
765
|
+
.where("plugin", "=", plugin)
|
|
766
|
+
.executeTakeFirst();
|
|
767
|
+
if (!row)
|
|
768
|
+
throw notFound();
|
|
769
|
+
const secretRow = await this.db
|
|
770
|
+
.selectFrom("secrets")
|
|
771
|
+
.select("updated_at")
|
|
772
|
+
.where("namespace", "=", SECRETS_NAMESPACE)
|
|
773
|
+
.where("org_id", "=", orgId)
|
|
774
|
+
.where("key", "=", connectionSecretKey(id))
|
|
775
|
+
.executeTakeFirst();
|
|
776
|
+
const iso = (d) => new Date(d).toISOString();
|
|
777
|
+
return `${iso(row.updated_at)}|${secretRow ? iso(secretRow.updated_at) : "-"}`;
|
|
778
|
+
}
|
|
779
|
+
/**
|
|
780
|
+
* For setup checks (setup guides v2 §10.8): the stored secret values of a live connection of the
|
|
781
|
+
* org on `plugin` (every secret field, decrypted), what a check's result is redacted by. Missing,
|
|
782
|
+
* deleted, of another org or plugin -> `channel.not_found`. Never echo them.
|
|
783
|
+
*/
|
|
784
|
+
async checkSecrets(orgId, plugin, id) {
|
|
785
|
+
const row = await this.live(orgId)
|
|
786
|
+
.where("id", "=", id)
|
|
787
|
+
.where("plugin", "=", plugin)
|
|
788
|
+
.executeTakeFirst();
|
|
789
|
+
if (!row)
|
|
790
|
+
throw notFound();
|
|
791
|
+
return secretScalars(Object.values(await this.readSecrets(orgId, id)));
|
|
792
|
+
}
|
|
555
793
|
/**
|
|
556
794
|
* The extension implementation and full config a connection needs to run (decrypted secrets
|
|
557
795
|
* included, validated against `connectionSchema`). Connection missing / deleted ->
|
|
@@ -585,32 +823,37 @@ let ChannelConnections = class ChannelConnections {
|
|
|
585
823
|
*/
|
|
586
824
|
async outbound(connectionId) {
|
|
587
825
|
const { row, channel, config } = await this.runtime(connectionId);
|
|
588
|
-
//
|
|
826
|
+
// the language handed to the extension with each send / update (Ruling A22): the recipient's
|
|
827
|
+
// when the caller gives it (IM language is per person, run context spec §3.4), else the org's
|
|
589
828
|
const { locale } = await readOrgSettings(this.db.db, row.orgId);
|
|
590
829
|
return {
|
|
591
830
|
row,
|
|
592
831
|
features: channel.features,
|
|
593
832
|
redact: createRedactor(secretValues(channel.connectionSchema, config), 4),
|
|
594
|
-
send: (target, message, idempotencyKey) => channel.send({
|
|
833
|
+
send: (target, message, idempotencyKey, to = locale) => channel.send({
|
|
595
834
|
config,
|
|
596
|
-
...adaptToFeatures(channel.features, target, message,
|
|
835
|
+
...adaptToFeatures(channel.features, target, message, to),
|
|
597
836
|
signal: AbortSignal.timeout(PLUGIN_CALL_TIMEOUT_MS),
|
|
598
|
-
locale,
|
|
837
|
+
locale: to,
|
|
599
838
|
...(idempotencyKey !== undefined && { idempotencyKey }),
|
|
600
839
|
}),
|
|
601
|
-
update: (target, messageId, message, idempotencyKey) => channel.update({
|
|
840
|
+
update: (target, messageId, message, idempotencyKey, to = locale) => channel.update({
|
|
602
841
|
config,
|
|
603
|
-
...adaptToFeatures(channel.features, target, message,
|
|
842
|
+
...adaptToFeatures(channel.features, target, message, to),
|
|
604
843
|
messageId,
|
|
605
844
|
signal: AbortSignal.timeout(PLUGIN_CALL_TIMEOUT_MS),
|
|
606
|
-
locale,
|
|
845
|
+
locale: to,
|
|
607
846
|
...(idempotencyKey !== undefined && { idempotencyKey }),
|
|
608
847
|
}),
|
|
609
848
|
};
|
|
610
849
|
}
|
|
611
|
-
/**
|
|
612
|
-
|
|
613
|
-
|
|
850
|
+
/**
|
|
851
|
+
* Sends one message through the connection's extension (inbound replies: bind cards, fixed
|
|
852
|
+
* phrases, card-action notes); `idempotencyKey` is passed through as is, `locale` is the
|
|
853
|
+
* recipient's language (else the org's).
|
|
854
|
+
*/
|
|
855
|
+
async send(connectionId, target, message, idempotencyKey, locale) {
|
|
856
|
+
return (await this.outbound(connectionId)).send(target, message, idempotencyKey, locale);
|
|
614
857
|
}
|
|
615
858
|
};
|
|
616
859
|
__decorate([
|
|
@@ -619,6 +862,9 @@ __decorate([
|
|
|
619
862
|
__decorate([
|
|
620
863
|
Transactional({ propagation: "requires_new" })
|
|
621
864
|
], ChannelConnections.prototype, "updateIn", null);
|
|
865
|
+
__decorate([
|
|
866
|
+
Transactional({ propagation: "requires_new" })
|
|
867
|
+
], ChannelConnections.prototype, "ackIn", null);
|
|
622
868
|
__decorate([
|
|
623
869
|
Transactional({ propagation: "requires_new" })
|
|
624
870
|
], ChannelConnections.prototype, "removeIn", null);
|
|
@@ -634,6 +880,7 @@ ChannelConnections = __decorate([
|
|
|
634
880
|
__param(7, Inject(KernelConfigService)),
|
|
635
881
|
__param(8, Inject(KernelEvents)),
|
|
636
882
|
__param(9, Inject(KERNEL_LOGGER)),
|
|
637
|
-
__param(10, Inject(TransactionHost))
|
|
883
|
+
__param(10, Inject(TransactionHost)),
|
|
884
|
+
__param(11, Inject(PluginGuides))
|
|
638
885
|
], ChannelConnections);
|
|
639
886
|
export { ChannelConnections };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ChannelCard, InboundEvent, InboundSender, Logger } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import type { Redis } from "ioredis";
|
|
3
3
|
import { ConversationsService } from "../conversations/conversations.service.js";
|
|
4
|
+
import { DevicesService } from "../devices/devices.service.js";
|
|
4
5
|
import { IdentityBinding } from "../identity/binding.js";
|
|
5
6
|
import { ExternalIdentities } from "../identity/external.js";
|
|
6
7
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
@@ -62,6 +63,7 @@ export declare class ChannelInbound {
|
|
|
62
63
|
/** The channel queue: inbound jobs (`onEvent` only dedupes and enqueues) and deliveries. */
|
|
63
64
|
private readonly jobs;
|
|
64
65
|
private readonly guests;
|
|
66
|
+
private readonly devices;
|
|
65
67
|
private readonly log;
|
|
66
68
|
private readonly actions;
|
|
67
69
|
constructor(kdb: KernelDb, redis: Pick<Redis, "set">,
|
|
@@ -72,7 +74,7 @@ export declare class ChannelInbound {
|
|
|
72
74
|
/** The channel queue: inbound jobs (`onEvent` only dedupes and enqueues) and deliveries. */
|
|
73
75
|
jobs: Pick<ChannelJobs, "enqueue" | "enqueueInbound">,
|
|
74
76
|
/** 卡片操作:审批决定与提问回答(授权由这两个服务按点击者映射到的账号判定)。 */
|
|
75
|
-
approvals: Pick<ApprovalsService, "decide">, questions: Pick<QuestionsService, "answer">, guests: Pick<AnonymousGuests, "ensure">, log: Pick<Logger, "warn" | "info">);
|
|
77
|
+
approvals: Pick<ApprovalsService, "decide">, questions: Pick<QuestionsService, "answer">, guests: Pick<AnonymousGuests, "ensure">, devices: Pick<DevicesService, "list" | "imDefault" | "setImDefault">, log: Pick<Logger, "warn" | "info">);
|
|
76
78
|
/**
|
|
77
79
|
* 插件 `onEvent`:去重并入队后返回(见类注释)。返回后插件才向平台确认;抛错时插件不确认。
|
|
78
80
|
*/
|
|
@@ -92,6 +94,14 @@ export declare class ChannelInbound {
|
|
|
92
94
|
/** 入站任务的处理(worker 上执行;失败抛错由队列重试)。 */
|
|
93
95
|
handle(connectionId: string, e: InboundEvent): Promise<void>;
|
|
94
96
|
private message;
|
|
97
|
+
/**
|
|
98
|
+
* Direct-message `/device` (environments spec §4.2 item 8): lists the person's usable devices,
|
|
99
|
+
* or with a name sets the IM default their next new conversation is bound to. The name matches
|
|
100
|
+
* case-insensitively against each label (`deviceLabel`: a former default demoted by a
|
|
101
|
+
* provider switch answers to e.g. "Personal (Docker sandbox)"); the default device also
|
|
102
|
+
* answers to 个人设备 / Personal.
|
|
103
|
+
*/
|
|
104
|
+
private deviceCommand;
|
|
95
105
|
/**
|
|
96
106
|
* Posts the person's message: `/name args` as a skill invocation when the kernel accepts it, else
|
|
97
107
|
* as typed (phase D spec §9). A retry of the job finds the first write by `clientMessageId`
|