@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.3
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 +187 -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 +280 -335
- package/dist/agents/definition.d.ts +39 -8
- package/dist/agents/definition.js +201 -17
- 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 +39 -8
- 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 +326 -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/claude/agents.js +13 -10
- 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 +31 -14
- 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 +10 -4
- package/dist/channels/cards.js +16 -8
- 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 +12 -6
- package/dist/conversations/access.d.ts +29 -0
- package/dist/conversations/access.js +86 -0
- package/dist/conversations/artifacts.d.ts +11 -11
- package/dist/conversations/artifacts.js +36 -10
- 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 +39 -18
- package/dist/conversations/event-log.js +93 -27
- package/dist/conversations/events.d.ts +23 -3
- package/dist/conversations/events.js +26 -14
- 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 +4 -4
- 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/recorded-tools.d.ts +27 -1
- package/dist/evals/recorded-tools.js +85 -10
- package/dist/evals/run-replay.d.ts +61 -8
- package/dist/evals/run-replay.js +159 -85
- 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.d.ts +2 -2
- 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 +86 -58
- 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 +456 -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 +16 -10
- package/dist/orgs/settings.service.js +77 -48
- 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/context/build.d.ts +6 -6
- package/dist/runtime/context/build.js +18 -8
- package/dist/runtime/context/claude-tools.d.ts +2 -1
- package/dist/runtime/context/claude-tools.js +9 -10
- package/dist/runtime/context/legacy-text.d.ts +22 -0
- package/dist/runtime/context/legacy-text.js +37 -0
- package/dist/runtime/context/skills.d.ts +29 -11
- package/dist/runtime/context/skills.js +37 -30
- 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 +8 -1
- 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 +25 -58
- 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 +27 -18
- 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 +122 -76
- package/dist/runtime/run-worker.js +343 -229
- 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 +5 -10
- package/dist/runtime/subagents/definition.js +13 -14
- package/dist/runtime/subagents/dispatch.d.ts +89 -8
- package/dist/runtime/subagents/dispatch.js +137 -142
- 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 +3 -2
- package/dist/runtime/subagents/progress.d.ts +2 -2
- package/dist/runtime/subagents/roster.d.ts +4 -4
- package/dist/runtime/subagents/roster.js +2 -2
- package/dist/runtime/subagents/skill-fork.d.ts +8 -9
- package/dist/runtime/subagents/skill-fork.js +17 -6
- 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 +127 -59
- package/dist/runtime/waits.js +433 -210
- 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 +37 -24
- package/dist/skills/catalog.js +100 -57
- package/dist/skills/changes.controller.d.ts +4 -4
- package/dist/skills/changes.controller.js +15 -9
- package/dist/skills/changes.service.d.ts +30 -20
- package/dist/skills/changes.service.js +425 -367
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +8 -5
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +17 -16
- package/dist/skills/invoke.js +53 -21
- 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 +33 -25
- package/dist/tools/approvals.service.js +343 -259
- package/dist/tools/breaker.d.ts +2 -2
- package/dist/tools/breaker.js +21 -3
- package/dist/tools/builtin-names.d.ts +73 -0
- package/dist/tools/builtin-names.js +116 -0
- package/dist/tools/builtins/agent.d.ts +7 -7
- package/dist/tools/builtins/agent.js +7 -11
- package/dist/tools/builtins/ask-user.d.ts +3 -3
- package/dist/tools/builtins/ask-user.js +3 -3
- 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 +3 -3
- package/dist/tools/builtins/read-tool-output.js +3 -3
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +33 -30
- package/dist/tools/builtins/sandbox/common.d.ts +5 -4
- package/dist/tools/builtins/sandbox/common.js +2 -2
- package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
- package/dist/tools/builtins/sandbox/deliver.js +13 -13
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +42 -31
- package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
- package/dist/tools/builtins/sandbox/file-state.js +34 -0
- package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob-match.js +1 -1
- package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob.js +6 -6
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +149 -32
- package/dist/tools/builtins/sandbox/index.d.ts +1 -1
- package/dist/tools/builtins/sandbox/index.js +1 -1
- package/dist/tools/builtins/sandbox/read.d.ts +2 -2
- package/dist/tools/builtins/sandbox/read.js +22 -15
- package/dist/tools/builtins/sandbox/write.d.ts +1 -1
- package/dist/tools/builtins/sandbox/write.js +38 -34
- package/dist/tools/builtins/skill-load.d.ts +6 -6
- package/dist/tools/builtins/skill-load.js +33 -17
- package/dist/tools/builtins/skill-write.d.ts +4 -4
- package/dist/tools/builtins/skill-write.js +10 -10
- package/dist/tools/builtins/tool-search.d.ts +13 -9
- package/dist/tools/builtins/tool-search.js +25 -14
- 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 +438 -348
- package/dist/tools/credentials.d.ts +17 -20
- package/dist/tools/credentials.js +55 -34
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.d.ts +29 -41
- package/dist/tools/drift.js +116 -84
- package/dist/tools/elicitation.js +1 -1
- package/dist/tools/info.d.ts +32 -13
- package/dist/tools/info.js +88 -39
- 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/legacy-data.d.ts +34 -0
- package/dist/tools/legacy-data.js +76 -0
- package/dist/tools/legacy-keys.d.ts +51 -0
- package/dist/tools/legacy-keys.js +115 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- 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 +48 -4
- package/dist/tools/pipeline.d.ts +72 -50
- package/dist/tools/pipeline.js +239 -100
- package/dist/tools/policy.d.ts +3 -16
- package/dist/tools/policy.js +13 -19
- package/dist/tools/questions.controller.d.ts +2 -2
- package/dist/tools/questions.controller.js +9 -6
- package/dist/tools/questions.service.d.ts +26 -25
- package/dist/tools/questions.service.js +201 -142
- package/dist/tools/registry.d.ts +43 -38
- package/dist/tools/registry.js +100 -72
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- 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 +10 -3
- package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
- 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/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
- /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,5 +1,5 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
import { parseSkillMd, SKILL_ENTRY_FILE, SKILLS_SANDBOX_ROOT, skillSandboxPath, ToolError, } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import { parseSkillMd, renderSkillBody, SKILL_ENTRY_FILE, SKILL_INVOCATION_LIMITS, SKILLS_SANDBOX_ROOT, skillSandboxPath, ToolError, } from "@capybara-hq/plugin-sdk";
|
|
3
3
|
import { sql } from "kysely";
|
|
4
4
|
import { normalizeStoredDefinition } from "../../agents/definition.js";
|
|
5
5
|
import { ApiError } from "../../errors.js";
|
|
@@ -7,10 +7,10 @@ import { latestInvocation } from "../../runtime/context/skills.js";
|
|
|
7
7
|
import { dispatchOfChildRun } from "../../runtime/subagents/child.js";
|
|
8
8
|
import { resolveSkillForkType } from "../../runtime/subagents/roster.js";
|
|
9
9
|
import { invocationOf, resolveSkills } from "../../skills/catalog.js";
|
|
10
|
+
import { AGENT_TOOL, SANDBOX_TOOL_NAMES } from "../builtin-names.js";
|
|
10
11
|
import { clip, display, inSandbox, sandboxBaseTimeoutMs, withNotices, withPathLease, } from "./sandbox/common.js";
|
|
11
|
-
import { SANDBOX_TOOL_NAMES } from "./sandbox/names.js";
|
|
12
12
|
/**
|
|
13
|
-
* 内置工具 `
|
|
13
|
+
* 内置工具 `Skill`(M5 T14,Ruling M17):按日志里最新一份技能目录快照把名字解析为 id 与版本,返回该版本
|
|
14
14
|
* SKILL.md 的正文与文件清单(结果里写明版本)。技能带其他文件时把整个技能复制进本对话沙箱的 `/skills/<name>/`
|
|
15
15
|
* (提供方以 root 写,命令用户只读);没有沙箱提供方时只给正文,并说明脚本不可用。
|
|
16
16
|
*
|
|
@@ -36,26 +36,32 @@ const MAX_LISTED_FILES = 200;
|
|
|
36
36
|
/** 「不在目录里」的错误里最多列出的技能名。 */
|
|
37
37
|
const MAX_LISTED_NAMES = 50;
|
|
38
38
|
const SPEC = {
|
|
39
|
-
name: "
|
|
39
|
+
name: "Skill",
|
|
40
40
|
// Display only (the tool row; not in the fingerprint, never sent to the model).
|
|
41
|
-
keyArgs: ["
|
|
41
|
+
keyArgs: ["skill"],
|
|
42
42
|
description: "Load a skill from the skills list: returns the skill's instructions " +
|
|
43
43
|
"(its SKILL.md) and the list of its files. Call it before starting a task that matches a " +
|
|
44
44
|
"skill's description, then follow the returned instructions. If the skill has scripts or other " +
|
|
45
45
|
"files, they are copied read-only to /skills/<name>/ in this conversation's sandbox; run scripts " +
|
|
46
46
|
"there with an interpreter (sh, python3, node). Call it again when the skills list changes or " +
|
|
47
|
-
"the sandbox was recreated.
|
|
47
|
+
"the sandbox was recreated. Pass args when the task gives the skill arguments (they replace " +
|
|
48
|
+
"$ARGUMENTS and $1, $2… in the instructions). Do not use it for skills that are not in the list.",
|
|
48
49
|
inputSchema: {
|
|
49
50
|
type: "object",
|
|
50
51
|
properties: {
|
|
51
|
-
|
|
52
|
+
skill: {
|
|
52
53
|
type: "string",
|
|
53
54
|
minLength: 1,
|
|
54
55
|
maxLength: 64,
|
|
55
56
|
description: 'The skill name exactly as listed, e.g. "pdf-report".',
|
|
56
57
|
},
|
|
58
|
+
args: {
|
|
59
|
+
type: "string",
|
|
60
|
+
maxLength: SKILL_INVOCATION_LIMITS.argumentsMaxChars,
|
|
61
|
+
description: 'Optional arguments for the skill, e.g. "123 api".',
|
|
62
|
+
},
|
|
57
63
|
},
|
|
58
|
-
required: ["
|
|
64
|
+
required: ["skill"],
|
|
59
65
|
additionalProperties: false,
|
|
60
66
|
},
|
|
61
67
|
annotations: { readOnlyHint: true },
|
|
@@ -66,11 +72,11 @@ const STORAGE_UNAVAILABLE_TEXT = "File storage is temporarily unavailable, so th
|
|
|
66
72
|
const notInCatalog = (name, skills) => {
|
|
67
73
|
const names = skills.slice(0, MAX_LISTED_NAMES).map((s) => s.name);
|
|
68
74
|
const more = skills.length > names.length ? ", …" : "";
|
|
69
|
-
return `Skill "${clip(name, 80)}" is not in the skills catalog for this conversation; call
|
|
75
|
+
return `Skill "${clip(name, 80)}" is not in the skills catalog for this conversation; call Skill with one of the listed names: ${names.join(", ")}${more}.`;
|
|
70
76
|
};
|
|
71
77
|
const removedText = (name) => `Skill "${name}" was removed after the skills list was shown and can no longer be loaded; do the task without it, or ask the user to restore it.`;
|
|
72
78
|
/** Phase D spec §4.4: the line before a forked skill's instructions (model-visible, English). */
|
|
73
|
-
const forkAvailableText = (type) => `This skill is written to run in a sub-agent: call
|
|
79
|
+
const forkAvailableText = (type) => `This skill is written to run in a sub-agent: call Agent with subagent_type "${type}" and a prompt containing these instructions and the details of the task, then use its report; do not follow the instructions yourself.`;
|
|
74
80
|
const FORK_UNAVAILABLE_TEXT = "This skill is written to run in a sub-agent, which is not available here; follow the instructions yourself.";
|
|
75
81
|
const integrityText = (name) => `Skill "${name}" failed an integrity check (its stored files do not match the uploaded package); ask an administrator to upload the skill again.`;
|
|
76
82
|
const strings = (v) => Array.isArray(v) ? v.filter((x) => typeof x === "string") : [];
|
|
@@ -333,11 +339,11 @@ async function invokedEntry(db, ctx, name) {
|
|
|
333
339
|
};
|
|
334
340
|
}
|
|
335
341
|
/**
|
|
336
|
-
* The line before a forked skill's instructions (spec §4.4): run it through `
|
|
342
|
+
* The line before a forked skill's instructions (spec §4.4): run it through `Agent` when this step
|
|
337
343
|
* offers the tool and the skill's type is in the agent's roster, else follow it yourself.
|
|
338
344
|
*/
|
|
339
345
|
async function forkLine(db, ctx, fork, plugin) {
|
|
340
|
-
const hasAgent = (ctx.tools ?? []).some((t) => t.source.kind === "builtin" && t.source.name ===
|
|
346
|
+
const hasAgent = (ctx.tools ?? []).some((t) => t.source.kind === "builtin" && t.source.name === AGENT_TOOL);
|
|
341
347
|
if (!hasAgent)
|
|
342
348
|
return FORK_UNAVAILABLE_TEXT;
|
|
343
349
|
const agent = await runAgent(db, ctx);
|
|
@@ -346,15 +352,15 @@ async function forkLine(db, ctx, fork, plugin) {
|
|
|
346
352
|
const type = await resolveSkillForkType(db, ctx.orgId, agent.definition, fork.agent, plugin);
|
|
347
353
|
return type.inRoster ? forkAvailableText(type.agentType) : FORK_UNAVAILABLE_TEXT;
|
|
348
354
|
}
|
|
349
|
-
/** 内置工具 `
|
|
355
|
+
/** 内置工具 `Skill`(见文件头)。 */
|
|
350
356
|
export function skillLoadTool(deps) {
|
|
351
357
|
return {
|
|
352
358
|
spec: SPEC,
|
|
353
359
|
defaultPolicy: "allow",
|
|
354
360
|
// 可能要创建 / 恢复沙箱并复制文件:与沙箱工具同一时限
|
|
355
|
-
timeoutMs: () => sandboxBaseTimeoutMs(deps.config()),
|
|
361
|
+
timeoutMs: () => sandboxBaseTimeoutMs(deps.config.get()),
|
|
356
362
|
async run(input, ctx) {
|
|
357
|
-
const asked = input
|
|
363
|
+
const { skill: asked, args } = input;
|
|
358
364
|
const snap = await deps.eventLog.latestOfType(ctx.conversationId, "skills_catalog");
|
|
359
365
|
const skills = snap?.payload.skills ?? [];
|
|
360
366
|
let entry = findEntry(skills, asked);
|
|
@@ -430,12 +436,22 @@ export function skillLoadTool(deps) {
|
|
|
430
436
|
"or `node`; the files are not executable, so `./script` does not work. Write outputs under " +
|
|
431
437
|
`/workspace, not ${SKILLS_SANDBOX_ROOT}.${stale}`;
|
|
432
438
|
}
|
|
433
|
-
const
|
|
439
|
+
const invocation = invocationOf(manifest);
|
|
440
|
+
const fork = invocation.fork;
|
|
441
|
+
let instructions;
|
|
442
|
+
try {
|
|
443
|
+
instructions = renderSkillBody(parsed.body.trim(), invocation, args ?? "", name);
|
|
444
|
+
}
|
|
445
|
+
catch (e) {
|
|
446
|
+
if (!(e instanceof RangeError))
|
|
447
|
+
throw e;
|
|
448
|
+
throw new ToolError(`Skill "${name}" cannot be rendered: ${e.message}; check the args against the skill's placeholders and retry with shorter args.`);
|
|
449
|
+
}
|
|
434
450
|
const text = [
|
|
435
451
|
...(fork ? [await forkLine(deps.db, ctx, fork, entry.plugin)] : []),
|
|
436
452
|
`Loaded skill "${name}" (version ${entry.version}).`,
|
|
437
453
|
filesText,
|
|
438
|
-
`<skill name="${name}" version="${entry.version}">\n${
|
|
454
|
+
`<skill name="${name}" version="${entry.version}">\n${instructions}\n</skill>`,
|
|
439
455
|
].join("\n\n");
|
|
440
456
|
return {
|
|
441
457
|
content: [{ type: "text", text: withNotices(notices, text) }],
|
|
@@ -2,7 +2,7 @@ import type { SkillManifest } from "../../db/kernel-schema.js";
|
|
|
2
2
|
import type { SkillChangesService } from "../../skills/changes.service.js";
|
|
3
3
|
import type { BuiltinTool } from "../registry.js";
|
|
4
4
|
/**
|
|
5
|
-
* 内置工具 `
|
|
5
|
+
* 内置工具 `SkillWrite`(M5 T15,R4):agent 新建或更新它自己的技能(`scope = agent`)。
|
|
6
6
|
* - 输入 `{ name, description, files: [{ path, content }] }`,只收文本文件,整个技能 ≤ {@link SKILL_WRITE_MAX_BYTES};
|
|
7
7
|
* - the kernel generates SKILL.md ({@link buildSkillWrite}): its frontmatter is `name` / `description`
|
|
8
8
|
* plus the invocation keys (`disable-model-invocation`, `context`, ... phase D) of the frontmatter
|
|
@@ -11,13 +11,13 @@ import type { BuiltinTool } from "../registry.js";
|
|
|
11
11
|
* - 每次调用写一个完整的新版本(上一版有、这次没给的文件不再属于新版本);
|
|
12
12
|
* - 私有 agent 直接生成新版本并立即生效;共享 agent 由触发对话的人先确认这次调用(R3 固定 ask,见 tools/policy.ts),
|
|
13
13
|
* 再生成变更申请等负责人批准,期间只有本对话试用新版本(见 skills/changes.service.ts);
|
|
14
|
-
* - 成功后立即在日志追加技能目录快照(`skills_catalog`,Ruling M17),同一运行的下一步就能 `
|
|
14
|
+
* - 成功后立即在日志追加技能目录快照(`skills_catalog`,Ruling M17),同一运行的下一步就能 `Skill`。
|
|
15
15
|
*/
|
|
16
16
|
/** 一个技能(含合成的 SKILL.md)的总大小上限(UTF-8 字节)。 */
|
|
17
17
|
export declare const SKILL_WRITE_MAX_BYTES: number;
|
|
18
18
|
/** 一次最多的文件数(含 SKILL.md)。 */
|
|
19
19
|
export declare const SKILL_WRITE_MAX_FILES = 200;
|
|
20
|
-
/** `
|
|
20
|
+
/** `SkillWrite` 的输入(已按 inputSchema 校验)。 */
|
|
21
21
|
export interface SkillWriteInput {
|
|
22
22
|
name: string;
|
|
23
23
|
description: string;
|
|
@@ -55,5 +55,5 @@ export declare function buildSkillWrite(input: SkillWriteInput): BuiltSkill | {
|
|
|
55
55
|
export interface SkillWriteDeps {
|
|
56
56
|
changes: Pick<SkillChangesService, "write">;
|
|
57
57
|
}
|
|
58
|
-
/** 内置工具 `
|
|
58
|
+
/** 内置工具 `SkillWrite`(见文件头)。 */
|
|
59
59
|
export declare function skillWriteTool(deps: SkillWriteDeps): BuiltinTool;
|
|
@@ -4,7 +4,7 @@ import { parse as parseYaml, stringify as stringifyYaml } from "yaml";
|
|
|
4
4
|
import { storedInvocation } from "../../skills/package.js";
|
|
5
5
|
import { display } from "./sandbox/common.js";
|
|
6
6
|
/**
|
|
7
|
-
* 内置工具 `
|
|
7
|
+
* 内置工具 `SkillWrite`(M5 T15,R4):agent 新建或更新它自己的技能(`scope = agent`)。
|
|
8
8
|
* - 输入 `{ name, description, files: [{ path, content }] }`,只收文本文件,整个技能 ≤ {@link SKILL_WRITE_MAX_BYTES};
|
|
9
9
|
* - the kernel generates SKILL.md ({@link buildSkillWrite}): its frontmatter is `name` / `description`
|
|
10
10
|
* plus the invocation keys (`disable-model-invocation`, `context`, ... phase D) of the frontmatter
|
|
@@ -13,16 +13,16 @@ import { display } from "./sandbox/common.js";
|
|
|
13
13
|
* - 每次调用写一个完整的新版本(上一版有、这次没给的文件不再属于新版本);
|
|
14
14
|
* - 私有 agent 直接生成新版本并立即生效;共享 agent 由触发对话的人先确认这次调用(R3 固定 ask,见 tools/policy.ts),
|
|
15
15
|
* 再生成变更申请等负责人批准,期间只有本对话试用新版本(见 skills/changes.service.ts);
|
|
16
|
-
* - 成功后立即在日志追加技能目录快照(`skills_catalog`,Ruling M17),同一运行的下一步就能 `
|
|
16
|
+
* - 成功后立即在日志追加技能目录快照(`skills_catalog`,Ruling M17),同一运行的下一步就能 `Skill`。
|
|
17
17
|
*/
|
|
18
18
|
/** 一个技能(含合成的 SKILL.md)的总大小上限(UTF-8 字节)。 */
|
|
19
19
|
export const SKILL_WRITE_MAX_BYTES = 1024 * 1024;
|
|
20
20
|
/** 一次最多的文件数(含 SKILL.md)。 */
|
|
21
21
|
export const SKILL_WRITE_MAX_FILES = 200;
|
|
22
22
|
const SPEC = {
|
|
23
|
-
name: "
|
|
23
|
+
name: "SkillWrite",
|
|
24
24
|
description: "Create or update one of this agent's own skills: reusable instructions plus optional text files " +
|
|
25
|
-
"(scripts, templates, reference notes) that you or later conversations can load with
|
|
25
|
+
"(scripts, templates, reference notes) that you or later conversations can load with Skill. " +
|
|
26
26
|
"Each call writes a complete new version. SKILL.md is generated for you: its frontmatter comes from " +
|
|
27
27
|
"`name` and `description`, and its body is the content of the `SKILL.md` entry in `files` if you " +
|
|
28
28
|
"include one (its frontmatter is dropped, except the invocation keys disable-model-invocation, " +
|
|
@@ -186,7 +186,7 @@ export function buildSkillWrite(input) {
|
|
|
186
186
|
},
|
|
187
187
|
};
|
|
188
188
|
}
|
|
189
|
-
/** 内置工具 `
|
|
189
|
+
/** 内置工具 `SkillWrite`(见文件头)。 */
|
|
190
190
|
export function skillWriteTool(deps) {
|
|
191
191
|
return {
|
|
192
192
|
spec: SPEC,
|
|
@@ -195,7 +195,7 @@ export function skillWriteTool(deps) {
|
|
|
195
195
|
async run(input, ctx) {
|
|
196
196
|
const built = buildSkillWrite(input);
|
|
197
197
|
if ("errors" in built) {
|
|
198
|
-
throw new ToolError(`The skill was not written. Fix these problems and call
|
|
198
|
+
throw new ToolError(`The skill was not written. Fix these problems and call SkillWrite again:\n- ${built.errors.slice(0, 20).join("\n- ")}`);
|
|
199
199
|
}
|
|
200
200
|
const r = await deps.changes.write({
|
|
201
201
|
orgId: ctx.orgId,
|
|
@@ -205,10 +205,10 @@ export function skillWriteTool(deps) {
|
|
|
205
205
|
...(ctx.runId !== undefined && { runId: ctx.runId }),
|
|
206
206
|
}, built);
|
|
207
207
|
const name = built.name;
|
|
208
|
-
// A manual-only version (phase D) is not in the model's catalog, so
|
|
208
|
+
// A manual-only version (phase D) is not in the model's catalog, so Skill cannot load it
|
|
209
209
|
const manualOnly = built.manifest.invocation?.model === false;
|
|
210
210
|
const manualText = `It is manual-only (disable-model-invocation: true): it is not in your skills catalog and ` +
|
|
211
|
-
`
|
|
211
|
+
`Skill cannot load it; a person invokes it with /${name}.`;
|
|
212
212
|
if (r.kind === "version") {
|
|
213
213
|
const what = r.created ? "Created" : "Updated";
|
|
214
214
|
return {
|
|
@@ -218,7 +218,7 @@ export function skillWriteTool(deps) {
|
|
|
218
218
|
text: `${what} skill "${name}" (version ${r.version}, ${built.files.length} files). ` +
|
|
219
219
|
(manualOnly
|
|
220
220
|
? `It is in effect now for every conversation with this agent. ${manualText}`
|
|
221
|
-
: "It is in effect now for every conversation with this agent; call
|
|
221
|
+
: "It is in effect now for every conversation with this agent; call Skill to use it."),
|
|
222
222
|
},
|
|
223
223
|
],
|
|
224
224
|
display: display(`${r.created ? "新建" : "更新"}技能 ${name}(版本 ${r.version})`, `${what} skill ${name} (version ${r.version})`),
|
|
@@ -232,7 +232,7 @@ export function skillWriteTool(deps) {
|
|
|
232
232
|
"awaiting the owner's approval, because this agent is shared. Until the owner approves it, " +
|
|
233
233
|
(manualOnly
|
|
234
234
|
? `the new version applies only in this conversation; other conversations keep the current version. ${manualText} `
|
|
235
|
-
: "the new version is usable only in this conversation (call
|
|
235
|
+
: "the new version is usable only in this conversation (call Skill to use it); other " +
|
|
236
236
|
"conversations keep the current version. ") +
|
|
237
237
|
"Tell the user the change needs the owner's approval.",
|
|
238
238
|
},
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export declare const TOOL_SEARCH = "tool_search";
|
|
1
|
+
import { type ToolSpec } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import type { BuiltinTool, ResolvedTool } from "../registry.js";
|
|
3
|
+
export { TOOL_SEARCH } from "../builtin-names.js";
|
|
5
4
|
export declare const TOOL_SEARCH_SPEC: ToolSpec;
|
|
6
5
|
/** 目录(system 第二个块)的开头说明(模型可见,英文)。 */
|
|
7
6
|
export declare const CATALOG_HEADER: string;
|
|
8
7
|
/** 调用目录里尚未加载的工具(模型可见,英文;spec 5.5:不自动加载)。 */
|
|
9
8
|
export declare const notLoadedText: (key: string) => string;
|
|
10
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* 始终完整加载、不进目录的工具(内置工具)。A release-candidate builtin key counts too: a request
|
|
11
|
+
* recorded before the tool rename is rebuilt with its old keys, and its builtins were loaded.
|
|
12
|
+
*/
|
|
11
13
|
export declare const isAlwaysLoaded: (key: string) => boolean;
|
|
12
14
|
type CatalogTool = Pick<ResolvedTool, "key" | "spec">;
|
|
13
15
|
/** 分词:切开驼峰,按非字母数字切分,转小写。 */
|
|
@@ -20,12 +22,14 @@ export declare function tokenize(text: string): string[];
|
|
|
20
22
|
export declare function searchTools<T extends CatalogTool>(query: string, tools: readonly T[], limit: number): T[];
|
|
21
23
|
/** 目录行:`- <key>: <描述的第一行>`(超长截断)。 */
|
|
22
24
|
export declare function catalogLine(t: CatalogTool): string;
|
|
23
|
-
/** 目录全文:开头说明 + 按 key 排序的目录行。只依赖工具集合,与加载状态无关(缓存前缀稳定)。 */
|
|
24
|
-
export declare function catalogText(tools: readonly CatalogTool[]): string;
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* 目录全文:开头说明 + 按 key 排序的目录行。只依赖工具集合,与加载状态无关(缓存前缀稳定)。
|
|
27
|
+
* `header`: a request recorded before the tool rename passes the frozen legacy header.
|
|
28
|
+
*/
|
|
29
|
+
export declare function catalogText(tools: readonly CatalogTool[], header?: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* 内置工具 `ToolSearch`(spec 5.5):在本次运行可用、但未直接加载的工具中按关键词搜索,返回完整定义,
|
|
27
32
|
* 并在结果里带 `loadedTools`(管线写进 `tool_result.loadedTools`;已加载集合只由日志还原)。
|
|
28
33
|
* 搜索范围来自管线传入的 `ctx.tools`(本步解析出的工具);内置工具始终加载,不参与搜索。
|
|
29
34
|
*/
|
|
30
35
|
export declare function toolSearchTool(): BuiltinTool;
|
|
31
|
-
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { parseToolKey } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import { BUILTIN_TOOL_NAMES, TOOL_SEARCH } from "../builtin-names.js";
|
|
3
|
+
import { isLegacyBuiltinKey } from "../legacy-keys.js";
|
|
4
|
+
export { TOOL_SEARCH } from "../builtin-names.js";
|
|
4
5
|
/** 默认返回的匹配数。 */
|
|
5
6
|
const DEFAULT_LIMIT = 5;
|
|
6
7
|
/** 单次最多返回的匹配数。 */
|
|
@@ -27,7 +28,7 @@ export const TOOL_SEARCH_SPEC = {
|
|
|
27
28
|
maxLength: 500,
|
|
28
29
|
description: "Keywords describing the tool you need, e.g. 'create calendar event'.",
|
|
29
30
|
},
|
|
30
|
-
|
|
31
|
+
max_results: {
|
|
31
32
|
type: "integer",
|
|
32
33
|
minimum: 1,
|
|
33
34
|
maximum: MAX_LIMIT,
|
|
@@ -40,16 +41,23 @@ export const TOOL_SEARCH_SPEC = {
|
|
|
40
41
|
annotations: { readOnlyHint: true },
|
|
41
42
|
};
|
|
42
43
|
/** 目录(system 第二个块)的开头说明(模型可见,英文)。 */
|
|
43
|
-
export const CATALOG_HEADER = "More tools are available but not loaded. To use one, first call
|
|
44
|
+
export const CATALOG_HEADER = "More tools are available but not loaded. To use one, first call ToolSearch with keywords; " +
|
|
44
45
|
"it returns the full definitions and loads the matching tools for your next step. " +
|
|
45
46
|
"Calling a tool that is not loaded returns an error. Tool catalog:";
|
|
46
47
|
/** 调用目录里尚未加载的工具(模型可见,英文;spec 5.5:不自动加载)。 */
|
|
47
|
-
export const notLoadedText = (key) => `Tool "${key}" is not loaded. Call
|
|
48
|
-
/**
|
|
49
|
-
|
|
48
|
+
export const notLoadedText = (key) => `Tool "${key}" is not loaded. Call ToolSearch first with keywords for this tool, then call it in a later step.`;
|
|
49
|
+
/**
|
|
50
|
+
* 始终完整加载、不进目录的工具(内置工具)。A release-candidate builtin key counts too: a request
|
|
51
|
+
* recorded before the tool rename is rebuilt with its old keys, and its builtins were loaded.
|
|
52
|
+
*/
|
|
53
|
+
export const isAlwaysLoaded = (key) => BUILTIN_TOOL_NAMES.includes(key) || isLegacyBuiltinKey(key);
|
|
50
54
|
/** 分词:切开驼峰,按非字母数字切分,转小写。 */
|
|
51
55
|
export function tokenize(text) {
|
|
56
|
+
const parsed = parseToolKey(text);
|
|
57
|
+
// The family token (`mcp`, `plugin`) is the same on every connector or extension key: drop it.
|
|
58
|
+
const family = parsed && parsed.kind !== "builtin" ? text.indexOf("__") + 2 : 0;
|
|
52
59
|
return text
|
|
60
|
+
.slice(family)
|
|
53
61
|
.replace(/([\p{Ll}\p{N}])(\p{Lu})/gu, "$1 $2")
|
|
54
62
|
.toLowerCase()
|
|
55
63
|
.split(/[^\p{L}\p{N}]+/u)
|
|
@@ -106,12 +114,15 @@ export function catalogLine(t) {
|
|
|
106
114
|
: first;
|
|
107
115
|
return `- ${t.key}: ${desc}`;
|
|
108
116
|
}
|
|
109
|
-
/**
|
|
110
|
-
|
|
117
|
+
/**
|
|
118
|
+
* 目录全文:开头说明 + 按 key 排序的目录行。只依赖工具集合,与加载状态无关(缓存前缀稳定)。
|
|
119
|
+
* `header`: a request recorded before the tool rename passes the frozen legacy header.
|
|
120
|
+
*/
|
|
121
|
+
export function catalogText(tools, header = CATALOG_HEADER) {
|
|
111
122
|
const sorted = [...tools].sort((a, b) => (a.key < b.key ? -1 : a.key > b.key ? 1 : 0));
|
|
112
|
-
return [
|
|
123
|
+
return [header, ...sorted.map(catalogLine)].join("\n");
|
|
113
124
|
}
|
|
114
|
-
/**
|
|
125
|
+
/** 一个工具的完整定义文本(`ToolSearch` 的结果)。 */
|
|
115
126
|
function definitionText(t) {
|
|
116
127
|
return [
|
|
117
128
|
`Tool: ${t.key}`,
|
|
@@ -128,7 +139,7 @@ function displayQuery(query) {
|
|
|
128
139
|
return cps.length > DISPLAY_QUERY_MAX ? `${cps.slice(0, DISPLAY_QUERY_MAX - 1).join("")}…` : one;
|
|
129
140
|
}
|
|
130
141
|
/**
|
|
131
|
-
* 内置工具 `
|
|
142
|
+
* 内置工具 `ToolSearch`(spec 5.5):在本次运行可用、但未直接加载的工具中按关键词搜索,返回完整定义,
|
|
132
143
|
* 并在结果里带 `loadedTools`(管线写进 `tool_result.loadedTools`;已加载集合只由日志还原)。
|
|
133
144
|
* 搜索范围来自管线传入的 `ctx.tools`(本步解析出的工具);内置工具始终加载,不参与搜索。
|
|
134
145
|
*/
|
|
@@ -137,7 +148,7 @@ export function toolSearchTool() {
|
|
|
137
148
|
spec: TOOL_SEARCH_SPEC,
|
|
138
149
|
defaultPolicy: "allow",
|
|
139
150
|
async run(input, ctx) {
|
|
140
|
-
const { query, limit = DEFAULT_LIMIT } = input;
|
|
151
|
+
const { query, max_results: limit = DEFAULT_LIMIT } = input;
|
|
141
152
|
const catalog = (ctx.tools ?? []).filter((t) => !isAlwaysLoaded(t.key));
|
|
142
153
|
const found = searchTools(query, catalog, limit);
|
|
143
154
|
const q = displayQuery(query);
|
|
@@ -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
|
/**
|