@lumenflow/core 3.3.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 (369) 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/adapters/filesystem-metrics.adapter.js +1 -1
  6. package/dist/agent-patterns-registry.d.ts.map +1 -1
  7. package/dist/agent-patterns-registry.js +2 -1
  8. package/dist/agent-patterns-registry.js.map +1 -1
  9. package/dist/arg-parser.d.ts.map +1 -1
  10. package/dist/arg-parser.js +31 -0
  11. package/dist/arg-parser.js.map +1 -1
  12. package/dist/atomic-merge.d.ts.map +1 -1
  13. package/dist/atomic-merge.js +3 -4
  14. package/dist/atomic-merge.js.map +1 -1
  15. package/dist/backlog-editor.d.ts +2 -1
  16. package/dist/backlog-editor.d.ts.map +1 -1
  17. package/dist/backlog-editor.js.map +1 -1
  18. package/dist/backlog-parser.d.ts +1 -1
  19. package/dist/backlog-parser.d.ts.map +1 -1
  20. package/dist/backlog-parser.js.map +1 -1
  21. package/dist/backlog-sync-validator.d.ts.map +1 -1
  22. package/dist/backlog-sync-validator.js +9 -5
  23. package/dist/backlog-sync-validator.js.map +1 -1
  24. package/dist/branch-check.d.ts.map +1 -1
  25. package/dist/branch-check.js +3 -2
  26. package/dist/branch-check.js.map +1 -1
  27. package/dist/branch-drift.d.ts +1 -1
  28. package/dist/branch-drift.d.ts.map +1 -1
  29. package/dist/branch-drift.js.map +1 -1
  30. package/dist/cleanup-lock.d.ts +13 -4
  31. package/dist/cleanup-lock.d.ts.map +1 -1
  32. package/dist/cleanup-lock.js +1 -1
  33. package/dist/cleanup-lock.js.map +1 -1
  34. package/dist/code-path-validator.d.ts.map +1 -1
  35. package/dist/code-path-validator.js +3 -2
  36. package/dist/code-path-validator.js.map +1 -1
  37. package/dist/code-paths-overlap.d.ts +5 -4
  38. package/dist/code-paths-overlap.d.ts.map +1 -1
  39. package/dist/code-paths-overlap.js +16 -9
  40. package/dist/code-paths-overlap.js.map +1 -1
  41. package/dist/commands-logger.d.ts.map +1 -1
  42. package/dist/commands-logger.js +17 -9
  43. package/dist/commands-logger.js.map +1 -1
  44. package/dist/commit-message-utils.d.ts +1 -1
  45. package/dist/commit-message-utils.d.ts.map +1 -1
  46. package/dist/commit-message-utils.js.map +1 -1
  47. package/dist/constants/backlog-patterns.d.ts +1 -1
  48. package/dist/constants/backlog-patterns.d.ts.map +1 -1
  49. package/dist/constants/backlog-patterns.js.map +1 -1
  50. package/dist/core/scope-checker.d.ts +2 -2
  51. package/dist/core/scope-checker.d.ts.map +1 -1
  52. package/dist/core/scope-checker.js +18 -25
  53. package/dist/core/scope-checker.js.map +1 -1
  54. package/dist/core/tool-runner.d.ts.map +1 -1
  55. package/dist/core/tool-runner.js +2 -1
  56. package/dist/core/tool-runner.js.map +1 -1
  57. package/dist/core/tool.schemas.d.ts +2 -2
  58. package/dist/core/worktree-guard.d.ts.map +1 -1
  59. package/dist/core/worktree-guard.js +13 -18
  60. package/dist/core/worktree-guard.js.map +1 -1
  61. package/dist/date-utils.d.ts +3 -3
  62. package/dist/date-utils.d.ts.map +1 -1
  63. package/dist/date-utils.js +2 -2
  64. package/dist/date-utils.js.map +1 -1
  65. package/dist/delegation-escalation.d.ts.map +1 -1
  66. package/dist/delegation-escalation.js +6 -5
  67. package/dist/delegation-escalation.js.map +1 -1
  68. package/dist/delegation-registry-store.d.ts.map +1 -1
  69. package/dist/delegation-registry-store.js +6 -5
  70. package/dist/delegation-registry-store.js.map +1 -1
  71. package/dist/dependency-guard.d.ts +2 -2
  72. package/dist/dependency-guard.d.ts.map +1 -1
  73. package/dist/dependency-guard.js +4 -3
  74. package/dist/dependency-guard.js.map +1 -1
  75. package/dist/docs-layout-presets.d.ts +29 -0
  76. package/dist/docs-layout-presets.d.ts.map +1 -0
  77. package/dist/docs-layout-presets.js +38 -0
  78. package/dist/docs-layout-presets.js.map +1 -0
  79. package/dist/docs-path-validator.d.ts +2 -2
  80. package/dist/docs-path-validator.d.ts.map +1 -1
  81. package/dist/docs-path-validator.js +6 -9
  82. package/dist/docs-path-validator.js.map +1 -1
  83. package/dist/domain/index.d.ts +1 -0
  84. package/dist/domain/index.d.ts.map +1 -1
  85. package/dist/domain/index.js +2 -0
  86. package/dist/domain/index.js.map +1 -1
  87. package/dist/domain/result.d.ts +116 -0
  88. package/dist/domain/result.d.ts.map +1 -0
  89. package/dist/domain/result.js +96 -0
  90. package/dist/domain/result.js.map +1 -0
  91. package/dist/domain/validation.schemas.d.ts +3 -3
  92. package/dist/error-handler.d.ts +36 -3
  93. package/dist/error-handler.d.ts.map +1 -1
  94. package/dist/error-handler.js +36 -0
  95. package/dist/error-handler.js.map +1 -1
  96. package/dist/file-classifiers.d.ts +10 -18
  97. package/dist/file-classifiers.d.ts.map +1 -1
  98. package/dist/file-classifiers.js +22 -6
  99. package/dist/file-classifiers.js.map +1 -1
  100. package/dist/gates-coverage.js.map +1 -1
  101. package/dist/git-adapter.d.ts.map +1 -1
  102. package/dist/git-adapter.js +5 -4
  103. package/dist/git-adapter.js.map +1 -1
  104. package/dist/git-staged-validator.d.ts +4 -4
  105. package/dist/git-staged-validator.js +4 -4
  106. package/dist/incremental-lint.d.ts +3 -3
  107. package/dist/incremental-lint.d.ts.map +1 -1
  108. package/dist/incremental-lint.js.map +1 -1
  109. package/dist/incremental-test.d.ts +1 -1
  110. package/dist/incremental-test.d.ts.map +1 -1
  111. package/dist/incremental-test.js.map +1 -1
  112. package/dist/index.d.ts +7 -0
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +9 -0
  115. package/dist/index.js.map +1 -1
  116. package/dist/invariants/check-automated-tests.d.ts +1 -1
  117. package/dist/invariants/check-automated-tests.d.ts.map +1 -1
  118. package/dist/invariants/check-automated-tests.js.map +1 -1
  119. package/dist/invariants-runner.d.ts.map +1 -1
  120. package/dist/invariants-runner.js +4 -4
  121. package/dist/invariants-runner.js.map +1 -1
  122. package/dist/lane-checker.d.ts.map +1 -1
  123. package/dist/lane-checker.js +13 -12
  124. package/dist/lane-checker.js.map +1 -1
  125. package/dist/lane-validator.d.ts +17 -10
  126. package/dist/lane-validator.d.ts.map +1 -1
  127. package/dist/lane-validator.js +6 -6
  128. package/dist/lane-validator.js.map +1 -1
  129. package/dist/logs-lib.d.ts +1 -1
  130. package/dist/logs-lib.d.ts.map +1 -1
  131. package/dist/logs-lib.js.map +1 -1
  132. package/dist/lumenflow-config-schema.d.ts +8 -0
  133. package/dist/lumenflow-config-schema.d.ts.map +1 -1
  134. package/dist/lumenflow-config-schema.js +3 -1
  135. package/dist/lumenflow-config-schema.js.map +1 -1
  136. package/dist/lumenflow-config.d.ts +9 -2
  137. package/dist/lumenflow-config.d.ts.map +1 -1
  138. package/dist/lumenflow-config.js +12 -4
  139. package/dist/lumenflow-config.js.map +1 -1
  140. package/dist/lumenflow-home.d.ts +3 -3
  141. package/dist/lumenflow-home.js +3 -3
  142. package/dist/manual-test-validator.d.ts +15 -7
  143. package/dist/manual-test-validator.d.ts.map +1 -1
  144. package/dist/manual-test-validator.js +9 -8
  145. package/dist/manual-test-validator.js.map +1 -1
  146. package/dist/micro-worktree.d.ts.map +1 -1
  147. package/dist/micro-worktree.js +6 -5
  148. package/dist/micro-worktree.js.map +1 -1
  149. package/dist/orphan-detector.d.ts +11 -11
  150. package/dist/orphan-detector.d.ts.map +1 -1
  151. package/dist/orphan-detector.js.map +1 -1
  152. package/dist/pack-authoring-template-engine.d.ts.map +1 -1
  153. package/dist/pack-authoring-template-engine.js +8 -7
  154. package/dist/pack-authoring-template-engine.js.map +1 -1
  155. package/dist/path-classifiers.d.ts +6 -18
  156. package/dist/path-classifiers.d.ts.map +1 -1
  157. package/dist/path-classifiers.js +11 -15
  158. package/dist/path-classifiers.js.map +1 -1
  159. package/dist/path-factory.d.ts +54 -0
  160. package/dist/path-factory.d.ts.map +1 -0
  161. package/dist/path-factory.js +67 -0
  162. package/dist/path-factory.js.map +1 -0
  163. package/dist/piped-command-detector.d.ts +2 -2
  164. package/dist/piped-command-detector.d.ts.map +1 -1
  165. package/dist/piped-command-detector.js.map +1 -1
  166. package/dist/ports/context.ports.d.ts +17 -1
  167. package/dist/ports/context.ports.d.ts.map +1 -1
  168. package/dist/ports/recovery.ports.d.ts +10 -0
  169. package/dist/ports/recovery.ports.d.ts.map +1 -1
  170. package/dist/ports/validation.ports.d.ts +5 -0
  171. package/dist/ports/validation.ports.d.ts.map +1 -1
  172. package/dist/ports/wu-state.ports.d.ts +8 -1
  173. package/dist/ports/wu-state.ports.d.ts.map +1 -1
  174. package/dist/process-detector.d.ts +13 -6
  175. package/dist/process-detector.d.ts.map +1 -1
  176. package/dist/process-detector.js +3 -2
  177. package/dist/process-detector.js.map +1 -1
  178. package/dist/prompt-linter.d.ts +19 -1
  179. package/dist/prompt-linter.d.ts.map +1 -1
  180. package/dist/prompt-linter.js +13 -18
  181. package/dist/prompt-linter.js.map +1 -1
  182. package/dist/prompt-monitor.js +13 -9
  183. package/dist/prompt-monitor.js.map +1 -1
  184. package/dist/retry-strategy.d.ts +18 -39
  185. package/dist/retry-strategy.d.ts.map +1 -1
  186. package/dist/retry-strategy.js +13 -9
  187. package/dist/retry-strategy.js.map +1 -1
  188. package/dist/schemas/directories-config.d.ts +1 -0
  189. package/dist/schemas/directories-config.d.ts.map +1 -1
  190. package/dist/schemas/directories-config.js +25 -39
  191. package/dist/schemas/directories-config.js.map +1 -1
  192. package/dist/schemas/flow-arg-validators.d.ts +6 -6
  193. package/dist/schemas/flow-schemas.d.ts +12 -12
  194. package/dist/schemas/initiative-arg-validators.d.ts +2 -2
  195. package/dist/schemas/initiative-schemas.d.ts +5 -5
  196. package/dist/schemas/operational-config.d.ts +17 -0
  197. package/dist/schemas/operational-config.d.ts.map +1 -1
  198. package/dist/schemas/operational-config.js +21 -0
  199. package/dist/schemas/operational-config.js.map +1 -1
  200. package/dist/schemas/wu-lifecycle-arg-validators.d.ts +2 -2
  201. package/dist/schemas/wu-lifecycle-schemas.d.ts +4 -4
  202. package/dist/section-headings.d.ts +1 -1
  203. package/dist/section-headings.d.ts.map +1 -1
  204. package/dist/section-headings.js.map +1 -1
  205. package/dist/telemetry.d.ts +65 -6
  206. package/dist/telemetry.d.ts.map +1 -1
  207. package/dist/telemetry.js +516 -3
  208. package/dist/telemetry.js.map +1 -1
  209. package/dist/template-loader.d.ts +1 -5
  210. package/dist/template-loader.d.ts.map +1 -1
  211. package/dist/template-loader.js +5 -20
  212. package/dist/template-loader.js.map +1 -1
  213. package/dist/usecases/index.d.ts +9 -0
  214. package/dist/usecases/index.d.ts.map +1 -1
  215. package/dist/usecases/index.js +9 -0
  216. package/dist/usecases/index.js.map +1 -1
  217. package/dist/user-normalizer.d.ts +3 -3
  218. package/dist/user-normalizer.d.ts.map +1 -1
  219. package/dist/user-normalizer.js +1 -1
  220. package/dist/user-normalizer.js.map +1 -1
  221. package/dist/worktree-ownership.d.ts +1 -1
  222. package/dist/worktree-ownership.d.ts.map +1 -1
  223. package/dist/worktree-ownership.js.map +1 -1
  224. package/dist/wu-backlog-updater.d.ts +1 -1
  225. package/dist/wu-backlog-updater.d.ts.map +1 -1
  226. package/dist/wu-backlog-updater.js.map +1 -1
  227. package/dist/wu-checkpoint.d.ts +16 -9
  228. package/dist/wu-checkpoint.d.ts.map +1 -1
  229. package/dist/wu-checkpoint.js +0 -10
  230. package/dist/wu-checkpoint.js.map +1 -1
  231. package/dist/wu-claim-helpers.d.ts +4 -2
  232. package/dist/wu-claim-helpers.d.ts.map +1 -1
  233. package/dist/wu-claim-helpers.js +2 -1
  234. package/dist/wu-claim-helpers.js.map +1 -1
  235. package/dist/wu-claim-resume.d.ts +49 -37
  236. package/dist/wu-claim-resume.d.ts.map +1 -1
  237. package/dist/wu-claim-resume.js +9 -6
  238. package/dist/wu-claim-resume.js.map +1 -1
  239. package/dist/wu-consistency-file-repairs.d.ts +1 -1
  240. package/dist/wu-consistency-file-repairs.d.ts.map +1 -1
  241. package/dist/wu-consistency-file-repairs.js +7 -5
  242. package/dist/wu-consistency-file-repairs.js.map +1 -1
  243. package/dist/wu-constants.d.ts +2 -2
  244. package/dist/wu-constants.d.ts.map +1 -1
  245. package/dist/wu-constants.js +2 -2
  246. package/dist/wu-constants.js.map +1 -1
  247. package/dist/wu-context-constants.d.ts +68 -0
  248. package/dist/wu-context-constants.d.ts.map +1 -1
  249. package/dist/wu-context-constants.js +73 -0
  250. package/dist/wu-context-constants.js.map +1 -1
  251. package/dist/wu-create-validators.d.ts +9 -6
  252. package/dist/wu-create-validators.d.ts.map +1 -1
  253. package/dist/wu-create-validators.js +7 -5
  254. package/dist/wu-create-validators.js.map +1 -1
  255. package/dist/wu-done-branch-only.d.ts.map +1 -1
  256. package/dist/wu-done-branch-only.js +14 -14
  257. package/dist/wu-done-branch-only.js.map +1 -1
  258. package/dist/wu-done-branch-utils.d.ts +1 -1
  259. package/dist/wu-done-branch-utils.d.ts.map +1 -1
  260. package/dist/wu-done-branch-utils.js.map +1 -1
  261. package/dist/wu-done-concurrent-merge.d.ts.map +1 -1
  262. package/dist/wu-done-concurrent-merge.js +8 -7
  263. package/dist/wu-done-concurrent-merge.js.map +1 -1
  264. package/dist/wu-done-docs-only.d.ts +1 -1
  265. package/dist/wu-done-docs-only.d.ts.map +1 -1
  266. package/dist/wu-done-docs-only.js +3 -2
  267. package/dist/wu-done-docs-only.js.map +1 -1
  268. package/dist/wu-done-errors.d.ts +3 -3
  269. package/dist/wu-done-errors.d.ts.map +1 -1
  270. package/dist/wu-done-errors.js.map +1 -1
  271. package/dist/wu-done-inputs.d.ts +1 -1
  272. package/dist/wu-done-inputs.d.ts.map +1 -1
  273. package/dist/wu-done-inputs.js.map +1 -1
  274. package/dist/wu-done-metadata.d.ts +2 -2
  275. package/dist/wu-done-metadata.d.ts.map +1 -1
  276. package/dist/wu-done-metadata.js +3 -5
  277. package/dist/wu-done-metadata.js.map +1 -1
  278. package/dist/wu-done-preflight-checks.js +2 -2
  279. package/dist/wu-done-preflight-checks.js.map +1 -1
  280. package/dist/wu-done-preflight.d.ts.map +1 -1
  281. package/dist/wu-done-preflight.js +3 -2
  282. package/dist/wu-done-preflight.js.map +1 -1
  283. package/dist/wu-done-rebase.d.ts.map +1 -1
  284. package/dist/wu-done-rebase.js +6 -8
  285. package/dist/wu-done-rebase.js.map +1 -1
  286. package/dist/wu-done-retry-helpers.d.ts +30 -7
  287. package/dist/wu-done-retry-helpers.d.ts.map +1 -1
  288. package/dist/wu-done-retry-helpers.js +17 -14
  289. package/dist/wu-done-retry-helpers.js.map +1 -1
  290. package/dist/wu-done-ui.d.ts +1 -1
  291. package/dist/wu-done-ui.d.ts.map +1 -1
  292. package/dist/wu-done-ui.js +1 -3
  293. package/dist/wu-done-ui.js.map +1 -1
  294. package/dist/wu-done-validation.d.ts.map +1 -1
  295. package/dist/wu-done-validation.js +10 -23
  296. package/dist/wu-done-validation.js.map +1 -1
  297. package/dist/wu-done-worktree.js.map +1 -1
  298. package/dist/wu-event-sourcer.d.ts +15 -2
  299. package/dist/wu-event-sourcer.d.ts.map +1 -1
  300. package/dist/wu-event-sourcer.js +79 -44
  301. package/dist/wu-event-sourcer.js.map +1 -1
  302. package/dist/wu-events-cleanup.d.ts.map +1 -1
  303. package/dist/wu-events-cleanup.js +4 -3
  304. package/dist/wu-events-cleanup.js.map +1 -1
  305. package/dist/wu-helpers.d.ts.map +1 -1
  306. package/dist/wu-helpers.js +3 -3
  307. package/dist/wu-helpers.js.map +1 -1
  308. package/dist/wu-id-generator.d.ts.map +1 -1
  309. package/dist/wu-id-generator.js +2 -1
  310. package/dist/wu-id-generator.js.map +1 -1
  311. package/dist/wu-inconsistency-repairer.d.ts.map +1 -1
  312. package/dist/wu-inconsistency-repairer.js +7 -5
  313. package/dist/wu-inconsistency-repairer.js.map +1 -1
  314. package/dist/wu-lint.d.ts +61 -78
  315. package/dist/wu-lint.d.ts.map +1 -1
  316. package/dist/wu-lint.js +9 -4
  317. package/dist/wu-lint.js.map +1 -1
  318. package/dist/wu-lock-manager.d.ts.map +1 -1
  319. package/dist/wu-lock-manager.js +2 -1
  320. package/dist/wu-lock-manager.js.map +1 -1
  321. package/dist/wu-paths-constants.d.ts +4 -9
  322. package/dist/wu-paths-constants.d.ts.map +1 -1
  323. package/dist/wu-paths-constants.js +10 -13
  324. package/dist/wu-paths-constants.js.map +1 -1
  325. package/dist/wu-paths.d.ts +11 -1
  326. package/dist/wu-paths.d.ts.map +1 -1
  327. package/dist/wu-paths.js +10 -20
  328. package/dist/wu-paths.js.map +1 -1
  329. package/dist/wu-recovery.js +2 -2
  330. package/dist/wu-recovery.js.map +1 -1
  331. package/dist/wu-repair-core.js +1 -1
  332. package/dist/wu-repair-core.js.map +1 -1
  333. package/dist/wu-rules-core.d.ts.map +1 -1
  334. package/dist/wu-rules-core.js +2 -1
  335. package/dist/wu-rules-core.js.map +1 -1
  336. package/dist/wu-schema-normalization.d.ts +3 -1
  337. package/dist/wu-schema-normalization.d.ts.map +1 -1
  338. package/dist/wu-schema-normalization.js +6 -4
  339. package/dist/wu-schema-normalization.js.map +1 -1
  340. package/dist/wu-schema.d.ts +64 -5
  341. package/dist/wu-schema.d.ts.map +1 -1
  342. package/dist/wu-schema.js +49 -6
  343. package/dist/wu-schema.js.map +1 -1
  344. package/dist/wu-spawn-context.d.ts.map +1 -1
  345. package/dist/wu-spawn-context.js +2 -1
  346. package/dist/wu-spawn-context.js.map +1 -1
  347. package/dist/wu-spawn-helpers.d.ts.map +1 -1
  348. package/dist/wu-spawn-helpers.js +4 -4
  349. package/dist/wu-spawn-helpers.js.map +1 -1
  350. package/dist/wu-spawn.js.map +1 -1
  351. package/dist/wu-state-schema.d.ts +1 -1
  352. package/dist/wu-state-schema.d.ts.map +1 -1
  353. package/dist/wu-state-schema.js.map +1 -1
  354. package/dist/wu-state-store.d.ts +1 -1
  355. package/dist/wu-state-store.d.ts.map +1 -1
  356. package/dist/wu-state-store.js +6 -5
  357. package/dist/wu-state-store.js.map +1 -1
  358. package/dist/wu-status-updater.d.ts +2 -2
  359. package/dist/wu-status-updater.d.ts.map +1 -1
  360. package/dist/wu-status-updater.js.map +1 -1
  361. package/dist/wu-yaml.d.ts +12 -9
  362. package/dist/wu-yaml.d.ts.map +1 -1
  363. package/dist/wu-yaml.js +62 -55
  364. package/dist/wu-yaml.js.map +1 -1
  365. package/package.json +2 -2
  366. package/dist/wu-delegation-cutover.d.ts +0 -5
  367. package/dist/wu-delegation-cutover.d.ts.map +0 -1
  368. package/dist/wu-delegation-cutover.js +0 -231
  369. package/dist/wu-delegation-cutover.js.map +0 -1
@@ -17,6 +17,7 @@
17
17
  import fs from 'node:fs/promises';
18
18
  import path from 'node:path';
19
19
  import { validateDelegationEvent, generateDelegationId, DelegationStatus, } from './delegation-registry-schema.js';
20
+ import { createError, ErrorCodes } from './error-handler.js';
20
21
  /** Delegation registry file name constant */
21
22
  export const DELEGATION_REGISTRY_FILE_NAME = 'delegation-registry.jsonl';
22
23
  /**
@@ -97,7 +98,7 @@ export class DelegationRegistryStore {
97
98
  parsed = JSON.parse(line);
98
99
  }
99
100
  catch (error) {
100
- throw new Error(`Malformed JSON on line ${i + 1}: ${error.message}`, { cause: error });
101
+ throw createError(ErrorCodes.PARSE_ERROR, `Malformed JSON on line ${i + 1}: ${error.message}`);
101
102
  }
102
103
  // Validate against schema
103
104
  const validation = validateDelegationEvent(parsed);
@@ -105,7 +106,7 @@ export class DelegationRegistryStore {
105
106
  const issues = validation.error.issues
106
107
  .map((issue) => `${issue.path.join('.')}: ${issue.message}`)
107
108
  .join(', ');
108
- throw new Error(`Validation error on line ${i + 1}: ${issues}`);
109
+ throw createError(ErrorCodes.VALIDATION_ERROR, `Validation error on line ${i + 1}: ${issues}`);
109
110
  }
110
111
  const event = validation.data;
111
112
  // Apply event to state (latest event for same ID wins)
@@ -153,7 +154,7 @@ export class DelegationRegistryStore {
153
154
  const issues = validation.error.issues
154
155
  .map((issue) => `${issue.path.join('.')}: ${issue.message}`)
155
156
  .join(', ');
156
- throw new Error(`Validation error: ${issues}`);
157
+ throw createError(ErrorCodes.VALIDATION_ERROR, `Validation error: ${issues}`);
157
158
  }
158
159
  const line = JSON.stringify(event) + '\n';
159
160
  // Ensure parent directory exists before appending
@@ -204,7 +205,7 @@ export class DelegationRegistryStore {
204
205
  async updateStatus(delegationId, status) {
205
206
  const existing = this.delegations.get(delegationId);
206
207
  if (!existing) {
207
- throw new Error(`Delegation ID ${delegationId} not found`);
208
+ throw createError(ErrorCodes.DELEGATION_NOT_FOUND, `Delegation ID ${delegationId} not found`);
208
209
  }
209
210
  const event = {
210
211
  ...existing,
@@ -229,7 +230,7 @@ export class DelegationRegistryStore {
229
230
  async recordPickup(delegationId, pickedUpBy, pickedUpAt) {
230
231
  const existing = this.delegations.get(delegationId);
231
232
  if (!existing) {
232
- throw new Error(`Delegation ID ${delegationId} not found`);
233
+ throw createError(ErrorCodes.DELEGATION_NOT_FOUND, `Delegation ID ${delegationId} not found`);
233
234
  }
234
235
  const event = {
235
236
  ...existing,
@@ -1 +1 @@
1
- {"version":3,"file":"delegation-registry-store.js","sourceRoot":"","sources":["../src/delegation-registry-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delegation-registry-store.js","sourceRoot":"","sources":["../src/delegation-registry-store.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export declare const DEPENDENCY_MUTATING_COMMANDS: string[];
22
22
  * isDependencyMutatingCommand('pnpm run test'); // false
23
23
  * isDependencyMutatingCommand('npm install'); // false (not pnpm)
24
24
  */
25
- export declare function isDependencyMutatingCommand(command: UnsafeAny): boolean;
25
+ export declare function isDependencyMutatingCommand(command: string): boolean;
26
26
  /**
27
27
  * Build a blocking message for dependency-mutating commands on main.
28
28
  *
@@ -33,7 +33,7 @@ export declare function isDependencyMutatingCommand(command: UnsafeAny): boolean
33
33
  * const message = buildDependencyBlockMessage('pnpm add react');
34
34
  * // Returns multi-line message with guidance
35
35
  */
36
- export declare function buildDependencyBlockMessage(command: UnsafeAny): string;
36
+ export declare function buildDependencyBlockMessage(command: string): string;
37
37
  /**
38
38
  * Log prefix for dependency guard output
39
39
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-guard.d.ts","sourceRoot":"","sources":["../src/dependency-guard.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B,UASxC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,SAAS,WA2C7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,SAAS,UA6C7D;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"dependency-guard.d.ts","sourceRoot":"","sources":["../src/dependency-guard.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B,UASxC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,WA2C1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,UA8C1D;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,iBAAiB,CAAC"}
@@ -66,7 +66,7 @@ export function isDependencyMutatingCommand(command) {
66
66
  const parts = trimmed.split(/\s+/);
67
67
  // Find the first non-flag argument after 'pnpm'
68
68
  for (let i = 1; i < parts.length; i++) {
69
- const part = parts[i];
69
+ const part = parts[i] ?? '';
70
70
  // Skip flags (start with -)
71
71
  if (part.startsWith('-')) {
72
72
  // Handle --filter=value format
@@ -100,8 +100,9 @@ export function buildDependencyBlockMessage(command) {
100
100
  const parts = command.trim().split(/\s+/);
101
101
  let subcommand = '';
102
102
  for (let i = 1; i < parts.length; i++) {
103
- if (!parts[i].startsWith('-')) {
104
- subcommand = parts[i];
103
+ const part = parts[i] ?? '';
104
+ if (!part.startsWith('-')) {
105
+ subcommand = part;
105
106
  break;
106
107
  }
107
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-guard.js","sourceRoot":"","sources":["../src/dependency-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependency-guard.js","sourceRoot":"","sources":["../src/dependency-guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export declare const DOCS_LAYOUT_PRESETS: {
2
+ readonly simple: {
3
+ readonly operations: string;
4
+ readonly tasks: string;
5
+ readonly onboarding: string;
6
+ readonly quickRefLink: `${string}/quick-ref-commands.md`;
7
+ readonly completeGuidePath: `${string}/lumenflow-complete.md`;
8
+ readonly quickRefPath: `${string}/quick-ref-commands.md`;
9
+ readonly startingPromptPath: `${string}/starting-prompt.md`;
10
+ readonly sizingGuidePath: `${string}/wu-sizing-guide.md`;
11
+ readonly governancePath: `${string}/governance/project-governance.md`;
12
+ };
13
+ readonly arc42: {
14
+ readonly operations: string;
15
+ readonly tasks: string;
16
+ readonly onboarding: string;
17
+ readonly quickRefLink: `${string}/quick-ref-commands.md`;
18
+ readonly completeGuidePath: `${string}/lumenflow-complete.md`;
19
+ readonly quickRefPath: `${string}/quick-ref-commands.md`;
20
+ readonly startingPromptPath: `${string}/starting-prompt.md`;
21
+ readonly sizingGuidePath: `${string}/wu-sizing-guide.md`;
22
+ readonly governancePath: `${string}/governance/project-governance.md`;
23
+ };
24
+ };
25
+ export type DocsLayoutType = keyof typeof DOCS_LAYOUT_PRESETS;
26
+ export type DocsLayoutPreset = (typeof DOCS_LAYOUT_PRESETS)[DocsLayoutType];
27
+ export declare const DEFAULT_DOCS_LAYOUT: DocsLayoutType;
28
+ export declare function getDocsLayoutPreset(layout: DocsLayoutType): DocsLayoutPreset;
29
+ //# sourceMappingURL=docs-layout-presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-layout-presets.d.ts","sourceRoot":"","sources":["../src/docs-layout-presets.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;CAGtB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,cAAc,CAAC,CAAC;AAE5E,eAAO,MAAM,mBAAmB,EAAE,cAAyB,CAAC;AAE5D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAE5E"}
@@ -0,0 +1,38 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ /**
4
+ * Canonical docs layout presets used across scaffolding and defaults.
5
+ *
6
+ * Keeping presets in one place avoids path-literal drift between:
7
+ * - schema defaults
8
+ * - init docs-structure mapping
9
+ * - runtime prompt/path helpers
10
+ */
11
+ function buildDocsLayout(operations, tasks) {
12
+ const frameworkRoot = `${operations}/_frameworks/lumenflow`;
13
+ const onboarding = `${frameworkRoot}/agent/onboarding`;
14
+ return {
15
+ operations,
16
+ tasks,
17
+ onboarding,
18
+ quickRefLink: `${onboarding}/quick-ref-commands.md`,
19
+ completeGuidePath: `${frameworkRoot}/lumenflow-complete.md`,
20
+ quickRefPath: `${onboarding}/quick-ref-commands.md`,
21
+ startingPromptPath: `${onboarding}/starting-prompt.md`,
22
+ sizingGuidePath: `${frameworkRoot}/wu-sizing-guide.md`,
23
+ governancePath: `${operations}/governance/project-governance.md`,
24
+ };
25
+ }
26
+ const DOCS_ROOT = 'docs';
27
+ const SIMPLE_TASKS_PATH = `${DOCS_ROOT}/tasks`;
28
+ const ARC42_OPERATIONS_PATH = [DOCS_ROOT, '04-operations'].join('/');
29
+ const ARC42_TASKS_PATH = [ARC42_OPERATIONS_PATH, 'tasks'].join('/');
30
+ export const DOCS_LAYOUT_PRESETS = {
31
+ simple: buildDocsLayout(DOCS_ROOT, SIMPLE_TASKS_PATH),
32
+ arc42: buildDocsLayout(ARC42_OPERATIONS_PATH, ARC42_TASKS_PATH),
33
+ };
34
+ export const DEFAULT_DOCS_LAYOUT = 'simple';
35
+ export function getDocsLayoutPreset(layout) {
36
+ return DOCS_LAYOUT_PRESETS[layout];
37
+ }
38
+ //# sourceMappingURL=docs-layout-presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-layout-presets.js","sourceRoot":"","sources":["../src/docs-layout-presets.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;GAOG;AAEH,SAAS,eAAe,CAAC,UAAkB,EAAE,KAAa;IACxD,MAAM,aAAa,GAAG,GAAG,UAAU,wBAAwB,CAAC;IAC5D,MAAM,UAAU,GAAG,GAAG,aAAa,mBAAmB,CAAC;IAEvD,OAAO;QACL,UAAU;QACV,KAAK;QACL,UAAU;QACV,YAAY,EAAE,GAAG,UAAU,wBAAwB;QACnD,iBAAiB,EAAE,GAAG,aAAa,wBAAwB;QAC3D,YAAY,EAAE,GAAG,UAAU,wBAAwB;QACnD,kBAAkB,EAAE,GAAG,UAAU,qBAAqB;QACtD,eAAe,EAAE,GAAG,aAAa,qBAAqB;QACtD,cAAc,EAAE,GAAG,UAAU,mCAAmC;KACxD,CAAC;AACb,CAAC;AAED,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,MAAM,iBAAiB,GAAG,GAAG,SAAS,QAAQ,CAAC;AAC/C,MAAM,qBAAqB,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrE,MAAM,gBAAgB,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,MAAM,EAAE,eAAe,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACrD,KAAK,EAAE,eAAe,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;CACvD,CAAC;AAKX,MAAM,CAAC,MAAM,mBAAmB,GAAmB,QAAQ,CAAC;AAE5D,MAAM,UAAU,mBAAmB,CAAC,MAAsB;IACxD,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
@@ -4,9 +4,9 @@
4
4
  * @param {string[]} stagedFiles - Array of file paths
5
5
  * @returns {{valid: boolean, violations: string[]}} - Validation result
6
6
  */
7
- export declare function validateDocsOnly(stagedFiles: UnsafeAny): {
7
+ export declare function validateDocsOnly(stagedFiles: string[]): {
8
8
  valid: boolean;
9
- violations: any[];
9
+ violations: string[];
10
10
  };
11
11
  /**
12
12
  * Get a human-readable description of allowed paths
@@ -1 +1 @@
1
- {"version":3,"file":"docs-path-validator.d.ts","sourceRoot":"","sources":["../src/docs-path-validator.ts"],"names":[],"mappings":";AAwEA;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,SAAS;;;EAWtD;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,WAWzC"}
1
+ {"version":3,"file":"docs-path-validator.d.ts","sourceRoot":"","sources":["../src/docs-path-validator.ts"],"names":[],"mappings":";AAmEA;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE;;;EAYrD;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,WAWzC"}
@@ -25,22 +25,18 @@
25
25
  import path from 'node:path';
26
26
  import { WU_EVENTS_FILE_NAME } from './wu-state-store.js';
27
27
  import { LUMENFLOW_PATHS, DIRECTORIES, FILE_EXTENSIONS, STRING_LITERALS } from './wu-constants.js';
28
+ import { getDocsOnlyPrefixes } from './file-classifiers.js';
28
29
  const POSIX = path.posix;
29
- const DOCS_ONLY_PREFIXES = Object.freeze([
30
- DIRECTORIES.DOCS,
31
- DIRECTORIES.AI,
32
- DIRECTORIES.CLAUDE,
33
- DIRECTORIES.MEMORY_BANK,
34
- ]);
35
30
  const TOOLS_TESTS_PREFIX = `${POSIX.join(DIRECTORIES.TOOLS, '__tests__')}${STRING_LITERALS.SLASH}`;
36
31
  const STAMPS_PREFIX = `${LUMENFLOW_PATHS.STAMPS_DIR}${STRING_LITERALS.SLASH}`;
37
32
  const WU_EVENTS_PATH = POSIX.join(LUMENFLOW_PATHS.STATE_DIR, WU_EVENTS_FILE_NAME);
38
33
  /**
39
34
  * Check if a file path is allowed for docs-only WUs
40
35
  * @param {string} filePath - The file path to validate
36
+ * @param {readonly string[]} docsOnlyPrefixes - Config-driven docs path prefixes
41
37
  * @returns {boolean} - True if the path is allowed
42
38
  */
43
- function isAllowedPath(filePath) {
39
+ function isAllowedPath(filePath, docsOnlyPrefixes) {
44
40
  if (!filePath)
45
41
  return false;
46
42
  if (filePath === WU_EVENTS_PATH)
@@ -55,7 +51,7 @@ function isAllowedPath(filePath) {
55
51
  }
56
52
  if (filePath.endsWith(FILE_EXTENSIONS.MARKDOWN))
57
53
  return true;
58
- for (const prefix of DOCS_ONLY_PREFIXES) {
54
+ for (const prefix of docsOnlyPrefixes) {
59
55
  if (filePath.startsWith(prefix)) {
60
56
  return true;
61
57
  }
@@ -68,9 +64,10 @@ function isAllowedPath(filePath) {
68
64
  * @returns {{valid: boolean, violations: string[]}} - Validation result
69
65
  */
70
66
  export function validateDocsOnly(stagedFiles) {
67
+ const docsOnlyPrefixes = getDocsOnlyPrefixes();
71
68
  const violations = [];
72
69
  for (const file of stagedFiles) {
73
- if (!isAllowedPath(file)) {
70
+ if (!isAllowedPath(file, docsOnlyPrefixes)) {
74
71
  violations.push(file);
75
72
  }
76
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"docs-path-validator.js","sourceRoot":"","sources":["../src/docs-path-validator.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEnG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAEzB,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,WAAW,CAAC,IAAI;IAChB,WAAW,CAAC,EAAE;IACd,WAAW,CAAC,MAAM;IAClB,WAAW,CAAC,WAAW;CACxB,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;AACnG,MAAM,aAAa,GAAG,GAAG,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;AAC9E,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAElF;;;;GAIG;AACH,SAAS,aAAa,CAAC,QAAmB;IACxC,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,IAAI,QAAQ,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAE7C,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzD,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,GAAG,eAAe,CAAC,KAAK,YAAY,eAAe,CAAC,KAAK,EAAE,CAAC;QACjF,OAAO,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7D,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAsB;IACrD,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;QAC9B,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO;;;;;;;uBAOc,mBAAmB;;+CAEK,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"docs-path-validator.js","sourceRoot":"","sources":["../src/docs-path-validator.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAEzB,MAAM,kBAAkB,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;AACnG,MAAM,aAAa,GAAG,GAAG,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;AAC9E,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAElF;;;;;GAKG;AACH,SAAS,aAAa,CAAC,QAAgB,EAAE,gBAAmC;IAC1E,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,IAAI,QAAQ,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAE7C,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzD,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,GAAG,eAAe,CAAC,KAAK,YAAY,eAAe,CAAC,KAAK,EAAE,CAAC;QACjF,OAAO,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7D,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAqB;IACpD,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC;YAC3C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;QAC9B,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO;;;;;;;uBAOc,mBAAmB;;+CAEK,CAAC;AAChD,CAAC"}
@@ -10,6 +10,7 @@
10
10
  export * from './context.schemas.js';
11
11
  export { VALIDATION_ERROR_CODE_VALUES, ValidationErrorCodeSchema, PREDICATE_SEVERITY_VALUES, PredicateSeveritySchema, ValidationErrorSchema, ValidationWarningSchema, ValidationResultSchema, CommandPredicateConfigSchema, CommandDefinitionConfigSchema, type ValidationErrorCode, type PredicateSeverity, type ValidationError, type ValidationWarning, type ValidationResult, type CommandPredicateConfig, type CommandDefinitionConfig, } from './validation.schemas.js';
12
12
  export * from './recovery.schemas.js';
13
+ export { ok, fail, unwrap, unwrapOr, mapResult, tryCatch, tryCatchAsync, type Result, type Success, type Failure, } from './result.js';
13
14
  export * from './orchestration.schemas.js';
14
15
  export * from './orchestration.constants.js';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAIH,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,6BAA6B,EAC7B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AAIjC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAIH,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,6BAA6B,EAC7B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AAIjC,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EACL,EAAE,EACF,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,aAAa,EACb,KAAK,MAAM,EACX,KAAK,OAAO,EACZ,KAAK,OAAO,GACb,MAAM,aAAa,CAAC;AAGrB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC"}
@@ -17,6 +17,8 @@ export { VALIDATION_ERROR_CODE_VALUES, ValidationErrorCodeSchema, PREDICATE_SEVE
17
17
  // Recovery schemas
18
18
  // Includes RecoveryIssueCode and RecoveryActionType enum constants
19
19
  export * from './recovery.schemas.js';
20
+ // Result type (WU-2128: Standardize error return contracts)
21
+ export { ok, fail, unwrap, unwrapOr, mapResult, tryCatch, tryCatchAsync, } from './result.js';
20
22
  // Orchestration schemas (existing)
21
23
  export * from './orchestration.schemas.js';
22
24
  export * from './orchestration.constants.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;GAQG;AAEH,oEAAoE;AACpE,sCAAsC;AACtC,cAAc,sBAAsB,CAAC;AAErC,gEAAgE;AAChE,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,6BAA6B,GAQ9B,MAAM,yBAAyB,CAAC;AAEjC,mBAAmB;AACnB,mEAAmE;AACnE,cAAc,uBAAuB,CAAC;AAEtC,mCAAmC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;GAQG;AAEH,oEAAoE;AACpE,sCAAsC;AACtC,cAAc,sBAAsB,CAAC;AAErC,gEAAgE;AAChE,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,6BAA6B,GAQ9B,MAAM,yBAAyB,CAAC;AAEjC,mBAAmB;AACnB,mEAAmE;AACnE,cAAc,uBAAuB,CAAC;AAEtC,4DAA4D;AAC5D,OAAO,EACL,EAAE,EACF,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,aAAa,GAId,MAAM,aAAa,CAAC;AAErB,mCAAmC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Result Type - Discriminated Union for Error Contracts
3
+ *
4
+ * WU-2128: Standardize error return contracts
5
+ *
6
+ * Contract:
7
+ * - Ports THROW on failure (boundary contracts at the hexagonal architecture edge)
8
+ * - Adapters RETURN Result<T, E> (no exceptions in adapter layer)
9
+ * - CLI command handlers CATCH and format errors for user output
10
+ *
11
+ * This module defines the canonical Result<T, E> discriminated union type
12
+ * used by adapter implementations. It follows the same pattern as the
13
+ * existing ParseResult<T> in test-baseline.ts but with a generic error type.
14
+ *
15
+ * @module domain/result
16
+ */
17
+ /**
18
+ * Success variant of the Result type.
19
+ */
20
+ export interface Success<T> {
21
+ readonly ok: true;
22
+ readonly value: T;
23
+ }
24
+ /**
25
+ * Failure variant of the Result type.
26
+ */
27
+ export interface Failure<E> {
28
+ readonly ok: false;
29
+ readonly error: E;
30
+ }
31
+ /**
32
+ * Discriminated union representing either a successful value or an error.
33
+ *
34
+ * Adapters return Result<T, E> instead of throwing exceptions.
35
+ * This enables predictable error handling without try-catch in calling code.
36
+ *
37
+ * @typeParam T - The success value type
38
+ * @typeParam E - The error type (defaults to Error)
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * // Adapter returning Result
43
+ * async resolveLocation(cwd?: string): Promise<Result<LocationContext>> {
44
+ * try {
45
+ * const location = await this.resolveLocationFn(cwd);
46
+ * return ok(location);
47
+ * } catch (error) {
48
+ * return fail(error instanceof Error ? error : new Error(String(error)));
49
+ * }
50
+ * }
51
+ *
52
+ * // Consumer using Result
53
+ * const result = await adapter.resolveLocation();
54
+ * if (result.ok) {
55
+ * console.log(result.value.type); // 'main' | 'worktree'
56
+ * } else {
57
+ * console.error(result.error.message);
58
+ * }
59
+ * ```
60
+ */
61
+ export type Result<T, E = Error> = Success<T> | Failure<E>;
62
+ /**
63
+ * Create a Success result.
64
+ *
65
+ * @param value - The success value
66
+ * @returns A Success<T> instance
67
+ */
68
+ export declare function ok<T>(value: T): Success<T>;
69
+ /**
70
+ * Create a Failure result.
71
+ *
72
+ * @param error - The error value
73
+ * @returns A Failure<E> instance
74
+ */
75
+ export declare function fail<E = Error>(error: E): Failure<E>;
76
+ /**
77
+ * Unwrap a Result, throwing the error if it is a Failure.
78
+ *
79
+ * Useful at port boundaries where the contract is to throw.
80
+ *
81
+ * @param result - The Result to unwrap
82
+ * @returns The success value
83
+ * @throws The error value if Result is a Failure
84
+ */
85
+ export declare function unwrap<T, E>(result: Result<T, E>): T;
86
+ /**
87
+ * Unwrap a Result with a default value for the Failure case.
88
+ *
89
+ * @param result - The Result to unwrap
90
+ * @param defaultValue - The value to return if Result is a Failure
91
+ * @returns The success value or the default value
92
+ */
93
+ export declare function unwrapOr<T, E>(result: Result<T, E>, defaultValue: T): T;
94
+ /**
95
+ * Map the success value of a Result.
96
+ *
97
+ * @param result - The Result to map
98
+ * @param fn - The mapping function
99
+ * @returns A new Result with the mapped value, or the original Failure
100
+ */
101
+ export declare function mapResult<T, U, E>(result: Result<T, E>, fn: (value: T) => U): Result<U, E>;
102
+ /**
103
+ * Wrap a throwing function into a Result-returning function.
104
+ *
105
+ * @param fn - A function that may throw
106
+ * @returns A Result containing the return value or the caught error
107
+ */
108
+ export declare function tryCatch<T>(fn: () => T): Result<T, Error>;
109
+ /**
110
+ * Wrap an async throwing function into a Result-returning function.
111
+ *
112
+ * @param fn - An async function that may throw
113
+ * @returns A Promise<Result> containing the return value or the caught error
114
+ */
115
+ export declare function tryCatchAsync<T>(fn: () => Promise<T>): Promise<Result<T, Error>>;
116
+ //# sourceMappingURL=result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/domain/result.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AAMH;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAM3D;;;;;GAKG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEpD;AAMD;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAKpD;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAKvE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAK1F;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAMzD;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAMtF"}
@@ -0,0 +1,96 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ // =============================================================================
4
+ // Constructor Functions
5
+ // =============================================================================
6
+ /**
7
+ * Create a Success result.
8
+ *
9
+ * @param value - The success value
10
+ * @returns A Success<T> instance
11
+ */
12
+ export function ok(value) {
13
+ return { ok: true, value };
14
+ }
15
+ /**
16
+ * Create a Failure result.
17
+ *
18
+ * @param error - The error value
19
+ * @returns A Failure<E> instance
20
+ */
21
+ export function fail(error) {
22
+ return { ok: false, error };
23
+ }
24
+ // =============================================================================
25
+ // Utility Functions
26
+ // =============================================================================
27
+ /**
28
+ * Unwrap a Result, throwing the error if it is a Failure.
29
+ *
30
+ * Useful at port boundaries where the contract is to throw.
31
+ *
32
+ * @param result - The Result to unwrap
33
+ * @returns The success value
34
+ * @throws The error value if Result is a Failure
35
+ */
36
+ export function unwrap(result) {
37
+ if (result.ok) {
38
+ return result.value;
39
+ }
40
+ throw result.error;
41
+ }
42
+ /**
43
+ * Unwrap a Result with a default value for the Failure case.
44
+ *
45
+ * @param result - The Result to unwrap
46
+ * @param defaultValue - The value to return if Result is a Failure
47
+ * @returns The success value or the default value
48
+ */
49
+ export function unwrapOr(result, defaultValue) {
50
+ if (result.ok) {
51
+ return result.value;
52
+ }
53
+ return defaultValue;
54
+ }
55
+ /**
56
+ * Map the success value of a Result.
57
+ *
58
+ * @param result - The Result to map
59
+ * @param fn - The mapping function
60
+ * @returns A new Result with the mapped value, or the original Failure
61
+ */
62
+ export function mapResult(result, fn) {
63
+ if (result.ok) {
64
+ return ok(fn(result.value));
65
+ }
66
+ return result;
67
+ }
68
+ /**
69
+ * Wrap a throwing function into a Result-returning function.
70
+ *
71
+ * @param fn - A function that may throw
72
+ * @returns A Result containing the return value or the caught error
73
+ */
74
+ export function tryCatch(fn) {
75
+ try {
76
+ return ok(fn());
77
+ }
78
+ catch (error) {
79
+ return fail(error instanceof Error ? error : new Error(String(error)));
80
+ }
81
+ }
82
+ /**
83
+ * Wrap an async throwing function into a Result-returning function.
84
+ *
85
+ * @param fn - An async function that may throw
86
+ * @returns A Promise<Result> containing the return value or the caught error
87
+ */
88
+ export async function tryCatchAsync(fn) {
89
+ try {
90
+ return ok(await fn());
91
+ }
92
+ catch (error) {
93
+ return fail(error instanceof Error ? error : new Error(String(error)));
94
+ }
95
+ }
96
+ //# sourceMappingURL=result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/domain/result.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAuEzC,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAY,KAAQ;IACtC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM,CAAO,MAAoB;IAC/C,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,MAAM,MAAM,CAAC,KAAK,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAO,MAAoB,EAAE,YAAe;IAClE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAU,MAAoB,EAAE,EAAmB;IAC1E,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAI,EAAW;IACrC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,EAAoB;IACzD,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
@@ -21,8 +21,8 @@ export declare const VALIDATION_ERROR_CODE_VALUES: readonly ["WRONG_LOCATION", "
21
21
  * Schema for validation error codes
22
22
  */
23
23
  export declare const ValidationErrorCodeSchema: z.ZodEnum<{
24
- WRONG_LOCATION: "WRONG_LOCATION";
25
24
  WU_NOT_FOUND: "WU_NOT_FOUND";
25
+ WRONG_LOCATION: "WRONG_LOCATION";
26
26
  WU_ALREADY_EXISTS: "WU_ALREADY_EXISTS";
27
27
  WRONG_WU_STATUS: "WRONG_WU_STATUS";
28
28
  LANE_OCCUPIED: "LANE_OCCUPIED";
@@ -51,8 +51,8 @@ export declare const PredicateSeveritySchema: z.ZodEnum<{
51
51
  */
52
52
  export declare const ValidationErrorSchema: z.ZodObject<{
53
53
  code: z.ZodEnum<{
54
- WRONG_LOCATION: "WRONG_LOCATION";
55
54
  WU_NOT_FOUND: "WU_NOT_FOUND";
55
+ WRONG_LOCATION: "WRONG_LOCATION";
56
56
  WU_ALREADY_EXISTS: "WU_ALREADY_EXISTS";
57
57
  WRONG_WU_STATUS: "WRONG_WU_STATUS";
58
58
  LANE_OCCUPIED: "LANE_OCCUPIED";
@@ -84,8 +84,8 @@ export declare const ValidationResultSchema: z.ZodObject<{
84
84
  valid: z.ZodBoolean;
85
85
  errors: z.ZodArray<z.ZodObject<{
86
86
  code: z.ZodEnum<{
87
- WRONG_LOCATION: "WRONG_LOCATION";
88
87
  WU_NOT_FOUND: "WU_NOT_FOUND";
88
+ WRONG_LOCATION: "WRONG_LOCATION";
89
89
  WU_ALREADY_EXISTS: "WU_ALREADY_EXISTS";
90
90
  WRONG_WU_STATUS: "WRONG_WU_STATUS";
91
91
  LANE_OCCUPIED: "LANE_OCCUPIED";