@bevel-software/platform-core-backend 0.21.0 → 0.23.0

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