@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
|
@@ -20,6 +20,7 @@ import { ApiTokenService, FutureIsoDate } from "./api-tokens.js";
|
|
|
20
20
|
import { MAX_PASSWORD_LENGTH } from "./login.js";
|
|
21
21
|
import { CurrentPrincipal, requireUser, SessionOnly } from "./principal.js";
|
|
22
22
|
import { SessionService } from "./sessions.js";
|
|
23
|
+
import { SettingsService } from "./settings.js";
|
|
23
24
|
/** The credential throttlers of a password change (per account, per client IP). */
|
|
24
25
|
const CHANGE_PASSWORD_THROTTLERS = ["change-password", "change-password-ip"];
|
|
25
26
|
const ChangePasswordSchema = z.object({
|
|
@@ -45,13 +46,15 @@ let MeController = class MeController {
|
|
|
45
46
|
tokens;
|
|
46
47
|
throttler;
|
|
47
48
|
log;
|
|
48
|
-
|
|
49
|
+
settings;
|
|
50
|
+
constructor(accounts, sessions, orgs, tokens, throttler, log, settings) {
|
|
49
51
|
this.accounts = accounts;
|
|
50
52
|
this.sessions = sessions;
|
|
51
53
|
this.orgs = orgs;
|
|
52
54
|
this.tokens = tokens;
|
|
53
55
|
this.throttler = throttler;
|
|
54
56
|
this.log = log;
|
|
57
|
+
this.settings = settings;
|
|
55
58
|
}
|
|
56
59
|
async me(principal) {
|
|
57
60
|
const p = requireUser(principal);
|
|
@@ -62,7 +65,12 @@ let MeController = class MeController {
|
|
|
62
65
|
name: o.name,
|
|
63
66
|
role: o.role,
|
|
64
67
|
}));
|
|
65
|
-
|
|
68
|
+
// a session's org the account has since left reads as none (removal clears it, but a session
|
|
69
|
+
// created at that moment may still name it)
|
|
70
|
+
const current = memberships.some((m) => m.orgId === currentOrgId) ? currentOrgId : null;
|
|
71
|
+
const { orgCreation } = await this.settings.get();
|
|
72
|
+
const canCreateOrg = orgCreation === "anyone" || p.account.isSuperAdmin;
|
|
73
|
+
return { account: p.account, via: p.via, currentOrgId: current, memberships, canCreateOrg };
|
|
66
74
|
}
|
|
67
75
|
/** 切换当前组织(仅 Web 会话);`null` 清空。非成员或已软删除的组织 → `org.not_found`。 */
|
|
68
76
|
async setCurrentOrg(principal, body) {
|
|
@@ -160,6 +168,7 @@ MeController = __decorate([
|
|
|
160
168
|
__param(2, Inject(OrgsService)),
|
|
161
169
|
__param(3, Inject(ApiTokenService)),
|
|
162
170
|
__param(4, Inject(CredentialThrottler)),
|
|
163
|
-
__param(5, Inject(KERNEL_LOGGER))
|
|
171
|
+
__param(5, Inject(KERNEL_LOGGER)),
|
|
172
|
+
__param(6, Inject(SettingsService))
|
|
164
173
|
], MeController);
|
|
165
174
|
export { MeController };
|
|
@@ -28,7 +28,7 @@ declare module "fastify" {
|
|
|
28
28
|
}
|
|
29
29
|
export declare const PUBLIC_KEY = "capybara:auth:public";
|
|
30
30
|
export declare const SESSION_ONLY_KEY = "capybara:auth:session-only";
|
|
31
|
-
export declare const
|
|
31
|
+
export declare const SUPER_ADMIN_KEY = "capybara:auth:super-admin";
|
|
32
32
|
export declare const ALLOW_SERVICE_KEY = "capybara:auth:allow-service";
|
|
33
33
|
/**
|
|
34
34
|
* 不要求凭据:无凭据时放行(principal 为 undefined);带了有效凭据仍解析,无效凭据按无凭据处理。
|
|
@@ -37,8 +37,8 @@ export declare const ALLOW_SERVICE_KEY = "capybara:auth:allow-service";
|
|
|
37
37
|
export declare const Public: () => MethodDecorator & ClassDecorator;
|
|
38
38
|
/** 仅接受 Web 会话(`via: "session"`);个人令牌 → `auth.session_required`。 */
|
|
39
39
|
export declare const SessionOnly: () => MethodDecorator;
|
|
40
|
-
/**
|
|
41
|
-
export declare const
|
|
40
|
+
/** 仅超级管理员(user principal 且 `isSuperAdmin`);否则 `forbidden`。 */
|
|
41
|
+
export declare const SuperAdmin: () => MethodDecorator & ClassDecorator;
|
|
42
42
|
/**
|
|
43
43
|
* 允许服务令牌(service principal)访问。默认拒绝:未标注的路由只接受 user principal,service → `forbidden`。
|
|
44
44
|
* 组织级路由由 OrgGuard 再核对令牌所属组织与角色。
|
|
@@ -2,7 +2,7 @@ import { createParamDecorator, SetMetadata } from "@nestjs/common";
|
|
|
2
2
|
import { ApiError } from "../errors.js";
|
|
3
3
|
export const PUBLIC_KEY = "capybara:auth:public";
|
|
4
4
|
export const SESSION_ONLY_KEY = "capybara:auth:session-only";
|
|
5
|
-
export const
|
|
5
|
+
export const SUPER_ADMIN_KEY = "capybara:auth:super-admin";
|
|
6
6
|
export const ALLOW_SERVICE_KEY = "capybara:auth:allow-service";
|
|
7
7
|
/**
|
|
8
8
|
* 不要求凭据:无凭据时放行(principal 为 undefined);带了有效凭据仍解析,无效凭据按无凭据处理。
|
|
@@ -11,8 +11,8 @@ export const ALLOW_SERVICE_KEY = "capybara:auth:allow-service";
|
|
|
11
11
|
export const Public = () => SetMetadata(PUBLIC_KEY, true);
|
|
12
12
|
/** 仅接受 Web 会话(`via: "session"`);个人令牌 → `auth.session_required`。 */
|
|
13
13
|
export const SessionOnly = () => SetMetadata(SESSION_ONLY_KEY, true);
|
|
14
|
-
/**
|
|
15
|
-
export const
|
|
14
|
+
/** 仅超级管理员(user principal 且 `isSuperAdmin`);否则 `forbidden`。 */
|
|
15
|
+
export const SuperAdmin = () => SetMetadata(SUPER_ADMIN_KEY, true);
|
|
16
16
|
/**
|
|
17
17
|
* 允许服务令牌(service principal)访问。默认拒绝:未标注的路由只接受 user principal,service → `forbidden`。
|
|
18
18
|
* 组织级路由由 OrgGuard 再核对令牌所属组织与角色。
|
|
@@ -36,6 +36,18 @@ export declare class SessionService {
|
|
|
36
36
|
userAgent?: string;
|
|
37
37
|
ip?: string;
|
|
38
38
|
}): Promise<IssuedSession>;
|
|
39
|
+
/**
|
|
40
|
+
* The org a new session starts in: the account's last chosen one while it is still a member of it
|
|
41
|
+
* (and the org is not deleted), else its only org when it has exactly one, else none (the web
|
|
42
|
+
* app then asks to choose or create one).
|
|
43
|
+
*/
|
|
44
|
+
private startingOrg;
|
|
45
|
+
/**
|
|
46
|
+
* Read-only: of several refresh tokens (a cookie header carrying the legacy and the `Path=/`
|
|
47
|
+
* cookie), the first that is the current token of a live session, if any. Choosing before
|
|
48
|
+
* rotating keeps a stale token from tripping replay detection on a still valid session.
|
|
49
|
+
*/
|
|
50
|
+
pickCurrentRefresh(candidates: readonly string[]): Promise<string | undefined>;
|
|
39
51
|
refresh(refreshToken: string, meta: {
|
|
40
52
|
userAgent?: string;
|
|
41
53
|
ip?: string;
|
|
@@ -72,11 +72,49 @@ let SessionService = class SessionService {
|
|
|
72
72
|
user_agent: meta.userAgent ?? null,
|
|
73
73
|
ip: meta.ip ?? null,
|
|
74
74
|
expires_at: sql `now() + make_interval(days => ${refreshTtlDays})`,
|
|
75
|
+
current_org_id: await this.startingOrg(accountId),
|
|
75
76
|
})
|
|
76
77
|
.returning(["expires_at"])
|
|
77
78
|
.executeTakeFirstOrThrow();
|
|
78
79
|
return this.issue(id, accountId, refreshToken, row.expires_at);
|
|
79
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* The org a new session starts in: the account's last chosen one while it is still a member of it
|
|
83
|
+
* (and the org is not deleted), else its only org when it has exactly one, else none (the web
|
|
84
|
+
* app then asks to choose or create one).
|
|
85
|
+
*/
|
|
86
|
+
async startingOrg(accountId) {
|
|
87
|
+
const orgs = await this.db
|
|
88
|
+
.selectFrom("memberships as m")
|
|
89
|
+
.innerJoin("orgs as o", "o.id", "m.org_id")
|
|
90
|
+
.innerJoin("accounts as a", "a.id", "m.account_id")
|
|
91
|
+
.select(["m.org_id as orgId", "a.last_org_id as lastOrgId"])
|
|
92
|
+
.where("m.account_id", "=", accountId)
|
|
93
|
+
.where("o.deleted_at", "is", null)
|
|
94
|
+
.execute();
|
|
95
|
+
const last = orgs.find((o) => o.orgId === o.lastOrgId);
|
|
96
|
+
if (last)
|
|
97
|
+
return last.orgId;
|
|
98
|
+
return orgs.length === 1 ? (orgs[0]?.orgId ?? null) : null;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Read-only: of several refresh tokens (a cookie header carrying the legacy and the `Path=/`
|
|
102
|
+
* cookie), the first that is the current token of a live session, if any. Choosing before
|
|
103
|
+
* rotating keeps a stale token from tripping replay detection on a still valid session.
|
|
104
|
+
*/
|
|
105
|
+
async pickCurrentRefresh(candidates) {
|
|
106
|
+
if (candidates.length === 0)
|
|
107
|
+
return undefined;
|
|
108
|
+
const rows = await this.db
|
|
109
|
+
.selectFrom("sessions")
|
|
110
|
+
.select("refresh_hash")
|
|
111
|
+
.where("refresh_hash", "in", candidates.map((c) => sha256Hex(c)))
|
|
112
|
+
.where("revoked_at", "is", null)
|
|
113
|
+
.where("expires_at", ">", sql `now()`)
|
|
114
|
+
.execute();
|
|
115
|
+
const live = new Set(rows.map((r) => r.refresh_hash));
|
|
116
|
+
return candidates.find((c) => live.has(sha256Hex(c)));
|
|
117
|
+
}
|
|
80
118
|
async refresh(refreshToken, meta) {
|
|
81
119
|
const oldHash = sha256Hex(refreshToken);
|
|
82
120
|
const next = newRefreshToken();
|
|
@@ -277,6 +315,13 @@ let SessionService = class SessionService {
|
|
|
277
315
|
.executeTakeFirst());
|
|
278
316
|
if (!m)
|
|
279
317
|
throw new ApiError("org.not_found", "Organization not found");
|
|
318
|
+
// remembered for the next sign-in; the account row before the session row, the order a
|
|
319
|
+
// password change takes (account, then its sessions)
|
|
320
|
+
await this.db
|
|
321
|
+
.updateTable("accounts")
|
|
322
|
+
.set({ last_org_id: orgId })
|
|
323
|
+
.where("id", "=", accountId)
|
|
324
|
+
.execute();
|
|
280
325
|
const r = await this.db
|
|
281
326
|
.updateTable("sessions")
|
|
282
327
|
.set({ current_org_id: orgId })
|
|
@@ -3,7 +3,7 @@ import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
|
3
3
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
4
4
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
5
5
|
import type { KernelLogger } from "../log.js";
|
|
6
|
-
import {
|
|
6
|
+
import { SuperAdminLock } from "./super-admin.js";
|
|
7
7
|
/** 沙箱 cpu(核)与内存(MB)覆盖的范围(C19)。 */
|
|
8
8
|
export declare const SANDBOX_CPU_RANGE: {
|
|
9
9
|
readonly min: 0.25;
|
|
@@ -20,11 +20,13 @@ export declare const SANDBOX_LIMIT_OVERRIDE: z.ZodObject<{
|
|
|
20
20
|
}, z.core.$strict>;
|
|
21
21
|
export type SandboxLimitOverride = z.infer<typeof SANDBOX_LIMIT_OVERRIDE>;
|
|
22
22
|
/**
|
|
23
|
-
* One organization's sub-agent limits (sub-agents spec §8.2): any of the
|
|
24
|
-
* values, within the same bounds
|
|
23
|
+
* One organization's sub-agent limits (sub-agents spec §8.2, agent map spec §6): any of the
|
|
24
|
+
* `subagents.*` values, within the same bounds (0 for dispatches or tokens: no limit); the ones not
|
|
25
|
+
* given use the deployment's config.
|
|
25
26
|
*/
|
|
26
27
|
export declare const SUBAGENT_LIMIT_OVERRIDE: z.ZodObject<{
|
|
27
|
-
|
|
28
|
+
maxDepth: z.ZodOptional<z.ZodNumber>;
|
|
29
|
+
maxConcurrentPerConversation: z.ZodOptional<z.ZodNumber>;
|
|
28
30
|
maxDispatchesPerRun: z.ZodOptional<z.ZodNumber>;
|
|
29
31
|
maxTokensPerRun: z.ZodOptional<z.ZodNumber>;
|
|
30
32
|
}, z.core.$strict>;
|
|
@@ -32,7 +34,7 @@ export type SubagentLimitOverride = z.infer<typeof SUBAGENT_LIMIT_OVERRIDE>;
|
|
|
32
34
|
export declare const DEPLOYMENT_SETTINGS: z.ZodObject<{
|
|
33
35
|
orgCreation: z.ZodDefault<z.ZodEnum<{
|
|
34
36
|
anyone: "anyone";
|
|
35
|
-
|
|
37
|
+
super_admin: "super_admin";
|
|
36
38
|
}>>;
|
|
37
39
|
runConcurrencyOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
38
40
|
priceCurrency: z.ZodDefault<z.ZodString>;
|
|
@@ -41,7 +43,8 @@ export declare const DEPLOYMENT_SETTINGS: z.ZodObject<{
|
|
|
41
43
|
memoryMb: z.ZodOptional<z.ZodNumber>;
|
|
42
44
|
}, z.core.$strict>>>;
|
|
43
45
|
subagentLimitOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
44
|
-
|
|
46
|
+
maxDepth: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
maxConcurrentPerConversation: z.ZodOptional<z.ZodNumber>;
|
|
45
48
|
maxDispatchesPerRun: z.ZodOptional<z.ZodNumber>;
|
|
46
49
|
maxTokensPerRun: z.ZodOptional<z.ZodNumber>;
|
|
47
50
|
}, z.core.$strict>>>;
|
|
@@ -53,6 +56,7 @@ export declare const DEPLOYMENT_SETTINGS: z.ZodObject<{
|
|
|
53
56
|
allow: "allow";
|
|
54
57
|
deny: "deny";
|
|
55
58
|
}>>;
|
|
59
|
+
orgMarketplaceBrowse: z.ZodDefault<z.ZodBoolean>;
|
|
56
60
|
}, z.core.$strip>;
|
|
57
61
|
export type DeploymentSettings = z.infer<typeof DEPLOYMENT_SETTINGS>;
|
|
58
62
|
/**
|
|
@@ -66,7 +70,7 @@ export type DeploymentSettings = z.infer<typeof DEPLOYMENT_SETTINGS>;
|
|
|
66
70
|
export declare const DEPLOYMENT_SETTINGS_PATCH: z.ZodObject<{
|
|
67
71
|
orgCreation: z.ZodOptional<z.ZodEnum<{
|
|
68
72
|
anyone: "anyone";
|
|
69
|
-
|
|
73
|
+
super_admin: "super_admin";
|
|
70
74
|
}>>;
|
|
71
75
|
runConcurrencyOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodNumber>>>;
|
|
72
76
|
priceCurrency: z.ZodOptional<z.ZodString>;
|
|
@@ -75,7 +79,8 @@ export declare const DEPLOYMENT_SETTINGS_PATCH: z.ZodObject<{
|
|
|
75
79
|
memoryMb: z.ZodOptional<z.ZodNumber>;
|
|
76
80
|
}, z.core.$strict>>>>;
|
|
77
81
|
subagentLimitOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
|
|
78
|
-
|
|
82
|
+
maxDepth: z.ZodOptional<z.ZodNumber>;
|
|
83
|
+
maxConcurrentPerConversation: z.ZodOptional<z.ZodNumber>;
|
|
79
84
|
maxDispatchesPerRun: z.ZodOptional<z.ZodNumber>;
|
|
80
85
|
maxTokensPerRun: z.ZodOptional<z.ZodNumber>;
|
|
81
86
|
}, z.core.$strict>>>>;
|
|
@@ -87,6 +92,7 @@ export declare const DEPLOYMENT_SETTINGS_PATCH: z.ZodObject<{
|
|
|
87
92
|
allow: "allow";
|
|
88
93
|
deny: "deny";
|
|
89
94
|
}>>;
|
|
95
|
+
orgMarketplaceBrowse: z.ZodOptional<z.ZodBoolean>;
|
|
90
96
|
}, z.core.$strict>;
|
|
91
97
|
export type DeploymentSettingsPatch = z.infer<typeof DEPLOYMENT_SETTINGS_PATCH>;
|
|
92
98
|
/**
|
|
@@ -102,18 +108,23 @@ export declare function readSandboxLimitOverride(db: KernelSchemaDb, orgId: stri
|
|
|
102
108
|
export declare function readSubagentLimitOverride(db: KernelSchemaDb, orgId: string): Promise<SubagentLimitOverride | undefined>;
|
|
103
109
|
/**
|
|
104
110
|
* When orgs may not create their own connectors / skills (deployment setting `customConnectors` /
|
|
105
|
-
* `customSkills` is `deny`, C22) throws `catalog.custom_disabled`: install from the
|
|
111
|
+
* `customSkills` is `deny`, C22) throws `catalog.custom_disabled`: install from the platform
|
|
106
112
|
* catalog only. Reads PG live every time (can read in the caller's transaction); an invalid stored
|
|
107
113
|
* value counts as allow.
|
|
108
114
|
*/
|
|
109
115
|
export declare function assertCustomAllowed(db: KernelSchemaDb, key: "customConnectors" | "customSkills"): Promise<void>;
|
|
116
|
+
/**
|
|
117
|
+
* The deployment setting `orgMarketplaceBrowse`, read live from PG (in the caller's transaction
|
|
118
|
+
* when there is one); missing or invalid -> the default, true.
|
|
119
|
+
*/
|
|
120
|
+
export declare function readOrgMarketplaceBrowse(db: KernelSchemaDb): Promise<boolean>;
|
|
110
121
|
/** Deployment settings: one row per key, defaults for missing keys. */
|
|
111
122
|
export declare class SettingsService {
|
|
112
123
|
private readonly db;
|
|
113
124
|
readonly txHost: TransactionHost;
|
|
114
125
|
private readonly adminLock;
|
|
115
126
|
private readonly log;
|
|
116
|
-
constructor(db: KernelDb, txHost: TransactionHost, adminLock:
|
|
127
|
+
constructor(db: KernelDb, txHost: TransactionHost, adminLock: SuperAdminLock, log: Pick<KernelLogger, "warn">);
|
|
117
128
|
/**
|
|
118
129
|
* Reads every setting, in the context's transaction when there is one (a caller holding a
|
|
119
130
|
* transaction connection does not take a second one from the pool). Each key is validated on
|
|
@@ -121,7 +132,7 @@ export declare class SettingsService {
|
|
|
121
132
|
* valid keys apply; unknown keys (written by a newer version) are ignored.
|
|
122
133
|
*/
|
|
123
134
|
get(): Promise<DeploymentSettings>;
|
|
124
|
-
/** Updates settings under the
|
|
135
|
+
/** Updates settings under the super admin lock, re-checking the actor (else `forbidden`). */
|
|
125
136
|
update(patch: DeploymentSettingsPatch, actorAccountId: string, actorTokenId?: string): Promise<DeploymentSettings>;
|
|
126
137
|
private write;
|
|
127
138
|
}
|
|
@@ -15,7 +15,7 @@ import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
|
15
15
|
import { Transactional } from "../infra/database/transactional.decorator.js";
|
|
16
16
|
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
17
17
|
import { audit } from "./audit.js";
|
|
18
|
-
import {
|
|
18
|
+
import { SuperAdminLock } from "./super-admin.js";
|
|
19
19
|
/** 币种代码:ISO 4217 的三位大写字母(如 USD、CNY)。 */
|
|
20
20
|
const CurrencyCode = z.string().regex(/^[A-Z]{3}$/, "must be a 3-letter ISO 4217 currency code");
|
|
21
21
|
/** 沙箱 cpu(核)与内存(MB)覆盖的范围(C19)。 */
|
|
@@ -37,23 +37,34 @@ export const SANDBOX_LIMIT_OVERRIDE = z
|
|
|
37
37
|
message: "give cpu, memoryMb or both",
|
|
38
38
|
});
|
|
39
39
|
/**
|
|
40
|
-
* One organization's sub-agent limits (sub-agents spec §8.2): any of the
|
|
41
|
-
* values, within the same bounds
|
|
40
|
+
* One organization's sub-agent limits (sub-agents spec §8.2, agent map spec §6): any of the
|
|
41
|
+
* `subagents.*` values, within the same bounds (0 for dispatches or tokens: no limit); the ones not
|
|
42
|
+
* given use the deployment's config.
|
|
42
43
|
*/
|
|
43
44
|
export const SUBAGENT_LIMIT_OVERRIDE = z
|
|
44
45
|
.object({
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
maxDepth: z.number().int().min(1).max(5).optional(),
|
|
47
|
+
maxConcurrentPerConversation: z.number().int().min(1).max(20).optional(),
|
|
48
|
+
maxDispatchesPerRun: z
|
|
49
|
+
.number()
|
|
50
|
+
.int()
|
|
51
|
+
.max(500)
|
|
52
|
+
.refine((n) => n === 0 || n >= 1, "0 (no limit) or 1 to 500")
|
|
53
|
+
.optional(),
|
|
54
|
+
maxTokensPerRun: z
|
|
55
|
+
.number()
|
|
56
|
+
.int()
|
|
57
|
+
.refine((n) => n === 0 || n >= 10_000, "0 (no limit) or at least 10,000")
|
|
58
|
+
.optional(),
|
|
48
59
|
})
|
|
49
60
|
.strict()
|
|
50
61
|
.refine((o) => Object.values(o).some((v) => v !== undefined), {
|
|
51
|
-
message: "give
|
|
62
|
+
message: "give maxDepth, maxConcurrentPerConversation, maxDispatchesPerRun or maxTokensPerRun",
|
|
52
63
|
});
|
|
53
|
-
/** 组织能否自建连接器 / 技能(C22):`deny`
|
|
64
|
+
/** 组织能否自建连接器 / 技能(C22):`deny` 时只能从平台目录安装(T26 执行)。 */
|
|
54
65
|
const CustomPolicy = z.enum(["allow", "deny"]);
|
|
55
66
|
export const DEPLOYMENT_SETTINGS = z.object({
|
|
56
|
-
orgCreation: z.enum(["anyone", "
|
|
67
|
+
orgCreation: z.enum(["anyone", "super_admin"]).default("anyone"),
|
|
57
68
|
/** 按组织覆盖运行并发上限(orgId → 上限);未列出的组织用 `runtime.orgConcurrency`。 */
|
|
58
69
|
runConcurrencyOverrides: z.record(z.string().min(1), z.number().int().positive()).default({}),
|
|
59
70
|
/** 模型价格表(`model_prices`)的币种;只用于显示估算成本,不做换算。 */
|
|
@@ -65,13 +76,18 @@ export const DEPLOYMENT_SETTINGS = z.object({
|
|
|
65
76
|
* not given, use `subagents.*`. Read live on every dispatch and tool resolution.
|
|
66
77
|
*/
|
|
67
78
|
subagentLimitOverrides: z.record(z.string().min(1), SUBAGENT_LIMIT_OVERRIDE).default({}),
|
|
68
|
-
/**
|
|
79
|
+
/** 组织能否自建连接器(不经平台目录)。 */
|
|
69
80
|
customConnectors: CustomPolicy.default("allow"),
|
|
70
81
|
/**
|
|
71
|
-
*
|
|
82
|
+
* 组织能否自建技能(不经平台目录):deny 时组织管理员不能上传技能包。agent 自写技能(`SkillWrite`,私有 agent 的
|
|
72
83
|
* agent 级技能与共享 agent 经负责人审批的变更)不受此开关约束——那是 agent 定义的一部分,由 R3 / R4 把关。
|
|
73
84
|
*/
|
|
74
85
|
customSkills: CustomPolicy.default("allow"),
|
|
86
|
+
/**
|
|
87
|
+
* Org admins may browse the marketplaces read-only and ask for an entry to be imported (plugin
|
|
88
|
+
* scope spec §5.1 rule 3). false hides the browse route and refuses those requests.
|
|
89
|
+
*/
|
|
90
|
+
orgMarketplaceBrowse: z.boolean().default(true),
|
|
75
91
|
});
|
|
76
92
|
const DEFAULTS = DEPLOYMENT_SETTINGS.parse({});
|
|
77
93
|
/**
|
|
@@ -84,7 +100,7 @@ const DEFAULTS = DEPLOYMENT_SETTINGS.parse({});
|
|
|
84
100
|
*/
|
|
85
101
|
export const DEPLOYMENT_SETTINGS_PATCH = z
|
|
86
102
|
.object({
|
|
87
|
-
orgCreation: z.enum(["anyone", "
|
|
103
|
+
orgCreation: z.enum(["anyone", "super_admin"]).optional(),
|
|
88
104
|
runConcurrencyOverrides: z
|
|
89
105
|
.record(z.string().min(1), z.number().int().positive().nullable())
|
|
90
106
|
.optional(),
|
|
@@ -97,6 +113,7 @@ export const DEPLOYMENT_SETTINGS_PATCH = z
|
|
|
97
113
|
.optional(),
|
|
98
114
|
customConnectors: CustomPolicy.optional(),
|
|
99
115
|
customSkills: CustomPolicy.optional(),
|
|
116
|
+
orgMarketplaceBrowse: z.boolean().optional(),
|
|
100
117
|
})
|
|
101
118
|
.strict();
|
|
102
119
|
/**
|
|
@@ -140,7 +157,7 @@ export async function readSubagentLimitOverride(db, orgId) {
|
|
|
140
157
|
}
|
|
141
158
|
/**
|
|
142
159
|
* When orgs may not create their own connectors / skills (deployment setting `customConnectors` /
|
|
143
|
-
* `customSkills` is `deny`, C22) throws `catalog.custom_disabled`: install from the
|
|
160
|
+
* `customSkills` is `deny`, C22) throws `catalog.custom_disabled`: install from the platform
|
|
144
161
|
* catalog only. Reads PG live every time (can read in the caller's transaction); an invalid stored
|
|
145
162
|
* value counts as allow.
|
|
146
163
|
*/
|
|
@@ -155,10 +172,25 @@ export async function assertCustomAllowed(db, key) {
|
|
|
155
172
|
const parsed = CustomPolicy.safeParse(row.value);
|
|
156
173
|
if (parsed.success && parsed.data === "deny") {
|
|
157
174
|
throw new ApiError("catalog.custom_disabled", key === "customConnectors"
|
|
158
|
-
? "Custom connectors are disabled in this deployment; install connectors from the
|
|
159
|
-
: "Custom skills are disabled in this deployment; install skills from the
|
|
175
|
+
? "Custom connectors are disabled in this deployment; install connectors from the platform catalog"
|
|
176
|
+
: "Custom skills are disabled in this deployment; install skills from the platform catalog");
|
|
160
177
|
}
|
|
161
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* The deployment setting `orgMarketplaceBrowse`, read live from PG (in the caller's transaction
|
|
181
|
+
* when there is one); missing or invalid -> the default, true.
|
|
182
|
+
*/
|
|
183
|
+
export async function readOrgMarketplaceBrowse(db) {
|
|
184
|
+
const row = await db
|
|
185
|
+
.selectFrom("deployment_settings")
|
|
186
|
+
.select("value")
|
|
187
|
+
.where("key", "=", "orgMarketplaceBrowse")
|
|
188
|
+
.executeTakeFirst();
|
|
189
|
+
if (!row)
|
|
190
|
+
return true;
|
|
191
|
+
const parsed = z.boolean().safeParse(row.value);
|
|
192
|
+
return parsed.success ? parsed.data : true;
|
|
193
|
+
}
|
|
162
194
|
/** 按组织合并覆盖:值为 null 删除该组织,其余整项替换;未列出的组织不变。 */
|
|
163
195
|
function mergeByOrg(current, patch) {
|
|
164
196
|
const merged = { ...current };
|
|
@@ -208,7 +240,7 @@ let SettingsService = class SettingsService {
|
|
|
208
240
|
}
|
|
209
241
|
return out;
|
|
210
242
|
}
|
|
211
|
-
/** Updates settings under the
|
|
243
|
+
/** Updates settings under the super admin lock, re-checking the actor (else `forbidden`). */
|
|
212
244
|
async update(patch, actorAccountId, actorTokenId) {
|
|
213
245
|
const check = DEPLOYMENT_SETTINGS_PATCH.safeParse(patch);
|
|
214
246
|
if (!check.success) {
|
|
@@ -219,7 +251,7 @@ let SettingsService = class SettingsService {
|
|
|
219
251
|
}
|
|
220
252
|
async write(patch, actorAccountId, actorTokenId) {
|
|
221
253
|
await this.adminLock.lockAndAuthorize(actorAccountId);
|
|
222
|
-
// The
|
|
254
|
+
// The super admin lock serializes every settings write: the current overrides are read
|
|
223
255
|
// and merged under it, so no concurrent change is lost
|
|
224
256
|
const next = {};
|
|
225
257
|
if (patch.orgCreation !== undefined)
|
|
@@ -230,6 +262,9 @@ let SettingsService = class SettingsService {
|
|
|
230
262
|
next.customConnectors = patch.customConnectors;
|
|
231
263
|
if (patch.customSkills !== undefined)
|
|
232
264
|
next.customSkills = patch.customSkills;
|
|
265
|
+
if (patch.orgMarketplaceBrowse !== undefined) {
|
|
266
|
+
next.orgMarketplaceBrowse = patch.orgMarketplaceBrowse;
|
|
267
|
+
}
|
|
233
268
|
const { runConcurrencyOverrides: runPatch, sandboxLimitOverrides: sandboxPatch, subagentLimitOverrides: subagentPatch, } = patch;
|
|
234
269
|
if (runPatch !== undefined || sandboxPatch !== undefined || subagentPatch !== undefined) {
|
|
235
270
|
const current = await this.get();
|
|
@@ -270,7 +305,7 @@ SettingsService = __decorate([
|
|
|
270
305
|
Injectable(),
|
|
271
306
|
__param(0, Inject(KernelDb)),
|
|
272
307
|
__param(1, Inject(TransactionHost)),
|
|
273
|
-
__param(2, Inject(
|
|
308
|
+
__param(2, Inject(SuperAdminLock)),
|
|
274
309
|
__param(3, Inject(KERNEL_LOGGER))
|
|
275
310
|
], SettingsService);
|
|
276
311
|
export { SettingsService };
|
|
@@ -2,19 +2,19 @@ import { KernelDb } from "../infra/database/kernel-db.js";
|
|
|
2
2
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
3
3
|
import { XactLock } from "../infra/database/xact-lock.js";
|
|
4
4
|
/**
|
|
5
|
-
* The
|
|
5
|
+
* The super admin lock, the one implementation of "lock, then re-check the actor":
|
|
6
6
|
* both methods join the caller's transaction (`mandatory`), which holds the lock until it ends.
|
|
7
7
|
*/
|
|
8
|
-
export declare class
|
|
8
|
+
export declare class SuperAdminLock {
|
|
9
9
|
private readonly db;
|
|
10
10
|
private readonly xactLock;
|
|
11
11
|
readonly txHost: TransactionHost;
|
|
12
12
|
constructor(db: KernelDb, xactLock: XactLock, txHost: TransactionHost);
|
|
13
13
|
/** Only the lock (callers without an actor: the CLI, bootstrap). */
|
|
14
14
|
lock(): Promise<void>;
|
|
15
|
-
/** The lock, then {@link
|
|
15
|
+
/** The lock, then {@link assertActiveSuperAdmin} under it. */
|
|
16
16
|
lockAndAuthorize(actorAccountId: string): Promise<void>;
|
|
17
17
|
}
|
|
18
|
-
/** The one {@link
|
|
19
|
-
export declare class
|
|
18
|
+
/** The one {@link SuperAdminLock}: identity, models, the extensions and the catalog import it. */
|
|
19
|
+
export declare class SuperAdminLockModule {
|
|
20
20
|
}
|
|
@@ -15,32 +15,32 @@ import { Transactional } from "../infra/database/transactional.decorator.js";
|
|
|
15
15
|
import { XactLock } from "../infra/database/xact-lock.js";
|
|
16
16
|
/**
|
|
17
17
|
* The transaction-scoped lock (`XactLock`, `pg_advisory_xact_lock`) that serializes every
|
|
18
|
-
*
|
|
18
|
+
* super admin write: revoke / disable / create an admin, deployment settings, prices,
|
|
19
19
|
* purposes, the catalog and extension admin writes, the CLI's `capybara admin grant|revoke`.
|
|
20
20
|
*/
|
|
21
|
-
const
|
|
21
|
+
const SUPER_ADMINS_LOCK = "capybara.super_admins";
|
|
22
22
|
/**
|
|
23
|
-
* The run-time re-check of
|
|
24
|
-
* {@link
|
|
23
|
+
* The run-time re-check of a super admin write (spec 3.6 R5), under
|
|
24
|
+
* {@link SUPER_ADMINS_LOCK}: the actor must still be an active super admin, else
|
|
25
25
|
* `forbidden`. The identity the auth guard read at the start of the request may be stale (another
|
|
26
26
|
* admin just revoked it), so it is re-read under the lock.
|
|
27
27
|
*/
|
|
28
|
-
async function
|
|
28
|
+
async function assertActiveSuperAdmin(db, actorAccountId) {
|
|
29
29
|
const actor = await db
|
|
30
30
|
.selectFrom("accounts")
|
|
31
31
|
.select("id")
|
|
32
32
|
.where("id", "=", actorAccountId)
|
|
33
|
-
.where("
|
|
33
|
+
.where("is_super_admin", "=", true)
|
|
34
34
|
.where("status", "=", "active")
|
|
35
35
|
.executeTakeFirst();
|
|
36
36
|
if (!actor)
|
|
37
|
-
throw new ApiError("forbidden", "
|
|
37
|
+
throw new ApiError("forbidden", "Super admin required");
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
40
|
-
* The
|
|
40
|
+
* The super admin lock, the one implementation of "lock, then re-check the actor":
|
|
41
41
|
* both methods join the caller's transaction (`mandatory`), which holds the lock until it ends.
|
|
42
42
|
*/
|
|
43
|
-
let
|
|
43
|
+
let SuperAdminLock = class SuperAdminLock {
|
|
44
44
|
db;
|
|
45
45
|
xactLock;
|
|
46
46
|
txHost;
|
|
@@ -51,31 +51,31 @@ let EnterpriseAdminLock = class EnterpriseAdminLock {
|
|
|
51
51
|
}
|
|
52
52
|
/** Only the lock (callers without an actor: the CLI, bootstrap). */
|
|
53
53
|
async lock() {
|
|
54
|
-
await this.xactLock.lock(
|
|
54
|
+
await this.xactLock.lock(SUPER_ADMINS_LOCK);
|
|
55
55
|
}
|
|
56
|
-
/** The lock, then {@link
|
|
56
|
+
/** The lock, then {@link assertActiveSuperAdmin} under it. */
|
|
57
57
|
async lockAndAuthorize(actorAccountId) {
|
|
58
|
-
await this.xactLock.lock(
|
|
59
|
-
await
|
|
58
|
+
await this.xactLock.lock(SUPER_ADMINS_LOCK);
|
|
59
|
+
await assertActiveSuperAdmin(this.db.db, actorAccountId);
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
62
|
__decorate([
|
|
63
63
|
Transactional({ propagation: "mandatory" })
|
|
64
|
-
],
|
|
64
|
+
], SuperAdminLock.prototype, "lock", null);
|
|
65
65
|
__decorate([
|
|
66
66
|
Transactional({ propagation: "mandatory" })
|
|
67
|
-
],
|
|
68
|
-
|
|
67
|
+
], SuperAdminLock.prototype, "lockAndAuthorize", null);
|
|
68
|
+
SuperAdminLock = __decorate([
|
|
69
69
|
Injectable(),
|
|
70
70
|
__param(0, Inject(KernelDb)),
|
|
71
71
|
__param(1, Inject(XactLock)),
|
|
72
72
|
__param(2, Inject(TransactionHost))
|
|
73
|
-
],
|
|
74
|
-
export {
|
|
75
|
-
/** The one {@link
|
|
76
|
-
let
|
|
73
|
+
], SuperAdminLock);
|
|
74
|
+
export { SuperAdminLock };
|
|
75
|
+
/** The one {@link SuperAdminLock}: identity, models, the extensions and the catalog import it. */
|
|
76
|
+
let SuperAdminLockModule = class SuperAdminLockModule {
|
|
77
77
|
};
|
|
78
|
-
|
|
79
|
-
Module({ providers: [
|
|
80
|
-
],
|
|
81
|
-
export {
|
|
78
|
+
SuperAdminLockModule = __decorate([
|
|
79
|
+
Module({ providers: [SuperAdminLock], exports: [SuperAdminLock] })
|
|
80
|
+
], SuperAdminLockModule);
|
|
81
|
+
export { SuperAdminLockModule };
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* The inboxes, read live from PG: an org member's (pending tool approvals, skill changes, catalog
|
|
3
|
+
* requests, org notices) and the super admin's (`PlatformInboxService`).
|
|
4
|
+
*/
|
|
2
5
|
export declare class InboxModule {
|
|
3
6
|
}
|
|
@@ -9,14 +9,18 @@ import { CatalogModule } from "../catalog/catalog.module.js";
|
|
|
9
9
|
import { SkillsModule } from "../skills/skills.module.js";
|
|
10
10
|
import { ToolsModule } from "../tools/tools.module.js";
|
|
11
11
|
import { InboxService } from "./inbox.service.js";
|
|
12
|
-
|
|
12
|
+
import { PlatformInboxService } from "./platform-inbox.service.js";
|
|
13
|
+
/**
|
|
14
|
+
* The inboxes, read live from PG: an org member's (pending tool approvals, skill changes, catalog
|
|
15
|
+
* requests, org notices) and the super admin's (`PlatformInboxService`).
|
|
16
|
+
*/
|
|
13
17
|
let InboxModule = class InboxModule {
|
|
14
18
|
};
|
|
15
19
|
InboxModule = __decorate([
|
|
16
20
|
Module({
|
|
17
21
|
imports: [ToolsModule, SkillsModule, CatalogModule],
|
|
18
|
-
providers: [InboxService],
|
|
19
|
-
exports: [InboxService],
|
|
22
|
+
providers: [InboxService, PlatformInboxService],
|
|
23
|
+
exports: [InboxService, PlatformInboxService],
|
|
20
24
|
})
|
|
21
25
|
], InboxModule);
|
|
22
26
|
export { InboxModule };
|