@bevel-software/platform-core-backend 0.35.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (851) hide show
  1. package/agent-guide/directory-structure.md +1 -1
  2. package/agent-guide/onboarding.md +111 -0
  3. package/agent-guide/start-here.md +1 -0
  4. package/agent-guide/tool-manuals.md +1 -0
  5. package/dist/core/catalog-cache-invalidation.d.ts +2 -2
  6. package/dist/core/catalog-cache-invalidation.d.ts.map +1 -1
  7. package/dist/core/compose-embed.d.ts +2 -2
  8. package/dist/core/compose-embed.d.ts.map +1 -1
  9. package/dist/core/compose-embed.js +1 -1
  10. package/dist/core/compose-embed.js.map +1 -1
  11. package/dist/core/core-ports.d.ts +19 -4
  12. package/dist/core/core-ports.d.ts.map +1 -1
  13. package/dist/core/core-ports.js.map +1 -1
  14. package/dist/core/create-core-server.d.ts.map +1 -1
  15. package/dist/core/create-core-server.js +26 -24
  16. package/dist/core/create-core-server.js.map +1 -1
  17. package/dist/core/create-core-services.d.ts +19 -13
  18. package/dist/core/create-core-services.d.ts.map +1 -1
  19. package/dist/core/create-core-services.js +72 -57
  20. package/dist/core/create-core-services.js.map +1 -1
  21. package/dist/core/lifecycle.d.ts +4 -4
  22. package/dist/core/lifecycle.d.ts.map +1 -1
  23. package/dist/core/lifecycle.js +5 -5
  24. package/dist/core/lifecycle.js.map +1 -1
  25. package/dist/core-config.d.ts +2 -2
  26. package/dist/core-config.js +3 -3
  27. package/dist/core-config.js.map +1 -1
  28. package/dist/index.d.ts +4 -4
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +3 -3
  31. package/dist/index.js.map +1 -1
  32. package/dist/modules/access/access-control.service.js +1 -1
  33. package/dist/modules/access/access-control.service.js.map +1 -1
  34. package/dist/modules/access/access-declarations.d.ts +2 -2
  35. package/dist/modules/access/access-declarations.d.ts.map +1 -1
  36. package/dist/modules/access/access-declarations.js +2 -2
  37. package/dist/modules/access/access-declarations.js.map +1 -1
  38. package/dist/modules/access/access-mutation.service.d.ts +2 -2
  39. package/dist/modules/access/access-mutation.service.d.ts.map +1 -1
  40. package/dist/modules/access/access-mutation.service.js +2 -2
  41. package/dist/modules/access/access-mutation.service.js.map +1 -1
  42. package/dist/modules/access/access-requests.routes.d.ts +2 -2
  43. package/dist/modules/access/access-requests.routes.d.ts.map +1 -1
  44. package/dist/modules/access/access-requests.routes.js +5 -5
  45. package/dist/modules/access/access-requests.routes.js.map +1 -1
  46. package/dist/modules/access/access-requests.service.d.ts +2 -2
  47. package/dist/modules/access/access-requests.service.d.ts.map +1 -1
  48. package/dist/modules/access/access-requests.service.js +11 -11
  49. package/dist/modules/access/access-requests.service.js.map +1 -1
  50. package/dist/modules/access/access.routes.d.ts +2 -2
  51. package/dist/modules/access/access.routes.d.ts.map +1 -1
  52. package/dist/modules/access/access.routes.js +9 -9
  53. package/dist/modules/access/access.routes.js.map +1 -1
  54. package/dist/modules/access/admin-locked-commit.d.ts +5 -5
  55. package/dist/modules/access/admin-locked-commit.d.ts.map +1 -1
  56. package/dist/modules/access/admin-locked-commit.js +7 -7
  57. package/dist/modules/access/admin-locked-commit.js.map +1 -1
  58. package/dist/modules/access/admin-route-helpers.d.ts +1 -1
  59. package/dist/modules/access/admin-route-helpers.js +5 -5
  60. package/dist/modules/access/admin-route-helpers.js.map +1 -1
  61. package/dist/modules/access/change-read-gate.d.ts +1 -1
  62. package/dist/modules/access/change-read-gate.js +1 -1
  63. package/dist/modules/access/groups-admin.service.d.ts +7 -7
  64. package/dist/modules/access/groups-admin.service.d.ts.map +1 -1
  65. package/dist/modules/access/groups-admin.service.js +6 -6
  66. package/dist/modules/access/groups-admin.service.js.map +1 -1
  67. package/dist/modules/access/reference-scan.d.ts +1 -1
  68. package/dist/modules/access/roles-admin.service.d.ts +7 -7
  69. package/dist/modules/access/roles-admin.service.d.ts.map +1 -1
  70. package/dist/modules/access/roles-admin.service.js +8 -8
  71. package/dist/modules/access/roles-admin.service.js.map +1 -1
  72. package/dist/modules/access/synced-groups-committer.d.ts +4 -4
  73. package/dist/modules/access/synced-groups-committer.d.ts.map +1 -1
  74. package/dist/modules/access/synced-groups-committer.js +7 -7
  75. package/dist/modules/access/synced-groups-committer.js.map +1 -1
  76. package/dist/modules/access/user-access-removal.service.d.ts +6 -6
  77. package/dist/modules/access/user-access-removal.service.d.ts.map +1 -1
  78. package/dist/modules/access/user-access-removal.service.js +4 -4
  79. package/dist/modules/access/user-access-removal.service.js.map +1 -1
  80. package/dist/modules/access-model/access-errors.d.ts +4 -4
  81. package/dist/modules/access-model/access-errors.d.ts.map +1 -1
  82. package/dist/modules/access-model/access-errors.js +4 -4
  83. package/dist/modules/access-model/access-errors.js.map +1 -1
  84. package/dist/modules/access-model/access-grammar.d.ts +1 -1
  85. package/dist/modules/access-model/access-grammar.js +4 -4
  86. package/dist/modules/access-model/change-gate.d.ts +1 -1
  87. package/dist/modules/access-model/change-gate.js +1 -1
  88. package/dist/modules/access-model/roles-yaml-guard.d.ts +4 -4
  89. package/dist/modules/access-model/roles-yaml-guard.d.ts.map +1 -1
  90. package/dist/modules/access-model/roles-yaml-guard.js +4 -4
  91. package/dist/modules/access-model/roles-yaml-guard.js.map +1 -1
  92. package/dist/modules/agent-guide/agent-guide.d.ts +19 -14
  93. package/dist/modules/agent-guide/agent-guide.d.ts.map +1 -1
  94. package/dist/modules/agent-guide/agent-guide.js +42 -18
  95. package/dist/modules/agent-guide/agent-guide.js.map +1 -1
  96. package/dist/modules/agent-guide/guide-budget.d.ts +5 -2
  97. package/dist/modules/agent-guide/guide-budget.d.ts.map +1 -1
  98. package/dist/modules/agent-guide/guide-budget.js +6 -2
  99. package/dist/modules/agent-guide/guide-budget.js.map +1 -1
  100. package/dist/modules/agent-instructions/agent-instructions.routes.d.ts +12 -5
  101. package/dist/modules/agent-instructions/agent-instructions.routes.d.ts.map +1 -1
  102. package/dist/modules/agent-instructions/agent-instructions.routes.js +13 -6
  103. package/dist/modules/agent-instructions/agent-instructions.routes.js.map +1 -1
  104. package/dist/modules/agent-instructions/compose.d.ts +15 -8
  105. package/dist/modules/agent-instructions/compose.d.ts.map +1 -1
  106. package/dist/modules/agent-instructions/compose.js +24 -10
  107. package/dist/modules/agent-instructions/compose.js.map +1 -1
  108. package/dist/modules/agent-instructions/shared-file-rules.d.ts +14 -6
  109. package/dist/modules/agent-instructions/shared-file-rules.d.ts.map +1 -1
  110. package/dist/modules/agent-instructions/shared-file-rules.js +51 -11
  111. package/dist/modules/agent-instructions/shared-file-rules.js.map +1 -1
  112. package/dist/modules/auth/account-erasure.service.d.ts +36 -7
  113. package/dist/modules/auth/account-erasure.service.d.ts.map +1 -1
  114. package/dist/modules/auth/account-erasure.service.js +30 -10
  115. package/dist/modules/auth/account-erasure.service.js.map +1 -1
  116. package/dist/modules/auth/account-hooks.d.ts +20 -0
  117. package/dist/modules/auth/account-hooks.d.ts.map +1 -1
  118. package/dist/modules/auth/account-hooks.js +10 -0
  119. package/dist/modules/auth/account-hooks.js.map +1 -1
  120. package/dist/modules/auth/account-switch-lock.js +2 -2
  121. package/dist/modules/auth/account-switch-lock.js.map +1 -1
  122. package/dist/modules/auth/account.routes.d.ts +7 -2
  123. package/dist/modules/auth/account.routes.d.ts.map +1 -1
  124. package/dist/modules/auth/account.routes.js +23 -4
  125. package/dist/modules/auth/account.routes.js.map +1 -1
  126. package/dist/modules/auth/auth.service.d.ts +1 -1
  127. package/dist/modules/auth/auth.service.js +4 -4
  128. package/dist/modules/auth/auth.service.js.map +1 -1
  129. package/dist/modules/auth/index.d.ts +1 -0
  130. package/dist/modules/auth/index.d.ts.map +1 -1
  131. package/dist/modules/database/connection.d.ts.map +1 -1
  132. package/dist/modules/database/connection.js +11 -0
  133. package/dist/modules/database/connection.js.map +1 -1
  134. package/dist/modules/database/core-schema.js +2 -2
  135. package/dist/modules/database/core-schema.js.map +1 -1
  136. package/dist/modules/diff/diff.routes.d.ts +3 -3
  137. package/dist/modules/diff/diff.routes.d.ts.map +1 -1
  138. package/dist/modules/diff/diff.routes.js +7 -7
  139. package/dist/modules/diff/diff.routes.js.map +1 -1
  140. package/dist/modules/embed/embed.routes.js +1 -1
  141. package/dist/modules/embed/embed.routes.js.map +1 -1
  142. package/dist/modules/embed/embed.service.d.ts +4 -4
  143. package/dist/modules/embed/embed.service.d.ts.map +1 -1
  144. package/dist/modules/embed/embed.service.js +18 -18
  145. package/dist/modules/embed/embed.service.js.map +1 -1
  146. package/dist/modules/kb-fs/branch-name.js +8 -8
  147. package/dist/modules/kb-fs/branch-name.js.map +1 -1
  148. package/dist/modules/kb-fs/file-change-notifier.d.ts +51 -26
  149. package/dist/modules/kb-fs/file-change-notifier.d.ts.map +1 -1
  150. package/dist/modules/kb-fs/file-change-notifier.js +6 -8
  151. package/dist/modules/kb-fs/file-change-notifier.js.map +1 -1
  152. package/dist/modules/kb-fs/locking-filesystem.d.ts +9 -16
  153. package/dist/modules/kb-fs/locking-filesystem.d.ts.map +1 -1
  154. package/dist/modules/kb-fs/locking-filesystem.js +31 -39
  155. package/dist/modules/kb-fs/locking-filesystem.js.map +1 -1
  156. package/dist/modules/kb-fs/repo-path.js +5 -5
  157. package/dist/modules/kb-fs/repo-path.js.map +1 -1
  158. package/dist/modules/kb-fs/tmp-ref.d.ts +2 -2
  159. package/dist/modules/kb-fs/tmp-ref.d.ts.map +1 -1
  160. package/dist/modules/kb-fs/tmp-ref.js +2 -2
  161. package/dist/modules/kb-fs/tmp-ref.js.map +1 -1
  162. package/dist/modules/kb-sync/index.d.ts +1 -1
  163. package/dist/modules/kb-sync/index.d.ts.map +1 -1
  164. package/dist/modules/kb-sync/kb-sync.interface.d.ts +3 -3
  165. package/dist/modules/kb-sync/kb-sync.interface.d.ts.map +1 -1
  166. package/dist/modules/kb-sync/kb-sync.service.d.ts +3 -3
  167. package/dist/modules/kb-sync/kb-sync.service.d.ts.map +1 -1
  168. package/dist/modules/kb-sync/kb-sync.service.js +10 -10
  169. package/dist/modules/kb-sync/kb-sync.service.js.map +1 -1
  170. package/dist/modules/mcp/mcp.service.d.ts +11 -4
  171. package/dist/modules/mcp/mcp.service.d.ts.map +1 -1
  172. package/dist/modules/mcp/mcp.service.js +75 -19
  173. package/dist/modules/mcp/mcp.service.js.map +1 -1
  174. package/dist/modules/onboarding/onboarding.contract.d.ts +1 -1
  175. package/dist/modules/onboarding/onboarding.routes.js +2 -2
  176. package/dist/modules/onboarding/onboarding.routes.js.map +1 -1
  177. package/dist/modules/onboarding/starter-pack.service.d.ts +5 -7
  178. package/dist/modules/onboarding/starter-pack.service.d.ts.map +1 -1
  179. package/dist/modules/onboarding/starter-pack.service.js +4 -4
  180. package/dist/modules/onboarding/starter-pack.service.js.map +1 -1
  181. package/dist/modules/plugins/join-request-jobs.service.d.ts +2 -2
  182. package/dist/modules/plugins/join-request-jobs.service.d.ts.map +1 -1
  183. package/dist/modules/plugins/join-request-jobs.service.js +7 -7
  184. package/dist/modules/plugins/join-request-jobs.service.js.map +1 -1
  185. package/dist/modules/plugins/join-requests.service.d.ts +3 -3
  186. package/dist/modules/plugins/join-requests.service.d.ts.map +1 -1
  187. package/dist/modules/plugins/join-requests.service.js +5 -5
  188. package/dist/modules/plugins/join-requests.service.js.map +1 -1
  189. package/dist/modules/plugins/plugin-rename.service.js +1 -1
  190. package/dist/modules/plugins/plugin-rename.service.js.map +1 -1
  191. package/dist/modules/plugins/plugins.routes.d.ts +2 -2
  192. package/dist/modules/plugins/plugins.routes.d.ts.map +1 -1
  193. package/dist/modules/plugins/plugins.routes.js +8 -8
  194. package/dist/modules/plugins/plugins.routes.js.map +1 -1
  195. package/dist/modules/secrets-vault/db-secrets-vault.service.d.ts +77 -2
  196. package/dist/modules/secrets-vault/db-secrets-vault.service.d.ts.map +1 -1
  197. package/dist/modules/secrets-vault/db-secrets-vault.service.js +479 -53
  198. package/dist/modules/secrets-vault/db-secrets-vault.service.js.map +1 -1
  199. package/dist/modules/secrets-vault/index.d.ts +2 -1
  200. package/dist/modules/secrets-vault/index.d.ts.map +1 -1
  201. package/dist/modules/secrets-vault/index.js +1 -0
  202. package/dist/modules/secrets-vault/index.js.map +1 -1
  203. package/dist/modules/secrets-vault/managed-sign-in-erasure.d.ts +36 -0
  204. package/dist/modules/secrets-vault/managed-sign-in-erasure.d.ts.map +1 -0
  205. package/dist/modules/secrets-vault/managed-sign-in-erasure.js +37 -0
  206. package/dist/modules/secrets-vault/managed-sign-in-erasure.js.map +1 -0
  207. package/dist/modules/secrets-vault/secrets-vault.contract.d.ts +152 -0
  208. package/dist/modules/secrets-vault/secrets-vault.contract.d.ts.map +1 -1
  209. package/dist/modules/secrets-vault/secrets-vault.contract.js.map +1 -1
  210. package/dist/modules/secrets-vault/secrets-vault.routes.d.ts +7 -1
  211. package/dist/modules/secrets-vault/secrets-vault.routes.d.ts.map +1 -1
  212. package/dist/modules/secrets-vault/secrets-vault.routes.js +125 -10
  213. package/dist/modules/secrets-vault/secrets-vault.routes.js.map +1 -1
  214. package/dist/modules/settings/connection-check.js +1 -1
  215. package/dist/modules/settings/connection-check.js.map +1 -1
  216. package/dist/modules/settings/deployment-settings.service.js +1 -1
  217. package/dist/modules/settings/git-root-folders.js +1 -1
  218. package/dist/modules/settings/git-root-folders.js.map +1 -1
  219. package/dist/modules/settings/setup.routes.d.ts +1 -1
  220. package/dist/modules/settings/setup.routes.js +1 -1
  221. package/dist/modules/skills/pending-skills.service.d.ts +3 -3
  222. package/dist/modules/skills/pending-skills.service.d.ts.map +1 -1
  223. package/dist/modules/skills/pending-skills.service.js +4 -4
  224. package/dist/modules/skills/pending-skills.service.js.map +1 -1
  225. package/dist/modules/skills/skill-access-requests.routes.d.ts +2 -2
  226. package/dist/modules/skills/skill-access-requests.routes.d.ts.map +1 -1
  227. package/dist/modules/skills/skill-access-requests.routes.js +5 -5
  228. package/dist/modules/skills/skill-access-requests.routes.js.map +1 -1
  229. package/dist/modules/tool-helpers/tool-context.d.ts +4 -4
  230. package/dist/modules/tool-helpers/tool-context.d.ts.map +1 -1
  231. package/dist/modules/tool-helpers/tool-context.js +2 -2
  232. package/dist/modules/tool-helpers/tool-context.js.map +1 -1
  233. package/dist/modules/tool-helpers/tool-handler.js +2 -2
  234. package/dist/modules/tool-helpers/tool-handler.js.map +1 -1
  235. package/dist/modules/tool-helpers/tool.contract.d.ts +4 -4
  236. package/dist/modules/tool-helpers/tool.contract.d.ts.map +1 -1
  237. package/dist/modules/tool-manuals/mcp-server-edit.service.js +1 -1
  238. package/dist/modules/tool-manuals/mcp-server-edit.service.js.map +1 -1
  239. package/dist/modules/tool-manuals/pending-tools.service.d.ts +3 -3
  240. package/dist/modules/tool-manuals/pending-tools.service.d.ts.map +1 -1
  241. package/dist/modules/tool-manuals/pending-tools.service.js +4 -4
  242. package/dist/modules/tool-manuals/pending-tools.service.js.map +1 -1
  243. package/dist/modules/tool-manuals/tool-delete.service.js +1 -1
  244. package/dist/modules/tool-manuals/tool-delete.service.js.map +1 -1
  245. package/dist/modules/tool-manuals/tool-manuals.contract.d.ts +43 -3
  246. package/dist/modules/tool-manuals/tool-manuals.contract.d.ts.map +1 -1
  247. package/dist/modules/tool-manuals/tool-manuals.service.d.ts +6 -0
  248. package/dist/modules/tool-manuals/tool-manuals.service.d.ts.map +1 -1
  249. package/dist/modules/tool-manuals/tool-manuals.service.js +51 -5
  250. package/dist/modules/tool-manuals/tool-manuals.service.js.map +1 -1
  251. package/dist/modules/tool-manuals/tool-manuals.tools.d.ts +3 -0
  252. package/dist/modules/tool-manuals/tool-manuals.tools.d.ts.map +1 -1
  253. package/dist/modules/tool-manuals/tool-manuals.tools.js +36 -15
  254. package/dist/modules/tool-manuals/tool-manuals.tools.js.map +1 -1
  255. package/dist/modules/version-control/agent-tools/change-request-read-shape.d.ts.map +1 -0
  256. package/dist/modules/version-control/agent-tools/change-request-read-shape.js.map +1 -0
  257. package/dist/modules/version-control/agent-tools/change-request-read.tools.d.ts.map +1 -0
  258. package/dist/modules/{workflow → version-control}/agent-tools/change-request-read.tools.js +2 -2
  259. package/dist/modules/version-control/agent-tools/change-request-read.tools.js.map +1 -0
  260. package/dist/modules/version-control/agent-tools/change-request-summary.d.ts.map +1 -0
  261. package/dist/modules/version-control/agent-tools/change-request-summary.js.map +1 -0
  262. package/dist/modules/{workflow/agent-tools/workflow.tools.d.ts → version-control/agent-tools/version-control.tools.d.ts} +4 -4
  263. package/dist/modules/version-control/agent-tools/version-control.tools.d.ts.map +1 -0
  264. package/dist/modules/{workflow/agent-tools/workflow.tools.js → version-control/agent-tools/version-control.tools.js} +31 -31
  265. package/dist/modules/version-control/agent-tools/version-control.tools.js.map +1 -0
  266. package/dist/modules/{workflow → version-control}/change-request-hooks.d.ts +1 -1
  267. package/dist/modules/version-control/change-request-hooks.d.ts.map +1 -0
  268. package/dist/modules/version-control/change-request-hooks.js.map +1 -0
  269. package/dist/modules/version-control/change-request-review/approval-lock.d.ts.map +1 -0
  270. package/dist/modules/version-control/change-request-review/approval-lock.js.map +1 -0
  271. package/dist/modules/{workflow/review-workflow/review-workflow.interface.d.ts → version-control/change-request-review/change-request-review.interface.d.ts} +2 -2
  272. package/dist/modules/version-control/change-request-review/change-request-review.interface.d.ts.map +1 -0
  273. package/dist/modules/version-control/change-request-review/change-request-review.interface.js +2 -0
  274. package/dist/modules/version-control/change-request-review/change-request-review.interface.js.map +1 -0
  275. package/dist/modules/{workflow/review-workflow/review-workflow.service.d.ts → version-control/change-request-review/change-request-review.service.d.ts} +3 -3
  276. package/dist/modules/version-control/change-request-review/change-request-review.service.d.ts.map +1 -0
  277. package/dist/modules/{workflow/review-workflow/review-workflow.service.js → version-control/change-request-review/change-request-review.service.js} +26 -26
  278. package/dist/modules/version-control/change-request-review/change-request-review.service.js.map +1 -0
  279. package/dist/modules/{workflow → version-control}/event-bus.d.ts +8 -8
  280. package/dist/modules/version-control/event-bus.d.ts.map +1 -0
  281. package/dist/modules/{workflow → version-control}/event-bus.js +4 -4
  282. package/dist/modules/version-control/event-bus.js.map +1 -0
  283. package/dist/modules/{workflow → version-control}/events-delivery.d.ts +4 -4
  284. package/dist/modules/version-control/events-delivery.d.ts.map +1 -0
  285. package/dist/modules/version-control/events-delivery.js.map +1 -0
  286. package/dist/modules/{workflow → version-control}/events.routes.d.ts +4 -4
  287. package/dist/modules/version-control/events.routes.d.ts.map +1 -0
  288. package/dist/modules/version-control/events.routes.js.map +1 -0
  289. package/dist/modules/{workflow → version-control}/file-lock.service.d.ts +2 -2
  290. package/dist/modules/version-control/file-lock.service.d.ts.map +1 -0
  291. package/dist/modules/{workflow → version-control}/file-lock.service.js +6 -6
  292. package/dist/modules/version-control/file-lock.service.js.map +1 -0
  293. package/dist/modules/version-control/git/change-request-link.d.ts.map +1 -0
  294. package/dist/modules/version-control/git/change-request-link.js.map +1 -0
  295. package/dist/modules/version-control/git/git-version.d.ts.map +1 -0
  296. package/dist/modules/version-control/git/git-version.js.map +1 -0
  297. package/dist/modules/{workflow → version-control}/git/git.service.d.ts +26 -8
  298. package/dist/modules/version-control/git/git.service.d.ts.map +1 -0
  299. package/dist/modules/{workflow → version-control}/git/git.service.js +106 -55
  300. package/dist/modules/version-control/git/git.service.js.map +1 -0
  301. package/dist/modules/version-control/git/merge-commit.d.ts.map +1 -0
  302. package/dist/modules/version-control/git/merge-commit.js.map +1 -0
  303. package/dist/modules/version-control/git/node-git-runner.d.ts.map +1 -0
  304. package/dist/modules/{workflow → version-control}/git/node-git-runner.js +1 -1
  305. package/dist/modules/version-control/git/node-git-runner.js.map +1 -0
  306. package/dist/modules/{workflow → version-control}/git/pull-request.service.d.ts +5 -5
  307. package/dist/modules/version-control/git/pull-request.service.d.ts.map +1 -0
  308. package/dist/modules/{workflow → version-control}/git/pull-request.service.js +10 -10
  309. package/dist/modules/version-control/git/pull-request.service.js.map +1 -0
  310. package/dist/modules/{workflow → version-control}/index.d.ts +6 -5
  311. package/dist/modules/version-control/index.d.ts.map +1 -0
  312. package/dist/modules/{workflow → version-control}/index.js +3 -2
  313. package/dist/modules/version-control/index.js.map +1 -0
  314. package/dist/modules/{workflow → version-control}/pending-commits.service.d.ts +2 -2
  315. package/dist/modules/version-control/pending-commits.service.d.ts.map +1 -0
  316. package/dist/modules/{workflow → version-control}/pending-commits.service.js +2 -2
  317. package/dist/modules/version-control/pending-commits.service.js.map +1 -0
  318. package/dist/modules/{workflow → version-control}/pending-commits.worker.d.ts +5 -5
  319. package/dist/modules/version-control/pending-commits.worker.d.ts.map +1 -0
  320. package/dist/modules/{workflow → version-control}/pending-commits.worker.js +3 -3
  321. package/dist/modules/version-control/pending-commits.worker.js.map +1 -0
  322. package/dist/modules/{workflow → version-control}/read-on-branch.d.ts +2 -2
  323. package/dist/modules/version-control/read-on-branch.d.ts.map +1 -0
  324. package/dist/modules/{workflow → version-control}/read-on-branch.js +2 -2
  325. package/dist/modules/version-control/read-on-branch.js.map +1 -0
  326. package/dist/modules/version-control/recovery-bot.d.ts.map +1 -0
  327. package/dist/modules/version-control/recovery-bot.js.map +1 -0
  328. package/dist/modules/version-control/sanitize-error.d.ts.map +1 -0
  329. package/dist/modules/version-control/sanitize-error.js.map +1 -0
  330. package/dist/modules/{workflow/workflow-hooks.d.ts → version-control/version-control-hooks.d.ts} +33 -6
  331. package/dist/modules/version-control/version-control-hooks.d.ts.map +1 -0
  332. package/dist/modules/{workflow/workflow-hooks.js → version-control/version-control-hooks.js} +20 -3
  333. package/dist/modules/version-control/version-control-hooks.js.map +1 -0
  334. package/dist/modules/{workflow/workflow.routes.d.ts → version-control/version-control.routes.d.ts} +6 -5
  335. package/dist/modules/version-control/version-control.routes.d.ts.map +1 -0
  336. package/dist/modules/{workflow/workflow.routes.js → version-control/version-control.routes.js} +61 -60
  337. package/dist/modules/version-control/version-control.routes.js.map +1 -0
  338. package/dist/modules/{workflow/workflow.service.d.ts → version-control/version-control.service.d.ts} +26 -46
  339. package/dist/modules/version-control/version-control.service.d.ts.map +1 -0
  340. package/dist/modules/{workflow/workflow.service.js → version-control/version-control.service.js} +93 -107
  341. package/dist/modules/version-control/version-control.service.js.map +1 -0
  342. package/dist/modules/workspace/agent-access.gate.d.ts +5 -5
  343. package/dist/modules/workspace/agent-access.gate.d.ts.map +1 -1
  344. package/dist/modules/workspace/agent-access.gate.js +1 -1
  345. package/dist/modules/workspace/git-internals.middleware.d.ts +1 -1
  346. package/dist/modules/workspace/git-internals.middleware.js +2 -2
  347. package/dist/modules/workspace/kb-repository.js +1 -1
  348. package/dist/modules/workspace/kb-repository.js.map +1 -1
  349. package/dist/modules/workspace/startup/kb-git.d.ts +1 -1
  350. package/dist/modules/workspace/startup/kb-git.d.ts.map +1 -1
  351. package/dist/modules/workspace/startup/kb-git.js +1 -1
  352. package/dist/modules/workspace/startup/kb-git.js.map +1 -1
  353. package/dist/modules/workspace/startup/steps/seed-tree.d.ts +2 -2
  354. package/dist/modules/workspace/startup/steps/seed-tree.d.ts.map +1 -1
  355. package/dist/modules/workspace/startup/steps/seed-tree.js +1 -1
  356. package/dist/modules/workspace/startup/steps/seed-tree.js.map +1 -1
  357. package/dist/modules/workspace/startup/steps/template-files.step.d.ts +2 -2
  358. package/dist/modules/workspace/startup/steps/template-files.step.d.ts.map +1 -1
  359. package/dist/modules/workspace/startup/steps/template-files.step.js +2 -2
  360. package/dist/modules/workspace/startup/steps/template-files.step.js.map +1 -1
  361. package/dist/modules/workspace/startup/steps/template-source.d.ts +17 -4
  362. package/dist/modules/workspace/startup/steps/template-source.d.ts.map +1 -1
  363. package/dist/modules/workspace/startup/steps/template-source.js +8 -5
  364. package/dist/modules/workspace/startup/steps/template-source.js.map +1 -1
  365. package/dist/modules/workspace/workspace-tmp.js +3 -3
  366. package/dist/modules/workspace/workspace-tmp.js.map +1 -1
  367. package/dist/modules/workspace/workspace.routes.d.ts +4 -4
  368. package/dist/modules/workspace/workspace.routes.d.ts.map +1 -1
  369. package/dist/modules/workspace/workspace.routes.js +22 -22
  370. package/dist/modules/workspace/workspace.routes.js.map +1 -1
  371. package/dist/modules/workspace/workspace.service.d.ts +6 -6
  372. package/dist/modules/workspace/workspace.service.d.ts.map +1 -1
  373. package/dist/modules/workspace/workspace.service.js +11 -11
  374. package/dist/modules/workspace/workspace.service.js.map +1 -1
  375. package/dist/modules/workspace/workspace.tools.d.ts +2 -1
  376. package/dist/modules/workspace/workspace.tools.d.ts.map +1 -1
  377. package/dist/modules/workspace/workspace.tools.js +15 -10
  378. package/dist/modules/workspace/workspace.tools.js.map +1 -1
  379. package/dist/shared/canonical-file-identity.d.ts +2 -2
  380. package/dist/shared/canonical-file-identity.js +5 -5
  381. package/dist/shared/canonical-file-identity.js.map +1 -1
  382. package/dist/shared/domain-errors.d.ts +39 -39
  383. package/dist/shared/domain-errors.d.ts.map +1 -1
  384. package/dist/shared/domain-errors.js +44 -44
  385. package/dist/shared/domain-errors.js.map +1 -1
  386. package/dist/shared/fire-and-forget.d.ts +14 -0
  387. package/dist/shared/fire-and-forget.d.ts.map +1 -0
  388. package/dist/shared/fire-and-forget.js +23 -0
  389. package/dist/shared/fire-and-forget.js.map +1 -0
  390. package/dist/shared/git.contract.d.ts +1 -1
  391. package/dist/shared/git.contract.js +1 -1
  392. package/dist/shared/http-errors.d.ts +3 -3
  393. package/dist/shared/http-errors.d.ts.map +1 -1
  394. package/dist/shared/http-errors.js +1 -1
  395. package/dist/shared/http-errors.js.map +1 -1
  396. package/dist/shared/pending-proposals.d.ts +3 -3
  397. package/dist/shared/pending-proposals.d.ts.map +1 -1
  398. package/dist/shared/pending-proposals.js +2 -2
  399. package/dist/shared/pending-proposals.js.map +1 -1
  400. package/dist/tenancy/static-tenant-source.js +1 -1
  401. package/dist/tenancy/static-tenant-source.js.map +1 -1
  402. package/migrations/0012_agent_audit.sql +40 -40
  403. package/migrations/0013_agent_identity_and_key_soft_delete.sql +29 -29
  404. package/migrations/meta/0012_snapshot.json +2246 -2246
  405. package/migrations/meta/0013_snapshot.json +2258 -2258
  406. package/package.json +4 -4
  407. package/src/__tests__/account-admin.ts +27 -0
  408. package/src/__tests__/capturing-logger.ts +36 -0
  409. package/src/__tests__/hexis-catalog.ts +4 -4
  410. package/src/__tests__/kb-context.ts +30 -30
  411. package/src/__tests__/kb-layout-config.test.ts +21 -0
  412. package/src/__tests__/open-change-gate.ts +1 -1
  413. package/src/__tests__/real-access.ts +16 -0
  414. package/src/__tests__/real-auth.ts +13 -0
  415. package/src/__tests__/real-readers.ts +27 -0
  416. package/src/__tests__/real-version-control.ts +22 -0
  417. package/src/__tests__/tool-handler.ts +15 -0
  418. package/src/__tests__/tool-wiring.ts +10 -4
  419. package/src/__tests__/workspace-service.ts +1 -1
  420. package/src/core/__tests__/catalog-cache-invalidation.test.ts +3 -3
  421. package/src/core/__tests__/commit-announcements-wired-once.test.ts +53 -0
  422. package/src/core/__tests__/compose-embed.test.ts +1 -1
  423. package/src/core/__tests__/damaged-document.tools.test.ts +3 -3
  424. package/src/core/__tests__/erasure-slices-wired-once.test.ts +46 -0
  425. package/src/core/__tests__/gated-boot.test.ts +2 -2
  426. package/src/core/__tests__/lifecycle.test.ts +9 -9
  427. package/src/core/catalog-cache-invalidation.ts +2 -2
  428. package/src/core/compose-embed.ts +3 -3
  429. package/src/core/core-ports.ts +19 -4
  430. package/src/core/create-core-server.ts +39 -25
  431. package/src/core/create-core-services.ts +83 -65
  432. package/src/core/lifecycle.ts +9 -9
  433. package/src/core-config.ts +3 -3
  434. package/src/index.ts +5 -5
  435. package/src/modules/access/__tests__/access-control.admin-root-floor.test.ts +4 -4
  436. package/src/modules/access/__tests__/access-own-read-grant.test.ts +14 -14
  437. package/src/modules/access/__tests__/access-requests.routes.test.ts +23 -23
  438. package/src/modules/access/__tests__/access.routes.admins.test.ts +4 -4
  439. package/src/modules/access/__tests__/access.routes.batch.test.ts +4 -4
  440. package/src/modules/access/__tests__/access.routes.folder-governs.test.ts +6 -6
  441. package/src/modules/access/__tests__/access.routes.group-grant.test.ts +6 -6
  442. package/src/modules/access/__tests__/access.routes.overrides.test.ts +5 -5
  443. package/src/modules/access/__tests__/access.routes.proposal-branch.test.ts +6 -6
  444. package/src/modules/access/__tests__/access.routes.prospective.test.ts +3 -3
  445. package/src/modules/access/__tests__/access.routes.revoke.test.ts +6 -6
  446. package/src/modules/access/__tests__/access.routes.unknown-email.test.ts +6 -6
  447. package/src/modules/access/__tests__/admin-locked-commit.test.ts +6 -6
  448. package/src/modules/access/__tests__/admin-route-helpers.test.ts +5 -5
  449. package/src/modules/access/__tests__/groups-admin.service.test.ts +44 -44
  450. package/src/modules/access/__tests__/roles-admin.security.test.ts +14 -13
  451. package/src/modules/access/__tests__/roles-admin.service.test.ts +34 -34
  452. package/src/modules/access/__tests__/roles-capabilities.test.ts +29 -29
  453. package/src/modules/access/__tests__/roles.routes.test.ts +11 -11
  454. package/src/modules/access/__tests__/synced-groups-committer.test.ts +14 -14
  455. package/src/modules/access/__tests__/user-access-removal.service.test.ts +33 -33
  456. package/src/modules/access/access-control.service.ts +1 -1
  457. package/src/modules/access/access-declarations.ts +2 -2
  458. package/src/modules/access/access-mutation.service.ts +2 -2
  459. package/src/modules/access/access-requests.routes.ts +7 -7
  460. package/src/modules/access/access-requests.service.ts +13 -13
  461. package/src/modules/access/access.routes.ts +11 -11
  462. package/src/modules/access/admin-locked-commit.ts +11 -11
  463. package/src/modules/access/admin-route-helpers.ts +5 -5
  464. package/src/modules/access/change-read-gate.ts +1 -1
  465. package/src/modules/access/groups-admin.service.ts +7 -7
  466. package/src/modules/access/reference-scan.ts +1 -1
  467. package/src/modules/access/roles-admin.service.ts +9 -9
  468. package/src/modules/access/synced-groups-committer.ts +11 -11
  469. package/src/modules/access/user-access-removal.service.ts +7 -7
  470. package/src/modules/access-model/__tests__/access-grammar.test.ts +2 -2
  471. package/src/modules/access-model/access-errors.ts +4 -4
  472. package/src/modules/access-model/access-grammar.ts +4 -4
  473. package/src/modules/access-model/change-gate.ts +1 -1
  474. package/src/modules/access-model/roles-yaml-guard.ts +4 -4
  475. package/src/modules/agent-guide/__tests__/agent-guide.test.ts +19 -4
  476. package/src/modules/agent-guide/__tests__/agent-guide.tools.test.ts +1 -1
  477. package/src/modules/agent-guide/__tests__/guide-matches-code.test.ts +2 -2
  478. package/src/modules/agent-guide/agent-guide.ts +48 -22
  479. package/src/modules/agent-guide/guide-budget.ts +6 -2
  480. package/src/modules/agent-instructions/__tests__/agent-instructions.route.test.ts +4 -5
  481. package/src/modules/agent-instructions/__tests__/compose.test.ts +1 -1
  482. package/src/modules/agent-instructions/__tests__/shared-file-rules.test.ts +113 -7
  483. package/src/modules/agent-instructions/agent-instructions.routes.ts +12 -5
  484. package/src/modules/agent-instructions/compose.ts +24 -9
  485. package/src/modules/agent-instructions/shared-file-rules.ts +53 -11
  486. package/src/modules/agent-scope/__tests__/agent-surfaces.connect-as.test.ts +1 -1
  487. package/src/modules/audit/__tests__/agent-rest-audit.middleware.test.ts +113 -113
  488. package/src/modules/audit/__tests__/event-classifier.test.ts +121 -121
  489. package/src/modules/audit/event-classifier.ts +155 -155
  490. package/src/modules/auth/__tests__/account-deactivation.test.ts +1 -1
  491. package/src/modules/auth/__tests__/account-erasure.approval-gate.test.ts +4 -4
  492. package/src/modules/auth/__tests__/account-erasure.participants.test.ts +56 -0
  493. package/src/modules/auth/__tests__/account-switch-lock.pg.test.ts +2 -2
  494. package/src/modules/auth/__tests__/account-switch-lock.test.ts +2 -2
  495. package/src/modules/auth/__tests__/account.routes.test.ts +73 -11
  496. package/src/modules/auth/__tests__/auth.service.test.ts +1 -1
  497. package/src/modules/auth/account-erasure.service.ts +27 -9
  498. package/src/modules/auth/account-hooks.ts +34 -0
  499. package/src/modules/auth/account-switch-lock.ts +2 -2
  500. package/src/modules/auth/account.routes.ts +23 -5
  501. package/src/modules/auth/auth.service.ts +4 -4
  502. package/src/modules/auth/index.ts +1 -0
  503. package/src/modules/database/__tests__/advisory-lock.test.ts +169 -169
  504. package/src/modules/database/__tests__/connection.pg.test.ts +55 -0
  505. package/src/modules/database/__tests__/connection.test.ts +30 -0
  506. package/src/modules/database/__tests__/migrations-unqualified.test.ts +32 -32
  507. package/src/modules/database/connection.ts +12 -0
  508. package/src/modules/database/core-schema.ts +2 -2
  509. package/src/modules/diff/__tests__/diff.routes.read-gate.test.ts +2 -2
  510. package/src/modules/diff/__tests__/diff.routes.rejectPathsLocked.test.ts +12 -12
  511. package/src/modules/diff/diff.routes.ts +8 -8
  512. package/src/modules/embed/__tests__/embed.service.lock.test.ts +7 -7
  513. package/src/modules/embed/__tests__/embed.service.test.ts +48 -62
  514. package/src/modules/embed/__tests__/embed.tools.test.ts +1 -1
  515. package/src/modules/embed/embed.routes.ts +1 -1
  516. package/src/modules/embed/embed.service.ts +17 -17
  517. package/src/modules/kb-fs/__tests__/branch-name.test.ts +2 -2
  518. package/src/modules/kb-fs/__tests__/file-change-notifier.test.ts +23 -4
  519. package/src/modules/kb-fs/__tests__/locking-filesystem.test.ts +264 -305
  520. package/src/modules/kb-fs/__tests__/move-with-edits.test.ts +103 -40
  521. package/src/modules/kb-fs/__tests__/repo-path.test.ts +8 -8
  522. package/src/modules/kb-fs/branch-name.ts +8 -8
  523. package/src/modules/kb-fs/file-change-notifier.ts +55 -32
  524. package/src/modules/kb-fs/locking-filesystem.ts +34 -48
  525. package/src/modules/kb-fs/repo-path.ts +5 -5
  526. package/src/modules/kb-fs/tmp-ref.ts +3 -3
  527. package/src/modules/kb-sync/__tests__/kb-sync.service.test.ts +36 -36
  528. package/src/modules/kb-sync/index.ts +1 -1
  529. package/src/modules/kb-sync/kb-sync.interface.ts +3 -3
  530. package/src/modules/kb-sync/kb-sync.service.ts +9 -9
  531. package/src/modules/marketplace/__tests__/github-facade.test.ts +1 -1
  532. package/src/modules/marketplace/__tests__/marketplace-git.test.ts +1 -1
  533. package/src/modules/mcp/__tests__/mcp-proxy-helpers.test.ts +4 -2
  534. package/src/modules/mcp/__tests__/mcp.e2e.test.ts +69 -8
  535. package/src/modules/mcp/__tests__/mcp.service.test.ts +91 -13
  536. package/src/modules/mcp/__tests__/read-only-hint.pg.test.ts +194 -0
  537. package/src/modules/mcp/mcp.service.ts +89 -28
  538. package/src/modules/onboarding/__tests__/starter-pack.service.test.ts +59 -59
  539. package/src/modules/onboarding/onboarding.contract.ts +1 -1
  540. package/src/modules/onboarding/onboarding.routes.ts +2 -2
  541. package/src/modules/onboarding/starter-pack.service.ts +7 -9
  542. package/src/modules/plugins/__tests__/bundle-dialect.e2e.test.ts +1 -1
  543. package/src/modules/plugins/__tests__/compile-marketplace.test.ts +1 -1
  544. package/src/modules/plugins/__tests__/join-request-jobs.service.test.ts +43 -43
  545. package/src/modules/plugins/__tests__/join-requests.service.test.ts +19 -19
  546. package/src/modules/plugins/__tests__/join-requests.settlement.test.ts +26 -26
  547. package/src/modules/plugins/__tests__/plugin-rename.service.test.ts +46 -21
  548. package/src/modules/plugins/__tests__/plugins.routes.test.ts +31 -31
  549. package/src/modules/plugins/join-request-jobs.service.ts +10 -10
  550. package/src/modules/plugins/join-requests.service.ts +4 -4
  551. package/src/modules/plugins/plugin-rename.service.ts +1 -1
  552. package/src/modules/plugins/plugins.routes.ts +9 -9
  553. package/src/modules/secrets-vault/__tests__/db-secrets-vault.managed.test.ts +773 -0
  554. package/src/modules/secrets-vault/__tests__/db-secrets-vault.oauth.test.ts +28 -1
  555. package/src/modules/secrets-vault/__tests__/managed-sign-in.route.test.ts +351 -0
  556. package/src/modules/secrets-vault/db-secrets-vault.service.ts +562 -95
  557. package/src/modules/secrets-vault/index.ts +7 -0
  558. package/src/modules/secrets-vault/managed-sign-in-erasure.ts +41 -0
  559. package/src/modules/secrets-vault/secrets-variable-loader.ts +134 -134
  560. package/src/modules/secrets-vault/secrets-vault.contract.ts +152 -0
  561. package/src/modules/secrets-vault/secrets-vault.routes.ts +157 -10
  562. package/src/modules/settings/__tests__/repository-source.test.ts +1 -1
  563. package/src/modules/settings/__tests__/setup.routes.layout-phase.test.ts +1 -1
  564. package/src/modules/settings/__tests__/setup.routes.managed-phase.test.ts +1 -1
  565. package/src/modules/settings/connection-check.ts +1 -1
  566. package/src/modules/settings/deployment-settings.service.ts +1 -1
  567. package/src/modules/settings/git-root-folders.ts +1 -1
  568. package/src/modules/settings/setup.routes.ts +1 -1
  569. package/src/modules/skills/__tests__/allowed-tools-warn.tools.test.ts +3 -3
  570. package/src/modules/skills/__tests__/branch-skills.tools.test.ts +1 -1
  571. package/src/modules/skills/__tests__/pending-skills.service.test.ts +8 -8
  572. package/src/modules/skills/__tests__/skill-access-requests.routes.test.ts +18 -18
  573. package/src/modules/skills/__tests__/skills.service.test.ts +3 -3
  574. package/src/modules/skills/pending-skills.service.ts +3 -3
  575. package/src/modules/skills/skill-access-requests.routes.ts +7 -7
  576. package/src/modules/tool-helpers/__tests__/agent-roles-write.test.ts +4 -4
  577. package/src/modules/tool-helpers/__tests__/branch-declaration.test.ts +3 -3
  578. package/src/modules/tool-helpers/__tests__/can-write.tools.test.ts +3 -3
  579. package/src/modules/tool-helpers/__tests__/phase4-tools.test.ts +4 -4
  580. package/src/modules/tool-helpers/__tests__/tools-surface.test.ts +3 -3
  581. package/src/modules/tool-helpers/__tests__/validate-token.test.ts +1 -1
  582. package/src/modules/tool-helpers/tool-context.ts +6 -6
  583. package/src/modules/tool-helpers/tool-handler.ts +2 -2
  584. package/src/modules/tool-helpers/tool.contract.ts +4 -4
  585. package/src/modules/tool-manuals/__tests__/pending-tools.service.test.ts +9 -9
  586. package/src/modules/tool-manuals/__tests__/tool-manuals.managed-sign-in.test.ts +89 -0
  587. package/src/modules/tool-manuals/__tests__/tool-manuals.restart.test.ts +1 -1
  588. package/src/modules/tool-manuals/__tests__/tool-manuals.tools.test.ts +36 -1
  589. package/src/modules/tool-manuals/mcp-server-edit.service.ts +1 -1
  590. package/src/modules/tool-manuals/pending-tools.service.ts +3 -3
  591. package/src/modules/tool-manuals/tool-delete.service.ts +1 -1
  592. package/src/modules/tool-manuals/tool-manuals.contract.ts +41 -3
  593. package/src/modules/tool-manuals/tool-manuals.service.ts +53 -5
  594. package/src/modules/tool-manuals/tool-manuals.tools.ts +41 -15
  595. package/src/modules/tool-registry/__tests__/own-tool-schemas.test.ts +4 -4
  596. package/src/modules/tool-registry/__tests__/read-only-hints.test.ts +3 -3
  597. package/src/modules/tool-registry/__tests__/tool-description-length.test.ts +6 -6
  598. package/src/modules/{workflow → version-control}/__tests__/apply-failure.test.ts +54 -54
  599. package/src/modules/{workflow → version-control}/__tests__/event-bus.test.ts +27 -27
  600. package/src/modules/{workflow → version-control}/__tests__/events-delivery.test.ts +37 -37
  601. package/src/modules/{workflow → version-control}/__tests__/file-lock.service.deletion-gate.test.ts +2 -2
  602. package/src/modules/{workflow → version-control}/__tests__/file-lock.service.path-identity.test.ts +8 -8
  603. package/src/modules/{workflow → version-control}/__tests__/merge-announces-tree.test.ts +11 -11
  604. package/src/modules/{workflow → version-control}/__tests__/pending-commits.worker.concurrency.test.ts +9 -9
  605. package/src/modules/{workflow → version-control}/__tests__/pending-commits.worker.test.ts +25 -25
  606. package/src/modules/{workflow → version-control}/__tests__/preserve-roles-yaml.test.ts +42 -42
  607. package/src/modules/version-control/__tests__/public-surface.test.ts +114 -0
  608. package/src/modules/{workflow/__tests__/workflow.routes.folder-proposals.test.ts → version-control/__tests__/version-control.routes.folder-proposals.test.ts} +18 -18
  609. 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
  610. 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
  611. package/src/modules/{workflow/__tests__/workflow.routes.lock-path.test.ts → version-control/__tests__/version-control.routes.lock-path.test.ts} +18 -18
  612. 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
  613. package/src/modules/{workflow/__tests__/workflow.routes.push-refused.test.ts → version-control/__tests__/version-control.routes.push-refused.test.ts} +14 -14
  614. 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
  615. package/src/modules/{workflow/__tests__/workflow.service.commitFileWhileLocked.test.ts → version-control/__tests__/version-control.service.commitFileWhileLocked.test.ts} +14 -14
  616. package/src/modules/{workflow/__tests__/workflow.service.delete-branch.test.ts → version-control/__tests__/version-control.service.delete-branch.test.ts} +14 -14
  617. 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
  618. package/src/modules/{workflow/__tests__/workflow.service.facade.test.ts → version-control/__tests__/version-control.service.facade.test.ts} +100 -102
  619. package/src/modules/{workflow/__tests__/workflow.service.folder-proposals.test.ts → version-control/__tests__/version-control.service.folder-proposals.test.ts} +7 -7
  620. package/src/modules/{workflow/__tests__/workflow.service.platform-restore.test.ts → version-control/__tests__/version-control.service.platform-restore.test.ts} +6 -6
  621. package/src/modules/{workflow/__tests__/workflow.service.read-gate.test.ts → version-control/__tests__/version-control.service.read-gate.test.ts} +9 -9
  622. package/src/modules/{workflow/__tests__/workflow.service.releaseLock.test.ts → version-control/__tests__/version-control.service.releaseLock.test.ts} +85 -75
  623. package/src/modules/{workflow/__tests__/workflow.service.repository-replaced.test.ts → version-control/__tests__/version-control.service.repository-replaced.test.ts} +4 -4
  624. package/src/modules/{workflow/__tests__/workflow.service.sync.test.ts → version-control/__tests__/version-control.service.sync.test.ts} +17 -17
  625. 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
  626. 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
  627. 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
  628. package/src/modules/{workflow → version-control}/agent-tools/__tests__/change-request-read.tools.test.ts +3 -3
  629. package/src/modules/{workflow → version-control}/agent-tools/__tests__/update-change-request.parity.test.ts +16 -16
  630. package/src/modules/{workflow/agent-tools/__tests__/workflow.tools.test.ts → version-control/agent-tools/__tests__/version-control.tools.test.ts} +9 -9
  631. package/src/modules/{workflow → version-control}/agent-tools/change-request-read.tools.ts +2 -2
  632. package/src/modules/{workflow/agent-tools/workflow.tools.ts → version-control/agent-tools/version-control.tools.ts} +30 -30
  633. package/src/modules/{workflow → version-control}/change-request-hooks.ts +1 -1
  634. package/src/modules/{workflow/review-workflow → version-control/change-request-review}/__tests__/approval-states.test.ts +5 -5
  635. package/src/modules/{workflow/review-workflow → version-control/change-request-review}/__tests__/cancel-pr.test.ts +8 -8
  636. package/src/modules/{workflow/review-workflow → version-control/change-request-review}/__tests__/carry-approvals-forward.test.ts +6 -6
  637. package/src/modules/{workflow/review-workflow → version-control/change-request-review}/__tests__/erase-approver.test.ts +5 -5
  638. package/src/modules/{workflow/review-workflow → version-control/change-request-review}/__tests__/merge-gate.test.ts +3 -3
  639. package/src/modules/{workflow/review-workflow → version-control/change-request-review}/__tests__/merge-records-own-commit.test.ts +3 -3
  640. package/src/modules/{workflow/review-workflow/review-workflow.interface.ts → version-control/change-request-review/change-request-review.interface.ts} +1 -1
  641. package/src/modules/{workflow/review-workflow/review-workflow.service.ts → version-control/change-request-review/change-request-review.service.ts} +28 -28
  642. package/src/modules/{workflow → version-control}/event-bus.ts +14 -14
  643. package/src/modules/{workflow → version-control}/events-delivery.ts +11 -11
  644. package/src/modules/{workflow → version-control}/events.routes.ts +5 -5
  645. package/src/modules/{workflow → version-control}/file-lock.service.ts +6 -6
  646. package/src/modules/{workflow → version-control}/git/__tests__/git-test-helpers.ts +3 -3
  647. package/src/modules/{workflow → version-control}/git/__tests__/git.service.accessGating.test.ts +5 -5
  648. package/src/modules/{workflow → version-control}/git/__tests__/git.service.appliedChange.test.ts +4 -4
  649. package/src/modules/{workflow → version-control}/git/__tests__/git.service.changedFilesForPr.test.ts +16 -16
  650. package/src/modules/{workflow → version-control}/git/__tests__/git.service.changedPathsMemo.test.ts +2 -2
  651. package/src/modules/{workflow → version-control}/git/__tests__/git.service.commitChanges.test.ts +3 -3
  652. package/src/modules/{workflow → version-control}/git/__tests__/git.service.commitFile.strayPath.test.ts +10 -10
  653. package/src/modules/{workflow → version-control}/git/__tests__/git.service.commitFile.test.ts +3 -3
  654. package/src/modules/version-control/git/__tests__/git.service.commitLanded.test.ts +199 -0
  655. package/src/modules/{workflow → version-control}/git/__tests__/git.service.createBranch.test.ts +3 -3
  656. package/src/modules/{workflow → version-control}/git/__tests__/git.service.deleteBranch.test.ts +7 -7
  657. package/src/modules/{workflow → version-control}/git/__tests__/git.service.diffFileAtCommit.test.ts +9 -9
  658. package/src/modules/{workflow → version-control}/git/__tests__/git.service.diffFileBetweenBranches.test.ts +23 -23
  659. package/src/modules/{workflow → version-control}/git/__tests__/git.service.fileBytesAtCommit.test.ts +7 -7
  660. package/src/modules/{workflow → version-control}/git/__tests__/git.service.fileContentsAtCommit.test.ts +3 -3
  661. package/src/modules/{workflow → version-control}/git/__tests__/git.service.forkPoint.test.ts +2 -2
  662. package/src/modules/{workflow → version-control}/git/__tests__/git.service.history-guards.test.ts +2 -2
  663. package/src/modules/{workflow → version-control}/git/__tests__/git.service.list-branches.test.ts +12 -12
  664. package/src/modules/{workflow → version-control}/git/__tests__/git.service.listTrackedFiles.test.ts +2 -2
  665. package/src/modules/{workflow → version-control}/git/__tests__/git.service.logForFile.test.ts +6 -6
  666. package/src/modules/{workflow → version-control}/git/__tests__/git.service.mergeChangeRequest.test.ts +99 -22
  667. package/src/modules/{workflow → version-control}/git/__tests__/git.service.mergeIntoBranch.test.ts +16 -16
  668. package/src/modules/{workflow → version-control}/git/__tests__/git.service.pendingChanges.test.ts +2 -2
  669. package/src/modules/{workflow → version-control}/git/__tests__/git.service.postMergePull.test.ts +5 -5
  670. package/src/modules/{workflow → version-control}/git/__tests__/git.service.prFetchFailure.test.ts +2 -2
  671. package/src/modules/{workflow → version-control}/git/__tests__/git.service.pull.test.ts +12 -12
  672. package/src/modules/{workflow → version-control}/git/__tests__/git.service.readFileAtRef.test.ts +3 -3
  673. package/src/modules/{workflow → version-control}/git/__tests__/git.service.revertPathsAndPush.test.ts +2 -2
  674. package/src/modules/{workflow → version-control}/git/__tests__/git.service.status.test.ts +4 -4
  675. package/src/modules/{workflow → version-control}/git/__tests__/git.service.syncFromRemote.test.ts +8 -8
  676. package/src/modules/{workflow → version-control}/git/__tests__/git.service.worktrees.test.ts +4 -4
  677. package/src/modules/{workflow → version-control}/git/__tests__/pull-request.service.list-fetch.test.ts +2 -2
  678. package/src/modules/{workflow → version-control}/git/__tests__/pull-request.service.test.ts +6 -6
  679. package/src/modules/{workflow → version-control}/git/git.service.ts +112 -59
  680. package/src/modules/{workflow → version-control}/git/node-git-runner.ts +1 -1
  681. package/src/modules/{workflow → version-control}/git/pull-request.service.ts +12 -12
  682. package/src/modules/{workflow → version-control}/index.ts +6 -5
  683. package/src/modules/{workflow → version-control}/pending-commits.service.ts +2 -2
  684. package/src/modules/{workflow → version-control}/pending-commits.worker.ts +8 -8
  685. package/src/modules/{workflow → version-control}/read-on-branch.ts +2 -2
  686. package/src/modules/{workflow/workflow-hooks.ts → version-control/version-control-hooks.ts} +44 -5
  687. package/src/modules/{workflow/workflow.routes.ts → version-control/version-control.routes.ts} +64 -63
  688. package/src/modules/{workflow/workflow.service.ts → version-control/version-control.service.ts} +96 -109
  689. package/src/modules/workspace/__tests__/agent-access.gate.test.ts +8 -8
  690. package/src/modules/workspace/__tests__/agent-downloads.test.ts +13 -16
  691. package/src/modules/workspace/__tests__/agent-uploads.test.ts +11 -12
  692. package/src/modules/workspace/__tests__/escape-sequences.routes.test.ts +11 -16
  693. package/src/modules/workspace/__tests__/file-stat-access.test.ts +3 -3
  694. package/src/modules/workspace/__tests__/git-internals.security.test.ts +27 -27
  695. package/src/modules/workspace/__tests__/kb-repository.test.ts +1 -1
  696. package/src/modules/workspace/__tests__/rest-tool-arguments.test.ts +3 -3
  697. package/src/modules/workspace/__tests__/start-session.default-branch.test.ts +152 -0
  698. package/src/modules/workspace/__tests__/workspace-paths-inside-the-repo.test.ts +6 -6
  699. package/src/modules/workspace/__tests__/workspace-tmp.tools.test.ts +13 -14
  700. package/src/modules/workspace/__tests__/workspace.routes.at-ref.test.ts +6 -6
  701. package/src/modules/workspace/__tests__/workspace.routes.branch-errors.test.ts +4 -4
  702. package/src/modules/workspace/__tests__/workspace.routes.create-grant.test.ts +6 -6
  703. package/src/modules/workspace/__tests__/workspace.routes.delete.test.ts +8 -8
  704. package/src/modules/workspace/__tests__/workspace.routes.download-implies-read.test.ts +4 -4
  705. package/src/modules/workspace/__tests__/workspace.routes.download.test.ts +6 -6
  706. package/src/modules/workspace/__tests__/workspace.routes.file-writes.test.ts +6 -6
  707. package/src/modules/workspace/__tests__/workspace.routes.folder-zip-access.test.ts +4 -4
  708. package/src/modules/workspace/__tests__/workspace.routes.folders.test.ts +6 -6
  709. package/src/modules/workspace/__tests__/workspace.routes.move-platform-files.test.ts +7 -7
  710. package/src/modules/workspace/__tests__/workspace.routes.read-gate.test.ts +13 -13
  711. package/src/modules/workspace/__tests__/workspace.service.any-workspace-credentials.test.ts +1 -1
  712. package/src/modules/workspace/__tests__/workspace.service.replaced-repository.test.ts +1 -1
  713. package/src/modules/workspace/__tests__/workspace.service.worktrees.test.ts +1 -1
  714. package/src/modules/workspace/__tests__/workspace.tools.agents-file.test.ts +5 -5
  715. package/src/modules/workspace/__tests__/workspace.tools.branch-errors.test.ts +5 -5
  716. package/src/modules/workspace/__tests__/workspace.tools.test.ts +27 -27
  717. package/src/modules/workspace/agent-access.gate.ts +5 -5
  718. package/src/modules/workspace/git-internals.middleware.ts +2 -2
  719. package/src/modules/workspace/kb-repository.ts +1 -1
  720. package/src/modules/workspace/startup/__tests__/kb-startup-runner.degraded.test.ts +1 -1
  721. package/src/modules/workspace/startup/__tests__/kb-startup-runner.test.ts +1 -1
  722. package/src/modules/workspace/startup/__tests__/kb-startup-runner.worktrees.test.ts +1 -1
  723. package/src/modules/workspace/startup/kb-git.ts +1 -1
  724. package/src/modules/workspace/startup/steps/__tests__/steps.test.ts +94 -70
  725. package/src/modules/workspace/startup/steps/seed-tree.ts +4 -5
  726. package/src/modules/workspace/startup/steps/template-files.step.ts +4 -5
  727. package/src/modules/workspace/startup/steps/template-source.ts +21 -6
  728. package/src/modules/workspace/workspace-tmp.ts +4 -4
  729. package/src/modules/workspace/workspace.routes.ts +26 -26
  730. package/src/modules/workspace/workspace.service.ts +11 -11
  731. package/src/modules/workspace/workspace.tools.ts +17 -10
  732. package/src/shared/__tests__/canonical-file-identity.test.ts +5 -5
  733. package/src/shared/__tests__/fire-and-forget.test.ts +39 -0
  734. package/src/shared/__tests__/http-errors.test.ts +4 -4
  735. package/src/shared/canonical-file-identity.ts +5 -5
  736. package/src/shared/domain-errors.ts +44 -44
  737. package/src/shared/fire-and-forget.ts +26 -0
  738. package/src/shared/git.contract.ts +1 -1
  739. package/src/shared/http-errors.ts +3 -3
  740. package/src/shared/kb-context.ts +130 -130
  741. package/src/shared/pending-proposals.ts +4 -4
  742. package/src/tenancy/__tests__/tenant-host.test.ts +372 -372
  743. package/src/tenancy/__tests__/tenant-runtime.test.ts +221 -221
  744. package/src/tenancy/__tests__/tenant-secrets.test.ts +35 -35
  745. package/src/tenancy/index.ts +35 -35
  746. package/src/tenancy/static-tenant-source.ts +1 -1
  747. package/src/tenancy/tenant-host.ts +261 -261
  748. package/src/tenancy/tenant-runtime.ts +208 -208
  749. package/src/tenancy/tenant-source.contract.ts +59 -59
  750. package/dist/modules/workflow/agent-tools/change-request-read-shape.d.ts.map +0 -1
  751. package/dist/modules/workflow/agent-tools/change-request-read-shape.js.map +0 -1
  752. package/dist/modules/workflow/agent-tools/change-request-read.tools.d.ts.map +0 -1
  753. package/dist/modules/workflow/agent-tools/change-request-read.tools.js.map +0 -1
  754. package/dist/modules/workflow/agent-tools/change-request-summary.d.ts.map +0 -1
  755. package/dist/modules/workflow/agent-tools/change-request-summary.js.map +0 -1
  756. package/dist/modules/workflow/agent-tools/workflow.tools.d.ts.map +0 -1
  757. package/dist/modules/workflow/agent-tools/workflow.tools.js.map +0 -1
  758. package/dist/modules/workflow/change-request-hooks.d.ts.map +0 -1
  759. package/dist/modules/workflow/change-request-hooks.js.map +0 -1
  760. package/dist/modules/workflow/event-bus.d.ts.map +0 -1
  761. package/dist/modules/workflow/event-bus.js.map +0 -1
  762. package/dist/modules/workflow/events-delivery.d.ts.map +0 -1
  763. package/dist/modules/workflow/events-delivery.js.map +0 -1
  764. package/dist/modules/workflow/events.routes.d.ts.map +0 -1
  765. package/dist/modules/workflow/events.routes.js.map +0 -1
  766. package/dist/modules/workflow/file-lock.service.d.ts.map +0 -1
  767. package/dist/modules/workflow/file-lock.service.js.map +0 -1
  768. package/dist/modules/workflow/git/change-request-link.d.ts.map +0 -1
  769. package/dist/modules/workflow/git/change-request-link.js.map +0 -1
  770. package/dist/modules/workflow/git/git-version.d.ts.map +0 -1
  771. package/dist/modules/workflow/git/git-version.js.map +0 -1
  772. package/dist/modules/workflow/git/git.service.d.ts.map +0 -1
  773. package/dist/modules/workflow/git/git.service.js.map +0 -1
  774. package/dist/modules/workflow/git/merge-commit.d.ts.map +0 -1
  775. package/dist/modules/workflow/git/merge-commit.js.map +0 -1
  776. package/dist/modules/workflow/git/node-git-runner.d.ts.map +0 -1
  777. package/dist/modules/workflow/git/node-git-runner.js.map +0 -1
  778. package/dist/modules/workflow/git/pull-request.service.d.ts.map +0 -1
  779. package/dist/modules/workflow/git/pull-request.service.js.map +0 -1
  780. package/dist/modules/workflow/index.d.ts.map +0 -1
  781. package/dist/modules/workflow/index.js.map +0 -1
  782. package/dist/modules/workflow/pending-commits.service.d.ts.map +0 -1
  783. package/dist/modules/workflow/pending-commits.service.js.map +0 -1
  784. package/dist/modules/workflow/pending-commits.worker.d.ts.map +0 -1
  785. package/dist/modules/workflow/pending-commits.worker.js.map +0 -1
  786. package/dist/modules/workflow/read-on-branch.d.ts.map +0 -1
  787. package/dist/modules/workflow/read-on-branch.js.map +0 -1
  788. package/dist/modules/workflow/recovery-bot.d.ts.map +0 -1
  789. package/dist/modules/workflow/recovery-bot.js.map +0 -1
  790. package/dist/modules/workflow/review-workflow/approval-lock.d.ts.map +0 -1
  791. package/dist/modules/workflow/review-workflow/approval-lock.js.map +0 -1
  792. package/dist/modules/workflow/review-workflow/review-workflow.interface.d.ts.map +0 -1
  793. package/dist/modules/workflow/review-workflow/review-workflow.interface.js +0 -2
  794. package/dist/modules/workflow/review-workflow/review-workflow.interface.js.map +0 -1
  795. package/dist/modules/workflow/review-workflow/review-workflow.service.d.ts.map +0 -1
  796. package/dist/modules/workflow/review-workflow/review-workflow.service.js.map +0 -1
  797. package/dist/modules/workflow/sanitize-error.d.ts.map +0 -1
  798. package/dist/modules/workflow/sanitize-error.js.map +0 -1
  799. package/dist/modules/workflow/workflow-hooks.d.ts.map +0 -1
  800. package/dist/modules/workflow/workflow-hooks.js.map +0 -1
  801. package/dist/modules/workflow/workflow.routes.d.ts.map +0 -1
  802. package/dist/modules/workflow/workflow.routes.js.map +0 -1
  803. package/dist/modules/workflow/workflow.service.d.ts.map +0 -1
  804. package/dist/modules/workflow/workflow.service.js.map +0 -1
  805. package/src/modules/mcp/__tests__/read-only-hint.e2e.test.ts +0 -213
  806. /package/dist/modules/{workflow → version-control}/agent-tools/change-request-read-shape.d.ts +0 -0
  807. /package/dist/modules/{workflow → version-control}/agent-tools/change-request-read-shape.js +0 -0
  808. /package/dist/modules/{workflow → version-control}/agent-tools/change-request-read.tools.d.ts +0 -0
  809. /package/dist/modules/{workflow → version-control}/agent-tools/change-request-summary.d.ts +0 -0
  810. /package/dist/modules/{workflow → version-control}/agent-tools/change-request-summary.js +0 -0
  811. /package/dist/modules/{workflow → version-control}/change-request-hooks.js +0 -0
  812. /package/dist/modules/{workflow/review-workflow → version-control/change-request-review}/approval-lock.d.ts +0 -0
  813. /package/dist/modules/{workflow/review-workflow → version-control/change-request-review}/approval-lock.js +0 -0
  814. /package/dist/modules/{workflow → version-control}/events-delivery.js +0 -0
  815. /package/dist/modules/{workflow → version-control}/events.routes.js +0 -0
  816. /package/dist/modules/{workflow → version-control}/git/change-request-link.d.ts +0 -0
  817. /package/dist/modules/{workflow → version-control}/git/change-request-link.js +0 -0
  818. /package/dist/modules/{workflow → version-control}/git/git-version.d.ts +0 -0
  819. /package/dist/modules/{workflow → version-control}/git/git-version.js +0 -0
  820. /package/dist/modules/{workflow → version-control}/git/merge-commit.d.ts +0 -0
  821. /package/dist/modules/{workflow → version-control}/git/merge-commit.js +0 -0
  822. /package/dist/modules/{workflow → version-control}/git/node-git-runner.d.ts +0 -0
  823. /package/dist/modules/{workflow → version-control}/recovery-bot.d.ts +0 -0
  824. /package/dist/modules/{workflow → version-control}/recovery-bot.js +0 -0
  825. /package/dist/modules/{workflow → version-control}/sanitize-error.d.ts +0 -0
  826. /package/dist/modules/{workflow → version-control}/sanitize-error.js +0 -0
  827. /package/src/modules/{workflow → version-control}/__tests__/change-request-hooks.test.ts +0 -0
  828. /package/src/modules/{workflow → version-control}/__tests__/fake-file-lock-db.ts +0 -0
  829. /package/src/modules/{workflow → version-control}/__tests__/pending-commits.canonical.test.ts +0 -0
  830. /package/src/modules/{workflow → version-control}/__tests__/pending-commits.enqueue-if-absent.test.ts +0 -0
  831. /package/src/modules/{workflow → version-control}/__tests__/pending-commits.repository-replaced.test.ts +0 -0
  832. /package/src/modules/{workflow → version-control}/__tests__/sanitize-error.test.ts +0 -0
  833. /package/src/modules/{workflow → version-control}/agent-tools/__tests__/change-request-read-shape.test.ts +0 -0
  834. /package/src/modules/{workflow → version-control}/agent-tools/change-request-read-shape.ts +0 -0
  835. /package/src/modules/{workflow → version-control}/agent-tools/change-request-summary.ts +0 -0
  836. /package/src/modules/{workflow/review-workflow → version-control/change-request-review}/approval-lock.ts +0 -0
  837. /package/src/modules/{workflow → version-control}/git/__tests__/branchAuthor.test.ts +0 -0
  838. /package/src/modules/{workflow → version-control}/git/__tests__/change-request-link.test.ts +0 -0
  839. /package/src/modules/{workflow → version-control}/git/__tests__/git-version.failure.test.ts +0 -0
  840. /package/src/modules/{workflow → version-control}/git/__tests__/git-version.test.ts +0 -0
  841. /package/src/modules/{workflow → version-control}/git/__tests__/node-git-runner.test.ts +0 -0
  842. /package/src/modules/{workflow → version-control}/git/__tests__/pull-request.service.getPrDetail.test.ts +0 -0
  843. /package/src/modules/{workflow → version-control}/git/__tests__/pull-request.service.placeholder.test.ts +0 -0
  844. /package/src/modules/{workflow → version-control}/git/__tests__/pull-request.service.viewer-can-cancel.test.ts +0 -0
  845. /package/src/modules/{workflow → version-control}/git/__tests__/pull-request.service.viewer-can-delete.test.ts +0 -0
  846. /package/src/modules/{workflow → version-control}/git/__tests__/pull-request.service.viewer-can-update.test.ts +0 -0
  847. /package/src/modules/{workflow → version-control}/git/change-request-link.ts +0 -0
  848. /package/src/modules/{workflow → version-control}/git/git-version.ts +0 -0
  849. /package/src/modules/{workflow → version-control}/git/merge-commit.ts +0 -0
  850. /package/src/modules/{workflow → version-control}/recovery-bot.ts +0 -0
  851. /package/src/modules/{workflow → version-control}/sanitize-error.ts +0 -0
@@ -3,14 +3,14 @@ import { testKbContext } from '../../../__tests__/kb-context.js';
3
3
  import type { RemoteSyncPullResult } from '@bevel-software/platform-shared';
4
4
  import type { GitService } from '../git/git.service.js';
5
5
  import type { PullRequestService } from '../git/pull-request.service.js';
6
- import type { IReviewWorkflowService } from '../review-workflow/review-workflow.interface.js';
6
+ import type { IChangeRequestReviewService } from '../change-request-review/change-request-review.interface.js';
7
7
  import type { WorkspaceService } from '../../workspace/workspace.service.js';
8
8
  import type { IAccessControl } from '../../access/access-control.interface.js';
9
9
  import type { FileLockService } from '../file-lock.service.js';
10
10
  import type { PendingCommitsService } from '../pending-commits.service.js';
11
- import type { WorkflowEventBus } from '../event-bus.js';
11
+ import type { VersionControlEventBus } from '../event-bus.js';
12
12
  import type { Database } from '../../database/connection.js';
13
- import { WorkflowService, syncConflictMessage } from '../workflow.service.js';
13
+ import { VersionControlService, syncConflictMessage } from '../version-control.service.js';
14
14
  import { PullRebaseConflictError, RemoteBranchGoneError } from '../../../shared/domain-errors.js';
15
15
  import { openChangeGate } from '../../../__tests__/open-change-gate.js';
16
16
 
@@ -28,12 +28,12 @@ function build(opts: { sync: () => Promise<RemoteSyncPullResult> }) {
28
28
  const git = { syncFromRemote: vi.fn(opts.sync) } as unknown as GitService;
29
29
  const prs = { invalidateListCache: vi.fn() } as unknown as PullRequestService;
30
30
  const pendingCommits = { enqueueIfAbsent: vi.fn(async () => true) } as unknown as PendingCommitsService;
31
- const events = { emit: vi.fn() } as unknown as WorkflowEventBus;
32
- const svc = new WorkflowService(
31
+ const events = { emit: vi.fn() } as unknown as VersionControlEventBus;
32
+ const svc = new VersionControlService(
33
33
  {} as Database,
34
34
  git,
35
35
  prs,
36
- {} as IReviewWorkflowService,
36
+ {} as IChangeRequestReviewService,
37
37
  {} as WorkspaceService,
38
38
  {} as IAccessControl,
39
39
  {} as FileLockService,
@@ -48,7 +48,7 @@ function build(opts: { sync: () => Promise<RemoteSyncPullResult> }) {
48
48
  const kinds = (emit: ReturnType<typeof vi.fn>) =>
49
49
  emit.mock.calls.map((c) => (c[0] as { kind: string }).kind);
50
50
 
51
- describe('WorkflowService.syncWorkspaceFromRemote', () => {
51
+ describe('VersionControlService.syncWorkspaceFromRemote', () => {
52
52
  it('content changed: reports updated, announces the tree and each changed file, drops the CR list cache', async () => {
53
53
  const { svc, prs, emit } = build({
54
54
  sync: async () => ({ ...PULLED, changedPaths: ['Plugins/x/SKILL.md', 'Docs/a.md'] }),
@@ -246,7 +246,7 @@ describe('WorkflowService.syncWorkspaceFromRemote', () => {
246
246
  });
247
247
  });
248
248
 
249
- describe('WorkflowService.retireRemoteGoneClone', () => {
249
+ describe('VersionControlService.retireRemoteGoneClone', () => {
250
250
  function buildRetire(opts: { cloned: boolean; stillOnOrigin: boolean; bootstrapping?: boolean }) {
251
251
  const git = {
252
252
  remoteBranchExists: vi.fn(async () => opts.stillOnOrigin),
@@ -257,8 +257,8 @@ describe('WorkflowService.retireRemoteGoneClone', () => {
257
257
  isBootstrapInFlight: vi.fn(() => opts.bootstrapping === true),
258
258
  deleteWorkspace: vi.fn(async () => {}),
259
259
  } as unknown as WorkspaceService;
260
- const svc = new WorkflowService(
261
- {} as Database, git, {} as PullRequestService, {} as IReviewWorkflowService,
260
+ const svc = new VersionControlService(
261
+ {} as Database, git, {} as PullRequestService, {} as IChangeRequestReviewService,
262
262
  workspaceService, {} as IAccessControl, {} as FileLockService, {} as PendingCommitsService,
263
263
  testKbContext(),
264
264
  openChangeGate(),
@@ -317,7 +317,7 @@ describe('WorkflowService.retireRemoteGoneClone', () => {
317
317
  });
318
318
  });
319
319
 
320
- describe('WorkflowService.retireRemoteGoneClone — what can bring the branch back', () => {
320
+ describe('VersionControlService.retireRemoteGoneClone — what can bring the branch back', () => {
321
321
  it('backs off while a clone of the branch is being bootstrapped', async () => {
322
322
  const git = { remoteBranchExists: vi.fn(async () => false) } as unknown as GitService;
323
323
  const workspaceService = {
@@ -325,8 +325,8 @@ describe('WorkflowService.retireRemoteGoneClone — what can bring the branch ba
325
325
  isBootstrapInFlight: vi.fn(() => true),
326
326
  deleteWorkspace: vi.fn(async () => {}),
327
327
  } as unknown as WorkspaceService;
328
- const svc = new WorkflowService(
329
- {} as Database, git, {} as PullRequestService, {} as IReviewWorkflowService,
328
+ const svc = new VersionControlService(
329
+ {} as Database, git, {} as PullRequestService, {} as IChangeRequestReviewService,
330
330
  workspaceService, {} as IAccessControl, {} as FileLockService, {} as PendingCommitsService,
331
331
  testKbContext(),
332
332
  openChangeGate(),
@@ -354,8 +354,8 @@ describe('WorkflowService.retireRemoteGoneClone — what can bring the branch ba
354
354
  order.push('retire-deletes');
355
355
  }),
356
356
  } as unknown as WorkspaceService;
357
- const svc = new WorkflowService(
358
- {} as Database, git, {} as PullRequestService, {} as IReviewWorkflowService,
357
+ const svc = new VersionControlService(
358
+ {} as Database, git, {} as PullRequestService, {} as IChangeRequestReviewService,
359
359
  workspaceService, {} as IAccessControl, {} as FileLockService, {} as PendingCommitsService,
360
360
  testKbContext(),
361
361
  openChangeGate(),
@@ -370,7 +370,7 @@ describe('WorkflowService.retireRemoteGoneClone — what can bring the branch ba
370
370
  });
371
371
  });
372
372
 
373
- describe('WorkflowService.syncWorkspaceFromRemote — an announcement is owed until delivered', () => {
373
+ describe('VersionControlService.syncWorkspaceFromRemote — an announcement is owed until delivered', () => {
374
374
  it('a retry after a failed announcement delivers it even though HEAD did not move again', async () => {
375
375
  let head = 'bbb';
376
376
  let pulls = 0;
@@ -420,7 +420,7 @@ describe('WorkflowService.syncWorkspaceFromRemote — an announcement is owed un
420
420
  });
421
421
  });
422
422
 
423
- describe('WorkflowService.syncWorkspaceFromRemote — a debt dies with its clone', () => {
423
+ describe('VersionControlService.syncWorkspaceFromRemote — a debt dies with its clone', () => {
424
424
  it('an announcement owed to a branch the host deleted is not replayed against a branch recreated under that name', async () => {
425
425
  let pulls = 0;
426
426
  const { svc, prs, emit } = build({
@@ -14,10 +14,10 @@ import type { IAccessControl } from '../../access/access-control.interface.js';
14
14
  import type { WorkspaceService } from '../../workspace/workspace.service.js';
15
15
  import type { GitService } from '../git/git.service.js';
16
16
  import type { PullRequestService } from '../git/pull-request.service.js';
17
- import type { IReviewWorkflowService } from '../review-workflow/review-workflow.interface.js';
17
+ import type { IChangeRequestReviewService } from '../change-request-review/change-request-review.interface.js';
18
18
  import type { FileLockService } from '../file-lock.service.js';
19
19
  import type { PendingCommitsService } from '../pending-commits.service.js';
20
- import { WorkflowService } from '../workflow.service.js';
20
+ import { VersionControlService } from '../version-control.service.js';
21
21
 
22
22
  /**
23
23
  * An edit against a real Postgres with column encryption ON. `title` and
@@ -30,7 +30,7 @@ const AUTHOR = 'alice@example.com';
30
30
  const alice: AuthUser = { id: 'u-alice', email: AUTHOR, name: 'Alice' };
31
31
  const open: Database[] = [];
32
32
 
33
- async function seeded(): Promise<{ svc: WorkflowService; db: Database; number: number }> {
33
+ async function seeded(): Promise<{ svc: VersionControlService; db: Database; number: number }> {
34
34
  const db = createDb(await scratchDatabaseUrl('hexis_cr_edit'), { piiKey: KEY });
35
35
  open.push(db);
36
36
  await runCoreMigrations(db, coreMigrationsDir());
@@ -56,11 +56,11 @@ async function seeded(): Promise<{ svc: WorkflowService; db: Database; number: n
56
56
  }),
57
57
  invalidateDetailCache: vi.fn(),
58
58
  } as unknown as PullRequestService;
59
- const svc = new WorkflowService(
59
+ const svc = new VersionControlService(
60
60
  db,
61
61
  {} as GitService,
62
62
  prs,
63
- {} as IReviewWorkflowService,
63
+ {} as IChangeRequestReviewService,
64
64
  {} as WorkspaceService,
65
65
  {} as IAccessControl,
66
66
  {} as FileLockService,
@@ -71,7 +71,7 @@ async function seeded(): Promise<{ svc: WorkflowService; db: Database; number: n
71
71
  return { svc, db, number };
72
72
  }
73
73
 
74
- describe.skipIf(!PG_ADMIN_URL)('WorkflowService.updateChangeRequest on a real, encrypted Postgres', () => {
74
+ describe.skipIf(!PG_ADMIN_URL)('VersionControlService.updateChangeRequest on a real, encrypted Postgres', () => {
75
75
  afterAll(async () => {
76
76
  for (const db of open) await closeDb(db);
77
77
  await dropScratchDatabases();
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect, vi } from 'vitest';
2
- import type { AuthUser, WorkflowEventPayload } from '@bevel-software/platform-shared';
2
+ import type { AuthUser, VersionControlEventPayload } from '@bevel-software/platform-shared';
3
3
  import { testKbContext } from '../../../__tests__/kb-context.js';
4
4
  import { openChangeGate } from '../../../__tests__/open-change-gate.js';
5
5
  import { hashEmail } from '../../../shared/email-identity.js';
@@ -8,11 +8,11 @@ import type { IAccessControl } from '../../access/access-control.interface.js';
8
8
  import type { WorkspaceService } from '../../workspace/workspace.service.js';
9
9
  import type { GitService } from '../git/git.service.js';
10
10
  import type { PullRequestService } from '../git/pull-request.service.js';
11
- import type { IReviewWorkflowService } from '../review-workflow/review-workflow.interface.js';
11
+ import type { IChangeRequestReviewService } from '../change-request-review/change-request-review.interface.js';
12
12
  import type { FileLockService } from '../file-lock.service.js';
13
13
  import type { PendingCommitsService } from '../pending-commits.service.js';
14
- import type { WorkflowEventBus } from '../event-bus.js';
15
- import { WorkflowService } from '../workflow.service.js';
14
+ import type { VersionControlEventBus } from '../event-bus.js';
15
+ import { VersionControlService } from '../version-control.service.js';
16
16
 
17
17
  /**
18
18
  * Who may change an open request's title and description: its author, or
@@ -96,14 +96,14 @@ function harness(
96
96
  getOrCreateForBranch: vi.fn(async (b: string) => ({ id: encodeURIComponent(b) })),
97
97
  ensureRemotesFetched: vi.fn(async () => undefined),
98
98
  } as unknown as WorkspaceService;
99
- const emitted: WorkflowEventPayload[] = [];
100
- const events = { emit: (e: WorkflowEventPayload) => emitted.push(e) } as unknown as WorkflowEventBus;
99
+ const emitted: VersionControlEventPayload[] = [];
100
+ const events = { emit: (e: VersionControlEventPayload) => emitted.push(e) } as unknown as VersionControlEventBus;
101
101
 
102
- const svc = new WorkflowService(
102
+ const svc = new VersionControlService(
103
103
  db as unknown as Database,
104
104
  {} as GitService,
105
105
  prs,
106
- {} as IReviewWorkflowService,
106
+ {} as IChangeRequestReviewService,
107
107
  workspaces,
108
108
  access,
109
109
  {} as FileLockService,
@@ -115,7 +115,7 @@ function harness(
115
115
  return { svc, db, tx, written, prs, access, workspaces, emitted };
116
116
  }
117
117
 
118
- describe('WorkflowService.updateChangeRequest — who may edit', () => {
118
+ describe('VersionControlService.updateChangeRequest — who may edit', () => {
119
119
  it('lets the AUTHOR edit without any further grant, and resolves no workspace and reads no access tree', async () => {
120
120
  const h = harness({ authorEmail: AUTHOR });
121
121
  await h.svc.updateChangeRequest(9, user(AUTHOR), { description: 'P2 - Planned\n\nNew reason.' });
@@ -250,7 +250,7 @@ describe('WorkflowService.updateChangeRequest — who may edit', () => {
250
250
  });
251
251
  });
252
252
 
253
- describe('WorkflowService.openChangeRequest — the same ceiling on the description', () => {
253
+ describe('VersionControlService.openChangeRequest — the same ceiling on the description', () => {
254
254
  it('refuses a description past 64,000 characters with 400 before touching a workspace', async () => {
255
255
  const h = harness({ authorEmail: AUTHOR });
256
256
  await expect(
@@ -265,7 +265,7 @@ describe('WorkflowService.openChangeRequest — the same ceiling on the descript
265
265
  });
266
266
  });
267
267
 
268
- describe('WorkflowService.updateChangeRequest — what an edit writes', () => {
268
+ describe('VersionControlService.updateChangeRequest — what an edit writes', () => {
269
269
  it('replaces the body whole — the body is the description and nothing else', async () => {
270
270
  const h = harness({ authorEmail: AUTHOR });
271
271
  const before = Date.now();
@@ -3,20 +3,20 @@ import { testKbContext } from '../../../__tests__/kb-context.js';
3
3
  import type { AuthUser, PullRequestDetail } from '@bevel-software/platform-shared';
4
4
  import type { GitService } from '../git/git.service.js';
5
5
  import type { PullRequestService } from '../git/pull-request.service.js';
6
- import type { IReviewWorkflowService } from '../review-workflow/review-workflow.interface.js';
6
+ import type { IChangeRequestReviewService } from '../change-request-review/change-request-review.interface.js';
7
7
  import type { WorkspaceService } from '../../workspace/workspace.service.js';
8
8
  import type { IAccessControl } from '../../access/access-control.interface.js';
9
9
  import type { FileLockService } from '../file-lock.service.js';
10
10
  import type { PendingCommitsService } from '../pending-commits.service.js';
11
11
  import type { Database } from '../../database/connection.js';
12
- import { WorkflowService } from '../workflow.service.js';
12
+ import { VersionControlService } from '../version-control.service.js';
13
13
  import { openChangeGate } from '../../../__tests__/open-change-gate.js';
14
- import type { WorkflowEventBus } from '../event-bus.js';
14
+ import type { VersionControlEventBus } from '../event-bus.js';
15
15
  import {
16
16
  ChangeRequestConflictsError,
17
17
  PullRebaseConflictError,
18
18
  PushNeedsAgentResolutionError,
19
- WorkflowDomainError,
19
+ VersionControlDomainError,
20
20
  } from '../../../shared/domain-errors.js';
21
21
 
22
22
  /**
@@ -118,27 +118,27 @@ function harness(opts: {
118
118
  .mockResolvedValue(refreshed);
119
119
  const prs = { getPrDetail, invalidateDetailCache: vi.fn() };
120
120
  const pendingCommits = { enqueueIfAbsent: vi.fn().mockResolvedValue(true) };
121
- const reviewWorkflow = {
121
+ const changeRequestReview = {
122
122
  carryApprovalsForward: vi.fn().mockResolvedValue(opts.carried ?? 0),
123
123
  };
124
124
  const emit = vi.fn();
125
- const svc = new WorkflowService(
125
+ const svc = new VersionControlService(
126
126
  {} as unknown as Database,
127
127
  git as unknown as GitService,
128
128
  prs as unknown as PullRequestService,
129
- reviewWorkflow as unknown as IReviewWorkflowService,
129
+ changeRequestReview as unknown as IChangeRequestReviewService,
130
130
  {} as unknown as WorkspaceService,
131
131
  {} as unknown as IAccessControl,
132
132
  {} as unknown as FileLockService,
133
133
  pendingCommits as unknown as PendingCommitsService,
134
134
  testKbContext(),
135
135
  openChangeGate(),
136
- { emit } as unknown as WorkflowEventBus,
136
+ { emit } as unknown as VersionControlEventBus,
137
137
  );
138
- return { svc, git, prs, pendingCommits, reviewWorkflow, refreshed, emit };
138
+ return { svc, git, prs, pendingCommits, changeRequestReview, refreshed, emit };
139
139
  }
140
140
 
141
- describe('WorkflowService.updateFromTarget', () => {
141
+ describe('VersionControlService.updateFromTarget', () => {
142
142
  it('merges the target into the proposal, pushes, and returns the refreshed detail', async () => {
143
143
  const h = harness({ changedPaths: ['Sales/Deal.md'] });
144
144
  await expect(h.svc.updateFromTarget(WS, USER, 7)).resolves.toEqual({
@@ -168,7 +168,7 @@ describe('WorkflowService.updateFromTarget', () => {
168
168
  const h = harness({ changedPaths: ['Sales/Deal.md'], carried: 2 });
169
169
  await h.svc.updateFromTarget(WS, USER, 7);
170
170
  expect(h.prs.getPrDetail).toHaveBeenCalledTimes(2);
171
- const carriedAt = h.reviewWorkflow.carryApprovalsForward.mock.invocationCallOrder[0];
171
+ const carriedAt = h.changeRequestReview.carryApprovalsForward.mock.invocationCallOrder[0];
172
172
  const lastReadAt = h.prs.getPrDetail.mock.invocationCallOrder[1];
173
173
  expect(carriedAt).toBeLessThan(lastReadAt);
174
174
  });
@@ -186,8 +186,8 @@ describe('WorkflowService.updateFromTarget', () => {
186
186
  it('refuses a viewer who is neither the author nor able to apply — nothing is merged', async () => {
187
187
  const h = harness({ first: detail({ viewerCanUpdate: false }) });
188
188
  const err = await h.svc.updateFromTarget(WS, USER, 7).catch((e: unknown) => e);
189
- expect(err).toBeInstanceOf(WorkflowDomainError);
190
- expect((err as WorkflowDomainError).status).toBe(403);
189
+ expect(err).toBeInstanceOf(VersionControlDomainError);
190
+ expect((err as VersionControlDomainError).status).toBe(403);
191
191
  expect(h.git.mergeFromOrigin).not.toHaveBeenCalled();
192
192
  expect(h.git.push).not.toHaveBeenCalled();
193
193
  });
@@ -280,7 +280,7 @@ describe('WorkflowService.updateFromTarget', () => {
280
280
  });
281
281
  });
282
282
 
283
- describe('WorkflowService.updateFromTarget: the approvals the merge did not touch', () => {
283
+ describe('VersionControlService.updateFromTarget: the approvals the merge did not touch', () => {
284
284
  it('carries them onto the new head, before the one detail read that goes back', async () => {
285
285
  const h = harness({ changedPaths: ['Sales/Deal.md'], carried: 2 });
286
286
 
@@ -292,7 +292,7 @@ describe('WorkflowService.updateFromTarget: the approvals the merge did not touc
292
292
  // What moved is git's answer between the two heads — never a guess, and
293
293
  // never the request's own three-dot diff against the target.
294
294
  expect(h.git.pathsChangedBetween).toHaveBeenCalledWith(WS, HEAD, MERGED_HEAD);
295
- expect(h.reviewWorkflow.carryApprovalsForward).toHaveBeenCalledWith(
295
+ expect(h.changeRequestReview.carryApprovalsForward).toHaveBeenCalledWith(
296
296
  7,
297
297
  HEAD,
298
298
  MERGED_HEAD,
@@ -307,7 +307,7 @@ describe('WorkflowService.updateFromTarget: the approvals the merge did not touc
307
307
  const h = harness({ changedPaths: ['Sales/Deal.md', 'Sales/Terms.md'], carried: 1 });
308
308
  const result = await h.svc.updateFromTarget(WS, USER, 7);
309
309
  expect(result.updatedPaths).toEqual(['Sales/Deal.md', 'Sales/Terms.md']);
310
- expect(h.reviewWorkflow.carryApprovalsForward).toHaveBeenCalledWith(
310
+ expect(h.changeRequestReview.carryApprovalsForward).toHaveBeenCalledWith(
311
311
  7,
312
312
  HEAD,
313
313
  MERGED_HEAD,
@@ -323,7 +323,7 @@ describe('WorkflowService.updateFromTarget: the approvals the merge did not touc
323
323
  });
324
324
  const result = await h.svc.updateFromTarget(WS, USER, 7);
325
325
  expect(h.git.pathsChangedBetween).not.toHaveBeenCalled();
326
- expect(h.reviewWorkflow.carryApprovalsForward).not.toHaveBeenCalled();
326
+ expect(h.changeRequestReview.carryApprovalsForward).not.toHaveBeenCalled();
327
327
  expect(result.updatedPaths).toEqual([]);
328
328
  });
329
329
 
@@ -331,7 +331,7 @@ describe('WorkflowService.updateFromTarget: the approvals the merge did not touc
331
331
  const h = harness({ merge: { kind: 'conflicts', paths: ['Sales/Deal.md'] } });
332
332
  await h.svc.updateFromTarget(WS, USER, 7).catch(() => undefined);
333
333
  expect(h.git.pathsChangedBetween).not.toHaveBeenCalled();
334
- expect(h.reviewWorkflow.carryApprovalsForward).not.toHaveBeenCalled();
334
+ expect(h.changeRequestReview.carryApprovalsForward).not.toHaveBeenCalled();
335
335
  });
336
336
 
337
337
  it('carries them from the head the branch is actually ON, not the one the detail read', async () => {
@@ -348,7 +348,7 @@ describe('WorkflowService.updateFromTarget: the approvals the merge did not touc
348
348
  // Resolved after the pull and before the merge, from the branch itself.
349
349
  expect(h.git.resolvePrShas).toHaveBeenCalledWith(WS, 'current-company-state', 'alice/deal');
350
350
  expect(h.git.pathsChangedBetween).toHaveBeenCalledWith(WS, PUSHED, MERGED_HEAD);
351
- expect(h.reviewWorkflow.carryApprovalsForward).toHaveBeenCalledWith(7, PUSHED, MERGED_HEAD, [
351
+ expect(h.changeRequestReview.carryApprovalsForward).toHaveBeenCalledWith(7, PUSHED, MERGED_HEAD, [
352
352
  'Sales/Deal.md',
353
353
  ]);
354
354
  });
@@ -361,7 +361,7 @@ describe('WorkflowService.updateFromTarget: the approvals the merge did not touc
361
361
  const h = harness({ resolveError: new Error('no such ref'), carried: 1 });
362
362
  await h.svc.updateFromTarget(WS, USER, 7);
363
363
  expect(h.git.push).toHaveBeenCalledWith(WS, USER);
364
- expect(h.reviewWorkflow.carryApprovalsForward).not.toHaveBeenCalled();
364
+ expect(h.changeRequestReview.carryApprovalsForward).not.toHaveBeenCalled();
365
365
  });
366
366
 
367
367
  it('carries nothing when there is no head to compare at all', async () => {
@@ -380,7 +380,7 @@ describe('WorkflowService.updateFromTarget: the approvals the merge did not touc
380
380
  });
381
381
  expect(h.git.push).toHaveBeenCalledWith(WS, USER);
382
382
  expect(h.git.pathsChangedBetween).not.toHaveBeenCalled();
383
- expect(h.reviewWorkflow.carryApprovalsForward).not.toHaveBeenCalled();
383
+ expect(h.changeRequestReview.carryApprovalsForward).not.toHaveBeenCalled();
384
384
  });
385
385
 
386
386
  it('still returns the up-to-date request when the bookkeeping itself fails', async () => {
@@ -389,7 +389,7 @@ describe('WorkflowService.updateFromTarget: the approvals the merge did not touc
389
389
  const h = harness({ changedPathsError: new Error('git exploded') });
390
390
  const result = await h.svc.updateFromTarget(WS, USER, 7);
391
391
  expect(result).toMatchObject({ number: 7, behind: false });
392
- expect(h.reviewWorkflow.carryApprovalsForward).not.toHaveBeenCalled();
392
+ expect(h.changeRequestReview.carryApprovalsForward).not.toHaveBeenCalled();
393
393
  // Which files moved is unknown, so every file the request had is named:
394
394
  // slow beats a dialog that goes on presenting pre-merge text as current.
395
395
  expect(result.updatedPaths).toEqual(['Sales/Deal.md']);
@@ -154,7 +154,7 @@ const workspaceService = {
154
154
 
155
155
  /** The workspace each listing was asked to read in, in order. */
156
156
  let listedIn: Array<string | undefined> = [];
157
- const workflowService = {
157
+ const versionControlService = {
158
158
  listChangeRequestsByState: async (states: ChangeRequestState[], opts?: { workspaceId?: string }) => {
159
159
  calls.push(['listChangeRequestsByState', [...states].sort()]);
160
160
  listedIn.push(opts?.workspaceId);
@@ -205,7 +205,7 @@ async function start(): Promise<string> {
205
205
  const resolve = createToolContextResolver({
206
206
  authService,
207
207
  workspaceService,
208
- workflowService,
208
+ versionControlService,
209
209
  events,
210
210
  kbDirName: 'knowledge-base',
211
211
  creatorAccess: {
@@ -299,7 +299,7 @@ describe('the four read tools', () => {
299
299
  }
300
300
  });
301
301
 
302
- it('call only reads on the workflow service', async () => {
302
+ it('call only reads on the version-control service', async () => {
303
303
  const base = await start();
304
304
  summaries = [summary()];
305
305
  details.set(12, detail());
@@ -1,27 +1,27 @@
1
1
  import type { Server as HttpServer } from 'node:http';
2
2
  import express from 'express';
3
3
  import { afterEach, beforeEach, describe, expect, it } from 'vitest';
4
- import type { IWorkflowService } from '@bevel-software/platform-shared';
4
+ import type { IVersionControlService } from '@bevel-software/platform-shared';
5
5
  import { testKbContext } from '../../../../__tests__/kb-context.js';
6
6
  import { ToolRegistry } from '../../../tool-registry/tool-registry.js';
7
7
  import { InternalTokenService } from '../../../tool-auth/internal-token.service.js';
8
8
  import { createToolAuthMiddleware } from '../../../tool-auth/tool-auth.middleware.js';
9
9
  import { createToolContextResolver } from '../../../tool-helpers/tool-context.js';
10
10
  import { createToolHandlerFactory } from '../../../tool-helpers/tool-handler.js';
11
- import { WorkflowDomainError } from '../../../../shared/domain-errors.js';
11
+ import { VersionControlDomainError } from '../../../../shared/domain-errors.js';
12
12
  import type { IAccessControl } from '../../../access/access-control.interface.js';
13
13
  import type { AuthService } from '../../../auth/auth.service.js';
14
14
  import type { WorkspaceService } from '../../../workspace/workspace.service.js';
15
- import type { WorkflowEventBus } from '../../event-bus.js';
16
- import { createWorkflowRoutes } from '../../workflow.routes.js';
17
- import { registerWorkflowTools } from '../workflow.tools.js';
15
+ import type { VersionControlEventBus } from '../../event-bus.js';
16
+ import { createVersionControlRoutes } from '../../version-control.routes.js';
17
+ import { registerVersionControlTools } from '../version-control.tools.js';
18
18
 
19
19
  /**
20
20
  * The app's `PATCH /api/workflow/change-requests/:number` and the agent's
21
21
  * `update_change_request` are one verb: both reach the SAME service method
22
22
  * with the same caller and the same fields, and every refusal it makes reaches
23
23
  * both callers with the same status and the same words. The rule itself is
24
- * pinned in `workflow.service.update-change-request.test.ts`; this pins that
24
+ * pinned in `version-control.service.update-change-request.test.ts`; this pins that
25
25
  * neither surface narrows, widens or rewords it.
26
26
  *
27
27
  * One answer differs, and on purpose: a request the caller may not READ is
@@ -46,19 +46,19 @@ const updated = {
46
46
  touchedNodePaths: ['Docs/a.md'],
47
47
  };
48
48
 
49
- const workflowService = {
49
+ const versionControlService = {
50
50
  updateChangeRequest: async (number: number, user: { id: string; email: string }, input: unknown) => {
51
51
  calls.push(['updateChangeRequest', number, user.id, input]);
52
52
  return outcome();
53
53
  },
54
- } as unknown as IWorkflowService;
54
+ } as unknown as IVersionControlService;
55
55
 
56
56
  const authService = { getUserById: async () => CALLER } as unknown as AuthService;
57
57
  const workspaceService = {
58
58
  getOrCreateForUser: async () => ({ id: 'ws' }),
59
59
  findAnyWorkspaceId: async () => 'ws',
60
60
  } as unknown as WorkspaceService;
61
- const events = { emit: () => ({}) } as unknown as WorkflowEventBus;
61
+ const events = { emit: () => ({}) } as unknown as VersionControlEventBus;
62
62
  const internalToken = new InternalTokenService({ secret: 's' });
63
63
 
64
64
  let httpServer: HttpServer | undefined;
@@ -76,8 +76,8 @@ async function start(): Promise<string> {
76
76
  next();
77
77
  });
78
78
  appRouter.use(
79
- createWorkflowRoutes(
80
- workflowService,
79
+ createVersionControlRoutes(
80
+ versionControlService,
81
81
  workspaceService,
82
82
  authService,
83
83
  events,
@@ -96,12 +96,12 @@ async function start(): Promise<string> {
96
96
  const resolve = createToolContextResolver({
97
97
  authService,
98
98
  workspaceService,
99
- workflowService,
99
+ versionControlService,
100
100
  events,
101
101
  kbDirName: 'knowledge-base',
102
102
  creatorAccess: { planForCreate: async () => null, grantInExtractedFile: async () => null, noteAccessFileWritten: () => {} },
103
103
  } as never);
104
- registerWorkflowTools(registry, toolRouter, toolAuth, createToolHandlerFactory(resolve), testKbContext(), async (_ctx, number) =>
104
+ registerVersionControlTools(registry, toolRouter, toolAuth, createToolHandlerFactory(resolve), testKbContext(), async (_ctx, number) =>
105
105
  maySee(number),
106
106
  );
107
107
 
@@ -186,7 +186,7 @@ describe('update_change_request ⇔ PATCH /workflow/change-requests/:number', ()
186
186
  [
187
187
  'neither the author nor someone who may merge it (403)',
188
188
  () => {
189
- throw new WorkflowDomainError(
189
+ throw new VersionControlDomainError(
190
190
  "Only the request's author, an admin, or someone who may approve every file it changes can edit its title and description.",
191
191
  403,
192
192
  );
@@ -195,7 +195,7 @@ describe('update_change_request ⇔ PATCH /workflow/change-requests/:number', ()
195
195
  [
196
196
  'a merged request (409)',
197
197
  () => {
198
- throw new WorkflowDomainError(
198
+ throw new VersionControlDomainError(
199
199
  'This change request has already been applied; its title and description can no longer be changed.',
200
200
  409,
201
201
  );
@@ -204,7 +204,7 @@ describe('update_change_request ⇔ PATCH /workflow/change-requests/:number', ()
204
204
  [
205
205
  'a closed request (409)',
206
206
  () => {
207
- throw new WorkflowDomainError(
207
+ throw new VersionControlDomainError(
208
208
  'This change request is closed; its title and description can no longer be changed.',
209
209
  409,
210
210
  );
@@ -9,9 +9,9 @@ import { createToolContextResolver } from '../../../tool-helpers/tool-context.js
9
9
  import { createToolHandlerFactory } from '../../../tool-helpers/tool-handler.js';
10
10
  import { createManualRoutes } from '../../../tool-registry/manual.routes.js';
11
11
  import { ToolError } from '../../../tool-helpers/index.js';
12
- import { WorkflowHooks } from '../../workflow-hooks.js';
12
+ import { VersionControlHooks } from '../../version-control-hooks.js';
13
13
  import { ToolDescriptionNotes, type AgentAccessGate } from '../../../workspace/index.js';
14
- import { registerWorkflowTools } from '../workflow.tools.js';
14
+ import { registerVersionControlTools } from '../version-control.tools.js';
15
15
  import {
16
16
  BranchAuthorshipError,
17
17
  BranchDeleteBlockedError,
@@ -101,7 +101,7 @@ const workspaceService = {
101
101
  // Repo-global tools resolve any existing clone instead of cloning a named branch.
102
102
  findAnyWorkspaceId: async () => 'existing-ws',
103
103
  } as never;
104
- const workflowService = {
104
+ const versionControlService = {
105
105
  listBranches: async (ws: string) => {
106
106
  calls.push(['listBranches', ws]);
107
107
  // A real listing fetches first; mark when that fetch has landed.
@@ -296,7 +296,7 @@ const accessControl = {
296
296
  * `Failing/` and records every read it is told of (with the session it was
297
297
  * told for); the write hook refuses `Locked/`.
298
298
  */
299
- const agentHooks = new WorkflowHooks();
299
+ const agentHooks = new VersionControlHooks();
300
300
  agentHooks.onAgentRead(async (op) => {
301
301
  calls.push(['agentRead', op.branch, op.wsPath, op.sessionId]);
302
302
  if (op.wsPath?.includes('Hooked/')) throw new ToolError('Not in this conversation.', 403);
@@ -317,12 +317,12 @@ async function start(): Promise<string> {
317
317
  const registry = new ToolRegistry();
318
318
  registryRef = registry;
319
319
  const toolAuth = createToolAuthMiddleware(externalApiKeyService, internalToken);
320
- const resolve = createToolContextResolver({ authService, workspaceService, workflowService, events, kbDirName: 'knowledge-base', creatorAccess: { planForCreate: async () => null, grantInExtractedFile: async () => null, noteAccessFileWritten: () => {} } });
320
+ const resolve = createToolContextResolver({ authService, workspaceService, versionControlService, events, kbDirName: 'knowledge-base', creatorAccess: { planForCreate: async () => null, grantInExtractedFile: async () => null, noteAccessFileWritten: () => {} } });
321
321
  const toolHandler = createToolHandlerFactory(resolve);
322
322
 
323
323
  const router = express.Router();
324
324
  // Request #13 is one the caller may not see.
325
- registerWorkflowTools(
325
+ registerVersionControlTools(
326
326
  registry,
327
327
  router,
328
328
  toolAuth,
@@ -361,7 +361,7 @@ afterEach(async () => {
361
361
 
362
362
  const writeTok = () => internalToken.mint({ userId: 'user-A' });
363
363
 
364
- describe('registerWorkflowTools', () => {
364
+ describe('registerVersionControlTools', () => {
365
365
  it('commit_change commits as the context user + workspace', async () => {
366
366
  const base = await start();
367
367
  const res = await post(`${base}/api/agent/tools/commit_change`, writeTok(), { summary: 'fix typo', branch: WS });
@@ -878,7 +878,7 @@ describe('registerWorkflowTools', () => {
878
878
  error: '`branch` is required: pass the branch (draft) you are working on.',
879
879
  });
880
880
  }
881
- // No workflow call was made at all — least of all one naming a workspace
881
+ // No version-control call was made at all — least of all one naming a workspace
882
882
  // id built out of the missing value, or a branch forked from it.
883
883
  expect(calls).toEqual([]);
884
884
  });
@@ -988,7 +988,7 @@ describe('registerWorkflowTools', () => {
988
988
  expect((await post(`${base}/api/agent/tools/switch_branch`, 'bevel_key', { branch: 'main' })).status).toBe(403);
989
989
  });
990
990
 
991
- it('registers workflow tools into the right catalogs (switch_branch internal-only)', async () => {
991
+ it('registers version-control tools into the right catalogs (switch_branch internal-only)', async () => {
992
992
  const base = await start();
993
993
  const fetchManual = async (which: 'utcp' | 'internal/utcp') =>
994
994
  ((await (await fetch(`${base}/api/agent/${which}`, { headers: { authorization: `Bearer ${writeTok()}` } })).json()) as { tools: { name: string }[] }).tools
@@ -274,7 +274,7 @@ export function registerChangeRequestReadTools(
274
274
  // list cannot hide a request the detail would serve — or the reverse —
275
275
  // for want of a workspace the other path fell back to.
276
276
  const workspaceId = await repoGlobalWorkspaceId(ctx);
277
- const all = await ctx.workflowService.listChangeRequestsByState(statesFor(state), { workspaceId });
277
+ const all = await ctx.versionControlService.listChangeRequestsByState(statesFor(state), { workspaceId });
278
278
  const matching = all.filter(
279
279
  (cr) =>
280
280
  (head === undefined || cr.branch === head) &&
@@ -612,7 +612,7 @@ export function changeRequestScope(
612
612
  opts: { patches: boolean },
613
613
  ): Promise<ScopedDetail> => {
614
614
  const workspaceId = await repoGlobalWorkspaceId(ctx);
615
- const detail = await ctx.workflowService.getChangeRequestDetail(number, {
615
+ const detail = await ctx.versionControlService.getChangeRequestDetail(number, {
616
616
  workspaceId,
617
617
  viewerEmail: ctx.user.email,
618
618
  patches: opts.patches,