@bevel-software/platform-core-backend 0.34.0 → 0.36.1
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/access-control.md +146 -300
- package/agent-guide/conventions.md +23 -25
- package/agent-guide/directory-structure.md +72 -120
- package/agent-guide/drafts-and-change-requests.md +92 -0
- package/agent-guide/for-git-users.md +47 -0
- package/agent-guide/glossary.md +36 -0
- package/agent-guide/how-agents-find-things.md +49 -0
- package/agent-guide/html-views.md +16 -11
- package/agent-guide/new-knowledge-base.md +9 -8
- package/agent-guide/onboarding.md +111 -0
- package/agent-guide/skills.md +67 -42
- package/agent-guide/start-here.md +66 -0
- package/agent-guide/tool-manuals.md +133 -154
- package/agent-guide/tools.md +67 -0
- package/agent-guide/where-a-new-file-goes.md +45 -28
- 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 +27 -25
- package/dist/core/create-core-server.js.map +1 -1
- package/dist/core/create-core-services.d.ts +25 -13
- package/dist/core/create-core-services.d.ts.map +1 -1
- package/dist/core/create-core-services.js +75 -60
- 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.interface.d.ts +22 -0
- package/dist/modules/access/access-control.interface.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.d.ts +3 -1
- package/dist/modules/access/access-control.service.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.js +76 -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 +32 -13
- 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/index.d.ts +1 -1
- package/dist/modules/access/index.d.ts.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 +63 -18
- package/dist/modules/agent-guide/agent-guide.d.ts.map +1 -1
- package/dist/modules/agent-guide/agent-guide.js +144 -30
- package/dist/modules/agent-guide/agent-guide.js.map +1 -1
- package/dist/modules/agent-guide/agent-guide.tools.d.ts +6 -2
- package/dist/modules/agent-guide/agent-guide.tools.d.ts.map +1 -1
- package/dist/modules/agent-guide/agent-guide.tools.js +45 -31
- package/dist/modules/agent-guide/agent-guide.tools.js.map +1 -1
- package/dist/modules/agent-guide/guide-budget.d.ts +51 -0
- package/dist/modules/agent-guide/guide-budget.d.ts.map +1 -0
- package/dist/modules/agent-guide/guide-budget.js +71 -0
- package/dist/modules/agent-guide/guide-budget.js.map +1 -0
- package/dist/modules/agent-guide/index.d.ts +2 -1
- package/dist/modules/agent-guide/index.d.ts.map +1 -1
- package/dist/modules/agent-guide/index.js +2 -1
- package/dist/modules/agent-guide/index.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 +28 -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 +60 -18
- 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/code-mode/code-mode.tool.js +2 -2
- package/dist/modules/code-mode/code-mode.tool.js.map +1 -1
- package/dist/modules/connection-probe/connection-probe.service.d.ts +0 -12
- package/dist/modules/connection-probe/connection-probe.service.d.ts.map +1 -1
- package/dist/modules/connection-probe/connection-probe.service.js +1 -38
- package/dist/modules/connection-probe/connection-probe.service.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 +2 -2
- package/dist/modules/kb-fs/locking-filesystem.d.ts +9 -9
- package/dist/modules/kb-fs/locking-filesystem.d.ts.map +1 -1
- package/dist/modules/kb-fs/locking-filesystem.js +27 -27
- 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 +80 -53
- 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 +4 -4
- 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 +87 -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 +635 -74
- package/dist/modules/secrets-vault/db-secrets-vault.service.js.map +1 -1
- package/dist/modules/secrets-vault/index.d.ts +3 -2
- package/dist/modules/secrets-vault/index.d.ts.map +1 -1
- package/dist/modules/secrets-vault/index.js +2 -1
- 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 +205 -11
- package/dist/modules/secrets-vault/secrets-vault.contract.d.ts.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.contract.js +27 -0
- 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 +206 -45
- 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/oidc-check.d.ts.map +1 -1
- package/dist/modules/settings/oidc-check.js +5 -17
- package/dist/modules/settings/oidc-check.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/skills/skills.tools.js +1 -1
- package/dist/modules/skills/skills.tools.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-def.js +1 -1
- package/dist/modules/tool-helpers/tool-def.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-json-discovery.d.ts +7 -1
- package/dist/modules/tool-manuals/mcp-json-discovery.d.ts.map +1 -1
- package/dist/modules/tool-manuals/mcp-json-discovery.js +69 -38
- package/dist/modules/tool-manuals/mcp-json-discovery.js.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 +70 -3
- package/dist/modules/tool-manuals/tool-manuals.contract.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts +18 -8
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.js +166 -49
- package/dist/modules/tool-manuals/tool-manuals.service.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.tools.d.ts +11 -2
- package/dist/modules/tool-manuals/tool-manuals.tools.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.tools.js +66 -24
- 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} +53 -49
- 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 +8 -8
- package/dist/modules/version-control/git/git.service.d.ts.map +1 -0
- package/dist/modules/{workflow → version-control}/git/git.service.js +53 -53
- 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} +4 -4
- 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} +3 -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 -31
- 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} +89 -94
- package/dist/modules/version-control/version-control.service.js.map +1 -0
- package/dist/modules/workspace/agent-access.gate.d.ts +6 -6
- package/dist/modules/workspace/agent-access.gate.d.ts.map +1 -1
- package/dist/modules/workspace/agent-access.gate.js +2 -2
- package/dist/modules/workspace/agent-access.gate.js.map +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 +5 -3
- package/dist/modules/workspace/workspace.tools.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.tools.js +85 -30
- 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/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/oauth-token-error.d.ts +23 -0
- package/dist/shared/oauth-token-error.d.ts.map +1 -0
- package/dist/shared/oauth-token-error.js +47 -0
- package/dist/shared/oauth-token-error.js.map +1 -0
- 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/shared/read-capped.d.ts +19 -0
- package/dist/shared/read-capped.d.ts.map +1 -0
- package/dist/shared/read-capped.js +45 -0
- package/dist/shared/read-capped.js.map +1 -0
- 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 +5 -4
- package/src/__tests__/account-admin.ts +27 -0
- package/src/__tests__/hexis-catalog.ts +144 -0
- 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-disk.ts +21 -0
- package/src/__tests__/tokens.ts +19 -0
- package/src/__tests__/tool-handler.ts +15 -0
- package/src/__tests__/tool-manuals.ts +32 -0
- package/src/__tests__/tool-wiring.ts +31 -0
- package/src/__tests__/workspace-service.ts +1 -1
- package/src/core/__tests__/catalog-cache-invalidation.test.ts +3 -3
- 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/__tests__/oauth-sign-in-real-file.test.ts +179 -0
- 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 +40 -26
- package/src/core/create-core-services.ts +92 -66
- 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 +20 -20
- 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 +54 -14
- 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 +27 -27
- package/src/modules/access/__tests__/holder-changes.test.ts +127 -0
- package/src/modules/access/__tests__/roles-admin.security.test.ts +14 -13
- package/src/modules/access/__tests__/roles-admin.service.test.ts +27 -27
- package/src/modules/access/__tests__/roles-capabilities.test.ts +19 -19
- package/src/modules/access/__tests__/roles.routes.test.ts +6 -6
- package/src/modules/access/__tests__/synced-groups-committer.test.ts +13 -13
- package/src/modules/access/__tests__/user-access-removal.service.test.ts +29 -29
- package/src/modules/access/access-control.interface.ts +26 -0
- package/src/modules/access/access-control.service.ts +93 -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 +34 -15
- 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/index.ts +1 -1
- 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 +98 -29
- package/src/modules/agent-guide/__tests__/agent-guide.tools.test.ts +39 -12
- package/src/modules/agent-guide/__tests__/guide-budget.test.ts +95 -0
- package/src/modules/agent-guide/__tests__/guide-eval.test.ts +182 -0
- package/src/modules/agent-guide/__tests__/guide-matches-code.test.ts +263 -0
- package/src/modules/agent-guide/__tests__/tool-surface.json +514 -0
- package/src/modules/agent-guide/__tests__/tool-surface.test.ts +75 -0
- package/src/modules/agent-guide/agent-guide.tools.ts +49 -31
- package/src/modules/agent-guide/agent-guide.ts +165 -32
- package/src/modules/agent-guide/guide-budget.ts +77 -0
- package/src/modules/agent-guide/index.ts +12 -0
- 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 +117 -11
- package/src/modules/agent-instructions/agent-instructions.routes.ts +12 -5
- package/src/modules/agent-instructions/compose.ts +28 -9
- package/src/modules/agent-instructions/shared-file-rules.ts +62 -18
- 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/code-mode/code-mode.tool.ts +2 -2
- package/src/modules/connection-probe/__tests__/connection-probe.service.test.ts +5 -24
- package/src/modules/connection-probe/connection-probe.service.ts +1 -34
- package/src/modules/database/__tests__/advisory-lock.test.ts +169 -169
- package/src/modules/database/__tests__/migrations-unqualified.test.ts +32 -32
- 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 +42 -42
- 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__/locking-filesystem.test.ts +260 -260
- package/src/modules/kb-fs/__tests__/move-with-edits.test.ts +34 -34
- 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 +2 -2
- package/src/modules/kb-fs/locking-filesystem.ts +30 -30
- 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 +93 -62
- package/src/modules/onboarding/__tests__/starter-pack.service.test.ts +55 -55
- 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 +6 -6
- 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__/plugins.routes.test.ts +25 -25
- 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 +458 -4
- package/src/modules/secrets-vault/__tests__/managed-sign-in.route.test.ts +351 -0
- package/src/modules/secrets-vault/__tests__/oauth-live-declaration.route.test.ts +218 -0
- package/src/modules/secrets-vault/__tests__/oauth-return-to.route.test.ts +39 -6
- package/src/modules/secrets-vault/db-secrets-vault.service.ts +728 -118
- package/src/modules/secrets-vault/index.ts +8 -1
- 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 +213 -11
- package/src/modules/secrets-vault/secrets-vault.routes.ts +244 -45
- 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/oidc-check.ts +5 -18
- 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/skills/skills.tools.ts +1 -1
- package/src/modules/tool-helpers/__tests__/agent-roles-write.test.ts +22 -14
- 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__/route-tool-schemas.catalog.test.ts +38 -0
- 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-def.ts +1 -1
- 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.mcp-oauth.test.ts +197 -11
- package/src/modules/tool-manuals/__tests__/tool-manuals.restart.test.ts +1 -1
- package/src/modules/tool-manuals/__tests__/tool-manuals.tools.test.ts +132 -6
- package/src/modules/tool-manuals/mcp-json-discovery.ts +73 -34
- 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 +63 -3
- package/src/modules/tool-manuals/tool-manuals.service.ts +191 -51
- package/src/modules/tool-manuals/tool-manuals.tools.ts +93 -28
- 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 +12 -119
- 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} +97 -99
- 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} +42 -42
- 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} +52 -48
- 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/{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 +20 -20
- 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 +57 -57
- 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} +3 -3
- 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} +92 -97
- 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 +12 -14
- package/src/modules/workspace/__tests__/workspace.tools.branch-errors.test.ts +5 -5
- package/src/modules/workspace/__tests__/workspace.tools.test.ts +182 -75
- package/src/modules/workspace/agent-access.gate.ts +6 -6
- 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 +90 -30
- package/src/shared/__tests__/canonical-file-identity.test.ts +5 -5
- package/src/shared/__tests__/http-errors.test.ts +4 -4
- package/src/shared/__tests__/read-capped.test.ts +68 -0
- package/src/shared/canonical-file-identity.ts +5 -5
- package/src/shared/domain-errors.ts +44 -44
- 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/oauth-token-error.ts +46 -0
- package/src/shared/pending-proposals.ts +4 -4
- package/src/shared/read-capped.ts +40 -0
- 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/agent-guide/finding-things.md +0 -7
- package/agent-guide/introduction.md +0 -27
- 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 → version-control}/git/__tests__/git.service.fileBytesAtCommit.test.ts
RENAMED
|
@@ -7,10 +7,10 @@ import { GitService } from '../git.service.js';
|
|
|
7
7
|
import {
|
|
8
8
|
VersionNotOnBranchError,
|
|
9
9
|
VERSION_NOT_ON_BRANCH_MESSAGE,
|
|
10
|
-
|
|
10
|
+
VersionControlValidationError,
|
|
11
11
|
} from '../../../../shared/domain-errors.js';
|
|
12
12
|
import { GitRunError, assertOneSpecPerLine } from '../../../../shared/git.contract.js';
|
|
13
|
-
import { runGit, gitOut,
|
|
13
|
+
import { runGit, gitOut, stubVersionControlHooks, stubWorkspaceService } from './git-test-helpers.js';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* A past version has to come back BYTE FOR BYTE, and only for saves on the
|
|
@@ -62,7 +62,7 @@ describe('GitService.fileBytesAtCommit', () => {
|
|
|
62
62
|
|
|
63
63
|
svc = new GitService(
|
|
64
64
|
stubWorkspaceService({ [workspaceId]: workspaceDir }),
|
|
65
|
-
|
|
65
|
+
stubVersionControlHooks(),
|
|
66
66
|
testKbContext(),
|
|
67
67
|
);
|
|
68
68
|
});
|
|
@@ -156,13 +156,13 @@ describe('GitService.fileBytesAtCommit', () => {
|
|
|
156
156
|
// `assertValidRelativePath` — the shared one in
|
|
157
157
|
// `packages/shared/src/workspace/filename.ts`, which throws a plain
|
|
158
158
|
// `Error('Invalid path: …')`, and the kb-fs one in
|
|
159
|
-
// `modules/kb-fs/branch-name.ts`, which throws `
|
|
159
|
+
// `modules/kb-fs/branch-name.ts`, which throws `VersionControlValidationError`
|
|
160
160
|
// (status 400). `GitService` imports the kb-fs one, and the 400 is what
|
|
161
161
|
// makes the route answer 400 rather than 500, so the type is asserted
|
|
162
162
|
// here deliberately and the message pins which of the two ran.
|
|
163
163
|
await expect(
|
|
164
164
|
svc.fileBytesAtCommit(workspaceId, injected, addSha, 'after'),
|
|
165
|
-
).rejects.toThrow(
|
|
165
|
+
).rejects.toThrow(VersionControlValidationError);
|
|
166
166
|
await expect(
|
|
167
167
|
svc.fileBytesAtCommit(workspaceId, injected, addSha, 'after'),
|
|
168
168
|
).rejects.toThrow(/control character/);
|
|
@@ -188,7 +188,7 @@ describe('GitService.fileBytesAtCommit', () => {
|
|
|
188
188
|
it('refuses a sha that is not a sha', async () => {
|
|
189
189
|
await expect(
|
|
190
190
|
svc.fileBytesAtCommit(workspaceId, 'knowledge-base/logo.png', 'HEAD', 'after'),
|
|
191
|
-
).rejects.toThrow(
|
|
191
|
+
).rejects.toThrow(VersionControlValidationError);
|
|
192
192
|
});
|
|
193
193
|
|
|
194
194
|
it('refuses a save that is not in this branch\'s history, and a made-up one, alike', async () => {
|
|
@@ -229,7 +229,7 @@ describe('GitService.fileBytesAtCommit', () => {
|
|
|
229
229
|
.catch((e: unknown) => e);
|
|
230
230
|
// `GitRunError` specifically, not just `Error`: the route reads the error's
|
|
231
231
|
// TYPE to decide its status, so a future re-wrap into
|
|
232
|
-
// `
|
|
232
|
+
// `VersionControlValidationError` would turn this into a 400 about the caller's
|
|
233
233
|
// request rather than the logged 500 a broken repository earns, and a bare
|
|
234
234
|
// `toBeInstanceOf(Error)` would not notice.
|
|
235
235
|
expect(err).toBeInstanceOf(GitRunError);
|
|
@@ -6,7 +6,7 @@ import fs from 'node:fs/promises';
|
|
|
6
6
|
import path from 'node:path';
|
|
7
7
|
import os from 'node:os';
|
|
8
8
|
import type { WorkspaceService } from '../../../workspace/workspace.service.js';
|
|
9
|
-
import {
|
|
9
|
+
import { VersionControlHooks } from '../../version-control-hooks.js';
|
|
10
10
|
import { GitService } from '../git.service.js';
|
|
11
11
|
|
|
12
12
|
const execFileAsync = promisify(execFile);
|
|
@@ -86,7 +86,7 @@ describe('GitService.fileContentsAtCommit', () => {
|
|
|
86
86
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
87
87
|
const svc = new GitService(
|
|
88
88
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
89
|
-
new
|
|
89
|
+
new VersionControlHooks(),
|
|
90
90
|
testKbContext(),
|
|
91
91
|
);
|
|
92
92
|
|
|
@@ -123,7 +123,7 @@ describe('GitService.fileContentsAtCommit', () => {
|
|
|
123
123
|
const { workspaceDir } = await seedWorkspace(root, workspaceId);
|
|
124
124
|
const svc = new GitService(
|
|
125
125
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
126
|
-
new
|
|
126
|
+
new VersionControlHooks(),
|
|
127
127
|
testKbContext(),
|
|
128
128
|
);
|
|
129
129
|
await expect(
|
package/src/modules/{workflow → version-control}/git/__tests__/git.service.forkPoint.test.ts
RENAMED
|
@@ -4,7 +4,7 @@ import fs from 'node:fs/promises';
|
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import os from 'node:os';
|
|
6
6
|
import { GitService } from '../git.service.js';
|
|
7
|
-
import { gitOut, runGit,
|
|
7
|
+
import { gitOut, runGit, stubVersionControlHooks, stubWorkspaceService } from './git-test-helpers.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* A change request shows only what its author changed. When someone edits the
|
|
@@ -52,7 +52,7 @@ describe('GitService — fork point, behind, and Update', () => {
|
|
|
52
52
|
|
|
53
53
|
git = new GitService(
|
|
54
54
|
stubWorkspaceService({ [WS]: path.dirname(repo) }),
|
|
55
|
-
|
|
55
|
+
stubVersionControlHooks(),
|
|
56
56
|
testKbContext(),
|
|
57
57
|
);
|
|
58
58
|
});
|
package/src/modules/{workflow → version-control}/git/__tests__/git.service.history-guards.test.ts
RENAMED
|
@@ -4,7 +4,7 @@ import fs from 'node:fs/promises';
|
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import os from 'node:os';
|
|
6
6
|
import { GitService } from '../git.service.js';
|
|
7
|
-
import { runGit, gitOut,
|
|
7
|
+
import { runGit, gitOut, stubVersionControlHooks, stubWorkspaceService } from './git-test-helpers.js';
|
|
8
8
|
|
|
9
9
|
// The history surfaces are per-file: their read gate checked exactly one
|
|
10
10
|
// path, but a directory pathspec walks every child — and `show <ref>:<dir>`
|
|
@@ -34,7 +34,7 @@ describe('GitService history guards', () => {
|
|
|
34
34
|
sha = await gitOut(repo, ['rev-parse', 'HEAD']);
|
|
35
35
|
svc = new GitService(
|
|
36
36
|
stubWorkspaceService({ [workspaceId]: workspaceDir }),
|
|
37
|
-
|
|
37
|
+
stubVersionControlHooks(),
|
|
38
38
|
testKbContext(),
|
|
39
39
|
);
|
|
40
40
|
});
|
package/src/modules/{workflow → version-control}/git/__tests__/git.service.list-branches.test.ts
RENAMED
|
@@ -6,7 +6,7 @@ import fs from 'node:fs/promises';
|
|
|
6
6
|
import path from 'node:path';
|
|
7
7
|
import os from 'node:os';
|
|
8
8
|
import type { WorkspaceService } from '../../../workspace/workspace.service.js';
|
|
9
|
-
import {
|
|
9
|
+
import { VersionControlHooks } from '../../version-control-hooks.js';
|
|
10
10
|
import { GitService } from '../git.service.js';
|
|
11
11
|
import { NodeGitRunner } from '../node-git-runner.js';
|
|
12
12
|
import type { IGitRunner } from '../../../../shared/git.contract.js';
|
|
@@ -84,7 +84,7 @@ describe('GitService.listBranches', () => {
|
|
|
84
84
|
await seedWorkspace(root, workspaceId);
|
|
85
85
|
const svc = new GitService(
|
|
86
86
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
87
|
-
new
|
|
87
|
+
new VersionControlHooks(),
|
|
88
88
|
testKbContext(),
|
|
89
89
|
);
|
|
90
90
|
|
|
@@ -103,7 +103,7 @@ describe('GitService.listBranches', () => {
|
|
|
103
103
|
await seedWorkspace(root, workspaceId);
|
|
104
104
|
const svc = new GitService(
|
|
105
105
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
106
|
-
new
|
|
106
|
+
new VersionControlHooks(),
|
|
107
107
|
testKbContext(),
|
|
108
108
|
);
|
|
109
109
|
|
|
@@ -117,7 +117,7 @@ describe('GitService.listBranches', () => {
|
|
|
117
117
|
const { upstream } = await seedWorkspace(root, workspaceId);
|
|
118
118
|
const svc = new GitService(
|
|
119
119
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
120
|
-
new
|
|
120
|
+
new VersionControlHooks(),
|
|
121
121
|
testKbContext(),
|
|
122
122
|
);
|
|
123
123
|
// Prime the cache: first call fetches and populates lastImplicitFetchAt.
|
|
@@ -133,7 +133,7 @@ describe('GitService.listBranches', () => {
|
|
|
133
133
|
|
|
134
134
|
const freshSvc = new GitService(
|
|
135
135
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
136
|
-
new
|
|
136
|
+
new VersionControlHooks(),
|
|
137
137
|
testKbContext(),
|
|
138
138
|
);
|
|
139
139
|
const branches = await freshSvc.listBranches(workspaceId);
|
|
@@ -147,7 +147,7 @@ describe('GitService.listBranches', () => {
|
|
|
147
147
|
|
|
148
148
|
const svc = new GitService(
|
|
149
149
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
150
|
-
new
|
|
150
|
+
new VersionControlHooks(),
|
|
151
151
|
testKbContext(),
|
|
152
152
|
);
|
|
153
153
|
|
|
@@ -161,7 +161,7 @@ describe('GitService.listBranches', () => {
|
|
|
161
161
|
await seedWorkspace(root, workspaceId);
|
|
162
162
|
const svc = new GitService(
|
|
163
163
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
164
|
-
new
|
|
164
|
+
new VersionControlHooks(),
|
|
165
165
|
testKbContext(),
|
|
166
166
|
);
|
|
167
167
|
|
|
@@ -180,7 +180,7 @@ describe('GitService.listBranches', () => {
|
|
|
180
180
|
const { upstream } = await seedWorkspace(root, workspaceId);
|
|
181
181
|
const svc = new GitService(
|
|
182
182
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
183
|
-
new
|
|
183
|
+
new VersionControlHooks(),
|
|
184
184
|
testKbContext(),
|
|
185
185
|
);
|
|
186
186
|
// Simulate a just-completed clone — the workspace is freshly fetched.
|
|
@@ -206,7 +206,7 @@ describe('GitService.listBranches', () => {
|
|
|
206
206
|
await seedWorkspace(root, workspaceId);
|
|
207
207
|
const svc = new GitService(
|
|
208
208
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
209
|
-
new
|
|
209
|
+
new VersionControlHooks(),
|
|
210
210
|
testKbContext(),
|
|
211
211
|
);
|
|
212
212
|
const seen: string[][] = [];
|
|
@@ -223,7 +223,7 @@ describe('GitService.listBranches', () => {
|
|
|
223
223
|
await seedWorkspace(root, workspaceId);
|
|
224
224
|
const svc = new GitService(
|
|
225
225
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
226
|
-
new
|
|
226
|
+
new VersionControlHooks(),
|
|
227
227
|
testKbContext(),
|
|
228
228
|
);
|
|
229
229
|
svc.setBranchesListedListener(() => { throw new Error('listener blew up'); });
|
|
@@ -254,7 +254,7 @@ describe('GitService.listBranches', () => {
|
|
|
254
254
|
const { runner, commands } = recordingRunner();
|
|
255
255
|
const svc = new GitService(
|
|
256
256
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
257
|
-
new
|
|
257
|
+
new VersionControlHooks(),
|
|
258
258
|
testKbContext(),
|
|
259
259
|
undefined,
|
|
260
260
|
null,
|
|
@@ -317,7 +317,7 @@ describe('GitService.branchCounts', () => {
|
|
|
317
317
|
}
|
|
318
318
|
|
|
319
319
|
function svcFor(runner: IGitRunner = new NodeGitRunner(), kb = testKbContext()): GitService {
|
|
320
|
-
return new GitService(stubWorkspaceService(draftWs, path.join(root, draftWs)), new
|
|
320
|
+
return new GitService(stubWorkspaceService(draftWs, path.join(root, draftWs)), new VersionControlHooks(), kb, undefined, null, runner);
|
|
321
321
|
}
|
|
322
322
|
|
|
323
323
|
it('counts the workspace\'s own branch against its upstream, with rev-list for that branch alone', async () => {
|
package/src/modules/{workflow → version-control}/git/__tests__/git.service.listTrackedFiles.test.ts
RENAMED
|
@@ -6,7 +6,7 @@ import fs from 'node:fs/promises';
|
|
|
6
6
|
import path from 'node:path';
|
|
7
7
|
import os from 'node:os';
|
|
8
8
|
import type { WorkspaceService } from '../../../workspace/workspace.service.js';
|
|
9
|
-
import {
|
|
9
|
+
import { VersionControlHooks } from '../../version-control-hooks.js';
|
|
10
10
|
import { GitService } from '../git.service.js';
|
|
11
11
|
|
|
12
12
|
const execFileAsync = promisify(execFile);
|
|
@@ -63,7 +63,7 @@ async function makeSvc(root: string, workspaceId: string) {
|
|
|
63
63
|
const { repo } = await seedWorkspace(root, workspaceId);
|
|
64
64
|
const svc = new GitService(
|
|
65
65
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
66
|
-
new
|
|
66
|
+
new VersionControlHooks(),
|
|
67
67
|
testKbContext(),
|
|
68
68
|
);
|
|
69
69
|
return { svc, repo };
|
package/src/modules/{workflow → version-control}/git/__tests__/git.service.logForFile.test.ts
RENAMED
|
@@ -6,7 +6,7 @@ import fs from 'node:fs/promises';
|
|
|
6
6
|
import path from 'node:path';
|
|
7
7
|
import os from 'node:os';
|
|
8
8
|
import type { WorkspaceService } from '../../../workspace/workspace.service.js';
|
|
9
|
-
import {
|
|
9
|
+
import { VersionControlHooks } from '../../version-control-hooks.js';
|
|
10
10
|
import { GitService } from '../git.service.js';
|
|
11
11
|
|
|
12
12
|
const execFileAsync = promisify(execFile);
|
|
@@ -120,7 +120,7 @@ describe('GitService.logForFile', () => {
|
|
|
120
120
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
121
121
|
const svc = new GitService(
|
|
122
122
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
123
|
-
new
|
|
123
|
+
new VersionControlHooks(),
|
|
124
124
|
testKbContext(),
|
|
125
125
|
);
|
|
126
126
|
|
|
@@ -140,7 +140,7 @@ describe('GitService.logForFile', () => {
|
|
|
140
140
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
141
141
|
const svc = new GitService(
|
|
142
142
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
143
|
-
new
|
|
143
|
+
new VersionControlHooks(),
|
|
144
144
|
testKbContext(),
|
|
145
145
|
);
|
|
146
146
|
|
|
@@ -159,7 +159,7 @@ describe('GitService.logForFile', () => {
|
|
|
159
159
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
160
160
|
const svc = new GitService(
|
|
161
161
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
162
|
-
new
|
|
162
|
+
new VersionControlHooks(),
|
|
163
163
|
testKbContext(),
|
|
164
164
|
);
|
|
165
165
|
|
|
@@ -174,7 +174,7 @@ describe('GitService.logForFile', () => {
|
|
|
174
174
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
175
175
|
const svc = new GitService(
|
|
176
176
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
177
|
-
new
|
|
177
|
+
new VersionControlHooks(),
|
|
178
178
|
testKbContext(),
|
|
179
179
|
);
|
|
180
180
|
|
|
@@ -206,7 +206,7 @@ describe('GitService.logForFile', () => {
|
|
|
206
206
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
207
207
|
const svc = new GitService(
|
|
208
208
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
209
|
-
new
|
|
209
|
+
new VersionControlHooks(),
|
|
210
210
|
testKbContext(),
|
|
211
211
|
);
|
|
212
212
|
await runGit(repo, ['commit', '--allow-empty', '-m', 'init']);
|
|
@@ -7,7 +7,7 @@ import path from 'node:path';
|
|
|
7
7
|
import os from 'node:os';
|
|
8
8
|
import type { AuthUser } from '@bevel-software/platform-shared';
|
|
9
9
|
import type { WorkspaceService } from '../../../workspace/workspace.service.js';
|
|
10
|
-
import {
|
|
10
|
+
import { VersionControlHooks } from '../../version-control-hooks.js';
|
|
11
11
|
import { GitService } from '../git.service.js';
|
|
12
12
|
import { mergeCommitSubject } from '../merge-commit.js';
|
|
13
13
|
|
|
@@ -96,7 +96,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
96
96
|
await fs.writeFile(path.join(dir, 'feature.md'), 'new content\n');
|
|
97
97
|
});
|
|
98
98
|
|
|
99
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
99
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
100
100
|
const result = await git.mergeChangeRequest(
|
|
101
101
|
baseWsId, 'alice/add', BASE, { subject: 'Add feature (#1)', body: 'Merged via Bevel' }, USER,
|
|
102
102
|
);
|
|
@@ -134,7 +134,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
134
134
|
await pushFeatureBranch(root, upstream, 'bob/first', async (dir) => {
|
|
135
135
|
await fs.writeFile(path.join(dir, 'first.md'), 'first\n');
|
|
136
136
|
});
|
|
137
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
137
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
138
138
|
const first = await git.mergeChangeRequest(
|
|
139
139
|
baseWsId, 'bob/first', BASE, { subject: mergeCommitSubject('First', 1), body: 'x' }, USER,
|
|
140
140
|
{ appliedChangeNumber: 1 },
|
|
@@ -181,7 +181,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
181
181
|
await fs.writeFile(path.join(dir, 'feature.md'), 'new content\n');
|
|
182
182
|
});
|
|
183
183
|
|
|
184
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
184
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
185
185
|
const merge = () =>
|
|
186
186
|
git.mergeChangeRequest(
|
|
187
187
|
baseWsId, 'alice/add', BASE,
|
|
@@ -225,7 +225,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
225
225
|
await fs.mkdir(path.join(root, staleWsId), { recursive: true });
|
|
226
226
|
await runGit(root, ['clone', '-b', BASE, upstream, staleRepo]);
|
|
227
227
|
|
|
228
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
228
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
229
229
|
const merged = await git.mergeChangeRequest(
|
|
230
230
|
baseWsId, 'alice/add', BASE,
|
|
231
231
|
{ subject: mergeCommitSubject('Add feature', 7), body: 'Merged via Bevel' }, USER,
|
|
@@ -237,7 +237,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
237
237
|
// Retired, as applying a change request retires it.
|
|
238
238
|
await runGit(root, ['-C', upstream, 'branch', '-D', 'alice/add']);
|
|
239
239
|
|
|
240
|
-
const stale = new GitService(stubWorkspaceService(staleWsId, staleRepo), new
|
|
240
|
+
const stale = new GitService(stubWorkspaceService(staleWsId, staleRepo), new VersionControlHooks(), testKbContext());
|
|
241
241
|
expect(await stale.appliedMergeCommitOnTarget(staleWsId, BASE, 7)).toBe(merged.mergeCommit);
|
|
242
242
|
// A number nothing on the target was merged under owns nothing.
|
|
243
243
|
expect(await stale.appliedMergeCommitOnTarget(staleWsId, BASE, 8)).toBeNull();
|
|
@@ -248,7 +248,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
248
248
|
await pushFeatureBranch(root, upstream, 'alice/add', async (dir) => {
|
|
249
249
|
await fs.writeFile(path.join(dir, 'feature.md'), 'new content\n');
|
|
250
250
|
});
|
|
251
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
251
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
252
252
|
const merged = await git.mergeChangeRequest(
|
|
253
253
|
baseWsId, 'alice/add', BASE,
|
|
254
254
|
{ subject: mergeCommitSubject('Add feature', 7), body: 'Merged via Bevel' }, USER,
|
|
@@ -293,7 +293,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
293
293
|
const sha = (await gitOut(old, ['rev-parse', 'HEAD'])).trim();
|
|
294
294
|
expect((await gitOut(old, ['log', '-1', '--format=%s'])).trim()).toBe('Add feature');
|
|
295
295
|
|
|
296
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
296
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
297
297
|
// With the title: the commit is the request's own, on the target and by sha.
|
|
298
298
|
expect(await git.appliedMergeCommitOnTarget(baseWsId, BASE, 5, title)).toBe(sha);
|
|
299
299
|
expect(await git.appliedChangeShas(baseWsId, { number: 5, mergeSha: sha, title }))
|
|
@@ -313,7 +313,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
313
313
|
await pushFeatureBranch(root, upstream, 'alice/add', async (dir) => {
|
|
314
314
|
await fs.writeFile(path.join(dir, 'feature.md'), 'new content\n');
|
|
315
315
|
});
|
|
316
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
316
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
317
317
|
const merged = await git.mergeChangeRequest(
|
|
318
318
|
baseWsId, 'alice/add', BASE,
|
|
319
319
|
{ subject: mergeCommitSubject('Fix crash (#42)', 43), body: 'x' }, USER,
|
|
@@ -342,7 +342,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
342
342
|
await fs.writeFile(path.join(dir, 'feature.md'), 'new content\n');
|
|
343
343
|
});
|
|
344
344
|
|
|
345
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
345
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
346
346
|
const merged = await git.mergeChangeRequest(
|
|
347
347
|
baseWsId, 'alice/add', BASE,
|
|
348
348
|
{ subject: mergeCommitSubject('Add feature', 7), body: 'Merged via Bevel' }, USER,
|
|
@@ -373,7 +373,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
373
373
|
await pushFeatureBranch(root, upstream, 'bob/first', async (dir) => {
|
|
374
374
|
await fs.writeFile(path.join(dir, 'first.md'), 'first\n');
|
|
375
375
|
});
|
|
376
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
376
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
377
377
|
// #1's merge commit, whose BODY mentions #9 — the shape `--grep` matches and
|
|
378
378
|
// the subject check must reject.
|
|
379
379
|
await git.mergeChangeRequest(
|
|
@@ -408,7 +408,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
408
408
|
await pushFeatureBranch(root, upstream, 'alice/add', async (dir) => {
|
|
409
409
|
await fs.writeFile(path.join(dir, 'feature.md'), 'new content\n');
|
|
410
410
|
});
|
|
411
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
411
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
412
412
|
await expect(
|
|
413
413
|
git.mergeChangeRequest(
|
|
414
414
|
baseWsId, 'alice/add', BASE, { subject: 'Add feature\n\nand a note (#3)', body: 'x' }, USER,
|
|
@@ -429,7 +429,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
429
429
|
await pushFeatureBranch(root, upstream, 'alice/add', async (dir) => {
|
|
430
430
|
await fs.writeFile(path.join(dir, 'feature.md'), 'new content\n');
|
|
431
431
|
});
|
|
432
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
432
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
433
433
|
const result = await git.mergeChangeRequest(
|
|
434
434
|
baseWsId, 'alice/add', BASE,
|
|
435
435
|
{ subject: mergeCommitSubject('Add feature\n\nand a note', 4), body: 'x' }, USER,
|
|
@@ -464,7 +464,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
464
464
|
await runGit(root, ['clone', '-b', 'tmp-base-advance', upstream, advancer]);
|
|
465
465
|
await runGit(advancer, ['push', 'origin', 'tmp-base-advance:' + BASE]);
|
|
466
466
|
|
|
467
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
467
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
468
468
|
const result = await git.mergeChangeRequest(
|
|
469
469
|
baseWsId, 'alice/edit', BASE, { subject: 'Edit (#2)', body: 'x' }, USER,
|
|
470
470
|
);
|
|
@@ -498,7 +498,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
498
498
|
// A save that has not been shared yet, exactly as a file tool leaves it.
|
|
499
499
|
await fs.writeFile(path.join(baseRepo, 'base.md'), 'edited but not shared\n');
|
|
500
500
|
|
|
501
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
501
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
502
502
|
await expect(
|
|
503
503
|
git.mergeChangeRequest(
|
|
504
504
|
baseWsId, 'alice/add', BASE, { subject: 'Add (#1)', body: 'x' }, USER,
|
|
@@ -523,7 +523,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
523
523
|
await runGit(baseRepo, ['add', '-A']);
|
|
524
524
|
await runGit(baseRepo, ['commit', '-m', 'local only']);
|
|
525
525
|
|
|
526
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
526
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
527
527
|
await expect(
|
|
528
528
|
git.mergeChangeRequest(
|
|
529
529
|
baseWsId, 'alice/add', BASE, { subject: 'Add (#1)', body: 'x' }, USER,
|
|
@@ -538,7 +538,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
538
538
|
await pushFeatureBranch(root, upstream, 'alice/add', async (dir) => {
|
|
539
539
|
await fs.writeFile(path.join(dir, 'feature.md'), 'new content\n');
|
|
540
540
|
});
|
|
541
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
541
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
542
542
|
const result = await git.mergeChangeRequest(
|
|
543
543
|
baseWsId, 'alice/add', BASE, { subject: 'Add (#1)', body: 'x' }, USER,
|
|
544
544
|
{ requireCleanTarget: true },
|
|
@@ -571,7 +571,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
571
571
|
const publishedTip = (await gitOut(advancer, ['rev-parse', 'HEAD'])).trim();
|
|
572
572
|
expect(staleHead).not.toBe(publishedTip);
|
|
573
573
|
|
|
574
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
574
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
575
575
|
const seen: { sha: string; changedPaths: string[] }[] = [];
|
|
576
576
|
const result = await git.mergeChangeRequest(
|
|
577
577
|
baseWsId, 'alice/add', BASE, { subject: 'Add (#1)', body: 'x' }, USER,
|
|
@@ -589,7 +589,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
589
589
|
await pushFeatureBranch(root, upstream, 'alice/add', async (dir) => {
|
|
590
590
|
await fs.writeFile(path.join(dir, 'feature.md'), 'new content\n');
|
|
591
591
|
});
|
|
592
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
592
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
593
593
|
await expect(
|
|
594
594
|
git.mergeChangeRequest(
|
|
595
595
|
baseWsId, 'alice/add', BASE, { subject: 'Add (#1)', body: 'x' }, USER,
|
|
@@ -614,7 +614,7 @@ describe('GitService.mergeChangeRequest', () => {
|
|
|
614
614
|
await runGit(dir, ['mv', 'roles.yaml', 'people.yaml']);
|
|
615
615
|
});
|
|
616
616
|
|
|
617
|
-
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new
|
|
617
|
+
const git = new GitService(stubWorkspaceService(baseWsId, baseRepo), new VersionControlHooks(), testKbContext());
|
|
618
618
|
const seen: string[][] = [];
|
|
619
619
|
const result = await git.mergeChangeRequest(
|
|
620
620
|
baseWsId, 'alice/rename', BASE, { subject: 'Rename (#1)', body: 'x' }, USER,
|
package/src/modules/{workflow → version-control}/git/__tests__/git.service.mergeIntoBranch.test.ts
RENAMED
|
@@ -7,8 +7,8 @@ import { GitService } from '../git.service.js';
|
|
|
7
7
|
import { NodeGitRunner } from '../node-git-runner.js';
|
|
8
8
|
import { GitRunError, type IGitRunner } from '../../../../shared/git.contract.js';
|
|
9
9
|
import type { ReservedPushOps } from '@bevel-software/platform-shared';
|
|
10
|
-
import { PullRebaseConflictError,
|
|
11
|
-
import { runGit, gitOut,
|
|
10
|
+
import { PullRebaseConflictError, VersionControlDomainError, VersionControlValidationError } from '../../../../shared/domain-errors.js';
|
|
11
|
+
import { runGit, gitOut, stubVersionControlHooks, stubWorkspaceService } from './git-test-helpers.js';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* `mergeIntoBranch`: the agent's merge, over real git. A conflict is described
|
|
@@ -24,7 +24,7 @@ const USER = { id: 'u1', email: 'ada@x.io', name: 'Ada Lovelace' };
|
|
|
24
24
|
const allow = async (): Promise<void> => {};
|
|
25
25
|
/**
|
|
26
26
|
* The smallest publish a caller can bring: push, and on a rejection replay
|
|
27
|
-
* onto the moved branch (the merge kept) and push once more. The
|
|
27
|
+
* onto the moved branch (the merge kept) and push once more. The version-control service
|
|
28
28
|
* facade brings its `pushWithRecovery` here; this stands in for it to show
|
|
29
29
|
* the moves work inside the merge's reservation.
|
|
30
30
|
*/
|
|
@@ -107,7 +107,7 @@ describe('GitService.mergeIntoBranch', () => {
|
|
|
107
107
|
});
|
|
108
108
|
|
|
109
109
|
const service = () =>
|
|
110
|
-
new GitService(stubWorkspaceService({ [workspaceId]: path.join(root, workspaceId) }),
|
|
110
|
+
new GitService(stubWorkspaceService({ [workspaceId]: path.join(root, workspaceId) }), stubVersionControlHooks(), testKbContext());
|
|
111
111
|
|
|
112
112
|
it('merges a target that moved into the draft as a merge commit by the user, and pushes nothing', async () => {
|
|
113
113
|
const { repo, pusher } = await seed(root);
|
|
@@ -275,7 +275,7 @@ describe('GitService.mergeIntoBranch', () => {
|
|
|
275
275
|
const svc = service();
|
|
276
276
|
await expect(
|
|
277
277
|
svc.mergeIntoBranch(workspaceId, DRAFT, TARGET, USER, { subject: 's', body: 'b', resolutions: [{ path: 'a.md' }], authorizeResolutions: allow }),
|
|
278
|
-
).rejects.toBeInstanceOf(
|
|
278
|
+
).rejects.toBeInstanceOf(VersionControlValidationError);
|
|
279
279
|
await expect(
|
|
280
280
|
svc.mergeIntoBranch(workspaceId, DRAFT, TARGET, USER, {
|
|
281
281
|
subject: 's',
|
|
@@ -283,7 +283,7 @@ describe('GitService.mergeIntoBranch', () => {
|
|
|
283
283
|
resolutions: [{ path: 'a.md', content: 'x', choose: 'ours' }],
|
|
284
284
|
authorizeResolutions: allow,
|
|
285
285
|
}),
|
|
286
|
-
).rejects.toBeInstanceOf(
|
|
286
|
+
).rejects.toBeInstanceOf(VersionControlValidationError);
|
|
287
287
|
});
|
|
288
288
|
|
|
289
289
|
it('refuses resolutions that nobody authorizes, before touching git', async () => {
|
|
@@ -306,9 +306,9 @@ describe('GitService.mergeIntoBranch', () => {
|
|
|
306
306
|
const err = await service()
|
|
307
307
|
.mergeIntoBranch(workspaceId, DRAFT, TARGET, USER, { subject: 's', body: 'b' })
|
|
308
308
|
.catch((e: unknown) => e);
|
|
309
|
-
expect(err).toBeInstanceOf(
|
|
310
|
-
expect((err as
|
|
311
|
-
expect((err as
|
|
309
|
+
expect(err).toBeInstanceOf(VersionControlDomainError);
|
|
310
|
+
expect((err as VersionControlDomainError).status).toBe(409);
|
|
311
|
+
expect((err as VersionControlDomainError).payload).toMatchObject({ kind: 'branch-busy' });
|
|
312
312
|
expect(await fs.readFile(path.join(repo, 'shared.md'), 'utf-8')).toBe('unsaved edit\n');
|
|
313
313
|
});
|
|
314
314
|
|
|
@@ -458,11 +458,11 @@ describe('GitService.mergeIntoBranch', () => {
|
|
|
458
458
|
mergeHead: await gitOut(repo, ['rev-parse', '-q', '--verify', 'MERGE_HEAD']).then(() => true, () => false),
|
|
459
459
|
sharedOnDisk: await fs.readFile(path.join(repo, 'shared.md'), 'utf-8'),
|
|
460
460
|
});
|
|
461
|
-
throw new
|
|
461
|
+
throw new VersionControlDomainError('not yours to settle', 403);
|
|
462
462
|
},
|
|
463
463
|
})
|
|
464
464
|
.catch((e: unknown) => e);
|
|
465
|
-
expect(err).toBeInstanceOf(
|
|
465
|
+
expect(err).toBeInstanceOf(VersionControlDomainError);
|
|
466
466
|
// Asked with the target's tip as fetched by this very merge.
|
|
467
467
|
expect(asked).toEqual([{ merge: { ours, theirs }, head: ours, mergeHead: false, sharedOnDisk: 'line 1\nline 2 from draft\nline 3\n' }]);
|
|
468
468
|
expect((await gitOut(repo, ['rev-parse', 'HEAD'])).trim()).toBe(ours);
|
|
@@ -487,7 +487,7 @@ describe('GitService.mergeIntoBranch', () => {
|
|
|
487
487
|
} as unknown as IGitRunner;
|
|
488
488
|
const svc = new GitService(
|
|
489
489
|
stubWorkspaceService({ [workspaceId]: path.join(root, workspaceId) }),
|
|
490
|
-
|
|
490
|
+
stubVersionControlHooks(),
|
|
491
491
|
testKbContext(),
|
|
492
492
|
undefined,
|
|
493
493
|
null,
|
|
@@ -643,7 +643,7 @@ describe('GitService.readFileAtBranch', () => {
|
|
|
643
643
|
const { repo, pusher } = await seed(root);
|
|
644
644
|
const theirs = await pushOn(pusher, TARGET, { 'other.md': 'other, changed on target\n', 'docs/a.md': 'a\n' }, 'target edits');
|
|
645
645
|
await runGit(repo, ['fetch', '-q', 'origin']);
|
|
646
|
-
const svc = new GitService(stubWorkspaceService({ [workspaceId]: path.join(root, workspaceId) }),
|
|
646
|
+
const svc = new GitService(stubWorkspaceService({ [workspaceId]: path.join(root, workspaceId) }), stubVersionControlHooks(), testKbContext());
|
|
647
647
|
|
|
648
648
|
expect(await svc.readFileAtBranch(workspaceId, 'knowledge-base/other.md', TARGET)).toEqual({
|
|
649
649
|
sha: theirs,
|
|
@@ -660,7 +660,7 @@ describe('GitService.readFileAtBranch', () => {
|
|
|
660
660
|
const asked: string[][] = [];
|
|
661
661
|
const refuse = async (commits: string[]): Promise<void> => {
|
|
662
662
|
asked.push(commits);
|
|
663
|
-
throw new
|
|
663
|
+
throw new VersionControlDomainError('not yours to read', 403);
|
|
664
664
|
};
|
|
665
665
|
await expect(svc.readFileAtBranch(workspaceId, 'docs', TARGET, refuse)).rejects.toThrow(/not yours to read/);
|
|
666
666
|
await expect(svc.readFileAtBranch(workspaceId, 'other.md', TARGET, refuse)).rejects.toThrow(/not yours to read/);
|
|
@@ -673,7 +673,7 @@ describe('GitService.readFileAtBranch', () => {
|
|
|
673
673
|
|
|
674
674
|
it('reads the PUBLISHED tip, not a local head that has moved past it', async () => {
|
|
675
675
|
const { repo } = await seed(root);
|
|
676
|
-
const svc = new GitService(stubWorkspaceService({ [workspaceId]: path.join(root, workspaceId) }),
|
|
676
|
+
const svc = new GitService(stubWorkspaceService({ [workspaceId]: path.join(root, workspaceId) }), stubVersionControlHooks(), testKbContext());
|
|
677
677
|
const published = (await gitOut(repo, ['rev-parse', `origin/${DRAFT}`])).trim();
|
|
678
678
|
const local = await commitLocally(repo, { 'other.md': 'not shared yet\n' }, 'local only');
|
|
679
679
|
const asked: string[][] = [];
|
|
@@ -702,7 +702,7 @@ describe('GitService.readFileAtBranch', () => {
|
|
|
702
702
|
return inner.run(cwd, args, opts as never);
|
|
703
703
|
},
|
|
704
704
|
} as unknown as IGitRunner;
|
|
705
|
-
const svc = new GitService(stubWorkspaceService({ [workspaceId]: path.join(root, workspaceId) }),
|
|
705
|
+
const svc = new GitService(stubWorkspaceService({ [workspaceId]: path.join(root, workspaceId) }), stubVersionControlHooks(), testKbContext(), undefined, null, gitRunner);
|
|
706
706
|
const asked: string[][] = [];
|
|
707
707
|
const authorize = async (commits: string[]): Promise<void> => { asked.push(commits); };
|
|
708
708
|
for (const f of [
|
package/src/modules/{workflow → version-control}/git/__tests__/git.service.pendingChanges.test.ts
RENAMED
|
@@ -6,7 +6,7 @@ import fs from 'node:fs/promises';
|
|
|
6
6
|
import path from 'node:path';
|
|
7
7
|
import os from 'node:os';
|
|
8
8
|
import type { WorkspaceService } from '../../../workspace/workspace.service.js';
|
|
9
|
-
import {
|
|
9
|
+
import { VersionControlHooks } from '../../version-control-hooks.js';
|
|
10
10
|
import { GitService } from '../git.service.js';
|
|
11
11
|
import { parsePorcelainZ } from '../git.service.js';
|
|
12
12
|
|
|
@@ -72,7 +72,7 @@ async function makeSvc(root: string, workspaceId: string) {
|
|
|
72
72
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
73
73
|
const svc = new GitService(
|
|
74
74
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
75
|
-
new
|
|
75
|
+
new VersionControlHooks(),
|
|
76
76
|
testKbContext(),
|
|
77
77
|
);
|
|
78
78
|
return { svc, repo };
|
package/src/modules/{workflow → version-control}/git/__tests__/git.service.postMergePull.test.ts
RENAMED
|
@@ -7,10 +7,10 @@ import path from 'node:path';
|
|
|
7
7
|
import os from 'node:os';
|
|
8
8
|
import type { AuthUser } from '@bevel-software/platform-shared';
|
|
9
9
|
import { GitService } from '../git.service.js';
|
|
10
|
-
import { runGit, gitOut,
|
|
10
|
+
import { runGit, gitOut, stubVersionControlHooks, stubWorkspaceService } from './git-test-helpers.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* The post-merge refresh path: `
|
|
13
|
+
* The post-merge refresh path: `VersionControlService.mergeChangeRequest` merges a
|
|
14
14
|
* change request onto `origin/<base>` and then pulls the BASE branch's own
|
|
15
15
|
* workspace so its working tree (what every file read serves) isn't left behind
|
|
16
16
|
* the remote.
|
|
@@ -109,7 +109,7 @@ describe('post-merge refresh of the target branch workspace', () => {
|
|
|
109
109
|
[sourceWsId]: path.dirname(sourceRepo),
|
|
110
110
|
[baseWsId]: path.dirname(baseRepo),
|
|
111
111
|
}),
|
|
112
|
-
|
|
112
|
+
stubVersionControlHooks(),
|
|
113
113
|
testKbContext({ kbDirName: KB_DIR }),
|
|
114
114
|
);
|
|
115
115
|
|
|
@@ -163,7 +163,7 @@ describe('post-merge refresh of the target branch workspace', () => {
|
|
|
163
163
|
[sourceWsId]: path.dirname(sourceRepo),
|
|
164
164
|
[baseWsId]: path.dirname(baseRepo),
|
|
165
165
|
}),
|
|
166
|
-
|
|
166
|
+
stubVersionControlHooks(),
|
|
167
167
|
testKbContext({ kbDirName: KB_DIR }),
|
|
168
168
|
);
|
|
169
169
|
|
|
@@ -254,7 +254,7 @@ describe('post-merge refresh of the target branch workspace', () => {
|
|
|
254
254
|
[sourceWsId]: path.dirname(sourceRepo),
|
|
255
255
|
[baseWsId]: path.dirname(baseRepo),
|
|
256
256
|
}),
|
|
257
|
-
|
|
257
|
+
stubVersionControlHooks(),
|
|
258
258
|
testKbContext({ kbDirName: KB_DIR }),
|
|
259
259
|
);
|
|
260
260
|
|