@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.2
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/dist/admin/admin.controller.d.ts +17 -17
- package/dist/admin/admin.controller.js +43 -26
- package/dist/admin/admin.module.d.ts +3 -0
- package/dist/admin/admin.module.js +22 -0
- package/dist/admin/extensions.controller.d.ts +14 -14
- package/dist/admin/extensions.controller.js +30 -17
- package/dist/admin/setup-lock.d.ts +16 -0
- package/dist/admin/setup-lock.js +47 -0
- package/dist/admin/setup.controller.d.ts +8 -8
- package/dist/admin/setup.controller.js +27 -25
- package/dist/admin/setup.service.d.ts +19 -27
- package/dist/admin/setup.service.js +61 -61
- package/dist/agents/agent-lookup.d.ts +53 -0
- package/dist/agents/agent-lookup.js +179 -0
- package/dist/agents/agents.controller.d.ts +1 -1
- package/dist/agents/agents.controller.js +14 -8
- package/dist/agents/agents.module.d.ts +7 -0
- package/dist/agents/agents.module.js +41 -0
- package/dist/agents/agents.service.d.ts +39 -58
- package/dist/agents/agents.service.js +261 -329
- package/dist/agents/definition.d.ts +8 -0
- package/dist/agents/definition.js +8 -0
- package/dist/agents/models.controller.d.ts +1 -1
- package/dist/agents/models.controller.js +2 -2
- package/dist/agents/templates.controller.d.ts +1 -1
- package/dist/agents/templates.controller.js +2 -2
- package/dist/agents/templates.d.ts +6 -8
- package/dist/agents/templates.js +20 -4
- package/dist/app.d.ts +93 -0
- package/dist/app.js +150 -0
- package/dist/catalog/admin-catalog.controller.d.ts +3 -3
- package/dist/catalog/admin-catalog.controller.js +27 -13
- package/dist/catalog/catalog-content.d.ts +185 -0
- package/dist/catalog/catalog-content.js +323 -0
- package/dist/catalog/catalog-items.d.ts +186 -0
- package/dist/catalog/catalog-items.js +410 -0
- package/dist/catalog/catalog.module.d.ts +14 -0
- package/dist/catalog/catalog.module.js +71 -0
- package/dist/catalog/catalog.service.d.ts +34 -188
- package/dist/catalog/catalog.service.js +155 -489
- package/dist/catalog/cli.d.ts +3 -2
- package/dist/catalog/cli.js +13 -31
- package/dist/catalog/job-ids.d.ts +15 -0
- package/dist/catalog/job-ids.js +15 -0
- package/dist/catalog/jobs.d.ts +27 -0
- package/dist/catalog/jobs.js +70 -0
- package/dist/catalog/locks.d.ts +24 -0
- package/dist/catalog/locks.js +63 -0
- package/dist/catalog/marketplaces.controller.d.ts +4 -4
- package/dist/catalog/marketplaces.controller.js +22 -11
- package/dist/catalog/marketplaces.service.d.ts +30 -13
- package/dist/catalog/marketplaces.service.js +330 -256
- package/dist/catalog/org-catalog.controller.d.ts +4 -3
- package/dist/catalog/org-catalog.controller.js +29 -14
- package/dist/catalog/org-catalog.service.d.ts +32 -198
- package/dist/catalog/org-catalog.service.js +159 -400
- package/dist/catalog/plugin-import.d.ts +73 -34
- package/dist/catalog/plugin-import.js +356 -217
- package/dist/catalog/plugin-install.d.ts +83 -41
- package/dist/catalog/plugin-install.js +421 -269
- package/dist/catalog/plugin-upgrade.d.ts +59 -4
- package/dist/catalog/plugin-upgrade.js +407 -282
- package/dist/catalog/requests.service.d.ts +27 -15
- package/dist/catalog/requests.service.js +201 -145
- package/dist/catalog/upgrade-targets.d.ts +4 -7
- package/dist/channels/actions.d.ts +6 -4
- package/dist/channels/actions.js +1 -1
- package/dist/channels/cards.d.ts +2 -2
- package/dist/channels/channels.module.d.ts +40 -0
- package/dist/channels/channels.module.js +128 -0
- package/dist/channels/connections.controller.d.ts +1 -1
- package/dist/channels/connections.controller.js +11 -6
- package/dist/channels/connections.service.d.ts +43 -21
- package/dist/channels/connections.service.js +236 -131
- package/dist/channels/inbound.d.ts +34 -38
- package/dist/channels/inbound.js +107 -41
- package/dist/channels/job-ids.d.ts +10 -0
- package/dist/channels/job-ids.js +10 -0
- package/dist/channels/jobs.d.ts +85 -0
- package/dist/channels/jobs.js +157 -0
- package/dist/channels/outbound.d.ts +60 -82
- package/dist/channels/outbound.js +165 -194
- package/dist/channels/supervisor.d.ts +88 -46
- package/dist/channels/supervisor.js +230 -132
- package/dist/channels/threads.d.ts +29 -8
- package/dist/channels/threads.js +71 -13
- package/dist/channels/webhook.d.ts +20 -14
- package/dist/channels/webhook.js +51 -20
- package/dist/config/load.d.ts +3 -2
- package/dist/config/load.js +3 -2
- package/dist/config/nacos-source.js +11 -2
- package/dist/config/schema.d.ts +1 -0
- package/dist/config/schema.js +10 -4
- package/dist/conversations/access.d.ts +29 -0
- package/dist/conversations/access.js +86 -0
- package/dist/conversations/artifacts.d.ts +10 -10
- package/dist/conversations/artifacts.js +35 -9
- package/dist/conversations/attachments.controller.d.ts +1 -1
- package/dist/conversations/attachments.controller.js +8 -6
- package/dist/conversations/attachments.module.d.ts +7 -0
- package/dist/conversations/attachments.module.js +25 -0
- package/dist/conversations/attachments.service.d.ts +30 -22
- package/dist/conversations/attachments.service.js +119 -46
- package/dist/conversations/conversations.controller.d.ts +8 -7
- package/dist/conversations/conversations.controller.js +59 -29
- package/dist/conversations/conversations.module.d.ts +8 -0
- package/dist/conversations/conversations.module.js +69 -0
- package/dist/conversations/conversations.service.d.ts +40 -38
- package/dist/conversations/conversations.service.js +130 -140
- package/dist/conversations/event-log.d.ts +28 -18
- package/dist/conversations/event-log.js +74 -27
- package/dist/conversations/files.d.ts +10 -10
- package/dist/conversations/files.js +37 -11
- package/dist/conversations/idem-keys.d.ts +5 -0
- package/dist/conversations/idem-keys.js +5 -0
- package/dist/conversations/job-ids.d.ts +6 -0
- package/dist/conversations/job-ids.js +6 -0
- package/dist/conversations/outputs-read.d.ts +11 -11
- package/dist/conversations/outputs-read.js +31 -7
- package/dist/conversations/queue.d.ts +48 -56
- package/dist/conversations/queue.js +13 -289
- package/dist/conversations/queue.service.d.ts +60 -0
- package/dist/conversations/queue.service.js +343 -0
- package/dist/conversations/sandbox-status.d.ts +13 -10
- package/dist/conversations/sandbox-status.js +36 -8
- package/dist/conversations/titles.d.ts +71 -24
- package/dist/conversations/titles.js +159 -63
- package/dist/ctx/bus.js +9 -3
- package/dist/ctx/create-ctx.d.ts +6 -0
- package/dist/ctx/create-ctx.js +7 -9
- package/dist/ctx/lock.d.ts +7 -3
- package/dist/ctx/lock.js +9 -20
- package/dist/ctx/secrets.d.ts +10 -2
- package/dist/ctx/secrets.js +7 -3
- package/dist/db/kernel-schema.d.ts +2 -2
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +1 -0
- package/dist/errors.d.ts +1 -0
- package/dist/errors.js +1 -0
- package/dist/evals/budget.d.ts +42 -21
- package/dist/evals/budget.js +114 -62
- package/dist/evals/evals.module.d.ts +31 -0
- package/dist/evals/evals.module.js +114 -0
- package/dist/evals/jobs.d.ts +20 -0
- package/dist/evals/jobs.js +45 -0
- package/dist/evals/run-replay.d.ts +56 -8
- package/dist/evals/run-replay.js +140 -80
- package/dist/evals/runs.controller.d.ts +1 -1
- package/dist/evals/runs.controller.js +17 -8
- package/dist/evals/runs.service.d.ts +23 -45
- package/dist/evals/runs.service.js +245 -234
- package/dist/evals/sets.controller.d.ts +1 -1
- package/dist/evals/sets.controller.js +17 -8
- package/dist/evals/sets.service.d.ts +22 -6
- package/dist/evals/sets.service.js +248 -194
- package/dist/evals/snapshot.d.ts +2 -2
- package/dist/evals/step-replay.d.ts +2 -2
- package/dist/evals/step-replay.js +1 -1
- package/dist/evals/trajectory.controller.d.ts +1 -1
- package/dist/evals/trajectory.controller.js +11 -7
- package/dist/evals/trajectory.service.d.ts +5 -4
- package/dist/evals/trajectory.service.js +30 -7
- package/dist/evals/worker.d.ts +44 -27
- package/dist/evals/worker.js +220 -121
- package/dist/extensions/admin-ops.d.ts +61 -33
- package/dist/extensions/admin-ops.js +248 -154
- package/dist/extensions/admin-view.d.ts +38 -27
- package/dist/extensions/admin-view.js +126 -55
- package/dist/extensions/approvals.d.ts +12 -8
- package/dist/extensions/approvals.js +73 -46
- package/dist/extensions/blobs.d.ts +27 -10
- package/dist/extensions/blobs.js +111 -45
- package/dist/extensions/bootstrap.d.ts +58 -31
- package/dist/extensions/bootstrap.js +175 -121
- package/dist/extensions/cli.d.ts +20 -10
- package/dist/extensions/cli.js +41 -96
- package/dist/extensions/config-issues.d.ts +7 -0
- package/dist/extensions/config-issues.js +31 -0
- package/dist/extensions/deployment-config-store.d.ts +49 -0
- package/dist/extensions/deployment-config-store.js +133 -0
- package/dist/extensions/deployment-config.d.ts +58 -67
- package/dist/extensions/deployment-config.js +202 -230
- package/dist/extensions/enabled.d.ts +5 -5
- package/dist/extensions/extensions.module.d.ts +8 -0
- package/dist/extensions/extensions.module.js +77 -0
- package/dist/extensions/hooks.d.ts +3 -2
- package/dist/extensions/hooks.js +1 -1
- package/dist/extensions/host.d.ts +72 -68
- package/dist/extensions/host.js +191 -152
- package/dist/extensions/installs.d.ts +49 -16
- package/dist/extensions/installs.js +128 -32
- package/dist/extensions/job-ids.d.ts +6 -0
- package/dist/extensions/job-ids.js +6 -0
- package/dist/extensions/lifecycle-topics.d.ts +18 -0
- package/dist/extensions/lifecycle-topics.js +18 -0
- package/dist/extensions/lifecycle.d.ts +35 -47
- package/dist/extensions/lifecycle.js +103 -39
- package/dist/extensions/locks.d.ts +33 -0
- package/dist/extensions/locks.js +86 -0
- package/dist/extensions/migrate-lock.d.ts +3 -4
- package/dist/extensions/org-config.controller.d.ts +1 -1
- package/dist/extensions/org-config.controller.js +8 -5
- package/dist/extensions/org-config.d.ts +48 -46
- package/dist/extensions/org-config.js +284 -226
- package/dist/extensions/registry.d.ts +50 -2
- package/dist/extensions/registry.js +89 -4
- package/dist/extensions/sources.d.ts +12 -8
- package/dist/extensions/sources.js +34 -13
- package/dist/files/files.module.d.ts +3 -0
- package/dist/files/files.module.js +22 -0
- package/dist/files/previewers.controller.d.ts +7 -2
- package/dist/files/previewers.controller.js +17 -9
- package/dist/files/previewers.d.ts +13 -18
- package/dist/files/previewers.js +83 -36
- package/dist/http/adapter.d.ts +3 -0
- package/dist/http/adapter.js +25 -0
- package/dist/http/api.module.d.ts +3 -110
- package/dist/http/api.module.js +47 -355
- package/dist/http/app.d.ts +11 -15
- package/dist/http/app.js +17 -62
- package/dist/http/error-filter.module.d.ts +5 -0
- package/dist/http/error-filter.module.js +18 -0
- package/dist/http/error.filter.js +2 -2
- package/dist/identity/accounts.d.ts +82 -29
- package/dist/identity/accounts.js +294 -175
- package/dist/identity/api-tokens.d.ts +11 -7
- package/dist/identity/api-tokens.js +71 -44
- package/dist/identity/audit.d.ts +7 -4
- package/dist/identity/audit.js +5 -1
- package/dist/identity/auth.controller.d.ts +11 -10
- package/dist/identity/auth.controller.js +31 -25
- package/dist/identity/auth.guard.d.ts +3 -3
- package/dist/identity/auth.guard.js +6 -4
- package/dist/identity/binding.d.ts +9 -11
- package/dist/identity/binding.js +41 -13
- package/dist/identity/enterprise-admin.d.ts +18 -12
- package/dist/identity/enterprise-admin.js +67 -13
- package/dist/identity/external-identity-lock.d.ts +17 -0
- package/dist/identity/external-identity-lock.js +39 -0
- package/dist/identity/external.d.ts +19 -15
- package/dist/identity/external.js +163 -125
- package/dist/identity/identity.module.d.ts +6 -0
- package/dist/identity/identity.module.js +56 -0
- package/dist/identity/me.controller.d.ts +16 -15
- package/dist/identity/me.controller.js +37 -31
- package/dist/identity/sessions.d.ts +12 -10
- package/dist/identity/sessions.js +74 -42
- package/dist/identity/settings.d.ts +20 -14
- package/dist/identity/settings.js +85 -57
- package/dist/identity/sso.controller.d.ts +7 -7
- package/dist/identity/sso.controller.js +13 -9
- package/dist/identity/sso.d.ts +9 -12
- package/dist/identity/sso.js +54 -24
- package/dist/inbox/inbox.module.d.ts +3 -0
- package/dist/inbox/inbox.module.js +22 -0
- package/dist/inbox/inbox.service.d.ts +7 -9
- package/dist/inbox/inbox.service.js +32 -11
- package/dist/index.d.ts +16 -11
- package/dist/index.js +9 -6
- package/dist/infra/cache/cache.module.d.ts +3 -0
- package/dist/infra/cache/cache.module.js +16 -0
- package/dist/infra/cache/cache.service.d.ts +21 -0
- package/dist/infra/cache/cache.service.js +80 -0
- package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
- package/dist/infra/cache/cacheable.decorator.js +83 -0
- package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
- package/dist/infra/cli/kernel-cli.module.js +165 -0
- package/dist/infra/close-within.d.ts +15 -0
- package/dist/infra/close-within.js +36 -0
- package/dist/infra/config/config.module.d.ts +13 -0
- package/dist/infra/config/config.module.js +39 -0
- package/dist/infra/config/kernel-config.service.d.ts +25 -0
- package/dist/infra/config/kernel-config.service.js +126 -0
- package/dist/infra/database/after-commit.d.ts +6 -0
- package/dist/infra/database/after-commit.js +9 -0
- package/dist/infra/database/database.module.d.ts +25 -0
- package/dist/infra/database/database.module.js +90 -0
- package/dist/infra/database/kernel-db.d.ts +22 -0
- package/dist/infra/database/kernel-db.js +65 -0
- package/dist/infra/database/transaction-host.d.ts +50 -0
- package/dist/infra/database/transaction-host.js +125 -0
- package/dist/infra/database/transactional.decorator.d.ts +15 -0
- package/dist/infra/database/transactional.decorator.js +27 -0
- package/dist/infra/database/xact-lock.d.ts +17 -0
- package/dist/infra/database/xact-lock.js +43 -0
- package/dist/infra/events/kernel-events.d.ts +96 -0
- package/dist/infra/events/kernel-events.js +65 -0
- package/dist/infra/health/health.controller.d.ts +26 -0
- package/dist/infra/health/health.controller.js +104 -0
- package/dist/infra/health/health.module.d.ts +9 -0
- package/dist/infra/health/health.module.js +24 -0
- package/dist/infra/health/health.options.d.ts +10 -0
- package/dist/infra/health/health.options.js +15 -0
- package/dist/infra/health/shutdown-state.d.ts +6 -0
- package/dist/infra/health/shutdown-state.js +2 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
- package/dist/infra/lifecycle/process-guards.d.ts +52 -0
- package/dist/infra/lifecycle/process-guards.js +86 -0
- package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
- package/dist/infra/lifecycle/shutdown-signals.js +48 -0
- package/dist/infra/lock/key-template.d.ts +13 -0
- package/dist/infra/lock/key-template.js +46 -0
- package/dist/infra/lock/lock.module.d.ts +3 -0
- package/dist/infra/lock/lock.module.js +16 -0
- package/dist/infra/lock/lock.service.d.ts +120 -0
- package/dist/infra/lock/lock.service.js +343 -0
- package/dist/infra/lock/shared-lease.d.ts +44 -0
- package/dist/infra/lock/shared-lease.js +121 -0
- package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
- package/dist/infra/lock/with-lock.decorator.js +49 -0
- package/dist/infra/logging/logging.module.d.ts +16 -0
- package/dist/infra/logging/logging.module.js +34 -0
- package/dist/infra/queue/configured-processor.d.ts +18 -0
- package/dist/infra/queue/configured-processor.js +23 -0
- package/dist/infra/queue/job-failure.d.ts +18 -0
- package/dist/infra/queue/job-failure.js +26 -0
- package/dist/infra/queue/queue-shutdown.d.ts +27 -0
- package/dist/infra/queue/queue-shutdown.js +81 -0
- package/dist/infra/queue/queue.module.d.ts +16 -0
- package/dist/infra/queue/queue.module.js +61 -0
- package/dist/infra/queue/redis-connection.d.ts +7 -0
- package/dist/infra/queue/redis-connection.js +18 -0
- package/dist/infra/queue/retired-schedulers.d.ts +7 -0
- package/dist/infra/queue/retired-schedulers.js +9 -0
- package/dist/infra/queue/run-job.d.ts +16 -0
- package/dist/infra/queue/run-job.js +19 -0
- package/dist/infra/redis/redis.module.d.ts +24 -0
- package/dist/infra/redis/redis.module.js +87 -0
- package/dist/infra/schedule/cron-tick.d.ts +12 -0
- package/dist/infra/schedule/cron-tick.js +25 -0
- package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
- package/dist/infra/schedule/locked-cron.decorator.js +53 -0
- package/dist/infra/schedule/locked-interval.d.ts +69 -0
- package/dist/infra/schedule/locked-interval.js +190 -0
- package/dist/infra/schedule/locked-tick.d.ts +90 -0
- package/dist/infra/schedule/locked-tick.js +137 -0
- package/dist/infra/schedule/schedule.module.d.ts +8 -0
- package/dist/infra/schedule/schedule.module.js +27 -0
- package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
- package/dist/infra/schedule/scheduled-runs.js +163 -0
- package/dist/infra/swagger/swagger.d.ts +16 -0
- package/dist/infra/swagger/swagger.js +31 -0
- package/dist/infra/throttler/credential-throttler.d.ts +35 -0
- package/dist/infra/throttler/credential-throttler.js +77 -0
- package/dist/infra/throttler/named-throttlers.d.ts +31 -0
- package/dist/infra/throttler/named-throttlers.js +119 -0
- package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
- package/dist/infra/throttler/redis-throttler-storage.js +130 -0
- package/dist/infra/throttler/throttler.guard.d.ts +23 -0
- package/dist/infra/throttler/throttler.guard.js +68 -0
- package/dist/infra/throttler/throttler.module.d.ts +15 -0
- package/dist/infra/throttler/throttler.module.js +53 -0
- package/dist/infra/tokens.d.ts +15 -0
- package/dist/infra/tokens.js +15 -0
- package/dist/infra/validation/create-zod-dto.d.ts +23 -0
- package/dist/infra/validation/create-zod-dto.js +35 -0
- package/dist/infra/validation/parse-with-zod.d.ts +7 -0
- package/dist/infra/validation/parse-with-zod.js +12 -0
- package/dist/infra/validation/validation.module.d.ts +3 -0
- package/dist/infra/validation/validation.module.js +16 -0
- package/dist/infra/validation/zod-params.d.ts +7 -0
- package/dist/infra/validation/zod-params.js +42 -0
- package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
- package/dist/infra/validation/zod-validation.pipe.js +31 -0
- package/dist/kernel.d.ts +9 -244
- package/dist/kernel.js +8 -1305
- package/dist/kernel.module.d.ts +17 -0
- package/dist/kernel.module.js +136 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
- package/dist/lifecycle/kernel-lifecycle.js +451 -0
- package/dist/lifecycle/tokens.d.ts +3 -0
- package/dist/lifecycle/tokens.js +3 -0
- package/dist/log-context.d.ts +2 -0
- package/dist/log-context.js +4 -0
- package/dist/models/models.module.d.ts +3 -0
- package/dist/models/models.module.js +24 -0
- package/dist/models/prices.d.ts +8 -2
- package/dist/models/prices.js +65 -37
- package/dist/models/purposes.controller.d.ts +1 -1
- package/dist/models/purposes.controller.js +5 -6
- package/dist/models/purposes.d.ts +35 -13
- package/dist/models/purposes.js +101 -51
- package/dist/orgs/directory-sync.controller.d.ts +1 -1
- package/dist/orgs/directory-sync.controller.js +2 -2
- package/dist/orgs/directory-sync.d.ts +61 -31
- package/dist/orgs/directory-sync.js +212 -125
- package/dist/orgs/invitations.controller.d.ts +8 -8
- package/dist/orgs/invitations.controller.js +27 -26
- package/dist/orgs/invitations.service.d.ts +12 -9
- package/dist/orgs/invitations.service.js +130 -92
- package/dist/orgs/job-ids.d.ts +8 -0
- package/dist/orgs/job-ids.js +8 -0
- package/dist/orgs/members.service.d.ts +19 -12
- package/dist/orgs/members.service.js +161 -117
- package/dist/orgs/offboarding.d.ts +54 -57
- package/dist/orgs/offboarding.js +161 -71
- package/dist/orgs/org-lock.d.ts +28 -19
- package/dist/orgs/org-lock.js +81 -35
- package/dist/orgs/org.guard.d.ts +1 -1
- package/dist/orgs/org.guard.js +2 -2
- package/dist/orgs/orgs.controller.d.ts +13 -13
- package/dist/orgs/orgs.controller.js +29 -17
- package/dist/orgs/orgs.module.d.ts +6 -0
- package/dist/orgs/orgs.module.js +68 -0
- package/dist/orgs/orgs.service.d.ts +30 -19
- package/dist/orgs/orgs.service.js +139 -86
- package/dist/orgs/settings.controller.d.ts +1 -1
- package/dist/orgs/settings.controller.js +8 -6
- package/dist/orgs/settings.service.d.ts +14 -8
- package/dist/orgs/settings.service.js +75 -46
- package/dist/overrides.d.ts +56 -0
- package/dist/overrides.js +30 -0
- package/dist/roles/gateway-role.d.ts +43 -0
- package/dist/roles/gateway-role.js +98 -0
- package/dist/roles/gateway.module.d.ts +8 -0
- package/dist/roles/gateway.module.js +28 -0
- package/dist/roles/worker-role.d.ts +63 -0
- package/dist/roles/worker-role.js +144 -0
- package/dist/roles/worker.module.d.ts +14 -0
- package/dist/roles/worker.module.js +90 -0
- package/dist/runtime/abort.js +19 -2
- package/dist/runtime/checkpointer.d.ts +8 -3
- package/dist/runtime/checkpointer.js +87 -55
- package/dist/runtime/conversation-lock.d.ts +20 -11
- package/dist/runtime/conversation-lock.js +62 -72
- package/dist/runtime/hook-calls.d.ts +3 -3
- package/dist/runtime/hook-calls.js +1 -6
- package/dist/runtime/job-ids.d.ts +10 -0
- package/dist/runtime/job-ids.js +10 -0
- package/dist/runtime/langgraph-loop.js +1 -1
- package/dist/runtime/loop.d.ts +7 -0
- package/dist/runtime/loop.js +14 -0
- package/dist/runtime/maintenance-queue.d.ts +10 -0
- package/dist/runtime/maintenance-queue.js +10 -0
- package/dist/runtime/maintenance.d.ts +45 -74
- package/dist/runtime/maintenance.js +139 -137
- package/dist/runtime/model-call.d.ts +7 -4
- package/dist/runtime/model-call.js +24 -57
- package/dist/runtime/providers.d.ts +17 -6
- package/dist/runtime/providers.js +66 -25
- package/dist/runtime/quota.d.ts +17 -3
- package/dist/runtime/quota.js +27 -2
- package/dist/runtime/retired-schedulers.d.ts +7 -0
- package/dist/runtime/retired-schedulers.js +31 -0
- package/dist/runtime/run-control.d.ts +33 -0
- package/dist/runtime/run-control.js +77 -0
- package/dist/runtime/run-finish.d.ts +26 -17
- package/dist/runtime/run-finish.js +98 -51
- package/dist/runtime/run-jobs.d.ts +48 -0
- package/dist/runtime/run-jobs.js +95 -0
- package/dist/runtime/run-processors.d.ts +60 -0
- package/dist/runtime/run-processors.js +185 -0
- package/dist/runtime/run-queue.d.ts +32 -57
- package/dist/runtime/run-queue.js +291 -295
- package/dist/runtime/run-steps.d.ts +39 -0
- package/dist/runtime/run-steps.js +96 -0
- package/dist/runtime/run-worker.d.ts +121 -75
- package/dist/runtime/run-worker.js +340 -226
- package/dist/runtime/runtime.module.d.ts +10 -0
- package/dist/runtime/runtime.module.js +112 -0
- package/dist/runtime/step-log.d.ts +40 -0
- package/dist/runtime/step-log.js +94 -0
- package/dist/runtime/stream.controller.d.ts +5 -8
- package/dist/runtime/stream.controller.js +14 -12
- package/dist/runtime/stream.d.ts +24 -6
- package/dist/runtime/stream.js +78 -7
- package/dist/runtime/subagents/child.d.ts +3 -44
- package/dist/runtime/subagents/child.js +0 -79
- package/dist/runtime/subagents/definition.d.ts +4 -4
- package/dist/runtime/subagents/definition.js +2 -2
- package/dist/runtime/subagents/dispatch.d.ts +87 -6
- package/dist/runtime/subagents/dispatch.js +135 -140
- package/dist/runtime/subagents/limits.d.ts +9 -4
- package/dist/runtime/subagents/limits.js +4 -2
- package/dist/runtime/subagents/org-agents.d.ts +4 -4
- package/dist/runtime/subagents/org-agents.js +1 -1
- package/dist/runtime/subagents/progress.d.ts +2 -2
- package/dist/runtime/subagents/roster.d.ts +3 -3
- package/dist/runtime/subagents/roster.js +1 -1
- package/dist/runtime/subagents/skill-fork.d.ts +6 -7
- package/dist/runtime/subagents/skill-fork.js +16 -5
- package/dist/runtime/subagents/subagents.service.d.ts +40 -0
- package/dist/runtime/subagents/subagents.service.js +101 -0
- package/dist/runtime/usage-report.d.ts +94 -52
- package/dist/runtime/usage-report.js +200 -100
- package/dist/runtime/waits.d.ts +125 -57
- package/dist/runtime/waits.js +431 -208
- package/dist/sandbox/job-ids.d.ts +10 -0
- package/dist/sandbox/job-ids.js +10 -0
- package/dist/sandbox/jobs.d.ts +41 -0
- package/dist/sandbox/jobs.js +113 -0
- package/dist/sandbox/leases.d.ts +39 -31
- package/dist/sandbox/leases.js +117 -257
- package/dist/sandbox/providers.d.ts +19 -0
- package/dist/sandbox/providers.js +38 -0
- package/dist/sandbox/sandbox.module.d.ts +8 -0
- package/dist/sandbox/sandbox.module.js +30 -0
- package/dist/sandbox/sandbox.service.d.ts +24 -29
- package/dist/sandbox/sandbox.service.js +106 -75
- package/dist/skills/catalog.d.ts +33 -20
- package/dist/skills/catalog.js +96 -53
- package/dist/skills/changes.controller.d.ts +4 -4
- package/dist/skills/changes.controller.js +15 -9
- package/dist/skills/changes.service.d.ts +28 -18
- package/dist/skills/changes.service.js +421 -364
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +8 -5
- package/dist/skills/invoke.d.ts +16 -15
- package/dist/skills/invoke.js +48 -17
- package/dist/skills/skills.controller.d.ts +1 -1
- package/dist/skills/skills.controller.js +11 -6
- package/dist/skills/skills.module.d.ts +6 -0
- package/dist/skills/skills.module.js +30 -0
- package/dist/skills/skills.service.d.ts +47 -30
- package/dist/skills/skills.service.js +221 -158
- package/dist/storage/job-ids.d.ts +6 -0
- package/dist/storage/job-ids.js +6 -0
- package/dist/storage/purge.d.ts +22 -7
- package/dist/storage/purge.js +55 -3
- package/dist/storage/storage.module.d.ts +6 -0
- package/dist/storage/storage.module.js +23 -0
- package/dist/storage/storage.service.d.ts +18 -4
- package/dist/storage/storage.service.js +44 -3
- package/dist/tools/approvals.controller.d.ts +1 -1
- package/dist/tools/approvals.controller.js +12 -8
- package/dist/tools/approvals.service.d.ts +27 -25
- package/dist/tools/approvals.service.js +324 -258
- package/dist/tools/breaker.d.ts +2 -2
- package/dist/tools/breaker.js +21 -3
- package/dist/tools/builtins/ask-user.d.ts +2 -2
- package/dist/tools/builtins/ask-user.js +1 -1
- package/dist/tools/builtins/builtin-tools.d.ts +21 -0
- package/dist/tools/builtins/builtin-tools.js +80 -0
- package/dist/tools/builtins/read-tool-output.d.ts +2 -2
- package/dist/tools/builtins/read-tool-output.js +1 -1
- package/dist/tools/builtins/sandbox/bash.js +2 -2
- package/dist/tools/builtins/sandbox/common.d.ts +2 -1
- package/dist/tools/builtins/sandbox/deliver.js +2 -2
- package/dist/tools/builtins/sandbox/edit.js +1 -1
- package/dist/tools/builtins/sandbox/glob.js +2 -2
- package/dist/tools/builtins/sandbox/grep.js +2 -2
- package/dist/tools/builtins/sandbox/read.js +1 -1
- package/dist/tools/builtins/sandbox/write.js +1 -1
- package/dist/tools/builtins/skill-load.d.ts +3 -3
- package/dist/tools/builtins/skill-load.js +1 -1
- package/dist/tools/canonical-json.d.ts +6 -0
- package/dist/tools/canonical-json.js +16 -0
- package/dist/tools/connector-content.controller.d.ts +1 -1
- package/dist/tools/connector-content.controller.js +11 -6
- package/dist/tools/connector-content.d.ts +12 -15
- package/dist/tools/connector-content.js +53 -18
- package/dist/tools/connectors.controller.d.ts +1 -1
- package/dist/tools/connectors.controller.js +21 -10
- package/dist/tools/connectors.service.d.ts +31 -13
- package/dist/tools/connectors.service.js +434 -344
- package/dist/tools/credentials.d.ts +17 -20
- package/dist/tools/credentials.js +55 -34
- package/dist/tools/drift.d.ts +29 -41
- package/dist/tools/drift.js +111 -79
- package/dist/tools/info.d.ts +12 -9
- package/dist/tools/info.js +33 -7
- package/dist/tools/job-ids.d.ts +13 -0
- package/dist/tools/job-ids.js +15 -0
- package/dist/tools/jobs.d.ts +24 -0
- package/dist/tools/jobs.js +69 -0
- package/dist/tools/oauth/flow-paths.d.ts +16 -0
- package/dist/tools/oauth/flow-paths.js +38 -0
- package/dist/tools/oauth/flow.d.ts +30 -30
- package/dist/tools/oauth/flow.js +109 -81
- package/dist/tools/oauth/oauth.controller.d.ts +3 -3
- package/dist/tools/oauth/oauth.controller.js +12 -9
- package/dist/tools/oauth/tokens.d.ts +11 -3
- package/dist/tools/oauth/tokens.js +15 -14
- package/dist/tools/outputs.d.ts +13 -4
- package/dist/tools/outputs.js +47 -3
- package/dist/tools/pipeline.d.ts +62 -46
- package/dist/tools/pipeline.js +145 -64
- package/dist/tools/policy.d.ts +2 -2
- package/dist/tools/questions.controller.d.ts +1 -1
- package/dist/tools/questions.controller.js +8 -5
- package/dist/tools/questions.service.d.ts +25 -24
- package/dist/tools/questions.service.js +201 -142
- package/dist/tools/registry.d.ts +30 -20
- package/dist/tools/registry.js +73 -37
- package/dist/tools/specs.d.ts +5 -4
- package/dist/tools/specs.js +3 -1
- package/dist/tools/tools.module.d.ts +10 -0
- package/dist/tools/tools.module.js +91 -0
- package/dist/ui/call-extension.d.ts +16 -0
- package/dist/ui/call-extension.js +38 -0
- package/dist/ui/embed-token.d.ts +9 -5
- package/dist/ui/embed-token.js +34 -6
- package/dist/ui/ui-stream.d.ts +22 -17
- package/dist/ui/ui-stream.js +72 -12
- package/dist/ui/ui.module.d.ts +7 -0
- package/dist/ui/ui.module.js +28 -0
- package/dist/ui/views.controller.d.ts +14 -12
- package/dist/ui/views.controller.js +32 -25
- package/dist/ui/views.d.ts +9 -57
- package/dist/ui/views.js +43 -45
- package/package.json +9 -2
- package/dist/http/health.controller.d.ts +0 -26
- package/dist/http/health.controller.js +0 -79
- package/dist/http/tokens.d.ts +0 -131
- package/dist/http/tokens.js +0 -131
- package/dist/http/zod.pipe.d.ts +0 -8
- package/dist/http/zod.pipe.js +0 -14
- package/dist/identity/rate-limit.d.ts +0 -55
- package/dist/identity/rate-limit.js +0 -121
- package/dist/sandbox/lifecycle.d.ts +0 -21
- package/dist/sandbox/lifecycle.js +0 -68
- /package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +0 -0
- /package/dist/http/{gateway.module.js → gateway-routes.js} +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { AuthInjection } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import type { Redis } from "ioredis";
|
|
3
|
-
import { type Transaction } from "kysely";
|
|
4
|
-
import type { KernelConfig } from "../config/schema.js";
|
|
5
3
|
import { type Keyring } from "../ctx/secrets.js";
|
|
6
|
-
import type {
|
|
4
|
+
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
7
5
|
import { ApiError } from "../errors.js";
|
|
6
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
7
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
8
|
+
import { LockService } from "../infra/lock/lock.service.js";
|
|
8
9
|
import type { KernelLogger } from "../log.js";
|
|
9
10
|
import { type OAuthClientRecord, type OAuthTokenRecord } from "./oauth/tokens.js";
|
|
10
11
|
export type Ownership = "org" | "personal";
|
|
@@ -75,52 +76,48 @@ export declare class CredentialMissing extends ApiError {
|
|
|
75
76
|
* 删除某账号在该组织所有连接器上的个人凭据(`credentials:app:<connectorId>:user:<accountId>`,含已删除连接器残留的),
|
|
76
77
|
* 成员离职时在其事务内调用(不解密,不需要密钥环)。返回删除条数。
|
|
77
78
|
*/
|
|
78
|
-
export declare function clearAccountCredentials(db:
|
|
79
|
-
/** OAuth 刷新所需的依赖(锁在 Redis,往返限时与本机 http 放行取自配置)。 */
|
|
80
|
-
export interface CredentialsOAuthDeps {
|
|
81
|
-
redis: Redis;
|
|
82
|
-
config: () => KernelConfig;
|
|
83
|
-
}
|
|
79
|
+
export declare function clearAccountCredentials(db: KernelSchemaDb, orgId: string, accountId: string): Promise<number>;
|
|
84
80
|
/**
|
|
85
81
|
* 连接器凭据:信封加密存入 capybara.secrets,解密后只在构造注入头时出现。OAuth 连接器的 token 也存在这里
|
|
86
|
-
* (个人 / 组织键,同静态凭据),OAuth 客户端存组织级的 `:client` 键;刷新见 oauth/tokens.ts
|
|
82
|
+
* (个人 / 组织键,同静态凭据),OAuth 客户端存组织级的 `:client` 键;刷新见 oauth/tokens.ts(锁在 Redis,
|
|
83
|
+
* 往返限时与本机 http 放行取自配置)。Writes and deletes run on the context's handle (`KernelDb`): inside a
|
|
84
|
+
* caller's `@Transactional` they join its transaction (they live and die with the connector row and audit).
|
|
87
85
|
*/
|
|
88
86
|
export declare class Credentials {
|
|
89
87
|
private readonly db;
|
|
90
88
|
private readonly keyring;
|
|
91
89
|
private readonly log;
|
|
92
90
|
private readonly tokens;
|
|
93
|
-
constructor(db: KernelDb, keyring: Keyring, log: KernelLogger,
|
|
91
|
+
constructor(db: KernelDb, keyring: Keyring, log: KernelLogger, config: Pick<KernelConfigService, "get">, locks: Pick<LockService, "lease" | "releaseIf" | "renew">, redis: Pick<Redis, "exists">);
|
|
94
92
|
private oauth;
|
|
95
93
|
/** 读一条 JSON 凭据;不存在 / 解不开 → null(日志不带内容)。 */
|
|
96
94
|
private readJson;
|
|
97
95
|
/** OAuth 客户端与令牌里的密钥值登记日志打码(logger 只收 ≥ 12 的值)。 */
|
|
98
96
|
private registerSecrets;
|
|
99
97
|
oauthClient(orgId: string, connectorId: string): Promise<OAuthClientRecord | null>;
|
|
100
|
-
setOAuthClient(orgId: string, connectorId: string, client: OAuthClientRecord
|
|
98
|
+
setOAuthClient(orgId: string, connectorId: string, client: OAuthClientRecord): Promise<void>;
|
|
101
99
|
oauthTokens(orgId: string, connectorId: string, owner: CredentialOwner): Promise<OAuthTokenRecord | null>;
|
|
102
|
-
setOAuthTokens(orgId: string, connectorId: string, owner: CredentialOwner, rec: OAuthTokenRecord
|
|
100
|
+
setOAuthTokens(orgId: string, connectorId: string, owner: CredentialOwner, rec: OAuthTokenRecord): Promise<void>;
|
|
101
|
+
/** The secrets store on the context's handle (the caller's transaction, else the pool). */
|
|
103
102
|
private secrets;
|
|
104
103
|
/**
|
|
105
104
|
* 按认证方式校验凭据形状与归属;错误(`validation_failed`)只含路径与英文说明,不回显值。
|
|
106
105
|
* 连接器创建时先用它校验、再拿内存中的值连接,连上之后才落库。
|
|
107
106
|
*/
|
|
108
107
|
validate(auth: ConnectorAuth, owner: CredentialOwner, value: unknown): asserts value is StaticSecret;
|
|
109
|
-
setStatic(orgId: string, connectorId: string, auth: ConnectorAuth, owner: CredentialOwner, value: StaticSecret
|
|
110
|
-
|
|
111
|
-
trx?: Transaction<KernelDatabase>): Promise<void>;
|
|
112
|
-
clear(orgId: string, connectorId: string, owner: CredentialOwner, trx?: Transaction<KernelDatabase>): Promise<void>;
|
|
108
|
+
setStatic(orgId: string, connectorId: string, auth: ConnectorAuth, owner: CredentialOwner, value: StaticSecret): Promise<void>;
|
|
109
|
+
clear(orgId: string, connectorId: string, owner: CredentialOwner): Promise<void>;
|
|
113
110
|
/** 删除某连接器的全部凭据(组织凭据与所有成员的个人凭据),连接器删除时调用。 */
|
|
114
|
-
clearConnector(orgId: string, connectorId: string
|
|
111
|
+
clearConnector(orgId: string, connectorId: string): Promise<void>;
|
|
115
112
|
/** 删除某账号在该组织所有连接器上的个人凭据,见 {@link clearAccountCredentials}。 */
|
|
116
|
-
clearAccount(orgId: string, accountId: string
|
|
113
|
+
clearAccount(orgId: string, accountId: string): Promise<number>;
|
|
117
114
|
/**
|
|
118
115
|
* 持有该连接器个人凭据的**现任成员**(不解密),按凭据最近写入时间倒序(保存静态凭据、OAuth 连接与刷新 token
|
|
119
116
|
* 都会更新写入时间),最多 `limit` 个。漂移检查用它挑个人凭据型连接器的凭据。
|
|
120
117
|
*/
|
|
121
118
|
personalHolders(orgId: string, connectorId: string, limit: number): Promise<string[]>;
|
|
122
119
|
/** 只看与 auth.ownership 对应的那一条凭据是否存在(不解密);none 恒为 connected。 */
|
|
123
|
-
status(orgId: string, connectorId: string, auth: ConnectorAuth, accountId: string
|
|
120
|
+
status(orgId: string, connectorId: string, auth: ConnectorAuth, accountId: string): Promise<"connected" | "missing">;
|
|
124
121
|
/** 返回本次请求要注入的头 / 查询参数;缺凭据抛 CredentialMissing。 */
|
|
125
122
|
injection(orgId: string, connectorId: string, auth: ConnectorAuth, accountId: string): Promise<AuthInjection>;
|
|
126
123
|
/**
|
|
@@ -1,7 +1,21 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
1
11
|
import { sql } from "kysely";
|
|
2
12
|
import { z } from "zod";
|
|
3
13
|
import { createSecrets } from "../ctx/secrets.js";
|
|
4
14
|
import { ApiError } from "../errors.js";
|
|
15
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
16
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
17
|
+
import { LockService } from "../infra/lock/lock.service.js";
|
|
18
|
+
import { KERNEL_LOGGER, KEYRING, REDIS } from "../infra/tokens.js";
|
|
5
19
|
import { oauthHttpOptions } from "./oauth/discovery.js";
|
|
6
20
|
import { OAuthReconnectRequired, OAuthTokens, } from "./oauth/tokens.js";
|
|
7
21
|
import { injectionSecrets } from "./redact.js";
|
|
@@ -69,30 +83,28 @@ export async function clearAccountCredentials(db, orgId, accountId) {
|
|
|
69
83
|
}
|
|
70
84
|
/**
|
|
71
85
|
* 连接器凭据:信封加密存入 capybara.secrets,解密后只在构造注入头时出现。OAuth 连接器的 token 也存在这里
|
|
72
|
-
* (个人 / 组织键,同静态凭据),OAuth 客户端存组织级的 `:client` 键;刷新见 oauth/tokens.ts
|
|
86
|
+
* (个人 / 组织键,同静态凭据),OAuth 客户端存组织级的 `:client` 键;刷新见 oauth/tokens.ts(锁在 Redis,
|
|
87
|
+
* 往返限时与本机 http 放行取自配置)。Writes and deletes run on the context's handle (`KernelDb`): inside a
|
|
88
|
+
* caller's `@Transactional` they join its transaction (they live and die with the connector row and audit).
|
|
73
89
|
*/
|
|
74
|
-
|
|
90
|
+
let Credentials = class Credentials {
|
|
75
91
|
db;
|
|
76
92
|
keyring;
|
|
77
93
|
log;
|
|
78
94
|
tokens;
|
|
79
|
-
constructor(db, keyring, log,
|
|
95
|
+
constructor(db, keyring, log, config, locks, redis) {
|
|
80
96
|
this.db = db;
|
|
81
97
|
this.keyring = keyring;
|
|
82
98
|
this.log = log;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
this.tokens = new OAuthTokens(store, oauth.redis, () => oauthHttpOptions(oauth.config()), log);
|
|
91
|
-
}
|
|
99
|
+
const store = {
|
|
100
|
+
readClient: (orgId, connectorId) => this.oauthClient(orgId, connectorId),
|
|
101
|
+
readTokens: (orgId, connectorId, owner) => this.oauthTokens(orgId, connectorId, owner),
|
|
102
|
+
writeTokens: (orgId, connectorId, owner, rec) => this.setOAuthTokens(orgId, connectorId, owner, rec),
|
|
103
|
+
deleteTokens: (orgId, connectorId, owner) => this.clear(orgId, connectorId, owner),
|
|
104
|
+
};
|
|
105
|
+
this.tokens = new OAuthTokens(store, locks, redis, () => oauthHttpOptions(config.get()), log);
|
|
92
106
|
}
|
|
93
107
|
oauth() {
|
|
94
|
-
if (!this.tokens)
|
|
95
|
-
throw new Error("credentials: OAuth is not configured");
|
|
96
108
|
return this.tokens;
|
|
97
109
|
}
|
|
98
110
|
/** 读一条 JSON 凭据;不存在 / 解不开 → null(日志不带内容)。 */
|
|
@@ -119,9 +131,9 @@ export class Credentials {
|
|
|
119
131
|
this.registerSecrets([v.clientSecret, v.registration?.accessToken]);
|
|
120
132
|
return v;
|
|
121
133
|
}
|
|
122
|
-
async setOAuthClient(orgId, connectorId, client
|
|
134
|
+
async setOAuthClient(orgId, connectorId, client) {
|
|
123
135
|
this.registerSecrets([client.clientSecret, client.registration?.accessToken]);
|
|
124
|
-
await this.secrets(
|
|
136
|
+
await this.secrets().set(orgId, clientKey(connectorId), JSON.stringify(client));
|
|
125
137
|
}
|
|
126
138
|
async oauthTokens(orgId, connectorId, owner) {
|
|
127
139
|
const v = (await this.readJson(orgId, keyOf(connectorId, owner), connectorId));
|
|
@@ -130,12 +142,13 @@ export class Credentials {
|
|
|
130
142
|
this.registerSecrets([v.access_token, v.refresh_token]);
|
|
131
143
|
return v;
|
|
132
144
|
}
|
|
133
|
-
async setOAuthTokens(orgId, connectorId, owner, rec
|
|
145
|
+
async setOAuthTokens(orgId, connectorId, owner, rec) {
|
|
134
146
|
this.registerSecrets([rec.access_token, rec.refresh_token]);
|
|
135
|
-
await this.secrets(
|
|
147
|
+
await this.secrets().set(orgId, keyOf(connectorId, owner), JSON.stringify(rec));
|
|
136
148
|
}
|
|
137
|
-
secrets(
|
|
138
|
-
|
|
149
|
+
/** The secrets store on the context's handle (the caller's transaction, else the pool). */
|
|
150
|
+
secrets() {
|
|
151
|
+
return createSecrets(this.db.db, this.keyring, NAMESPACE);
|
|
139
152
|
}
|
|
140
153
|
/**
|
|
141
154
|
* 按认证方式校验凭据形状与归属;错误(`validation_failed`)只含路径与英文说明,不回显值。
|
|
@@ -189,19 +202,17 @@ export class Credentials {
|
|
|
189
202
|
throw fail(r.error.issues.map((i) => ({ path: i.path.join("."), message: i.message })));
|
|
190
203
|
}
|
|
191
204
|
}
|
|
192
|
-
async setStatic(orgId, connectorId, auth, owner, value
|
|
193
|
-
/** 传入时在调用方事务内写入(与连接器行 / 审计同生共死)。 */
|
|
194
|
-
trx) {
|
|
205
|
+
async setStatic(orgId, connectorId, auth, owner, value) {
|
|
195
206
|
this.validate(auth, owner, value);
|
|
196
|
-
await this.secrets(
|
|
207
|
+
await this.secrets().set(orgId, keyOf(connectorId, owner), JSON.stringify(value));
|
|
197
208
|
}
|
|
198
|
-
async clear(orgId, connectorId, owner
|
|
199
|
-
await this.secrets(
|
|
209
|
+
async clear(orgId, connectorId, owner) {
|
|
210
|
+
await this.secrets().delete(orgId, keyOf(connectorId, owner));
|
|
200
211
|
}
|
|
201
212
|
/** 删除某连接器的全部凭据(组织凭据与所有成员的个人凭据),连接器删除时调用。 */
|
|
202
|
-
async clearConnector(orgId, connectorId
|
|
213
|
+
async clearConnector(orgId, connectorId) {
|
|
203
214
|
const prefix = orgKey(connectorId).slice(0, -"org".length);
|
|
204
|
-
await
|
|
215
|
+
await this.db
|
|
205
216
|
.deleteFrom("secrets")
|
|
206
217
|
.where("namespace", "=", NAMESPACE)
|
|
207
218
|
.where("org_id", "=", orgId)
|
|
@@ -209,8 +220,8 @@ export class Credentials {
|
|
|
209
220
|
.execute();
|
|
210
221
|
}
|
|
211
222
|
/** 删除某账号在该组织所有连接器上的个人凭据,见 {@link clearAccountCredentials}。 */
|
|
212
|
-
async clearAccount(orgId, accountId
|
|
213
|
-
return clearAccountCredentials(
|
|
223
|
+
async clearAccount(orgId, accountId) {
|
|
224
|
+
return clearAccountCredentials(this.db.db, orgId, accountId);
|
|
214
225
|
}
|
|
215
226
|
/**
|
|
216
227
|
* 持有该连接器个人凭据的**现任成员**(不解密),按凭据最近写入时间倒序(保存静态凭据、OAuth 连接与刷新 token
|
|
@@ -225,11 +236,11 @@ export class Credentials {
|
|
|
225
236
|
WHERE s.namespace = ${NAMESPACE} AND s.org_id = ${orgId}
|
|
226
237
|
AND left(s.key, ${prefix.length}) = ${prefix}
|
|
227
238
|
ORDER BY s.updated_at DESC, m.account_id
|
|
228
|
-
LIMIT ${limit}`.execute(this.db);
|
|
239
|
+
LIMIT ${limit}`.execute(this.db.db);
|
|
229
240
|
return rows.rows.map((r) => r.account_id);
|
|
230
241
|
}
|
|
231
242
|
/** 只看与 auth.ownership 对应的那一条凭据是否存在(不解密);none 恒为 connected。 */
|
|
232
|
-
async status(orgId, connectorId, auth, accountId
|
|
243
|
+
async status(orgId, connectorId, auth, accountId) {
|
|
233
244
|
if (auth.type === "none")
|
|
234
245
|
return "connected";
|
|
235
246
|
// 客户端凭据流:有客户端即可按需取 token
|
|
@@ -238,7 +249,7 @@ export class Credentials {
|
|
|
238
249
|
: auth.ownership === "personal"
|
|
239
250
|
? userKey(connectorId, accountId)
|
|
240
251
|
: orgKey(connectorId);
|
|
241
|
-
const row = await
|
|
252
|
+
const row = await this.db
|
|
242
253
|
.selectFrom("secrets")
|
|
243
254
|
.select("key")
|
|
244
255
|
.where("namespace", "=", NAMESPACE)
|
|
@@ -348,4 +359,14 @@ export class Credentials {
|
|
|
348
359
|
}
|
|
349
360
|
}
|
|
350
361
|
}
|
|
351
|
-
}
|
|
362
|
+
};
|
|
363
|
+
Credentials = __decorate([
|
|
364
|
+
Injectable(),
|
|
365
|
+
__param(0, Inject(KernelDb)),
|
|
366
|
+
__param(1, Inject(KEYRING)),
|
|
367
|
+
__param(2, Inject(KERNEL_LOGGER)),
|
|
368
|
+
__param(3, Inject(KernelConfigService)),
|
|
369
|
+
__param(4, Inject(LockService)),
|
|
370
|
+
__param(5, Inject(REDIS))
|
|
371
|
+
], Credentials);
|
|
372
|
+
export { Credentials };
|
package/dist/tools/drift.d.ts
CHANGED
|
@@ -1,30 +1,11 @@
|
|
|
1
1
|
import { type AuthInjection, type Logger, type ToolSpec } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
* 工具定义漂移检测(spec 7.3:新增 / 变化的工具在组织管理员复核前不可用,防 rug-pull / 工具投毒)。
|
|
10
|
-
*
|
|
11
|
-
* 与上次快照比对:新增 → 插入 `pending_review`;定义(spec_hash 或来源)变化 → `pending_review`,新定义存
|
|
12
|
-
* `pending_spec`,旧定义留在 `spec` 供对比,复核通过才采用;消失 → `disabled` 并记 `missing_since`(行保留,
|
|
13
|
-
* 又出现时按新增处理)。定义不合规(key 不合法等)的工具只能停用:新增时直接停用;复核过的工具变成不合规
|
|
14
|
-
* 定义时新定义同样只进 `pending_spec`(停用,approve 被拒),`spec` 始终是上次复核通过的定义。
|
|
15
|
-
* 从未复核过的工具(`reviewed_at` 为空)没有可比的旧定义:定义再变时直接替换 `spec`(仍待复核),不产生 pending。
|
|
16
|
-
* 连接器从未拍过快照(`tools_synced_at` 为空且没有工具行,即 OAuth 授权码连接器安装时不 listTools,A16)时,
|
|
17
|
-
* 首个快照按安装处理(直接启用)。
|
|
18
|
-
*
|
|
19
|
-
* 触发:维护队列的周期扫描(`tools.driftIntervalHours`)、连接器在会话中报告工具清单变了(MCP
|
|
20
|
-
* `notifications/tools/list_changed`)、管理员手动刷新(`ConnectorsService.refresh`,走同一套比对)。
|
|
21
|
-
* 授权(`tool_grants` / `conversation_tool_grants`)按 spec_hash 比对(D8),复核通过采用新指纹后旧授权自然失效。
|
|
22
|
-
*/
|
|
23
|
-
/** 周期扫描:任务名与 job scheduler id(不含 `:`)。 */
|
|
24
|
-
export declare const DRIFT_SCAN_JOB = "drift-scan";
|
|
25
|
-
export declare const DRIFT_SCHEDULER_ID = "drift-scan-interval";
|
|
26
|
-
/** 单个连接器的漂移检查任务名。 */
|
|
27
|
-
export declare const DRIFT_CONNECTOR_JOB = "drift-connector";
|
|
2
|
+
import type { Queue } from "bullmq";
|
|
3
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
4
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
5
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
6
|
+
import { Credentials } from "./credentials.js";
|
|
7
|
+
import { ToolRegistry } from "./registry.js";
|
|
8
|
+
export { DRIFT_CONNECTOR_JOB, DRIFT_SCAN_JOB, DRIFT_SCHEDULER_ID } from "./job-ids.js";
|
|
28
9
|
/**
|
|
29
10
|
* list_changed 触发的检查:jobId 按连接器与分钟桶去重(同一分钟内多次通知只检查一次;connectorId 为 UUID,不含 `:`)。
|
|
30
11
|
*/
|
|
@@ -46,7 +27,6 @@ export type DriftCheckResult = {
|
|
|
46
27
|
status: "skipped";
|
|
47
28
|
reason: "not_found" | "inactive" | "no_connector" | "no_credential" | "connect_failed";
|
|
48
29
|
};
|
|
49
|
-
type Trx = Transaction<KernelDatabase>;
|
|
50
30
|
type ToolSource = "connector" | "resources";
|
|
51
31
|
/** 快照中被停用 / 跳过的工具及英文原因。 */
|
|
52
32
|
export interface ToolIssue {
|
|
@@ -87,19 +67,26 @@ export declare function snapshot(slug: string, specs: unknown, resources: boolea
|
|
|
87
67
|
export declare function sanitizeToolTitle(raw: unknown): string | undefined;
|
|
88
68
|
/** 工具当前不能启用的原因(视图、启用与复核校验共用)。 */
|
|
89
69
|
export declare function toolIssue(slug: string, spec: ToolSpec): string | null;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
log: Logger;
|
|
96
|
-
/** 维护队列(登记周期扫描与检查任务的处理函数;不给时只能同步调用 `check`)。 */
|
|
97
|
-
maintenance?: Pick<Maintenance, "add" | "handle" | "schedule">;
|
|
70
|
+
/** The data of a `drift-connector` job. */
|
|
71
|
+
export interface DriftConnectorJobData {
|
|
72
|
+
orgId: string;
|
|
73
|
+
connectorId: string;
|
|
74
|
+
trigger: DriftTrigger;
|
|
98
75
|
}
|
|
99
76
|
export declare class ToolDrift {
|
|
100
|
-
private readonly
|
|
101
|
-
|
|
102
|
-
private
|
|
77
|
+
private readonly db;
|
|
78
|
+
private readonly registry;
|
|
79
|
+
private readonly credentials;
|
|
80
|
+
private readonly config;
|
|
81
|
+
private readonly log;
|
|
82
|
+
/** The maintenance queue's producer (`drift-connector` jobs). */
|
|
83
|
+
private readonly queue;
|
|
84
|
+
readonly txHost: TransactionHost;
|
|
85
|
+
constructor(db: KernelDb, registry: Pick<ToolRegistry, "findConnector">, credentials: Pick<Credentials, "injection" | "onUnauthorized" | "personalHolders">, config: Pick<KernelConfigService, "get">, log: Logger,
|
|
86
|
+
/** The maintenance queue's producer (`drift-connector` jobs). */
|
|
87
|
+
queue: Pick<Queue, "add">, txHost: TransactionHost);
|
|
88
|
+
/** The scan period (`tools.driftIntervalHours`). */
|
|
89
|
+
intervalMs(): number;
|
|
103
90
|
/**
|
|
104
91
|
* 打开一次会话拉工具清单,无论成败都关闭会话;会话带 `listResources` 即视为支持 resources。
|
|
105
92
|
* 清单里回显的凭据按本次注入的值打码(见 redact.ts)。凭据缺失原样抛 `credential.missing`;
|
|
@@ -112,10 +99,10 @@ export declare class ToolDrift {
|
|
|
112
99
|
resources: boolean;
|
|
113
100
|
}>;
|
|
114
101
|
/**
|
|
115
|
-
*
|
|
102
|
+
* 把新快照与当前工具行比对并写入(调用方已在事务内锁住连接器行:`mandatory`);返回按名排序的变化。
|
|
116
103
|
* 规则见文件头。待复核的新定义也写进 `tool_specs`(内容寻址,只增不改)。
|
|
117
104
|
*/
|
|
118
|
-
apply(
|
|
105
|
+
apply(app: {
|
|
119
106
|
id: string;
|
|
120
107
|
tools_synced_at: Date | null;
|
|
121
108
|
}, rows: SnapshotRow[]): Promise<DriftChanges>;
|
|
@@ -128,6 +115,8 @@ export declare class ToolDrift {
|
|
|
128
115
|
* 连不上 / 都失败 → 跳过(不改快照,下个周期或下次通知再查)。
|
|
129
116
|
*/
|
|
130
117
|
check(orgId: string, connectorId: string, trigger: DriftTrigger): Promise<DriftCheckResult>;
|
|
118
|
+
/** The locked compare-and-write of {@link check}, audited when something changed. */
|
|
119
|
+
private applyChecked;
|
|
131
120
|
/**
|
|
132
121
|
* 连接器在会话中报告工具清单变了:投递一次该连接器的检查(jobId 按分钟桶去重)。投递失败只记日志。
|
|
133
122
|
*/
|
|
@@ -138,4 +127,3 @@ export declare class ToolDrift {
|
|
|
138
127
|
*/
|
|
139
128
|
scan(): Promise<number>;
|
|
140
129
|
}
|
|
141
|
-
export {};
|