@lumenflow/core 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 (167) 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-shared.d.ts +134 -0
  49. package/dist/micro-worktree-shared.d.ts.map +1 -0
  50. package/dist/micro-worktree-shared.js +350 -0
  51. package/dist/micro-worktree-shared.js.map +1 -0
  52. package/dist/micro-worktree.d.ts +4 -273
  53. package/dist/micro-worktree.d.ts.map +1 -1
  54. package/dist/micro-worktree.js +17 -549
  55. package/dist/micro-worktree.js.map +1 -1
  56. package/dist/rollback-utils.d.ts +52 -0
  57. package/dist/rollback-utils.d.ts.map +1 -1
  58. package/dist/rollback-utils.js +111 -0
  59. package/dist/rollback-utils.js.map +1 -1
  60. package/dist/schemas/index.d.ts +3 -3
  61. package/dist/schemas/index.d.ts.map +1 -1
  62. package/dist/schemas/index.js +6 -6
  63. package/dist/schemas/index.js.map +1 -1
  64. package/dist/schemas/initiative-arg-validators.d.ts +1 -0
  65. package/dist/schemas/initiative-arg-validators.d.ts.map +1 -1
  66. package/dist/schemas/initiative-schemas.d.ts +3 -1
  67. package/dist/schemas/initiative-schemas.d.ts.map +1 -1
  68. package/dist/schemas/initiative-schemas.js +2 -1
  69. package/dist/schemas/initiative-schemas.js.map +1 -1
  70. package/dist/schemas/setup-arg-validators.d.ts +4 -4
  71. package/dist/schemas/setup-arg-validators.d.ts.map +1 -1
  72. package/dist/schemas/setup-arg-validators.js +6 -6
  73. package/dist/schemas/setup-arg-validators.js.map +1 -1
  74. package/dist/schemas/setup-schemas.d.ts +7 -7
  75. package/dist/schemas/setup-schemas.d.ts.map +1 -1
  76. package/dist/schemas/setup-schemas.js +10 -10
  77. package/dist/schemas/setup-schemas.js.map +1 -1
  78. package/dist/schemas/wu-lifecycle-arg-validators.d.ts +2 -1
  79. package/dist/schemas/wu-lifecycle-arg-validators.d.ts.map +1 -1
  80. package/dist/schemas/wu-lifecycle-schemas.d.ts +5 -3
  81. package/dist/schemas/wu-lifecycle-schemas.d.ts.map +1 -1
  82. package/dist/schemas/wu-lifecycle-schemas.js +5 -1
  83. package/dist/schemas/wu-lifecycle-schemas.js.map +1 -1
  84. package/dist/template-loader.d.ts +7 -3
  85. package/dist/template-loader.d.ts.map +1 -1
  86. package/dist/template-loader.js +22 -6
  87. package/dist/template-loader.js.map +1 -1
  88. package/dist/wu-consistency-checker.d.ts +1 -0
  89. package/dist/wu-consistency-checker.d.ts.map +1 -1
  90. package/dist/wu-consistency-checker.js +31 -2
  91. package/dist/wu-consistency-checker.js.map +1 -1
  92. package/dist/wu-context-constants.d.ts +0 -2
  93. package/dist/wu-context-constants.d.ts.map +1 -1
  94. package/dist/wu-context-constants.js +0 -2
  95. package/dist/wu-context-constants.js.map +1 -1
  96. package/dist/wu-done-branch-only.d.ts +2 -11
  97. package/dist/wu-done-branch-only.d.ts.map +1 -1
  98. package/dist/wu-done-branch-only.js +81 -45
  99. package/dist/wu-done-branch-only.js.map +1 -1
  100. package/dist/wu-done-cleanup.js +33 -1
  101. package/dist/wu-done-cleanup.js.map +1 -1
  102. package/dist/wu-done-initiative-sync.d.ts.map +1 -1
  103. package/dist/wu-done-initiative-sync.js +20 -5
  104. package/dist/wu-done-initiative-sync.js.map +1 -1
  105. package/dist/wu-done-machine.d.ts +175 -0
  106. package/dist/wu-done-machine.d.ts.map +1 -0
  107. package/dist/wu-done-machine.js +225 -0
  108. package/dist/wu-done-machine.js.map +1 -0
  109. package/dist/wu-done-metadata.d.ts.map +1 -1
  110. package/dist/wu-done-metadata.js +3 -1
  111. package/dist/wu-done-metadata.js.map +1 -1
  112. package/dist/wu-done-validation.d.ts +0 -37
  113. package/dist/wu-done-validation.d.ts.map +1 -1
  114. package/dist/wu-done-validation.js +1 -155
  115. package/dist/wu-done-validation.js.map +1 -1
  116. package/dist/wu-done-validators.d.ts +1 -2
  117. package/dist/wu-done-validators.d.ts.map +1 -1
  118. package/dist/wu-done-validators.js +1 -3
  119. package/dist/wu-done-validators.js.map +1 -1
  120. package/dist/wu-done-worktree-services.d.ts +191 -0
  121. package/dist/wu-done-worktree-services.d.ts.map +1 -0
  122. package/dist/wu-done-worktree-services.js +273 -0
  123. package/dist/wu-done-worktree-services.js.map +1 -0
  124. package/dist/wu-done-worktree.d.ts +0 -19
  125. package/dist/wu-done-worktree.d.ts.map +1 -1
  126. package/dist/wu-done-worktree.js +165 -118
  127. package/dist/wu-done-worktree.js.map +1 -1
  128. package/dist/wu-git-constants.d.ts +4 -0
  129. package/dist/wu-git-constants.d.ts.map +1 -1
  130. package/dist/wu-git-constants.js +4 -0
  131. package/dist/wu-git-constants.js.map +1 -1
  132. package/dist/wu-helpers.d.ts +5 -1
  133. package/dist/wu-helpers.d.ts.map +1 -1
  134. package/dist/wu-helpers.js +5 -1
  135. package/dist/wu-helpers.js.map +1 -1
  136. package/dist/wu-lint.d.ts +24 -0
  137. package/dist/wu-lint.d.ts.map +1 -1
  138. package/dist/wu-lint.js +48 -1
  139. package/dist/wu-lint.js.map +1 -1
  140. package/dist/wu-paths-constants.d.ts +3 -3
  141. package/dist/wu-paths-constants.d.ts.map +1 -1
  142. package/dist/wu-paths-constants.js +3 -3
  143. package/dist/wu-paths-constants.js.map +1 -1
  144. package/dist/wu-recovery.d.ts +89 -0
  145. package/dist/wu-recovery.d.ts.map +1 -1
  146. package/dist/wu-recovery.js +118 -0
  147. package/dist/wu-recovery.js.map +1 -1
  148. package/dist/wu-schema.d.ts +6 -6
  149. package/dist/wu-spawn-context.d.ts +1 -1
  150. package/dist/wu-spawn-context.d.ts.map +1 -1
  151. package/dist/wu-spawn-context.js +8 -2
  152. package/dist/wu-spawn-context.js.map +1 -1
  153. package/dist/wu-spawn-helpers.js +2 -2
  154. package/dist/wu-spawn-helpers.js.map +1 -1
  155. package/dist/wu-state-schema.d.ts +12 -12
  156. package/dist/wu-state-schema.d.ts.map +1 -1
  157. package/dist/wu-state-schema.js +10 -10
  158. package/dist/wu-state-schema.js.map +1 -1
  159. package/dist/wu-state-store.d.ts +10 -4
  160. package/dist/wu-state-store.d.ts.map +1 -1
  161. package/dist/wu-state-store.js +309 -11
  162. package/dist/wu-state-store.js.map +1 -1
  163. package/dist/wu-transaction.d.ts +21 -0
  164. package/dist/wu-transaction.d.ts.map +1 -1
  165. package/dist/wu-transaction.js +17 -0
  166. package/dist/wu-transaction.js.map +1 -1
  167. package/package.json +15 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-monitor.js","sourceRoot":"","sources":["../src/delegation-monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Delegation Recovery Module (WU-1951)
3
+ *
4
+ * Auto-recovery heuristics for stuck delegations and zombie locks.
5
+ * Used by orchestrate:monitor for automatic delegation health management.
6
+ *
7
+ * Recovery Heuristics:
8
+ * 1. Zombie lock (PID not running) -> auto-release, mark delegation crashed
9
+ * 2. Stale lock (>2h) -> auto-release, mark delegation timeout
10
+ * 3. Active lock + no checkpoint in 1h -> mark stuck, escalate
11
+ *
12
+ * All recovery actions are logged to .lumenflow/recovery/ for audit.
13
+ *
14
+ * Library-First Note: This is project-specific delegation recovery code for
15
+ * PatientPath's custom delegation-registry.jsonl, lane-lock, and memory-store.
16
+ * No external library exists for this domain-specific agent lifecycle management.
17
+ *
18
+ * @see {@link packages/@lumenflow/cli/src/lib/__tests__/delegation-recovery.test.ts} - Tests
19
+ * @see {@link packages/@lumenflow/cli/src/lib/delegation-monitor.ts} - Monitoring logic
20
+ * @see {@link packages/@lumenflow/cli/src/lib/delegation-registry-store.ts} - Delegation state
21
+ */
22
+ /**
23
+ * Recovery action constants
24
+ */
25
+ export declare const RecoveryAction: Readonly<{
26
+ /** No recovery needed */
27
+ NONE: "none";
28
+ /** Zombie lock released (PID not running) */
29
+ RELEASED_ZOMBIE: "released_zombie";
30
+ /** Stale lock released (>2h old) */
31
+ RELEASED_STALE: "released_stale";
32
+ /** Stuck delegation escalated (active but no checkpoint in 1h) */
33
+ ESCALATED_STUCK: "escalated_stuck";
34
+ }>;
35
+ /**
36
+ * Recovery directory name
37
+ */
38
+ export declare const RECOVERY_DIR_NAME = "recovery";
39
+ /**
40
+ * Threshold for "no checkpoint" detection (1 hour in milliseconds)
41
+ */
42
+ export declare const NO_CHECKPOINT_THRESHOLD_MS: number;
43
+ /**
44
+ * Recovers a stuck delegation by applying appropriate heuristics.
45
+ *
46
+ * Recovery order (first match wins):
47
+ * 1. Zombie lock (PID not running) -> release lock, mark crashed
48
+ * 2. Stale lock (>2h) -> release lock, mark timeout
49
+ * 3. Active lock + no checkpoint in 1h -> escalate (no auto-release)
50
+ * 4. Healthy delegation -> no action
51
+ *
52
+ * @param {string} delegationId - ID of the delegation to recover
53
+ * @param {RecoverStuckDelegationOptions} options - Options
54
+ * @returns {Promise<RecoveryResult>} Recovery result
55
+ *
56
+ * @example
57
+ * const result = await recoverStuckDelegation('delegation-1234', { baseDir: '/path/to/project' });
58
+ * if (result.recovered) {
59
+ * console.log(`Recovered: ${result.action} - ${result.reason}`);
60
+ * }
61
+ */
62
+ export interface RecoverStuckDelegationOptions {
63
+ /** Base directory for .lumenflow/ */
64
+ baseDir?: string;
65
+ }
66
+ export declare function recoverStuckDelegation(delegationId: any, options?: RecoverStuckDelegationOptions): Promise<{
67
+ recovered: boolean;
68
+ action: "none";
69
+ reason: string;
70
+ } | {
71
+ recovered: boolean;
72
+ action: "released_zombie";
73
+ reason: string;
74
+ } | {
75
+ recovered: boolean;
76
+ action: "released_stale";
77
+ reason: string;
78
+ } | {
79
+ recovered: boolean;
80
+ action: "escalated_stuck";
81
+ reason: string;
82
+ }>;
83
+ //# sourceMappingURL=delegation-recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-recovery.d.ts","sourceRoot":"","sources":["../src/delegation-recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA6BH;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB,yBAAyB;;IAEzB,6CAA6C;;IAE7C,oCAAoC;;IAEpC,kEAAkE;;EAElE,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAiB,CAAC;AA8HzD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,6BAA6B;IAC5C,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,sBAAsB,CAC1C,YAAY,KAAA,EACZ,OAAO,GAAE,6BAAkC;;;;;;;;;;;;;;;;GAsK5C"}
@@ -0,0 +1,299 @@
1
+ /**
2
+ * Delegation Recovery Module (WU-1951)
3
+ *
4
+ * Auto-recovery heuristics for stuck delegations and zombie locks.
5
+ * Used by orchestrate:monitor for automatic delegation health management.
6
+ *
7
+ * Recovery Heuristics:
8
+ * 1. Zombie lock (PID not running) -> auto-release, mark delegation crashed
9
+ * 2. Stale lock (>2h) -> auto-release, mark delegation timeout
10
+ * 3. Active lock + no checkpoint in 1h -> mark stuck, escalate
11
+ *
12
+ * All recovery actions are logged to .lumenflow/recovery/ for audit.
13
+ *
14
+ * Library-First Note: This is project-specific delegation recovery code for
15
+ * PatientPath's custom delegation-registry.jsonl, lane-lock, and memory-store.
16
+ * No external library exists for this domain-specific agent lifecycle management.
17
+ *
18
+ * @see {@link packages/@lumenflow/cli/src/lib/__tests__/delegation-recovery.test.ts} - Tests
19
+ * @see {@link packages/@lumenflow/cli/src/lib/delegation-monitor.ts} - Monitoring logic
20
+ * @see {@link packages/@lumenflow/cli/src/lib/delegation-registry-store.ts} - Delegation state
21
+ */
22
+ import fs from 'node:fs/promises';
23
+ import path from 'node:path';
24
+ import { DelegationRegistryStore } from './delegation-registry-store.js';
25
+ import { DelegationStatus } from './delegation-registry-schema.js';
26
+ import { isZombieLock, isLockStale, readLockMetadata, getLockFilePath, releaseLaneLock, } from './lane-lock.js';
27
+ import { toKebab, LUMENFLOW_PATHS } from './wu-constants.js';
28
+ // Optional import from @lumenflow/memory
29
+ let loadMemory = null;
30
+ try {
31
+ const mod = await import('@lumenflow/memory/store');
32
+ loadMemory = mod.loadMemory;
33
+ }
34
+ catch {
35
+ // @lumenflow/memory not available - memory features disabled
36
+ }
37
+ /**
38
+ * Recovery action constants
39
+ */
40
+ export const RecoveryAction = Object.freeze({
41
+ /** No recovery needed */
42
+ NONE: 'none',
43
+ /** Zombie lock released (PID not running) */
44
+ RELEASED_ZOMBIE: 'released_zombie',
45
+ /** Stale lock released (>2h old) */
46
+ RELEASED_STALE: 'released_stale',
47
+ /** Stuck delegation escalated (active but no checkpoint in 1h) */
48
+ ESCALATED_STUCK: 'escalated_stuck',
49
+ });
50
+ /**
51
+ * Recovery directory name
52
+ */
53
+ export const RECOVERY_DIR_NAME = 'recovery';
54
+ /**
55
+ * Threshold for "no checkpoint" detection (1 hour in milliseconds)
56
+ */
57
+ export const NO_CHECKPOINT_THRESHOLD_MS = 60 * 60 * 1000;
58
+ /**
59
+ * Log prefix for delegation-recovery messages
60
+ */
61
+ const LOG_PREFIX = '[delegation-recovery]';
62
+ /**
63
+ * @typedef {Object} RecoveryResult
64
+ * @property {boolean} recovered - Whether a recovery action was taken
65
+ * @property {string} action - The recovery action taken (from RecoveryAction)
66
+ * @property {string} reason - Human-readable explanation of the result
67
+ */
68
+ /**
69
+ * @typedef {Object} AuditLogEntry
70
+ * @property {string} timestamp - ISO timestamp of recovery action
71
+ * @property {string} delegationId - ID of the delegation being recovered
72
+ * @property {string} action - Recovery action taken
73
+ * @property {string} reason - Explanation of why action was taken
74
+ * @property {Object} context - Additional context
75
+ * @property {string} context.targetWuId - Target WU ID
76
+ * @property {string} context.lane - Lane name
77
+ * @property {Object|null} context.lockMetadata - Lock metadata if present
78
+ * @property {string|null} context.lastCheckpoint - Last checkpoint timestamp
79
+ */
80
+ /**
81
+ * Converts lane name to lock file path (kebab-case)
82
+ *
83
+ * @param {string} lane - Lane name (e.g., "Operations: Tooling")
84
+ * @returns {string} Kebab-case lane name (e.g., "operations-tooling")
85
+ */
86
+ function laneToKebab(lane) {
87
+ return toKebab(lane);
88
+ }
89
+ /**
90
+ * Gets the recovery directory path
91
+ *
92
+ * @param {string} baseDir - Base directory
93
+ * @returns {string} Path to .lumenflow/recovery/
94
+ */
95
+ function getRecoveryDir(baseDir) {
96
+ return path.join(baseDir, LUMENFLOW_PATHS.BASE, RECOVERY_DIR_NAME);
97
+ }
98
+ /**
99
+ * Creates an audit log entry
100
+ *
101
+ * @param {string} baseDir - Base directory
102
+ * @param {AuditLogEntry} entry - Audit log entry
103
+ * @returns {Promise<void>}
104
+ */
105
+ async function createAuditLog(baseDir, entry) {
106
+ const recoveryDir = getRecoveryDir(baseDir);
107
+ await fs.mkdir(recoveryDir, { recursive: true });
108
+ const timestamp = entry.timestamp.replace(/[:.]/g, '-');
109
+ const fileName = `${entry.delegationId}-${timestamp}.json`;
110
+ const filePath = path.join(recoveryDir, fileName);
111
+ await fs.writeFile(filePath, JSON.stringify(entry, null, 2), 'utf-8');
112
+ console.log(`${LOG_PREFIX} Audit log created: ${fileName}`);
113
+ }
114
+ /**
115
+ * Gets the most recent checkpoint for a WU from the memory store
116
+ *
117
+ * @param {string} baseDir - Base directory
118
+ * @param {string} wuId - WU ID to find checkpoints for
119
+ * @returns {Promise<{timestamp: string, content: string}|null>} Most recent checkpoint or null
120
+ */
121
+ async function getLastCheckpoint(baseDir, wuId) {
122
+ // If memory module not available, return null
123
+ if (!loadMemory) {
124
+ return null;
125
+ }
126
+ const memoryDir = path.join(baseDir, LUMENFLOW_PATHS.STATE_DIR);
127
+ try {
128
+ const memory = await loadMemory(memoryDir, wuId);
129
+ if (!memory) {
130
+ return null;
131
+ }
132
+ const checkpoints = memory.checkpoints ?? [];
133
+ if (checkpoints.length === 0) {
134
+ return null;
135
+ }
136
+ // Sort by timestamp descending, get most recent
137
+ checkpoints.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
138
+ const latest = checkpoints[0];
139
+ return {
140
+ timestamp: latest.timestamp,
141
+ content: '',
142
+ };
143
+ }
144
+ catch {
145
+ // Memory store doesn't exist or is invalid
146
+ return null;
147
+ }
148
+ }
149
+ /**
150
+ * Checks if a checkpoint is recent enough (within 1 hour)
151
+ *
152
+ * @param {string|null} checkpointTimestamp - ISO timestamp of last checkpoint
153
+ * @returns {boolean} True if checkpoint is recent (within 1 hour)
154
+ */
155
+ function isCheckpointRecent(checkpointTimestamp) {
156
+ if (!checkpointTimestamp) {
157
+ return false;
158
+ }
159
+ const checkpointTime = new Date(checkpointTimestamp).getTime();
160
+ const now = Date.now();
161
+ return now - checkpointTime <= NO_CHECKPOINT_THRESHOLD_MS;
162
+ }
163
+ export async function recoverStuckDelegation(delegationId, options = {}) {
164
+ const { baseDir = process.cwd() } = options;
165
+ const registryDir = path.join(baseDir, LUMENFLOW_PATHS.STATE_DIR);
166
+ // Load delegation registry
167
+ const store = new DelegationRegistryStore(registryDir);
168
+ try {
169
+ await store.load();
170
+ }
171
+ catch {
172
+ // Registry doesn't exist or is invalid
173
+ return {
174
+ recovered: false,
175
+ action: RecoveryAction.NONE,
176
+ reason: `Delegation ${delegationId} not found: registry unavailable`,
177
+ };
178
+ }
179
+ // Find the delegation
180
+ const delegation = store.getById(delegationId);
181
+ if (!delegation) {
182
+ return {
183
+ recovered: false,
184
+ action: RecoveryAction.NONE,
185
+ reason: `Delegation ${delegationId} not found in registry`,
186
+ };
187
+ }
188
+ // Check if already completed
189
+ if (delegation.status !== DelegationStatus.PENDING) {
190
+ return {
191
+ recovered: false,
192
+ action: RecoveryAction.NONE,
193
+ reason: `Delegation ${delegationId} already ${delegation.status}`,
194
+ };
195
+ }
196
+ // Get lock for this delegation's lane
197
+ const _laneKebab = laneToKebab(delegation.lane);
198
+ const lockPath = getLockFilePath(delegation.lane, baseDir);
199
+ const lockMetadata = readLockMetadata(lockPath);
200
+ // If no lock, nothing to recover
201
+ if (!lockMetadata) {
202
+ return {
203
+ recovered: false,
204
+ action: RecoveryAction.NONE,
205
+ reason: `No lock found for delegation ${delegationId} (lane: ${delegation.lane})`,
206
+ };
207
+ }
208
+ // Check if lock belongs to this WU
209
+ if (lockMetadata.wuId !== delegation.targetWuId) {
210
+ return {
211
+ recovered: false,
212
+ action: RecoveryAction.NONE,
213
+ reason: `Lock belongs to ${lockMetadata.wuId}, not delegation target ${delegation.targetWuId}`,
214
+ };
215
+ }
216
+ // Get last checkpoint for context
217
+ const lastCheckpoint = await getLastCheckpoint(baseDir, delegation.targetWuId);
218
+ const lastCheckpointTs = lastCheckpoint?.timestamp ?? null;
219
+ // Build common audit context
220
+ const auditContext = {
221
+ targetWuId: delegation.targetWuId,
222
+ parentWuId: delegation.parentWuId,
223
+ lane: delegation.lane,
224
+ delegatedAt: delegation.delegatedAt,
225
+ lockMetadata,
226
+ lastCheckpoint: lastCheckpointTs,
227
+ };
228
+ // Heuristic 1: Zombie lock (PID not running)
229
+ if (isZombieLock(lockMetadata)) {
230
+ console.log(`${LOG_PREFIX} Detected zombie lock for ${delegationId} (PID ${lockMetadata.pid} not running)`);
231
+ // Release the lock
232
+ releaseLaneLock(delegation.lane, { baseDir, force: true });
233
+ // Mark delegation as crashed
234
+ await store.updateStatus(delegationId, DelegationStatus.CRASHED);
235
+ const reason = `Zombie lock detected: PID ${lockMetadata.pid} not running`;
236
+ // Create audit log
237
+ await createAuditLog(baseDir, {
238
+ timestamp: new Date().toISOString(),
239
+ delegationId,
240
+ action: RecoveryAction.RELEASED_ZOMBIE,
241
+ reason,
242
+ context: auditContext,
243
+ });
244
+ return {
245
+ recovered: true,
246
+ action: RecoveryAction.RELEASED_ZOMBIE,
247
+ reason,
248
+ };
249
+ }
250
+ // Heuristic 2: Stale lock (>2h old)
251
+ if (isLockStale(lockMetadata)) {
252
+ console.log(`${LOG_PREFIX} Detected stale lock for ${delegationId} (acquired ${lockMetadata.timestamp})`);
253
+ // Release the lock
254
+ releaseLaneLock(delegation.lane, { baseDir, force: true });
255
+ // Mark delegation as timeout
256
+ await store.updateStatus(delegationId, DelegationStatus.TIMEOUT);
257
+ const reason = `Stale lock detected: acquired ${lockMetadata.timestamp} (>2h threshold)`;
258
+ // Create audit log
259
+ await createAuditLog(baseDir, {
260
+ timestamp: new Date().toISOString(),
261
+ delegationId,
262
+ action: RecoveryAction.RELEASED_STALE,
263
+ reason,
264
+ context: auditContext,
265
+ });
266
+ return {
267
+ recovered: true,
268
+ action: RecoveryAction.RELEASED_STALE,
269
+ reason,
270
+ };
271
+ }
272
+ // Heuristic 3: Active lock + no recent checkpoint -> escalate
273
+ if (!isCheckpointRecent(lastCheckpointTs)) {
274
+ const reason = lastCheckpointTs
275
+ ? `No checkpoint in last hour (last: ${lastCheckpointTs})`
276
+ : 'No checkpoints recorded for this delegation';
277
+ console.log(`${LOG_PREFIX} Escalating stuck delegation ${delegationId}: ${reason}`);
278
+ // Create audit log (escalation, not recovery)
279
+ await createAuditLog(baseDir, {
280
+ timestamp: new Date().toISOString(),
281
+ delegationId,
282
+ action: RecoveryAction.ESCALATED_STUCK,
283
+ reason,
284
+ context: auditContext,
285
+ });
286
+ return {
287
+ recovered: false, // No auto-recovery, just escalation
288
+ action: RecoveryAction.ESCALATED_STUCK,
289
+ reason: `Stuck delegation: ${reason}`,
290
+ };
291
+ }
292
+ // Healthy delegation with recent checkpoint
293
+ return {
294
+ recovered: false,
295
+ action: RecoveryAction.NONE,
296
+ reason: `Delegation ${delegationId} healthy (recent checkpoint at ${lastCheckpointTs})`,
297
+ };
298
+ }
299
+ //# sourceMappingURL=delegation-recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-recovery.js","sourceRoot":"","sources":["../src/delegation-recovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Delegation Registry Schema (WU-1674)
3
+ *
4
+ * Canonical delegation schema and helpers for delegation lifecycle records.
5
+ */
6
+ import { z } from 'zod';
7
+ /**
8
+ * Delegation status values.
9
+ */
10
+ export declare const DelegationStatus: {
11
+ readonly PENDING: "pending";
12
+ readonly COMPLETED: string;
13
+ readonly TIMEOUT: "timeout";
14
+ readonly CRASHED: "crashed";
15
+ readonly ESCALATED: "escalated";
16
+ };
17
+ /** Type for delegation status values */
18
+ export type DelegationStatusValue = (typeof DelegationStatus)[keyof typeof DelegationStatus];
19
+ /** Array of valid delegation statuses */
20
+ export declare const DELEGATION_STATUSES: readonly ["pending", string, "timeout", "crashed", "escalated"];
21
+ /**
22
+ * Optional delegation intent source values.
23
+ */
24
+ export declare const DelegationIntent: {
25
+ readonly DELEGATION: "delegation";
26
+ readonly LEGACY_SPAWN: "legacy-spawn";
27
+ };
28
+ /** Type for delegation intent values */
29
+ export type DelegationIntentValue = (typeof DelegationIntent)[keyof typeof DelegationIntent];
30
+ /** Array of valid delegation intent values */
31
+ export declare const DELEGATION_INTENTS: readonly ["delegation", "legacy-spawn"];
32
+ /**
33
+ * Regex patterns for delegation validation.
34
+ */
35
+ export declare const DELEGATION_PATTERNS: {
36
+ DELEGATION_ID: RegExp;
37
+ WU_ID: RegExp;
38
+ };
39
+ /**
40
+ * Delegation event schema.
41
+ */
42
+ export declare const DelegationEventSchema: z.ZodObject<{
43
+ id: z.ZodString;
44
+ parentWuId: z.ZodString;
45
+ targetWuId: z.ZodString;
46
+ lane: z.ZodString;
47
+ intent: z.ZodOptional<z.ZodEnum<{
48
+ delegation: "delegation";
49
+ "legacy-spawn": "legacy-spawn";
50
+ }>>;
51
+ delegatedAt: z.ZodString;
52
+ status: z.ZodEnum<{
53
+ [x: string]: string;
54
+ }>;
55
+ completedAt: z.ZodNullable<z.ZodString>;
56
+ pickedUpAt: z.ZodOptional<z.ZodString>;
57
+ pickedUpBy: z.ZodOptional<z.ZodString>;
58
+ }, z.core.$strip>;
59
+ /** TypeScript type inferred from schema */
60
+ export type DelegationEvent = z.infer<typeof DelegationEventSchema>;
61
+ /**
62
+ * Validates delegation event data against schema.
63
+ */
64
+ export declare function validateDelegationEvent(data: unknown): z.ZodSafeParseResult<{
65
+ id: string;
66
+ parentWuId: string;
67
+ targetWuId: string;
68
+ lane: string;
69
+ delegatedAt: string;
70
+ status: string;
71
+ intent?: "delegation" | "legacy-spawn";
72
+ completedAt?: string;
73
+ pickedUpAt?: string;
74
+ pickedUpBy?: string;
75
+ }>;
76
+ /**
77
+ * Generates a unique delegation ID.
78
+ */
79
+ export declare function generateDelegationId(parentWuId: string, targetWuId: string): string;
80
+ //# sourceMappingURL=delegation-registry-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-registry-schema.d.ts","sourceRoot":"","sources":["../src/delegation-registry-schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;CAMnB,CAAC;AAEX,wCAAwC;AACxC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAE7F,yCAAyC;AACzC,eAAO,MAAM,mBAAmB,iEAMtB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX,wCAAwC;AACxC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAE7F,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,yCAGrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;CAG/B,CAAC;AAeF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;iBAahC,CAAC;AAEH,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;GAEpD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAMnF"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Delegation Registry Schema (WU-1674)
3
+ *
4
+ * Canonical delegation schema and helpers for delegation lifecycle records.
5
+ */
6
+ import crypto from 'node:crypto';
7
+ import { z } from 'zod';
8
+ import { WU_STATUS } from './wu-constants.js';
9
+ /**
10
+ * Delegation status values.
11
+ */
12
+ export const DelegationStatus = {
13
+ PENDING: 'pending',
14
+ COMPLETED: WU_STATUS.COMPLETED,
15
+ TIMEOUT: 'timeout',
16
+ CRASHED: 'crashed',
17
+ ESCALATED: 'escalated',
18
+ };
19
+ /** Array of valid delegation statuses */
20
+ export const DELEGATION_STATUSES = [
21
+ DelegationStatus.PENDING,
22
+ DelegationStatus.COMPLETED,
23
+ DelegationStatus.TIMEOUT,
24
+ DelegationStatus.CRASHED,
25
+ DelegationStatus.ESCALATED,
26
+ ];
27
+ /**
28
+ * Optional delegation intent source values.
29
+ */
30
+ export const DelegationIntent = {
31
+ DELEGATION: 'delegation',
32
+ LEGACY_SPAWN: 'legacy-spawn',
33
+ };
34
+ /** Array of valid delegation intent values */
35
+ export const DELEGATION_INTENTS = [
36
+ DelegationIntent.DELEGATION,
37
+ DelegationIntent.LEGACY_SPAWN,
38
+ ];
39
+ /**
40
+ * Regex patterns for delegation validation.
41
+ */
42
+ export const DELEGATION_PATTERNS = {
43
+ DELEGATION_ID: /^dlg-[0-9a-f]{4}$/,
44
+ WU_ID: /^WU-\d+$/,
45
+ };
46
+ /**
47
+ * Error messages for schema validation.
48
+ */
49
+ const ERROR_MESSAGES = {
50
+ DELEGATION_ID: 'Delegation ID must match pattern dlg-XXXX (e.g., dlg-a1b2)',
51
+ WU_ID: 'WU ID must match pattern WU-XXX (e.g., WU-1000)',
52
+ LANE_REQUIRED: 'Lane is required',
53
+ STATUS: `Status must be one of: ${DELEGATION_STATUSES.join(', ')}`,
54
+ INTENT: `Intent must be one of: ${DELEGATION_INTENTS.join(', ')}`,
55
+ TIMESTAMP_REQUIRED: 'Timestamp is required',
56
+ PICKUP_BY_REQUIRED: 'pickedUpBy must be a non-empty string when pickup is recorded',
57
+ };
58
+ /**
59
+ * Delegation event schema.
60
+ */
61
+ export const DelegationEventSchema = z.object({
62
+ id: z.string().regex(DELEGATION_PATTERNS.DELEGATION_ID, {
63
+ message: ERROR_MESSAGES.DELEGATION_ID,
64
+ }),
65
+ parentWuId: z.string().regex(DELEGATION_PATTERNS.WU_ID, { message: ERROR_MESSAGES.WU_ID }),
66
+ targetWuId: z.string().regex(DELEGATION_PATTERNS.WU_ID, { message: ERROR_MESSAGES.WU_ID }),
67
+ lane: z.string().min(1, { message: ERROR_MESSAGES.LANE_REQUIRED }),
68
+ intent: z.enum(DELEGATION_INTENTS, { error: ERROR_MESSAGES.INTENT }).optional(),
69
+ delegatedAt: z.string().datetime({ message: ERROR_MESSAGES.TIMESTAMP_REQUIRED }),
70
+ status: z.enum(DELEGATION_STATUSES, { error: ERROR_MESSAGES.STATUS }),
71
+ completedAt: z.string().datetime().nullable(),
72
+ pickedUpAt: z.string().datetime().optional(),
73
+ pickedUpBy: z.string().min(1, { message: ERROR_MESSAGES.PICKUP_BY_REQUIRED }).optional(),
74
+ });
75
+ /**
76
+ * Validates delegation event data against schema.
77
+ */
78
+ export function validateDelegationEvent(data) {
79
+ return DelegationEventSchema.safeParse(data);
80
+ }
81
+ /**
82
+ * Generates a unique delegation ID.
83
+ */
84
+ export function generateDelegationId(parentWuId, targetWuId) {
85
+ const timestamp = Date.now().toString();
86
+ const randomBytes = crypto.randomBytes(4).toString('hex');
87
+ const input = `${parentWuId}:${targetWuId}:${timestamp}:${randomBytes}`;
88
+ const hash = crypto.createHash('sha256').update(input).digest('hex');
89
+ return `dlg-${hash.slice(0, 4)}`;
90
+ }
91
+ //# sourceMappingURL=delegation-registry-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-registry-schema.js","sourceRoot":"","sources":["../src/delegation-registry-schema.ts"],"names":[],"mappings":"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"}