@capybara-hq/kernel 0.1.0-rc.0 → 0.1.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bootstrap.json +10 -6
- package/dist/admin/admin.controller.d.ts +17 -17
- package/dist/admin/admin.controller.js +43 -26
- package/dist/admin/admin.module.d.ts +3 -0
- package/dist/admin/admin.module.js +22 -0
- package/dist/admin/extensions.controller.d.ts +14 -14
- package/dist/admin/extensions.controller.js +30 -17
- package/dist/admin/setup-lock.d.ts +16 -0
- package/dist/admin/setup-lock.js +47 -0
- package/dist/admin/setup.controller.d.ts +8 -8
- package/dist/admin/setup.controller.js +27 -25
- package/dist/admin/setup.service.d.ts +19 -27
- package/dist/admin/setup.service.js +61 -61
- package/dist/agents/agent-lookup.d.ts +53 -0
- package/dist/agents/agent-lookup.js +179 -0
- package/dist/agents/agents.controller.d.ts +1 -1
- package/dist/agents/agents.controller.js +14 -8
- package/dist/agents/agents.module.d.ts +7 -0
- package/dist/agents/agents.module.js +41 -0
- package/dist/agents/agents.service.d.ts +39 -58
- package/dist/agents/agents.service.js +261 -329
- package/dist/agents/definition.d.ts +8 -0
- package/dist/agents/definition.js +8 -0
- package/dist/agents/models.controller.d.ts +1 -1
- package/dist/agents/models.controller.js +2 -2
- package/dist/agents/templates.controller.d.ts +1 -1
- package/dist/agents/templates.controller.js +2 -2
- package/dist/agents/templates.d.ts +6 -8
- package/dist/agents/templates.js +20 -4
- package/dist/app.d.ts +93 -0
- package/dist/app.js +150 -0
- package/dist/catalog/admin-catalog.controller.d.ts +3 -3
- package/dist/catalog/admin-catalog.controller.js +27 -13
- package/dist/catalog/catalog-content.d.ts +185 -0
- package/dist/catalog/catalog-content.js +323 -0
- package/dist/catalog/catalog-items.d.ts +186 -0
- package/dist/catalog/catalog-items.js +410 -0
- package/dist/catalog/catalog.module.d.ts +14 -0
- package/dist/catalog/catalog.module.js +71 -0
- package/dist/catalog/catalog.service.d.ts +34 -188
- package/dist/catalog/catalog.service.js +155 -489
- package/dist/catalog/cli.d.ts +3 -2
- package/dist/catalog/cli.js +13 -31
- package/dist/catalog/job-ids.d.ts +15 -0
- package/dist/catalog/job-ids.js +15 -0
- package/dist/catalog/jobs.d.ts +27 -0
- package/dist/catalog/jobs.js +70 -0
- package/dist/catalog/locks.d.ts +24 -0
- package/dist/catalog/locks.js +63 -0
- package/dist/catalog/marketplaces.controller.d.ts +4 -4
- package/dist/catalog/marketplaces.controller.js +22 -11
- package/dist/catalog/marketplaces.service.d.ts +30 -13
- package/dist/catalog/marketplaces.service.js +330 -256
- package/dist/catalog/org-catalog.controller.d.ts +4 -3
- package/dist/catalog/org-catalog.controller.js +29 -14
- package/dist/catalog/org-catalog.service.d.ts +32 -198
- package/dist/catalog/org-catalog.service.js +159 -400
- package/dist/catalog/plugin-import.d.ts +73 -34
- package/dist/catalog/plugin-import.js +356 -217
- package/dist/catalog/plugin-install.d.ts +83 -41
- package/dist/catalog/plugin-install.js +421 -269
- package/dist/catalog/plugin-upgrade.d.ts +59 -4
- package/dist/catalog/plugin-upgrade.js +407 -282
- package/dist/catalog/requests.service.d.ts +27 -15
- package/dist/catalog/requests.service.js +201 -145
- package/dist/catalog/upgrade-targets.d.ts +4 -7
- package/dist/channels/actions.d.ts +6 -4
- package/dist/channels/actions.js +1 -1
- package/dist/channels/cards.d.ts +2 -2
- package/dist/channels/channels.module.d.ts +40 -0
- package/dist/channels/channels.module.js +128 -0
- package/dist/channels/connections.controller.d.ts +1 -1
- package/dist/channels/connections.controller.js +11 -6
- package/dist/channels/connections.service.d.ts +43 -21
- package/dist/channels/connections.service.js +236 -131
- package/dist/channels/inbound.d.ts +34 -38
- package/dist/channels/inbound.js +107 -41
- package/dist/channels/job-ids.d.ts +10 -0
- package/dist/channels/job-ids.js +10 -0
- package/dist/channels/jobs.d.ts +85 -0
- package/dist/channels/jobs.js +157 -0
- package/dist/channels/outbound.d.ts +60 -82
- package/dist/channels/outbound.js +165 -193
- package/dist/channels/supervisor.d.ts +88 -46
- package/dist/channels/supervisor.js +230 -132
- package/dist/channels/threads.d.ts +29 -8
- package/dist/channels/threads.js +71 -13
- package/dist/channels/webhook.d.ts +20 -14
- package/dist/channels/webhook.js +51 -20
- package/dist/config/load.d.ts +3 -2
- package/dist/config/load.js +3 -2
- package/dist/config/nacos-source.js +11 -2
- package/dist/config/schema.d.ts +16 -1
- package/dist/config/schema.js +54 -7
- package/dist/conversations/access.d.ts +29 -0
- package/dist/conversations/access.js +86 -0
- package/dist/conversations/artifacts.d.ts +10 -10
- package/dist/conversations/artifacts.js +35 -9
- package/dist/conversations/attachments.controller.d.ts +1 -1
- package/dist/conversations/attachments.controller.js +8 -6
- package/dist/conversations/attachments.module.d.ts +7 -0
- package/dist/conversations/attachments.module.js +25 -0
- package/dist/conversations/attachments.service.d.ts +30 -22
- package/dist/conversations/attachments.service.js +119 -46
- package/dist/conversations/conversations.controller.d.ts +8 -7
- package/dist/conversations/conversations.controller.js +59 -29
- package/dist/conversations/conversations.module.d.ts +8 -0
- package/dist/conversations/conversations.module.js +69 -0
- package/dist/conversations/conversations.service.d.ts +40 -38
- package/dist/conversations/conversations.service.js +130 -140
- package/dist/conversations/event-log.d.ts +28 -18
- package/dist/conversations/event-log.js +74 -27
- package/dist/conversations/files.d.ts +10 -10
- package/dist/conversations/files.js +37 -11
- package/dist/conversations/idem-keys.d.ts +5 -0
- package/dist/conversations/idem-keys.js +5 -0
- package/dist/conversations/job-ids.d.ts +6 -0
- package/dist/conversations/job-ids.js +6 -0
- package/dist/conversations/outputs-read.d.ts +11 -11
- package/dist/conversations/outputs-read.js +31 -7
- package/dist/conversations/queue.d.ts +48 -56
- package/dist/conversations/queue.js +13 -289
- package/dist/conversations/queue.service.d.ts +60 -0
- package/dist/conversations/queue.service.js +343 -0
- package/dist/conversations/sandbox-status.d.ts +13 -10
- package/dist/conversations/sandbox-status.js +36 -8
- package/dist/conversations/titles.d.ts +71 -24
- package/dist/conversations/titles.js +159 -62
- package/dist/ctx/bus.js +9 -3
- package/dist/ctx/create-ctx.d.ts +6 -0
- package/dist/ctx/create-ctx.js +7 -9
- package/dist/ctx/lock.d.ts +7 -3
- package/dist/ctx/lock.js +9 -20
- package/dist/ctx/queue.js +3 -2
- package/dist/ctx/secrets.d.ts +10 -2
- package/dist/ctx/secrets.js +7 -3
- package/dist/db/kernel-schema.d.ts +2 -2
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +1 -0
- package/dist/errors.d.ts +2 -0
- package/dist/errors.js +2 -0
- package/dist/evals/budget.d.ts +42 -21
- package/dist/evals/budget.js +114 -62
- package/dist/evals/evals.module.d.ts +31 -0
- package/dist/evals/evals.module.js +114 -0
- package/dist/evals/jobs.d.ts +20 -0
- package/dist/evals/jobs.js +45 -0
- package/dist/evals/run-replay.d.ts +56 -8
- package/dist/evals/run-replay.js +140 -80
- package/dist/evals/runs.controller.d.ts +1 -1
- package/dist/evals/runs.controller.js +17 -8
- package/dist/evals/runs.service.d.ts +23 -45
- package/dist/evals/runs.service.js +245 -234
- package/dist/evals/sets.controller.d.ts +1 -1
- package/dist/evals/sets.controller.js +17 -8
- package/dist/evals/sets.service.d.ts +22 -6
- package/dist/evals/sets.service.js +248 -194
- package/dist/evals/snapshot.d.ts +2 -2
- package/dist/evals/step-replay.d.ts +2 -2
- package/dist/evals/step-replay.js +1 -1
- package/dist/evals/trajectory.controller.d.ts +1 -1
- package/dist/evals/trajectory.controller.js +11 -7
- package/dist/evals/trajectory.service.d.ts +5 -4
- package/dist/evals/trajectory.service.js +30 -7
- package/dist/evals/worker.d.ts +44 -27
- package/dist/evals/worker.js +220 -120
- package/dist/extensions/admin-ops.d.ts +61 -33
- package/dist/extensions/admin-ops.js +248 -154
- package/dist/extensions/admin-view.d.ts +38 -27
- package/dist/extensions/admin-view.js +126 -55
- package/dist/extensions/approvals.d.ts +12 -8
- package/dist/extensions/approvals.js +73 -46
- package/dist/extensions/blobs.d.ts +27 -10
- package/dist/extensions/blobs.js +111 -45
- package/dist/extensions/bootstrap.d.ts +96 -42
- package/dist/extensions/bootstrap.js +303 -155
- package/dist/extensions/cli.d.ts +20 -10
- package/dist/extensions/cli.js +41 -96
- package/dist/extensions/config-issues.d.ts +7 -0
- package/dist/extensions/config-issues.js +31 -0
- package/dist/extensions/deployment-config-store.d.ts +49 -0
- package/dist/extensions/deployment-config-store.js +133 -0
- package/dist/extensions/deployment-config.d.ts +58 -67
- package/dist/extensions/deployment-config.js +202 -230
- package/dist/extensions/enabled.d.ts +5 -5
- package/dist/extensions/extensions.module.d.ts +8 -0
- package/dist/extensions/extensions.module.js +77 -0
- package/dist/extensions/hooks.d.ts +3 -2
- package/dist/extensions/hooks.js +1 -1
- package/dist/extensions/host.d.ts +72 -68
- package/dist/extensions/host.js +191 -152
- package/dist/extensions/installs.d.ts +49 -16
- package/dist/extensions/installs.js +128 -32
- package/dist/extensions/job-ids.d.ts +6 -0
- package/dist/extensions/job-ids.js +6 -0
- package/dist/extensions/lifecycle-topics.d.ts +18 -0
- package/dist/extensions/lifecycle-topics.js +18 -0
- package/dist/extensions/lifecycle.d.ts +35 -47
- package/dist/extensions/lifecycle.js +103 -39
- package/dist/extensions/locks.d.ts +33 -0
- package/dist/extensions/locks.js +86 -0
- package/dist/extensions/migrate-lock.d.ts +3 -4
- package/dist/extensions/org-config.controller.d.ts +1 -1
- package/dist/extensions/org-config.controller.js +8 -5
- package/dist/extensions/org-config.d.ts +48 -46
- package/dist/extensions/org-config.js +284 -226
- package/dist/extensions/registry.d.ts +50 -2
- package/dist/extensions/registry.js +89 -4
- package/dist/extensions/sources.d.ts +12 -8
- package/dist/extensions/sources.js +34 -13
- package/dist/files/files.module.d.ts +3 -0
- package/dist/files/files.module.js +22 -0
- package/dist/files/previewers.controller.d.ts +7 -2
- package/dist/files/previewers.controller.js +17 -9
- package/dist/files/previewers.d.ts +13 -18
- package/dist/files/previewers.js +83 -36
- package/dist/http/adapter.d.ts +3 -0
- package/dist/http/adapter.js +25 -0
- package/dist/http/api.module.d.ts +3 -110
- package/dist/http/api.module.js +47 -355
- package/dist/http/app.d.ts +11 -15
- package/dist/http/app.js +52 -47
- package/dist/http/error-filter.module.d.ts +5 -0
- package/dist/http/error-filter.module.js +18 -0
- package/dist/http/error.filter.js +2 -2
- package/dist/identity/accounts.d.ts +82 -29
- package/dist/identity/accounts.js +294 -175
- package/dist/identity/api-tokens.d.ts +11 -7
- package/dist/identity/api-tokens.js +71 -44
- package/dist/identity/audit.d.ts +7 -4
- package/dist/identity/audit.js +5 -1
- package/dist/identity/auth.controller.d.ts +11 -10
- package/dist/identity/auth.controller.js +31 -25
- package/dist/identity/auth.guard.d.ts +3 -3
- package/dist/identity/auth.guard.js +6 -4
- package/dist/identity/binding.d.ts +9 -11
- package/dist/identity/binding.js +41 -13
- package/dist/identity/enterprise-admin.d.ts +18 -12
- package/dist/identity/enterprise-admin.js +67 -13
- package/dist/identity/external-identity-lock.d.ts +17 -0
- package/dist/identity/external-identity-lock.js +39 -0
- package/dist/identity/external.d.ts +19 -15
- package/dist/identity/external.js +163 -125
- package/dist/identity/identity.module.d.ts +6 -0
- package/dist/identity/identity.module.js +56 -0
- package/dist/identity/me.controller.d.ts +16 -15
- package/dist/identity/me.controller.js +37 -31
- package/dist/identity/sessions.d.ts +12 -10
- package/dist/identity/sessions.js +74 -42
- package/dist/identity/settings.d.ts +20 -14
- package/dist/identity/settings.js +85 -57
- package/dist/identity/sso.controller.d.ts +7 -7
- package/dist/identity/sso.controller.js +13 -9
- package/dist/identity/sso.d.ts +9 -12
- package/dist/identity/sso.js +54 -24
- package/dist/inbox/inbox.module.d.ts +3 -0
- package/dist/inbox/inbox.module.js +22 -0
- package/dist/inbox/inbox.service.d.ts +7 -9
- package/dist/inbox/inbox.service.js +32 -11
- package/dist/index.d.ts +19 -12
- package/dist/index.js +13 -8
- package/dist/infra/cache/cache.module.d.ts +3 -0
- package/dist/infra/cache/cache.module.js +16 -0
- package/dist/infra/cache/cache.service.d.ts +21 -0
- package/dist/infra/cache/cache.service.js +80 -0
- package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
- package/dist/infra/cache/cacheable.decorator.js +83 -0
- package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
- package/dist/infra/cli/kernel-cli.module.js +165 -0
- package/dist/infra/close-within.d.ts +15 -0
- package/dist/infra/close-within.js +36 -0
- package/dist/infra/config/config.module.d.ts +13 -0
- package/dist/infra/config/config.module.js +39 -0
- package/dist/infra/config/kernel-config.service.d.ts +25 -0
- package/dist/infra/config/kernel-config.service.js +126 -0
- package/dist/infra/database/after-commit.d.ts +6 -0
- package/dist/infra/database/after-commit.js +9 -0
- package/dist/infra/database/database.module.d.ts +25 -0
- package/dist/infra/database/database.module.js +90 -0
- package/dist/infra/database/kernel-db.d.ts +22 -0
- package/dist/infra/database/kernel-db.js +65 -0
- package/dist/infra/database/transaction-host.d.ts +50 -0
- package/dist/infra/database/transaction-host.js +125 -0
- package/dist/infra/database/transactional.decorator.d.ts +15 -0
- package/dist/infra/database/transactional.decorator.js +27 -0
- package/dist/infra/database/xact-lock.d.ts +17 -0
- package/dist/infra/database/xact-lock.js +43 -0
- package/dist/infra/events/kernel-events.d.ts +96 -0
- package/dist/infra/events/kernel-events.js +65 -0
- package/dist/infra/health/health.controller.d.ts +26 -0
- package/dist/infra/health/health.controller.js +104 -0
- package/dist/infra/health/health.module.d.ts +9 -0
- package/dist/infra/health/health.module.js +24 -0
- package/dist/infra/health/health.options.d.ts +10 -0
- package/dist/infra/health/health.options.js +15 -0
- package/dist/infra/health/shutdown-state.d.ts +6 -0
- package/dist/infra/health/shutdown-state.js +2 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
- package/dist/infra/lifecycle/process-guards.d.ts +52 -0
- package/dist/infra/lifecycle/process-guards.js +86 -0
- package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
- package/dist/infra/lifecycle/shutdown-signals.js +48 -0
- package/dist/infra/lock/key-template.d.ts +13 -0
- package/dist/infra/lock/key-template.js +46 -0
- package/dist/infra/lock/lock.module.d.ts +3 -0
- package/dist/infra/lock/lock.module.js +16 -0
- package/dist/infra/lock/lock.service.d.ts +120 -0
- package/dist/infra/lock/lock.service.js +343 -0
- package/dist/infra/lock/shared-lease.d.ts +44 -0
- package/dist/infra/lock/shared-lease.js +121 -0
- package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
- package/dist/infra/lock/with-lock.decorator.js +49 -0
- package/dist/infra/logging/logging.module.d.ts +16 -0
- package/dist/infra/logging/logging.module.js +34 -0
- package/dist/infra/queue/configured-processor.d.ts +18 -0
- package/dist/infra/queue/configured-processor.js +23 -0
- package/dist/infra/queue/job-failure.d.ts +18 -0
- package/dist/infra/queue/job-failure.js +26 -0
- package/dist/infra/queue/queue-shutdown.d.ts +27 -0
- package/dist/infra/queue/queue-shutdown.js +81 -0
- package/dist/infra/queue/queue.module.d.ts +16 -0
- package/dist/infra/queue/queue.module.js +61 -0
- package/dist/infra/queue/redis-connection.d.ts +7 -0
- package/dist/infra/queue/redis-connection.js +18 -0
- package/dist/infra/queue/retired-schedulers.d.ts +7 -0
- package/dist/infra/queue/retired-schedulers.js +9 -0
- package/dist/infra/queue/run-job.d.ts +16 -0
- package/dist/infra/queue/run-job.js +19 -0
- package/dist/infra/redis/redis.module.d.ts +24 -0
- package/dist/infra/redis/redis.module.js +87 -0
- package/dist/infra/schedule/cron-tick.d.ts +12 -0
- package/dist/infra/schedule/cron-tick.js +25 -0
- package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
- package/dist/infra/schedule/locked-cron.decorator.js +53 -0
- package/dist/infra/schedule/locked-interval.d.ts +69 -0
- package/dist/infra/schedule/locked-interval.js +190 -0
- package/dist/infra/schedule/locked-tick.d.ts +90 -0
- package/dist/infra/schedule/locked-tick.js +137 -0
- package/dist/infra/schedule/schedule.module.d.ts +8 -0
- package/dist/infra/schedule/schedule.module.js +27 -0
- package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
- package/dist/infra/schedule/scheduled-runs.js +163 -0
- package/dist/infra/swagger/swagger.d.ts +16 -0
- package/dist/infra/swagger/swagger.js +31 -0
- package/dist/infra/throttler/credential-throttler.d.ts +35 -0
- package/dist/infra/throttler/credential-throttler.js +77 -0
- package/dist/infra/throttler/named-throttlers.d.ts +31 -0
- package/dist/infra/throttler/named-throttlers.js +119 -0
- package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
- package/dist/infra/throttler/redis-throttler-storage.js +130 -0
- package/dist/infra/throttler/throttler.guard.d.ts +23 -0
- package/dist/infra/throttler/throttler.guard.js +68 -0
- package/dist/infra/throttler/throttler.module.d.ts +15 -0
- package/dist/infra/throttler/throttler.module.js +53 -0
- package/dist/infra/tokens.d.ts +15 -0
- package/dist/infra/tokens.js +15 -0
- package/dist/infra/validation/create-zod-dto.d.ts +23 -0
- package/dist/infra/validation/create-zod-dto.js +35 -0
- package/dist/infra/validation/parse-with-zod.d.ts +7 -0
- package/dist/infra/validation/parse-with-zod.js +12 -0
- package/dist/infra/validation/validation.module.d.ts +3 -0
- package/dist/infra/validation/validation.module.js +16 -0
- package/dist/infra/validation/zod-params.d.ts +7 -0
- package/dist/infra/validation/zod-params.js +42 -0
- package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
- package/dist/infra/validation/zod-validation.pipe.js +31 -0
- package/dist/kernel.d.ts +9 -241
- package/dist/kernel.js +8 -1305
- package/dist/kernel.module.d.ts +17 -0
- package/dist/kernel.module.js +136 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
- package/dist/lifecycle/kernel-lifecycle.js +451 -0
- package/dist/lifecycle/tokens.d.ts +3 -0
- package/dist/lifecycle/tokens.js +3 -0
- package/dist/log-config.d.ts +9 -0
- package/dist/log-config.js +27 -0
- package/dist/log-context.d.ts +34 -0
- package/dist/log-context.js +44 -0
- package/dist/log-loki.d.ts +34 -0
- package/dist/log-loki.js +145 -0
- package/dist/log.d.ts +41 -10
- package/dist/log.js +91 -17
- package/dist/models/models.module.d.ts +3 -0
- package/dist/models/models.module.js +24 -0
- package/dist/models/prices.d.ts +8 -2
- package/dist/models/prices.js +65 -37
- package/dist/models/purposes.controller.d.ts +1 -1
- package/dist/models/purposes.controller.js +5 -6
- package/dist/models/purposes.d.ts +35 -13
- package/dist/models/purposes.js +101 -51
- package/dist/net/public-address.js +3 -2
- package/dist/orgs/directory-sync.controller.d.ts +1 -1
- package/dist/orgs/directory-sync.controller.js +2 -2
- package/dist/orgs/directory-sync.d.ts +61 -31
- package/dist/orgs/directory-sync.js +212 -125
- package/dist/orgs/invitations.controller.d.ts +8 -8
- package/dist/orgs/invitations.controller.js +27 -26
- package/dist/orgs/invitations.service.d.ts +12 -9
- package/dist/orgs/invitations.service.js +130 -92
- package/dist/orgs/job-ids.d.ts +8 -0
- package/dist/orgs/job-ids.js +8 -0
- package/dist/orgs/members.service.d.ts +19 -12
- package/dist/orgs/members.service.js +161 -117
- package/dist/orgs/offboarding.d.ts +54 -57
- package/dist/orgs/offboarding.js +161 -71
- package/dist/orgs/org-lock.d.ts +28 -19
- package/dist/orgs/org-lock.js +81 -35
- package/dist/orgs/org.guard.d.ts +1 -1
- package/dist/orgs/org.guard.js +2 -2
- package/dist/orgs/orgs.controller.d.ts +13 -13
- package/dist/orgs/orgs.controller.js +29 -17
- package/dist/orgs/orgs.module.d.ts +6 -0
- package/dist/orgs/orgs.module.js +68 -0
- package/dist/orgs/orgs.service.d.ts +30 -19
- package/dist/orgs/orgs.service.js +139 -86
- package/dist/orgs/settings.controller.d.ts +1 -1
- package/dist/orgs/settings.controller.js +8 -6
- package/dist/orgs/settings.service.d.ts +14 -8
- package/dist/orgs/settings.service.js +75 -46
- package/dist/overrides.d.ts +56 -0
- package/dist/overrides.js +30 -0
- package/dist/roles/gateway-role.d.ts +43 -0
- package/dist/roles/gateway-role.js +98 -0
- package/dist/roles/gateway.module.d.ts +8 -0
- package/dist/roles/gateway.module.js +28 -0
- package/dist/roles/worker-role.d.ts +63 -0
- package/dist/roles/worker-role.js +144 -0
- package/dist/roles/worker.module.d.ts +14 -0
- package/dist/roles/worker.module.js +90 -0
- package/dist/runtime/abort.js +19 -2
- package/dist/runtime/checkpointer.d.ts +8 -3
- package/dist/runtime/checkpointer.js +87 -55
- package/dist/runtime/conversation-lock.d.ts +20 -11
- package/dist/runtime/conversation-lock.js +62 -72
- package/dist/runtime/hook-calls.d.ts +3 -3
- package/dist/runtime/hook-calls.js +1 -6
- package/dist/runtime/job-ids.d.ts +10 -0
- package/dist/runtime/job-ids.js +10 -0
- package/dist/runtime/langgraph-loop.js +1 -1
- package/dist/runtime/loop.d.ts +7 -0
- package/dist/runtime/loop.js +14 -0
- package/dist/runtime/maintenance-queue.d.ts +10 -0
- package/dist/runtime/maintenance-queue.js +10 -0
- package/dist/runtime/maintenance.d.ts +45 -74
- package/dist/runtime/maintenance.js +139 -136
- package/dist/runtime/model-call.d.ts +7 -4
- package/dist/runtime/model-call.js +24 -57
- package/dist/runtime/providers.d.ts +17 -6
- package/dist/runtime/providers.js +66 -25
- package/dist/runtime/quota.d.ts +17 -3
- package/dist/runtime/quota.js +27 -2
- package/dist/runtime/retired-schedulers.d.ts +7 -0
- package/dist/runtime/retired-schedulers.js +31 -0
- package/dist/runtime/run-control.d.ts +33 -0
- package/dist/runtime/run-control.js +77 -0
- package/dist/runtime/run-finish.d.ts +26 -17
- package/dist/runtime/run-finish.js +98 -51
- package/dist/runtime/run-jobs.d.ts +48 -0
- package/dist/runtime/run-jobs.js +95 -0
- package/dist/runtime/run-processors.d.ts +60 -0
- package/dist/runtime/run-processors.js +185 -0
- package/dist/runtime/run-queue.d.ts +32 -57
- package/dist/runtime/run-queue.js +291 -295
- package/dist/runtime/run-steps.d.ts +39 -0
- package/dist/runtime/run-steps.js +96 -0
- package/dist/runtime/run-worker.d.ts +121 -75
- package/dist/runtime/run-worker.js +340 -225
- package/dist/runtime/runtime.module.d.ts +10 -0
- package/dist/runtime/runtime.module.js +112 -0
- package/dist/runtime/step-log.d.ts +40 -0
- package/dist/runtime/step-log.js +94 -0
- package/dist/runtime/stream.controller.d.ts +5 -8
- package/dist/runtime/stream.controller.js +14 -12
- package/dist/runtime/stream.d.ts +24 -6
- package/dist/runtime/stream.js +78 -7
- package/dist/runtime/subagents/child.d.ts +3 -44
- package/dist/runtime/subagents/child.js +0 -79
- package/dist/runtime/subagents/definition.d.ts +4 -4
- package/dist/runtime/subagents/definition.js +2 -2
- package/dist/runtime/subagents/dispatch.d.ts +87 -6
- package/dist/runtime/subagents/dispatch.js +135 -140
- package/dist/runtime/subagents/limits.d.ts +9 -4
- package/dist/runtime/subagents/limits.js +4 -2
- package/dist/runtime/subagents/org-agents.d.ts +4 -4
- package/dist/runtime/subagents/org-agents.js +1 -1
- package/dist/runtime/subagents/progress.d.ts +2 -2
- package/dist/runtime/subagents/roster.d.ts +3 -3
- package/dist/runtime/subagents/roster.js +1 -1
- package/dist/runtime/subagents/skill-fork.d.ts +6 -7
- package/dist/runtime/subagents/skill-fork.js +16 -5
- package/dist/runtime/subagents/subagents.service.d.ts +40 -0
- package/dist/runtime/subagents/subagents.service.js +101 -0
- package/dist/runtime/usage-report.d.ts +94 -52
- package/dist/runtime/usage-report.js +200 -99
- package/dist/runtime/waits.d.ts +125 -57
- package/dist/runtime/waits.js +431 -208
- package/dist/sandbox/job-ids.d.ts +10 -0
- package/dist/sandbox/job-ids.js +10 -0
- package/dist/sandbox/jobs.d.ts +41 -0
- package/dist/sandbox/jobs.js +113 -0
- package/dist/sandbox/leases.d.ts +39 -31
- package/dist/sandbox/leases.js +117 -257
- package/dist/sandbox/providers.d.ts +19 -0
- package/dist/sandbox/providers.js +38 -0
- package/dist/sandbox/sandbox.module.d.ts +8 -0
- package/dist/sandbox/sandbox.module.js +30 -0
- package/dist/sandbox/sandbox.service.d.ts +24 -29
- package/dist/sandbox/sandbox.service.js +106 -75
- package/dist/skills/catalog.d.ts +33 -20
- package/dist/skills/catalog.js +96 -53
- package/dist/skills/changes.controller.d.ts +4 -4
- package/dist/skills/changes.controller.js +15 -9
- package/dist/skills/changes.service.d.ts +28 -18
- package/dist/skills/changes.service.js +421 -364
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +8 -5
- package/dist/skills/invoke.d.ts +16 -15
- package/dist/skills/invoke.js +48 -17
- package/dist/skills/skills.controller.d.ts +1 -1
- package/dist/skills/skills.controller.js +11 -6
- package/dist/skills/skills.module.d.ts +6 -0
- package/dist/skills/skills.module.js +30 -0
- package/dist/skills/skills.service.d.ts +47 -30
- package/dist/skills/skills.service.js +221 -158
- package/dist/storage/job-ids.d.ts +6 -0
- package/dist/storage/job-ids.js +6 -0
- package/dist/storage/purge.d.ts +22 -7
- package/dist/storage/purge.js +55 -3
- package/dist/storage/storage.module.d.ts +6 -0
- package/dist/storage/storage.module.js +23 -0
- package/dist/storage/storage.service.d.ts +18 -4
- package/dist/storage/storage.service.js +44 -3
- package/dist/tools/approvals.controller.d.ts +1 -1
- package/dist/tools/approvals.controller.js +12 -8
- package/dist/tools/approvals.service.d.ts +27 -25
- package/dist/tools/approvals.service.js +324 -258
- package/dist/tools/breaker.d.ts +2 -2
- package/dist/tools/breaker.js +21 -3
- package/dist/tools/builtins/ask-user.d.ts +2 -2
- package/dist/tools/builtins/ask-user.js +1 -1
- package/dist/tools/builtins/builtin-tools.d.ts +21 -0
- package/dist/tools/builtins/builtin-tools.js +80 -0
- package/dist/tools/builtins/read-tool-output.d.ts +2 -2
- package/dist/tools/builtins/read-tool-output.js +1 -1
- package/dist/tools/builtins/sandbox/bash.js +2 -2
- package/dist/tools/builtins/sandbox/common.d.ts +7 -4
- package/dist/tools/builtins/sandbox/common.js +5 -3
- package/dist/tools/builtins/sandbox/deliver.js +2 -2
- package/dist/tools/builtins/sandbox/edit.js +1 -1
- package/dist/tools/builtins/sandbox/glob.js +2 -2
- package/dist/tools/builtins/sandbox/grep.js +2 -2
- package/dist/tools/builtins/sandbox/read.js +1 -1
- package/dist/tools/builtins/sandbox/write.js +1 -1
- package/dist/tools/builtins/skill-load.d.ts +3 -3
- package/dist/tools/builtins/skill-load.js +1 -1
- package/dist/tools/canonical-json.d.ts +6 -0
- package/dist/tools/canonical-json.js +16 -0
- package/dist/tools/connector-content.controller.d.ts +1 -1
- package/dist/tools/connector-content.controller.js +11 -6
- package/dist/tools/connector-content.d.ts +12 -15
- package/dist/tools/connector-content.js +53 -18
- package/dist/tools/connectors.controller.d.ts +1 -1
- package/dist/tools/connectors.controller.js +21 -10
- package/dist/tools/connectors.service.d.ts +31 -13
- package/dist/tools/connectors.service.js +434 -344
- package/dist/tools/credentials.d.ts +17 -20
- package/dist/tools/credentials.js +55 -34
- package/dist/tools/drift.d.ts +29 -41
- package/dist/tools/drift.js +111 -79
- package/dist/tools/info.d.ts +12 -9
- package/dist/tools/info.js +33 -7
- package/dist/tools/job-ids.d.ts +13 -0
- package/dist/tools/job-ids.js +15 -0
- package/dist/tools/jobs.d.ts +24 -0
- package/dist/tools/jobs.js +69 -0
- package/dist/tools/oauth/flow-paths.d.ts +16 -0
- package/dist/tools/oauth/flow-paths.js +38 -0
- package/dist/tools/oauth/flow.d.ts +30 -30
- package/dist/tools/oauth/flow.js +109 -81
- package/dist/tools/oauth/oauth.controller.d.ts +3 -3
- package/dist/tools/oauth/oauth.controller.js +12 -9
- package/dist/tools/oauth/tokens.d.ts +11 -3
- package/dist/tools/oauth/tokens.js +15 -14
- package/dist/tools/outputs.d.ts +13 -4
- package/dist/tools/outputs.js +47 -3
- package/dist/tools/pipeline.d.ts +62 -46
- package/dist/tools/pipeline.js +145 -64
- package/dist/tools/policy.d.ts +2 -2
- package/dist/tools/questions.controller.d.ts +1 -1
- package/dist/tools/questions.controller.js +8 -5
- package/dist/tools/questions.service.d.ts +25 -24
- package/dist/tools/questions.service.js +201 -142
- package/dist/tools/registry.d.ts +30 -20
- package/dist/tools/registry.js +73 -37
- package/dist/tools/specs.d.ts +5 -4
- package/dist/tools/specs.js +3 -1
- package/dist/tools/tools.module.d.ts +10 -0
- package/dist/tools/tools.module.js +91 -0
- package/dist/ui/call-extension.d.ts +16 -0
- package/dist/ui/call-extension.js +38 -0
- package/dist/ui/embed-token.d.ts +9 -5
- package/dist/ui/embed-token.js +34 -6
- package/dist/ui/ui-stream.d.ts +22 -17
- package/dist/ui/ui-stream.js +72 -12
- package/dist/ui/ui.module.d.ts +7 -0
- package/dist/ui/ui.module.js +28 -0
- package/dist/ui/views.controller.d.ts +14 -12
- package/dist/ui/views.controller.js +32 -25
- package/dist/ui/views.d.ts +9 -57
- package/dist/ui/views.js +43 -45
- package/package.json +11 -2
- package/dist/http/health.controller.d.ts +0 -26
- package/dist/http/health.controller.js +0 -79
- package/dist/http/tokens.d.ts +0 -131
- package/dist/http/tokens.js +0 -131
- package/dist/http/zod.pipe.d.ts +0 -8
- package/dist/http/zod.pipe.js +0 -14
- package/dist/identity/rate-limit.d.ts +0 -55
- package/dist/identity/rate-limit.js +0 -121
- package/dist/sandbox/lifecycle.d.ts +0 -21
- package/dist/sandbox/lifecycle.js +0 -68
- /package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +0 -0
- /package/dist/http/{gateway.module.js → gateway-routes.js} +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ModelParameter } from "@capybara-hq/plugin-sdk";
|
|
1
2
|
import { z } from "zod";
|
|
2
3
|
/** 模型引用:供应商插件名 + 模型 id。 */
|
|
3
4
|
export declare const ModelRef: z.ZodObject<{
|
|
@@ -196,3 +197,10 @@ export type AgentDefinition = z.infer<typeof AgentDefinitionSchema>;
|
|
|
196
197
|
* connector 形(C27)。其余字段原样保留;没有旧形引用时返回原对象。
|
|
197
198
|
*/
|
|
198
199
|
export declare function normalizeStoredDefinition(def: unknown): AgentDefinition;
|
|
200
|
+
/** 按模型声明严格校验一组参数,返回 `{ path: "<field>.<key>", message }[]`(评测候选也用它)。 */
|
|
201
|
+
export declare function paramIssues(field: string, decl: ModelParameter[], params: Record<string, unknown>): {
|
|
202
|
+
path: string;
|
|
203
|
+
message: string;
|
|
204
|
+
}[];
|
|
205
|
+
/** Roster entries an agent may list (spec §4.3), general-purpose included. */
|
|
206
|
+
export declare const SUBAGENT_ROSTER_MAX = 20;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { validateParams } from "@capybara-hq/plugin-sdk";
|
|
1
2
|
import { z } from "zod";
|
|
2
3
|
/** 模型引用:供应商插件名 + 模型 id。 */
|
|
3
4
|
export const ModelRef = z.object({ provider: z.string(), model: z.string() });
|
|
@@ -150,3 +151,10 @@ export function normalizeStoredDefinition(def) {
|
|
|
150
151
|
}
|
|
151
152
|
return { ...d, tools: tools.map(normalizeToolRef) };
|
|
152
153
|
}
|
|
154
|
+
/** 按模型声明严格校验一组参数,返回 `{ path: "<field>.<key>", message }[]`(评测候选也用它)。 */
|
|
155
|
+
export function paramIssues(field, decl, params) {
|
|
156
|
+
const r = validateParams(decl, params);
|
|
157
|
+
return r.ok ? [] : r.issues.map((i) => ({ path: `${field}.${i.key}`, message: i.message }));
|
|
158
|
+
}
|
|
159
|
+
/** Roster entries an agent may list (spec §4.3), general-purpose included. */
|
|
160
|
+
export const SUBAGENT_ROSTER_MAX = 20;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ModelInfo } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import
|
|
2
|
+
import { ProviderRegistry } from "../runtime/providers.js";
|
|
3
3
|
/** 可选模型(`/api/v1/orgs/:orgId/models`):已安装的模型供应商及其模型,列表缓存在 Redis。 */
|
|
4
4
|
export declare class ModelsController {
|
|
5
5
|
private readonly registry;
|
|
@@ -8,8 +8,8 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
8
8
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
9
|
};
|
|
10
10
|
import { Controller, Get, Inject } from "@nestjs/common";
|
|
11
|
-
import { PROVIDER_REGISTRY } from "../http/tokens.js";
|
|
12
11
|
import { OrgAction } from "../orgs/org.guard.js";
|
|
12
|
+
import { ProviderRegistry } from "../runtime/providers.js";
|
|
13
13
|
/** 可选模型(`/api/v1/orgs/:orgId/models`):已安装的模型供应商及其模型,列表缓存在 Redis。 */
|
|
14
14
|
let ModelsController = class ModelsController {
|
|
15
15
|
registry;
|
|
@@ -26,6 +26,6 @@ __decorate([
|
|
|
26
26
|
], ModelsController.prototype, "list", null);
|
|
27
27
|
ModelsController = __decorate([
|
|
28
28
|
Controller("api/v1/orgs/:orgId/models"),
|
|
29
|
-
__param(0, Inject(
|
|
29
|
+
__param(0, Inject(ProviderRegistry))
|
|
30
30
|
], ModelsController);
|
|
31
31
|
export { ModelsController };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type OrgContext } from "../orgs/org.guard.js";
|
|
2
|
-
import
|
|
2
|
+
import { AgentTemplatesService, type AgentTemplateView } from "./templates.js";
|
|
3
3
|
/**
|
|
4
4
|
* The org's agent templates installed from plugins (`/api/v1/orgs/:orgId/agent-templates`, phase C
|
|
5
5
|
* spec §17): the agent page lists them to select as sub-agents. Read with `agents.create`, the
|
|
@@ -8,8 +8,8 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
8
8
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
9
|
};
|
|
10
10
|
import { Controller, Get, Inject } from "@nestjs/common";
|
|
11
|
-
import { AGENT_TEMPLATES } from "../http/tokens.js";
|
|
12
11
|
import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
|
|
12
|
+
import { AgentTemplatesService } from "./templates.js";
|
|
13
13
|
/**
|
|
14
14
|
* The org's agent templates installed from plugins (`/api/v1/orgs/:orgId/agent-templates`, phase C
|
|
15
15
|
* spec §17): the agent page lists them to select as sub-agents. Read with `agents.create`, the
|
|
@@ -32,6 +32,6 @@ __decorate([
|
|
|
32
32
|
], AgentTemplatesController.prototype, "list", null);
|
|
33
33
|
AgentTemplatesController = __decorate([
|
|
34
34
|
Controller("api/v1/orgs/:orgId/agent-templates"),
|
|
35
|
-
__param(0, Inject(
|
|
35
|
+
__param(0, Inject(AgentTemplatesService))
|
|
36
36
|
], AgentTemplatesController);
|
|
37
37
|
export { AgentTemplatesController };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { AgentTemplate, AgentTemplateTier } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import type {
|
|
3
|
-
import
|
|
4
|
-
type Trx = Transaction<KernelDatabase>;
|
|
2
|
+
import type { KernelSchemaDb, SourceFormat } from "../db/kernel-schema.js";
|
|
3
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
5
4
|
/**
|
|
6
5
|
* Agent templates installed in an org from plugins (sub-agents spec §16): `agent_templates` (one
|
|
7
6
|
* live row per org, plugin and name) and `agent_template_versions` (the parsed template). Plugin
|
|
@@ -35,7 +34,7 @@ export interface TemplateRow {
|
|
|
35
34
|
catalogVersion: string | null;
|
|
36
35
|
}
|
|
37
36
|
/** The live templates of `ids` in the org (deleted and foreign ids are left out), by id. */
|
|
38
|
-
export declare function loadTemplates(db:
|
|
37
|
+
export declare function loadTemplates(db: KernelSchemaDb, orgId: string, ids: readonly string[]): Promise<Map<string, TemplateRow>>;
|
|
39
38
|
/** Reads the org's agent templates (consumed by the roster, the agent page and Task 19's API). */
|
|
40
39
|
export declare class AgentTemplatesService {
|
|
41
40
|
private readonly db;
|
|
@@ -63,7 +62,7 @@ export interface TemplateSource {
|
|
|
63
62
|
* caller holds the org row lock): a new template (version 1, `created`), a new version of the live
|
|
64
63
|
* one when its definition differs (`changed`, the version added), or nothing when it is equal.
|
|
65
64
|
*/
|
|
66
|
-
export declare function putTemplateVersionIn(t:
|
|
65
|
+
export declare function putTemplateVersionIn(t: KernelSchemaDb, s: TemplateSource, template: AgentTemplate): Promise<{
|
|
67
66
|
id: string;
|
|
68
67
|
version: number;
|
|
69
68
|
created: boolean;
|
|
@@ -74,10 +73,9 @@ export declare function putTemplateVersionIn(t: Trx, s: TemplateSource, template
|
|
|
74
73
|
* rolled back): the version row goes and the template is back at the version before. Returns
|
|
75
74
|
* whether anything changed.
|
|
76
75
|
*/
|
|
77
|
-
export declare function revertTemplateVersionIn(t:
|
|
76
|
+
export declare function revertTemplateVersionIn(t: KernelSchemaDb, orgId: string, id: string, version: number): Promise<boolean>;
|
|
78
77
|
/**
|
|
79
78
|
* Removes a template (soft delete: sub-agents already started keep their frozen definition, and
|
|
80
79
|
* the roster skips it). Returns whether it was live.
|
|
81
80
|
*/
|
|
82
|
-
export declare function softDeleteTemplateIn(t:
|
|
83
|
-
export {};
|
|
81
|
+
export declare function softDeleteTemplateIn(t: KernelSchemaDb, orgId: string, id: string): Promise<boolean>;
|
package/dist/agents/templates.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
1
10
|
import { randomUUID } from "node:crypto";
|
|
11
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
12
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
2
13
|
import { canonicalJson } from "../tools/registry.js";
|
|
3
14
|
const baseQuery = (db, orgId) => db
|
|
4
15
|
.selectFrom("agent_templates as t")
|
|
@@ -35,14 +46,14 @@ export async function loadTemplates(db, orgId, ids) {
|
|
|
35
46
|
return new Map(rows.map((r) => [r.id, rowOf(r)]));
|
|
36
47
|
}
|
|
37
48
|
/** Reads the org's agent templates (consumed by the roster, the agent page and Task 19's API). */
|
|
38
|
-
|
|
49
|
+
let AgentTemplatesService = class AgentTemplatesService {
|
|
39
50
|
db;
|
|
40
51
|
constructor(db) {
|
|
41
52
|
this.db = db;
|
|
42
53
|
}
|
|
43
54
|
/** Every live template of the org, by plugin then name. */
|
|
44
55
|
async listForOrg(orgId) {
|
|
45
|
-
const rows = await baseQuery(this.db, orgId)
|
|
56
|
+
const rows = await baseQuery(this.db.db, orgId)
|
|
46
57
|
.orderBy("t.plugin_name")
|
|
47
58
|
.orderBy("t.name")
|
|
48
59
|
.execute();
|
|
@@ -65,7 +76,7 @@ export class AgentTemplatesService {
|
|
|
65
76
|
/** A live template by id or by `<plugin>:<name>`; null when there is none. */
|
|
66
77
|
async resolve(orgId, ref) {
|
|
67
78
|
const i = ref.indexOf(":");
|
|
68
|
-
let q = baseQuery(this.db, orgId);
|
|
79
|
+
let q = baseQuery(this.db.db, orgId);
|
|
69
80
|
q =
|
|
70
81
|
i < 0
|
|
71
82
|
? q.where("t.id", "=", ref)
|
|
@@ -76,7 +87,12 @@ export class AgentTemplatesService {
|
|
|
76
87
|
const t = rowOf(r);
|
|
77
88
|
return { id: t.id, version: t.version, plugin: t.plugin, template: t.template };
|
|
78
89
|
}
|
|
79
|
-
}
|
|
90
|
+
};
|
|
91
|
+
AgentTemplatesService = __decorate([
|
|
92
|
+
Injectable(),
|
|
93
|
+
__param(0, Inject(KernelDb))
|
|
94
|
+
], AgentTemplatesService);
|
|
95
|
+
export { AgentTemplatesService };
|
|
80
96
|
/**
|
|
81
97
|
* Writes `template` as the org's live template `<plugin>:<name>` in the caller's transaction (the
|
|
82
98
|
* caller holds the org row lock): a new template (version 1, `created`), a new version of the live
|
package/dist/app.d.ts
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import type { BootstrapManifest } from "@capybara-hq/plugin-sdk";
|
|
3
|
+
import type { INestApplicationContext } from "@nestjs/common";
|
|
4
|
+
import type { NestFastifyApplication } from "@nestjs/platform-fastify";
|
|
5
|
+
import type { ConfigSource } from "./config/load.js";
|
|
6
|
+
import type { KernelConfig } from "./config/schema.js";
|
|
7
|
+
import type { ConfigSourceKind } from "./config/sources.js";
|
|
8
|
+
import { type KernelHttp } from "./http/app.js";
|
|
9
|
+
import { type ShutdownSignalOptions } from "./infra/lifecycle/shutdown-signals.js";
|
|
10
|
+
import type { KernelLogger } from "./log.js";
|
|
11
|
+
import type { KernelOverride } from "./overrides.js";
|
|
12
|
+
/** What {@link createKernelApp} takes besides the config. */
|
|
13
|
+
export interface KernelAppOptions {
|
|
14
|
+
/** 配置来源;提供 `watch` 时启用热更新。 */
|
|
15
|
+
source?: ConfigSource;
|
|
16
|
+
/** 解析插件裸包名的目录,默认 `process.cwd()`;相对路径按当前 cwd 解析。 */
|
|
17
|
+
resolveFrom?: string;
|
|
18
|
+
/** Defaults to a logger built from `config.log` and `config.roles` (createConfiguredLogger). */
|
|
19
|
+
logger?: KernelLogger;
|
|
20
|
+
/** 热更新时与来源原始值合并的环境变量,默认 `process.env`。 */
|
|
21
|
+
env?: NodeJS.ProcessEnv;
|
|
22
|
+
/**
|
|
23
|
+
* The bootstrap step (package ecosystem spec §7, startup bootstrap spec). When given, the start
|
|
24
|
+
* runs it (see `extensions/bootstrap.ts`) before loading extensions unless it is already done for
|
|
25
|
+
* the manifest, and refuses to start when it cannot complete a required entry. `dir`: the
|
|
26
|
+
* optional offline directory whose `*.tgz` files are matched to the entries by sha512 (a missing
|
|
27
|
+
* directory is an empty one); entries without a matching file are downloaded from
|
|
28
|
+
* `packages.npmRegistry`. Omitted: no bootstrap step (tests, unless they ask for it).
|
|
29
|
+
*/
|
|
30
|
+
bootstrap?: {
|
|
31
|
+
dir?: string;
|
|
32
|
+
};
|
|
33
|
+
/** The bootstrap manifest; default the `bootstrap.json` shipped with the kernel package. */
|
|
34
|
+
bootstrapManifest?: BootstrapManifest;
|
|
35
|
+
/**
|
|
36
|
+
* Where each extension deployment config field of the startup config comes from (the
|
|
37
|
+
* `extensionConfigSources` returned by `loadConfigWithSources`); these fields are read-only in the
|
|
38
|
+
* admin console (D8). When omitted it is derived from `config.extensionConfig`: fields present in
|
|
39
|
+
* the environment are `env`, the rest take the `CAPYBARA_CONFIG_SOURCE` kind (file / nacos).
|
|
40
|
+
*/
|
|
41
|
+
extensionConfigSources?: Record<string, Record<string, ConfigSourceKind>>;
|
|
42
|
+
/**
|
|
43
|
+
* The kernel's own tests' seams: values for the named seam tokens ({@link KernelOverride} lists
|
|
44
|
+
* every one), registered in a global module so the domain modules that resolve these optional
|
|
45
|
+
* tokens get them. Any other token is refused when the application is built.
|
|
46
|
+
*/
|
|
47
|
+
overrides?: readonly KernelOverride[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Builds the kernel application (one Nest application, root module {@link KernelModule}) and sets
|
|
51
|
+
* up its HTTP side, without initializing it: nothing connects and nothing starts. A failure
|
|
52
|
+
* releases what was created (Redis connections, the pool) before it is thrown. Internal (not
|
|
53
|
+
* exported from the package): {@link startKernelApp} and the kernel's own tests that need the
|
|
54
|
+
* application before its start; everything else uses {@link createKernelApp}.
|
|
55
|
+
*/
|
|
56
|
+
export declare function buildKernelApp(config: KernelConfig, options?: KernelAppOptions): Promise<NestFastifyApplication>;
|
|
57
|
+
/**
|
|
58
|
+
* Closes a kernel application once (later calls get the same promise): the stop phases begin at
|
|
59
|
+
* once (`KernelLifecycle.stop`: readiness 503, the start aborted at its next checkpoint), next to
|
|
60
|
+
* `app.close()`, which runs the shutdown hooks (the stop phases are the same promise, then Redis
|
|
61
|
+
* and the pool). Use it to stop an application from {@link createKernelApp} /
|
|
62
|
+
* {@link startKernelApp} (tests, `@capybara-hq/testing`), so the stop begins before Nest's
|
|
63
|
+
* `onModuleDestroy` hooks run.
|
|
64
|
+
*/
|
|
65
|
+
export declare function closeKernelApp(app: NestFastifyApplication): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Creates the kernel application and runs its start sequence (nest kernel spec §4): Redis,
|
|
68
|
+
* migrations, the official marketplace, the bootstrap step, the extension load, the role parts,
|
|
69
|
+
* extension routes, the lifecycle reconcile and the config watch. Does not listen and installs no
|
|
70
|
+
* process-wide handler.
|
|
71
|
+
*/
|
|
72
|
+
export declare function createKernelApp(config: KernelConfig, options?: KernelAppOptions): Promise<NestFastifyApplication>;
|
|
73
|
+
/**
|
|
74
|
+
* Builds the kernel application, installs the SIGTERM / SIGINT handlers
|
|
75
|
+
* ({@link handleShutdownSignals}), runs the start sequence and listens on `config.http.port`:
|
|
76
|
+
* nothing is served before the start sequence finished. The handlers are installed before the
|
|
77
|
+
* start, so a signal during it aborts the start at its next checkpoint and closes the application
|
|
78
|
+
* cleanly; this function then rejects once the signal path has exited (with 0). A second signal
|
|
79
|
+
* exits with 1 at once. A failed build or start is logged (`kernel start failed`) before it is
|
|
80
|
+
* thrown.
|
|
81
|
+
*/
|
|
82
|
+
export declare function startKernelApp(config: KernelConfig, options?: KernelAppOptions, signalOptions?: ShutdownSignalOptions): Promise<NestFastifyApplication>;
|
|
83
|
+
/**
|
|
84
|
+
* The start half of {@link startKernelApp} for an application from {@link buildKernelApp}: installs
|
|
85
|
+
* the signal handlers, runs the start sequence and listens on `config.http.port`. Internal (not
|
|
86
|
+
* exported from the package): {@link startKernelApp} and the kernel's own tests that need the
|
|
87
|
+
* application before its start.
|
|
88
|
+
*/
|
|
89
|
+
export declare function startBuiltKernelApp(app: NestFastifyApplication, config: KernelConfig, signalOptions?: ShutdownSignalOptions): Promise<void>;
|
|
90
|
+
/** The in-process HTTP of a kernel application (`inject`, the route list). */
|
|
91
|
+
export declare function kernelAppHttp(app: INestApplicationContext): KernelHttp;
|
|
92
|
+
/** The port a kernel application listens on; undefined before it listens and after the stop. */
|
|
93
|
+
export declare function kernelAppPort(app: INestApplicationContext): number | undefined;
|
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 };
|