@lumenflow/cli 2.18.2 → 2.19.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 (104) hide show
  1. package/README.md +42 -41
  2. package/dist/delegation-list.js +140 -0
  3. package/dist/delegation-list.js.map +1 -0
  4. package/dist/doctor.js +35 -99
  5. package/dist/doctor.js.map +1 -1
  6. package/dist/gates-plan-resolvers.js +150 -0
  7. package/dist/gates-plan-resolvers.js.map +1 -0
  8. package/dist/gates-runners.js +533 -0
  9. package/dist/gates-runners.js.map +1 -0
  10. package/dist/gates-types.js +3 -0
  11. package/dist/gates-types.js.map +1 -1
  12. package/dist/gates-utils.js +316 -0
  13. package/dist/gates-utils.js.map +1 -0
  14. package/dist/gates.js +44 -1016
  15. package/dist/gates.js.map +1 -1
  16. package/dist/hooks/enforcement-generator.js +16 -880
  17. package/dist/hooks/enforcement-generator.js.map +1 -1
  18. package/dist/hooks/enforcement-sync.js +1 -4
  19. package/dist/hooks/enforcement-sync.js.map +1 -1
  20. package/dist/hooks/generators/auto-checkpoint.js +123 -0
  21. package/dist/hooks/generators/auto-checkpoint.js.map +1 -0
  22. package/dist/hooks/generators/enforce-worktree.js +188 -0
  23. package/dist/hooks/generators/enforce-worktree.js.map +1 -0
  24. package/dist/hooks/generators/index.js +16 -0
  25. package/dist/hooks/generators/index.js.map +1 -0
  26. package/dist/hooks/generators/pre-compact-checkpoint.js +134 -0
  27. package/dist/hooks/generators/pre-compact-checkpoint.js.map +1 -0
  28. package/dist/hooks/generators/require-wu.js +115 -0
  29. package/dist/hooks/generators/require-wu.js.map +1 -0
  30. package/dist/hooks/generators/session-start-recovery.js +101 -0
  31. package/dist/hooks/generators/session-start-recovery.js.map +1 -0
  32. package/dist/hooks/generators/signal-utils.js +52 -0
  33. package/dist/hooks/generators/signal-utils.js.map +1 -0
  34. package/dist/hooks/generators/warn-incomplete.js +65 -0
  35. package/dist/hooks/generators/warn-incomplete.js.map +1 -0
  36. package/dist/init-detection.js +228 -0
  37. package/dist/init-detection.js.map +1 -0
  38. package/dist/init-scaffolding.js +146 -0
  39. package/dist/init-scaffolding.js.map +1 -0
  40. package/dist/init-templates.js +1928 -0
  41. package/dist/init-templates.js.map +1 -0
  42. package/dist/init.js +136 -2425
  43. package/dist/init.js.map +1 -1
  44. package/dist/initiative-edit.js +42 -11
  45. package/dist/initiative-edit.js.map +1 -1
  46. package/dist/initiative-remove-wu.js +0 -0
  47. package/dist/initiative-status.js +29 -2
  48. package/dist/initiative-status.js.map +1 -1
  49. package/dist/mem-context.js +22 -9
  50. package/dist/mem-context.js.map +1 -1
  51. package/dist/orchestrate-init-status.js +32 -1
  52. package/dist/orchestrate-init-status.js.map +1 -1
  53. package/dist/orchestrate-monitor.js +38 -38
  54. package/dist/orchestrate-monitor.js.map +1 -1
  55. package/dist/public-manifest.js +12 -5
  56. package/dist/public-manifest.js.map +1 -1
  57. package/dist/shared-validators.js +1 -0
  58. package/dist/shared-validators.js.map +1 -1
  59. package/dist/spawn-list.js +0 -0
  60. package/dist/wu-claim-branch.js +121 -0
  61. package/dist/wu-claim-branch.js.map +1 -0
  62. package/dist/wu-claim-output.js +83 -0
  63. package/dist/wu-claim-output.js.map +1 -0
  64. package/dist/wu-claim-resume-handler.js +85 -0
  65. package/dist/wu-claim-resume-handler.js.map +1 -0
  66. package/dist/wu-claim-state.js +572 -0
  67. package/dist/wu-claim-state.js.map +1 -0
  68. package/dist/wu-claim-validation.js +439 -0
  69. package/dist/wu-claim-validation.js.map +1 -0
  70. package/dist/wu-claim-worktree.js +221 -0
  71. package/dist/wu-claim-worktree.js.map +1 -0
  72. package/dist/wu-claim.js +54 -1402
  73. package/dist/wu-claim.js.map +1 -1
  74. package/dist/wu-create-content.js +254 -0
  75. package/dist/wu-create-content.js.map +1 -0
  76. package/dist/wu-create-readiness.js +57 -0
  77. package/dist/wu-create-readiness.js.map +1 -0
  78. package/dist/wu-create-validation.js +149 -0
  79. package/dist/wu-create-validation.js.map +1 -0
  80. package/dist/wu-create.js +39 -441
  81. package/dist/wu-create.js.map +1 -1
  82. package/dist/wu-done.js +144 -249
  83. package/dist/wu-done.js.map +1 -1
  84. package/dist/wu-edit-operations.js +432 -0
  85. package/dist/wu-edit-operations.js.map +1 -0
  86. package/dist/wu-edit-validators.js +280 -0
  87. package/dist/wu-edit-validators.js.map +1 -0
  88. package/dist/wu-edit.js +27 -713
  89. package/dist/wu-edit.js.map +1 -1
  90. package/dist/wu-prep.js +32 -2
  91. package/dist/wu-prep.js.map +1 -1
  92. package/dist/wu-repair.js +1 -1
  93. package/dist/wu-repair.js.map +1 -1
  94. package/dist/wu-spawn-prompt-builders.js +1123 -0
  95. package/dist/wu-spawn-prompt-builders.js.map +1 -0
  96. package/dist/wu-spawn-strategy-resolver.js +314 -0
  97. package/dist/wu-spawn-strategy-resolver.js.map +1 -0
  98. package/dist/wu-spawn.js +9 -1398
  99. package/dist/wu-spawn.js.map +1 -1
  100. package/package.json +10 -7
  101. package/templates/core/LUMENFLOW.md.template +29 -99
  102. package/templates/core/ai/onboarding/agent-invocation-guide.md.template +1 -1
  103. package/templates/core/ai/onboarding/quick-ref-commands.md.template +29 -4
  104. package/templates/vendors/claude/.claude/skills/orchestration/SKILL.md.template +8 -8
package/README.md CHANGED
@@ -78,51 +78,54 @@ This package provides CLI commands for the LumenFlow workflow framework, includi
78
78
 
79
79
  ### Memory & Session
80
80
 
81
- | Command | Description |
82
- | -------------------- | ------------------------------------------ |
83
- | `agent-issues-query` | Query GitHub issues for agent work |
84
- | `agent-log-issue` | Log issue during agent session |
85
- | `agent-session` | Start agent session |
86
- | `agent-session-end` | End agent session |
87
- | `mem-checkpoint` | Save progress checkpoint |
88
- | `mem-cleanup` | Clean up stale memory data |
89
- | `mem-context` | Get context for current lane/WU |
90
- | `mem-create` | Create memory node (bug discovery) |
91
- | `mem-delete` | Delete/archive a memory node |
92
- | `mem-export` | Export memory as markdown |
93
- | `mem-inbox` | Check coordination signals |
94
- | `mem-init` | Initialize memory for WU |
95
- | `mem-ready` | Check pending memory nodes |
96
- | `mem-recover` | Generate recovery context after compaction |
97
- | `mem-signal` | Broadcast coordination signal |
98
- | `mem-start` | Start a memory session |
99
- | `mem-summarize` | Summarize memory context |
100
- | `mem-triage` | Triage discovered bugs |
81
+ | Command | Description |
82
+ | ---------------- | ------------------------------------------ |
83
+ | `mem-checkpoint` | Save progress checkpoint |
84
+ | `mem-cleanup` | Clean up stale memory data |
85
+ | `mem-context` | Get context for current lane/WU |
86
+ | `mem-create` | Create memory node (bug discovery) |
87
+ | `mem-delete` | Delete/archive a memory node |
88
+ | `mem-export` | Export memory as markdown |
89
+ | `mem-inbox` | Check coordination signals |
90
+ | `mem-init` | Initialize memory for WU |
91
+ | `mem-ready` | Check pending memory nodes |
92
+ | `mem-recover` | Generate recovery context after compaction |
93
+ | `mem-signal` | Broadcast coordination signal |
94
+ | `mem-start` | Start a memory session |
95
+ | `mem-summarize` | Summarize memory context |
96
+ | `mem-triage` | Triage discovered bugs |
97
+ | `signal-cleanup` | Clean up stale signals |
101
98
 
102
99
  ### Initiative Orchestration
103
100
 
104
- | Command | Description |
105
- | ---------------------------- | -------------------------------- |
106
- | `initiative-add-wu` | Add WU to initiative |
107
- | `initiative-bulk-assign-wus` | Bulk assign WUs to initiative |
108
- | `initiative-create` | Create new initiative |
109
- | `initiative-edit` | Edit initiative fields |
110
- | `initiative-list` | List all initiatives |
111
- | `initiative-plan` | Link plan to initiative |
112
- | `initiative-status` | Show initiative status |
113
- | `orchestrate-init-status` | Compact initiative progress view |
114
- | `orchestrate-initiative` | Orchestrate initiative execution |
115
- | `orchestrate-monitor` | Monitor spawn/agent activity |
116
- | `spawn-list` | List active spawned agents |
101
+ | Command | Description |
102
+ | ---------------------------- | ----------------------------------------- |
103
+ | `agent-issues-query` | Query GitHub issues for agent work |
104
+ | `agent-log-issue` | Log issue during agent session |
105
+ | `agent-session` | Start agent session |
106
+ | `agent-session-end` | End agent session |
107
+ | `initiative-add-wu` | Add WU to initiative |
108
+ | `initiative-bulk-assign-wus` | Bulk assign WUs to initiative |
109
+ | `initiative-create` | Create new initiative |
110
+ | `initiative-edit` | Edit initiative fields and phase metadata |
111
+ | `initiative-list` | List all initiatives |
112
+ | `initiative-plan` | Link plan to initiative |
113
+ | `initiative-remove-wu` | Remove WU from initiative |
114
+ | `initiative-status` | Show initiative status |
115
+ | `orchestrate-init-status` | Compact initiative progress view |
116
+ | `orchestrate-initiative` | Orchestrate initiative execution |
117
+ | `orchestrate-monitor` | Monitor spawn/agent activity |
118
+ | `spawn-list` | List active spawned agents |
117
119
 
118
120
  ### Metrics & Analytics
119
121
 
120
- | Command | Description |
121
- | ------------------ | ---------------------------- |
122
- | `flow-bottlenecks` | Identify flow bottlenecks |
123
- | `flow-report` | Generate flow metrics report |
124
- | `metrics` | View workflow metrics |
125
- | `metrics-snapshot` | Capture metrics snapshot |
122
+ | Command | Description |
123
+ | ------------------- | ----------------------------- |
124
+ | `flow-bottlenecks` | Identify flow bottlenecks |
125
+ | `flow-report` | Generate flow metrics report |
126
+ | `lumenflow-metrics` | View workflow metrics (alias) |
127
+ | `metrics` | View workflow metrics |
128
+ | `metrics-snapshot` | Capture metrics snapshot |
126
129
 
127
130
  ### Lane Tooling
128
131
 
@@ -152,7 +155,6 @@ This package provides CLI commands for the LumenFlow workflow framework, includi
152
155
  | `lumenflow-doctor` | Diagnose LumenFlow configuration |
153
156
  | `lumenflow-init` | Initialize LumenFlow in a project (alias) |
154
157
  | `lumenflow-integrate` | Generate enforcement hooks for client |
155
- | `lumenflow-metrics` | View workflow metrics (alias) |
156
158
  | `lumenflow-release` | Run release workflow |
157
159
  | `lumenflow-sync-templates` | Sync templates to project |
158
160
  | `lumenflow-upgrade` | Upgrade LumenFlow packages |
@@ -160,7 +162,6 @@ This package provides CLI commands for the LumenFlow workflow framework, includi
160
162
  | `plan-edit` | Edit plan content |
161
163
  | `plan-link` | Link plan to WU or initiative |
162
164
  | `plan-promote` | Promote plan to WU |
163
- | `signal-cleanup` | Clean up stale signals |
164
165
  | `state-bootstrap` | Bootstrap state store |
165
166
  | `state-cleanup` | Clean up stale state data |
166
167
  | `state-doctor` | Diagnose state store issues |
@@ -0,0 +1,140 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Delegation List Command (WU-1950, WU-1674)
4
+ *
5
+ * Displays delegation trees for WUs or initiatives.
6
+ * WU-1604: Includes explicit delegation lineage records from wu:delegate.
7
+ * Shows parent-child relationships with status indicators.
8
+ *
9
+ * Usage:
10
+ * pnpm delegation:list --wu WU-XXX # Delegations for a specific WU
11
+ * pnpm delegation:list --initiative INIT-XXX # All delegations in an initiative
12
+ * pnpm delegation:list --json # JSON output
13
+ */
14
+ import { createWUParser, WU_OPTIONS } from '@lumenflow/core/arg-parser';
15
+ import { die } from '@lumenflow/core/error-handler';
16
+ import { PATTERNS, LUMENFLOW_PATHS } from '@lumenflow/core/wu-constants';
17
+ import { WU_PATHS } from '@lumenflow/core/wu-paths';
18
+ /** Local EMOJI constants for delegation-list output */
19
+ const EMOJI = {
20
+ WARNING: '⚠️',
21
+ ERROR: '❌',
22
+ };
23
+ /** Custom options for delegation-list command */
24
+ const DELEGATION_LIST_OPTIONS = {
25
+ initiative: {
26
+ name: 'initiative',
27
+ flags: '--initiative <initId>',
28
+ description: 'Initiative ID to show all delegations for (e.g., INIT-001)',
29
+ },
30
+ json: {
31
+ name: 'json',
32
+ flags: '--json',
33
+ description: 'Output as JSON',
34
+ default: false,
35
+ },
36
+ };
37
+ import { buildDelegationTree, formatDelegationTree, getDelegationsByWU, getDelegationsByInitiative, treeToJSON, STATUS_INDICATORS, } from '@lumenflow/core/delegation-tree';
38
+ import { DelegationStatus } from '@lumenflow/core/delegation-registry-schema';
39
+ import { runCLI } from './cli-entry-point.js';
40
+ const LOG_PREFIX = '[delegation:list]';
41
+ /** Default paths for delegation registry and WU files (WU-1301: uses config-based paths) */
42
+ const DEFAULT_PATHS = Object.freeze({
43
+ REGISTRY_DIR: LUMENFLOW_PATHS.STATE_DIR,
44
+ WU_DIR: WU_PATHS.WU_DIR(),
45
+ });
46
+ /** Initiative ID pattern */
47
+ const INIT_PATTERN = /^INIT-\d+$/;
48
+ /**
49
+ * Prints the legend for status indicators
50
+ */
51
+ function printLegend() {
52
+ console.log('\nLegend:');
53
+ console.log(` ${STATUS_INDICATORS[DelegationStatus.PENDING]} pending`);
54
+ console.log(` ${STATUS_INDICATORS[DelegationStatus.COMPLETED]} completed`);
55
+ console.log(` ${STATUS_INDICATORS[DelegationStatus.TIMEOUT]} timeout`);
56
+ console.log(` ${STATUS_INDICATORS[DelegationStatus.CRASHED]} crashed`);
57
+ }
58
+ /**
59
+ * Main entry point
60
+ */
61
+ async function main() {
62
+ const args = createWUParser({
63
+ name: 'delegation-list',
64
+ description: 'Display delegation trees for WUs or initiatives',
65
+ options: [WU_OPTIONS.wu, DELEGATION_LIST_OPTIONS.initiative, DELEGATION_LIST_OPTIONS.json],
66
+ required: [],
67
+ allowPositionalId: false,
68
+ });
69
+ const { wu, initiative, json } = args;
70
+ // Validate: exactly one of --wu or --initiative required
71
+ if (!wu && !initiative) {
72
+ die('Either --wu or --initiative is required.\n\nUsage:\n pnpm delegation:list --wu WU-XXX\n pnpm delegation:list --initiative INIT-XXX');
73
+ }
74
+ if (wu && initiative) {
75
+ die('Cannot specify both --wu and --initiative. Choose one.');
76
+ }
77
+ // Handle --wu
78
+ if (wu) {
79
+ const wuId = wu.toUpperCase();
80
+ if (!PATTERNS.WU_ID.test(wuId)) {
81
+ die(`Invalid WU ID format: ${wu}. Expected format: WU-XXX`);
82
+ }
83
+ const delegations = await getDelegationsByWU(wuId, DEFAULT_PATHS.REGISTRY_DIR);
84
+ if (json) {
85
+ const tree = buildDelegationTree(delegations, wuId);
86
+ console.log(JSON.stringify(treeToJSON(tree), null, 2));
87
+ return;
88
+ }
89
+ if (delegations.length === 0) {
90
+ console.log(`${LOG_PREFIX} ${EMOJI.WARNING} No delegations found for ${wuId}`);
91
+ console.log(`\n${wuId} (root)`);
92
+ console.log(' (no delegations)');
93
+ return;
94
+ }
95
+ console.log(`${LOG_PREFIX} Delegation tree for ${wuId}:\n`);
96
+ const tree = buildDelegationTree(delegations, wuId);
97
+ console.log(formatDelegationTree(tree));
98
+ printLegend();
99
+ console.log(`\nTotal: ${delegations.length} delegation(s)`);
100
+ return;
101
+ }
102
+ // Handle --initiative
103
+ if (initiative) {
104
+ const initId = initiative.toUpperCase();
105
+ if (!INIT_PATTERN.test(initId)) {
106
+ die(`Invalid initiative ID format: ${initiative}. Expected format: INIT-XXX`);
107
+ }
108
+ const delegations = await getDelegationsByInitiative(initId, DEFAULT_PATHS.REGISTRY_DIR, DEFAULT_PATHS.WU_DIR);
109
+ if (json) {
110
+ // For initiative, output flat list since there may be multiple root WUs
111
+ console.log(JSON.stringify(delegations, null, 2));
112
+ return;
113
+ }
114
+ if (delegations.length === 0) {
115
+ console.log(`${LOG_PREFIX} ${EMOJI.WARNING} No delegations found for ${initId}`);
116
+ return;
117
+ }
118
+ // Group delegations by parent WU and display trees
119
+ console.log(`${LOG_PREFIX} Delegations for ${initId}:\n`);
120
+ // Find unique root WUs (parents that are not targets of other delegations)
121
+ const typedDelegations = delegations;
122
+ const targetWuIds = new Set(typedDelegations.map((s) => s.targetWuId));
123
+ const rootWuIds = [...new Set(typedDelegations.map((s) => s.parentWuId))].filter((id) => !targetWuIds.has(id));
124
+ for (const rootWuId of rootWuIds) {
125
+ const tree = buildDelegationTree(delegations, rootWuId);
126
+ console.log(formatDelegationTree(tree));
127
+ console.log('');
128
+ }
129
+ printLegend();
130
+ console.log(`\nTotal: ${delegations.length} delegation(s) across ${rootWuIds.length} root WU(s)`);
131
+ }
132
+ }
133
+ // WU-1181: Use import.meta.main instead of process.argv[1] comparison
134
+ // The old pattern fails with pnpm symlinks because process.argv[1] is the symlink
135
+ // path but import.meta.url resolves to the real path - they never match
136
+ // WU-1537: Use import.meta.main + runCLI for consistent EPIPE and error handling
137
+ if (import.meta.main) {
138
+ void runCLI(main);
139
+ }
140
+ //# sourceMappingURL=delegation-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-list.js","sourceRoot":"","sources":["../src/delegation-list.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,uDAAuD;AACvD,MAAM,KAAK,GAAG;IACZ,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,iDAAiD;AACjD,MAAM,uBAAuB,GAAG;IAC9B,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,4DAA4D;KAC1E;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,KAAK;KACf;CACF,CAAC;AACF,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,UAAU,EACV,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAa9C,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAEvC,4FAA4F;AAC5F,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,YAAY,EAAE,eAAe,CAAC,SAAS;IACvC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AAEH,4BAA4B;AAC5B,MAAM,YAAY,GAAG,YAAY,CAAC;AAElC;;GAEG;AACH,SAAS,WAAW;IAClB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,cAAc,CAAC;QAC1B,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,iDAAiD;QAC9D,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,uBAAuB,CAAC,UAAU,EAAE,uBAAuB,CAAC,IAAI,CAAC;QAC1F,QAAQ,EAAE,EAAE;QACZ,iBAAiB,EAAE,KAAK;KACzB,CAAC,CAAC;IAEH,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEtC,yDAAyD;IACzD,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QACvB,GAAG,CACD,sIAAsI,CACvI,CAAC;IACJ,CAAC;IAED,IAAI,EAAE,IAAI,UAAU,EAAE,CAAC;QACrB,GAAG,CAAC,wDAAwD,CAAC,CAAC;IAChE,CAAC;IAED,cAAc;IACd,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,yBAAyB,EAAE,2BAA2B,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAE/E,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,OAAO,6BAA6B,IAAI,EAAE,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,wBAAwB,IAAI,KAAK,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,WAAW,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,CAAC,MAAM,gBAAgB,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,sBAAsB;IACtB,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,iCAAiC,UAAU,6BAA6B,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAClD,MAAM,EACN,aAAa,CAAC,YAAY,EAC1B,aAAa,CAAC,MAAM,CACrB,CAAC;QAEF,IAAI,IAAI,EAAE,CAAC;YACT,wEAAwE;YACxE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,OAAO,6BAA6B,MAAM,EAAE,CAAC,CAAC;YACjF,OAAO;QACT,CAAC;QAED,mDAAmD;QACnD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,oBAAoB,MAAM,KAAK,CAAC,CAAC;QAE1D,2EAA2E;QAC3E,MAAM,gBAAgB,GAAG,WAAgC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAC9E,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAC7B,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,WAAW,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,YAAY,WAAW,CAAC,MAAM,yBAAyB,SAAS,CAAC,MAAM,aAAa,CACrF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,kFAAkF;AAClF,wEAAwE;AACxE,iFAAiF;AACjF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"}
package/dist/doctor.js CHANGED
@@ -8,7 +8,7 @@
8
8
  import * as fs from 'node:fs';
9
9
  import * as path from 'node:path';
10
10
  import { execFileSync } from 'node:child_process';
11
- import { createWUParser } from '@lumenflow/core';
11
+ import { createWUParser, getResolvedPaths, detectOrphanWorktrees, detectMissingTrackedWorktrees, } from '@lumenflow/core';
12
12
  import { loadLaneDefinitions, detectLaneOverlaps } from './lane-health.js';
13
13
  import { runCLI } from './cli-entry-point.js';
14
14
  /**
@@ -88,17 +88,27 @@ function checkHusky(projectDir) {
88
88
  * Check if safe-git wrapper is present
89
89
  */
90
90
  function checkSafeGit(projectDir) {
91
- const safeGitPath = path.join(projectDir, 'scripts', 'safe-git');
91
+ // WU-1654: Read safe-git path from config instead of hardcoding
92
+ let safeGitPath;
93
+ try {
94
+ const resolved = getResolvedPaths({ projectRoot: projectDir });
95
+ safeGitPath = resolved.safeGitPath;
96
+ }
97
+ catch {
98
+ // Graceful fallback if config can't be loaded
99
+ safeGitPath = path.join(projectDir, 'scripts', 'safe-git');
100
+ }
101
+ const relativePath = path.relative(projectDir, safeGitPath);
92
102
  if (!fs.existsSync(safeGitPath)) {
93
103
  return {
94
104
  passed: false,
95
105
  message: 'Safe-git wrapper missing',
96
- details: 'The scripts/safe-git file should exist to block destructive git commands',
106
+ details: `The ${relativePath} file should exist to block destructive git commands`,
97
107
  };
98
108
  }
99
109
  return {
100
110
  passed: true,
101
- message: 'Safe-git wrapper present (scripts/safe-git)',
111
+ message: `Safe-git wrapper present (${relativePath})`,
102
112
  };
103
113
  }
104
114
  /**
@@ -351,44 +361,10 @@ async function checkManagedFilesDirty(projectDir) {
351
361
  };
352
362
  }
353
363
  }
354
- function parseWorktreePruneOutput(output) {
355
- // Parse summary line for orphan directories: "Orphan directories: N"
356
- const orphanSummaryMatch = output.match(/Orphan directories:\s*(\d+)/);
357
- const orphansFromSummary = orphanSummaryMatch ? parseInt(orphanSummaryMatch[1], 10) : 0;
358
- // Also count "orphan director" mentions (the detailed output)
359
- const orphanDetailMatches = output.match(/orphan director/gi) || [];
360
- const orphansFromDetail = orphanDetailMatches.length;
361
- // Use the higher count (summary is authoritative, but detail catches other mentions)
362
- const orphans = Math.max(orphansFromSummary, orphansFromDetail > 0 ? 1 : 0);
363
- // Parse specific worktree warnings from wu:prune output
364
- // These appear as "Stale worktree:", "Blocked worktree:", "Unclaimed worktree:"
365
- const staleCount = (output.match(/Stale worktree:/gi) || []).length;
366
- const blockedCount = (output.match(/Blocked worktree:/gi) || []).length;
367
- const unclaimedCount = (output.match(/Unclaimed worktree:/gi) || []).length;
368
- // Parse missing tracked worktrees: "Missing tracked worktree" header
369
- const missingMatch = output.match(/Missing tracked worktree/gi) || [];
370
- const missingCount = missingMatch.length > 0 ? 1 : 0; // At least one if header present
371
- // Also count specific missing path lines
372
- const missingPathMatches = output.match(/worktrees \(tracked by git but directory missing\)/gi);
373
- const missingFromDetail = missingPathMatches ? missingPathMatches.length : 0;
374
- // Parse summary warnings and errors
375
- const warningSummaryMatch = output.match(/Warnings:\s*(\d+)/);
376
- const warnings = warningSummaryMatch ? parseInt(warningSummaryMatch[1], 10) : 0;
377
- const errorSummaryMatch = output.match(/Errors:\s*(\d+)/);
378
- const errors = errorSummaryMatch ? parseInt(errorSummaryMatch[1], 10) : 0;
379
- return {
380
- orphans,
381
- stale: staleCount,
382
- blocked: blockedCount,
383
- unclaimed: unclaimedCount,
384
- missing: Math.max(missingCount, missingFromDetail),
385
- warnings,
386
- errors,
387
- };
388
- }
389
364
  /**
390
- * WU-1386: Check worktree sanity by calling wu:prune in dry-run mode
391
- * WU-1387: Enhanced parsing for orphan, missing, stale, blocked, and unclaimed worktrees
365
+ * WU-1654: Check worktree sanity using @lumenflow/core orphan-detector directly.
366
+ * Replaces the previous approach of shelling out to wu:prune and parsing text with regexes.
367
+ * Library-first: uses structured detectOrphanWorktrees() and detectMissingTrackedWorktrees().
392
368
  */
393
369
  async function checkWorktreeSanity(projectDir) {
394
370
  try {
@@ -399,70 +375,30 @@ async function checkWorktreeSanity(projectDir) {
399
375
  encoding: 'utf-8',
400
376
  stdio: ['pipe', 'pipe', 'pipe'],
401
377
  });
402
- // Call wu:prune in dry-run mode (default) via pnpm
403
- // Capture both stdout and stderr to parse the output
404
- let pruneOutput;
405
- let commandFailed = false;
406
- try {
407
- // eslint-disable-next-line sonarjs/no-os-command-from-path -- pnpm resolved from PATH; CLI orchestration
408
- pruneOutput = execFileSync('pnpm', ['wu:prune'], {
409
- cwd: projectDir,
410
- encoding: 'utf-8',
411
- stdio: ['pipe', 'pipe', 'pipe'],
412
- timeout: 30000, // 30 second timeout
413
- });
414
- }
415
- catch (e) {
416
- const execError = e;
417
- pruneOutput = (execError.stdout || '') + (execError.stderr || '');
418
- // Check if this is a "command not found" type error vs wu:prune finding issues
419
- // If pnpm can't run the script (no package.json, script not defined, etc.), gracefully skip
420
- const errorMsg = execError.message || pruneOutput || '';
421
- if (errorMsg.includes('ERR_PNPM') ||
422
- errorMsg.includes('ENOENT') ||
423
- errorMsg.includes('Missing script') ||
424
- errorMsg.includes('command not found') ||
425
- !pruneOutput.includes('[wu-prune]')) {
426
- // Command couldn't run - gracefully skip
427
- return {
428
- passed: true,
429
- orphans: 0,
430
- stale: 0,
431
- message: 'Worktree check skipped (wu:prune not available)',
432
- };
433
- }
434
- // Otherwise, wu:prune ran but found issues (non-zero exit)
435
- commandFailed = true;
436
- }
437
- // WU-1387: Enhanced parsing for all worktree issue types
438
- const parsed = parseWorktreePruneOutput(pruneOutput);
439
- // Calculate total issues (orphans count as issues, plus stale, blocked, unclaimed, missing)
440
- const totalIssues = parsed.orphans + parsed.stale + parsed.blocked + parsed.unclaimed + parsed.missing;
441
- const hasIssues = totalIssues > 0 || parsed.warnings > 0 || parsed.errors > 0;
442
- const passed = !hasIssues && !commandFailed;
443
- // Build descriptive message
378
+ // WU-1654: Call orphan-detector functions directly instead of shelling out to wu:prune
379
+ const orphanResult = await detectOrphanWorktrees(projectDir);
380
+ const missingTracked = await detectMissingTrackedWorktrees(projectDir);
381
+ const orphanCount = orphanResult.orphans.length;
382
+ const missingCount = missingTracked.length;
383
+ const errorCount = orphanResult.errors.length;
384
+ const totalIssues = orphanCount + missingCount + errorCount;
385
+ const passed = totalIssues === 0;
386
+ // Build descriptive message preserving WorktreeSanityResult contract
444
387
  let message = 'All worktrees are valid';
445
388
  if (!passed) {
446
389
  const parts = [];
447
- if (parsed.orphans > 0)
448
- parts.push(`${parsed.orphans} orphan(s)`);
449
- if (parsed.missing > 0)
450
- parts.push(`${parsed.missing} missing`);
451
- if (parsed.stale > 0)
452
- parts.push(`${parsed.stale} stale`);
453
- if (parsed.blocked > 0)
454
- parts.push(`${parsed.blocked} blocked`);
455
- if (parsed.unclaimed > 0)
456
- parts.push(`${parsed.unclaimed} unclaimed`);
457
- if (parts.length === 0 && (parsed.warnings > 0 || parsed.errors > 0)) {
458
- parts.push(`${parsed.warnings} warning(s), ${parsed.errors} error(s)`);
459
- }
460
- message = parts.length > 0 ? `Worktree issues: ${parts.join(', ')}` : 'Worktree issues found';
390
+ if (orphanCount > 0)
391
+ parts.push(`${orphanCount} orphan(s)`);
392
+ if (missingCount > 0)
393
+ parts.push(`${missingCount} missing`);
394
+ if (errorCount > 0)
395
+ parts.push(`${errorCount} error(s)`);
396
+ message = `Worktree issues: ${parts.join(', ')}`;
461
397
  }
462
398
  return {
463
399
  passed,
464
- orphans: parsed.orphans,
465
- stale: parsed.stale + parsed.blocked + parsed.unclaimed + parsed.missing, // Combined for API compat
400
+ orphans: orphanCount,
401
+ stale: missingCount, // Combined non-orphan issues for API compat
466
402
  message,
467
403
  };
468
404
  }
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}