@bevel-software/platform-core-backend 0.35.0 → 0.37.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/agent-guide/directory-structure.md +1 -1
- package/agent-guide/onboarding.md +111 -0
- package/agent-guide/start-here.md +1 -0
- package/agent-guide/tool-manuals.md +1 -0
- package/dist/core/catalog-cache-invalidation.d.ts +2 -2
- package/dist/core/catalog-cache-invalidation.d.ts.map +1 -1
- package/dist/core/compose-embed.d.ts +2 -2
- package/dist/core/compose-embed.d.ts.map +1 -1
- package/dist/core/compose-embed.js +1 -1
- package/dist/core/compose-embed.js.map +1 -1
- package/dist/core/core-ports.d.ts +19 -4
- 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.map +1 -1
- package/dist/core/create-core-server.js +26 -24
- package/dist/core/create-core-server.js.map +1 -1
- package/dist/core/create-core-services.d.ts +19 -13
- package/dist/core/create-core-services.d.ts.map +1 -1
- package/dist/core/create-core-services.js +72 -57
- package/dist/core/create-core-services.js.map +1 -1
- package/dist/core/lifecycle.d.ts +4 -4
- package/dist/core/lifecycle.d.ts.map +1 -1
- package/dist/core/lifecycle.js +5 -5
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/core-config.d.ts +2 -2
- package/dist/core-config.js +3 -3
- package/dist/core-config.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/modules/access/access-control.service.js +1 -1
- package/dist/modules/access/access-control.service.js.map +1 -1
- package/dist/modules/access/access-declarations.d.ts +2 -2
- package/dist/modules/access/access-declarations.d.ts.map +1 -1
- package/dist/modules/access/access-declarations.js +2 -2
- package/dist/modules/access/access-declarations.js.map +1 -1
- package/dist/modules/access/access-mutation.service.d.ts +2 -2
- package/dist/modules/access/access-mutation.service.d.ts.map +1 -1
- package/dist/modules/access/access-mutation.service.js +2 -2
- package/dist/modules/access/access-mutation.service.js.map +1 -1
- package/dist/modules/access/access-requests.routes.d.ts +2 -2
- package/dist/modules/access/access-requests.routes.d.ts.map +1 -1
- package/dist/modules/access/access-requests.routes.js +5 -5
- package/dist/modules/access/access-requests.routes.js.map +1 -1
- package/dist/modules/access/access-requests.service.d.ts +2 -2
- package/dist/modules/access/access-requests.service.d.ts.map +1 -1
- package/dist/modules/access/access-requests.service.js +11 -11
- package/dist/modules/access/access-requests.service.js.map +1 -1
- package/dist/modules/access/access.routes.d.ts +2 -2
- package/dist/modules/access/access.routes.d.ts.map +1 -1
- package/dist/modules/access/access.routes.js +9 -9
- package/dist/modules/access/access.routes.js.map +1 -1
- package/dist/modules/access/admin-locked-commit.d.ts +5 -5
- package/dist/modules/access/admin-locked-commit.d.ts.map +1 -1
- package/dist/modules/access/admin-locked-commit.js +7 -7
- package/dist/modules/access/admin-locked-commit.js.map +1 -1
- package/dist/modules/access/admin-route-helpers.d.ts +1 -1
- package/dist/modules/access/admin-route-helpers.js +5 -5
- package/dist/modules/access/admin-route-helpers.js.map +1 -1
- package/dist/modules/access/change-read-gate.d.ts +1 -1
- package/dist/modules/access/change-read-gate.js +1 -1
- package/dist/modules/access/groups-admin.service.d.ts +7 -7
- package/dist/modules/access/groups-admin.service.d.ts.map +1 -1
- package/dist/modules/access/groups-admin.service.js +6 -6
- package/dist/modules/access/groups-admin.service.js.map +1 -1
- package/dist/modules/access/reference-scan.d.ts +1 -1
- package/dist/modules/access/roles-admin.service.d.ts +7 -7
- package/dist/modules/access/roles-admin.service.d.ts.map +1 -1
- package/dist/modules/access/roles-admin.service.js +8 -8
- package/dist/modules/access/roles-admin.service.js.map +1 -1
- package/dist/modules/access/synced-groups-committer.d.ts +4 -4
- package/dist/modules/access/synced-groups-committer.d.ts.map +1 -1
- package/dist/modules/access/synced-groups-committer.js +7 -7
- package/dist/modules/access/synced-groups-committer.js.map +1 -1
- package/dist/modules/access/user-access-removal.service.d.ts +6 -6
- package/dist/modules/access/user-access-removal.service.d.ts.map +1 -1
- package/dist/modules/access/user-access-removal.service.js +4 -4
- package/dist/modules/access/user-access-removal.service.js.map +1 -1
- package/dist/modules/access-model/access-errors.d.ts +4 -4
- package/dist/modules/access-model/access-errors.d.ts.map +1 -1
- package/dist/modules/access-model/access-errors.js +4 -4
- package/dist/modules/access-model/access-errors.js.map +1 -1
- package/dist/modules/access-model/access-grammar.d.ts +1 -1
- package/dist/modules/access-model/access-grammar.js +4 -4
- package/dist/modules/access-model/change-gate.d.ts +1 -1
- package/dist/modules/access-model/change-gate.js +1 -1
- package/dist/modules/access-model/roles-yaml-guard.d.ts +4 -4
- package/dist/modules/access-model/roles-yaml-guard.d.ts.map +1 -1
- package/dist/modules/access-model/roles-yaml-guard.js +4 -4
- package/dist/modules/access-model/roles-yaml-guard.js.map +1 -1
- package/dist/modules/agent-guide/agent-guide.d.ts +19 -14
- package/dist/modules/agent-guide/agent-guide.d.ts.map +1 -1
- package/dist/modules/agent-guide/agent-guide.js +42 -18
- package/dist/modules/agent-guide/agent-guide.js.map +1 -1
- package/dist/modules/agent-guide/guide-budget.d.ts +5 -2
- package/dist/modules/agent-guide/guide-budget.d.ts.map +1 -1
- package/dist/modules/agent-guide/guide-budget.js +6 -2
- package/dist/modules/agent-guide/guide-budget.js.map +1 -1
- package/dist/modules/agent-instructions/agent-instructions.routes.d.ts +12 -5
- package/dist/modules/agent-instructions/agent-instructions.routes.d.ts.map +1 -1
- package/dist/modules/agent-instructions/agent-instructions.routes.js +13 -6
- package/dist/modules/agent-instructions/agent-instructions.routes.js.map +1 -1
- package/dist/modules/agent-instructions/compose.d.ts +15 -8
- package/dist/modules/agent-instructions/compose.d.ts.map +1 -1
- package/dist/modules/agent-instructions/compose.js +24 -10
- package/dist/modules/agent-instructions/compose.js.map +1 -1
- package/dist/modules/agent-instructions/shared-file-rules.d.ts +14 -6
- package/dist/modules/agent-instructions/shared-file-rules.d.ts.map +1 -1
- package/dist/modules/agent-instructions/shared-file-rules.js +51 -11
- package/dist/modules/agent-instructions/shared-file-rules.js.map +1 -1
- package/dist/modules/auth/account-erasure.service.d.ts +36 -7
- package/dist/modules/auth/account-erasure.service.d.ts.map +1 -1
- package/dist/modules/auth/account-erasure.service.js +30 -10
- package/dist/modules/auth/account-erasure.service.js.map +1 -1
- package/dist/modules/auth/account-hooks.d.ts +20 -0
- package/dist/modules/auth/account-hooks.d.ts.map +1 -1
- package/dist/modules/auth/account-hooks.js +10 -0
- package/dist/modules/auth/account-hooks.js.map +1 -1
- package/dist/modules/auth/account-switch-lock.js +2 -2
- package/dist/modules/auth/account-switch-lock.js.map +1 -1
- package/dist/modules/auth/account.routes.d.ts +7 -2
- package/dist/modules/auth/account.routes.d.ts.map +1 -1
- package/dist/modules/auth/account.routes.js +23 -4
- package/dist/modules/auth/account.routes.js.map +1 -1
- package/dist/modules/auth/auth.service.d.ts +1 -1
- package/dist/modules/auth/auth.service.js +4 -4
- package/dist/modules/auth/auth.service.js.map +1 -1
- package/dist/modules/auth/index.d.ts +1 -0
- package/dist/modules/auth/index.d.ts.map +1 -1
- package/dist/modules/database/connection.d.ts.map +1 -1
- package/dist/modules/database/connection.js +11 -0
- package/dist/modules/database/connection.js.map +1 -1
- package/dist/modules/database/core-schema.js +2 -2
- package/dist/modules/database/core-schema.js.map +1 -1
- package/dist/modules/diff/diff.routes.d.ts +3 -3
- package/dist/modules/diff/diff.routes.d.ts.map +1 -1
- package/dist/modules/diff/diff.routes.js +7 -7
- package/dist/modules/diff/diff.routes.js.map +1 -1
- package/dist/modules/embed/embed.routes.js +1 -1
- package/dist/modules/embed/embed.routes.js.map +1 -1
- package/dist/modules/embed/embed.service.d.ts +4 -4
- package/dist/modules/embed/embed.service.d.ts.map +1 -1
- package/dist/modules/embed/embed.service.js +18 -18
- package/dist/modules/embed/embed.service.js.map +1 -1
- package/dist/modules/kb-fs/branch-name.js +8 -8
- package/dist/modules/kb-fs/branch-name.js.map +1 -1
- package/dist/modules/kb-fs/file-change-notifier.d.ts +51 -26
- package/dist/modules/kb-fs/file-change-notifier.d.ts.map +1 -1
- package/dist/modules/kb-fs/file-change-notifier.js +6 -8
- package/dist/modules/kb-fs/file-change-notifier.js.map +1 -1
- package/dist/modules/kb-fs/locking-filesystem.d.ts +9 -16
- package/dist/modules/kb-fs/locking-filesystem.d.ts.map +1 -1
- package/dist/modules/kb-fs/locking-filesystem.js +31 -39
- package/dist/modules/kb-fs/locking-filesystem.js.map +1 -1
- package/dist/modules/kb-fs/repo-path.js +5 -5
- package/dist/modules/kb-fs/repo-path.js.map +1 -1
- package/dist/modules/kb-fs/tmp-ref.d.ts +2 -2
- package/dist/modules/kb-fs/tmp-ref.d.ts.map +1 -1
- package/dist/modules/kb-fs/tmp-ref.js +2 -2
- package/dist/modules/kb-fs/tmp-ref.js.map +1 -1
- package/dist/modules/kb-sync/index.d.ts +1 -1
- package/dist/modules/kb-sync/index.d.ts.map +1 -1
- package/dist/modules/kb-sync/kb-sync.interface.d.ts +3 -3
- package/dist/modules/kb-sync/kb-sync.interface.d.ts.map +1 -1
- package/dist/modules/kb-sync/kb-sync.service.d.ts +3 -3
- package/dist/modules/kb-sync/kb-sync.service.d.ts.map +1 -1
- package/dist/modules/kb-sync/kb-sync.service.js +10 -10
- package/dist/modules/kb-sync/kb-sync.service.js.map +1 -1
- package/dist/modules/mcp/mcp.service.d.ts +11 -4
- package/dist/modules/mcp/mcp.service.d.ts.map +1 -1
- package/dist/modules/mcp/mcp.service.js +75 -19
- package/dist/modules/mcp/mcp.service.js.map +1 -1
- package/dist/modules/onboarding/onboarding.contract.d.ts +1 -1
- package/dist/modules/onboarding/onboarding.routes.js +2 -2
- package/dist/modules/onboarding/onboarding.routes.js.map +1 -1
- package/dist/modules/onboarding/starter-pack.service.d.ts +5 -7
- package/dist/modules/onboarding/starter-pack.service.d.ts.map +1 -1
- package/dist/modules/onboarding/starter-pack.service.js +4 -4
- package/dist/modules/onboarding/starter-pack.service.js.map +1 -1
- package/dist/modules/plugins/join-request-jobs.service.d.ts +2 -2
- package/dist/modules/plugins/join-request-jobs.service.d.ts.map +1 -1
- package/dist/modules/plugins/join-request-jobs.service.js +7 -7
- package/dist/modules/plugins/join-request-jobs.service.js.map +1 -1
- package/dist/modules/plugins/join-requests.service.d.ts +3 -3
- package/dist/modules/plugins/join-requests.service.d.ts.map +1 -1
- package/dist/modules/plugins/join-requests.service.js +5 -5
- package/dist/modules/plugins/join-requests.service.js.map +1 -1
- package/dist/modules/plugins/plugin-rename.service.js +1 -1
- package/dist/modules/plugins/plugin-rename.service.js.map +1 -1
- package/dist/modules/plugins/plugins.routes.d.ts +2 -2
- package/dist/modules/plugins/plugins.routes.d.ts.map +1 -1
- package/dist/modules/plugins/plugins.routes.js +8 -8
- package/dist/modules/plugins/plugins.routes.js.map +1 -1
- package/dist/modules/secrets-vault/db-secrets-vault.service.d.ts +77 -2
- package/dist/modules/secrets-vault/db-secrets-vault.service.d.ts.map +1 -1
- package/dist/modules/secrets-vault/db-secrets-vault.service.js +479 -53
- package/dist/modules/secrets-vault/db-secrets-vault.service.js.map +1 -1
- package/dist/modules/secrets-vault/index.d.ts +2 -1
- package/dist/modules/secrets-vault/index.d.ts.map +1 -1
- package/dist/modules/secrets-vault/index.js +1 -0
- package/dist/modules/secrets-vault/index.js.map +1 -1
- package/dist/modules/secrets-vault/managed-sign-in-erasure.d.ts +36 -0
- package/dist/modules/secrets-vault/managed-sign-in-erasure.d.ts.map +1 -0
- package/dist/modules/secrets-vault/managed-sign-in-erasure.js +37 -0
- package/dist/modules/secrets-vault/managed-sign-in-erasure.js.map +1 -0
- package/dist/modules/secrets-vault/secrets-vault.contract.d.ts +152 -0
- package/dist/modules/secrets-vault/secrets-vault.contract.d.ts.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.contract.js.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.routes.d.ts +7 -1
- package/dist/modules/secrets-vault/secrets-vault.routes.d.ts.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.routes.js +125 -10
- package/dist/modules/secrets-vault/secrets-vault.routes.js.map +1 -1
- package/dist/modules/settings/connection-check.js +1 -1
- package/dist/modules/settings/connection-check.js.map +1 -1
- package/dist/modules/settings/deployment-settings.service.js +1 -1
- package/dist/modules/settings/git-root-folders.js +1 -1
- package/dist/modules/settings/git-root-folders.js.map +1 -1
- package/dist/modules/settings/setup.routes.d.ts +1 -1
- package/dist/modules/settings/setup.routes.js +1 -1
- package/dist/modules/skills/pending-skills.service.d.ts +3 -3
- package/dist/modules/skills/pending-skills.service.d.ts.map +1 -1
- package/dist/modules/skills/pending-skills.service.js +4 -4
- package/dist/modules/skills/pending-skills.service.js.map +1 -1
- package/dist/modules/skills/skill-access-requests.routes.d.ts +2 -2
- package/dist/modules/skills/skill-access-requests.routes.d.ts.map +1 -1
- package/dist/modules/skills/skill-access-requests.routes.js +5 -5
- package/dist/modules/skills/skill-access-requests.routes.js.map +1 -1
- package/dist/modules/tool-helpers/tool-context.d.ts +4 -4
- package/dist/modules/tool-helpers/tool-context.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-context.js +2 -2
- package/dist/modules/tool-helpers/tool-context.js.map +1 -1
- package/dist/modules/tool-helpers/tool-handler.js +2 -2
- package/dist/modules/tool-helpers/tool-handler.js.map +1 -1
- package/dist/modules/tool-helpers/tool.contract.d.ts +4 -4
- package/dist/modules/tool-helpers/tool.contract.d.ts.map +1 -1
- package/dist/modules/tool-manuals/mcp-server-edit.service.js +1 -1
- package/dist/modules/tool-manuals/mcp-server-edit.service.js.map +1 -1
- package/dist/modules/tool-manuals/pending-tools.service.d.ts +3 -3
- package/dist/modules/tool-manuals/pending-tools.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/pending-tools.service.js +4 -4
- package/dist/modules/tool-manuals/pending-tools.service.js.map +1 -1
- package/dist/modules/tool-manuals/tool-delete.service.js +1 -1
- package/dist/modules/tool-manuals/tool-delete.service.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.contract.d.ts +43 -3
- package/dist/modules/tool-manuals/tool-manuals.contract.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts +6 -0
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.js +51 -5
- package/dist/modules/tool-manuals/tool-manuals.service.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.tools.d.ts +3 -0
- package/dist/modules/tool-manuals/tool-manuals.tools.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.tools.js +36 -15
- package/dist/modules/tool-manuals/tool-manuals.tools.js.map +1 -1
- package/dist/modules/version-control/agent-tools/change-request-read-shape.d.ts.map +1 -0
- package/dist/modules/version-control/agent-tools/change-request-read-shape.js.map +1 -0
- package/dist/modules/version-control/agent-tools/change-request-read.tools.d.ts.map +1 -0
- package/dist/modules/{workflow → version-control}/agent-tools/change-request-read.tools.js +2 -2
- package/dist/modules/version-control/agent-tools/change-request-read.tools.js.map +1 -0
- package/dist/modules/version-control/agent-tools/change-request-summary.d.ts.map +1 -0
- package/dist/modules/version-control/agent-tools/change-request-summary.js.map +1 -0
- package/dist/modules/{workflow/agent-tools/workflow.tools.d.ts → version-control/agent-tools/version-control.tools.d.ts} +4 -4
- package/dist/modules/version-control/agent-tools/version-control.tools.d.ts.map +1 -0
- package/dist/modules/{workflow/agent-tools/workflow.tools.js → version-control/agent-tools/version-control.tools.js} +31 -31
- package/dist/modules/version-control/agent-tools/version-control.tools.js.map +1 -0
- package/dist/modules/{workflow → version-control}/change-request-hooks.d.ts +1 -1
- package/dist/modules/version-control/change-request-hooks.d.ts.map +1 -0
- package/dist/modules/version-control/change-request-hooks.js.map +1 -0
- package/dist/modules/version-control/change-request-review/approval-lock.d.ts.map +1 -0
- package/dist/modules/version-control/change-request-review/approval-lock.js.map +1 -0
- package/dist/modules/{workflow/review-workflow/review-workflow.interface.d.ts → version-control/change-request-review/change-request-review.interface.d.ts} +2 -2
- package/dist/modules/version-control/change-request-review/change-request-review.interface.d.ts.map +1 -0
- package/dist/modules/version-control/change-request-review/change-request-review.interface.js +2 -0
- package/dist/modules/version-control/change-request-review/change-request-review.interface.js.map +1 -0
- package/dist/modules/{workflow/review-workflow/review-workflow.service.d.ts → version-control/change-request-review/change-request-review.service.d.ts} +3 -3
- package/dist/modules/version-control/change-request-review/change-request-review.service.d.ts.map +1 -0
- package/dist/modules/{workflow/review-workflow/review-workflow.service.js → version-control/change-request-review/change-request-review.service.js} +26 -26
- package/dist/modules/version-control/change-request-review/change-request-review.service.js.map +1 -0
- package/dist/modules/{workflow → version-control}/event-bus.d.ts +8 -8
- package/dist/modules/version-control/event-bus.d.ts.map +1 -0
- package/dist/modules/{workflow → version-control}/event-bus.js +4 -4
- package/dist/modules/version-control/event-bus.js.map +1 -0
- package/dist/modules/{workflow → version-control}/events-delivery.d.ts +4 -4
- package/dist/modules/version-control/events-delivery.d.ts.map +1 -0
- package/dist/modules/version-control/events-delivery.js.map +1 -0
- package/dist/modules/{workflow → version-control}/events.routes.d.ts +4 -4
- package/dist/modules/version-control/events.routes.d.ts.map +1 -0
- package/dist/modules/version-control/events.routes.js.map +1 -0
- package/dist/modules/{workflow → version-control}/file-lock.service.d.ts +2 -2
- package/dist/modules/version-control/file-lock.service.d.ts.map +1 -0
- package/dist/modules/{workflow → version-control}/file-lock.service.js +6 -6
- package/dist/modules/version-control/file-lock.service.js.map +1 -0
- package/dist/modules/version-control/git/change-request-link.d.ts.map +1 -0
- package/dist/modules/version-control/git/change-request-link.js.map +1 -0
- package/dist/modules/version-control/git/git-version.d.ts.map +1 -0
- package/dist/modules/version-control/git/git-version.js.map +1 -0
- package/dist/modules/{workflow → version-control}/git/git.service.d.ts +26 -8
- package/dist/modules/version-control/git/git.service.d.ts.map +1 -0
- package/dist/modules/{workflow → version-control}/git/git.service.js +106 -55
- package/dist/modules/version-control/git/git.service.js.map +1 -0
- package/dist/modules/version-control/git/merge-commit.d.ts.map +1 -0
- package/dist/modules/version-control/git/merge-commit.js.map +1 -0
- package/dist/modules/version-control/git/node-git-runner.d.ts.map +1 -0
- package/dist/modules/{workflow → version-control}/git/node-git-runner.js +1 -1
- package/dist/modules/version-control/git/node-git-runner.js.map +1 -0
- package/dist/modules/{workflow → version-control}/git/pull-request.service.d.ts +5 -5
- package/dist/modules/version-control/git/pull-request.service.d.ts.map +1 -0
- package/dist/modules/{workflow → version-control}/git/pull-request.service.js +10 -10
- package/dist/modules/version-control/git/pull-request.service.js.map +1 -0
- package/dist/modules/{workflow → version-control}/index.d.ts +6 -5
- package/dist/modules/version-control/index.d.ts.map +1 -0
- package/dist/modules/{workflow → version-control}/index.js +3 -2
- package/dist/modules/version-control/index.js.map +1 -0
- package/dist/modules/{workflow → version-control}/pending-commits.service.d.ts +2 -2
- package/dist/modules/version-control/pending-commits.service.d.ts.map +1 -0
- package/dist/modules/{workflow → version-control}/pending-commits.service.js +2 -2
- package/dist/modules/version-control/pending-commits.service.js.map +1 -0
- package/dist/modules/{workflow → version-control}/pending-commits.worker.d.ts +5 -5
- package/dist/modules/version-control/pending-commits.worker.d.ts.map +1 -0
- package/dist/modules/{workflow → version-control}/pending-commits.worker.js +3 -3
- package/dist/modules/version-control/pending-commits.worker.js.map +1 -0
- package/dist/modules/{workflow → version-control}/read-on-branch.d.ts +2 -2
- package/dist/modules/version-control/read-on-branch.d.ts.map +1 -0
- package/dist/modules/{workflow → version-control}/read-on-branch.js +2 -2
- package/dist/modules/version-control/read-on-branch.js.map +1 -0
- package/dist/modules/version-control/recovery-bot.d.ts.map +1 -0
- package/dist/modules/version-control/recovery-bot.js.map +1 -0
- package/dist/modules/version-control/sanitize-error.d.ts.map +1 -0
- package/dist/modules/version-control/sanitize-error.js.map +1 -0
- package/dist/modules/{workflow/workflow-hooks.d.ts → version-control/version-control-hooks.d.ts} +33 -6
- package/dist/modules/version-control/version-control-hooks.d.ts.map +1 -0
- package/dist/modules/{workflow/workflow-hooks.js → version-control/version-control-hooks.js} +20 -3
- package/dist/modules/version-control/version-control-hooks.js.map +1 -0
- package/dist/modules/{workflow/workflow.routes.d.ts → version-control/version-control.routes.d.ts} +6 -5
- package/dist/modules/version-control/version-control.routes.d.ts.map +1 -0
- package/dist/modules/{workflow/workflow.routes.js → version-control/version-control.routes.js} +61 -60
- package/dist/modules/version-control/version-control.routes.js.map +1 -0
- package/dist/modules/{workflow/workflow.service.d.ts → version-control/version-control.service.d.ts} +26 -46
- package/dist/modules/version-control/version-control.service.d.ts.map +1 -0
- package/dist/modules/{workflow/workflow.service.js → version-control/version-control.service.js} +93 -107
- package/dist/modules/version-control/version-control.service.js.map +1 -0
- package/dist/modules/workspace/agent-access.gate.d.ts +5 -5
- package/dist/modules/workspace/agent-access.gate.d.ts.map +1 -1
- package/dist/modules/workspace/agent-access.gate.js +1 -1
- package/dist/modules/workspace/git-internals.middleware.d.ts +1 -1
- package/dist/modules/workspace/git-internals.middleware.js +2 -2
- package/dist/modules/workspace/kb-repository.js +1 -1
- package/dist/modules/workspace/kb-repository.js.map +1 -1
- package/dist/modules/workspace/startup/kb-git.d.ts +1 -1
- package/dist/modules/workspace/startup/kb-git.d.ts.map +1 -1
- package/dist/modules/workspace/startup/kb-git.js +1 -1
- package/dist/modules/workspace/startup/kb-git.js.map +1 -1
- package/dist/modules/workspace/startup/steps/seed-tree.d.ts +2 -2
- package/dist/modules/workspace/startup/steps/seed-tree.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/seed-tree.js +1 -1
- package/dist/modules/workspace/startup/steps/seed-tree.js.map +1 -1
- package/dist/modules/workspace/startup/steps/template-files.step.d.ts +2 -2
- package/dist/modules/workspace/startup/steps/template-files.step.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/template-files.step.js +2 -2
- package/dist/modules/workspace/startup/steps/template-files.step.js.map +1 -1
- package/dist/modules/workspace/startup/steps/template-source.d.ts +17 -4
- package/dist/modules/workspace/startup/steps/template-source.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/template-source.js +8 -5
- package/dist/modules/workspace/startup/steps/template-source.js.map +1 -1
- package/dist/modules/workspace/workspace-tmp.js +3 -3
- package/dist/modules/workspace/workspace-tmp.js.map +1 -1
- package/dist/modules/workspace/workspace.routes.d.ts +4 -4
- package/dist/modules/workspace/workspace.routes.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.routes.js +22 -22
- package/dist/modules/workspace/workspace.routes.js.map +1 -1
- package/dist/modules/workspace/workspace.service.d.ts +6 -6
- package/dist/modules/workspace/workspace.service.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.service.js +11 -11
- package/dist/modules/workspace/workspace.service.js.map +1 -1
- package/dist/modules/workspace/workspace.tools.d.ts +2 -1
- package/dist/modules/workspace/workspace.tools.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.tools.js +15 -10
- package/dist/modules/workspace/workspace.tools.js.map +1 -1
- package/dist/shared/canonical-file-identity.d.ts +2 -2
- package/dist/shared/canonical-file-identity.js +5 -5
- package/dist/shared/canonical-file-identity.js.map +1 -1
- package/dist/shared/domain-errors.d.ts +39 -39
- package/dist/shared/domain-errors.d.ts.map +1 -1
- package/dist/shared/domain-errors.js +44 -44
- package/dist/shared/domain-errors.js.map +1 -1
- package/dist/shared/fire-and-forget.d.ts +14 -0
- package/dist/shared/fire-and-forget.d.ts.map +1 -0
- package/dist/shared/fire-and-forget.js +23 -0
- package/dist/shared/fire-and-forget.js.map +1 -0
- package/dist/shared/git.contract.d.ts +1 -1
- package/dist/shared/git.contract.js +1 -1
- package/dist/shared/http-errors.d.ts +3 -3
- package/dist/shared/http-errors.d.ts.map +1 -1
- package/dist/shared/http-errors.js +1 -1
- package/dist/shared/http-errors.js.map +1 -1
- package/dist/shared/pending-proposals.d.ts +3 -3
- package/dist/shared/pending-proposals.d.ts.map +1 -1
- package/dist/shared/pending-proposals.js +2 -2
- package/dist/shared/pending-proposals.js.map +1 -1
- package/dist/tenancy/static-tenant-source.js +1 -1
- package/dist/tenancy/static-tenant-source.js.map +1 -1
- package/migrations/0012_agent_audit.sql +40 -40
- package/migrations/0013_agent_identity_and_key_soft_delete.sql +29 -29
- package/migrations/meta/0012_snapshot.json +2246 -2246
- package/migrations/meta/0013_snapshot.json +2258 -2258
- package/package.json +4 -4
- package/src/__tests__/account-admin.ts +27 -0
- package/src/__tests__/capturing-logger.ts +36 -0
- package/src/__tests__/hexis-catalog.ts +4 -4
- package/src/__tests__/kb-context.ts +30 -30
- package/src/__tests__/kb-layout-config.test.ts +21 -0
- package/src/__tests__/open-change-gate.ts +1 -1
- package/src/__tests__/real-access.ts +16 -0
- package/src/__tests__/real-auth.ts +13 -0
- package/src/__tests__/real-readers.ts +27 -0
- package/src/__tests__/real-version-control.ts +22 -0
- package/src/__tests__/tool-handler.ts +15 -0
- package/src/__tests__/tool-wiring.ts +10 -4
- package/src/__tests__/workspace-service.ts +1 -1
- package/src/core/__tests__/catalog-cache-invalidation.test.ts +3 -3
- package/src/core/__tests__/commit-announcements-wired-once.test.ts +53 -0
- package/src/core/__tests__/compose-embed.test.ts +1 -1
- package/src/core/__tests__/damaged-document.tools.test.ts +3 -3
- package/src/core/__tests__/erasure-slices-wired-once.test.ts +46 -0
- package/src/core/__tests__/gated-boot.test.ts +2 -2
- package/src/core/__tests__/lifecycle.test.ts +9 -9
- package/src/core/catalog-cache-invalidation.ts +2 -2
- package/src/core/compose-embed.ts +3 -3
- package/src/core/core-ports.ts +19 -4
- package/src/core/create-core-server.ts +39 -25
- package/src/core/create-core-services.ts +83 -65
- package/src/core/lifecycle.ts +9 -9
- package/src/core-config.ts +3 -3
- package/src/index.ts +5 -5
- package/src/modules/access/__tests__/access-control.admin-root-floor.test.ts +4 -4
- package/src/modules/access/__tests__/access-own-read-grant.test.ts +14 -14
- package/src/modules/access/__tests__/access-requests.routes.test.ts +23 -23
- package/src/modules/access/__tests__/access.routes.admins.test.ts +4 -4
- package/src/modules/access/__tests__/access.routes.batch.test.ts +4 -4
- package/src/modules/access/__tests__/access.routes.folder-governs.test.ts +6 -6
- package/src/modules/access/__tests__/access.routes.group-grant.test.ts +6 -6
- package/src/modules/access/__tests__/access.routes.overrides.test.ts +5 -5
- package/src/modules/access/__tests__/access.routes.proposal-branch.test.ts +6 -6
- package/src/modules/access/__tests__/access.routes.prospective.test.ts +3 -3
- package/src/modules/access/__tests__/access.routes.revoke.test.ts +6 -6
- package/src/modules/access/__tests__/access.routes.unknown-email.test.ts +6 -6
- package/src/modules/access/__tests__/admin-locked-commit.test.ts +6 -6
- package/src/modules/access/__tests__/admin-route-helpers.test.ts +5 -5
- package/src/modules/access/__tests__/groups-admin.service.test.ts +44 -44
- package/src/modules/access/__tests__/roles-admin.security.test.ts +14 -13
- package/src/modules/access/__tests__/roles-admin.service.test.ts +34 -34
- package/src/modules/access/__tests__/roles-capabilities.test.ts +29 -29
- package/src/modules/access/__tests__/roles.routes.test.ts +11 -11
- package/src/modules/access/__tests__/synced-groups-committer.test.ts +14 -14
- package/src/modules/access/__tests__/user-access-removal.service.test.ts +33 -33
- package/src/modules/access/access-control.service.ts +1 -1
- package/src/modules/access/access-declarations.ts +2 -2
- package/src/modules/access/access-mutation.service.ts +2 -2
- package/src/modules/access/access-requests.routes.ts +7 -7
- package/src/modules/access/access-requests.service.ts +13 -13
- package/src/modules/access/access.routes.ts +11 -11
- package/src/modules/access/admin-locked-commit.ts +11 -11
- package/src/modules/access/admin-route-helpers.ts +5 -5
- package/src/modules/access/change-read-gate.ts +1 -1
- package/src/modules/access/groups-admin.service.ts +7 -7
- package/src/modules/access/reference-scan.ts +1 -1
- package/src/modules/access/roles-admin.service.ts +9 -9
- package/src/modules/access/synced-groups-committer.ts +11 -11
- package/src/modules/access/user-access-removal.service.ts +7 -7
- package/src/modules/access-model/__tests__/access-grammar.test.ts +2 -2
- package/src/modules/access-model/access-errors.ts +4 -4
- package/src/modules/access-model/access-grammar.ts +4 -4
- package/src/modules/access-model/change-gate.ts +1 -1
- package/src/modules/access-model/roles-yaml-guard.ts +4 -4
- package/src/modules/agent-guide/__tests__/agent-guide.test.ts +19 -4
- package/src/modules/agent-guide/__tests__/agent-guide.tools.test.ts +1 -1
- package/src/modules/agent-guide/__tests__/guide-matches-code.test.ts +2 -2
- package/src/modules/agent-guide/agent-guide.ts +48 -22
- package/src/modules/agent-guide/guide-budget.ts +6 -2
- package/src/modules/agent-instructions/__tests__/agent-instructions.route.test.ts +4 -5
- package/src/modules/agent-instructions/__tests__/compose.test.ts +1 -1
- package/src/modules/agent-instructions/__tests__/shared-file-rules.test.ts +113 -7
- package/src/modules/agent-instructions/agent-instructions.routes.ts +12 -5
- package/src/modules/agent-instructions/compose.ts +24 -9
- package/src/modules/agent-instructions/shared-file-rules.ts +53 -11
- package/src/modules/agent-scope/__tests__/agent-surfaces.connect-as.test.ts +1 -1
- package/src/modules/audit/__tests__/agent-rest-audit.middleware.test.ts +113 -113
- package/src/modules/audit/__tests__/event-classifier.test.ts +121 -121
- package/src/modules/audit/event-classifier.ts +155 -155
- package/src/modules/auth/__tests__/account-deactivation.test.ts +1 -1
- package/src/modules/auth/__tests__/account-erasure.approval-gate.test.ts +4 -4
- package/src/modules/auth/__tests__/account-erasure.participants.test.ts +56 -0
- package/src/modules/auth/__tests__/account-switch-lock.pg.test.ts +2 -2
- package/src/modules/auth/__tests__/account-switch-lock.test.ts +2 -2
- package/src/modules/auth/__tests__/account.routes.test.ts +73 -11
- package/src/modules/auth/__tests__/auth.service.test.ts +1 -1
- package/src/modules/auth/account-erasure.service.ts +27 -9
- package/src/modules/auth/account-hooks.ts +34 -0
- package/src/modules/auth/account-switch-lock.ts +2 -2
- package/src/modules/auth/account.routes.ts +23 -5
- package/src/modules/auth/auth.service.ts +4 -4
- package/src/modules/auth/index.ts +1 -0
- package/src/modules/database/__tests__/advisory-lock.test.ts +169 -169
- package/src/modules/database/__tests__/connection.pg.test.ts +55 -0
- package/src/modules/database/__tests__/connection.test.ts +30 -0
- package/src/modules/database/__tests__/migrations-unqualified.test.ts +32 -32
- package/src/modules/database/connection.ts +12 -0
- package/src/modules/database/core-schema.ts +2 -2
- package/src/modules/diff/__tests__/diff.routes.read-gate.test.ts +2 -2
- package/src/modules/diff/__tests__/diff.routes.rejectPathsLocked.test.ts +12 -12
- package/src/modules/diff/diff.routes.ts +8 -8
- package/src/modules/embed/__tests__/embed.service.lock.test.ts +7 -7
- package/src/modules/embed/__tests__/embed.service.test.ts +48 -62
- package/src/modules/embed/__tests__/embed.tools.test.ts +1 -1
- package/src/modules/embed/embed.routes.ts +1 -1
- package/src/modules/embed/embed.service.ts +17 -17
- package/src/modules/kb-fs/__tests__/branch-name.test.ts +2 -2
- package/src/modules/kb-fs/__tests__/file-change-notifier.test.ts +23 -4
- package/src/modules/kb-fs/__tests__/locking-filesystem.test.ts +264 -305
- package/src/modules/kb-fs/__tests__/move-with-edits.test.ts +103 -40
- package/src/modules/kb-fs/__tests__/repo-path.test.ts +8 -8
- package/src/modules/kb-fs/branch-name.ts +8 -8
- package/src/modules/kb-fs/file-change-notifier.ts +55 -32
- package/src/modules/kb-fs/locking-filesystem.ts +34 -48
- package/src/modules/kb-fs/repo-path.ts +5 -5
- package/src/modules/kb-fs/tmp-ref.ts +3 -3
- package/src/modules/kb-sync/__tests__/kb-sync.service.test.ts +36 -36
- package/src/modules/kb-sync/index.ts +1 -1
- package/src/modules/kb-sync/kb-sync.interface.ts +3 -3
- package/src/modules/kb-sync/kb-sync.service.ts +9 -9
- package/src/modules/marketplace/__tests__/github-facade.test.ts +1 -1
- package/src/modules/marketplace/__tests__/marketplace-git.test.ts +1 -1
- package/src/modules/mcp/__tests__/mcp-proxy-helpers.test.ts +4 -2
- package/src/modules/mcp/__tests__/mcp.e2e.test.ts +69 -8
- package/src/modules/mcp/__tests__/mcp.service.test.ts +91 -13
- package/src/modules/mcp/__tests__/read-only-hint.pg.test.ts +194 -0
- package/src/modules/mcp/mcp.service.ts +89 -28
- package/src/modules/onboarding/__tests__/starter-pack.service.test.ts +59 -59
- package/src/modules/onboarding/onboarding.contract.ts +1 -1
- package/src/modules/onboarding/onboarding.routes.ts +2 -2
- package/src/modules/onboarding/starter-pack.service.ts +7 -9
- package/src/modules/plugins/__tests__/bundle-dialect.e2e.test.ts +1 -1
- package/src/modules/plugins/__tests__/compile-marketplace.test.ts +1 -1
- package/src/modules/plugins/__tests__/join-request-jobs.service.test.ts +43 -43
- package/src/modules/plugins/__tests__/join-requests.service.test.ts +19 -19
- package/src/modules/plugins/__tests__/join-requests.settlement.test.ts +26 -26
- package/src/modules/plugins/__tests__/plugin-rename.service.test.ts +46 -21
- package/src/modules/plugins/__tests__/plugins.routes.test.ts +31 -31
- package/src/modules/plugins/join-request-jobs.service.ts +10 -10
- package/src/modules/plugins/join-requests.service.ts +4 -4
- package/src/modules/plugins/plugin-rename.service.ts +1 -1
- package/src/modules/plugins/plugins.routes.ts +9 -9
- package/src/modules/secrets-vault/__tests__/db-secrets-vault.managed.test.ts +773 -0
- package/src/modules/secrets-vault/__tests__/db-secrets-vault.oauth.test.ts +28 -1
- package/src/modules/secrets-vault/__tests__/managed-sign-in.route.test.ts +351 -0
- package/src/modules/secrets-vault/db-secrets-vault.service.ts +562 -95
- package/src/modules/secrets-vault/index.ts +7 -0
- package/src/modules/secrets-vault/managed-sign-in-erasure.ts +41 -0
- package/src/modules/secrets-vault/secrets-variable-loader.ts +134 -134
- package/src/modules/secrets-vault/secrets-vault.contract.ts +152 -0
- package/src/modules/secrets-vault/secrets-vault.routes.ts +157 -10
- package/src/modules/settings/__tests__/repository-source.test.ts +1 -1
- package/src/modules/settings/__tests__/setup.routes.layout-phase.test.ts +1 -1
- package/src/modules/settings/__tests__/setup.routes.managed-phase.test.ts +1 -1
- package/src/modules/settings/connection-check.ts +1 -1
- package/src/modules/settings/deployment-settings.service.ts +1 -1
- package/src/modules/settings/git-root-folders.ts +1 -1
- package/src/modules/settings/setup.routes.ts +1 -1
- package/src/modules/skills/__tests__/allowed-tools-warn.tools.test.ts +3 -3
- package/src/modules/skills/__tests__/branch-skills.tools.test.ts +1 -1
- package/src/modules/skills/__tests__/pending-skills.service.test.ts +8 -8
- package/src/modules/skills/__tests__/skill-access-requests.routes.test.ts +18 -18
- package/src/modules/skills/__tests__/skills.service.test.ts +3 -3
- package/src/modules/skills/pending-skills.service.ts +3 -3
- package/src/modules/skills/skill-access-requests.routes.ts +7 -7
- package/src/modules/tool-helpers/__tests__/agent-roles-write.test.ts +4 -4
- package/src/modules/tool-helpers/__tests__/branch-declaration.test.ts +3 -3
- package/src/modules/tool-helpers/__tests__/can-write.tools.test.ts +3 -3
- package/src/modules/tool-helpers/__tests__/phase4-tools.test.ts +4 -4
- package/src/modules/tool-helpers/__tests__/tools-surface.test.ts +3 -3
- package/src/modules/tool-helpers/__tests__/validate-token.test.ts +1 -1
- package/src/modules/tool-helpers/tool-context.ts +6 -6
- package/src/modules/tool-helpers/tool-handler.ts +2 -2
- package/src/modules/tool-helpers/tool.contract.ts +4 -4
- package/src/modules/tool-manuals/__tests__/pending-tools.service.test.ts +9 -9
- package/src/modules/tool-manuals/__tests__/tool-manuals.managed-sign-in.test.ts +89 -0
- package/src/modules/tool-manuals/__tests__/tool-manuals.restart.test.ts +1 -1
- package/src/modules/tool-manuals/__tests__/tool-manuals.tools.test.ts +36 -1
- package/src/modules/tool-manuals/mcp-server-edit.service.ts +1 -1
- package/src/modules/tool-manuals/pending-tools.service.ts +3 -3
- package/src/modules/tool-manuals/tool-delete.service.ts +1 -1
- package/src/modules/tool-manuals/tool-manuals.contract.ts +41 -3
- package/src/modules/tool-manuals/tool-manuals.service.ts +53 -5
- package/src/modules/tool-manuals/tool-manuals.tools.ts +41 -15
- package/src/modules/tool-registry/__tests__/own-tool-schemas.test.ts +4 -4
- package/src/modules/tool-registry/__tests__/read-only-hints.test.ts +3 -3
- package/src/modules/tool-registry/__tests__/tool-description-length.test.ts +6 -6
- package/src/modules/{workflow → version-control}/__tests__/apply-failure.test.ts +54 -54
- package/src/modules/{workflow → version-control}/__tests__/event-bus.test.ts +27 -27
- package/src/modules/{workflow → version-control}/__tests__/events-delivery.test.ts +37 -37
- package/src/modules/{workflow → version-control}/__tests__/file-lock.service.deletion-gate.test.ts +2 -2
- package/src/modules/{workflow → version-control}/__tests__/file-lock.service.path-identity.test.ts +8 -8
- package/src/modules/{workflow → version-control}/__tests__/merge-announces-tree.test.ts +11 -11
- package/src/modules/{workflow → version-control}/__tests__/pending-commits.worker.concurrency.test.ts +9 -9
- package/src/modules/{workflow → version-control}/__tests__/pending-commits.worker.test.ts +25 -25
- package/src/modules/{workflow → version-control}/__tests__/preserve-roles-yaml.test.ts +42 -42
- package/src/modules/version-control/__tests__/public-surface.test.ts +114 -0
- package/src/modules/{workflow/__tests__/workflow.routes.folder-proposals.test.ts → version-control/__tests__/version-control.routes.folder-proposals.test.ts} +18 -18
- package/src/modules/{workflow/__tests__/workflow.routes.fork-point-file.test.ts → version-control/__tests__/version-control.routes.fork-point-file.test.ts} +19 -19
- package/src/modules/{workflow/__tests__/workflow.routes.history-read-gate.test.ts → version-control/__tests__/version-control.routes.history-read-gate.test.ts} +13 -13
- package/src/modules/{workflow/__tests__/workflow.routes.lock-path.test.ts → version-control/__tests__/version-control.routes.lock-path.test.ts} +18 -18
- package/src/modules/{workflow/__tests__/workflow.routes.open-change-request.test.ts → version-control/__tests__/version-control.routes.open-change-request.test.ts} +7 -7
- package/src/modules/{workflow/__tests__/workflow.routes.push-refused.test.ts → version-control/__tests__/version-control.routes.push-refused.test.ts} +14 -14
- package/src/modules/{workflow/__tests__/workflow.service.branch-in-use.test.ts → version-control/__tests__/version-control.service.branch-in-use.test.ts} +6 -6
- package/src/modules/{workflow/__tests__/workflow.service.commitFileWhileLocked.test.ts → version-control/__tests__/version-control.service.commitFileWhileLocked.test.ts} +14 -14
- package/src/modules/{workflow/__tests__/workflow.service.delete-branch.test.ts → version-control/__tests__/version-control.service.delete-branch.test.ts} +14 -14
- package/src/modules/{workflow/__tests__/workflow.service.deleted-branch-sweep.test.ts → version-control/__tests__/version-control.service.deleted-branch-sweep.test.ts} +4 -4
- package/src/modules/{workflow/__tests__/workflow.service.facade.test.ts → version-control/__tests__/version-control.service.facade.test.ts} +100 -102
- package/src/modules/{workflow/__tests__/workflow.service.folder-proposals.test.ts → version-control/__tests__/version-control.service.folder-proposals.test.ts} +7 -7
- package/src/modules/{workflow/__tests__/workflow.service.platform-restore.test.ts → version-control/__tests__/version-control.service.platform-restore.test.ts} +6 -6
- package/src/modules/{workflow/__tests__/workflow.service.read-gate.test.ts → version-control/__tests__/version-control.service.read-gate.test.ts} +9 -9
- package/src/modules/{workflow/__tests__/workflow.service.releaseLock.test.ts → version-control/__tests__/version-control.service.releaseLock.test.ts} +85 -75
- package/src/modules/{workflow/__tests__/workflow.service.repository-replaced.test.ts → version-control/__tests__/version-control.service.repository-replaced.test.ts} +4 -4
- package/src/modules/{workflow/__tests__/workflow.service.sync.test.ts → version-control/__tests__/version-control.service.sync.test.ts} +17 -17
- package/src/modules/{workflow/__tests__/workflow.service.update-change-request.pg.test.ts → version-control/__tests__/version-control.service.update-change-request.pg.test.ts} +6 -6
- package/src/modules/{workflow/__tests__/workflow.service.update-change-request.test.ts → version-control/__tests__/version-control.service.update-change-request.test.ts} +11 -11
- package/src/modules/{workflow/__tests__/workflow.service.update-from-target.test.ts → version-control/__tests__/version-control.service.update-from-target.test.ts} +22 -22
- package/src/modules/{workflow → version-control}/agent-tools/__tests__/change-request-read.tools.test.ts +3 -3
- package/src/modules/{workflow → version-control}/agent-tools/__tests__/update-change-request.parity.test.ts +16 -16
- package/src/modules/{workflow/agent-tools/__tests__/workflow.tools.test.ts → version-control/agent-tools/__tests__/version-control.tools.test.ts} +9 -9
- package/src/modules/{workflow → version-control}/agent-tools/change-request-read.tools.ts +2 -2
- package/src/modules/{workflow/agent-tools/workflow.tools.ts → version-control/agent-tools/version-control.tools.ts} +30 -30
- package/src/modules/{workflow → version-control}/change-request-hooks.ts +1 -1
- package/src/modules/{workflow/review-workflow → version-control/change-request-review}/__tests__/approval-states.test.ts +5 -5
- package/src/modules/{workflow/review-workflow → version-control/change-request-review}/__tests__/cancel-pr.test.ts +8 -8
- package/src/modules/{workflow/review-workflow → version-control/change-request-review}/__tests__/carry-approvals-forward.test.ts +6 -6
- package/src/modules/{workflow/review-workflow → version-control/change-request-review}/__tests__/erase-approver.test.ts +5 -5
- package/src/modules/{workflow/review-workflow → version-control/change-request-review}/__tests__/merge-gate.test.ts +3 -3
- package/src/modules/{workflow/review-workflow → version-control/change-request-review}/__tests__/merge-records-own-commit.test.ts +3 -3
- package/src/modules/{workflow/review-workflow/review-workflow.interface.ts → version-control/change-request-review/change-request-review.interface.ts} +1 -1
- package/src/modules/{workflow/review-workflow/review-workflow.service.ts → version-control/change-request-review/change-request-review.service.ts} +28 -28
- package/src/modules/{workflow → version-control}/event-bus.ts +14 -14
- package/src/modules/{workflow → version-control}/events-delivery.ts +11 -11
- package/src/modules/{workflow → version-control}/events.routes.ts +5 -5
- package/src/modules/{workflow → version-control}/file-lock.service.ts +6 -6
- package/src/modules/{workflow → version-control}/git/__tests__/git-test-helpers.ts +3 -3
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.accessGating.test.ts +5 -5
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.appliedChange.test.ts +4 -4
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.changedFilesForPr.test.ts +16 -16
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.changedPathsMemo.test.ts +2 -2
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.commitChanges.test.ts +3 -3
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.commitFile.strayPath.test.ts +10 -10
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.commitFile.test.ts +3 -3
- package/src/modules/version-control/git/__tests__/git.service.commitLanded.test.ts +199 -0
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.createBranch.test.ts +3 -3
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.deleteBranch.test.ts +7 -7
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.diffFileAtCommit.test.ts +9 -9
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.diffFileBetweenBranches.test.ts +23 -23
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.fileBytesAtCommit.test.ts +7 -7
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.fileContentsAtCommit.test.ts +3 -3
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.forkPoint.test.ts +2 -2
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.history-guards.test.ts +2 -2
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.list-branches.test.ts +12 -12
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.listTrackedFiles.test.ts +2 -2
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.logForFile.test.ts +6 -6
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.mergeChangeRequest.test.ts +99 -22
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.mergeIntoBranch.test.ts +16 -16
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.pendingChanges.test.ts +2 -2
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.postMergePull.test.ts +5 -5
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.prFetchFailure.test.ts +2 -2
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.pull.test.ts +12 -12
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.readFileAtRef.test.ts +3 -3
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.revertPathsAndPush.test.ts +2 -2
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.status.test.ts +4 -4
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.syncFromRemote.test.ts +8 -8
- package/src/modules/{workflow → version-control}/git/__tests__/git.service.worktrees.test.ts +4 -4
- package/src/modules/{workflow → version-control}/git/__tests__/pull-request.service.list-fetch.test.ts +2 -2
- package/src/modules/{workflow → version-control}/git/__tests__/pull-request.service.test.ts +6 -6
- package/src/modules/{workflow → version-control}/git/git.service.ts +112 -59
- package/src/modules/{workflow → version-control}/git/node-git-runner.ts +1 -1
- package/src/modules/{workflow → version-control}/git/pull-request.service.ts +12 -12
- package/src/modules/{workflow → version-control}/index.ts +6 -5
- package/src/modules/{workflow → version-control}/pending-commits.service.ts +2 -2
- package/src/modules/{workflow → version-control}/pending-commits.worker.ts +8 -8
- package/src/modules/{workflow → version-control}/read-on-branch.ts +2 -2
- package/src/modules/{workflow/workflow-hooks.ts → version-control/version-control-hooks.ts} +44 -5
- package/src/modules/{workflow/workflow.routes.ts → version-control/version-control.routes.ts} +64 -63
- package/src/modules/{workflow/workflow.service.ts → version-control/version-control.service.ts} +96 -109
- package/src/modules/workspace/__tests__/agent-access.gate.test.ts +8 -8
- package/src/modules/workspace/__tests__/agent-downloads.test.ts +13 -16
- package/src/modules/workspace/__tests__/agent-uploads.test.ts +11 -12
- package/src/modules/workspace/__tests__/escape-sequences.routes.test.ts +11 -16
- package/src/modules/workspace/__tests__/file-stat-access.test.ts +3 -3
- package/src/modules/workspace/__tests__/git-internals.security.test.ts +27 -27
- package/src/modules/workspace/__tests__/kb-repository.test.ts +1 -1
- package/src/modules/workspace/__tests__/rest-tool-arguments.test.ts +3 -3
- package/src/modules/workspace/__tests__/start-session.default-branch.test.ts +152 -0
- package/src/modules/workspace/__tests__/workspace-paths-inside-the-repo.test.ts +6 -6
- package/src/modules/workspace/__tests__/workspace-tmp.tools.test.ts +13 -14
- package/src/modules/workspace/__tests__/workspace.routes.at-ref.test.ts +6 -6
- package/src/modules/workspace/__tests__/workspace.routes.branch-errors.test.ts +4 -4
- package/src/modules/workspace/__tests__/workspace.routes.create-grant.test.ts +6 -6
- package/src/modules/workspace/__tests__/workspace.routes.delete.test.ts +8 -8
- package/src/modules/workspace/__tests__/workspace.routes.download-implies-read.test.ts +4 -4
- package/src/modules/workspace/__tests__/workspace.routes.download.test.ts +6 -6
- package/src/modules/workspace/__tests__/workspace.routes.file-writes.test.ts +6 -6
- package/src/modules/workspace/__tests__/workspace.routes.folder-zip-access.test.ts +4 -4
- package/src/modules/workspace/__tests__/workspace.routes.folders.test.ts +6 -6
- package/src/modules/workspace/__tests__/workspace.routes.move-platform-files.test.ts +7 -7
- package/src/modules/workspace/__tests__/workspace.routes.read-gate.test.ts +13 -13
- package/src/modules/workspace/__tests__/workspace.service.any-workspace-credentials.test.ts +1 -1
- package/src/modules/workspace/__tests__/workspace.service.replaced-repository.test.ts +1 -1
- package/src/modules/workspace/__tests__/workspace.service.worktrees.test.ts +1 -1
- package/src/modules/workspace/__tests__/workspace.tools.agents-file.test.ts +5 -5
- package/src/modules/workspace/__tests__/workspace.tools.branch-errors.test.ts +5 -5
- package/src/modules/workspace/__tests__/workspace.tools.test.ts +27 -27
- package/src/modules/workspace/agent-access.gate.ts +5 -5
- package/src/modules/workspace/git-internals.middleware.ts +2 -2
- package/src/modules/workspace/kb-repository.ts +1 -1
- package/src/modules/workspace/startup/__tests__/kb-startup-runner.degraded.test.ts +1 -1
- package/src/modules/workspace/startup/__tests__/kb-startup-runner.test.ts +1 -1
- package/src/modules/workspace/startup/__tests__/kb-startup-runner.worktrees.test.ts +1 -1
- package/src/modules/workspace/startup/kb-git.ts +1 -1
- package/src/modules/workspace/startup/steps/__tests__/steps.test.ts +94 -70
- package/src/modules/workspace/startup/steps/seed-tree.ts +4 -5
- package/src/modules/workspace/startup/steps/template-files.step.ts +4 -5
- package/src/modules/workspace/startup/steps/template-source.ts +21 -6
- package/src/modules/workspace/workspace-tmp.ts +4 -4
- package/src/modules/workspace/workspace.routes.ts +26 -26
- package/src/modules/workspace/workspace.service.ts +11 -11
- package/src/modules/workspace/workspace.tools.ts +17 -10
- package/src/shared/__tests__/canonical-file-identity.test.ts +5 -5
- package/src/shared/__tests__/fire-and-forget.test.ts +39 -0
- package/src/shared/__tests__/http-errors.test.ts +4 -4
- package/src/shared/canonical-file-identity.ts +5 -5
- package/src/shared/domain-errors.ts +44 -44
- package/src/shared/fire-and-forget.ts +26 -0
- package/src/shared/git.contract.ts +1 -1
- package/src/shared/http-errors.ts +3 -3
- package/src/shared/kb-context.ts +130 -130
- package/src/shared/pending-proposals.ts +4 -4
- package/src/tenancy/__tests__/tenant-host.test.ts +372 -372
- package/src/tenancy/__tests__/tenant-runtime.test.ts +221 -221
- package/src/tenancy/__tests__/tenant-secrets.test.ts +35 -35
- package/src/tenancy/index.ts +35 -35
- package/src/tenancy/static-tenant-source.ts +1 -1
- package/src/tenancy/tenant-host.ts +261 -261
- package/src/tenancy/tenant-runtime.ts +208 -208
- package/src/tenancy/tenant-source.contract.ts +59 -59
- package/dist/modules/workflow/agent-tools/change-request-read-shape.d.ts.map +0 -1
- package/dist/modules/workflow/agent-tools/change-request-read-shape.js.map +0 -1
- package/dist/modules/workflow/agent-tools/change-request-read.tools.d.ts.map +0 -1
- package/dist/modules/workflow/agent-tools/change-request-read.tools.js.map +0 -1
- package/dist/modules/workflow/agent-tools/change-request-summary.d.ts.map +0 -1
- package/dist/modules/workflow/agent-tools/change-request-summary.js.map +0 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.d.ts.map +0 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.js.map +0 -1
- package/dist/modules/workflow/change-request-hooks.d.ts.map +0 -1
- package/dist/modules/workflow/change-request-hooks.js.map +0 -1
- package/dist/modules/workflow/event-bus.d.ts.map +0 -1
- package/dist/modules/workflow/event-bus.js.map +0 -1
- package/dist/modules/workflow/events-delivery.d.ts.map +0 -1
- package/dist/modules/workflow/events-delivery.js.map +0 -1
- package/dist/modules/workflow/events.routes.d.ts.map +0 -1
- package/dist/modules/workflow/events.routes.js.map +0 -1
- package/dist/modules/workflow/file-lock.service.d.ts.map +0 -1
- package/dist/modules/workflow/file-lock.service.js.map +0 -1
- package/dist/modules/workflow/git/change-request-link.d.ts.map +0 -1
- package/dist/modules/workflow/git/change-request-link.js.map +0 -1
- package/dist/modules/workflow/git/git-version.d.ts.map +0 -1
- package/dist/modules/workflow/git/git-version.js.map +0 -1
- package/dist/modules/workflow/git/git.service.d.ts.map +0 -1
- package/dist/modules/workflow/git/git.service.js.map +0 -1
- package/dist/modules/workflow/git/merge-commit.d.ts.map +0 -1
- package/dist/modules/workflow/git/merge-commit.js.map +0 -1
- package/dist/modules/workflow/git/node-git-runner.d.ts.map +0 -1
- package/dist/modules/workflow/git/node-git-runner.js.map +0 -1
- package/dist/modules/workflow/git/pull-request.service.d.ts.map +0 -1
- package/dist/modules/workflow/git/pull-request.service.js.map +0 -1
- package/dist/modules/workflow/index.d.ts.map +0 -1
- package/dist/modules/workflow/index.js.map +0 -1
- package/dist/modules/workflow/pending-commits.service.d.ts.map +0 -1
- package/dist/modules/workflow/pending-commits.service.js.map +0 -1
- package/dist/modules/workflow/pending-commits.worker.d.ts.map +0 -1
- package/dist/modules/workflow/pending-commits.worker.js.map +0 -1
- package/dist/modules/workflow/read-on-branch.d.ts.map +0 -1
- package/dist/modules/workflow/read-on-branch.js.map +0 -1
- package/dist/modules/workflow/recovery-bot.d.ts.map +0 -1
- package/dist/modules/workflow/recovery-bot.js.map +0 -1
- package/dist/modules/workflow/review-workflow/approval-lock.d.ts.map +0 -1
- package/dist/modules/workflow/review-workflow/approval-lock.js.map +0 -1
- package/dist/modules/workflow/review-workflow/review-workflow.interface.d.ts.map +0 -1
- package/dist/modules/workflow/review-workflow/review-workflow.interface.js +0 -2
- package/dist/modules/workflow/review-workflow/review-workflow.interface.js.map +0 -1
- package/dist/modules/workflow/review-workflow/review-workflow.service.d.ts.map +0 -1
- package/dist/modules/workflow/review-workflow/review-workflow.service.js.map +0 -1
- package/dist/modules/workflow/sanitize-error.d.ts.map +0 -1
- package/dist/modules/workflow/sanitize-error.js.map +0 -1
- package/dist/modules/workflow/workflow-hooks.d.ts.map +0 -1
- package/dist/modules/workflow/workflow-hooks.js.map +0 -1
- package/dist/modules/workflow/workflow.routes.d.ts.map +0 -1
- package/dist/modules/workflow/workflow.routes.js.map +0 -1
- package/dist/modules/workflow/workflow.service.d.ts.map +0 -1
- package/dist/modules/workflow/workflow.service.js.map +0 -1
- package/src/modules/mcp/__tests__/read-only-hint.e2e.test.ts +0 -213
- /package/dist/modules/{workflow → version-control}/agent-tools/change-request-read-shape.d.ts +0 -0
- /package/dist/modules/{workflow → version-control}/agent-tools/change-request-read-shape.js +0 -0
- /package/dist/modules/{workflow → version-control}/agent-tools/change-request-read.tools.d.ts +0 -0
- /package/dist/modules/{workflow → version-control}/agent-tools/change-request-summary.d.ts +0 -0
- /package/dist/modules/{workflow → version-control}/agent-tools/change-request-summary.js +0 -0
- /package/dist/modules/{workflow → version-control}/change-request-hooks.js +0 -0
- /package/dist/modules/{workflow/review-workflow → version-control/change-request-review}/approval-lock.d.ts +0 -0
- /package/dist/modules/{workflow/review-workflow → version-control/change-request-review}/approval-lock.js +0 -0
- /package/dist/modules/{workflow → version-control}/events-delivery.js +0 -0
- /package/dist/modules/{workflow → version-control}/events.routes.js +0 -0
- /package/dist/modules/{workflow → version-control}/git/change-request-link.d.ts +0 -0
- /package/dist/modules/{workflow → version-control}/git/change-request-link.js +0 -0
- /package/dist/modules/{workflow → version-control}/git/git-version.d.ts +0 -0
- /package/dist/modules/{workflow → version-control}/git/git-version.js +0 -0
- /package/dist/modules/{workflow → version-control}/git/merge-commit.d.ts +0 -0
- /package/dist/modules/{workflow → version-control}/git/merge-commit.js +0 -0
- /package/dist/modules/{workflow → version-control}/git/node-git-runner.d.ts +0 -0
- /package/dist/modules/{workflow → version-control}/recovery-bot.d.ts +0 -0
- /package/dist/modules/{workflow → version-control}/recovery-bot.js +0 -0
- /package/dist/modules/{workflow → version-control}/sanitize-error.d.ts +0 -0
- /package/dist/modules/{workflow → version-control}/sanitize-error.js +0 -0
- /package/src/modules/{workflow → version-control}/__tests__/change-request-hooks.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/__tests__/fake-file-lock-db.ts +0 -0
- /package/src/modules/{workflow → version-control}/__tests__/pending-commits.canonical.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/__tests__/pending-commits.enqueue-if-absent.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/__tests__/pending-commits.repository-replaced.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/__tests__/sanitize-error.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/agent-tools/__tests__/change-request-read-shape.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/agent-tools/change-request-read-shape.ts +0 -0
- /package/src/modules/{workflow → version-control}/agent-tools/change-request-summary.ts +0 -0
- /package/src/modules/{workflow/review-workflow → version-control/change-request-review}/approval-lock.ts +0 -0
- /package/src/modules/{workflow → version-control}/git/__tests__/branchAuthor.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/git/__tests__/change-request-link.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/git/__tests__/git-version.failure.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/git/__tests__/git-version.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/git/__tests__/node-git-runner.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/git/__tests__/pull-request.service.getPrDetail.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/git/__tests__/pull-request.service.placeholder.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/git/__tests__/pull-request.service.viewer-can-cancel.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/git/__tests__/pull-request.service.viewer-can-delete.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/git/__tests__/pull-request.service.viewer-can-update.test.ts +0 -0
- /package/src/modules/{workflow → version-control}/git/change-request-link.ts +0 -0
- /package/src/modules/{workflow → version-control}/git/git-version.ts +0 -0
- /package/src/modules/{workflow → version-control}/git/merge-commit.ts +0 -0
- /package/src/modules/{workflow → version-control}/recovery-bot.ts +0 -0
- /package/src/modules/{workflow → version-control}/sanitize-error.ts +0 -0
package/src/modules/{workflow/workflow.routes.ts → version-control/version-control.routes.ts}
RENAMED
|
@@ -6,13 +6,14 @@
|
|
|
6
6
|
* URL layout:
|
|
7
7
|
* /workspace/:id/workflow/... — workspace-scoped ops (branches, changes, locks, compare)
|
|
8
8
|
* /workflow/change-requests/... — change-request ops (list/detail/edit/approvals/merge/reject)
|
|
9
|
+
* The `/workflow/` prefix is kept for API compatibility until a core major.
|
|
9
10
|
*
|
|
10
11
|
* Workspace ids are `encodeURIComponent(branch)` (PLAN §3) — branches are
|
|
11
12
|
* shared by every user editing them, so route handlers gate on
|
|
12
13
|
* authentication only. Coordination of concurrent edits happens via the
|
|
13
14
|
* file-lock service, not via per-user clones.
|
|
14
15
|
*
|
|
15
|
-
* Error mapping: every
|
|
16
|
+
* Error mapping: every version-control error class extends `VersionControlDomainError`
|
|
16
17
|
* which exposes `.status` + optional `.payload`, so a single `toHttpError`
|
|
17
18
|
* covers all branches/changes/CR errors uniformly.
|
|
18
19
|
*/
|
|
@@ -27,7 +28,7 @@ import type {
|
|
|
27
28
|
ChangeInput,
|
|
28
29
|
ChangeRequest,
|
|
29
30
|
ChangeRequestApplyFailureKind,
|
|
30
|
-
|
|
31
|
+
IVersionControlService,
|
|
31
32
|
OpenChangeRequestInput,
|
|
32
33
|
} from '@bevel-software/platform-shared';
|
|
33
34
|
import type { AuthService } from '../auth/index.js';
|
|
@@ -35,8 +36,8 @@ import type { IAccessControl } from '../access/index.js';
|
|
|
35
36
|
import { canReadWorkspacePath, toKbRelative } from '../access-model/index.js';
|
|
36
37
|
import type { WorkspaceService } from '../workspace/index.js';
|
|
37
38
|
import { branchForWorkspaceId } from '../../shared/workspace-id.js';
|
|
38
|
-
import type {
|
|
39
|
-
import {
|
|
39
|
+
import type { VersionControlEventBus } from './event-bus.js';
|
|
40
|
+
import { VersionControlDomainError } from '../../shared/domain-errors.js';
|
|
40
41
|
import { assertReadableAtCommits } from './read-on-branch.js';
|
|
41
42
|
import { assertValidRelativePath } from '../kb-fs/index.js';
|
|
42
43
|
import { domainErrorBody } from '../../shared/http-errors.js';
|
|
@@ -46,7 +47,7 @@ import '../auth/index.js'; // Express Request augmentation
|
|
|
46
47
|
function toHttpError(
|
|
47
48
|
err: unknown,
|
|
48
49
|
): { status: number; body: Record<string, unknown> } {
|
|
49
|
-
if (err instanceof
|
|
50
|
+
if (err instanceof VersionControlDomainError) {
|
|
50
51
|
return { status: err.status, body: domainErrorBody(err) };
|
|
51
52
|
}
|
|
52
53
|
log.error('unhandled error:', { err });
|
|
@@ -71,11 +72,11 @@ function isTruthyQuery(v: unknown): boolean {
|
|
|
71
72
|
return v === '1' || v === 'true';
|
|
72
73
|
}
|
|
73
74
|
|
|
74
|
-
export function
|
|
75
|
-
|
|
75
|
+
export function createVersionControlRoutes(
|
|
76
|
+
versionControl: IVersionControlService,
|
|
76
77
|
workspaceService: WorkspaceService,
|
|
77
78
|
authService: AuthService,
|
|
78
|
-
events:
|
|
79
|
+
events: VersionControlEventBus,
|
|
79
80
|
accessControl: IAccessControl,
|
|
80
81
|
kbDirName: string,
|
|
81
82
|
): express.Router {
|
|
@@ -84,9 +85,9 @@ export function createWorkflowRoutes(
|
|
|
84
85
|
/**
|
|
85
86
|
* Authentication gate. Per PLAN §3, branches are shared workspaces —
|
|
86
87
|
* any authenticated user can access any branch. Authorization for
|
|
87
|
-
* mutations happens at the
|
|
88
|
+
* mutations happens at the version-control / git layer (access tree, file
|
|
88
89
|
* locks, change-request approval gate). This helper just resolves the
|
|
89
|
-
* caller's `AuthUser` record; route bodies pass it to
|
|
90
|
+
* caller's `AuthUser` record; route bodies pass it to version-control methods
|
|
90
91
|
* for per-operation auth.
|
|
91
92
|
*/
|
|
92
93
|
async function requireUser(
|
|
@@ -237,7 +238,7 @@ export function createWorkflowRoutes(
|
|
|
237
238
|
// TTL) so a user-initiated refresh — e.g. opening the branch selector —
|
|
238
239
|
// immediately reflects branches another workspace just created/deleted.
|
|
239
240
|
const freshFetch = isTruthyQuery(req.query.fresh);
|
|
240
|
-
res.json(await
|
|
241
|
+
res.json(await versionControl.listBranches(req.params.id, { freshFetch }));
|
|
241
242
|
} catch (err) {
|
|
242
243
|
const { status, body } = toHttpError(err);
|
|
243
244
|
res.status(status).json(body);
|
|
@@ -252,7 +253,7 @@ export function createWorkflowRoutes(
|
|
|
252
253
|
return;
|
|
253
254
|
}
|
|
254
255
|
try {
|
|
255
|
-
res.json(await
|
|
256
|
+
res.json(await versionControl.createBranch(req.params.id, name, fromBase));
|
|
256
257
|
} catch (err) {
|
|
257
258
|
const { status, body } = toHttpError(err);
|
|
258
259
|
res.status(status).json(body);
|
|
@@ -264,7 +265,7 @@ export function createWorkflowRoutes(
|
|
|
264
265
|
if (!user) return;
|
|
265
266
|
const onlyIfNoRemote = isTruthyQuery(req.query.onlyIfNoRemote);
|
|
266
267
|
try {
|
|
267
|
-
await
|
|
268
|
+
await versionControl.deleteBranch(req.params.id, req.params.name, user, { onlyIfNoRemote });
|
|
268
269
|
res.json({ status: 'deleted' });
|
|
269
270
|
} catch (err) {
|
|
270
271
|
const { status, body } = toHttpError(err);
|
|
@@ -293,7 +294,7 @@ export function createWorkflowRoutes(
|
|
|
293
294
|
// The call is idempotent and ~free in the warm case (Map lookup), so it
|
|
294
295
|
// costs nothing once the workspace is already on disk.
|
|
295
296
|
await workspaceService.getOrCreateForBranch(branchForWorkspaceId(req.params.id));
|
|
296
|
-
res.json(await
|
|
297
|
+
res.json(await versionControl.branchStatus(req.params.id));
|
|
297
298
|
} catch (err) {
|
|
298
299
|
const { status, body } = toHttpError(err);
|
|
299
300
|
res.status(status).json(body);
|
|
@@ -307,7 +308,7 @@ export function createWorkflowRoutes(
|
|
|
307
308
|
const user = await requireUser(req, res);
|
|
308
309
|
if (!user) return;
|
|
309
310
|
try {
|
|
310
|
-
await
|
|
311
|
+
await versionControl.shareCurrentBranch(req.params.id, user);
|
|
311
312
|
res.json({ status: 'shared' });
|
|
312
313
|
} catch (err) {
|
|
313
314
|
const { status, body } = toHttpError(err);
|
|
@@ -318,7 +319,7 @@ export function createWorkflowRoutes(
|
|
|
318
319
|
router.post('/workspace/:id/workflow/refresh-remotes', async (req, res) => {
|
|
319
320
|
if (!(await requireUser(req, res))) return;
|
|
320
321
|
try {
|
|
321
|
-
await
|
|
322
|
+
await versionControl.refreshRemotes(req.params.id);
|
|
322
323
|
res.json({ status: 'refreshed' });
|
|
323
324
|
} catch (err) {
|
|
324
325
|
const { status, body } = toHttpError(err);
|
|
@@ -332,7 +333,7 @@ export function createWorkflowRoutes(
|
|
|
332
333
|
const user = await requireUser(req, res);
|
|
333
334
|
if (!user) return;
|
|
334
335
|
try {
|
|
335
|
-
await
|
|
336
|
+
await versionControl.updateFromRemote(req.params.id, user);
|
|
336
337
|
res.json({ status: 'updated' });
|
|
337
338
|
} catch (err) {
|
|
338
339
|
const { status, body } = toHttpError(err);
|
|
@@ -348,7 +349,7 @@ export function createWorkflowRoutes(
|
|
|
348
349
|
return;
|
|
349
350
|
}
|
|
350
351
|
try {
|
|
351
|
-
const base = await
|
|
352
|
+
const base = await versionControl.resolveForkBase(req.params.id, branch);
|
|
352
353
|
res.json({ base });
|
|
353
354
|
} catch (err) {
|
|
354
355
|
const { status, body } = toHttpError(err);
|
|
@@ -359,7 +360,7 @@ export function createWorkflowRoutes(
|
|
|
359
360
|
router.get('/workspace/:id/workflow/pending-changes', async (req, res) => {
|
|
360
361
|
if (!(await requireUser(req, res))) return;
|
|
361
362
|
try {
|
|
362
|
-
const paths = await
|
|
363
|
+
const paths = await versionControl.listPendingChangePaths(req.params.id);
|
|
363
364
|
res.json({ paths });
|
|
364
365
|
} catch (err) {
|
|
365
366
|
const { status, body } = toHttpError(err);
|
|
@@ -377,7 +378,7 @@ export function createWorkflowRoutes(
|
|
|
377
378
|
if (!user) return;
|
|
378
379
|
const input = req.body as ChangeInput;
|
|
379
380
|
try {
|
|
380
|
-
res.json(await
|
|
381
|
+
res.json(await versionControl.commitChange(req.params.id, user, input));
|
|
381
382
|
} catch (err) {
|
|
382
383
|
const { status, body } = toHttpError(err);
|
|
383
384
|
res.status(status).json(body);
|
|
@@ -394,7 +395,7 @@ export function createWorkflowRoutes(
|
|
|
394
395
|
const rawLimit = Number.parseInt(String(req.query.limit ?? '20'), 10);
|
|
395
396
|
const limit = Number.isFinite(rawLimit) ? Math.max(1, Math.min(rawLimit, 100)) : 20;
|
|
396
397
|
try {
|
|
397
|
-
res.json({ changes: await
|
|
398
|
+
res.json({ changes: await versionControl.listChangesForFile(req.params.id, pathParam, limit) });
|
|
398
399
|
} catch (err) {
|
|
399
400
|
const { status, body } = toHttpError(err);
|
|
400
401
|
res.status(status).json(body);
|
|
@@ -429,7 +430,7 @@ export function createWorkflowRoutes(
|
|
|
429
430
|
if (!user) return;
|
|
430
431
|
const repoRelative = toKbRelative(pathParam, kbDirName)!;
|
|
431
432
|
try {
|
|
432
|
-
const compared = await
|
|
433
|
+
const compared = await versionControl.compareFile(req.params.id, pathParam, fromBranch, toBranch, async (sides) => {
|
|
433
434
|
await assertReadableAtCommits(accessControl, req.params.id, user.email, repoRelative, sides.from, fromBranch, pathParam);
|
|
434
435
|
await assertReadableAtCommits(accessControl, req.params.id, user.email, repoRelative, sides.to, toBranch, pathParam);
|
|
435
436
|
});
|
|
@@ -449,7 +450,7 @@ export function createWorkflowRoutes(
|
|
|
449
450
|
}
|
|
450
451
|
if (!(await requireReadPermission(req, res, req.params.id, pathParam))) return;
|
|
451
452
|
try {
|
|
452
|
-
const diff = await
|
|
453
|
+
const diff = await versionControl.showFileAtChange(req.params.id, pathParam, sha);
|
|
453
454
|
res.json({ diff });
|
|
454
455
|
} catch (err) {
|
|
455
456
|
const { status, body } = toHttpError(err);
|
|
@@ -466,7 +467,7 @@ export function createWorkflowRoutes(
|
|
|
466
467
|
}
|
|
467
468
|
if (!(await requireReadPermission(req, res, req.params.id, pathParam))) return;
|
|
468
469
|
try {
|
|
469
|
-
const { baseline, current } = await
|
|
470
|
+
const { baseline, current } = await versionControl.fileAtChange(req.params.id, pathParam, sha);
|
|
470
471
|
res.json({ baseline, current });
|
|
471
472
|
} catch (err) {
|
|
472
473
|
const { status, body } = toHttpError(err);
|
|
@@ -476,10 +477,10 @@ export function createWorkflowRoutes(
|
|
|
476
477
|
|
|
477
478
|
// ── File locks ────────────────────────────────────────────────────────────
|
|
478
479
|
|
|
479
|
-
// These routes hand the caller's spelling straight to the
|
|
480
|
+
// These routes hand the caller's spelling straight to the version-control service,
|
|
480
481
|
// which is where ONE file identity is decided (`canonicalFileIdentity`), so
|
|
481
482
|
// `./x//a.md` and `x/a.md` are the same lock on every verb below. Refusals
|
|
482
|
-
// arrive here as `
|
|
483
|
+
// arrive here as `VersionControlDomainError`s carrying the status the file verbs
|
|
483
484
|
// answer for that same input, and `toHttpError` passes it through unchanged.
|
|
484
485
|
// Nothing is canonicalised at this layer on purpose: a route-level fix would
|
|
485
486
|
// leave any other caller of the service coordinating on its own identity.
|
|
@@ -495,7 +496,7 @@ export function createWorkflowRoutes(
|
|
|
495
496
|
return;
|
|
496
497
|
}
|
|
497
498
|
try {
|
|
498
|
-
res.json(await
|
|
499
|
+
res.json(await versionControl.acquireLock(req.params.id, branch, targetPath, user));
|
|
499
500
|
} catch (err) {
|
|
500
501
|
const { status, body } = toHttpError(err);
|
|
501
502
|
res.status(status).json(body);
|
|
@@ -519,7 +520,7 @@ export function createWorkflowRoutes(
|
|
|
519
520
|
return;
|
|
520
521
|
}
|
|
521
522
|
try {
|
|
522
|
-
await
|
|
523
|
+
await versionControl.releaseLock(req.params.id, branch, targetPath, user);
|
|
523
524
|
res.json({ queued: true });
|
|
524
525
|
} catch (err) {
|
|
525
526
|
const { status, body } = toHttpError(err);
|
|
@@ -542,7 +543,7 @@ export function createWorkflowRoutes(
|
|
|
542
543
|
return;
|
|
543
544
|
}
|
|
544
545
|
try {
|
|
545
|
-
const change = await
|
|
546
|
+
const change = await versionControl.commitFileWhileLocked(
|
|
546
547
|
req.params.id,
|
|
547
548
|
branch,
|
|
548
549
|
targetPath,
|
|
@@ -565,7 +566,7 @@ export function createWorkflowRoutes(
|
|
|
565
566
|
return;
|
|
566
567
|
}
|
|
567
568
|
try {
|
|
568
|
-
res.json(await
|
|
569
|
+
res.json(await versionControl.heartbeatLock(req.params.id, branch, targetPath, user));
|
|
569
570
|
} catch (err) {
|
|
570
571
|
const { status, body } = toHttpError(err);
|
|
571
572
|
res.status(status).json(body);
|
|
@@ -601,7 +602,7 @@ export function createWorkflowRoutes(
|
|
|
601
602
|
res.status(403).json({ error: `You don't have permission to read "${targetPath}".` });
|
|
602
603
|
return;
|
|
603
604
|
}
|
|
604
|
-
res.json({ lock: await
|
|
605
|
+
res.json({ lock: await versionControl.getLock(req.params.id, branch, targetPath) });
|
|
605
606
|
} catch (err) {
|
|
606
607
|
const { status, body } = toHttpError(err);
|
|
607
608
|
res.status(status).json(body);
|
|
@@ -613,7 +614,7 @@ export function createWorkflowRoutes(
|
|
|
613
614
|
router.get('/workflow/change-requests', async (req, res) => {
|
|
614
615
|
const fresh = isTruthyQuery(req.query.fresh);
|
|
615
616
|
try {
|
|
616
|
-
res.json(await scopeApplyFailures(req, await
|
|
617
|
+
res.json(await scopeApplyFailures(req, await versionControl.listChangeRequests({ fresh })));
|
|
617
618
|
} catch (err) {
|
|
618
619
|
const { status, body } = toHttpError(err);
|
|
619
620
|
res.status(status).json(body);
|
|
@@ -628,7 +629,7 @@ export function createWorkflowRoutes(
|
|
|
628
629
|
// the list changed, and a cached answer would hide their own change.
|
|
629
630
|
const fresh = isTruthyQuery(req.query.fresh);
|
|
630
631
|
try {
|
|
631
|
-
res.json(await scopeApplyFailures(req, await
|
|
632
|
+
res.json(await scopeApplyFailures(req, await versionControl.listChangeRequestsAuthoredBy(user.email, { fresh }), user));
|
|
632
633
|
} catch (err) {
|
|
633
634
|
const { status, body } = toHttpError(err);
|
|
634
635
|
res.status(status).json(body);
|
|
@@ -642,7 +643,7 @@ export function createWorkflowRoutes(
|
|
|
642
643
|
try {
|
|
643
644
|
const workspace = await workspaceService.getOrCreateForUser(user);
|
|
644
645
|
res.json(
|
|
645
|
-
await scopeApplyFailures(req, await
|
|
646
|
+
await scopeApplyFailures(req, await versionControl.listChangeRequestsForUser(workspace.id, user.email, { fresh }), user),
|
|
646
647
|
);
|
|
647
648
|
} catch (err) {
|
|
648
649
|
const { status, body } = toHttpError(err);
|
|
@@ -689,7 +690,7 @@ export function createWorkflowRoutes(
|
|
|
689
690
|
const user = await requireUser(req, res);
|
|
690
691
|
if (!user) return;
|
|
691
692
|
try {
|
|
692
|
-
res.json({ requests: await
|
|
693
|
+
res.json({ requests: await versionControl.changeRequestsUnderFolder(folder, user) });
|
|
693
694
|
} catch (err) {
|
|
694
695
|
const { status, body } = toHttpError(err);
|
|
695
696
|
res.status(status).json(body);
|
|
@@ -707,7 +708,7 @@ export function createWorkflowRoutes(
|
|
|
707
708
|
const user = await requireUser(req, res);
|
|
708
709
|
if (!user) return;
|
|
709
710
|
try {
|
|
710
|
-
res.json({ results: await
|
|
711
|
+
res.json({ results: await versionControl.removeFolderFromChangeRequests(folder, user) });
|
|
711
712
|
} catch (err) {
|
|
712
713
|
const { status, body } = toHttpError(err);
|
|
713
714
|
res.status(status).json(body);
|
|
@@ -721,7 +722,7 @@ export function createWorkflowRoutes(
|
|
|
721
722
|
return;
|
|
722
723
|
}
|
|
723
724
|
try {
|
|
724
|
-
const cr = await
|
|
725
|
+
const cr = await versionControl.getChangeRequest(num);
|
|
725
726
|
if (!cr) {
|
|
726
727
|
res.status(404).json({ error: 'change request not found' });
|
|
727
728
|
return;
|
|
@@ -760,7 +761,7 @@ export function createWorkflowRoutes(
|
|
|
760
761
|
// blip when the caller's workspace isn't yet provisioned.
|
|
761
762
|
}
|
|
762
763
|
}
|
|
763
|
-
let detail = await
|
|
764
|
+
let detail = await versionControl.getChangeRequestDetail(num, {
|
|
764
765
|
fresh,
|
|
765
766
|
workspaceId,
|
|
766
767
|
viewerEmail,
|
|
@@ -777,9 +778,9 @@ export function createWorkflowRoutes(
|
|
|
777
778
|
if (detail.state === 'open' && detail.files.length === 0 && req.userId) {
|
|
778
779
|
try {
|
|
779
780
|
const user = await authService.getUserById(req.userId);
|
|
780
|
-
if (user && (await
|
|
781
|
+
if (user && (await versionControl.closeEmptyChangeRequest(num, user))) {
|
|
781
782
|
detail =
|
|
782
|
-
(await
|
|
783
|
+
(await versionControl.getChangeRequestDetail(num, {
|
|
783
784
|
fresh: true,
|
|
784
785
|
workspaceId,
|
|
785
786
|
viewerEmail,
|
|
@@ -812,7 +813,7 @@ export function createWorkflowRoutes(
|
|
|
812
813
|
const user = await requireUser(req, res);
|
|
813
814
|
if (!user) return;
|
|
814
815
|
try {
|
|
815
|
-
await
|
|
816
|
+
await versionControl.deleteChangeRequest(num, user);
|
|
816
817
|
res.json({ deleted: true });
|
|
817
818
|
} catch (err) {
|
|
818
819
|
const { status, body } = toHttpError(err);
|
|
@@ -824,7 +825,7 @@ export function createWorkflowRoutes(
|
|
|
824
825
|
* Change an open request's title and/or description. Its author, or anyone
|
|
825
826
|
* who may merge it (an admin, or the holder of write on every changed file);
|
|
826
827
|
* anyone else gets a worded 403, and a merged or closed request a worded
|
|
827
|
-
* 409 — `
|
|
828
|
+
* 409 — `VersionControlService.updateChangeRequest` decides both. Answers the
|
|
828
829
|
* updated request. `appendDescription` (the app's own later-round note) adds
|
|
829
830
|
* a paragraph to the description as stored, instead of replacing it.
|
|
830
831
|
*/
|
|
@@ -846,7 +847,7 @@ export function createWorkflowRoutes(
|
|
|
846
847
|
const user = await requireUser(req, res);
|
|
847
848
|
if (!user) return;
|
|
848
849
|
try {
|
|
849
|
-
const updated = await
|
|
850
|
+
const updated = await versionControl.updateChangeRequest(num, user, {
|
|
850
851
|
title: body.title as string | undefined,
|
|
851
852
|
description: body.description as string | undefined,
|
|
852
853
|
appendDescription: body.appendDescription as string | undefined,
|
|
@@ -879,7 +880,7 @@ export function createWorkflowRoutes(
|
|
|
879
880
|
return;
|
|
880
881
|
}
|
|
881
882
|
try {
|
|
882
|
-
res.json(await
|
|
883
|
+
res.json(await versionControl.revertChangeRequestFile(num, user, body.path));
|
|
883
884
|
} catch (err) {
|
|
884
885
|
const { status, body: errBody } = toHttpError(err);
|
|
885
886
|
res.status(status).json(errBody);
|
|
@@ -904,7 +905,7 @@ export function createWorkflowRoutes(
|
|
|
904
905
|
// bootstraps the clone if this is the first request for it.
|
|
905
906
|
const workspace = await workspaceService.getOrCreateForBranch(body.sourceBranch);
|
|
906
907
|
res.json(
|
|
907
|
-
await
|
|
908
|
+
await versionControl.openChangeRequest(workspace.id, user, {
|
|
908
909
|
sourceBranch: body.sourceBranch,
|
|
909
910
|
targetBranch: body.targetBranch,
|
|
910
911
|
title: body.title,
|
|
@@ -932,13 +933,13 @@ export function createWorkflowRoutes(
|
|
|
932
933
|
// first, then resolve the matching workspace — same reasoning as
|
|
933
934
|
// `openChangeRequest` above. `getOrCreateForBranch` lazily clones
|
|
934
935
|
// if the source branch hasn't been touched on this replica yet.
|
|
935
|
-
const cr = await
|
|
936
|
+
const cr = await versionControl.getChangeRequest(num);
|
|
936
937
|
if (!cr) {
|
|
937
938
|
res.status(404).json({ error: 'change request not found' });
|
|
938
939
|
return;
|
|
939
940
|
}
|
|
940
941
|
const workspace = await workspaceService.getOrCreateForBranch(cr.branch);
|
|
941
|
-
res.json(await
|
|
942
|
+
res.json(await versionControl.updateFromTarget(workspace.id, user, num));
|
|
942
943
|
} catch (err) {
|
|
943
944
|
const { status, body } = toHttpError(err);
|
|
944
945
|
res.status(status).json(body);
|
|
@@ -979,7 +980,7 @@ export function createWorkflowRoutes(
|
|
|
979
980
|
const user = await requireUser(req, res);
|
|
980
981
|
if (!user) return;
|
|
981
982
|
try {
|
|
982
|
-
const cr = await
|
|
983
|
+
const cr = await versionControl.getChangeRequest(num);
|
|
983
984
|
if (!cr) {
|
|
984
985
|
res.status(404).json({ error: 'change request not found' });
|
|
985
986
|
return;
|
|
@@ -996,12 +997,12 @@ export function createWorkflowRoutes(
|
|
|
996
997
|
return;
|
|
997
998
|
}
|
|
998
999
|
const forkSha =
|
|
999
|
-
sha || (await
|
|
1000
|
+
sha || (await versionControl.changeRequestForkPoint(workspace.id, cr.base, cr.branch));
|
|
1000
1001
|
if (!forkSha) {
|
|
1001
1002
|
res.json({ content: null, forkSha: null });
|
|
1002
1003
|
return;
|
|
1003
1004
|
}
|
|
1004
|
-
const content = await
|
|
1005
|
+
const content = await versionControl.fileAtForkPoint(workspace.id, cr.base, forkSha, repoPath);
|
|
1005
1006
|
res.json({ content, forkSha });
|
|
1006
1007
|
} catch (err) {
|
|
1007
1008
|
const { status, body } = toHttpError(err);
|
|
@@ -1027,7 +1028,7 @@ export function createWorkflowRoutes(
|
|
|
1027
1028
|
}
|
|
1028
1029
|
try {
|
|
1029
1030
|
const workspace = await workspaceService.getOrCreateForUser(user);
|
|
1030
|
-
const detail = await
|
|
1031
|
+
const detail = await versionControl.getChangeRequestDetail(num, {
|
|
1031
1032
|
fresh: true,
|
|
1032
1033
|
workspaceId: workspace.id,
|
|
1033
1034
|
viewerEmail: user.email,
|
|
@@ -1040,7 +1041,7 @@ export function createWorkflowRoutes(
|
|
|
1040
1041
|
res.status(404).json({ error: 'change request not found' });
|
|
1041
1042
|
return;
|
|
1042
1043
|
}
|
|
1043
|
-
const approvals = await
|
|
1044
|
+
const approvals = await versionControl.approveFile(
|
|
1044
1045
|
num,
|
|
1045
1046
|
body.path,
|
|
1046
1047
|
user,
|
|
@@ -1072,7 +1073,7 @@ export function createWorkflowRoutes(
|
|
|
1072
1073
|
}
|
|
1073
1074
|
try {
|
|
1074
1075
|
const workspace = await workspaceService.getOrCreateForUser(user);
|
|
1075
|
-
const detail = await
|
|
1076
|
+
const detail = await versionControl.getChangeRequestDetail(num, {
|
|
1076
1077
|
fresh: true,
|
|
1077
1078
|
workspaceId: workspace.id,
|
|
1078
1079
|
viewerEmail: user.email,
|
|
@@ -1085,7 +1086,7 @@ export function createWorkflowRoutes(
|
|
|
1085
1086
|
res.status(404).json({ error: 'change request not found' });
|
|
1086
1087
|
return;
|
|
1087
1088
|
}
|
|
1088
|
-
const approvals = await
|
|
1089
|
+
const approvals = await versionControl.unapproveFile(
|
|
1089
1090
|
num,
|
|
1090
1091
|
targetPath,
|
|
1091
1092
|
user,
|
|
@@ -1112,7 +1113,7 @@ export function createWorkflowRoutes(
|
|
|
1112
1113
|
if (!user) return;
|
|
1113
1114
|
try {
|
|
1114
1115
|
const workspace = await workspaceService.getOrCreateForUser(user);
|
|
1115
|
-
const detail = await
|
|
1116
|
+
const detail = await versionControl.getChangeRequestDetail(num, {
|
|
1116
1117
|
fresh: true,
|
|
1117
1118
|
workspaceId: workspace.id,
|
|
1118
1119
|
viewerEmail: user.email,
|
|
@@ -1125,7 +1126,7 @@ export function createWorkflowRoutes(
|
|
|
1125
1126
|
res.status(404).json({ error: 'change request not found' });
|
|
1126
1127
|
return;
|
|
1127
1128
|
}
|
|
1128
|
-
const result = await
|
|
1129
|
+
const result = await versionControl.rejectChangeRequest(
|
|
1129
1130
|
num,
|
|
1130
1131
|
user,
|
|
1131
1132
|
detail.state,
|
|
@@ -1157,7 +1158,7 @@ export function createWorkflowRoutes(
|
|
|
1157
1158
|
// timeout — surfacing to the user as a 502 even while the merge is still
|
|
1158
1159
|
// running. So we ack with 202 and run the merge in the background, reporting
|
|
1159
1160
|
// the result over the event bus: `change-request-merged` on success (emitted
|
|
1160
|
-
// by the
|
|
1161
|
+
// by the version-control service; the PR viewer refreshes off it), and a
|
|
1161
1162
|
// user-scoped `change-request-merge-failed` on a gate block / conflict /
|
|
1162
1163
|
// merge error so the UI that kicked it off can react. A failure on a
|
|
1163
1164
|
// request that exists is ALSO persisted and broadcast (`recordApplyFailure`)
|
|
@@ -1167,7 +1168,7 @@ export function createWorkflowRoutes(
|
|
|
1167
1168
|
// needs no clearing (only an open request reports a refusal), and a newer
|
|
1168
1169
|
// refusal simply overwrites the old one.
|
|
1169
1170
|
res.status(202).json({ status: 'merging', number: num });
|
|
1170
|
-
const attempt =
|
|
1171
|
+
const attempt = versionControl.beginApplyAttempt(num);
|
|
1171
1172
|
// What the clicker's reason is scoped against, once the request is loaded.
|
|
1172
1173
|
// Unset (a failure before that) means read access is unproven: withheld.
|
|
1173
1174
|
let readScope: { workspaceId: string; paths: string[] } | null = null;
|
|
@@ -1188,7 +1189,7 @@ export function createWorkflowRoutes(
|
|
|
1188
1189
|
});
|
|
1189
1190
|
if (!persist) return;
|
|
1190
1191
|
try {
|
|
1191
|
-
await
|
|
1192
|
+
await versionControl.recordApplyFailure(num, { reason, kind, at }, user, attempt);
|
|
1192
1193
|
} catch (err) {
|
|
1193
1194
|
// The clicker already has the reason; only the other viewers lose it.
|
|
1194
1195
|
log.warn(`could not record the failed apply of change request #${num}:`, { err });
|
|
@@ -1197,7 +1198,7 @@ export function createWorkflowRoutes(
|
|
|
1197
1198
|
void (async () => {
|
|
1198
1199
|
try {
|
|
1199
1200
|
const workspace = await workspaceService.getOrCreateForUser(user);
|
|
1200
|
-
const detail = await
|
|
1201
|
+
const detail = await versionControl.getChangeRequestDetail(num, {
|
|
1201
1202
|
fresh: true,
|
|
1202
1203
|
workspaceId: workspace.id,
|
|
1203
1204
|
viewerEmail: user.email,
|
|
@@ -1213,7 +1214,7 @@ export function createWorkflowRoutes(
|
|
|
1213
1214
|
return;
|
|
1214
1215
|
}
|
|
1215
1216
|
readScope = { workspaceId: workspace.id, paths: detail.touchedNodePaths };
|
|
1216
|
-
const outcome = await
|
|
1217
|
+
const outcome = await versionControl.mergeChangeRequest(
|
|
1217
1218
|
num,
|
|
1218
1219
|
user,
|
|
1219
1220
|
detail.headSha,
|
|
@@ -1227,7 +1228,7 @@ export function createWorkflowRoutes(
|
|
|
1227
1228
|
if (outcome.kind === 'conflicts-need-resolution') {
|
|
1228
1229
|
await reportFailure('This draft conflicts with the target and needs resolving first.', 'conflicts');
|
|
1229
1230
|
}
|
|
1230
|
-
// Success path: `
|
|
1231
|
+
// Success path: `versionControl.mergeChangeRequest` emits `change-request-merged`.
|
|
1231
1232
|
} catch (err) {
|
|
1232
1233
|
const { status, body: errBody } = toHttpError(err);
|
|
1233
1234
|
log.error(`async merge of change request #${num} failed:`, { err });
|
|
@@ -1244,7 +1245,7 @@ export function createWorkflowRoutes(
|
|
|
1244
1245
|
!aboutTheCaller,
|
|
1245
1246
|
);
|
|
1246
1247
|
} finally {
|
|
1247
|
-
|
|
1248
|
+
versionControl.endApplyAttempt(num, attempt);
|
|
1248
1249
|
}
|
|
1249
1250
|
})();
|
|
1250
1251
|
});
|