@capybara-hq/kernel 0.1.0-rc.0 → 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/bootstrap.json +10 -6
- 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 -193
- 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 +16 -1
- package/dist/config/schema.js +54 -7
- 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 -62
- 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/queue.js +3 -2
- 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 +2 -0
- package/dist/errors.js +2 -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 -120
- 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 +96 -42
- package/dist/extensions/bootstrap.js +303 -155
- 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 +52 -47
- 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 +19 -12
- package/dist/index.js +13 -8
- 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 -241
- 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-config.d.ts +9 -0
- package/dist/log-config.js +27 -0
- package/dist/log-context.d.ts +34 -0
- package/dist/log-context.js +44 -0
- package/dist/log-loki.d.ts +34 -0
- package/dist/log-loki.js +145 -0
- package/dist/log.d.ts +41 -10
- package/dist/log.js +91 -17
- 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/net/public-address.js +3 -2
- 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 -136
- 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 -225
- 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 -99
- 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 +7 -4
- package/dist/tools/builtins/sandbox/common.js +5 -3
- 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 +11 -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
package/dist/tools/breaker.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Redis } from "ioredis";
|
|
2
|
-
import
|
|
2
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
3
3
|
/** 熔断器键:每个组织 × 连接器一个 hash(`f` = 连续失败次数,`o` = 打开到期的毫秒时间戳)。 */
|
|
4
4
|
export declare const breakerKey: (orgId: string, connectorId: string) => string;
|
|
5
5
|
export type BreakerState = {
|
|
@@ -19,7 +19,7 @@ export declare function breakerOpenMessage(connectorName: string, failures: numb
|
|
|
19
19
|
export declare class Breaker {
|
|
20
20
|
private readonly redis;
|
|
21
21
|
private readonly config;
|
|
22
|
-
constructor(redis: Redis, config:
|
|
22
|
+
constructor(redis: Redis, config: Pick<KernelConfigService, "get">);
|
|
23
23
|
check(orgId: string, connectorId: string): Promise<BreakerState>;
|
|
24
24
|
/** 记一次失败,返回当前连续失败次数。 */
|
|
25
25
|
failure(orgId: string, connectorId: string): Promise<number>;
|
package/dist/tools/breaker.js
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
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";
|
|
11
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
12
|
+
import { REDIS } from "../infra/tokens.js";
|
|
1
13
|
/** 熔断器键:每个组织 × 连接器一个 hash(`f` = 连续失败次数,`o` = 打开到期的毫秒时间戳)。 */
|
|
2
14
|
export const breakerKey = (orgId, connectorId) => `capk:breaker:${orgId}:${connectorId}`;
|
|
3
15
|
/**
|
|
@@ -47,7 +59,7 @@ export function breakerOpenMessage(connectorName, failures, retryAfterSeconds) {
|
|
|
47
59
|
* `tools.breakerOpenSeconds` 秒,期间直接拒绝;到期后半开放行,成功清零、失败立即重新打开。
|
|
48
60
|
* 状态只在 Redis(多副本共享),计数与打开状态都带 TTL。
|
|
49
61
|
*/
|
|
50
|
-
|
|
62
|
+
let Breaker = class Breaker {
|
|
51
63
|
redis;
|
|
52
64
|
config;
|
|
53
65
|
constructor(redis, config) {
|
|
@@ -62,11 +74,17 @@ export class Breaker {
|
|
|
62
74
|
}
|
|
63
75
|
/** 记一次失败,返回当前连续失败次数。 */
|
|
64
76
|
async failure(orgId, connectorId) {
|
|
65
|
-
const { breakerFailures, breakerOpenSeconds } = this.config().tools;
|
|
77
|
+
const { breakerFailures, breakerOpenSeconds } = this.config.get().tools;
|
|
66
78
|
return Number(await this.redis.eval(FAILURE, 1, breakerKey(orgId, connectorId), breakerFailures, breakerOpenSeconds * 1000, COUNT_TTL_MS));
|
|
67
79
|
}
|
|
68
80
|
/** 调用成功:清零。 */
|
|
69
81
|
async success(orgId, connectorId) {
|
|
70
82
|
await this.redis.del(breakerKey(orgId, connectorId));
|
|
71
83
|
}
|
|
72
|
-
}
|
|
84
|
+
};
|
|
85
|
+
Breaker = __decorate([
|
|
86
|
+
Injectable(),
|
|
87
|
+
__param(0, Inject(REDIS)),
|
|
88
|
+
__param(1, Inject(KernelConfigService))
|
|
89
|
+
], Breaker);
|
|
90
|
+
export { Breaker };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type FormAnswer, type InputForm } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import type {
|
|
2
|
+
import type { KernelConfigService } from "../../infra/config/kernel-config.service.js";
|
|
3
3
|
import type { BuiltinTool } from "../registry.js";
|
|
4
4
|
interface Question {
|
|
5
5
|
question: string;
|
|
@@ -23,6 +23,6 @@ export declare function answerText(questions: Question[], answer: FormAnswer): s
|
|
|
23
23
|
* 默认 allow(提问本身就是让用户参与,不再审批)。
|
|
24
24
|
*/
|
|
25
25
|
export declare function askUserTool(deps: {
|
|
26
|
-
config:
|
|
26
|
+
config: Pick<KernelConfigService, "get">;
|
|
27
27
|
}): BuiltinTool;
|
|
28
28
|
export {};
|
|
@@ -132,7 +132,7 @@ export function askUserTool(deps) {
|
|
|
132
132
|
throw new ToolError(`Option labels must be unique within a question; "${q.question}" has duplicates. Provide distinct labels.`);
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
|
-
const state = { hours: deps.config().tools.approvalTimeoutHours };
|
|
135
|
+
const state = { hours: deps.config.get().tools.approvalTimeoutHours };
|
|
136
136
|
return { kind: "input_required", form: questionsForm(questions), state };
|
|
137
137
|
},
|
|
138
138
|
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AttachmentsService } from "../../conversations/attachments.service.js";
|
|
2
|
+
import { EventLog } from "../../conversations/event-log.js";
|
|
3
|
+
import { KernelConfigService } from "../../infra/config/kernel-config.service.js";
|
|
4
|
+
import { KernelDb } from "../../infra/database/kernel-db.js";
|
|
5
|
+
import { SandboxService } from "../../sandbox/sandbox.service.js";
|
|
6
|
+
import { SkillChangesService } from "../../skills/changes.service.js";
|
|
7
|
+
import { StorageService } from "../../storage/storage.service.js";
|
|
8
|
+
import { ToolOutputs } from "../outputs.js";
|
|
9
|
+
import type { BuiltinTool } from "../registry.js";
|
|
10
|
+
/**
|
|
11
|
+
* The kernel's builtin tools, built once from the injected services (their specs: names,
|
|
12
|
+
* descriptions and schemas, are the factories' own and unchanged). `tool_search` and `skill_load`
|
|
13
|
+
* are added to a run by the registry (`forAgent`: organization setting and threshold, a skills
|
|
14
|
+
* catalog snapshot), not by agent definitions; `skill_write` only when a definition names it.
|
|
15
|
+
*/
|
|
16
|
+
export declare class BuiltinTools {
|
|
17
|
+
private readonly tools;
|
|
18
|
+
constructor(db: KernelDb, config: KernelConfigService, outputs: ToolOutputs, storage: StorageService, skillChanges: SkillChangesService, attachments: AttachmentsService, eventLog: EventLog, sandbox: SandboxService);
|
|
19
|
+
/** The builtin tools, in a fixed order. */
|
|
20
|
+
list(): readonly BuiltinTool[];
|
|
21
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
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";
|
|
11
|
+
import { AttachmentsService } from "../../conversations/attachments.service.js";
|
|
12
|
+
import { EventLog } from "../../conversations/event-log.js";
|
|
13
|
+
import { KernelConfigService } from "../../infra/config/kernel-config.service.js";
|
|
14
|
+
import { KernelDb } from "../../infra/database/kernel-db.js";
|
|
15
|
+
import { SandboxService } from "../../sandbox/sandbox.service.js";
|
|
16
|
+
import { SkillChangesService } from "../../skills/changes.service.js";
|
|
17
|
+
import { StorageService } from "../../storage/storage.service.js";
|
|
18
|
+
import { ToolOutputs } from "../outputs.js";
|
|
19
|
+
import { agentTool } from "./agent.js";
|
|
20
|
+
import { askUserTool } from "./ask-user.js";
|
|
21
|
+
import { readToolOutputTool } from "./read-tool-output.js";
|
|
22
|
+
import { sandboxTools } from "./sandbox/index.js";
|
|
23
|
+
import { skillLoadTool } from "./skill-load.js";
|
|
24
|
+
import { skillWriteTool } from "./skill-write.js";
|
|
25
|
+
import { toolSearchTool } from "./tool-search.js";
|
|
26
|
+
/**
|
|
27
|
+
* The kernel's builtin tools, built once from the injected services (their specs: names,
|
|
28
|
+
* descriptions and schemas, are the factories' own and unchanged). `tool_search` and `skill_load`
|
|
29
|
+
* are added to a run by the registry (`forAgent`: organization setting and threshold, a skills
|
|
30
|
+
* catalog snapshot), not by agent definitions; `skill_write` only when a definition names it.
|
|
31
|
+
*/
|
|
32
|
+
let BuiltinTools = class BuiltinTools {
|
|
33
|
+
tools;
|
|
34
|
+
constructor(db, config, outputs, storage, skillChanges, attachments, eventLog, sandbox) {
|
|
35
|
+
const sandboxDeps = {
|
|
36
|
+
sandbox,
|
|
37
|
+
attachments,
|
|
38
|
+
storage,
|
|
39
|
+
eventLog,
|
|
40
|
+
config,
|
|
41
|
+
};
|
|
42
|
+
this.tools = [
|
|
43
|
+
askUserTool({ config }),
|
|
44
|
+
readToolOutputTool({ outputs, config }),
|
|
45
|
+
toolSearchTool(),
|
|
46
|
+
// dispatches sub-agents; the tool pipeline handles its calls (sub-agents spec §4, §7.1)
|
|
47
|
+
agentTool,
|
|
48
|
+
...sandboxTools(sandboxDeps),
|
|
49
|
+
// 技能加载:对话日志里有技能目录快照时由注册表自动加入(Ruling M17)
|
|
50
|
+
skillLoadTool({
|
|
51
|
+
storage,
|
|
52
|
+
config,
|
|
53
|
+
sandbox,
|
|
54
|
+
attachments,
|
|
55
|
+
eventLog,
|
|
56
|
+
get db() {
|
|
57
|
+
return db.db;
|
|
58
|
+
},
|
|
59
|
+
}),
|
|
60
|
+
// 自写技能:agent 定义显式引用才可用
|
|
61
|
+
skillWriteTool({ changes: skillChanges }),
|
|
62
|
+
];
|
|
63
|
+
}
|
|
64
|
+
/** The builtin tools, in a fixed order. */
|
|
65
|
+
list() {
|
|
66
|
+
return this.tools;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
BuiltinTools = __decorate([
|
|
70
|
+
Injectable(),
|
|
71
|
+
__param(0, Inject(KernelDb)),
|
|
72
|
+
__param(1, Inject(KernelConfigService)),
|
|
73
|
+
__param(2, Inject(ToolOutputs)),
|
|
74
|
+
__param(3, Inject(StorageService)),
|
|
75
|
+
__param(4, Inject(SkillChangesService)),
|
|
76
|
+
__param(5, Inject(AttachmentsService)),
|
|
77
|
+
__param(6, Inject(EventLog)),
|
|
78
|
+
__param(7, Inject(SandboxService))
|
|
79
|
+
], BuiltinTools);
|
|
80
|
+
export { BuiltinTools };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { KernelConfigService } from "../../infra/config/kernel-config.service.js";
|
|
2
2
|
import { type ToolOutputs } from "../outputs.js";
|
|
3
3
|
import type { BuiltinTool } from "../registry.js";
|
|
4
4
|
/**
|
|
@@ -14,5 +14,5 @@ export declare function readPage(id: string, content: string, opts: {
|
|
|
14
14
|
/** 内置工具 `read_tool_output`:读本会话未过期的输出存档(只读、默认 allow)。 */
|
|
15
15
|
export declare function readToolOutputTool(deps: {
|
|
16
16
|
outputs: Pick<ToolOutputs, "load">;
|
|
17
|
-
config:
|
|
17
|
+
config: Pick<KernelConfigService, "get">;
|
|
18
18
|
}): BuiltinTool;
|
|
@@ -95,7 +95,7 @@ export function readToolOutputTool(deps) {
|
|
|
95
95
|
const content = await deps.outputs.load({ orgId: ctx.orgId, conversationId: ctx.conversationId }, id);
|
|
96
96
|
if (content === null)
|
|
97
97
|
throw new ToolError(outputNotFoundText(id));
|
|
98
|
-
const cfg = deps.config().tools;
|
|
98
|
+
const cfg = deps.config.get().tools;
|
|
99
99
|
const budget = Math.max(1, Math.min(cfg.maxResultReadChars, cfg.outputSpillChars - FOOTER_RESERVE));
|
|
100
100
|
return {
|
|
101
101
|
content: [
|
|
@@ -89,13 +89,13 @@ export function sandboxBashTool(deps) {
|
|
|
89
89
|
unavailable: unavailableWhenNoSandbox(deps),
|
|
90
90
|
// 命令自己的超时先到(提供方停掉命令、返回 timedOut),管线的时限再留出等锁与创建 / 恢复的余量
|
|
91
91
|
timeoutMs: (input) => {
|
|
92
|
-
const cfg = deps.config();
|
|
92
|
+
const cfg = deps.config.get();
|
|
93
93
|
const max = cfg.sandbox.limits.maxCommandSeconds;
|
|
94
94
|
return Math.min(secondsFor(input, max), max) * 1000 + sandboxBaseTimeoutMs(cfg);
|
|
95
95
|
},
|
|
96
96
|
async run(input, ctx) {
|
|
97
97
|
const { command, description } = input;
|
|
98
|
-
const max = deps.config().sandbox.limits.maxCommandSeconds;
|
|
98
|
+
const max = deps.config.get().sandbox.limits.maxCommandSeconds;
|
|
99
99
|
const req = input.timeoutSeconds;
|
|
100
100
|
if (req !== undefined && req > max) {
|
|
101
101
|
throw new ToolError(`timeoutSeconds ${req} is over the limit of ${max} seconds; pass a value of at most ${max}.`);
|
|
@@ -2,6 +2,7 @@ import { type SandboxHandle, type SandboxProvider } from "@capybara-hq/plugin-sd
|
|
|
2
2
|
import type { KernelConfig } from "../../../config/schema.js";
|
|
3
3
|
import type { AttachmentsService } from "../../../conversations/attachments.service.js";
|
|
4
4
|
import type { EventLog } from "../../../conversations/event-log.js";
|
|
5
|
+
import type { KernelConfigService } from "../../../infra/config/kernel-config.service.js";
|
|
5
6
|
import { type SandboxService } from "../../../sandbox/sandbox.service.js";
|
|
6
7
|
import type { StorageService } from "../../../storage/storage.service.js";
|
|
7
8
|
import type { BuiltinCallContext } from "../../registry.js";
|
|
@@ -13,7 +14,7 @@ export interface SandboxToolDeps {
|
|
|
13
14
|
storage: Pick<StorageService, "kernel" | "available">;
|
|
14
15
|
/** `publishChanged`: `sandbox_deliver` announces `changed: files` (UI refresh B). */
|
|
15
16
|
eventLog: Pick<EventLog, "append"> & Partial<Pick<EventLog, "publishChanged">>;
|
|
16
|
-
config:
|
|
17
|
+
config: Pick<KernelConfigService, "get">;
|
|
17
18
|
}
|
|
18
19
|
/** 回调拿到的沙箱:句柄、提供方与「调用 signal + 锁丢失」合并后的 signal(每个提供方调用都传它)。 */
|
|
19
20
|
export interface SandboxSession {
|
|
@@ -37,9 +38,11 @@ export declare const SYNC_MARKER = "/workspace/attachments/.capybara-sync.json";
|
|
|
37
38
|
/** 附件文件名的上限(UTF-8 字节,常见文件系统单个文件名上限 255 字节,留出 `-N` 后缀的余量)。 */
|
|
38
39
|
export declare const ATTACHMENT_NAME_MAX_BYTES = 200;
|
|
39
40
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
41
|
+
* Extra margin (ms) on top of a sandbox tool's time limit: creating / resuming the sandbox, and the
|
|
42
|
+
* fallback for stopping a command after its timeout (when the E2B kill script does not finish, the
|
|
43
|
+
* sandbox is restarted: up to about 20 s to kill, plus pause and a cold connect of up to 120 s, about
|
|
44
|
+
* 160 s). Pulling the image on first creation is not included (deployments pre-pull
|
|
45
|
+
* `sandbox.image`; see the sandbox-docker plugin's README in capybara-hq/plugins).
|
|
43
46
|
*/
|
|
44
47
|
export declare const SANDBOX_SETUP_MARGIN_MS = 180000;
|
|
45
48
|
/**
|
|
@@ -22,9 +22,11 @@ const MARKER_MAX_BYTES = 1024 * 1024;
|
|
|
22
22
|
/** 附件文件名的上限(UTF-8 字节,常见文件系统单个文件名上限 255 字节,留出 `-N` 后缀的余量)。 */
|
|
23
23
|
export const ATTACHMENT_NAME_MAX_BYTES = 200;
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
25
|
+
* Extra margin (ms) on top of a sandbox tool's time limit: creating / resuming the sandbox, and the
|
|
26
|
+
* fallback for stopping a command after its timeout (when the E2B kill script does not finish, the
|
|
27
|
+
* sandbox is restarted: up to about 20 s to kill, plus pause and a cold connect of up to 120 s, about
|
|
28
|
+
* 160 s). Pulling the image on first creation is not included (deployments pre-pull
|
|
29
|
+
* `sandbox.image`; see the sandbox-docker plugin's README in capybara-hq/plugins).
|
|
28
30
|
*/
|
|
29
31
|
export const SANDBOX_SETUP_MARGIN_MS = 180_000;
|
|
30
32
|
/**
|
|
@@ -97,7 +97,7 @@ export function sandboxDeliverTool(deps) {
|
|
|
97
97
|
defaultPolicy: "allow",
|
|
98
98
|
// 没有沙箱或没有对象存储都交付不了(先报沙箱的原因)
|
|
99
99
|
unavailable: () => unavailableWhenNoSandbox(deps)() ?? (deps.storage.available ? null : NO_STORAGE_REASON),
|
|
100
|
-
timeoutMs: () => 2 * sandboxBaseTimeoutMs(deps.config()),
|
|
100
|
+
timeoutMs: () => 2 * sandboxBaseTimeoutMs(deps.config.get()),
|
|
101
101
|
async run(input, ctx) {
|
|
102
102
|
// 存储在调用前就核对:不为一个交付不了的文件去 stat / 读沙箱
|
|
103
103
|
if (!deps.storage.available)
|
|
@@ -109,7 +109,7 @@ export function sandboxDeliverTool(deps) {
|
|
|
109
109
|
throw new ToolError(BAD_NAME);
|
|
110
110
|
}
|
|
111
111
|
const name = given ?? defaultName(path);
|
|
112
|
-
const max = deps.config().sandbox.deliverMaxBytes;
|
|
112
|
+
const max = deps.config.get().sandbox.deliverMaxBytes;
|
|
113
113
|
const { value: data, notices } = await inSandbox(deps, ctx, async ({ h, p, signal }) => {
|
|
114
114
|
const st = await p.stat(h, path, signal);
|
|
115
115
|
if (st === null)
|
|
@@ -48,7 +48,7 @@ export function sandboxEditTool(deps) {
|
|
|
48
48
|
spec: SPEC,
|
|
49
49
|
defaultPolicy: "allow",
|
|
50
50
|
unavailable: unavailableWhenNoSandbox(deps),
|
|
51
|
-
timeoutMs: () => sandboxBaseTimeoutMs(deps.config()),
|
|
51
|
+
timeoutMs: () => sandboxBaseTimeoutMs(deps.config.get()),
|
|
52
52
|
async run(input, ctx) {
|
|
53
53
|
const { oldText, newText, replaceAll = false } = input;
|
|
54
54
|
const path = checkWritable(input.path);
|
|
@@ -42,7 +42,7 @@ export function sandboxGlobTool(deps) {
|
|
|
42
42
|
spec: SPEC,
|
|
43
43
|
defaultPolicy: "allow",
|
|
44
44
|
unavailable: unavailableWhenNoSandbox(deps),
|
|
45
|
-
timeoutMs: () => sandboxBaseTimeoutMs(deps.config()),
|
|
45
|
+
timeoutMs: () => sandboxBaseTimeoutMs(deps.config.get()),
|
|
46
46
|
async run(input, ctx) {
|
|
47
47
|
const startedAt = Date.now();
|
|
48
48
|
const { pattern } = input;
|
|
@@ -65,7 +65,7 @@ export function sandboxGlobTool(deps) {
|
|
|
65
65
|
const r = await p.exec(h, {
|
|
66
66
|
command: "find . -type f -print0",
|
|
67
67
|
cwd: dir,
|
|
68
|
-
timeoutMs: searchTimeoutMs(deps.config(), startedAt, Date.now(), ctx.runDeadline),
|
|
68
|
+
timeoutMs: searchTimeoutMs(deps.config.get(), startedAt, Date.now(), ctx.runDeadline),
|
|
69
69
|
maxOutputBytes: MAX_FIND_BYTES,
|
|
70
70
|
signal,
|
|
71
71
|
});
|
|
@@ -70,7 +70,7 @@ export function sandboxGrepTool(deps) {
|
|
|
70
70
|
spec: SPEC,
|
|
71
71
|
defaultPolicy: "allow",
|
|
72
72
|
unavailable: unavailableWhenNoSandbox(deps),
|
|
73
|
-
timeoutMs: () => sandboxBaseTimeoutMs(deps.config()),
|
|
73
|
+
timeoutMs: () => sandboxBaseTimeoutMs(deps.config.get()),
|
|
74
74
|
async run(input, ctx) {
|
|
75
75
|
const startedAt = Date.now();
|
|
76
76
|
const { pattern, glob, ignoreCase = false } = input;
|
|
@@ -96,7 +96,7 @@ export function sandboxGrepTool(deps) {
|
|
|
96
96
|
const r = await p.exec(h, {
|
|
97
97
|
command,
|
|
98
98
|
cwd,
|
|
99
|
-
timeoutMs: searchTimeoutMs(deps.config(), startedAt, Date.now(), ctx.runDeadline),
|
|
99
|
+
timeoutMs: searchTimeoutMs(deps.config.get(), startedAt, Date.now(), ctx.runDeadline),
|
|
100
100
|
maxOutputBytes: MAX_GREP_BYTES,
|
|
101
101
|
signal,
|
|
102
102
|
});
|
|
@@ -76,7 +76,7 @@ export function sandboxReadTool(deps) {
|
|
|
76
76
|
spec: SPEC,
|
|
77
77
|
defaultPolicy: "allow",
|
|
78
78
|
unavailable: unavailableWhenNoSandbox(deps),
|
|
79
|
-
timeoutMs: () => sandboxBaseTimeoutMs(deps.config()),
|
|
79
|
+
timeoutMs: () => sandboxBaseTimeoutMs(deps.config.get()),
|
|
80
80
|
async run(input, ctx) {
|
|
81
81
|
const { offset = 1, limit = DEFAULT_LIMIT } = input;
|
|
82
82
|
const path = checkPath(input.path);
|
|
@@ -37,7 +37,7 @@ export function sandboxWriteTool(deps) {
|
|
|
37
37
|
spec: SPEC,
|
|
38
38
|
defaultPolicy: "allow",
|
|
39
39
|
unavailable: unavailableWhenNoSandbox(deps),
|
|
40
|
-
timeoutMs: () => sandboxBaseTimeoutMs(deps.config()),
|
|
40
|
+
timeoutMs: () => sandboxBaseTimeoutMs(deps.config.get()),
|
|
41
41
|
async run(input, ctx) {
|
|
42
42
|
const path = checkWritable(input.path);
|
|
43
43
|
const data = new TextEncoder().encode(input.content);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ObjectStore } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import type { EventLog } from "../../conversations/event-log.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { KernelSchemaDb, SkillManifest } from "../../db/kernel-schema.js";
|
|
4
4
|
import { type CatalogSkill } from "../../runtime/context/skills.js";
|
|
5
5
|
import type { BuiltinCallContext, BuiltinTool } from "../registry.js";
|
|
6
6
|
import { type SandboxToolDeps } from "./sandbox/common.js";
|
|
@@ -27,7 +27,7 @@ export declare const SKILLS_MARKER_DIR = "/skills/.capybara";
|
|
|
27
27
|
export declare const skillMarkerPath: (name: string) => string;
|
|
28
28
|
/** 依赖:沙箱工具的依赖,加上读技能行用的库与读快照用的日志。 */
|
|
29
29
|
export interface SkillLoadDeps extends SandboxToolDeps {
|
|
30
|
-
db:
|
|
30
|
+
db: KernelSchemaDb;
|
|
31
31
|
eventLog: Pick<EventLog, "append" | "latestOfType">;
|
|
32
32
|
}
|
|
33
33
|
/** A stored skill file is missing or does not match its manifest entry (size, sha256). */
|
|
@@ -45,7 +45,7 @@ export declare function readSkillFile(store: ObjectStore, key: string, file: Ski
|
|
|
45
45
|
* 没有 `skill_versions` 行,新技能连 `skills` 行都没有)。绝不按版本号解析——被拒绝的草稿与之后别人批准的同号版本
|
|
46
46
|
* 内容不同。都没有 → undefined(已移除)。
|
|
47
47
|
*/
|
|
48
|
-
export declare function findSkillVersion(db:
|
|
48
|
+
export declare function findSkillVersion(db: KernelSchemaDb, ctx: Pick<BuiltinCallContext, "orgId" | "conversationId">, entry: Pick<CatalogSkill, "id" | "source">): Promise<{
|
|
49
49
|
manifest: SkillManifest;
|
|
50
50
|
object_prefix: string;
|
|
51
51
|
} | undefined>;
|
|
@@ -352,7 +352,7 @@ export function skillLoadTool(deps) {
|
|
|
352
352
|
spec: SPEC,
|
|
353
353
|
defaultPolicy: "allow",
|
|
354
354
|
// 可能要创建 / 恢复沙箱并复制文件:与沙箱工具同一时限
|
|
355
|
-
timeoutMs: () => sandboxBaseTimeoutMs(deps.config()),
|
|
355
|
+
timeoutMs: () => sandboxBaseTimeoutMs(deps.config.get()),
|
|
356
356
|
async run(input, ctx) {
|
|
357
357
|
const asked = input.name;
|
|
358
358
|
const snap = await deps.eventLog.latestOfType(ctx.conversationId, "skills_catalog");
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 键排序、去掉 undefined 的 JSON(jsonb 不保留键顺序,指纹必须与顺序无关)。A leaf module (re-exported by
|
|
3
|
+
* registry.ts): the sandbox service compares handles with it without importing the tool registry,
|
|
4
|
+
* which imports the builtin tools that inject the sandbox service (an ESM import cycle).
|
|
5
|
+
*/
|
|
6
|
+
export declare function canonicalJson(v: unknown): string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 键排序、去掉 undefined 的 JSON(jsonb 不保留键顺序,指纹必须与顺序无关)。A leaf module (re-exported by
|
|
3
|
+
* registry.ts): the sandbox service compares handles with it without importing the tool registry,
|
|
4
|
+
* which imports the builtin tools that inject the sandbox service (an ESM import cycle).
|
|
5
|
+
*/
|
|
6
|
+
export function canonicalJson(v) {
|
|
7
|
+
if (Array.isArray(v))
|
|
8
|
+
return `[${v.map(canonicalJson).join(",")}]`;
|
|
9
|
+
if (v !== null && typeof v === "object") {
|
|
10
|
+
const entries = Object.entries(v)
|
|
11
|
+
.filter(([, x]) => x !== undefined)
|
|
12
|
+
.sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
|
|
13
|
+
return `{${entries.map(([k, x]) => `${JSON.stringify(k)}:${canonicalJson(x)}`).join(",")}}`;
|
|
14
|
+
}
|
|
15
|
+
return JSON.stringify(v);
|
|
16
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { type Principal } from "../identity/principal.js";
|
|
3
3
|
import { type OrgContext } from "../orgs/org.guard.js";
|
|
4
|
-
import
|
|
4
|
+
import { ConnectorContent, type ConnectorPromptView, type ConnectorResourceView, type ConnectorUnavailable } from "./connector-content.js";
|
|
5
5
|
declare const PromptBody: z.ZodObject<{
|
|
6
6
|
arguments: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
7
7
|
}, z.core.$strict>;
|
|
@@ -7,12 +7,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
8
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
9
|
};
|
|
10
|
-
import {
|
|
10
|
+
import { Controller, Get, HttpCode, Inject, Param, Post } from "@nestjs/common";
|
|
11
11
|
import { z } from "zod";
|
|
12
|
-
import { CONNECTOR_CONTENT } from "../http/tokens.js";
|
|
13
|
-
import { ZodPipe } from "../http/zod.pipe.js";
|
|
14
12
|
import { CurrentPrincipal, requireUser } from "../identity/principal.js";
|
|
13
|
+
import { createZodDto } from "../infra/validation/create-zod-dto.js";
|
|
14
|
+
import { ZBody, ZQuery } from "../infra/validation/zod-params.js";
|
|
15
15
|
import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
|
|
16
|
+
import { ConnectorContent, } from "./connector-content.js";
|
|
16
17
|
const PromptBody = z
|
|
17
18
|
.object({
|
|
18
19
|
arguments: z
|
|
@@ -22,6 +23,10 @@ const PromptBody = z
|
|
|
22
23
|
})
|
|
23
24
|
.strict();
|
|
24
25
|
const ResourcesQuery = z.object({ query: z.string().max(200).optional() });
|
|
26
|
+
class ConnectorPromptBody extends createZodDto(PromptBody, "ConnectorPromptBody") {
|
|
27
|
+
}
|
|
28
|
+
class ConnectorResourcesQuery extends createZodDto(ResourcesQuery, "ConnectorResourcesQuery") {
|
|
29
|
+
}
|
|
25
30
|
/**
|
|
26
31
|
* 连接器内容(`/api/v1/orgs/:orgId/connectors/...`):网页输入框的 `/` 斜杠命令(prompts)与 `@` 资源引用。
|
|
27
32
|
* 都是 `connectors.use`、仅限用户主体,以发起人自己的凭据访问连接器(个人连接器须已连接)。
|
|
@@ -59,7 +64,7 @@ __decorate([
|
|
|
59
64
|
OrgAction("connectors.use"),
|
|
60
65
|
__param(0, CurrentPrincipal()),
|
|
61
66
|
__param(1, CurrentOrg()),
|
|
62
|
-
__param(2,
|
|
67
|
+
__param(2, ZQuery(ConnectorResourcesQuery))
|
|
63
68
|
], ConnectorContentController.prototype, "resources", null);
|
|
64
69
|
__decorate([
|
|
65
70
|
Post(":connectorId/prompts/:name"),
|
|
@@ -69,10 +74,10 @@ __decorate([
|
|
|
69
74
|
__param(1, CurrentOrg()),
|
|
70
75
|
__param(2, Param("connectorId")),
|
|
71
76
|
__param(3, Param("name")),
|
|
72
|
-
__param(4,
|
|
77
|
+
__param(4, ZBody(ConnectorPromptBody))
|
|
73
78
|
], ConnectorContentController.prototype, "renderPrompt", null);
|
|
74
79
|
ConnectorContentController = __decorate([
|
|
75
80
|
Controller("api/v1/orgs/:orgId/connectors"),
|
|
76
|
-
__param(0, Inject(
|
|
81
|
+
__param(0, Inject(ConnectorContent))
|
|
77
82
|
], ConnectorContentController);
|
|
78
83
|
export { ConnectorContentController };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Logger, PromptInfo } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
2
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
3
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
4
|
+
import { Breaker } from "./breaker.js";
|
|
5
|
+
import { Credentials } from "./credentials.js";
|
|
6
|
+
import { ToolRegistry } from "./registry.js";
|
|
7
7
|
/** 每个附件的正文上限(字符)。 */
|
|
8
8
|
export declare const MAX_ATTACHMENT_CHARS = 50000;
|
|
9
9
|
/** 一条消息最多附件数。 */
|
|
@@ -42,17 +42,14 @@ export interface AttachmentMeta {
|
|
|
42
42
|
uri: string;
|
|
43
43
|
name: string;
|
|
44
44
|
}
|
|
45
|
-
export interface ConnectorContentDeps {
|
|
46
|
-
db: KernelDb;
|
|
47
|
-
registry: Pick<ToolRegistry, "findConnector">;
|
|
48
|
-
credentials: Pick<Credentials, "injection" | "onUnauthorized">;
|
|
49
|
-
breaker: Pick<Breaker, "check">;
|
|
50
|
-
config: () => KernelConfig;
|
|
51
|
-
log: Logger;
|
|
52
|
-
}
|
|
53
45
|
export declare class ConnectorContent {
|
|
54
|
-
private readonly
|
|
55
|
-
|
|
46
|
+
private readonly db;
|
|
47
|
+
private readonly registry;
|
|
48
|
+
private readonly credentials;
|
|
49
|
+
private readonly breaker;
|
|
50
|
+
private readonly config;
|
|
51
|
+
private readonly log;
|
|
52
|
+
constructor(db: KernelDb, registry: Pick<ToolRegistry, "findConnector">, credentials: Pick<Credentials, "injection" | "onUnauthorized">, breaker: Pick<Breaker, "check">, config: Pick<KernelConfigService, "get">, log: Logger);
|
|
56
53
|
private activeConnectors;
|
|
57
54
|
private connectorRow;
|
|
58
55
|
/**
|