@capybara-hq/kernel 0.1.0-rc.4 → 0.1.0-rc.6
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 +51 -14
- package/dist/admin/admin.controller.js +60 -19
- package/dist/admin/extensions.controller.d.ts +16 -2
- package/dist/admin/extensions.controller.js +26 -6
- 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 +16 -0
- package/dist/agents/agent-lookup.js +11 -0
- package/dist/agents/agents.controller.d.ts +76 -1
- package/dist/agents/agents.controller.js +90 -11
- package/dist/agents/agents.module.d.ts +4 -1
- package/dist/agents/agents.module.js +32 -6
- package/dist/agents/agents.service.d.ts +54 -23
- package/dist/agents/agents.service.js +180 -76
- package/dist/agents/definition.d.ts +49 -0
- package/dist/agents/definition.js +45 -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/models.controller.d.ts +34 -5
- package/dist/agents/models.controller.js +50 -6
- 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/readiness.controller.d.ts +5 -5
- package/dist/agents/readiness.controller.js +6 -6
- 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 +475 -52
- package/dist/background/background.module.js +8 -1
- package/dist/background/finish.d.ts +3 -2
- package/dist/background/launch-lock.d.ts +4 -3
- package/dist/background/launch-lock.js +4 -3
- package/dist/background/poll.job.d.ts +9 -6
- package/dist/background/poll.job.js +30 -22
- package/dist/background/session.d.ts +13 -2
- package/dist/background/session.js +13 -0
- package/dist/background/stop.d.ts +12 -6
- package/dist/background/stop.js +57 -39
- package/dist/background/store.d.ts +18 -6
- package/dist/background/store.js +12 -6
- package/dist/background/tasks.service.d.ts +15 -5
- package/dist/background/tasks.service.js +42 -17
- package/dist/background/wake-rules.d.ts +27 -18
- package/dist/background/wake-rules.js +52 -22
- package/dist/background/wake.d.ts +13 -11
- package/dist/background/wake.js +20 -14
- 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/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 +622 -82
- 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 +1147 -1136
- 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 +20 -2
- package/dist/channels/channels.module.js +2 -0
- 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/config/docs.js +3 -1
- package/dist/config/schema.d.ts +10 -2
- package/dist/config/schema.js +70 -22
- package/dist/conversations/access.d.ts +6 -4
- package/dist/conversations/access.js +27 -5
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/conversations.controller.d.ts +43 -18
- package/dist/conversations/conversations.controller.js +79 -38
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +7 -7
- package/dist/conversations/conversations.service.d.ts +73 -15
- package/dist/conversations/conversations.service.js +115 -35
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +20 -5
- package/dist/conversations/event-log.js +60 -0
- package/dist/conversations/events.d.ts +84 -2
- package/dist/conversations/events.js +91 -17
- package/dist/conversations/queue.service.d.ts +1 -1
- package/dist/conversations/queue.service.js +5 -0
- package/dist/conversations/titles.d.ts +5 -3
- package/dist/conversations/titles.js +21 -8
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/create-ctx.d.ts +20 -1
- package/dist/ctx/create-ctx.js +38 -7
- package/dist/db/kernel-schema.d.ts +386 -18
- 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 +85 -2
- package/dist/errors.js +85 -2
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +26 -7
- package/dist/evals/run-replay.d.ts +4 -2
- package/dist/evals/run-replay.js +20 -6
- package/dist/evals/runs.service.d.ts +2 -1
- package/dist/evals/runs.service.js +13 -12
- package/dist/evals/step-replay.d.ts +4 -6
- package/dist/evals/step-replay.js +4 -3
- 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 +65 -42
- package/dist/extensions/admin-view.d.ts +37 -10
- package/dist/extensions/admin-view.js +103 -20
- 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-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/deployment-config.d.ts +28 -5
- package/dist/extensions/deployment-config.js +48 -7
- package/dist/extensions/effective-config.d.ts +127 -0
- package/dist/extensions/effective-config.js +368 -0
- package/dist/extensions/extensions.module.js +11 -11
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +24 -10
- package/dist/extensions/host.js +49 -54
- package/dist/extensions/installs.d.ts +20 -8
- package/dist/extensions/installs.js +37 -15
- package/dist/extensions/org-config.d.ts +75 -6
- package/dist/extensions/org-config.js +184 -32
- 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/permission-view.d.ts +16 -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.d.ts +12 -5
- package/dist/extensions/point-defaults.js +37 -9
- package/dist/extensions/resolve.d.ts +5 -1
- package/dist/extensions/resolve.js +15 -2
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +38 -0
- package/dist/files/previewers.d.ts +8 -1
- package/dist/files/previewers.js +35 -6
- package/dist/http/api.module.js +25 -3
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/plugin-dispatch.d.ts +4 -1
- package/dist/http/plugin-dispatch.js +14 -2
- 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.guard.d.ts +13 -5
- package/dist/identity/auth.guard.js +26 -9
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +4 -4
- package/dist/identity/me.controller.js +1 -1
- package/dist/identity/principal.d.ts +3 -3
- package/dist/identity/principal.js +3 -3
- 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 +1 -1
- package/dist/index.js +1 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +24 -1
- 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/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- 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/models/embeddings.d.ts +82 -0
- package/dist/models/embeddings.js +326 -0
- package/dist/models/enablement.controller.d.ts +40 -0
- package/dist/models/enablement.controller.js +74 -0
- package/dist/models/enablement.d.ts +99 -0
- package/dist/models/enablement.js +263 -0
- package/dist/models/models.module.d.ts +5 -1
- package/dist/models/models.module.js +16 -4
- 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 +37 -12
- package/dist/models/purposes.js +63 -17
- package/dist/orgs/directory-sync.d.ts +14 -5
- package/dist/orgs/directory-sync.js +41 -17
- package/dist/orgs/offboarding.d.ts +9 -7
- package/dist/orgs/offboarding.js +28 -17
- 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 +15 -3
- package/dist/orgs/settings.service.js +6 -2
- 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 +1405 -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 +9 -1
- package/dist/runtime/context/build.d.ts +6 -4
- package/dist/runtime/context/build.js +26 -7
- package/dist/runtime/context/claude-tools.d.ts +2 -1
- package/dist/runtime/context/claude-tools.js +5 -4
- package/dist/runtime/context/compaction.js +9 -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.d.ts +8 -1
- package/dist/runtime/hook-calls.js +40 -7
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +35 -17
- package/dist/runtime/loop.d.ts +32 -4
- package/dist/runtime/maintenance.d.ts +7 -4
- package/dist/runtime/maintenance.js +23 -8
- package/dist/runtime/model-call.d.ts +38 -11
- package/dist/runtime/model-call.js +97 -24
- package/dist/runtime/providers.d.ts +146 -32
- package/dist/runtime/providers.js +321 -67
- 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 +37 -3
- package/dist/runtime/run-queue.js +188 -11
- package/dist/runtime/run-worker.d.ts +12 -6
- package/dist/runtime/run-worker.js +58 -35
- package/dist/runtime/runtime.module.js +3 -0
- package/dist/runtime/step-log.d.ts +9 -4
- package/dist/runtime/step-log.js +8 -5
- 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 +46 -32
- 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-jobs.d.ts +88 -0
- package/dist/runtime/usage-report-jobs.js +158 -0
- package/dist/runtime/usage-report.d.ts +33 -38
- package/dist/runtime/usage-report.js +169 -96
- package/dist/runtime/waits.d.ts +140 -37
- package/dist/runtime/waits.js +394 -106
- 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 +4 -3
- package/dist/sandbox/sandbox.service.d.ts +229 -134
- package/dist/sandbox/sandbox.service.js +630 -409
- 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 +23 -4
- package/dist/tools/builtin-names.d.ts +21 -5
- package/dist/tools/builtin-names.js +30 -5
- 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 +6 -2
- package/dist/tools/builtins/builtin-tools.js +37 -12
- 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.js +13 -3
- package/dist/tools/builtins/sandbox/common.d.ts +43 -24
- package/dist/tools/builtins/sandbox/common.js +80 -45
- 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 +1 -1
- package/dist/tools/builtins/sandbox/index.js +1 -1
- package/dist/tools/builtins/sandbox/read.js +1 -1
- package/dist/tools/builtins/sandbox/task-output.d.ts +14 -3
- package/dist/tools/builtins/sandbox/task-output.js +30 -5
- package/dist/tools/builtins/sandbox/task-stop.js +2 -1
- 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/extract.js +5 -1
- package/dist/tools/builtins/web/fetch.js +1 -0
- package/dist/tools/builtins/web/search.js +1 -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/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 +193 -364
- package/dist/tools/policy.d.ts +1 -1
- package/dist/tools/policy.js +36 -16
- package/dist/tools/registry.d.ts +98 -5
- package/dist/tools/registry.js +87 -9
- package/dist/tools/tools.module.js +12 -2
- package/dist/ui/views.d.ts +2 -1
- package/dist/ui/views.js +17 -3
- package/package.json +3 -3
- 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/src/migrations/0089_model_kinds_usage.sql +38 -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 -32
- package/dist/extensions/org-config.controller.js +0 -70
package/bootstrap.json
CHANGED
|
@@ -3,24 +3,80 @@
|
|
|
3
3
|
"schemaVersion": 1,
|
|
4
4
|
"marketplace": {
|
|
5
5
|
"url": "https://github.com/capybara-hq/plugins.git",
|
|
6
|
-
"commit": "
|
|
6
|
+
"commit": "77f0ac0c0bbb1e7e3ea66ae3bd7931f0ed06b777"
|
|
7
7
|
},
|
|
8
8
|
"plugins": [
|
|
9
9
|
{
|
|
10
10
|
"name": "openai-compatible",
|
|
11
11
|
"source": "npm",
|
|
12
12
|
"npm": "@capybara-hq/plugin-openai-compatible",
|
|
13
|
-
"version": "0.1.0-rc.
|
|
14
|
-
"integrity": "sha512-
|
|
13
|
+
"version": "0.1.0-rc.2",
|
|
14
|
+
"integrity": "sha512-HG3sPg9VjSldr/qP5647SV0LP3xEqIbtnMvl4VG0XHCHRPJ1wc9PBMb8hrTZ3FGc43OKTWgFyfAV3fNKm29JtQ==",
|
|
15
15
|
"required": true
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"name": "object-store-s3",
|
|
19
19
|
"source": "npm",
|
|
20
20
|
"npm": "@capybara-hq/plugin-object-store-s3",
|
|
21
|
-
"version": "0.1.0-rc.
|
|
22
|
-
"integrity": "sha512
|
|
21
|
+
"version": "0.1.0-rc.1",
|
|
22
|
+
"integrity": "sha512-/HABg+/LsR+YJmRlJYB694hFFgZPTReN9BDwArdZpsNR0n/uBanRgaNnTT/C/wZd4uNTq9EVClYvZ4t3xmjKGQ==",
|
|
23
23
|
"required": true
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"name": "anthropic",
|
|
27
|
+
"source": "npm",
|
|
28
|
+
"npm": "@capybara-hq/plugin-anthropic",
|
|
29
|
+
"version": "0.1.0-rc.1",
|
|
30
|
+
"integrity": "sha512-/Ptn4epXv38kBKqd3MDxhy21hP0vQLkLdEov6sUvn2BlKRltgLYAbiKD/9P+B1w2RZmoNXdhZgqoSZ0Q036LNw==",
|
|
31
|
+
"required": false
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "openai",
|
|
35
|
+
"source": "npm",
|
|
36
|
+
"npm": "@capybara-hq/plugin-openai",
|
|
37
|
+
"version": "0.1.0-rc.1",
|
|
38
|
+
"integrity": "sha512-F714dJ023p8XcrPXYNZyjiow5BXza5KTdlJV4Uw8spgulgjPSF44n0SVMEA1iyYCwOFrr58NSvw51AqmOYg6Fw==",
|
|
39
|
+
"required": false
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "connector-mcp",
|
|
43
|
+
"source": "npm",
|
|
44
|
+
"npm": "@capybara-hq/plugin-connector-mcp",
|
|
45
|
+
"version": "0.1.0-rc.1",
|
|
46
|
+
"integrity": "sha512-cMc/d7Tngzx7/kyyCmt9W4kVC8JkfH1q7dQ5bLpnTJfwg8iYrdwUGaD6Q7ImYCb3AiguM0Xe2Js4RlU7ed22Kw==",
|
|
47
|
+
"required": false
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"name": "connector-openapi",
|
|
51
|
+
"source": "npm",
|
|
52
|
+
"npm": "@capybara-hq/plugin-connector-openapi",
|
|
53
|
+
"version": "0.1.0-rc.1",
|
|
54
|
+
"integrity": "sha512-XahjgfA5hay/D32rUNrvql4SYAk0R04vGLyEzZg6Sq4ZNoqFHTKuj8Gndr5lD3AiwMqVngTva+x3hpVdosmEjA==",
|
|
55
|
+
"required": false
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "jina",
|
|
59
|
+
"source": "npm",
|
|
60
|
+
"npm": "@capybara-hq/plugin-jina",
|
|
61
|
+
"version": "0.1.0-rc.0",
|
|
62
|
+
"integrity": "sha512-fFquQfglzgaCoq3/tcRCYBdLfLe1BzIO5xDJHP1h0I7ugXGmUn9qdtFWOJ6Sw8TJvFeeqGSrkvtAUTVo5Phe2w==",
|
|
63
|
+
"required": false
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "sandbox-docker",
|
|
67
|
+
"source": "npm",
|
|
68
|
+
"npm": "@capybara-hq/plugin-sandbox-docker",
|
|
69
|
+
"version": "0.1.0-rc.2",
|
|
70
|
+
"integrity": "sha512-f5BiecQQvRLI8NaGHUy3l+nNvcCLXTQnHQ8od93PAbBpg6q0EkAvZ7R/M4yZ7dK7PeIan61VB+QfwlnpLLw27Q==",
|
|
71
|
+
"required": false
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "todo",
|
|
75
|
+
"source": "npm",
|
|
76
|
+
"npm": "@capybara-hq/plugin-todo",
|
|
77
|
+
"version": "0.1.0-rc.1",
|
|
78
|
+
"integrity": "sha512-Qz2FX05Nxbbetf8rcbmA3QZqvGDFeBgJOz/+vckD0N7di8YVKs3qoqoU7mzvBKnImWK63LiJLotGNQUY2QsXhg==",
|
|
79
|
+
"required": false
|
|
24
80
|
}
|
|
25
81
|
]
|
|
26
82
|
}
|
|
@@ -7,22 +7,42 @@ import { type Account, AccountsService } from "../identity/accounts.js";
|
|
|
7
7
|
import { type Principal } from "../identity/principal.js";
|
|
8
8
|
import { SessionService } from "../identity/sessions.js";
|
|
9
9
|
import { type DeploymentSettings, SettingsService } from "../identity/settings.js";
|
|
10
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
11
|
+
import { type ModelDisabledPatch, type ModelProviderParams } from "../models/enablement.controller.js";
|
|
12
|
+
import { type ModelDisableResult, ModelEnablement } from "../models/enablement.js";
|
|
10
13
|
import { type ModelPrice, type ModelPricePut, PricesService } from "../models/prices.js";
|
|
11
|
-
import { ModelPurposesService, type
|
|
14
|
+
import { ModelPurposesService, type PurposeListing, type PurposePut } from "../models/purposes.js";
|
|
12
15
|
import { type Org, OrgsService } from "../orgs/orgs.service.js";
|
|
13
16
|
import { ProviderRegistry, type ProviderStatus } from "../runtime/providers.js";
|
|
17
|
+
import type { SubagentLimits } from "../runtime/subagents/limits.js";
|
|
14
18
|
/** 后台概览(`GET /api/v1/admin/overview`)的计数。 */
|
|
15
19
|
export interface AdminOverview {
|
|
16
20
|
/**
|
|
17
|
-
* Extensions
|
|
21
|
+
* Extensions a super admin has to act on (pending approval or configuration, failed, missing
|
|
18
22
|
* dependency, replicas disagree); see `extensionNeedsAction`.
|
|
19
23
|
*/
|
|
20
24
|
extensionsNeedingAction: number;
|
|
21
|
-
/** Catalog requests waiting for
|
|
25
|
+
/** Catalog requests waiting for a super admin (stage deployment, pending). */
|
|
22
26
|
catalogRequestsPending: number;
|
|
23
27
|
orgs: number;
|
|
24
28
|
accounts: number;
|
|
25
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* The deployment's defaults of the per-org limits (with `GET /api/v1/admin/orgs`): what an
|
|
32
|
+
* organization without an override gets, from the live config. `subagents.maxDispatchesPerRun` and
|
|
33
|
+
* `maxTokensPerRun` of 0 mean no limit.
|
|
34
|
+
*/
|
|
35
|
+
export interface LimitDefaults {
|
|
36
|
+
/** `runtime.orgConcurrency`. */
|
|
37
|
+
runConcurrency: number;
|
|
38
|
+
/** `sandbox.limits.cpu` / `memoryMb`. */
|
|
39
|
+
sandbox: {
|
|
40
|
+
cpu: number;
|
|
41
|
+
memoryMb: number;
|
|
42
|
+
};
|
|
43
|
+
/** `subagents.*`. */
|
|
44
|
+
subagents: SubagentLimits;
|
|
45
|
+
}
|
|
26
46
|
declare const ListQuerySchema: z.ZodObject<{
|
|
27
47
|
after: z.ZodOptional<z.ZodString>;
|
|
28
48
|
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
@@ -32,7 +52,7 @@ declare const CreateAccountSchema: z.ZodObject<{
|
|
|
32
52
|
password: z.ZodString;
|
|
33
53
|
displayName: z.ZodString;
|
|
34
54
|
email: z.ZodOptional<z.ZodEmail>;
|
|
35
|
-
|
|
55
|
+
superAdmin: z.ZodOptional<z.ZodBoolean>;
|
|
36
56
|
}, z.core.$strip>;
|
|
37
57
|
declare const UpdateAccountSchema: z.ZodObject<{
|
|
38
58
|
displayName: z.ZodOptional<z.ZodString>;
|
|
@@ -40,13 +60,13 @@ declare const UpdateAccountSchema: z.ZodObject<{
|
|
|
40
60
|
active: "active";
|
|
41
61
|
disabled: "disabled";
|
|
42
62
|
}>>;
|
|
43
|
-
|
|
63
|
+
isSuperAdmin: z.ZodOptional<z.ZodBoolean>;
|
|
44
64
|
}, z.core.$strip>;
|
|
45
65
|
/** 至少给出一个键;`runConcurrencyOverrides` 按组织合并,值为 null 删除该组织的覆盖。 */
|
|
46
66
|
declare const SettingsSchema: z.ZodObject<{
|
|
47
67
|
orgCreation: z.ZodOptional<z.ZodEnum<{
|
|
48
68
|
anyone: "anyone";
|
|
49
|
-
|
|
69
|
+
super_admin: "super_admin";
|
|
50
70
|
}>>;
|
|
51
71
|
runConcurrencyOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodNumber>>>;
|
|
52
72
|
priceCurrency: z.ZodOptional<z.ZodString>;
|
|
@@ -55,7 +75,8 @@ declare const SettingsSchema: z.ZodObject<{
|
|
|
55
75
|
memoryMb: z.ZodOptional<z.ZodNumber>;
|
|
56
76
|
}, z.core.$strict>>>>;
|
|
57
77
|
subagentLimitOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
|
|
58
|
-
|
|
78
|
+
maxDepth: z.ZodOptional<z.ZodNumber>;
|
|
79
|
+
maxConcurrentPerConversation: z.ZodOptional<z.ZodNumber>;
|
|
59
80
|
maxDispatchesPerRun: z.ZodOptional<z.ZodNumber>;
|
|
60
81
|
maxTokensPerRun: z.ZodOptional<z.ZodNumber>;
|
|
61
82
|
}, z.core.$strict>>>>;
|
|
@@ -67,9 +88,10 @@ declare const SettingsSchema: z.ZodObject<{
|
|
|
67
88
|
allow: "allow";
|
|
68
89
|
deny: "deny";
|
|
69
90
|
}>>;
|
|
91
|
+
orgMarketplaceBrowse: z.ZodOptional<z.ZodBoolean>;
|
|
70
92
|
}, z.core.$strict>;
|
|
71
93
|
/**
|
|
72
|
-
*
|
|
94
|
+
* 超级管理员端点(`/api/v1/admin/*`):只接受超级管理员的 Web 会话或个人令牌;
|
|
73
95
|
* 服务令牌一律 `forbidden`(未标 `@AllowService`)。
|
|
74
96
|
*/
|
|
75
97
|
export declare class AdminController {
|
|
@@ -84,7 +106,9 @@ export declare class AdminController {
|
|
|
84
106
|
private readonly registry;
|
|
85
107
|
private readonly catalogRequests;
|
|
86
108
|
private readonly displayNames;
|
|
87
|
-
|
|
109
|
+
private readonly enablement;
|
|
110
|
+
private readonly config;
|
|
111
|
+
constructor(accounts: AccountsService, sessions: SessionService, log: Logger, orgs: OrgsService, settings: SettingsService, prices: PricesService, purposes: ModelPurposesService, plugins: ExtensionAdmin, registry: ProviderRegistry, catalogRequests: CatalogRequestsService, displayNames: ExtensionDisplayNames, enablement: ModelEnablement, config: KernelConfigService);
|
|
88
112
|
/** 后台概览的四个数字(只读计数,不含任何对话内容)。 */
|
|
89
113
|
overview(): Promise<AdminOverview>;
|
|
90
114
|
/**
|
|
@@ -98,22 +122,28 @@ export declare class AdminController {
|
|
|
98
122
|
createAccount(principal: Principal, body: z.infer<typeof CreateAccountSchema>): Promise<{
|
|
99
123
|
account: Account;
|
|
100
124
|
}>;
|
|
101
|
-
/** 改显示名 / 状态 /
|
|
125
|
+
/** 改显示名 / 状态 / 超级管理员;停用时同时吊销该账号的全部会话与个人令牌。 */
|
|
102
126
|
updateAccount(principal: Principal, accountId: string, body: z.infer<typeof UpdateAccountSchema>): Promise<{
|
|
103
127
|
account: Account;
|
|
104
128
|
}>;
|
|
105
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* 全部组织的元数据与成员数(不含成员明细), with the deployment's defaults of the limits an org
|
|
131
|
+
* can be given its own value of (the org limits dialog shows them for the values left empty).
|
|
132
|
+
*/
|
|
106
133
|
listOrgs(): Promise<{
|
|
107
134
|
orgs: (Org & {
|
|
108
135
|
memberCount: number;
|
|
109
136
|
})[];
|
|
137
|
+
limitDefaults: LimitDefaults;
|
|
110
138
|
}>;
|
|
111
139
|
getSettings(): Promise<DeploymentSettings>;
|
|
140
|
+
private limitDefaults;
|
|
112
141
|
putSettings(principal: Principal, body: z.infer<typeof SettingsSchema>): Promise<DeploymentSettings>;
|
|
113
142
|
/**
|
|
114
143
|
* 模型供应商与模型(后台「模型」页):每个供应商带状态,列模型失败的标 `error`,不影响其他供应商;
|
|
115
144
|
* 一并返回价格表与币种(改价仍走 `PUT /admin/model-prices`)。Each provider carries its extension's
|
|
116
|
-
* display name (null when it has none)
|
|
145
|
+
* display name (null when it has none); every model of the platform's list carries `disabled`
|
|
146
|
+
* (the platform's disabled list, spec B §5.3).
|
|
117
147
|
*/
|
|
118
148
|
getModels(): Promise<{
|
|
119
149
|
providers: (ProviderStatus & {
|
|
@@ -122,6 +152,13 @@ export declare class AdminController {
|
|
|
122
152
|
prices: ModelPrice[];
|
|
123
153
|
currency: string;
|
|
124
154
|
}>;
|
|
155
|
+
/**
|
|
156
|
+
* The platform's disabled models of one provider (spec B §5.3): disables and enables the ids the
|
|
157
|
+
* body names (others keep their state); such a model is invisible to every org. The response
|
|
158
|
+
* lists the agents and purposes, across orgs, that now point at a newly disabled model (the
|
|
159
|
+
* disable is not refused for them).
|
|
160
|
+
*/
|
|
161
|
+
patchModelsDisabled(principal: Principal, params: z.infer<typeof ModelProviderParams>, body: z.infer<typeof ModelDisabledPatch>): Promise<ModelDisableResult>;
|
|
125
162
|
/** 模型价格表(每百万 token)与币种(部署设置 `priceCurrency`)。 */
|
|
126
163
|
getModelPrices(): Promise<{
|
|
127
164
|
prices: ModelPrice[];
|
|
@@ -134,11 +171,11 @@ export declare class AdminController {
|
|
|
134
171
|
}>;
|
|
135
172
|
/** 模型用途与部署默认映射(`override` 一律为 null;组织覆盖在组织侧接口)。 */
|
|
136
173
|
getModelPurposes(): Promise<{
|
|
137
|
-
purposes:
|
|
174
|
+
purposes: PurposeListing[];
|
|
138
175
|
}>;
|
|
139
176
|
/** 设置一个用途的部署默认,或 `target: null` 清除。 */
|
|
140
177
|
putModelPurpose(principal: Principal, purpose: string, body: PurposePut): Promise<{
|
|
141
|
-
purpose:
|
|
178
|
+
purpose: PurposeListing;
|
|
142
179
|
}>;
|
|
143
180
|
}
|
|
144
181
|
export {};
|
|
@@ -15,15 +15,18 @@ import { ExtensionDisplayNames } from "../extensions/display-name.js";
|
|
|
15
15
|
import { extensionNeedsAction } from "../extensions/permission-view.js";
|
|
16
16
|
import { AccountsService } from "../identity/accounts.js";
|
|
17
17
|
import { MAX_PASSWORD_LENGTH } from "../identity/login.js";
|
|
18
|
-
import { CurrentPrincipal,
|
|
18
|
+
import { CurrentPrincipal, patTokenId, requireUser, SuperAdmin, } from "../identity/principal.js";
|
|
19
19
|
import { SessionService } from "../identity/sessions.js";
|
|
20
20
|
import { DEPLOYMENT_SETTINGS_PATCH, SettingsService, } from "../identity/settings.js";
|
|
21
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
21
22
|
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
22
23
|
import { createZodDto } from "../infra/validation/create-zod-dto.js";
|
|
23
|
-
import { ZBody, ZQuery } from "../infra/validation/zod-params.js";
|
|
24
|
+
import { ZBody, ZParam, ZQuery } from "../infra/validation/zod-params.js";
|
|
25
|
+
import { ModelDisabledPatchDto, ModelProviderParamsDto, } from "../models/enablement.controller.js";
|
|
26
|
+
import { ModelEnablement } from "../models/enablement.js";
|
|
24
27
|
import { MODEL_PRICE_PUT, PricesService, } from "../models/prices.js";
|
|
25
28
|
import { purposeTargetOf } from "../models/purposes.controller.js";
|
|
26
|
-
import { ModelPurposesService, PurposePutDto, } from "../models/purposes.js";
|
|
29
|
+
import { ModelPurposesService, PurposePutDto, withDeclaredByNames, } from "../models/purposes.js";
|
|
27
30
|
import { OrgsService } from "../orgs/orgs.service.js";
|
|
28
31
|
import { ProviderRegistry } from "../runtime/providers.js";
|
|
29
32
|
const ListQuerySchema = z.object({
|
|
@@ -37,14 +40,14 @@ const CreateAccountSchema = z.object({
|
|
|
37
40
|
password: z.string().min(1).max(MAX_PASSWORD_LENGTH),
|
|
38
41
|
displayName: z.string().trim().min(1).max(100),
|
|
39
42
|
email: z.email().max(254).optional(),
|
|
40
|
-
|
|
43
|
+
superAdmin: z.boolean().optional(),
|
|
41
44
|
});
|
|
42
45
|
class CreateAccountBody extends createZodDto(CreateAccountSchema, "CreateAccountBody") {
|
|
43
46
|
}
|
|
44
47
|
const UpdateAccountSchema = z.object({
|
|
45
48
|
displayName: z.string().trim().min(1).max(100).optional(),
|
|
46
49
|
status: z.enum(["active", "disabled"]).optional(),
|
|
47
|
-
|
|
50
|
+
isSuperAdmin: z.boolean().optional(),
|
|
48
51
|
});
|
|
49
52
|
class UpdateAccountBody extends createZodDto(UpdateAccountSchema, "UpdateAccountBody") {
|
|
50
53
|
}
|
|
@@ -57,7 +60,7 @@ class DeploymentSettingsBody extends createZodDto(SettingsSchema, "DeploymentSet
|
|
|
57
60
|
// a union schema: a DTO value rather than a class (a class cannot extend a union instance type)
|
|
58
61
|
const ModelPriceBody = createZodDto(MODEL_PRICE_PUT, "ModelPricePut");
|
|
59
62
|
/**
|
|
60
|
-
*
|
|
63
|
+
* 超级管理员端点(`/api/v1/admin/*`):只接受超级管理员的 Web 会话或个人令牌;
|
|
61
64
|
* 服务令牌一律 `forbidden`(未标 `@AllowService`)。
|
|
62
65
|
*/
|
|
63
66
|
let AdminController = class AdminController {
|
|
@@ -72,7 +75,9 @@ let AdminController = class AdminController {
|
|
|
72
75
|
registry;
|
|
73
76
|
catalogRequests;
|
|
74
77
|
displayNames;
|
|
75
|
-
|
|
78
|
+
enablement;
|
|
79
|
+
config;
|
|
80
|
+
constructor(accounts, sessions, log, orgs, settings, prices, purposes, plugins, registry, catalogRequests, displayNames, enablement, config) {
|
|
76
81
|
this.accounts = accounts;
|
|
77
82
|
this.sessions = sessions;
|
|
78
83
|
this.log = log;
|
|
@@ -84,6 +89,8 @@ let AdminController = class AdminController {
|
|
|
84
89
|
this.registry = registry;
|
|
85
90
|
this.catalogRequests = catalogRequests;
|
|
86
91
|
this.displayNames = displayNames;
|
|
92
|
+
this.enablement = enablement;
|
|
93
|
+
this.config = config;
|
|
87
94
|
}
|
|
88
95
|
/** 后台概览的四个数字(只读计数,不含任何对话内容)。 */
|
|
89
96
|
async overview() {
|
|
@@ -120,17 +127,17 @@ let AdminController = class AdminController {
|
|
|
120
127
|
password: body.password,
|
|
121
128
|
displayName: body.displayName,
|
|
122
129
|
...(body.email !== undefined && { email: body.email }),
|
|
123
|
-
...(body.
|
|
130
|
+
...(body.superAdmin !== undefined && { superAdmin: body.superAdmin }),
|
|
124
131
|
}, actor.account.id, patTokenId(actor));
|
|
125
132
|
return { account };
|
|
126
133
|
}
|
|
127
|
-
/** 改显示名 / 状态 /
|
|
134
|
+
/** 改显示名 / 状态 / 超级管理员;停用时同时吊销该账号的全部会话与个人令牌。 */
|
|
128
135
|
async updateAccount(principal, accountId, body) {
|
|
129
136
|
const actor = requireUser(principal);
|
|
130
137
|
const patch = {
|
|
131
138
|
...(body.displayName !== undefined && { displayName: body.displayName }),
|
|
132
139
|
...(body.status !== undefined && { status: body.status }),
|
|
133
|
-
...(body.
|
|
140
|
+
...(body.isSuperAdmin !== undefined && { isSuperAdmin: body.isSuperAdmin }),
|
|
134
141
|
};
|
|
135
142
|
// 停用时账号状态、会话与个人令牌的吊销在同一个 PG 事务里完成
|
|
136
143
|
const { account, revokedSessionIds } = await this.accounts.updateAccount(accountId, patch, actor.account.id, patTokenId(actor));
|
|
@@ -146,13 +153,25 @@ let AdminController = class AdminController {
|
|
|
146
153
|
}
|
|
147
154
|
return { account };
|
|
148
155
|
}
|
|
149
|
-
/**
|
|
156
|
+
/**
|
|
157
|
+
* 全部组织的元数据与成员数(不含成员明细), with the deployment's defaults of the limits an org
|
|
158
|
+
* can be given its own value of (the org limits dialog shows them for the values left empty).
|
|
159
|
+
*/
|
|
150
160
|
async listOrgs() {
|
|
151
|
-
return { orgs: await this.orgs.listAll() };
|
|
161
|
+
return { orgs: await this.orgs.listAll(), limitDefaults: this.limitDefaults() };
|
|
152
162
|
}
|
|
153
163
|
async getSettings() {
|
|
154
164
|
return this.settings.get();
|
|
155
165
|
}
|
|
166
|
+
limitDefaults() {
|
|
167
|
+
const cfg = this.config.get();
|
|
168
|
+
const { maxDepth, maxConcurrentPerConversation, maxDispatchesPerRun, maxTokensPerRun } = cfg.subagents;
|
|
169
|
+
return {
|
|
170
|
+
runConcurrency: cfg.runtime.orgConcurrency,
|
|
171
|
+
sandbox: { cpu: cfg.sandbox.limits.cpu, memoryMb: cfg.sandbox.limits.memoryMb },
|
|
172
|
+
subagents: { maxDepth, maxConcurrentPerConversation, maxDispatchesPerRun, maxTokensPerRun },
|
|
173
|
+
};
|
|
174
|
+
}
|
|
156
175
|
async putSettings(principal, body) {
|
|
157
176
|
const actor = requireUser(principal);
|
|
158
177
|
return this.settings.update(body, actor.account.id, patTokenId(actor));
|
|
@@ -160,7 +179,8 @@ let AdminController = class AdminController {
|
|
|
160
179
|
/**
|
|
161
180
|
* 模型供应商与模型(后台「模型」页):每个供应商带状态,列模型失败的标 `error`,不影响其他供应商;
|
|
162
181
|
* 一并返回价格表与币种(改价仍走 `PUT /admin/model-prices`)。Each provider carries its extension's
|
|
163
|
-
* display name (null when it has none)
|
|
182
|
+
* display name (null when it has none); every model of the platform's list carries `disabled`
|
|
183
|
+
* (the platform's disabled list, spec B §5.3).
|
|
164
184
|
*/
|
|
165
185
|
async getModels() {
|
|
166
186
|
const [providers, prices] = await Promise.all([
|
|
@@ -173,6 +193,19 @@ let AdminController = class AdminController {
|
|
|
173
193
|
...prices,
|
|
174
194
|
};
|
|
175
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* The platform's disabled models of one provider (spec B §5.3): disables and enables the ids the
|
|
198
|
+
* body names (others keep their state); such a model is invisible to every org. The response
|
|
199
|
+
* lists the agents and purposes, across orgs, that now point at a newly disabled model (the
|
|
200
|
+
* disable is not refused for them).
|
|
201
|
+
*/
|
|
202
|
+
async patchModelsDisabled(principal, params, body) {
|
|
203
|
+
const actor = requireUser(principal);
|
|
204
|
+
return this.enablement.setPlatform(params.provider, body, {
|
|
205
|
+
accountId: actor.account.id,
|
|
206
|
+
tokenId: patTokenId(actor),
|
|
207
|
+
});
|
|
208
|
+
}
|
|
176
209
|
/** 模型价格表(每百万 token)与币种(部署设置 `priceCurrency`)。 */
|
|
177
210
|
async getModelPrices() {
|
|
178
211
|
const [prices, settings] = await Promise.all([this.prices.list(), this.settings.get()]);
|
|
@@ -186,14 +219,14 @@ let AdminController = class AdminController {
|
|
|
186
219
|
}
|
|
187
220
|
/** 模型用途与部署默认映射(`override` 一律为 null;组织覆盖在组织侧接口)。 */
|
|
188
221
|
async getModelPurposes() {
|
|
189
|
-
return { purposes: await this.purposes.list() };
|
|
222
|
+
return { purposes: await withDeclaredByNames(await this.purposes.list(), this.displayNames) };
|
|
190
223
|
}
|
|
191
224
|
/** 设置一个用途的部署默认,或 `target: null` 清除。 */
|
|
192
225
|
async putModelPurpose(principal, purpose, body) {
|
|
193
226
|
const actor = requireUser(principal);
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
};
|
|
227
|
+
const view = await this.purposes.setDefault(purpose, purposeTargetOf(body), actor.account.id, patTokenId(actor));
|
|
228
|
+
const [listing] = await withDeclaredByNames([view], this.displayNames);
|
|
229
|
+
return { purpose: listing };
|
|
197
230
|
}
|
|
198
231
|
};
|
|
199
232
|
__decorate([
|
|
@@ -229,6 +262,12 @@ __decorate([
|
|
|
229
262
|
__decorate([
|
|
230
263
|
Get("models")
|
|
231
264
|
], AdminController.prototype, "getModels", null);
|
|
265
|
+
__decorate([
|
|
266
|
+
Patch("models/:provider/disabled"),
|
|
267
|
+
__param(0, CurrentPrincipal()),
|
|
268
|
+
__param(1, ZParam(ModelProviderParamsDto)),
|
|
269
|
+
__param(2, ZBody(ModelDisabledPatchDto))
|
|
270
|
+
], AdminController.prototype, "patchModelsDisabled", null);
|
|
232
271
|
__decorate([
|
|
233
272
|
Get("model-prices")
|
|
234
273
|
], AdminController.prototype, "getModelPrices", null);
|
|
@@ -248,7 +287,7 @@ __decorate([
|
|
|
248
287
|
], AdminController.prototype, "putModelPurpose", null);
|
|
249
288
|
AdminController = __decorate([
|
|
250
289
|
Controller("api/v1/admin"),
|
|
251
|
-
|
|
290
|
+
SuperAdmin(),
|
|
252
291
|
__param(0, Inject(AccountsService)),
|
|
253
292
|
__param(1, Inject(SessionService)),
|
|
254
293
|
__param(2, Inject(KERNEL_LOGGER)),
|
|
@@ -259,6 +298,8 @@ AdminController = __decorate([
|
|
|
259
298
|
__param(7, Inject(ExtensionAdmin)),
|
|
260
299
|
__param(8, Inject(ProviderRegistry)),
|
|
261
300
|
__param(9, Inject(CatalogRequestsService)),
|
|
262
|
-
__param(10, Inject(ExtensionDisplayNames))
|
|
301
|
+
__param(10, Inject(ExtensionDisplayNames)),
|
|
302
|
+
__param(11, Inject(ModelEnablement)),
|
|
303
|
+
__param(12, Inject(KernelConfigService))
|
|
263
304
|
], AdminController);
|
|
264
305
|
export { AdminController };
|
|
@@ -3,6 +3,7 @@ import { ExtensionAdminOps } from "../extensions/admin-ops.js";
|
|
|
3
3
|
import { ExtensionAdmin } from "../extensions/admin-view.js";
|
|
4
4
|
import { type DeploymentConfigView, ExtensionDeploymentConfigService } from "../extensions/deployment-config.js";
|
|
5
5
|
import { ExtensionInstalls, type PackageReview } from "../extensions/installs.js";
|
|
6
|
+
import { type OrgOverrideSummary, OrgOverrides } from "../extensions/org-overrides.js";
|
|
6
7
|
import type { AdminExtensionView } from "../extensions/permission-view.js";
|
|
7
8
|
import { type Principal } from "../identity/principal.js";
|
|
8
9
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
@@ -26,8 +27,12 @@ declare const NpmSchema: z.ZodObject<{
|
|
|
26
27
|
package: z.ZodString;
|
|
27
28
|
version: z.ZodOptional<z.ZodString>;
|
|
28
29
|
}, z.core.$strip>;
|
|
30
|
+
/** The `:name` route parameter of the org-overrides list (decision R20). */
|
|
31
|
+
declare const NameParams: z.ZodObject<{
|
|
32
|
+
name: z.ZodString;
|
|
33
|
+
}, z.core.$strip>;
|
|
29
34
|
/**
|
|
30
|
-
* Deployment-level extension management (`/api/v1/admin/extensions/*`,
|
|
35
|
+
* Deployment-level extension management (`/api/v1/admin/extensions/*`, super admins): package
|
|
31
36
|
* import (upload / npm, returns the review), the extension list and detail, web permission approval
|
|
32
37
|
* (D8), install / enable / disable / uninstall (only writes the desired state and publishes
|
|
33
38
|
* `kernel.plugins.changed`; every replica reconciles, no restart; replicas may still be converging
|
|
@@ -39,7 +44,8 @@ export declare class AdminExtensionsController {
|
|
|
39
44
|
private readonly ops;
|
|
40
45
|
private readonly deploymentConfigs;
|
|
41
46
|
private readonly kernelConfig;
|
|
42
|
-
|
|
47
|
+
private readonly orgOverrides;
|
|
48
|
+
constructor(installs: ExtensionInstalls, admin: ExtensionAdmin, ops: ExtensionAdminOps, deploymentConfigs: ExtensionDeploymentConfigService, kernelConfig: KernelConfigService, orgOverrides: OrgOverrides);
|
|
43
49
|
/**
|
|
44
50
|
* 部署上的全部插件(内置、配置声明、安装记录)及其状态、权限与快照;`drainSeconds` 为停用 / 升级时
|
|
45
51
|
* 在途工具调用最多等待的秒数(`extensionHost.drainSeconds`,界面提示用)。
|
|
@@ -56,6 +62,14 @@ export declare class AdminExtensionsController {
|
|
|
56
62
|
* result. Unknown -> 404 `extension.not_found`.
|
|
57
63
|
*/
|
|
58
64
|
config(name: string): Promise<DeploymentConfigView>;
|
|
65
|
+
/**
|
|
66
|
+
* The orgs keeping their own copy of the extension's overridable config (spec A §5.7): when it
|
|
67
|
+
* was made, which non-secret fields differ from the platform, whether each secret is set; never
|
|
68
|
+
* a secret value. The super admin cannot edit or drop a copy.
|
|
69
|
+
*/
|
|
70
|
+
orgCopies({ name }: z.infer<typeof NameParams>): Promise<{
|
|
71
|
+
overrides: OrgOverrideSummary[];
|
|
72
|
+
}>;
|
|
59
73
|
/**
|
|
60
74
|
* Saves the deployment config (`values` keyed by field dot path; `null` clears, omitted keeps).
|
|
61
75
|
* A field present in the startup config -> 409 `extension.config_readonly`; unknown or invalid
|
|
@@ -14,10 +14,11 @@ import { ExtensionAdminOps } from "../extensions/admin-ops.js";
|
|
|
14
14
|
import { ExtensionAdmin } from "../extensions/admin-view.js";
|
|
15
15
|
import { ExtensionDeploymentConfigService, } from "../extensions/deployment-config.js";
|
|
16
16
|
import { ExtensionInstalls } from "../extensions/installs.js";
|
|
17
|
-
import {
|
|
17
|
+
import { OrgOverrides } from "../extensions/org-overrides.js";
|
|
18
|
+
import { CurrentPrincipal, patTokenId, requireUser, SuperAdmin, } from "../identity/principal.js";
|
|
18
19
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
19
20
|
import { createZodDto } from "../infra/validation/create-zod-dto.js";
|
|
20
|
-
import { ZBody } from "../infra/validation/zod-params.js";
|
|
21
|
+
import { ZBody, ZParam } from "../infra/validation/zod-params.js";
|
|
21
22
|
const ApproveSchema = z.object({
|
|
22
23
|
/** 安装记录的包(审阅时的 sha256);配置声明的插件为 null。 */
|
|
23
24
|
sha256: z
|
|
@@ -65,8 +66,12 @@ class ExtensionConfigBody extends createZodDto(ConfigSchema, "ExtensionConfigBod
|
|
|
65
66
|
}
|
|
66
67
|
class ExtensionNpmImportBody extends createZodDto(NpmSchema, "ExtensionNpmImportBody") {
|
|
67
68
|
}
|
|
69
|
+
/** The `:name` route parameter of the org-overrides list (decision R20). */
|
|
70
|
+
const NameParams = z.object({ name: z.string().min(1).max(64) });
|
|
71
|
+
class AdminExtensionNameParamsDto extends createZodDto(NameParams, "AdminExtensionNameParams") {
|
|
72
|
+
}
|
|
68
73
|
/**
|
|
69
|
-
* Deployment-level extension management (`/api/v1/admin/extensions/*`,
|
|
74
|
+
* Deployment-level extension management (`/api/v1/admin/extensions/*`, super admins): package
|
|
70
75
|
* import (upload / npm, returns the review), the extension list and detail, web permission approval
|
|
71
76
|
* (D8), install / enable / disable / uninstall (only writes the desired state and publishes
|
|
72
77
|
* `kernel.plugins.changed`; every replica reconciles, no restart; replicas may still be converging
|
|
@@ -78,14 +83,16 @@ let AdminExtensionsController = class AdminExtensionsController {
|
|
|
78
83
|
ops;
|
|
79
84
|
deploymentConfigs;
|
|
80
85
|
kernelConfig;
|
|
86
|
+
orgOverrides;
|
|
81
87
|
constructor(installs, admin, ops, deploymentConfigs,
|
|
82
88
|
// 字段名不能与路由方法同名(如 `config`):实例字段会遮住原型上的处理函数
|
|
83
|
-
kernelConfig) {
|
|
89
|
+
kernelConfig, orgOverrides) {
|
|
84
90
|
this.installs = installs;
|
|
85
91
|
this.admin = admin;
|
|
86
92
|
this.ops = ops;
|
|
87
93
|
this.deploymentConfigs = deploymentConfigs;
|
|
88
94
|
this.kernelConfig = kernelConfig;
|
|
95
|
+
this.orgOverrides = orgOverrides;
|
|
89
96
|
}
|
|
90
97
|
/**
|
|
91
98
|
* 部署上的全部插件(内置、配置声明、安装记录)及其状态、权限与快照;`drainSeconds` 为停用 / 升级时
|
|
@@ -109,6 +116,14 @@ let AdminExtensionsController = class AdminExtensionsController {
|
|
|
109
116
|
config(name) {
|
|
110
117
|
return this.deploymentConfigs.view(name);
|
|
111
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* The orgs keeping their own copy of the extension's overridable config (spec A §5.7): when it
|
|
121
|
+
* was made, which non-secret fields differ from the platform, whether each secret is set; never
|
|
122
|
+
* a secret value. The super admin cannot edit or drop a copy.
|
|
123
|
+
*/
|
|
124
|
+
async orgCopies({ name }) {
|
|
125
|
+
return { overrides: await this.orgOverrides.listForPlugin(name) };
|
|
126
|
+
}
|
|
112
127
|
/**
|
|
113
128
|
* Saves the deployment config (`values` keyed by field dot path; `null` clears, omitted keeps).
|
|
114
129
|
* A field present in the startup config -> 409 `extension.config_readonly`; unknown or invalid
|
|
@@ -197,6 +212,10 @@ __decorate([
|
|
|
197
212
|
Get(":name/config"),
|
|
198
213
|
__param(0, Param("name"))
|
|
199
214
|
], AdminExtensionsController.prototype, "config", null);
|
|
215
|
+
__decorate([
|
|
216
|
+
Get(":name/org-overrides"),
|
|
217
|
+
__param(0, ZParam(AdminExtensionNameParamsDto))
|
|
218
|
+
], AdminExtensionsController.prototype, "orgCopies", null);
|
|
200
219
|
__decorate([
|
|
201
220
|
Put(":name/config"),
|
|
202
221
|
__param(0, CurrentPrincipal()),
|
|
@@ -249,11 +268,12 @@ __decorate([
|
|
|
249
268
|
], AdminExtensionsController.prototype, "fromNpm", null);
|
|
250
269
|
AdminExtensionsController = __decorate([
|
|
251
270
|
Controller("api/v1/admin/extensions"),
|
|
252
|
-
|
|
271
|
+
SuperAdmin(),
|
|
253
272
|
__param(0, Inject(ExtensionInstalls)),
|
|
254
273
|
__param(1, Inject(ExtensionAdmin)),
|
|
255
274
|
__param(2, Inject(ExtensionAdminOps)),
|
|
256
275
|
__param(3, Inject(ExtensionDeploymentConfigService)),
|
|
257
|
-
__param(4, Inject(KernelConfigService))
|
|
276
|
+
__param(4, Inject(KernelConfigService)),
|
|
277
|
+
__param(5, Inject(OrgOverrides))
|
|
258
278
|
], AdminExtensionsController);
|
|
259
279
|
export { AdminExtensionsController };
|
|
@@ -2,7 +2,7 @@ import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
|
2
2
|
import { XactLock } from "../infra/database/xact-lock.js";
|
|
3
3
|
/**
|
|
4
4
|
* The deployment setup lock (one provider per transaction-scoped lock): serializes the web setup
|
|
5
|
-
* wizard and the CLI's `admin create --if-none`, so concurrent runs create exactly one
|
|
5
|
+
* wizard and the CLI's `admin create --if-none`, so concurrent runs create exactly one super
|
|
6
6
|
* admin. Joins the caller's transaction (`mandatory`), which holds it until it ends.
|
|
7
7
|
*/
|
|
8
8
|
export declare class SetupLock {
|
package/dist/admin/setup-lock.js
CHANGED
|
@@ -15,7 +15,7 @@ import { XactLock } from "../infra/database/xact-lock.js";
|
|
|
15
15
|
const SETUP_LOCK = "capybara.setup";
|
|
16
16
|
/**
|
|
17
17
|
* The deployment setup lock (one provider per transaction-scoped lock): serializes the web setup
|
|
18
|
-
* wizard and the CLI's `admin create --if-none`, so concurrent runs create exactly one
|
|
18
|
+
* wizard and the CLI's `admin create --if-none`, so concurrent runs create exactly one super
|
|
19
19
|
* admin. Joins the caller's transaction (`mandatory`), which holds it until it ends.
|
|
20
20
|
*/
|
|
21
21
|
let SetupLock = class SetupLock {
|
|
@@ -24,7 +24,7 @@ export declare class SetupController {
|
|
|
24
24
|
needsSetup: boolean;
|
|
25
25
|
}>;
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* 建首个超级管理员(可选同时建组织),成功后直接登录(设会话 Cookie)。
|
|
28
28
|
* 配置了 `auth.setupToken` 时 body 中的 `setupToken` 必须与之相等,否则 `setup.token_invalid`;
|
|
29
29
|
* 核对前先占用限流额度,超限 → 429 `auth.rate_limited`,核对通过后退还。
|
|
30
30
|
*/
|
|
@@ -56,7 +56,7 @@ let SetupController = class SetupController {
|
|
|
56
56
|
return this.setup.status();
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
|
-
*
|
|
59
|
+
* 建首个超级管理员(可选同时建组织),成功后直接登录(设会话 Cookie)。
|
|
60
60
|
* 配置了 `auth.setupToken` 时 body 中的 `setupToken` 必须与之相等,否则 `setup.token_invalid`;
|
|
61
61
|
* 核对前先占用限流额度,超限 → 429 `auth.rate_limited`,核对通过后退还。
|
|
62
62
|
*/
|
|
@@ -4,8 +4,8 @@ import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
|
4
4
|
import { type Org, OrgsService } from "../orgs/orgs.service.js";
|
|
5
5
|
import { SetupLock } from "./setup-lock.js";
|
|
6
6
|
/**
|
|
7
|
-
* The setup wizard. The CLI's
|
|
8
|
-
* `
|
|
7
|
+
* The setup wizard. The CLI's super admin creation (`createSuperAdmin`,
|
|
8
|
+
* `createSuperAdminIfNone`) is on `AccountsService`, under the same {@link SetupLock}.
|
|
9
9
|
*/
|
|
10
10
|
export declare class SetupService {
|
|
11
11
|
private readonly db;
|
|
@@ -14,13 +14,13 @@ export declare class SetupService {
|
|
|
14
14
|
private readonly accounts;
|
|
15
15
|
private readonly orgs;
|
|
16
16
|
constructor(db: KernelDb, txHost: TransactionHost, setupLock: SetupLock, accounts: AccountsService, orgs: OrgsService);
|
|
17
|
-
/**
|
|
17
|
+
/** 不存在活跃超级管理员即需要初始化(每次实时查 PG,不缓存)。 */
|
|
18
18
|
status(): Promise<{
|
|
19
19
|
needsSetup: boolean;
|
|
20
20
|
}>;
|
|
21
21
|
/**
|
|
22
22
|
* Completes the setup in one transaction: {@link SetupLock} serializes concurrent setups, and
|
|
23
|
-
* under it there must still be no active
|
|
23
|
+
* under it there must still be no active super admin; then creates the super admin
|
|
24
24
|
* and (with `orgName`) an org it owns. Any failure rolls everything back. `inTx` runs last in the
|
|
25
25
|
* same transaction (the wizard creates the session there), its result is `extra`; its failure
|
|
26
26
|
* rolls back too.
|