@bevel-software/platform-core-backend 0.15.1 → 0.20.0
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/THIRD-PARTY-NOTICES.md +4 -4
- package/dist/core/catalog-cache-invalidation.d.ts +16 -0
- package/dist/core/catalog-cache-invalidation.d.ts.map +1 -1
- package/dist/core/catalog-cache-invalidation.js +6 -1
- package/dist/core/catalog-cache-invalidation.js.map +1 -1
- package/dist/core/catalog-revision.d.ts +39 -0
- package/dist/core/catalog-revision.d.ts.map +1 -0
- package/dist/core/catalog-revision.js +94 -0
- package/dist/core/catalog-revision.js.map +1 -0
- package/dist/core/create-core-server.d.ts +7 -0
- package/dist/core/create-core-server.d.ts.map +1 -1
- package/dist/core/create-core-server.js +221 -75
- package/dist/core/create-core-server.js.map +1 -1
- package/dist/core/create-core-services.d.ts +52 -2
- package/dist/core/create-core-services.d.ts.map +1 -1
- package/dist/core/create-core-services.js +222 -87
- package/dist/core/create-core-services.js.map +1 -1
- package/dist/core/lifecycle.d.ts +138 -0
- package/dist/core/lifecycle.d.ts.map +1 -0
- package/dist/core/lifecycle.js +218 -0
- package/dist/core/lifecycle.js.map +1 -0
- package/dist/core/public-config.d.ts +82 -0
- package/dist/core/public-config.d.ts.map +1 -0
- package/dist/core/public-config.js +78 -0
- package/dist/core/public-config.js.map +1 -0
- package/dist/core/readiness.d.ts +86 -0
- package/dist/core/readiness.d.ts.map +1 -0
- package/dist/core/readiness.js +56 -0
- package/dist/core/readiness.js.map +1 -0
- package/dist/core-config.d.ts +30 -0
- package/dist/core-config.d.ts.map +1 -1
- package/dist/core-config.js +64 -2
- package/dist/core-config.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/access/access-control.interface.d.ts +215 -11
- package/dist/modules/access/access-control.interface.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.d.ts +57 -11
- package/dist/modules/access/access-control.service.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.js +616 -155
- package/dist/modules/access/access-control.service.js.map +1 -1
- package/dist/modules/access/access-mutation.service.d.ts +71 -5
- package/dist/modules/access/access-mutation.service.d.ts.map +1 -1
- package/dist/modules/access/access-mutation.service.js +161 -13
- package/dist/modules/access/access-mutation.service.js.map +1 -1
- package/dist/modules/access/access-view.d.ts +147 -0
- package/dist/modules/access/access-view.d.ts.map +1 -0
- package/dist/modules/access/access-view.js +211 -0
- package/dist/modules/access/access-view.js.map +1 -0
- package/dist/modules/access/access.routes.d.ts.map +1 -1
- package/dist/modules/access/access.routes.js +255 -79
- package/dist/modules/access/access.routes.js.map +1 -1
- package/dist/modules/access/admin-locked-commit.d.ts +2 -3
- package/dist/modules/access/admin-locked-commit.d.ts.map +1 -1
- package/dist/modules/access/admin-locked-commit.js +9 -8
- package/dist/modules/access/admin-locked-commit.js.map +1 -1
- package/dist/modules/access/admin-route-helpers.d.ts.map +1 -1
- package/dist/modules/access/admin-route-helpers.js +4 -4
- package/dist/modules/access/admin-route-helpers.js.map +1 -1
- package/dist/modules/access/change-read-gate.d.ts +53 -0
- package/dist/modules/access/change-read-gate.d.ts.map +1 -0
- package/dist/modules/access/change-read-gate.js +134 -0
- package/dist/modules/access/change-read-gate.js.map +1 -0
- package/dist/modules/access/creator-access.d.ts +33 -39
- package/dist/modules/access/creator-access.d.ts.map +1 -1
- package/dist/modules/access/creator-access.js +92 -119
- package/dist/modules/access/creator-access.js.map +1 -1
- package/dist/modules/access/directory-sync-bot.d.ts.map +1 -1
- package/dist/modules/access/directory-sync-bot.js +3 -1
- package/dist/modules/access/directory-sync-bot.js.map +1 -1
- package/dist/modules/access/groups-admin.service.d.ts +3 -3
- package/dist/modules/access/groups-admin.service.js +2 -2
- package/dist/modules/access/reference-scan.d.ts +1 -1
- package/dist/modules/access/reference-scan.d.ts.map +1 -1
- package/dist/modules/access/reference-scan.js +5 -4
- package/dist/modules/access/reference-scan.js.map +1 -1
- package/dist/modules/access/roles-admin.service.d.ts +72 -13
- package/dist/modules/access/roles-admin.service.d.ts.map +1 -1
- package/dist/modules/access/roles-admin.service.js +71 -13
- package/dist/modules/access/roles-admin.service.js.map +1 -1
- package/dist/modules/access/synced-groups-committer.d.ts.map +1 -1
- package/dist/modules/access/synced-groups-committer.js +8 -6
- package/dist/modules/access/synced-groups-committer.js.map +1 -1
- package/dist/modules/access/synced-groups-writer.d.ts.map +1 -1
- package/dist/modules/access/synced-groups-writer.js +3 -8
- package/dist/modules/access/synced-groups-writer.js.map +1 -1
- package/dist/modules/access/user-access-removal.service.d.ts +209 -0
- package/dist/modules/access/user-access-removal.service.d.ts.map +1 -0
- package/dist/modules/access/user-access-removal.service.js +662 -0
- package/dist/modules/access/user-access-removal.service.js.map +1 -0
- package/dist/modules/access-model/access-errors.d.ts +32 -1
- package/dist/modules/access-model/access-errors.d.ts.map +1 -1
- package/dist/modules/access-model/access-errors.js +38 -11
- package/dist/modules/access-model/access-errors.js.map +1 -1
- package/dist/modules/access-model/access-grammar.d.ts +49 -24
- package/dist/modules/access-model/access-grammar.d.ts.map +1 -1
- package/dist/modules/access-model/access-grammar.js +68 -48
- package/dist/modules/access-model/access-grammar.js.map +1 -1
- package/dist/modules/access-model/access-splice.d.ts.map +1 -1
- package/dist/modules/access-model/access-splice.js +18 -18
- package/dist/modules/access-model/access-splice.js.map +1 -1
- package/dist/modules/access-model/access-template.d.ts +22 -0
- package/dist/modules/access-model/access-template.d.ts.map +1 -0
- package/dist/modules/access-model/access-template.js +42 -0
- package/dist/modules/access-model/access-template.js.map +1 -0
- package/dist/modules/access-model/change-gate.d.ts +65 -0
- package/dist/modules/access-model/change-gate.d.ts.map +1 -0
- package/dist/modules/access-model/change-gate.js +25 -0
- package/dist/modules/access-model/change-gate.js.map +1 -0
- package/dist/modules/access-model/creator.d.ts +13 -16
- package/dist/modules/access-model/creator.d.ts.map +1 -1
- package/dist/modules/access-model/creator.js.map +1 -1
- package/dist/modules/access-model/frontmatter-lines.d.ts +27 -0
- package/dist/modules/access-model/frontmatter-lines.d.ts.map +1 -0
- package/dist/modules/access-model/frontmatter-lines.js +74 -0
- package/dist/modules/access-model/frontmatter-lines.js.map +1 -0
- package/dist/modules/access-model/plugin-principals.d.ts +5 -3
- package/dist/modules/access-model/plugin-principals.d.ts.map +1 -1
- package/dist/modules/access-model/plugin-principals.js +11 -17
- package/dist/modules/access-model/plugin-principals.js.map +1 -1
- package/dist/modules/access-model/roles-yaml-guard.d.ts +73 -2
- package/dist/modules/access-model/roles-yaml-guard.d.ts.map +1 -1
- package/dist/modules/access-model/roles-yaml-guard.js +153 -3
- package/dist/modules/access-model/roles-yaml-guard.js.map +1 -1
- package/dist/modules/admin/admin-access.service.d.ts.map +1 -1
- package/dist/modules/admin/admin-access.service.js +5 -2
- package/dist/modules/admin/admin-access.service.js.map +1 -1
- package/dist/modules/agent-instructions/agent-instructions.routes.d.ts +21 -0
- package/dist/modules/agent-instructions/agent-instructions.routes.d.ts.map +1 -0
- package/dist/modules/agent-instructions/agent-instructions.routes.js +38 -0
- package/dist/modules/agent-instructions/agent-instructions.routes.js.map +1 -0
- package/dist/modules/agent-instructions/compose.d.ts +71 -0
- package/dist/modules/agent-instructions/compose.d.ts.map +1 -0
- package/dist/modules/agent-instructions/compose.js +234 -0
- package/dist/modules/agent-instructions/compose.js.map +1 -0
- package/dist/modules/agent-instructions/index.d.ts +4 -0
- package/dist/modules/agent-instructions/index.d.ts.map +1 -0
- package/dist/modules/agent-instructions/index.js +4 -0
- package/dist/modules/agent-instructions/index.js.map +1 -0
- package/dist/modules/agent-instructions/read-preamble.d.ts +37 -0
- package/dist/modules/agent-instructions/read-preamble.d.ts.map +1 -0
- package/dist/modules/agent-instructions/read-preamble.js +81 -0
- package/dist/modules/agent-instructions/read-preamble.js.map +1 -0
- package/dist/modules/audit/agent-audit.service.d.ts +54 -0
- package/dist/modules/audit/agent-audit.service.d.ts.map +1 -0
- package/dist/modules/audit/agent-audit.service.js +290 -0
- package/dist/modules/audit/agent-audit.service.js.map +1 -0
- package/dist/modules/audit/agent-rest-audit.middleware.d.ts +40 -0
- package/dist/modules/audit/agent-rest-audit.middleware.d.ts.map +1 -0
- package/dist/modules/audit/agent-rest-audit.middleware.js +75 -0
- package/dist/modules/audit/agent-rest-audit.middleware.js.map +1 -0
- package/dist/modules/audit/audit.contract.d.ts +145 -0
- package/dist/modules/audit/audit.contract.d.ts.map +1 -0
- package/dist/modules/audit/audit.contract.js +35 -0
- package/dist/modules/audit/audit.contract.js.map +1 -0
- package/dist/modules/audit/audit.routes.d.ts +21 -0
- package/dist/modules/audit/audit.routes.d.ts.map +1 -0
- package/dist/modules/audit/audit.routes.js +157 -0
- package/dist/modules/audit/audit.routes.js.map +1 -0
- package/dist/modules/audit/event-classifier.d.ts +52 -0
- package/dist/modules/audit/event-classifier.d.ts.map +1 -0
- package/dist/modules/audit/event-classifier.js +123 -0
- package/dist/modules/audit/event-classifier.js.map +1 -0
- package/dist/modules/audit/index.d.ts +7 -0
- package/dist/modules/audit/index.d.ts.map +1 -0
- package/dist/modules/audit/index.js +7 -0
- package/dist/modules/audit/index.js.map +1 -0
- package/dist/modules/audit/request-audit.d.ts +57 -0
- package/dist/modules/audit/request-audit.d.ts.map +1 -0
- package/dist/modules/audit/request-audit.js +117 -0
- package/dist/modules/audit/request-audit.js.map +1 -0
- package/dist/modules/auth/account-erasure.service.d.ts +30 -4
- package/dist/modules/auth/account-erasure.service.d.ts.map +1 -1
- package/dist/modules/auth/account-erasure.service.js +96 -10
- package/dist/modules/auth/account-erasure.service.js.map +1 -1
- package/dist/modules/auth/account.routes.d.ts +6 -3
- package/dist/modules/auth/account.routes.d.ts.map +1 -1
- package/dist/modules/auth/account.routes.js +109 -10
- package/dist/modules/auth/account.routes.js.map +1 -1
- package/dist/modules/auth/auth.routes.d.ts +10 -3
- package/dist/modules/auth/auth.routes.d.ts.map +1 -1
- package/dist/modules/auth/auth.routes.js +9 -4
- package/dist/modules/auth/auth.routes.js.map +1 -1
- package/dist/modules/auth/auth.service.d.ts +89 -5
- package/dist/modules/auth/auth.service.d.ts.map +1 -1
- package/dist/modules/auth/auth.service.js +160 -25
- package/dist/modules/auth/auth.service.js.map +1 -1
- package/dist/modules/auth/oidc-auth-provider.d.ts +46 -3
- package/dist/modules/auth/oidc-auth-provider.d.ts.map +1 -1
- package/dist/modules/auth/oidc-auth-provider.js +99 -21
- package/dist/modules/auth/oidc-auth-provider.js.map +1 -1
- package/dist/modules/code-mode/code-mode.tool.d.ts.map +1 -1
- package/dist/modules/code-mode/code-mode.tool.js +14 -2
- package/dist/modules/code-mode/code-mode.tool.js.map +1 -1
- package/dist/modules/connection-probe/connection-probe.service.d.ts.map +1 -1
- package/dist/modules/connection-probe/connection-probe.service.js +56 -7
- package/dist/modules/connection-probe/connection-probe.service.js.map +1 -1
- package/dist/modules/database/advisory-lock.d.ts +103 -0
- package/dist/modules/database/advisory-lock.d.ts.map +1 -0
- package/dist/modules/database/advisory-lock.js +320 -0
- package/dist/modules/database/advisory-lock.js.map +1 -0
- package/dist/modules/database/connection.d.ts.map +1 -1
- package/dist/modules/database/connection.js +9 -1
- package/dist/modules/database/connection.js.map +1 -1
- package/dist/modules/database/core-schema.d.ts +859 -99
- package/dist/modules/database/core-schema.d.ts.map +1 -1
- package/dist/modules/database/core-schema.js +218 -0
- package/dist/modules/database/core-schema.js.map +1 -1
- package/dist/modules/database/migrate.d.ts.map +1 -1
- package/dist/modules/database/migrate.js +26 -6
- package/dist/modules/database/migrate.js.map +1 -1
- package/dist/modules/declared-variables/declared-variables.routes.d.ts.map +1 -1
- package/dist/modules/declared-variables/declared-variables.routes.js +4 -2
- package/dist/modules/declared-variables/declared-variables.routes.js.map +1 -1
- package/dist/modules/diff/diff.routes.d.ts.map +1 -1
- package/dist/modules/diff/diff.routes.js +2 -4
- package/dist/modules/diff/diff.routes.js.map +1 -1
- package/dist/modules/diff/diff.service.d.ts +4 -1
- package/dist/modules/diff/diff.service.d.ts.map +1 -1
- package/dist/modules/diff/diff.service.js +84 -81
- package/dist/modules/diff/diff.service.js.map +1 -1
- package/dist/modules/{workspace → kb-fs}/bevel-ignore.d.ts +14 -9
- package/dist/modules/kb-fs/bevel-ignore.d.ts.map +1 -0
- package/dist/modules/{workspace → kb-fs}/bevel-ignore.js +24 -14
- package/dist/modules/kb-fs/bevel-ignore.js.map +1 -0
- package/dist/modules/kb-fs/file-change-notifier.d.ts.map +1 -1
- package/dist/modules/kb-fs/file-change-notifier.js +3 -1
- package/dist/modules/kb-fs/file-change-notifier.js.map +1 -1
- package/dist/modules/kb-fs/git-guarded-filesystem.d.ts +45 -0
- package/dist/modules/kb-fs/git-guarded-filesystem.d.ts.map +1 -0
- package/dist/modules/kb-fs/git-guarded-filesystem.js +117 -0
- package/dist/modules/kb-fs/git-guarded-filesystem.js.map +1 -0
- package/dist/modules/kb-fs/locking-filesystem.d.ts +113 -18
- package/dist/modules/kb-fs/locking-filesystem.d.ts.map +1 -1
- package/dist/modules/kb-fs/locking-filesystem.js +353 -76
- package/dist/modules/kb-fs/locking-filesystem.js.map +1 -1
- package/dist/modules/kb-fs/node-fs.d.ts +23 -0
- package/dist/modules/kb-fs/node-fs.d.ts.map +1 -0
- package/dist/modules/kb-fs/node-fs.js +158 -0
- package/dist/modules/kb-fs/node-fs.js.map +1 -0
- package/dist/modules/kb-fs/read-only-filesystem.d.ts +10 -9
- package/dist/modules/kb-fs/read-only-filesystem.d.ts.map +1 -1
- package/dist/modules/kb-fs/read-only-filesystem.js +18 -9
- package/dist/modules/kb-fs/read-only-filesystem.js.map +1 -1
- package/dist/modules/kb-fs/repo-path.d.ts +100 -3
- package/dist/modules/kb-fs/repo-path.d.ts.map +1 -1
- package/dist/modules/kb-fs/repo-path.js +195 -3
- package/dist/modules/kb-fs/repo-path.js.map +1 -1
- package/dist/modules/kb-sync/kb-sync.routes.d.ts.map +1 -1
- package/dist/modules/kb-sync/kb-sync.routes.js +4 -2
- package/dist/modules/kb-sync/kb-sync.routes.js.map +1 -1
- package/dist/modules/kb-sync/kb-sync.service.d.ts.map +1 -1
- package/dist/modules/kb-sync/kb-sync.service.js +7 -5
- package/dist/modules/kb-sync/kb-sync.service.js.map +1 -1
- package/dist/modules/marketplace/git-http.routes.d.ts.map +1 -1
- package/dist/modules/marketplace/git-http.routes.js +6 -4
- package/dist/modules/marketplace/git-http.routes.js.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-admin.routes.d.ts +12 -2
- package/dist/modules/marketplace/github-facade/github-facade-admin.routes.d.ts.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-admin.routes.js +32 -3
- package/dist/modules/marketplace/github-facade/github-facade-admin.routes.js.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-credentials.service.d.ts +27 -0
- package/dist/modules/marketplace/github-facade/github-facade-credentials.service.d.ts.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-credentials.service.js +45 -0
- package/dist/modules/marketplace/github-facade/github-facade-credentials.service.js.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade.routes.d.ts.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade.routes.js +30 -6
- package/dist/modules/marketplace/github-facade/github-facade.routes.js.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade.service.d.ts +21 -9
- package/dist/modules/marketplace/github-facade/github-facade.service.d.ts.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade.service.js +60 -19
- package/dist/modules/marketplace/github-facade/github-facade.service.js.map +1 -1
- package/dist/modules/marketplace/github-facade/index.d.ts +1 -1
- package/dist/modules/marketplace/github-facade/index.d.ts.map +1 -1
- package/dist/modules/marketplace/github-facade/index.js +1 -1
- package/dist/modules/marketplace/github-facade/index.js.map +1 -1
- package/dist/modules/marketplace/marketplace-repo.service.d.ts +14 -1
- package/dist/modules/marketplace/marketplace-repo.service.d.ts.map +1 -1
- package/dist/modules/marketplace/marketplace-repo.service.js +26 -8
- package/dist/modules/marketplace/marketplace-repo.service.js.map +1 -1
- package/dist/modules/mcp/downstream-pool.d.ts +107 -0
- package/dist/modules/mcp/downstream-pool.d.ts.map +1 -0
- package/dist/modules/mcp/downstream-pool.js +221 -0
- package/dist/modules/mcp/downstream-pool.js.map +1 -0
- package/dist/modules/mcp/downstream-token-refresh.d.ts +77 -0
- package/dist/modules/mcp/downstream-token-refresh.d.ts.map +1 -0
- package/dist/modules/mcp/downstream-token-refresh.js +166 -0
- package/dist/modules/mcp/downstream-token-refresh.js.map +1 -0
- package/dist/modules/mcp/first-call-probe.cli-args.d.ts +78 -0
- package/dist/modules/mcp/first-call-probe.cli-args.d.ts.map +1 -0
- package/dist/modules/mcp/first-call-probe.cli-args.js +151 -0
- package/dist/modules/mcp/first-call-probe.cli-args.js.map +1 -0
- package/dist/modules/mcp/first-call-probe.cli.d.ts +2 -0
- package/dist/modules/mcp/first-call-probe.cli.d.ts.map +1 -0
- package/dist/modules/mcp/first-call-probe.cli.js +62 -0
- package/dist/modules/mcp/first-call-probe.cli.js.map +1 -0
- package/dist/modules/mcp/first-call-probe.d.ts +165 -0
- package/dist/modules/mcp/first-call-probe.d.ts.map +1 -0
- package/dist/modules/mcp/first-call-probe.js +298 -0
- package/dist/modules/mcp/first-call-probe.js.map +1 -0
- package/dist/modules/mcp/manual-failure-memo.d.ts +42 -17
- package/dist/modules/mcp/manual-failure-memo.d.ts.map +1 -1
- package/dist/modules/mcp/manual-failure-memo.js +79 -23
- package/dist/modules/mcp/manual-failure-memo.js.map +1 -1
- package/dist/modules/mcp/mcp-auth.middleware.d.ts +10 -5
- package/dist/modules/mcp/mcp-auth.middleware.d.ts.map +1 -1
- package/dist/modules/mcp/mcp-auth.middleware.js +56 -16
- package/dist/modules/mcp/mcp-auth.middleware.js.map +1 -1
- package/dist/modules/mcp/mcp.routes.d.ts +4 -4
- package/dist/modules/mcp/mcp.routes.d.ts.map +1 -1
- package/dist/modules/mcp/mcp.routes.js +91 -180
- package/dist/modules/mcp/mcp.routes.js.map +1 -1
- package/dist/modules/mcp/mcp.service.d.ts +226 -61
- package/dist/modules/mcp/mcp.service.d.ts.map +1 -1
- package/dist/modules/mcp/mcp.service.js +758 -161
- package/dist/modules/mcp/mcp.service.js.map +1 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts +59 -0
- package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts.map +1 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.js +184 -10
- package/dist/modules/mcp/oauth/bevel-oauth-provider.js.map +1 -1
- package/dist/modules/mcp/oauth/oauth-consent.routes.d.ts.map +1 -1
- package/dist/modules/mcp/oauth/oauth-consent.routes.js +3 -1
- package/dist/modules/mcp/oauth/oauth-consent.routes.js.map +1 -1
- package/dist/modules/mcp/surface-log-throttle.d.ts +59 -0
- package/dist/modules/mcp/surface-log-throttle.d.ts.map +1 -0
- package/dist/modules/mcp/surface-log-throttle.js +94 -0
- package/dist/modules/mcp/surface-log-throttle.js.map +1 -0
- package/dist/modules/plugins/compile/compile-marketplace.d.ts +13 -6
- package/dist/modules/plugins/compile/compile-marketplace.d.ts.map +1 -1
- package/dist/modules/plugins/compile/compile-marketplace.js +119 -36
- package/dist/modules/plugins/compile/compile-marketplace.js.map +1 -1
- package/dist/modules/plugins/compile/marketplace-compiler.service.d.ts +8 -1
- package/dist/modules/plugins/compile/marketplace-compiler.service.d.ts.map +1 -1
- package/dist/modules/plugins/compile/marketplace-compiler.service.js +9 -6
- package/dist/modules/plugins/compile/marketplace-compiler.service.js.map +1 -1
- package/dist/modules/plugins/discovery/bundle-dialect/bundle.source.d.ts.map +1 -1
- package/dist/modules/plugins/discovery/bundle-dialect/bundle.source.js +32 -9
- package/dist/modules/plugins/discovery/bundle-dialect/bundle.source.js.map +1 -1
- package/dist/modules/plugins/discovery/bundle-dialect/registry.d.ts +26 -6
- package/dist/modules/plugins/discovery/bundle-dialect/registry.d.ts.map +1 -1
- package/dist/modules/plugins/discovery/bundle-dialect/registry.js +71 -14
- package/dist/modules/plugins/discovery/bundle-dialect/registry.js.map +1 -1
- package/dist/modules/plugins/discovery/kb-plugin-source.d.ts +4 -2
- package/dist/modules/plugins/discovery/kb-plugin-source.d.ts.map +1 -1
- package/dist/modules/plugins/discovery/kb-plugin-source.js +9 -6
- package/dist/modules/plugins/discovery/kb-plugin-source.js.map +1 -1
- package/dist/modules/plugins/discovery/native.source.d.ts +2 -1
- package/dist/modules/plugins/discovery/native.source.d.ts.map +1 -1
- package/dist/modules/plugins/discovery/native.source.js +22 -4
- package/dist/modules/plugins/discovery/native.source.js.map +1 -1
- package/dist/modules/plugins/discovery/plugin-source.d.ts +17 -3
- package/dist/modules/plugins/discovery/plugin-source.d.ts.map +1 -1
- package/dist/modules/plugins/index.d.ts +6 -3
- package/dist/modules/plugins/index.d.ts.map +1 -1
- package/dist/modules/plugins/index.js +6 -3
- package/dist/modules/plugins/index.js.map +1 -1
- package/dist/modules/plugins/join-request-jobs.service.d.ts +250 -0
- package/dist/modules/plugins/join-request-jobs.service.d.ts.map +1 -0
- package/dist/modules/plugins/join-request-jobs.service.js +602 -0
- package/dist/modules/plugins/join-request-jobs.service.js.map +1 -0
- package/dist/modules/plugins/join-request-records.store.d.ts +161 -0
- package/dist/modules/plugins/join-request-records.store.d.ts.map +1 -0
- package/dist/modules/plugins/join-request-records.store.js +179 -0
- package/dist/modules/plugins/join-request-records.store.js.map +1 -0
- package/dist/modules/plugins/join-requests.service.d.ts.map +1 -1
- package/dist/modules/plugins/join-requests.service.js +4 -2
- package/dist/modules/plugins/join-requests.service.js.map +1 -1
- package/dist/modules/plugins/plugin-links.d.ts +4 -1
- package/dist/modules/plugins/plugin-links.d.ts.map +1 -1
- package/dist/modules/plugins/plugin-links.js +6 -3
- package/dist/modules/plugins/plugin-links.js.map +1 -1
- package/dist/modules/plugins/plugin-links.service.d.ts +2 -5
- package/dist/modules/plugins/plugin-links.service.d.ts.map +1 -1
- package/dist/modules/plugins/plugin-links.service.js +4 -13
- package/dist/modules/plugins/plugin-links.service.js.map +1 -1
- package/dist/modules/plugins/plugin-provision.service.d.ts +91 -19
- package/dist/modules/plugins/plugin-provision.service.d.ts.map +1 -1
- package/dist/modules/plugins/plugin-provision.service.js +183 -38
- package/dist/modules/plugins/plugin-provision.service.js.map +1 -1
- package/dist/modules/plugins/plugin-rename.service.d.ts +3 -1
- package/dist/modules/plugins/plugin-rename.service.d.ts.map +1 -1
- package/dist/modules/plugins/plugin-rename.service.js +20 -11
- package/dist/modules/plugins/plugin-rename.service.js.map +1 -1
- package/dist/modules/plugins/plugins.contract.d.ts +52 -4
- package/dist/modules/plugins/plugins.contract.d.ts.map +1 -1
- package/dist/modules/plugins/plugins.routes.d.ts +38 -5
- package/dist/modules/plugins/plugins.routes.d.ts.map +1 -1
- package/dist/modules/plugins/plugins.routes.js +190 -116
- package/dist/modules/plugins/plugins.routes.js.map +1 -1
- package/dist/modules/plugins/plugins.service.d.ts +38 -6
- package/dist/modules/plugins/plugins.service.d.ts.map +1 -1
- package/dist/modules/plugins/plugins.service.js +86 -17
- package/dist/modules/plugins/plugins.service.js.map +1 -1
- package/dist/modules/plugins/plugins.tools.d.ts +25 -0
- package/dist/modules/plugins/plugins.tools.d.ts.map +1 -0
- package/dist/modules/plugins/plugins.tools.js +82 -0
- package/dist/modules/plugins/plugins.tools.js.map +1 -0
- package/dist/modules/plugins/teams.routes.d.ts +42 -0
- package/dist/modules/plugins/teams.routes.d.ts.map +1 -0
- package/dist/modules/plugins/teams.routes.js +79 -0
- package/dist/modules/plugins/teams.routes.js.map +1 -0
- package/dist/modules/secrets-vault/db-secrets-vault.service.d.ts +40 -1
- package/dist/modules/secrets-vault/db-secrets-vault.service.d.ts.map +1 -1
- package/dist/modules/secrets-vault/db-secrets-vault.service.js +202 -37
- package/dist/modules/secrets-vault/db-secrets-vault.service.js.map +1 -1
- package/dist/modules/secrets-vault/index.d.ts +1 -1
- package/dist/modules/secrets-vault/index.d.ts.map +1 -1
- package/dist/modules/secrets-vault/index.js.map +1 -1
- package/dist/modules/secrets-vault/mcp-oauth-discovery.service.d.ts.map +1 -1
- package/dist/modules/secrets-vault/mcp-oauth-discovery.service.js +5 -3
- package/dist/modules/secrets-vault/mcp-oauth-discovery.service.js.map +1 -1
- package/dist/modules/secrets-vault/secrets-variable-loader.d.ts.map +1 -1
- package/dist/modules/secrets-vault/secrets-variable-loader.js +3 -1
- package/dist/modules/secrets-vault/secrets-variable-loader.js.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.contract.d.ts +78 -0
- package/dist/modules/secrets-vault/secrets-vault.contract.d.ts.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.contract.js +40 -0
- package/dist/modules/secrets-vault/secrets-vault.contract.js.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.routes.d.ts.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.routes.js +106 -52
- package/dist/modules/secrets-vault/secrets-vault.routes.js.map +1 -1
- package/dist/modules/settings/connection-check.d.ts +118 -0
- package/dist/modules/settings/connection-check.d.ts.map +1 -0
- package/dist/modules/settings/connection-check.js +287 -0
- package/dist/modules/settings/connection-check.js.map +1 -0
- package/dist/modules/settings/deployment-settings.service.d.ts +162 -8
- package/dist/modules/settings/deployment-settings.service.d.ts.map +1 -1
- package/dist/modules/settings/deployment-settings.service.js +375 -52
- package/dist/modules/settings/deployment-settings.service.js.map +1 -1
- package/dist/modules/settings/git-root-folders.d.ts +54 -0
- package/dist/modules/settings/git-root-folders.d.ts.map +1 -0
- package/dist/modules/settings/git-root-folders.js +130 -0
- package/dist/modules/settings/git-root-folders.js.map +1 -0
- package/dist/modules/settings/oidc-check.d.ts +85 -0
- package/dist/modules/settings/oidc-check.d.ts.map +1 -0
- package/dist/modules/settings/oidc-check.js +172 -0
- package/dist/modules/settings/oidc-check.js.map +1 -0
- package/dist/modules/settings/setup.routes.d.ts +31 -1
- package/dist/modules/settings/setup.routes.d.ts.map +1 -1
- package/dist/modules/settings/setup.routes.js +400 -108
- package/dist/modules/settings/setup.routes.js.map +1 -1
- package/dist/modules/skills/allowed-tools-check.d.ts +132 -0
- package/dist/modules/skills/allowed-tools-check.d.ts.map +1 -0
- package/dist/modules/skills/allowed-tools-check.js +260 -0
- package/dist/modules/skills/allowed-tools-check.js.map +1 -0
- package/dist/modules/skills/index.d.ts +3 -1
- package/dist/modules/skills/index.d.ts.map +1 -1
- package/dist/modules/skills/index.js +1 -0
- package/dist/modules/skills/index.js.map +1 -1
- package/dist/modules/skills/pending-skills.service.d.ts +6 -11
- package/dist/modules/skills/pending-skills.service.d.ts.map +1 -1
- package/dist/modules/skills/pending-skills.service.js +18 -70
- package/dist/modules/skills/pending-skills.service.js.map +1 -1
- package/dist/modules/skills/skill-access-requests.routes.d.ts.map +1 -1
- package/dist/modules/skills/skill-access-requests.routes.js +9 -6
- package/dist/modules/skills/skill-access-requests.routes.js.map +1 -1
- package/dist/modules/skills/skills.contract.d.ts +44 -10
- package/dist/modules/skills/skills.contract.d.ts.map +1 -1
- package/dist/modules/skills/skills.routes.d.ts +8 -1
- package/dist/modules/skills/skills.routes.d.ts.map +1 -1
- package/dist/modules/skills/skills.routes.js +16 -2
- package/dist/modules/skills/skills.routes.js.map +1 -1
- package/dist/modules/skills/skills.service.d.ts +31 -7
- package/dist/modules/skills/skills.service.d.ts.map +1 -1
- package/dist/modules/skills/skills.service.js +191 -81
- package/dist/modules/skills/skills.service.js.map +1 -1
- package/dist/modules/skills/skills.tools.d.ts +4 -1
- package/dist/modules/skills/skills.tools.d.ts.map +1 -1
- package/dist/modules/skills/skills.tools.js +41 -6
- package/dist/modules/skills/skills.tools.js.map +1 -1
- package/dist/modules/tool-auth/connection-key-rejection.d.ts +18 -0
- package/dist/modules/tool-auth/connection-key-rejection.d.ts.map +1 -0
- package/dist/modules/tool-auth/connection-key-rejection.js +20 -0
- package/dist/modules/tool-auth/connection-key-rejection.js.map +1 -0
- package/dist/modules/tool-auth/connection-keys-admin.routes.d.ts +14 -0
- package/dist/modules/tool-auth/connection-keys-admin.routes.d.ts.map +1 -0
- package/dist/modules/tool-auth/connection-keys-admin.routes.js +67 -0
- package/dist/modules/tool-auth/connection-keys-admin.routes.js.map +1 -0
- package/dist/modules/tool-auth/external-api-key.interface.d.ts +72 -8
- package/dist/modules/tool-auth/external-api-key.interface.d.ts.map +1 -1
- package/dist/modules/tool-auth/external-api-key.interface.js.map +1 -1
- package/dist/modules/tool-auth/external-api-key.service.d.ts +17 -6
- package/dist/modules/tool-auth/external-api-key.service.d.ts.map +1 -1
- package/dist/modules/tool-auth/external-api-key.service.js +83 -27
- package/dist/modules/tool-auth/external-api-key.service.js.map +1 -1
- package/dist/modules/tool-auth/internal-token.service.d.ts +15 -2
- package/dist/modules/tool-auth/internal-token.service.d.ts.map +1 -1
- package/dist/modules/tool-auth/internal-token.service.js +6 -2
- package/dist/modules/tool-auth/internal-token.service.js.map +1 -1
- package/dist/modules/tool-auth/key-or-session.middleware.d.ts +23 -0
- package/dist/modules/tool-auth/key-or-session.middleware.d.ts.map +1 -0
- package/dist/modules/tool-auth/key-or-session.middleware.js +39 -0
- package/dist/modules/tool-auth/key-or-session.middleware.js.map +1 -0
- package/dist/modules/tool-auth/tool-auth.middleware.d.ts +15 -1
- package/dist/modules/tool-auth/tool-auth.middleware.d.ts.map +1 -1
- package/dist/modules/tool-auth/tool-auth.middleware.js +17 -6
- package/dist/modules/tool-auth/tool-auth.middleware.js.map +1 -1
- package/dist/modules/tool-helpers/tool-context.d.ts +14 -0
- package/dist/modules/tool-helpers/tool-context.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-context.js +28 -6
- package/dist/modules/tool-helpers/tool-context.js.map +1 -1
- package/dist/modules/tool-helpers/tool-handler.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-handler.js +22 -5
- package/dist/modules/tool-helpers/tool-handler.js.map +1 -1
- package/dist/modules/tool-helpers/tool.contract.d.ts +6 -1
- package/dist/modules/tool-helpers/tool.contract.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool.contract.js +7 -1
- package/dist/modules/tool-helpers/tool.contract.js.map +1 -1
- package/dist/modules/tool-manuals/index.d.ts +2 -1
- package/dist/modules/tool-manuals/index.d.ts.map +1 -1
- package/dist/modules/tool-manuals/index.js +1 -0
- package/dist/modules/tool-manuals/index.js.map +1 -1
- package/dist/modules/tool-manuals/mcp-json-discovery.d.ts.map +1 -1
- package/dist/modules/tool-manuals/mcp-json-discovery.js +8 -6
- package/dist/modules/tool-manuals/mcp-json-discovery.js.map +1 -1
- package/dist/modules/tool-manuals/mcp-server-edit.service.d.ts +10 -2
- package/dist/modules/tool-manuals/mcp-server-edit.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/mcp-server-edit.service.js +12 -15
- package/dist/modules/tool-manuals/mcp-server-edit.service.js.map +1 -1
- package/dist/modules/tool-manuals/pending-tools.service.d.ts +50 -0
- package/dist/modules/tool-manuals/pending-tools.service.d.ts.map +1 -0
- package/dist/modules/tool-manuals/pending-tools.service.js +149 -0
- package/dist/modules/tool-manuals/pending-tools.service.js.map +1 -0
- package/dist/modules/tool-manuals/tool-delete.service.d.ts +135 -0
- package/dist/modules/tool-manuals/tool-delete.service.d.ts.map +1 -0
- package/dist/modules/tool-manuals/tool-delete.service.js +303 -0
- package/dist/modules/tool-manuals/tool-delete.service.js.map +1 -0
- package/dist/modules/tool-manuals/tool-manuals.contract.d.ts +161 -0
- package/dist/modules/tool-manuals/tool-manuals.contract.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.contract.js +9 -0
- package/dist/modules/tool-manuals/tool-manuals.contract.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.routes.d.ts +19 -2
- package/dist/modules/tool-manuals/tool-manuals.routes.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.routes.js +127 -57
- package/dist/modules/tool-manuals/tool-manuals.routes.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts +119 -5
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.js +404 -74
- package/dist/modules/tool-manuals/tool-manuals.service.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.tools.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.tools.js +78 -6
- package/dist/modules/tool-manuals/tool-manuals.tools.js.map +1 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.d.ts.map +1 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.js +88 -54
- package/dist/modules/workflow/agent-tools/workflow.tools.js.map +1 -1
- package/dist/modules/workflow/event-bus.d.ts +10 -4
- package/dist/modules/workflow/event-bus.d.ts.map +1 -1
- package/dist/modules/workflow/event-bus.js +14 -11
- package/dist/modules/workflow/event-bus.js.map +1 -1
- package/dist/modules/workflow/events.routes.d.ts +17 -2
- package/dist/modules/workflow/events.routes.d.ts.map +1 -1
- package/dist/modules/workflow/events.routes.js +31 -12
- package/dist/modules/workflow/events.routes.js.map +1 -1
- package/dist/modules/workflow/file-lock.service.d.ts +22 -4
- package/dist/modules/workflow/file-lock.service.d.ts.map +1 -1
- package/dist/modules/workflow/file-lock.service.js +27 -4
- package/dist/modules/workflow/file-lock.service.js.map +1 -1
- package/dist/modules/workflow/git/change-request-link.d.ts +20 -0
- package/dist/modules/workflow/git/change-request-link.d.ts.map +1 -0
- package/dist/modules/workflow/git/change-request-link.js +34 -0
- package/dist/modules/workflow/git/change-request-link.js.map +1 -0
- package/dist/modules/workflow/git/git-version.d.ts.map +1 -1
- package/dist/modules/workflow/git/git-version.js +3 -1
- package/dist/modules/workflow/git/git-version.js.map +1 -1
- package/dist/modules/workflow/git/git.service.d.ts +263 -4
- package/dist/modules/workflow/git/git.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/git.service.js +528 -118
- package/dist/modules/workflow/git/git.service.js.map +1 -1
- package/dist/modules/workflow/git/node-git-runner.d.ts +36 -0
- package/dist/modules/workflow/git/node-git-runner.d.ts.map +1 -0
- package/dist/modules/workflow/git/node-git-runner.js +273 -0
- package/dist/modules/workflow/git/node-git-runner.js.map +1 -0
- package/dist/modules/workflow/git/pull-request.service.d.ts +51 -2
- package/dist/modules/workflow/git/pull-request.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/pull-request.service.js +157 -25
- package/dist/modules/workflow/git/pull-request.service.js.map +1 -1
- package/dist/modules/workflow/pending-commits.service.d.ts +11 -0
- package/dist/modules/workflow/pending-commits.service.d.ts.map +1 -1
- package/dist/modules/workflow/pending-commits.service.js +24 -4
- package/dist/modules/workflow/pending-commits.service.js.map +1 -1
- package/dist/modules/workflow/pending-commits.worker.d.ts +15 -8
- package/dist/modules/workflow/pending-commits.worker.d.ts.map +1 -1
- package/dist/modules/workflow/pending-commits.worker.js +107 -58
- package/dist/modules/workflow/pending-commits.worker.js.map +1 -1
- package/dist/modules/workflow/recovery-bot.d.ts.map +1 -1
- package/dist/modules/workflow/recovery-bot.js +3 -1
- package/dist/modules/workflow/recovery-bot.js.map +1 -1
- package/dist/modules/workflow/review-workflow/approval-lock.d.ts +60 -0
- package/dist/modules/workflow/review-workflow/approval-lock.d.ts.map +1 -0
- package/dist/modules/workflow/review-workflow/approval-lock.js +116 -0
- package/dist/modules/workflow/review-workflow/approval-lock.js.map +1 -0
- package/dist/modules/workflow/review-workflow/review-workflow.interface.d.ts +54 -7
- package/dist/modules/workflow/review-workflow/review-workflow.interface.d.ts.map +1 -1
- package/dist/modules/workflow/review-workflow/review-workflow.service.d.ts +64 -0
- package/dist/modules/workflow/review-workflow/review-workflow.service.d.ts.map +1 -1
- package/dist/modules/workflow/review-workflow/review-workflow.service.js +269 -90
- package/dist/modules/workflow/review-workflow/review-workflow.service.js.map +1 -1
- package/dist/modules/workflow/sanitize-error.d.ts +5 -2
- package/dist/modules/workflow/sanitize-error.d.ts.map +1 -1
- package/dist/modules/workflow/sanitize-error.js +8 -4
- package/dist/modules/workflow/sanitize-error.js.map +1 -1
- package/dist/modules/workflow/workflow.routes.d.ts +2 -0
- package/dist/modules/workflow/workflow.routes.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.routes.js +259 -29
- package/dist/modules/workflow/workflow.routes.js.map +1 -1
- package/dist/modules/workflow/workflow.service.d.ts +166 -14
- package/dist/modules/workflow/workflow.service.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.service.js +906 -106
- package/dist/modules/workflow/workflow.service.js.map +1 -1
- package/dist/modules/workspace/empty-dirs.d.ts +15 -0
- package/dist/modules/workspace/empty-dirs.d.ts.map +1 -0
- package/dist/modules/workspace/empty-dirs.js +90 -0
- package/dist/modules/workspace/empty-dirs.js.map +1 -0
- package/dist/modules/workspace/file-readers/content-mode.d.ts +50 -0
- package/dist/modules/workspace/file-readers/content-mode.d.ts.map +1 -0
- package/dist/modules/workspace/file-readers/content-mode.js +55 -0
- package/dist/modules/workspace/file-readers/content-mode.js.map +1 -0
- package/dist/modules/workspace/file-readers/doc-extract.service.d.ts +4 -1
- package/dist/modules/workspace/file-readers/doc-extract.service.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/doc-extract.service.js +4 -1
- package/dist/modules/workspace/file-readers/doc-extract.service.js.map +1 -1
- package/dist/modules/workspace/file-readers/doc-extract.types.d.ts +5 -2
- package/dist/modules/workspace/file-readers/doc-extract.types.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/doc-extract.types.js +7 -4
- package/dist/modules/workspace/file-readers/doc-extract.types.js.map +1 -1
- package/dist/modules/workspace/file-readers/document-reader.d.ts +2 -0
- package/dist/modules/workspace/file-readers/document-reader.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/document-reader.js +5 -0
- package/dist/modules/workspace/file-readers/document-reader.js.map +1 -1
- package/dist/modules/workspace/file-readers/extract-docx.d.ts +6 -0
- package/dist/modules/workspace/file-readers/extract-docx.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/extract-docx.js +6 -0
- package/dist/modules/workspace/file-readers/extract-docx.js.map +1 -1
- package/dist/modules/workspace/file-readers/file-reader.d.ts +24 -5
- package/dist/modules/workspace/file-readers/file-reader.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/file-reader.js +11 -6
- package/dist/modules/workspace/file-readers/file-reader.js.map +1 -1
- package/dist/modules/workspace/file-readers/file-reader.registry.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/file-reader.registry.js +6 -1
- package/dist/modules/workspace/file-readers/file-reader.registry.js.map +1 -1
- package/dist/modules/workspace/file-readers/image-reader.d.ts +7 -5
- package/dist/modules/workspace/file-readers/image-reader.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/image-reader.js +9 -5
- package/dist/modules/workspace/file-readers/image-reader.js.map +1 -1
- package/dist/modules/workspace/file-readers/ooxml-text.d.ts +3 -0
- package/dist/modules/workspace/file-readers/ooxml-text.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/ooxml-text.js +39 -2
- package/dist/modules/workspace/file-readers/ooxml-text.js.map +1 -1
- package/dist/modules/workspace/file-readers/text-reader.d.ts +29 -1
- package/dist/modules/workspace/file-readers/text-reader.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/text-reader.js +57 -3
- package/dist/modules/workspace/file-readers/text-reader.js.map +1 -1
- package/dist/modules/workspace/git-internals.middleware.d.ts +28 -0
- package/dist/modules/workspace/git-internals.middleware.d.ts.map +1 -0
- package/dist/modules/workspace/git-internals.middleware.js +93 -0
- package/dist/modules/workspace/git-internals.middleware.js.map +1 -0
- package/dist/modules/workspace/not-found.d.ts +80 -0
- package/dist/modules/workspace/not-found.d.ts.map +1 -0
- package/dist/modules/workspace/not-found.js +112 -0
- package/dist/modules/workspace/not-found.js.map +1 -0
- package/dist/modules/workspace/session-ontology.gate.d.ts +1 -1
- package/dist/modules/workspace/session-ontology.gate.d.ts.map +1 -1
- package/dist/modules/workspace/session-ontology.gate.js +1 -1
- package/dist/modules/workspace/session-ontology.gate.js.map +1 -1
- package/dist/modules/workspace/startup/beside-checkout.d.ts +42 -0
- package/dist/modules/workspace/startup/beside-checkout.d.ts.map +1 -0
- package/dist/modules/workspace/startup/beside-checkout.js +110 -0
- package/dist/modules/workspace/startup/beside-checkout.js.map +1 -0
- package/dist/modules/workspace/startup/kb-git.d.ts +7 -12
- package/dist/modules/workspace/startup/kb-git.d.ts.map +1 -1
- package/dist/modules/workspace/startup/kb-git.js +34 -35
- package/dist/modules/workspace/startup/kb-git.js.map +1 -1
- package/dist/modules/workspace/startup/kb-startup-runner.d.ts +95 -0
- package/dist/modules/workspace/startup/kb-startup-runner.d.ts.map +1 -1
- package/dist/modules/workspace/startup/kb-startup-runner.js +257 -55
- package/dist/modules/workspace/startup/kb-startup-runner.js.map +1 -1
- package/dist/modules/workspace/startup/steps/groups-to-plugins.step.d.ts +45 -0
- package/dist/modules/workspace/startup/steps/groups-to-plugins.step.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/groups-to-plugins.step.js +417 -385
- package/dist/modules/workspace/startup/steps/groups-to-plugins.step.js.map +1 -1
- package/dist/modules/workspace/startup/steps/personal-spaces.step.d.ts +48 -0
- package/dist/modules/workspace/startup/steps/personal-spaces.step.d.ts.map +1 -0
- package/dist/modules/workspace/startup/steps/personal-spaces.step.js +183 -0
- package/dist/modules/workspace/startup/steps/personal-spaces.step.js.map +1 -0
- package/dist/modules/workspace/startup/steps/plugin-display-names.step.d.ts +51 -0
- package/dist/modules/workspace/startup/steps/plugin-display-names.step.d.ts.map +1 -0
- package/dist/modules/workspace/startup/steps/plugin-display-names.step.js +158 -0
- package/dist/modules/workspace/startup/steps/plugin-display-names.step.js.map +1 -0
- package/dist/modules/workspace/startup/steps/plugin-layout.d.ts +64 -0
- package/dist/modules/workspace/startup/steps/plugin-layout.d.ts.map +1 -0
- package/dist/modules/workspace/startup/steps/plugin-layout.js +97 -0
- package/dist/modules/workspace/startup/steps/plugin-layout.js.map +1 -0
- package/dist/modules/workspace/startup/steps/plugin-manifests.step.d.ts +7 -1
- package/dist/modules/workspace/startup/steps/plugin-manifests.step.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/plugin-manifests.step.js +45 -81
- package/dist/modules/workspace/startup/steps/plugin-manifests.step.js.map +1 -1
- package/dist/modules/workspace/startup/steps/roles-yaml.step.d.ts +3 -1
- package/dist/modules/workspace/startup/steps/roles-yaml.step.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/roles-yaml.step.js +4 -12
- package/dist/modules/workspace/startup/steps/roles-yaml.step.js.map +1 -1
- package/dist/modules/workspace/startup/steps/seed-tree.d.ts +6 -1
- package/dist/modules/workspace/startup/steps/seed-tree.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/seed-tree.js +154 -78
- package/dist/modules/workspace/startup/steps/seed-tree.js.map +1 -1
- package/dist/modules/workspace/startup/steps/template-files.step.d.ts +96 -24
- package/dist/modules/workspace/startup/steps/template-files.step.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/template-files.step.js +446 -138
- package/dist/modules/workspace/startup/steps/template-files.step.js.map +1 -1
- package/dist/modules/workspace/startup/steps/template-source.d.ts +94 -0
- package/dist/modules/workspace/startup/steps/template-source.d.ts.map +1 -0
- package/dist/modules/workspace/startup/steps/template-source.js +160 -0
- package/dist/modules/workspace/startup/steps/template-source.js.map +1 -0
- package/dist/modules/workspace/workspace.routes.d.ts +14 -2
- package/dist/modules/workspace/workspace.routes.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.routes.js +649 -238
- package/dist/modules/workspace/workspace.routes.js.map +1 -1
- package/dist/modules/workspace/workspace.service.d.ts +298 -12
- package/dist/modules/workspace/workspace.service.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.service.js +933 -269
- package/dist/modules/workspace/workspace.service.js.map +1 -1
- package/dist/modules/workspace/workspace.tools.d.ts +42 -1
- package/dist/modules/workspace/workspace.tools.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.tools.js +1626 -146
- package/dist/modules/workspace/workspace.tools.js.map +1 -1
- package/dist/modules/workspace/write-denial.d.ts +76 -0
- package/dist/modules/workspace/write-denial.d.ts.map +1 -0
- package/dist/modules/workspace/write-denial.js +138 -0
- package/dist/modules/workspace/write-denial.js.map +1 -0
- package/dist/shared/canonical-file-identity.d.ts +64 -0
- package/dist/shared/canonical-file-identity.d.ts.map +1 -0
- package/dist/shared/canonical-file-identity.js +92 -0
- package/dist/shared/canonical-file-identity.js.map +1 -0
- package/dist/shared/domain-errors.d.ts +108 -0
- package/dist/shared/domain-errors.d.ts.map +1 -1
- package/dist/shared/domain-errors.js +137 -0
- package/dist/shared/domain-errors.js.map +1 -1
- package/dist/shared/email-identity.d.ts +32 -0
- package/dist/shared/email-identity.d.ts.map +1 -0
- package/dist/shared/email-identity.js +37 -0
- package/dist/shared/email-identity.js.map +1 -0
- package/dist/shared/fs.contract.d.ts +206 -0
- package/dist/shared/fs.contract.d.ts.map +1 -0
- package/dist/shared/fs.contract.js +79 -0
- package/dist/shared/fs.contract.js.map +1 -0
- package/dist/shared/git-failure.d.ts +80 -0
- package/dist/shared/git-failure.d.ts.map +1 -0
- package/dist/shared/git-failure.js +139 -0
- package/dist/shared/git-failure.js.map +1 -0
- package/dist/shared/git-internals.d.ts +23 -0
- package/dist/shared/git-internals.d.ts.map +1 -0
- package/dist/shared/git-internals.js +181 -0
- package/dist/shared/git-internals.js.map +1 -0
- package/dist/shared/git.contract.d.ts +157 -0
- package/dist/shared/git.contract.d.ts.map +1 -0
- package/dist/shared/git.contract.js +103 -0
- package/dist/shared/git.contract.js.map +1 -0
- package/dist/shared/http-errors.d.ts +33 -0
- package/dist/shared/http-errors.d.ts.map +1 -0
- package/dist/shared/http-errors.js +35 -0
- package/dist/shared/http-errors.js.map +1 -0
- package/dist/shared/logger.contract.d.ts +63 -0
- package/dist/shared/logger.contract.d.ts.map +1 -0
- package/dist/shared/logger.contract.js +126 -0
- package/dist/shared/logger.contract.js.map +1 -0
- package/dist/shared/logging.d.ts +31 -0
- package/dist/shared/logging.d.ts.map +1 -0
- package/dist/shared/logging.js +92 -0
- package/dist/shared/logging.js.map +1 -0
- package/dist/shared/path-containment.d.ts +21 -0
- package/dist/shared/path-containment.d.ts.map +1 -0
- package/dist/shared/path-containment.js +34 -0
- package/dist/shared/path-containment.js.map +1 -0
- package/dist/shared/pending-proposals.d.ts +71 -0
- package/dist/shared/pending-proposals.d.ts.map +1 -0
- package/dist/shared/pending-proposals.js +98 -0
- package/dist/shared/pending-proposals.js.map +1 -0
- package/dist/shared/printable.d.ts +22 -0
- package/dist/shared/printable.d.ts.map +1 -0
- package/dist/shared/printable.js +65 -0
- package/dist/shared/printable.js.map +1 -0
- package/dist/shared/redact-secret.d.ts +30 -0
- package/dist/shared/redact-secret.d.ts.map +1 -0
- package/dist/shared/redact-secret.js +114 -0
- package/dist/shared/redact-secret.js.map +1 -0
- package/dist/shared/rename-no-replace.d.ts +119 -0
- package/dist/shared/rename-no-replace.d.ts.map +1 -0
- package/dist/shared/rename-no-replace.js +323 -0
- package/dist/shared/rename-no-replace.js.map +1 -0
- package/dist/shared/ssrf.d.ts.map +1 -1
- package/dist/shared/ssrf.js +49 -18
- package/dist/shared/ssrf.js.map +1 -1
- package/dist/version.d.ts +10 -6
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +10 -6
- package/dist/version.js.map +1 -1
- package/kb-template/.bevelignore +4 -3
- package/kb-template/AGENTS.md +281 -36
- package/kb-template/KnowledgeBase/How to get started.md +1 -1
- package/kb-template/access.md +5 -3
- package/kb-template/mcp-description.md +27 -0
- package/migrations/0006_api_tokens_revoked_by.sql +1 -0
- package/migrations/0007_github_facade_registered.sql +1 -0
- package/migrations/0008_change_request_apply_failure.sql +4 -0
- package/migrations/0009_change_request_apply_failure_kind.sql +13 -0
- package/migrations/0010_plugin_join_requests.sql +15 -0
- package/migrations/0011_plugin_join_request_claim.sql +11 -0
- package/migrations/0012_agent_audit.sql +41 -0
- package/migrations/0013_agent_identity_and_key_soft_delete.sql +29 -0
- package/migrations/meta/0006_snapshot.json +1723 -0
- package/migrations/meta/0007_snapshot.json +1729 -0
- package/migrations/meta/0008_snapshot.json +1753 -0
- package/migrations/meta/0009_snapshot.json +1759 -0
- package/migrations/meta/0010_snapshot.json +1872 -0
- package/migrations/meta/0011_snapshot.json +1884 -0
- package/migrations/meta/0012_snapshot.json +2247 -0
- package/migrations/meta/0013_snapshot.json +2259 -0
- package/migrations/meta/_journal.json +56 -0
- package/package.json +7 -6
- package/src/__tests__/core-config.domain.test.ts +67 -2
- package/src/__tests__/kb-layout-config.test.ts +186 -1
- package/src/__tests__/open-change-gate.ts +15 -0
- package/src/core/__tests__/catalog-cache-invalidation.test.ts +83 -3
- package/src/core/__tests__/catalog-revision.test.ts +190 -0
- package/src/core/__tests__/lifecycle.test.ts +369 -0
- package/src/core/__tests__/public-config.test.ts +30 -0
- package/src/core/__tests__/readiness.test.ts +109 -0
- package/src/core/catalog-cache-invalidation.ts +20 -1
- package/src/core/catalog-revision.ts +110 -0
- package/src/core/create-core-server.ts +286 -79
- package/src/core/create-core-services.ts +315 -81
- package/src/core/lifecycle.ts +312 -0
- package/src/core/public-config.ts +86 -0
- package/src/core/readiness.ts +123 -0
- package/src/core-config.ts +70 -4
- package/src/index.ts +15 -0
- package/src/modules/access/__tests__/access-control.admin-root-floor.test.ts +362 -0
- package/src/modules/access/__tests__/access-control.atref-batch.test.ts +2 -1
- package/src/modules/access/__tests__/access-control.atref-cache.test.ts +46 -22
- package/src/modules/access/__tests__/access-control.deny-dependents.test.ts +215 -0
- package/src/modules/access/__tests__/access-control.download-read.test.ts +268 -0
- package/src/modules/access/__tests__/access-control.everyone-read.test.ts +145 -0
- package/src/modules/access/__tests__/access-control.group-read.test.ts +163 -0
- package/src/modules/access/__tests__/access-control.invalidate-race.test.ts +2 -0
- package/src/modules/access/__tests__/access-control.platform-restore.test.ts +152 -0
- package/src/modules/access/__tests__/access-control.prospective.test.ts +189 -0
- package/src/modules/access/__tests__/access-control.read-batch.test.ts +2 -1
- package/src/modules/access/__tests__/access-control.service.test.ts +123 -78
- package/src/modules/access/__tests__/access-groups.test.ts +47 -14
- package/src/modules/access/__tests__/access-md-format.test.ts +2 -1
- package/src/modules/access/__tests__/access-mutation.service.test.ts +52 -4
- package/src/modules/access/__tests__/access-own-read-grant.test.ts +2 -0
- package/src/modules/access/__tests__/access-personal-plugin.test.ts +153 -0
- package/src/modules/access/__tests__/access-plugin-principals.test.ts +18 -1
- package/src/modules/access/__tests__/access-restrict-here.test.ts +450 -0
- package/src/modules/access/__tests__/access.routes.batch.test.ts +139 -0
- package/src/modules/access/__tests__/access.routes.folder-governs.test.ts +394 -0
- package/src/modules/access/__tests__/access.routes.group-grant.test.ts +6 -2
- package/src/modules/access/__tests__/access.routes.overrides.test.ts +3 -2
- package/src/modules/access/__tests__/access.routes.proposal-branch.test.ts +234 -0
- package/src/modules/access/__tests__/access.routes.prospective.test.ts +216 -0
- package/src/modules/access/__tests__/access.routes.revoke.test.ts +7 -2
- package/src/modules/access/__tests__/access.routes.unknown-email.test.ts +360 -0
- package/src/modules/access/__tests__/change-read-gate.test.ts +272 -0
- package/src/modules/access/__tests__/creator-access.test.ts +81 -83
- package/src/modules/access/__tests__/grant-sources.test.ts +3 -2
- package/src/modules/access/__tests__/groups-admin.service.test.ts +6 -5
- package/src/modules/access/__tests__/roles-admin.security.test.ts +196 -0
- package/src/modules/access/__tests__/roles-admin.service.test.ts +127 -2
- package/src/modules/access/__tests__/roles-capabilities.test.ts +5 -4
- package/src/modules/access/__tests__/roles.routes.test.ts +5 -2
- package/src/modules/access/__tests__/user-access-removal.service.test.ts +402 -0
- package/src/modules/access/__tests__/users-db-double.ts +63 -0
- package/src/modules/access/access-control.interface.ts +251 -11
- package/src/modules/access/access-control.service.ts +719 -164
- package/src/modules/access/access-mutation.service.ts +182 -13
- package/src/modules/access/access-view.ts +316 -0
- package/src/modules/access/access.routes.ts +293 -95
- package/src/modules/access/admin-locked-commit.ts +12 -14
- package/src/modules/access/admin-route-helpers.ts +4 -4
- package/src/modules/access/change-read-gate.ts +148 -0
- package/src/modules/access/creator-access.ts +89 -124
- package/src/modules/access/directory-sync-bot.ts +4 -1
- package/src/modules/access/groups-admin.service.ts +3 -3
- package/src/modules/access/reference-scan.ts +5 -5
- package/src/modules/access/roles-admin.service.ts +94 -15
- package/src/modules/access/synced-groups-committer.ts +10 -15
- package/src/modules/access/synced-groups-writer.ts +3 -12
- package/src/modules/access/user-access-removal.service.ts +711 -0
- package/src/modules/access-model/__tests__/access-splice.test.ts +63 -1
- package/src/modules/access-model/__tests__/frontmatter-fences.test.ts +71 -0
- package/src/modules/access-model/__tests__/roles-yaml-guard.test.ts +131 -0
- package/src/modules/access-model/access-errors.ts +56 -15
- package/src/modules/access-model/access-grammar.ts +85 -48
- package/src/modules/access-model/access-splice.ts +18 -18
- package/src/modules/access-model/access-template.ts +44 -0
- package/src/modules/access-model/change-gate.ts +80 -0
- package/src/modules/access-model/creator.ts +18 -21
- package/src/modules/access-model/frontmatter-lines.ts +98 -0
- package/src/modules/access-model/plugin-principals.ts +12 -19
- package/src/modules/access-model/roles-yaml-guard.ts +182 -4
- package/src/modules/admin/admin-access.service.ts +6 -2
- package/src/modules/agent-instructions/__tests__/agent-instructions.route.test.ts +100 -0
- package/src/modules/agent-instructions/__tests__/compose.test.ts +256 -0
- package/src/modules/agent-instructions/__tests__/read-preamble.test.ts +135 -0
- package/src/modules/agent-instructions/agent-instructions.routes.ts +41 -0
- package/src/modules/agent-instructions/compose.ts +271 -0
- package/src/modules/agent-instructions/index.ts +14 -0
- package/src/modules/agent-instructions/read-preamble.ts +88 -0
- package/src/modules/audit/__tests__/agent-audit.service.test.ts +370 -0
- package/src/modules/audit/__tests__/agent-rest-audit.middleware.test.ts +113 -0
- package/src/modules/audit/__tests__/audit.routes.test.ts +201 -0
- package/src/modules/audit/__tests__/event-classifier.test.ts +121 -0
- package/src/modules/audit/agent-audit.service.ts +316 -0
- package/src/modules/audit/agent-rest-audit.middleware.ts +83 -0
- package/src/modules/audit/audit.contract.ts +164 -0
- package/src/modules/audit/audit.routes.ts +168 -0
- package/src/modules/audit/event-classifier.ts +155 -0
- package/src/modules/audit/index.ts +14 -0
- package/src/modules/audit/request-audit.ts +141 -0
- package/src/modules/auth/__tests__/account-erasure.approval-gate.test.ts +209 -0
- package/src/modules/auth/__tests__/account.routes.test.ts +178 -2
- package/src/modules/auth/__tests__/auth.middleware.test.ts +78 -0
- package/src/modules/auth/__tests__/auth.service.test.ts +338 -5
- package/src/modules/auth/__tests__/oidc-auth-provider.test.ts +352 -12
- package/src/modules/auth/__tests__/onboarding-done.route.test.ts +3 -1
- package/src/modules/auth/account-erasure.service.ts +117 -10
- package/src/modules/auth/account.routes.ts +115 -14
- package/src/modules/auth/auth.routes.ts +20 -7
- package/src/modules/auth/auth.service.ts +187 -28
- package/src/modules/auth/oidc-auth-provider.ts +120 -22
- package/src/modules/code-mode/__tests__/code-mode.tool.test.ts +109 -1
- package/src/modules/code-mode/code-mode.tool.ts +13 -2
- package/src/modules/connection-probe/__tests__/connection-probe.service.test.ts +78 -0
- package/src/modules/connection-probe/connection-probe.service.ts +59 -7
- package/src/modules/database/__tests__/advisory-lease.test.ts +152 -0
- package/src/modules/database/__tests__/advisory-lock.test.ts +147 -0
- package/src/modules/database/advisory-lock.ts +346 -0
- package/src/modules/database/connection.ts +9 -1
- package/src/modules/database/core-schema.ts +227 -0
- package/src/modules/database/migrate.ts +27 -6
- package/src/modules/declared-variables/declared-variables.routes.ts +6 -3
- package/src/modules/diff/__tests__/diff.service.seed-atomicity.test.ts +3 -0
- package/src/modules/diff/__tests__/diff.service.test.ts +3 -0
- package/src/modules/diff/diff.routes.ts +2 -4
- package/src/modules/diff/diff.service.ts +80 -79
- package/src/modules/kb-fs/__tests__/locking-filesystem.test.ts +472 -9
- package/src/modules/kb-fs/__tests__/node-fs.test.ts +409 -0
- package/src/modules/kb-fs/__tests__/repo-path.test.ts +210 -1
- package/src/modules/{workspace → kb-fs}/bevel-ignore.ts +22 -15
- package/src/modules/kb-fs/file-change-notifier.ts +4 -1
- package/src/modules/kb-fs/git-guarded-filesystem.ts +136 -0
- package/src/modules/kb-fs/locking-filesystem.ts +399 -109
- package/src/modules/kb-fs/node-fs.ts +165 -0
- package/src/modules/kb-fs/read-only-filesystem.ts +18 -9
- package/src/modules/kb-fs/repo-path.ts +213 -3
- package/src/modules/kb-sync/kb-sync.routes.ts +5 -2
- package/src/modules/kb-sync/kb-sync.service.ts +8 -5
- package/src/modules/marketplace/__tests__/github-facade.test.ts +134 -2
- package/src/modules/marketplace/__tests__/marketplace-git.test.ts +2 -1
- package/src/modules/marketplace/__tests__/marketplace-repo.head.test.ts +47 -0
- package/src/modules/marketplace/git-http.routes.ts +7 -4
- package/src/modules/marketplace/github-facade/github-facade-admin.routes.ts +35 -3
- package/src/modules/marketplace/github-facade/github-facade-credentials.service.ts +55 -0
- package/src/modules/marketplace/github-facade/github-facade.routes.ts +32 -6
- package/src/modules/marketplace/github-facade/github-facade.service.ts +80 -19
- package/src/modules/marketplace/github-facade/index.ts +1 -0
- package/src/modules/marketplace/marketplace-repo.service.ts +23 -8
- package/src/modules/mcp/__tests__/bevel-oauth-provider.test.ts +183 -13
- package/src/modules/mcp/__tests__/downstream-pool.test.ts +278 -0
- package/src/modules/mcp/__tests__/downstream-token-refresh.test.ts +178 -0
- package/src/modules/mcp/__tests__/fake-downstream-mcp-server.ts +156 -0
- package/src/modules/mcp/__tests__/first-call-probe.cli-args.test.ts +178 -0
- package/src/modules/mcp/__tests__/first-call-probe.test.ts +414 -0
- package/src/modules/mcp/__tests__/manual-failure-memo.test.ts +98 -6
- package/src/modules/mcp/__tests__/mcp-auth.middleware.test.ts +68 -7
- package/src/modules/mcp/__tests__/mcp-routes-harness.ts +1 -3
- package/src/modules/mcp/__tests__/mcp.e2e.test.ts +1055 -59
- package/src/modules/mcp/__tests__/mcp.routes.local-token.test.ts +24 -4
- package/src/modules/mcp/__tests__/mcp.routes.stateless.test.ts +182 -0
- package/src/modules/mcp/__tests__/mcp.service.test.ts +391 -6
- package/src/modules/mcp/__tests__/surface-log-throttle.test.ts +169 -0
- package/src/modules/mcp/downstream-pool.ts +256 -0
- package/src/modules/mcp/downstream-token-refresh.ts +170 -0
- package/src/modules/mcp/first-call-probe.cli-args.ts +159 -0
- package/src/modules/mcp/first-call-probe.cli.ts +60 -0
- package/src/modules/mcp/first-call-probe.ts +418 -0
- package/src/modules/mcp/manual-failure-memo.ts +81 -23
- package/src/modules/mcp/mcp-auth.middleware.ts +56 -16
- package/src/modules/mcp/mcp.routes.ts +386 -482
- package/src/modules/mcp/mcp.service.ts +905 -177
- package/src/modules/mcp/oauth/bevel-oauth-provider.ts +189 -8
- package/src/modules/mcp/oauth/oauth-consent.routes.ts +4 -4
- package/src/modules/mcp/surface-log-throttle.ts +120 -0
- package/src/modules/plugins/__tests__/bundle-dialect.e2e.test.ts +10 -7
- package/src/modules/plugins/__tests__/bundle-dialect.test.ts +165 -0
- package/src/modules/plugins/__tests__/compile-marketplace.test.ts +139 -10
- package/src/modules/plugins/__tests__/fake-join-request-store.ts +189 -0
- package/src/modules/plugins/__tests__/join-request-jobs.service.test.ts +608 -0
- package/src/modules/plugins/__tests__/plugin-creation-display-name.test.ts +241 -0
- package/src/modules/plugins/__tests__/plugin-index.service.test.ts +148 -7
- package/src/modules/plugins/__tests__/plugin-links.service.test.ts +10 -13
- package/src/modules/plugins/__tests__/plugin-names.test.ts +77 -0
- package/src/modules/plugins/__tests__/plugin-provision.service.test.ts +129 -19
- package/src/modules/plugins/__tests__/plugin-rename.service.test.ts +91 -29
- package/src/modules/plugins/__tests__/plugins.routes.test.ts +370 -19
- package/src/modules/plugins/__tests__/plugins.tools.test.ts +131 -0
- package/src/modules/plugins/__tests__/teams.routes.test.ts +248 -0
- package/src/modules/plugins/compile/compile-marketplace.ts +143 -46
- package/src/modules/plugins/compile/marketplace-compiler.service.ts +8 -7
- package/src/modules/plugins/discovery/__tests__/kb-plugin-source.test.ts +56 -20
- package/src/modules/plugins/discovery/bundle-dialect/bundle.source.ts +30 -9
- package/src/modules/plugins/discovery/bundle-dialect/registry.ts +93 -18
- package/src/modules/plugins/discovery/kb-plugin-source.ts +10 -7
- package/src/modules/plugins/discovery/native.source.ts +21 -3
- package/src/modules/plugins/discovery/plugin-source.ts +17 -3
- package/src/modules/plugins/index.ts +16 -3
- package/src/modules/plugins/join-request-jobs.service.ts +675 -0
- package/src/modules/plugins/join-request-records.store.ts +353 -0
- package/src/modules/plugins/join-requests.service.ts +7 -4
- package/src/modules/plugins/plugin-links.service.ts +4 -17
- package/src/modules/plugins/plugin-links.ts +6 -3
- package/src/modules/plugins/plugin-provision.service.ts +209 -37
- package/src/modules/plugins/plugin-rename.service.ts +21 -9
- package/src/modules/plugins/plugins.contract.ts +52 -4
- package/src/modules/plugins/plugins.routes.ts +204 -124
- package/src/modules/plugins/plugins.service.ts +92 -18
- package/src/modules/plugins/plugins.tools.ts +88 -0
- package/src/modules/plugins/teams.routes.ts +129 -0
- package/src/modules/secrets-vault/__tests__/connect-pending.route.test.ts +359 -15
- package/src/modules/secrets-vault/__tests__/db-secrets-vault.oauth.test.ts +248 -0
- package/src/modules/secrets-vault/__tests__/namespace-secrets.test.ts +202 -0
- package/src/modules/secrets-vault/db-secrets-vault.service.ts +217 -35
- package/src/modules/secrets-vault/index.ts +1 -0
- package/src/modules/secrets-vault/mcp-oauth-discovery.service.ts +6 -3
- package/src/modules/secrets-vault/secrets-variable-loader.ts +4 -4
- package/src/modules/secrets-vault/secrets-vault.contract.ts +93 -0
- package/src/modules/secrets-vault/secrets-vault.routes.ts +99 -38
- package/src/modules/settings/__tests__/connection-check.test.ts +233 -0
- package/src/modules/settings/__tests__/deployment-settings.service.test.ts +223 -6
- package/src/modules/settings/__tests__/git-root-folders.test.ts +247 -0
- package/src/modules/settings/__tests__/oidc-check.test.ts +185 -0
- package/src/modules/settings/__tests__/setup.routes.boot-failure.test.ts +119 -0
- package/src/modules/settings/__tests__/setup.routes.layout-phase.test.ts +170 -0
- package/src/modules/settings/__tests__/setup.routes.oidc.test.ts +555 -0
- package/src/modules/settings/__tests__/setup.routes.test.ts +667 -16
- package/src/modules/settings/connection-check.ts +351 -0
- package/src/modules/settings/deployment-settings.service.ts +444 -59
- package/src/modules/settings/git-root-folders.ts +171 -0
- package/src/modules/settings/oidc-check.ts +229 -0
- package/src/modules/settings/setup.routes.ts +456 -110
- package/src/modules/skills/__tests__/allowed-tools-check.test.ts +224 -0
- package/src/modules/skills/__tests__/allowed-tools-warn.tools.test.ts +210 -0
- package/src/modules/skills/__tests__/pending-skills.service.test.ts +3 -3
- package/src/modules/skills/__tests__/skills.routes.warnings.test.ts +91 -0
- package/src/modules/skills/__tests__/skills.service.test.ts +223 -2
- package/src/modules/skills/allowed-tools-check.ts +352 -0
- package/src/modules/skills/index.ts +4 -0
- package/src/modules/skills/pending-skills.service.ts +21 -82
- package/src/modules/skills/skill-access-requests.routes.ts +10 -6
- package/src/modules/skills/skills.contract.ts +43 -11
- package/src/modules/skills/skills.routes.ts +16 -1
- package/src/modules/skills/skills.service.ts +214 -84
- package/src/modules/skills/skills.tools.ts +43 -5
- package/src/modules/tool-auth/__tests__/connection-key-rejection.test.ts +192 -0
- package/src/modules/tool-auth/__tests__/connection-keys-admin.routes.test.ts +116 -0
- package/src/modules/tool-auth/__tests__/external-api-key.service.test.ts +153 -8
- package/src/modules/tool-auth/__tests__/internal-token.service.test.ts +6 -0
- package/src/modules/tool-auth/connection-key-rejection.ts +25 -0
- package/src/modules/tool-auth/connection-keys-admin.routes.ts +76 -0
- package/src/modules/tool-auth/external-api-key.interface.ts +78 -8
- package/src/modules/tool-auth/external-api-key.service.ts +98 -33
- package/src/modules/tool-auth/internal-token.service.ts +16 -2
- package/src/modules/tool-auth/key-or-session.middleware.ts +45 -0
- package/src/modules/tool-auth/tool-auth.middleware.ts +33 -8
- package/src/modules/tool-helpers/__tests__/agent-roles-write.test.ts +228 -0
- package/src/modules/tool-helpers/__tests__/phase4-tools.test.ts +33 -4
- package/src/modules/tool-helpers/tool-context.ts +46 -7
- package/src/modules/tool-helpers/tool-handler.ts +23 -5
- package/src/modules/tool-helpers/tool.contract.ts +5 -0
- package/src/modules/tool-manuals/__tests__/mcp-server-edit.service.test.ts +2 -1
- package/src/modules/tool-manuals/__tests__/pending-tools.service.test.ts +411 -0
- package/src/modules/tool-manuals/__tests__/tool-delete.route.test.ts +133 -0
- package/src/modules/tool-manuals/__tests__/tool-delete.service.test.ts +469 -0
- package/src/modules/tool-manuals/__tests__/tool-manuals.archive.route.test.ts +21 -2
- package/src/modules/tool-manuals/__tests__/tool-manuals.cli.test.ts +9 -4
- package/src/modules/tool-manuals/__tests__/tool-manuals.detail.route.test.ts +6 -1
- package/src/modules/tool-manuals/__tests__/tool-manuals.invalid.routes.test.ts +254 -0
- package/src/modules/tool-manuals/__tests__/tool-manuals.invalid.test.ts +577 -0
- package/src/modules/tool-manuals/__tests__/tool-manuals.mcp-oauth.test.ts +6 -1
- package/src/modules/tool-manuals/__tests__/tool-manuals.pending.route.test.ts +102 -0
- package/src/modules/tool-manuals/__tests__/tool-manuals.restart.test.ts +285 -0
- package/src/modules/tool-manuals/__tests__/tool-manuals.service.test.ts +178 -2
- package/src/modules/tool-manuals/__tests__/tool-manuals.tools.test.ts +114 -2
- package/src/modules/tool-manuals/index.ts +3 -0
- package/src/modules/tool-manuals/mcp-json-discovery.ts +13 -10
- package/src/modules/tool-manuals/mcp-server-edit.service.ts +11 -14
- package/src/modules/tool-manuals/pending-tools.service.ts +179 -0
- package/src/modules/tool-manuals/tool-delete.service.ts +401 -0
- package/src/modules/tool-manuals/tool-manuals.contract.ts +165 -0
- package/src/modules/tool-manuals/tool-manuals.routes.ts +138 -54
- package/src/modules/tool-manuals/tool-manuals.service.ts +432 -87
- package/src/modules/tool-manuals/tool-manuals.tools.ts +81 -6
- package/src/modules/workflow/__tests__/apply-failure.test.ts +1038 -0
- package/src/modules/workflow/__tests__/event-bus.test.ts +61 -9
- package/src/modules/workflow/__tests__/fake-file-lock-db.ts +199 -0
- package/src/modules/workflow/__tests__/file-lock.service.path-identity.test.ts +237 -0
- package/src/modules/workflow/__tests__/format-affected-owners.test.ts +18 -0
- package/src/modules/workflow/__tests__/merge-announces-tree.test.ts +220 -0
- package/src/modules/workflow/__tests__/pending-commits.worker.concurrency.test.ts +187 -0
- package/src/modules/workflow/__tests__/preserve-roles-yaml.test.ts +2 -0
- package/src/modules/workflow/__tests__/sanitize-error.test.ts +10 -0
- package/src/modules/workflow/__tests__/workflow.routes.folder-proposals.test.ts +128 -0
- package/src/modules/workflow/__tests__/workflow.routes.fork-point-file.test.ts +149 -0
- package/src/modules/workflow/__tests__/workflow.routes.lock-path.test.ts +305 -0
- package/src/modules/workflow/__tests__/workflow.service.branch-in-use.test.ts +2 -0
- package/src/modules/workflow/__tests__/workflow.service.commitFileWhileLocked.test.ts +2 -0
- package/src/modules/workflow/__tests__/workflow.service.deleted-branch-sweep.test.ts +2 -0
- package/src/modules/workflow/__tests__/workflow.service.facade.test.ts +294 -25
- package/src/modules/workflow/__tests__/workflow.service.folder-proposals.test.ts +564 -0
- package/src/modules/workflow/__tests__/workflow.service.platform-restore.test.ts +135 -0
- package/src/modules/workflow/__tests__/workflow.service.read-gate.test.ts +172 -0
- package/src/modules/workflow/__tests__/workflow.service.releaseLock.test.ts +14 -0
- package/src/modules/workflow/__tests__/workflow.service.sync.test.ts +5 -0
- package/src/modules/workflow/__tests__/workflow.service.update-from-target.test.ts +281 -0
- package/src/modules/workflow/agent-tools/__tests__/workflow.tools.test.ts +158 -7
- package/src/modules/workflow/agent-tools/workflow.tools.ts +93 -64
- package/src/modules/workflow/event-bus.ts +26 -28
- package/src/modules/workflow/events.routes.ts +56 -21
- package/src/modules/workflow/file-lock.service.ts +27 -4
- package/src/modules/workflow/git/__tests__/change-request-link.test.ts +43 -0
- package/src/modules/workflow/git/__tests__/git.service.accessGating.test.ts +1 -0
- package/src/modules/workflow/git/__tests__/git.service.changedFilesForPr.test.ts +238 -1
- package/src/modules/workflow/git/__tests__/git.service.forkPoint.test.ts +245 -0
- package/src/modules/workflow/git/__tests__/git.service.list-branches.test.ts +35 -0
- package/src/modules/workflow/git/__tests__/git.service.mergeChangeRequest.test.ts +149 -0
- package/src/modules/workflow/git/__tests__/git.service.revertPathsAndPush.test.ts +177 -0
- package/src/modules/workflow/git/__tests__/node-git-runner.test.ts +114 -0
- package/src/modules/workflow/git/__tests__/pull-request.service.getPrDetail.test.ts +69 -2
- package/src/modules/workflow/git/__tests__/pull-request.service.list-fetch.test.ts +121 -0
- package/src/modules/workflow/git/__tests__/pull-request.service.placeholder.test.ts +79 -0
- package/src/modules/workflow/git/__tests__/pull-request.service.test.ts +1 -1
- package/src/modules/workflow/git/__tests__/pull-request.service.viewer-can-cancel.test.ts +1 -1
- package/src/modules/workflow/git/__tests__/pull-request.service.viewer-can-update.test.ts +111 -0
- package/src/modules/workflow/git/change-request-link.ts +35 -0
- package/src/modules/workflow/git/git-version.ts +5 -2
- package/src/modules/workflow/git/git.service.ts +684 -144
- package/src/modules/workflow/git/node-git-runner.ts +315 -0
- package/src/modules/workflow/git/pull-request.service.ts +179 -27
- package/src/modules/workflow/pending-commits.service.ts +26 -7
- package/src/modules/workflow/pending-commits.worker.ts +114 -69
- package/src/modules/workflow/recovery-bot.ts +4 -1
- package/src/modules/workflow/review-workflow/__tests__/approval-states.test.ts +180 -1
- package/src/modules/workflow/review-workflow/__tests__/cancel-pr.test.ts +1 -1
- package/src/modules/workflow/review-workflow/__tests__/carry-approvals-forward.test.ts +520 -0
- package/src/modules/workflow/review-workflow/__tests__/erase-approver.test.ts +84 -0
- package/src/modules/workflow/review-workflow/__tests__/merge-gate.test.ts +89 -77
- package/src/modules/workflow/review-workflow/approval-lock.ts +122 -0
- package/src/modules/workflow/review-workflow/review-workflow.interface.ts +59 -7
- package/src/modules/workflow/review-workflow/review-workflow.service.ts +309 -105
- package/src/modules/workflow/sanitize-error.ts +9 -4
- package/src/modules/workflow/workflow.routes.ts +273 -29
- package/src/modules/workflow/workflow.service.ts +1087 -171
- package/src/modules/workspace/__tests__/empty-dirs.test.ts +44 -0
- package/src/modules/workspace/__tests__/file-stat-access.test.ts +301 -0
- package/src/modules/workspace/__tests__/git-internals.security.test.ts +883 -0
- package/src/modules/workspace/__tests__/workspace-paths-inside-the-repo.test.ts +464 -0
- package/src/modules/workspace/__tests__/workspace.routes.branch-errors.test.ts +139 -0
- package/src/modules/workspace/__tests__/workspace.routes.create-grant.test.ts +189 -37
- package/src/modules/workspace/__tests__/workspace.routes.delete.test.ts +51 -11
- package/src/modules/workspace/__tests__/workspace.routes.download-implies-read.test.ts +161 -0
- package/src/modules/workspace/__tests__/workspace.routes.download.test.ts +109 -10
- package/src/modules/workspace/__tests__/workspace.routes.file-writes.test.ts +624 -0
- package/src/modules/workspace/__tests__/workspace.routes.folders.test.ts +409 -0
- package/src/modules/workspace/__tests__/workspace.routes.move-platform-files.test.ts +327 -0
- package/src/modules/workspace/__tests__/workspace.routes.read-gate.test.ts +25 -6
- package/src/modules/workspace/__tests__/workspace.service.ensure-remotes-fetched.test.ts +109 -0
- package/src/modules/workspace/__tests__/workspace.service.list-cloned.test.ts +6 -5
- package/src/modules/workspace/__tests__/workspace.service.move-never-overwrites.test.ts +218 -0
- package/src/modules/workspace/__tests__/workspace.service.read-filter.test.ts +56 -1
- package/src/modules/workspace/__tests__/workspace.service.test.ts +811 -42
- package/src/modules/workspace/__tests__/workspace.service.unknown-branch.test.ts +197 -0
- package/src/modules/workspace/__tests__/workspace.tools.agents-file.test.ts +128 -0
- package/src/modules/workspace/__tests__/workspace.tools.branch-errors.test.ts +212 -0
- package/src/modules/workspace/__tests__/workspace.tools.test.ts +2632 -110
- package/src/modules/workspace/__tests__/write-denial.test.ts +75 -0
- package/src/modules/workspace/empty-dirs.ts +79 -0
- package/src/modules/workspace/file-readers/README.md +32 -0
- package/src/modules/workspace/file-readers/__tests__/doc-extract.test.ts +59 -2
- package/src/modules/workspace/file-readers/__tests__/file-reader.registry.test.ts +133 -4
- package/src/modules/workspace/file-readers/__tests__/fixtures/soft-break.docx +0 -0
- package/src/modules/workspace/file-readers/__tests__/fixtures/tab.docx +0 -0
- package/src/modules/workspace/file-readers/content-mode.ts +87 -0
- package/src/modules/workspace/file-readers/doc-extract.service.ts +4 -1
- package/src/modules/workspace/file-readers/doc-extract.types.ts +8 -4
- package/src/modules/workspace/file-readers/document-reader.ts +6 -0
- package/src/modules/workspace/file-readers/extract-docx.ts +6 -0
- package/src/modules/workspace/file-readers/file-reader.registry.ts +9 -1
- package/src/modules/workspace/file-readers/file-reader.ts +27 -6
- package/src/modules/workspace/file-readers/image-reader.ts +10 -5
- package/src/modules/workspace/file-readers/ooxml-text.ts +38 -2
- package/src/modules/workspace/file-readers/text-reader.ts +61 -4
- package/src/modules/workspace/git-internals.middleware.ts +86 -0
- package/src/modules/workspace/not-found.ts +119 -0
- package/src/modules/workspace/session-ontology.gate.ts +1 -1
- package/src/modules/workspace/startup/__tests__/beside-checkout.test.ts +181 -0
- package/src/modules/workspace/startup/__tests__/kb-startup-runner.degraded.test.ts +361 -0
- package/src/modules/workspace/startup/__tests__/kb-startup-runner.test.ts +53 -16
- package/src/modules/workspace/startup/beside-checkout.ts +112 -0
- package/src/modules/workspace/startup/kb-git.ts +43 -36
- package/src/modules/workspace/startup/kb-startup-runner.ts +303 -63
- package/src/modules/workspace/startup/steps/__tests__/steps.test.ts +1215 -73
- package/src/modules/workspace/startup/steps/groups-to-plugins.step.ts +460 -417
- package/src/modules/workspace/startup/steps/personal-spaces.step.ts +191 -0
- package/src/modules/workspace/startup/steps/plugin-display-names.step.ts +169 -0
- package/src/modules/workspace/startup/steps/plugin-layout.ts +110 -0
- package/src/modules/workspace/startup/steps/plugin-manifests.step.ts +46 -85
- package/src/modules/workspace/startup/steps/roles-yaml.step.ts +6 -12
- package/src/modules/workspace/startup/steps/seed-tree.ts +159 -78
- package/src/modules/workspace/startup/steps/template-files.step.ts +492 -141
- package/src/modules/workspace/startup/steps/template-source.ts +168 -0
- package/src/modules/workspace/workspace.routes.ts +687 -257
- package/src/modules/workspace/workspace.service.ts +1000 -303
- package/src/modules/workspace/workspace.tools.ts +1823 -180
- package/src/modules/workspace/write-denial.ts +189 -0
- package/src/shared/__tests__/canonical-file-identity.test.ts +154 -0
- package/src/shared/__tests__/email-identity.test.ts +35 -0
- package/src/shared/__tests__/filename.test.ts +0 -0
- package/src/shared/__tests__/frontmatter-id.test.ts +5 -0
- package/src/shared/__tests__/git-failure.test.ts +198 -0
- package/src/shared/__tests__/git-internals.test.ts +156 -0
- package/src/shared/__tests__/http-errors.test.ts +42 -0
- package/src/shared/__tests__/logging.test.ts +185 -0
- package/src/shared/__tests__/path-containment.test.ts +60 -0
- package/src/shared/__tests__/pending-proposals.readAt.test.ts +102 -0
- package/src/shared/__tests__/printable.test.ts +64 -0
- package/src/shared/__tests__/redact-secret.test.ts +122 -0
- package/src/shared/__tests__/rename-no-replace.test.ts +466 -0
- package/src/shared/__tests__/ssrf.test.ts +20 -0
- package/src/shared/canonical-file-identity.ts +92 -0
- package/src/shared/domain-errors.ts +149 -0
- package/src/shared/email-identity.ts +38 -0
- package/src/shared/fs.contract.ts +225 -0
- package/src/shared/git-failure.ts +196 -0
- package/src/shared/git-internals.ts +179 -0
- package/src/shared/git.contract.ts +170 -0
- package/src/shared/http-errors.ts +36 -0
- package/src/shared/logger.contract.ts +141 -0
- package/src/shared/logging.ts +96 -0
- package/src/shared/path-containment.ts +34 -0
- package/src/shared/pending-proposals.ts +161 -0
- package/src/shared/printable.ts +68 -0
- package/src/shared/redact-secret.ts +118 -0
- package/src/shared/rename-no-replace.ts +386 -0
- package/src/shared/ssrf.ts +44 -16
- package/src/version.ts +10 -6
- package/dist/modules/access/access-errors.d.ts +0 -34
- package/dist/modules/access/access-errors.d.ts.map +0 -1
- package/dist/modules/access/access-errors.js +0 -40
- package/dist/modules/access/access-errors.js.map +0 -1
- package/dist/modules/access/access-splice.d.ts +0 -140
- package/dist/modules/access/access-splice.d.ts.map +0 -1
- package/dist/modules/access/access-splice.js +0 -389
- package/dist/modules/access/access-splice.js.map +0 -1
- package/dist/modules/access/group-files.d.ts +0 -83
- package/dist/modules/access/group-files.d.ts.map +0 -1
- package/dist/modules/access/group-files.js +0 -167
- package/dist/modules/access/group-files.js.map +0 -1
- package/dist/modules/access/kb-read-filter.d.ts +0 -41
- package/dist/modules/access/kb-read-filter.d.ts.map +0 -1
- package/dist/modules/access/kb-read-filter.js +0 -60
- package/dist/modules/access/kb-read-filter.js.map +0 -1
- package/dist/modules/access/render-roles-yaml.d.ts +0 -22
- package/dist/modules/access/render-roles-yaml.d.ts.map +0 -1
- package/dist/modules/access/render-roles-yaml.js +0 -56
- package/dist/modules/access/render-roles-yaml.js.map +0 -1
- package/dist/modules/access/roles-yaml-guard.d.ts +0 -56
- package/dist/modules/access/roles-yaml-guard.d.ts.map +0 -1
- package/dist/modules/access/roles-yaml-guard.js +0 -79
- package/dist/modules/access/roles-yaml-guard.js.map +0 -1
- package/dist/modules/diff/diff-paths.d.ts +0 -2
- package/dist/modules/diff/diff-paths.d.ts.map +0 -1
- package/dist/modules/diff/diff-paths.js +0 -9
- package/dist/modules/diff/diff-paths.js.map +0 -1
- package/dist/modules/groups/group-provision.service.d.ts +0 -130
- package/dist/modules/groups/group-provision.service.d.ts.map +0 -1
- package/dist/modules/groups/group-provision.service.js +0 -288
- package/dist/modules/groups/group-provision.service.js.map +0 -1
- package/dist/modules/groups/groups.contract.d.ts +0 -106
- package/dist/modules/groups/groups.contract.d.ts.map +0 -1
- package/dist/modules/groups/groups.contract.js +0 -36
- package/dist/modules/groups/groups.contract.js.map +0 -1
- package/dist/modules/groups/groups.routes.d.ts +0 -42
- package/dist/modules/groups/groups.routes.d.ts.map +0 -1
- package/dist/modules/groups/groups.routes.js +0 -379
- package/dist/modules/groups/groups.routes.js.map +0 -1
- package/dist/modules/groups/groups.service.d.ts +0 -60
- package/dist/modules/groups/groups.service.d.ts.map +0 -1
- package/dist/modules/groups/groups.service.js +0 -172
- package/dist/modules/groups/groups.service.js.map +0 -1
- package/dist/modules/groups/index.d.ts +0 -7
- package/dist/modules/groups/index.d.ts.map +0 -1
- package/dist/modules/groups/index.js +0 -6
- package/dist/modules/groups/index.js.map +0 -1
- package/dist/modules/groups/join-proposals.d.ts +0 -53
- package/dist/modules/groups/join-proposals.d.ts.map +0 -1
- package/dist/modules/groups/join-proposals.js +0 -67
- package/dist/modules/groups/join-proposals.js.map +0 -1
- package/dist/modules/groups/join-requests.service.d.ts +0 -81
- package/dist/modules/groups/join-requests.service.d.ts.map +0 -1
- package/dist/modules/groups/join-requests.service.js +0 -135
- package/dist/modules/groups/join-requests.service.js.map +0 -1
- package/dist/modules/mcp/mcp-session-store.d.ts +0 -74
- package/dist/modules/mcp/mcp-session-store.d.ts.map +0 -1
- package/dist/modules/mcp/mcp-session-store.js +0 -131
- package/dist/modules/mcp/mcp-session-store.js.map +0 -1
- package/dist/modules/workflow/file-change-notifier.d.ts +0 -38
- package/dist/modules/workflow/file-change-notifier.d.ts.map +0 -1
- package/dist/modules/workflow/file-change-notifier.js +0 -22
- package/dist/modules/workflow/file-change-notifier.js.map +0 -1
- package/dist/modules/workflow/git/branch-name.d.ts +0 -10
- package/dist/modules/workflow/git/branch-name.d.ts.map +0 -1
- package/dist/modules/workflow/git/branch-name.js +0 -76
- package/dist/modules/workflow/git/branch-name.js.map +0 -1
- package/dist/modules/workflow/git/clone-config.d.ts +0 -61
- package/dist/modules/workflow/git/clone-config.d.ts.map +0 -1
- package/dist/modules/workflow/git/clone-config.js +0 -69
- package/dist/modules/workflow/git/clone-config.js.map +0 -1
- package/dist/modules/workflow/git/mutex.d.ts +0 -11
- package/dist/modules/workflow/git/mutex.d.ts.map +0 -1
- package/dist/modules/workflow/git/mutex.js +0 -23
- package/dist/modules/workflow/git/mutex.js.map +0 -1
- package/dist/modules/workflow/locking-filesystem.d.ts +0 -137
- package/dist/modules/workflow/locking-filesystem.d.ts.map +0 -1
- package/dist/modules/workflow/locking-filesystem.js +0 -553
- package/dist/modules/workflow/locking-filesystem.js.map +0 -1
- package/dist/modules/workflow/read-only-filesystem.d.ts +0 -24
- package/dist/modules/workflow/read-only-filesystem.d.ts.map +0 -1
- package/dist/modules/workflow/read-only-filesystem.js +0 -39
- package/dist/modules/workflow/read-only-filesystem.js.map +0 -1
- package/dist/modules/workflow/workflow.errors.d.ts +0 -197
- package/dist/modules/workflow/workflow.errors.d.ts.map +0 -1
- package/dist/modules/workflow/workflow.errors.js +0 -298
- package/dist/modules/workflow/workflow.errors.js.map +0 -1
- package/dist/modules/workspace/bevel-ignore.d.ts.map +0 -1
- package/dist/modules/workspace/bevel-ignore.js.map +0 -1
- package/dist/modules/workspace/kb-seed.interface.d.ts +0 -36
- package/dist/modules/workspace/kb-seed.interface.d.ts.map +0 -1
- package/dist/modules/workspace/kb-seed.interface.js +0 -2
- package/dist/modules/workspace/kb-seed.interface.js.map +0 -1
- package/dist/modules/workspace/kb-seed.service.d.ts +0 -125
- package/dist/modules/workspace/kb-seed.service.d.ts.map +0 -1
- package/dist/modules/workspace/kb-seed.service.js +0 -535
- package/dist/modules/workspace/kb-seed.service.js.map +0 -1
- package/dist/modules/workspace/plugins-migration.d.ts +0 -50
- package/dist/modules/workspace/plugins-migration.d.ts.map +0 -1
- package/dist/modules/workspace/plugins-migration.js +0 -379
- package/dist/modules/workspace/plugins-migration.js.map +0 -1
- package/dist/shared/fs-errors.d.ts +0 -8
- package/dist/shared/fs-errors.d.ts.map +0 -1
- package/dist/shared/fs-errors.js +0 -11
- package/dist/shared/fs-errors.js.map +0 -1
- package/dist/shared/fs-walk.d.ts +0 -23
- package/dist/shared/fs-walk.d.ts.map +0 -1
- package/dist/shared/fs-walk.js +0 -42
- package/dist/shared/fs-walk.js.map +0 -1
- package/dist/shared/hash-email.d.ts +0 -11
- package/dist/shared/hash-email.d.ts.map +0 -1
- package/dist/shared/hash-email.js +0 -14
- package/dist/shared/hash-email.js.map +0 -1
- package/dist/shared/kb-walk.d.ts +0 -52
- package/dist/shared/kb-walk.d.ts.map +0 -1
- package/dist/shared/kb-walk.js +0 -76
- package/dist/shared/kb-walk.js.map +0 -1
- package/src/modules/diff/diff-paths.ts +0 -9
- package/src/modules/mcp/__tests__/mcp-session-store.test.ts +0 -151
- package/src/modules/mcp/__tests__/mcp.routes.session.test.ts +0 -226
- package/src/modules/mcp/mcp-session-store.ts +0 -162
- package/src/shared/__tests__/fs-walk.test.ts +0 -63
- package/src/shared/__tests__/kb-walk.test.ts +0 -107
- package/src/shared/fs-errors.ts +0 -10
- package/src/shared/fs-walk.ts +0 -45
- package/src/shared/hash-email.ts +0 -14
- package/src/shared/kb-walk.ts +0 -95
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
+
import { logger } from '../shared/logging.js';
|
|
2
3
|
import type { AuthProviderPlugin } from '../modules/auth/auth.routes.js';
|
|
3
4
|
import type { AuthUser } from '@bevel-software/platform-shared';
|
|
4
5
|
import {
|
|
@@ -16,12 +17,20 @@ import { WorkspaceService } from '../modules/workspace/workspace.service.js';
|
|
|
16
17
|
import { RoutineWritePolicyService } from '../modules/workspace/routine-write-policy.js';
|
|
17
18
|
import { KbStartupRunner } from '../modules/workspace/startup/kb-startup-runner.js';
|
|
18
19
|
import { GroupsToPluginsStep } from '../modules/workspace/startup/steps/groups-to-plugins.step.js';
|
|
20
|
+
import { PluginDisplayNamesStep } from '../modules/workspace/startup/steps/plugin-display-names.step.js';
|
|
19
21
|
import { PluginManifestsStep } from '../modules/workspace/startup/steps/plugin-manifests.step.js';
|
|
22
|
+
import { PersonalSpacesStep } from '../modules/workspace/startup/steps/personal-spaces.step.js';
|
|
20
23
|
import { TemplateFilesStep } from '../modules/workspace/startup/steps/template-files.step.js';
|
|
21
24
|
import { RolesYamlStep } from '../modules/workspace/startup/steps/roles-yaml.step.js';
|
|
22
25
|
import { buildSeedTree } from '../modules/workspace/startup/steps/seed-tree.js';
|
|
23
26
|
import { DeploymentSettingsService } from '../modules/settings/deployment-settings.service.js';
|
|
24
27
|
import { KbSyncService } from '../modules/kb-sync/kb-sync.service.js';
|
|
28
|
+
import { NodeFs } from '../modules/kb-fs/node-fs.js';
|
|
29
|
+
import { assertKbDirNameFree } from '../modules/kb-fs/repo-path.js';
|
|
30
|
+
import type { IFsProbe, ITreeWalker } from '../shared/fs.contract.js';
|
|
31
|
+
import type { IGitRunner } from '../shared/git.contract.js';
|
|
32
|
+
import { AdvisoryLease, AdvisoryLock } from '../modules/database/advisory-lock.js';
|
|
33
|
+
import { holdCommitWorkerLease, withStartupTask, type LeaseLoopHandle } from './lifecycle.js';
|
|
25
34
|
|
|
26
35
|
/** The hosted MCP endpoint at a deployment address, with any userinfo stripped. */
|
|
27
36
|
function mcpEndpointUrl(publicBackendUrl: string): string {
|
|
@@ -43,18 +52,25 @@ import { DocExtractService } from '../modules/workspace/file-readers/doc-extract
|
|
|
43
52
|
import { UuidSessionSink, type ISessionSink } from '../modules/workspace/session-sink.js';
|
|
44
53
|
import { AuthService } from '../modules/auth/auth.service.js';
|
|
45
54
|
import { AccountErasureService } from '../modules/auth/account-erasure.service.js';
|
|
46
|
-
import { OidcAuthProvider } from '../modules/auth/oidc-auth-provider.js';
|
|
55
|
+
import { OidcAuthProvider, oidcSettingsFrom } from '../modules/auth/oidc-auth-provider.js';
|
|
47
56
|
import { createAuthMiddleware } from '../modules/auth/auth.middleware.js';
|
|
48
|
-
import { AccessControlService } from '../modules/access/access-control.service.js';
|
|
57
|
+
import { AccessControlService, loadActiveGroups } from '../modules/access/access-control.service.js';
|
|
49
58
|
import { CreatorAccessService } from '../modules/access/creator-access.js';
|
|
59
|
+
import { ChangeReadGate } from '../modules/access/change-read-gate.js';
|
|
50
60
|
import { GroupsAdminService } from '../modules/access/groups-admin.service.js';
|
|
61
|
+
import { UserAccessRemovalService } from '../modules/access/user-access-removal.service.js';
|
|
51
62
|
import { PendingSkillsService, SkillService } from '../modules/skills/index.js';
|
|
52
|
-
import { ToolManualService } from '../modules/tool-manuals/index.js';
|
|
63
|
+
import { PendingToolsService, ToolManualService } from '../modules/tool-manuals/index.js';
|
|
53
64
|
import { McpServerEditService } from '../modules/tool-manuals/mcp-server-edit.service.js';
|
|
65
|
+
import { ToolDeleteService } from '../modules/tool-manuals/tool-delete.service.js';
|
|
54
66
|
import {
|
|
55
67
|
PluginIndexService,
|
|
68
|
+
pluginFolderBelowRoot,
|
|
56
69
|
PluginProvisionService,
|
|
57
70
|
JoinRequestsService,
|
|
71
|
+
PluginJoinRequestJobs,
|
|
72
|
+
JoinRequestNotReadyError,
|
|
73
|
+
DbJoinRequestStore,
|
|
58
74
|
PluginLinkIndex,
|
|
59
75
|
PluginLinksService,
|
|
60
76
|
PluginRenameService,
|
|
@@ -69,7 +85,7 @@ import {
|
|
|
69
85
|
DbGitHubFacadeCredentialsStore,
|
|
70
86
|
CLAUDE_CONSUMER,
|
|
71
87
|
GITHUB_LINK_KEY_KIND,
|
|
72
|
-
|
|
88
|
+
GITHUB_LINK_KEY_SPEC,
|
|
73
89
|
} from '../modules/marketplace/github-facade/index.js';
|
|
74
90
|
import {
|
|
75
91
|
DbSecretsVaultService,
|
|
@@ -78,6 +94,7 @@ import {
|
|
|
78
94
|
} from '../modules/secrets-vault/index.js';
|
|
79
95
|
import { ConnectionProbeService } from '../modules/connection-probe/index.js';
|
|
80
96
|
import { GitService } from '../modules/workflow/git/git.service.js';
|
|
97
|
+
import { NodeGitRunner } from '../modules/workflow/git/node-git-runner.js';
|
|
81
98
|
import { PullRequestService } from '../modules/workflow/git/pull-request.service.js';
|
|
82
99
|
import { WorkspaceMutex } from '../modules/kb-fs/mutex.js';
|
|
83
100
|
import { assertGitVersion } from '../modules/workflow/git/git-version.js';
|
|
@@ -112,8 +129,9 @@ import {
|
|
|
112
129
|
createManualAuthMiddleware,
|
|
113
130
|
} from '../modules/tool-auth/tool-auth.middleware.js';
|
|
114
131
|
import { unmeteredLlmUsage, type ILlmUsageMeter } from '../modules/tool-auth/llm-usage-meter.js';
|
|
115
|
-
import { McpSessionStore } from '../modules/mcp/mcp-session-store.js';
|
|
116
132
|
import { McpService } from '../modules/mcp/mcp.service.js';
|
|
133
|
+
import { AgentAuditService, retentionDaysFrom } from '../modules/audit/agent-audit.service.js';
|
|
134
|
+
import { readAgentPreamble, type AgentPreambleReader } from '../modules/agent-instructions/index.js';
|
|
117
135
|
import { createMcpAuthMiddleware } from '../modules/mcp/mcp-auth.middleware.js';
|
|
118
136
|
import { BevelOAuthProvider } from '../modules/mcp/oauth/bevel-oauth-provider.js';
|
|
119
137
|
import { getOAuthProtectedResourceMetadataUrl } from '@modelcontextprotocol/sdk/server/auth/router.js';
|
|
@@ -139,6 +157,26 @@ import { registerCatalogCacheInvalidation } from './catalog-cache-invalidation.j
|
|
|
139
157
|
export interface CoreServices {
|
|
140
158
|
config: CoreConfig;
|
|
141
159
|
db: Database;
|
|
160
|
+
/**
|
|
161
|
+
* Reading the disk without locks — the one tree walk and the one path
|
|
162
|
+
* probe (see `shared/fs.contract.ts`). Every core module that reads a
|
|
163
|
+
* checkout is handed this; an overlay's own readers take it too, rather
|
|
164
|
+
* than carrying a `readdir` loop or an errno check of their own.
|
|
165
|
+
*/
|
|
166
|
+
disk: ITreeWalker & IFsProbe;
|
|
167
|
+
/**
|
|
168
|
+
* Running git — the one runner every module shells out through, carrying
|
|
169
|
+
* the deployment's deadline. Exposed like `disk` so an overlay's own git
|
|
170
|
+
* callers run under the same ceiling rather than spawning their own.
|
|
171
|
+
*/
|
|
172
|
+
gitRunner: IGitRunner;
|
|
173
|
+
/**
|
|
174
|
+
* The commit-worker lease loop (see `core/lifecycle.ts`). `held` says
|
|
175
|
+
* whether THIS process is the one draining the queue; `stop()` is the
|
|
176
|
+
* shutdown sequence's way of finishing the in-flight commit and handing the
|
|
177
|
+
* lease to the replacement.
|
|
178
|
+
*/
|
|
179
|
+
commitWorker: LeaseLoopHandle;
|
|
142
180
|
workspaceService: WorkspaceService;
|
|
143
181
|
/**
|
|
144
182
|
* The KB startup phase (see `startup/on-server-start.ts`): run at the
|
|
@@ -150,15 +188,33 @@ export interface CoreServices {
|
|
|
150
188
|
docExtractService: DocExtractService;
|
|
151
189
|
accessControl: AccessControlService;
|
|
152
190
|
creatorAccess: CreatorAccessService;
|
|
191
|
+
/** Read-before-write, for the surfaces that ask ahead of the lock (see `access-model/change-gate.ts`). */
|
|
192
|
+
changeGate: ChangeReadGate;
|
|
153
193
|
sessionOntologyService: SessionOntologyService;
|
|
154
194
|
routineWritePolicy: RoutineWritePolicyService;
|
|
155
195
|
skillService: SkillService;
|
|
156
196
|
pendingSkillsService: PendingSkillsService;
|
|
157
197
|
toolManualService: ToolManualService;
|
|
198
|
+
pendingToolsService: PendingToolsService;
|
|
199
|
+
/**
|
|
200
|
+
* Reads the admin's `mcp-description.md` on the default branch with
|
|
201
|
+
* platform rights: the one reader behind every MCP session's instructions
|
|
202
|
+
* and `GET /api/agent/instructions`. See modules/agent-instructions.
|
|
203
|
+
*/
|
|
204
|
+
readAgentPreamble: AgentPreambleReader;
|
|
158
205
|
mcpServerEditService: McpServerEditService;
|
|
206
|
+
/** Deleting one tool — the owner's verb (see ToolDeleteService). */
|
|
207
|
+
toolDeleteService: ToolDeleteService;
|
|
159
208
|
pluginIndexService: PluginIndexService;
|
|
160
209
|
pluginProvisionService: PluginProvisionService;
|
|
161
210
|
joinRequestsService: JoinRequestsService;
|
|
211
|
+
/**
|
|
212
|
+
* Records a join request and finishes it in the background. Its `sweep()`
|
|
213
|
+
* runs once at boot — see `createCoreServer`, after the knowledge-base
|
|
214
|
+
* startup phase — so a request recorded before a restart is completed or
|
|
215
|
+
* marked failed after it rather than lost.
|
|
216
|
+
*/
|
|
217
|
+
pluginJoinRequestJobs: PluginJoinRequestJobs;
|
|
162
218
|
/** Which plugins hold which skills (inline or linked) — see `PluginLinkIndex`. */
|
|
163
219
|
pluginLinkIndex: PluginLinkIndex;
|
|
164
220
|
/** Link / unlink / repair shared skills into plugins. */
|
|
@@ -190,6 +246,8 @@ export interface CoreServices {
|
|
|
190
246
|
adminAccess: AdminAccessService;
|
|
191
247
|
/** Manual-mode groups CRUD + the manual→IdP retirement half. */
|
|
192
248
|
groupsAdminService: GroupsAdminService;
|
|
249
|
+
/** Removes a deleted account's address from roles, groups and access rules. */
|
|
250
|
+
userAccessRemovalService: UserAccessRemovalService;
|
|
193
251
|
/**
|
|
194
252
|
* Build the debounced directory → `synced-groups.yaml` materializer for a
|
|
195
253
|
* directory source an OVERLAY provides (e.g. a SCIM mirror fed by the IdP's
|
|
@@ -227,6 +285,8 @@ export interface CoreServices {
|
|
|
227
285
|
* advertise the same pointer the auth middleware does.
|
|
228
286
|
*/
|
|
229
287
|
mcpResourceMetadataUrl: string;
|
|
288
|
+
/** The Audit log: what every connected agent and key called, and the revoke of an agent's grant. */
|
|
289
|
+
agentAuditService: AgentAuditService;
|
|
230
290
|
toolRegistry: ToolRegistry;
|
|
231
291
|
toolAuthMiddleware: ReturnType<typeof createToolAuthMiddleware>;
|
|
232
292
|
manualAuthMiddleware: ReturnType<typeof createManualAuthMiddleware>;
|
|
@@ -287,10 +347,14 @@ export async function createCoreServices(
|
|
|
287
347
|
protectedBranches: settings.resolve('protectedBranches'),
|
|
288
348
|
};
|
|
289
349
|
if (!validateBranchModel(branchModel)) configureBranchModel(branchModel);
|
|
290
|
-
// The
|
|
291
|
-
//
|
|
292
|
-
//
|
|
293
|
-
|
|
350
|
+
// The layout variables that were retired this release, folded into their
|
|
351
|
+
// saved settings before anything reads the layout — so the boot that imports
|
|
352
|
+
// them also RUNS on the imported names rather than on the defaults.
|
|
353
|
+
await settings.importLegacyLayoutEnv();
|
|
354
|
+
// The KB layout — the three renameable roots and the agent guide's file name
|
|
355
|
+
// — applied the same way and at the same moment, before any service captures
|
|
356
|
+
// one of them. Unlike the branch model it always resolves (every name has a
|
|
357
|
+
// default), so an invalid value is a real misconfiguration and stops the boot.
|
|
294
358
|
configureKbLayout(settings.resolveKbLayout());
|
|
295
359
|
// A token supplied through the setup screen has to reach the credential
|
|
296
360
|
// helper, which reads `$GITHUB_TOKEN` at call time.
|
|
@@ -301,11 +365,25 @@ export async function createCoreServices(
|
|
|
301
365
|
// The remote URL and username are read per-operation instead, so an admin
|
|
302
366
|
// finishing setup can clone immediately without bouncing the process.
|
|
303
367
|
const kbDirName = settings.resolve('kbDirName') || 'knowledge-base';
|
|
368
|
+
// A checkout folder named like one of the repository's own roots would make
|
|
369
|
+
// every path under that root read as the checkout itself, and the root
|
|
370
|
+
// unnameable. Both are operator settings, so the collision is refused here,
|
|
371
|
+
// by name, before any service captures either.
|
|
372
|
+
assertKbDirNameFree(kbDirName, settings.resolveKbLayout());
|
|
373
|
+
// The disk: one walk, one probe, for every reader below.
|
|
374
|
+
const disk = new NodeFs();
|
|
375
|
+
// How git is run, for every module that runs it: one environment, one buffer
|
|
376
|
+
// ceiling, one error shape, and — the reason it exists — one deadline, so a
|
|
377
|
+
// git that never returns cannot hold a workspace (and with it the commit
|
|
378
|
+
// queue) open indefinitely. See `shared/git.contract.ts`.
|
|
379
|
+
const gitRunner = new NodeGitRunner(config.gitTimeoutMs);
|
|
304
380
|
const workspaceService = new WorkspaceService(
|
|
305
381
|
config.workspacesRoot,
|
|
306
382
|
() => settings.resolve('kbRepoUrl'),
|
|
307
383
|
kbDirName,
|
|
384
|
+
disk,
|
|
308
385
|
() => settings.resolve('gitUsername') || 'x-access-token',
|
|
386
|
+
gitRunner,
|
|
309
387
|
);
|
|
310
388
|
// The KB startup phase: every seeding, scaffolding and migration concern,
|
|
311
389
|
// run through one runner at the deployment's quiet moments (boot + setup
|
|
@@ -318,10 +396,23 @@ export async function createCoreServices(
|
|
|
318
396
|
// reshapes trees the template top-up would otherwise re-scaffold — then
|
|
319
397
|
// whatever the distribution appends.
|
|
320
398
|
const kbStartupSteps = [
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
399
|
+
// (The note about anything sitting BESIDE a checkout is not a step: it is
|
|
400
|
+
// read-only, needs no remote, and must be said even on a deployment whose
|
|
401
|
+
// setup never finished — so `noteBesideCheckout` runs once from the server
|
|
402
|
+
// builder, ahead of this gated phase.)
|
|
403
|
+
new GroupsToPluginsStep(disk),
|
|
404
|
+
new PluginManifestsStep(disk),
|
|
405
|
+
// After the manifests step: a folder that only just got its manifest got
|
|
406
|
+
// one the renderer wrote, which already carries the display name — the
|
|
407
|
+
// backfill then has nothing to do for it. Ordered the other way, the
|
|
408
|
+
// backfill would walk a tree still missing those manifests.
|
|
409
|
+
new PluginDisplayNamesStep(disk),
|
|
410
|
+
new PersonalSpacesStep(disk),
|
|
411
|
+
// A getter, not a value: the step is built here, while the process may
|
|
412
|
+
// still hold the defaults, and the save that completes first-run setup
|
|
413
|
+
// applies the admin's answer afterwards.
|
|
414
|
+
new TemplateFilesStep(disk, extraDirs, () => settings.resolveAgentsFileLink()),
|
|
415
|
+
new RolesYamlStep(disk, [config.adminEmail]),
|
|
325
416
|
...(ports.kbStartupSteps ?? []),
|
|
326
417
|
];
|
|
327
418
|
const kbStartupRunner = new KbStartupRunner({
|
|
@@ -330,6 +421,7 @@ export async function createCoreServices(
|
|
|
330
421
|
// the first thing that needs them.
|
|
331
422
|
kbRepoUrl: () => settings.resolve('kbRepoUrl'),
|
|
332
423
|
gitUsername: () => settings.resolve('gitUsername') || 'x-access-token',
|
|
424
|
+
gitToken: () => settings.resolve('gitToken'),
|
|
333
425
|
workspacesRoot: config.workspacesRoot,
|
|
334
426
|
kbDirName,
|
|
335
427
|
templateDir: config.kbTemplateDir,
|
|
@@ -339,7 +431,8 @@ export async function createCoreServices(
|
|
|
339
431
|
// same answer `SEED_ADMIN_EMAILS` used to ask for a second time.
|
|
340
432
|
seedAdminEmails: [config.adminEmail],
|
|
341
433
|
steps: kbStartupSteps,
|
|
342
|
-
buildSeedTree: buildSeedTree(config.kbTemplateDir, extraDirs, [config.adminEmail]),
|
|
434
|
+
buildSeedTree: buildSeedTree(disk, config.kbTemplateDir, extraDirs, [config.adminEmail]),
|
|
435
|
+
gitRunner,
|
|
343
436
|
});
|
|
344
437
|
// Shared, workspace-independent store for oversized `call_tool_chain` results,
|
|
345
438
|
// read back via `read_file`. Sibling of `workspacesRoot`, never committed.
|
|
@@ -351,15 +444,24 @@ export async function createCoreServices(
|
|
|
351
444
|
// rescues (`roles.yaml` and any `access.md`) — the SAME list
|
|
352
445
|
// `AdminAccessService` below is given, so the admin surfaces and the write
|
|
353
446
|
// gate cannot disagree about who the owner is. They did: the owner could
|
|
354
|
-
// open
|
|
447
|
+
// open App roles and then be refused the save, with the UI showing
|
|
355
448
|
// them as an admin and the gate saying "Eligible: Admin".
|
|
356
|
-
const accessControl = new AccessControlService(
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
449
|
+
const accessControl = new AccessControlService(
|
|
450
|
+
workspaceService,
|
|
451
|
+
kbDirName,
|
|
452
|
+
disk,
|
|
453
|
+
[config.adminEmail],
|
|
454
|
+
gitRunner,
|
|
455
|
+
);
|
|
456
|
+
// Creator read-grant on creation: read is default-deny and the roots grant
|
|
457
|
+
// it to nobody, so every surface that starts a new folder at a root (human
|
|
458
|
+
// routes, agent tools, upload apply) consults this planner to keep the new
|
|
459
|
+
// folder visible to its creator.
|
|
460
|
+
const creatorAccess = new CreatorAccessService(workspaceService, accessControl, kbDirName, disk);
|
|
461
|
+
// Read-before-write: the gate every lock acquire asks, on every branch —
|
|
462
|
+
// nothing is created, changed or removed where its author cannot read,
|
|
463
|
+
// except that new folder at a root (see `access-model/change-gate.ts`).
|
|
464
|
+
const changeGate = new ChangeReadGate(workspaceService, accessControl, kbDirName, disk);
|
|
363
465
|
|
|
364
466
|
// Ontology-session boundary: records each agent run's touched ontologies and
|
|
365
467
|
// blocks writes once a run has crossed ontologies. Postgres-backed so the
|
|
@@ -371,31 +473,31 @@ export async function createCoreServices(
|
|
|
371
473
|
// one run, unlike the Postgres-backed ontology touched-set above.
|
|
372
474
|
const routineWritePolicy = new RoutineWritePolicyService();
|
|
373
475
|
// Skills: discovered from the default-branch workspace only (global catalog).
|
|
374
|
-
const skillService = new SkillService(workspaceService, accessControl, kbDirName);
|
|
476
|
+
const skillService = new SkillService(workspaceService, accessControl, kbDirName, disk);
|
|
375
477
|
// Tool manuals: user-authored `*.tool` files under `Plugins/` in the default
|
|
376
478
|
// branch — access-controlled like Skills, served to external agents via
|
|
377
479
|
// `GET /api/agent/all-tools` and registered on the MCP proxy's UTCP client.
|
|
378
480
|
// Where plugins come from: one walk of the plugins root that reads every
|
|
379
481
|
// plugin folder in whichever file shape it carries (see
|
|
380
482
|
// modules/plugins/discovery). Nothing to configure, nothing to document.
|
|
381
|
-
const pluginSource = new KbPluginSource();
|
|
382
|
-
const toolManualService = new ToolManualService(workspaceService, accessControl, kbDirName,
|
|
483
|
+
const pluginSource = new KbPluginSource(disk);
|
|
484
|
+
const toolManualService = new ToolManualService(workspaceService, accessControl, kbDirName, disk, pluginSource);
|
|
383
485
|
// Plugins: the folders under `Plugins/` that carry a
|
|
384
486
|
// team's skills AND the tools they need. Enumerated for EVERY authenticated
|
|
385
487
|
// caller — a plugin they cannot read still exists for them, as a locked one —
|
|
386
488
|
// with the counts read off the two catalogs above rather than a second scan.
|
|
387
489
|
// The link index resolves manifests against the released catalog, and the
|
|
388
490
|
// plugin index counts through it (inline + linked), so it comes first.
|
|
389
|
-
const pluginLinkIndex = new PluginLinkIndex(workspaceService, skillService, accessControl, kbDirName,
|
|
491
|
+
const pluginLinkIndex = new PluginLinkIndex(workspaceService, skillService, accessControl, kbDirName, pluginSource);
|
|
390
492
|
const pluginIndexService = new PluginIndexService(
|
|
391
493
|
workspaceService,
|
|
392
494
|
accessControl,
|
|
393
495
|
skillService,
|
|
394
496
|
toolManualService,
|
|
395
497
|
kbDirName,
|
|
498
|
+
pluginSource,
|
|
396
499
|
Date.now,
|
|
397
500
|
pluginLinkIndex,
|
|
398
|
-
pluginSource,
|
|
399
501
|
);
|
|
400
502
|
// Auth service — resolves identities for login, PR author attribution, and
|
|
401
503
|
// access lookups. (Change requests now store the author email directly, so
|
|
@@ -407,6 +509,7 @@ export async function createCoreServices(
|
|
|
407
509
|
adminEmail: config.adminEmail,
|
|
408
510
|
adminPassword: config.adminPassword,
|
|
409
511
|
allowedEmailDomains: parseDomainList(settings.resolve('allowedEmailDomains')),
|
|
512
|
+
loginPasswordEnabled: config.loginPasswordEnabled,
|
|
410
513
|
});
|
|
411
514
|
const authMiddleware = createAuthMiddleware(authService);
|
|
412
515
|
|
|
@@ -426,15 +529,25 @@ export async function createCoreServices(
|
|
|
426
529
|
kbDirName,
|
|
427
530
|
workspaceMutex,
|
|
428
531
|
accessControl,
|
|
532
|
+
gitRunner,
|
|
429
533
|
);
|
|
534
|
+
// `get_skill` with a `version` reads the skill out of the default branch's
|
|
535
|
+
// history; the skill service is built before git exists, so git is handed
|
|
536
|
+
// to it here.
|
|
537
|
+
skillService.setHistory(gitService);
|
|
430
538
|
// A fresh clone has already fetched every ref — let the git layer skip the
|
|
431
539
|
// redundant implicit `git fetch` on the first `listBranches` after bootstrap.
|
|
432
540
|
workspaceService.setWorkspaceClonedListener((id) => gitService.noteWorkspaceFetched(id));
|
|
541
|
+
// A branch listing is also the platform's memory of which branch names it
|
|
542
|
+
// has ever heard of — what tells a deleted branch (410) from one that never
|
|
543
|
+
// existed (404) when a bootstrap finds no such ref on origin.
|
|
544
|
+
gitService.setBranchesListedListener((names) => workspaceService.noteBranchesListed(names));
|
|
433
545
|
const pullRequestService = new PullRequestService(
|
|
434
546
|
db,
|
|
435
547
|
workspaceService,
|
|
436
548
|
accessControl,
|
|
437
549
|
gitService,
|
|
550
|
+
config.configuredPublicFrontendUrl,
|
|
438
551
|
);
|
|
439
552
|
const diffService = new DiffService(
|
|
440
553
|
workspaceService,
|
|
@@ -442,6 +555,7 @@ export async function createCoreServices(
|
|
|
442
555
|
config.workspacesRoot,
|
|
443
556
|
config.backupsRoot,
|
|
444
557
|
kbDirName,
|
|
558
|
+
disk,
|
|
445
559
|
);
|
|
446
560
|
// Late-bind the diff service into WorkspaceService so file writes/moves
|
|
447
561
|
// trigger backup updates. (GitService used to take a diffService too — for
|
|
@@ -498,6 +612,7 @@ export async function createCoreServices(
|
|
|
498
612
|
fileLockService,
|
|
499
613
|
pendingCommitsService,
|
|
500
614
|
kbDirName,
|
|
615
|
+
changeGate,
|
|
501
616
|
eventBus,
|
|
502
617
|
fileChangeNotifier,
|
|
503
618
|
// Exposed as `workflowService.hooks` — the SAME instance GitService and
|
|
@@ -511,6 +626,38 @@ export async function createCoreServices(
|
|
|
511
626
|
// only needs to read files at refs and to close a request whose proposals
|
|
512
627
|
// have all landed.
|
|
513
628
|
const joinRequestsService = new JoinRequestsService(workspaceService, workflowService);
|
|
629
|
+
// The OTHER half of a join request: the row the subscribe endpoint writes
|
|
630
|
+
// before it answers, and the branch/clone/commit/push/change-request work
|
|
631
|
+
// that runs against it afterwards. The row is what lets the click be
|
|
632
|
+
// answered in a database round-trip instead of a clone, and what survives a
|
|
633
|
+
// restart with the request still owed.
|
|
634
|
+
const pluginJoinRequestJobs = new PluginJoinRequestJobs(new DbJoinRequestStore(db), {
|
|
635
|
+
workflow: workflowService,
|
|
636
|
+
workspaceService,
|
|
637
|
+
kbDirName,
|
|
638
|
+
// A record keys on the plugin's primary FOLDER below the root, which the
|
|
639
|
+
// catalog is the only thing that can turn back into a path and a name
|
|
640
|
+
// people read. Null once nothing answers to the key — a deleted plugin,
|
|
641
|
+
// a moved folder — which the job records as a failure the requester sees.
|
|
642
|
+
//
|
|
643
|
+
// An EMPTY catalog is not that. Discovery degrades to empty whenever it
|
|
644
|
+
// cannot read the knowledge base — a boot that has not finished cloning,
|
|
645
|
+
// a remote that blipped — and answering "null" then would tell everyone
|
|
646
|
+
// with a request outstanding that their plugin is gone, permanently, for
|
|
647
|
+
// a fault that healed in seconds. A request is only refused when the
|
|
648
|
+
// catalog has something to say and this key is absent from it; when it
|
|
649
|
+
// has nothing to say at all, the failure is raised as a transient one, so
|
|
650
|
+
// the row stays `pending` for the next sweep to retry.
|
|
651
|
+
target: async (pluginKey) => {
|
|
652
|
+
const catalog = await pluginIndexService.catalog();
|
|
653
|
+
if (catalog.length === 0) {
|
|
654
|
+
throw new JoinRequestNotReadyError('the plugin catalog is not available yet');
|
|
655
|
+
}
|
|
656
|
+
const entry = catalog.find((g) => pluginFolderBelowRoot(g.folders[0]) === pluginKey);
|
|
657
|
+
return entry ? { folder: entry.folders[0], displayName: entry.displayName } : null;
|
|
658
|
+
},
|
|
659
|
+
requester: (email) => authService.getUserByEmail(email),
|
|
660
|
+
});
|
|
514
661
|
// Links land as ordinary default-branch commits and change what the plugin
|
|
515
662
|
// index counts, so a link drops that cache too.
|
|
516
663
|
const pluginLinksService = new PluginLinksService(
|
|
@@ -530,6 +677,7 @@ export async function createCoreServices(
|
|
|
530
677
|
workflowService,
|
|
531
678
|
accessControl,
|
|
532
679
|
pluginSource,
|
|
680
|
+
disk,
|
|
533
681
|
kbDirName,
|
|
534
682
|
eventBus,
|
|
535
683
|
() => {
|
|
@@ -556,12 +704,15 @@ export async function createCoreServices(
|
|
|
556
704
|
knowledgeBaseMcp: { name: 'hexis', url: mcpEndpointUrl(config.publicBackendUrl) },
|
|
557
705
|
},
|
|
558
706
|
pluginSource,
|
|
707
|
+
disk,
|
|
708
|
+
gitRunner,
|
|
559
709
|
);
|
|
560
710
|
// Sibling of the workspaces root, like the spill store: one bare repo, one
|
|
561
711
|
// git namespace per caller (see marketplace-repo.service.ts).
|
|
562
712
|
const marketplaceRepo = new MarketplaceRepoService(
|
|
563
713
|
path.resolve(config.workspacesRoot, '..', 'marketplace.git'),
|
|
564
714
|
marketplaceCompiler,
|
|
715
|
+
gitRunner,
|
|
565
716
|
);
|
|
566
717
|
|
|
567
718
|
// Remote sync. Drives the workflow module's per-branch pull-and-announce
|
|
@@ -577,6 +728,7 @@ export async function createCoreServices(
|
|
|
577
728
|
accessControl,
|
|
578
729
|
toolManualService,
|
|
579
730
|
kbDirName,
|
|
731
|
+
disk,
|
|
580
732
|
);
|
|
581
733
|
|
|
582
734
|
// Plugin provisioning — the one privileged door that brings `Plugins/<name>/`
|
|
@@ -589,6 +741,8 @@ export async function createCoreServices(
|
|
|
589
741
|
accessControl,
|
|
590
742
|
kbDirName,
|
|
591
743
|
eventBus,
|
|
744
|
+
pluginSource,
|
|
745
|
+
disk,
|
|
592
746
|
);
|
|
593
747
|
|
|
594
748
|
// Pending skills: the other half of the catalog — skills that exist only on
|
|
@@ -603,16 +757,29 @@ export async function createCoreServices(
|
|
|
603
757
|
workflowService,
|
|
604
758
|
);
|
|
605
759
|
|
|
760
|
+
// The same missing half, for tools: a `.tool` manual or an `mcp.json` server
|
|
761
|
+
// an agent proposes is nowhere in the product until its change request
|
|
762
|
+
// merges. Built here for the same reason — it needs the workflow service —
|
|
763
|
+
// and stateless for the same reason.
|
|
764
|
+
const pendingToolsService = new PendingToolsService(
|
|
765
|
+
workspaceService,
|
|
766
|
+
accessControl,
|
|
767
|
+
toolManualService,
|
|
768
|
+
workflowService,
|
|
769
|
+
);
|
|
770
|
+
|
|
606
771
|
// Catalog freshness: the skill / tool-manual / plugin-index caches all scan
|
|
607
772
|
// the DEFAULT branch's working tree, and all three go stale on the same
|
|
608
|
-
// events (a commit, a working-tree write, a merge)
|
|
609
|
-
//
|
|
610
|
-
//
|
|
773
|
+
// events (a commit, a working-tree write, a merge) — as does the access
|
|
774
|
+
// model they are filtered through. Wired in one place so a new way of
|
|
775
|
+
// reaching the default branch cannot refresh two of them and leave the
|
|
776
|
+
// third serving last minute's answer.
|
|
611
777
|
registerCatalogCacheInvalidation({
|
|
612
778
|
eventBus,
|
|
613
779
|
fileChangeNotifier,
|
|
614
780
|
kbDirName,
|
|
615
781
|
catalogs: [toolManualService, skillService, pluginIndexService, pluginLinkIndex],
|
|
782
|
+
accessControl,
|
|
616
783
|
});
|
|
617
784
|
|
|
618
785
|
// Admin = `Admin` role in roles.yaml, resolved through the access model on the
|
|
@@ -654,6 +821,24 @@ export async function createCoreServices(
|
|
|
654
821
|
// UTCP client can resolve `${VAR}` from the caller's secrets at tool-call time.
|
|
655
822
|
registerBevelSecretsVariableLoader(secretsVaultService);
|
|
656
823
|
|
|
824
|
+
// Deleting ONE tool from its page — the owner's verb, the other end of the
|
|
825
|
+
// promise that made them the owner. Built here because it is the one service
|
|
826
|
+
// that spans both halves of a tool: the definition (a `.tool` file or an
|
|
827
|
+
// mcp.json entry) and the credentials stored under its name, which is why it
|
|
828
|
+
// can only exist once the vault does.
|
|
829
|
+
const toolDeleteService = new ToolDeleteService(
|
|
830
|
+
workspaceService,
|
|
831
|
+
workflowService,
|
|
832
|
+
accessControl,
|
|
833
|
+
toolManualService,
|
|
834
|
+
skillService,
|
|
835
|
+
pluginIndexService,
|
|
836
|
+
pluginSource,
|
|
837
|
+
secretsVaultService,
|
|
838
|
+
kbDirName,
|
|
839
|
+
disk,
|
|
840
|
+
);
|
|
841
|
+
|
|
657
842
|
// The credential probe: whether a tool's stored credential actually WORKS, as
|
|
658
843
|
// distinct from whether one is stored. Built here — after the vault and the
|
|
659
844
|
// tool catalog — because a probe needs both: the catalog to know what to
|
|
@@ -691,19 +876,23 @@ export async function createCoreServices(
|
|
|
691
876
|
|
|
692
877
|
// GDPR erasure path: admin-driven user deletion. The core service erases the
|
|
693
878
|
// rows it owns; each module contributes its slice as a participant.
|
|
694
|
-
const accountErasureService = new AccountErasureService(
|
|
879
|
+
const accountErasureService = new AccountErasureService(
|
|
880
|
+
db,
|
|
881
|
+
reviewWorkflowService,
|
|
882
|
+
ports.erasureParticipants ?? [],
|
|
883
|
+
);
|
|
695
884
|
|
|
696
885
|
// MCP (remote agent access). ExternalApiKeyService handles connection-key
|
|
697
|
-
// lifecycle
|
|
698
|
-
//
|
|
699
|
-
//
|
|
700
|
-
//
|
|
701
|
-
//
|
|
886
|
+
// lifecycle. McpService is a GENERIC, STATELESS proxy: per request it
|
|
887
|
+
// discovers the caller's catalog at /api/agent/all-tools over loopback and
|
|
888
|
+
// re-exposes every tool, dispatching calls back through the REST tool
|
|
889
|
+
// surface (so agent logic + metering live there, once). No MCP session is
|
|
890
|
+
// kept, so a restart is invisible to connected clients.
|
|
702
891
|
// Connection keys also come as GitHub-shaped links (`gho_…`, kind
|
|
703
892
|
// `github-link`): the same key, minted by the marketplace facade below when
|
|
704
893
|
// a person connects an account on claude.ai, told apart by its stored kind.
|
|
705
894
|
const externalApiKeyService = new ExternalApiKeyService(db, config.externalApiKeyPrefix, {
|
|
706
|
-
[GITHUB_LINK_KEY_KIND]:
|
|
895
|
+
[GITHUB_LINK_KEY_KIND]: GITHUB_LINK_KEY_SPEC,
|
|
707
896
|
});
|
|
708
897
|
|
|
709
898
|
// The facade that lets products which sync marketplaces only from a GitHub
|
|
@@ -723,9 +912,20 @@ export async function createCoreServices(
|
|
|
723
912
|
stateSecret: config.jwtSecret,
|
|
724
913
|
publicFrontendUrl: config.publicFrontendUrl,
|
|
725
914
|
});
|
|
726
|
-
|
|
915
|
+
// What every connected agent is told at initialize: the admin's preamble
|
|
916
|
+
// at the repository root, read as the platform (the root is default-deny
|
|
917
|
+
// for readers, and the preamble is a broadcast). One reader, two consumers:
|
|
918
|
+
// the proxy below composes in-process per request; the agent-facing route
|
|
919
|
+
// serves the same composition to the local bridge and the frontend card.
|
|
920
|
+
const readPreamble: AgentPreambleReader = () => readAgentPreamble(workspaceService, kbDirName, disk);
|
|
921
|
+
// The Audit log. Records through the proxy below (every call an external
|
|
922
|
+
// agent makes), reads keys through the key service so their shape is
|
|
923
|
+
// defined once, and prunes past the retention setting — read per sweep, so
|
|
924
|
+
// a change on the Deployment page applies without a restart.
|
|
925
|
+
const agentAuditService = new AgentAuditService(db, externalApiKeyService, () =>
|
|
926
|
+
retentionDaysFrom(settings.resolve('auditRetentionDays')),
|
|
927
|
+
);
|
|
727
928
|
const mcpService = new McpService(
|
|
728
|
-
mcpSessionStore,
|
|
729
929
|
{
|
|
730
930
|
// Loopback to our own REST tool surface — 127.0.0.1 (not localhost) to pin
|
|
731
931
|
// IPv4 and dodge resolver ambiguity. The proxy authenticates each call with
|
|
@@ -733,30 +933,33 @@ export async function createCoreServices(
|
|
|
733
933
|
loopbackBaseUrl: `http://127.0.0.1:${config.port}`,
|
|
734
934
|
// Manual namespace + UTCP variable prefix (KNOWLEDGE_BASE_API_URL / …).
|
|
735
935
|
manualName: 'KNOWLEDGE_BASE',
|
|
736
|
-
// Oversized chain results spill here too — an external MCP
|
|
936
|
+
// Oversized chain results spill here too — an external MCP caller has no
|
|
737
937
|
// ambient workspace, so it reads the spill back by ref via `read_file`.
|
|
738
938
|
spillStore,
|
|
739
939
|
// For the needs-authorization setup link surfaced to external agents.
|
|
740
940
|
publicFrontendUrl: config.publicFrontendUrl,
|
|
941
|
+
readAgentPreamble: readPreamble,
|
|
741
942
|
},
|
|
742
943
|
// Pre-dispatch per-user credential check: the vault answers "has this caller
|
|
743
944
|
// set it?" and the manual catalog answers "which user-scoped vars does this
|
|
744
945
|
// tool need?".
|
|
745
946
|
secretsVaultService,
|
|
746
947
|
toolManualService,
|
|
747
|
-
// Loopback bearer mint for OAuth/JWT
|
|
948
|
+
// Loopback bearer mint for OAuth/JWT requests — their own bearer would
|
|
748
949
|
// 401 at the connection-key/internal-only /api/agent/* hop.
|
|
749
950
|
internalTokenService,
|
|
750
|
-
//
|
|
951
|
+
// Grant reset for broken tool sign-ins. A closure because the
|
|
751
952
|
// provider is constructed just below (it needs nothing from McpService;
|
|
752
953
|
// the binding is only dereferenced at call time, long after boot).
|
|
753
954
|
(bearer) => mcpOAuthProvider.revokeByAccessToken(bearer),
|
|
955
|
+
// Every attributable call lands in the Audit log through this.
|
|
956
|
+
agentAuditService,
|
|
754
957
|
);
|
|
755
|
-
// A changed secret invalidates the proxy
|
|
756
|
-
// that user (null = shared secret → everyone)
|
|
757
|
-
// credential is retried on the very next
|
|
758
|
-
// out the failure memo's TTL.
|
|
759
|
-
secretsVaultService.onMutation((changedUserId) => mcpService.
|
|
958
|
+
// A changed secret invalidates what the proxy built from the old value for
|
|
959
|
+
// that user (null = shared secret → everyone): remembered manual failures,
|
|
960
|
+
// so a just-repaired credential is retried on the very next request instead
|
|
961
|
+
// of waiting out the failure memo's TTL, and pooled downstream connections.
|
|
962
|
+
secretsVaultService.onMutation((changedUserId) => mcpService.onSecretsChanged(changedUserId));
|
|
760
963
|
// MCP OAuth 2.1 authorization server (our own AS): lets MCP clients with no
|
|
761
964
|
// pre-shared connection key connect via the standard 401 → discovery → DCR →
|
|
762
965
|
// authorize (PKCE) flow. The authorize step routes the browser to /connect
|
|
@@ -801,6 +1004,7 @@ export async function createCoreServices(
|
|
|
801
1004
|
events: eventBus,
|
|
802
1005
|
kbDirName: kbDirName,
|
|
803
1006
|
creatorAccess,
|
|
1007
|
+
loadActiveGroups,
|
|
804
1008
|
});
|
|
805
1009
|
const toolHandlerFactory = createToolHandlerFactory(resolveToolContext);
|
|
806
1010
|
const toolAuthMiddleware = createToolAuthMiddleware(externalApiKeyService, internalTokenService);
|
|
@@ -820,16 +1024,17 @@ export async function createCoreServices(
|
|
|
820
1024
|
// retry budget AND recovery-agent budget exhausted) the worker emits
|
|
821
1025
|
// a `'system'` feedback notice that admins triage out of band.
|
|
822
1026
|
//
|
|
823
|
-
// The
|
|
824
|
-
//
|
|
825
|
-
//
|
|
826
|
-
//
|
|
827
|
-
//
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
1027
|
+
// The queue's recovery — rows a dead process left `running` go back to
|
|
1028
|
+
// `pending`, and working-tree dirt that pre-dates the queue is enqueued —
|
|
1029
|
+
// runs under the commit-worker lease, right before the worker starts (see
|
|
1030
|
+
// `withStartupTask` below). At boot, before the lease, it would reset rows
|
|
1031
|
+
// the outgoing process of a redeploy is still committing.
|
|
1032
|
+
const reconcileQueue = () =>
|
|
1033
|
+
pendingCommitsService.startupReconcile(
|
|
1034
|
+
workspaceService.knownWorkspaces(),
|
|
1035
|
+
{ scan: (ws) => workspaceService.scanOrphanedPaths(ws.id) },
|
|
1036
|
+
{ email: recoveryBot.email, name: recoveryBot.name },
|
|
1037
|
+
);
|
|
833
1038
|
const pendingCommitsWorker = new PendingCommitsWorker({
|
|
834
1039
|
service: pendingCommitsService,
|
|
835
1040
|
// The service IS the driver — passed directly rather than wrapped in a
|
|
@@ -854,33 +1059,39 @@ export async function createCoreServices(
|
|
|
854
1059
|
name: recoveryBot.name,
|
|
855
1060
|
},
|
|
856
1061
|
});
|
|
857
|
-
pendingCommitsWorker
|
|
1062
|
+
const leased = withStartupTask(pendingCommitsWorker, reconcileQueue);
|
|
1063
|
+
// Not `start()`: the worker runs only while this process holds the
|
|
1064
|
+
// commit-worker lease. On a redeploy the outgoing container still holds it,
|
|
1065
|
+
// so this one serves requests and declines to drain until that one exits;
|
|
1066
|
+
// then it takes the lease and starts. Two processes draining one shared
|
|
1067
|
+
// clone volume is the failure this prevents — see `core/lifecycle.ts`.
|
|
1068
|
+
const commitWorker = holdCommitWorkerLease(new AdvisoryLease(db, AdvisoryLock.CommitWorker), leased);
|
|
858
1069
|
|
|
859
1070
|
// SSO providers. The array REFERENCE is shared with the caller's port — an
|
|
860
1071
|
// overlay pushes its own plugins into it after construction (they mount when
|
|
861
|
-
// the server is built, later). Core contributes the generic OIDC provider
|
|
862
|
-
// when the env configures one.
|
|
1072
|
+
// the server is built, later). Core contributes the generic OIDC provider.
|
|
863
1073
|
const authProviders = ports.authProviders ?? [];
|
|
864
|
-
//
|
|
865
|
-
//
|
|
866
|
-
//
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
1074
|
+
// Registered unconditionally and resolved through settings on every use, so
|
|
1075
|
+
// an admin can configure SSO from the setup screen — or change it — without
|
|
1076
|
+
// a restart; the provider advertises itself only while the configuration is
|
|
1077
|
+
// complete. Env still wins, so a deployment that sets these keeps behaving
|
|
1078
|
+
// exactly as it did.
|
|
1079
|
+
authProviders.push(
|
|
1080
|
+
new OidcAuthProvider({
|
|
1081
|
+
settings: () => oidcSettingsFrom(settings),
|
|
1082
|
+
publicBackendUrl: config.publicBackendUrl,
|
|
1083
|
+
publicFrontendUrl: config.publicFrontendUrl,
|
|
1084
|
+
cookieSecure: config.publicBackendUrl.startsWith('https'),
|
|
1085
|
+
// A real sign-in proves the values that sign-in used. Recorded against
|
|
1086
|
+
// those — under their own key — so it says nothing about any saved
|
|
1087
|
+
// since, and cannot overwrite what was recorded about them.
|
|
1088
|
+
onSignedIn: async ({ issuerUrl, clientId, clientSecret }) => {
|
|
1089
|
+
const credentials = { issuerUrl, clientId, clientSecret };
|
|
1090
|
+
if ((await settings.oidcVerificationOf(credentials)) === 'verified') return;
|
|
1091
|
+
await settings.recordOidcVerification('verified', credentials);
|
|
1092
|
+
},
|
|
1093
|
+
}),
|
|
1094
|
+
);
|
|
884
1095
|
|
|
885
1096
|
// Materializer factory for an overlay-provided directory source: every
|
|
886
1097
|
// provisioning burst regenerates `synced-groups.yaml` on the default branch
|
|
@@ -904,7 +1115,7 @@ export async function createCoreServices(
|
|
|
904
1115
|
defaultBranchOf: () => DEFAULT_BRANCH,
|
|
905
1116
|
}),
|
|
906
1117
|
debounceMs: opts?.debounceMs,
|
|
907
|
-
log: opts?.log ?? ((message) =>
|
|
1118
|
+
log: opts?.log ?? ((message) => logger('directory-sync').warn(message)),
|
|
908
1119
|
});
|
|
909
1120
|
};
|
|
910
1121
|
// Groups — the "who you are" principal sets. Manual-mode CRUD on
|
|
@@ -918,11 +1129,28 @@ export async function createCoreServices(
|
|
|
918
1129
|
() => DEFAULT_BRANCH,
|
|
919
1130
|
eventBus,
|
|
920
1131
|
);
|
|
1132
|
+
// Account deletion's optional half: the erased address out of roles.yaml,
|
|
1133
|
+
// groups.yaml and every access rule, in one commit on the default branch.
|
|
1134
|
+
// The deployment owner is never removed this way.
|
|
1135
|
+
const userAccessRemovalService = new UserAccessRemovalService(
|
|
1136
|
+
workspaceService,
|
|
1137
|
+
workflowService,
|
|
1138
|
+
accessControl,
|
|
1139
|
+
disk,
|
|
1140
|
+
kbDirName,
|
|
1141
|
+
() => DEFAULT_BRANCH,
|
|
1142
|
+
eventBus,
|
|
1143
|
+
[config.adminEmail],
|
|
1144
|
+
);
|
|
921
1145
|
|
|
922
1146
|
return {
|
|
923
1147
|
config,
|
|
924
1148
|
db,
|
|
1149
|
+
gitRunner,
|
|
1150
|
+
commitWorker,
|
|
1151
|
+
disk,
|
|
925
1152
|
mcpServerEditService,
|
|
1153
|
+
toolDeleteService,
|
|
926
1154
|
workspaceService,
|
|
927
1155
|
kbStartupRunner,
|
|
928
1156
|
settings,
|
|
@@ -931,14 +1159,18 @@ export async function createCoreServices(
|
|
|
931
1159
|
docExtractService,
|
|
932
1160
|
accessControl,
|
|
933
1161
|
creatorAccess,
|
|
1162
|
+
changeGate,
|
|
934
1163
|
sessionOntologyService,
|
|
935
1164
|
routineWritePolicy,
|
|
936
1165
|
skillService,
|
|
937
1166
|
pendingSkillsService,
|
|
938
1167
|
toolManualService,
|
|
1168
|
+
pendingToolsService,
|
|
1169
|
+
readAgentPreamble: readPreamble,
|
|
939
1170
|
pluginIndexService,
|
|
940
1171
|
pluginProvisionService,
|
|
941
1172
|
joinRequestsService,
|
|
1173
|
+
pluginJoinRequestJobs,
|
|
942
1174
|
pluginLinkIndex,
|
|
943
1175
|
pluginLinksService,
|
|
944
1176
|
pluginRenameService,
|
|
@@ -963,6 +1195,7 @@ export async function createCoreServices(
|
|
|
963
1195
|
recoveryBot,
|
|
964
1196
|
adminAccess,
|
|
965
1197
|
groupsAdminService,
|
|
1198
|
+
userAccessRemovalService,
|
|
966
1199
|
createSyncedGroupsMaterializer,
|
|
967
1200
|
updateCheckService,
|
|
968
1201
|
secretsVaultService,
|
|
@@ -973,6 +1206,7 @@ export async function createCoreServices(
|
|
|
973
1206
|
mcpAuthMiddleware,
|
|
974
1207
|
mcpOAuthProvider,
|
|
975
1208
|
mcpResourceMetadataUrl,
|
|
1209
|
+
agentAuditService,
|
|
976
1210
|
toolRegistry,
|
|
977
1211
|
toolAuthMiddleware,
|
|
978
1212
|
manualAuthMiddleware,
|