@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
@@ -51,6 +51,17 @@ export interface SettingDef {
51
51
  * restart for a change that never happened.
52
52
  */
53
53
  unsetMeans?: string;
54
+ /**
55
+ * Written by the deployment itself, at the end of a flow that PROVED the
56
+ * value, and never taken from a save. What a GitHub App was given when it
57
+ * was registered, and which installation of it the admin was shown to
58
+ * hold, are facts somebody established; accepted from a form they would
59
+ * be claims, and the claim "installation 42 is mine" is one that reaches
60
+ * another organisation's repositories. A save that names one is refused,
61
+ * the setup screen is not told about it, and its value is read like any
62
+ * other's (the environment first), so an operator can still pin it.
63
+ */
64
+ internal?: boolean;
54
65
  }
55
66
  /**
56
67
  * The one rule for what a KB remote may look like, shared by the setting below
@@ -228,7 +239,9 @@ export declare class DeploymentSettingsService {
228
239
  * leaves out the folder names and the branch model when the save that
229
240
  * completes setup has just applied them, and reports only what remains.
230
241
  */
231
- save(entries: Record<string, string>, updatedBy: string | null): Promise<{
242
+ save(entries: Record<string, string>, updatedBy: string | null,
243
+ /** Set by {@link record} alone: the batch is the deployment's own, and may name internal settings. */
244
+ by?: 'admin' | 'deployment'): Promise<{
232
245
  restartRequired: boolean;
233
246
  restartKeys: string[];
234
247
  }>;
@@ -240,6 +253,14 @@ export declare class DeploymentSettingsService {
240
253
  * before letting the save happen.
241
254
  */
242
255
  resolveAfter(entries: Record<string, string>): (key: string) => string;
256
+ /**
257
+ * Store what the DEPLOYMENT established, internal settings included: the
258
+ * end of a flow that proved each value (see `SettingDef.internal`). The
259
+ * same validation, the same encryption, the same refusal of a setting the
260
+ * environment pins. Never reachable from a request body: the setup routes
261
+ * call {@link save}.
262
+ */
263
+ record(entries: Record<string, string>, updatedBy: string | null): Promise<void>;
243
264
  /** Validate a batch and return the writes (and the clears) it amounts to; throws on any problem. */
244
265
  private plan;
245
266
  /** Drop stored rows for settings this build no longer defines. */
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-settings.service.d.ts","sourceRoot":"","sources":["../../../src/modules/settings/deployment-settings.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployment-settings.service.d.ts","sourceRoot":"","sources":["../../../src/modules/settings/deployment-settings.service.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,10 @@ import { deploymentSettings } from '../database/core-schema.js';
5
5
  import { DEFAULT_KB_LAYOUT, validateAgentsFileName, validateBranchModel, validateKbLayout, validateKbRootName, } from '@bevel-software/platform-shared';
6
6
  import { createHmac } from 'node:crypto';
7
7
  import { TokenCrypto } from '../../shared/token-crypto.js';
8
- import { assertKbDirNameFree } from '../kb-fs/repo-path.js';
8
+ import { assertKbDirNameFree, hasControlCharacter } from '../kb-fs/repo-path.js';
9
9
  import { parseRetentionWindow } from '../audit/audit.contract.js';
10
10
  import { normalizeIssuerUrl } from './oidc-check.js';
11
+ import { GIT_MODES, isGitMode } from './repository-source.js';
11
12
  /**
12
13
  * The one rule for what a KB remote may look like, shared by the setting below
13
14
  * and the connection test — which must apply it BEFORE handing the value to
@@ -37,6 +38,25 @@ export const validateHttpsRemote = (value) => {
37
38
  * The core catalogue. Order is the order the setup screen renders them in.
38
39
  */
39
40
  export const CORE_SETTINGS = [
41
+ {
42
+ /**
43
+ * Which way the deployment is given its repository (see
44
+ * `RepositorySource`). Unset on a deployment configured before there was
45
+ * a choice, which is read as `token` when it has an address or a token,
46
+ * and as nothing chosen when it has neither.
47
+ *
48
+ * Restart-to-apply on a deployment that is running: its working copies
49
+ * were cloned from the repository it had, and they are brought into line
50
+ * with another one by the startup phase, at a moment when nobody is
51
+ * using them. The save that completes first-run setup runs that phase
52
+ * itself, and owes no restart.
53
+ */
54
+ key: 'gitMode',
55
+ envVar: 'GIT_MODE',
56
+ section: 'knowledge-base',
57
+ validate: (v) => (isGitMode(v) ? null : `Choose one of: ${GIT_MODES.join(', ')}.`),
58
+ restartToApply: true,
59
+ },
40
60
  {
41
61
  key: 'kbRepoUrl',
42
62
  envVar: 'KB_REPO_URL',
@@ -58,14 +78,70 @@ export const CORE_SETTINGS = [
58
78
  // is not a plain token is rejected rather than escaped.
59
79
  validate: (v) => /^[A-Za-z0-9._-]+$/.test(v) ? null : 'Use only letters, digits, dot, underscore or hyphen.',
60
80
  },
81
+ /**
82
+ * A repository on GitHub, reached through a GitHub App (see
83
+ * `modules/github-app/`).
84
+ *
85
+ * THE REPOSITORY is the admin's to choose, among those the installation
86
+ * reaches, and is saved like any setting: a name the installation does not
87
+ * reach fails the connection check, since the only token presented to
88
+ * GitHub is the installation's.
89
+ *
90
+ * EVERYTHING ELSE is internal: the app's identity and keys, as GitHub
91
+ * issued them when the app was registered, and the installation, as
92
+ * GitHub confirmed the admin holds it. Each has a variable, so whoever
93
+ * operates the deployment can supply an app they registered themselves,
94
+ * and a host serving many deployments can supply one app for all of them.
95
+ */
96
+ {
97
+ key: 'githubRepository',
98
+ envVar: 'GITHUB_APP_REPOSITORY',
99
+ section: 'knowledge-base',
100
+ validate: (v) => /^[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\/[A-Za-z0-9._-]+$/.test(v) && !v.endsWith('.git')
101
+ ? null
102
+ : 'Name the repository as owner/name.',
103
+ },
104
+ { key: 'githubAppId', envVar: 'GITHUB_APP_ID', section: 'knowledge-base', internal: true, validate: (v) => (/^\d+$/.test(v) ? null : 'The app id is a number.') },
105
+ { key: 'githubAppSlug', envVar: 'GITHUB_APP_SLUG', section: 'knowledge-base', internal: true, validate: (v) => (/^[A-Za-z0-9-]+$/.test(v) ? null : 'The app slug is letters, digits and hyphens.') },
106
+ { key: 'githubAppPrivateKey', envVar: 'GITHUB_APP_PRIVATE_KEY', section: 'knowledge-base', internal: true, secret: true },
107
+ { key: 'githubAppClientId', envVar: 'GITHUB_APP_CLIENT_ID', section: 'knowledge-base', internal: true },
108
+ { key: 'githubAppClientSecret', envVar: 'GITHUB_APP_CLIENT_SECRET', section: 'knowledge-base', internal: true, secret: true },
109
+ {
110
+ /**
111
+ * Put in front of the state every round trip to GitHub carries, by a
112
+ * host that serves several deployments behind ONE app: GitHub sends the
113
+ * browser back to the one address registered for the app, and the host
114
+ * reads this to know which deployment to hand it to. Never stored.
115
+ */
116
+ key: 'githubAppStateTag',
117
+ envVar: 'GITHUB_APP_STATE_TAG',
118
+ section: 'knowledge-base',
119
+ internal: true,
120
+ validate: (v) => (/^[a-z0-9-]{1,63}$/.test(v) ? null : 'Lowercase letters, digits and hyphens.'),
121
+ },
122
+ { key: 'githubInstallationId', envVar: 'GITHUB_APP_INSTALLATION_ID', section: 'knowledge-base', internal: true, validate: (v) => (/^\d+$/.test(v) ? null : 'The installation id is a number.') },
123
+ /** Whose account the installation is on, as GitHub names it: shown, never trusted. */
124
+ { key: 'githubInstallationAccount', section: 'knowledge-base', internal: true },
125
+ /**
126
+ * The repositories the person who connected the installation could PUSH
127
+ * to with their own GitHub account, one `owner/name` a line, as GitHub
128
+ * listed them when they connected. The deployment may be pointed at one
129
+ * of these and at nothing else the installation reaches.
130
+ */
131
+ { key: 'githubRepositoriesPermitted', section: 'knowledge-base', internal: true },
61
132
  {
62
133
  key: 'kbDirName',
63
134
  envVar: 'KB_DIR_NAME',
64
135
  section: 'knowledge-base',
65
136
  // Joined with workspace paths, so a separator or `..` would let it escape
66
- // the workspace directory.
137
+ // the workspace directory — and a control character would be PREFIXED onto
138
+ // every path, where a line break is a separator to git's `cat-file
139
+ // --batch` and would make the normaliser emit a path it refuses from a
140
+ // caller (see `hasControlCharacter`).
67
141
  validate: (v) => v && v !== '.' && v !== '..' && !v.includes('/') && !v.includes('\\')
68
- ? null
142
+ ? hasControlCharacter(v)
143
+ ? 'Use a single folder name — no line breaks or other invisible characters.'
144
+ : null
69
145
  : 'Use a single folder name — no slashes.',
70
146
  // Copied into a dozen services when they are constructed. A running server
71
147
  // keeps the name it started with.
@@ -468,7 +544,7 @@ export class DeploymentSettingsService {
468
544
  * replace it, which is all anyone needs to finish setup.
469
545
  */
470
546
  describe() {
471
- return this.definitions.map((def) => {
547
+ return this.definitions.filter((def) => !def.internal).map((def) => {
472
548
  const source = this.sourceOf(def.key);
473
549
  const base = {
474
550
  key: def.key,
@@ -497,8 +573,10 @@ export class DeploymentSettingsService {
497
573
  * leaves out the folder names and the branch model when the save that
498
574
  * completes setup has just applied them, and reports only what remains.
499
575
  */
500
- async save(entries, updatedBy) {
501
- const { toWrite, toClear } = this.plan(entries);
576
+ async save(entries, updatedBy,
577
+ /** Set by {@link record} alone: the batch is the deployment's own, and may name internal settings. */
578
+ by = 'admin') {
579
+ const { toWrite, toClear } = this.plan(entries, by);
502
580
  /** The settings this save changed that a running server cannot pick up. */
503
581
  const restartKeys = [];
504
582
  // A blanked blank-means-default setting: its row goes, and its readers
@@ -540,8 +618,18 @@ export class DeploymentSettingsService {
540
618
  const { toWrite, toClear } = this.plan(entries);
541
619
  return (key) => toClear.includes(key) ? '' : (toWrite.find((w) => w.key === key)?.value ?? this.resolve(key));
542
620
  }
621
+ /**
622
+ * Store what the DEPLOYMENT established, internal settings included: the
623
+ * end of a flow that proved each value (see `SettingDef.internal`). The
624
+ * same validation, the same encryption, the same refusal of a setting the
625
+ * environment pins. Never reachable from a request body: the setup routes
626
+ * call {@link save}.
627
+ */
628
+ async record(entries, updatedBy) {
629
+ await this.save(entries, updatedBy, 'deployment');
630
+ }
543
631
  /** Validate a batch and return the writes (and the clears) it amounts to; throws on any problem. */
544
- plan(entries) {
632
+ plan(entries, by = 'admin') {
545
633
  const problems = {};
546
634
  const toWrite = [];
547
635
  const toClear = [];
@@ -551,6 +639,12 @@ export class DeploymentSettingsService {
551
639
  problems[key] = 'Unknown setting.';
552
640
  continue;
553
641
  }
642
+ if (def.internal && by !== 'deployment') {
643
+ // Said the way an unknown setting is: what the deployment keeps for
644
+ // itself is not the form's to name, or to learn the names of.
645
+ problems[key] = 'Unknown setting.';
646
+ continue;
647
+ }
554
648
  if (this.sourceOf(key) === 'env') {
555
649
  problems[key] = `Set by the ${def.envVar} environment variable — change it there.`;
556
650
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-settings.service.js","sourceRoot":"","sources":["../../../src/modules/settings/deployment-settings.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployment-settings.service.js","sourceRoot":"","sources":["../../../src/modules/settings/deployment-settings.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { IGitRunner } from '../../shared/git.contract.js';
2
+ /** The folder the managed repository is kept in, under the root it is given. */
3
+ export declare const MANAGED_REPOSITORY_DIR = "knowledge-base.git";
4
+ /** The branch a managed repository starts on when the deployment names none. */
5
+ export declare const MANAGED_DEFAULT_BRANCH = "main";
6
+ /**
7
+ * The repository a deployment keeps FOR ITSELF, when its admin chose not to
8
+ * bring one: a bare git repository on the deployment's own disk.
9
+ *
10
+ * Nothing else about the deployment changes. Working copies are cloned from
11
+ * it, pushed to it and fetched from it exactly as they are from a
12
+ * repository on a host; it happens to be reached by a path, and to need no
13
+ * credential. An empty one is seeded by the startup phase like any empty
14
+ * remote.
15
+ *
16
+ * WHERE IT LIVES IS THE WHOLE DECISION. It is the only copy of the
17
+ * knowledge base that is not a working copy, so it has to be somewhere that
18
+ * survives the container and that nothing tidies up:
19
+ *
20
+ * - not under the workspaces root, where the workspace service's orphan
21
+ * sweep removes every folder that is not a known branch's;
22
+ * - not in a new folder beside it, which every shipped compose file would
23
+ * have to grow a volume for, and a deployment started from an older file
24
+ * would lose on its next redeploy without a word.
25
+ *
26
+ * The composition root puts it under the BACKUPS root: a volume of its own
27
+ * in every compose file that has ever shipped, and one nothing sweeps.
28
+ */
29
+ export declare class ManagedRepository {
30
+ private readonly root;
31
+ /** The repository's folder: what git is given as the remote. */
32
+ readonly path: string;
33
+ constructor(root: string);
34
+ /** Whether the repository is there. A folder that is not a repository does not count. */
35
+ exists(): Promise<boolean>;
36
+ /**
37
+ * Make sure the repository exists, creating it empty when it does not.
38
+ * One that exists is left exactly as it is: this never re-initialises,
39
+ * and never touches a ref.
40
+ */
41
+ ensure(runner: IGitRunner, initialBranch?: string): Promise<void>;
42
+ }
43
+ //# sourceMappingURL=managed-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-repository.d.ts","sourceRoot":"","sources":["../../../src/modules/settings/managed-repository.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,gFAAgF;AAChF,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAE3D,gFAAgF;AAChF,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,iBAAiB;IAIhB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEO,IAAI,EAAE,MAAM;IAIzC,yFAAyF;IACnF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAOhC;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,GAAE,MAA+B,GAAG,OAAO,CAAC,IAAI,CAAC;CAahG"}
@@ -0,0 +1,60 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ /** The folder the managed repository is kept in, under the root it is given. */
4
+ export const MANAGED_REPOSITORY_DIR = 'knowledge-base.git';
5
+ /** The branch a managed repository starts on when the deployment names none. */
6
+ export const MANAGED_DEFAULT_BRANCH = 'main';
7
+ /**
8
+ * The repository a deployment keeps FOR ITSELF, when its admin chose not to
9
+ * bring one: a bare git repository on the deployment's own disk.
10
+ *
11
+ * Nothing else about the deployment changes. Working copies are cloned from
12
+ * it, pushed to it and fetched from it exactly as they are from a
13
+ * repository on a host; it happens to be reached by a path, and to need no
14
+ * credential. An empty one is seeded by the startup phase like any empty
15
+ * remote.
16
+ *
17
+ * WHERE IT LIVES IS THE WHOLE DECISION. It is the only copy of the
18
+ * knowledge base that is not a working copy, so it has to be somewhere that
19
+ * survives the container and that nothing tidies up:
20
+ *
21
+ * - not under the workspaces root, where the workspace service's orphan
22
+ * sweep removes every folder that is not a known branch's;
23
+ * - not in a new folder beside it, which every shipped compose file would
24
+ * have to grow a volume for, and a deployment started from an older file
25
+ * would lose on its next redeploy without a word.
26
+ *
27
+ * The composition root puts it under the BACKUPS root: a volume of its own
28
+ * in every compose file that has ever shipped, and one nothing sweeps.
29
+ */
30
+ export class ManagedRepository {
31
+ root;
32
+ /** The repository's folder: what git is given as the remote. */
33
+ path;
34
+ constructor(root) {
35
+ this.root = root;
36
+ this.path = path.join(root, MANAGED_REPOSITORY_DIR);
37
+ }
38
+ /** Whether the repository is there. A folder that is not a repository does not count. */
39
+ async exists() {
40
+ return fs.access(path.join(this.path, 'HEAD')).then(() => true, () => false);
41
+ }
42
+ /**
43
+ * Make sure the repository exists, creating it empty when it does not.
44
+ * One that exists is left exactly as it is: this never re-initialises,
45
+ * and never touches a ref.
46
+ */
47
+ async ensure(runner, initialBranch = MANAGED_DEFAULT_BRANCH) {
48
+ if (await this.exists())
49
+ return;
50
+ await fs.mkdir(this.root, { recursive: true });
51
+ // A folder that is there without being a repository is somebody's, and
52
+ // initialising over it would mix a repository into their files.
53
+ const entries = await fs.readdir(this.path).catch(() => null);
54
+ if (entries && entries.length > 0) {
55
+ throw new Error(`${this.path} exists and is not a git repository. Move it away, or empty it, before choosing a managed repository.`);
56
+ }
57
+ await runner.run(this.root, ['init', '--bare', `--initial-branch=${initialBranch}`, this.path]);
58
+ }
59
+ }
60
+ //# sourceMappingURL=managed-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-repository.js","sourceRoot":"","sources":["../../../src/modules/settings/managed-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,gFAAgF;AAChF,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAE3D,gFAAgF;AAChF,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,iBAAiB;IAIC;IAH7B,gEAAgE;IACvD,IAAI,CAAS;IAEtB,YAA6B,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IACtD,CAAC;IAED,yFAAyF;IACzF,KAAK,CAAC,MAAM;QACV,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CACjD,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,MAAkB,EAAE,gBAAwB,sBAAsB;QAC7E,IAAI,MAAM,IAAI,CAAC,MAAM,EAAE;YAAE,OAAO;QAChC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,uEAAuE;QACvE,gEAAgE;QAChE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,IAAI,uGAAuG,CACpH,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,oBAAoB,aAAa,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClG,CAAC;CACF"}
@@ -0,0 +1,128 @@
1
+ import { type GitCredentials } from '../../shared/git.contract.js';
2
+ import type { ManagedRepository } from './managed-repository.js';
3
+ /**
4
+ * The ways a deployment can be given the repository its knowledge base
5
+ * lives in, in the order the setup screen offers them.
6
+ *
7
+ * - `managed`: the deployment keeps the repository itself.
8
+ * - `github-app`: a repository on GitHub, reached through a GitHub App the
9
+ * admin installed on it.
10
+ * - `token`: any git host, by its address and an access token.
11
+ */
12
+ export declare const GIT_MODES: readonly ["managed", "github-app", "token"];
13
+ export type GitMode = (typeof GIT_MODES)[number];
14
+ export declare function isGitMode(value: unknown): value is GitMode;
15
+ /** Reads one setting as it is in effect, or as it would be after a save. */
16
+ export type SettingReader = (key: string) => string;
17
+ /**
18
+ * A repository reached through a GitHub App: which one, and the short-lived
19
+ * token the app is given for it. Implemented by the GitHub App module; the
20
+ * source only asks.
21
+ */
22
+ export interface GitHubAppRepository {
23
+ /** `https://github.com/<owner>/<name>.git`, or empty while none is chosen. */
24
+ url(read: SettingReader): string;
25
+ /** The installation token in hand, or null when there is none to give. */
26
+ token(): string | null;
27
+ /**
28
+ * Make sure {@link token} answers with one that is still good. `asked`
29
+ * is for a caller waiting on the answer itself, who is told a failure.
30
+ */
31
+ prepare(opts?: {
32
+ asked?: boolean;
33
+ }): Promise<void>;
34
+ /** Whether the deployment may be pointed at this repository (`owner/name`). */
35
+ permits(repository: string, read: SettingReader): boolean;
36
+ /** Whether the app, its installation and a repository are all there. */
37
+ answered(read: SettingReader): boolean;
38
+ }
39
+ export interface RepositorySourceOptions {
40
+ /** The deployment's settings, as they are in effect. */
41
+ read: SettingReader;
42
+ /**
43
+ * What the environment gives the token mode beyond the settings
44
+ * catalogue: the legacy spellings of the token variable, and the username
45
+ * a deployment configured there.
46
+ */
47
+ fallback?: {
48
+ username?: string;
49
+ token?: string;
50
+ };
51
+ managed: ManagedRepository;
52
+ githubApp?: GitHubAppRepository;
53
+ }
54
+ /**
55
+ * WHERE THE KNOWLEDGE BASE'S REPOSITORY IS, AND WHAT GIT PRESENTS TO IT —
56
+ * the one place that knows there is more than one answer.
57
+ *
58
+ * Everything that runs git asks for two things: an address to clone from,
59
+ * and a credential. Both used to be read straight from two settings, which
60
+ * is one way of having a repository. With three ways, each reader deciding
61
+ * for itself would be three places to disagree, so they all ask here, and
62
+ * what they get back is the same two things as before.
63
+ *
64
+ * TWO MODES, AND THEY ARE NOT ALWAYS THE SAME ONE.
65
+ *
66
+ * - The mode IN EFFECT is the one this process is running on. Its working
67
+ * copies are clones of that mode's repository, and every address and
68
+ * credential this class hands out is that mode's. It is taken when the
69
+ * source is built and changes only in {@link takeEffect}.
70
+ * - The mode CHOSEN is what the settings say. A save changes it at once.
71
+ *
72
+ * They differ between the save that moves a serving deployment and the
73
+ * restart that save owes. Reading the mode live would move the process the
74
+ * moment the setting was stored: the new mode's credential presented to the
75
+ * old mode's repository, which every working copy still points at, and new
76
+ * branches cloned from a repository the startup phase has not prepared. So
77
+ * the process stays where it is until it is started again, which is what
78
+ * the setup screen tells the admin.
79
+ *
80
+ * WITHIN a mode the values are read live, as they always were: a rotated
81
+ * token is the one the next push carries.
82
+ *
83
+ * THE MODE IS INFERRED WHEN NOBODY CHOSE ONE. A deployment configured before
84
+ * there was a choice has an address and a token and no mode; it is in
85
+ * `token` mode, because that is what it has. One with nothing configured has
86
+ * no mode, and the setup screen offers the first.
87
+ */
88
+ export declare class RepositorySource {
89
+ private readonly opts;
90
+ /** What git authenticates with, read on every call. */
91
+ readonly credentials: GitCredentials;
92
+ private inEffect;
93
+ constructor(opts: RepositorySourceOptions);
94
+ /**
95
+ * Without a reader, the mode IN EFFECT. With one, the mode a save of that
96
+ * reader's values would CHOOSE: the answer validation wants, about values
97
+ * that are not stored yet. Null: nothing is configured.
98
+ */
99
+ mode(read?: SettingReader): GitMode | null;
100
+ /** The mode the settings say, which a restart would put in effect. */
101
+ chosen(read?: SettingReader): GitMode | null;
102
+ /**
103
+ * Put the mode chosen in effect. Called where nothing is using the mode
104
+ * that was: by a save made before the deployment was serving, which the
105
+ * startup phase follows. A process that is serving is never moved; it is
106
+ * restarted, and built on the mode chosen.
107
+ */
108
+ takeEffect(): void;
109
+ /** The address git clones from and pushes to. Empty while there is none. Asked as {@link mode} is. */
110
+ url(read?: SettingReader): string;
111
+ /**
112
+ * Whether the repository half of setup is answered: there is somewhere to
113
+ * clone from and, where one is needed, something to present. Asked as
114
+ * {@link mode} is.
115
+ */
116
+ answered(read?: SettingReader): boolean;
117
+ private username;
118
+ /**
119
+ * One mode's credential is never presented to another mode's repository:
120
+ * a deployment that moved to a managed repository still has its old
121
+ * token stored, and a path on its own disk has no use for it. The mode is
122
+ * the one IN EFFECT, because that is the repository git is talking to.
123
+ */
124
+ private token;
125
+ private prepare;
126
+ private tokenIn;
127
+ }
128
+ //# sourceMappingURL=repository-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-source.d.ts","sourceRoot":"","sources":["../../../src/modules/settings/repository-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,6CAA8C,CAAC;AACrE,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;AAED,4EAA4E;AAC5E,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;AAEpD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,8EAA8E;IAC9E,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAAC;IACjC,0EAA0E;IAC1E,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,+EAA+E;IAC/E,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IAC1D,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,uBAAuB;IACtC,wDAAwD;IACxD,IAAI,EAAE,aAAa,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,gBAAgB;IAKf,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJjC,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAiB;gBAEJ,IAAI,EAAE,uBAAuB;IAS1D;;;;OAIG;IACH,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,GAAG,IAAI;IAI1C,sEAAsE;IACtE,MAAM,CAAC,IAAI,GAAE,aAA8B,GAAG,OAAO,GAAG,IAAI;IAM5D;;;;;OAKG;IACH,UAAU,IAAI,IAAI;IAIlB,sGAAsG;IACtG,GAAG,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAcjC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO;IAcvC,OAAO,CAAC,QAAQ;IAMhB;;;;;OAKG;IACH,OAAO,CAAC,KAAK;YAWC,OAAO;IAIrB,OAAO,CAAC,OAAO;CAIhB"}