@braidhq/server 0.1.0 → 0.2.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 (385) hide show
  1. package/README.md +134 -106
  2. package/dist/app.d.ts +7 -15
  3. package/dist/app.d.ts.map +1 -1
  4. package/dist/app.js +72 -45
  5. package/dist/app.js.map +1 -1
  6. package/dist/authMode.d.ts +39 -0
  7. package/dist/authMode.d.ts.map +1 -0
  8. package/dist/authMode.js +50 -0
  9. package/dist/authMode.js.map +1 -0
  10. package/dist/composeApp.d.ts +79 -0
  11. package/dist/composeApp.d.ts.map +1 -0
  12. package/dist/composeApp.js +136 -0
  13. package/dist/composeApp.js.map +1 -0
  14. package/dist/composeFsApp.d.ts +27 -0
  15. package/dist/composeFsApp.d.ts.map +1 -0
  16. package/dist/{composeFs.js → composeFsApp.js} +118 -125
  17. package/dist/composeFsApp.js.map +1 -0
  18. package/dist/index.d.ts +3 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/infrastructure/_shared/env.d.ts +10 -0
  23. package/dist/infrastructure/_shared/env.d.ts.map +1 -0
  24. package/dist/infrastructure/{env.js → _shared/env.js} +5 -6
  25. package/dist/infrastructure/_shared/env.js.map +1 -0
  26. package/dist/infrastructure/_shared/frontmatter.d.ts +13 -0
  27. package/dist/infrastructure/_shared/frontmatter.d.ts.map +1 -0
  28. package/dist/infrastructure/{fs → _shared}/frontmatter.js +5 -5
  29. package/dist/infrastructure/_shared/frontmatter.js.map +1 -0
  30. package/dist/infrastructure/_shared/jsonFileStore.d.ts.map +1 -0
  31. package/dist/infrastructure/_shared/jsonFileStore.js.map +1 -0
  32. package/dist/infrastructure/{fs → _shared}/paths.d.ts +17 -10
  33. package/dist/infrastructure/_shared/paths.d.ts.map +1 -0
  34. package/dist/infrastructure/{fs → _shared}/paths.js +27 -20
  35. package/dist/infrastructure/_shared/paths.js.map +1 -0
  36. package/dist/infrastructure/auth/AccessPolicy.d.ts +33 -58
  37. package/dist/infrastructure/auth/AccessPolicy.d.ts.map +1 -1
  38. package/dist/infrastructure/auth/AccessPolicy.js +35 -42
  39. package/dist/infrastructure/auth/AccessPolicy.js.map +1 -1
  40. package/dist/infrastructure/auth/SessionStore.d.ts +22 -12
  41. package/dist/infrastructure/auth/SessionStore.d.ts.map +1 -1
  42. package/dist/infrastructure/auth/SessionStore.js +15 -18
  43. package/dist/infrastructure/auth/SessionStore.js.map +1 -1
  44. package/dist/infrastructure/batch/FsBatchPlanRepository.d.ts +79 -0
  45. package/dist/infrastructure/batch/FsBatchPlanRepository.d.ts.map +1 -0
  46. package/dist/infrastructure/{fs → batch}/FsBatchPlanRepository.js +1 -1
  47. package/dist/infrastructure/batch/FsBatchPlanRepository.js.map +1 -0
  48. package/dist/infrastructure/history/GitWorkspaceHistory.d.ts.map +1 -0
  49. package/dist/infrastructure/{git → history}/GitWorkspaceHistory.js +31 -24
  50. package/dist/infrastructure/history/GitWorkspaceHistory.js.map +1 -0
  51. package/dist/infrastructure/history/commitMessage.d.ts.map +1 -0
  52. package/dist/infrastructure/history/commitMessage.js +90 -0
  53. package/dist/infrastructure/history/commitMessage.js.map +1 -0
  54. package/dist/infrastructure/hitl/FsClarificationRepository.d.ts +13 -0
  55. package/dist/infrastructure/hitl/FsClarificationRepository.d.ts.map +1 -0
  56. package/dist/infrastructure/{fs/FsClarifyTicketRepository.js → hitl/FsClarificationRepository.js} +15 -15
  57. package/dist/infrastructure/hitl/FsClarificationRepository.js.map +1 -0
  58. package/dist/infrastructure/hitl/FsProposalRepository.d.ts.map +1 -0
  59. package/dist/infrastructure/{fs → hitl}/FsProposalRepository.js +7 -8
  60. package/dist/infrastructure/hitl/FsProposalRepository.js.map +1 -0
  61. package/dist/infrastructure/hitl/StatusedJsonStore.d.ts +30 -0
  62. package/dist/infrastructure/hitl/StatusedJsonStore.d.ts.map +1 -0
  63. package/dist/infrastructure/{fs/FsStatusedJsonRepository.js → hitl/StatusedJsonStore.js} +3 -3
  64. package/dist/infrastructure/hitl/StatusedJsonStore.js.map +1 -0
  65. package/dist/infrastructure/model/FsModelSerializer.d.ts +96 -0
  66. package/dist/infrastructure/model/FsModelSerializer.d.ts.map +1 -0
  67. package/dist/infrastructure/{fs/FsGraphSerializer.js → model/FsModelSerializer.js} +11 -11
  68. package/dist/infrastructure/model/FsModelSerializer.js.map +1 -0
  69. package/dist/infrastructure/oauth/GoogleOAuth.d.ts +20 -38
  70. package/dist/infrastructure/oauth/GoogleOAuth.d.ts.map +1 -1
  71. package/dist/infrastructure/oauth/GoogleOAuth.js +21 -22
  72. package/dist/infrastructure/oauth/GoogleOAuth.js.map +1 -1
  73. package/dist/infrastructure/reactor/FsReactorCycleRepository.d.ts +29 -0
  74. package/dist/infrastructure/reactor/FsReactorCycleRepository.d.ts.map +1 -0
  75. package/dist/infrastructure/reactor/FsReactorCycleRepository.js +94 -0
  76. package/dist/infrastructure/reactor/FsReactorCycleRepository.js.map +1 -0
  77. package/dist/infrastructure/secrets/SecretStore.d.ts +11 -14
  78. package/dist/infrastructure/secrets/SecretStore.d.ts.map +1 -1
  79. package/dist/infrastructure/secrets/SecretStore.js +4 -4
  80. package/dist/infrastructure/secrets/SecretStore.js.map +1 -1
  81. package/dist/infrastructure/{fs → skill}/FsRunRepository.d.ts +5 -3
  82. package/dist/infrastructure/skill/FsRunRepository.d.ts.map +1 -0
  83. package/dist/infrastructure/{fs → skill}/FsRunRepository.js +11 -9
  84. package/dist/infrastructure/skill/FsRunRepository.js.map +1 -0
  85. package/dist/infrastructure/{fs → skill}/FsSkillRegistry.d.ts +4 -13
  86. package/dist/infrastructure/skill/FsSkillRegistry.d.ts.map +1 -0
  87. package/dist/infrastructure/{fs → skill}/FsSkillRegistry.js +28 -20
  88. package/dist/infrastructure/skill/FsSkillRegistry.js.map +1 -0
  89. package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts +52 -0
  90. package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts.map +1 -0
  91. package/dist/infrastructure/{agent → skill}/SubprocessSkillRunner.js +107 -55
  92. package/dist/infrastructure/skill/SubprocessSkillRunner.js.map +1 -0
  93. package/dist/infrastructure/skill/asyncQueue.d.ts +20 -0
  94. package/dist/infrastructure/skill/asyncQueue.d.ts.map +1 -0
  95. package/dist/infrastructure/{agent → skill}/asyncQueue.js +2 -3
  96. package/dist/infrastructure/{agent → skill}/asyncQueue.js.map +1 -1
  97. package/dist/infrastructure/skill/lineBuffer.d.ts +15 -0
  98. package/dist/infrastructure/skill/lineBuffer.d.ts.map +1 -0
  99. package/dist/infrastructure/{agent/streamJsonParser.js → skill/lineBuffer.js} +5 -17
  100. package/dist/infrastructure/skill/lineBuffer.js.map +1 -0
  101. package/dist/infrastructure/skill/orphanReaper.d.ts +20 -0
  102. package/dist/infrastructure/skill/orphanReaper.d.ts.map +1 -0
  103. package/dist/infrastructure/{orphanReaper.js → skill/orphanReaper.js} +7 -5
  104. package/dist/infrastructure/skill/orphanReaper.js.map +1 -0
  105. package/dist/infrastructure/skill/subprocessEventStream.d.ts +16 -0
  106. package/dist/infrastructure/skill/subprocessEventStream.d.ts.map +1 -0
  107. package/dist/infrastructure/skill/subprocessEventStream.js +29 -0
  108. package/dist/infrastructure/skill/subprocessEventStream.js.map +1 -0
  109. package/dist/infrastructure/source/FsSourceUnitDigest.d.ts +19 -0
  110. package/dist/infrastructure/source/FsSourceUnitDigest.d.ts.map +1 -0
  111. package/dist/infrastructure/{fs → source}/FsSourceUnitDigest.js +9 -9
  112. package/dist/infrastructure/source/FsSourceUnitDigest.js.map +1 -0
  113. package/dist/infrastructure/source/FsSourceUnitObservationRepository.d.ts +31 -0
  114. package/dist/infrastructure/source/FsSourceUnitObservationRepository.d.ts.map +1 -0
  115. package/dist/infrastructure/{fs/FsSourceUnitStateRepository.js → source/FsSourceUnitObservationRepository.js} +18 -17
  116. package/dist/infrastructure/source/FsSourceUnitObservationRepository.js.map +1 -0
  117. package/dist/infrastructure/{fs → source}/intentScan.d.ts +4 -0
  118. package/dist/infrastructure/source/intentScan.d.ts.map +1 -0
  119. package/dist/infrastructure/{fs → source}/intentScan.js +18 -16
  120. package/dist/infrastructure/source/intentScan.js.map +1 -0
  121. package/dist/infrastructure/users/UserDirectoryFromRegistry.d.ts +2 -2
  122. package/dist/infrastructure/users/UserDirectoryFromRegistry.js +2 -2
  123. package/dist/infrastructure/users/UserRegistryFile.d.ts +4 -5
  124. package/dist/infrastructure/users/UserRegistryFile.d.ts.map +1 -1
  125. package/dist/infrastructure/users/UserRegistryFile.js +6 -8
  126. package/dist/infrastructure/users/UserRegistryFile.js.map +1 -1
  127. package/dist/infrastructure/users/ensureWorkspaceOwners.d.ts +9 -6
  128. package/dist/infrastructure/users/ensureWorkspaceOwners.d.ts.map +1 -1
  129. package/dist/infrastructure/users/ensureWorkspaceOwners.js +10 -7
  130. package/dist/infrastructure/users/ensureWorkspaceOwners.js.map +1 -1
  131. package/dist/infrastructure/workspace/FsWorkspaceRepository.d.ts.map +1 -0
  132. package/dist/infrastructure/{fs → workspace}/FsWorkspaceRepository.js +7 -6
  133. package/dist/infrastructure/workspace/FsWorkspaceRepository.js.map +1 -0
  134. package/dist/infrastructure/workspace/WorkspaceDiscovery.d.ts +18 -0
  135. package/dist/infrastructure/workspace/WorkspaceDiscovery.d.ts.map +1 -0
  136. package/dist/infrastructure/{fs → workspace}/WorkspaceDiscovery.js +15 -11
  137. package/dist/infrastructure/workspace/WorkspaceDiscovery.js.map +1 -0
  138. package/dist/infrastructure/{fs → workspace}/WorkspaceRegistryFile.d.ts +10 -9
  139. package/dist/infrastructure/workspace/WorkspaceRegistryFile.d.ts.map +1 -0
  140. package/dist/infrastructure/{fs → workspace}/WorkspaceRegistryFile.js +15 -17
  141. package/dist/infrastructure/workspace/WorkspaceRegistryFile.js.map +1 -0
  142. package/dist/infrastructure/workspace/productManifestWriter.d.ts +24 -0
  143. package/dist/infrastructure/workspace/productManifestWriter.d.ts.map +1 -0
  144. package/dist/infrastructure/{fs → workspace}/productManifestWriter.js +14 -26
  145. package/dist/infrastructure/workspace/productManifestWriter.js.map +1 -0
  146. package/dist/middleware/auth.d.ts +27 -17
  147. package/dist/middleware/auth.d.ts.map +1 -1
  148. package/dist/middleware/auth.js +59 -53
  149. package/dist/middleware/auth.js.map +1 -1
  150. package/dist/middleware/cors.d.ts.map +1 -1
  151. package/dist/middleware/cors.js +4 -1
  152. package/dist/middleware/cors.js.map +1 -1
  153. package/dist/middleware/error.d.ts.map +1 -1
  154. package/dist/middleware/error.js +15 -13
  155. package/dist/middleware/error.js.map +1 -1
  156. package/dist/middleware/workspaceAccess.d.ts +23 -19
  157. package/dist/middleware/workspaceAccess.d.ts.map +1 -1
  158. package/dist/middleware/workspaceAccess.js +31 -26
  159. package/dist/middleware/workspaceAccess.js.map +1 -1
  160. package/dist/policy/CapabilityCheck.d.ts +5 -5
  161. package/dist/policy/PermissionRegistry.d.ts +11 -9
  162. package/dist/policy/PermissionRegistry.d.ts.map +1 -1
  163. package/dist/policy/PermissionRegistry.js +10 -8
  164. package/dist/policy/PermissionRegistry.js.map +1 -1
  165. package/dist/policy/ViewerContext.d.ts +13 -11
  166. package/dist/policy/ViewerContext.d.ts.map +1 -1
  167. package/dist/policy/checks.d.ts +9 -9
  168. package/dist/policy/checks.d.ts.map +1 -1
  169. package/dist/policy/checks.js +14 -11
  170. package/dist/policy/checks.js.map +1 -1
  171. package/dist/policy/defaultRegistry.d.ts +3 -4
  172. package/dist/policy/defaultRegistry.d.ts.map +1 -1
  173. package/dist/policy/defaultRegistry.js +3 -4
  174. package/dist/policy/defaultRegistry.js.map +1 -1
  175. package/dist/policy/index.d.ts +2 -2
  176. package/dist/policy/index.d.ts.map +1 -1
  177. package/dist/policy/index.js +1 -1
  178. package/dist/policy/index.js.map +1 -1
  179. package/dist/policy/resolveViewer.d.ts +9 -9
  180. package/dist/policy/resolveViewer.js +9 -9
  181. package/dist/routes/_shared.d.ts +93 -153
  182. package/dist/routes/_shared.d.ts.map +1 -1
  183. package/dist/routes/_shared.js +9 -5
  184. package/dist/routes/_shared.js.map +1 -1
  185. package/dist/routes/admin.d.ts +1 -1
  186. package/dist/routes/admin.d.ts.map +1 -1
  187. package/dist/routes/admin.js +13 -12
  188. package/dist/routes/admin.js.map +1 -1
  189. package/dist/routes/auth.d.ts +12 -10
  190. package/dist/routes/auth.d.ts.map +1 -1
  191. package/dist/routes/auth.js +32 -34
  192. package/dist/routes/auth.js.map +1 -1
  193. package/dist/routes/clarifications.d.ts +8 -0
  194. package/dist/routes/clarifications.d.ts.map +1 -0
  195. package/dist/routes/clarifications.js +243 -0
  196. package/dist/routes/clarifications.js.map +1 -0
  197. package/dist/routes/edges.d.ts.map +1 -1
  198. package/dist/routes/edges.js +2 -6
  199. package/dist/routes/edges.js.map +1 -1
  200. package/dist/routes/history.d.ts.map +1 -1
  201. package/dist/routes/history.js +12 -10
  202. package/dist/routes/history.js.map +1 -1
  203. package/dist/routes/nodes.d.ts.map +1 -1
  204. package/dist/routes/nodes.js +4 -8
  205. package/dist/routes/nodes.js.map +1 -1
  206. package/dist/routes/oauth.d.ts +6 -7
  207. package/dist/routes/oauth.d.ts.map +1 -1
  208. package/dist/routes/oauth.js +6 -7
  209. package/dist/routes/oauth.js.map +1 -1
  210. package/dist/routes/proposals.d.ts +2 -2
  211. package/dist/routes/proposals.d.ts.map +1 -1
  212. package/dist/routes/proposals.js +30 -28
  213. package/dist/routes/proposals.js.map +1 -1
  214. package/dist/routes/reactorCycles.d.ts +7 -0
  215. package/dist/routes/reactorCycles.d.ts.map +1 -0
  216. package/dist/routes/reactorCycles.js +60 -0
  217. package/dist/routes/reactorCycles.js.map +1 -0
  218. package/dist/routes/runs.d.ts.map +1 -1
  219. package/dist/routes/runs.js +22 -19
  220. package/dist/routes/runs.js.map +1 -1
  221. package/dist/routes/skillInputOptions.d.ts +2 -2
  222. package/dist/routes/skillInputOptions.d.ts.map +1 -1
  223. package/dist/routes/skillInputOptions.js +43 -45
  224. package/dist/routes/skillInputOptions.js.map +1 -1
  225. package/dist/routes/skills.d.ts +19 -1
  226. package/dist/routes/skills.d.ts.map +1 -1
  227. package/dist/routes/skills.js +139 -7
  228. package/dist/routes/skills.js.map +1 -1
  229. package/dist/routes/sourceLoaders.d.ts.map +1 -1
  230. package/dist/routes/sourceLoaders.js +1 -0
  231. package/dist/routes/sourceLoaders.js.map +1 -1
  232. package/dist/routes/sourceUnitObservations.d.ts +20 -0
  233. package/dist/routes/sourceUnitObservations.d.ts.map +1 -0
  234. package/dist/routes/sourceUnitObservations.js +80 -0
  235. package/dist/routes/sourceUnitObservations.js.map +1 -0
  236. package/dist/routes/sourceWebhooks.d.ts +26 -0
  237. package/dist/routes/sourceWebhooks.d.ts.map +1 -0
  238. package/dist/routes/sourceWebhooks.js +301 -0
  239. package/dist/routes/sourceWebhooks.js.map +1 -0
  240. package/dist/routes/users.d.ts +0 -2
  241. package/dist/routes/users.d.ts.map +1 -1
  242. package/dist/routes/users.js +15 -33
  243. package/dist/routes/users.js.map +1 -1
  244. package/dist/routes/workspaceEvents.d.ts +5 -4
  245. package/dist/routes/workspaceEvents.d.ts.map +1 -1
  246. package/dist/routes/workspaceEvents.js +7 -6
  247. package/dist/routes/workspaceEvents.js.map +1 -1
  248. package/dist/routes/workspaceMembers.d.ts +1 -1
  249. package/dist/routes/workspaceMembers.d.ts.map +1 -1
  250. package/dist/routes/workspaceMembers.js +2 -2
  251. package/dist/routes/workspaceMembers.js.map +1 -1
  252. package/dist/routes/workspaces.d.ts +21 -10
  253. package/dist/routes/workspaces.d.ts.map +1 -1
  254. package/dist/routes/workspaces.js +97 -69
  255. package/dist/routes/workspaces.js.map +1 -1
  256. package/dist/server.js +6 -70
  257. package/dist/server.js.map +1 -1
  258. package/dist/startServer.d.ts +17 -0
  259. package/dist/startServer.d.ts.map +1 -0
  260. package/dist/startServer.js +81 -0
  261. package/dist/startServer.js.map +1 -0
  262. package/dist/startup.d.ts +28 -0
  263. package/dist/startup.d.ts.map +1 -0
  264. package/dist/startup.js +94 -0
  265. package/dist/startup.js.map +1 -0
  266. package/package.json +9 -9
  267. package/dist/composeFs.d.ts +0 -55
  268. package/dist/composeFs.d.ts.map +0 -1
  269. package/dist/composeFs.js.map +0 -1
  270. package/dist/composition.d.ts +0 -133
  271. package/dist/composition.d.ts.map +0 -1
  272. package/dist/composition.js +0 -113
  273. package/dist/composition.js.map +0 -1
  274. package/dist/infrastructure/agent/SubprocessSkillRunner.d.ts +0 -75
  275. package/dist/infrastructure/agent/SubprocessSkillRunner.d.ts.map +0 -1
  276. package/dist/infrastructure/agent/SubprocessSkillRunner.js.map +0 -1
  277. package/dist/infrastructure/agent/asyncQueue.d.ts +0 -22
  278. package/dist/infrastructure/agent/asyncQueue.d.ts.map +0 -1
  279. package/dist/infrastructure/agent/mcpConfig.d.ts +0 -38
  280. package/dist/infrastructure/agent/mcpConfig.d.ts.map +0 -1
  281. package/dist/infrastructure/agent/mcpConfig.js +0 -55
  282. package/dist/infrastructure/agent/mcpConfig.js.map +0 -1
  283. package/dist/infrastructure/agent/streamJsonParser.d.ts +0 -20
  284. package/dist/infrastructure/agent/streamJsonParser.d.ts.map +0 -1
  285. package/dist/infrastructure/agent/streamJsonParser.js.map +0 -1
  286. package/dist/infrastructure/agent/subprocessEventStream.d.ts +0 -26
  287. package/dist/infrastructure/agent/subprocessEventStream.d.ts.map +0 -1
  288. package/dist/infrastructure/agent/subprocessEventStream.js +0 -112
  289. package/dist/infrastructure/agent/subprocessEventStream.js.map +0 -1
  290. package/dist/infrastructure/auth/ensureApprovedEmails.d.ts +0 -16
  291. package/dist/infrastructure/auth/ensureApprovedEmails.d.ts.map +0 -1
  292. package/dist/infrastructure/auth/ensureApprovedEmails.js +0 -20
  293. package/dist/infrastructure/auth/ensureApprovedEmails.js.map +0 -1
  294. package/dist/infrastructure/env.d.ts +0 -11
  295. package/dist/infrastructure/env.d.ts.map +0 -1
  296. package/dist/infrastructure/env.js.map +0 -1
  297. package/dist/infrastructure/fs/FsBatchPlanRepository.d.ts +0 -300
  298. package/dist/infrastructure/fs/FsBatchPlanRepository.d.ts.map +0 -1
  299. package/dist/infrastructure/fs/FsBatchPlanRepository.js.map +0 -1
  300. package/dist/infrastructure/fs/FsClarifyTicketRepository.d.ts +0 -13
  301. package/dist/infrastructure/fs/FsClarifyTicketRepository.d.ts.map +0 -1
  302. package/dist/infrastructure/fs/FsClarifyTicketRepository.js.map +0 -1
  303. package/dist/infrastructure/fs/FsDecisionRepository.d.ts +0 -13
  304. package/dist/infrastructure/fs/FsDecisionRepository.d.ts.map +0 -1
  305. package/dist/infrastructure/fs/FsDecisionRepository.js +0 -56
  306. package/dist/infrastructure/fs/FsDecisionRepository.js.map +0 -1
  307. package/dist/infrastructure/fs/FsGraphSerializer.d.ts +0 -629
  308. package/dist/infrastructure/fs/FsGraphSerializer.d.ts.map +0 -1
  309. package/dist/infrastructure/fs/FsGraphSerializer.js.map +0 -1
  310. package/dist/infrastructure/fs/FsProposalRepository.d.ts.map +0 -1
  311. package/dist/infrastructure/fs/FsProposalRepository.js.map +0 -1
  312. package/dist/infrastructure/fs/FsRunRepository.d.ts.map +0 -1
  313. package/dist/infrastructure/fs/FsRunRepository.js.map +0 -1
  314. package/dist/infrastructure/fs/FsSkillRegistry.d.ts.map +0 -1
  315. package/dist/infrastructure/fs/FsSkillRegistry.js.map +0 -1
  316. package/dist/infrastructure/fs/FsSourceUnitDigest.d.ts +0 -19
  317. package/dist/infrastructure/fs/FsSourceUnitDigest.d.ts.map +0 -1
  318. package/dist/infrastructure/fs/FsSourceUnitDigest.js.map +0 -1
  319. package/dist/infrastructure/fs/FsSourceUnitStateRepository.d.ts +0 -30
  320. package/dist/infrastructure/fs/FsSourceUnitStateRepository.d.ts.map +0 -1
  321. package/dist/infrastructure/fs/FsSourceUnitStateRepository.js.map +0 -1
  322. package/dist/infrastructure/fs/FsStatusedJsonRepository.d.ts +0 -35
  323. package/dist/infrastructure/fs/FsStatusedJsonRepository.d.ts.map +0 -1
  324. package/dist/infrastructure/fs/FsStatusedJsonRepository.js.map +0 -1
  325. package/dist/infrastructure/fs/FsWorkspaceRepository.d.ts.map +0 -1
  326. package/dist/infrastructure/fs/FsWorkspaceRepository.js.map +0 -1
  327. package/dist/infrastructure/fs/WorkspaceDiscovery.d.ts +0 -15
  328. package/dist/infrastructure/fs/WorkspaceDiscovery.d.ts.map +0 -1
  329. package/dist/infrastructure/fs/WorkspaceDiscovery.js.map +0 -1
  330. package/dist/infrastructure/fs/WorkspaceRegistryFile.d.ts.map +0 -1
  331. package/dist/infrastructure/fs/WorkspaceRegistryFile.js.map +0 -1
  332. package/dist/infrastructure/fs/frontmatter.d.ts +0 -13
  333. package/dist/infrastructure/fs/frontmatter.d.ts.map +0 -1
  334. package/dist/infrastructure/fs/frontmatter.js.map +0 -1
  335. package/dist/infrastructure/fs/intentScan.d.ts.map +0 -1
  336. package/dist/infrastructure/fs/intentScan.js.map +0 -1
  337. package/dist/infrastructure/fs/jsonFileStore.d.ts.map +0 -1
  338. package/dist/infrastructure/fs/jsonFileStore.js.map +0 -1
  339. package/dist/infrastructure/fs/paths.d.ts.map +0 -1
  340. package/dist/infrastructure/fs/paths.js.map +0 -1
  341. package/dist/infrastructure/fs/productManifestWriter.d.ts +0 -22
  342. package/dist/infrastructure/fs/productManifestWriter.d.ts.map +0 -1
  343. package/dist/infrastructure/fs/productManifestWriter.js.map +0 -1
  344. package/dist/infrastructure/git/GitWorkspaceHistory.d.ts.map +0 -1
  345. package/dist/infrastructure/git/GitWorkspaceHistory.js.map +0 -1
  346. package/dist/infrastructure/git/commitMessage.d.ts.map +0 -1
  347. package/dist/infrastructure/git/commitMessage.js +0 -71
  348. package/dist/infrastructure/git/commitMessage.js.map +0 -1
  349. package/dist/infrastructure/orphanReaper.d.ts +0 -18
  350. package/dist/infrastructure/orphanReaper.d.ts.map +0 -1
  351. package/dist/infrastructure/orphanReaper.js.map +0 -1
  352. package/dist/infrastructure/users/ensureLocalUser.d.ts +0 -15
  353. package/dist/infrastructure/users/ensureLocalUser.d.ts.map +0 -1
  354. package/dist/infrastructure/users/ensureLocalUser.js +0 -38
  355. package/dist/infrastructure/users/ensureLocalUser.js.map +0 -1
  356. package/dist/middleware/requireAdmin.d.ts +0 -10
  357. package/dist/middleware/requireAdmin.d.ts.map +0 -1
  358. package/dist/middleware/requireAdmin.js +0 -24
  359. package/dist/middleware/requireAdmin.js.map +0 -1
  360. package/dist/middleware/userId.d.ts +0 -16
  361. package/dist/middleware/userId.d.ts.map +0 -1
  362. package/dist/middleware/userId.js +0 -27
  363. package/dist/middleware/userId.js.map +0 -1
  364. package/dist/policy/Capability.d.ts +0 -12
  365. package/dist/policy/Capability.d.ts.map +0 -1
  366. package/dist/policy/Capability.js +0 -31
  367. package/dist/policy/Capability.js.map +0 -1
  368. package/dist/routes/clarify.d.ts +0 -9
  369. package/dist/routes/clarify.d.ts.map +0 -1
  370. package/dist/routes/clarify.js +0 -274
  371. package/dist/routes/clarify.js.map +0 -1
  372. package/dist/routes/decisions.d.ts +0 -7
  373. package/dist/routes/decisions.d.ts.map +0 -1
  374. package/dist/routes/decisions.js +0 -68
  375. package/dist/routes/decisions.js.map +0 -1
  376. package/dist/routes/sourceUnitStates.d.ts +0 -7
  377. package/dist/routes/sourceUnitStates.d.ts.map +0 -1
  378. package/dist/routes/sourceUnitStates.js +0 -45
  379. package/dist/routes/sourceUnitStates.js.map +0 -1
  380. /package/dist/infrastructure/{fs → _shared}/jsonFileStore.d.ts +0 -0
  381. /package/dist/infrastructure/{fs → _shared}/jsonFileStore.js +0 -0
  382. /package/dist/infrastructure/{git → history}/GitWorkspaceHistory.d.ts +0 -0
  383. /package/dist/infrastructure/{git → history}/commitMessage.d.ts +0 -0
  384. /package/dist/infrastructure/{fs → hitl}/FsProposalRepository.d.ts +0 -0
  385. /package/dist/infrastructure/{fs → workspace}/FsWorkspaceRepository.d.ts +0 -0
@@ -3,7 +3,7 @@ import process from 'node:process';
3
3
  import { BatchPlan } from '@braidhq/core';
4
4
  import { BatchPlan as BatchPlanData } from '@braidhq/schema';
5
5
  import { z } from 'zod';
6
- import { batchPlanPath, workspaceArtifactsDir } from './paths.js';
6
+ import { batchPlanPath, workspaceArtifactsDir } from '../_shared/paths.js';
7
7
  export const BATCH_PLAN_VERSION = 1;
8
8
  export const BatchPlanFile = z.object({
9
9
  version: z.number().int(),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FsBatchPlanRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/batch/FsBatchPlanRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE1E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAEnC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACzB,IAAI,EAAE,aAAa;CACpB,CAAC,CAAA;AAEF,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,IAAI,CAAC,SAAoB;QAC7B,IAAI,GAAW,CAAA;QACf,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBACpD,OAAO,IAAI,CAAA;YACb,MAAM,KAAK,CAAA;QACb,CAAC;QACD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QACnD,IAAI,MAAM,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,uCAAuC,SAAS,CAAC,QAAQ,cAAc,kBAAkB,SAAS,MAAM,CAAC,OAAO,EAAE,CACnH,CAAA;QACH,CAAC;QACD,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAoB,EAAE,IAAe;QAC9C,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3E,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAA;QACpE,oEAAoE;QACpE,MAAM,GAAG,GAAG,GAAG,IAAI,QAAQ,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;QACtD,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACtE,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAoB;QAC9B,MAAM,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9D,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitWorkspaceHistory.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/history/GitWorkspaceHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACpF,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,QAAQ,EACR,aAAa,EACb,OAAO,EAER,MAAM,iBAAiB,CAAA;AAIxB,OAAO,EAAE,SAAS,EAA0B,MAAM,iBAAiB,CAAA;AAsDnE,qBAAa,mBAAoB,YAAW,gBAAgB;IACpD,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBtD,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAYxE,WAAW,CACf,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC;IAiB3B,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAe3E,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAoB/E,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC;IAWjF,OAAO,CACX,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,SAAS,CAAC;IAoBf,GAAG,CACP,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;IAwBb,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC;IAY3D,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAKpD,iBAAiB;YAUjB,cAAc;CAiB7B"}
@@ -3,7 +3,7 @@ import { writeFile } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
4
  import { CommitSha, Timestamp, WorkspaceId } from '@braidhq/schema';
5
5
  import { simpleGit } from 'simple-git';
6
- import { GRAPH_JSON_VERSION, GraphJsonFile } from '../fs/FsGraphSerializer.js';
6
+ import { MODEL_JSON_VERSION, ModelJsonFile } from '../model/FsModelSerializer.js';
7
7
  import { parseCommitMessage, serializeCommitMessage } from './commitMessage.js';
8
8
  // ASCII control chars never appear in commit subjects / refnames.
9
9
  const LOG_FIELD_SEPARATOR = '';
@@ -21,7 +21,8 @@ const TAG_FORMAT = [
21
21
  '%(taggeremail)',
22
22
  '%(contents:subject)',
23
23
  ].join(TAG_FIELD_SEPARATOR) + TAG_RECORD_SEPARATOR;
24
- // Intent docs + codebases are re-fetchable; tracking them would nest foreign `.git/` dirs and bloat history.
24
+ // Intent docs and codebases are re-fetchable.
25
+ // Tracking them would nest foreign `.git/` dirs and bloat history.
25
26
  const DEFAULT_GITIGNORE = `# Braid auto-generated.
26
27
 
27
28
  .braid/
@@ -39,7 +40,8 @@ const INITIAL_COMMIT = {
39
40
  subject: 'workspace registered',
40
41
  userId: BOOTSTRAP_USER_ID,
41
42
  };
42
- // `core.quotePath=false` keeps non-ASCII paths intact in log / name-status output.
43
+ // `core.quotePath=false` keeps non-ASCII paths intact,
44
+ // in log and name-status output.
43
45
  function openGit(baseDir) {
44
46
  return simpleGit({
45
47
  baseDir,
@@ -57,14 +59,16 @@ export class GitWorkspaceHistory {
57
59
  if (!existsSync(gitignorePath))
58
60
  await writeFile(gitignorePath, DEFAULT_GITIGNORE, 'utf-8');
59
61
  await git.add(['-A']);
60
- // Allow empty when the workspace dir has nothing tracked yet so HEAD still exists for later commits to parent on.
62
+ // Allow empty when the workspace dir has nothing tracked yet,
63
+ // so HEAD exists for later commits to parent on.
61
64
  const allowEmpty = !(await this.hasPendingChanges(git));
62
65
  await this.commitWithMeta(git, INITIAL_COMMIT, { allowEmpty });
63
66
  }
64
67
  async commit(workspace, message) {
65
68
  const git = openGit(workspace.rootPath);
66
69
  await git.add(['-A']);
67
- // Redundant commit attempts (e.g. reject after the artifact was already persisted) resolve to a no-op.
70
+ // Redundant commit attempts resolve to a no-op,
71
+ // for example a reject after the artifact was already persisted.
68
72
  if (!(await this.hasPendingChanges(git))) {
69
73
  const head = await git.revparse(['HEAD']);
70
74
  return CommitSha.parse(head.trim());
@@ -78,7 +82,7 @@ export class GitWorkspaceHistory {
78
82
  if (options?.since)
79
83
  args.splice(1, 0, `${options.since}^`);
80
84
  const raw = await git.raw(args).catch((err) => {
81
- // Fresh repo with no commits `git log` exits non-zero; treat as empty.
85
+ // Fresh repo with no commits, `git log` exits non-zero. Treat as empty.
82
86
  if (looksLikeNoCommits(err))
83
87
  return '';
84
88
  throw err;
@@ -103,23 +107,24 @@ export class GitWorkspaceHistory {
103
107
  }
104
108
  async readGraphAtCommit(workspace, sha) {
105
109
  const git = openGit(workspace.rootPath);
106
- // Pre-bootstrap commits don't carry `graph.json`; empty snapshot lets diffs classify everything as `added`.
107
- const raw = await git.raw(['show', `${sha}:artifacts/graph.json`]).catch((err) => {
110
+ // Pre-bootstrap commits don't carry `model.json`.
111
+ // An empty snapshot lets diffs classify everything as `added`.
112
+ const raw = await git.raw(['show', `${sha}:artifacts/model.json`]).catch((err) => {
108
113
  if (looksLikePathNotInCommit(err) || looksLikeUnknownRevision(err))
109
114
  return '';
110
115
  throw err;
111
116
  });
112
117
  if (!raw.trim())
113
118
  return { nodes: [], edges: [] };
114
- const parsed = GraphJsonFile.parse(JSON.parse(raw));
115
- if (parsed.version !== GRAPH_JSON_VERSION) {
116
- throw new Error(`graph.json version mismatch at ${sha}: expected ${GRAPH_JSON_VERSION}, got ${parsed.version}`);
119
+ const parsed = ModelJsonFile.parse(JSON.parse(raw));
120
+ if (parsed.version !== MODEL_JSON_VERSION) {
121
+ throw new Error(`model.json version mismatch at ${sha}: expected ${MODEL_JSON_VERSION}, got ${parsed.version}`);
117
122
  }
118
123
  return { nodes: parsed.nodes, edges: parsed.edges };
119
124
  }
120
125
  async getCommitDiff(workspace, sha) {
121
126
  const git = openGit(workspace.rootPath);
122
- // `--root` keeps the root commit diffable against the empty tree instead of erroring.
127
+ // `--root` keeps the root commit diffable against the empty tree, instead of erroring.
123
128
  const raw = await git.raw(['show', '--name-status', '--root', '--format=', sha]).catch((err) => {
124
129
  if (looksLikeUnknownRevision(err))
125
130
  return '';
@@ -133,7 +138,8 @@ export class GitWorkspaceHistory {
133
138
  const head = CommitSha.parse(headRaw.trim());
134
139
  if (head === targetSha)
135
140
  return head;
136
- // `checkout <sha> -- .` only restores files present in <sha>; we need an EXACT match so newer files must also go.
141
+ // `checkout <sha> -- .` only restores files present in <sha>.
142
+ // We need an EXACT match, so newer files must also go.
137
143
  await git.raw(['read-tree', targetSha]);
138
144
  await git.raw(['checkout-index', '--force', '--all']);
139
145
  await git.raw(['clean', '-fd']);
@@ -148,7 +154,8 @@ export class GitWorkspaceHistory {
148
154
  async tag(workspace, sha, name, note) {
149
155
  const git = openGit(workspace.rootPath);
150
156
  if (note) {
151
- // Annotated tags need a committer identity; pin inline so CI runners without global git config don't fail.
157
+ // Annotated tags need a committer identity. Pin it inline,
158
+ // so CI runners without global git config don't fail.
152
159
  await git.raw([
153
160
  '-c',
154
161
  `user.name=${BOOTSTRAP_USER_ID}`,
@@ -192,11 +199,9 @@ export class GitWorkspaceHistory {
192
199
  || status.not_added.length > 0;
193
200
  }
194
201
  async commitWithMeta(git, message, options) {
195
- // `authorName` / `authorEmail` are snapshotted at commit time so
196
- // a future rename of the user record doesn't rewrite git history.
197
- // When absent (bootstrap, source-sync, pre-Phase-A artifacts) we
198
- // fall back to the opaque `userId` for both — same behaviour as
199
- // before Theme 13 landed.
202
+ // `authorName` / `authorEmail` are snapshotted at commit time,
203
+ // so a later rename of the user record can't rewrite git history.
204
+ // When absent, we fall back to the opaque `userId` for both.
200
205
  const name = message.authorName ?? message.userId;
201
206
  const email = message.authorEmail ?? `${message.userId}@braid.local`;
202
207
  const args = ['commit', '-m', serializeCommitMessage(message), `--author=${name} <${email}>`];
@@ -222,7 +227,8 @@ function parseLogRecord(record, workspaceId) {
222
227
  parents: parents.trim()
223
228
  ? parents.trim().split(' ').map(s => CommitSha.parse(s.trim()))
224
229
  : [],
225
- // Stats are derived lazily via `getCommitDiff` to avoid N extra diff calls per list page.
230
+ // Stats are derived lazily via `getCommitDiff`,
231
+ // to avoid N extra diff calls per list page.
226
232
  stats: null,
227
233
  };
228
234
  }
@@ -273,7 +279,7 @@ function parseNameStatus(raw) {
273
279
  function splitLogRecords(raw) {
274
280
  return raw.split(LOG_RECORD_SEPARATOR).map(s => s.trim()).filter(s => s.length > 0);
275
281
  }
276
- // Unknown letters fall back to `modified` so the row still surfaces.
282
+ // Unknown letters fall back to `updated` so the row still surfaces.
277
283
  function statusFromCode(code) {
278
284
  switch (code) {
279
285
  case 'A':
@@ -282,9 +288,9 @@ function statusFromCode(code) {
282
288
  case 'D':
283
289
  return 'removed';
284
290
  case 'M':
285
- return 'modified';
291
+ return 'updated';
286
292
  default:
287
- return 'modified';
293
+ return 'updated';
288
294
  }
289
295
  }
290
296
  function looksLikeNoCommits(err) {
@@ -295,7 +301,8 @@ function looksLikeUnknownRevision(err) {
295
301
  const msg = err instanceof Error ? err.message : String(err);
296
302
  return /unknown revision|bad revision|ambiguous argument/i.test(msg);
297
303
  }
298
- // `git show <sha>:<path>` for an untracked path reports "exists on disk, but not in" or "does not exist in".
304
+ // `git show <sha>:<path>` for an untracked path reports a specific message,
305
+ // either "exists on disk, but not in" or "does not exist in".
299
306
  function looksLikePathNotInCommit(err) {
300
307
  const msg = err instanceof Error ? err.message : String(err);
301
308
  return /exists on disk, but not in|does not exist in|path .* does not exist/i.test(msg);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitWorkspaceHistory.js","sourceRoot":"","sources":["../../../src/infrastructure/history/GitWorkspaceHistory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commitMessage.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/history/commitMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAcpD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAwBrE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAgC7D"}
@@ -0,0 +1,90 @@
1
+ import { ClarificationId, CommitKind, CommitSha, ProposalId, SourceId, UserId, } from '@braidhq/schema';
2
+ // Trailer keys recognised by `git interpret-trailers`,
3
+ // so future tooling can lean on the same parser.
4
+ const TRAILER_KEY_PATTERN = /^[a-z][a-z-]*$/i;
5
+ export function serializeCommitMessage(message) {
6
+ const trailers = [
7
+ `Kind: ${message.kind}`,
8
+ `Author: ${message.userId}`,
9
+ ];
10
+ if (message.proposalId)
11
+ trailers.push(`Proposal-Id: ${message.proposalId}`);
12
+ if (message.clarificationId)
13
+ trailers.push(`Clarification-Id: ${message.clarificationId}`);
14
+ if (message.sourceId)
15
+ trailers.push(`Source-Id: ${message.sourceId}`);
16
+ if (message.revertedFrom)
17
+ trailers.push(`Reverted-From: ${message.revertedFrom}`);
18
+ if (message.revertedTo)
19
+ trailers.push(`Reverted-To: ${message.revertedTo}`);
20
+ // Subjects can span lines, reject/skip reasons and answer notes are free text.
21
+ // First line stays the git subject, the rest becomes the commit body,
22
+ // so `parseCommitMessage` can rebuild the whole subject with nothing dropped.
23
+ const [firstLine = '', ...bodyLines] = message.subject.split('\n');
24
+ const body = bodyLines.join('\n').trim();
25
+ const header = body
26
+ ? `${message.kind}: ${firstLine}\n\n${body}`
27
+ : `${message.kind}: ${firstLine}`;
28
+ return `${header}\n\n${trailers.join('\n')}\n`;
29
+ }
30
+ export function parseCommitMessage(raw) {
31
+ const lines = raw.split('\n');
32
+ const subjectLine = lines[0] ?? '';
33
+ const colonIdx = subjectLine.indexOf(':');
34
+ const firstLine = colonIdx >= 0 ? subjectLine.slice(colonIdx + 1).trim() : subjectLine.trim();
35
+ // Split off the free-text body the serializer stored below the subject,
36
+ // so a multi-line reason or note survives the round-trip intact.
37
+ const { body, trailers } = splitBodyAndTrailers(lines);
38
+ const subject = body ? `${firstLine}\n${body}` : firstLine;
39
+ const kindRaw = trailers.Kind ?? subjectLine.slice(0, colonIdx).trim();
40
+ // Fall back to `snapshot` on unknown kinds,
41
+ // so a manual `git commit` from the CLI still renders in the timeline.
42
+ const kind = CommitKind.safeParse(kindRaw).data ?? 'snapshot';
43
+ const userId = UserId.parse(trailers.Author ?? 'unknown');
44
+ const out = {
45
+ kind,
46
+ subject: subject || `(unsubject ${kind})`,
47
+ userId,
48
+ };
49
+ if (trailers['Proposal-Id'])
50
+ Object.assign(out, { proposalId: ProposalId.parse(trailers['Proposal-Id']) });
51
+ if (trailers['Clarification-Id'])
52
+ Object.assign(out, { clarificationId: ClarificationId.parse(trailers['Clarification-Id']) });
53
+ if (trailers['Source-Id'])
54
+ Object.assign(out, { sourceId: SourceId.parse(trailers['Source-Id']) });
55
+ if (trailers['Reverted-From'])
56
+ Object.assign(out, { revertedFrom: CommitSha.parse(trailers['Reverted-From']) });
57
+ if (trailers['Reverted-To'])
58
+ Object.assign(out, { revertedTo: CommitSha.parse(trailers['Reverted-To']) });
59
+ return out;
60
+ }
61
+ // indexOf-based scan instead of a single regex,
62
+ // to avoid polynomial backtracking against adversarial commit bodies.
63
+ function splitBodyAndTrailers(lines) {
64
+ const trailers = {};
65
+ let bodyEnd = 1;
66
+ for (let i = lines.length - 1; i >= 0; i--) {
67
+ const line = lines[i];
68
+ if (line.trim().length === 0) {
69
+ // Blank line fencing the trailer block, the body ends here.
70
+ if (Object.keys(trailers).length > 0) {
71
+ bodyEnd = i;
72
+ break;
73
+ }
74
+ continue;
75
+ }
76
+ const colon = line.indexOf(':');
77
+ if (colon < 1) {
78
+ bodyEnd = i + 1;
79
+ break;
80
+ }
81
+ const key = line.slice(0, colon);
82
+ if (!TRAILER_KEY_PATTERN.test(key)) {
83
+ bodyEnd = i + 1;
84
+ break;
85
+ }
86
+ trailers[key] = line.slice(colon + 1).trim();
87
+ }
88
+ return { body: lines.slice(1, bodyEnd).join('\n').trim(), trailers };
89
+ }
90
+ //# sourceMappingURL=commitMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commitMessage.js","sourceRoot":"","sources":["../../../src/infrastructure/history/commitMessage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { AbsolutePath, ClarificationFilter, ClarificationId, WorkspaceId } from '@braidhq/schema';
2
+ import { Clarification, type ClarificationRepository } from '@braidhq/core';
3
+ export interface FsClarificationRepositoryOptions {
4
+ readonly workspaceRoots: () => Promise<ReadonlyMap<WorkspaceId, AbsolutePath>>;
5
+ }
6
+ export declare class FsClarificationRepository implements ClarificationRepository {
7
+ private readonly base;
8
+ constructor(options: FsClarificationRepositoryOptions);
9
+ list(filter?: ClarificationFilter): Promise<Clarification[]>;
10
+ load(clarificationId: ClarificationId): Promise<Clarification>;
11
+ save(ticket: Clarification): Promise<void>;
12
+ }
13
+ //# sourceMappingURL=FsClarificationRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FsClarificationRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/hitl/FsClarificationRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,WAAW,EACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,aAAa,EAAE,KAAK,uBAAuB,EAAY,MAAM,eAAe,CAAA;AAKrF,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;CAC/E;AAED,qBAAa,yBAA0B,YAAW,uBAAuB;IACvE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoF;gBAE7F,OAAO,EAAE,gCAAgC;IAgB/C,IAAI,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAgBlE,IAAI,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAI9D,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3C"}
@@ -1,15 +1,15 @@
1
- import { ClarifyTicket, paginate } from '@braidhq/core';
2
- import { ClarifyTicket as ClarifyTicketSchema } from '@braidhq/schema';
3
- import { FsStatusedJsonRepository } from './FsStatusedJsonRepository.js';
4
- import { CLARIFY_STATUSES, clarifyDir } from './paths.js';
5
- export class FsClarifyTicketRepository {
1
+ import { Clarification, paginate } from '@braidhq/core';
2
+ import { Clarification as ClarificationSchema } from '@braidhq/schema';
3
+ import { clarificationDir, CLARIFY_STATUSES } from '../_shared/paths.js';
4
+ import { StatusedJsonStore } from './StatusedJsonStore.js';
5
+ export class FsClarificationRepository {
6
6
  base;
7
7
  constructor(options) {
8
- this.base = new FsStatusedJsonRepository({
9
- entityName: 'ClarifyTicket',
8
+ this.base = new StatusedJsonStore({
9
+ entityName: 'Clarification',
10
10
  statuses: CLARIFY_STATUSES,
11
- dirFor: clarifyDir,
12
- parse: raw => new ClarifyTicket(ClarifyTicketSchema.parse(raw)),
11
+ dirFor: clarificationDir,
12
+ parse: raw => new Clarification(ClarificationSchema.parse(raw)),
13
13
  serialize: entity => entity.toData(),
14
14
  idOf: entity => entity.id,
15
15
  statusOf: entity => entity.status,
@@ -21,19 +21,19 @@ export class FsClarifyTicketRepository {
21
21
  ...(filter?.workspaceId !== undefined ? { workspaceId: filter.workspaceId } : {}),
22
22
  ...(filter?.statuses !== undefined ? { statuses: filter.statuses } : {}),
23
23
  });
24
- // Phase E personal/shared filter: pending tickets only owner sees;
25
- // answered / applied / skipped stay workspace-shared.
24
+ // Pending tickets are personal, only the owner sees them.
25
+ // Answered, applied, and skipped tickets stay workspace-shared.
26
26
  if (filter?.viewerId !== undefined) {
27
27
  const viewerId = filter.viewerId;
28
- tickets = tickets.filter(ticket => ticket.status !== 'pending' || ticket.ownerId === undefined || ticket.ownerId === viewerId);
28
+ tickets = tickets.filter(ticket => ticket.status !== 'pending' || ticket.owner === 'system' || ticket.owner === viewerId);
29
29
  }
30
30
  return paginate(tickets, filter?.limit, filter?.offset);
31
31
  }
32
- load(clarifyTicketId) {
33
- return this.base.load(clarifyTicketId);
32
+ load(clarificationId) {
33
+ return this.base.load(clarificationId);
34
34
  }
35
35
  save(ticket) {
36
36
  return this.base.save(ticket);
37
37
  }
38
38
  }
39
- //# sourceMappingURL=FsClarifyTicketRepository.js.map
39
+ //# sourceMappingURL=FsClarificationRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FsClarificationRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/hitl/FsClarificationRepository.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAgC,QAAQ,EAAE,MAAM,eAAe,CAAA;AACrF,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAM1D,MAAM,OAAO,yBAAyB;IACnB,IAAI,CAAoF;IAEzG,YAAY,OAAyC;QACnD,IAAI,CAAC,IAAI,GAAG,IAAI,iBAAiB,CAC/B;YACE,UAAU,EAAE,eAAe;YAC3B,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE,gBAAgB;YACxB,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,aAAa,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/D,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;YACpC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;YACzB,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM;YACjC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;SAC5C,EACD,OAAO,CAAC,cAAc,CACvB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAA4B;QACrC,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,GAAG,CAAC,MAAM,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzE,CAAC,CAAA;QACF,0DAA0D;QAC1D,gEAAgE;QAChE,IAAI,MAAM,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YAChC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAChC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,CACtF,CAAA;QACH,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACzD,CAAC;IAED,IAAI,CAAC,eAAgC;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,CAAC,MAAqB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FsProposalRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/hitl/FsProposalRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC5F,OAAO,EAAY,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAK3E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;CAC/E;AAED,qBAAa,oBAAqB,YAAW,kBAAkB;IAC7D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2E;gBAEpF,OAAO,EAAE,2BAA2B;IAgB1C,IAAI,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAqBxD,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI/C,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAG9C"}
@@ -1,11 +1,11 @@
1
1
  import { paginate, Proposal } from '@braidhq/core';
2
2
  import { Proposal as ProposalSchema } from '@braidhq/schema';
3
- import { FsStatusedJsonRepository } from './FsStatusedJsonRepository.js';
4
- import { PROPOSAL_STATUSES, proposalsDir } from './paths.js';
3
+ import { PROPOSAL_STATUSES, proposalsDir } from '../_shared/paths.js';
4
+ import { StatusedJsonStore } from './StatusedJsonStore.js';
5
5
  export class FsProposalRepository {
6
6
  base;
7
7
  constructor(options) {
8
- this.base = new FsStatusedJsonRepository({
8
+ this.base = new StatusedJsonStore({
9
9
  entityName: 'Proposal',
10
10
  statuses: PROPOSAL_STATUSES,
11
11
  dirFor: proposalsDir,
@@ -25,13 +25,12 @@ export class FsProposalRepository {
25
25
  const skills = filter.generatedBy;
26
26
  proposals = proposals.filter(proposal => skills.includes(proposal.generatedBy));
27
27
  }
28
- // Phase E personal/shared filter: pending proposals only the
29
- // owner sees; applied / rejected stay workspace-shared audit
30
- // history. Absent viewerId means "no filter" (Owner Show All,
31
- // legacy callers, bootstrap).
28
+ // Pending proposals are personal, only the owner sees them.
29
+ // Applied and rejected stay as workspace-shared audit history.
30
+ // Absent viewerId means no filter, for Owner Show All and legacy callers.
32
31
  if (filter?.viewerId !== undefined) {
33
32
  const viewerId = filter.viewerId;
34
- proposals = proposals.filter(proposal => proposal.status !== 'pending' || proposal.ownerId === undefined || proposal.ownerId === viewerId);
33
+ proposals = proposals.filter(proposal => proposal.status !== 'pending' || proposal.owner === 'system' || proposal.owner === viewerId);
35
34
  }
36
35
  return paginate(proposals, filter?.limit, filter?.offset);
37
36
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FsProposalRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/hitl/FsProposalRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAA2B,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAM1D,MAAM,OAAO,oBAAoB;IACd,IAAI,CAA2E;IAEhG,YAAY,OAAoC;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,iBAAiB,CAC/B;YACE,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,iBAAiB;YAC3B,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrD,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;YACpC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;YACzB,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM;YACjC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;SAC5C,EACD,OAAO,CAAC,cAAc,CACvB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAuB;QAChC,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACnC,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,GAAG,CAAC,MAAM,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzE,CAAC,CAAA;QACF,IAAI,MAAM,EAAE,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAA;YACjC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAA;QACjF,CAAC;QACD,4DAA4D;QAC5D,+DAA+D;QAC/D,0EAA0E;QAC1E,IAAI,MAAM,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YAChC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CACtC,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAC5F,CAAA;QACH,CAAC;QACD,OAAO,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,CAAC,UAAsB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,CAAC,QAAkB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,CAAC,UAAsB;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACrC,CAAC;CACF"}
@@ -0,0 +1,30 @@
1
+ import type { AbsolutePath, WorkspaceId } from '@braidhq/schema';
2
+ export interface StatusedJsonStoreConfig<TEntity, TStatus extends string, TId extends string> {
3
+ readonly entityName: string;
4
+ readonly statuses: readonly TStatus[];
5
+ readonly idOf: (entity: TEntity) => TId;
6
+ readonly statusOf: (entity: TEntity) => TStatus;
7
+ readonly workspaceIdOf: (entity: TEntity) => WorkspaceId;
8
+ readonly dirFor: (workspaceRoot: AbsolutePath, status: TStatus) => string;
9
+ readonly parse: (raw: unknown) => TEntity;
10
+ readonly serialize: (entity: TEntity) => unknown;
11
+ }
12
+ export interface StatusedJsonListFilter<TStatus extends string> {
13
+ readonly workspaceId?: WorkspaceId;
14
+ readonly statuses?: readonly TStatus[];
15
+ }
16
+ export declare class StatusedJsonStore<TEntity, TStatus extends string, TId extends string> {
17
+ private readonly config;
18
+ private readonly workspaceRoots;
19
+ constructor(config: StatusedJsonStoreConfig<TEntity, TStatus, TId>, workspaceRoots: () => Promise<ReadonlyMap<WorkspaceId, AbsolutePath>>);
20
+ list(filter?: StatusedJsonListFilter<TStatus>): Promise<TEntity[]>;
21
+ load(id: TId): Promise<TEntity>;
22
+ save(entity: TEntity): Promise<void>;
23
+ remove(id: TId): Promise<void>;
24
+ locate(id: TId): Promise<{
25
+ readonly path: string;
26
+ readonly status: TStatus;
27
+ } | undefined>;
28
+ private candidateRoots;
29
+ }
30
+ //# sourceMappingURL=StatusedJsonStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusedJsonStore.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/hitl/StatusedJsonStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAMhE,MAAM,WAAW,uBAAuB,CAAC,OAAO,EAAE,OAAO,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM;IAI1F,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;IAGrC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,GAAG,CAAA;IACvC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAA;IAC/C,QAAQ,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,CAAA;IAExD,QAAQ,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,KAAK,MAAM,CAAA;IAIzE,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAA;CACjD;AAED,MAAM,WAAW,sBAAsB,CAAC,OAAO,SAAS,MAAM;IAC5D,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;CACvC;AAED,qBAAa,iBAAiB,CAAC,OAAO,EAAE,OAAO,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM;IAE9E,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADd,MAAM,EAAE,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EACtD,cAAc,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAGlF,IAAI,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAiBlE,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ/B,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAepC,MAAM,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9B,MAAM,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;YAkBjF,cAAc;CAS7B"}
@@ -1,8 +1,8 @@
1
1
  import { rm } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
3
  import { NotFoundError } from '@braidhq/core';
4
- import { listJsonFiles, moveFile, readJsonFile, writeJsonFile } from './jsonFileStore.js';
5
- export class FsStatusedJsonRepository {
4
+ import { listJsonFiles, moveFile, readJsonFile, writeJsonFile } from '../_shared/jsonFileStore.js';
5
+ export class StatusedJsonStore {
6
6
  config;
7
7
  workspaceRoots;
8
8
  constructor(config, workspaceRoots) {
@@ -76,4 +76,4 @@ export class FsStatusedJsonRepository {
76
76
  return root ? new Map([[workspaceId, root]]) : new Map();
77
77
  }
78
78
  }
79
- //# sourceMappingURL=FsStatusedJsonRepository.js.map
79
+ //# sourceMappingURL=StatusedJsonStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusedJsonStore.js","sourceRoot":"","sources":["../../../src/infrastructure/hitl/StatusedJsonStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AA2BlG,MAAM,OAAO,iBAAiB;IAET;IACA;IAFnB,YACmB,MAAsD,EACtD,cAAqE;QADrE,WAAM,GAAN,MAAM,CAAgD;QACtD,mBAAc,GAAd,cAAc,CAAuD;IACrF,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,MAAwC;QACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QAC5D,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;QAElF,MAAM,QAAQ,GAAc,EAAE,CAAA;QAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAClC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;gBACnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,IAAI,GAAG,MAAM,YAAY,CAAU,IAAI,CAAC,CAAA;oBAC9C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAO;QAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACnC,IAAI,CAAC,KAAK;YACR,MAAM,IAAI,aAAa,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,EAAE,aAAa,CAAC,CAAA;QACxE,MAAM,IAAI,GAAG,MAAM,YAAY,CAAU,KAAK,CAAC,IAAI,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAe;QACxB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACnC,IAAI,CAAC,IAAI;YACP,MAAM,IAAI,aAAa,CAAC,cAAc,WAAW,kBAAkB,CAAC,CAAA;QACtE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACtC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;YAC1C,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAC3C,MAAM,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAO;QAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACnC,IAAI,CAAC,KAAK;YACR,MAAM,IAAI,aAAa,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,EAAE,aAAa,CAAC,CAAA;QACxE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAO;QAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;QACzC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAClC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;gBAC1E,IAAI,CAAC;oBACH,MAAM,YAAY,CAAC,aAAa,CAAC,CAAA;oBACjC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAA;gBACxC,CAAC;gBACD,OAAO,KAAK,EAAE,CAAC;oBACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;wBACpD,MAAM,KAAK,CAAA;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,WAAoC;QAEpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;QACzC,IAAI,CAAC,WAAW;YACd,OAAO,KAAK,CAAA;QACd,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACnC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;IAC1D,CAAC;CACF"}
@@ -0,0 +1,96 @@
1
+ import type { ModelSerializer, Workspace } from '@braidhq/core';
2
+ import type { ModelSnapshot } from '@braidhq/schema';
3
+ import { z } from 'zod';
4
+ export declare const MODEL_JSON_VERSION = 1;
5
+ export declare const ModelJsonFile: z.ZodObject<{
6
+ version: z.ZodNumber;
7
+ nodes: z.ZodArray<z.ZodObject<{
8
+ id: z.core.$ZodBranded<z.ZodString, "NodeId", "out">;
9
+ type: z.core.$ZodBranded<z.ZodString, "NodeTypeId", "out">;
10
+ name: z.ZodString;
11
+ description: z.ZodOptional<z.ZodString>;
12
+ status: z.ZodEnum<{
13
+ completed: "completed";
14
+ draft: "draft";
15
+ unclear: "unclear";
16
+ deprecated: "deprecated";
17
+ }>;
18
+ metadata: z.ZodObject<{
19
+ intentMissing: z.ZodOptional<z.ZodBoolean>;
20
+ intentConflict: z.ZodOptional<z.ZodBoolean>;
21
+ implementationMissing: z.ZodOptional<z.ZodBoolean>;
22
+ sourceReferences: z.ZodDefault<z.ZodArray<z.ZodObject<{
23
+ sourceId: z.core.$ZodBranded<z.ZodString, "SourceId", "out">;
24
+ location: z.ZodObject<{
25
+ uri: z.ZodString;
26
+ startLine: z.ZodOptional<z.ZodNumber>;
27
+ endLine: z.ZodOptional<z.ZodNumber>;
28
+ anchor: z.ZodOptional<z.ZodString>;
29
+ }, z.core.$strip>;
30
+ snippet: z.ZodOptional<z.ZodString>;
31
+ }, z.core.$strip>>>;
32
+ lastTouchedBy: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "SkillId", "out">>;
33
+ externalReferences: z.ZodOptional<z.ZodArray<z.ZodObject<{
34
+ kind: z.core.$ZodBranded<z.ZodString, "ExternalReferenceKind", "out">;
35
+ url: z.ZodString;
36
+ label: z.ZodOptional<z.ZodString>;
37
+ }, z.core.$strip>>>;
38
+ driftIssues: z.ZodOptional<z.ZodArray<z.ZodObject<{
39
+ id: z.core.$ZodBranded<z.ZodString, "DriftIssueId", "out">;
40
+ description: z.ZodString;
41
+ severity: z.ZodEnum<{
42
+ error: "error";
43
+ warning: "warning";
44
+ info: "info";
45
+ }>;
46
+ sourceReferences: z.ZodArray<z.ZodObject<{
47
+ sourceId: z.core.$ZodBranded<z.ZodString, "SourceId", "out">;
48
+ location: z.ZodObject<{
49
+ uri: z.ZodString;
50
+ startLine: z.ZodOptional<z.ZodNumber>;
51
+ endLine: z.ZodOptional<z.ZodNumber>;
52
+ anchor: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strip>;
54
+ snippet: z.ZodOptional<z.ZodString>;
55
+ }, z.core.$strip>>;
56
+ raisedAt: z.ZodString;
57
+ }, z.core.$strip>>>;
58
+ acknowledgedDrifts: z.ZodOptional<z.ZodArray<z.ZodString>>;
59
+ }, z.core.$strip>;
60
+ embedding: z.ZodOptional<z.ZodObject<{
61
+ vector: z.ZodArray<z.ZodNumber>;
62
+ modelId: z.ZodString;
63
+ createdAt: z.ZodString;
64
+ }, z.core.$strip>>;
65
+ }, z.core.$strip>>;
66
+ edges: z.ZodArray<z.ZodObject<{
67
+ id: z.core.$ZodBranded<z.ZodString, "EdgeId", "out">;
68
+ type: z.core.$ZodBranded<z.ZodString, "EdgeTypeId", "out">;
69
+ fromNodeId: z.core.$ZodBranded<z.ZodString, "NodeId", "out">;
70
+ toNodeId: z.core.$ZodBranded<z.ZodString, "NodeId", "out">;
71
+ metadata: z.ZodObject<{
72
+ sourceReferences: z.ZodDefault<z.ZodArray<z.ZodObject<{
73
+ sourceId: z.core.$ZodBranded<z.ZodString, "SourceId", "out">;
74
+ location: z.ZodObject<{
75
+ uri: z.ZodString;
76
+ startLine: z.ZodOptional<z.ZodNumber>;
77
+ endLine: z.ZodOptional<z.ZodNumber>;
78
+ anchor: z.ZodOptional<z.ZodString>;
79
+ }, z.core.$strip>;
80
+ snippet: z.ZodOptional<z.ZodString>;
81
+ }, z.core.$strip>>>;
82
+ lastTouchedBy: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "SkillId", "out">>;
83
+ externalReferences: z.ZodOptional<z.ZodArray<z.ZodObject<{
84
+ kind: z.core.$ZodBranded<z.ZodString, "ExternalReferenceKind", "out">;
85
+ url: z.ZodString;
86
+ label: z.ZodOptional<z.ZodString>;
87
+ }, z.core.$strip>>>;
88
+ }, z.core.$strip>;
89
+ }, z.core.$strip>>;
90
+ }, z.core.$strip>;
91
+ export declare class FsModelSerializer implements ModelSerializer {
92
+ write(workspace: Workspace, snapshot: ModelSnapshot): Promise<void>;
93
+ read(workspace: Workspace): Promise<ModelSnapshot | null>;
94
+ exists(workspace: Workspace): Promise<boolean>;
95
+ }
96
+ //# sourceMappingURL=FsModelSerializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FsModelSerializer.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/model/FsModelSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAIpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAEnC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIxB,CAAA;AAEF,qBAAa,iBAAkB,YAAW,eAAe;IACjD,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAenE,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAmBzD,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;CASrD"}