@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
package/dist/app.js
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import { NestFactory } from "@nestjs/core";
|
|
3
|
+
import { createKernelAdapter } from "./http/adapter.js";
|
|
4
|
+
import { createHttpApp } from "./http/app.js";
|
|
5
|
+
import { NestLogAdapter } from "./http/nest-logger.js";
|
|
6
|
+
import { GracefulShutdown } from "./infra/lifecycle/graceful-shutdown.service.js";
|
|
7
|
+
import { handleShutdownSignals, } from "./infra/lifecycle/shutdown-signals.js";
|
|
8
|
+
import { setupSwagger } from "./infra/swagger/swagger.js";
|
|
9
|
+
import { KernelModule } from "./kernel.module.js";
|
|
10
|
+
import { KernelLifecycle } from "./lifecycle/kernel-lifecycle.js";
|
|
11
|
+
import { createConfiguredLogger } from "./log-config.js";
|
|
12
|
+
/**
|
|
13
|
+
* Builds the kernel application (one Nest application, root module {@link KernelModule}) and sets
|
|
14
|
+
* up its HTTP side, without initializing it: nothing connects and nothing starts. A failure
|
|
15
|
+
* releases what was created (Redis connections, the pool) before it is thrown. Internal (not
|
|
16
|
+
* exported from the package): {@link startKernelApp} and the kernel's own tests that need the
|
|
17
|
+
* application before its start; everything else uses {@link createKernelApp}.
|
|
18
|
+
*/
|
|
19
|
+
export async function buildKernelApp(config, options = {}) {
|
|
20
|
+
const logger = options.logger ?? createConfiguredLogger(config);
|
|
21
|
+
const app = await NestFactory.create(KernelModule.forRoot(config, { ...options, logger }), createKernelAdapter(config.http.trustProxy), { logger: new NestLogAdapter(logger), abortOnError: false });
|
|
22
|
+
const lifecycle = app.get(KernelLifecycle);
|
|
23
|
+
const gateway = lifecycle.gatewayRoutes();
|
|
24
|
+
try {
|
|
25
|
+
lifecycle.attachHttp(await createHttpApp({
|
|
26
|
+
log: logger,
|
|
27
|
+
servePlugins: config.roles.includes("api") || config.roles.includes("gateway"),
|
|
28
|
+
...(gateway !== undefined && { gateway }),
|
|
29
|
+
replicaId: config.http.replicaId === undefined ? undefined : String(config.http.replicaId),
|
|
30
|
+
packageMaxBytes: config.packages.maxBytes,
|
|
31
|
+
}, app));
|
|
32
|
+
setupSwagger(app, config.http.swagger);
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
// Nothing started: only release the connections (the stop phases are skipped)
|
|
36
|
+
lifecycle.releaseOnly();
|
|
37
|
+
await app.close();
|
|
38
|
+
throw e;
|
|
39
|
+
}
|
|
40
|
+
return app;
|
|
41
|
+
}
|
|
42
|
+
const closing = new WeakMap();
|
|
43
|
+
/**
|
|
44
|
+
* Closes a kernel application once (later calls get the same promise): the stop phases begin at
|
|
45
|
+
* once (`KernelLifecycle.stop`: readiness 503, the start aborted at its next checkpoint), next to
|
|
46
|
+
* `app.close()`, which runs the shutdown hooks (the stop phases are the same promise, then Redis
|
|
47
|
+
* and the pool). Use it to stop an application from {@link createKernelApp} /
|
|
48
|
+
* {@link startKernelApp} (tests, `@capybara-hq/testing`), so the stop begins before Nest's
|
|
49
|
+
* `onModuleDestroy` hooks run.
|
|
50
|
+
*/
|
|
51
|
+
export function closeKernelApp(app) {
|
|
52
|
+
let p = closing.get(app);
|
|
53
|
+
if (p === undefined) {
|
|
54
|
+
p = Promise.all([app.get(KernelLifecycle).stop(), app.close()]).then(() => { });
|
|
55
|
+
closing.set(app, p);
|
|
56
|
+
}
|
|
57
|
+
return p;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Initializes a built kernel application: `init()` runs the start sequence
|
|
61
|
+
* (`KernelLifecycle.onApplicationBootstrap`). A failure (unless the shutdown began meanwhile) is
|
|
62
|
+
* logged; either way the application is closed (the stop phases, then Redis and the pool) before
|
|
63
|
+
* the error is thrown.
|
|
64
|
+
*/
|
|
65
|
+
async function initKernelApp(app) {
|
|
66
|
+
try {
|
|
67
|
+
await app.init();
|
|
68
|
+
}
|
|
69
|
+
catch (e) {
|
|
70
|
+
if (!app.get(GracefulShutdown).isShuttingDown()) {
|
|
71
|
+
app.get(KernelLifecycle).log.error("kernel start failed", { err: e });
|
|
72
|
+
}
|
|
73
|
+
await closeKernelApp(app);
|
|
74
|
+
throw e;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Creates the kernel application and runs its start sequence (nest kernel spec §4): Redis,
|
|
79
|
+
* migrations, the official marketplace, the bootstrap step, the extension load, the role parts,
|
|
80
|
+
* extension routes, the lifecycle reconcile and the config watch. Does not listen and installs no
|
|
81
|
+
* process-wide handler.
|
|
82
|
+
*/
|
|
83
|
+
export async function createKernelApp(config, options = {}) {
|
|
84
|
+
const app = await buildKernelApp(config, options);
|
|
85
|
+
await initKernelApp(app);
|
|
86
|
+
return app;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Builds the kernel application, installs the SIGTERM / SIGINT handlers
|
|
90
|
+
* ({@link handleShutdownSignals}), runs the start sequence and listens on `config.http.port`:
|
|
91
|
+
* nothing is served before the start sequence finished. The handlers are installed before the
|
|
92
|
+
* start, so a signal during it aborts the start at its next checkpoint and closes the application
|
|
93
|
+
* cleanly; this function then rejects once the signal path has exited (with 0). A second signal
|
|
94
|
+
* exits with 1 at once. A failed build or start is logged (`kernel start failed`) before it is
|
|
95
|
+
* thrown.
|
|
96
|
+
*/
|
|
97
|
+
export async function startKernelApp(config, options = {}, signalOptions = {}) {
|
|
98
|
+
const logger = options.logger ?? createConfiguredLogger(config);
|
|
99
|
+
let app;
|
|
100
|
+
try {
|
|
101
|
+
app = await buildKernelApp(config, { ...options, logger });
|
|
102
|
+
}
|
|
103
|
+
catch (e) {
|
|
104
|
+
// Nothing to stop (the build released what it created); the process entry only sees the error
|
|
105
|
+
logger.error("kernel start failed", { err: e });
|
|
106
|
+
throw e;
|
|
107
|
+
}
|
|
108
|
+
await startBuiltKernelApp(app, config, signalOptions);
|
|
109
|
+
return app;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* The start half of {@link startKernelApp} for an application from {@link buildKernelApp}: installs
|
|
113
|
+
* the signal handlers, runs the start sequence and listens on `config.http.port`. Internal (not
|
|
114
|
+
* exported from the package): {@link startKernelApp} and the kernel's own tests that need the
|
|
115
|
+
* application before its start.
|
|
116
|
+
*/
|
|
117
|
+
export async function startBuiltKernelApp(app, config, signalOptions = {}) {
|
|
118
|
+
const lifecycle = app.get(KernelLifecycle);
|
|
119
|
+
const signals = handleShutdownSignals(() => closeKernelApp(app), lifecycle.log, signalOptions);
|
|
120
|
+
try {
|
|
121
|
+
await initKernelApp(app);
|
|
122
|
+
try {
|
|
123
|
+
await lifecycle.listen(config.http.port);
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
if (!app.get(GracefulShutdown).isShuttingDown()) {
|
|
127
|
+
lifecycle.log.error("kernel start failed", { err: e });
|
|
128
|
+
}
|
|
129
|
+
await closeKernelApp(app);
|
|
130
|
+
throw e;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch (e) {
|
|
134
|
+
// Stopped by a signal: the signal path closes and exits; otherwise nothing is left to stop
|
|
135
|
+
const exiting = signals.exiting();
|
|
136
|
+
if (exiting)
|
|
137
|
+
await exiting;
|
|
138
|
+
else
|
|
139
|
+
signals.dispose();
|
|
140
|
+
throw e;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/** The in-process HTTP of a kernel application (`inject`, the route list). */
|
|
144
|
+
export function kernelAppHttp(app) {
|
|
145
|
+
return app.get(KernelLifecycle).http;
|
|
146
|
+
}
|
|
147
|
+
/** The port a kernel application listens on; undefined before it listens and after the stop. */
|
|
148
|
+
export function kernelAppPort(app) {
|
|
149
|
+
return app.get(KernelLifecycle).port;
|
|
150
|
+
}
|
|
@@ -2,9 +2,9 @@ import type { FastifyReply } from "fastify";
|
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import type { AdminExtensionView } from "../extensions/permission-view.js";
|
|
4
4
|
import { type Principal } from "../identity/principal.js";
|
|
5
|
-
import { type CatalogItemDetail, type CatalogItemView,
|
|
6
|
-
import
|
|
7
|
-
import type
|
|
5
|
+
import { type CatalogItemDetail, type CatalogItemView, CatalogService, type PermissionsMismatch } from "./catalog.service.js";
|
|
6
|
+
import { OrgCatalogService } from "./org-catalog.service.js";
|
|
7
|
+
import { type PluginConfirmResult, PluginImport, type PluginReview } from "./plugin-import.js";
|
|
8
8
|
declare const NpmBody: z.ZodObject<{
|
|
9
9
|
package: z.ZodString;
|
|
10
10
|
version: z.ZodOptional<z.ZodString>;
|
|
@@ -7,14 +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 {
|
|
10
|
+
import { Controller, Delete, Get, HttpCode, Inject, Param, Post, Put, Req, Res, } from "@nestjs/common";
|
|
11
11
|
import { z } from "zod";
|
|
12
12
|
import { ApiError } from "../errors.js";
|
|
13
|
-
import { CATALOG, ORG_CATALOG, PLUGIN_IMPORT } from "../http/tokens.js";
|
|
14
|
-
import { ZodPipe } from "../http/zod.pipe.js";
|
|
15
13
|
import { CurrentPrincipal, EnterpriseAdmin, patTokenId, requireUser, } from "../identity/principal.js";
|
|
16
|
-
import {
|
|
14
|
+
import { createZodDto } from "../infra/validation/create-zod-dto.js";
|
|
15
|
+
import { ZBody, ZQuery } from "../infra/validation/zod-params.js";
|
|
16
|
+
import { CATALOG_LIST_MAX_LIMIT, CatalogService, } from "./catalog.service.js";
|
|
17
17
|
import { sendCatalogIcon } from "./org-catalog.controller.js";
|
|
18
|
+
import { OrgCatalogService } from "./org-catalog.service.js";
|
|
19
|
+
import { PluginImport } from "./plugin-import.js";
|
|
18
20
|
const NpmBody = z.object({
|
|
19
21
|
package: z.string().min(1).max(214),
|
|
20
22
|
version: z.string().min(1).max(256).optional(),
|
|
@@ -43,6 +45,18 @@ const actorOpts = (actor) => {
|
|
|
43
45
|
const tokenId = patTokenId(actor);
|
|
44
46
|
return tokenId !== undefined ? { actorTokenId: tokenId } : {};
|
|
45
47
|
};
|
|
48
|
+
class CatalogImportConfirmBody extends createZodDto(ConfirmBody, "CatalogImportConfirmBody") {
|
|
49
|
+
}
|
|
50
|
+
class CatalogGitImportBody extends createZodDto(GitBody, "CatalogGitImportBody") {
|
|
51
|
+
}
|
|
52
|
+
class CatalogDeploymentInstallBody extends createZodDto(InstallBody, "CatalogDeploymentInstallBody") {
|
|
53
|
+
}
|
|
54
|
+
class CatalogItemsQuery extends createZodDto(ListQuery, "CatalogItemsQuery") {
|
|
55
|
+
}
|
|
56
|
+
class CatalogNpmImportBody extends createZodDto(NpmBody, "CatalogNpmImportBody") {
|
|
57
|
+
}
|
|
58
|
+
class CatalogPolicyBody extends createZodDto(PolicyBody, "CatalogPolicyBody") {
|
|
59
|
+
}
|
|
46
60
|
/**
|
|
47
61
|
* The enterprise catalog (`/api/v1/admin/catalog/*`, enterprise admins): plugin import (upload / npm
|
|
48
62
|
* prepare, then confirm), the item list and detail, policy, delete, and installing an item's
|
|
@@ -184,13 +198,13 @@ __decorate([
|
|
|
184
198
|
Post("import/npm"),
|
|
185
199
|
HttpCode(200),
|
|
186
200
|
__param(0, CurrentPrincipal()),
|
|
187
|
-
__param(1,
|
|
201
|
+
__param(1, ZBody(CatalogNpmImportBody))
|
|
188
202
|
], AdminCatalogController.prototype, "importNpm", null);
|
|
189
203
|
__decorate([
|
|
190
204
|
Post("import/git"),
|
|
191
205
|
HttpCode(200),
|
|
192
206
|
__param(0, CurrentPrincipal()),
|
|
193
|
-
__param(1,
|
|
207
|
+
__param(1, ZBody(CatalogGitImportBody))
|
|
194
208
|
], AdminCatalogController.prototype, "importGit", null);
|
|
195
209
|
__decorate([
|
|
196
210
|
Get("imports/:stagingId"),
|
|
@@ -201,11 +215,11 @@ __decorate([
|
|
|
201
215
|
HttpCode(201),
|
|
202
216
|
__param(0, CurrentPrincipal()),
|
|
203
217
|
__param(1, Param("stagingId")),
|
|
204
|
-
__param(2,
|
|
218
|
+
__param(2, ZBody(CatalogImportConfirmBody))
|
|
205
219
|
], AdminCatalogController.prototype, "confirm", null);
|
|
206
220
|
__decorate([
|
|
207
221
|
Get("items"),
|
|
208
|
-
__param(0,
|
|
222
|
+
__param(0, ZQuery(CatalogItemsQuery))
|
|
209
223
|
], AdminCatalogController.prototype, "list", null);
|
|
210
224
|
__decorate([
|
|
211
225
|
Get("items/:id"),
|
|
@@ -220,7 +234,7 @@ __decorate([
|
|
|
220
234
|
Put("items/:id/policy"),
|
|
221
235
|
__param(0, CurrentPrincipal()),
|
|
222
236
|
__param(1, Param("id")),
|
|
223
|
-
__param(2,
|
|
237
|
+
__param(2, ZBody(CatalogPolicyBody))
|
|
224
238
|
], AdminCatalogController.prototype, "setPolicy", null);
|
|
225
239
|
__decorate([
|
|
226
240
|
Delete("items/:id"),
|
|
@@ -233,13 +247,13 @@ __decorate([
|
|
|
233
247
|
HttpCode(200),
|
|
234
248
|
__param(0, CurrentPrincipal()),
|
|
235
249
|
__param(1, Param("id")),
|
|
236
|
-
__param(2,
|
|
250
|
+
__param(2, ZBody(CatalogDeploymentInstallBody))
|
|
237
251
|
], AdminCatalogController.prototype, "installToDeployment", null);
|
|
238
252
|
AdminCatalogController = __decorate([
|
|
239
253
|
Controller("api/v1/admin/catalog"),
|
|
240
254
|
EnterpriseAdmin(),
|
|
241
|
-
__param(0, Inject(
|
|
242
|
-
__param(1, Inject(
|
|
243
|
-
__param(2, Inject(
|
|
255
|
+
__param(0, Inject(CatalogService)),
|
|
256
|
+
__param(1, Inject(PluginImport)),
|
|
257
|
+
__param(2, Inject(OrgCatalogService))
|
|
244
258
|
], AdminCatalogController);
|
|
245
259
|
export { AdminCatalogController };
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { type AgentTemplate, type Connector, type ConnectorTemplateFile, type ConnectorTemplateSpec, type LocalizedName, type PluginManifest } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
3
|
+
import type { ExtensionRegistry } from "../extensions/registry.js";
|
|
4
|
+
import type { OrgLock } from "../orgs/org-lock.js";
|
|
5
|
+
import { type OrgAction } from "../orgs/roles.js";
|
|
6
|
+
import { checkSkillFiles, type SkillPackageFile } from "../skills/package.js";
|
|
7
|
+
import type { StorageService } from "../storage/storage.service.js";
|
|
8
|
+
import type { ConnectorTemplateRef, CreateConnectorInput } from "../tools/connectors.service.js";
|
|
9
|
+
import type { CatalogItemView } from "./catalog.service.js";
|
|
10
|
+
import type { ConnectorInstallInput, PluginInstallInput, PluginInstallView } from "./plugin-install.js";
|
|
11
|
+
import type { CatalogRequestView } from "./requests.service.js";
|
|
12
|
+
/** A catalog item from an organization's view (`GET /orgs/:orgId/catalog`). */
|
|
13
|
+
export interface OrgCatalogItem extends Omit<CatalogItemView, "installs" | "marketplaceId" | "latestMarketplaceVersion" | "newerInMarketplace"> {
|
|
14
|
+
/**
|
|
15
|
+
* `yes` installable now; `needs_approval` needs enterprise admin approval (install returns 202 and
|
|
16
|
+
* creates a request); `granted` approved for this org; `disabled` disabled by the enterprise admin
|
|
17
|
+
* (members don't see it); `not_deployed` the plugin's extension is not on the deployment.
|
|
18
|
+
*/
|
|
19
|
+
installable: "yes" | "needs_approval" | "granted" | "disabled" | "not_deployed";
|
|
20
|
+
/**
|
|
21
|
+
* This org's live plugin install of the item (installing, installed or upgrading);
|
|
22
|
+
* `upgradeAvailable` is the version it can be upgraded to now (spec §10), null when none.
|
|
23
|
+
*/
|
|
24
|
+
installed: {
|
|
25
|
+
pluginInstallId: string;
|
|
26
|
+
version: string;
|
|
27
|
+
upgradeAvailable: string | null;
|
|
28
|
+
} | null;
|
|
29
|
+
/** This org's latest request for the item. */
|
|
30
|
+
request: {
|
|
31
|
+
id: string;
|
|
32
|
+
stage: "org" | "deployment";
|
|
33
|
+
status: string;
|
|
34
|
+
} | null;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* One connector template in an item's detail (for the install wizard): the endpoint preset, the
|
|
38
|
+
* paths an org may edit and the auth preset (no credentials). `id` is the template file's base name,
|
|
39
|
+
* sent as `connectors[id]` in the install body.
|
|
40
|
+
*/
|
|
41
|
+
export interface OrgCatalogTemplate {
|
|
42
|
+
id: string;
|
|
43
|
+
displayName: LocalizedName | null;
|
|
44
|
+
description: string;
|
|
45
|
+
plugin: string;
|
|
46
|
+
connector: string;
|
|
47
|
+
endpoint: Record<string, unknown>;
|
|
48
|
+
editableEndpoint: string[];
|
|
49
|
+
auth: Record<string, unknown>;
|
|
50
|
+
ownership: "org" | "personal" | null;
|
|
51
|
+
}
|
|
52
|
+
/** `GET /orgs/:orgId/catalog/:itemId`: the item and what the install wizard needs (latest version). */
|
|
53
|
+
export interface OrgCatalogDetail {
|
|
54
|
+
item: OrgCatalogItem;
|
|
55
|
+
/** The latest version has an icon (`GET .../icon`). */
|
|
56
|
+
hasIcon: boolean;
|
|
57
|
+
/** The plugin's extension (its name), null without one. */
|
|
58
|
+
extension: string | null;
|
|
59
|
+
templates: OrgCatalogTemplate[];
|
|
60
|
+
/** The plugin's dependencies (name and range). */
|
|
61
|
+
dependencies: {
|
|
62
|
+
name: string;
|
|
63
|
+
range: string;
|
|
64
|
+
}[];
|
|
65
|
+
/** The skill directories. */
|
|
66
|
+
skills: string[];
|
|
67
|
+
/** The agent template files (`agents/<name>.md`, sub-agents spec §16). */
|
|
68
|
+
agents: string[];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* A connector template as an org sees it (the install wizard and the upgrade preview's inputs):
|
|
72
|
+
* presets and editable paths, no credentials.
|
|
73
|
+
*/
|
|
74
|
+
export declare function orgTemplateView(id: string, file: ConnectorTemplateFile): OrgCatalogTemplate;
|
|
75
|
+
/** An item's icon (the latest version's plugin icon). */
|
|
76
|
+
export interface CatalogIcon {
|
|
77
|
+
data: Uint8Array;
|
|
78
|
+
contentType: "image/svg+xml" | "image/png";
|
|
79
|
+
policy: "allow" | "needs_approval" | "disabled";
|
|
80
|
+
}
|
|
81
|
+
/** The parts of a catalog version row an org install reads. */
|
|
82
|
+
export interface CatalogVersionFiles {
|
|
83
|
+
manifest: unknown;
|
|
84
|
+
object_prefix: string | null;
|
|
85
|
+
files: {
|
|
86
|
+
path: string;
|
|
87
|
+
size: number;
|
|
88
|
+
sha256: string;
|
|
89
|
+
}[];
|
|
90
|
+
}
|
|
91
|
+
/** Whether the item's latest version has an icon; unreadable counts as none. */
|
|
92
|
+
export declare function catalogHasIcon(db: KernelSchemaDb, itemId: string): Promise<boolean>;
|
|
93
|
+
/**
|
|
94
|
+
* Reads the icon of the item's latest version (served only through kernel routes, with nosniff and
|
|
95
|
+
* a CSP sandbox in the response headers; the web only shows it with `<img>`). Item missing, deleted
|
|
96
|
+
* or (when `includeDisabled` is false) disabled -> `catalog.item_not_found` (decided before reading
|
|
97
|
+
* storage); no icon -> `catalog.icon_not_found`; stored content that is not a valid svg / png
|
|
98
|
+
* (checked at import, this guards against tampered storage) -> `internal`.
|
|
99
|
+
*/
|
|
100
|
+
export declare function readCatalogIcon(db: KernelSchemaDb, storage: StorageService, itemId: string, includeDisabled: boolean): Promise<CatalogIcon>;
|
|
101
|
+
export type { ConnectorInstallInput };
|
|
102
|
+
/** The input of `POST /orgs/:orgId/catalog/:itemId/install` (default version: the latest). */
|
|
103
|
+
export interface OrgInstallInput extends PluginInstallInput {
|
|
104
|
+
version?: string;
|
|
105
|
+
}
|
|
106
|
+
/** Install result: 201 installed; 202 needs enterprise admin approval, a request was created (or escalated). */
|
|
107
|
+
export type OrgInstallResult = {
|
|
108
|
+
status: 201;
|
|
109
|
+
installed: {
|
|
110
|
+
itemId: string;
|
|
111
|
+
version: string;
|
|
112
|
+
pluginInstallId: string;
|
|
113
|
+
};
|
|
114
|
+
/** The install view (its components, dependency installs included). */
|
|
115
|
+
install: PluginInstallView;
|
|
116
|
+
} | {
|
|
117
|
+
status: 202;
|
|
118
|
+
request: CatalogRequestView;
|
|
119
|
+
};
|
|
120
|
+
/** Upgrade result: 200 upgraded (the install view); 202 needs enterprise admin approval, a request was created. */
|
|
121
|
+
export type OrgUpgradeResult = {
|
|
122
|
+
status: 200;
|
|
123
|
+
install: PluginInstallView;
|
|
124
|
+
} | {
|
|
125
|
+
status: 202;
|
|
126
|
+
request: CatalogRequestView;
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* The org actions installing / uninstalling a plugin needs: the union over its components (an
|
|
130
|
+
* extension -> `org.extensions.manage`, skills -> `skills.manage`, connector templates ->
|
|
131
|
+
* `connectors.manage`, agent templates -> `agents.manage`), re-checked inside the org row lock.
|
|
132
|
+
*/
|
|
133
|
+
export declare function requiredActions(m: PluginManifest): OrgAction[];
|
|
134
|
+
/** Locks the org row in the caller's transaction (`orgLock` joins it) and re-checks the actor can do every action (else `forbidden`). */
|
|
135
|
+
export declare function lockOrgForActions(orgLock: Pick<OrgLock, "lockAndAuthorize">, orgId: string, actor: string, actions: OrgAction[]): Promise<void>;
|
|
136
|
+
/** The value at a dot path of `v` (own keys only), undefined when absent. */
|
|
137
|
+
export declare function getPath(v: unknown, path: string): unknown;
|
|
138
|
+
/** Sets the value at a dot path of `obj`, creating the objects on the way. */
|
|
139
|
+
export declare function setPath(obj: Record<string, unknown>, path: string, value: unknown): void;
|
|
140
|
+
/** The connector `kind` provided by extension `plugin` loaded on this replica (from the registry). */
|
|
141
|
+
export declare function findConnectorIn(registry: Pick<ExtensionRegistry, "list">, plugin: string, kind: string): Connector | undefined;
|
|
142
|
+
/** What checking a template's connector extension needs. */
|
|
143
|
+
export interface TemplateDeps {
|
|
144
|
+
/** The connector `kind` provided by extension `plugin` loaded on this replica. */
|
|
145
|
+
findConnector: (plugin: string, kind: string) => Connector | undefined;
|
|
146
|
+
/** The version of an extension loaded on this replica (undefined when not loaded). */
|
|
147
|
+
pluginVersion: (plugin: string) => string | undefined;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* 模板的连接器插件此刻是否可用:插件加载且提供该 kind,并满足 `pluginVersion`(若写了);不可用返回原因
|
|
151
|
+
* (模型不可见,给管理员看的英文)。
|
|
152
|
+
*/
|
|
153
|
+
export declare function templatePluginProblem(d: TemplateDeps, template: ConnectorTemplateSpec): string | undefined;
|
|
154
|
+
/**
|
|
155
|
+
* Builds the connector install input from a connector template plus what the org filled in (C30):
|
|
156
|
+
* the endpoint comes from the template, only paths listed in `editableEndpoint` (or fields under
|
|
157
|
+
* them) may be changed by the org, changing another path -> `validation_failed`; the auth method
|
|
158
|
+
* comes from the template, the org only gives credentials (static credentials via `credential`,
|
|
159
|
+
* OAuth via `client`). Re-checks the template's plugin, kind and `pluginVersion` against the
|
|
160
|
+
* connectors loaded on this replica right now (unmet -> `catalog.not_deployed`); the endpoint
|
|
161
|
+
* (merged as a whole) schema check, credential pattern check and OAuth URL policy are re-checked by
|
|
162
|
+
* `ConnectorsService.create`.
|
|
163
|
+
*/
|
|
164
|
+
export declare function templateConnectorInput(deps: TemplateDeps, template: ConnectorTemplateSpec, ref: ConnectorTemplateRef, input: ConnectorInstallInput | undefined, defaultName: string, at?: string): CreateConnectorInput;
|
|
165
|
+
/** 从部署存储读目录版本里的文件(按版本行的 sha256 校验);`under` 给出时只读该目录下的文件,路径去掉该前缀。 */
|
|
166
|
+
export declare function readCatalogFiles(storage: StorageService, objectPrefix: string | null, files: {
|
|
167
|
+
path: string;
|
|
168
|
+
size: number;
|
|
169
|
+
sha256: string;
|
|
170
|
+
}[], under?: string): Promise<SkillPackageFile[]>;
|
|
171
|
+
/** 校验技能文件并取名字与描述(导入时已校验过;这里防存储被改)。 */
|
|
172
|
+
export declare function skillOf(files: SkillPackageFile[]): ReturnType<typeof checkSkillFiles>;
|
|
173
|
+
/** The connector templates of a catalog version, read from storage (id = the file's base name). */
|
|
174
|
+
export declare function readCatalogTemplates(storage: StorageService, v: CatalogVersionFiles): Promise<{
|
|
175
|
+
id: string;
|
|
176
|
+
file: ConnectorTemplateFile;
|
|
177
|
+
}[]>;
|
|
178
|
+
/**
|
|
179
|
+
* The agent templates of a catalog version (`manifest.agents`, listed explicitly since import),
|
|
180
|
+
* parsed from storage (checked at import; parsed again in case storage was changed).
|
|
181
|
+
*/
|
|
182
|
+
export declare function readCatalogAgentTemplates(storage: StorageService, v: CatalogVersionFiles): Promise<{
|
|
183
|
+
path: string;
|
|
184
|
+
template: AgentTemplate;
|
|
185
|
+
}[]>;
|