@bevel-software/platform-core-backend 0.1.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 (720) hide show
  1. package/LICENSE +202 -0
  2. package/dist/assets.d.ts +5 -0
  3. package/dist/assets.d.ts.map +1 -0
  4. package/dist/assets.js +23 -0
  5. package/dist/assets.js.map +1 -0
  6. package/dist/core/core-ports.d.ts +83 -0
  7. package/dist/core/core-ports.d.ts.map +1 -0
  8. package/dist/core/core-ports.js +12 -0
  9. package/dist/core/core-ports.js.map +1 -0
  10. package/dist/core/create-core-server.d.ts +62 -0
  11. package/dist/core/create-core-server.d.ts.map +1 -0
  12. package/dist/core/create-core-server.js +204 -0
  13. package/dist/core/create-core-server.js.map +1 -0
  14. package/dist/core/create-core-services.d.ts +95 -0
  15. package/dist/core/create-core-services.d.ts.map +1 -0
  16. package/dist/core/create-core-services.js +352 -0
  17. package/dist/core/create-core-services.js.map +1 -0
  18. package/dist/core-config.d.ts +119 -0
  19. package/dist/core-config.d.ts.map +1 -0
  20. package/dist/core-config.js +240 -0
  21. package/dist/core-config.js.map +1 -0
  22. package/dist/index.d.ts +36 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +36 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/modules/access/access-control.interface.d.ts +348 -0
  27. package/dist/modules/access/access-control.interface.d.ts.map +1 -0
  28. package/dist/modules/access/access-control.interface.js +2 -0
  29. package/dist/modules/access/access-control.interface.js.map +1 -0
  30. package/dist/modules/access/access-control.service.d.ts +323 -0
  31. package/dist/modules/access/access-control.service.d.ts.map +1 -0
  32. package/dist/modules/access/access-control.service.js +1431 -0
  33. package/dist/modules/access/access-control.service.js.map +1 -0
  34. package/dist/modules/access/access-errors.d.ts +34 -0
  35. package/dist/modules/access/access-errors.d.ts.map +1 -0
  36. package/dist/modules/access/access-errors.js +40 -0
  37. package/dist/modules/access/access-errors.js.map +1 -0
  38. package/dist/modules/access/access-mutation.service.d.ts +176 -0
  39. package/dist/modules/access/access-mutation.service.d.ts.map +1 -0
  40. package/dist/modules/access/access-mutation.service.js +307 -0
  41. package/dist/modules/access/access-mutation.service.js.map +1 -0
  42. package/dist/modules/access/access-splice.d.ts +98 -0
  43. package/dist/modules/access/access-splice.d.ts.map +1 -0
  44. package/dist/modules/access/access-splice.js +346 -0
  45. package/dist/modules/access/access-splice.js.map +1 -0
  46. package/dist/modules/access/access.routes.d.ts +10 -0
  47. package/dist/modules/access/access.routes.d.ts.map +1 -0
  48. package/dist/modules/access/access.routes.js +757 -0
  49. package/dist/modules/access/access.routes.js.map +1 -0
  50. package/dist/modules/access/creator-access.d.ts +113 -0
  51. package/dist/modules/access/creator-access.d.ts.map +1 -0
  52. package/dist/modules/access/creator-access.js +212 -0
  53. package/dist/modules/access/creator-access.js.map +1 -0
  54. package/dist/modules/access/kb-read-filter.d.ts +41 -0
  55. package/dist/modules/access/kb-read-filter.d.ts.map +1 -0
  56. package/dist/modules/access/kb-read-filter.js +60 -0
  57. package/dist/modules/access/kb-read-filter.js.map +1 -0
  58. package/dist/modules/access/roles-admin.service.d.ts +240 -0
  59. package/dist/modules/access/roles-admin.service.d.ts.map +1 -0
  60. package/dist/modules/access/roles-admin.service.js +630 -0
  61. package/dist/modules/access/roles-admin.service.js.map +1 -0
  62. package/dist/modules/access/roles-edit.d.ts +91 -0
  63. package/dist/modules/access/roles-edit.d.ts.map +1 -0
  64. package/dist/modules/access/roles-edit.js +232 -0
  65. package/dist/modules/access/roles-edit.js.map +1 -0
  66. package/dist/modules/access/roles-yaml-guard.d.ts +56 -0
  67. package/dist/modules/access/roles-yaml-guard.d.ts.map +1 -0
  68. package/dist/modules/access/roles-yaml-guard.js +79 -0
  69. package/dist/modules/access/roles-yaml-guard.js.map +1 -0
  70. package/dist/modules/admin/admin-access.routes.d.ts +18 -0
  71. package/dist/modules/admin/admin-access.routes.d.ts.map +1 -0
  72. package/dist/modules/admin/admin-access.routes.js +26 -0
  73. package/dist/modules/admin/admin-access.routes.js.map +1 -0
  74. package/dist/modules/admin/admin-access.service.d.ts +24 -0
  75. package/dist/modules/admin/admin-access.service.d.ts.map +1 -0
  76. package/dist/modules/admin/admin-access.service.js +41 -0
  77. package/dist/modules/admin/admin-access.service.js.map +1 -0
  78. package/dist/modules/admin/admin.interface.d.ts +11 -0
  79. package/dist/modules/admin/admin.interface.d.ts.map +1 -0
  80. package/dist/modules/admin/admin.interface.js +2 -0
  81. package/dist/modules/admin/admin.interface.js.map +1 -0
  82. package/dist/modules/auth/account-erasure.service.d.ts +80 -0
  83. package/dist/modules/auth/account-erasure.service.d.ts.map +1 -0
  84. package/dist/modules/auth/account-erasure.service.js +91 -0
  85. package/dist/modules/auth/account-erasure.service.js.map +1 -0
  86. package/dist/modules/auth/auth.middleware.d.ts +23 -0
  87. package/dist/modules/auth/auth.middleware.d.ts.map +1 -0
  88. package/dist/modules/auth/auth.middleware.js +68 -0
  89. package/dist/modules/auth/auth.middleware.js.map +1 -0
  90. package/dist/modules/auth/auth.routes.d.ts +25 -0
  91. package/dist/modules/auth/auth.routes.d.ts.map +1 -0
  92. package/dist/modules/auth/auth.routes.js +72 -0
  93. package/dist/modules/auth/auth.routes.js.map +1 -0
  94. package/dist/modules/auth/auth.service.d.ts +76 -0
  95. package/dist/modules/auth/auth.service.d.ts.map +1 -0
  96. package/dist/modules/auth/auth.service.js +168 -0
  97. package/dist/modules/auth/auth.service.js.map +1 -0
  98. package/dist/modules/code-mode/code-mode-names.d.ts +16 -0
  99. package/dist/modules/code-mode/code-mode-names.d.ts.map +1 -0
  100. package/dist/modules/code-mode/code-mode-names.js +30 -0
  101. package/dist/modules/code-mode/code-mode-names.js.map +1 -0
  102. package/dist/modules/code-mode/code-mode.tool.d.ts +13 -0
  103. package/dist/modules/code-mode/code-mode.tool.d.ts.map +1 -0
  104. package/dist/modules/code-mode/code-mode.tool.js +112 -0
  105. package/dist/modules/code-mode/code-mode.tool.js.map +1 -0
  106. package/dist/modules/code-mode/index.d.ts +3 -0
  107. package/dist/modules/code-mode/index.d.ts.map +1 -0
  108. package/dist/modules/code-mode/index.js +3 -0
  109. package/dist/modules/code-mode/index.js.map +1 -0
  110. package/dist/modules/database/connection.d.ts +6 -0
  111. package/dist/modules/database/connection.d.ts.map +1 -0
  112. package/dist/modules/database/connection.js +12 -0
  113. package/dist/modules/database/connection.js.map +1 -0
  114. package/dist/modules/database/core-schema.d.ts +2273 -0
  115. package/dist/modules/database/core-schema.d.ts.map +1 -0
  116. package/dist/modules/database/core-schema.js +413 -0
  117. package/dist/modules/database/core-schema.js.map +1 -0
  118. package/dist/modules/database/migrate.d.ts +10 -0
  119. package/dist/modules/database/migrate.d.ts.map +1 -0
  120. package/dist/modules/database/migrate.js +40 -0
  121. package/dist/modules/database/migrate.js.map +1 -0
  122. package/dist/modules/database/schema.d.ts +12 -0
  123. package/dist/modules/database/schema.d.ts.map +1 -0
  124. package/dist/modules/database/schema.js +12 -0
  125. package/dist/modules/database/schema.js.map +1 -0
  126. package/dist/modules/diff/diff-paths.d.ts +2 -0
  127. package/dist/modules/diff/diff-paths.d.ts.map +1 -0
  128. package/dist/modules/diff/diff-paths.js +9 -0
  129. package/dist/modules/diff/diff-paths.js.map +1 -0
  130. package/dist/modules/diff/diff.config.d.ts +8 -0
  131. package/dist/modules/diff/diff.config.d.ts.map +1 -0
  132. package/dist/modules/diff/diff.config.js +13 -0
  133. package/dist/modules/diff/diff.config.js.map +1 -0
  134. package/dist/modules/diff/diff.interface.d.ts +73 -0
  135. package/dist/modules/diff/diff.interface.d.ts.map +1 -0
  136. package/dist/modules/diff/diff.interface.js +2 -0
  137. package/dist/modules/diff/diff.interface.js.map +1 -0
  138. package/dist/modules/diff/diff.routes.d.ts +35 -0
  139. package/dist/modules/diff/diff.routes.d.ts.map +1 -0
  140. package/dist/modules/diff/diff.routes.js +228 -0
  141. package/dist/modules/diff/diff.routes.js.map +1 -0
  142. package/dist/modules/diff/diff.service.d.ts +51 -0
  143. package/dist/modules/diff/diff.service.d.ts.map +1 -0
  144. package/dist/modules/diff/diff.service.js +489 -0
  145. package/dist/modules/diff/diff.service.js.map +1 -0
  146. package/dist/modules/diff/line-diff.d.ts +16 -0
  147. package/dist/modules/diff/line-diff.d.ts.map +1 -0
  148. package/dist/modules/diff/line-diff.js +67 -0
  149. package/dist/modules/diff/line-diff.js.map +1 -0
  150. package/dist/modules/mcp/mcp-auth.middleware.d.ts +27 -0
  151. package/dist/modules/mcp/mcp-auth.middleware.d.ts.map +1 -0
  152. package/dist/modules/mcp/mcp-auth.middleware.js +116 -0
  153. package/dist/modules/mcp/mcp-auth.middleware.js.map +1 -0
  154. package/dist/modules/mcp/mcp-session-store.d.ts +74 -0
  155. package/dist/modules/mcp/mcp-session-store.d.ts.map +1 -0
  156. package/dist/modules/mcp/mcp-session-store.js +131 -0
  157. package/dist/modules/mcp/mcp-session-store.js.map +1 -0
  158. package/dist/modules/mcp/mcp.routes.d.ts +24 -0
  159. package/dist/modules/mcp/mcp.routes.d.ts.map +1 -0
  160. package/dist/modules/mcp/mcp.routes.js +229 -0
  161. package/dist/modules/mcp/mcp.routes.js.map +1 -0
  162. package/dist/modules/mcp/mcp.service.d.ts +198 -0
  163. package/dist/modules/mcp/mcp.service.d.ts.map +1 -0
  164. package/dist/modules/mcp/mcp.service.js +840 -0
  165. package/dist/modules/mcp/mcp.service.js.map +1 -0
  166. package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts +76 -0
  167. package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts.map +1 -0
  168. package/dist/modules/mcp/oauth/bevel-oauth-provider.js +291 -0
  169. package/dist/modules/mcp/oauth/bevel-oauth-provider.js.map +1 -0
  170. package/dist/modules/mcp/oauth/oauth-consent.routes.d.ts +18 -0
  171. package/dist/modules/mcp/oauth/oauth-consent.routes.d.ts.map +1 -0
  172. package/dist/modules/mcp/oauth/oauth-consent.routes.js +52 -0
  173. package/dist/modules/mcp/oauth/oauth-consent.routes.js.map +1 -0
  174. package/dist/modules/mcp/oauth/oauth-state.d.ts +32 -0
  175. package/dist/modules/mcp/oauth/oauth-state.d.ts.map +1 -0
  176. package/dist/modules/mcp/oauth/oauth-state.js +34 -0
  177. package/dist/modules/mcp/oauth/oauth-state.js.map +1 -0
  178. package/dist/modules/secrets-vault/db-secrets-vault.service.d.ts +92 -0
  179. package/dist/modules/secrets-vault/db-secrets-vault.service.d.ts.map +1 -0
  180. package/dist/modules/secrets-vault/db-secrets-vault.service.js +728 -0
  181. package/dist/modules/secrets-vault/db-secrets-vault.service.js.map +1 -0
  182. package/dist/modules/secrets-vault/index.d.ts +7 -0
  183. package/dist/modules/secrets-vault/index.d.ts.map +1 -0
  184. package/dist/modules/secrets-vault/index.js +6 -0
  185. package/dist/modules/secrets-vault/index.js.map +1 -0
  186. package/dist/modules/secrets-vault/mcp-oauth-discovery.service.d.ts +63 -0
  187. package/dist/modules/secrets-vault/mcp-oauth-discovery.service.d.ts.map +1 -0
  188. package/dist/modules/secrets-vault/mcp-oauth-discovery.service.js +269 -0
  189. package/dist/modules/secrets-vault/mcp-oauth-discovery.service.js.map +1 -0
  190. package/dist/modules/secrets-vault/secrets-variable-loader.d.ts +46 -0
  191. package/dist/modules/secrets-vault/secrets-variable-loader.d.ts.map +1 -0
  192. package/dist/modules/secrets-vault/secrets-variable-loader.js +87 -0
  193. package/dist/modules/secrets-vault/secrets-variable-loader.js.map +1 -0
  194. package/dist/modules/secrets-vault/secrets-vault.contract.d.ts +210 -0
  195. package/dist/modules/secrets-vault/secrets-vault.contract.d.ts.map +1 -0
  196. package/dist/modules/secrets-vault/secrets-vault.contract.js +90 -0
  197. package/dist/modules/secrets-vault/secrets-vault.contract.js.map +1 -0
  198. package/dist/modules/secrets-vault/secrets-vault.routes.d.ts +30 -0
  199. package/dist/modules/secrets-vault/secrets-vault.routes.d.ts.map +1 -0
  200. package/dist/modules/secrets-vault/secrets-vault.routes.js +490 -0
  201. package/dist/modules/secrets-vault/secrets-vault.routes.js.map +1 -0
  202. package/dist/modules/skills/index.d.ts +5 -0
  203. package/dist/modules/skills/index.d.ts.map +1 -0
  204. package/dist/modules/skills/index.js +4 -0
  205. package/dist/modules/skills/index.js.map +1 -0
  206. package/dist/modules/skills/skills.contract.d.ts +58 -0
  207. package/dist/modules/skills/skills.contract.d.ts.map +1 -0
  208. package/dist/modules/skills/skills.contract.js +10 -0
  209. package/dist/modules/skills/skills.contract.js.map +1 -0
  210. package/dist/modules/skills/skills.routes.d.ts +15 -0
  211. package/dist/modules/skills/skills.routes.d.ts.map +1 -0
  212. package/dist/modules/skills/skills.routes.js +34 -0
  213. package/dist/modules/skills/skills.routes.js.map +1 -0
  214. package/dist/modules/skills/skills.service.d.ts +21 -0
  215. package/dist/modules/skills/skills.service.d.ts.map +1 -0
  216. package/dist/modules/skills/skills.service.js +202 -0
  217. package/dist/modules/skills/skills.service.js.map +1 -0
  218. package/dist/modules/skills/skills.tools.d.ts +15 -0
  219. package/dist/modules/skills/skills.tools.d.ts.map +1 -0
  220. package/dist/modules/skills/skills.tools.js +96 -0
  221. package/dist/modules/skills/skills.tools.js.map +1 -0
  222. package/dist/modules/tool-auth/external-api-key.errors.d.ts +14 -0
  223. package/dist/modules/tool-auth/external-api-key.errors.d.ts.map +1 -0
  224. package/dist/modules/tool-auth/external-api-key.errors.js +23 -0
  225. package/dist/modules/tool-auth/external-api-key.errors.js.map +1 -0
  226. package/dist/modules/tool-auth/external-api-key.interface.d.ts +90 -0
  227. package/dist/modules/tool-auth/external-api-key.interface.d.ts.map +1 -0
  228. package/dist/modules/tool-auth/external-api-key.interface.js +2 -0
  229. package/dist/modules/tool-auth/external-api-key.interface.js.map +1 -0
  230. package/dist/modules/tool-auth/external-api-key.service.d.ts +25 -0
  231. package/dist/modules/tool-auth/external-api-key.service.d.ts.map +1 -0
  232. package/dist/modules/tool-auth/external-api-key.service.js +164 -0
  233. package/dist/modules/tool-auth/external-api-key.service.js.map +1 -0
  234. package/dist/modules/tool-auth/internal-token.service.d.ts +62 -0
  235. package/dist/modules/tool-auth/internal-token.service.d.ts.map +1 -0
  236. package/dist/modules/tool-auth/internal-token.service.js +85 -0
  237. package/dist/modules/tool-auth/internal-token.service.js.map +1 -0
  238. package/dist/modules/tool-auth/llm-usage-meter.d.ts +16 -0
  239. package/dist/modules/tool-auth/llm-usage-meter.d.ts.map +1 -0
  240. package/dist/modules/tool-auth/llm-usage-meter.js +6 -0
  241. package/dist/modules/tool-auth/llm-usage-meter.js.map +1 -0
  242. package/dist/modules/tool-auth/tool-auth.middleware.d.ts +101 -0
  243. package/dist/modules/tool-auth/tool-auth.middleware.d.ts.map +1 -0
  244. package/dist/modules/tool-auth/tool-auth.middleware.js +166 -0
  245. package/dist/modules/tool-auth/tool-auth.middleware.js.map +1 -0
  246. package/dist/modules/tool-helpers/index.d.ts +19 -0
  247. package/dist/modules/tool-helpers/index.d.ts.map +1 -0
  248. package/dist/modules/tool-helpers/index.js +18 -0
  249. package/dist/modules/tool-helpers/index.js.map +1 -0
  250. package/dist/modules/tool-helpers/tool-context.d.ts +35 -0
  251. package/dist/modules/tool-helpers/tool-context.d.ts.map +1 -0
  252. package/dist/modules/tool-helpers/tool-context.js +66 -0
  253. package/dist/modules/tool-helpers/tool-context.js.map +1 -0
  254. package/dist/modules/tool-helpers/tool-def.d.ts +33 -0
  255. package/dist/modules/tool-helpers/tool-def.d.ts.map +1 -0
  256. package/dist/modules/tool-helpers/tool-def.js +57 -0
  257. package/dist/modules/tool-helpers/tool-def.js.map +1 -0
  258. package/dist/modules/tool-helpers/tool-handler.d.ts +19 -0
  259. package/dist/modules/tool-helpers/tool-handler.d.ts.map +1 -0
  260. package/dist/modules/tool-helpers/tool-handler.js +84 -0
  261. package/dist/modules/tool-helpers/tool-handler.js.map +1 -0
  262. package/dist/modules/tool-helpers/tool.contract.d.ts +64 -0
  263. package/dist/modules/tool-helpers/tool.contract.d.ts.map +1 -0
  264. package/dist/modules/tool-helpers/tool.contract.js +24 -0
  265. package/dist/modules/tool-helpers/tool.contract.js.map +1 -0
  266. package/dist/modules/tool-helpers/validate-token.d.ts +31 -0
  267. package/dist/modules/tool-helpers/validate-token.d.ts.map +1 -0
  268. package/dist/modules/tool-helpers/validate-token.js +20 -0
  269. package/dist/modules/tool-helpers/validate-token.js.map +1 -0
  270. package/dist/modules/tool-manuals/index.d.ts +5 -0
  271. package/dist/modules/tool-manuals/index.d.ts.map +1 -0
  272. package/dist/modules/tool-manuals/index.js +5 -0
  273. package/dist/modules/tool-manuals/index.js.map +1 -0
  274. package/dist/modules/tool-manuals/tool-manuals.contract.d.ts +182 -0
  275. package/dist/modules/tool-manuals/tool-manuals.contract.d.ts.map +1 -0
  276. package/dist/modules/tool-manuals/tool-manuals.contract.js +19 -0
  277. package/dist/modules/tool-manuals/tool-manuals.contract.js.map +1 -0
  278. package/dist/modules/tool-manuals/tool-manuals.routes.d.ts +24 -0
  279. package/dist/modules/tool-manuals/tool-manuals.routes.d.ts.map +1 -0
  280. package/dist/modules/tool-manuals/tool-manuals.routes.js +102 -0
  281. package/dist/modules/tool-manuals/tool-manuals.routes.js.map +1 -0
  282. package/dist/modules/tool-manuals/tool-manuals.service.d.ts +108 -0
  283. package/dist/modules/tool-manuals/tool-manuals.service.d.ts.map +1 -0
  284. package/dist/modules/tool-manuals/tool-manuals.service.js +710 -0
  285. package/dist/modules/tool-manuals/tool-manuals.service.js.map +1 -0
  286. package/dist/modules/tool-manuals/tool-manuals.tools.d.ts +35 -0
  287. package/dist/modules/tool-manuals/tool-manuals.tools.d.ts.map +1 -0
  288. package/dist/modules/tool-manuals/tool-manuals.tools.js +157 -0
  289. package/dist/modules/tool-manuals/tool-manuals.tools.js.map +1 -0
  290. package/dist/modules/tool-registry/manual.routes.d.ts +6 -0
  291. package/dist/modules/tool-registry/manual.routes.d.ts.map +1 -0
  292. package/dist/modules/tool-registry/manual.routes.js +76 -0
  293. package/dist/modules/tool-registry/manual.routes.js.map +1 -0
  294. package/dist/modules/tool-registry/tool-registry.d.ts +23 -0
  295. package/dist/modules/tool-registry/tool-registry.d.ts.map +1 -0
  296. package/dist/modules/tool-registry/tool-registry.js +46 -0
  297. package/dist/modules/tool-registry/tool-registry.js.map +1 -0
  298. package/dist/modules/tool-registry/tool.contract.d.ts +48 -0
  299. package/dist/modules/tool-registry/tool.contract.d.ts.map +1 -0
  300. package/dist/modules/tool-registry/tool.contract.js +2 -0
  301. package/dist/modules/tool-registry/tool.contract.js.map +1 -0
  302. package/dist/modules/workflow/agent-tools/workflow.tools.d.ts +14 -0
  303. package/dist/modules/workflow/agent-tools/workflow.tools.d.ts.map +1 -0
  304. package/dist/modules/workflow/agent-tools/workflow.tools.js +437 -0
  305. package/dist/modules/workflow/agent-tools/workflow.tools.js.map +1 -0
  306. package/dist/modules/workflow/event-bus.d.ts +107 -0
  307. package/dist/modules/workflow/event-bus.d.ts.map +1 -0
  308. package/dist/modules/workflow/event-bus.js +224 -0
  309. package/dist/modules/workflow/event-bus.js.map +1 -0
  310. package/dist/modules/workflow/events.routes.d.ts +80 -0
  311. package/dist/modules/workflow/events.routes.d.ts.map +1 -0
  312. package/dist/modules/workflow/events.routes.js +216 -0
  313. package/dist/modules/workflow/events.routes.js.map +1 -0
  314. package/dist/modules/workflow/file-change-notifier.d.ts +38 -0
  315. package/dist/modules/workflow/file-change-notifier.d.ts.map +1 -0
  316. package/dist/modules/workflow/file-change-notifier.js +22 -0
  317. package/dist/modules/workflow/file-change-notifier.js.map +1 -0
  318. package/dist/modules/workflow/file-lock.service.d.ts +57 -0
  319. package/dist/modules/workflow/file-lock.service.d.ts.map +1 -0
  320. package/dist/modules/workflow/file-lock.service.js +202 -0
  321. package/dist/modules/workflow/file-lock.service.js.map +1 -0
  322. package/dist/modules/workflow/git/branch-name.d.ts +10 -0
  323. package/dist/modules/workflow/git/branch-name.d.ts.map +1 -0
  324. package/dist/modules/workflow/git/branch-name.js +76 -0
  325. package/dist/modules/workflow/git/branch-name.js.map +1 -0
  326. package/dist/modules/workflow/git/clone-config.d.ts +61 -0
  327. package/dist/modules/workflow/git/clone-config.d.ts.map +1 -0
  328. package/dist/modules/workflow/git/clone-config.js +69 -0
  329. package/dist/modules/workflow/git/clone-config.js.map +1 -0
  330. package/dist/modules/workflow/git/git-version.d.ts +34 -0
  331. package/dist/modules/workflow/git/git-version.d.ts.map +1 -0
  332. package/dist/modules/workflow/git/git-version.js +63 -0
  333. package/dist/modules/workflow/git/git-version.js.map +1 -0
  334. package/dist/modules/workflow/git/git.service.d.ts +427 -0
  335. package/dist/modules/workflow/git/git.service.d.ts.map +1 -0
  336. package/dist/modules/workflow/git/git.service.js +1987 -0
  337. package/dist/modules/workflow/git/git.service.js.map +1 -0
  338. package/dist/modules/workflow/git/mutex.d.ts +11 -0
  339. package/dist/modules/workflow/git/mutex.d.ts.map +1 -0
  340. package/dist/modules/workflow/git/mutex.js +23 -0
  341. package/dist/modules/workflow/git/mutex.js.map +1 -0
  342. package/dist/modules/workflow/git/pull-request.service.d.ts +124 -0
  343. package/dist/modules/workflow/git/pull-request.service.d.ts.map +1 -0
  344. package/dist/modules/workflow/git/pull-request.service.js +328 -0
  345. package/dist/modules/workflow/git/pull-request.service.js.map +1 -0
  346. package/dist/modules/workflow/locking-filesystem.d.ts +133 -0
  347. package/dist/modules/workflow/locking-filesystem.d.ts.map +1 -0
  348. package/dist/modules/workflow/locking-filesystem.js +400 -0
  349. package/dist/modules/workflow/locking-filesystem.js.map +1 -0
  350. package/dist/modules/workflow/pending-commits.service.d.ts +221 -0
  351. package/dist/modules/workflow/pending-commits.service.d.ts.map +1 -0
  352. package/dist/modules/workflow/pending-commits.service.js +364 -0
  353. package/dist/modules/workflow/pending-commits.service.js.map +1 -0
  354. package/dist/modules/workflow/pending-commits.worker.d.ts +148 -0
  355. package/dist/modules/workflow/pending-commits.worker.d.ts.map +1 -0
  356. package/dist/modules/workflow/pending-commits.worker.js +245 -0
  357. package/dist/modules/workflow/pending-commits.worker.js.map +1 -0
  358. package/dist/modules/workflow/read-only-filesystem.d.ts +24 -0
  359. package/dist/modules/workflow/read-only-filesystem.d.ts.map +1 -0
  360. package/dist/modules/workflow/read-only-filesystem.js +39 -0
  361. package/dist/modules/workflow/read-only-filesystem.js.map +1 -0
  362. package/dist/modules/workflow/recovery-bot.d.ts +31 -0
  363. package/dist/modules/workflow/recovery-bot.d.ts.map +1 -0
  364. package/dist/modules/workflow/recovery-bot.js +64 -0
  365. package/dist/modules/workflow/recovery-bot.js.map +1 -0
  366. package/dist/modules/workflow/review-workflow/review-workflow.interface.d.ts +137 -0
  367. package/dist/modules/workflow/review-workflow/review-workflow.interface.d.ts.map +1 -0
  368. package/dist/modules/workflow/review-workflow/review-workflow.interface.js +2 -0
  369. package/dist/modules/workflow/review-workflow/review-workflow.interface.js.map +1 -0
  370. package/dist/modules/workflow/review-workflow/review-workflow.service.d.ts +26 -0
  371. package/dist/modules/workflow/review-workflow/review-workflow.service.d.ts.map +1 -0
  372. package/dist/modules/workflow/review-workflow/review-workflow.service.js +636 -0
  373. package/dist/modules/workflow/review-workflow/review-workflow.service.js.map +1 -0
  374. package/dist/modules/workflow/sanitize-error.d.ts +29 -0
  375. package/dist/modules/workflow/sanitize-error.d.ts.map +1 -0
  376. package/dist/modules/workflow/sanitize-error.js +60 -0
  377. package/dist/modules/workflow/sanitize-error.js.map +1 -0
  378. package/dist/modules/workflow/session-ontology.policy.d.ts +52 -0
  379. package/dist/modules/workflow/session-ontology.policy.d.ts.map +1 -0
  380. package/dist/modules/workflow/session-ontology.policy.js +62 -0
  381. package/dist/modules/workflow/session-ontology.policy.js.map +1 -0
  382. package/dist/modules/workflow/session-ontology.service.d.ts +100 -0
  383. package/dist/modules/workflow/session-ontology.service.d.ts.map +1 -0
  384. package/dist/modules/workflow/session-ontology.service.js +143 -0
  385. package/dist/modules/workflow/session-ontology.service.js.map +1 -0
  386. package/dist/modules/workflow/workflow-hooks.d.ts +87 -0
  387. package/dist/modules/workflow/workflow-hooks.d.ts.map +1 -0
  388. package/dist/modules/workflow/workflow-hooks.js +35 -0
  389. package/dist/modules/workflow/workflow-hooks.js.map +1 -0
  390. package/dist/modules/workflow/workflow.errors.d.ts +171 -0
  391. package/dist/modules/workflow/workflow.errors.d.ts.map +1 -0
  392. package/dist/modules/workflow/workflow.errors.js +260 -0
  393. package/dist/modules/workflow/workflow.errors.js.map +1 -0
  394. package/dist/modules/workflow/workflow.routes.d.ts +26 -0
  395. package/dist/modules/workflow/workflow.routes.d.ts.map +1 -0
  396. package/dist/modules/workflow/workflow.routes.js +804 -0
  397. package/dist/modules/workflow/workflow.routes.js.map +1 -0
  398. package/dist/modules/workflow/workflow.service.d.ts +385 -0
  399. package/dist/modules/workflow/workflow.service.d.ts.map +1 -0
  400. package/dist/modules/workflow/workflow.service.js +1155 -0
  401. package/dist/modules/workflow/workflow.service.js.map +1 -0
  402. package/dist/modules/workspace/bevel-ignore.d.ts +25 -0
  403. package/dist/modules/workspace/bevel-ignore.d.ts.map +1 -0
  404. package/dist/modules/workspace/bevel-ignore.js +57 -0
  405. package/dist/modules/workspace/bevel-ignore.js.map +1 -0
  406. package/dist/modules/workspace/kb-seed.interface.d.ts +36 -0
  407. package/dist/modules/workspace/kb-seed.interface.d.ts.map +1 -0
  408. package/dist/modules/workspace/kb-seed.interface.js +2 -0
  409. package/dist/modules/workspace/kb-seed.interface.js.map +1 -0
  410. package/dist/modules/workspace/kb-seed.service.d.ts +70 -0
  411. package/dist/modules/workspace/kb-seed.service.d.ts.map +1 -0
  412. package/dist/modules/workspace/kb-seed.service.js +325 -0
  413. package/dist/modules/workspace/kb-seed.service.js.map +1 -0
  414. package/dist/modules/workspace/routine-write-policy.d.ts +49 -0
  415. package/dist/modules/workspace/routine-write-policy.d.ts.map +1 -0
  416. package/dist/modules/workspace/routine-write-policy.js +46 -0
  417. package/dist/modules/workspace/routine-write-policy.js.map +1 -0
  418. package/dist/modules/workspace/session-ontology.gate.d.ts +112 -0
  419. package/dist/modules/workspace/session-ontology.gate.d.ts.map +1 -0
  420. package/dist/modules/workspace/session-ontology.gate.js +161 -0
  421. package/dist/modules/workspace/session-ontology.gate.js.map +1 -0
  422. package/dist/modules/workspace/session-sink.d.ts +25 -0
  423. package/dist/modules/workspace/session-sink.d.ts.map +1 -0
  424. package/dist/modules/workspace/session-sink.js +8 -0
  425. package/dist/modules/workspace/session-sink.js.map +1 -0
  426. package/dist/modules/workspace/spill-store.d.ts +24 -0
  427. package/dist/modules/workspace/spill-store.d.ts.map +1 -0
  428. package/dist/modules/workspace/spill-store.js +87 -0
  429. package/dist/modules/workspace/spill-store.js.map +1 -0
  430. package/dist/modules/workspace/workspace.routes.d.ts +25 -0
  431. package/dist/modules/workspace/workspace.routes.d.ts.map +1 -0
  432. package/dist/modules/workspace/workspace.routes.js +1046 -0
  433. package/dist/modules/workspace/workspace.routes.js.map +1 -0
  434. package/dist/modules/workspace/workspace.service.d.ts +339 -0
  435. package/dist/modules/workspace/workspace.service.d.ts.map +1 -0
  436. package/dist/modules/workspace/workspace.service.js +1221 -0
  437. package/dist/modules/workspace/workspace.service.js.map +1 -0
  438. package/dist/modules/workspace/workspace.tools.d.ts +19 -0
  439. package/dist/modules/workspace/workspace.tools.d.ts.map +1 -0
  440. package/dist/modules/workspace/workspace.tools.js +767 -0
  441. package/dist/modules/workspace/workspace.tools.js.map +1 -0
  442. package/dist/shared/frontmatter-id.d.ts +35 -0
  443. package/dist/shared/frontmatter-id.d.ts.map +1 -0
  444. package/dist/shared/frontmatter-id.js +68 -0
  445. package/dist/shared/frontmatter-id.js.map +1 -0
  446. package/dist/shared/fs-walk.d.ts +9 -0
  447. package/dist/shared/fs-walk.d.ts.map +1 -0
  448. package/dist/shared/fs-walk.js +34 -0
  449. package/dist/shared/fs-walk.js.map +1 -0
  450. package/dist/shared/hash-email.d.ts +11 -0
  451. package/dist/shared/hash-email.d.ts.map +1 -0
  452. package/dist/shared/hash-email.js +14 -0
  453. package/dist/shared/hash-email.js.map +1 -0
  454. package/dist/shared/kb-layout.d.ts +38 -0
  455. package/dist/shared/kb-layout.d.ts.map +1 -0
  456. package/dist/shared/kb-layout.js +102 -0
  457. package/dist/shared/kb-layout.js.map +1 -0
  458. package/dist/shared/kb-layout.test.d.ts +2 -0
  459. package/dist/shared/kb-layout.test.d.ts.map +1 -0
  460. package/dist/shared/kb-layout.test.js +67 -0
  461. package/dist/shared/kb-layout.test.js.map +1 -0
  462. package/dist/shared/ssrf.d.ts +20 -0
  463. package/dist/shared/ssrf.d.ts.map +1 -0
  464. package/dist/shared/ssrf.js +89 -0
  465. package/dist/shared/ssrf.js.map +1 -0
  466. package/dist/shared/token-crypto.d.ts +16 -0
  467. package/dist/shared/token-crypto.d.ts.map +1 -0
  468. package/dist/shared/token-crypto.js +49 -0
  469. package/dist/shared/token-crypto.js.map +1 -0
  470. package/dist/shared/ttl-cache.d.ts +16 -0
  471. package/dist/shared/ttl-cache.d.ts.map +1 -0
  472. package/dist/shared/ttl-cache.js +27 -0
  473. package/dist/shared/ttl-cache.js.map +1 -0
  474. package/dist/shared/utcp-namespace.d.ts +46 -0
  475. package/dist/shared/utcp-namespace.d.ts.map +1 -0
  476. package/dist/shared/utcp-namespace.js +82 -0
  477. package/dist/shared/utcp-namespace.js.map +1 -0
  478. package/dist/version.d.ts +17 -0
  479. package/dist/version.d.ts.map +1 -0
  480. package/dist/version.js +19 -0
  481. package/dist/version.js.map +1 -0
  482. package/kb-template/.bevelignore +21 -0
  483. package/kb-template/Agents/.gitkeep +0 -0
  484. package/kb-template/Agents/README.md +38 -0
  485. package/kb-template/CLAUDE.md +419 -0
  486. package/kb-template/Data/.gitkeep +0 -0
  487. package/kb-template/Data/README.md +39 -0
  488. package/kb-template/KnowledgeBase/.gitkeep +0 -0
  489. package/kb-template/KnowledgeBase/README.md +37 -0
  490. package/kb-template/Pipelines/.gitkeep +0 -0
  491. package/kb-template/Pipelines/README.md +38 -0
  492. package/kb-template/Skills/.gitkeep +0 -0
  493. package/kb-template/Skills/README.md +32 -0
  494. package/kb-template/Tools/.gitkeep +0 -0
  495. package/kb-template/Tools/README.md +42 -0
  496. package/kb-template/access.md +36 -0
  497. package/migrations/0000_core_init.sql +243 -0
  498. package/migrations/meta/0000_snapshot.json +1480 -0
  499. package/migrations/meta/_journal.json +13 -0
  500. package/package.json +80 -0
  501. package/src/assets.ts +25 -0
  502. package/src/core/core-ports.ts +91 -0
  503. package/src/core/create-core-server.ts +338 -0
  504. package/src/core/create-core-services.ts +501 -0
  505. package/src/core-config.ts +257 -0
  506. package/src/index.ts +69 -0
  507. package/src/modules/access/__tests__/access-control.atref-batch.test.ts +98 -0
  508. package/src/modules/access/__tests__/access-control.read-batch.test.ts +132 -0
  509. package/src/modules/access/__tests__/access-control.service.test.ts +1011 -0
  510. package/src/modules/access/__tests__/access-mutation.service.test.ts +439 -0
  511. package/src/modules/access/__tests__/access-splice.test.ts +247 -0
  512. package/src/modules/access/__tests__/access.routes.revoke.test.ts +407 -0
  513. package/src/modules/access/__tests__/creator-access.test.ts +217 -0
  514. package/src/modules/access/__tests__/grant-sources.test.ts +204 -0
  515. package/src/modules/access/__tests__/kb-read-filter.test.ts +70 -0
  516. package/src/modules/access/__tests__/roles-admin.service.test.ts +469 -0
  517. package/src/modules/access/__tests__/roles-edit.test.ts +138 -0
  518. package/src/modules/access/__tests__/roles-yaml-guard.test.ts +70 -0
  519. package/src/modules/access/__tests__/roles.routes.test.ts +234 -0
  520. package/src/modules/access/access-control.interface.ts +383 -0
  521. package/src/modules/access/access-control.service.ts +1794 -0
  522. package/src/modules/access/access-errors.ts +60 -0
  523. package/src/modules/access/access-mutation.service.ts +369 -0
  524. package/src/modules/access/access-splice.ts +413 -0
  525. package/src/modules/access/access.routes.ts +894 -0
  526. package/src/modules/access/creator-access.ts +270 -0
  527. package/src/modules/access/kb-read-filter.ts +76 -0
  528. package/src/modules/access/roles-admin.service.ts +741 -0
  529. package/src/modules/access/roles-edit.ts +248 -0
  530. package/src/modules/access/roles-yaml-guard.ts +89 -0
  531. package/src/modules/admin/admin-access.routes.ts +29 -0
  532. package/src/modules/admin/admin-access.service.ts +38 -0
  533. package/src/modules/admin/admin.interface.ts +10 -0
  534. package/src/modules/auth/account-erasure.service.ts +183 -0
  535. package/src/modules/auth/auth.middleware.ts +78 -0
  536. package/src/modules/auth/auth.routes.ts +97 -0
  537. package/src/modules/auth/auth.service.ts +199 -0
  538. package/src/modules/code-mode/code-mode-names.ts +38 -0
  539. package/src/modules/code-mode/code-mode.tool.ts +117 -0
  540. package/src/modules/code-mode/index.ts +6 -0
  541. package/src/modules/database/connection.ts +15 -0
  542. package/src/modules/database/core-schema.ts +431 -0
  543. package/src/modules/database/migrate.ts +43 -0
  544. package/src/modules/database/schema.ts +11 -0
  545. package/src/modules/diff/__tests__/diff.routes.read-gate.test.ts +87 -0
  546. package/src/modules/diff/__tests__/diff.routes.rejectPathsLocked.test.ts +150 -0
  547. package/src/modules/diff/__tests__/diff.service.seed-atomicity.test.ts +184 -0
  548. package/src/modules/diff/__tests__/diff.service.test.ts +202 -0
  549. package/src/modules/diff/diff-paths.ts +9 -0
  550. package/src/modules/diff/diff.config.ts +12 -0
  551. package/src/modules/diff/diff.interface.ts +78 -0
  552. package/src/modules/diff/diff.routes.ts +277 -0
  553. package/src/modules/diff/diff.service.ts +508 -0
  554. package/src/modules/diff/line-diff.ts +79 -0
  555. package/src/modules/mcp/__tests__/bevel-oauth-provider.test.ts +287 -0
  556. package/src/modules/mcp/__tests__/mcp-auth.middleware.test.ts +249 -0
  557. package/src/modules/mcp/__tests__/mcp-proxy-helpers.test.ts +253 -0
  558. package/src/modules/mcp/__tests__/mcp-session-store.test.ts +151 -0
  559. package/src/modules/mcp/__tests__/mcp.e2e.test.ts +150 -0
  560. package/src/modules/mcp/__tests__/mcp.routes.delete.test.ts +92 -0
  561. package/src/modules/mcp/__tests__/mcp.service.test.ts +414 -0
  562. package/src/modules/mcp/mcp-auth.middleware.ts +126 -0
  563. package/src/modules/mcp/mcp-session-store.ts +162 -0
  564. package/src/modules/mcp/mcp.routes.ts +263 -0
  565. package/src/modules/mcp/mcp.service.ts +973 -0
  566. package/src/modules/mcp/oauth/bevel-oauth-provider.ts +401 -0
  567. package/src/modules/mcp/oauth/oauth-consent.routes.ts +60 -0
  568. package/src/modules/mcp/oauth/oauth-state.ts +61 -0
  569. package/src/modules/secrets-vault/__tests__/connect-pending.route.test.ts +277 -0
  570. package/src/modules/secrets-vault/__tests__/db-secrets-vault.oauth.test.ts +206 -0
  571. package/src/modules/secrets-vault/__tests__/mcp-oauth-discovery.service.test.ts +178 -0
  572. package/src/modules/secrets-vault/__tests__/scopes-covered.test.ts +101 -0
  573. package/src/modules/secrets-vault/__tests__/secrets-variable-loader.test.ts +54 -0
  574. package/src/modules/secrets-vault/__tests__/tool-owner-gate.route.test.ts +143 -0
  575. package/src/modules/secrets-vault/db-secrets-vault.service.ts +792 -0
  576. package/src/modules/secrets-vault/index.ts +25 -0
  577. package/src/modules/secrets-vault/mcp-oauth-discovery.service.ts +289 -0
  578. package/src/modules/secrets-vault/secrets-variable-loader.ts +104 -0
  579. package/src/modules/secrets-vault/secrets-vault.contract.ts +270 -0
  580. package/src/modules/secrets-vault/secrets-vault.routes.ts +526 -0
  581. package/src/modules/skills/__tests__/skills.service.test.ts +176 -0
  582. package/src/modules/skills/index.ts +10 -0
  583. package/src/modules/skills/skills.contract.ts +54 -0
  584. package/src/modules/skills/skills.routes.ts +38 -0
  585. package/src/modules/skills/skills.service.ts +245 -0
  586. package/src/modules/skills/skills.tools.ts +121 -0
  587. package/src/modules/tool-auth/__tests__/external-api-key.service.test.ts +358 -0
  588. package/src/modules/tool-auth/__tests__/internal-token.service.test.ts +79 -0
  589. package/src/modules/tool-auth/__tests__/manual-auth.middleware.test.ts +88 -0
  590. package/src/modules/tool-auth/external-api-key.errors.ts +25 -0
  591. package/src/modules/tool-auth/external-api-key.interface.ts +99 -0
  592. package/src/modules/tool-auth/external-api-key.service.ts +209 -0
  593. package/src/modules/tool-auth/internal-token.service.ts +124 -0
  594. package/src/modules/tool-auth/llm-usage-meter.ts +19 -0
  595. package/src/modules/tool-auth/tool-auth.middleware.ts +220 -0
  596. package/src/modules/tool-helpers/__tests__/phase0-loopback-spike.test.ts +129 -0
  597. package/src/modules/tool-helpers/__tests__/phase4-tools.test.ts +95 -0
  598. package/src/modules/tool-helpers/__tests__/tools-surface.test.ts +146 -0
  599. package/src/modules/tool-helpers/__tests__/validate-token.test.ts +75 -0
  600. package/src/modules/tool-helpers/index.ts +18 -0
  601. package/src/modules/tool-helpers/tool-context.ts +98 -0
  602. package/src/modules/tool-helpers/tool-def.ts +73 -0
  603. package/src/modules/tool-helpers/tool-handler.ts +91 -0
  604. package/src/modules/tool-helpers/tool.contract.ts +85 -0
  605. package/src/modules/tool-helpers/validate-token.ts +50 -0
  606. package/src/modules/tool-manuals/__tests__/tool-manuals.mcp-oauth.test.ts +200 -0
  607. package/src/modules/tool-manuals/__tests__/tool-manuals.service.test.ts +499 -0
  608. package/src/modules/tool-manuals/__tests__/tool-manuals.tools.test.ts +156 -0
  609. package/src/modules/tool-manuals/index.ts +12 -0
  610. package/src/modules/tool-manuals/tool-manuals.contract.ts +183 -0
  611. package/src/modules/tool-manuals/tool-manuals.routes.ts +110 -0
  612. package/src/modules/tool-manuals/tool-manuals.service.ts +781 -0
  613. package/src/modules/tool-manuals/tool-manuals.tools.ts +202 -0
  614. package/src/modules/tool-registry/__tests__/tool-registry.test.ts +64 -0
  615. package/src/modules/tool-registry/manual.routes.ts +87 -0
  616. package/src/modules/tool-registry/tool-registry.ts +55 -0
  617. package/src/modules/tool-registry/tool.contract.ts +52 -0
  618. package/src/modules/workflow/__tests__/event-bus.test.ts +322 -0
  619. package/src/modules/workflow/__tests__/file-change-notifier.test.ts +51 -0
  620. package/src/modules/workflow/__tests__/format-affected-owners.test.ts +67 -0
  621. package/src/modules/workflow/__tests__/locking-filesystem.test.ts +445 -0
  622. package/src/modules/workflow/__tests__/pending-commits.canonical.test.ts +36 -0
  623. package/src/modules/workflow/__tests__/pending-commits.worker.test.ts +243 -0
  624. package/src/modules/workflow/__tests__/preserve-roles-yaml.test.ts +308 -0
  625. package/src/modules/workflow/__tests__/sanitize-error.test.ts +67 -0
  626. package/src/modules/workflow/__tests__/session-ontology.policy.test.ts +62 -0
  627. package/src/modules/workflow/__tests__/session-ontology.service.test.ts +200 -0
  628. package/src/modules/workflow/__tests__/workflow.service.commitFileWhileLocked.test.ts +232 -0
  629. package/src/modules/workflow/__tests__/workflow.service.facade.test.ts +380 -0
  630. package/src/modules/workflow/__tests__/workflow.service.releaseLock.test.ts +340 -0
  631. package/src/modules/workflow/agent-tools/__tests__/workflow.tools.test.ts +192 -0
  632. package/src/modules/workflow/agent-tools/workflow.tools.ts +502 -0
  633. package/src/modules/workflow/event-bus.ts +262 -0
  634. package/src/modules/workflow/events.routes.ts +266 -0
  635. package/src/modules/workflow/file-change-notifier.ts +54 -0
  636. package/src/modules/workflow/file-lock.service.ts +269 -0
  637. package/src/modules/workflow/git/__tests__/branch-name.test.ts +86 -0
  638. package/src/modules/workflow/git/__tests__/branchAuthor.test.ts +80 -0
  639. package/src/modules/workflow/git/__tests__/clone-config.test.ts +15 -0
  640. package/src/modules/workflow/git/__tests__/git-test-helpers.ts +47 -0
  641. package/src/modules/workflow/git/__tests__/git-version.failure.test.ts +24 -0
  642. package/src/modules/workflow/git/__tests__/git-version.test.ts +49 -0
  643. package/src/modules/workflow/git/__tests__/git.service.accessGating.test.ts +389 -0
  644. package/src/modules/workflow/git/__tests__/git.service.changedFilesForPr.test.ts +124 -0
  645. package/src/modules/workflow/git/__tests__/git.service.commitChanges.test.ts +105 -0
  646. package/src/modules/workflow/git/__tests__/git.service.commitFile.test.ts +211 -0
  647. package/src/modules/workflow/git/__tests__/git.service.createBranch.test.ts +154 -0
  648. package/src/modules/workflow/git/__tests__/git.service.deleteBranch.test.ts +320 -0
  649. package/src/modules/workflow/git/__tests__/git.service.diffFileAtCommit.test.ts +202 -0
  650. package/src/modules/workflow/git/__tests__/git.service.diffFileBetweenBranches.test.ts +453 -0
  651. package/src/modules/workflow/git/__tests__/git.service.list-branches.test.ts +198 -0
  652. package/src/modules/workflow/git/__tests__/git.service.listTrackedFiles.test.ts +125 -0
  653. package/src/modules/workflow/git/__tests__/git.service.logForFile.test.ts +219 -0
  654. package/src/modules/workflow/git/__tests__/git.service.mergeChangeRequest.test.ts +145 -0
  655. package/src/modules/workflow/git/__tests__/git.service.pendingChanges.test.ts +240 -0
  656. package/src/modules/workflow/git/__tests__/git.service.postMergePull.test.ts +272 -0
  657. package/src/modules/workflow/git/__tests__/git.service.pull.test.ts +232 -0
  658. package/src/modules/workflow/git/__tests__/git.service.readFileAtRef.test.ts +101 -0
  659. package/src/modules/workflow/git/__tests__/git.service.status.test.ts +127 -0
  660. package/src/modules/workflow/git/__tests__/mutex.test.ts +78 -0
  661. package/src/modules/workflow/git/__tests__/pull-request.service.test.ts +225 -0
  662. package/src/modules/workflow/git/__tests__/pull-request.service.viewer-can-cancel.test.ts +101 -0
  663. package/src/modules/workflow/git/branch-name.ts +70 -0
  664. package/src/modules/workflow/git/clone-config.ts +71 -0
  665. package/src/modules/workflow/git/git-version.ts +70 -0
  666. package/src/modules/workflow/git/git.service.ts +2248 -0
  667. package/src/modules/workflow/git/mutex.ts +22 -0
  668. package/src/modules/workflow/git/pull-request.service.ts +447 -0
  669. package/src/modules/workflow/locking-filesystem.ts +489 -0
  670. package/src/modules/workflow/pending-commits.service.ts +444 -0
  671. package/src/modules/workflow/pending-commits.worker.ts +361 -0
  672. package/src/modules/workflow/read-only-filesystem.ts +54 -0
  673. package/src/modules/workflow/recovery-bot.ts +73 -0
  674. package/src/modules/workflow/review-workflow/__tests__/approval-states.test.ts +560 -0
  675. package/src/modules/workflow/review-workflow/__tests__/cancel-pr.test.ts +176 -0
  676. package/src/modules/workflow/review-workflow/__tests__/merge-gate.test.ts +258 -0
  677. package/src/modules/workflow/review-workflow/review-workflow.interface.ts +199 -0
  678. package/src/modules/workflow/review-workflow/review-workflow.service.ts +806 -0
  679. package/src/modules/workflow/sanitize-error.ts +62 -0
  680. package/src/modules/workflow/session-ontology.policy.ts +70 -0
  681. package/src/modules/workflow/session-ontology.service.ts +178 -0
  682. package/src/modules/workflow/workflow-hooks.ts +101 -0
  683. package/src/modules/workflow/workflow.errors.ts +285 -0
  684. package/src/modules/workflow/workflow.routes.ts +858 -0
  685. package/src/modules/workflow/workflow.service.ts +1555 -0
  686. package/src/modules/workspace/__tests__/kb-seed.service.test.ts +213 -0
  687. package/src/modules/workspace/__tests__/routine-write-policy.test.ts +68 -0
  688. package/src/modules/workspace/__tests__/session-ontology.gate.test.ts +237 -0
  689. package/src/modules/workspace/__tests__/spill-store.test.ts +43 -0
  690. package/src/modules/workspace/__tests__/workspace.routes.create-grant.test.ts +233 -0
  691. package/src/modules/workspace/__tests__/workspace.routes.delete.test.ts +176 -0
  692. package/src/modules/workspace/__tests__/workspace.routes.download.test.ts +303 -0
  693. package/src/modules/workspace/__tests__/workspace.routes.read-gate.test.ts +276 -0
  694. package/src/modules/workspace/__tests__/workspace.service.read-filter.test.ts +120 -0
  695. package/src/modules/workspace/__tests__/workspace.service.test.ts +565 -0
  696. package/src/modules/workspace/__tests__/workspace.tools.test.ts +504 -0
  697. package/src/modules/workspace/bevel-ignore.ts +62 -0
  698. package/src/modules/workspace/kb-seed.interface.ts +36 -0
  699. package/src/modules/workspace/kb-seed.service.ts +361 -0
  700. package/src/modules/workspace/routine-write-policy.ts +79 -0
  701. package/src/modules/workspace/session-ontology.gate.ts +189 -0
  702. package/src/modules/workspace/session-sink.ts +25 -0
  703. package/src/modules/workspace/spill-store.ts +87 -0
  704. package/src/modules/workspace/workspace.routes.ts +1114 -0
  705. package/src/modules/workspace/workspace.service.ts +1343 -0
  706. package/src/modules/workspace/workspace.tools.ts +885 -0
  707. package/src/shared/__tests__/frontmatter-id.test.ts +88 -0
  708. package/src/shared/__tests__/fs-walk.test.ts +42 -0
  709. package/src/shared/__tests__/ssrf.test.ts +53 -0
  710. package/src/shared/__tests__/utcp-namespace.test.ts +19 -0
  711. package/src/shared/frontmatter-id.ts +72 -0
  712. package/src/shared/fs-walk.ts +30 -0
  713. package/src/shared/hash-email.ts +14 -0
  714. package/src/shared/kb-layout.test.ts +88 -0
  715. package/src/shared/kb-layout.ts +101 -0
  716. package/src/shared/ssrf.ts +78 -0
  717. package/src/shared/token-crypto.ts +54 -0
  718. package/src/shared/ttl-cache.ts +27 -0
  719. package/src/shared/utcp-namespace.ts +88 -0
  720. package/src/version.ts +19 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.service.js","sourceRoot":"","sources":["../../../src/modules/workflow/workflow.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * A hierarchical stack of `.bevelignore` rule sets.
3
+ *
4
+ * Each `.bevelignore` file applies to paths beneath the directory it lives in,
5
+ * using standard gitignore syntax (negations, `**`, directory-only patterns, anchoring).
6
+ * Deeper files combine with — and can override — rules from shallower files,
7
+ * mirroring how git layers `.gitignore` files.
8
+ */
9
+ export declare class BevelIgnoreStack {
10
+ private readonly layers;
11
+ private constructor();
12
+ static empty(): BevelIgnoreStack;
13
+ /**
14
+ * Return a new stack that additionally includes a `.bevelignore` from `dir`
15
+ * (if present). If no `.bevelignore` exists in `dir`, returns this stack unchanged.
16
+ */
17
+ extendedWith(dir: string): Promise<BevelIgnoreStack>;
18
+ /**
19
+ * Whether the given entry should be hidden from the file tree.
20
+ * @param absolutePath absolute path of the entry
21
+ * @param isDirectory needed because gitignore patterns ending in `/` match directories only
22
+ */
23
+ isIgnored(absolutePath: string, isDirectory: boolean): boolean;
24
+ }
25
+ //# sourceMappingURL=bevel-ignore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bevel-ignore.d.ts","sourceRoot":"","sources":["../../../src/modules/workspace/bevel-ignore.ts"],"names":[],"mappings":"AAaA;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IACP,OAAO,CAAC,QAAQ,CAAC,MAAM;IAA3C,OAAO;IAEP,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC;;;OAGG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAY1D;;;;OAIG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO;CAY/D"}
@@ -0,0 +1,57 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import ignore from 'ignore';
4
+ const IGNORE_FILENAME = '.bevelignore';
5
+ /**
6
+ * A hierarchical stack of `.bevelignore` rule sets.
7
+ *
8
+ * Each `.bevelignore` file applies to paths beneath the directory it lives in,
9
+ * using standard gitignore syntax (negations, `**`, directory-only patterns, anchoring).
10
+ * Deeper files combine with — and can override — rules from shallower files,
11
+ * mirroring how git layers `.gitignore` files.
12
+ */
13
+ export class BevelIgnoreStack {
14
+ layers;
15
+ constructor(layers) {
16
+ this.layers = layers;
17
+ }
18
+ static empty() {
19
+ return new BevelIgnoreStack([]);
20
+ }
21
+ /**
22
+ * Return a new stack that additionally includes a `.bevelignore` from `dir`
23
+ * (if present). If no `.bevelignore` exists in `dir`, returns this stack unchanged.
24
+ */
25
+ async extendedWith(dir) {
26
+ const file = path.join(dir, IGNORE_FILENAME);
27
+ let contents;
28
+ try {
29
+ contents = await fs.readFile(file, 'utf-8');
30
+ }
31
+ catch {
32
+ return this;
33
+ }
34
+ const matcher = ignore().add(contents);
35
+ return new BevelIgnoreStack([...this.layers, { root: dir, matcher }]);
36
+ }
37
+ /**
38
+ * Whether the given entry should be hidden from the file tree.
39
+ * @param absolutePath absolute path of the entry
40
+ * @param isDirectory needed because gitignore patterns ending in `/` match directories only
41
+ */
42
+ isIgnored(absolutePath, isDirectory) {
43
+ for (const layer of this.layers) {
44
+ const rel = path.relative(layer.root, absolutePath).replace(/\\/g, '/');
45
+ // Skip entries that aren't under this layer's root (shouldn't happen in normal
46
+ // recursion, but guards against absolute-path quirks on Windows).
47
+ if (!rel || rel.startsWith('..'))
48
+ continue;
49
+ // Append trailing slash for directories so `foo/`-style rules match correctly.
50
+ const probe = isDirectory ? `${rel}/` : rel;
51
+ if (layer.matcher.ignores(probe))
52
+ return true;
53
+ }
54
+ return false;
55
+ }
56
+ }
57
+ //# sourceMappingURL=bevel-ignore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bevel-ignore.js","sourceRoot":"","sources":["../../../src/modules/workspace/bevel-ignore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAuB,MAAM,QAAQ,CAAC;AAE7C,MAAM,eAAe,GAAG,cAAc,CAAC;AASvC;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAgB;IACU;IAArC,YAAqC,MAA8B;QAA9B,WAAM,GAAN,MAAM,CAAwB;IAAG,CAAC;IAEvE,MAAM,CAAC,KAAK;QACV,OAAO,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,GAAW;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QAC7C,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,IAAI,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,YAAoB,EAAE,WAAoB;QAClD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACxE,+EAA+E;YAC/E,kEAAkE;YAClE,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC3C,+EAA+E;YAC/E,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QAChD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Bootstraps the KB *remote* so the rest of the app's assumption — that the KB
3
+ * repo it clones already carries the protected branches and base scaffolding —
4
+ * holds even for a brand-new (or partially-populated) GitHub repo.
5
+ *
6
+ * The platform used to require the KB remote to have been forked from the
7
+ * standalone `knowledge-base-template` repo. That template now ships inside the
8
+ * platform (`kb-template/` at the repo root) and this service seeds from it.
9
+ */
10
+ export interface IKbSeedService {
11
+ /**
12
+ * Ensure the KB remote can be cloned: seed a fully-empty repo, and make sure
13
+ * every protected branch exists as a ref (so `clone -b <branch>` succeeds).
14
+ * Idempotent and single-flight — safe to await before every clone; the real
15
+ * work runs at most once per process.
16
+ *
17
+ * - **Empty remote** → full seed: all template files (incl. the sample
18
+ * ontology) committed to every protected branch. Requires `SEED_ADMIN_EMAILS`
19
+ * (a repo with no Admin is unusable), otherwise throws.
20
+ * - **Existing remote** → create only the protected branches that don't exist
21
+ * yet, off an existing one. No file changes here — per-branch base files are
22
+ * filled in by {@link topUpWorkspace} when a branch is loaded.
23
+ */
24
+ ensureRemoteSeeded(): Promise<void>;
25
+ /**
26
+ * Fill in any missing base scaffolding on the freshly-cloned workspace of the
27
+ * branch a user just loaded, then commit + push it to that branch. Add-only —
28
+ * never overwrites existing files, and never restores the sample ontology.
29
+ * Best-effort: never throws, so a top-up hiccup can't block loading the branch.
30
+ *
31
+ * @param repoDir Absolute path to the checked-out KB clone for `branch`.
32
+ * @param branch The branch that clone is on (the push target).
33
+ */
34
+ topUpWorkspace(repoDir: string, branch: string): Promise<void>;
35
+ }
36
+ //# sourceMappingURL=kb-seed.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kb-seed.interface.d.ts","sourceRoot":"","sources":["../../../src/modules/workspace/kb-seed.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;;;OAYG;IACH,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;;;;;;;OAQG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=kb-seed.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kb-seed.interface.js","sourceRoot":"","sources":["../../../src/modules/workspace/kb-seed.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,70 @@
1
+ import type { IKbSeedService } from './kb-seed.interface.js';
2
+ /**
3
+ * Seeds/tops-up the KB *remote* so the rest of the app's assumption — that the
4
+ * repo it clones already carries the protected branches and base scaffolding —
5
+ * holds even for a brand-new or partially-populated GitHub repo. The template
6
+ * ships inside the platform (`kb-template/`); this reads from it.
7
+ *
8
+ * Split into two moments so the file-level top-up rides along with the clone the
9
+ * app already performs, rather than doing its own extra clones:
10
+ * - {@link ensureRemoteSeeded} runs once before the first clone (an empty remote
11
+ * can't be `clone -b`'d): it seeds an empty repo and makes sure every
12
+ * protected branch *exists* as a ref.
13
+ * - {@link topUpWorkspace} runs on the freshly-cloned workspace of whatever
14
+ * branch a user loads: it fills in any missing base files on that branch.
15
+ */
16
+ export declare class KbSeedService implements IKbSeedService {
17
+ private readonly kbRepoUrl;
18
+ private readonly kbTemplateDir;
19
+ private readonly protectedBranches;
20
+ private readonly defaultBranch;
21
+ private readonly seedAdminEmails;
22
+ private readonly gitUsername;
23
+ /** Single-flight: the first caller runs the remote pass; the rest await its result. */
24
+ private inFlight;
25
+ /**
26
+ * @param kbRepoUrl Clone/push URL of the KB remote.
27
+ * @param kbTemplateDir Filesystem path to the `kb-template/` seed source.
28
+ * @param protectedBranches Branch names that must exist (e.g. current/target-company-state).
29
+ * @param defaultBranch The branch new checkouts land on — used as the init
30
+ * branch of the empty-seed commit and the preferred
31
+ * base when creating a missing protected branch.
32
+ * @param seedAdminEmails Admins written into the generated `roles.yaml`.
33
+ * @param gitUsername Basic-auth username for git-over-HTTPS (provider-specific).
34
+ */
35
+ constructor(kbRepoUrl: string, kbTemplateDir: string, protectedBranches: readonly string[], defaultBranch: string, seedAdminEmails: readonly string[], gitUsername?: string);
36
+ ensureRemoteSeeded(): Promise<void>;
37
+ private run;
38
+ /**
39
+ * Add any missing base scaffolding to an already-cloned workspace of `branch`,
40
+ * then commit + push it. Called once per fresh clone (any branch a user loads),
41
+ * so the check reuses the clone the app already made instead of a dedicated one.
42
+ *
43
+ * Best-effort: never throws. If the push is rejected (e.g. a concurrent update
44
+ * to the branch), the local scaffolding commit is rolled back so the workspace
45
+ * stays consistent with origin, and the top-up is retried on a future clone.
46
+ */
47
+ topUpWorkspace(repoDir: string, branch: string): Promise<void>;
48
+ /** Prefer the default branch as a base, else the first protected branch present, else any head. */
49
+ private pickBase;
50
+ /** `-c` args that inject credentials + longpaths, mirroring the workspace clone. */
51
+ private credArgs;
52
+ private git;
53
+ /** Set of branch names on the remote (empty ⇒ uninitialised repo). */
54
+ private lsRemoteHeads;
55
+ /** Run a block against a throwaway temp dir, always cleaned up. */
56
+ private withTempDir;
57
+ private stampIdentity;
58
+ /** Copy the entire template tree into `dest` (roles.yaml isn't in it — it's generated). */
59
+ private copyTemplateTree;
60
+ /** Copy one template file (by repo-relative path) into `dest`, creating parents. */
61
+ private copyTemplateFile;
62
+ /** `git init` a temp repo, lay down the full template + generated roles.yaml, commit. */
63
+ private buildSeedCommit;
64
+ /** Empty remote → one seed commit pushed to every protected branch. */
65
+ private seedEmptyRemote;
66
+ /** Create a missing protected branch on the remote, pointed at `base`'s tip. */
67
+ private createBranchOnRemote;
68
+ private exists;
69
+ }
70
+ //# sourceMappingURL=kb-seed.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kb-seed.service.d.ts","sourceRoot":"","sources":["../../../src/modules/workspace/kb-seed.service.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA0D7D;;;;;;;;;;;;;GAaG;AACH,qBAAa,aAAc,YAAW,cAAc;IAehD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAnB9B,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAA8B;IAE9C;;;;;;;;;OASG;gBAEgB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,iBAAiB,EAAE,SAAS,MAAM,EAAE,EACpC,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,SAAS,MAAM,EAAE,EAClC,WAAW,GAAE,MAAyB;IAGzD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;YAarB,GAAG;IA0BjB;;;;;;;;OAQG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgEpE,mGAAmG;IACnG,OAAO,CAAC,QAAQ;IAQhB,oFAAoF;IACpF,OAAO,CAAC,QAAQ;YAcF,GAAG;IAgBjB,sEAAsE;YACxD,aAAa;IAU3B,mEAAmE;YACrD,WAAW;YASX,aAAa;IAK3B,2FAA2F;YAC7E,gBAAgB;IAgB9B,oFAAoF;YACtE,gBAAgB;IAO9B,yFAAyF;YAC3E,eAAe;IAS7B,uEAAuE;YACzD,eAAe;IAoB7B,gFAAgF;YAClE,oBAAoB;YASpB,MAAM;CAQrB"}
@@ -0,0 +1,325 @@
1
+ import fs from 'node:fs/promises';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import { execFile } from 'node:child_process';
5
+ import { promisify } from 'node:util';
6
+ import { AGENTS_DIR, DATA_DIR, KNOWLEDGE_BASE_DIR, PIPELINES_DIR, SKILLS_DIR, TOOLS_DIR, } from '@bevel-software/platform-shared';
7
+ const execFileAsync = promisify(execFile);
8
+ /**
9
+ * Fallback committer identity for seed commits. Mirrors the workspace clone's
10
+ * bot identity so seed commits attribute to the same bot in `git log`.
11
+ */
12
+ const BOT_NAME = 'Bevel Workflow';
13
+ const BOT_EMAIL = 'bevel-workflow@bevel.software';
14
+ /**
15
+ * The **required scaffolding** — the minimum an operational KB needs. When a
16
+ * branch is loaded, any of these that are missing are added to it; the sample
17
+ * ontology is NOT (it only seeds a fully-empty repo).
18
+ *
19
+ * Two kinds:
20
+ * - {@link REQUIRED_FILES}: repo-root files added when the file is missing.
21
+ * - {@link REQUIRED_DIRS}: well-known root dirs the app expects to exist; when a
22
+ * dir is entirely absent it's created by adding its `<dir>/.gitkeep`. Keyed on
23
+ * the *directory's* existence, not the `.gitkeep` file — so a branch that
24
+ * already has content under `KnowledgeBase/` never gets a pointless placeholder.
25
+ *
26
+ * `roles.yaml` is in neither, and is not part of the template at all: it is
27
+ * generated from `SEED_ADMIN_EMAILS` (see {@link renderRolesYaml}) and written
28
+ * directly, so a repo can't be seeded with a stale hard-coded Admin list.
29
+ */
30
+ const REQUIRED_FILES = ['access.md', 'CLAUDE.md', '.bevelignore', '.gitignore'];
31
+ const REQUIRED_DIRS = [
32
+ KNOWLEDGE_BASE_DIR,
33
+ DATA_DIR,
34
+ AGENTS_DIR,
35
+ PIPELINES_DIR,
36
+ SKILLS_DIR,
37
+ TOOLS_DIR,
38
+ ];
39
+ /** Redact the token from any string that might surface in a log or error. */
40
+ function redact(s) {
41
+ const token = process.env.GITHUB_TOKEN;
42
+ return token ? s.replaceAll(token, '***') : s;
43
+ }
44
+ /** Generate `roles.yaml` granting Admin to each seed email. */
45
+ function renderRolesYaml(adminEmails) {
46
+ const lines = adminEmails.map((e) => ` - ${e}`).join('\n');
47
+ return ('# Identity → role mapping for access control.\n' +
48
+ '# Role names are case- and whitespace-insensitive. The `Admin` role is special:\n' +
49
+ '# only Admins may edit this file, and at least one Admin must always exist.\n' +
50
+ '#\n' +
51
+ '# Generated by the Bevel platform at KB-seed time from SEED_ADMIN_EMAILS.\n' +
52
+ 'roles:\n' +
53
+ ' Admin:\n' +
54
+ `${lines}\n`);
55
+ }
56
+ /**
57
+ * Seeds/tops-up the KB *remote* so the rest of the app's assumption — that the
58
+ * repo it clones already carries the protected branches and base scaffolding —
59
+ * holds even for a brand-new or partially-populated GitHub repo. The template
60
+ * ships inside the platform (`kb-template/`); this reads from it.
61
+ *
62
+ * Split into two moments so the file-level top-up rides along with the clone the
63
+ * app already performs, rather than doing its own extra clones:
64
+ * - {@link ensureRemoteSeeded} runs once before the first clone (an empty remote
65
+ * can't be `clone -b`'d): it seeds an empty repo and makes sure every
66
+ * protected branch *exists* as a ref.
67
+ * - {@link topUpWorkspace} runs on the freshly-cloned workspace of whatever
68
+ * branch a user loads: it fills in any missing base files on that branch.
69
+ */
70
+ export class KbSeedService {
71
+ kbRepoUrl;
72
+ kbTemplateDir;
73
+ protectedBranches;
74
+ defaultBranch;
75
+ seedAdminEmails;
76
+ gitUsername;
77
+ /** Single-flight: the first caller runs the remote pass; the rest await its result. */
78
+ inFlight = null;
79
+ /**
80
+ * @param kbRepoUrl Clone/push URL of the KB remote.
81
+ * @param kbTemplateDir Filesystem path to the `kb-template/` seed source.
82
+ * @param protectedBranches Branch names that must exist (e.g. current/target-company-state).
83
+ * @param defaultBranch The branch new checkouts land on — used as the init
84
+ * branch of the empty-seed commit and the preferred
85
+ * base when creating a missing protected branch.
86
+ * @param seedAdminEmails Admins written into the generated `roles.yaml`.
87
+ * @param gitUsername Basic-auth username for git-over-HTTPS (provider-specific).
88
+ */
89
+ constructor(kbRepoUrl, kbTemplateDir, protectedBranches, defaultBranch, seedAdminEmails, gitUsername = 'x-access-token') {
90
+ this.kbRepoUrl = kbRepoUrl;
91
+ this.kbTemplateDir = kbTemplateDir;
92
+ this.protectedBranches = protectedBranches;
93
+ this.defaultBranch = defaultBranch;
94
+ this.seedAdminEmails = seedAdminEmails;
95
+ this.gitUsername = gitUsername;
96
+ }
97
+ ensureRemoteSeeded() {
98
+ // Cache the promise, not just a boolean, so concurrent first-callers share
99
+ // one run. On failure we clear it so a later call can retry (a transient
100
+ // network blip on ls-remote shouldn't wedge seeding for the whole process).
101
+ if (!this.inFlight) {
102
+ this.inFlight = this.run().catch((err) => {
103
+ this.inFlight = null;
104
+ throw err;
105
+ });
106
+ }
107
+ return this.inFlight;
108
+ }
109
+ async run() {
110
+ const heads = await this.lsRemoteHeads();
111
+ if (heads.size === 0) {
112
+ if (this.seedAdminEmails.length === 0) {
113
+ throw new Error(`KB remote ${redact(this.kbRepoUrl)} is empty and cannot be seeded: ` +
114
+ 'set SEED_ADMIN_EMAILS to the initial Admin email(s). A seeded KB with ' +
115
+ 'no Admin is unusable (access resolution requires at least one Admin).');
116
+ }
117
+ await this.seedEmptyRemote();
118
+ return;
119
+ }
120
+ // Non-empty remote: make sure every protected branch exists as a ref so a
121
+ // later `clone -b <branch>` succeeds. This creates the branch pointer only;
122
+ // per-branch file top-up happens in `topUpWorkspace` when the branch loads.
123
+ const base = this.pickBase(heads);
124
+ for (const branch of this.protectedBranches) {
125
+ if (!heads.has(branch)) {
126
+ await this.createBranchOnRemote(branch, base);
127
+ }
128
+ }
129
+ }
130
+ /**
131
+ * Add any missing base scaffolding to an already-cloned workspace of `branch`,
132
+ * then commit + push it. Called once per fresh clone (any branch a user loads),
133
+ * so the check reuses the clone the app already made instead of a dedicated one.
134
+ *
135
+ * Best-effort: never throws. If the push is rejected (e.g. a concurrent update
136
+ * to the branch), the local scaffolding commit is rolled back so the workspace
137
+ * stays consistent with origin, and the top-up is retried on a future clone.
138
+ */
139
+ async topUpWorkspace(repoDir, branch) {
140
+ try {
141
+ const added = [];
142
+ for (const rel of REQUIRED_FILES) {
143
+ if (!(await this.exists(path.join(repoDir, rel)))) {
144
+ await this.copyTemplateFile(rel, repoDir);
145
+ added.push(rel);
146
+ }
147
+ }
148
+ for (const rootDir of REQUIRED_DIRS) {
149
+ if (!(await this.exists(path.join(repoDir, rootDir)))) {
150
+ const keep = `${rootDir}/.gitkeep`;
151
+ await this.copyTemplateFile(keep, repoDir);
152
+ added.push(keep);
153
+ }
154
+ }
155
+ if (!(await this.exists(path.join(repoDir, 'roles.yaml')))) {
156
+ if (this.seedAdminEmails.length > 0) {
157
+ await fs.writeFile(path.join(repoDir, 'roles.yaml'), renderRolesYaml(this.seedAdminEmails), 'utf8');
158
+ added.push('roles.yaml');
159
+ }
160
+ else {
161
+ console.warn(`[kb-seed] Branch "${branch}" is missing roles.yaml but SEED_ADMIN_EMAILS ` +
162
+ 'is unset — leaving it absent. Access resolution will fail until an ' +
163
+ 'Admin roles.yaml exists; set SEED_ADMIN_EMAILS or add roles.yaml manually.');
164
+ }
165
+ }
166
+ if (added.length === 0)
167
+ return; // already fully scaffolded → no-op
168
+ // Stamp the bot identity so the commit has an author even if the clone
169
+ // wasn't configured with one (the workspace clone already sets the same
170
+ // values, so this is a harmless no-op there).
171
+ await this.stampIdentity(repoDir);
172
+ await this.git(repoDir, ['add', '--', ...added]);
173
+ await this.git(repoDir, ['commit', '-m', `Add missing KB scaffolding: ${added.join(', ')}`]);
174
+ try {
175
+ await this.git(repoDir, ['push', 'origin', `HEAD:refs/heads/${branch}`]);
176
+ console.log(`[kb-seed] Topped up "${branch}" with: ${added.join(', ')}`);
177
+ }
178
+ catch (err) {
179
+ // Roll the local branch back to origin so the workspace never sits ahead
180
+ // of the remote (which would confuse the workflow git layer). The files
181
+ // simply aren't present this session; a later fresh clone retries.
182
+ console.warn(`[kb-seed] Could not push scaffolding to "${branch}", rolling back local commit:`, err instanceof Error ? redact(err.message) : String(err));
183
+ await this.git(repoDir, ['reset', '--hard', `origin/${branch}`]).catch(() => { });
184
+ }
185
+ }
186
+ catch (err) {
187
+ // Top-up is best-effort infrastructure — a failure here must not block the
188
+ // user from loading the branch.
189
+ console.warn(`[kb-seed] Scaffolding top-up for "${branch}" failed (non-fatal):`, err instanceof Error ? redact(err.message) : String(err));
190
+ }
191
+ }
192
+ /** Prefer the default branch as a base, else the first protected branch present, else any head. */
193
+ pickBase(heads) {
194
+ if (heads.has(this.defaultBranch))
195
+ return this.defaultBranch;
196
+ const protectedPresent = this.protectedBranches.find((b) => heads.has(b));
197
+ if (protectedPresent)
198
+ return protectedPresent;
199
+ // Deterministic pick so repeated runs behave identically.
200
+ return [...heads].sort()[0];
201
+ }
202
+ /** `-c` args that inject credentials + longpaths, mirroring the workspace clone. */
203
+ credArgs() {
204
+ const args = ['-c', 'core.longpaths=true'];
205
+ const token = process.env.GITHUB_TOKEN;
206
+ if (token) {
207
+ // The helper reads GITHUB_TOKEN at runtime, so the value never appears in argv.
208
+ // Username is provider-specific; the token is always the Basic-auth password.
209
+ args.push('-c', `credential.helper=!f() { echo "username=${this.gitUsername}"; echo "password=$GITHUB_TOKEN"; }; f`);
210
+ }
211
+ return args;
212
+ }
213
+ async git(cwd, args) {
214
+ try {
215
+ const { stdout } = await execFileAsync('git', args, {
216
+ cwd: cwd ?? undefined,
217
+ env: { ...process.env, LC_ALL: 'C', LANG: 'C' },
218
+ maxBuffer: 32 * 1024 * 1024,
219
+ });
220
+ return stdout.toString();
221
+ }
222
+ catch (err) {
223
+ const msg = err instanceof Error ? err.message : String(err);
224
+ let i = 0;
225
+ while (i < args.length && args[i] === '-c')
226
+ i += 2;
227
+ throw new Error(`git ${args[i] ?? args[0]} failed: ${redact(msg)}`);
228
+ }
229
+ }
230
+ /** Set of branch names on the remote (empty ⇒ uninitialised repo). */
231
+ async lsRemoteHeads() {
232
+ const out = await this.git(null, [...this.credArgs(), 'ls-remote', '--heads', this.kbRepoUrl]);
233
+ const heads = new Set();
234
+ for (const line of out.split('\n')) {
235
+ const m = line.match(/\srefs\/heads\/(.+)$/);
236
+ if (m)
237
+ heads.add(m[1].trim());
238
+ }
239
+ return heads;
240
+ }
241
+ /** Run a block against a throwaway temp dir, always cleaned up. */
242
+ async withTempDir(fn) {
243
+ const dir = await fs.mkdtemp(path.join(os.tmpdir(), 'kb-seed-'));
244
+ try {
245
+ return await fn(dir);
246
+ }
247
+ finally {
248
+ await fs.rm(dir, { recursive: true, force: true }).catch(() => { });
249
+ }
250
+ }
251
+ async stampIdentity(repo) {
252
+ await this.git(repo, ['config', 'user.name', BOT_NAME]);
253
+ await this.git(repo, ['config', 'user.email', BOT_EMAIL]);
254
+ }
255
+ /** Copy the entire template tree into `dest` (roles.yaml isn't in it — it's generated). */
256
+ async copyTemplateTree(dest) {
257
+ const walk = async (relDir) => {
258
+ const abs = path.join(this.kbTemplateDir, relDir);
259
+ const entries = await fs.readdir(abs, { withFileTypes: true });
260
+ for (const entry of entries) {
261
+ const rel = relDir ? path.join(relDir, entry.name) : entry.name;
262
+ if (entry.isDirectory()) {
263
+ await walk(rel);
264
+ }
265
+ else {
266
+ await this.copyTemplateFile(rel, dest);
267
+ }
268
+ }
269
+ };
270
+ await walk('');
271
+ }
272
+ /** Copy one template file (by repo-relative path) into `dest`, creating parents. */
273
+ async copyTemplateFile(relPath, dest) {
274
+ const from = path.join(this.kbTemplateDir, relPath);
275
+ const to = path.join(dest, relPath);
276
+ await fs.mkdir(path.dirname(to), { recursive: true });
277
+ await fs.copyFile(from, to);
278
+ }
279
+ /** `git init` a temp repo, lay down the full template + generated roles.yaml, commit. */
280
+ async buildSeedCommit(dir) {
281
+ await this.git(dir, ['init', '-b', this.defaultBranch]);
282
+ await this.stampIdentity(dir);
283
+ await this.copyTemplateTree(dir);
284
+ await fs.writeFile(path.join(dir, 'roles.yaml'), renderRolesYaml(this.seedAdminEmails), 'utf8');
285
+ await this.git(dir, ['add', '-A']);
286
+ await this.git(dir, ['commit', '-m', 'Seed knowledge base from Bevel template']);
287
+ }
288
+ /** Empty remote → one seed commit pushed to every protected branch. */
289
+ async seedEmptyRemote() {
290
+ await this.withTempDir(async (dir) => {
291
+ await this.buildSeedCommit(dir);
292
+ // Point every protected branch at the seed commit. The init branch is
293
+ // already `defaultBranch`; create the rest as refs to HEAD.
294
+ for (const branch of this.protectedBranches) {
295
+ if (branch !== this.defaultBranch) {
296
+ await this.git(dir, ['branch', branch]);
297
+ }
298
+ }
299
+ await this.git(dir, ['remote', 'add', 'origin', this.kbRepoUrl]);
300
+ // Push only the protected branches — never the stray init branch if it
301
+ // isn't itself protected.
302
+ await this.git(dir, [...this.credArgs(), 'push', '-u', 'origin', ...this.protectedBranches]);
303
+ console.log(`[kb-seed] Seeded empty KB remote with branches: ${this.protectedBranches.join(', ')}`);
304
+ });
305
+ }
306
+ /** Create a missing protected branch on the remote, pointed at `base`'s tip. */
307
+ async createBranchOnRemote(branch, base) {
308
+ await this.withTempDir(async (dir) => {
309
+ await this.git(dir, [...this.credArgs(), 'clone', '--depth', '1', '-b', base, this.kbRepoUrl, dir]);
310
+ // Push base's fetched tip up under the new branch name.
311
+ await this.git(dir, [...this.credArgs(), 'push', 'origin', `HEAD:refs/heads/${branch}`]);
312
+ console.log(`[kb-seed] Created missing protected branch "${branch}" from "${base}"`);
313
+ });
314
+ }
315
+ async exists(p) {
316
+ try {
317
+ await fs.access(p);
318
+ return true;
319
+ }
320
+ catch {
321
+ return false;
322
+ }
323
+ }
324
+ }
325
+ //# sourceMappingURL=kb-seed.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kb-seed.service.js","sourceRoot":"","sources":["../../../src/modules/workspace/kb-seed.service.ts"],"names":[],"mappings":"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"}