@bevel-software/platform-core-backend 0.21.0 → 0.23.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/dist/core/core-ports.d.ts +11 -1
- package/dist/core/core-ports.d.ts.map +1 -1
- package/dist/core/core-ports.js.map +1 -1
- package/dist/core/create-core-server.d.ts +3 -3
- package/dist/core/create-core-server.d.ts.map +1 -1
- package/dist/core/create-core-server.js +62 -13
- package/dist/core/create-core-server.js.map +1 -1
- package/dist/core/create-core-services.d.ts +22 -3
- package/dist/core/create-core-services.d.ts.map +1 -1
- package/dist/core/create-core-services.js +158 -23
- package/dist/core/create-core-services.js.map +1 -1
- package/dist/core/lifecycle.d.ts +34 -1
- package/dist/core/lifecycle.d.ts.map +1 -1
- package/dist/core/lifecycle.js +89 -13
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/core-config.d.ts +0 -12
- package/dist/core-config.d.ts.map +1 -1
- package/dist/core-config.js +11 -13
- package/dist/core-config.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/access/access-control.interface.d.ts +42 -12
- package/dist/modules/access/access-control.interface.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.d.ts +67 -10
- package/dist/modules/access/access-control.service.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.js +214 -35
- package/dist/modules/access/access-control.service.js.map +1 -1
- package/dist/modules/access/access-requests.contract.d.ts +75 -0
- package/dist/modules/access/access-requests.contract.d.ts.map +1 -0
- package/dist/modules/access/access-requests.contract.js +20 -0
- package/dist/modules/access/access-requests.contract.js.map +1 -0
- package/dist/modules/access/access-requests.routes.d.ts +35 -0
- package/dist/modules/access/access-requests.routes.d.ts.map +1 -0
- package/dist/modules/access/access-requests.routes.js +237 -0
- package/dist/modules/access/access-requests.routes.js.map +1 -0
- package/dist/modules/access/access-requests.service.d.ts +123 -0
- package/dist/modules/access/access-requests.service.d.ts.map +1 -0
- package/dist/modules/access/access-requests.service.js +337 -0
- package/dist/modules/access/access-requests.service.js.map +1 -0
- package/dist/modules/access/access.routes.d.ts.map +1 -1
- package/dist/modules/access/access.routes.js +13 -15
- package/dist/modules/access/access.routes.js.map +1 -1
- package/dist/modules/access-model/access-grammar.d.ts +12 -0
- package/dist/modules/access-model/access-grammar.d.ts.map +1 -1
- package/dist/modules/access-model/access-grammar.js +24 -0
- package/dist/modules/access-model/access-grammar.js.map +1 -1
- package/dist/modules/auth/account-admission.d.ts +58 -7
- package/dist/modules/auth/account-admission.d.ts.map +1 -1
- package/dist/modules/auth/account-admission.js +44 -1
- package/dist/modules/auth/account-admission.js.map +1 -1
- package/dist/modules/auth/account.routes.d.ts +1 -1
- package/dist/modules/auth/account.routes.d.ts.map +1 -1
- package/dist/modules/auth/account.routes.js +61 -5
- package/dist/modules/auth/account.routes.js.map +1 -1
- package/dist/modules/auth/auth.middleware.d.ts +1 -1
- package/dist/modules/auth/auth.middleware.d.ts.map +1 -1
- package/dist/modules/auth/auth.middleware.js +18 -7
- package/dist/modules/auth/auth.middleware.js.map +1 -1
- package/dist/modules/auth/auth.routes.d.ts.map +1 -1
- package/dist/modules/auth/auth.routes.js +8 -0
- package/dist/modules/auth/auth.routes.js.map +1 -1
- package/dist/modules/auth/auth.service.d.ts +96 -3
- package/dist/modules/auth/auth.service.d.ts.map +1 -1
- package/dist/modules/auth/auth.service.js +187 -9
- package/dist/modules/auth/auth.service.js.map +1 -1
- package/dist/modules/auth/oidc-auth-provider.d.ts.map +1 -1
- package/dist/modules/auth/oidc-auth-provider.js +7 -2
- package/dist/modules/auth/oidc-auth-provider.js.map +1 -1
- package/dist/modules/database/core-schema.d.ts +41 -24
- package/dist/modules/database/core-schema.d.ts.map +1 -1
- package/dist/modules/database/core-schema.js +35 -27
- package/dist/modules/database/core-schema.js.map +1 -1
- package/dist/modules/github-app/github-app.client.d.ts +101 -0
- package/dist/modules/github-app/github-app.client.d.ts.map +1 -0
- package/dist/modules/github-app/github-app.client.js +222 -0
- package/dist/modules/github-app/github-app.client.js.map +1 -0
- package/dist/modules/github-app/github-app.connection.d.ts +102 -0
- package/dist/modules/github-app/github-app.connection.d.ts.map +1 -0
- package/dist/modules/github-app/github-app.connection.js +185 -0
- package/dist/modules/github-app/github-app.connection.js.map +1 -0
- package/dist/modules/github-app/github-app.routes.d.ts +59 -0
- package/dist/modules/github-app/github-app.routes.d.ts.map +1 -0
- package/dist/modules/github-app/github-app.routes.js +323 -0
- package/dist/modules/github-app/github-app.routes.js.map +1 -0
- package/dist/modules/github-app/index.d.ts +4 -0
- package/dist/modules/github-app/index.d.ts.map +1 -0
- package/dist/modules/github-app/index.js +4 -0
- package/dist/modules/github-app/index.js.map +1 -0
- package/dist/modules/kb-fs/branch-name.d.ts.map +1 -1
- package/dist/modules/kb-fs/branch-name.js +12 -2
- package/dist/modules/kb-fs/branch-name.js.map +1 -1
- package/dist/modules/kb-fs/remote-url.d.ts +22 -0
- package/dist/modules/kb-fs/remote-url.d.ts.map +1 -0
- package/dist/modules/kb-fs/remote-url.js +35 -0
- package/dist/modules/kb-fs/remote-url.js.map +1 -0
- package/dist/modules/kb-fs/repo-path.d.ts +11 -16
- package/dist/modules/kb-fs/repo-path.d.ts.map +1 -1
- package/dist/modules/kb-fs/repo-path.js +79 -0
- package/dist/modules/kb-fs/repo-path.js.map +1 -1
- package/dist/modules/kb-sync/kb-sync.routes.d.ts +2 -2
- package/dist/modules/kb-sync/kb-sync.routes.d.ts.map +1 -1
- package/dist/modules/kb-sync/kb-sync.routes.js +14 -3
- package/dist/modules/kb-sync/kb-sync.routes.js.map +1 -1
- package/dist/modules/kb-sync/sync-auth.d.ts +3 -1
- package/dist/modules/kb-sync/sync-auth.d.ts.map +1 -1
- package/dist/modules/kb-sync/sync-auth.js +1 -1
- package/dist/modules/kb-sync/sync-auth.js.map +1 -1
- package/dist/modules/mcp/mcp-auth.middleware.d.ts.map +1 -1
- package/dist/modules/mcp/mcp-auth.middleware.js +21 -6
- package/dist/modules/mcp/mcp-auth.middleware.js.map +1 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts.map +1 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.js +3 -2
- package/dist/modules/mcp/oauth/bevel-oauth-provider.js.map +1 -1
- package/dist/modules/plugins/join-proposals.d.ts +17 -5
- package/dist/modules/plugins/join-proposals.d.ts.map +1 -1
- package/dist/modules/plugins/join-proposals.js +76 -22
- package/dist/modules/plugins/join-proposals.js.map +1 -1
- package/dist/modules/plugins/join-requests.service.d.ts +111 -18
- package/dist/modules/plugins/join-requests.service.d.ts.map +1 -1
- package/dist/modules/plugins/join-requests.service.js +173 -29
- package/dist/modules/plugins/join-requests.service.js.map +1 -1
- package/dist/modules/plugins/plugins.routes.d.ts.map +1 -1
- package/dist/modules/plugins/plugins.routes.js +3 -2
- package/dist/modules/plugins/plugins.routes.js.map +1 -1
- package/dist/modules/settings/deployment-settings.service.d.ts +22 -1
- package/dist/modules/settings/deployment-settings.service.d.ts.map +1 -1
- package/dist/modules/settings/deployment-settings.service.js +101 -7
- package/dist/modules/settings/deployment-settings.service.js.map +1 -1
- package/dist/modules/settings/managed-repository.d.ts +43 -0
- package/dist/modules/settings/managed-repository.d.ts.map +1 -0
- package/dist/modules/settings/managed-repository.js +60 -0
- package/dist/modules/settings/managed-repository.js.map +1 -0
- package/dist/modules/settings/repository-source.d.ts +128 -0
- package/dist/modules/settings/repository-source.d.ts.map +1 -0
- package/dist/modules/settings/repository-source.js +150 -0
- package/dist/modules/settings/repository-source.js.map +1 -0
- package/dist/modules/settings/setup.routes.d.ts +78 -4
- package/dist/modules/settings/setup.routes.d.ts.map +1 -1
- package/dist/modules/settings/setup.routes.js +379 -17
- package/dist/modules/settings/setup.routes.js.map +1 -1
- package/dist/modules/skills/skill-access-requests.routes.d.ts +6 -8
- package/dist/modules/skills/skill-access-requests.routes.d.ts.map +1 -1
- package/dist/modules/skills/skill-access-requests.routes.js +24 -63
- package/dist/modules/skills/skill-access-requests.routes.js.map +1 -1
- package/dist/modules/skills/skills.contract.d.ts +90 -18
- package/dist/modules/skills/skills.contract.d.ts.map +1 -1
- package/dist/modules/skills/skills.contract.js +4 -1
- package/dist/modules/skills/skills.contract.js.map +1 -1
- package/dist/modules/skills/skills.service.d.ts +98 -9
- package/dist/modules/skills/skills.service.d.ts.map +1 -1
- package/dist/modules/skills/skills.service.js +239 -37
- package/dist/modules/skills/skills.service.js.map +1 -1
- package/dist/modules/skills/skills.tools.d.ts +7 -0
- package/dist/modules/skills/skills.tools.d.ts.map +1 -1
- package/dist/modules/skills/skills.tools.js +71 -7
- package/dist/modules/skills/skills.tools.js.map +1 -1
- package/dist/modules/tool-auth/external-api-key.service.d.ts.map +1 -1
- package/dist/modules/tool-auth/external-api-key.service.js +4 -2
- package/dist/modules/tool-auth/external-api-key.service.js.map +1 -1
- package/dist/modules/tool-auth/internal-token.service.d.ts +3 -3
- package/dist/modules/tool-auth/tool-auth.middleware.d.ts +16 -7
- package/dist/modules/tool-auth/tool-auth.middleware.d.ts.map +1 -1
- package/dist/modules/tool-auth/tool-auth.middleware.js +34 -12
- package/dist/modules/tool-auth/tool-auth.middleware.js.map +1 -1
- package/dist/modules/tool-helpers/tool-context.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-context.js +15 -0
- package/dist/modules/tool-helpers/tool-context.js.map +1 -1
- package/dist/modules/tool-helpers/tool-handler.d.ts +2 -1
- package/dist/modules/tool-helpers/tool-handler.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-handler.js +25 -4
- package/dist/modules/tool-helpers/tool-handler.js.map +1 -1
- package/dist/modules/tool-helpers/tool.contract.d.ts +3 -2
- package/dist/modules/tool-helpers/tool.contract.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool.contract.js.map +1 -1
- package/dist/modules/tool-helpers/validate-token.js +1 -1
- package/dist/modules/tool-helpers/validate-token.js.map +1 -1
- package/dist/modules/workflow/agent-tools/change-request-summary.d.ts +98 -0
- package/dist/modules/workflow/agent-tools/change-request-summary.d.ts.map +1 -0
- package/dist/modules/workflow/agent-tools/change-request-summary.js +81 -0
- package/dist/modules/workflow/agent-tools/change-request-summary.js.map +1 -0
- package/dist/modules/workflow/agent-tools/workflow.tools.d.ts.map +1 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.js +113 -37
- package/dist/modules/workflow/agent-tools/workflow.tools.js.map +1 -1
- package/dist/modules/workflow/file-lock.service.d.ts +24 -0
- package/dist/modules/workflow/file-lock.service.d.ts.map +1 -1
- package/dist/modules/workflow/file-lock.service.js +30 -0
- package/dist/modules/workflow/file-lock.service.js.map +1 -1
- package/dist/modules/workflow/git/git.service.d.ts +72 -1
- package/dist/modules/workflow/git/git.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/git.service.js +170 -6
- package/dist/modules/workflow/git/git.service.js.map +1 -1
- package/dist/modules/workflow/git/node-git-runner.d.ts.map +1 -1
- package/dist/modules/workflow/git/node-git-runner.js +5 -0
- package/dist/modules/workflow/git/node-git-runner.js.map +1 -1
- package/dist/modules/workflow/git/pull-request.service.d.ts +45 -0
- package/dist/modules/workflow/git/pull-request.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/pull-request.service.js +99 -0
- package/dist/modules/workflow/git/pull-request.service.js.map +1 -1
- package/dist/modules/workflow/pending-commits.service.d.ts +38 -0
- package/dist/modules/workflow/pending-commits.service.d.ts.map +1 -1
- package/dist/modules/workflow/pending-commits.service.js +55 -0
- package/dist/modules/workflow/pending-commits.service.js.map +1 -1
- package/dist/modules/workflow/workflow-hooks.d.ts +54 -32
- package/dist/modules/workflow/workflow-hooks.d.ts.map +1 -1
- package/dist/modules/workflow/workflow-hooks.js +16 -1
- package/dist/modules/workflow/workflow-hooks.js.map +1 -1
- package/dist/modules/workflow/workflow.routes.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.routes.js +3 -1
- package/dist/modules/workflow/workflow.routes.js.map +1 -1
- package/dist/modules/workflow/workflow.service.d.ts +94 -13
- package/dist/modules/workflow/workflow.service.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.service.js +258 -51
- package/dist/modules/workflow/workflow.service.js.map +1 -1
- package/dist/modules/workspace/agent-access.gate.d.ts +94 -0
- package/dist/modules/workspace/agent-access.gate.d.ts.map +1 -0
- package/dist/modules/workspace/agent-access.gate.js +123 -0
- package/dist/modules/workspace/agent-access.gate.js.map +1 -0
- package/dist/modules/workspace/routine-write-policy.d.ts +5 -6
- package/dist/modules/workspace/routine-write-policy.d.ts.map +1 -1
- package/dist/modules/workspace/routine-write-policy.js +5 -6
- package/dist/modules/workspace/routine-write-policy.js.map +1 -1
- package/dist/modules/workspace/session-sink.d.ts +5 -5
- package/dist/modules/workspace/set-aside-clone.d.ts +46 -0
- package/dist/modules/workspace/set-aside-clone.d.ts.map +1 -0
- package/dist/modules/workspace/set-aside-clone.js +92 -0
- package/dist/modules/workspace/set-aside-clone.js.map +1 -0
- package/dist/modules/workspace/startup/kb-startup-runner.d.ts +117 -1
- package/dist/modules/workspace/startup/kb-startup-runner.d.ts.map +1 -1
- package/dist/modules/workspace/startup/kb-startup-runner.js +190 -1
- package/dist/modules/workspace/startup/kb-startup-runner.js.map +1 -1
- package/dist/modules/workspace/workspace.routes.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.routes.js +92 -3
- package/dist/modules/workspace/workspace.routes.js.map +1 -1
- package/dist/modules/workspace/workspace.service.d.ts +115 -5
- package/dist/modules/workspace/workspace.service.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.service.js +272 -26
- package/dist/modules/workspace/workspace.service.js.map +1 -1
- package/dist/modules/workspace/workspace.tools.d.ts +2 -2
- package/dist/modules/workspace/workspace.tools.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.tools.js +337 -117
- package/dist/modules/workspace/workspace.tools.js.map +1 -1
- package/dist/modules/write-access/write-access.d.ts +60 -0
- package/dist/modules/write-access/write-access.d.ts.map +1 -0
- package/dist/modules/write-access/write-access.js +129 -0
- package/dist/modules/write-access/write-access.js.map +1 -0
- package/dist/shared/domain-errors.d.ts +64 -0
- package/dist/shared/domain-errors.d.ts.map +1 -1
- package/dist/shared/domain-errors.js +83 -0
- package/dist/shared/domain-errors.js.map +1 -1
- package/dist/shared/git.contract.d.ts +30 -0
- package/dist/shared/git.contract.d.ts.map +1 -1
- package/dist/shared/git.contract.js +26 -0
- package/dist/shared/git.contract.js.map +1 -1
- package/dist/tenancy/static-tenant-source.d.ts +0 -1
- package/dist/tenancy/static-tenant-source.d.ts.map +1 -1
- package/dist/tenancy/static-tenant-source.js +0 -2
- package/dist/tenancy/static-tenant-source.js.map +1 -1
- package/migrations/0014_change_request_closed_reason.sql +1 -0
- package/migrations/0015_account_deactivation.sql +3 -0
- package/migrations/meta/0014_snapshot.json +2265 -0
- package/migrations/meta/0015_snapshot.json +2271 -0
- package/migrations/meta/_journal.json +14 -0
- package/package.json +3 -3
- package/src/__tests__/kb-layout-config.test.ts +0 -2
- package/src/__tests__/retired-settings.test.ts +96 -0
- package/src/core/__tests__/gated-boot.test.ts +132 -0
- package/src/core/__tests__/lifecycle.test.ts +170 -1
- package/src/core/__tests__/set-aside-root-is-one-place.test.ts +63 -0
- package/src/core/core-ports.ts +11 -1
- package/src/core/create-core-server.ts +69 -15
- package/src/core/create-core-services.ts +190 -27
- package/src/core/lifecycle.ts +98 -13
- package/src/core-config.ts +13 -14
- package/src/index.ts +12 -1
- package/src/modules/access/__tests__/access-control.preview-relocation.test.ts +385 -0
- package/src/modules/access/__tests__/access-control.prospective.test.ts +94 -18
- package/src/modules/access/__tests__/access-requests.recut.test.ts +134 -0
- package/src/modules/access/__tests__/access-requests.routes.test.ts +610 -0
- package/src/modules/access/__tests__/access.routes.prospective.test.ts +6 -7
- package/src/modules/access/access-control.interface.ts +43 -12
- package/src/modules/access/access-control.service.ts +234 -36
- package/src/modules/access/access-requests.contract.ts +93 -0
- package/src/modules/access/access-requests.routes.ts +286 -0
- package/src/modules/access/access-requests.service.ts +420 -0
- package/src/modules/access/access.routes.ts +13 -15
- package/src/modules/access-model/access-grammar.ts +22 -0
- package/src/modules/agent-instructions/__tests__/agent-instructions.route.test.ts +3 -1
- package/src/modules/auth/__tests__/account-deactivation.test.ts +252 -0
- package/src/modules/auth/__tests__/account.routes.test.ts +81 -3
- package/src/modules/auth/__tests__/auth.middleware.test.ts +45 -22
- package/src/modules/auth/__tests__/auth.service.test.ts +39 -1
- package/src/modules/auth/account-admission.ts +78 -9
- package/src/modules/auth/account.routes.ts +63 -7
- package/src/modules/auth/auth.middleware.ts +19 -8
- package/src/modules/auth/auth.routes.ts +8 -0
- package/src/modules/auth/auth.service.ts +207 -7
- package/src/modules/auth/oidc-auth-provider.ts +7 -2
- package/src/modules/database/core-schema.ts +35 -27
- package/src/modules/github-app/__tests__/github-app.test.ts +848 -0
- package/src/modules/github-app/github-app.client.ts +268 -0
- package/src/modules/github-app/github-app.connection.ts +204 -0
- package/src/modules/github-app/github-app.routes.ts +359 -0
- package/src/modules/github-app/index.ts +19 -0
- package/src/modules/kb-fs/__tests__/branch-name.test.ts +10 -0
- package/src/modules/kb-fs/__tests__/remote-url.test.ts +38 -0
- package/src/modules/kb-fs/__tests__/repo-path.test.ts +123 -0
- package/src/modules/kb-fs/branch-name.ts +14 -1
- package/src/modules/kb-fs/remote-url.ts +35 -0
- package/src/modules/kb-fs/repo-path.ts +85 -0
- package/src/modules/kb-sync/__tests__/kb-sync.routes.test.ts +26 -1
- package/src/modules/kb-sync/kb-sync.routes.ts +14 -4
- package/src/modules/kb-sync/sync-auth.ts +2 -2
- package/src/modules/mcp/__tests__/mcp-auth.middleware.test.ts +60 -3
- package/src/modules/mcp/__tests__/mcp.service.test.ts +68 -6
- package/src/modules/mcp/mcp-auth.middleware.ts +20 -6
- package/src/modules/mcp/oauth/bevel-oauth-provider.ts +3 -1
- package/src/modules/plugins/__tests__/join-proposals.test.ts +100 -19
- package/src/modules/plugins/__tests__/join-requests.service.test.ts +27 -11
- package/src/modules/plugins/__tests__/join-requests.settlement.test.ts +371 -0
- package/src/modules/plugins/__tests__/plugins.routes.test.ts +1 -1
- package/src/modules/plugins/__tests__/plugins.tools.test.ts +2 -1
- package/src/modules/plugins/join-proposals.ts +87 -19
- package/src/modules/plugins/join-requests.service.ts +199 -39
- package/src/modules/plugins/plugins.routes.ts +3 -2
- package/src/modules/settings/__tests__/deployment-settings.service.test.ts +16 -0
- package/src/modules/settings/__tests__/repository-source.test.ts +191 -0
- package/src/modules/settings/__tests__/setup.routes.git-mode.test.ts +386 -0
- package/src/modules/settings/__tests__/setup.routes.github-app.test.ts +299 -0
- package/src/modules/settings/__tests__/setup.routes.managed-phase.test.ts +236 -0
- package/src/modules/settings/__tests__/setup.routes.repository-change.test.ts +390 -0
- package/src/modules/settings/__tests__/setup.routes.test.ts +3 -0
- package/src/modules/settings/deployment-settings.service.ts +117 -6
- package/src/modules/settings/managed-repository.ts +68 -0
- package/src/modules/settings/repository-source.ts +197 -0
- package/src/modules/settings/setup.routes.ts +463 -15
- package/src/modules/skills/__tests__/allowed-tools-warn.tools.test.ts +2 -1
- package/src/modules/skills/__tests__/branch-skills.tools.test.ts +218 -0
- package/src/modules/skills/__tests__/skill-access-requests.routes.test.ts +5 -1
- package/src/modules/skills/__tests__/skills.service.test.ts +229 -5
- package/src/modules/skills/skill-access-requests.routes.ts +25 -75
- package/src/modules/skills/skills.contract.ts +91 -18
- package/src/modules/skills/skills.service.ts +278 -41
- package/src/modules/skills/skills.tools.ts +80 -8
- package/src/modules/tool-auth/__tests__/manual-auth.middleware.test.ts +14 -1
- package/src/modules/tool-auth/external-api-key.service.ts +4 -2
- package/src/modules/tool-auth/internal-token.service.ts +3 -3
- package/src/modules/tool-auth/tool-auth.middleware.ts +34 -11
- package/src/modules/tool-helpers/__tests__/agent-roles-write.test.ts +5 -3
- package/src/modules/tool-helpers/__tests__/phase4-tools.test.ts +3 -3
- package/src/modules/tool-helpers/__tests__/validate-token.test.ts +11 -1
- package/src/modules/tool-helpers/tool-context.ts +15 -0
- package/src/modules/tool-helpers/tool-handler.ts +24 -4
- package/src/modules/tool-helpers/tool.contract.ts +3 -2
- package/src/modules/tool-helpers/validate-token.ts +1 -1
- package/src/modules/workflow/__tests__/apply-failure.test.ts +9 -1
- package/src/modules/workflow/__tests__/pending-commits.repository-replaced.test.ts +111 -0
- package/src/modules/workflow/__tests__/workflow.routes.history-read-gate.test.ts +25 -0
- package/src/modules/workflow/__tests__/workflow.service.facade.test.ts +159 -8
- package/src/modules/workflow/__tests__/workflow.service.repository-replaced.test.ts +249 -0
- package/src/modules/workflow/__tests__/workflow.service.update-from-target.test.ts +146 -40
- package/src/modules/workflow/agent-tools/__tests__/workflow.tools.test.ts +405 -7
- package/src/modules/workflow/agent-tools/change-request-summary.ts +182 -0
- package/src/modules/workflow/agent-tools/workflow.tools.ts +135 -38
- package/src/modules/workflow/file-lock.service.ts +31 -0
- package/src/modules/workflow/git/__tests__/git.service.fileBytesAtCommit.test.ts +260 -0
- package/src/modules/workflow/git/__tests__/git.service.pull.test.ts +121 -0
- package/src/modules/workflow/git/__tests__/pull-request.service.getPrDetail.test.ts +145 -2
- package/src/modules/workflow/git/__tests__/pull-request.service.viewer-can-delete.test.ts +166 -0
- package/src/modules/workflow/git/git.service.ts +193 -4
- package/src/modules/workflow/git/node-git-runner.ts +6 -0
- package/src/modules/workflow/git/pull-request.service.ts +119 -0
- package/src/modules/workflow/pending-commits.service.ts +59 -1
- package/src/modules/workflow/workflow-hooks.ts +64 -26
- package/src/modules/workflow/workflow.routes.ts +3 -1
- package/src/modules/workflow/workflow.service.ts +290 -55
- package/src/modules/workspace/__tests__/agent-access.gate.test.ts +208 -0
- package/src/modules/workspace/__tests__/escape-sequences.routes.test.ts +384 -0
- package/src/modules/workspace/__tests__/file-stat-access.test.ts +2 -1
- package/src/modules/workspace/__tests__/git-internals.security.test.ts +2 -1
- package/src/modules/workspace/__tests__/set-aside-clone.test.ts +52 -0
- package/src/modules/workspace/__tests__/workspace.routes.at-ref.test.ts +305 -0
- package/src/modules/workspace/__tests__/workspace.routes.download.test.ts +2 -0
- package/src/modules/workspace/__tests__/workspace.service.forget-clone-races.test.ts +147 -0
- package/src/modules/workspace/__tests__/workspace.service.replaced-repository.test.ts +326 -0
- package/src/modules/workspace/__tests__/workspace.service.test.ts +20 -9
- package/src/modules/workspace/__tests__/workspace.service.unknown-branch.test.ts +43 -0
- package/src/modules/workspace/__tests__/workspace.tools.agents-file.test.ts +2 -3
- package/src/modules/workspace/__tests__/workspace.tools.branch-errors.test.ts +235 -10
- package/src/modules/workspace/__tests__/workspace.tools.test.ts +720 -17
- package/src/modules/workspace/agent-access.gate.ts +164 -0
- package/src/modules/workspace/routine-write-policy.ts +5 -6
- package/src/modules/workspace/session-sink.ts +5 -5
- package/src/modules/workspace/set-aside-clone.ts +96 -0
- package/src/modules/workspace/startup/__tests__/kb-startup-runner.test.ts +297 -0
- package/src/modules/workspace/startup/kb-startup-runner.ts +242 -2
- package/src/modules/workspace/workspace.routes.ts +95 -3
- package/src/modules/workspace/workspace.service.ts +273 -25
- package/src/modules/workspace/workspace.tools.ts +373 -119
- package/src/modules/write-access/__tests__/write-access.test.ts +248 -0
- package/src/modules/write-access/write-access.ts +153 -0
- package/src/shared/domain-errors.ts +89 -0
- package/src/shared/git.contract.ts +37 -0
- package/src/tenancy/__tests__/static-tenant-source.test.ts +0 -1
- package/src/tenancy/static-tenant-source.ts +0 -3
- package/dist/modules/workflow/session-ontology.policy.d.ts +0 -52
- package/dist/modules/workflow/session-ontology.policy.d.ts.map +0 -1
- package/dist/modules/workflow/session-ontology.policy.js +0 -62
- package/dist/modules/workflow/session-ontology.policy.js.map +0 -1
- package/dist/modules/workflow/session-ontology.service.d.ts +0 -105
- package/dist/modules/workflow/session-ontology.service.d.ts.map +0 -1
- package/dist/modules/workflow/session-ontology.service.js +0 -147
- package/dist/modules/workflow/session-ontology.service.js.map +0 -1
- package/dist/modules/workspace/session-ontology.gate.d.ts +0 -114
- package/dist/modules/workspace/session-ontology.gate.d.ts.map +0 -1
- package/dist/modules/workspace/session-ontology.gate.js +0 -161
- package/dist/modules/workspace/session-ontology.gate.js.map +0 -1
- package/dist/shared/kb-layout.d.ts +0 -39
- package/dist/shared/kb-layout.d.ts.map +0 -1
- package/dist/shared/kb-layout.js +0 -103
- package/dist/shared/kb-layout.js.map +0 -1
- package/dist/shared/kb-layout.test.d.ts +0 -2
- package/dist/shared/kb-layout.test.d.ts.map +0 -1
- package/dist/shared/kb-layout.test.js +0 -75
- package/dist/shared/kb-layout.test.js.map +0 -1
- package/src/modules/workflow/__tests__/session-ontology.policy.test.ts +0 -62
- package/src/modules/workflow/__tests__/session-ontology.service.test.ts +0 -201
- package/src/modules/workflow/session-ontology.policy.ts +0 -70
- package/src/modules/workflow/session-ontology.service.ts +0 -183
- package/src/modules/workspace/__tests__/session-ontology.gate.test.ts +0 -239
- package/src/modules/workspace/session-ontology.gate.ts +0 -191
- package/src/shared/kb-layout.test.ts +0 -98
- package/src/shared/kb-layout.ts +0 -102
|
@@ -9,6 +9,7 @@ import { sql } from 'drizzle-orm';
|
|
|
9
9
|
import { DEFAULT_DB_SCHEMA, assertSearchPath } from '../modules/database/connection.js';
|
|
10
10
|
import { DEFAULT_SECRETS_SCOPE } from '../modules/secrets-vault/secrets-variable-loader.js';
|
|
11
11
|
import { KbContext } from '../shared/kb-context.js';
|
|
12
|
+
import { branchForWorkspaceId } from '../shared/workspace-id.js';
|
|
12
13
|
import { getDb } from '../modules/database/connection.js';
|
|
13
14
|
import { runCoreMigrations } from '../modules/database/migrate.js';
|
|
14
15
|
import { coreMigrationsDir } from '../assets.js';
|
|
@@ -26,9 +27,11 @@ import { DeploymentSettingsService } from '../modules/settings/deployment-settin
|
|
|
26
27
|
import { KbSyncService } from '../modules/kb-sync/kb-sync.service.js';
|
|
27
28
|
import { NodeFs } from '../modules/kb-fs/node-fs.js';
|
|
28
29
|
import { assertKbDirNameFree } from '../modules/kb-fs/repo-path.js';
|
|
29
|
-
import {
|
|
30
|
+
import { ManagedRepository, MANAGED_DEFAULT_BRANCH } from '../modules/settings/managed-repository.js';
|
|
31
|
+
import { RepositorySource } from '../modules/settings/repository-source.js';
|
|
32
|
+
import { GitHubAppConnection } from '../modules/github-app/index.js';
|
|
30
33
|
import { AdvisoryLease, AdvisoryLock } from '../modules/database/advisory-lock.js';
|
|
31
|
-
import { holdCommitWorkerLease, withStartupTask } from './lifecycle.js';
|
|
34
|
+
import { holdCommitWorkerLease, holdable, withStartupTask } from './lifecycle.js';
|
|
32
35
|
/** The hosted MCP endpoint at a deployment address, with any userinfo stripped. */
|
|
33
36
|
function mcpEndpointUrl(publicBackendUrl) {
|
|
34
37
|
const url = new URL('/api/mcp', publicBackendUrl);
|
|
@@ -76,7 +79,6 @@ import { WorkflowEventBus } from '../modules/workflow/event-bus.js';
|
|
|
76
79
|
import { FileChangeNotifier } from '../modules/kb-fs/file-change-notifier.js';
|
|
77
80
|
import { WorkflowService } from '../modules/workflow/workflow.service.js';
|
|
78
81
|
import { WorkflowHooks } from '../modules/workflow/workflow-hooks.js';
|
|
79
|
-
import { SessionOntologyService } from '../modules/workflow/session-ontology.service.js';
|
|
80
82
|
import { PendingCommitsService } from '../modules/workflow/pending-commits.service.js';
|
|
81
83
|
import { PendingCommitsWorker, consoleSystemNoticeSink, } from '../modules/workflow/pending-commits.worker.js';
|
|
82
84
|
import { ensureRecoveryBotUser } from '../modules/workflow/recovery-bot.js';
|
|
@@ -96,6 +98,7 @@ import { BevelOAuthProvider } from '../modules/mcp/oauth/bevel-oauth-provider.js
|
|
|
96
98
|
import { getOAuthProtectedResourceMetadataUrl } from '@modelcontextprotocol/sdk/server/auth/router.js';
|
|
97
99
|
import { ToolRegistry } from '../modules/tool-registry/tool-registry.js';
|
|
98
100
|
import { createToolContextResolver } from '../modules/tool-helpers/tool-context.js';
|
|
101
|
+
import { alwaysWritable } from '../modules/write-access/write-access.js';
|
|
99
102
|
import { createToolHandlerFactory } from '../modules/tool-helpers/tool-handler.js';
|
|
100
103
|
import { TokenCrypto } from '../shared/token-crypto.js';
|
|
101
104
|
import { UpdateCheckService } from '../modules/update-check/update-check.service.js';
|
|
@@ -202,13 +205,108 @@ export async function createCoreServices(config, ports = {}) {
|
|
|
202
205
|
// settings catalogue knows `GIT_TOKEN` alone. Handed to the runner, which
|
|
203
206
|
// puts the token into each child's environment — never into this
|
|
204
207
|
// process's, which several knowledge bases may share.
|
|
205
|
-
|
|
208
|
+
//
|
|
209
|
+
// Both come from the repository source, which is the one place that knows
|
|
210
|
+
// a deployment can be given its repository in more than one way; what
|
|
211
|
+
// comes back is the address and the credential, as it always was.
|
|
212
|
+
const managedRepository = new ManagedRepository(path.join(config.backupsRoot, 'managed-repository'));
|
|
213
|
+
const githubApp = new GitHubAppConnection({
|
|
214
|
+
read: (key) => settings.resolve(key),
|
|
215
|
+
sourceOf: (key) => settings.sourceOf(key),
|
|
216
|
+
});
|
|
217
|
+
const repositorySource = new RepositorySource({
|
|
218
|
+
read: (key) => settings.resolve(key),
|
|
219
|
+
fallback: { username: config.gitUsername, token: config.gitToken },
|
|
220
|
+
managed: managedRepository,
|
|
221
|
+
githubApp,
|
|
222
|
+
});
|
|
223
|
+
const gitCredentialsInEffect = repositorySource.credentials;
|
|
206
224
|
// How git is run, for every module that runs it: one environment, one buffer
|
|
207
225
|
// ceiling, one error shape, and — the reason it exists — one deadline, so a
|
|
208
226
|
// git that never returns cannot hold a workspace (and with it the commit
|
|
209
227
|
// queue) open indefinitely. See `shared/git.contract.ts`.
|
|
210
228
|
const gitRunner = new NodeGitRunner(config.gitTimeoutMs, gitCredentialsInEffect);
|
|
211
|
-
|
|
229
|
+
// A deployment that keeps its own repository has it before anything asks
|
|
230
|
+
// for it: one that chose the mode through the environment never passes
|
|
231
|
+
// through the save that would have created it, and the startup phase's
|
|
232
|
+
// first question would be asked of a folder that is not there. Left to
|
|
233
|
+
// that phase to report if it cannot be made: its failures are classified
|
|
234
|
+
// and shown on the setup screen, where a throw here would take the screen
|
|
235
|
+
// down with the boot.
|
|
236
|
+
if (repositorySource.mode() === 'managed') {
|
|
237
|
+
await managedRepository
|
|
238
|
+
.ensure(gitRunner, settings.resolve('defaultBranch') || MANAGED_DEFAULT_BRANCH)
|
|
239
|
+
.catch((err) => logger('setup').error('the managed repository could not be created:', { err }));
|
|
240
|
+
}
|
|
241
|
+
// One reached through a GitHub App has a token in hand before anything
|
|
242
|
+
// reads it: a working copy's credential helper is stamped according to
|
|
243
|
+
// whether there is a token, by code that cannot wait for one. A failure is
|
|
244
|
+
// the startup phase's to report, for the same reason as above.
|
|
245
|
+
if (repositorySource.mode() === 'github-app') {
|
|
246
|
+
await githubApp.prepare().catch(() => undefined);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Where a working copy of a replaced repository is kept, for BOTH the places
|
|
250
|
+
* that find one: the KB startup phase sweeping the workspaces root, and the
|
|
251
|
+
* workspace service refusing to adopt one on a branch open. One variable,
|
|
252
|
+
* passed to both, because they move the same clones for the same reason and
|
|
253
|
+
* an admin looking for their work must have one folder to look in — the two
|
|
254
|
+
* drifted apart once already, and the copy the workspace service set aside
|
|
255
|
+
* landed in the image's own filesystem and was gone at the next recreate.
|
|
256
|
+
*
|
|
257
|
+
* Under the backups root: a persistent volume of its own, and one nothing
|
|
258
|
+
* sweeps (see the runner's `reconcileClonesWithConfiguredRepository`).
|
|
259
|
+
*/
|
|
260
|
+
const replacedWorkingCopiesRoot = path.join(config.backupsRoot, 'replaced-working-copies');
|
|
261
|
+
/**
|
|
262
|
+
* What must leave with a working copy that is set aside, whoever sets it
|
|
263
|
+
* aside: the startup phase, or the workspace service on a branch open.
|
|
264
|
+
*
|
|
265
|
+
* Its queue: whatever still waits to be committed into that copy was
|
|
266
|
+
* written against the repository that was left, and the path it names is
|
|
267
|
+
* about to hold a fresh clone of another one. Held for a person, on every
|
|
268
|
+
* branch, never written and never deleted.
|
|
269
|
+
*
|
|
270
|
+
* And the locks on its branch: each is a claim on a file of the copy that
|
|
271
|
+
* is going. Left standing, a holder still connected keeps one alive with
|
|
272
|
+
* heartbeats, and the same path in the new repository refuses everybody
|
|
273
|
+
* else. Dropped without enqueueing anything, as when change requests are
|
|
274
|
+
* closed as "repository replaced".
|
|
275
|
+
*
|
|
276
|
+
* Throws when either cannot be done, and the caller then leaves the copy
|
|
277
|
+
* where it is. Reaches FORWARD to both services, like `gitService` below:
|
|
278
|
+
* it is only ever called long after this function has returned them.
|
|
279
|
+
*/
|
|
280
|
+
const releaseWorkOnSetAsideCopy = async (workspaceId) => {
|
|
281
|
+
const held = await pendingCommitsService.markNeedsAttentionInWorkspace(workspaceId, 'The knowledge-base repository was replaced while this commit was still queued, so it was never ' +
|
|
282
|
+
'written. The bytes are kept here: the working copy it was meant for belongs to the previous repository.');
|
|
283
|
+
if (held > 0) {
|
|
284
|
+
logger('kb-startup').warn(`${held} queued commit(s) for the working copy "${workspaceId}" need attention: the repository was ` +
|
|
285
|
+
'replaced before they landed, so they were not written to the new one.');
|
|
286
|
+
}
|
|
287
|
+
await fileLockService.releaseAllOnBranch(branchForWorkspaceId(workspaceId));
|
|
288
|
+
};
|
|
289
|
+
const workspaceService = new WorkspaceService(config.workspacesRoot, () => repositorySource.url(), kb, disk, gitRunner, replacedWorkingCopiesRoot,
|
|
290
|
+
// A branch opened onto a clone of another repository sets it aside on
|
|
291
|
+
// the spot, with nobody having stopped the commit worker for it. So it
|
|
292
|
+
// is held here, for the one move, and the copy's work leaves first and
|
|
293
|
+
// is looked for again once the copy has gone: a release that queued its
|
|
294
|
+
// bytes in between was writing to the copy that left.
|
|
295
|
+
//
|
|
296
|
+
// Only the first look may refuse the branch: the copy has not moved yet.
|
|
297
|
+
// The second runs after the move, so its failure is tried once more and
|
|
298
|
+
// then logged, as the startup phase logs the same step. Refusing then
|
|
299
|
+
// would report a move that did happen as one that did not.
|
|
300
|
+
(workspaceId, move) => leased.whileHeld(async () => {
|
|
301
|
+
await releaseWorkOnSetAsideCopy(workspaceId);
|
|
302
|
+
await move();
|
|
303
|
+
await releaseWorkOnSetAsideCopy(workspaceId)
|
|
304
|
+
.catch(() => releaseWorkOnSetAsideCopy(workspaceId))
|
|
305
|
+
.catch((err) => {
|
|
306
|
+
logger('workspace').error(`the working copy "${workspaceId}" was set aside, but what was queued or locked on it meanwhile ` +
|
|
307
|
+
'could not be looked for again:', { err });
|
|
308
|
+
});
|
|
309
|
+
}));
|
|
212
310
|
// The KB startup phase: every seeding, scaffolding and migration concern,
|
|
213
311
|
// run through one runner at the deployment's quiet moments (boot + setup
|
|
214
312
|
// completion) instead of lazily on branch loads. Root folders this
|
|
@@ -243,8 +341,11 @@ export async function createCoreServices(config, ports = {}) {
|
|
|
243
341
|
// Getters, not values: the remote and the branch model can arrive from the
|
|
244
342
|
// setup screen after this object exists, and the setup-completion run is
|
|
245
343
|
// the first thing that needs them.
|
|
246
|
-
kbRepoUrl: () =>
|
|
344
|
+
kbRepoUrl: () => repositorySource.url(),
|
|
247
345
|
workspacesRoot: config.workspacesRoot,
|
|
346
|
+
// The same folder the workspace service sets aside into — see
|
|
347
|
+
// `replacedWorkingCopiesRoot` above for why the two must agree.
|
|
348
|
+
setAsideRoot: replacedWorkingCopiesRoot,
|
|
248
349
|
kbDirName,
|
|
249
350
|
templateDir: config.kbTemplateDir,
|
|
250
351
|
defaultBranch: () => kb.defaultBranch,
|
|
@@ -255,6 +356,33 @@ export async function createCoreServices(config, ports = {}) {
|
|
|
255
356
|
steps: kbStartupSteps,
|
|
256
357
|
buildSeedTree: buildSeedTree(disk, config.kbTemplateDir, extraDirs, [config.adminEmail], kb),
|
|
257
358
|
gitRunner,
|
|
359
|
+
// The work on a working copy that is about to be set aside leaves first:
|
|
360
|
+
// its queued commits and the locks on its branch (see
|
|
361
|
+
// `releaseWorkOnSetAsideCopy`). A failure here stops the phase before
|
|
362
|
+
// the copy moves: a replacement cloned over an untouched queue is how
|
|
363
|
+
// those bytes would land in the wrong repository.
|
|
364
|
+
beforeCloneSetAside: releaseWorkOnSetAsideCopy,
|
|
365
|
+
// And once it is set aside it must leave the workspace service's cache:
|
|
366
|
+
// on the SAVE that moves the deployment the process is already running,
|
|
367
|
+
// and a cached path to a directory that is gone is how the next reader
|
|
368
|
+
// gets an ENOENT instead of a fresh clone.
|
|
369
|
+
//
|
|
370
|
+
// Then the copy's work is looked for once more. A release that queued
|
|
371
|
+
// its bytes between the first look and the move was writing to the copy
|
|
372
|
+
// that has now gone; nothing can queue against it after this.
|
|
373
|
+
onCloneDiscarded: async (workspaceId) => {
|
|
374
|
+
workspaceService.forgetClone(workspaceId);
|
|
375
|
+
await releaseWorkOnSetAsideCopy(workspaceId);
|
|
376
|
+
},
|
|
377
|
+
// And the replacement it cloned in its place: a fresh clone holds every
|
|
378
|
+
// ref, so the git layer's per-workspace fetch record is told so. Without
|
|
379
|
+
// it that record still holds the FAILED fetch of the repository that was
|
|
380
|
+
// replaced, and a strict branch listing within its TTL refuses the new
|
|
381
|
+
// clone's refs as unproven. Reaches FORWARD to `gitService`, which is
|
|
382
|
+
// built further down: safe because the runner only ever calls this from
|
|
383
|
+
// `runAll`, which the server builder invokes long after this function has
|
|
384
|
+
// returned every service.
|
|
385
|
+
onCloneCreated: (workspaceId) => gitService.noteWorkspaceFetched(workspaceId),
|
|
258
386
|
});
|
|
259
387
|
// Shared, workspace-independent store for oversized `call_tool_chain` results,
|
|
260
388
|
// read back via `read_file`. Sibling of `workspacesRoot`, never committed.
|
|
@@ -278,14 +406,10 @@ export async function createCoreServices(config, ports = {}) {
|
|
|
278
406
|
// nothing is created, changed or removed where its author cannot read,
|
|
279
407
|
// except that new folder at a root (see `access-model/change-gate.ts`).
|
|
280
408
|
const changeGate = new ChangeReadGate(workspaceService, accessControl, kb, disk);
|
|
281
|
-
// Ontology-session boundary: records each agent run's touched ontologies and
|
|
282
|
-
// blocks writes once a run has crossed ontologies. Postgres-backed so the
|
|
283
|
-
// boundary survives a restart.
|
|
284
|
-
const sessionOntologyService = new SessionOntologyService(db, kb);
|
|
285
409
|
// Per-run write restriction (by file extension). Shared by the workspace tool
|
|
286
410
|
// surface (which enforces it) and the routine runner (which sets it for
|
|
287
|
-
// dashboard-only `watchlist_check` runs). In-memory: a restriction lives only
|
|
288
|
-
// one run
|
|
411
|
+
// dashboard-only `watchlist_check` runs). In-memory: a restriction lives only
|
|
412
|
+
// for one run.
|
|
289
413
|
const routineWritePolicy = new RoutineWritePolicyService();
|
|
290
414
|
// Skills: discovered from the default-branch workspace only (global catalog).
|
|
291
415
|
const skillService = new SkillService(workspaceService, accessControl, kb, disk);
|
|
@@ -322,11 +446,11 @@ export async function createCoreServices(config, ports = {}) {
|
|
|
322
446
|
// against each other — a backup-reseed races a concurrent commit otherwise.
|
|
323
447
|
const workspaceMutex = new WorkspaceMutex();
|
|
324
448
|
// Workflow lifecycle hooks — the ONE registry this composition shares
|
|
325
|
-
// between GitService (advisory commit validation), the
|
|
326
|
-
//
|
|
327
|
-
// registers module-owned handlers on `workflowService.hooks` right
|
|
328
|
-
// this function returns. Core registers none: no commit-time
|
|
329
|
-
// (advisory anyway) and
|
|
449
|
+
// between GitService (advisory commit validation), the agent-access gate
|
|
450
|
+
// (the blocking agentRead / preWrite hooks), and the composition root,
|
|
451
|
+
// which registers module-owned handlers on `workflowService.hooks` right
|
|
452
|
+
// after this function returns. Core registers none: no commit-time
|
|
453
|
+
// validation (advisory anyway) and nothing that refuses an agent call.
|
|
330
454
|
const workflowHooks = new WorkflowHooks();
|
|
331
455
|
const gitService = new GitService(workspaceService, workflowHooks, kb, workspaceMutex, accessControl, gitRunner);
|
|
332
456
|
// `get_skill` with a `version` reads the skill out of the default branch's
|
|
@@ -381,14 +505,17 @@ export async function createCoreServices(config, ports = {}) {
|
|
|
381
505
|
const fileChangeNotifier = new FileChangeNotifier();
|
|
382
506
|
const workflowService = new WorkflowService(db, gitService, pullRequestService, reviewWorkflowService, workspaceService, accessControl, fileLockService, pendingCommitsService, kb, changeGate, eventBus, fileChangeNotifier,
|
|
383
507
|
// Exposed as `workflowService.hooks` — the SAME instance GitService and
|
|
384
|
-
// the
|
|
508
|
+
// the agent-access gate consult, so a deployment's registrations against
|
|
385
509
|
// it reach every hook point.
|
|
386
510
|
workflowHooks);
|
|
387
511
|
// Join requests: derived entirely from two copies of a plugin's `access.md`
|
|
388
512
|
// (the request's branch vs the default branch), so it holds no state — it
|
|
389
513
|
// only needs to read files at refs and to close a request whose proposals
|
|
390
514
|
// have all landed.
|
|
391
|
-
const joinRequestsService = new JoinRequestsService(workspaceService, workflowService, kb
|
|
515
|
+
const joinRequestsService = new JoinRequestsService(workspaceService, workflowService, kb,
|
|
516
|
+
// Read-only: the one question a request asks of the resolver is whether
|
|
517
|
+
// the person it names already holds what it proposes.
|
|
518
|
+
accessControl);
|
|
392
519
|
// The OTHER half of a join request: the row the subscribe endpoint writes
|
|
393
520
|
// before it answers, and the branch/clone/commit/push/change-request work
|
|
394
521
|
// that runs against it afterwards. The row is what lets the click be
|
|
@@ -663,8 +790,9 @@ export async function createCoreServices(config, ports = {}) {
|
|
|
663
790
|
creatorAccess,
|
|
664
791
|
loadActiveGroups,
|
|
665
792
|
});
|
|
666
|
-
const
|
|
667
|
-
const
|
|
793
|
+
const writeAccess = ports.writeAccess ?? alwaysWritable;
|
|
794
|
+
const toolHandlerFactory = createToolHandlerFactory(resolveToolContext, writeAccess);
|
|
795
|
+
const toolAuthMiddleware = createToolAuthMiddleware(externalApiKeyService, internalTokenService, authService);
|
|
668
796
|
// Read-only manual endpoints accept the above PLUS a browser JWT, so a
|
|
669
797
|
// logged-in user can browse the catalog with their session. Execution routes
|
|
670
798
|
// keep `toolAuthMiddleware` (no JWT), so a session can read but not invoke.
|
|
@@ -709,7 +837,10 @@ export async function createCoreServices(config, ports = {}) {
|
|
|
709
837
|
name: recoveryBot.name,
|
|
710
838
|
},
|
|
711
839
|
});
|
|
712
|
-
|
|
840
|
+
// Holdable: a move to another repository stops the worker for as long as
|
|
841
|
+
// working copies are being set aside and cloned again, without giving up
|
|
842
|
+
// the lease (see `holdable` in `core/lifecycle.ts`).
|
|
843
|
+
const leased = holdable(withStartupTask(pendingCommitsWorker, reconcileQueue));
|
|
713
844
|
// SSO providers. The array REFERENCE is shared with the caller's port — an
|
|
714
845
|
// overlay pushes its own plugins into it after construction (they mount when
|
|
715
846
|
// the server is built, later). Core contributes the generic OIDC provider.
|
|
@@ -781,6 +912,7 @@ export async function createCoreServices(config, ports = {}) {
|
|
|
781
912
|
db,
|
|
782
913
|
gitRunner,
|
|
783
914
|
commitWorker,
|
|
915
|
+
whileCommitsHeld: (work) => leased.whileHeld(work),
|
|
784
916
|
startupRetry: null,
|
|
785
917
|
tenantKey,
|
|
786
918
|
secretsScope,
|
|
@@ -789,6 +921,9 @@ export async function createCoreServices(config, ports = {}) {
|
|
|
789
921
|
toolDeleteService,
|
|
790
922
|
workspaceService,
|
|
791
923
|
kbStartupRunner,
|
|
924
|
+
repositorySource,
|
|
925
|
+
managedRepository,
|
|
926
|
+
githubApp,
|
|
792
927
|
settings,
|
|
793
928
|
kb,
|
|
794
929
|
kbDirName,
|
|
@@ -797,7 +932,6 @@ export async function createCoreServices(config, ports = {}) {
|
|
|
797
932
|
accessControl,
|
|
798
933
|
creatorAccess,
|
|
799
934
|
changeGate,
|
|
800
|
-
sessionOntologyService,
|
|
801
935
|
routineWritePolicy,
|
|
802
936
|
skillService,
|
|
803
937
|
pendingSkillsService,
|
|
@@ -848,6 +982,7 @@ export async function createCoreServices(config, ports = {}) {
|
|
|
848
982
|
toolAuthMiddleware,
|
|
849
983
|
manualAuthMiddleware,
|
|
850
984
|
toolHandlerFactory,
|
|
985
|
+
writeAccess,
|
|
851
986
|
// Server-time seams — defaults here; the enterprise overlay overwrites
|
|
852
987
|
// (or, for the array, pushes into) these after construction.
|
|
853
988
|
sessionSink: ports.sessionSink ?? new UuidSessionSink(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-core-services.js","sourceRoot":"","sources":["../../src/core/create-core-services.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-core-services.js","sourceRoot":"","sources":["../../src/core/create-core-services.ts"],"names":[],"mappings":"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"}
|
package/dist/core/lifecycle.d.ts
CHANGED
|
@@ -86,6 +86,38 @@ export declare function holdCommitWorkerLease(lease: AdvisoryLease, worker: Leas
|
|
|
86
86
|
* anyway; a stop during the task waits for it, then stops the worker.
|
|
87
87
|
*/
|
|
88
88
|
export declare function withStartupTask(worker: LeasedWorker, task: () => Promise<void>, log?: (message: string) => void): LeasedWorker;
|
|
89
|
+
/** A worker the lease loop drives, which something else may hold still for a while. */
|
|
90
|
+
export interface HoldableWorker extends LeasedWorker {
|
|
91
|
+
/**
|
|
92
|
+
* Run `work` with the worker stopped, and start it again afterwards if the
|
|
93
|
+
* lease loop still wants it running. A hold waits for the commit in flight
|
|
94
|
+
* to finish, as a stop does. Holds may overlap; the worker starts again
|
|
95
|
+
* when the last one ends, whether `work` resolved or threw.
|
|
96
|
+
*/
|
|
97
|
+
whileHeld<T>(work: () => Promise<T>): Promise<T>;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* A worker that can be HELD STILL without the lease loop knowing.
|
|
101
|
+
*
|
|
102
|
+
* The lease loop decides whether this process is the one draining the commit
|
|
103
|
+
* queue; it starts the worker when the lease is taken and stops it when the
|
|
104
|
+
* lease is lost. Moving the deployment to another repository needs a second,
|
|
105
|
+
* independent reason for the worker not to run: while working copies are
|
|
106
|
+
* being set aside and cloned again, a queued commit must not be written into
|
|
107
|
+
* a directory that is being renamed away, nor into the fresh clone of a
|
|
108
|
+
* repository it was never meant for. Stopping the loop itself would release
|
|
109
|
+
* the lease, and another process would take the queue over mid-move.
|
|
110
|
+
*
|
|
111
|
+
* So the two reasons are kept apart. `wanted` is the lease loop's word,
|
|
112
|
+
* `holds` counts the moves in flight, and the worker runs exactly when it is
|
|
113
|
+
* wanted and nothing holds it.
|
|
114
|
+
*
|
|
115
|
+
* A stop waits for the holds in flight as well as for the worker. Shutdown
|
|
116
|
+
* awaits this stop (bounded by its own budget) before it ends the database
|
|
117
|
+
* pool, and a move still setting copies aside and cloning needs that pool:
|
|
118
|
+
* it is either finished, or known to have been cut.
|
|
119
|
+
*/
|
|
120
|
+
export declare function holdable(worker: LeasedWorker): HoldableWorker;
|
|
89
121
|
/**
|
|
90
122
|
* What one knowledge base's graph needs of itself to be STARTED: the boot
|
|
91
123
|
* side effects that used to run inside `createCoreServer`, named so a host
|
|
@@ -115,7 +147,8 @@ export interface BootableCore {
|
|
|
115
147
|
* jobs. `createCoreServer` runs this for a single-tenant deployment; a host
|
|
116
148
|
* serving several knowledge bases runs it when a tenant is activated.
|
|
117
149
|
*
|
|
118
|
-
* Throws to stop the boot on every failure but
|
|
150
|
+
* Throws to stop the boot on every failure but the ones the host answered
|
|
151
|
+
* about the repository or the credentials (see `bootMaySurvive`) — the
|
|
119
152
|
* container's restart policy is the retry — see `kb-startup-runner.ts`.
|
|
120
153
|
*/
|
|
121
154
|
export declare function startCore<C extends BootableCore>(core: C, ext?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/core/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/core/lifecycle.ts"],"names":[],"mappings":"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"}
|
package/dist/core/lifecycle.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { closeDb } from '../modules/database/connection.js';
|
|
2
|
-
import {
|
|
2
|
+
import { bootMaySurvive } from '../modules/workspace/startup/kb-startup-runner.js';
|
|
3
3
|
import { noteBesideCheckout } from '../modules/workspace/startup/beside-checkout.js';
|
|
4
4
|
import { unregisterBevelSecretsVariableLoader } from '../modules/secrets-vault/secrets-variable-loader.js';
|
|
5
5
|
import { printable } from '../shared/printable.js';
|
|
@@ -110,7 +110,14 @@ export function holdCommitWorkerLease(lease, worker, opts = {}) {
|
|
|
110
110
|
running = false;
|
|
111
111
|
wake?.();
|
|
112
112
|
await loop;
|
|
113
|
+
// The worker is asked to stop whether or not this process is running
|
|
114
|
+
// it: a worker that can be held still (`holdable`) may be in the
|
|
115
|
+
// middle of a hold that uses the database, and its stop is what
|
|
116
|
+
// waits for that. Stopping a worker that is not running is nothing.
|
|
117
|
+
const idle = !workerRunning && !stopping;
|
|
113
118
|
await stopWorker();
|
|
119
|
+
if (idle)
|
|
120
|
+
await worker.stop().catch((err) => log(`commit worker stop failed: ${String(err)}`));
|
|
114
121
|
await lease.release();
|
|
115
122
|
})();
|
|
116
123
|
return stopped;
|
|
@@ -143,6 +150,70 @@ export function withStartupTask(worker, task, log = (message) => logger('lifecyc
|
|
|
143
150
|
},
|
|
144
151
|
};
|
|
145
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* A worker that can be HELD STILL without the lease loop knowing.
|
|
155
|
+
*
|
|
156
|
+
* The lease loop decides whether this process is the one draining the commit
|
|
157
|
+
* queue; it starts the worker when the lease is taken and stops it when the
|
|
158
|
+
* lease is lost. Moving the deployment to another repository needs a second,
|
|
159
|
+
* independent reason for the worker not to run: while working copies are
|
|
160
|
+
* being set aside and cloned again, a queued commit must not be written into
|
|
161
|
+
* a directory that is being renamed away, nor into the fresh clone of a
|
|
162
|
+
* repository it was never meant for. Stopping the loop itself would release
|
|
163
|
+
* the lease, and another process would take the queue over mid-move.
|
|
164
|
+
*
|
|
165
|
+
* So the two reasons are kept apart. `wanted` is the lease loop's word,
|
|
166
|
+
* `holds` counts the moves in flight, and the worker runs exactly when it is
|
|
167
|
+
* wanted and nothing holds it.
|
|
168
|
+
*
|
|
169
|
+
* A stop waits for the holds in flight as well as for the worker. Shutdown
|
|
170
|
+
* awaits this stop (bounded by its own budget) before it ends the database
|
|
171
|
+
* pool, and a move still setting copies aside and cloning needs that pool:
|
|
172
|
+
* it is either finished, or known to have been cut.
|
|
173
|
+
*/
|
|
174
|
+
export function holdable(worker) {
|
|
175
|
+
let wanted = false;
|
|
176
|
+
const inFlight = new Set();
|
|
177
|
+
/**
|
|
178
|
+
* ONE stop at a time, shared by everyone who asks. A worker's own stop is
|
|
179
|
+
* idempotent by answering a second caller at once, while the first is
|
|
180
|
+
* still waiting for the commit in flight; a second hold given that answer
|
|
181
|
+
* would set a working copy aside under that commit.
|
|
182
|
+
*/
|
|
183
|
+
let stopping = null;
|
|
184
|
+
const stopWorker = () => {
|
|
185
|
+
stopping ??= worker.stop().finally(() => {
|
|
186
|
+
stopping = null;
|
|
187
|
+
});
|
|
188
|
+
return stopping;
|
|
189
|
+
};
|
|
190
|
+
return {
|
|
191
|
+
start() {
|
|
192
|
+
wanted = true;
|
|
193
|
+
if (inFlight.size === 0)
|
|
194
|
+
worker.start();
|
|
195
|
+
},
|
|
196
|
+
async stop() {
|
|
197
|
+
wanted = false;
|
|
198
|
+
await stopWorker();
|
|
199
|
+
await Promise.allSettled([...inFlight]);
|
|
200
|
+
},
|
|
201
|
+
whileHeld(work) {
|
|
202
|
+
const held = (async () => {
|
|
203
|
+
await stopWorker();
|
|
204
|
+
return work();
|
|
205
|
+
})();
|
|
206
|
+
inFlight.add(held);
|
|
207
|
+
const ended = () => {
|
|
208
|
+
inFlight.delete(held);
|
|
209
|
+
if (inFlight.size === 0 && wanted)
|
|
210
|
+
worker.start();
|
|
211
|
+
};
|
|
212
|
+
held.then(ended, ended);
|
|
213
|
+
return held;
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
}
|
|
146
217
|
/**
|
|
147
218
|
* Bring a built graph up: the distribution's boot hook, the note about what
|
|
148
219
|
* sits beside a checkout, the knowledge-base startup phase with its
|
|
@@ -150,7 +221,8 @@ export function withStartupTask(worker, task, log = (message) => logger('lifecyc
|
|
|
150
221
|
* jobs. `createCoreServer` runs this for a single-tenant deployment; a host
|
|
151
222
|
* serving several knowledge bases runs it when a tenant is activated.
|
|
152
223
|
*
|
|
153
|
-
* Throws to stop the boot on every failure but
|
|
224
|
+
* Throws to stop the boot on every failure but the ones the host answered
|
|
225
|
+
* about the repository or the credentials (see `bootMaySurvive`) — the
|
|
154
226
|
* container's restart policy is the retry — see `kb-startup-runner.ts`.
|
|
155
227
|
*/
|
|
156
228
|
export async function startCore(core, ext = {}) {
|
|
@@ -186,19 +258,23 @@ export async function startCore(core, ext = {}) {
|
|
|
186
258
|
await core.kbStartupRunner.runAll();
|
|
187
259
|
}
|
|
188
260
|
catch (err) {
|
|
189
|
-
// The
|
|
190
|
-
//
|
|
191
|
-
//
|
|
192
|
-
//
|
|
193
|
-
//
|
|
261
|
+
// The failures a boot survives: the host ANSWERED about the repository or
|
|
262
|
+
// the credentials, or could not be reached at all. None of them says
|
|
263
|
+
// anything about the knowledge base — what we would write is not known to
|
|
264
|
+
// be wrong — and every one of them is fixed somewhere else: the host comes
|
|
265
|
+
// back, the repository is created, the token is granted access, a rotated
|
|
266
|
+
// token is typed into the setup screen. Refusing to boot took away the
|
|
267
|
+
// login and setup screens the fix is entered on, and on 2026-09-28 a
|
|
268
|
+
// repository that had been replaced crash-looped a deployment for exactly
|
|
269
|
+
// that reason. The deployment comes up GATED instead: the setup routes
|
|
194
270
|
// read the runner's standing failure and keep the app shut, the setup
|
|
195
|
-
// screen shows why, saving it retries, and the runner keeps trying on
|
|
196
|
-
//
|
|
197
|
-
//
|
|
198
|
-
if (!(err
|
|
271
|
+
// screen shows why, saving it retries, and the runner keeps trying on its
|
|
272
|
+
// own. Every other failure still stops the boot, because it means the
|
|
273
|
+
// template or a step would write something wrong. See `bootMaySurvive`.
|
|
274
|
+
if (!bootMaySurvive(err))
|
|
199
275
|
throw err;
|
|
200
|
-
startupLog.error('booting UNMAINTAINED and gated — the knowledge
|
|
201
|
-
detail: err.message,
|
|
276
|
+
startupLog.error('booting UNMAINTAINED and gated — the knowledge base could not be initialized:', {
|
|
277
|
+
detail: err instanceof Error ? err.message : String(err),
|
|
202
278
|
});
|
|
203
279
|
// Kept on the graph so that stopping the graph stops the asking: a
|
|
204
280
|
// retry that outlived its graph would clone into a workspaces folder
|