@lumenflow/core 2.18.3 → 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 (162) hide show
  1. package/dist/adapters/terminal-renderer.adapter.d.ts.map +1 -1
  2. package/dist/adapters/terminal-renderer.adapter.js +6 -4
  3. package/dist/adapters/terminal-renderer.adapter.js.map +1 -1
  4. package/dist/atomic-merge.d.ts +21 -0
  5. package/dist/atomic-merge.d.ts.map +1 -0
  6. package/dist/atomic-merge.js +83 -0
  7. package/dist/atomic-merge.js.map +1 -0
  8. package/dist/delegation-escalation.d.ts +91 -0
  9. package/dist/delegation-escalation.d.ts.map +1 -0
  10. package/dist/delegation-escalation.js +258 -0
  11. package/dist/delegation-escalation.js.map +1 -0
  12. package/dist/delegation-monitor.d.ts +230 -0
  13. package/dist/delegation-monitor.d.ts.map +1 -0
  14. package/dist/delegation-monitor.js +675 -0
  15. package/dist/delegation-monitor.js.map +1 -0
  16. package/dist/delegation-recovery.d.ts +83 -0
  17. package/dist/delegation-recovery.d.ts.map +1 -0
  18. package/dist/delegation-recovery.js +299 -0
  19. package/dist/delegation-recovery.js.map +1 -0
  20. package/dist/delegation-registry-schema.d.ts +80 -0
  21. package/dist/delegation-registry-schema.d.ts.map +1 -0
  22. package/dist/delegation-registry-schema.js +91 -0
  23. package/dist/delegation-registry-schema.js.map +1 -0
  24. package/dist/delegation-registry-store.d.ts +159 -0
  25. package/dist/delegation-registry-store.d.ts.map +1 -0
  26. package/dist/delegation-registry-store.js +299 -0
  27. package/dist/delegation-registry-store.js.map +1 -0
  28. package/dist/delegation-tree.d.ts +57 -0
  29. package/dist/delegation-tree.d.ts.map +1 -0
  30. package/dist/delegation-tree.js +203 -0
  31. package/dist/delegation-tree.js.map +1 -0
  32. package/dist/gates-agent-mode.d.ts +25 -0
  33. package/dist/gates-agent-mode.d.ts.map +1 -1
  34. package/dist/gates-agent-mode.js +41 -0
  35. package/dist/gates-agent-mode.js.map +1 -1
  36. package/dist/index.d.ts +10 -7
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +14 -9
  39. package/dist/index.js.map +1 -1
  40. package/dist/lumenflow-config-schema.d.ts +9 -3
  41. package/dist/lumenflow-config-schema.d.ts.map +1 -1
  42. package/dist/lumenflow-config-schema.js +18 -3
  43. package/dist/lumenflow-config-schema.js.map +1 -1
  44. package/dist/lumenflow-config.d.ts +2 -0
  45. package/dist/lumenflow-config.d.ts.map +1 -1
  46. package/dist/lumenflow-config.js +1 -0
  47. package/dist/lumenflow-config.js.map +1 -1
  48. package/dist/micro-worktree.d.ts.map +1 -1
  49. package/dist/micro-worktree.js +15 -9
  50. package/dist/micro-worktree.js.map +1 -1
  51. package/dist/rollback-utils.d.ts +52 -0
  52. package/dist/rollback-utils.d.ts.map +1 -1
  53. package/dist/rollback-utils.js +111 -0
  54. package/dist/rollback-utils.js.map +1 -1
  55. package/dist/schemas/index.d.ts +3 -3
  56. package/dist/schemas/index.d.ts.map +1 -1
  57. package/dist/schemas/index.js +6 -6
  58. package/dist/schemas/index.js.map +1 -1
  59. package/dist/schemas/initiative-arg-validators.d.ts +1 -0
  60. package/dist/schemas/initiative-arg-validators.d.ts.map +1 -1
  61. package/dist/schemas/initiative-schemas.d.ts +3 -1
  62. package/dist/schemas/initiative-schemas.d.ts.map +1 -1
  63. package/dist/schemas/initiative-schemas.js +2 -1
  64. package/dist/schemas/initiative-schemas.js.map +1 -1
  65. package/dist/schemas/setup-arg-validators.d.ts +4 -4
  66. package/dist/schemas/setup-arg-validators.d.ts.map +1 -1
  67. package/dist/schemas/setup-arg-validators.js +6 -6
  68. package/dist/schemas/setup-arg-validators.js.map +1 -1
  69. package/dist/schemas/setup-schemas.d.ts +7 -7
  70. package/dist/schemas/setup-schemas.d.ts.map +1 -1
  71. package/dist/schemas/setup-schemas.js +10 -10
  72. package/dist/schemas/setup-schemas.js.map +1 -1
  73. package/dist/schemas/wu-lifecycle-arg-validators.d.ts +2 -1
  74. package/dist/schemas/wu-lifecycle-arg-validators.d.ts.map +1 -1
  75. package/dist/schemas/wu-lifecycle-schemas.d.ts +5 -3
  76. package/dist/schemas/wu-lifecycle-schemas.d.ts.map +1 -1
  77. package/dist/schemas/wu-lifecycle-schemas.js +5 -1
  78. package/dist/schemas/wu-lifecycle-schemas.js.map +1 -1
  79. package/dist/template-loader.d.ts +7 -3
  80. package/dist/template-loader.d.ts.map +1 -1
  81. package/dist/template-loader.js +22 -6
  82. package/dist/template-loader.js.map +1 -1
  83. package/dist/wu-consistency-checker.d.ts +1 -0
  84. package/dist/wu-consistency-checker.d.ts.map +1 -1
  85. package/dist/wu-consistency-checker.js +31 -2
  86. package/dist/wu-consistency-checker.js.map +1 -1
  87. package/dist/wu-context-constants.d.ts +0 -2
  88. package/dist/wu-context-constants.d.ts.map +1 -1
  89. package/dist/wu-context-constants.js +0 -2
  90. package/dist/wu-context-constants.js.map +1 -1
  91. package/dist/wu-done-branch-only.d.ts +2 -11
  92. package/dist/wu-done-branch-only.d.ts.map +1 -1
  93. package/dist/wu-done-branch-only.js +81 -45
  94. package/dist/wu-done-branch-only.js.map +1 -1
  95. package/dist/wu-done-cleanup.js +33 -1
  96. package/dist/wu-done-cleanup.js.map +1 -1
  97. package/dist/wu-done-initiative-sync.d.ts.map +1 -1
  98. package/dist/wu-done-initiative-sync.js +20 -5
  99. package/dist/wu-done-initiative-sync.js.map +1 -1
  100. package/dist/wu-done-machine.d.ts +175 -0
  101. package/dist/wu-done-machine.d.ts.map +1 -0
  102. package/dist/wu-done-machine.js +225 -0
  103. package/dist/wu-done-machine.js.map +1 -0
  104. package/dist/wu-done-metadata.d.ts.map +1 -1
  105. package/dist/wu-done-metadata.js +3 -1
  106. package/dist/wu-done-metadata.js.map +1 -1
  107. package/dist/wu-done-validation.d.ts +0 -37
  108. package/dist/wu-done-validation.d.ts.map +1 -1
  109. package/dist/wu-done-validation.js +1 -155
  110. package/dist/wu-done-validation.js.map +1 -1
  111. package/dist/wu-done-validators.d.ts +1 -2
  112. package/dist/wu-done-validators.d.ts.map +1 -1
  113. package/dist/wu-done-validators.js +1 -3
  114. package/dist/wu-done-validators.js.map +1 -1
  115. package/dist/wu-done-worktree-services.d.ts +191 -0
  116. package/dist/wu-done-worktree-services.d.ts.map +1 -0
  117. package/dist/wu-done-worktree-services.js +273 -0
  118. package/dist/wu-done-worktree-services.js.map +1 -0
  119. package/dist/wu-done-worktree.d.ts +0 -19
  120. package/dist/wu-done-worktree.d.ts.map +1 -1
  121. package/dist/wu-done-worktree.js +165 -118
  122. package/dist/wu-done-worktree.js.map +1 -1
  123. package/dist/wu-git-constants.d.ts +4 -0
  124. package/dist/wu-git-constants.d.ts.map +1 -1
  125. package/dist/wu-git-constants.js +4 -0
  126. package/dist/wu-git-constants.js.map +1 -1
  127. package/dist/wu-helpers.d.ts +5 -1
  128. package/dist/wu-helpers.d.ts.map +1 -1
  129. package/dist/wu-helpers.js +5 -1
  130. package/dist/wu-helpers.js.map +1 -1
  131. package/dist/wu-lint.d.ts +24 -0
  132. package/dist/wu-lint.d.ts.map +1 -1
  133. package/dist/wu-lint.js +48 -1
  134. package/dist/wu-lint.js.map +1 -1
  135. package/dist/wu-paths-constants.d.ts +3 -3
  136. package/dist/wu-paths-constants.d.ts.map +1 -1
  137. package/dist/wu-paths-constants.js +3 -3
  138. package/dist/wu-paths-constants.js.map +1 -1
  139. package/dist/wu-recovery.d.ts +89 -0
  140. package/dist/wu-recovery.d.ts.map +1 -1
  141. package/dist/wu-recovery.js +118 -0
  142. package/dist/wu-recovery.js.map +1 -1
  143. package/dist/wu-schema.d.ts +6 -6
  144. package/dist/wu-spawn-context.d.ts +1 -1
  145. package/dist/wu-spawn-context.d.ts.map +1 -1
  146. package/dist/wu-spawn-context.js +8 -2
  147. package/dist/wu-spawn-context.js.map +1 -1
  148. package/dist/wu-spawn-helpers.js +2 -2
  149. package/dist/wu-spawn-helpers.js.map +1 -1
  150. package/dist/wu-state-schema.d.ts +12 -12
  151. package/dist/wu-state-schema.d.ts.map +1 -1
  152. package/dist/wu-state-schema.js +10 -10
  153. package/dist/wu-state-schema.js.map +1 -1
  154. package/dist/wu-state-store.d.ts +10 -4
  155. package/dist/wu-state-store.d.ts.map +1 -1
  156. package/dist/wu-state-store.js +309 -11
  157. package/dist/wu-state-store.js.map +1 -1
  158. package/dist/wu-transaction.d.ts +21 -0
  159. package/dist/wu-transaction.d.ts.map +1 -1
  160. package/dist/wu-transaction.js +17 -0
  161. package/dist/wu-transaction.js.map +1 -1
  162. package/package.json +11 -9
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Delegation Monitor Library (WU-1948, WU-1968)
3
+ *
4
+ * Core monitoring logic for detecting stuck delegations and zombie locks.
5
+ * Used by orchestrate:monitor CLI command.
6
+ *
7
+ * Features:
8
+ * - Analyzes delegation registry for status counts
9
+ * - Detects pending delegations older than threshold (stuck)
10
+ * - Checks lane locks for zombie PIDs
11
+ * - Generates recovery suggestions
12
+ * - WU-1968: Processes delegation_failure signals from memory bus
13
+ *
14
+ * Library-First Note: This is project-specific monitoring code for
15
+ * PatientPath's delegation-registry.jsonl and lane-lock files. No external
16
+ * library exists for this custom format.
17
+ *
18
+ * @see {@link packages/@lumenflow/cli/src/__tests__/orchestrate-monitor.test.ts} - Tests
19
+ * @see {@link packages/@lumenflow/cli/src/lib/__tests__/delegation-monitor.test.ts} - Signal handler tests
20
+ * @see {@link packages/@lumenflow/cli/src/orchestrate-monitor.ts} - CLI entry point
21
+ * @see {@link packages/@lumenflow/cli/src/lib/delegation-registry-store.ts} - Registry storage
22
+ */
23
+ /**
24
+ * Default threshold for stuck delegation detection (in minutes)
25
+ */
26
+ export declare const DEFAULT_THRESHOLD_MINUTES = 30;
27
+ /**
28
+ * Log prefix for delegation-monitor messages
29
+ */
30
+ export declare const LOG_PREFIX = "[delegation-monitor]";
31
+ /**
32
+ * @typedef {Object} SpawnAnalysis
33
+ * @property {number} pending - Count of pending delegations
34
+ * @property {number} completed - Count of completed delegations
35
+ * @property {number} timeout - Count of timed out delegations
36
+ * @property {number} crashed - Count of crashed delegations
37
+ * @property {number} total - Total delegation count
38
+ */
39
+ /**
40
+ * @typedef {Object} StuckSpawnInfo
41
+ * @property {import('./delegation-registry-schema.js').DelegationEvent} delegation - The stuck delegation event
42
+ * @property {number} ageMinutes - Age of delegation in minutes
43
+ * @property {string|null} lastCheckpoint - Last checkpoint timestamp (if available from memory layer)
44
+ */
45
+ /**
46
+ * @typedef {Object} ZombieLockInfo
47
+ * @property {string} wuId - WU ID that holds the zombie lock
48
+ * @property {string} lane - Lane name
49
+ * @property {number} pid - Process ID (no longer running)
50
+ * @property {string} timestamp - When lock was acquired
51
+ */
52
+ /**
53
+ * @typedef {Object} Suggestion
54
+ * @property {string} command - Suggested command to run
55
+ * @property {string} reason - Explanation of why this is suggested
56
+ */
57
+ /**
58
+ * @typedef {Object} MonitorResult
59
+ * @property {SpawnAnalysis} analysis - Delegation status counts
60
+ * @property {StuckSpawnInfo[]} stuckDelegations - List of stuck delegations
61
+ * @property {ZombieLockInfo[]} zombieLocks - List of zombie locks
62
+ * @property {Suggestion[]} suggestions - Recovery suggestions
63
+ */
64
+ /**
65
+ * @typedef {Object} RecoveryResultInfo
66
+ * @property {string} delegationId - ID of the delegation that was processed
67
+ * @property {string} targetWuId - Target WU ID for the delegation
68
+ * @property {string} action - Recovery action taken (from RecoveryAction)
69
+ * @property {boolean} recovered - Whether auto-recovery was successful
70
+ * @property {string} reason - Human-readable explanation
71
+ * @property {Object} [escalation] - Escalation info if action is ESCALATED_STUCK
72
+ * @property {string} [escalation.bugWuId] - Bug WU ID created for escalation
73
+ * @property {string} [escalation.title] - Bug WU title
74
+ */
75
+ /**
76
+ * Analyzes delegation events and returns status counts.
77
+ *
78
+ * @param {import('./delegation-registry-schema.js').DelegationEvent[]} delegations - Array of delegation events
79
+ * @returns {SpawnAnalysis} Status counts
80
+ *
81
+ * @example
82
+ * const analysis = analyzeDelegations(delegations);
83
+ * console.log(`Pending: ${analysis.pending}, Completed: ${analysis.completed}`);
84
+ */
85
+ export declare function analyzeDelegations(delegations: any): {
86
+ pending: number;
87
+ completed: number;
88
+ timeout: number;
89
+ crashed: number;
90
+ total: any;
91
+ };
92
+ /**
93
+ * Detects pending delegations that have been running longer than the threshold.
94
+ *
95
+ * @param {import('./delegation-registry-schema.js').DelegationEvent[]} delegations - Array of delegation events
96
+ * @param {number} [thresholdMinutes=DEFAULT_THRESHOLD_MINUTES] - Threshold in minutes
97
+ * @returns {StuckSpawnInfo[]} Array of stuck delegation info
98
+ *
99
+ * @example
100
+ * const stuck = detectStuckDelegations(delegations, 30);
101
+ * for (const info of stuck) {
102
+ * console.log(`${info.delegation.targetWuId} stuck for ${info.ageMinutes} minutes`);
103
+ * }
104
+ */
105
+ export declare function detectStuckDelegations(delegations: any, thresholdMinutes?: number): any[];
106
+ /**
107
+ * Checks lane lock files for zombie locks (dead PIDs).
108
+ *
109
+ * @param {SpawnMonitorBaseDirOptions} [options] - Options
110
+ * @returns {Promise<ZombieLockInfo[]>} Array of zombie lock info
111
+ *
112
+ * @example
113
+ * const zombies = await checkZombieLocks();
114
+ * for (const lock of zombies) {
115
+ * console.log(`Zombie lock: ${lock.lane} (PID ${lock.pid})`);
116
+ * }
117
+ */
118
+ interface SpawnMonitorBaseDirOptions {
119
+ /** Base directory (defaults to process.cwd()) */
120
+ baseDir?: string;
121
+ }
122
+ export declare function checkZombieLocks(options?: SpawnMonitorBaseDirOptions): Promise<any[]>;
123
+ /**
124
+ * Generates recovery suggestions for stuck delegations and zombie locks.
125
+ *
126
+ * @param {StuckSpawnInfo[]} stuckDelegations - Array of stuck delegation info
127
+ * @param {ZombieLockInfo[]} zombieLocks - Array of zombie lock info
128
+ * @returns {Suggestion[]} Array of suggestions
129
+ *
130
+ * @example
131
+ * const suggestions = generateSuggestions(stuckDelegations, zombieLocks);
132
+ * for (const s of suggestions) {
133
+ * console.log(`${s.reason}\n ${s.command}`);
134
+ * }
135
+ */
136
+ export declare function generateSuggestions(stuckDelegations: any, zombieLocks: any): any[];
137
+ /**
138
+ * Formats monitor output for display.
139
+ *
140
+ * @param {MonitorResult} result - Monitor result to format
141
+ * @returns {string} Formatted output string
142
+ *
143
+ * @example
144
+ * const output = formatMonitorOutput(result);
145
+ * console.log(output);
146
+ */
147
+ export declare function formatMonitorOutput(result: any): string;
148
+ /**
149
+ * Runs recovery for stuck delegations by calling recoverStuckDelegation for each.
150
+ * When a delegation is escalated (action=ESCALATED_STUCK), chains to escalateStuckDelegation.
151
+ *
152
+ * @param {StuckSpawnInfo[]} stuckDelegations - Array of stuck delegation info
153
+ * @param {RunRecoveryOptions} [options] - Options
154
+ * @returns {Promise<RecoveryResultInfo[]>} Array of recovery results
155
+ *
156
+ * @example
157
+ * const results = await runRecovery(stuckDelegations, { baseDir: '/path/to/project' });
158
+ * for (const result of results) {
159
+ * console.log(`${result.delegationId}: ${result.action}`);
160
+ * }
161
+ */
162
+ interface RunRecoveryOptions extends SpawnMonitorBaseDirOptions {
163
+ /** If true, escalations return spec only */
164
+ dryRun?: boolean;
165
+ }
166
+ export declare function runRecovery(stuckDelegations: any, options?: RunRecoveryOptions): Promise<any[]>;
167
+ /**
168
+ * Formats recovery results for display.
169
+ *
170
+ * @param {RecoveryResultInfo[]} results - Array of recovery results
171
+ * @returns {string} Formatted output string
172
+ *
173
+ * @example
174
+ * const output = formatRecoveryResults(results);
175
+ * console.log(output);
176
+ */
177
+ export declare function formatRecoveryResults(results: any): string;
178
+ /**
179
+ * Log prefix for signal handler messages
180
+ */
181
+ export declare const SIGNAL_HANDLER_LOG_PREFIX = "[delegation-signal-handler]";
182
+ /**
183
+ * Response actions for delegation failure signals
184
+ */
185
+ export declare const SignalResponseAction: Readonly<{
186
+ RETRY: "retry";
187
+ BLOCK: "block";
188
+ BUG_WU: "bug_wu";
189
+ NONE: "none";
190
+ }>;
191
+ /**
192
+ * Processes delegation_failure signals from the memory bus.
193
+ *
194
+ * WU-1968: Orchestrator signal handler for delegation_failure signals.
195
+ *
196
+ * Response logic:
197
+ * - First failure (suggested_action=retry): logs warning, suggests retry
198
+ * - Second failure (suggested_action=block): marks WU blocked with reason
199
+ * - Third+ failure (suggested_action=human_escalate): creates Bug WU
200
+ *
201
+ * @param {RunRecoveryOptions} options - Options
202
+ * @returns {Promise<SignalProcessingResult>} Processing result
203
+ *
204
+ * @example
205
+ * const result = await processDelegationFailureSignals({ baseDir: '/path/to/project' });
206
+ * console.log(`Processed ${result.signalCount} signals`);
207
+ * for (const response of result.processed) {
208
+ * console.log(`${response.targetWuId}: ${response.action}`);
209
+ * }
210
+ */
211
+ export declare function processDelegationFailureSignals(options?: RunRecoveryOptions): Promise<{
212
+ processed: any[];
213
+ signalCount: number;
214
+ retryCount: number;
215
+ blockCount: number;
216
+ bugWuCount: number;
217
+ }>;
218
+ /**
219
+ * Formats signal handler output for display.
220
+ *
221
+ * @param {SignalProcessingResult} result - Processing result
222
+ * @returns {string} Formatted output string
223
+ *
224
+ * @example
225
+ * const output = formatSignalHandlerOutput(result);
226
+ * console.log(output);
227
+ */
228
+ export declare function formatSignalHandlerOutput(result: any): string;
229
+ export {};
230
+ //# sourceMappingURL=delegation-monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-monitor.d.ts","sourceRoot":"","sources":["../src/delegation-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AA4BH;;GAEG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,UAAU,yBAAyB,CAAC;AAEjD;;;;;;;GAOG;AAEH;;;;;GAKG;AAEH;;;;;;GAMG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,KAAA;;;;;;EA2B7C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,KAAA,EAAE,gBAAgB,SAA4B,SA4B/F;AAED;;;;;;;;;;;GAWG;AACH,UAAU,0BAA0B;IAClC,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,0BAA+B,kBAuC9E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,gBAAgB,KAAA,EAAE,WAAW,KAAA,SAuBhE;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,KAAA,UAkEzC;AAED;;;;;;;;;;;;;GAaG;AACH,UAAU,kBAAmB,SAAQ,0BAA0B;IAC7D,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,gBAAgB,KAAA,EAAE,OAAO,GAAE,kBAAuB,kBA2CnF;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,KAAA,UAkD5C;AAMD;;GAEG;AACH,eAAO,MAAM,yBAAyB,gCAAgC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;EAK/B,CAAC;AAuIH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,+BAA+B,CAAC,OAAO,GAAE,kBAAuB;;;;;;GAwHrF;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,KAAA,UAmC/C"}