@lumenflow/core 2.15.2 → 2.17.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 (270) hide show
  1. package/dist/adapters/filesystem-metrics.adapter.d.ts.map +1 -1
  2. package/dist/adapters/filesystem-metrics.adapter.js +17 -16
  3. package/dist/adapters/filesystem-metrics.adapter.js.map +1 -1
  4. package/dist/adapters/mock-dashboard-renderer.adapter.d.ts +86 -0
  5. package/dist/adapters/mock-dashboard-renderer.adapter.d.ts.map +1 -0
  6. package/dist/adapters/mock-dashboard-renderer.adapter.js +105 -0
  7. package/dist/adapters/mock-dashboard-renderer.adapter.js.map +1 -0
  8. package/dist/adapters/terminal-renderer.adapter.d.ts.map +1 -1
  9. package/dist/adapters/terminal-renderer.adapter.js +0 -2
  10. package/dist/adapters/terminal-renderer.adapter.js.map +1 -1
  11. package/dist/arg-parser.d.ts.map +1 -1
  12. package/dist/arg-parser.js +4 -3
  13. package/dist/arg-parser.js.map +1 -1
  14. package/dist/backlog-editor.js +1 -1
  15. package/dist/backlog-editor.js.map +1 -1
  16. package/dist/backlog-generator.d.ts.map +1 -1
  17. package/dist/backlog-generator.js +48 -21
  18. package/dist/backlog-generator.js.map +1 -1
  19. package/dist/backlog-parser.d.ts.map +1 -1
  20. package/dist/backlog-parser.js +0 -1
  21. package/dist/backlog-parser.js.map +1 -1
  22. package/dist/backlog-sync-validator.d.ts.map +1 -1
  23. package/dist/backlog-sync-validator.js +5 -3
  24. package/dist/backlog-sync-validator.js.map +1 -1
  25. package/dist/branch-check.d.ts.map +1 -1
  26. package/dist/branch-check.js +1 -0
  27. package/dist/branch-check.js.map +1 -1
  28. package/dist/cli/is-agent-branch.d.ts +2 -1
  29. package/dist/cli/is-agent-branch.d.ts.map +1 -1
  30. package/dist/cli/is-agent-branch.js +8 -1
  31. package/dist/cli/is-agent-branch.js.map +1 -1
  32. package/dist/code-path-validator.d.ts.map +1 -1
  33. package/dist/code-path-validator.js +2 -1
  34. package/dist/code-path-validator.js.map +1 -1
  35. package/dist/code-paths-overlap.js +1 -1
  36. package/dist/code-paths-overlap.js.map +1 -1
  37. package/dist/commands-logger.js +1 -1
  38. package/dist/commands-logger.js.map +1 -1
  39. package/dist/context/location-resolver.js +1 -1
  40. package/dist/context/location-resolver.js.map +1 -1
  41. package/dist/context-validation-integration.d.ts +1 -1
  42. package/dist/context-validation-integration.d.ts.map +1 -1
  43. package/dist/context-validation-integration.js +3 -2
  44. package/dist/context-validation-integration.js.map +1 -1
  45. package/dist/core/tool-runner.js +1 -1
  46. package/dist/core/tool-runner.js.map +1 -1
  47. package/dist/core/tool.schemas.d.ts +3 -3
  48. package/dist/core/tool.schemas.d.ts.map +1 -1
  49. package/dist/core/tool.schemas.js +1 -1
  50. package/dist/core/tool.schemas.js.map +1 -1
  51. package/dist/dependency-graph.js +1 -1
  52. package/dist/dependency-graph.js.map +1 -1
  53. package/dist/dependency-guard.js +1 -1
  54. package/dist/dependency-guard.js.map +1 -1
  55. package/dist/domain/context.schemas.d.ts +3 -3
  56. package/dist/domain/orchestration.constants.d.ts.map +1 -1
  57. package/dist/domain/orchestration.constants.js +7 -6
  58. package/dist/domain/orchestration.constants.js.map +1 -1
  59. package/dist/domain/validation.schemas.d.ts +1 -1
  60. package/dist/error-handler.d.ts +26 -2
  61. package/dist/error-handler.d.ts.map +1 -1
  62. package/dist/error-handler.js +36 -3
  63. package/dist/error-handler.js.map +1 -1
  64. package/dist/force-bypass-audit.d.ts.map +1 -1
  65. package/dist/force-bypass-audit.js +2 -0
  66. package/dist/force-bypass-audit.js.map +1 -1
  67. package/dist/git-context-extractor.d.ts.map +1 -1
  68. package/dist/git-context-extractor.js +1 -0
  69. package/dist/git-context-extractor.js.map +1 -1
  70. package/dist/index.d.ts +5 -1
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +3 -1
  73. package/dist/index.js.map +1 -1
  74. package/dist/invariants/check-automated-tests.js +2 -2
  75. package/dist/invariants/check-automated-tests.js.map +1 -1
  76. package/dist/invariants-runner.d.ts.map +1 -1
  77. package/dist/invariants-runner.js +3 -0
  78. package/dist/invariants-runner.js.map +1 -1
  79. package/dist/lumenflow-config-schema.d.ts.map +1 -1
  80. package/dist/lumenflow-config-schema.js +2 -1
  81. package/dist/lumenflow-config-schema.js.map +1 -1
  82. package/dist/migration-deployer.d.ts +1 -1
  83. package/dist/migration-deployer.d.ts.map +1 -1
  84. package/dist/migration-deployer.js +1 -1
  85. package/dist/migration-deployer.js.map +1 -1
  86. package/dist/patrol-loop.d.ts.map +1 -1
  87. package/dist/patrol-loop.js +9 -1
  88. package/dist/patrol-loop.js.map +1 -1
  89. package/dist/piped-command-detector.d.ts.map +1 -1
  90. package/dist/piped-command-detector.js +1 -0
  91. package/dist/piped-command-detector.js.map +1 -1
  92. package/dist/ports/core-tools.ports.d.ts +32 -17
  93. package/dist/ports/core-tools.ports.d.ts.map +1 -1
  94. package/dist/ports/wu-helpers.ports.d.ts +2 -0
  95. package/dist/ports/wu-helpers.ports.d.ts.map +1 -1
  96. package/dist/prompt-linter.d.ts +5 -0
  97. package/dist/prompt-linter.d.ts.map +1 -1
  98. package/dist/prompt-linter.js +8 -2
  99. package/dist/prompt-linter.js.map +1 -1
  100. package/dist/prompt-monitor.d.ts +5 -1
  101. package/dist/prompt-monitor.d.ts.map +1 -1
  102. package/dist/prompt-monitor.js +16 -8
  103. package/dist/prompt-monitor.js.map +1 -1
  104. package/dist/rebase-artifact-cleanup.d.ts.map +1 -1
  105. package/dist/rebase-artifact-cleanup.js +1 -1
  106. package/dist/rebase-artifact-cleanup.js.map +1 -1
  107. package/dist/rollback-utils.d.ts.map +1 -1
  108. package/dist/rollback-utils.js +0 -1
  109. package/dist/rollback-utils.js.map +1 -1
  110. package/dist/schemas/initiative-arg-validators.d.ts +1 -1
  111. package/dist/schemas/initiative-schemas.d.ts +3 -3
  112. package/dist/spawn-recovery.js +1 -1
  113. package/dist/spawn-recovery.js.map +1 -1
  114. package/dist/stamp-status-validator.d.ts.map +1 -1
  115. package/dist/stamp-status-validator.js +2 -1
  116. package/dist/stamp-status-validator.js.map +1 -1
  117. package/dist/stamp-tracking.d.ts +12 -0
  118. package/dist/stamp-tracking.d.ts.map +1 -0
  119. package/dist/stamp-tracking.js +41 -0
  120. package/dist/stamp-tracking.js.map +1 -0
  121. package/dist/stamp-utils.d.ts.map +1 -1
  122. package/dist/stamp-utils.js +0 -1
  123. package/dist/stamp-utils.js.map +1 -1
  124. package/dist/state-doctor-core.d.ts.map +1 -1
  125. package/dist/state-doctor-core.js +10 -9
  126. package/dist/state-doctor-core.js.map +1 -1
  127. package/dist/system-map-validator.d.ts.map +1 -1
  128. package/dist/system-map-validator.js +7 -3
  129. package/dist/system-map-validator.js.map +1 -1
  130. package/dist/telemetry.d.ts.map +1 -1
  131. package/dist/telemetry.js +3 -1
  132. package/dist/telemetry.js.map +1 -1
  133. package/dist/template-loader.d.ts.map +1 -1
  134. package/dist/template-loader.js +1 -0
  135. package/dist/template-loader.js.map +1 -1
  136. package/dist/token-counter.js +2 -6
  137. package/dist/token-counter.js.map +1 -1
  138. package/dist/usecases/compute-context.usecase.d.ts.map +1 -1
  139. package/dist/usecases/compute-context.usecase.js +2 -1
  140. package/dist/usecases/compute-context.usecase.js.map +1 -1
  141. package/dist/validators/wu-tasks.js +2 -2
  142. package/dist/validators/wu-tasks.js.map +1 -1
  143. package/dist/wu-backlog-updater.d.ts +1 -1
  144. package/dist/wu-backlog-updater.d.ts.map +1 -1
  145. package/dist/wu-backlog-updater.js +1 -1
  146. package/dist/wu-backlog-updater.js.map +1 -1
  147. package/dist/wu-claim-resume.d.ts.map +1 -1
  148. package/dist/wu-claim-resume.js +0 -1
  149. package/dist/wu-claim-resume.js.map +1 -1
  150. package/dist/wu-cli-constants.d.ts +426 -0
  151. package/dist/wu-cli-constants.d.ts.map +1 -0
  152. package/dist/wu-cli-constants.js +429 -0
  153. package/dist/wu-cli-constants.js.map +1 -0
  154. package/dist/wu-consistency-checker.d.ts +5 -1
  155. package/dist/wu-consistency-checker.d.ts.map +1 -1
  156. package/dist/wu-consistency-checker.js +133 -25
  157. package/dist/wu-consistency-checker.js.map +1 -1
  158. package/dist/wu-constants.d.ts +21 -1834
  159. package/dist/wu-constants.d.ts.map +1 -1
  160. package/dist/wu-constants.js +28 -1951
  161. package/dist/wu-constants.js.map +1 -1
  162. package/dist/wu-context-constants.d.ts +264 -0
  163. package/dist/wu-context-constants.d.ts.map +1 -0
  164. package/dist/wu-context-constants.js +259 -0
  165. package/dist/wu-context-constants.js.map +1 -0
  166. package/dist/wu-domain-constants.d.ts +305 -0
  167. package/dist/wu-domain-constants.d.ts.map +1 -0
  168. package/dist/wu-domain-constants.js +401 -0
  169. package/dist/wu-domain-constants.js.map +1 -0
  170. package/dist/wu-done-branch-only.d.ts.map +1 -1
  171. package/dist/wu-done-branch-only.js +2 -2
  172. package/dist/wu-done-branch-only.js.map +1 -1
  173. package/dist/wu-done-concurrent-merge.d.ts.map +1 -1
  174. package/dist/wu-done-concurrent-merge.js +12 -12
  175. package/dist/wu-done-concurrent-merge.js.map +1 -1
  176. package/dist/wu-done-docs-generate.d.ts.map +1 -1
  177. package/dist/wu-done-docs-generate.js +1 -0
  178. package/dist/wu-done-docs-generate.js.map +1 -1
  179. package/dist/wu-done-initiative-sync.d.ts +13 -0
  180. package/dist/wu-done-initiative-sync.d.ts.map +1 -0
  181. package/dist/wu-done-initiative-sync.js +218 -0
  182. package/dist/wu-done-initiative-sync.js.map +1 -0
  183. package/dist/wu-done-inputs.d.ts.map +1 -1
  184. package/dist/wu-done-inputs.js +2 -2
  185. package/dist/wu-done-inputs.js.map +1 -1
  186. package/dist/wu-done-messages.d.ts +1 -1
  187. package/dist/wu-done-messages.d.ts.map +1 -1
  188. package/dist/wu-done-messages.js +2 -2
  189. package/dist/wu-done-messages.js.map +1 -1
  190. package/dist/wu-done-metadata.d.ts +6 -2
  191. package/dist/wu-done-metadata.d.ts.map +1 -1
  192. package/dist/wu-done-metadata.js +31 -7
  193. package/dist/wu-done-metadata.js.map +1 -1
  194. package/dist/wu-done-pr.d.ts.map +1 -1
  195. package/dist/wu-done-pr.js +2 -1
  196. package/dist/wu-done-pr.js.map +1 -1
  197. package/dist/wu-done-validation.d.ts +3 -1
  198. package/dist/wu-done-validation.d.ts.map +1 -1
  199. package/dist/wu-done-validation.js +81 -13
  200. package/dist/wu-done-validation.js.map +1 -1
  201. package/dist/wu-done-worktree.d.ts +54 -0
  202. package/dist/wu-done-worktree.d.ts.map +1 -1
  203. package/dist/wu-done-worktree.js +166 -44
  204. package/dist/wu-done-worktree.js.map +1 -1
  205. package/dist/wu-events-cleanup.d.ts.map +1 -1
  206. package/dist/wu-events-cleanup.js +3 -2
  207. package/dist/wu-events-cleanup.js.map +1 -1
  208. package/dist/wu-git-constants.d.ts +172 -0
  209. package/dist/wu-git-constants.d.ts.map +1 -0
  210. package/dist/wu-git-constants.js +172 -0
  211. package/dist/wu-git-constants.js.map +1 -0
  212. package/dist/wu-helpers.js +1 -1
  213. package/dist/wu-helpers.js.map +1 -1
  214. package/dist/wu-lint.d.ts.map +1 -1
  215. package/dist/wu-lint.js +8 -1
  216. package/dist/wu-lint.js.map +1 -1
  217. package/dist/wu-list.d.ts.map +1 -1
  218. package/dist/wu-list.js +3 -2
  219. package/dist/wu-list.js.map +1 -1
  220. package/dist/wu-paths-constants.d.ts +311 -0
  221. package/dist/wu-paths-constants.d.ts.map +1 -0
  222. package/dist/wu-paths-constants.js +308 -0
  223. package/dist/wu-paths-constants.js.map +1 -0
  224. package/dist/wu-paths.d.ts +12 -0
  225. package/dist/wu-paths.d.ts.map +1 -1
  226. package/dist/wu-paths.js +7 -1
  227. package/dist/wu-paths.js.map +1 -1
  228. package/dist/wu-recovery.d.ts.map +1 -1
  229. package/dist/wu-recovery.js +2 -2
  230. package/dist/wu-recovery.js.map +1 -1
  231. package/dist/wu-repair-core.d.ts +1 -0
  232. package/dist/wu-repair-core.d.ts.map +1 -1
  233. package/dist/wu-repair-core.js +7 -3
  234. package/dist/wu-repair-core.js.map +1 -1
  235. package/dist/wu-schema.d.ts.map +1 -1
  236. package/dist/wu-schema.js +2 -2
  237. package/dist/wu-schema.js.map +1 -1
  238. package/dist/wu-spawn-helpers.d.ts.map +1 -1
  239. package/dist/wu-spawn-helpers.js +3 -2
  240. package/dist/wu-spawn-helpers.js.map +1 -1
  241. package/dist/wu-spawn.js +5 -5
  242. package/dist/wu-spawn.js.map +1 -1
  243. package/dist/wu-state-store.d.ts.map +1 -1
  244. package/dist/wu-state-store.js +20 -19
  245. package/dist/wu-state-store.js.map +1 -1
  246. package/dist/wu-status-transition.d.ts.map +1 -1
  247. package/dist/wu-status-transition.js +3 -26
  248. package/dist/wu-status-transition.js.map +1 -1
  249. package/dist/wu-status-updater.js +1 -1
  250. package/dist/wu-status-updater.js.map +1 -1
  251. package/dist/wu-statuses.d.ts +134 -0
  252. package/dist/wu-statuses.d.ts.map +1 -0
  253. package/dist/wu-statuses.js +149 -0
  254. package/dist/wu-statuses.js.map +1 -0
  255. package/dist/wu-transaction-collectors.d.ts.map +1 -1
  256. package/dist/wu-transaction-collectors.js +6 -3
  257. package/dist/wu-transaction-collectors.js.map +1 -1
  258. package/dist/wu-transaction.d.ts.map +1 -1
  259. package/dist/wu-transaction.js +1 -1
  260. package/dist/wu-transaction.js.map +1 -1
  261. package/dist/wu-ui-constants.d.ts +235 -0
  262. package/dist/wu-ui-constants.d.ts.map +1 -0
  263. package/dist/wu-ui-constants.js +235 -0
  264. package/dist/wu-ui-constants.js.map +1 -0
  265. package/dist/wu-validator.d.ts.map +1 -1
  266. package/dist/wu-validator.js +2 -1
  267. package/dist/wu-validator.js.map +1 -1
  268. package/dist/wu-yaml.js +1 -1
  269. package/dist/wu-yaml.js.map +1 -1
  270. package/package.json +80 -4
@@ -1,1841 +1,28 @@
1
1
  /**
2
- * Work Unit Constants
2
+ * Work Unit Constants - Barrel Re-export
3
3
  *
4
- * Centralized constants for wu- scripts to ensure consistency and DRY compliance.
5
- * Single source of truth for magic strings, section headings, and patterns.
4
+ * WU-1549: This file was decomposed from a 2,300+ line monolith into
5
+ * domain-specific modules. It now serves as a backward-compatible barrel
6
+ * re-exporting all constants from their domain modules.
6
7
  *
7
- * Part of WU-1214: Extract hardcoded strings to wu-constants.ts
8
- * Part of WU-1240: Consolidated toKebab using change-case library
8
+ * Domain modules:
9
+ * - wu-statuses.ts: WU status values, groups, exposure types, claimed modes
10
+ * - wu-git-constants.ts: Git branch names, remotes, refs, flags, commands
11
+ * - wu-paths-constants.ts: LumenFlow paths, file system, PHI config
12
+ * - wu-cli-constants.ts: CLI flags, gates, tooling, process constants
13
+ * - wu-ui-constants.ts: Display, formatting, UI, box drawing
14
+ * - wu-domain-constants.ts: Patterns, commit formats, defaults, safety tests
15
+ * - wu-context-constants.ts: Context validation, hooks, derived types
9
16
  *
10
17
  * @see {@link packages/@lumenflow/cli/src/wu-done.ts} - Primary consumer
11
18
  * @see {@link packages/@lumenflow/cli/src/wu-claim.ts} - Branch/worktree creation
12
- * @see {@link packages/@lumenflow/cli/src/lib/wu-schema.ts} - PLACEHOLDER_SENTINEL (already centralized)
13
- */
14
- /**
15
- * Git branch names
16
- */
17
- export declare const BRANCHES: {
18
- MAIN: string;
19
- MASTER: string;
20
- /** Temporary branch prefix for micro-worktree operations */
21
- TEMP_PREFIX: string;
22
- };
23
- /**
24
- * Git remote names
25
- *
26
- * WU-1302: Centralized to eliminate hardcoded 'origin' strings
27
- */
28
- export declare const REMOTES: {
29
- ORIGIN: string;
30
- };
31
- /**
32
- * Git ref construction helpers
33
- *
34
- * Centralized to eliminate hardcoded 'origin/main' strings
35
- */
36
- export declare const GIT_REFS: {
37
- /** Construct remote ref like 'origin/main' */
38
- remote: (remoteName: any, branchName: any) => string;
39
- /** Shortcut for origin/main */
40
- ORIGIN_MAIN: string;
41
- /** Current HEAD ref */
42
- HEAD: string;
43
- /** Upstream ref */
44
- UPSTREAM: string;
45
- /** Range of upstream..HEAD */
46
- UPSTREAM_RANGE: string;
47
- /** Fetch head ref */
48
- FETCH_HEAD: string;
49
- };
50
- /**
51
- * WU status values
52
- *
53
- * Centralized status strings to avoid magic strings in wu-* scripts.
54
- * Includes both canonical statuses and legacy variants found in YAML files.
55
- */
56
- export declare const WU_STATUS: {
57
- TODO: string;
58
- READY: string;
59
- BACKLOG: string;
60
- IN_PROGRESS: string;
61
- BLOCKED: string;
62
- DONE: string;
63
- COMPLETED: string;
64
- CANCELLED: string;
65
- ABANDONED: string;
66
- DEFERRED: string;
67
- CLOSED: string;
68
- SUPERSEDED: string;
69
- };
70
- /**
71
- * WU status groups for state management (WU-1742)
72
- *
73
- * Used by state-bootstrap.ts to categorize YAML statuses.
74
- */
75
- export declare const WU_STATUS_GROUPS: {
76
- /** Statuses representing unclaimed work (not tracked in state store) */
77
- UNCLAIMED: string[];
78
- /** Terminal statuses (all map to 'done' in state store) */
79
- TERMINAL: string[];
80
- };
81
- /**
82
- * WU claimed workspace modes
83
- *
84
- * Centralized workspace mode strings for wu:claim operations.
85
- */
86
- export declare const CLAIMED_MODES: {
87
- /** Standard worktree mode (isolated worktree per WU) */
88
- WORKTREE: string;
89
- /** Branch-only mode (no worktree, direct branch work) */
90
- BRANCH_ONLY: string;
91
- /** Worktree PR mode (worktree with manual PR workflow) */
92
- WORKTREE_PR: string;
93
- /** Branch PR mode (no worktree, PR-based completion for cloud agents) */
94
- BRANCH_PR: string;
95
- };
96
- /**
97
- * Agent incident severity levels
98
- *
99
- * Centralized severity strings for agent incident reporting.
100
- */
101
- export declare const INCIDENT_SEVERITY: {
102
- BLOCKER: string;
103
- MAJOR: string;
104
- MINOR: string;
105
- INFO: string;
106
- };
107
- /**
108
- * Backlog section headings (with emojis)
109
- *
110
- * These match the frontmatter config in backlog.md
111
- */
112
- export declare const BACKLOG_SECTIONS: {
113
- READY: string;
114
- IN_PROGRESS: string;
115
- BLOCKED: string;
116
- DONE: string;
117
- };
118
- /**
119
- * Backlog bullet format types (WU-1444)
120
- *
121
- * Used by BacklogManager to format list items in each section.
122
- * Each format produces a different markdown bullet style.
123
- */
124
- export declare const BACKLOG_BULLET_FORMAT: {
125
- /** Ready format: '- [ ] [WU-ID — Title](link)' */
126
- READY: string;
127
- /** Progress format: '- [WU-ID — Title](link)' */
128
- PROGRESS: string;
129
- /** Blocked format: '- [ ] [WU-ID — Title](link) — Reason' */
130
- BLOCKED: string;
131
- /** Done format: '- [x] [WU-ID — Title](link) (YYYY-MM-DD)' */
132
- DONE: string;
133
- };
134
- /**
135
- * Status.md section headings (simpler format)
136
- */
137
- export declare const STATUS_SECTIONS: {
138
- IN_PROGRESS: string;
139
- BLOCKED: string;
140
- COMPLETED: string;
141
- };
142
- /**
143
- * Regex patterns for WU operations
144
- *
145
- * Note: WU_ID pattern is also in wu-schema.ts for Zod validation
146
- */
147
- export declare const PATTERNS: {
148
- /** WU identifier format: WU-123 */
149
- WU_ID: RegExp;
150
- /** Extract WU ID from text: captures "WU-123" */
151
- WU_ID_EXTRACT: RegExp;
152
- /**
153
- * Extract WU ID from worktree paths (case-insensitive)
154
- *
155
- * WU-1090: Worktree names use lowercase like 'framework-core-wu-1090'
156
- * This pattern matches both 'WU-123' and 'wu-123' to support
157
- * extracting WU IDs from worktree paths.
158
- */
159
- WU_ID_EXTRACT_CI: RegExp;
160
- /** Lane branch format: lane/<lane-kebab>/wu-<id> */
161
- LANE_BRANCH: RegExp;
162
- /** Worktree path format: worktrees/<lane-kebab>-wu-<id> */
163
- WORKTREE_PATH: RegExp;
164
- };
165
- /**
166
- * Commit message formats
167
- *
168
- * These are functions that generate properly formatted commit messages
169
- */
170
- export declare const COMMIT_FORMATS: {
171
- /**
172
- * wu:claim commit message
173
- * @param {string} id - WU ID (e.g., 'wu-123')
174
- * @param {string} laneKebab - Lane in kebab-case (e.g., 'operations-tooling')
175
- * @returns {string} Commit message
176
- */
177
- CLAIM: (id: any, laneKebab: any) => string;
178
- /**
179
- * wu:done commit message
180
- * @param {string} id - WU ID (e.g., 'wu-123')
181
- * @param {string} title - WU title (will be truncated if needed)
182
- * @returns {string} Commit message
183
- */
184
- DONE: (id: any, title: any) => string;
185
- /**
186
- * wu:create commit message
187
- * @param {string} id - WU ID (e.g., 'wu-123')
188
- * @param {string} title - WU title (will be truncated if needed)
189
- * @returns {string} Commit message
190
- */
191
- CREATE: (id: any, title: any) => string;
192
- /**
193
- * wu:edit commit message (for ready WUs via micro-worktree)
194
- * @param {string} id - WU ID (e.g., 'wu-123')
195
- * @returns {string} Commit message
196
- */
197
- EDIT: (id: any) => string;
198
- /**
199
- * wu:edit spec update commit message (for in_progress WUs in active worktree)
200
- * WU-1365: Worktree-aware editing applies edits directly in the worktree
201
- * @param {string} id - WU ID (e.g., 'wu-123')
202
- * @returns {string} Commit message
203
- */
204
- SPEC_UPDATE: (id: any) => string;
205
- /**
206
- * wu:block commit message
207
- * @param {string} id - WU ID (e.g., 'wu-123')
208
- * @returns {string} Commit message
209
- */
210
- BLOCK: (id: any) => string;
211
- /**
212
- * wu:unblock commit message
213
- * @param {string} id - WU ID (e.g., 'wu-123')
214
- * @returns {string} Commit message
215
- */
216
- UNBLOCK: (id: any) => string;
217
- /**
218
- * wu:repair commit message
219
- * @param {string} id - WU ID (e.g., 'wu-123')
220
- * @returns {string} Commit message
221
- */
222
- REPAIR: (id: any) => string;
223
- /**
224
- * Rebase artifact cleanup commit message
225
- * WU-1371: Used when rebasing brings in completion artifacts from main
226
- * @param {string} id - WU ID (e.g., 'wu-123')
227
- * @returns {string} Commit message
228
- */
229
- REBASE_ARTIFACT_CLEANUP: (id: any) => string;
230
- /**
231
- * Backlog repair commit message
232
- * WU-1506: Used when backlog invariant repair removes duplicates after rebase
233
- * @param {string} id - WU ID (e.g., 'wu-123')
234
- * @returns {string} Commit message
235
- */
236
- BACKLOG_REPAIR: (id: any) => string;
237
- };
238
- /**
239
- * Log prefixes for wu- scripts
240
- *
241
- * Consistent prefixes for console output
242
- */
243
- export declare const LOG_PREFIX: {
244
- DONE: string;
245
- CLAIM: string;
246
- CREATE: string;
247
- EDIT: string;
248
- DELETE: string;
249
- BLOCK: string;
250
- UNBLOCK: string;
251
- UNLOCK_LANE: string;
252
- CLEANUP: string;
253
- PRUNE: string;
254
- REPAIR: string;
255
- CONSISTENCY: string;
256
- PREFLIGHT: string;
257
- INITIATIVE_PLAN: string;
258
- PLAN_CREATE: string;
259
- PLAN_LINK: string;
260
- PLAN_EDIT: string;
261
- PLAN_PROMOTE: string;
262
- };
263
- /**
264
- * Consistency check types (WU-1276)
265
- *
266
- * Layer 2 defense-in-depth: detect and repair WU state inconsistencies
267
- */
268
- export declare const CONSISTENCY_TYPES: {
269
- /** WU YAML has status 'done' but WU appears in status.md In Progress section */
270
- YAML_DONE_STATUS_IN_PROGRESS: string;
271
- /** WU appears in both Done AND In Progress sections of backlog.md */
272
- BACKLOG_DUAL_SECTION: string;
273
- /** WU YAML has status 'done' but no stamp file exists */
274
- YAML_DONE_NO_STAMP: string;
275
- /** WU has status 'done' but still has an associated worktree */
276
- ORPHAN_WORKTREE_DONE: string;
277
- /** Stamp file exists but WU YAML status is not 'done' (partial wu:done failure) */
278
- STAMP_EXISTS_YAML_NOT_DONE: string;
279
- /** WU is claimed but its worktree directory is missing */
280
- MISSING_WORKTREE_CLAIMED: string;
281
- };
282
- /**
283
- * Consistency check messages
284
- */
285
- export declare const CONSISTENCY_MESSAGES: {
286
- MISSING_WORKTREE_CLAIMED: (id: any, status: any, worktreePath: any) => string;
287
- MISSING_WORKTREE_CLAIMED_REPAIR: string;
288
- };
289
- /**
290
- * Worktree warning messages
291
- */
292
- export declare const WORKTREE_WARNINGS: {
293
- MISSING_TRACKED_HEADER: string;
294
- MISSING_TRACKED_LINE: (worktreePath: any) => string;
295
- };
296
- /**
297
- * File system constants
298
- *
299
- * WU-923: Centralized to eliminate hardcoded strings
300
- */
301
- export declare const FILE_SYSTEM: {
302
- /** Standard file encoding */
303
- ENCODING: string;
304
- /** UTF-8 encoding (alias for compatibility) */
305
- UTF8: string;
306
- };
307
- /**
308
- * Build artifact cleanup globs
309
- *
310
- * Centralized glob patterns for worktree artifact cleanup.
311
- */
312
- export declare const BUILD_ARTIFACT_GLOBS: {
313
- /** Common dist directories inside worktrees */
314
- DIST_DIRS: string[];
315
- /** TypeScript build info files */
316
- TSBUILDINFO_FILES: string[];
317
- };
318
- /**
319
- * Build artifact cleanup ignore patterns
320
- *
321
- * Centralized ignore globs for artifact cleanup.
322
- */
323
- export declare const BUILD_ARTIFACT_IGNORES: string[];
324
- /**
325
- * Process stdio constants
326
- *
327
- * Standard values for child_process execSync stdio option.
328
- */
329
- export declare const STDIO: {
330
- /** Pipe stdout/stderr (capture output) */
331
- readonly PIPE: "pipe";
332
- /** Inherit stdio from parent process */
333
- readonly INHERIT: "inherit";
334
- /** Ignore stdio (silent execution) */
335
- readonly IGNORE: "ignore";
336
- };
337
- /**
338
- * Configuration file paths
339
- *
340
- * WU-923: Centralized config file names
341
- */
342
- export declare const CONFIG_FILES: {
343
- /** LumenFlow main config */
344
- LUMENFLOW_CONFIG: string;
345
- /** Lane inference taxonomy */
346
- LANE_INFERENCE: string;
347
- };
348
- /**
349
- * Micro-worktree operation identifiers
350
- *
351
- * WU-923: Centralized operation names for withMicroWorktree()
352
- */
353
- export declare const MICRO_WORKTREE_OPERATIONS: {
354
- WU_CREATE: string;
355
- WU_EDIT: string;
356
- WU_DELETE: string;
357
- WU_DONE: string;
358
- WU_BLOCK: string;
359
- WU_UNBLOCK: string;
360
- WU_CLAIM: string;
361
- ORPHAN_REPAIR: string;
362
- INITIATIVE_EDIT: string;
363
- INITIATIVE_BULK_ASSIGN: string;
364
- };
365
- /**
366
- * Telemetry step identifiers
367
- *
368
- * WU-1584: Centralized telemetry step names to eliminate string literals.
369
- */
370
- export declare const TELEMETRY_STEPS: {
371
- GATES: string;
372
- /** WU-1467: COS_GATES removed -- was a stub (exit 0), not an authoritative step */
373
- PARALLEL_DETECTION: string;
374
- PARALLEL_AUTO_REBASE: string;
375
- };
376
- /**
377
- * WU-1747: Skip gates reason constants
378
- */
379
- export declare const SKIP_GATES_REASONS: {
380
- CHECKPOINT_VALID: string;
381
- };
382
- /**
383
- * WU-1747: Checkpoint-related log messages
384
- */
385
- export declare const CHECKPOINT_MESSAGES: {
386
- SKIPPING_GATES_VALID: string;
387
- CHECKPOINT_LABEL: string;
388
- GATES_PASSED_AT: string;
389
- COULD_NOT_CREATE: string;
390
- };
391
- /**
392
- * Default values
393
- */
394
- export declare const DEFAULTS: {
395
- /** Default worktrees directory */
396
- WORKTREES_DIR: string;
397
- /** Maximum commit subject length (commitlint default) */
398
- MAX_COMMIT_SUBJECT: number;
399
- /** Parent directory traversal depth from tools/lib to project root */
400
- PROJECT_ROOT_DEPTH: number;
401
- /**
402
- * Default email domain for username -> email conversion
403
- * WU-1068: Made configurable, no longer hardcoded to patientpath.co.uk
404
- * @see user-normalizer.ts - Infers from git config first
405
- */
406
- EMAIL_DOMAIN: string;
407
- };
408
- /**
409
- * Process argv indices (WU-1068)
410
- *
411
- * Centralized indices for process.argv access to eliminate magic numbers.
412
- * In Node.js: argv[0] = node, argv[1] = script, argv[2+] = args
413
- */
414
- export declare const ARGV_INDICES: {
415
- /** Node executable path */
416
- NODE: number;
417
- /** Script path */
418
- SCRIPT: number;
419
- /** First user argument */
420
- FIRST_ARG: number;
421
- /** Second user argument */
422
- SECOND_ARG: number;
423
- };
424
- /**
425
- * Display limits for CLI output (WU-1068)
426
- *
427
- * Centralized limits for truncating display strings to avoid magic numbers.
428
- */
429
- export declare const DISPLAY_LIMITS: {
430
- /** Maximum items to show in lists before truncating */
431
- LIST_ITEMS: number;
432
- /** Maximum items to show in short lists */
433
- SHORT_LIST: number;
434
- /** Maximum characters for content preview */
435
- CONTENT_PREVIEW: number;
436
- /** Maximum characters for short preview */
437
- SHORT_PREVIEW: number;
438
- /** Maximum characters for title display */
439
- TITLE: number;
440
- /** Maximum characters for truncated title */
441
- TRUNCATED_TITLE: number;
442
- /** Maximum characters for command preview */
443
- CMD_PREVIEW: number;
444
- /** Maximum lines to preview from files */
445
- FILE_LINES: number;
446
- /** Maximum commits to show in lists */
447
- COMMITS: number;
448
- /** Maximum overlaps to display */
449
- OVERLAPS: number;
450
- };
451
- /**
452
- * YAML serialization options
453
- *
454
- * Centralized from duplicated { lineWidth: 100 } across wu-* scripts (WU-1256).
455
- * Use with yaml stringify() options.
456
- */
457
- export declare const YAML_OPTIONS: {
458
- /** Standard line width for YAML dump (100 chars) */
459
- LINE_WIDTH: number;
460
- /** No line wrapping (-1 disables wrapping) */
461
- NO_WRAP: number;
462
- };
463
- /**
464
- * UI display constants
465
- *
466
- * WU-1281: Centralized from hardcoded values in wu-done.ts
467
- */
468
- export declare const UI: {
469
- /** Width for error/info boxes in console output */
470
- ERROR_BOX_WIDTH: number;
471
- /** Number of lines to show in status file preview */
472
- STATUS_PREVIEW_LINES: number;
473
- };
474
- /**
475
- * Box drawing characters for console output
476
- *
477
- * Emergency fix (Session 2): Centralized to eliminate sonarjs/no-duplicate-string errors
478
- * Used for recovery dialogs and error boxes in wu-* scripts
479
- */
480
- export declare const BOX: {
481
- /** Top border: ╔══...══╗ (66 chars inside + corners = 68 total) */
482
- TOP: string;
483
- /** Middle separator: ╠══...══╣ */
484
- MID: string;
485
- /** Bottom border: ╚══...══╝ */
486
- BOT: string;
487
- /** Side border for content lines */
488
- SIDE: string;
489
- };
490
- /**
491
- * Cleanup guard constants
492
- */
493
- export declare const CLEANUP_GUARD: {
494
- REASONS: {
495
- UNCOMMITTED_CHANGES: string;
496
- UNPUSHED_COMMITS: string;
497
- STATUS_NOT_DONE: string;
498
- MISSING_STAMP: string;
499
- PR_NOT_MERGED: string;
500
- };
501
- TITLES: {
502
- BLOCKED: string;
503
- NEXT_STEPS: string;
504
- };
505
- MESSAGES: {
506
- UNCOMMITTED_CHANGES: string;
507
- UNPUSHED_COMMITS: string;
508
- STATUS_NOT_DONE: string;
509
- MISSING_STAMP: string;
510
- PR_NOT_MERGED: string;
511
- };
512
- NEXT_STEPS: {
513
- DEFAULT: {
514
- text: string;
515
- appendId: boolean;
516
- }[];
517
- UNCOMMITTED_CHANGES: {
518
- text: string;
519
- appendId: boolean;
520
- }[];
521
- UNPUSHED_COMMITS: {
522
- text: string;
523
- appendId: boolean;
524
- }[];
525
- STATUS_NOT_DONE: {
526
- text: string;
527
- appendId: boolean;
528
- }[];
529
- MISSING_STAMP: {
530
- text: string;
531
- appendId: boolean;
532
- }[];
533
- PR_NOT_MERGED: {
534
- text: string;
535
- appendId: boolean;
536
- }[];
537
- };
538
- PR_CHECK: {
539
- START: string;
540
- RESULT: string;
541
- };
542
- };
543
- /**
544
- * Git display constants
545
- *
546
- * Emergency fix (Session 2): Centralized from hardcoded magic numbers
547
- * Used for display truncation of SHAs and session IDs
548
- */
549
- export declare const GIT: {
550
- /** Standard length for displaying short SHA hashes (e.g., "abc12345") */
551
- SHA_SHORT_LENGTH: number;
552
- /** Max number of commits to inspect in git log lookbacks */
553
- LOG_MAX_COUNT: number;
554
- };
555
- /**
556
- * Real git executable path - MUST bypass tools/shims to prevent recursion.
557
- *
558
- * CRITICAL: The git shim (tools/shims/git) calls functions that need to run git
559
- * commands. If those functions use 'git' (which resolves to the shim), we get
560
- * infinite recursion: shim → helper → git → shim → helper → git → ...
561
- *
562
- * With VS Code extensions making dozens of git calls per second, this causes
563
- * memory exhaustion within seconds → OOM crash → system reboot.
564
- *
565
- * P0 incident: 2025-12-10 server crash due to recursive fork bomb.
566
- *
567
- * @see tools/shims/git - The git shim that blocks destructive commands
568
- * @see tools/lib/wu-helpers.ts - Uses REAL_GIT to avoid recursion
569
- */
570
- export declare const REAL_GIT = "/usr/bin/git";
571
- /**
572
- * Git command flags
573
- *
574
- * Centralized git flag constants to eliminate hardcoded strings.
575
- * Used by git-adapter.ts and other git operation utilities.
576
- */
577
- export declare const GIT_FLAGS: {
578
- /** Show abbreviated ref names (for branch name resolution) */
579
- ABBREV_REF: string;
580
- /** Porcelain format (machine-readable output) */
581
- PORCELAIN: string;
582
- /** Create new branch and switch to it */
583
- BRANCH: string;
584
- /** Force flag (long form) */
585
- FORCE: string;
586
- /** Force flag (short form) */
587
- FORCE_SHORT: string;
588
- /** Fast-forward only merge */
589
- FF_ONLY: string;
590
- /** Rebase local commits on top of fetched branch */
591
- REBASE: string;
592
- /** Check ancestry without output (merge-base) */
593
- IS_ANCESTOR: string;
594
- /** Set upstream tracking */
595
- UPSTREAM: string;
596
- /** Delete branch (safe - only if merged) */
597
- DELETE: string;
598
- /** Delete branch (force - even if not merged) */
599
- DELETE_FORCE: string;
600
- /** Delete remote branch flag (for git push --delete) */
601
- DELETE_REMOTE: string;
602
- /** Hard reset flag */
603
- HARD: string;
604
- /** Soft reset flag */
605
- SOFT: string;
606
- /** fd flags for clean (force delete directories) */
607
- FD_SHORT: string;
608
- /** df flags for clean (delete force directories) */
609
- DF_SHORT: string;
610
- /** No verify flag (skip pre-commit/commit-msg hooks) */
611
- NO_VERIFY: string;
612
- /** No GPG sign flag (skip commit signing) */
613
- NO_GPG_SIGN: string;
614
- /** One-line log format */
615
- ONELINE: string;
616
- /** List heads only (for ls-remote) */
617
- HEADS: string;
618
- /** Path separator (separates git options from file paths) */
619
- PATH_SEPARATOR: string;
620
- };
621
- /**
622
- * Git commands
623
- *
624
- * Centralized git command strings to eliminate hardcoded strings.
625
- * Used for direct git command execution via execSync/execa.
626
- */
627
- export declare const GIT_COMMANDS: {
628
- /** Git binary */
629
- GIT: string;
630
- /** Git reset command */
631
- RESET: string;
632
- /** List tree objects (check file existence on branch) */
633
- LS_TREE: string;
634
- /** List remote references */
635
- LS_REMOTE: string;
636
- /** Push command */
637
- PUSH: string;
638
- /** Pull command */
639
- PULL: string;
640
- /** Git diff command */
641
- DIFF: string;
642
- /** Git log command */
643
- LOG: string;
644
- /** Git merge-base command */
645
- MERGE_BASE: string;
646
- /** Git rev-parse command */
647
- REV_PARSE: string;
648
- /** Git diff flags */
649
- CACHED: string;
650
- NAME_ONLY: string;
651
- DIFF_FILTER_ACM: string;
652
- };
653
- /**
654
- * Session display constants
655
- *
656
- * Emergency fix (Session 2): Centralized from hardcoded magic numbers
657
- */
658
- export declare const SESSION: {
659
- /** Standard length for displaying session ID prefix (e.g., "sess-123") */
660
- ID_DISPLAY_LENGTH: number;
661
- };
662
- /**
663
- * Validation constants
664
- *
665
- * WU-1281: Centralized from local constants in validators
666
- */
667
- export declare const VALIDATION: {
668
- /** Minimum description length for WU spec completeness */
669
- MIN_DESCRIPTION_LENGTH: number;
670
- };
671
- /**
672
- * Threshold constants for pre-flight checks
673
- *
674
- * WU-1302: Centralized to eliminate magic numbers
675
- * WU-1370: Added graduated drift thresholds for early warnings
676
- */
677
- export declare const THRESHOLDS: {
678
- /** Info threshold: commits behind main to suggest rebasing (WU-1370) */
679
- BRANCH_DRIFT_INFO: number;
680
- /** Warning threshold: commits behind main where rebase is recommended (WU-1370) */
681
- BRANCH_DRIFT_WARNING: number;
682
- /** Maximum commits behind main before requiring rebase (WU-755 pre-flight) */
683
- BRANCH_DRIFT_MAX: number;
684
- };
685
- /**
686
- * WU type values
687
- *
688
- * WU-1281: Centralized from hardcoded strings in validators
689
- */
690
- export declare const WU_TYPES: {
691
- DOCUMENTATION: string;
692
- PROCESS: string;
693
- FEATURE: string;
694
- TOOLING: string;
695
- BUG: string;
696
- };
697
- /**
698
- * WU exposure values (WU-1998)
699
- *
700
- * Defines how a WU exposes its functionality to users.
701
- * Used to ensure backend features have corresponding UI coverage.
702
- *
703
- * @see {@link packages/@lumenflow/cli/src/lib/wu-schema.ts} - Schema validation
704
- * @see {@link packages/linters/wu-schema-linter.ts} - Linter validation
705
- */
706
- export declare const WU_EXPOSURE: {
707
- /** User-facing UI changes (pages, components, widgets) */
708
- readonly UI: "ui";
709
- /** API endpoints that are called by UI or external clients */
710
- readonly API: "api";
711
- /** Backend-only changes (no user visibility) */
712
- readonly BACKEND_ONLY: "backend-only";
713
- /** Documentation changes only */
714
- readonly DOCUMENTATION: "documentation";
715
- };
716
- /**
717
- * Array of valid exposure values for schema validation
718
- * Note: Defined as tuple for Zod enum compatibility
719
- */
720
- export declare const WU_EXPOSURE_VALUES: readonly ["ui", "api", "backend-only", "documentation"];
721
- /**
722
- * Test type keys
723
- *
724
- * WU-1281: Centralized from hardcoded keys in validators
725
- */
726
- export declare const TEST_TYPES: {
727
- UNIT: string;
728
- E2E: string;
729
- MANUAL: string;
730
- INTEGRATION: string;
731
- };
732
- /**
733
- * Safety-critical test glob patterns
734
- *
735
- * WU-2242: Centralized list of glob patterns for safety tests that MUST exist.
736
- * Gates fail if any of these patterns find no matches.
737
- *
738
- * These patterns identify tests for:
739
- * - PHI (Protected Health Information) protection
740
- * - Escalation triggers
741
- * - Privacy detection
742
- * - Constitutional enforcement
743
- * - Safe prompt wrapping
744
- * - Crisis/emergency handling
745
- *
746
- * @type {string[]}
747
- */
748
- export declare const SAFETY_CRITICAL_TEST_GLOBS: readonly string[];
749
- /**
750
- * Emoji constants for consistent console output
751
- *
752
- * WU-1281: Centralized from hardcoded emojis across wu-* scripts
753
- */
754
- export declare const EMOJI: {
755
- SUCCESS: string;
756
- FAILURE: string;
757
- WARNING: string;
758
- INFO: string;
759
- BLOCKED: string;
760
- ROCKET: string;
761
- WRENCH: string;
762
- TARGET: string;
763
- MEMO: string;
764
- FOLDER: string;
765
- };
766
- /**
767
- * Default values for WU YAML fields
768
- *
769
- * WU-1337: Centralized defaults for auto-repair in schema validation
770
- * DRY principle: Single source of truth for optional field defaults
771
- *
772
- * Used by wu-schema.ts Zod transformations to provide sensible defaults
773
- * when agents omit optional fields, reducing validation errors.
774
- */
775
- export declare const WU_DEFAULTS: {
776
- /** Default priority level (medium priority) */
777
- priority: string;
778
- /** Default status for new WUs */
779
- status: string;
780
- /** Default work type */
781
- type: string;
782
- /** Default code paths (empty until populated) */
783
- code_paths: any[];
784
- /** Default test structure (includes all test types) */
785
- tests: {
786
- manual: any[];
787
- unit: any[];
788
- integration: any[];
789
- e2e: any[];
790
- };
791
- /** Default artifacts (empty - wu:done adds stamp) */
792
- artifacts: any[];
793
- /** Default dependencies (no blockers) */
794
- dependencies: any[];
795
- /** Default risks (none identified) */
796
- risks: any[];
797
- /** Default notes (empty string, not undefined) */
798
- notes: string;
799
- /** Default review requirement (agent-completed WUs) */
800
- requires_review: boolean;
801
- };
802
- /**
803
- * Lane-to-code_paths validation patterns (WU-1372)
804
- *
805
- * Advisory patterns to warn when a WU's lane doesn't match its code_paths.
806
- * Each lane parent can define paths to exclude (paths that shouldn't appear
807
- * for that lane) and paths that are exceptionally allowed.
808
- *
809
- * Validation is advisory only - never blocks wu:claim or wu:done.
810
- *
811
- * WU-1068: Removed hardcoded @patientpath references. These patterns
812
- * should be configured in .lumenflow.config.yaml per-project.
813
- *
814
- * @see {@link packages/@lumenflow/cli/src/lib/lane-validator.ts} - Validation logic
815
- */
816
- export declare const LANE_PATH_PATTERNS: {
817
- /**
818
- * Operations lane should not touch prompt-related paths.
819
- * These paths belong to the Intelligence lane.
820
- */
821
- Operations: {
822
- exclude: string[];
823
- allowExceptions: any[];
824
- };
825
- /**
826
- * Intelligence lane should not touch tooling paths.
827
- * Exception: tools/lib/prompt-* files are Intelligence-owned.
828
- */
829
- Intelligence: {
830
- exclude: string[];
831
- allowExceptions: string[];
832
- };
833
- };
834
- /**
835
- * Process detection constants for background process warning (WU-1381)
836
- *
837
- * Used by process-detector.ts to identify processes that may interfere
838
- * with wu:done gates execution.
839
- */
840
- export declare const PROCESS_DETECTION: {
841
- /**
842
- * Process names that commonly interfere with gates execution.
843
- * These processes may:
844
- * - Write to stdout/stderr (causing mixed output)
845
- * - Hold file locks that may cause test failures
846
- * - Consume resources that affect gate performance
847
- */
848
- INTERFERING_NAMES: string[];
849
- /** Maximum characters to display for command in warnings */
850
- CMD_DISPLAY_LIMIT: number;
851
- };
852
- /**
853
- * CLI argument flags
854
- *
855
- * Centralized command-line argument strings to eliminate hardcoded flags.
856
- * Used across wu-* scripts, gates, and validation tools.
857
- */
858
- export declare const CLI_FLAGS: {
859
- DRY_RUN: string;
860
- EXECUTE: string;
861
- HELP: string;
862
- HELP_SHORT: string;
863
- VERBOSE: string;
864
- FIX: string;
865
- JSON: string;
866
- FORCE: string;
867
- DOCS_ONLY: string;
868
- FULL_LINT: string;
869
- FULL_TESTS: string;
870
- FULL_COVERAGE: string;
871
- COVERAGE_MODE: string;
872
- WU: string;
873
- ID: string;
874
- ALL: string;
875
- CHECK: string;
876
- TIER: string;
877
- AGENT_TYPE: string;
878
- DESCRIPTION: string;
879
- ACCEPTANCE: string;
880
- VALIDATE: string;
881
- REASON: string;
882
- WEEK: string;
883
- SINCE: string;
884
- };
885
- /**
886
- * pnpm/npm command flags
887
- *
888
- * Centralized package manager flag strings.
889
- */
890
- export declare const PKG_FLAGS: {
891
- FILTER: string;
892
- FROZEN_LOCKFILE: string;
893
- /** WU-1527: Required for pnpm add at workspace root in monorepos */
894
- WORKSPACE_ROOT: string;
895
- SAVE_DEV: string;
896
- SAVE_EXACT: string;
897
- };
898
- /**
899
- * ESLint command flags
900
- *
901
- * Centralized ESLint CLI flag strings.
902
- */
903
- export declare const ESLINT_FLAGS: {
904
- MAX_WARNINGS: string;
905
- NO_WARN_IGNORED: string;
906
- CACHE: string;
907
- CACHE_STRATEGY: string;
908
- CACHE_LOCATION: string;
909
- PASS_ON_UNPRUNED: string;
910
- };
911
- /**
912
- * pnpm script names
913
- *
914
- * Centralized script names for package.json commands.
915
- */
916
- export declare const SCRIPTS: {
917
- LINT: string;
918
- TEST: string;
919
- TEST_UNIT: string;
920
- BUILD: string;
921
- FORMAT: string;
922
- FORMAT_CHECK: string;
923
- TYPECHECK: string;
924
- DEV: string;
925
- SPEC_LINTER: string;
926
- /** WU-1467: Stub script -- not an enforced gate. Retained for script surface only. */
927
- PROMPTS_LINT: string;
928
- RUN: string;
929
- GATES: string;
930
- /** WU-1467: Stub script -- not an enforced gate. Retained for script surface only. */
931
- COS_GATES: string;
932
- PRETTIER: string;
933
- /** WU-1467: Root script surface for tasks:validate (delegates to wu:validate --all) */
934
- TASKS_VALIDATE: string;
935
- };
936
- /**
937
- * Gate names for quality gates
938
- *
939
- * Centralized gate identifiers for gates.ts and telemetry.
940
- */
941
- export declare const GATE_NAMES: {
942
- /** WU-2252: Invariants check (runs first, non-bypassable) */
943
- INVARIANTS: string;
944
- FORMAT_CHECK: string;
945
- SPEC_LINTER: string;
946
- /** WU-1467: PROMPTS_LINT removed -- was a stub (exit 0), not an authoritative gate */
947
- BACKLOG_SYNC: string;
948
- SUPABASE_DOCS_LINTER: string;
949
- LINT: string;
950
- TYPECHECK: string;
951
- TEST: string;
952
- COVERAGE: string;
953
- /** WU-2062: Safety-critical tests (always run) */
954
- SAFETY_CRITICAL_TEST: string;
955
- /** WU-2062: Integration tests (for high-risk changes) */
956
- INTEGRATION_TEST: string;
957
- /** WU-2315: System map validation (warn-only until orphan docs are indexed) */
958
- SYSTEM_MAP_VALIDATE: string;
959
- /** WU-1191: Lane health check (overlap detection) */
960
- LANE_HEALTH: string;
961
- /** WU-1315: Onboarding smoke test (init + wu:create validation) */
962
- ONBOARDING_SMOKE_TEST: string;
963
- };
964
- /**
965
- * Gate command sentinels (special values for non-shell commands)
966
- *
967
- * These are not shell commands but trigger special handling in gates.ts.
968
- */
969
- export declare const GATE_COMMANDS: {
970
- /** WU-2252: Triggers invariants check */
971
- INVARIANTS: string;
972
- /** Triggers incremental lint (only changed files) */
973
- INCREMENTAL: string;
974
- /** Triggers incremental tests (only tests related to changed files) - WU-1920 */
975
- INCREMENTAL_TEST: string;
976
- /** Triggers coverage gate check */
977
- COVERAGE_GATE: string;
978
- /** WU-2062: Triggers safety-critical tests (always run) */
979
- SAFETY_CRITICAL_TEST: string;
980
- /** WU-2062: Triggers tiered test execution based on risk */
981
- TIERED_TEST: string;
982
- /** WU-1315: Triggers onboarding smoke test */
983
- ONBOARDING_SMOKE_TEST: string;
984
- };
985
- /**
986
- * CLI mode flags
987
- *
988
- * Command-line mode arguments.
989
- */
990
- export declare const CLI_MODES: {
991
- LOCAL: string;
992
- };
993
- /**
994
- * Prettier command flags
995
- *
996
- * Centralized prettier CLI flag strings.
997
- */
998
- export declare const PRETTIER_FLAGS: {
999
- WRITE: string;
1000
- };
1001
- /**
1002
- * Package manager commands
1003
- *
1004
- * Centralized pnpm command strings.
1005
- */
1006
- export declare const PKG_MANAGER = "pnpm";
1007
- /**
1008
- * Package manager subcommands
1009
- *
1010
- * Centralized pnpm subcommand strings.
1011
- */
1012
- export declare const PKG_COMMANDS: {
1013
- INSTALL: string;
1014
- /** WU-1527: Used by lumenflow-upgrade and deps-add */
1015
- ADD: string;
1016
- REMOVE: string;
1017
- };
1018
- /**
1019
- * Package names (monorepo workspaces)
1020
- *
1021
- * Centralized package names for --filter usage.
1022
- * WU-1068: Changed from @patientpath to @lumenflow for framework reusability.
1023
- * Project-specific packages should be configured in .lumenflow.config.yaml.
1024
- */
1025
- export declare const PACKAGES: {
1026
- WEB: string;
1027
- APPLICATION: string;
1028
- DOMAIN: string;
1029
- INFRASTRUCTURE: string;
1030
- };
1031
- /**
1032
- * Directory paths within the monorepo
1033
- *
1034
- * Centralized directory path strings.
1035
- */
1036
- export declare const DIRECTORIES: {
1037
- APPS_WEB: string;
1038
- WORKTREES: string;
1039
- AI: string;
1040
- CLAUDE: string;
1041
- CLAUDE_HOOKS: string;
1042
- DOCS: string;
1043
- PACKAGES: string;
1044
- TOOLS: string;
1045
- MEMORY_BANK: string;
1046
- WU_DIR: string;
1047
- INITIATIVES_DIR: string;
1048
- BACKLOG_PATH: string;
1049
- STATUS_PATH: string;
1050
- };
1051
- /**
1052
- * Claude Code hook script constants (WU-1394)
1053
- *
1054
- * Centralized constants for Claude Code enforcement and recovery hooks.
1055
- * Used by enforcement-generator.ts, enforcement-sync.ts, and init.ts.
1056
- *
1057
- * @see packages/@lumenflow/cli/src/hooks/enforcement-generator.ts
1058
- * @see packages/@lumenflow/cli/src/hooks/enforcement-sync.ts
1059
- */
1060
- export declare const CLAUDE_HOOKS: {
1061
- /** Hook script filenames */
1062
- readonly SCRIPTS: {
1063
- readonly ENFORCE_WORKTREE: "enforce-worktree.sh";
1064
- readonly REQUIRE_WU: "require-wu.sh";
1065
- readonly WARN_INCOMPLETE: "warn-incomplete.sh";
1066
- readonly PRE_COMPACT_CHECKPOINT: "pre-compact-checkpoint.sh";
1067
- readonly SESSION_START_RECOVERY: "session-start-recovery.sh";
1068
- /** WU-1471: Auto-checkpoint hook for PostToolUse and SubagentStop events */
1069
- readonly AUTO_CHECKPOINT: "auto-checkpoint.sh";
1070
- /** WU-1502: PostToolUse Bash hook for dirty-main warning */
1071
- readonly WARN_DIRTY_MAIN: "warn-dirty-main.sh";
1072
- };
1073
- /** Hook command path prefix (uses Claude Code's $CLAUDE_PROJECT_DIR variable) */
1074
- readonly PATH_PREFIX: "$CLAUDE_PROJECT_DIR/.claude/hooks";
1075
- /** Hook matchers for settings.json */
1076
- readonly MATCHERS: {
1077
- readonly ALL: ".*";
1078
- readonly WRITE_EDIT: "Write|Edit";
1079
- readonly COMPACT: "compact";
1080
- readonly RESUME: "resume";
1081
- readonly CLEAR: "clear";
1082
- /** WU-1471: Matcher for SubagentStop hook event */
1083
- readonly SUBAGENT_STOP: ".*";
1084
- /** WU-1502: Matcher for Bash tool PostToolUse */
1085
- readonly BASH: "Bash";
1086
- };
1087
- /** Template paths (relative to templates directory) */
1088
- readonly TEMPLATES: {
1089
- readonly SETTINGS: "vendors/claude/.claude/settings.json.template";
1090
- readonly PRE_COMPACT: "vendors/claude/.claude/hooks/pre-compact-checkpoint.sh";
1091
- readonly SESSION_START: "vendors/claude/.claude/hooks/session-start-recovery.sh";
1092
- };
1093
- };
1094
- /** Build full hook command path from script name */
1095
- export declare const getHookCommand: (scriptName: string) => string;
1096
- /**
1097
- * ESLint cache strategy values
1098
- */
1099
- export declare const CACHE_STRATEGIES: {
1100
- CONTENT: string;
1101
- METADATA: string;
1102
- };
1103
- /**
1104
- * Process stdio modes
1105
- *
1106
- * Centralized stdio configuration values for child_process operations.
1107
- */
1108
- export declare const STDIO_MODES: {
1109
- /** Inherit stdio from parent process (shows output in console) */
1110
- readonly INHERIT: "inherit";
1111
- /** Pipe stdio to parent process (capture output) */
1112
- readonly PIPE: "pipe";
1113
- /** Ignore stdio (discard output) */
1114
- readonly IGNORE: "ignore";
1115
- };
1116
- /**
1117
- * Process exit codes
1118
- *
1119
- * Standard exit code values for CLI scripts.
1120
- */
1121
- export declare const EXIT_CODES: {
1122
- /** Success exit code */
1123
- SUCCESS: number;
1124
- /** Generic error exit code */
1125
- ERROR: number;
1126
- /** Fatal or distinct failure exit code */
1127
- FAILURE: number;
1128
- };
1129
- /**
1130
- * Stream error codes
1131
- *
1132
- * WU-1233: Error codes for stream operations (stdout/stderr).
1133
- * Used by StreamErrorHandler for graceful pipe closure handling.
1134
- */
1135
- export declare const STREAM_ERRORS: {
1136
- /**
1137
- * EPIPE error code
1138
- *
1139
- * Occurs when writing to a pipe whose read end has been closed.
1140
- * This is normal behavior when CLI output is piped through head/tail.
1141
- * Unix convention: exit with code 0 on EPIPE (consumer got what it needed).
1142
- */
1143
- readonly EPIPE: "EPIPE";
1144
- };
1145
- /**
1146
- * ESLint command names
1147
- *
1148
- * Centralized ESLint command strings.
1149
- */
1150
- export declare const ESLINT_COMMANDS: {
1151
- /** ESLint CLI command */
1152
- ESLINT: string;
1153
- };
1154
- /**
1155
- * ESLint default values
1156
- *
1157
- * Default configuration values for ESLint operations.
1158
- */
1159
- export declare const ESLINT_DEFAULTS: {
1160
- /**
1161
- * Maximum allowed warnings
1162
- *
1163
- * WU-1866: Temporarily increased from 0 to 100 to unblock gates.
1164
- * There are ~82 pre-existing warnings that need proper fixes.
1165
- */
1166
- MAX_WARNINGS: string;
1167
- };
1168
- /**
1169
- * Git command combinations
1170
- *
1171
- * Full git command strings for common operations.
1172
- */
1173
- export declare const GIT_COMMAND_STRINGS: {
1174
- /** Get diff of cached (staged) files */
1175
- DIFF_CACHED: string;
1176
- /** Get names of cached files */
1177
- DIFF_CACHED_NAMES: string;
1178
- /** Get names of cached files (added, copied, modified) */
1179
- DIFF_CACHED_ACM: string;
1180
- /** Get cached diff with zero context (used for hook validation) */
1181
- DIFF_CACHED_UNIFIED_ZERO: string;
1182
- /** Get current branch name */
1183
- REV_PARSE_ABBREV_REF_HEAD: string;
1184
- };
1185
- /**
1186
- * Path patterns for WU-related files
1187
- */
1188
- export declare const PATH_PATTERNS: {
1189
- /** Matches WU YAML paths in both legacy and current locations */
1190
- WU_YAML: RegExp;
1191
- /** Matches stamp file paths */
1192
- STAMP: RegExp;
1193
- };
1194
- /**
1195
- * Common shell commands
1196
- *
1197
- * Centralized command names for child_process operations.
1198
- */
1199
- export declare const SHELL_COMMANDS: {
1200
- /** Which command (check if executable exists) */
1201
- WHICH: string;
1202
- /** Cat command (concatenate files) */
1203
- CAT: string;
1204
- /** Node.js executable */
1205
- NODE: string;
1206
- };
1207
- /**
1208
- * External tool commands
1209
- *
1210
- * Centralized tool command names.
1211
- */
1212
- export declare const TOOLS: {
1213
- /** Gitleaks secret scanner */
1214
- GITLEAKS: string;
1215
- /** ESLint linter */
1216
- ESLINT: string;
1217
- /** Prettier formatter */
1218
- PRETTIER: string;
1219
- /** TypeScript compiler */
1220
- TSC: string;
1221
- };
1222
- /**
1223
- * Gitleaks command arguments
1224
- *
1225
- * Centralized gitleaks CLI arguments.
1226
- */
1227
- export declare const GITLEAKS_ARGS: {
1228
- /** Protect mode (scan staged files) */
1229
- PROTECT: string;
1230
- /** Staged flag */
1231
- STAGED: string;
1232
- /** Verbose output */
1233
- VERBOSE: string;
1234
- };
1235
- /**
1236
- * Prettier command arguments
1237
- *
1238
- * Centralized prettier CLI arguments.
1239
- */
1240
- export declare const PRETTIER_ARGS: {
1241
- /** Check formatting without writing */
1242
- CHECK: string;
1243
- /** List files with formatting differences */
1244
- LIST_DIFFERENT: string;
1245
- };
1246
- /**
1247
- * Audit command arguments
1248
- *
1249
- * Centralized pnpm audit CLI arguments.
1250
- */
1251
- export declare const AUDIT_ARGS: {
1252
- /** Audit subcommand */
1253
- AUDIT: string;
1254
- /** Audit level flag */
1255
- AUDIT_LEVEL_MODERATE: string;
1256
- /** Ignore registry errors */
1257
- IGNORE_REGISTRY_ERRORS: string;
1258
- /** Auto-fix flag */
1259
- FIX: string;
1260
- };
1261
- /**
1262
- * Script file paths
1263
- *
1264
- * Centralized paths to validation scripts.
1265
- */
1266
- export declare const SCRIPT_PATHS: {
1267
- /** Prompt registry validation */
1268
- VALIDATE_PROMPT_REGISTRY: string;
1269
- };
1270
- /**
1271
- * Known package names for vulnerability tracking
1272
- *
1273
- * Package identifiers used in dependency auditing.
1274
- */
1275
- export declare const KNOWN_PACKAGES: {
1276
- /** node-forge crypto library */
1277
- NODE_FORGE: string;
1278
- /** Next.js framework */
1279
- NEXT: string;
1280
- /** jsPDF PDF generation library */
1281
- JSPDF: string;
1282
- };
1283
- /**
1284
- * Error codes and messages
1285
- *
1286
- * Centralized error identifiers for consistency.
1287
- */
1288
- export declare const ERROR_CODES: {
1289
- /** Socket timeout error */
1290
- ERR_SOCKET_TIMEOUT: string;
1291
- /** Timeout error code */
1292
- ETIMEDOUT: string;
1293
- };
1294
- /**
1295
- * WU-1174: Lock directory name constant
1296
- *
1297
- * Defined separately so it can be used both in LUMENFLOW_PATHS.LOCK_DIR
1298
- * and for test isolation in cleanup-lock.ts/merge-lock.ts.
1299
- */
1300
- export declare const LOCK_DIR_NAME = ".lumenflow-locks";
1301
- /**
1302
- * LumenFlow directory paths
1303
- *
1304
- * Centralized paths for .lumenflow directory structure to eliminate hardcoded strings.
1305
- * Used by telemetry, agent-session, agent-incidents, memory, and commands-logger modules.
1306
- */
1307
- export declare const LUMENFLOW_PATHS: {
1308
- /** Base directory for all LumenFlow runtime data */
1309
- BASE: string;
1310
- /** WU state store directory */
1311
- STATE_DIR: string;
1312
- /** Stamp directory (WU completion markers) */
1313
- STAMPS_DIR: string;
1314
- /** Archive directory for old WU events (WU-1430) */
1315
- ARCHIVE_DIR: string;
1316
- /** Merge lock file (runtime coordination, WU-1747) */
1317
- MERGE_LOCK: string;
1318
- /** Base telemetry directory */
1319
- TELEMETRY: string;
1320
- /** Flow log file (WU flow events) */
1321
- FLOW_LOG: string;
1322
- /** Agent sessions directory */
1323
- SESSIONS: string;
1324
- /** Agent incidents directory */
1325
- INCIDENTS: string;
1326
- /** Git commands log file */
1327
- COMMANDS_LOG: string;
1328
- /** Memory layer directory */
1329
- MEMORY_DIR: string;
1330
- /** Memory layer JSONL file */
1331
- MEMORY_JSONL: string;
1332
- /** Audit log for tool calls */
1333
- AUDIT_LOG: string;
1334
- /** Feedback drafts directory */
1335
- FEEDBACK_DRAFTS: string;
1336
- /** Feedback index file */
1337
- FEEDBACK_INDEX: string;
1338
- /** Current session file */
1339
- SESSION_CURRENT: string;
1340
- /** WU events log */
1341
- WU_EVENTS: string;
1342
- /** Lock files directory (lane locks - persisted) */
1343
- LOCKS_DIR: string;
1344
- /** Force bypass audit log */
1345
- FORCE_BYPASSES: string;
1346
- /** Test baseline file for ratchet pattern (WU-1430) */
1347
- TEST_BASELINE: string;
1348
- /** Templates directory (WU-1430) */
1349
- TEMPLATES_DIR: string;
1350
- /** Spawn prompt templates (WU-1430) */
1351
- SPAWN_PROMPT_DIR: string;
1352
- /** Template manifest file (WU-1430) */
1353
- TEMPLATE_MANIFEST: string;
1354
- /** Skills directory for agent skills (WU-1430) */
1355
- SKILLS_DIR: string;
1356
- /** Agents directory for agent definitions (WU-1430) */
1357
- AGENTS_DIR: string;
1358
- /** Methodology log for spawn telemetry (WU-1430) */
1359
- METHODOLOGY_LOG: string;
1360
- /** Prompt metrics cache (WU-1430) */
1361
- PROMPT_METRICS: string;
1362
- /** Prompt lint results (WU-1430) */
1363
- PROMPT_LINT: string;
1364
- /** Recovery markers directory (WU-1430) */
1365
- RECOVERY_DIR: string;
1366
- /** Checkpoints directory (WU-1430) */
1367
- CHECKPOINTS_DIR: string;
1368
- /** WU-1471: Hook counters directory for auto-checkpoint interval tracking */
1369
- HOOK_COUNTERS_DIR: string;
1370
- /** Cache directory under user home (WU-1430) */
1371
- HOME_CACHE: string;
1372
- /**
1373
- * WU-1174: Runtime lock directory for merge/cleanup locks
1374
- *
1375
- * These locks are transient and should NOT be created in the main checkout
1376
- * because wu:done runs from main. Using os.tmpdir() ensures:
1377
- * 1. Locks don't pollute the git working tree
1378
- * 2. Locks work across processes on the same machine
1379
- * 3. No "Working tree is not clean" errors if process crashes
1380
- *
1381
- * Note: Lane locks still use LOCKS_DIR (.lumenflow/locks) because they need
1382
- * to persist across sessions and be visible to other agents.
1383
- */
1384
- LOCK_DIR: string;
1385
- };
1386
- /**
1387
- * File extensions
1388
- *
1389
- * Centralized file extension strings to avoid magic strings.
1390
- */
1391
- export declare const FILE_EXTENSIONS: {
1392
- /** Newline-delimited JSON format */
1393
- NDJSON: string;
1394
- /** Markdown format */
1395
- MARKDOWN: string;
1396
- /** YAML format */
1397
- YAML: string;
1398
- /** Log format */
1399
- LOG: string;
1400
- /** Stamp files (completion markers) */
1401
- STAMP: string;
1402
- };
1403
- /**
1404
- * String formatting constants
1405
- *
1406
- * Centralized string literals for consistent formatting across scripts.
1407
- * Eliminates hardcoded '\n', ' ', etc. throughout the codebase.
1408
- */
1409
- export declare const STRING_LITERALS: {
1410
- /** Newline character */
1411
- NEWLINE: string;
1412
- /** Double newline (paragraph separator) */
1413
- DOUBLE_NEWLINE: string;
1414
- /** Space character */
1415
- SPACE: string;
1416
- /** Empty string */
1417
- EMPTY: string;
1418
- /** Tab character */
1419
- TAB: string;
1420
- /** Comma separator */
1421
- COMMA: string;
1422
- /** Colon separator */
1423
- COLON: string;
1424
- /** Dash/hyphen */
1425
- DASH: string;
1426
- /** Forward slash */
1427
- SLASH: string;
1428
- };
1429
- /**
1430
- * Path-related constants
1431
- *
1432
- * WU-1062: Centralized path literals for lumenflow-home and spec-branch operations.
1433
- */
1434
- export declare const PATH_LITERALS: {
1435
- /** Tilde prefix for home directory expansion (e.g., ~/path) */
1436
- TILDE_PREFIX: string;
1437
- /** Tilde character for home directory */
1438
- TILDE: string;
1439
- /** Plan file suffix for WU plans */
1440
- PLAN_FILE_SUFFIX: string;
1441
- /** Trailing slash regex pattern */
1442
- TRAILING_SLASH_REGEX: RegExp;
1443
- /** .lumenflow path prefix for internal path detection (WU-1430) */
1444
- LUMENFLOW_PREFIX: string;
1445
- /** Current directory prefix for repo-internal paths (WU-1430) */
1446
- CURRENT_DIR_PREFIX: string;
1447
- };
1448
- /**
1449
- * Slice lengths for path operations
1450
- *
1451
- * WU-1062: Magic numbers extracted for path manipulation.
1452
- */
1453
- export declare const PATH_SLICE_LENGTHS: {
1454
- /** Length of '~/' prefix for tilde expansion */
1455
- TILDE_PREFIX_LENGTH: number;
1456
- /** Length of '/' for leading slash removal */
1457
- LEADING_SLASH_LENGTH: number;
1458
- };
1459
- /**
1460
- * Convert lane name to kebab-case using change-case library
1461
- *
1462
- * Provides null-safe wrapper around paramCase for lane naming.
1463
- * Handles sub-lanes with colon separator and special characters.
1464
- *
1465
- * @param {string|null|undefined} lane - Lane name (e.g., 'Operations: Tooling')
1466
- * @returns {string} Kebab-case lane (e.g., 'operations-tooling')
1467
- *
1468
- * @example
1469
- * toKebab('Operations: Tooling') // 'operations-tooling'
1470
- * toKebab('Core Systems') // 'core-systems'
1471
- * toKebab('Intelligence') // 'intelligence'
1472
- * toKebab(null) // ''
1473
- * toKebab(undefined) // ''
1474
- */
1475
- export declare function toKebab(lane: any): string;
1476
- /**
1477
- * Generate worktree path from lane and WU ID
1478
- *
1479
- * @param {string} lane - Lane name
1480
- * @param {string} id - WU ID
1481
- * @returns {string} Worktree path (e.g., 'worktrees/operations-tooling-wu-123')
1482
- */
1483
- export declare function getWorktreePath(lane: any, id: any): string;
1484
- /**
1485
- * Generate lane branch name from lane and WU ID
1486
- *
1487
- * @param {string} lane - Lane name
1488
- * @param {string} id - WU ID
1489
- * @returns {string} Branch name (e.g., 'lane/operations-tooling/wu-123')
1490
- */
1491
- export declare function getLaneBranch(lane: any, id: any): string;
1492
- /**
1493
- * File tool constants (WU-1403)
1494
- *
1495
- * Centralized strings for file:read, file:write, file:edit tools.
1496
- * Prevents duplicate string literals and hardcoded magic values.
1497
- */
1498
- export declare const FILE_TOOLS: {
1499
- /** Tool name prefixes */
1500
- NAMES: {
1501
- READ: string;
1502
- WRITE: string;
1503
- EDIT: string;
1504
- DELETE: string;
1505
- };
1506
- /** Tool domain */
1507
- DOMAIN: string;
1508
- /** Permission levels */
1509
- PERMISSIONS: {
1510
- READ: string;
1511
- WRITE: string;
1512
- };
1513
- /** Worktree instruction templates (WU-1403: provides reusable instruction strings) */
1514
- WORKTREE_INSTRUCTIONS: {
1515
- CLAIM_COMMAND: string;
1516
- CD_COMMAND: string;
1517
- DOC_REFERENCE: string;
1518
- };
1519
- };
1520
- /**
1521
- * PHI (Protected Health Information) error codes (WU-1404)
1522
- *
1523
- * Error codes for PHI detection in file tools.
1524
- * Used by file:write and file:edit to block PHI leakage.
1525
- *
1526
- * WU-1068: PHI scanning is healthcare-specific functionality.
1527
- * Enable via PHI_CONFIG.ENABLED flag or .lumenflow.config.yaml phi.enabled: true
1528
- */
1529
- export declare const PHI_ERRORS: {
1530
- /** PHI detected in content - write blocked */
1531
- PHI_DETECTED: string;
1532
- /** PHI override requested - audit logged */
1533
- PHI_OVERRIDE_ALLOWED: string;
1534
- };
1535
- /**
1536
- * PHI scanning configuration (WU-1068)
1537
- *
1538
- * Controls whether PHI (Protected Health Information) scanning is enabled.
1539
- * This is healthcare-specific functionality (NHS numbers, UK postcodes)
1540
- * that should only be enabled for healthcare projects.
1541
- *
1542
- * Projects can enable via:
1543
- * 1. Setting PHI_CONFIG.ENABLED = true in code
1544
- * 2. Setting LUMENFLOW_PHI_ENABLED=1 environment variable
1545
- * 3. Adding phi.enabled: true to .lumenflow.config.yaml
1546
- */
1547
- export declare const PHI_CONFIG: {
1548
- /**
1549
- * Whether PHI scanning is enabled
1550
- * Default: false - projects must explicitly opt-in
1551
- */
1552
- ENABLED: boolean;
1553
- /**
1554
- * Whether to block on PHI detection (true) or just warn (false)
1555
- */
1556
- BLOCKING: boolean;
1557
- };
1558
- /**
1559
- * Readiness summary UI constants (WU-1620)
1560
- *
1561
- * Constants for the readiness summary box displayed after wu:create and wu:edit.
1562
- * Provides visual feedback on whether WU is ready for wu:claim.
1563
- *
1564
- * @see tools/wu-create.ts - displayReadinessSummary()
1565
- * @see tools/wu-edit.ts - displayReadinessSummary()
1566
- */
1567
- export declare const READINESS_UI: {
1568
- /** Box width (inner content area) */
1569
- BOX_WIDTH: number;
1570
- /** Box drawing characters */
1571
- BOX: {
1572
- TOP_LEFT: string;
1573
- TOP_RIGHT: string;
1574
- BOTTOM_LEFT: string;
1575
- BOTTOM_RIGHT: string;
1576
- HORIZONTAL: string;
1577
- VERTICAL: string;
1578
- };
1579
- /** Status messages */
1580
- MESSAGES: {
1581
- READY_YES: string;
1582
- READY_NO: string;
1583
- MISSING_HEADER: string;
1584
- BULLET: string;
1585
- };
1586
- /** Error truncation length */
1587
- ERROR_MAX_LENGTH: number;
1588
- ERROR_TRUNCATE_LENGTH: number;
1589
- TRUNCATION_SUFFIX: string;
1590
- /** Padding calculations (relative to BOX_WIDTH) */
1591
- PADDING: {
1592
- READY_YES: number;
1593
- READY_NO: number;
1594
- MISSING_HEADER: number;
1595
- ERROR_BULLET: number;
1596
- };
1597
- };
1598
- /**
1599
- * Get project root directory from a module URL
1600
- *
1601
- * WU-923: Centralized path resolution to eliminate '../..' magic strings
1602
- *
1603
- * @param {string} moduleUrl - import.meta.url of the calling module
1604
- * @returns {string} Absolute path to project root
1605
- *
1606
- * @example
1607
- * import { getProjectRoot } from './lib/wu-constants.js';
1608
- * const projectRoot = getProjectRoot(import.meta.url);
1609
- */
1610
- export declare function getProjectRoot(moduleUrl: any): string;
1611
- /**
1612
- * Options for discovering safety tests
1613
- */
1614
- export interface DiscoverSafetyTestsOptions {
1615
- /** Project root directory */
1616
- projectRoot?: string;
1617
- }
1618
- /**
1619
- * Discover safety-critical test files
1620
- *
1621
- * WU-2242: Scans for test files matching safety-critical patterns.
1622
- * Uses glob to find all matching files.
1623
- *
1624
- * @param {DiscoverSafetyTestsOptions} options - Discovery options
1625
- * @returns {Promise<string[]>} List of discovered test file paths
1626
- */
1627
- export declare function discoverSafetyTests(options?: DiscoverSafetyTestsOptions): Promise<any[]>;
1628
- /**
1629
- * Validate that required safety-critical tests exist
1630
- *
1631
- * WU-2242: Checks that each pattern category has at least one matching test file.
1632
- * Returns a validation result with missing patterns and found files.
1633
- *
1634
- * @param {DiscoverSafetyTestsOptions} options - Validation options
1635
- * @returns {Promise<{valid: boolean, missingTests: string[], foundTests: string[], error?: string}>}
1636
- */
1637
- export declare function validateSafetyTestsExist(options?: DiscoverSafetyTestsOptions): Promise<{
1638
- valid: boolean;
1639
- missingTests: any[];
1640
- foundTests: any[];
1641
- error: string;
1642
- }>;
1643
- /**
1644
- * Context validation constants (WU-1090)
1645
- *
1646
- * Constants for the context-aware state machine for WU lifecycle commands.
1647
- * Supports unified context model, declarative command requirements,
1648
- * smart validation, and recovery paths.
1649
- */
1650
- export declare const CONTEXT_VALIDATION: {
1651
- /** Location types for WU operations */
1652
- readonly LOCATION_TYPES: {
1653
- /** Main checkout (not a worktree) */
1654
- readonly MAIN: "main";
1655
- /** Inside a worktree */
1656
- readonly WORKTREE: "worktree";
1657
- /** Detached HEAD state */
1658
- readonly DETACHED: "detached";
1659
- /** Unknown location (not a git repo or error) */
1660
- readonly UNKNOWN: "unknown";
1661
- };
1662
- /** Validation error codes */
1663
- readonly ERROR_CODES: {
1664
- /** Command run from wrong location type */
1665
- readonly WRONG_LOCATION: "WRONG_LOCATION";
1666
- /** Target WU does not exist */
1667
- readonly WU_NOT_FOUND: "WU_NOT_FOUND";
1668
- /** WU with this ID already exists */
1669
- readonly WU_ALREADY_EXISTS: "WU_ALREADY_EXISTS";
1670
- /** WU in unexpected status for command */
1671
- readonly WRONG_WU_STATUS: "WRONG_WU_STATUS";
1672
- /** Lane already has WU in progress */
1673
- readonly LANE_OCCUPIED: "LANE_OCCUPIED";
1674
- /** Worktree already exists for WU */
1675
- readonly WORKTREE_EXISTS: "WORKTREE_EXISTS";
1676
- /** Expected worktree not found */
1677
- readonly WORKTREE_MISSING: "WORKTREE_MISSING";
1678
- /** Gates haven't run or failed */
1679
- readonly GATES_NOT_PASSED: "GATES_NOT_PASSED";
1680
- /** Uncommitted changes exist */
1681
- readonly DIRTY_GIT: "DIRTY_GIT";
1682
- /** Cannot reach origin remote */
1683
- readonly REMOTE_UNAVAILABLE: "REMOTE_UNAVAILABLE";
1684
- /** YAML and state store disagree */
1685
- readonly INCONSISTENT_STATE: "INCONSISTENT_STATE";
1686
- };
1687
- /** Recovery action types */
1688
- readonly RECOVERY_ACTIONS: {
1689
- /** Reconcile state and continue working (preserves work) */
1690
- readonly RESUME: "resume";
1691
- /** Discard worktree, reset WU to ready */
1692
- readonly RESET: "reset";
1693
- /** Remove all artifacts completely (requires --force) */
1694
- readonly NUKE: "nuke";
1695
- /** Remove leftover worktree (for done WUs) */
1696
- readonly CLEANUP: "cleanup";
1697
- };
1698
- /** Recovery issue codes */
1699
- readonly RECOVERY_ISSUES: {
1700
- /** Worktree exists but WU status is "ready" */
1701
- readonly PARTIAL_CLAIM: "PARTIAL_CLAIM";
1702
- /** WU is "in_progress" but worktree does not exist */
1703
- readonly ORPHAN_CLAIM: "ORPHAN_CLAIM";
1704
- /** YAML status differs from state store */
1705
- readonly INCONSISTENT_STATE: "INCONSISTENT_STATE";
1706
- /** Branch exists but worktree does not */
1707
- readonly ORPHAN_BRANCH: "ORPHAN_BRANCH";
1708
- /** Lock file from different WU */
1709
- readonly STALE_LOCK: "STALE_LOCK";
1710
- /** WU is done but worktree was not cleaned up */
1711
- readonly LEFTOVER_WORKTREE: "LEFTOVER_WORKTREE";
1712
- };
1713
- /** Predicate severity levels */
1714
- readonly SEVERITY: {
1715
- /** Blocks command execution */
1716
- readonly ERROR: "error";
1717
- /** Shows warning but allows execution */
1718
- readonly WARNING: "warning";
1719
- };
1720
- /** Performance thresholds */
1721
- readonly THRESHOLDS: {
1722
- /** Max context computation time (ms) - acceptance criterion */
1723
- readonly CONTEXT_COMPUTATION_MS: 100;
1724
- /** Max stale lock age (hours) */
1725
- readonly STALE_LOCK_HOURS: 24;
1726
- };
1727
- /** Feature flag keys for .lumenflow.config.yaml */
1728
- readonly FEATURE_FLAGS: {
1729
- /** Enable context-aware validation */
1730
- readonly CONTEXT_VALIDATION: "context_validation";
1731
- /** Validation behavior: 'off' | 'warn' | 'error' */
1732
- readonly VALIDATION_MODE: "validation_mode";
1733
- /** Show next steps after successful commands */
1734
- readonly SHOW_NEXT_STEPS: "show_next_steps";
1735
- /** Enable wu:recover command */
1736
- readonly RECOVERY_COMMAND: "recovery_command";
1737
- };
1738
- /** Validation modes */
1739
- readonly VALIDATION_MODES: {
1740
- /** No validation (legacy behavior) */
1741
- readonly OFF: "off";
1742
- /** Show warnings but proceed */
1743
- readonly WARN: "warn";
1744
- /** Block on validation failures */
1745
- readonly ERROR: "error";
1746
- };
1747
- /** Command names for the registry */
1748
- readonly COMMANDS: {
1749
- readonly WU_CREATE: "wu:create";
1750
- readonly WU_CLAIM: "wu:claim";
1751
- readonly WU_PREP: "wu:prep";
1752
- readonly WU_DONE: "wu:done";
1753
- readonly WU_BLOCK: "wu:block";
1754
- readonly WU_UNBLOCK: "wu:unblock";
1755
- readonly WU_STATUS: "wu:status";
1756
- readonly WU_RECOVER: "wu:recover";
1757
- readonly GATES: "gates";
1758
- };
1759
- };
1760
- /**
1761
- * Git hook error messages (WU-1357)
1762
- *
1763
- * Educational, structured messages for git hook blocks.
1764
- * Follows the "message bag" pattern: TITLE, WHY, ACTIONS, HELP, BYPASS.
1765
- *
1766
- * Design principles:
1767
- * - Explain WHY before showing WHAT to do
1768
- * - Provide multiple paths forward (not just one command)
1769
- * - Put emergency bypass LAST with clear warnings
1770
- * - Include help resources for learning
1771
- *
1772
- * @see .husky/hooks/pre-commit.mjs - Primary consumer
1773
- */
1774
- export declare const HOOK_MESSAGES: {
1775
- /**
1776
- * Main branch protection block message components
1777
- */
1778
- readonly MAIN_BRANCH_BLOCK: {
1779
- /** Box drawing for visual structure */
1780
- readonly BOX: {
1781
- readonly TOP: "══════════════════════════════════════════════════════════════";
1782
- readonly DIVIDER: "──────────────────────────────────────────────────────────────";
1783
- };
1784
- /** Title shown at the top */
1785
- readonly TITLE: (branch: string) => string;
1786
- /** Educational explanation of WHY the block exists */
1787
- readonly WHY: {
1788
- readonly HEADER: "WHY THIS HAPPENS";
1789
- readonly LINES: readonly ["LumenFlow protects main from direct commits to ensure:", " • All work is tracked in Work Units (WUs)", " • Changes can be reviewed and coordinated", " • Parallel work across lanes stays isolated"];
1790
- };
1791
- /** Action paths - multiple ways forward */
1792
- readonly ACTIONS: {
1793
- readonly HEADER: "WHAT TO DO";
1794
- readonly HAVE_WU: {
1795
- readonly HEADER: "1. If you have a Work Unit to implement:";
1796
- readonly COMMANDS: readonly ["pnpm wu:claim --id WU-XXXX --lane \"<Lane>\"", "cd worktrees/<lane>-wu-xxxx"];
1797
- readonly NOTE: "Then make your commits there";
1798
- };
1799
- readonly NEED_WU: {
1800
- readonly HEADER: "2. If you need to create a new Work Unit:";
1801
- readonly COMMANDS: readonly ["pnpm wu:create --lane \"<Lane>\" --title \"Your task\""];
1802
- readonly NOTE: "This generates a WU ID, then claim it as above";
1803
- };
1804
- readonly LIST_LANES: {
1805
- readonly HEADER: "3. Not sure what lane to use?";
1806
- readonly COMMANDS: readonly ["pnpm wu:list-lanes"];
1807
- };
1808
- };
1809
- /** Help resources */
1810
- readonly HELP: {
1811
- readonly HEADER: "NEED HELP?";
1812
- readonly RESOURCES: readonly ["• Read: LUMENFLOW.md (workflow overview)", "• Read: docs/04-operations/_frameworks/lumenflow/agent/onboarding/", "• Run: pnpm wu:help"];
1813
- };
1814
- /** Emergency bypass (shown last, with warnings) */
1815
- readonly BYPASS: {
1816
- readonly HEADER: "EMERGENCY BYPASS (logged, use sparingly)";
1817
- readonly WARNING: "Bypasses are audit-logged. Only use for genuine emergencies.";
1818
- readonly COMMAND: "LUMENFLOW_FORCE=1 LUMENFLOW_FORCE_REASON=\"<reason>\" git commit ...";
1819
- };
1820
- };
1821
- /**
1822
- * Worktree discipline block message components
1823
- */
1824
- readonly WORKTREE_BLOCK: {
1825
- readonly TITLE: "LANE BRANCH WORK SHOULD BE IN WORKTREE";
1826
- readonly WHY: "Worktrees provide isolation for parallel work. Working on a lane branch from the main checkout bypasses this isolation.";
1827
- };
1828
- };
1829
- /** Type for location types */
1830
- export type LocationType = (typeof CONTEXT_VALIDATION.LOCATION_TYPES)[keyof typeof CONTEXT_VALIDATION.LOCATION_TYPES];
1831
- /** Type for validation error codes */
1832
- export type ValidationErrorCode = (typeof CONTEXT_VALIDATION.ERROR_CODES)[keyof typeof CONTEXT_VALIDATION.ERROR_CODES];
1833
- /** Type for recovery action types */
1834
- export type RecoveryActionType = (typeof CONTEXT_VALIDATION.RECOVERY_ACTIONS)[keyof typeof CONTEXT_VALIDATION.RECOVERY_ACTIONS];
1835
- /** Type for recovery issue codes */
1836
- export type RecoveryIssueCode = (typeof CONTEXT_VALIDATION.RECOVERY_ISSUES)[keyof typeof CONTEXT_VALIDATION.RECOVERY_ISSUES];
1837
- /** Type for predicate severity levels */
1838
- export type PredicateSeverity = (typeof CONTEXT_VALIDATION.SEVERITY)[keyof typeof CONTEXT_VALIDATION.SEVERITY];
1839
- /** Type for validation modes */
1840
- export type ValidationMode = (typeof CONTEXT_VALIDATION.VALIDATION_MODES)[keyof typeof CONTEXT_VALIDATION.VALIDATION_MODES];
19
+ * @see {@link packages/@lumenflow/cli/src/lib/wu-schema.ts} - PLACEHOLDER_SENTINEL
20
+ */
21
+ export { WU_STATUS, PROTECTED_WU_STATUSES, PROGRESSABLE_WU_STATUSES, WU_STATUS_GROUPS, CLAIMED_MODES, INCIDENT_SEVERITY, WU_TYPES, WU_EXPOSURE, WU_EXPOSURE_VALUES, TEST_TYPES, } from './wu-statuses.js';
22
+ export { BRANCHES, REMOTES, GIT_REFS, GIT, REAL_GIT, GIT_FLAGS, GIT_COMMANDS, GIT_COMMAND_STRINGS, } from './wu-git-constants.js';
23
+ export { FILE_SYSTEM, CONFIG_FILES, DIRECTORIES, BUILD_ARTIFACT_GLOBS, BUILD_ARTIFACT_IGNORES, SCRIPT_PATHS, FILE_EXTENSIONS, PATH_PATTERNS, PATH_LITERALS, PATH_SLICE_LENGTHS, LOCK_DIR_NAME, LUMENFLOW_PATHS, FILE_TOOLS, PHI_ERRORS, PHI_CONFIG, type NodeFsError, } from './wu-paths-constants.js';
24
+ export { CLI_FLAGS, PKG_FLAGS, ESLINT_FLAGS, SCRIPTS, GATE_NAMES, GATE_COMMANDS, CLI_MODES, PRETTIER_FLAGS, PKG_MANAGER, PKG_COMMANDS, PACKAGES, STDIO, STDIO_MODES, EXIT_CODES, STREAM_ERRORS, ESLINT_COMMANDS, ESLINT_DEFAULTS, CACHE_STRATEGIES, PRETTIER_ARGS, AUDIT_ARGS, SHELL_COMMANDS, TOOLS, GITLEAKS_ARGS, KNOWN_PACKAGES, ERROR_CODES, MICRO_WORKTREE_OPERATIONS, TELEMETRY_STEPS, SKIP_GATES_REASONS, CHECKPOINT_MESSAGES, PROCESS_DETECTION, } from './wu-cli-constants.js';
25
+ export { BACKLOG_SECTIONS, BACKLOG_BULLET_FORMAT, STATUS_SECTIONS, LOG_PREFIX, EMOJI, BOX, UI, DISPLAY_LIMITS, YAML_OPTIONS, ARGV_INDICES, STRING_LITERALS, READINESS_UI, } from './wu-ui-constants.js';
26
+ export { PATTERNS, COMMIT_FORMATS, CONSISTENCY_TYPES, CONSISTENCY_MESSAGES, WORKTREE_WARNINGS, CLEANUP_GUARD, SESSION, VALIDATION, THRESHOLDS, DEFAULTS, WU_DEFAULTS, SAFETY_CRITICAL_TEST_GLOBS, LANE_PATH_PATTERNS, toKebab, getWorktreePath, getLaneBranch, getProjectRoot, discoverSafetyTests, validateSafetyTestsExist, type DiscoverSafetyTestsOptions, } from './wu-domain-constants.js';
27
+ export { CONTEXT_VALIDATION, HOOK_MESSAGES, LUMENFLOW_CLIENT_IDS, CLAUDE_HOOKS, getHookCommand, type LumenflowClientId, type LocationType, type ValidationErrorCode, type RecoveryActionType, type RecoveryIssueCode, type PredicateSeverity, type ValidationMode, } from './wu-context-constants.js';
1841
28
  //# sourceMappingURL=wu-constants.d.ts.map