@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,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 type
|
|
4
|
+
import { type InvocableSkill, SkillInvoker } from "./invoke.js";
|
|
5
5
|
declare const ListQuery: z.ZodObject<{
|
|
6
6
|
conversationId: z.ZodOptional<z.ZodString>;
|
|
7
7
|
}, z.core.$strict>;
|
|
@@ -7,13 +7,16 @@ 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 { Controller, Get, Header, Inject, Param
|
|
10
|
+
import { Controller, Get, Header, Inject, Param } from "@nestjs/common";
|
|
11
11
|
import { z } from "zod";
|
|
12
|
-
import { SKILL_INVOKER } 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 { ZQuery } from "../infra/validation/zod-params.js";
|
|
15
15
|
import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
|
|
16
|
+
import { SkillInvoker } from "./invoke.js";
|
|
16
17
|
const ListQuery = z.object({ conversationId: z.string().min(1).max(100).optional() }).strict();
|
|
18
|
+
class InvocableSkillsQuery extends createZodDto(ListQuery, "InvocableSkillsQuery") {
|
|
19
|
+
}
|
|
17
20
|
/**
|
|
18
21
|
* The composer's `/` menu (phase D spec §4.5): `GET /api/v1/orgs/:orgId/agents/:agentId/
|
|
19
22
|
* invocable-skills?conversationId=` lists the agent's effective skills a person can invoke, sorted
|
|
@@ -41,10 +44,10 @@ __decorate([
|
|
|
41
44
|
__param(0, CurrentPrincipal()),
|
|
42
45
|
__param(1, CurrentOrg()),
|
|
43
46
|
__param(2, Param("agentId")),
|
|
44
|
-
__param(3,
|
|
47
|
+
__param(3, ZQuery(InvocableSkillsQuery))
|
|
45
48
|
], InvocableSkillsController.prototype, "list", null);
|
|
46
49
|
InvocableSkillsController = __decorate([
|
|
47
50
|
Controller("api/v1/orgs/:orgId/agents/:agentId/invocable-skills"),
|
|
48
|
-
__param(0, Inject(
|
|
51
|
+
__param(0, Inject(SkillInvoker))
|
|
49
52
|
], InvocableSkillsController);
|
|
50
53
|
export { InvocableSkillsController };
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* The SKILL.md invocation keys (package ecosystem phase D) and their lenient reading: readers of
|
|
3
3
|
* stored files (catalog install and upgrade) and the Claude Code translation drop a key the strict
|
|
4
4
|
* `parseSkillMd` checks would refuse, with the reason, instead of refusing the skill or storing an
|
|
5
|
-
* invocation nobody can use. Uploads, native imports and `
|
|
5
|
+
* invocation nobody can use. Uploads, native imports and `SkillWrite` stay strict.
|
|
6
6
|
*/
|
|
7
7
|
/** The frontmatter keys that make up a skill's invocation metadata. */
|
|
8
8
|
export declare const INVOCATION_KEYS: readonly ["disable-model-invocation", "user-invocable", "context", "agent", "argument-hint", "arguments"];
|
|
@@ -3,7 +3,7 @@ import { parseSkillMd } from "@capybara-hq/plugin-sdk";
|
|
|
3
3
|
* The SKILL.md invocation keys (package ecosystem phase D) and their lenient reading: readers of
|
|
4
4
|
* stored files (catalog install and upgrade) and the Claude Code translation drop a key the strict
|
|
5
5
|
* `parseSkillMd` checks would refuse, with the reason, instead of refusing the skill or storing an
|
|
6
|
-
* invocation nobody can use. Uploads, native imports and `
|
|
6
|
+
* invocation nobody can use. Uploads, native imports and `SkillWrite` stay strict.
|
|
7
7
|
*/
|
|
8
8
|
/** The frontmatter keys that make up a skill's invocation metadata. */
|
|
9
9
|
export const INVOCATION_KEYS = [
|
package/dist/skills/invoke.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { AgentsService } from "../agents/agents.service.js";
|
|
1
|
+
import { AgentLookup } from "../agents/agent-lookup.js";
|
|
3
2
|
import type { AgentDefinition } from "../agents/definition.js";
|
|
4
3
|
import type { EventPayload } from "../conversations/events.js";
|
|
5
|
-
import type {
|
|
4
|
+
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
6
5
|
import { ApiError } from "../errors.js";
|
|
7
|
-
import
|
|
6
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
7
|
+
import type { KernelLogger } from "../log.js";
|
|
8
|
+
import { StorageService } from "../storage/storage.service.js";
|
|
8
9
|
/**
|
|
9
10
|
* A person's skill invocation (phase D spec §3, §4): the `/` menu's list of the agent's invocable
|
|
10
11
|
* skills, and the rendering of `/name args` into the model-visible text of their message. The skill
|
|
@@ -57,7 +58,7 @@ export declare const notInvocable: (reason: NotInvocableReason, name: string) =>
|
|
|
57
58
|
* agent's effective skills now, with `user` not false. Its version may have changed: the queued
|
|
58
59
|
* text stays as rendered when queued. Null when it is, else the reason.
|
|
59
60
|
*/
|
|
60
|
-
export declare function recordedSkillBlocked(db:
|
|
61
|
+
export declare function recordedSkillBlocked(db: KernelSchemaDb, a: {
|
|
61
62
|
orgId: string;
|
|
62
63
|
agentId: string;
|
|
63
64
|
agent: Pick<AgentDefinition, "skills">;
|
|
@@ -68,17 +69,17 @@ export declare function recordedSkillBlocked(db: KernelDb, a: {
|
|
|
68
69
|
export declare const forkLeadText: (name: string, agentType: string, args: string) => string;
|
|
69
70
|
/** The warning recorded when a forked skill's `agent` does not resolve (spec §6.2). */
|
|
70
71
|
export declare const forkAgentUnknownText: (name: string, agent: string) => string;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
/** An unreadable SKILL.md is logged at `error` (skill id, version, source), as pinned skills. */
|
|
77
|
-
log?: Pick<Logger, "error">;
|
|
78
|
-
}
|
|
72
|
+
/**
|
|
73
|
+
* Skill invocations by a person (one provider: the HTTP routes, IM channels and fork dispatch all
|
|
74
|
+
* use it). Unreadable SKILL.md files are logged at `error` (skill id, version, source), as pinned
|
|
75
|
+
* skills; the agent access check of {@link SkillInvoker.listFor} is `AgentLookup.get`.
|
|
76
|
+
*/
|
|
79
77
|
export declare class SkillInvoker {
|
|
80
|
-
private readonly
|
|
81
|
-
|
|
78
|
+
private readonly db;
|
|
79
|
+
private readonly storage;
|
|
80
|
+
private readonly agents;
|
|
81
|
+
private readonly log;
|
|
82
|
+
constructor(db: KernelDb, storage: StorageService, agents: Pick<AgentLookup, "get">, log: KernelLogger);
|
|
82
83
|
/**
|
|
83
84
|
* The `/` menu for `accountId`: the agent must be usable by them (`agent.not_found`), and with
|
|
84
85
|
* `conversationId` the conversation must be theirs and the agent's (`conversation.not_found`);
|
|
@@ -120,7 +121,7 @@ export declare class SkillInvoker {
|
|
|
120
121
|
* `storage.unavailable` (`skill_unreadable`) when the version is gone or its SKILL.md cannot be
|
|
121
122
|
* read, plain `storage.unavailable` when storage is down. `task` renders the text for the
|
|
122
123
|
* sub-agent's effective definition: the shell-injection line only when the sub-agent has
|
|
123
|
-
* `
|
|
124
|
+
* `Bash` (batch 3 review m1).
|
|
124
125
|
*/
|
|
125
126
|
renderTask(a: {
|
|
126
127
|
orgId: string;
|
package/dist/skills/invoke.js
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
1
10
|
import { escapeSkillInvocationTags, hasShellInjection, parseSkillMd, renderSkillBody, renderSkillInvocation, SKILL_ENTRY_FILE, SKILL_INVOCATION_LIMITS, } from "@capybara-hq/plugin-sdk";
|
|
11
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
12
|
+
import { AgentLookup } from "../agents/agent-lookup.js";
|
|
2
13
|
import { ApiError } from "../errors.js";
|
|
14
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
15
|
+
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
3
16
|
import { isGeneralAlias, resolveSkillForkType } from "../runtime/subagents/roster.js";
|
|
17
|
+
import { StorageService } from "../storage/storage.service.js";
|
|
18
|
+
import { BUILTIN } from "../tools/builtin-names.js";
|
|
4
19
|
import { findSkillVersion, readSkillFile, SkillIntegrityError, } from "../tools/builtins/skill-load.js";
|
|
5
20
|
import { invocationOf, resolveSkills } from "./catalog.js";
|
|
6
21
|
/** A leading `/<name>` or `/<plugin>:<name>`, then whitespace or the end (spec §3.2). */
|
|
@@ -43,10 +58,21 @@ export async function recordedSkillBlocked(db, a) {
|
|
|
43
58
|
export const forkLeadText = (name, agentType, args) => escapeSkillInvocationTags(`The user ran the skill "${name}" in a sub-agent (${agentType}) with /${name}${args === "" ? "" : ` ${args}`}. The sub-agent gets the skill's instructions as its task; its report follows. Do not do the task yourself.`);
|
|
44
59
|
/** The warning recorded when a forked skill's `agent` does not resolve (spec §6.2). */
|
|
45
60
|
export const forkAgentUnknownText = (name, agent) => `Skill "${name}" asked for sub-agent type "${agent}", which this agent does not have; it ran as general-purpose.`;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Skill invocations by a person (one provider: the HTTP routes, IM channels and fork dispatch all
|
|
63
|
+
* use it). Unreadable SKILL.md files are logged at `error` (skill id, version, source), as pinned
|
|
64
|
+
* skills; the agent access check of {@link SkillInvoker.listFor} is `AgentLookup.get`.
|
|
65
|
+
*/
|
|
66
|
+
let SkillInvoker = class SkillInvoker {
|
|
67
|
+
db;
|
|
68
|
+
storage;
|
|
69
|
+
agents;
|
|
70
|
+
log;
|
|
71
|
+
constructor(db, storage, agents, log) {
|
|
72
|
+
this.db = db;
|
|
73
|
+
this.storage = storage;
|
|
74
|
+
this.agents = agents;
|
|
75
|
+
this.log = log;
|
|
50
76
|
}
|
|
51
77
|
/**
|
|
52
78
|
* The `/` menu for `accountId`: the agent must be usable by them (`agent.not_found`), and with
|
|
@@ -54,11 +80,9 @@ export class SkillInvoker {
|
|
|
54
80
|
* then its trial drafts apply.
|
|
55
81
|
*/
|
|
56
82
|
async listFor(orgId, agentId, accountId, conversationId) {
|
|
57
|
-
|
|
58
|
-
throw new Error("SkillInvoker.listFor needs agents");
|
|
59
|
-
const agent = await this.d.agents.get(orgId, agentId, accountId);
|
|
83
|
+
const agent = await this.agents.get(orgId, agentId, accountId);
|
|
60
84
|
if (conversationId !== undefined) {
|
|
61
|
-
const row = await this.
|
|
85
|
+
const row = await this.db
|
|
62
86
|
.selectFrom("conversations")
|
|
63
87
|
.select("id")
|
|
64
88
|
.where("id", "=", conversationId)
|
|
@@ -82,7 +106,7 @@ export class SkillInvoker {
|
|
|
82
106
|
* point order), model-invocable and manual-only alike (spec §3.1).
|
|
83
107
|
*/
|
|
84
108
|
async list(a) {
|
|
85
|
-
const all = await resolveSkills(this.
|
|
109
|
+
const all = await resolveSkills(this.db.db, a);
|
|
86
110
|
const out = [];
|
|
87
111
|
for (const r of all) {
|
|
88
112
|
const inv = invocationOf(r.manifest);
|
|
@@ -109,7 +133,7 @@ export class SkillInvoker {
|
|
|
109
133
|
* that fails its integrity check → `storage.unavailable` (503). Nothing is written here.
|
|
110
134
|
*/
|
|
111
135
|
async prepare(a) {
|
|
112
|
-
const all = await resolveSkills(this.
|
|
136
|
+
const all = await resolveSkills(this.db.db, a);
|
|
113
137
|
const found = findSkill(all, a.name);
|
|
114
138
|
if (!found)
|
|
115
139
|
throw notInvocable("not_found", a.name);
|
|
@@ -119,10 +143,10 @@ export class SkillInvoker {
|
|
|
119
143
|
const body = await this.readBody(a.orgId, found);
|
|
120
144
|
const others = found.manifest.files.some((f) => f.path !== SKILL_ENTRY_FILE);
|
|
121
145
|
const lines = {
|
|
122
|
-
// the invocation itself makes the conversation's next run offer
|
|
146
|
+
// the invocation itself makes the conversation's next run offer Skill (skillLoadOffered)
|
|
123
147
|
...(others && { files: "load" }),
|
|
124
148
|
...(hasShellInjection(body) &&
|
|
125
|
-
hasBuiltin(a.agent,
|
|
149
|
+
hasBuiltin(a.agent, BUILTIN.Bash) && { shellHint: true }),
|
|
126
150
|
};
|
|
127
151
|
const input = {
|
|
128
152
|
name: a.name,
|
|
@@ -149,7 +173,7 @@ export class SkillInvoker {
|
|
|
149
173
|
if (!inv.fork)
|
|
150
174
|
return { text: rendered(() => renderSkillInvocation(input)), skill: record };
|
|
151
175
|
const task = rendered(() => renderSkillInvocation({ ...input, lead: false }));
|
|
152
|
-
const type = await resolveSkillForkType(this.
|
|
176
|
+
const type = await resolveSkillForkType(this.db.db, a.orgId, a.agent, inv.fork.agent, found.skill.plugin);
|
|
153
177
|
return {
|
|
154
178
|
text: forkLeadText(a.name, type.agentType, args),
|
|
155
179
|
skill: { ...record, agentType: type.agentType },
|
|
@@ -169,13 +193,13 @@ export class SkillInvoker {
|
|
|
169
193
|
* `storage.unavailable` (`skill_unreadable`) when the version is gone or its SKILL.md cannot be
|
|
170
194
|
* read, plain `storage.unavailable` when storage is down. `task` renders the text for the
|
|
171
195
|
* sub-agent's effective definition: the shell-injection line only when the sub-agent has
|
|
172
|
-
* `
|
|
196
|
+
* `Bash` (batch 3 review m1).
|
|
173
197
|
*/
|
|
174
198
|
async renderTask(a) {
|
|
175
199
|
const { skill } = a;
|
|
176
|
-
const found = await findSkillVersion(this.
|
|
200
|
+
const found = await findSkillVersion(this.db.db, a, { id: skill.id, source: skill.source });
|
|
177
201
|
if (!found) {
|
|
178
|
-
this.
|
|
202
|
+
this.log.error("invoked skill unreadable", {
|
|
179
203
|
orgId: a.orgId,
|
|
180
204
|
skillId: skill.id,
|
|
181
205
|
version: skill.version,
|
|
@@ -202,7 +226,7 @@ export class SkillInvoker {
|
|
|
202
226
|
lines: {
|
|
203
227
|
...(others && { files: "load" }),
|
|
204
228
|
...(hasShellInjection(body) &&
|
|
205
|
-
hasBuiltin(child,
|
|
229
|
+
hasBuiltin(child, BUILTIN.Bash) && { shellHint: true }),
|
|
206
230
|
},
|
|
207
231
|
lead: false,
|
|
208
232
|
});
|
|
@@ -213,7 +237,7 @@ export class SkillInvoker {
|
|
|
213
237
|
/** Reads and parses the version's SKILL.md (checked against the manifest), returns the body. */
|
|
214
238
|
async readBody(orgId, r) {
|
|
215
239
|
const unreadable = (problem) => {
|
|
216
|
-
this.
|
|
240
|
+
this.log.error("invoked skill unreadable", {
|
|
217
241
|
orgId,
|
|
218
242
|
skillId: r.skill.id,
|
|
219
243
|
version: r.skill.version,
|
|
@@ -227,10 +251,10 @@ export class SkillInvoker {
|
|
|
227
251
|
const md = r.manifest.files.find((f) => f.path === SKILL_ENTRY_FILE);
|
|
228
252
|
if (!md)
|
|
229
253
|
throw unreadable(`has no ${SKILL_ENTRY_FILE}`);
|
|
230
|
-
this.
|
|
254
|
+
this.storage.assertAvailable();
|
|
231
255
|
let bytes;
|
|
232
256
|
try {
|
|
233
|
-
bytes = await readSkillFile(this.
|
|
257
|
+
bytes = await readSkillFile(this.storage.kernel(orgId), `${r.skill.source}${SKILL_ENTRY_FILE}`, md);
|
|
234
258
|
}
|
|
235
259
|
catch (e) {
|
|
236
260
|
if (e instanceof SkillIntegrityError)
|
|
@@ -251,7 +275,15 @@ export class SkillInvoker {
|
|
|
251
275
|
throw unreadable("cannot be parsed");
|
|
252
276
|
return parsed.body;
|
|
253
277
|
}
|
|
254
|
-
}
|
|
278
|
+
};
|
|
279
|
+
SkillInvoker = __decorate([
|
|
280
|
+
Injectable(),
|
|
281
|
+
__param(0, Inject(KernelDb)),
|
|
282
|
+
__param(1, Inject(StorageService)),
|
|
283
|
+
__param(2, Inject(AgentLookup)),
|
|
284
|
+
__param(3, Inject(KERNEL_LOGGER))
|
|
285
|
+
], SkillInvoker);
|
|
286
|
+
export { SkillInvoker };
|
|
255
287
|
const hasBuiltin = (agent, name) => (agent.tools ?? []).some((t) => t.kind === "builtin" && t.name === name);
|
|
256
288
|
/** The skill's own body over the rendered limit: a 400 on `skill` naming the skill. */
|
|
257
289
|
function tooLarge(name, render) {
|
|
@@ -2,7 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import { type CreatedAttachment } from "../conversations/attachments.service.js";
|
|
3
3
|
import { type Principal } from "../identity/principal.js";
|
|
4
4
|
import { type OrgContext } from "../orgs/org.guard.js";
|
|
5
|
-
import type
|
|
5
|
+
import { type SkillDetail, type SkillSummary, SkillsService, type UploadedSkill } from "./skills.service.js";
|
|
6
6
|
declare const UploadBody: z.ZodObject<{
|
|
7
7
|
name: z.ZodString;
|
|
8
8
|
size: z.ZodNumber;
|
|
@@ -8,13 +8,14 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
8
8
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
9
|
};
|
|
10
10
|
import { hasControlChars, MEDIA_NAME_MAX_CHARS } from "@capybara-hq/plugin-sdk";
|
|
11
|
-
import {
|
|
11
|
+
import { Controller, Delete, Get, HttpCode, Inject, Param, Post } from "@nestjs/common";
|
|
12
12
|
import { z } from "zod";
|
|
13
13
|
import { SKILL_PACKAGE_UPLOAD_MAX_BYTES, } from "../conversations/attachments.service.js";
|
|
14
|
-
import { SKILLS } from "../http/tokens.js";
|
|
15
|
-
import { ZodPipe } from "../http/zod.pipe.js";
|
|
16
14
|
import { CurrentPrincipal, patTokenId, requireUser, } from "../identity/principal.js";
|
|
15
|
+
import { createZodDto } from "../infra/validation/create-zod-dto.js";
|
|
16
|
+
import { ZBody } from "../infra/validation/zod-params.js";
|
|
17
17
|
import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
|
|
18
|
+
import { SkillsService, } from "./skills.service.js";
|
|
18
19
|
const UploadBody = z
|
|
19
20
|
.object({
|
|
20
21
|
name: z
|
|
@@ -26,6 +27,10 @@ const UploadBody = z
|
|
|
26
27
|
})
|
|
27
28
|
.strict();
|
|
28
29
|
const CreateBody = z.object({ uploadId: z.string().min(1).max(100) }).strict();
|
|
30
|
+
class SkillUploadBody extends createZodDto(UploadBody, "SkillUploadBody") {
|
|
31
|
+
}
|
|
32
|
+
class SkillCreateBody extends createZodDto(CreateBody, "SkillCreateBody") {
|
|
33
|
+
}
|
|
29
34
|
/**
|
|
30
35
|
* The org skill library (`/api/v1/orgs/:orgId/skills`, human users only):
|
|
31
36
|
* - read: `skills.read` (member and up) — `GET /` list, `GET /:id` detail (versions and file
|
|
@@ -73,14 +78,14 @@ __decorate([
|
|
|
73
78
|
OrgAction("skills.manage"),
|
|
74
79
|
__param(0, CurrentPrincipal()),
|
|
75
80
|
__param(1, CurrentOrg()),
|
|
76
|
-
__param(2,
|
|
81
|
+
__param(2, ZBody(SkillUploadBody))
|
|
77
82
|
], SkillsController.prototype, "createUpload", null);
|
|
78
83
|
__decorate([
|
|
79
84
|
Post(),
|
|
80
85
|
OrgAction("skills.manage"),
|
|
81
86
|
__param(0, CurrentPrincipal()),
|
|
82
87
|
__param(1, CurrentOrg()),
|
|
83
|
-
__param(2,
|
|
88
|
+
__param(2, ZBody(SkillCreateBody))
|
|
84
89
|
], SkillsController.prototype, "create", null);
|
|
85
90
|
__decorate([
|
|
86
91
|
Get(),
|
|
@@ -105,6 +110,6 @@ __decorate([
|
|
|
105
110
|
], SkillsController.prototype, "remove", null);
|
|
106
111
|
SkillsController = __decorate([
|
|
107
112
|
Controller("api/v1/orgs/:orgId/skills"),
|
|
108
|
-
__param(0, Inject(
|
|
113
|
+
__param(0, Inject(SkillsService))
|
|
109
114
|
], SkillsController);
|
|
110
115
|
export { SkillsController };
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
import { Module } from "@nestjs/common";
|
|
8
|
+
import { AgentLookupModule } from "../agents/agent-lookup.js";
|
|
9
|
+
import { AttachmentsModule } from "../conversations/attachments.module.js";
|
|
10
|
+
import { EventLogModule } from "../conversations/event-log.js";
|
|
11
|
+
import { OrgLockModule } from "../orgs/org-lock.js";
|
|
12
|
+
import { StorageModule } from "../storage/storage.module.js";
|
|
13
|
+
import { SkillsCatalogService } from "./catalog.js";
|
|
14
|
+
import { SkillChangesService } from "./changes.service.js";
|
|
15
|
+
import { SkillInvoker } from "./invoke.js";
|
|
16
|
+
import { SkillsService } from "./skills.service.js";
|
|
17
|
+
/**
|
|
18
|
+
* Skills: the org library, agent-written skills and their approvals, the run start's skills
|
|
19
|
+
* catalog snapshot and the one {@link SkillInvoker}.
|
|
20
|
+
*/
|
|
21
|
+
let SkillsModule = class SkillsModule {
|
|
22
|
+
};
|
|
23
|
+
SkillsModule = __decorate([
|
|
24
|
+
Module({
|
|
25
|
+
imports: [StorageModule, OrgLockModule, EventLogModule, AttachmentsModule, AgentLookupModule],
|
|
26
|
+
providers: [SkillsService, SkillChangesService, SkillsCatalogService, SkillInvoker],
|
|
27
|
+
exports: [SkillsService, SkillChangesService, SkillsCatalogService, SkillInvoker],
|
|
28
|
+
})
|
|
29
|
+
], SkillsModule);
|
|
30
|
+
export { SkillsModule };
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { type SkillInvocation } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import { type Transaction } from "kysely";
|
|
3
2
|
import type { AgentDefinition } from "../agents/definition.js";
|
|
4
|
-
import {
|
|
5
|
-
import type {
|
|
3
|
+
import { AttachmentsService, type CreatedAttachment } from "../conversations/attachments.service.js";
|
|
4
|
+
import type { KernelSchemaDb, SkillManifest, SourceFormat } from "../db/kernel-schema.js";
|
|
6
5
|
import { ApiError } from "../errors.js";
|
|
7
|
-
import
|
|
6
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
7
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
8
|
+
import { OrgLock } from "../orgs/org-lock.js";
|
|
9
|
+
import { StorageService } from "../storage/storage.service.js";
|
|
8
10
|
import { type SkillPackageFile } from "./package.js";
|
|
9
|
-
type Trx = Transaction<KernelDatabase>;
|
|
10
11
|
/** Where an org skill came from (spec §9.2): the org's own, or a catalog plugin at a version. */
|
|
11
12
|
export type SkillSource = {
|
|
12
13
|
kind: "org";
|
|
@@ -26,7 +27,7 @@ export interface SkillConflict {
|
|
|
26
27
|
* agent) and the skills of other catalog items. A skill of the same item (a reinstall or upgrade)
|
|
27
28
|
* is not a conflict. In the order of `skillNames`.
|
|
28
29
|
*/
|
|
29
|
-
export declare function skillConflicts(db:
|
|
30
|
+
export declare function skillConflicts(db: KernelSchemaDb, orgId: string, itemId: string, skillNames: readonly string[]): Promise<SkillConflict[]>;
|
|
30
31
|
/** One line of the conflict message (spec §9.2). */
|
|
31
32
|
export declare function skillConflictLine(c: SkillConflict): string;
|
|
32
33
|
/** 409 `plugin.skill_conflict`: one message line and one detail per conflicting skill. */
|
|
@@ -82,17 +83,12 @@ export interface UploadedSkill {
|
|
|
82
83
|
version: number;
|
|
83
84
|
created: boolean;
|
|
84
85
|
}
|
|
85
|
-
export interface SkillsDeps {
|
|
86
|
-
db: KernelDb;
|
|
87
|
-
storage: StorageService;
|
|
88
|
-
attachments: Pick<AttachmentsService, "create" | "readSkillPackage" | "consumeSkillPackage">;
|
|
89
|
-
}
|
|
90
86
|
/**
|
|
91
87
|
* 在调用方事务里核对 agent 定义引用的组织技能:每个 id 都必须是该组织未删除的 `scope=org` 技能,
|
|
92
88
|
* 否则 `validation_failed`(path `skills.orgSkills.<i>`);不可重复。调用方须已锁组织行(技能删除同样锁组织行,二者串行)。
|
|
93
89
|
* `kept`:当前版本里已有的引用(保存时合法),修改时不再核对——技能之后被删也不挡住其他改动(运行时由 T14 忽略已删除的技能)。
|
|
94
90
|
*/
|
|
95
|
-
export declare function assertOrgSkills(
|
|
91
|
+
export declare function assertOrgSkills(db: KernelSchemaDb, orgId: string, ids: readonly string[], kept?: ReadonlySet<string>): Promise<void>;
|
|
96
92
|
/** Why a pinned skill reference is refused (`agent.pinned_invalid` details). */
|
|
97
93
|
export type PinnedSkillProblem = "not_selected" | "not_found" | "duplicate" | "too_many" | "too_large"
|
|
98
94
|
/** Phase D: the skill's current version is manual-only (not in the model's catalog). */
|
|
@@ -113,14 +109,26 @@ export type PinnedSkillProblem = "not_selected" | "not_found" | "duplicate" | "t
|
|
|
113
109
|
* when the pinned list changed: a pinned skill's new version never blocks an unrelated edit (the
|
|
114
110
|
* run keeps what fits).
|
|
115
111
|
*/
|
|
116
|
-
export declare function assertPinnedSkills(
|
|
112
|
+
export declare function assertPinnedSkills(db: KernelSchemaDb, orgId: string, agentId: string | null, skills: AgentDefinition["skills"], kept?: readonly string[]): Promise<void>;
|
|
117
113
|
/**
|
|
118
114
|
* 技能库(M5 T13):组织技能的上传(新技能或新版本)、列表、详情与软删除。
|
|
119
115
|
* 字节在对象存储 `kernel/<orgId>/skills/<uploadId>/<path>`,元数据在 PG;无进程内状态,可多副本共用。
|
|
120
116
|
*/
|
|
117
|
+
/** A validated skill package: its name, description, files and invocation. */
|
|
118
|
+
interface SkillPackageInput {
|
|
119
|
+
name: string;
|
|
120
|
+
description: string;
|
|
121
|
+
files: SkillPackageFile[];
|
|
122
|
+
/** Phase D: stored in the manifest when it is not the default. */
|
|
123
|
+
invocation?: SkillInvocation;
|
|
124
|
+
}
|
|
121
125
|
export declare class SkillsService {
|
|
122
|
-
private readonly
|
|
123
|
-
|
|
126
|
+
private readonly db;
|
|
127
|
+
private readonly storage;
|
|
128
|
+
private readonly attachments;
|
|
129
|
+
readonly txHost: TransactionHost;
|
|
130
|
+
private readonly orgLock;
|
|
131
|
+
constructor(db: KernelDb, storage: StorageService, attachments: AttachmentsService, txHost: TransactionHost, orgLock: OrgLock);
|
|
124
132
|
/** 登记一个技能包上传(预签名 POST,`application/zip`,≤ 50MB);角色由路由的 `skills.manage` 把关。 */
|
|
125
133
|
createUpload(orgId: string, accountId: string, input: {
|
|
126
134
|
name: string;
|
|
@@ -136,24 +144,24 @@ export declare class SkillsService {
|
|
|
136
144
|
* 同一上传已经产生过版本(上次提交了、响应丢了而重试)→ 直接返回那个版本(同组织、同一发起人)。
|
|
137
145
|
*/
|
|
138
146
|
upload(orgId: string, actorAccountId: string, uploadId: string, actorTokenId?: string): Promise<UploadedSkill>;
|
|
147
|
+
/**
|
|
148
|
+
* The transaction of {@link upload}: under the org row lock (re-checking `skills.manage`), the
|
|
149
|
+
* custom-skill policy is re-checked and the upload consumed (of concurrent requests for the same
|
|
150
|
+
* upload only one succeeds), then the version is written in the same transaction
|
|
151
|
+
* ({@link createVersionIn} joins it).
|
|
152
|
+
*/
|
|
153
|
+
private createUploadedVersionIn;
|
|
139
154
|
/**
|
|
140
155
|
* 用一组已校验的技能文件创建组织技能或给同名技能新增版本(上传与企业目录安装共用):
|
|
141
156
|
* 1. 把文件写到 `kernel/<orgId>/<prefix>`(缺省 `skills/<新 id>/`);
|
|
142
|
-
* 2. 一个事务里:锁组织行并复核 `skills.manage
|
|
157
|
+
* 2. 一个事务里:锁组织行并复核 `skills.manage`(目录安装:按条目策略复核),
|
|
143
158
|
* 同名未删除的组织技能存在则 `current_version + 1`,否则新建;技能与版本都记下 `directory` 来源(没有则清空:
|
|
144
159
|
* 自定义上传盖在目录技能上就不再算目录安装),写版本与审计
|
|
145
160
|
* (`skill.created` / `skill.version_created`,目录安装时 detail 带 directory)。
|
|
146
161
|
*/
|
|
147
|
-
createVersionFromFiles(orgId: string, actorAccountId: string, pkg: {
|
|
148
|
-
name: string;
|
|
149
|
-
description: string;
|
|
150
|
-
files: SkillPackageFile[];
|
|
151
|
-
/** Phase D: stored in the manifest when it is not the default. */
|
|
152
|
-
invocation?: SkillInvocation;
|
|
153
|
-
}, opts?: {
|
|
162
|
+
createVersionFromFiles(orgId: string, actorAccountId: string, pkg: SkillPackageInput, opts?: {
|
|
154
163
|
prefix?: string;
|
|
155
164
|
actorTokenId?: string;
|
|
156
|
-
inTransaction?: (t: Trx) => Promise<void>;
|
|
157
165
|
/** Catalog provenance; `approvedBy` is the item whose policy approves it (default `itemId`). */
|
|
158
166
|
catalog?: {
|
|
159
167
|
itemId: string;
|
|
@@ -165,16 +173,23 @@ export declare class SkillsService {
|
|
|
165
173
|
suggestPinned?: boolean;
|
|
166
174
|
};
|
|
167
175
|
}): Promise<UploadedSkill>;
|
|
176
|
+
/** Writes a skill package's files to `kernel/<orgId>/<prefix>` (a few at a time). */
|
|
177
|
+
private putFiles;
|
|
178
|
+
/** The transaction of {@link createVersionFromFiles}. */
|
|
179
|
+
private createVersionIn;
|
|
168
180
|
/**
|
|
169
|
-
*
|
|
170
|
-
*
|
|
181
|
+
* In the caller's transaction (`mandatory`: the caller holds the org row lock), reverts the
|
|
182
|
+
* version a plugin install added to an existing skill: only while `version` is still current,
|
|
183
|
+
* back to the previous version, deleting this version's row (returns false when a newer version
|
|
184
|
+
* exists); the skill's description and catalog source revert too. Audit `skill.version_reverted`.
|
|
171
185
|
*/
|
|
172
|
-
revertVersionIn(
|
|
186
|
+
revertVersionIn(orgId: string, skillId: string, version: number, actorAccountId: string, reason: string): Promise<boolean>;
|
|
173
187
|
/**
|
|
174
|
-
*
|
|
175
|
-
*
|
|
188
|
+
* In the caller's transaction (`mandatory`: the caller holds the org row lock), soft-deletes an
|
|
189
|
+
* org skill (plugin install rollback and uninstall). Audit `skill.deleted` with the reason.
|
|
190
|
+
* Returns false when it is already deleted or missing.
|
|
176
191
|
*/
|
|
177
|
-
softDeleteIn(
|
|
192
|
+
softDeleteIn(orgId: string, skillId: string, actorAccountId: string, reason: string): Promise<boolean>;
|
|
178
193
|
/** 组织技能库(`scope=org`、未删除),按名字排序。 */
|
|
179
194
|
list(orgId: string): Promise<SkillSummary[]>;
|
|
180
195
|
/** 对该 agent 自动生效的技能(`scope=agent`、未删除),按名字排序。 */
|
|
@@ -188,5 +203,7 @@ export declare class SkillsService {
|
|
|
188
203
|
* 保存时会被拒绝(运行时由 T14 忽略已删除的技能)。不存在 / 已删除 → `skill.not_found`。
|
|
189
204
|
*/
|
|
190
205
|
softDelete(orgId: string, skillId: string, actorAccountId: string, actorTokenId?: string): Promise<void>;
|
|
206
|
+
/** The transaction of {@link softDelete}. */
|
|
207
|
+
private softDeleteTx;
|
|
191
208
|
}
|
|
192
209
|
export {};
|