@capybara-hq/kernel 0.1.0-rc.3 → 0.1.0-rc.5
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 +61 -5
- package/dist/admin/admin.controller.d.ts +47 -16
- package/dist/admin/admin.controller.js +44 -19
- package/dist/admin/extensions.controller.d.ts +24 -3
- package/dist/admin/extensions.controller.js +48 -8
- package/dist/admin/setup-lock.d.ts +1 -1
- package/dist/admin/setup-lock.js +1 -1
- package/dist/admin/setup.controller.d.ts +1 -1
- package/dist/admin/setup.controller.js +1 -1
- package/dist/admin/setup.service.d.ts +4 -4
- package/dist/admin/setup.service.js +8 -8
- package/dist/agents/agent-lookup.d.ts +19 -0
- package/dist/agents/agent-lookup.js +21 -0
- package/dist/agents/agent-profile.service.d.ts +29 -0
- package/dist/agents/agent-profile.service.js +117 -0
- package/dist/agents/agents.controller.d.ts +168 -3
- package/dist/agents/agents.controller.js +201 -12
- package/dist/agents/agents.module.d.ts +4 -1
- package/dist/agents/agents.module.js +36 -6
- package/dist/agents/agents.service.d.ts +64 -27
- package/dist/agents/agents.service.js +199 -74
- package/dist/agents/definition.d.ts +53 -0
- package/dist/agents/definition.js +55 -0
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +649 -0
- package/dist/agents/from-template.service.d.ts +60 -0
- package/dist/agents/from-template.service.js +161 -0
- package/dist/agents/instruction-files.d.ts +60 -0
- package/dist/agents/instruction-files.js +111 -0
- package/dist/agents/models.controller.d.ts +9 -3
- package/dist/agents/models.controller.js +19 -4
- package/dist/agents/org-templates.d.ts +176 -0
- package/dist/agents/org-templates.js +827 -0
- package/dist/agents/pending-connector-requests.d.ts +77 -0
- package/dist/agents/pending-connector-requests.js +215 -0
- package/dist/agents/pending-connectors.controller.d.ts +39 -0
- package/dist/agents/pending-connectors.controller.js +91 -0
- package/dist/agents/pending-connectors.service.d.ts +62 -0
- package/dist/agents/pending-connectors.service.js +282 -0
- package/dist/agents/profile.d.ts +96 -0
- package/dist/agents/profile.js +51 -0
- package/dist/agents/readiness.controller.d.ts +26 -0
- package/dist/agents/readiness.controller.js +56 -0
- package/dist/agents/templates.controller.d.ts +86 -5
- package/dist/agents/templates.controller.js +171 -7
- package/dist/agents/templates.d.ts +127 -23
- package/dist/agents/templates.js +476 -53
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +87 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +94 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +36 -0
- package/dist/background/launch.js +70 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +190 -0
- package/dist/background/render.d.ts +23 -0
- package/dist/background/render.js +48 -0
- package/dist/background/session.d.ts +48 -0
- package/dist/background/session.js +79 -0
- package/dist/background/status.d.ts +35 -0
- package/dist/background/status.js +57 -0
- package/dist/background/stop.d.ts +68 -0
- package/dist/background/stop.js +243 -0
- package/dist/background/store.d.ts +162 -0
- package/dist/background/store.js +357 -0
- package/dist/background/store.module.d.ts +6 -0
- package/dist/background/store.module.js +22 -0
- package/dist/background/tasks.service.d.ts +77 -0
- package/dist/background/tasks.service.js +211 -0
- package/dist/background/wake-rules.d.ts +66 -0
- package/dist/background/wake-rules.js +113 -0
- package/dist/background/wake.d.ts +30 -0
- package/dist/background/wake.js +63 -0
- package/dist/catalog/admin-catalog.controller.d.ts +129 -30
- package/dist/catalog/admin-catalog.controller.js +213 -42
- package/dist/catalog/catalog-content.d.ts +58 -32
- package/dist/catalog/catalog-content.js +34 -8
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +60 -0
- package/dist/catalog/catalog-items.d.ts +111 -7
- package/dist/catalog/catalog-items.js +279 -13
- package/dist/catalog/catalog-scope.service.d.ts +260 -0
- package/dist/catalog/catalog-scope.service.js +1116 -0
- package/dist/catalog/catalog.module.d.ts +7 -9
- package/dist/catalog/catalog.module.js +41 -31
- package/dist/catalog/catalog.service.d.ts +101 -29
- package/dist/catalog/catalog.service.js +104 -106
- package/dist/catalog/claude/agents.js +2 -0
- package/dist/catalog/cli.d.ts +11 -1
- package/dist/catalog/cli.js +26 -1
- package/dist/catalog/component-promotion.d.ts +96 -0
- package/dist/catalog/component-promotion.js +395 -0
- package/dist/catalog/component-scope.controller.d.ts +152 -0
- package/dist/catalog/component-scope.controller.js +287 -0
- package/dist/catalog/component-scope.service.d.ts +303 -0
- package/dist/catalog/component-scope.service.js +936 -0
- package/dist/catalog/component-state.d.ts +174 -0
- package/dist/catalog/component-state.js +437 -0
- package/dist/catalog/job-ids.d.ts +30 -0
- package/dist/catalog/job-ids.js +25 -0
- package/dist/catalog/marketplace-fetch.d.ts +1 -1
- package/dist/catalog/marketplaces.controller.d.ts +22 -5
- package/dist/catalog/marketplaces.controller.js +56 -7
- package/dist/catalog/marketplaces.service.d.ts +54 -14
- package/dist/catalog/marketplaces.service.js +71 -22
- package/dist/catalog/org-catalog.controller.d.ts +125 -34
- package/dist/catalog/org-catalog.controller.js +181 -65
- package/dist/catalog/org-catalog.service.d.ts +65 -33
- package/dist/catalog/org-catalog.service.js +324 -157
- package/dist/catalog/org-extension-switch.d.ts +41 -0
- package/dist/catalog/org-extension-switch.js +115 -0
- package/dist/catalog/org-extension.controller.d.ts +119 -0
- package/dist/catalog/org-extension.controller.js +266 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +98 -0
- package/dist/catalog/org-plugin-uploads.controller.js +213 -0
- package/dist/catalog/org-plugin-uploads.d.ts +63 -0
- package/dist/catalog/org-plugin-uploads.js +116 -0
- package/dist/catalog/owned-items.d.ts +184 -0
- package/dist/catalog/owned-items.js +789 -0
- package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
- package/dist/catalog/owned-plugin-cleanup.js +194 -0
- package/dist/catalog/ownership.d.ts +172 -0
- package/dist/catalog/ownership.js +326 -0
- package/dist/catalog/platform-components.d.ts +221 -0
- package/dist/catalog/platform-components.js +761 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +582 -0
- package/dist/catalog/plugin-import.d.ts +178 -34
- package/dist/catalog/plugin-import.js +623 -83
- package/dist/catalog/plugin-install.d.ts +185 -41
- package/dist/catalog/plugin-install.js +758 -126
- package/dist/catalog/plugin-upgrade.d.ts +260 -225
- package/dist/catalog/plugin-upgrade.js +1148 -1137
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +193 -118
- package/dist/catalog/requests.service.js +526 -343
- package/dist/catalog/reserved-names.d.ts +8 -0
- package/dist/catalog/reserved-names.js +42 -0
- package/dist/catalog/scope-orgs.d.ts +21 -0
- package/dist/catalog/scope-orgs.js +67 -0
- package/dist/catalog/scope-state.d.ts +35 -0
- package/dist/catalog/scope-state.js +87 -0
- package/dist/catalog/scope-sync-workers.d.ts +7 -0
- package/dist/catalog/scope-sync-workers.js +29 -0
- package/dist/catalog/scope-sync.d.ts +176 -0
- package/dist/catalog/scope-sync.js +576 -0
- package/dist/catalog/scope.d.ts +42 -0
- package/dist/catalog/scope.js +42 -0
- package/dist/catalog/unshare.d.ts +22 -0
- package/dist/catalog/unshare.js +118 -0
- package/dist/channels/actions.js +1 -0
- package/dist/channels/cards.js +21 -3
- package/dist/channels/channels.module.js +2 -0
- package/dist/channels/connections.service.d.ts +16 -1
- package/dist/channels/connections.service.js +38 -4
- package/dist/channels/inbound.d.ts +9 -1
- package/dist/channels/inbound.js +67 -5
- package/dist/channels/phrases.d.ts +35 -0
- package/dist/channels/phrases.js +29 -0
- package/dist/channels/threads.d.ts +5 -0
- package/dist/channels/threads.js +8 -0
- package/dist/config/docs.js +3 -1
- package/dist/config/schema.d.ts +24 -2
- package/dist/config/schema.js +145 -19
- package/dist/conversations/access.d.ts +6 -4
- package/dist/conversations/access.js +29 -5
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/attachments.service.d.ts +30 -0
- package/dist/conversations/attachments.service.js +130 -5
- package/dist/conversations/conversations.controller.d.ts +79 -23
- package/dist/conversations/conversations.controller.js +141 -50
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +10 -7
- package/dist/conversations/conversations.service.d.ts +108 -9
- package/dist/conversations/conversations.service.js +237 -30
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +21 -6
- package/dist/conversations/event-log.js +70 -1
- package/dist/conversations/events.d.ts +140 -0
- package/dist/conversations/events.js +142 -13
- package/dist/conversations/queue.d.ts +3 -1
- package/dist/conversations/queue.js +13 -2
- package/dist/conversations/queue.service.d.ts +1 -1
- package/dist/conversations/queue.service.js +8 -1
- package/dist/conversations/titles.d.ts +12 -3
- package/dist/conversations/titles.js +36 -8
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/create-ctx.d.ts +5 -0
- package/dist/ctx/create-ctx.js +15 -5
- package/dist/db/kernel-schema.d.ts +420 -20
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +3 -0
- package/dist/environments/access.d.ts +41 -0
- package/dist/environments/access.js +77 -0
- package/dist/environments/conversation-environments.d.ts +61 -0
- package/dist/environments/conversation-environments.js +170 -0
- package/dist/environments/dto.d.ts +25 -0
- package/dist/environments/dto.js +12 -0
- package/dist/environments/environments.controller.d.ts +33 -0
- package/dist/environments/environments.controller.js +110 -0
- package/dist/environments/environments.module.d.ts +8 -0
- package/dist/environments/environments.module.js +27 -0
- package/dist/environments/environments.service.d.ts +153 -0
- package/dist/environments/environments.service.js +541 -0
- package/dist/environments/legacy-cleanup.job.d.ts +34 -0
- package/dist/environments/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +90 -2
- package/dist/errors.js +90 -2
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +26 -7
- package/dist/evals/run-replay.d.ts +7 -2
- package/dist/evals/run-replay.js +42 -7
- package/dist/evals/step-replay.d.ts +2 -5
- package/dist/evals/step-replay.js +13 -7
- package/dist/evals/trajectory.js +1 -1
- package/dist/evals/trajectory.service.d.ts +8 -3
- package/dist/evals/trajectory.service.js +26 -14
- package/dist/evals/worker.d.ts +5 -5
- package/dist/evals/worker.js +9 -3
- package/dist/extensions/admin-ops.d.ts +36 -10
- package/dist/extensions/admin-ops.js +67 -42
- package/dist/extensions/admin-view.d.ts +39 -10
- package/dist/extensions/admin-view.js +111 -20
- package/dist/extensions/blobs.js +1 -0
- package/dist/extensions/bootstrap.d.ts +17 -4
- package/dist/extensions/bootstrap.js +70 -9
- package/dist/extensions/cli.d.ts +12 -0
- package/dist/extensions/cli.js +11 -2
- package/dist/extensions/config-issues.d.ts +13 -1
- package/dist/extensions/config-issues.js +22 -5
- package/dist/extensions/config-json-schema.d.ts +43 -7
- package/dist/extensions/config-json-schema.js +124 -58
- package/dist/extensions/deployment-config-store.d.ts +6 -0
- package/dist/extensions/deployment-config.d.ts +78 -8
- package/dist/extensions/deployment-config.js +172 -34
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +127 -0
- package/dist/extensions/effective-config.js +368 -0
- package/dist/extensions/extensions.module.js +14 -2
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +45 -2
- package/dist/extensions/host.js +112 -16
- package/dist/extensions/installs.d.ts +20 -8
- package/dist/extensions/installs.js +37 -15
- package/dist/extensions/org-config.d.ts +81 -6
- package/dist/extensions/org-config.js +195 -44
- package/dist/extensions/org-levels.d.ts +37 -0
- package/dist/extensions/org-levels.js +71 -0
- package/dist/extensions/org-overrides.d.ts +151 -0
- package/dist/extensions/org-overrides.js +524 -0
- package/dist/extensions/package.d.ts +14 -1
- package/dist/extensions/package.js +51 -2
- package/dist/extensions/permission-view.d.ts +19 -4
- package/dist/extensions/permission-view.js +4 -4
- package/dist/extensions/plugin-items.d.ts +21 -0
- package/dist/extensions/plugin-items.js +42 -0
- package/dist/extensions/point-defaults.controller.d.ts +34 -0
- package/dist/extensions/point-defaults.controller.js +71 -0
- package/dist/extensions/point-defaults.d.ts +71 -0
- package/dist/extensions/point-defaults.js +234 -0
- package/dist/extensions/registry.d.ts +1 -1
- package/dist/extensions/registry.js +2 -0
- package/dist/extensions/resolve.d.ts +5 -1
- package/dist/extensions/resolve.js +15 -2
- package/dist/files/previewers.d.ts +8 -1
- package/dist/files/previewers.js +35 -6
- package/dist/http/api.module.js +31 -3
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- package/dist/identity/accounts.d.ts +29 -29
- package/dist/identity/accounts.js +47 -47
- package/dist/identity/audit.d.ts +2 -1
- package/dist/identity/auth.controller.js +9 -5
- package/dist/identity/auth.guard.d.ts +13 -5
- package/dist/identity/auth.guard.js +26 -9
- package/dist/identity/cookies.d.ts +20 -5
- package/dist/identity/cookies.js +44 -6
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +4 -4
- package/dist/identity/me.controller.d.ts +5 -1
- package/dist/identity/me.controller.js +12 -3
- package/dist/identity/principal.d.ts +3 -3
- package/dist/identity/principal.js +3 -3
- package/dist/identity/sessions.d.ts +12 -0
- package/dist/identity/sessions.js +45 -0
- package/dist/identity/settings.d.ts +22 -11
- package/dist/identity/settings.js +53 -18
- package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
- package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
- package/dist/inbox/inbox.module.d.ts +4 -1
- package/dist/inbox/inbox.module.js +7 -3
- package/dist/inbox/inbox.service.d.ts +62 -3
- package/dist/inbox/inbox.service.js +74 -4
- package/dist/inbox/org-notices.d.ts +63 -0
- package/dist/inbox/org-notices.js +91 -0
- package/dist/inbox/platform-inbox.controller.d.ts +23 -0
- package/dist/inbox/platform-inbox.controller.js +58 -0
- package/dist/inbox/platform-inbox.service.d.ts +151 -0
- package/dist/inbox/platform-inbox.service.js +263 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +27 -1
- package/dist/infra/database/database.module.js +1 -0
- package/dist/infra/database/xact-lock.d.ts +1 -1
- package/dist/infra/database/xact-lock.js +1 -1
- package/dist/infra/events/kernel-events.d.ts +19 -2
- package/dist/infra/lifecycle/process-guards.js +4 -0
- package/dist/infra/logging/logging.module.d.ts +4 -2
- package/dist/infra/logging/logging.module.js +24 -6
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- package/dist/infra/queue/redis-connection.d.ts +6 -0
- package/dist/infra/queue/redis-connection.js +7 -0
- package/dist/infra/redis/redis.module.js +6 -2
- package/dist/infra/tokens.d.ts +6 -1
- package/dist/infra/tokens.js +6 -1
- package/dist/kernel.module.js +6 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +1 -1
- package/dist/lifecycle/kernel-lifecycle.js +4 -4
- package/dist/log.d.ts +13 -1
- package/dist/log.js +93 -17
- package/dist/models/prices.d.ts +5 -5
- package/dist/models/prices.js +4 -4
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +13 -7
- package/dist/models/purposes.d.ts +43 -9
- package/dist/models/purposes.js +48 -18
- package/dist/orgs/directory-sync.d.ts +14 -5
- package/dist/orgs/directory-sync.js +41 -17
- package/dist/orgs/offboarding.d.ts +12 -8
- package/dist/orgs/offboarding.js +54 -33
- package/dist/orgs/org-lock.d.ts +5 -0
- package/dist/orgs/org-lock.js +13 -0
- package/dist/orgs/org.guard.d.ts +10 -0
- package/dist/orgs/org.guard.js +43 -32
- package/dist/orgs/orgs.module.js +3 -0
- package/dist/orgs/orgs.service.d.ts +20 -7
- package/dist/orgs/orgs.service.js +32 -12
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +1 -1
- package/dist/orgs/settings.service.d.ts +20 -3
- package/dist/orgs/settings.service.js +19 -4
- package/dist/overrides.d.ts +3 -0
- package/dist/overrides.js +2 -0
- package/dist/platform/actor.d.ts +48 -0
- package/dist/platform/actor.js +100 -0
- package/dist/platform/agent-docs.d.ts +18 -0
- package/dist/platform/agent-docs.js +59 -0
- package/dist/platform/availability.d.ts +14 -0
- package/dist/platform/availability.js +43 -0
- package/dist/platform/errors.d.ts +11 -0
- package/dist/platform/errors.js +26 -0
- package/dist/platform/exclusions.d.ts +12 -0
- package/dist/platform/exclusions.js +1387 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +92 -0
- package/dist/platform/operation.js +35 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +14 -0
- package/dist/platform/ops/agent-templates.ops.js +92 -0
- package/dist/platform/ops/agents.ops.d.ts +19 -0
- package/dist/platform/ops/agents.ops.js +294 -0
- package/dist/platform/ops/connectors.ops.d.ts +15 -0
- package/dist/platform/ops/connectors.ops.js +126 -0
- package/dist/platform/ops/errors.d.ts +11 -0
- package/dist/platform/ops/errors.js +22 -0
- package/dist/platform/ops/extensions.ops.d.ts +19 -0
- package/dist/platform/ops/extensions.ops.js +116 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +16 -0
- package/dist/platform/ops/marketplaces.ops.js +157 -0
- package/dist/platform/ops/paging.d.ts +14 -0
- package/dist/platform/ops/paging.js +20 -0
- package/dist/platform/ops/platform.ops.d.ts +23 -0
- package/dist/platform/ops/platform.ops.js +158 -0
- package/dist/platform/ops/plugins.ops.d.ts +33 -0
- package/dist/platform/ops/plugins.ops.js +377 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +153 -0
- package/dist/platform/ops/role.d.ts +4 -0
- package/dist/platform/ops/role.js +10 -0
- package/dist/platform/ops/skills.ops.d.ts +13 -0
- package/dist/platform/ops/skills.ops.js +98 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/platform-ops.module.d.ts +7 -0
- package/dist/platform/platform-ops.module.js +55 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/redact-orgs.d.ts +7 -0
- package/dist/platform/redact-orgs.js +52 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- package/dist/roles/worker-role.d.ts +6 -4
- package/dist/roles/worker-role.js +14 -7
- package/dist/roles/worker.module.d.ts +1 -1
- package/dist/roles/worker.module.js +15 -1
- package/dist/runtime/context/build.d.ts +11 -7
- package/dist/runtime/context/build.js +46 -19
- package/dist/runtime/context/claude-tools.d.ts +3 -1
- package/dist/runtime/context/claude-tools.js +8 -6
- package/dist/runtime/context/compaction.js +13 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/skills.js +9 -2
- package/dist/runtime/context/tool-changes.d.ts +27 -0
- package/dist/runtime/context/tool-changes.js +60 -0
- package/dist/runtime/hook-calls.js +2 -0
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +36 -17
- package/dist/runtime/loop.d.ts +34 -5
- package/dist/runtime/maintenance.d.ts +9 -4
- package/dist/runtime/maintenance.js +35 -8
- package/dist/runtime/model-call.d.ts +46 -8
- package/dist/runtime/model-call.js +72 -21
- package/dist/runtime/providers.d.ts +6 -0
- package/dist/runtime/providers.js +8 -0
- package/dist/runtime/run-control.d.ts +11 -1
- package/dist/runtime/run-control.js +12 -0
- package/dist/runtime/run-drafts.d.ts +85 -0
- package/dist/runtime/run-drafts.js +230 -0
- package/dist/runtime/run-jobs.d.ts +3 -5
- package/dist/runtime/run-jobs.js +3 -7
- package/dist/runtime/run-queue.d.ts +59 -2
- package/dist/runtime/run-queue.js +311 -38
- package/dist/runtime/run-worker.d.ts +11 -5
- package/dist/runtime/run-worker.js +69 -33
- package/dist/runtime/runtime.module.js +11 -3
- package/dist/runtime/step-log.d.ts +15 -4
- package/dist/runtime/step-log.js +24 -7
- package/dist/runtime/stream.controller.d.ts +23 -1
- package/dist/runtime/stream.controller.js +60 -3
- package/dist/runtime/stream.d.ts +4 -1
- package/dist/runtime/stream.js +27 -3
- package/dist/runtime/subagents/child.d.ts +55 -7
- package/dist/runtime/subagents/child.js +105 -7
- package/dist/runtime/subagents/definition.d.ts +12 -3
- package/dist/runtime/subagents/definition.js +44 -28
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +115 -26
- package/dist/runtime/subagents/dispatch.js +212 -141
- package/dist/runtime/subagents/limits.d.ts +24 -5
- package/dist/runtime/subagents/limits.js +40 -6
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +8 -6
- package/dist/runtime/subagents/progress.js +11 -6
- package/dist/runtime/subagents/render.d.ts +30 -0
- package/dist/runtime/subagents/render.js +53 -0
- package/dist/runtime/subagents/roster.d.ts +24 -7
- package/dist/runtime/subagents/roster.js +47 -11
- package/dist/runtime/subagents/skill-fork.d.ts +3 -2
- package/dist/runtime/subagents/skill-fork.js +8 -4
- package/dist/runtime/subagents/status.d.ts +14 -0
- package/dist/runtime/subagents/status.js +23 -0
- package/dist/runtime/subagents/subagents.service.d.ts +7 -4
- package/dist/runtime/subagents/subagents.service.js +11 -6
- package/dist/runtime/usage-report.d.ts +2 -1
- package/dist/runtime/usage-report.js +19 -13
- package/dist/runtime/waits.d.ts +145 -36
- package/dist/runtime/waits.js +423 -109
- package/dist/sandbox/jobs.d.ts +40 -13
- package/dist/sandbox/jobs.js +57 -20
- package/dist/sandbox/leases.d.ts +37 -54
- package/dist/sandbox/leases.js +71 -115
- package/dist/sandbox/providers.d.ts +2 -2
- package/dist/sandbox/providers.js +1 -1
- package/dist/sandbox/sandbox.module.d.ts +3 -2
- package/dist/sandbox/sandbox.module.js +10 -4
- package/dist/sandbox/sandbox.service.d.ts +282 -129
- package/dist/sandbox/sandbox.service.js +736 -381
- package/dist/skills/catalog.d.ts +3 -2
- package/dist/skills/catalog.js +21 -43
- package/dist/skills/changes.controller.d.ts +7 -0
- package/dist/skills/changes.controller.js +19 -1
- package/dist/skills/invoke.js +8 -3
- package/dist/skills/package.d.ts +20 -1
- package/dist/skills/package.js +28 -1
- package/dist/skills/skills.controller.d.ts +39 -4
- package/dist/skills/skills.controller.js +88 -10
- package/dist/skills/skills.module.js +10 -1
- package/dist/skills/skills.service.d.ts +106 -26
- package/dist/skills/skills.service.js +421 -75
- package/dist/skills/usable.d.ts +81 -0
- package/dist/skills/usable.js +379 -0
- package/dist/tools/approvals.service.d.ts +20 -2
- package/dist/tools/approvals.service.js +25 -4
- package/dist/tools/builtin-names.d.ts +41 -7
- package/dist/tools/builtin-names.js +59 -7
- package/dist/tools/builtins/agent.d.ts +23 -21
- package/dist/tools/builtins/agent.js +62 -55
- package/dist/tools/builtins/builtin-tools.d.ts +19 -1
- package/dist/tools/builtins/builtin-tools.js +59 -2
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +34 -0
- package/dist/tools/builtins/platform.js +362 -0
- package/dist/tools/builtins/sandbox/bash.d.ts +1 -1
- package/dist/tools/builtins/sandbox/bash.js +241 -4
- package/dist/tools/builtins/sandbox/common.d.ts +69 -27
- package/dist/tools/builtins/sandbox/common.js +87 -48
- package/dist/tools/builtins/sandbox/deliver.js +1 -1
- package/dist/tools/builtins/sandbox/edit.js +2 -2
- package/dist/tools/builtins/sandbox/glob.js +2 -2
- package/dist/tools/builtins/sandbox/grep.js +2 -4
- package/dist/tools/builtins/sandbox/index.d.ts +3 -1
- package/dist/tools/builtins/sandbox/index.js +7 -1
- package/dist/tools/builtins/sandbox/read.js +1 -1
- package/dist/tools/builtins/sandbox/task-output.d.ts +74 -0
- package/dist/tools/builtins/sandbox/task-output.js +329 -0
- package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
- package/dist/tools/builtins/sandbox/task-stop.js +113 -0
- package/dist/tools/builtins/sandbox/write.js +2 -2
- package/dist/tools/builtins/send-message.d.ts +56 -0
- package/dist/tools/builtins/send-message.js +100 -0
- package/dist/tools/builtins/skill-load.d.ts +22 -14
- package/dist/tools/builtins/skill-load.js +86 -57
- package/dist/tools/builtins/skill-write.js +1 -1
- package/dist/tools/builtins/web/errors.d.ts +8 -0
- package/dist/tools/builtins/web/errors.js +53 -0
- package/dist/tools/builtins/web/extract.d.ts +62 -0
- package/dist/tools/builtins/web/extract.js +271 -0
- package/dist/tools/builtins/web/fetch.d.ts +55 -0
- package/dist/tools/builtins/web/fetch.js +175 -0
- package/dist/tools/builtins/web/index.d.ts +13 -0
- package/dist/tools/builtins/web/index.js +12 -0
- package/dist/tools/builtins/web/page-cache.d.ts +25 -0
- package/dist/tools/builtins/web/page-cache.js +77 -0
- package/dist/tools/builtins/web/search.d.ts +25 -0
- package/dist/tools/builtins/web/search.js +210 -0
- package/dist/tools/builtins/web/url.d.ts +17 -0
- package/dist/tools/builtins/web/url.js +43 -0
- package/dist/tools/connectors.controller.d.ts +10 -0
- package/dist/tools/connectors.controller.js +12 -0
- package/dist/tools/connectors.service.d.ts +46 -5
- package/dist/tools/connectors.service.js +94 -15
- package/dist/tools/extension-tools.controller.d.ts +14 -0
- package/dist/tools/extension-tools.controller.js +37 -0
- package/dist/tools/info.d.ts +42 -1
- package/dist/tools/info.js +64 -1
- package/dist/tools/oauth/flow-paths.d.ts +1 -1
- package/dist/tools/oauth/flow-paths.js +1 -1
- package/dist/tools/org-tool-switches.d.ts +74 -0
- package/dist/tools/org-tool-switches.js +184 -0
- package/dist/tools/pipeline.d.ts +46 -40
- package/dist/tools/pipeline.js +202 -364
- package/dist/tools/policy.d.ts +1 -1
- package/dist/tools/policy.js +36 -16
- package/dist/tools/registry.d.ts +120 -8
- package/dist/tools/registry.js +112 -19
- package/dist/tools/tools.module.js +24 -2
- package/dist/tools/validate.js +1 -1
- package/dist/ui/views.d.ts +2 -1
- package/dist/ui/views.js +17 -3
- package/package.json +3 -3
- package/src/migrations/0064_account_last_org.sql +7 -0
- package/src/migrations/0065_conversation_archive.sql +8 -0
- package/src/migrations/0066_extension_display_name.sql +4 -0
- package/src/migrations/0067_agent_profiles.sql +20 -0
- package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
- package/src/migrations/0069_attachments_agent_idx.sql +3 -0
- package/src/migrations/0070_background_tasks.sql +37 -0
- package/src/migrations/0071_background_tasks_reserve.sql +6 -0
- package/src/migrations/0072_background_tasks_stopping.sql +5 -0
- package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
- package/src/migrations/0074_subagent_tree.sql +50 -0
- package/src/migrations/0075_plugin_scope.sql +61 -0
- package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
- package/src/migrations/0077_scope_requests.sql +52 -0
- package/src/migrations/0078_scope_grant_switches.sql +18 -0
- package/src/migrations/0079_scope_live_install_switches.sql +19 -0
- package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
- package/src/migrations/0081_platform_components.sql +129 -0
- package/src/migrations/0082_platform_migration.sql +33 -0
- package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
- package/src/migrations/0084_org_owned_items.sql +85 -0
- package/src/migrations/0085_agent_templates_phase4.sql +45 -0
- package/src/migrations/0086_org_layering.sql +30 -0
- package/src/migrations/0087_approval_summary.sql +6 -0
- package/src/migrations/0088_environments.sql +80 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -56
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -24
- package/dist/conversations/sandbox-status.js +0 -52
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -62
package/dist/files/previewers.js
CHANGED
|
@@ -12,6 +12,7 @@ import { Inject, Injectable, Optional } from "@nestjs/common";
|
|
|
12
12
|
import { sql } from "kysely";
|
|
13
13
|
import { ConversationFiles } from "../conversations/files.js";
|
|
14
14
|
import { ApiError } from "../errors.js";
|
|
15
|
+
import { EffectiveConfigs } from "../extensions/effective-config.js";
|
|
15
16
|
import { ExtensionHost } from "../extensions/host.js";
|
|
16
17
|
import { audit } from "../identity/audit.js";
|
|
17
18
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
@@ -71,7 +72,7 @@ let PreviewerRegistry = class PreviewerRegistry {
|
|
|
71
72
|
txHost;
|
|
72
73
|
timeoutMs;
|
|
73
74
|
d;
|
|
74
|
-
constructor(kdb, host, files, storage, log, txHost, timeoutMs = FILE_PREVIEW_TIMEOUT_MS) {
|
|
75
|
+
constructor(kdb, host, files, storage, effective, log, txHost, timeoutMs = FILE_PREVIEW_TIMEOUT_MS) {
|
|
75
76
|
this.txHost = txHost;
|
|
76
77
|
this.timeoutMs = timeoutMs;
|
|
77
78
|
this.d = {
|
|
@@ -82,6 +83,7 @@ let PreviewerRegistry = class PreviewerRegistry {
|
|
|
82
83
|
enabledPlugins: (orgId) => host.enabledPlugins(orgId),
|
|
83
84
|
files,
|
|
84
85
|
storage,
|
|
86
|
+
effective,
|
|
85
87
|
log,
|
|
86
88
|
};
|
|
87
89
|
}
|
|
@@ -186,8 +188,33 @@ let PreviewerRegistry = class PreviewerRegistry {
|
|
|
186
188
|
const file = await this.d.files.file(orgId, conversationId, viewer, fileId);
|
|
187
189
|
return (await this.accepting(orgId, file)).map(item);
|
|
188
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* The org's enabled previewers that take the file, each with its extension's effective config
|
|
193
|
+
* for the org. An extension whose effective config is not valid in the org (or cannot be read)
|
|
194
|
+
* previews nothing there (layering spec A §6): its previewers are left out, so the next one or a
|
|
195
|
+
* built-in takes the file.
|
|
196
|
+
*/
|
|
189
197
|
async accepting(orgId, file) {
|
|
190
|
-
|
|
198
|
+
const taking = (await this.ordered(orgId)).filter((l) => !l.disabled && previewerAccepts(l.previewer, file));
|
|
199
|
+
const configs = new Map();
|
|
200
|
+
for (const plugin of new Set(taking.map((l) => l.plugin))) {
|
|
201
|
+
try {
|
|
202
|
+
const e = await this.d.effective.get(orgId, plugin);
|
|
203
|
+
configs.set(plugin, e.ok ? { config: e.config } : null);
|
|
204
|
+
}
|
|
205
|
+
catch (err) {
|
|
206
|
+
this.d.log.warn("file previewer left out: cannot read its effective config", {
|
|
207
|
+
orgId,
|
|
208
|
+
plugin,
|
|
209
|
+
err,
|
|
210
|
+
});
|
|
211
|
+
configs.set(plugin, null);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return taking.flatMap((l) => {
|
|
215
|
+
const c = configs.get(l.plugin);
|
|
216
|
+
return c ? [{ ...l, config: c.config }] : [];
|
|
217
|
+
});
|
|
191
218
|
}
|
|
192
219
|
/**
|
|
193
220
|
* Renders a view previewer for one file: 404 `ui.not_found` when it does not take the file (or is
|
|
@@ -224,6 +251,7 @@ let PreviewerRegistry = class PreviewerRegistry {
|
|
|
224
251
|
accountId: t.accountId,
|
|
225
252
|
conversationId: t.conversationId,
|
|
226
253
|
locale: t.locale,
|
|
254
|
+
config: l.config,
|
|
227
255
|
signal: s,
|
|
228
256
|
file: {
|
|
229
257
|
id: file.id,
|
|
@@ -289,9 +317,10 @@ PreviewerRegistry = __decorate([
|
|
|
289
317
|
__param(1, Inject(ExtensionHost)),
|
|
290
318
|
__param(2, Inject(ConversationFiles)),
|
|
291
319
|
__param(3, Inject(StorageService)),
|
|
292
|
-
__param(4, Inject(
|
|
293
|
-
__param(5, Inject(
|
|
294
|
-
__param(6,
|
|
295
|
-
__param(
|
|
320
|
+
__param(4, Inject(EffectiveConfigs)),
|
|
321
|
+
__param(5, Inject(KERNEL_LOGGER)),
|
|
322
|
+
__param(6, Inject(TransactionHost)),
|
|
323
|
+
__param(7, Optional()),
|
|
324
|
+
__param(7, Inject(FILE_PREVIEW_TIMEOUT))
|
|
296
325
|
], PreviewerRegistry);
|
|
297
326
|
export { PreviewerRegistry };
|
package/dist/http/api.module.js
CHANGED
|
@@ -13,22 +13,31 @@ import { SetupController } from "../admin/setup.controller.js";
|
|
|
13
13
|
import { AgentsController } from "../agents/agents.controller.js";
|
|
14
14
|
import { AgentsModule } from "../agents/agents.module.js";
|
|
15
15
|
import { ModelsController } from "../agents/models.controller.js";
|
|
16
|
-
import {
|
|
16
|
+
import { PendingConnectorsController } from "../agents/pending-connectors.controller.js";
|
|
17
|
+
import { ReadinessController } from "../agents/readiness.controller.js";
|
|
18
|
+
import { AgentSaveAsTemplateController, AgentTemplatesController, } from "../agents/templates.controller.js";
|
|
19
|
+
import { BackgroundController } from "../background/background.controller.js";
|
|
20
|
+
import { BackgroundModule } from "../background/background.module.js";
|
|
17
21
|
import { AdminCatalogController } from "../catalog/admin-catalog.controller.js";
|
|
18
22
|
import { CatalogModule } from "../catalog/catalog.module.js";
|
|
19
|
-
import {
|
|
23
|
+
import { AdminComponentsController, OrgComponentsController, } from "../catalog/component-scope.controller.js";
|
|
24
|
+
import { MarketplacesController, OrgMarketplacesController, } from "../catalog/marketplaces.controller.js";
|
|
20
25
|
import { AdminCatalogRequestsController, OrgCatalogController, } from "../catalog/org-catalog.controller.js";
|
|
26
|
+
import { OrgExtensionConfigsController, OrgExtensionOverridesController, OrgExtensionToolSwitchesController, } from "../catalog/org-extension.controller.js";
|
|
27
|
+
import { OrgOwnedPluginsController, OrgPluginUploadsController, } from "../catalog/org-plugin-uploads.controller.js";
|
|
21
28
|
import { ChannelsModule } from "../channels/channels.module.js";
|
|
22
29
|
import { ChannelConnectionsController } from "../channels/connections.controller.js";
|
|
23
30
|
import { AttachmentsController } from "../conversations/attachments.controller.js";
|
|
24
31
|
import { ConversationsController } from "../conversations/conversations.controller.js";
|
|
25
32
|
import { ConversationsModule } from "../conversations/conversations.module.js";
|
|
33
|
+
import { EnvironmentsController } from "../environments/environments.controller.js";
|
|
34
|
+
import { EnvironmentsModule } from "../environments/environments.module.js";
|
|
26
35
|
import { EvalsModule } from "../evals/evals.module.js";
|
|
27
36
|
import { EvalRunsController } from "../evals/runs.controller.js";
|
|
28
37
|
import { EvalSetsController } from "../evals/sets.controller.js";
|
|
29
38
|
import { TrajectoryController } from "../evals/trajectory.controller.js";
|
|
30
39
|
import { ExtensionsModule } from "../extensions/extensions.module.js";
|
|
31
|
-
import {
|
|
40
|
+
import { ExtensionPointDefaultsController } from "../extensions/point-defaults.controller.js";
|
|
32
41
|
import { FilesModule } from "../files/files.module.js";
|
|
33
42
|
import { FilePreviewersController } from "../files/previewers.controller.js";
|
|
34
43
|
import { AuthController } from "../identity/auth.controller.js";
|
|
@@ -37,6 +46,7 @@ import { IdentityModule } from "../identity/identity.module.js";
|
|
|
37
46
|
import { MeController } from "../identity/me.controller.js";
|
|
38
47
|
import { BindController, MeIdentitiesController, SsoController, } from "../identity/sso.controller.js";
|
|
39
48
|
import { InboxModule } from "../inbox/inbox.module.js";
|
|
49
|
+
import { PlatformInboxController } from "../inbox/platform-inbox.controller.js";
|
|
40
50
|
import { ModelsModule } from "../models/models.module.js";
|
|
41
51
|
import { ModelPurposesController } from "../models/purposes.controller.js";
|
|
42
52
|
import { DirectorySyncController } from "../orgs/directory-sync.controller.js";
|
|
@@ -54,6 +64,7 @@ import { StorageModule } from "../storage/storage.module.js";
|
|
|
54
64
|
import { ApprovalsController, ToolGrantsController } from "../tools/approvals.controller.js";
|
|
55
65
|
import { ConnectorContentController } from "../tools/connector-content.controller.js";
|
|
56
66
|
import { ConnectorsController } from "../tools/connectors.controller.js";
|
|
67
|
+
import { ExtensionToolsController } from "../tools/extension-tools.controller.js";
|
|
57
68
|
import { OAuthCallbackController, OAuthConnectController, } from "../tools/oauth/oauth.controller.js";
|
|
58
69
|
import { QuestionsController } from "../tools/questions.controller.js";
|
|
59
70
|
import { ToolsModule } from "../tools/tools.module.js";
|
|
@@ -70,24 +81,35 @@ const CONTROLLERS = [
|
|
|
70
81
|
AdminController,
|
|
71
82
|
AdminExtensionsController,
|
|
72
83
|
AdminCatalogController,
|
|
84
|
+
AdminComponentsController,
|
|
73
85
|
MarketplacesController,
|
|
86
|
+
OrgMarketplacesController,
|
|
74
87
|
OrgExtensionConfigsController,
|
|
88
|
+
OrgExtensionOverridesController,
|
|
89
|
+
OrgExtensionToolSwitchesController,
|
|
75
90
|
AgentsController,
|
|
76
91
|
AgentTemplatesController,
|
|
92
|
+
AgentSaveAsTemplateController,
|
|
93
|
+
PendingConnectorsController,
|
|
77
94
|
ModelsController,
|
|
95
|
+
ReadinessController,
|
|
78
96
|
ConversationsController,
|
|
97
|
+
BackgroundController,
|
|
98
|
+
EnvironmentsController,
|
|
79
99
|
AttachmentsController,
|
|
80
100
|
SkillsController,
|
|
81
101
|
SkillChangesController,
|
|
82
102
|
AgentSkillsController,
|
|
83
103
|
InvocableSkillsController,
|
|
84
104
|
InboxController,
|
|
105
|
+
PlatformInboxController,
|
|
85
106
|
ConversationStreamController,
|
|
86
107
|
ConnectorContentController,
|
|
87
108
|
ConnectorsController,
|
|
88
109
|
ApprovalsController,
|
|
89
110
|
ToolGrantsController,
|
|
90
111
|
QuestionsController,
|
|
112
|
+
ExtensionToolsController,
|
|
91
113
|
OAuthConnectController,
|
|
92
114
|
OAuthCallbackController,
|
|
93
115
|
SsoController,
|
|
@@ -97,11 +119,15 @@ const CONTROLLERS = [
|
|
|
97
119
|
DirectorySyncController,
|
|
98
120
|
UiController,
|
|
99
121
|
FilePreviewersController,
|
|
122
|
+
ExtensionPointDefaultsController,
|
|
100
123
|
TrajectoryController,
|
|
101
124
|
EvalSetsController,
|
|
102
125
|
EvalRunsController,
|
|
103
126
|
ModelPurposesController,
|
|
104
127
|
OrgCatalogController,
|
|
128
|
+
OrgPluginUploadsController,
|
|
129
|
+
OrgOwnedPluginsController,
|
|
130
|
+
OrgComponentsController,
|
|
105
131
|
AdminCatalogRequestsController,
|
|
106
132
|
];
|
|
107
133
|
/**
|
|
@@ -126,6 +152,8 @@ ApiModule = __decorate([
|
|
|
126
152
|
ToolsModule,
|
|
127
153
|
AgentsModule,
|
|
128
154
|
ConversationsModule,
|
|
155
|
+
BackgroundModule,
|
|
156
|
+
EnvironmentsModule,
|
|
129
157
|
RuntimeModule,
|
|
130
158
|
ChannelsModule,
|
|
131
159
|
EvalsModule,
|
package/dist/http/app.d.ts
CHANGED
|
@@ -45,7 +45,7 @@ export interface CreateHttpAppOptions {
|
|
|
45
45
|
replicaId?: string | undefined;
|
|
46
46
|
/**
|
|
47
47
|
* The size limit for package uploads ({@link PACKAGE_UPLOAD_ROUTES}: extension packages and
|
|
48
|
-
*
|
|
48
|
+
* platform catalog packages, `application/octet-stream`), i.e. `packages.maxBytes`. The route
|
|
49
49
|
* bodyLimit is one byte more: a package exactly one byte over reaches the handler and returns
|
|
50
50
|
* `extension.package_too_large`; larger ones are refused by Fastify itself (413
|
|
51
51
|
* `payload_too_large`).
|
|
@@ -56,11 +56,20 @@ export interface CreateHttpAppOptions {
|
|
|
56
56
|
export declare const EXTENSION_PACKAGE_UPLOAD_ROUTE = "/api/v1/admin/extensions/packages/file";
|
|
57
57
|
/** The plugin package upload route of the catalog import (Fastify route template). */
|
|
58
58
|
export declare const CATALOG_UPLOAD_ROUTE = "/api/v1/admin/catalog/import/file";
|
|
59
|
+
/** The platform skill version upload route (a skill package zip as the raw body). */
|
|
60
|
+
export declare const COMPONENT_SKILL_UPLOAD_ROUTE = "/api/v1/admin/components/skill/:id/versions";
|
|
59
61
|
/**
|
|
60
62
|
* The upload routes that take raw bytes (`application/octet-stream`, limit `packages.maxBytes`,
|
|
61
|
-
* the
|
|
63
|
+
* the super admin is authenticated before the body is read).
|
|
62
64
|
*/
|
|
63
65
|
export declare const PACKAGE_UPLOAD_ROUTES: ReadonlySet<string>;
|
|
66
|
+
/** An org admin's plugin package upload (spec §14, ruling P3-7; a tgz as the raw body). */
|
|
67
|
+
export declare const ORG_PLUGIN_UPLOAD_ROUTE = "/api/v1/orgs/:orgId/catalog/uploads/file";
|
|
68
|
+
/**
|
|
69
|
+
* The org routes that take raw package bytes (limit `packages.maxBytes`): before the body is read
|
|
70
|
+
* the caller is authenticated as a person with the org role of `catalog.upload` (ruling P3-29).
|
|
71
|
+
*/
|
|
72
|
+
export declare const ORG_PACKAGE_UPLOAD_ROUTES: ReadonlySet<string>;
|
|
64
73
|
/**
|
|
65
74
|
* Sets up the Fastify side of the kernel's Nest application (built by `buildKernelApp` from
|
|
66
75
|
* `KernelModule`, which provides the health endpoints and the API) without connecting to anything,
|
package/dist/http/app.js
CHANGED
|
@@ -3,9 +3,11 @@ import fastifyCookie from "@fastify/cookie";
|
|
|
3
3
|
import { ApiError, errorBody } from "../errors.js";
|
|
4
4
|
import { AccountsService } from "../identity/accounts.js";
|
|
5
5
|
import { ApiTokenService } from "../identity/api-tokens.js";
|
|
6
|
-
import {
|
|
6
|
+
import { authenticateOrgUploader, authorizeSuperAdmin, } from "../identity/auth.guard.js";
|
|
7
7
|
import { SessionService } from "../identity/sessions.js";
|
|
8
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
8
9
|
import { withLogContext } from "../log-context.js";
|
|
10
|
+
import { authorizeOrgAction } from "../orgs/org.guard.js";
|
|
9
11
|
import { redactPath } from "./error.filter.js";
|
|
10
12
|
import { registerGatewayRoutes } from "./gateway-routes.js";
|
|
11
13
|
import { createPluginRouter, registerPluginDispatch, staticRouteTable, } from "./plugin-dispatch.js";
|
|
@@ -13,14 +15,24 @@ import { createPluginRouter, registerPluginDispatch, staticRouteTable, } from ".
|
|
|
13
15
|
export const EXTENSION_PACKAGE_UPLOAD_ROUTE = "/api/v1/admin/extensions/packages/file";
|
|
14
16
|
/** The plugin package upload route of the catalog import (Fastify route template). */
|
|
15
17
|
export const CATALOG_UPLOAD_ROUTE = "/api/v1/admin/catalog/import/file";
|
|
18
|
+
/** The platform skill version upload route (a skill package zip as the raw body). */
|
|
19
|
+
export const COMPONENT_SKILL_UPLOAD_ROUTE = "/api/v1/admin/components/skill/:id/versions";
|
|
16
20
|
/**
|
|
17
21
|
* The upload routes that take raw bytes (`application/octet-stream`, limit `packages.maxBytes`,
|
|
18
|
-
* the
|
|
22
|
+
* the super admin is authenticated before the body is read).
|
|
19
23
|
*/
|
|
20
24
|
export const PACKAGE_UPLOAD_ROUTES = new Set([
|
|
21
25
|
EXTENSION_PACKAGE_UPLOAD_ROUTE,
|
|
22
26
|
CATALOG_UPLOAD_ROUTE,
|
|
27
|
+
COMPONENT_SKILL_UPLOAD_ROUTE,
|
|
23
28
|
]);
|
|
29
|
+
/** An org admin's plugin package upload (spec §14, ruling P3-7; a tgz as the raw body). */
|
|
30
|
+
export const ORG_PLUGIN_UPLOAD_ROUTE = "/api/v1/orgs/:orgId/catalog/uploads/file";
|
|
31
|
+
/**
|
|
32
|
+
* The org routes that take raw package bytes (limit `packages.maxBytes`): before the body is read
|
|
33
|
+
* the caller is authenticated as a person with the org role of `catalog.upload` (ruling P3-29).
|
|
34
|
+
*/
|
|
35
|
+
export const ORG_PACKAGE_UPLOAD_ROUTES = new Set([ORG_PLUGIN_UPLOAD_ROUTE]);
|
|
24
36
|
/** Paths without an access log line (probes). */
|
|
25
37
|
const QUIET_PATHS = new Set(["/healthz", "/readyz"]);
|
|
26
38
|
/**
|
|
@@ -92,11 +104,12 @@ export async function createHttpApp(opts, app) {
|
|
|
92
104
|
if (LARGE_BODY_ROUTES.has(r.url) && [r.method].flat().includes("POST")) {
|
|
93
105
|
r.bodyLimit = LARGE_BODY_LIMIT;
|
|
94
106
|
}
|
|
95
|
-
|
|
107
|
+
const upload = PACKAGE_UPLOAD_ROUTES.has(r.url) || ORG_PACKAGE_UPLOAD_ROUTES.has(r.url);
|
|
108
|
+
if (upload && opts.packageMaxBytes !== undefined) {
|
|
96
109
|
r.bodyLimit = opts.packageMaxBytes + 1;
|
|
97
110
|
}
|
|
98
111
|
});
|
|
99
|
-
//
|
|
112
|
+
// 读请求体之前:包上传(插件包、平台目录包)先认证(未认证 / 非超级管理员的大请求体不读进内存);其余内核路由不收
|
|
100
113
|
// application/octet-stream(415)。插件路由 /plugins/* 在自己的作用域里收任何类型,不受影响
|
|
101
114
|
let authServices;
|
|
102
115
|
const services = () => {
|
|
@@ -119,7 +132,20 @@ export async function createHttpApp(opts, app) {
|
|
|
119
132
|
return;
|
|
120
133
|
if (req.method === "POST" && PACKAGE_UPLOAD_ROUTES.has(req.routeOptions.url ?? "")) {
|
|
121
134
|
try {
|
|
122
|
-
await
|
|
135
|
+
await authorizeSuperAdmin(req, services());
|
|
136
|
+
}
|
|
137
|
+
catch (e) {
|
|
138
|
+
return sendError(reply, e, req.method, req.url);
|
|
139
|
+
}
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
if (req.method === "POST" && ORG_PACKAGE_UPLOAD_ROUTES.has(req.routeOptions.url ?? "")) {
|
|
143
|
+
try {
|
|
144
|
+
// the org admin role before the body (ruling P3-29): no one else makes the kernel buffer
|
|
145
|
+
// a package-sized body
|
|
146
|
+
const principal = await authenticateOrgUploader(req, services());
|
|
147
|
+
const orgId = req.params.orgId ?? "";
|
|
148
|
+
await authorizeOrgAction(app.get(KernelDb, { strict: false }).db, principal, orgId, "catalog.upload");
|
|
123
149
|
}
|
|
124
150
|
catch (e) {
|
|
125
151
|
return sendError(reply, e, req.method, req.url);
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { Logger } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import type { LoggerService } from "@nestjs/common";
|
|
3
|
-
/**
|
|
3
|
+
/** A logger with an optional debug (the kernel logger has one; the SDK Logger does not). */
|
|
4
4
|
type MaybeDebugLogger = Logger & {
|
|
5
5
|
debug?: (msg: string, fields?: Record<string, unknown>) => void;
|
|
6
6
|
};
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
* `
|
|
8
|
+
* Forwards Nest's own log lines to the kernel logger, as octok does: `log` (module loading,
|
|
9
|
+
* the `Mapped {/api/v1/…, GET} route` lines at startup) at info, `warn` / `error` as they are,
|
|
10
|
+
* `debug` / `verbose` at debug. Nest's context name becomes the record's `context`.
|
|
10
11
|
*/
|
|
11
12
|
export declare class NestLogAdapter implements LoggerService {
|
|
12
13
|
private readonly logger;
|
|
@@ -14,7 +15,7 @@ export declare class NestLogAdapter implements LoggerService {
|
|
|
14
15
|
log(message: unknown, ...params: unknown[]): void;
|
|
15
16
|
warn(message: unknown, ...params: unknown[]): void;
|
|
16
17
|
error(message: unknown, ...params: unknown[]): void;
|
|
17
|
-
debug(): void;
|
|
18
|
-
verbose(): void;
|
|
18
|
+
debug(message: unknown, ...params: unknown[]): void;
|
|
19
|
+
verbose(message: unknown, ...params: unknown[]): void;
|
|
19
20
|
}
|
|
20
21
|
export {};
|
package/dist/http/nest-logger.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* `
|
|
2
|
+
* Forwards Nest's own log lines to the kernel logger, as octok does: `log` (module loading,
|
|
3
|
+
* the `Mapped {/api/v1/…, GET} route` lines at startup) at info, `warn` / `error` as they are,
|
|
4
|
+
* `debug` / `verbose` at debug. Nest's context name becomes the record's `context`.
|
|
4
5
|
*/
|
|
5
6
|
export class NestLogAdapter {
|
|
6
7
|
logger;
|
|
@@ -8,7 +9,7 @@ export class NestLogAdapter {
|
|
|
8
9
|
this.logger = logger;
|
|
9
10
|
}
|
|
10
11
|
log(message, ...params) {
|
|
11
|
-
this.logger.
|
|
12
|
+
this.logger.info(String(message), fields(params));
|
|
12
13
|
}
|
|
13
14
|
warn(message, ...params) {
|
|
14
15
|
this.logger.warn(String(message), fields(params));
|
|
@@ -16,13 +17,26 @@ export class NestLogAdapter {
|
|
|
16
17
|
error(message, ...params) {
|
|
17
18
|
this.logger.error(String(message), fields(params));
|
|
18
19
|
}
|
|
19
|
-
debug() {
|
|
20
|
-
|
|
20
|
+
debug(message, ...params) {
|
|
21
|
+
this.logger.debug?.(String(message), fields(params));
|
|
22
|
+
}
|
|
23
|
+
verbose(message, ...params) {
|
|
24
|
+
this.logger.debug?.(String(message), fields(params));
|
|
25
|
+
}
|
|
21
26
|
}
|
|
22
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Nest passes its context name (e.g. `RoutesResolver`) last and, for errors, the stack before it. The
|
|
29
|
+
* name becomes `context` (the pretty `[context=…]`), anything else `nest`.
|
|
30
|
+
*/
|
|
23
31
|
function fields(params) {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
32
|
+
const rest = params.filter((p) => p !== undefined);
|
|
33
|
+
const last = rest.at(-1);
|
|
34
|
+
const out = {};
|
|
35
|
+
if (typeof last === "string" && /^[A-Za-z][\w.-]*$/.test(last)) {
|
|
36
|
+
out.context = last;
|
|
37
|
+
rest.pop();
|
|
38
|
+
}
|
|
39
|
+
if (rest.length > 0)
|
|
40
|
+
out.nest = rest.length === 1 ? rest[0] : rest;
|
|
41
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
28
42
|
}
|
|
@@ -3,31 +3,31 @@ import { SetupLock } from "../admin/setup-lock.js";
|
|
|
3
3
|
import type { AccountsTable } from "../db/kernel-schema.js";
|
|
4
4
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
5
5
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
6
|
-
import {
|
|
6
|
+
import { SuperAdminLock } from "./super-admin.js";
|
|
7
7
|
export interface Account {
|
|
8
8
|
id: string;
|
|
9
9
|
displayName: string;
|
|
10
10
|
email: string | null;
|
|
11
11
|
status: "active" | "disabled";
|
|
12
|
-
|
|
12
|
+
isSuperAdmin: boolean;
|
|
13
13
|
createdAt: Date;
|
|
14
14
|
}
|
|
15
|
-
/**
|
|
15
|
+
/** 超级管理员可改的账号字段。 */
|
|
16
16
|
export type AccountPatch = {
|
|
17
17
|
displayName?: string;
|
|
18
18
|
status?: "active" | "disabled";
|
|
19
|
-
|
|
19
|
+
isSuperAdmin?: boolean;
|
|
20
20
|
};
|
|
21
21
|
/** 构造 `Account` 所需的 accounts 列(供跨表查询 select 使用)。 */
|
|
22
|
-
export declare const ACCOUNT_COLUMNS: readonly ["accounts.id", "accounts.display_name", "accounts.email", "accounts.status", "accounts.
|
|
23
|
-
type AccountRow = Pick<Selectable<AccountsTable>, "id" | "display_name" | "email" | "status" | "
|
|
22
|
+
export declare const ACCOUNT_COLUMNS: readonly ["accounts.id", "accounts.display_name", "accounts.email", "accounts.status", "accounts.is_super_admin", "accounts.created_at"];
|
|
23
|
+
type AccountRow = Pick<Selectable<AccountsTable>, "id" | "display_name" | "email" | "status" | "is_super_admin" | "created_at">;
|
|
24
24
|
export declare function toAccount(r: AccountRow): Account;
|
|
25
25
|
export interface LocalAccountInput {
|
|
26
26
|
login: string;
|
|
27
27
|
password: string;
|
|
28
28
|
displayName: string;
|
|
29
29
|
email?: string;
|
|
30
|
-
|
|
30
|
+
superAdmin?: boolean;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* Accounts: local account creation, authentication and administration. Every write is
|
|
@@ -39,7 +39,7 @@ export declare class AccountsService {
|
|
|
39
39
|
readonly txHost: TransactionHost;
|
|
40
40
|
private readonly adminLock;
|
|
41
41
|
private readonly setupLock;
|
|
42
|
-
constructor(db: KernelDb, txHost: TransactionHost, adminLock:
|
|
42
|
+
constructor(db: KernelDb, txHost: TransactionHost, adminLock: SuperAdminLock, setupLock: SetupLock);
|
|
43
43
|
/** Checks the password length and hashes it (scrypt, slow): for callers that hash before their transaction opens. */
|
|
44
44
|
hashNewPassword(password: string): Promise<string>;
|
|
45
45
|
/**
|
|
@@ -49,28 +49,28 @@ export declare class AccountsService {
|
|
|
49
49
|
*/
|
|
50
50
|
createLocal(input: LocalAccountInput, passwordHash?: string): Promise<Account>;
|
|
51
51
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
52
|
+
* A super admin creates a local account (optionally a super admin): under the
|
|
53
|
+
* super admin lock, re-checks that the actor is still an active super admin (else
|
|
54
54
|
* `forbidden`), creates the account and audits `account.created`. The hash is computed before
|
|
55
55
|
* the lock.
|
|
56
56
|
*/
|
|
57
57
|
createByAdmin(input: LocalAccountInput, actorAccountId: string, actorTokenId?: string): Promise<Account>;
|
|
58
58
|
private createByAdminIn;
|
|
59
59
|
/**
|
|
60
|
-
* CLI: creates
|
|
60
|
+
* CLI: creates a super admin without checking whether the deployment is set up; a taken
|
|
61
61
|
* login → `account.login_taken`.
|
|
62
62
|
*/
|
|
63
|
-
|
|
63
|
+
createSuperAdmin(input: SuperAdminInput): Promise<Account>;
|
|
64
64
|
/**
|
|
65
|
-
* CLI `admin create --if-none`: creates
|
|
65
|
+
* CLI `admin create --if-none`: creates a super admin only when no active one exists. The
|
|
66
66
|
* check and the insert run in one transaction under {@link SetupLock}, the lock the web setup
|
|
67
67
|
* takes, so concurrent runs (and a concurrent web setup) create exactly one. Returns undefined
|
|
68
|
-
* when an active
|
|
68
|
+
* when an active super admin already exists; a taken login still throws
|
|
69
69
|
* `account.login_taken`.
|
|
70
70
|
*/
|
|
71
|
-
|
|
72
|
-
private
|
|
73
|
-
private
|
|
71
|
+
createSuperAdminIfNone(input: SuperAdminInput): Promise<Account | undefined>;
|
|
72
|
+
private createSuperAdminIfNoneIn;
|
|
73
|
+
private insertSuperAdmin;
|
|
74
74
|
authenticateLocal(login: string, password: string): Promise<Account | null>;
|
|
75
75
|
/** 按账号 id 校验本地密码(改密码时核对旧密码);没有本地密码、超长或不符 → false。 */
|
|
76
76
|
verifyPassword(accountId: string, password: string): Promise<boolean>;
|
|
@@ -92,7 +92,7 @@ export declare class AccountsService {
|
|
|
92
92
|
private changePasswordIn;
|
|
93
93
|
update(id: string, patch: AccountPatch, actorAccountId: string, actorTokenId?: string): Promise<Account>;
|
|
94
94
|
/**
|
|
95
|
-
*
|
|
95
|
+
* A super admin changes an account. Disabling (`status: "disabled"`) revokes the
|
|
96
96
|
* account's sessions (`sessions.revoked_at`) and personal tokens in **the same PG transaction**,
|
|
97
97
|
* all or nothing; returns the revoked session ids, whose Redis markers the caller writes after
|
|
98
98
|
* the commit (the fast path; a failure is only a warning: auth reads PG).
|
|
@@ -102,35 +102,35 @@ export declare class AccountsService {
|
|
|
102
102
|
revokedSessionIds: string[];
|
|
103
103
|
}>;
|
|
104
104
|
/**
|
|
105
|
-
* The CLI's `capybara admin grant|revoke <login>` (no actor account): changes the
|
|
106
|
-
* admin flag by local login under the
|
|
107
|
-
* {@link updateAccount} "last active
|
|
105
|
+
* The CLI's `capybara admin grant|revoke <login>` (no actor account): changes the super
|
|
106
|
+
* admin flag by local login under the super admin lock; revoking keeps the
|
|
107
|
+
* {@link updateAccount} "last active super admin" check (`account.last_super_admin`),
|
|
108
108
|
* decided under the lock, so it cannot race a web revoke into none. Audit `account.updated`
|
|
109
109
|
* without an actor, `detail.via = "cli"`. Already in the target state → no change and no audit
|
|
110
110
|
* (`changed: false`). Unknown login → `account.not_found`.
|
|
111
111
|
*/
|
|
112
|
-
|
|
112
|
+
setSuperAdminByLogin(login: string, isSuperAdmin: boolean): Promise<{
|
|
113
113
|
account: Account;
|
|
114
114
|
changed: boolean;
|
|
115
115
|
}>;
|
|
116
|
-
private
|
|
116
|
+
private setSuperAdminIn;
|
|
117
117
|
/** 全部账号数(含停用的;后台概览)。 */
|
|
118
118
|
count(): Promise<number>;
|
|
119
|
-
/** Active (status = active)
|
|
120
|
-
|
|
119
|
+
/** Active (status = active) super admins, in the context's transaction when there is one. */
|
|
120
|
+
countSuperAdmins(): Promise<number>;
|
|
121
121
|
/** Inserts the account, its local identity and password; a taken login → `account.login_taken`. */
|
|
122
122
|
private insertLocal;
|
|
123
123
|
/** Writes (or replaces) the local password hash; a missing account → `account.not_found`. */
|
|
124
124
|
private writePassword;
|
|
125
125
|
/**
|
|
126
|
-
* Changes the account under the
|
|
127
|
-
* re-checks "the last active
|
|
126
|
+
* Changes the account under the super admin lock the caller holds: updates the row,
|
|
127
|
+
* re-checks "the last active super admin", audits `account.updated`; disabling revokes the
|
|
128
128
|
* account's sessions and personal tokens.
|
|
129
129
|
*/
|
|
130
130
|
private applyUpdate;
|
|
131
131
|
}
|
|
132
|
-
/** Input of the CLI
|
|
133
|
-
export interface
|
|
132
|
+
/** Input of the CLI super admin creation. */
|
|
133
|
+
export interface SuperAdminInput {
|
|
134
134
|
login: string;
|
|
135
135
|
password: string;
|
|
136
136
|
displayName: string;
|