@lumenflow/cli 3.4.0 → 3.5.1

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 (143) hide show
  1. package/dist/backlog-prune.js.map +1 -1
  2. package/dist/commands/integrate.js +154 -16
  3. package/dist/commands/integrate.js.map +1 -1
  4. package/dist/config-set.js +8 -4
  5. package/dist/config-set.js.map +1 -1
  6. package/dist/docs-sync.js +3 -3
  7. package/dist/docs-sync.js.map +1 -1
  8. package/dist/file-delete.js +4 -3
  9. package/dist/file-delete.js.map +1 -1
  10. package/dist/file-edit.js +5 -4
  11. package/dist/file-edit.js.map +1 -1
  12. package/dist/file-read.js +3 -2
  13. package/dist/file-read.js.map +1 -1
  14. package/dist/file-write.js +3 -2
  15. package/dist/file-write.js.map +1 -1
  16. package/dist/gate-registry.js +13 -1
  17. package/dist/gate-registry.js.map +1 -1
  18. package/dist/gates.js +33 -1
  19. package/dist/gates.js.map +1 -1
  20. package/dist/guard-locked.js +4 -3
  21. package/dist/guard-locked.js.map +1 -1
  22. package/dist/hooks/config-resolver.js +43 -0
  23. package/dist/hooks/config-resolver.js.map +1 -0
  24. package/dist/hooks/dirty-guard.js +57 -0
  25. package/dist/hooks/dirty-guard.js.map +1 -0
  26. package/dist/hooks/enforcement-checks.js +17 -181
  27. package/dist/hooks/enforcement-checks.js.map +1 -1
  28. package/dist/hooks/git-status-parser.js +68 -0
  29. package/dist/hooks/git-status-parser.js.map +1 -0
  30. package/dist/hooks/index.js +6 -0
  31. package/dist/hooks/index.js.map +1 -1
  32. package/dist/hooks/path-utils.js +55 -0
  33. package/dist/hooks/path-utils.js.map +1 -0
  34. package/dist/init-scaffolding.js +3 -2
  35. package/dist/init-scaffolding.js.map +1 -1
  36. package/dist/init-templates.js +12 -0
  37. package/dist/init-templates.js.map +1 -1
  38. package/dist/init.js +8 -8
  39. package/dist/init.js.map +1 -1
  40. package/dist/initiative-add-wu.js +3 -2
  41. package/dist/initiative-add-wu.js.map +1 -1
  42. package/dist/initiative-create.js +5 -5
  43. package/dist/initiative-create.js.map +1 -1
  44. package/dist/initiative-edit.js +5 -5
  45. package/dist/initiative-edit.js.map +1 -1
  46. package/dist/lane-edit.js +4 -3
  47. package/dist/lane-edit.js.map +1 -1
  48. package/dist/mem-checkpoint.js +9 -1
  49. package/dist/mem-checkpoint.js.map +1 -1
  50. package/dist/mem-cleanup.js +8 -4
  51. package/dist/mem-cleanup.js.map +1 -1
  52. package/dist/mem-context.js +17 -19
  53. package/dist/mem-context.js.map +1 -1
  54. package/dist/mem-inbox.js +11 -8
  55. package/dist/mem-inbox.js.map +1 -1
  56. package/dist/mem-init.js.map +1 -1
  57. package/dist/mem-ready.js +6 -4
  58. package/dist/mem-ready.js.map +1 -1
  59. package/dist/mem-recover.js +5 -2
  60. package/dist/mem-recover.js.map +1 -1
  61. package/dist/mem-start.js.map +1 -1
  62. package/dist/mem-summarize.js +5 -1
  63. package/dist/mem-summarize.js.map +1 -1
  64. package/dist/mem-triage.js.map +1 -1
  65. package/dist/onboard.js +10 -10
  66. package/dist/onboard.js.map +1 -1
  67. package/dist/orchestrate-init-status.js +8 -1
  68. package/dist/orchestrate-init-status.js.map +1 -1
  69. package/dist/orchestrate-monitor.js +2 -2
  70. package/dist/orchestrate-monitor.js.map +1 -1
  71. package/dist/pack-author.js +11 -11
  72. package/dist/pack-author.js.map +1 -1
  73. package/dist/pack-install.js +3 -3
  74. package/dist/pack-install.js.map +1 -1
  75. package/dist/pack-publish.js +2 -2
  76. package/dist/pack-publish.js.map +1 -1
  77. package/dist/pack-scaffold.js +4 -4
  78. package/dist/pack-scaffold.js.map +1 -1
  79. package/dist/public-manifest.js +16 -0
  80. package/dist/public-manifest.js.map +1 -1
  81. package/dist/release.js +48 -7
  82. package/dist/release.js.map +1 -1
  83. package/dist/state-bootstrap.js +2 -2
  84. package/dist/state-bootstrap.js.map +1 -1
  85. package/dist/state-doctor.js +2 -1
  86. package/dist/state-doctor.js.map +1 -1
  87. package/dist/sync-templates.js +5 -4
  88. package/dist/sync-templates.js.map +1 -1
  89. package/dist/validate-agent-sync.js +4 -4
  90. package/dist/validate-agent-sync.js.map +1 -1
  91. package/dist/validator-registry.js +2 -1
  92. package/dist/validator-registry.js.map +1 -1
  93. package/dist/wu-block.js +9 -5
  94. package/dist/wu-block.js.map +1 -1
  95. package/dist/wu-brief-sizing.js +56 -0
  96. package/dist/wu-brief-sizing.js.map +1 -0
  97. package/dist/wu-brief.js +2 -1
  98. package/dist/wu-brief.js.map +1 -1
  99. package/dist/wu-claim-branch.js.map +1 -1
  100. package/dist/wu-claim-output.js +2 -2
  101. package/dist/wu-claim-output.js.map +1 -1
  102. package/dist/wu-claim-resume-handler.js +7 -5
  103. package/dist/wu-claim-resume-handler.js.map +1 -1
  104. package/dist/wu-claim-validation.js +3 -3
  105. package/dist/wu-claim-validation.js.map +1 -1
  106. package/dist/wu-claim-worktree.js +2 -2
  107. package/dist/wu-claim-worktree.js.map +1 -1
  108. package/dist/wu-claim.js +3 -2
  109. package/dist/wu-claim.js.map +1 -1
  110. package/dist/wu-cleanup.js.map +1 -1
  111. package/dist/wu-create-content.js +3 -1
  112. package/dist/wu-create-content.js.map +1 -1
  113. package/dist/wu-create-sizing-advisory.js +32 -0
  114. package/dist/wu-create-sizing-advisory.js.map +1 -0
  115. package/dist/wu-create-validation.js.map +1 -1
  116. package/dist/wu-create.js +119 -6
  117. package/dist/wu-create.js.map +1 -1
  118. package/dist/wu-delete.js +9 -9
  119. package/dist/wu-delete.js.map +1 -1
  120. package/dist/wu-done.js +85 -18
  121. package/dist/wu-done.js.map +1 -1
  122. package/dist/wu-edit-operations.js +28 -16
  123. package/dist/wu-edit-operations.js.map +1 -1
  124. package/dist/wu-edit.js +9 -6
  125. package/dist/wu-edit.js.map +1 -1
  126. package/dist/wu-prep.js +123 -2
  127. package/dist/wu-prep.js.map +1 -1
  128. package/dist/wu-proto.js +5 -5
  129. package/dist/wu-proto.js.map +1 -1
  130. package/dist/wu-recover.js.map +1 -1
  131. package/dist/wu-release.js.map +1 -1
  132. package/dist/wu-repair.js +24 -6
  133. package/dist/wu-repair.js.map +1 -1
  134. package/dist/wu-sizing-validation.js +117 -0
  135. package/dist/wu-sizing-validation.js.map +1 -0
  136. package/dist/wu-spawn-prompt-builders.js.map +1 -1
  137. package/dist/wu-spawn-strategy-resolver.js +68 -0
  138. package/dist/wu-spawn-strategy-resolver.js.map +1 -1
  139. package/dist/wu-spawn.js +1 -1
  140. package/dist/wu-spawn.js.map +1 -1
  141. package/dist/wu-unblock.js +8 -5
  142. package/dist/wu-unblock.js.map +1 -1
  143. package/package.json +8 -7
@@ -1 +1 @@
1
- {"version":3,"file":"file-read.js","sourceRoot":"","sources":["../src/file-read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-read.js","sourceRoot":"","sources":["../src/file-read.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@
16
16
  */
17
17
  import { writeFile, mkdir, stat } from 'node:fs/promises';
18
18
  import { resolve, dirname } from 'node:path';
19
+ import { createError, ErrorCodes } from '@lumenflow/core';
19
20
  /**
20
21
  * Default configuration for file write operations
21
22
  */
@@ -90,7 +91,7 @@ export async function writeFileWithAudit(args) {
90
91
  try {
91
92
  // Validate path
92
93
  if (!filePath) {
93
- throw new Error('Path is required');
94
+ throw createError(ErrorCodes.INVALID_ARGUMENT, 'Path is required');
94
95
  }
95
96
  const parentDir = dirname(filePath);
96
97
  let directoriesCreated = false;
@@ -102,7 +103,7 @@ export async function writeFileWithAudit(args) {
102
103
  directoriesCreated = true;
103
104
  }
104
105
  else {
105
- throw new Error(`ENOENT: parent directory does not exist: ${parentDir}`);
106
+ throw createError(ErrorCodes.PARENT_DIR_NOT_FOUND, `ENOENT: parent directory does not exist: ${parentDir}`);
106
107
  }
107
108
  }
108
109
  // Write file
@@ -1 +1 @@
1
- {"version":3,"file":"file-write.js","sourceRoot":"","sources":["../src/file-write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-write.js","sourceRoot":"","sources":["../src/file-write.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,17 @@
1
1
  // Copyright (c) 2026 Hellmai Ltd
2
2
  // SPDX-License-Identifier: AGPL-3.0-only
3
+ /**
4
+ * Gate Registry
5
+ *
6
+ * WU-1550: Declarative gate registration pattern.
7
+ *
8
+ * Instead of hardcoding gate arrays inside executeGates(), gates are registered
9
+ * via GateRegistry. New gates can be added by calling registry.register()
10
+ * without modifying the core execution code.
11
+ *
12
+ * @module gate-registry
13
+ */
14
+ import { createError, ErrorCodes } from '@lumenflow/core';
3
15
  /**
4
16
  * Registry for quality gates.
5
17
  *
@@ -18,7 +30,7 @@ export class GateRegistry {
18
30
  */
19
31
  register(gate) {
20
32
  if (this.nameIndex.has(gate.name)) {
21
- throw new Error(`Gate "${gate.name}" is already registered`);
33
+ throw createError(ErrorCodes.TOOL_ALREADY_REGISTERED, `Gate "${gate.name}" is already registered`);
22
34
  }
23
35
  this.nameIndex.set(gate.name, this.gates.length);
24
36
  this.gates.push(gate);
@@ -1 +1 @@
1
- {"version":3,"file":"gate-registry.js","sourceRoot":"","sources":["../src/gate-registry.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAgDzC;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IACN,KAAK,GAAqB,EAAE,CAAC;IAC7B,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEvD;;;;;OAKG;IACH,QAAQ,CAAC,IAAoB;QAC3B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,yBAAyB,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,KAAuB;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,IAAY;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"gate-registry.js","sourceRoot":"","sources":["../src/gate-registry.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA+B1D;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IACN,KAAK,GAAqB,EAAE,CAAC;IAC7B,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEvD;;;;;OAKG;IACH,QAAQ,CAAC,IAAoB;QAC3B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,WAAW,CACf,UAAU,CAAC,uBAAuB,EAClC,SAAS,IAAI,CAAC,IAAI,yBAAyB,CAC5C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,KAAuB;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,IAAY;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF"}
package/dist/gates.js CHANGED
@@ -47,7 +47,7 @@
47
47
  * node tools/gates.ts --coverage-mode=block # Coverage gate in block mode
48
48
  */
49
49
  import { writeSync } from 'node:fs';
50
- import { emitGateEvent, getCurrentWU, getCurrentLane } from '@lumenflow/core/telemetry';
50
+ import { emitGateEvent, getCurrentWU, getCurrentLane, syncNdjsonTelemetryToCloud, } from '@lumenflow/core/telemetry';
51
51
  import { die } from '@lumenflow/core/error-handler';
52
52
  import { shouldUseGatesAgentMode, updateGatesLatestSymlink, } from '@lumenflow/core/gates-agent-mode';
53
53
  // WU-2252: Import invariants runner for first-check validation
@@ -177,6 +177,15 @@ export async function runGates(options = {}) {
177
177
  return false;
178
178
  }
179
179
  }
180
+ export async function syncGatesTelemetryToCloud(input = {}) {
181
+ return syncNdjsonTelemetryToCloud({
182
+ workspaceRoot: input.cwd ?? process.cwd(),
183
+ fetchFn: input.fetchFn,
184
+ logger: input.logger,
185
+ now: input.now,
186
+ environment: input.environment,
187
+ });
188
+ }
180
189
  // ── Main orchestrator ──────────────────────────────────────────────────
181
190
  // eslint-disable-next-line sonarjs/cognitive-complexity -- Pre-existing: main() orchestrates multi-step gate workflow
182
191
  async function executeGates(opts) {
@@ -215,6 +224,27 @@ async function executeGates(opts) {
215
224
  const packageJsonScripts = loadPackageJsonScripts(cwd);
216
225
  // WU-1520: Track gate results for summary
217
226
  const gateResults = [];
227
+ const telemetrySyncLogger = {
228
+ warn: (message) => {
229
+ if (useAgentMode) {
230
+ writeSync(agentLog.logFd, `${message}\n`);
231
+ return;
232
+ }
233
+ console.warn(message);
234
+ },
235
+ };
236
+ async function flushTelemetryToCloud() {
237
+ try {
238
+ await syncGatesTelemetryToCloud({
239
+ cwd,
240
+ logger: telemetrySyncLogger,
241
+ });
242
+ }
243
+ catch (error) {
244
+ const message = error instanceof Error ? error.message : String(error);
245
+ telemetrySyncLogger.warn(`[gates] cloud telemetry sync failed unexpectedly: ${message}`);
246
+ }
247
+ }
218
248
  if (useAgentMode) {
219
249
  console.log(`\uD83E\uDDFE gates (agent mode): output -> ${agentLog.logPath} (use --verbose for streaming)\n`);
220
250
  }
@@ -473,6 +503,7 @@ async function executeGates(opts) {
473
503
  console.error(`Last log lines:\n${tail}\n`);
474
504
  }
475
505
  }
506
+ await flushTelemetryToCloud();
476
507
  die(`${gate.name} failed`);
477
508
  }
478
509
  // WU-1520: Track passed gate
@@ -496,6 +527,7 @@ async function executeGates(opts) {
496
527
  else {
497
528
  console.log(`${chalk.green('\u2705 All gates passed')} (agent mode). Log: ${agentLog.logPath}\n`);
498
529
  }
530
+ await flushTelemetryToCloud();
499
531
  return true;
500
532
  }
501
533
  // WU-1537: Wrap executeGates in a standard main() for runCLI consistency
package/dist/gates.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gates.js","sourceRoot":"","sources":["../src/gates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gates.js","sourceRoot":"","sources":["../src/gates.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ import path from 'node:path';
21
21
  import { parseYAML } from '@lumenflow/core/wu-yaml';
22
22
  import { WU_PATHS, createWuPaths } from '@lumenflow/core/wu-paths';
23
23
  import { PATTERNS, FILE_SYSTEM } from '@lumenflow/core/wu-constants';
24
+ import { createError, ErrorCodes } from '@lumenflow/core/error-handler';
24
25
  import { runCLI } from './cli-entry-point.js';
25
26
  const LOG_PREFIX = '[guard-locked]';
26
27
  function resolveCompleteGuidePathHint() {
@@ -45,7 +46,7 @@ function resolveCompleteGuidePathHint() {
45
46
  */
46
47
  export function isWULocked(wuPath) {
47
48
  if (!existsSync(wuPath)) {
48
- throw new Error(`WU file not found: ${wuPath}`);
49
+ throw createError(ErrorCodes.FILE_NOT_FOUND, `WU file not found: ${wuPath}`);
49
50
  }
50
51
  const content = readFileSync(wuPath, { encoding: FILE_SYSTEM.UTF8 });
51
52
  const doc = parseYAML(content);
@@ -68,14 +69,14 @@ export function isWULocked(wuPath) {
68
69
  */
69
70
  export function assertWUNotLocked(wuPath) {
70
71
  if (!existsSync(wuPath)) {
71
- throw new Error(`WU file not found: ${wuPath}`);
72
+ throw createError(ErrorCodes.FILE_NOT_FOUND, `WU file not found: ${wuPath}`);
72
73
  }
73
74
  const content = readFileSync(wuPath, { encoding: FILE_SYSTEM.UTF8 });
74
75
  const doc = parseYAML(content);
75
76
  if (doc.locked === true) {
76
77
  const wuId = doc.id || path.basename(wuPath, '.yaml');
77
78
  const completeGuidePath = resolveCompleteGuidePathHint();
78
- throw new Error(`${LOG_PREFIX} WU ${wuId} is locked.
79
+ throw createError(ErrorCodes.VALIDATION_ERROR, `${LOG_PREFIX} WU ${wuId} is locked.
79
80
 
80
81
  Locked WUs cannot be modified. This prevents accidental changes to completed work.
81
82
 
@@ -1 +1 @@
1
- {"version":3,"file":"guard-locked.js","sourceRoot":"","sources":["../src/guard-locked.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guard-locked.js","sourceRoot":"","sources":["../src/guard-locked.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ /**
4
+ * @file config-resolver.ts
5
+ * Configuration-driven path resolution for enforcement hooks.
6
+ *
7
+ * Single responsibility: resolve worktree directories and allowlist prefixes
8
+ * from LumenFlow configuration.
9
+ * Split from enforcement-checks.ts (WU-2127).
10
+ */
11
+ import { createWuPaths } from '@lumenflow/core/wu-paths';
12
+ import { DIRECTORIES } from '@lumenflow/core/wu-constants';
13
+ import { normalizeDirectorySegment, ensureRepoRelativePrefix } from './path-utils.js';
14
+ /**
15
+ * Paths that are always safe to write on main checkout.
16
+ * These are scaffold/state paths that are written by lifecycle commands
17
+ * and must not require a worktree.
18
+ */
19
+ const MAIN_WRITE_STATIC_ALLOWLIST_PREFIXES = ['.lumenflow/', '.claude/', 'plan/'];
20
+ const DEFAULT_WORKTREES_DIR_SEGMENT = DIRECTORIES.WORKTREES.replace(/\/+$/g, '');
21
+ const DEFAULT_WU_ALLOWLIST_PREFIX = `${DIRECTORIES.WU_DIR.replace(/\/+$/g, '')}/`;
22
+ export function resolveWorktreesDirSegment(mainRepoPath) {
23
+ try {
24
+ const configuredPath = createWuPaths({ projectRoot: mainRepoPath }).WORKTREES_DIR();
25
+ return normalizeDirectorySegment(configuredPath, DEFAULT_WORKTREES_DIR_SEGMENT);
26
+ }
27
+ catch {
28
+ return DEFAULT_WORKTREES_DIR_SEGMENT;
29
+ }
30
+ }
31
+ export function resolveWuAllowlistPrefix(mainRepoPath) {
32
+ try {
33
+ const configuredPath = createWuPaths({ projectRoot: mainRepoPath }).WU_DIR();
34
+ return ensureRepoRelativePrefix(configuredPath);
35
+ }
36
+ catch {
37
+ return DEFAULT_WU_ALLOWLIST_PREFIX;
38
+ }
39
+ }
40
+ export function resolveMainWriteAllowlistPrefixes(mainRepoPath) {
41
+ return [resolveWuAllowlistPrefix(mainRepoPath), ...MAIN_WRITE_STATIC_ALLOWLIST_PREFIXES];
42
+ }
43
+ //# sourceMappingURL=config-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-resolver.js","sourceRoot":"","sources":["../../src/hooks/config-resolver.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAEtF;;;;GAIG;AACH,MAAM,oCAAoC,GAAG,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AAE3F,MAAM,6BAA6B,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACjF,MAAM,2BAA2B,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC;AAElF,MAAM,UAAU,0BAA0B,CAAC,YAAoB;IAC7D,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,aAAa,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;QACpF,OAAO,yBAAyB,CAAC,cAAc,EAAE,6BAA6B,CAAC,CAAC;IAClF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,6BAA6B,CAAC;IACvC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,YAAoB;IAC3D,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,aAAa,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7E,OAAO,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,2BAA2B,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,YAAoB;IACpE,OAAO,CAAC,wBAAwB,CAAC,YAAY,CAAC,EAAE,GAAG,oCAAoC,CAAC,CAAC;AAC3F,CAAC"}
@@ -0,0 +1,57 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ /**
4
+ * @file dirty-guard.ts
5
+ * Dirty-main mutation guard for wu:prep and wu:done.
6
+ *
7
+ * Single responsibility: evaluate whether a command should be blocked because
8
+ * the main checkout has non-allowlisted dirty files while a worktree WU
9
+ * is active.
10
+ * Split from enforcement-checks.ts (WU-2127).
11
+ */
12
+ import { resolveMainWriteAllowlistPrefixes } from './config-resolver.js';
13
+ import { getNonAllowlistedDirtyPaths, formatMainDirtyMutationGuardMessage, } from './git-status-parser.js';
14
+ const DIRTY_MAIN_GUARD_REASONS = {
15
+ BRANCH_PR_MODE: 'branch-pr-mode',
16
+ NO_WORKTREE_CONTEXT: 'no-worktree-context',
17
+ CLEAN_OR_ALLOWLISTED: 'clean-or-allowlisted',
18
+ BLOCKED_NON_ALLOWLISTED_DIRTY_MAIN: 'blocked-non-allowlisted-dirty-main',
19
+ };
20
+ export function evaluateMainDirtyMutationGuard(options) {
21
+ const { commandName, mainCheckout, mainStatus, hasActiveWorktreeContext, isBranchPrMode } = options;
22
+ const allowlistPrefixes = resolveMainWriteAllowlistPrefixes(mainCheckout);
23
+ if (isBranchPrMode) {
24
+ return {
25
+ blocked: false,
26
+ blockedPaths: [],
27
+ reason: DIRTY_MAIN_GUARD_REASONS.BRANCH_PR_MODE,
28
+ };
29
+ }
30
+ if (!hasActiveWorktreeContext) {
31
+ return {
32
+ blocked: false,
33
+ blockedPaths: [],
34
+ reason: DIRTY_MAIN_GUARD_REASONS.NO_WORKTREE_CONTEXT,
35
+ };
36
+ }
37
+ const blockedPaths = getNonAllowlistedDirtyPaths(mainStatus, allowlistPrefixes);
38
+ if (blockedPaths.length === 0) {
39
+ return {
40
+ blocked: false,
41
+ blockedPaths: [],
42
+ reason: DIRTY_MAIN_GUARD_REASONS.CLEAN_OR_ALLOWLISTED,
43
+ };
44
+ }
45
+ return {
46
+ blocked: true,
47
+ blockedPaths,
48
+ reason: DIRTY_MAIN_GUARD_REASONS.BLOCKED_NON_ALLOWLISTED_DIRTY_MAIN,
49
+ message: formatMainDirtyMutationGuardMessage({
50
+ commandName,
51
+ mainCheckout,
52
+ blockedPaths,
53
+ allowlistPrefixes,
54
+ }),
55
+ };
56
+ }
57
+ //# sourceMappingURL=dirty-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dirty-guard.js","sourceRoot":"","sources":["../../src/hooks/dirty-guard.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;;;GAQG;AAEH,OAAO,EAAE,iCAAiC,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EACL,2BAA2B,EAC3B,mCAAmC,GACpC,MAAM,wBAAwB,CAAC;AAEhC,MAAM,wBAAwB,GAAG;IAC/B,cAAc,EAAE,gBAAgB;IAChC,mBAAmB,EAAE,qBAAqB;IAC1C,oBAAoB,EAAE,sBAAsB;IAC5C,kCAAkC,EAAE,oCAAoC;CAChE,CAAC;AAiBX,MAAM,UAAU,8BAA8B,CAC5C,OAAsC;IAEtC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,wBAAwB,EAAE,cAAc,EAAE,GACvF,OAAO,CAAC;IACV,MAAM,iBAAiB,GAAG,iCAAiC,CAAC,YAAY,CAAC,CAAC;IAE1E,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,wBAAwB,CAAC,cAAc;SAChD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,wBAAwB,CAAC,mBAAmB;SACrD,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,2BAA2B,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAChF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,wBAAwB,CAAC,oBAAoB;SACtD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,YAAY;QACZ,MAAM,EAAE,wBAAwB,CAAC,kCAAkC;QACnE,OAAO,EAAE,mCAAmC,CAAC;YAC3C,WAAW;YACX,YAAY;YACZ,YAAY;YACZ,iBAAiB;SAClB,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -4,190 +4,25 @@
4
4
  * @file enforcement-checks.ts
5
5
  * Runtime enforcement checks for LumenFlow workflow compliance (WU-1367)
6
6
  * WU-1501: Fail-closed default on main - block writes when no active claim context
7
+ * WU-2127: Split into focused sub-modules. This file re-exports the public API
8
+ * and contains the top-level worktree/WU enforcement checks that compose the
9
+ * sub-modules.
7
10
  *
8
- * These functions can be used by hooks to validate operations.
9
- * Graceful degradation: if LumenFlow is NOT configured, operations are allowed.
10
- * Fail-closed: if LumenFlow IS configured, writes on main require an active
11
- * claim context (worktree or branch-pr) or an allowlisted path.
11
+ * Sub-modules:
12
+ * - path-utils.ts: Path normalization and allowlist utilities
13
+ * - config-resolver.ts: Configuration-driven path resolution
14
+ * - git-status-parser.ts: Parse and filter dirty paths from git status output
15
+ * - dirty-guard.ts: Dirty-main mutation guard for wu:prep/wu:done
12
16
  */
13
- // Note: fs operations use runtime-provided paths from LumenFlow configuration
14
17
  import * as fs from 'node:fs';
15
18
  import * as path from 'node:path';
16
- import { createWuPaths } from '@lumenflow/core/wu-paths';
17
- import { DIRECTORIES } from '@lumenflow/core/wu-constants';
18
- /**
19
- * WU-1501: Paths that are always safe to write on main checkout.
20
- * These are scaffold/state paths that are written by lifecycle commands
21
- * and must not require a worktree.
22
- */
23
- const MAIN_WRITE_STATIC_ALLOWLIST_PREFIXES = ['.lumenflow/', '.claude/', 'plan/'];
24
- const DEFAULT_WORKTREES_DIR_SEGMENT = DIRECTORIES.WORKTREES.replace(/\/+$/g, '');
25
- const DEFAULT_WU_ALLOWLIST_PREFIX = `${DIRECTORIES.WU_DIR.replace(/\/+$/g, '')}/`;
26
- const GIT_STATUS_PREFIX_LENGTH = 3;
27
- const GIT_STATUS_RENAME_SEPARATOR = ' -> ';
28
- const GIT_STATUS_QUOTE = '"';
29
- const PATH_PREFIX_CURRENT_DIR = './';
30
- const PATH_SEPARATOR_WINDOWS = '\\';
31
- const PATH_SEPARATOR_POSIX = '/';
32
- const MAX_BLOCKED_PATHS_IN_MESSAGE = 10;
33
- function normalizeDirectorySegment(value, fallback) {
34
- const normalized = value.replace(/\\/g, '/').replace(/^\/+|\/+$/g, '');
35
- return normalized.length > 0 ? normalized : fallback;
36
- }
37
- function ensureRepoRelativePrefix(value) {
38
- const normalized = value.replace(/\\/g, '/').replace(/^\/+|\/+$/g, '');
39
- return normalized.length > 0 ? `${normalized}/` : '';
40
- }
41
- function resolveWorktreesDirSegment(mainRepoPath) {
42
- try {
43
- const configuredPath = createWuPaths({ projectRoot: mainRepoPath }).WORKTREES_DIR();
44
- return normalizeDirectorySegment(configuredPath, DEFAULT_WORKTREES_DIR_SEGMENT);
45
- }
46
- catch {
47
- return DEFAULT_WORKTREES_DIR_SEGMENT;
48
- }
49
- }
50
- function resolveWuAllowlistPrefix(mainRepoPath) {
51
- try {
52
- const configuredPath = createWuPaths({ projectRoot: mainRepoPath }).WU_DIR();
53
- return ensureRepoRelativePrefix(configuredPath);
54
- }
55
- catch {
56
- return DEFAULT_WU_ALLOWLIST_PREFIX;
57
- }
58
- }
59
- function resolveMainWriteAllowlistPrefixes(mainRepoPath) {
60
- return [resolveWuAllowlistPrefix(mainRepoPath), ...MAIN_WRITE_STATIC_ALLOWLIST_PREFIXES];
61
- }
62
- const DIRTY_MAIN_GUARD_REASONS = {
63
- BRANCH_PR_MODE: 'branch-pr-mode',
64
- NO_WORKTREE_CONTEXT: 'no-worktree-context',
65
- CLEAN_OR_ALLOWLISTED: 'clean-or-allowlisted',
66
- BLOCKED_NON_ALLOWLISTED_DIRTY_MAIN: 'blocked-non-allowlisted-dirty-main',
67
- };
68
- function stripWrappingQuotes(value) {
69
- if (value.startsWith(GIT_STATUS_QUOTE) && value.endsWith(GIT_STATUS_QUOTE) && value.length >= 2) {
70
- return value.slice(1, -1);
71
- }
72
- return value;
73
- }
74
- function normalizeRepoRelativePath(value) {
75
- const withoutQuotes = stripWrappingQuotes(value.trim());
76
- const normalizedSeparators = withoutQuotes
77
- .split(PATH_SEPARATOR_WINDOWS)
78
- .join(PATH_SEPARATOR_POSIX);
79
- if (normalizedSeparators.startsWith(PATH_PREFIX_CURRENT_DIR)) {
80
- return normalizedSeparators.slice(PATH_PREFIX_CURRENT_DIR.length);
81
- }
82
- return normalizedSeparators;
83
- }
84
- function parsePathFromStatusLine(line) {
85
- if (line.length < GIT_STATUS_PREFIX_LENGTH) {
86
- return null;
87
- }
88
- const pathField = line.slice(GIT_STATUS_PREFIX_LENGTH).trim();
89
- if (pathField.length === 0) {
90
- return null;
91
- }
92
- // For renames, git status emits "old -> new". We care about the destination path.
93
- const renameSegments = pathField.split(GIT_STATUS_RENAME_SEPARATOR);
94
- const destinationPath = renameSegments[renameSegments.length - 1];
95
- const normalizedPath = normalizeRepoRelativePath(destinationPath);
96
- return normalizedPath.length > 0 ? normalizedPath : null;
97
- }
98
- export function parseDirtyPathsFromStatus(mainStatus) {
99
- const uniquePaths = new Set();
100
- for (const line of mainStatus.split('\n')) {
101
- const trimmed = line.trimEnd();
102
- if (trimmed.length === 0) {
103
- continue;
104
- }
105
- const parsed = parsePathFromStatusLine(trimmed);
106
- if (parsed) {
107
- uniquePaths.add(parsed);
108
- }
109
- }
110
- return Array.from(uniquePaths);
111
- }
112
- export function getNonAllowlistedDirtyPaths(mainStatus, allowlistPrefixes) {
113
- return parseDirtyPathsFromStatus(mainStatus).filter((relativePath) => !allowlistPrefixes.some((prefix) => relativePath.startsWith(prefix)));
114
- }
115
- function formatBlockedPaths(paths) {
116
- const displayed = paths.slice(0, MAX_BLOCKED_PATHS_IN_MESSAGE);
117
- const lines = displayed.map((dirtyPath) => ` - ${dirtyPath}`);
118
- const remainder = paths.length - displayed.length;
119
- if (remainder > 0) {
120
- lines.push(` - ... and ${remainder} more`);
121
- }
122
- return lines.join('\n');
123
- }
124
- export function formatMainDirtyMutationGuardMessage(options) {
125
- const { commandName, mainCheckout, blockedPaths, allowlistPrefixes } = options;
126
- const allowlistLines = allowlistPrefixes.map((prefix) => ` - ${prefix}`).join('\n');
127
- return (`${commandName} blocked: main checkout has non-allowlisted dirty files while a worktree WU is active.\n\n` +
128
- `Dirty paths:\n${formatBlockedPaths(blockedPaths)}\n\n` +
129
- `Allowed dirty prefixes on main:\n${allowlistLines}\n\n` +
130
- `How to resolve:\n` +
131
- ` 1. Move edits into the active worktree (recommended)\n` +
132
- ` 2. Revert or commit unintended main edits\n` +
133
- ` 3. If writes came from MCP/tools, rerun them in the worktree path\n` +
134
- ` 4. Retry ${commandName}\n\n` +
135
- `Main checkout: ${mainCheckout}`);
136
- }
137
- export function evaluateMainDirtyMutationGuard(options) {
138
- const { commandName, mainCheckout, mainStatus, hasActiveWorktreeContext, isBranchPrMode } = options;
139
- const allowlistPrefixes = resolveMainWriteAllowlistPrefixes(mainCheckout);
140
- if (isBranchPrMode) {
141
- return {
142
- blocked: false,
143
- blockedPaths: [],
144
- reason: DIRTY_MAIN_GUARD_REASONS.BRANCH_PR_MODE,
145
- };
146
- }
147
- if (!hasActiveWorktreeContext) {
148
- return {
149
- blocked: false,
150
- blockedPaths: [],
151
- reason: DIRTY_MAIN_GUARD_REASONS.NO_WORKTREE_CONTEXT,
152
- };
153
- }
154
- const blockedPaths = getNonAllowlistedDirtyPaths(mainStatus, allowlistPrefixes);
155
- if (blockedPaths.length === 0) {
156
- return {
157
- blocked: false,
158
- blockedPaths: [],
159
- reason: DIRTY_MAIN_GUARD_REASONS.CLEAN_OR_ALLOWLISTED,
160
- };
161
- }
162
- return {
163
- blocked: true,
164
- blockedPaths,
165
- reason: DIRTY_MAIN_GUARD_REASONS.BLOCKED_NON_ALLOWLISTED_DIRTY_MAIN,
166
- message: formatMainDirtyMutationGuardMessage({
167
- commandName,
168
- mainCheckout,
169
- blockedPaths,
170
- allowlistPrefixes,
171
- }),
172
- };
173
- }
174
- /**
175
- * WU-1501: Check if a resolved path matches the main-write allowlist.
176
- *
177
- * @param resolvedPath - Absolute resolved path to check
178
- * @param mainRepoPath - Absolute path to the main repo root
179
- * @returns True if the path is in the allowlist
180
- */
181
- function isAllowlistedPath(resolvedPath, mainRepoPath) {
182
- // Get the path relative to the repo root
183
- const repoPrefix = mainRepoPath + path.sep;
184
- if (!resolvedPath.startsWith(repoPrefix)) {
185
- return false;
186
- }
187
- const relativePath = resolvedPath.slice(repoPrefix.length);
188
- const allowlistPrefixes = resolveMainWriteAllowlistPrefixes(mainRepoPath);
189
- return allowlistPrefixes.some((prefix) => relativePath.startsWith(prefix));
190
- }
19
+ import { resolveWorktreesDirSegment, resolveMainWriteAllowlistPrefixes, } from './config-resolver.js';
20
+ import { isAllowlistedPath } from './path-utils.js';
21
+ // Re-export sub-module public APIs for backward compatibility
22
+ export { normalizeDirectorySegment, ensureRepoRelativePrefix, isAllowlistedPath, } from './path-utils.js';
23
+ export { resolveWorktreesDirSegment, resolveWuAllowlistPrefix, resolveMainWriteAllowlistPrefixes, } from './config-resolver.js';
24
+ export { parseDirtyPathsFromStatus, getNonAllowlistedDirtyPaths, formatBlockedPaths, formatMainDirtyMutationGuardMessage, } from './git-status-parser.js';
25
+ export { evaluateMainDirtyMutationGuard } from './dirty-guard.js';
191
26
  /**
192
27
  * WU-1501: Check if there is an active branch-pr claimed WU in the state file.
193
28
  *
@@ -299,7 +134,8 @@ export async function checkWorktreeEnforcement(input, projectDir) {
299
134
  }
300
135
  // WU-1501: No active worktrees - fail-closed on main
301
136
  // Check allowlist first (always permitted regardless of claim state)
302
- if (isAllowlistedPath(resolvedPath, mainRepoPath)) {
137
+ const allowlistPrefixes = resolveMainWriteAllowlistPrefixes(mainRepoPath);
138
+ if (isAllowlistedPath(resolvedPath, mainRepoPath, allowlistPrefixes)) {
303
139
  return {
304
140
  allowed: true,
305
141
  reason: 'allowlist: path is in safe scaffold/state area',