@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.changedFilesForPr.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, parseNameStatusZ, parseNumstatZ, withoutPlaceholderRename } from '../git.service.js';
|
|
11
11
|
import { WorkspaceMutex } from '../../../kb-fs/mutex.js';
|
|
12
12
|
|
|
@@ -127,7 +127,7 @@ describe('GitService.changedFilesForPr / resolvePrShas', () => {
|
|
|
127
127
|
|
|
128
128
|
const git = new GitService(
|
|
129
129
|
stubWorkspaceService(workspaceId, repo),
|
|
130
|
-
new
|
|
130
|
+
new VersionControlHooks(),
|
|
131
131
|
testKbContext(),
|
|
132
132
|
);
|
|
133
133
|
|
|
@@ -174,7 +174,7 @@ describe('GitService.changedFilesForPr / resolvePrShas', () => {
|
|
|
174
174
|
|
|
175
175
|
const git = new GitService(
|
|
176
176
|
stubWorkspaceService(workspaceId, repo),
|
|
177
|
-
new
|
|
177
|
+
new VersionControlHooks(),
|
|
178
178
|
testKbContext(),
|
|
179
179
|
);
|
|
180
180
|
// What the detail does first: resolve (and fetch) the two SHAs.
|
|
@@ -226,7 +226,7 @@ describe('GitService.changedFilesForPr / resolvePrShas', () => {
|
|
|
226
226
|
|
|
227
227
|
const git = new GitService(
|
|
228
228
|
stubWorkspaceService(workspaceId, repo),
|
|
229
|
-
new
|
|
229
|
+
new VersionControlHooks(),
|
|
230
230
|
testKbContext(),
|
|
231
231
|
);
|
|
232
232
|
|
|
@@ -264,7 +264,7 @@ describe('GitService.changedFilesForPr / resolvePrShas', () => {
|
|
|
264
264
|
await runGit(repo, ['commit', '-m', 'folders']);
|
|
265
265
|
await runGit(repo, ['push', '-u', 'origin', 'alice/new-folders']);
|
|
266
266
|
|
|
267
|
-
const git = new GitService(stubWorkspaceService(workspaceId, repo), new
|
|
267
|
+
const git = new GitService(stubWorkspaceService(workspaceId, repo), new VersionControlHooks(), testKbContext());
|
|
268
268
|
|
|
269
269
|
const files = await git.changedFilesForPr(workspaceId, 'current-company-state', 'alice/new-folders');
|
|
270
270
|
expect(files.map((f) => f.path)).toEqual(['Reports/q3.md']);
|
|
@@ -293,7 +293,7 @@ describe('GitService.changedFilesForPr / resolvePrShas', () => {
|
|
|
293
293
|
await runGit(repo, ['commit', '-m', 'emptied']);
|
|
294
294
|
await runGit(repo, ['push', '-u', 'origin', 'alice/emptied']);
|
|
295
295
|
|
|
296
|
-
const git = new GitService(stubWorkspaceService(workspaceId, repo), new
|
|
296
|
+
const git = new GitService(stubWorkspaceService(workspaceId, repo), new VersionControlHooks(), testKbContext());
|
|
297
297
|
|
|
298
298
|
const files = await git.changedFilesForPr(workspaceId, 'current-company-state', 'alice/emptied');
|
|
299
299
|
expect(files.map((f) => ({ path: f.path, status: f.status, previousPath: f.previousPath }))).toEqual([
|
|
@@ -306,7 +306,7 @@ describe('GitService.changedFilesForPr / resolvePrShas', () => {
|
|
|
306
306
|
|
|
307
307
|
it('pathExistsAtRef answers for files and folders at a ref, and false for what is not there', async () => {
|
|
308
308
|
const { repo } = await seedWorkspace(root, workspaceId);
|
|
309
|
-
const git = new GitService(stubWorkspaceService(workspaceId, repo), new
|
|
309
|
+
const git = new GitService(stubWorkspaceService(workspaceId, repo), new VersionControlHooks(), testKbContext());
|
|
310
310
|
await fs.mkdir(path.join(repo, 'Docs'));
|
|
311
311
|
await fs.writeFile(path.join(repo, 'Docs/.gitkeep'), '');
|
|
312
312
|
await runGit(repo, ['add', '-A']);
|
|
@@ -336,7 +336,7 @@ describe('GitService.changedFilesForPr / resolvePrShas', () => {
|
|
|
336
336
|
|
|
337
337
|
const git = new GitService(
|
|
338
338
|
stubWorkspaceService(workspaceId, repo),
|
|
339
|
-
new
|
|
339
|
+
new VersionControlHooks(),
|
|
340
340
|
testKbContext(),
|
|
341
341
|
);
|
|
342
342
|
|
|
@@ -417,7 +417,7 @@ describe('GitService.changedPathsForPr: who pays for the fetch', () => {
|
|
|
417
417
|
await pushedElsewhere(upstream, 'brief.pdf');
|
|
418
418
|
const git = new GitService(
|
|
419
419
|
stubWorkspaceService(workspaceId, repo),
|
|
420
|
-
new
|
|
420
|
+
new VersionControlHooks(),
|
|
421
421
|
testKbContext(),
|
|
422
422
|
);
|
|
423
423
|
expect(
|
|
@@ -430,7 +430,7 @@ describe('GitService.changedPathsForPr: who pays for the fetch', () => {
|
|
|
430
430
|
const other = await pushedElsewhere(upstream, 'brief.pdf');
|
|
431
431
|
const git = new GitService(
|
|
432
432
|
stubWorkspaceService(workspaceId, repo),
|
|
433
|
-
new
|
|
433
|
+
new VersionControlHooks(),
|
|
434
434
|
testKbContext(),
|
|
435
435
|
);
|
|
436
436
|
// The clone now knows the branch — this stands in for the one fetch a
|
|
@@ -467,7 +467,7 @@ describe('GitService.changedPathsForPr: who pays for the fetch', () => {
|
|
|
467
467
|
await pushedElsewhere(upstream, 'brief.pdf');
|
|
468
468
|
const git = new GitService(
|
|
469
469
|
stubWorkspaceService(workspaceId, repo),
|
|
470
|
-
new
|
|
470
|
+
new VersionControlHooks(),
|
|
471
471
|
testKbContext(),
|
|
472
472
|
);
|
|
473
473
|
// Nothing has refreshed this clone since the branch was pushed.
|
|
@@ -505,7 +505,7 @@ describe('GitService.changedPathsForPr: who pays for the fetch', () => {
|
|
|
505
505
|
}
|
|
506
506
|
const git = new GitService(
|
|
507
507
|
stubWorkspaceService(workspaceId, repo),
|
|
508
|
-
new
|
|
508
|
+
new VersionControlHooks(),
|
|
509
509
|
testKbContext(),
|
|
510
510
|
new PrunedMidCall(),
|
|
511
511
|
);
|
|
@@ -567,7 +567,7 @@ describe('GitService.changedPathsAndPairsForPr agrees with changedFilesForPr', (
|
|
|
567
567
|
await runGit(repo, ['commit', '-m', 'move it']);
|
|
568
568
|
await runGit(repo, ['push', '-u', 'origin', 'alice/moved']);
|
|
569
569
|
|
|
570
|
-
const git = new GitService(stubWorkspaceService(workspaceId, repo), new
|
|
570
|
+
const git = new GitService(stubWorkspaceService(workspaceId, repo), new VersionControlHooks(), testKbContext());
|
|
571
571
|
const { detail, summary, paths } = await bothViews(git, 'alice/moved');
|
|
572
572
|
|
|
573
573
|
expect(summary).toEqual(['GTM/note.md<=Engineering/note.md']);
|
|
@@ -593,7 +593,7 @@ describe('GitService.changedPathsAndPairsForPr agrees with changedFilesForPr', (
|
|
|
593
593
|
await runGit(repo, ['commit', '-m', 'mixed']);
|
|
594
594
|
await runGit(repo, ['push', '-u', 'origin', 'alice/mixed']);
|
|
595
595
|
|
|
596
|
-
const git = new GitService(stubWorkspaceService(workspaceId, repo), new
|
|
596
|
+
const git = new GitService(stubWorkspaceService(workspaceId, repo), new VersionControlHooks(), testKbContext());
|
|
597
597
|
const { detail, summary } = await bothViews(git, 'alice/mixed');
|
|
598
598
|
expect(summary).toEqual(detail);
|
|
599
599
|
expect(summary).toContain('new-home.md<=old-home.md');
|
|
@@ -610,7 +610,7 @@ describe('GitService.changedPathsAndPairsForPr agrees with changedFilesForPr', (
|
|
|
610
610
|
await runGit(repo, ['commit', '-m', 'config + folder']);
|
|
611
611
|
await runGit(repo, ['push', '-u', 'origin', 'alice/config']);
|
|
612
612
|
|
|
613
|
-
const git = new GitService(stubWorkspaceService(workspaceId, repo), new
|
|
613
|
+
const git = new GitService(stubWorkspaceService(workspaceId, repo), new VersionControlHooks(), testKbContext());
|
|
614
614
|
const { detail, summary, paths } = await bothViews(git, 'alice/config');
|
|
615
615
|
expect(summary).toEqual(['Reports/q3.md<=']);
|
|
616
616
|
expect(summary).toEqual(detail);
|
|
@@ -633,7 +633,7 @@ describe('GitService.changedPathsAndPairsForPr agrees with changedFilesForPr', (
|
|
|
633
633
|
await runGit(repo, ['commit', '-m', 'emptied']);
|
|
634
634
|
await runGit(repo, ['push', '-u', 'origin', 'alice/emptied']);
|
|
635
635
|
|
|
636
|
-
const git = new GitService(stubWorkspaceService(workspaceId, repo), new
|
|
636
|
+
const git = new GitService(stubWorkspaceService(workspaceId, repo), new VersionControlHooks(), testKbContext());
|
|
637
637
|
const { detail, summary } = await bothViews(git, 'alice/emptied');
|
|
638
638
|
// `withoutPlaceholderRename` runs on both sides, so neither reports a
|
|
639
639
|
// rename onto `.gitkeep` and neither loses the removed file.
|
package/src/modules/{workflow → version-control}/git/__tests__/git.service.changedPathsMemo.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 { WorkspaceMutex } from '../../../kb-fs/mutex.js';
|
|
12
12
|
|
|
@@ -93,7 +93,7 @@ describe('a change request is diffed once per pair of commits', () => {
|
|
|
93
93
|
} as unknown as WorkspaceService;
|
|
94
94
|
svc = new GitService(
|
|
95
95
|
workspace,
|
|
96
|
-
new
|
|
96
|
+
new VersionControlHooks(),
|
|
97
97
|
testKbContext({ branchModel: { defaultBranch: 'main', protectedBranches: ['main'] } }),
|
|
98
98
|
new WorkspaceMutex(),
|
|
99
99
|
);
|
package/src/modules/{workflow → version-control}/git/__tests__/git.service.commitChanges.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
|
/**
|
|
@@ -49,11 +49,11 @@ function stubWorkspaceService(workspaceId: string, workspaceDir: string): Worksp
|
|
|
49
49
|
} as unknown as WorkspaceService;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
function makeValidator():
|
|
52
|
+
function makeValidator(): VersionControlHooks {
|
|
53
53
|
const report = { ok: true, mustFix: [], warnings: [], rawOutput: '' };
|
|
54
54
|
// A clean-report commit-validation hook — the seam GitService consults
|
|
55
55
|
// where it used to call the injected validator.
|
|
56
|
-
const hooks = new
|
|
56
|
+
const hooks = new VersionControlHooks();
|
|
57
57
|
hooks.onCommitValidation(vi.fn(async () => report));
|
|
58
58
|
return hooks;
|
|
59
59
|
}
|
|
@@ -7,9 +7,9 @@ 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
|
-
import {
|
|
12
|
+
import { VersionControlValidationError } from '../../../../shared/domain-errors.js';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* `commitFile` on a path whose bytes sit BESIDE the repository.
|
|
@@ -87,14 +87,14 @@ describe('GitService.commitFile with bytes beside the repository', () => {
|
|
|
87
87
|
|
|
88
88
|
it('throws instead of returning null when the file exists at the workspace root and not in the clone', async () => {
|
|
89
89
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
90
|
-
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new
|
|
90
|
+
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new VersionControlHooks(), testKbContext({ kbDirName: KB }));
|
|
91
91
|
// The prefix-less write the agent made: beside the clone, not inside it.
|
|
92
92
|
await fs.mkdir(path.join(workspaceDir, 'KnowledgeBase/Reviews'), { recursive: true });
|
|
93
93
|
await fs.writeFile(path.join(workspaceDir, 'KnowledgeBase/Reviews/PR-12.html'), '<p>review</p>');
|
|
94
94
|
const headBefore = await runGit(repo, ['rev-parse', 'HEAD']);
|
|
95
95
|
|
|
96
96
|
const attempt = svc.commitFile(workspaceId, USER, 'KnowledgeBase/Reviews/PR-12.html');
|
|
97
|
-
await expect(attempt).rejects.toBeInstanceOf(
|
|
97
|
+
await expect(attempt).rejects.toBeInstanceOf(VersionControlValidationError);
|
|
98
98
|
await expect(attempt).rejects.toThrow('"knowledge-base/KnowledgeBase/Reviews/PR-12.html"');
|
|
99
99
|
|
|
100
100
|
// Nothing landed, and the stray is left where it is for someone to recover.
|
|
@@ -104,19 +104,19 @@ describe('GitService.commitFile with bytes beside the repository', () => {
|
|
|
104
104
|
|
|
105
105
|
it('still returns null for a clean, committed path (the honest no-op)', async () => {
|
|
106
106
|
const { workspaceDir } = await seedWorkspace(root, workspaceId);
|
|
107
|
-
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new
|
|
107
|
+
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new VersionControlHooks(), testKbContext({ kbDirName: KB }));
|
|
108
108
|
expect(await svc.commitFile(workspaceId, USER, `${KB}/Knowledge/A.md`)).toBeNull();
|
|
109
109
|
});
|
|
110
110
|
|
|
111
111
|
it('still returns null for a path that exists nowhere (a queued re-apply of a committed deletion)', async () => {
|
|
112
112
|
const { workspaceDir } = await seedWorkspace(root, workspaceId);
|
|
113
|
-
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new
|
|
113
|
+
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new VersionControlHooks(), testKbContext({ kbDirName: KB }));
|
|
114
114
|
expect(await svc.commitFile(workspaceId, USER, `${KB}/Knowledge/Gone.md`)).toBeNull();
|
|
115
115
|
});
|
|
116
116
|
|
|
117
117
|
it('still returns null for a repo-relative path that is clean inside the clone (the form internal callers pass)', async () => {
|
|
118
118
|
const { workspaceDir } = await seedWorkspace(root, workspaceId);
|
|
119
|
-
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new
|
|
119
|
+
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new VersionControlHooks(), testKbContext({ kbDirName: KB }));
|
|
120
120
|
expect(await svc.commitFile(workspaceId, USER, 'Knowledge/A.md')).toBeNull();
|
|
121
121
|
});
|
|
122
122
|
|
|
@@ -125,7 +125,7 @@ describe('GitService.commitFile with bytes beside the repository', () => {
|
|
|
125
125
|
// a repo-relative caller's no-op stays honest whatever else sits beside
|
|
126
126
|
// the clone under the same name.
|
|
127
127
|
const { workspaceDir } = await seedWorkspace(root, workspaceId);
|
|
128
|
-
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new
|
|
128
|
+
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new VersionControlHooks(), testKbContext({ kbDirName: KB }));
|
|
129
129
|
await fs.mkdir(path.join(workspaceDir, 'Knowledge'), { recursive: true });
|
|
130
130
|
await fs.writeFile(path.join(workspaceDir, 'Knowledge/A.md'), 'a copy beside the clone\n');
|
|
131
131
|
expect(await svc.commitFile(workspaceId, USER, 'Knowledge/A.md')).toBeNull();
|
|
@@ -138,7 +138,7 @@ describe('GitService.commitFile with bytes beside the repository', () => {
|
|
|
138
138
|
// toggles read-only, so the stat below still succeeds): nothing to prove.
|
|
139
139
|
if (process.getuid?.() === 0 || process.platform === 'win32') return;
|
|
140
140
|
const { workspaceDir } = await seedWorkspace(root, workspaceId);
|
|
141
|
-
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new
|
|
141
|
+
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new VersionControlHooks(), testKbContext({ kbDirName: KB }));
|
|
142
142
|
const strayDir = path.join(workspaceDir, 'KnowledgeBase');
|
|
143
143
|
await fs.mkdir(strayDir, { recursive: true });
|
|
144
144
|
await fs.writeFile(path.join(strayDir, 'PR-12.html'), 'x');
|
|
@@ -153,7 +153,7 @@ describe('GitService.commitFile with bytes beside the repository', () => {
|
|
|
153
153
|
|
|
154
154
|
it('still commits a prefixed path inside the clone', async () => {
|
|
155
155
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
156
|
-
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new
|
|
156
|
+
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new VersionControlHooks(), testKbContext({ kbDirName: KB }));
|
|
157
157
|
await fs.writeFile(path.join(repo, 'Knowledge/B.md'), 'b\n');
|
|
158
158
|
const committed = await svc.commitFile(workspaceId, USER, `${KB}/Knowledge/B.md`);
|
|
159
159
|
expect(committed).not.toBeNull();
|
package/src/modules/{workflow → version-control}/git/__tests__/git.service.commitFile.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
|
/**
|
|
@@ -69,12 +69,12 @@ function stubWorkspaceService(workspaceId: string, workspaceDir: string): Worksp
|
|
|
69
69
|
} as unknown as WorkspaceService;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
function makeValidator(): { hooks:
|
|
72
|
+
function makeValidator(): { hooks: VersionControlHooks; runValidation: ReturnType<typeof vi.fn> } {
|
|
73
73
|
const report = { ok: true, mustFix: [], warnings: [], rawOutput: '' };
|
|
74
74
|
const runValidation = vi.fn(async () => report);
|
|
75
75
|
// Registered as a commit-validation hook — the seam GitService consults
|
|
76
76
|
// where it used to call the injected validator.
|
|
77
|
-
const hooks = new
|
|
77
|
+
const hooks = new VersionControlHooks();
|
|
78
78
|
hooks.onCommitValidation(() => runValidation());
|
|
79
79
|
return { hooks, runValidation };
|
|
80
80
|
}
|
package/src/modules/{workflow → version-control}/git/__tests__/git.service.createBranch.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);
|
|
@@ -90,7 +90,7 @@ describe('GitService.createBranch', () => {
|
|
|
90
90
|
const { upstream } = await seedWorkspace(root, workspaceId);
|
|
91
91
|
const svc = new GitService(
|
|
92
92
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
93
|
-
new
|
|
93
|
+
new VersionControlHooks(),
|
|
94
94
|
testKbContext(),
|
|
95
95
|
);
|
|
96
96
|
|
|
@@ -133,7 +133,7 @@ describe('GitService.createBranch', () => {
|
|
|
133
133
|
const repo = path.join(root, workspaceId, 'knowledge-base');
|
|
134
134
|
const svc = new GitService(
|
|
135
135
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
136
|
-
new
|
|
136
|
+
new VersionControlHooks(),
|
|
137
137
|
testKbContext(),
|
|
138
138
|
);
|
|
139
139
|
|
package/src/modules/{workflow → version-control}/git/__tests__/git.service.deleteBranch.test.ts
RENAMED
|
@@ -7,14 +7,14 @@ 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 type { IAccessControl } from '../../../access/access-control.interface.js';
|
|
12
12
|
import { GitService } from '../git.service.js';
|
|
13
13
|
import {
|
|
14
14
|
BranchAuthorshipError,
|
|
15
15
|
BranchDeleteRefusedError,
|
|
16
16
|
ProtectedBranchError,
|
|
17
|
-
|
|
17
|
+
VersionControlValidationError,
|
|
18
18
|
} from '../../../../shared/domain-errors.js';
|
|
19
19
|
|
|
20
20
|
const execFileAsync = promisify(execFile);
|
|
@@ -160,7 +160,7 @@ describe('GitService.deleteBranch — authorship + remote delete', () => {
|
|
|
160
160
|
function makeService(): GitService {
|
|
161
161
|
return new GitService(
|
|
162
162
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
163
|
-
new
|
|
163
|
+
new VersionControlHooks(),
|
|
164
164
|
testKbContext(),
|
|
165
165
|
);
|
|
166
166
|
}
|
|
@@ -276,7 +276,7 @@ describe('GitService.deleteBranch — authorship + remote delete', () => {
|
|
|
276
276
|
const svc = makeService();
|
|
277
277
|
await expect(
|
|
278
278
|
svc.deleteBranch(workspaceId, 'alice/my-draft', ALICE),
|
|
279
|
-
).rejects.toBeInstanceOf(
|
|
279
|
+
).rejects.toBeInstanceOf(VersionControlValidationError);
|
|
280
280
|
});
|
|
281
281
|
|
|
282
282
|
it('onlyIfNoRemote: true bypasses the authorship check (orphan-tidy-up path stays open)', async () => {
|
|
@@ -305,7 +305,7 @@ describe('GitService.deleteBranch — authorship + remote delete', () => {
|
|
|
305
305
|
|
|
306
306
|
await expect(
|
|
307
307
|
svc.deleteBranch(workspaceId, 'alice/my-draft', ALICE, { onlyIfNoRemote: true }),
|
|
308
|
-
).rejects.toBeInstanceOf(
|
|
308
|
+
).rejects.toBeInstanceOf(VersionControlValidationError);
|
|
309
309
|
});
|
|
310
310
|
|
|
311
311
|
// Admin-can-delete: when the user is in the `Admin` role per `roles.yaml`
|
|
@@ -315,7 +315,7 @@ describe('GitService.deleteBranch — authorship + remote delete', () => {
|
|
|
315
315
|
function makeServiceWithAccess(ac: IAccessControl): GitService {
|
|
316
316
|
return new GitService(
|
|
317
317
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
318
|
-
new
|
|
318
|
+
new VersionControlHooks(),
|
|
319
319
|
testKbContext(),
|
|
320
320
|
undefined,
|
|
321
321
|
ac,
|
|
@@ -391,7 +391,7 @@ describe('GitService — branch state for a checked delete', () => {
|
|
|
391
391
|
function makeService(): GitService {
|
|
392
392
|
return new GitService(
|
|
393
393
|
stubWorkspaceService(workspaceId, path.join(root, workspaceId)),
|
|
394
|
-
new
|
|
394
|
+
new VersionControlHooks(),
|
|
395
395
|
testKbContext(),
|
|
396
396
|
);
|
|
397
397
|
}
|
package/src/modules/{workflow → version-control}/git/__tests__/git.service.diffFileAtCommit.test.ts
RENAMED
|
@@ -6,9 +6,9 @@ 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
|
-
import {
|
|
11
|
+
import { VersionControlValidationError } from '../../../../shared/domain-errors.js';
|
|
12
12
|
|
|
13
13
|
const execFileAsync = promisify(execFile);
|
|
14
14
|
const PROCESS_MAP_DIR = 'knowledge-base';
|
|
@@ -108,7 +108,7 @@ describe('GitService.diffFileAtCommit', () => {
|
|
|
108
108
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
109
109
|
const svc = new GitService(
|
|
110
110
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
111
|
-
new
|
|
111
|
+
new VersionControlHooks(),
|
|
112
112
|
testKbContext(),
|
|
113
113
|
);
|
|
114
114
|
|
|
@@ -125,7 +125,7 @@ describe('GitService.diffFileAtCommit', () => {
|
|
|
125
125
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
126
126
|
const svc = new GitService(
|
|
127
127
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
128
|
-
new
|
|
128
|
+
new VersionControlHooks(),
|
|
129
129
|
testKbContext(),
|
|
130
130
|
);
|
|
131
131
|
|
|
@@ -141,7 +141,7 @@ describe('GitService.diffFileAtCommit', () => {
|
|
|
141
141
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
142
142
|
const svc = new GitService(
|
|
143
143
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
144
|
-
new
|
|
144
|
+
new VersionControlHooks(),
|
|
145
145
|
testKbContext(),
|
|
146
146
|
);
|
|
147
147
|
|
|
@@ -157,7 +157,7 @@ describe('GitService.diffFileAtCommit', () => {
|
|
|
157
157
|
const { workspaceDir } = await seedWorkspace(root, workspaceId);
|
|
158
158
|
const svc = new GitService(
|
|
159
159
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
160
|
-
new
|
|
160
|
+
new VersionControlHooks(),
|
|
161
161
|
testKbContext(),
|
|
162
162
|
);
|
|
163
163
|
|
|
@@ -170,13 +170,13 @@ describe('GitService.diffFileAtCommit', () => {
|
|
|
170
170
|
const { workspaceDir } = await seedWorkspace(root, workspaceId);
|
|
171
171
|
const svc = new GitService(
|
|
172
172
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
173
|
-
new
|
|
173
|
+
new VersionControlHooks(),
|
|
174
174
|
testKbContext(),
|
|
175
175
|
);
|
|
176
176
|
|
|
177
177
|
await expect(
|
|
178
178
|
svc.diffFileAtCommit(workspaceId, '../etc/passwd', 'abcdef1'),
|
|
179
|
-
).rejects.toBeInstanceOf(
|
|
179
|
+
).rejects.toBeInstanceOf(VersionControlValidationError);
|
|
180
180
|
});
|
|
181
181
|
|
|
182
182
|
// Regression: pathspec literal handling. `git show <sha> -- '[New] memo.md'`
|
|
@@ -187,7 +187,7 @@ describe('GitService.diffFileAtCommit', () => {
|
|
|
187
187
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
188
188
|
const svc = new GitService(
|
|
189
189
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
190
|
-
new
|
|
190
|
+
new VersionControlHooks(),
|
|
191
191
|
testKbContext(),
|
|
192
192
|
);
|
|
193
193
|
await runGit(repo, ['commit', '--allow-empty', '-m', 'init']);
|
|
@@ -6,9 +6,9 @@ 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
|
-
import {
|
|
11
|
+
import { VersionControlValidationError, BranchNameError } from '../../../../shared/domain-errors.js';
|
|
12
12
|
import { GitRunError, type IGitRunner } from '../../../../shared/git.contract.js';
|
|
13
13
|
import { NodeGitRunner } from '../node-git-runner.js';
|
|
14
14
|
|
|
@@ -101,7 +101,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
101
101
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
102
102
|
const svc = new GitService(
|
|
103
103
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
104
|
-
new
|
|
104
|
+
new VersionControlHooks(),
|
|
105
105
|
testKbContext(),
|
|
106
106
|
);
|
|
107
107
|
|
|
@@ -121,7 +121,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
121
121
|
|
|
122
122
|
it('asks the caller\'s verdict at the two commits served, before the path is described at either', async () => {
|
|
123
123
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
124
|
-
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new
|
|
124
|
+
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new VersionControlHooks(), testKbContext());
|
|
125
125
|
await commitFile(repo, 'Knowledge/Foo.md', 'line one\n', 'base');
|
|
126
126
|
await commitFile(repo, 'Docs/a.md', 'a\n', 'a folder');
|
|
127
127
|
const base = (await execFileAsync('git', ['rev-parse', 'HEAD'], { cwd: repo })).stdout.trim();
|
|
@@ -141,7 +141,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
141
141
|
// A folder the caller may not read is refused as unreadable, never as a folder.
|
|
142
142
|
const refuse = async (s: unknown): Promise<void> => {
|
|
143
143
|
asked.push(s);
|
|
144
|
-
throw new
|
|
144
|
+
throw new VersionControlValidationError('not yours to read');
|
|
145
145
|
};
|
|
146
146
|
await expect(svc.diffFileBetweenBranches(workspaceId, 'Docs', 'current-company-state', 'alice/edit-foo', refuse)).rejects.toThrow(/not yours to read/);
|
|
147
147
|
expect(asked).toEqual([sides, sides]);
|
|
@@ -165,7 +165,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
165
165
|
return inner.run(cwd, args, opts as never);
|
|
166
166
|
},
|
|
167
167
|
} as unknown as IGitRunner;
|
|
168
|
-
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new
|
|
168
|
+
const svc = new GitService(stubWorkspaceService(workspaceId, workspaceDir), new VersionControlHooks(), testKbContext(), undefined, null, gitRunner);
|
|
169
169
|
const asked: unknown[] = [];
|
|
170
170
|
const authorize = async (s: unknown): Promise<void> => { asked.push(s); };
|
|
171
171
|
for (const f of [
|
|
@@ -186,7 +186,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
186
186
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
187
187
|
const svc = new GitService(
|
|
188
188
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
189
|
-
new
|
|
189
|
+
new VersionControlHooks(),
|
|
190
190
|
testKbContext(),
|
|
191
191
|
);
|
|
192
192
|
|
|
@@ -208,7 +208,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
208
208
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
209
209
|
const svc = new GitService(
|
|
210
210
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
211
|
-
new
|
|
211
|
+
new VersionControlHooks(),
|
|
212
212
|
testKbContext(),
|
|
213
213
|
);
|
|
214
214
|
|
|
@@ -230,7 +230,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
230
230
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
231
231
|
const svc = new GitService(
|
|
232
232
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
233
|
-
new
|
|
233
|
+
new VersionControlHooks(),
|
|
234
234
|
testKbContext(),
|
|
235
235
|
);
|
|
236
236
|
|
|
@@ -272,7 +272,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
272
272
|
|
|
273
273
|
const svc = new GitService(
|
|
274
274
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
275
|
-
new
|
|
275
|
+
new VersionControlHooks(),
|
|
276
276
|
testKbContext(),
|
|
277
277
|
);
|
|
278
278
|
|
|
@@ -297,7 +297,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
297
297
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
298
298
|
const svc = new GitService(
|
|
299
299
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
300
|
-
new
|
|
300
|
+
new VersionControlHooks(),
|
|
301
301
|
testKbContext(),
|
|
302
302
|
);
|
|
303
303
|
|
|
@@ -322,7 +322,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
322
322
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
323
323
|
const svc = new GitService(
|
|
324
324
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
325
|
-
new
|
|
325
|
+
new VersionControlHooks(),
|
|
326
326
|
testKbContext(),
|
|
327
327
|
);
|
|
328
328
|
|
|
@@ -347,7 +347,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
347
347
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
348
348
|
const svc = new GitService(
|
|
349
349
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
350
|
-
new
|
|
350
|
+
new VersionControlHooks(),
|
|
351
351
|
testKbContext(),
|
|
352
352
|
);
|
|
353
353
|
|
|
@@ -370,7 +370,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
370
370
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
371
371
|
const svc = new GitService(
|
|
372
372
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
373
|
-
new
|
|
373
|
+
new VersionControlHooks(),
|
|
374
374
|
testKbContext(),
|
|
375
375
|
);
|
|
376
376
|
|
|
@@ -392,7 +392,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
392
392
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
393
393
|
const svc = new GitService(
|
|
394
394
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
395
|
-
new
|
|
395
|
+
new VersionControlHooks(),
|
|
396
396
|
testKbContext(),
|
|
397
397
|
);
|
|
398
398
|
|
|
@@ -417,7 +417,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
417
417
|
const { workspaceDir } = await seedWorkspace(root, workspaceId);
|
|
418
418
|
const svc = new GitService(
|
|
419
419
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
420
|
-
new
|
|
420
|
+
new VersionControlHooks(),
|
|
421
421
|
testKbContext(),
|
|
422
422
|
);
|
|
423
423
|
|
|
@@ -428,7 +428,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
428
428
|
'current-company-state',
|
|
429
429
|
'current-company-state',
|
|
430
430
|
),
|
|
431
|
-
).rejects.toBeInstanceOf(
|
|
431
|
+
).rejects.toBeInstanceOf(VersionControlValidationError);
|
|
432
432
|
});
|
|
433
433
|
|
|
434
434
|
it('rejects an unknown branch', async () => {
|
|
@@ -436,7 +436,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
436
436
|
await commitFile(repo, 'Knowledge/Foo.md', 'base\n', 'base');
|
|
437
437
|
const svc = new GitService(
|
|
438
438
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
439
|
-
new
|
|
439
|
+
new VersionControlHooks(),
|
|
440
440
|
testKbContext(),
|
|
441
441
|
);
|
|
442
442
|
|
|
@@ -447,14 +447,14 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
447
447
|
'current-company-state',
|
|
448
448
|
'does-not-exist',
|
|
449
449
|
),
|
|
450
|
-
).rejects.toBeInstanceOf(
|
|
450
|
+
).rejects.toBeInstanceOf(VersionControlValidationError);
|
|
451
451
|
});
|
|
452
452
|
|
|
453
453
|
it('rejects a path-traversal attempt', async () => {
|
|
454
454
|
const { workspaceDir } = await seedWorkspace(root, workspaceId);
|
|
455
455
|
const svc = new GitService(
|
|
456
456
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
457
|
-
new
|
|
457
|
+
new VersionControlHooks(),
|
|
458
458
|
testKbContext(),
|
|
459
459
|
);
|
|
460
460
|
|
|
@@ -465,14 +465,14 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
465
465
|
'current-company-state',
|
|
466
466
|
'target-company-state',
|
|
467
467
|
),
|
|
468
|
-
).rejects.toBeInstanceOf(
|
|
468
|
+
).rejects.toBeInstanceOf(VersionControlValidationError);
|
|
469
469
|
});
|
|
470
470
|
|
|
471
471
|
it('rejects a branch name with shell metacharacters', async () => {
|
|
472
472
|
const { workspaceDir } = await seedWorkspace(root, workspaceId);
|
|
473
473
|
const svc = new GitService(
|
|
474
474
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
475
|
-
new
|
|
475
|
+
new VersionControlHooks(),
|
|
476
476
|
testKbContext(),
|
|
477
477
|
);
|
|
478
478
|
|
|
@@ -494,7 +494,7 @@ describe('GitService.diffFileBetweenBranches', () => {
|
|
|
494
494
|
const { workspaceDir, repo } = await seedWorkspace(root, workspaceId);
|
|
495
495
|
const svc = new GitService(
|
|
496
496
|
stubWorkspaceService(workspaceId, workspaceDir),
|
|
497
|
-
new
|
|
497
|
+
new VersionControlHooks(),
|
|
498
498
|
testKbContext(),
|
|
499
499
|
);
|
|
500
500
|
await runGit(repo, ['commit', '--allow-empty', '-m', 'init']);
|