@lumenflow/core 3.4.0 → 3.5.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 (330) hide show
  1. package/dist/adapters/context-adapters.d.ts +75 -3
  2. package/dist/adapters/context-adapters.d.ts.map +1 -1
  3. package/dist/adapters/context-adapters.js +74 -3
  4. package/dist/adapters/context-adapters.js.map +1 -1
  5. package/dist/agent-patterns-registry.d.ts.map +1 -1
  6. package/dist/agent-patterns-registry.js +2 -1
  7. package/dist/agent-patterns-registry.js.map +1 -1
  8. package/dist/arg-parser.d.ts.map +1 -1
  9. package/dist/arg-parser.js +31 -0
  10. package/dist/arg-parser.js.map +1 -1
  11. package/dist/atomic-merge.d.ts.map +1 -1
  12. package/dist/atomic-merge.js +3 -4
  13. package/dist/atomic-merge.js.map +1 -1
  14. package/dist/backlog-parser.d.ts +1 -1
  15. package/dist/backlog-parser.d.ts.map +1 -1
  16. package/dist/backlog-parser.js.map +1 -1
  17. package/dist/branch-check.d.ts.map +1 -1
  18. package/dist/branch-check.js +3 -2
  19. package/dist/branch-check.js.map +1 -1
  20. package/dist/branch-drift.d.ts +1 -1
  21. package/dist/branch-drift.d.ts.map +1 -1
  22. package/dist/branch-drift.js.map +1 -1
  23. package/dist/cleanup-lock.d.ts +13 -4
  24. package/dist/cleanup-lock.d.ts.map +1 -1
  25. package/dist/cleanup-lock.js +1 -1
  26. package/dist/cleanup-lock.js.map +1 -1
  27. package/dist/code-path-validator.d.ts.map +1 -1
  28. package/dist/code-path-validator.js +3 -2
  29. package/dist/code-path-validator.js.map +1 -1
  30. package/dist/code-paths-overlap.d.ts +2 -2
  31. package/dist/code-paths-overlap.d.ts.map +1 -1
  32. package/dist/code-paths-overlap.js +1 -1
  33. package/dist/code-paths-overlap.js.map +1 -1
  34. package/dist/commands-logger.d.ts.map +1 -1
  35. package/dist/commands-logger.js +17 -9
  36. package/dist/commands-logger.js.map +1 -1
  37. package/dist/commit-message-utils.d.ts +1 -1
  38. package/dist/commit-message-utils.d.ts.map +1 -1
  39. package/dist/commit-message-utils.js.map +1 -1
  40. package/dist/constants/backlog-patterns.d.ts +1 -1
  41. package/dist/constants/backlog-patterns.d.ts.map +1 -1
  42. package/dist/constants/backlog-patterns.js.map +1 -1
  43. package/dist/core/scope-checker.d.ts +2 -2
  44. package/dist/core/scope-checker.d.ts.map +1 -1
  45. package/dist/core/scope-checker.js +18 -25
  46. package/dist/core/scope-checker.js.map +1 -1
  47. package/dist/core/tool-runner.d.ts.map +1 -1
  48. package/dist/core/tool-runner.js +2 -1
  49. package/dist/core/tool-runner.js.map +1 -1
  50. package/dist/core/worktree-guard.d.ts.map +1 -1
  51. package/dist/core/worktree-guard.js +12 -17
  52. package/dist/core/worktree-guard.js.map +1 -1
  53. package/dist/date-utils.d.ts +3 -3
  54. package/dist/date-utils.d.ts.map +1 -1
  55. package/dist/date-utils.js +2 -2
  56. package/dist/date-utils.js.map +1 -1
  57. package/dist/delegation-escalation.d.ts.map +1 -1
  58. package/dist/delegation-escalation.js +6 -5
  59. package/dist/delegation-escalation.js.map +1 -1
  60. package/dist/delegation-registry-store.d.ts.map +1 -1
  61. package/dist/delegation-registry-store.js +6 -5
  62. package/dist/delegation-registry-store.js.map +1 -1
  63. package/dist/dependency-guard.d.ts +2 -2
  64. package/dist/dependency-guard.d.ts.map +1 -1
  65. package/dist/dependency-guard.js +4 -3
  66. package/dist/dependency-guard.js.map +1 -1
  67. package/dist/docs-layout-presets.d.ts +2 -0
  68. package/dist/docs-layout-presets.d.ts.map +1 -1
  69. package/dist/docs-layout-presets.js +1 -0
  70. package/dist/docs-layout-presets.js.map +1 -1
  71. package/dist/docs-path-validator.d.ts +2 -2
  72. package/dist/docs-path-validator.d.ts.map +1 -1
  73. package/dist/docs-path-validator.js.map +1 -1
  74. package/dist/domain/index.d.ts +1 -0
  75. package/dist/domain/index.d.ts.map +1 -1
  76. package/dist/domain/index.js +2 -0
  77. package/dist/domain/index.js.map +1 -1
  78. package/dist/domain/result.d.ts +116 -0
  79. package/dist/domain/result.d.ts.map +1 -0
  80. package/dist/domain/result.js +96 -0
  81. package/dist/domain/result.js.map +1 -0
  82. package/dist/domain/validation.schemas.d.ts +3 -3
  83. package/dist/error-handler.d.ts +36 -3
  84. package/dist/error-handler.d.ts.map +1 -1
  85. package/dist/error-handler.js +36 -0
  86. package/dist/error-handler.js.map +1 -1
  87. package/dist/file-classifiers.d.ts +3 -3
  88. package/dist/file-classifiers.d.ts.map +1 -1
  89. package/dist/file-classifiers.js.map +1 -1
  90. package/dist/gates-coverage.js.map +1 -1
  91. package/dist/git-adapter.d.ts.map +1 -1
  92. package/dist/git-adapter.js +5 -4
  93. package/dist/git-adapter.js.map +1 -1
  94. package/dist/incremental-lint.d.ts +3 -3
  95. package/dist/incremental-lint.d.ts.map +1 -1
  96. package/dist/incremental-lint.js.map +1 -1
  97. package/dist/incremental-test.d.ts +1 -1
  98. package/dist/incremental-test.d.ts.map +1 -1
  99. package/dist/incremental-test.js.map +1 -1
  100. package/dist/index.d.ts +5 -0
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +7 -0
  103. package/dist/index.js.map +1 -1
  104. package/dist/invariants/check-automated-tests.d.ts +1 -1
  105. package/dist/invariants/check-automated-tests.d.ts.map +1 -1
  106. package/dist/invariants/check-automated-tests.js.map +1 -1
  107. package/dist/invariants-runner.d.ts.map +1 -1
  108. package/dist/invariants-runner.js +4 -4
  109. package/dist/invariants-runner.js.map +1 -1
  110. package/dist/lane-validator.d.ts +17 -10
  111. package/dist/lane-validator.d.ts.map +1 -1
  112. package/dist/lane-validator.js +6 -6
  113. package/dist/lane-validator.js.map +1 -1
  114. package/dist/logs-lib.d.ts +1 -1
  115. package/dist/logs-lib.d.ts.map +1 -1
  116. package/dist/logs-lib.js.map +1 -1
  117. package/dist/lumenflow-config-schema.d.ts +8 -0
  118. package/dist/lumenflow-config-schema.d.ts.map +1 -1
  119. package/dist/lumenflow-config-schema.js +3 -1
  120. package/dist/lumenflow-config-schema.js.map +1 -1
  121. package/dist/lumenflow-config.d.ts +9 -2
  122. package/dist/lumenflow-config.d.ts.map +1 -1
  123. package/dist/lumenflow-config.js +12 -4
  124. package/dist/lumenflow-config.js.map +1 -1
  125. package/dist/manual-test-validator.d.ts +14 -6
  126. package/dist/manual-test-validator.d.ts.map +1 -1
  127. package/dist/manual-test-validator.js +8 -7
  128. package/dist/manual-test-validator.js.map +1 -1
  129. package/dist/micro-worktree.d.ts.map +1 -1
  130. package/dist/micro-worktree.js +6 -5
  131. package/dist/micro-worktree.js.map +1 -1
  132. package/dist/orphan-detector.d.ts +11 -11
  133. package/dist/orphan-detector.d.ts.map +1 -1
  134. package/dist/orphan-detector.js.map +1 -1
  135. package/dist/pack-authoring-template-engine.d.ts.map +1 -1
  136. package/dist/pack-authoring-template-engine.js +8 -7
  137. package/dist/pack-authoring-template-engine.js.map +1 -1
  138. package/dist/path-classifiers.d.ts +2 -2
  139. package/dist/path-classifiers.d.ts.map +1 -1
  140. package/dist/path-classifiers.js.map +1 -1
  141. package/dist/path-factory.d.ts +54 -0
  142. package/dist/path-factory.d.ts.map +1 -0
  143. package/dist/path-factory.js +67 -0
  144. package/dist/path-factory.js.map +1 -0
  145. package/dist/piped-command-detector.d.ts +2 -2
  146. package/dist/piped-command-detector.d.ts.map +1 -1
  147. package/dist/piped-command-detector.js.map +1 -1
  148. package/dist/ports/context.ports.d.ts +16 -0
  149. package/dist/ports/context.ports.d.ts.map +1 -1
  150. package/dist/ports/recovery.ports.d.ts +10 -0
  151. package/dist/ports/recovery.ports.d.ts.map +1 -1
  152. package/dist/ports/validation.ports.d.ts +5 -0
  153. package/dist/ports/validation.ports.d.ts.map +1 -1
  154. package/dist/ports/wu-state.ports.d.ts +8 -0
  155. package/dist/ports/wu-state.ports.d.ts.map +1 -1
  156. package/dist/process-detector.d.ts +13 -6
  157. package/dist/process-detector.d.ts.map +1 -1
  158. package/dist/process-detector.js +3 -2
  159. package/dist/process-detector.js.map +1 -1
  160. package/dist/prompt-linter.d.ts +19 -1
  161. package/dist/prompt-linter.d.ts.map +1 -1
  162. package/dist/prompt-linter.js +13 -18
  163. package/dist/prompt-linter.js.map +1 -1
  164. package/dist/prompt-monitor.js +13 -9
  165. package/dist/prompt-monitor.js.map +1 -1
  166. package/dist/retry-strategy.d.ts +18 -39
  167. package/dist/retry-strategy.d.ts.map +1 -1
  168. package/dist/retry-strategy.js +13 -9
  169. package/dist/retry-strategy.js.map +1 -1
  170. package/dist/schemas/directories-config.d.ts +1 -0
  171. package/dist/schemas/directories-config.d.ts.map +1 -1
  172. package/dist/schemas/directories-config.js +2 -0
  173. package/dist/schemas/directories-config.js.map +1 -1
  174. package/dist/schemas/flow-arg-validators.d.ts +6 -6
  175. package/dist/schemas/flow-schemas.d.ts +12 -12
  176. package/dist/schemas/initiative-arg-validators.d.ts +2 -2
  177. package/dist/schemas/initiative-schemas.d.ts +5 -5
  178. package/dist/schemas/operational-config.d.ts +17 -0
  179. package/dist/schemas/operational-config.d.ts.map +1 -1
  180. package/dist/schemas/operational-config.js +21 -0
  181. package/dist/schemas/operational-config.js.map +1 -1
  182. package/dist/schemas/wu-lifecycle-arg-validators.d.ts +2 -2
  183. package/dist/schemas/wu-lifecycle-schemas.d.ts +4 -4
  184. package/dist/section-headings.d.ts +1 -1
  185. package/dist/section-headings.d.ts.map +1 -1
  186. package/dist/section-headings.js.map +1 -1
  187. package/dist/telemetry.d.ts +65 -6
  188. package/dist/telemetry.d.ts.map +1 -1
  189. package/dist/telemetry.js +516 -3
  190. package/dist/telemetry.js.map +1 -1
  191. package/dist/usecases/index.d.ts +9 -0
  192. package/dist/usecases/index.d.ts.map +1 -1
  193. package/dist/usecases/index.js +9 -0
  194. package/dist/usecases/index.js.map +1 -1
  195. package/dist/user-normalizer.d.ts +3 -3
  196. package/dist/user-normalizer.d.ts.map +1 -1
  197. package/dist/user-normalizer.js +1 -1
  198. package/dist/user-normalizer.js.map +1 -1
  199. package/dist/worktree-ownership.d.ts +1 -1
  200. package/dist/worktree-ownership.d.ts.map +1 -1
  201. package/dist/worktree-ownership.js.map +1 -1
  202. package/dist/wu-backlog-updater.d.ts +1 -1
  203. package/dist/wu-backlog-updater.d.ts.map +1 -1
  204. package/dist/wu-backlog-updater.js.map +1 -1
  205. package/dist/wu-checkpoint.d.ts +16 -9
  206. package/dist/wu-checkpoint.d.ts.map +1 -1
  207. package/dist/wu-checkpoint.js +0 -10
  208. package/dist/wu-checkpoint.js.map +1 -1
  209. package/dist/wu-claim-helpers.d.ts +4 -2
  210. package/dist/wu-claim-helpers.d.ts.map +1 -1
  211. package/dist/wu-claim-helpers.js +2 -1
  212. package/dist/wu-claim-helpers.js.map +1 -1
  213. package/dist/wu-claim-resume.d.ts +49 -37
  214. package/dist/wu-claim-resume.d.ts.map +1 -1
  215. package/dist/wu-claim-resume.js +9 -6
  216. package/dist/wu-claim-resume.js.map +1 -1
  217. package/dist/wu-consistency-file-repairs.d.ts.map +1 -1
  218. package/dist/wu-consistency-file-repairs.js +2 -1
  219. package/dist/wu-consistency-file-repairs.js.map +1 -1
  220. package/dist/wu-constants.d.ts +1 -1
  221. package/dist/wu-constants.d.ts.map +1 -1
  222. package/dist/wu-constants.js +1 -1
  223. package/dist/wu-constants.js.map +1 -1
  224. package/dist/wu-context-constants.d.ts +68 -0
  225. package/dist/wu-context-constants.d.ts.map +1 -1
  226. package/dist/wu-context-constants.js +73 -0
  227. package/dist/wu-context-constants.js.map +1 -1
  228. package/dist/wu-create-validators.d.ts +8 -5
  229. package/dist/wu-create-validators.d.ts.map +1 -1
  230. package/dist/wu-create-validators.js +2 -2
  231. package/dist/wu-create-validators.js.map +1 -1
  232. package/dist/wu-done-branch-only.js.map +1 -1
  233. package/dist/wu-done-branch-utils.d.ts +1 -1
  234. package/dist/wu-done-branch-utils.d.ts.map +1 -1
  235. package/dist/wu-done-branch-utils.js.map +1 -1
  236. package/dist/wu-done-concurrent-merge.d.ts.map +1 -1
  237. package/dist/wu-done-concurrent-merge.js +8 -7
  238. package/dist/wu-done-concurrent-merge.js.map +1 -1
  239. package/dist/wu-done-docs-only.d.ts +1 -1
  240. package/dist/wu-done-docs-only.d.ts.map +1 -1
  241. package/dist/wu-done-docs-only.js.map +1 -1
  242. package/dist/wu-done-errors.d.ts +3 -3
  243. package/dist/wu-done-errors.d.ts.map +1 -1
  244. package/dist/wu-done-errors.js.map +1 -1
  245. package/dist/wu-done-inputs.d.ts +1 -1
  246. package/dist/wu-done-inputs.d.ts.map +1 -1
  247. package/dist/wu-done-inputs.js.map +1 -1
  248. package/dist/wu-done-preflight-checks.js +2 -2
  249. package/dist/wu-done-preflight-checks.js.map +1 -1
  250. package/dist/wu-done-preflight.d.ts.map +1 -1
  251. package/dist/wu-done-preflight.js +3 -2
  252. package/dist/wu-done-preflight.js.map +1 -1
  253. package/dist/wu-done-rebase.d.ts.map +1 -1
  254. package/dist/wu-done-rebase.js +6 -8
  255. package/dist/wu-done-rebase.js.map +1 -1
  256. package/dist/wu-done-retry-helpers.d.ts +30 -7
  257. package/dist/wu-done-retry-helpers.d.ts.map +1 -1
  258. package/dist/wu-done-retry-helpers.js +17 -14
  259. package/dist/wu-done-retry-helpers.js.map +1 -1
  260. package/dist/wu-done-ui.d.ts +1 -1
  261. package/dist/wu-done-ui.d.ts.map +1 -1
  262. package/dist/wu-done-ui.js +1 -3
  263. package/dist/wu-done-ui.js.map +1 -1
  264. package/dist/wu-done-validation.js.map +1 -1
  265. package/dist/wu-done-worktree.js.map +1 -1
  266. package/dist/wu-event-sourcer.d.ts +14 -0
  267. package/dist/wu-event-sourcer.d.ts.map +1 -1
  268. package/dist/wu-event-sourcer.js +78 -38
  269. package/dist/wu-event-sourcer.js.map +1 -1
  270. package/dist/wu-events-cleanup.d.ts.map +1 -1
  271. package/dist/wu-events-cleanup.js +4 -3
  272. package/dist/wu-events-cleanup.js.map +1 -1
  273. package/dist/wu-helpers.d.ts.map +1 -1
  274. package/dist/wu-helpers.js +3 -3
  275. package/dist/wu-helpers.js.map +1 -1
  276. package/dist/wu-id-generator.d.ts.map +1 -1
  277. package/dist/wu-id-generator.js +2 -1
  278. package/dist/wu-id-generator.js.map +1 -1
  279. package/dist/wu-lint.d.ts +61 -78
  280. package/dist/wu-lint.d.ts.map +1 -1
  281. package/dist/wu-lint.js +9 -4
  282. package/dist/wu-lint.js.map +1 -1
  283. package/dist/wu-lock-manager.d.ts.map +1 -1
  284. package/dist/wu-lock-manager.js +2 -1
  285. package/dist/wu-lock-manager.js.map +1 -1
  286. package/dist/wu-paths-constants.d.ts +4 -0
  287. package/dist/wu-paths-constants.d.ts.map +1 -1
  288. package/dist/wu-paths-constants.js +4 -0
  289. package/dist/wu-paths-constants.js.map +1 -1
  290. package/dist/wu-paths.d.ts +10 -0
  291. package/dist/wu-paths.d.ts.map +1 -1
  292. package/dist/wu-paths.js +5 -0
  293. package/dist/wu-paths.js.map +1 -1
  294. package/dist/wu-recovery.js +2 -2
  295. package/dist/wu-recovery.js.map +1 -1
  296. package/dist/wu-repair-core.js +1 -1
  297. package/dist/wu-repair-core.js.map +1 -1
  298. package/dist/wu-rules-core.d.ts.map +1 -1
  299. package/dist/wu-rules-core.js +2 -1
  300. package/dist/wu-rules-core.js.map +1 -1
  301. package/dist/wu-schema-normalization.d.ts +3 -1
  302. package/dist/wu-schema-normalization.d.ts.map +1 -1
  303. package/dist/wu-schema-normalization.js +6 -4
  304. package/dist/wu-schema-normalization.js.map +1 -1
  305. package/dist/wu-schema.d.ts +64 -5
  306. package/dist/wu-schema.d.ts.map +1 -1
  307. package/dist/wu-schema.js +48 -5
  308. package/dist/wu-schema.js.map +1 -1
  309. package/dist/wu-spawn-context.d.ts.map +1 -1
  310. package/dist/wu-spawn-context.js +2 -1
  311. package/dist/wu-spawn-context.js.map +1 -1
  312. package/dist/wu-spawn-helpers.d.ts.map +1 -1
  313. package/dist/wu-spawn-helpers.js +4 -4
  314. package/dist/wu-spawn-helpers.js.map +1 -1
  315. package/dist/wu-spawn.js.map +1 -1
  316. package/dist/wu-state-schema.d.ts +1 -1
  317. package/dist/wu-state-schema.d.ts.map +1 -1
  318. package/dist/wu-state-schema.js.map +1 -1
  319. package/dist/wu-state-store.d.ts +1 -1
  320. package/dist/wu-state-store.d.ts.map +1 -1
  321. package/dist/wu-state-store.js +6 -5
  322. package/dist/wu-state-store.js.map +1 -1
  323. package/dist/wu-status-updater.d.ts +2 -2
  324. package/dist/wu-status-updater.d.ts.map +1 -1
  325. package/dist/wu-status-updater.js.map +1 -1
  326. package/dist/wu-yaml.d.ts +12 -9
  327. package/dist/wu-yaml.d.ts.map +1 -1
  328. package/dist/wu-yaml.js +57 -53
  329. package/dist/wu-yaml.js.map +1 -1
  330. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"path-classifiers.js","sourceRoot":"","sources":["../src/path-classifiers.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,yCAAyC;AACzC;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElF;;GAEG;AACH,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAEI,EAAE;IAEN,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC,EAAE,GAAG,yBAAyB,CAAC,CAAC,CAAC;AACxF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAmB;IACpD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oEAAoE;IACpE,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACrC,KAAK,MAAM,OAAO,IAAI,qBAAqB,EAAE,CAAC;QAC5C,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAoB;IACrD,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"path-classifiers.js","sourceRoot":"","sources":["../src/path-classifiers.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,yCAAyC;AACzC;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElF;;GAEG;AACH,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAEI,EAAE;IAEN,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC,EAAE,GAAG,yBAAyB,CAAC,CAAC,CAAC;AACxF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oEAAoE;IACpE,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACrC,KAAK,MAAM,OAAO,IAAI,qBAAqB,EAAE,CAAC;QAC5C,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAsC;IACvE,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { LUMENFLOW_PATHS } from './wu-paths-constants.js';
2
+ /**
3
+ * Valid keys for LUMENFLOW_PATHS constant lookups.
4
+ */
5
+ export type LumenflowPathKey = keyof typeof LUMENFLOW_PATHS;
6
+ /**
7
+ * PathFactory interface: consistent API for resolving project-relative paths.
8
+ */
9
+ export interface PathFactory {
10
+ /** Absolute path to the project root directory. */
11
+ readonly projectRoot: string;
12
+ /**
13
+ * Resolve a relative path against projectRoot.
14
+ *
15
+ * If the path is already absolute, it is returned unchanged.
16
+ * If the path is empty, projectRoot is returned.
17
+ *
18
+ * @param relativePath - Path relative to project root
19
+ * @returns Absolute path
20
+ */
21
+ resolve(relativePath: string): string;
22
+ /**
23
+ * Resolve a LUMENFLOW_PATHS constant to an absolute path.
24
+ *
25
+ * @param key - A key from LUMENFLOW_PATHS (e.g., 'COMMANDS_LOG', 'TELEMETRY')
26
+ * @returns Absolute path
27
+ * @throws Error if key is not a valid LUMENFLOW_PATHS key
28
+ */
29
+ resolveLumenflowPath(key: LumenflowPathKey): string;
30
+ }
31
+ /**
32
+ * Options for creating a PathFactory.
33
+ */
34
+ export interface PathFactoryOptions {
35
+ /**
36
+ * Override project root directory.
37
+ * If omitted, uses config-based project root discovery.
38
+ */
39
+ projectRoot?: string;
40
+ }
41
+ /**
42
+ * Create a PathFactory instance.
43
+ *
44
+ * Consolidates path resolution into one testable boundary.
45
+ * Replaces:
46
+ * - `resolve(__dirname, '../..')` in prompt-monitor.ts, prompt-linter.ts, commands-logger.ts
47
+ * - `getProjectRoot(import.meta.url)` from wu-domain-constants.ts
48
+ * - `resolveFromProjectRoot(relativePath)` from wu-paths.ts
49
+ *
50
+ * @param options - Configuration options
51
+ * @returns PathFactory instance
52
+ */
53
+ export declare function createPathFactory(options?: PathFactoryOptions): PathFactory;
54
+ //# sourceMappingURL=path-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-factory.d.ts","sourceRoot":"","sources":["../src/path-factory.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI1D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,eAAe,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtC;;;;;;OAMG;IACH,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,WAAW,CAiC/E"}
@@ -0,0 +1,67 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ /**
4
+ * PathFactory - Shared path resolution for all packages
5
+ *
6
+ * WU-2124: Consolidates 3 independent path resolution patterns into a single
7
+ * factory with a consistent API:
8
+ * (1) direct __dirname-relative paths (prompt-monitor, prompt-linter, commands-logger)
9
+ * (2) ILocationResolver.resolveRoot() adapter calls
10
+ * (3) inline resolve(__dirname, '../..') patterns
11
+ *
12
+ * Usage:
13
+ * ```ts
14
+ * import { createPathFactory } from './path-factory.js';
15
+ *
16
+ * const paths = createPathFactory({ projectRoot: '/repo' });
17
+ * paths.resolve('.lumenflow/commands.log'); // => '/repo/.lumenflow/commands.log'
18
+ * paths.resolveLumenflowPath('COMMANDS_LOG'); // => '/repo/.lumenflow/commands.log'
19
+ * paths.projectRoot; // => '/repo'
20
+ * ```
21
+ *
22
+ * @module path-factory
23
+ */
24
+ import * as path from 'node:path';
25
+ import { LUMENFLOW_PATHS } from './wu-paths-constants.js';
26
+ import { getProjectRoot as getProjectRootFromConfig } from './lumenflow-config.js';
27
+ import { createError, ErrorCodes } from './error-handler.js';
28
+ /**
29
+ * Create a PathFactory instance.
30
+ *
31
+ * Consolidates path resolution into one testable boundary.
32
+ * Replaces:
33
+ * - `resolve(__dirname, '../..')` in prompt-monitor.ts, prompt-linter.ts, commands-logger.ts
34
+ * - `getProjectRoot(import.meta.url)` from wu-domain-constants.ts
35
+ * - `resolveFromProjectRoot(relativePath)` from wu-paths.ts
36
+ *
37
+ * @param options - Configuration options
38
+ * @returns PathFactory instance
39
+ */
40
+ export function createPathFactory(options = {}) {
41
+ const projectRoot = options.projectRoot ?? getProjectRootFromConfig();
42
+ return {
43
+ get projectRoot() {
44
+ return projectRoot;
45
+ },
46
+ resolve(relativePath) {
47
+ if (!relativePath) {
48
+ return projectRoot;
49
+ }
50
+ if (path.isAbsolute(relativePath)) {
51
+ return relativePath;
52
+ }
53
+ return path.join(projectRoot, relativePath);
54
+ },
55
+ resolveLumenflowPath(key) {
56
+ // TypeScript enforces key validity at compile time via LumenflowPathKey type.
57
+ // Runtime check uses 'in' operator for defense-in-depth without triggering
58
+ // sonarjs/different-types-comparison on the value check.
59
+ if (!(key in LUMENFLOW_PATHS)) {
60
+ throw createError(ErrorCodes.INVALID_ARGUMENT, `Unknown LUMENFLOW_PATHS key: ${String(key)}`, { key: String(key) });
61
+ }
62
+ const relativePath = LUMENFLOW_PATHS[key];
63
+ return path.join(projectRoot, String(relativePath));
64
+ },
65
+ };
66
+ }
67
+ //# sourceMappingURL=path-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-factory.js","sourceRoot":"","sources":["../src/path-factory.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AA8C7D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA8B,EAAE;IAChE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,wBAAwB,EAAE,CAAC;IAEtE,OAAO;QACL,IAAI,WAAW;YACb,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,OAAO,CAAC,YAAoB;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAClC,OAAO,YAAY,CAAC;YACtB,CAAC;YACD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;QAED,oBAAoB,CAAC,GAAqB;YACxC,8EAA8E;YAC9E,2EAA2E;YAC3E,yDAAyD;YACzD,IAAI,CAAC,CAAC,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC;gBAC9B,MAAM,WAAW,CACf,UAAU,CAAC,gBAAgB,EAC3B,gCAAgC,MAAM,CAAC,GAAG,CAAC,EAAE,EAC7C,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CACrB,CAAC;YACJ,CAAC;YACD,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QACtD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -14,12 +14,12 @@
14
14
  * @param {string} command - Shell command to analyze
15
15
  * @returns {boolean} True if command is a piped pnpm dependency command
16
16
  */
17
- export declare function isPipedPnpmCommand(command: UnsafeAny): boolean;
17
+ export declare function isPipedPnpmCommand(command: string): boolean;
18
18
  /**
19
19
  * Check if a command contains UnsafeAny dependency-mutating pnpm subcommand
20
20
  *
21
21
  * @param {string} command - Shell command to analyze
22
22
  * @returns {boolean} True if command contains pnpm dependency mutation
23
23
  */
24
- export declare function containsPnpmDependencyCommand(command: UnsafeAny): boolean;
24
+ export declare function containsPnpmDependencyCommand(command: string): boolean;
25
25
  //# sourceMappingURL=piped-command-detector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"piped-command-detector.d.ts","sourceRoot":"","sources":["../src/piped-command-detector.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,WAqBpD;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,SAAS,WAQ/D"}
1
+ {"version":3,"file":"piped-command-detector.d.ts","sourceRoot":"","sources":["../src/piped-command-detector.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,WAqBjD;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,WAQ5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"piped-command-detector.js","sourceRoot":"","sources":["../src/piped-command-detector.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;GASG;AAEH;;;GAGG;AACH,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAEjG;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAkB;IACnD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8DAA8D;IAC9D,kDAAkD;IAClD,MAAM,aAAa,GAAG,8DAA8D,CAAC;IACrF,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0CAA0C;IAC1C,yDAAyD;IACzD,MAAM,eAAe,GAAG,oEAAoE,CAAC;IAC7F,MAAM,cAAc,GAAG,iEAAiE,CAAC;IACzF,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAAkB;IAC9D,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4HAA4H;IAC5H,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,YAAY,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjF,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"piped-command-detector.js","sourceRoot":"","sources":["../src/piped-command-detector.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;GASG;AAEH;;;GAGG;AACH,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAEjG;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8DAA8D;IAC9D,kDAAkD;IAClD,MAAM,aAAa,GAAG,8DAA8D,CAAC;IACrF,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0CAA0C;IAC1C,yDAAyD;IACzD,MAAM,eAAe,GAAG,oEAAoE,CAAC;IAC7F,MAAM,cAAc,GAAG,iEAAiE,CAAC;IACzF,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAAe;IAC3D,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4HAA4H;IAC5H,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,YAAY,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjF,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC"}
@@ -2,10 +2,16 @@
2
2
  * Context Ports
3
3
  *
4
4
  * WU-1093: INIT-002 Phase 1 - Define ports and domain schemas
5
+ * WU-2128: Standardize error return contracts
5
6
  *
6
7
  * Port interfaces for context-aware validation system.
7
8
  * These abstractions allow external users to inject custom implementations.
8
9
  *
10
+ * Error Contract (WU-2128):
11
+ * Port methods THROW on failure. This is the boundary contract at the
12
+ * hexagonal architecture edge. Adapters provide companion *Safe methods
13
+ * that return Result<T, E> for callers preferring explicit error handling.
14
+ *
9
15
  * Hexagonal Architecture - Input Ports:
10
16
  * - ILocationResolver: Detect main checkout vs worktree
11
17
  * - IGitStateReader: Read git branch, dirty state, ahead/behind
@@ -51,8 +57,11 @@ export interface ILocationResolver {
51
57
  /**
52
58
  * Resolve location context for the given working directory.
53
59
  *
60
+ * Error contract: THROWS on failure (port boundary contract).
61
+ *
54
62
  * @param cwd - Current working directory (defaults to process.cwd())
55
63
  * @returns Promise<LocationContext> - Resolved location context
64
+ * @throws Error if location resolution fails (e.g., not a git repository)
56
65
  */
57
66
  resolveLocation(cwd?: string): Promise<LocationContext>;
58
67
  }
@@ -92,8 +101,11 @@ export interface IGitStateReader {
92
101
  /**
93
102
  * Read current git state for the given working directory.
94
103
  *
104
+ * Error contract: THROWS on failure (port boundary contract).
105
+ *
95
106
  * @param cwd - Current working directory (defaults to process.cwd())
96
107
  * @returns Promise<GitState> - Current git state
108
+ * @throws Error if git state reading fails (e.g., git not available)
97
109
  */
98
110
  readGitState(cwd?: string): Promise<GitState>;
99
111
  }
@@ -126,9 +138,13 @@ export interface IWuStateReader {
126
138
  /**
127
139
  * Read WU state from YAML and detect inconsistencies.
128
140
  *
141
+ * Error contract: THROWS on failure (port boundary contract).
142
+ * Returns null (not an error) when the WU does not exist.
143
+ *
129
144
  * @param wuId - WU ID (e.g., 'WU-1093' or 'wu-1093')
130
145
  * @param repoRoot - Repository root path
131
146
  * @returns Promise<WuStateResult | null> - WU state or null if not found
147
+ * @throws Error if YAML reading/parsing fails
132
148
  */
133
149
  readWuState(wuId: string, repoRoot: string): Promise<WuStateResult | null>;
134
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.ports.d.ts","sourceRoot":"","sources":["../../src/ports/context.ports.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,eAAe,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;CAC5E;AAGD,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"context.ports.d.ts","sourceRoot":"","sources":["../../src/ports/context.ports.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;OAQG;IACH,eAAe,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;OAQG;IACH,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;OAUG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;CAC5E;AAGD,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC"}
@@ -2,10 +2,16 @@
2
2
  * Recovery Ports
3
3
  *
4
4
  * WU-1093: INIT-002 Phase 1 - Define ports and domain schemas
5
+ * WU-2128: Standardize error return contracts
5
6
  *
6
7
  * Port interfaces for recovery-related operations.
7
8
  * These abstractions allow external users to inject custom implementations.
8
9
  *
10
+ * Error Contract (WU-2128):
11
+ * Port methods THROW on failure (boundary contracts).
12
+ * The analyzeRecovery method returns a RecoveryAnalysis with hasIssues=false
13
+ * when no problems are detected -- absence of issues is a valid result, not an error.
14
+ *
9
15
  * Hexagonal Architecture - Input Ports:
10
16
  * - IRecoveryAnalyzer: Analyze WU state issues and suggest recovery actions
11
17
  *
@@ -50,8 +56,12 @@ export interface IRecoveryAnalyzer {
50
56
  /**
51
57
  * Analyze context for recovery issues.
52
58
  *
59
+ * Error contract: THROWS on failure (port boundary contract).
60
+ * Returns RecoveryAnalysis with hasIssues=false when no problems detected.
61
+ *
53
62
  * @param context - Current WU context
54
63
  * @returns Promise<RecoveryAnalysis> - Recovery analysis with issues and suggested actions
64
+ * @throws Error if analysis fails (e.g., filesystem access error)
55
65
  */
56
66
  analyzeRecovery(context: WuContext): Promise<RecoveryAnalysis>;
57
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"recovery.ports.d.ts","sourceRoot":"","sources":["../../src/ports/recovery.ports.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChE;AAGD,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"recovery.ports.d.ts","sourceRoot":"","sources":["../../src/ports/recovery.ports.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;OASG;IACH,eAAe,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChE;AAGD,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC"}
@@ -2,10 +2,15 @@
2
2
  * Validation Ports
3
3
  *
4
4
  * WU-1093: INIT-002 Phase 1 - Define ports and domain schemas
5
+ * WU-2128: Standardize error return contracts
5
6
  *
6
7
  * Port interfaces for validation-related operations.
7
8
  * These abstractions allow external users to inject custom implementations.
8
9
  *
10
+ * Error Contract (WU-2128):
11
+ * Port methods return null for "not found" (not an error condition).
12
+ * Port methods THROW for unexpected failures (e.g., registry corruption).
13
+ *
9
14
  * Hexagonal Architecture - Input Ports:
10
15
  * - ICommandRegistry: Lookup command definitions and validate commands
11
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"validation.ports.d.ts","sourceRoot":"","sources":["../../src/ports/validation.ports.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAAC;IAEhE;;;;;;;;;;OAUG;IACH,0BAA0B,CAAC,OAAO,EAAE,SAAS,GAAG,iBAAiB,EAAE,CAAC;IAEpE;;;;OAIG;IACH,cAAc,IAAI,iBAAiB,EAAE,CAAC;CACvC;AAGD,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"validation.ports.d.ts","sourceRoot":"","sources":["../../src/ports/validation.ports.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAAC;IAEhE;;;;;;;;;;OAUG;IACH,0BAA0B,CAAC,OAAO,EAAE,SAAS,GAAG,iBAAiB,EAAE,CAAC;IAEpE;;;;OAIG;IACH,cAAc,IAAI,iBAAiB,EAAE,CAAC;CACvC;AAGD,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC"}
@@ -4,6 +4,14 @@
4
4
  * Focused interfaces for the decomposed WU state store services.
5
5
  * Each interface defines a single responsibility boundary.
6
6
  *
7
+ * Error Contract (WU-2128):
8
+ * Port methods THROW on failure (boundary contracts). Specifically:
9
+ * - State transition methods (claim, complete, block, etc.) throw if the
10
+ * WU is in an invalid state for the requested transition.
11
+ * - Lock methods (acquireLock) throw if the lock cannot be acquired.
12
+ * - Query methods (getWUState, getByStatus) return undefined/empty set for
13
+ * "not found" conditions -- absence of data is not an error.
14
+ *
7
15
  * @module ports/wu-state
8
16
  */
9
17
  import type { WUEvent } from '../wu-state-schema.js';
@@ -1 +1 @@
1
- {"version":3,"file":"wu-state.ports.d.ts","sourceRoot":"","sources":["../../src/ports/wu-state.ports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wu-state.ports.d.ts","sourceRoot":"","sources":["../../src/ports/wu-state.ports.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
+ /** Process info from ps-list */
2
+ interface ProcessEntry {
3
+ pid: number;
4
+ name: string;
5
+ cmd?: string;
6
+ }
1
7
  /**
2
8
  * Re-export interfering process names for external consumers.
3
9
  * Source of truth is PROCESS_DETECTION.INTERFERING_NAMES in wu-constants.ts
@@ -18,14 +24,14 @@ export declare const INTERFERING_PROCESS_NAMES: string[];
18
24
  * const processes = await psList();
19
25
  * const interfering = filterProcessesForWorktree(processes, '/path/to/worktree');
20
26
  */
21
- export declare function filterProcessesForWorktree(processes: UnsafeAny, worktreePath: UnsafeAny): any;
27
+ export declare function filterProcessesForWorktree(processes: readonly ProcessEntry[], worktreePath: string | null | undefined): ProcessEntry[];
22
28
  /**
23
29
  * Build a warning message for detected background processes.
24
30
  *
25
31
  * @param {Array<{pid: number, name: string, cmd?: string}>} processes - Detected processes
26
32
  * @returns {string} Formatted warning message
27
33
  */
28
- export declare function buildWarningMessage(processes: UnsafeAny): string;
34
+ export declare function buildWarningMessage(processes: readonly ProcessEntry[]): string;
29
35
  /**
30
36
  * Detect background processes that might interfere with wu:done.
31
37
  *
@@ -42,12 +48,12 @@ export declare function buildWarningMessage(processes: UnsafeAny): string;
42
48
  * console.warn(result.warnings.join('\n'));
43
49
  * }
44
50
  */
45
- export declare function detectBackgroundProcesses(worktreePath: UnsafeAny): Promise<{
51
+ export declare function detectBackgroundProcesses(worktreePath: string | null | undefined): Promise<{
46
52
  hasProcesses: boolean;
47
- processes: any;
53
+ processes: ProcessEntry[];
48
54
  warnings: string[];
49
55
  } | {
50
- error: any;
56
+ error: string;
51
57
  hasProcesses: boolean;
52
58
  processes: never[];
53
59
  warnings: never[];
@@ -65,5 +71,6 @@ export declare function detectBackgroundProcesses(worktreePath: UnsafeAny): Prom
65
71
  * // In wu-done.ts pre-flight checks:
66
72
  * await runBackgroundProcessCheck(worktreePath);
67
73
  */
68
- export declare function runBackgroundProcessCheck(worktreePath: UnsafeAny): Promise<void>;
74
+ export declare function runBackgroundProcessCheck(worktreePath: string): Promise<void>;
75
+ export {};
69
76
  //# sourceMappingURL=process-detector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"process-detector.d.ts","sourceRoot":"","sources":["../src/process-detector.ts"],"names":[],"mappings":"AAmBA;;;GAGG;AACH,eAAO,MAAM,yBAAyB,UAAsC,CAAC;AAE7E;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,OAkBvF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,UAsCvD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,yBAAyB,CAAC,YAAY,EAAE,SAAS;;;;;;;;;GA8CtE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,yBAAyB,CAAC,YAAY,EAAE,SAAS,iBActE"}
1
+ {"version":3,"file":"process-detector.d.ts","sourceRoot":"","sources":["../src/process-detector.ts"],"names":[],"mappings":"AAmBA,gCAAgC;AAChC,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,UAAsC,CAAC;AAE7E;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,YAAY,EAAE,EAClC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,YAAY,EAAE,CAkBhB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,CAsC9E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;;;;;;;;;GAiDtF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,yBAAyB,CAAC,YAAY,EAAE,MAAM,iBAcnE"}
@@ -140,10 +140,11 @@ export async function detectBackgroundProcesses(worktreePath) {
140
140
  catch (error) {
141
141
  // Handle ps-list errors gracefully (permission issues, etc.)
142
142
  // Don't block wu:done on process detection failure
143
- console.warn(`${LOG_PREFIX.DONE} ${EMOJI.WARNING} Could not detect background processes: ${error.message}`);
143
+ const errorMessage = error instanceof Error ? error.message : String(error);
144
+ console.warn(`${LOG_PREFIX.DONE} ${EMOJI.WARNING} Could not detect background processes: ${errorMessage}`);
144
145
  return {
145
146
  ...noProcessesResult,
146
- error: error.message,
147
+ error: errorMessage,
147
148
  };
148
149
  }
149
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"process-detector.js","sourceRoot":"","sources":["../src/process-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-detector.js","sourceRoot":"","sources":["../src/process-detector.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,22 @@ export declare function loadConfig(configPath?: string): {
21
21
  };
22
22
  retry_pattern: any;
23
23
  };
24
+ /**
25
+ * Lint a single prompt file
26
+ * @param {string} filePath - Absolute path to prompt file
27
+ * @param {Object} previousMetrics - Previous metrics for delta calculation
28
+ * @param {string} mode - Mode (pre-commit, pre-push, ci, local)
29
+ * @param {Object} config - Configuration object from loadConfig()
30
+ * @param {{quiet?: boolean, verbose?: boolean}} output - Output mode
31
+ * @returns {Promise<{passed: boolean, tokenCount: number, delta: number, hash: string}>}
32
+ */
33
+ /** Result of linting a single prompt file */
34
+ interface LintFileResult {
35
+ passed: boolean;
36
+ tokenCount: number;
37
+ delta: number;
38
+ hash: string;
39
+ }
24
40
  /**
25
41
  * Options for linting prompts
26
42
  */
@@ -40,7 +56,9 @@ export interface LintPromptsOptions {
40
56
  */
41
57
  export declare function lintPrompts(filePaths?: string[], mode?: string, configPath?: string | undefined, options?: LintPromptsOptions): Promise<{
42
58
  passed: boolean;
43
- results: any[];
59
+ results: (LintFileResult & {
60
+ filePath: string;
61
+ })[];
44
62
  config: {
45
63
  version: any;
46
64
  token_budgets: {
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-linter.d.ts","sourceRoot":"","sources":["../src/prompt-linter.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,6BAA6B,0BAA0B,CAAC;AAErE;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,UAAU,SAAsB;;;;;;;;;;;;;;;;EAwD1D;AAkND;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,SAAS,GAAE,MAAM,EAAO,EACxB,IAAI,SAAU,EACd,UAAU,GAAE,MAAM,GAAG,SAAqB,EAC1C,OAAO,GAAE,kBAAuB;;;;;;;;;;;;;;;;;;;;GAwCjC;AAED;;GAEG;AACH,iBAAe,IAAI,kBAwClB;AAGD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACxC;AAUD,wBAAsB,kBAAkB,CACtC,IAAI,GAAE,mBAAoD,GACzD,OAAO,CAAC,IAAI,CAAC,CAWf"}
1
+ {"version":3,"file":"prompt-linter.d.ts","sourceRoot":"","sources":["../src/prompt-linter.ts"],"names":[],"mappings":"AAsCA,eAAO,MAAM,6BAA6B,0BAA0B,CAAC;AAErE;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,UAAU,SAAsB;;;;;;;;;;;;;;;;EAyD1D;AAsHD;;;;;;;;GAQG;AACH,6CAA6C;AAC7C,UAAU,cAAc;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAqGD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,SAAS,GAAE,MAAM,EAAO,EACxB,IAAI,SAAU,EACd,UAAU,GAAE,MAAM,GAAG,SAAqB,EAC1C,OAAO,GAAE,kBAAuB;;;kBAiBkB,MAAM;;;;;;;;;;;;;;;;;;;GAuBzD;AAED;;GAEG;AACH,iBAAe,IAAI,kBAwClB;AAGD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACxC;AAUD,wBAAsB,kBAAkB,CACtC,IAAI,GAAE,mBAAoD,GACzD,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -16,18 +16,21 @@ import { analyzePrompt, getLongestLines } from './token-counter.js';
16
16
  import { readFile, writeFile, mkdir, appendFile, access } from 'node:fs/promises';
17
17
  import { existsSync, readFileSync } from 'node:fs';
18
18
  import { resolve, dirname } from 'path';
19
- import { fileURLToPath } from 'url';
20
19
  import { glob } from 'glob';
21
20
  import yaml from 'yaml';
22
- import { EXIT_CODES, STRING_LITERALS, LUMENFLOW_PATHS } from './wu-constants.js';
21
+ import { EXIT_CODES, STRING_LITERALS } from './wu-constants.js';
23
22
  import { ProcessExitError } from './error-handler.js';
24
- const __filename = fileURLToPath(import.meta.url);
25
- const __dirname = dirname(__filename);
26
- const ROOT_DIR = resolve(__dirname, '../..');
23
+ import { createPathFactory } from './path-factory.js';
24
+ /**
25
+ * WU-2124: Use PathFactory for project root resolution.
26
+ * Replaces: resolve(__dirname, '../..')
27
+ */
28
+ const pathFactory = createPathFactory();
29
+ const ROOT_DIR = pathFactory.projectRoot;
27
30
  // Default config path
28
31
  const DEFAULT_CONFIG_PATH = resolve(ROOT_DIR, 'config/prompts/linter.yml');
29
32
  // Telemetry cache path (for storing previous metrics) - WU-1430: Use centralized constant
30
- const METRICS_CACHE_PATH = resolve(ROOT_DIR, LUMENFLOW_PATHS.PROMPT_METRICS);
33
+ const METRICS_CACHE_PATH = pathFactory.resolveLumenflowPath('PROMPT_METRICS');
31
34
  export const PROMPT_LINTER_FAILURE_MESSAGE = 'Prompt linter failed:';
32
35
  /**
33
36
  * Load config from YAML file with fallback to defaults
@@ -82,7 +85,8 @@ export function loadConfig(configPath = DEFAULT_CONFIG_PATH) {
82
85
  }
83
86
  catch (_error) {
84
87
  // YAML parsing error or other failure, use defaults
85
- console.error(`⚠️ Failed to load config from ${configPath}: ${_error.message}`);
88
+ const errorMessage = _error instanceof Error ? _error.message : String(_error);
89
+ console.error(`⚠️ Failed to load config from ${configPath}: ${errorMessage}`);
86
90
  console.error(` Using default token budgets.`);
87
91
  return defaults;
88
92
  }
@@ -143,8 +147,8 @@ async function log(level, event, data, output = {}) {
143
147
  event,
144
148
  ...data,
145
149
  };
146
- // For CLI, write to telemetry prompt lint file - WU-1430: Use centralized constant
147
- const ndjsonPath = resolve(ROOT_DIR, LUMENFLOW_PATHS.PROMPT_LINT);
150
+ // For CLI, write to telemetry prompt lint file - WU-1430/WU-2124: Use PathFactory
151
+ const ndjsonPath = pathFactory.resolveLumenflowPath('PROMPT_LINT');
148
152
  const line = `${JSON.stringify(entry)}${STRING_LITERALS.NEWLINE}`;
149
153
  try {
150
154
  const dir = dirname(ndjsonPath);
@@ -179,15 +183,6 @@ async function log(level, event, data, output = {}) {
179
183
  }
180
184
  }
181
185
  }
182
- /**
183
- * Lint a single prompt file
184
- * @param {string} filePath - Absolute path to prompt file
185
- * @param {Object} previousMetrics - Previous metrics for delta calculation
186
- * @param {string} mode - Mode (pre-commit, pre-push, ci, local)
187
- * @param {Object} config - Configuration object from loadConfig()
188
- * @param {{quiet?: boolean, verbose?: boolean}} output - Output mode
189
- * @returns {Promise<{passed: boolean, tokenCount: number, delta: number, hash: string}>}
190
- */
191
186
  async function lintPromptFile(filePath, previousMetrics, mode, config, output) {
192
187
  // Analyze prompt
193
188
  const { tokenCount, hash, text } = analyzePrompt(filePath);
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-linter.js","sourceRoot":"","sources":["../src/prompt-linter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-linter.js","sourceRoot":"","sources":["../src/prompt-linter.ts"],"names":[],"mappings":"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"}
@@ -17,17 +17,21 @@
17
17
  import { analyzePrompt } from './token-counter.js';
18
18
  import { readFile, writeFile, mkdir, appendFile, access } from 'node:fs/promises';
19
19
  import { resolve, dirname } from 'path';
20
- import { fileURLToPath } from 'url';
21
20
  import { glob } from 'glob';
22
- import { EXIT_CODES, STRING_LITERALS, LUMENFLOW_PATHS } from './wu-constants.js';
21
+ import { EXIT_CODES, STRING_LITERALS } from './wu-constants.js';
23
22
  import { ProcessExitError } from './error-handler.js';
24
- const __filename = fileURLToPath(import.meta.url);
25
- const __dirname = dirname(__filename);
26
- const ROOT_DIR = resolve(__dirname, '../..');
27
- // Paths
28
- const YESTERDAY_METRICS_PATH = resolve(ROOT_DIR, LUMENFLOW_PATHS.TELEMETRY, 'prompt-metrics-yesterday.json');
29
- const TODAY_METRICS_PATH = resolve(ROOT_DIR, LUMENFLOW_PATHS.TELEMETRY, 'prompt-metrics.json');
30
- const NDJSON_LOG_PATH = resolve(ROOT_DIR, LUMENFLOW_PATHS.TELEMETRY, 'prompt-nightly.ndjson');
23
+ import { createPathFactory } from './path-factory.js';
24
+ /**
25
+ * WU-2124: Use PathFactory for project root resolution.
26
+ * Replaces: resolve(__dirname, '../..')
27
+ */
28
+ const pathFactory = createPathFactory();
29
+ const ROOT_DIR = pathFactory.projectRoot;
30
+ // Paths (WU-2124: use PathFactory.resolveLumenflowPath instead of __dirname-relative)
31
+ const TELEMETRY_DIR = pathFactory.resolveLumenflowPath('TELEMETRY');
32
+ const YESTERDAY_METRICS_PATH = resolve(TELEMETRY_DIR, 'prompt-metrics-yesterday.json');
33
+ const TODAY_METRICS_PATH = resolve(TELEMETRY_DIR, 'prompt-metrics.json');
34
+ const NDJSON_LOG_PATH = resolve(TELEMETRY_DIR, 'prompt-nightly.ndjson');
31
35
  // Alert thresholds
32
36
  const WARN_THRESHOLD = 400;
33
37
  const DELTA_THRESHOLD = 50;