@litmers/cursorflow-orchestrator 0.1.40 → 0.2.3

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 (214) hide show
  1. package/CHANGELOG.md +0 -2
  2. package/README.md +8 -3
  3. package/commands/cursorflow-init.md +0 -4
  4. package/dist/cli/index.js +0 -6
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/cli/logs.js +108 -9
  7. package/dist/cli/logs.js.map +1 -1
  8. package/dist/cli/models.js +20 -3
  9. package/dist/cli/models.js.map +1 -1
  10. package/dist/cli/monitor.d.ts +7 -10
  11. package/dist/cli/monitor.js +1103 -1239
  12. package/dist/cli/monitor.js.map +1 -1
  13. package/dist/cli/resume.js +21 -1
  14. package/dist/cli/resume.js.map +1 -1
  15. package/dist/cli/run.js +28 -9
  16. package/dist/cli/run.js.map +1 -1
  17. package/dist/cli/signal.d.ts +6 -1
  18. package/dist/cli/signal.js +99 -13
  19. package/dist/cli/signal.js.map +1 -1
  20. package/dist/cli/tasks.js +3 -46
  21. package/dist/cli/tasks.js.map +1 -1
  22. package/dist/core/agent-supervisor.d.ts +23 -0
  23. package/dist/core/agent-supervisor.js +42 -0
  24. package/dist/core/agent-supervisor.js.map +1 -0
  25. package/dist/core/auto-recovery.d.ts +3 -117
  26. package/dist/core/auto-recovery.js +4 -482
  27. package/dist/core/auto-recovery.js.map +1 -1
  28. package/dist/core/failure-policy.d.ts +0 -53
  29. package/dist/core/failure-policy.js +7 -175
  30. package/dist/core/failure-policy.js.map +1 -1
  31. package/dist/core/git-lifecycle-manager.d.ts +284 -0
  32. package/dist/core/git-lifecycle-manager.js +778 -0
  33. package/dist/core/git-lifecycle-manager.js.map +1 -0
  34. package/dist/core/git-pipeline-coordinator.d.ts +21 -0
  35. package/dist/core/git-pipeline-coordinator.js +205 -0
  36. package/dist/core/git-pipeline-coordinator.js.map +1 -0
  37. package/dist/core/intervention.d.ts +170 -0
  38. package/dist/core/intervention.js +408 -0
  39. package/dist/core/intervention.js.map +1 -0
  40. package/dist/core/lane-state-machine.d.ts +423 -0
  41. package/dist/core/lane-state-machine.js +890 -0
  42. package/dist/core/lane-state-machine.js.map +1 -0
  43. package/dist/core/orchestrator.d.ts +4 -1
  44. package/dist/core/orchestrator.js +39 -65
  45. package/dist/core/orchestrator.js.map +1 -1
  46. package/dist/core/runner/agent.d.ts +7 -1
  47. package/dist/core/runner/agent.js +54 -36
  48. package/dist/core/runner/agent.js.map +1 -1
  49. package/dist/core/runner/pipeline.js +283 -123
  50. package/dist/core/runner/pipeline.js.map +1 -1
  51. package/dist/core/runner/task.d.ts +4 -5
  52. package/dist/core/runner/task.js +6 -80
  53. package/dist/core/runner/task.js.map +1 -1
  54. package/dist/core/runner.js +8 -2
  55. package/dist/core/runner.js.map +1 -1
  56. package/dist/core/stall-detection.d.ts +11 -4
  57. package/dist/core/stall-detection.js +64 -27
  58. package/dist/core/stall-detection.js.map +1 -1
  59. package/dist/hooks/contexts/index.d.ts +104 -0
  60. package/dist/hooks/contexts/index.js +134 -0
  61. package/dist/hooks/contexts/index.js.map +1 -0
  62. package/dist/hooks/data-accessor.d.ts +86 -0
  63. package/dist/hooks/data-accessor.js +410 -0
  64. package/dist/hooks/data-accessor.js.map +1 -0
  65. package/dist/hooks/flow-controller.d.ts +136 -0
  66. package/dist/hooks/flow-controller.js +351 -0
  67. package/dist/hooks/flow-controller.js.map +1 -0
  68. package/dist/hooks/index.d.ts +68 -0
  69. package/dist/hooks/index.js +105 -0
  70. package/dist/hooks/index.js.map +1 -0
  71. package/dist/hooks/manager.d.ts +129 -0
  72. package/dist/hooks/manager.js +389 -0
  73. package/dist/hooks/manager.js.map +1 -0
  74. package/dist/hooks/types.d.ts +463 -0
  75. package/dist/hooks/types.js +45 -0
  76. package/dist/hooks/types.js.map +1 -0
  77. package/dist/services/logging/buffer.d.ts +2 -2
  78. package/dist/services/logging/buffer.js +95 -42
  79. package/dist/services/logging/buffer.js.map +1 -1
  80. package/dist/services/logging/console.js +6 -1
  81. package/dist/services/logging/console.js.map +1 -1
  82. package/dist/services/logging/formatter.d.ts +9 -4
  83. package/dist/services/logging/formatter.js +64 -18
  84. package/dist/services/logging/formatter.js.map +1 -1
  85. package/dist/services/logging/index.d.ts +0 -1
  86. package/dist/services/logging/index.js +0 -1
  87. package/dist/services/logging/index.js.map +1 -1
  88. package/dist/services/logging/paths.d.ts +8 -0
  89. package/dist/services/logging/paths.js +48 -0
  90. package/dist/services/logging/paths.js.map +1 -0
  91. package/dist/services/logging/raw-log.d.ts +6 -0
  92. package/dist/services/logging/raw-log.js +37 -0
  93. package/dist/services/logging/raw-log.js.map +1 -0
  94. package/dist/services/process/index.js +1 -1
  95. package/dist/services/process/index.js.map +1 -1
  96. package/dist/types/agent.d.ts +15 -0
  97. package/dist/types/config.d.ts +22 -1
  98. package/dist/types/event-categories.d.ts +601 -0
  99. package/dist/types/event-categories.js +233 -0
  100. package/dist/types/event-categories.js.map +1 -0
  101. package/dist/types/events.d.ts +0 -20
  102. package/dist/types/flow.d.ts +10 -6
  103. package/dist/types/index.d.ts +1 -1
  104. package/dist/types/index.js +17 -3
  105. package/dist/types/index.js.map +1 -1
  106. package/dist/types/lane.d.ts +1 -1
  107. package/dist/types/logging.d.ts +1 -1
  108. package/dist/types/task.d.ts +12 -1
  109. package/dist/ui/log-viewer.d.ts +3 -0
  110. package/dist/ui/log-viewer.js +3 -0
  111. package/dist/ui/log-viewer.js.map +1 -1
  112. package/dist/utils/config.js +10 -1
  113. package/dist/utils/config.js.map +1 -1
  114. package/dist/utils/cursor-agent.d.ts +11 -1
  115. package/dist/utils/cursor-agent.js +63 -16
  116. package/dist/utils/cursor-agent.js.map +1 -1
  117. package/dist/utils/enhanced-logger.d.ts +5 -1
  118. package/dist/utils/enhanced-logger.js +98 -19
  119. package/dist/utils/enhanced-logger.js.map +1 -1
  120. package/dist/utils/event-registry.d.ts +222 -0
  121. package/dist/utils/event-registry.js +463 -0
  122. package/dist/utils/event-registry.js.map +1 -0
  123. package/dist/utils/events.d.ts +1 -13
  124. package/dist/utils/events.js.map +1 -1
  125. package/dist/utils/flow.d.ts +10 -0
  126. package/dist/utils/flow.js +75 -0
  127. package/dist/utils/flow.js.map +1 -1
  128. package/dist/utils/log-constants.d.ts +1 -0
  129. package/dist/utils/log-constants.js +2 -1
  130. package/dist/utils/log-constants.js.map +1 -1
  131. package/dist/utils/log-formatter.d.ts +2 -1
  132. package/dist/utils/log-formatter.js +10 -10
  133. package/dist/utils/log-formatter.js.map +1 -1
  134. package/dist/utils/logger.d.ts +11 -0
  135. package/dist/utils/logger.js +82 -3
  136. package/dist/utils/logger.js.map +1 -1
  137. package/dist/utils/repro-thinking-logs.js +0 -13
  138. package/dist/utils/repro-thinking-logs.js.map +1 -1
  139. package/dist/utils/run-service.js +1 -1
  140. package/dist/utils/run-service.js.map +1 -1
  141. package/examples/README.md +0 -2
  142. package/examples/demo-project/README.md +1 -2
  143. package/package.json +13 -34
  144. package/scripts/setup-security.sh +0 -1
  145. package/scripts/test-log-parser.ts +171 -0
  146. package/scripts/verify-change.sh +272 -0
  147. package/src/cli/index.ts +0 -6
  148. package/src/cli/logs.ts +121 -10
  149. package/src/cli/models.ts +20 -3
  150. package/src/cli/monitor.ts +1273 -1342
  151. package/src/cli/resume.ts +27 -1
  152. package/src/cli/run.ts +29 -11
  153. package/src/cli/signal.ts +120 -18
  154. package/src/cli/tasks.ts +2 -59
  155. package/src/core/agent-supervisor.ts +64 -0
  156. package/src/core/auto-recovery.ts +14 -590
  157. package/src/core/failure-policy.ts +7 -229
  158. package/src/core/git-lifecycle-manager.ts +1011 -0
  159. package/src/core/git-pipeline-coordinator.ts +221 -0
  160. package/src/core/intervention.ts +463 -0
  161. package/src/core/lane-state-machine.ts +1097 -0
  162. package/src/core/orchestrator.ts +48 -64
  163. package/src/core/runner/agent.ts +77 -39
  164. package/src/core/runner/pipeline.ts +318 -138
  165. package/src/core/runner/task.ts +12 -97
  166. package/src/core/runner.ts +8 -2
  167. package/src/core/stall-detection.ts +74 -27
  168. package/src/hooks/contexts/index.ts +256 -0
  169. package/src/hooks/data-accessor.ts +488 -0
  170. package/src/hooks/flow-controller.ts +425 -0
  171. package/src/hooks/index.ts +154 -0
  172. package/src/hooks/manager.ts +434 -0
  173. package/src/hooks/types.ts +544 -0
  174. package/src/services/logging/buffer.ts +104 -43
  175. package/src/services/logging/console.ts +7 -1
  176. package/src/services/logging/formatter.ts +74 -18
  177. package/src/services/logging/index.ts +0 -2
  178. package/src/services/logging/paths.ts +14 -0
  179. package/src/services/logging/raw-log.ts +43 -0
  180. package/src/services/process/index.ts +1 -1
  181. package/src/types/agent.ts +15 -0
  182. package/src/types/config.ts +23 -1
  183. package/src/types/event-categories.ts +663 -0
  184. package/src/types/events.ts +0 -25
  185. package/src/types/flow.ts +10 -6
  186. package/src/types/index.ts +50 -4
  187. package/src/types/lane.ts +1 -2
  188. package/src/types/logging.ts +2 -1
  189. package/src/types/task.ts +12 -1
  190. package/src/ui/log-viewer.ts +3 -0
  191. package/src/utils/config.ts +11 -1
  192. package/src/utils/cursor-agent.ts +68 -16
  193. package/src/utils/enhanced-logger.ts +105 -19
  194. package/src/utils/event-registry.ts +595 -0
  195. package/src/utils/events.ts +0 -16
  196. package/src/utils/flow.ts +83 -0
  197. package/src/utils/log-constants.ts +2 -1
  198. package/src/utils/log-formatter.ts +10 -11
  199. package/src/utils/logger.ts +49 -3
  200. package/src/utils/repro-thinking-logs.ts +0 -15
  201. package/src/utils/run-service.ts +1 -1
  202. package/dist/cli/prepare.d.ts +0 -7
  203. package/dist/cli/prepare.js +0 -690
  204. package/dist/cli/prepare.js.map +0 -1
  205. package/dist/services/logging/file-writer.d.ts +0 -71
  206. package/dist/services/logging/file-writer.js +0 -516
  207. package/dist/services/logging/file-writer.js.map +0 -1
  208. package/dist/types/review.d.ts +0 -17
  209. package/dist/types/review.js +0 -6
  210. package/dist/types/review.js.map +0 -1
  211. package/scripts/ai-security-check.js +0 -233
  212. package/src/cli/prepare.ts +0 -777
  213. package/src/services/logging/file-writer.ts +0 -526
  214. package/src/types/review.ts +0 -20
@@ -43,7 +43,6 @@ var __importStar = (this && this.__importStar) || (function () {
43
43
  };
44
44
  })();
45
45
  Object.defineProperty(exports, "__esModule", { value: true });
46
- exports.AutoRecoveryManager = exports.DEFAULT_AUTO_RECOVERY_CONFIG = exports.RecoveryStage = void 0;
47
46
  exports.getGitPushFailureGuidance = getGitPushFailureGuidance;
48
47
  exports.getMergeConflictGuidance = getMergeConflictGuidance;
49
48
  exports.getGitErrorGuidance = getGitErrorGuidance;
@@ -51,54 +50,9 @@ exports.savePOF = savePOF;
51
50
  exports.createPOFFromRecoveryState = createPOFFromRecoveryState;
52
51
  exports.loadPOF = loadPOF;
53
52
  exports.listPOFs = listPOFs;
54
- exports.getAutoRecoveryManager = getAutoRecoveryManager;
55
- exports.resetAutoRecoveryManager = resetAutoRecoveryManager;
56
53
  const fs = __importStar(require("fs"));
57
54
  const logger = __importStar(require("../utils/logger"));
58
- const events_1 = require("../utils/events");
59
55
  const path_1 = require("../utils/path");
60
- const health_1 = require("../utils/health");
61
- // ============================================================================
62
- // Types & Constants
63
- // ============================================================================
64
- /** Recovery stages for escalating interventions */
65
- var RecoveryStage;
66
- (function (RecoveryStage) {
67
- /** Normal operation - monitoring */
68
- RecoveryStage[RecoveryStage["NORMAL"] = 0] = "NORMAL";
69
- /** First intervention - send continue signal */
70
- RecoveryStage[RecoveryStage["CONTINUE_SIGNAL"] = 1] = "CONTINUE_SIGNAL";
71
- /** Second intervention - send stronger prompt */
72
- RecoveryStage[RecoveryStage["STRONGER_PROMPT"] = 2] = "STRONGER_PROMPT";
73
- /** Third intervention - kill and restart process */
74
- RecoveryStage[RecoveryStage["RESTART_PROCESS"] = 3] = "RESTART_PROCESS";
75
- /** Final stage - run doctor and report */
76
- RecoveryStage[RecoveryStage["DIAGNOSE"] = 4] = "DIAGNOSE";
77
- /** No more recovery possible */
78
- RecoveryStage[RecoveryStage["ABORT"] = 5] = "ABORT";
79
- })(RecoveryStage || (exports.RecoveryStage = RecoveryStage = {}));
80
- /** Default auto-recovery configuration */
81
- exports.DEFAULT_AUTO_RECOVERY_CONFIG = {
82
- idleTimeoutMs: 2 * 60 * 1000, // 2 minutes - idle detection
83
- continueGraceMs: 2 * 60 * 1000, // 2 minutes after continue
84
- strongerPromptGraceMs: 2 * 60 * 1000, // 2 minutes after stronger prompt
85
- maxRestarts: 2,
86
- runDoctorOnFailure: true,
87
- longOperationPatterns: [
88
- /installing\s+dependencies/i,
89
- /npm\s+(i|install|ci)/i,
90
- /pnpm\s+(i|install)/i,
91
- /yarn\s+(install)?/i,
92
- /building/i,
93
- /compiling/i,
94
- /bundling/i,
95
- /downloading/i,
96
- /fetching/i,
97
- /cloning/i,
98
- ],
99
- longOperationGraceMs: 10 * 60 * 1000, // 10 minutes for long ops
100
- verbose: false,
101
- };
102
56
  // ============================================================================
103
57
  // Guidance Messages for Git Issues
104
58
  // ============================================================================
@@ -160,422 +114,7 @@ ${errorMessage}
160
114
  작업을 계속 진행해주세요.`;
161
115
  }
162
116
  // ============================================================================
163
- // Recovery State Manager
164
- // ============================================================================
165
- /**
166
- * Manages recovery state for all lanes
167
- */
168
- class AutoRecoveryManager {
169
- config;
170
- laneStates = new Map();
171
- eventHandlers = new Map();
172
- constructor(config = {}) {
173
- this.config = { ...exports.DEFAULT_AUTO_RECOVERY_CONFIG, ...config };
174
- }
175
- /**
176
- * Register a lane for recovery monitoring
177
- */
178
- registerLane(laneName) {
179
- const now = Date.now();
180
- this.laneStates.set(laneName, {
181
- laneName,
182
- stage: RecoveryStage.NORMAL,
183
- lastActivityTime: now,
184
- lastBytesReceived: 0,
185
- totalBytesReceived: 0,
186
- lastOutput: '',
187
- restartCount: 0,
188
- continueSignalsSent: 0,
189
- lastStageChangeTime: now,
190
- isLongOperation: false,
191
- failureHistory: [],
192
- });
193
- if (this.config.verbose) {
194
- logger.info(`[AutoRecovery] Registered lane: ${laneName}`);
195
- }
196
- }
197
- /**
198
- * Unregister a lane from recovery monitoring
199
- */
200
- unregisterLane(laneName) {
201
- this.laneStates.delete(laneName);
202
- const handler = this.eventHandlers.get(laneName);
203
- if (handler) {
204
- this.eventHandlers.delete(laneName);
205
- }
206
- }
207
- /**
208
- * Record activity for a lane
209
- */
210
- recordActivity(laneName, bytesReceived = 0, output) {
211
- const state = this.laneStates.get(laneName);
212
- if (!state)
213
- return;
214
- const now = Date.now();
215
- // Only update activity time if we actually received bytes
216
- // This allows heartbeats to be recorded (for logs/bytes) without resetting the idle timer
217
- if (bytesReceived > 0) {
218
- state.lastActivityTime = now;
219
- state.lastBytesReceived = bytesReceived;
220
- state.totalBytesReceived += bytesReceived;
221
- }
222
- if (output) {
223
- state.lastOutput = output;
224
- // Check if this is a long operation
225
- state.isLongOperation = this.config.longOperationPatterns.some(p => p.test(output));
226
- }
227
- // Reset stage if we got meaningful activity
228
- if (bytesReceived > 0 && state.stage !== RecoveryStage.NORMAL) {
229
- if (this.config.verbose) {
230
- logger.info(`[AutoRecovery] [${laneName}] Activity detected, resetting to NORMAL stage`);
231
- }
232
- state.stage = RecoveryStage.NORMAL;
233
- state.lastStageChangeTime = now;
234
- }
235
- }
236
- /**
237
- * Get current recovery state for a lane
238
- */
239
- getState(laneName) {
240
- return this.laneStates.get(laneName);
241
- }
242
- /**
243
- * Check if a lane needs recovery intervention
244
- */
245
- needsIntervention(laneName) {
246
- const state = this.laneStates.get(laneName);
247
- if (!state)
248
- return false;
249
- const now = Date.now();
250
- const idleTime = now - state.lastActivityTime;
251
- // Use longer timeout for long operations
252
- const effectiveTimeout = state.isLongOperation
253
- ? this.config.longOperationGraceMs
254
- : this.config.idleTimeoutMs;
255
- // Check based on current stage
256
- switch (state.stage) {
257
- case RecoveryStage.NORMAL:
258
- return idleTime > effectiveTimeout;
259
- case RecoveryStage.CONTINUE_SIGNAL:
260
- return (now - state.lastStageChangeTime) > this.config.continueGraceMs;
261
- case RecoveryStage.STRONGER_PROMPT:
262
- return (now - state.lastStageChangeTime) > this.config.strongerPromptGraceMs;
263
- case RecoveryStage.RESTART_PROCESS:
264
- // After restart, use normal timeout to detect if it's working
265
- return idleTime > effectiveTimeout;
266
- case RecoveryStage.DIAGNOSE:
267
- case RecoveryStage.ABORT:
268
- return false; // No more interventions
269
- default:
270
- return false;
271
- }
272
- }
273
- /**
274
- * Get the next recovery action for a lane
275
- */
276
- async getRecoveryAction(laneName, laneRunDir, child) {
277
- const state = this.laneStates.get(laneName);
278
- if (!state) {
279
- return {
280
- success: false,
281
- action: 'none',
282
- message: 'Lane not registered',
283
- shouldContinue: false,
284
- };
285
- }
286
- const now = Date.now();
287
- const idleTime = now - state.lastActivityTime;
288
- const idleSeconds = Math.round(idleTime / 1000);
289
- switch (state.stage) {
290
- case RecoveryStage.NORMAL:
291
- // Escalate to CONTINUE_SIGNAL
292
- return await this.sendContinueSignal(laneName, laneRunDir, state, idleSeconds);
293
- case RecoveryStage.CONTINUE_SIGNAL:
294
- // Try a stronger prompt
295
- return await this.sendStrongerPrompt(laneName, laneRunDir, state);
296
- case RecoveryStage.STRONGER_PROMPT:
297
- // Try restarting the process
298
- if (state.restartCount < this.config.maxRestarts) {
299
- return await this.requestRestart(laneName, state, child);
300
- }
301
- // Fall through to diagnose
302
- state.stage = RecoveryStage.DIAGNOSE;
303
- state.lastStageChangeTime = now;
304
- return await this.runDiagnosis(laneName, laneRunDir, state);
305
- case RecoveryStage.RESTART_PROCESS:
306
- // After restart, if still no response, diagnose
307
- if (state.restartCount >= this.config.maxRestarts) {
308
- state.stage = RecoveryStage.DIAGNOSE;
309
- state.lastStageChangeTime = now;
310
- return await this.runDiagnosis(laneName, laneRunDir, state);
311
- }
312
- // Try continue signal again after restart
313
- return await this.sendContinueSignal(laneName, laneRunDir, state, idleSeconds);
314
- case RecoveryStage.DIAGNOSE:
315
- // Final stage - abort
316
- state.stage = RecoveryStage.ABORT;
317
- state.lastStageChangeTime = now;
318
- return {
319
- success: false,
320
- action: 'abort',
321
- message: `Lane ${laneName} failed after all recovery attempts`,
322
- shouldContinue: false,
323
- nextStage: RecoveryStage.ABORT,
324
- diagnostic: state.diagnosticInfo,
325
- };
326
- default:
327
- return {
328
- success: false,
329
- action: 'abort',
330
- message: 'Recovery exhausted',
331
- shouldContinue: false,
332
- };
333
- }
334
- }
335
- /**
336
- * Send a continue signal to the lane
337
- */
338
- async sendContinueSignal(laneName, laneRunDir, state, idleSeconds) {
339
- const interventionPath = (0, path_1.safeJoin)(laneRunDir, 'intervention.txt');
340
- try {
341
- fs.writeFileSync(interventionPath, 'continue');
342
- state.stage = RecoveryStage.CONTINUE_SIGNAL;
343
- state.lastStageChangeTime = Date.now();
344
- state.continueSignalsSent++;
345
- // Record failure history
346
- state.failureHistory.push({
347
- timestamp: Date.now(),
348
- stage: RecoveryStage.CONTINUE_SIGNAL,
349
- action: 'continue_signal',
350
- message: `Idle for ${idleSeconds}s`,
351
- idleTimeMs: idleSeconds * 1000,
352
- bytesReceived: state.totalBytesReceived,
353
- lastOutput: state.lastOutput,
354
- });
355
- const message = `[${laneName}] Idle for ${idleSeconds}s - sent continue signal (#${state.continueSignalsSent})`;
356
- logger.warn(message);
357
- events_1.events.emit('recovery.continue_signal', {
358
- laneName,
359
- idleSeconds,
360
- signalCount: state.continueSignalsSent,
361
- });
362
- return {
363
- success: true,
364
- action: 'continue_signal',
365
- message,
366
- shouldContinue: true,
367
- nextStage: RecoveryStage.CONTINUE_SIGNAL,
368
- };
369
- }
370
- catch (error) {
371
- logger.error(`[AutoRecovery] Failed to send continue signal to ${laneName}: ${error.message}`);
372
- return {
373
- success: false,
374
- action: 'continue_signal',
375
- message: `Failed to send continue signal: ${error.message}`,
376
- shouldContinue: true,
377
- };
378
- }
379
- }
380
- /**
381
- * Send a stronger prompt to nudge the agent
382
- */
383
- async sendStrongerPrompt(laneName, laneRunDir, state) {
384
- const interventionPath = (0, path_1.safeJoin)(laneRunDir, 'intervention.txt');
385
- const strongerPrompt = `[SYSTEM INTERVENTION] You seem to be stuck or waiting.
386
- Please continue with your current task immediately.
387
- If you're waiting for something, explain what you need and proceed with what you can do now.
388
- If you've completed the task, please summarize your work and finish.
389
- If you encountered a git error, resolve it and continue.`;
390
- try {
391
- fs.writeFileSync(interventionPath, strongerPrompt);
392
- state.stage = RecoveryStage.STRONGER_PROMPT;
393
- state.lastStageChangeTime = Date.now();
394
- // Record failure history
395
- state.failureHistory.push({
396
- timestamp: Date.now(),
397
- stage: RecoveryStage.STRONGER_PROMPT,
398
- action: 'stronger_prompt',
399
- message: 'Still idle after continue signal',
400
- idleTimeMs: Date.now() - state.lastActivityTime,
401
- bytesReceived: state.totalBytesReceived,
402
- lastOutput: state.lastOutput,
403
- });
404
- const message = `[${laneName}] Still idle after continue signal - sent stronger prompt`;
405
- logger.warn(message);
406
- events_1.events.emit('recovery.stronger_prompt', {
407
- laneName,
408
- prompt: strongerPrompt,
409
- });
410
- return {
411
- success: true,
412
- action: 'stronger_prompt',
413
- message,
414
- shouldContinue: true,
415
- nextStage: RecoveryStage.STRONGER_PROMPT,
416
- };
417
- }
418
- catch (error) {
419
- logger.error(`[AutoRecovery] Failed to send stronger prompt to ${laneName}: ${error.message}`);
420
- return {
421
- success: false,
422
- action: 'stronger_prompt',
423
- message: `Failed to send stronger prompt: ${error.message}`,
424
- shouldContinue: true,
425
- };
426
- }
427
- }
428
- /**
429
- * Request process restart
430
- */
431
- async requestRestart(laneName, state, child) {
432
- state.restartCount++;
433
- state.stage = RecoveryStage.RESTART_PROCESS;
434
- state.lastStageChangeTime = Date.now();
435
- // Record failure history
436
- state.failureHistory.push({
437
- timestamp: Date.now(),
438
- stage: RecoveryStage.RESTART_PROCESS,
439
- action: 'restart',
440
- message: `Restart attempt ${state.restartCount}/${this.config.maxRestarts}`,
441
- idleTimeMs: Date.now() - state.lastActivityTime,
442
- bytesReceived: state.totalBytesReceived,
443
- lastOutput: state.lastOutput,
444
- });
445
- // Kill the current process if provided
446
- if (child && child.pid && !child.killed) {
447
- try {
448
- child.kill('SIGKILL');
449
- logger.info(`[AutoRecovery] [${laneName}] Killed process ${child.pid}`);
450
- }
451
- catch (error) {
452
- logger.warn(`[AutoRecovery] [${laneName}] Failed to kill process: ${error.message}`);
453
- }
454
- }
455
- const message = `[${laneName}] Restarting lane (attempt ${state.restartCount}/${this.config.maxRestarts})`;
456
- logger.warn(message);
457
- events_1.events.emit('recovery.restart', {
458
- laneName,
459
- restartCount: state.restartCount,
460
- maxRestarts: this.config.maxRestarts,
461
- });
462
- return {
463
- success: true,
464
- action: 'restart',
465
- message,
466
- shouldContinue: true,
467
- nextStage: RecoveryStage.RESTART_PROCESS,
468
- };
469
- }
470
- /**
471
- * Run diagnostic checks
472
- */
473
- async runDiagnosis(laneName, laneRunDir, state) {
474
- if (!this.config.runDoctorOnFailure) {
475
- return {
476
- success: false,
477
- action: 'diagnose',
478
- message: 'Diagnosis skipped (disabled in config)',
479
- shouldContinue: false,
480
- };
481
- }
482
- logger.info(`[AutoRecovery] [${laneName}] Running diagnostic checks...`);
483
- try {
484
- // Run health checks
485
- const [agentHealth, authHealth] = await Promise.all([
486
- (0, health_1.checkAgentHealth)(),
487
- (0, health_1.checkAuthHealth)(),
488
- ]);
489
- const systemHealth = await (0, health_1.runHealthCheck)({ skipRemote: true, skipAuth: true });
490
- const diagnostic = {
491
- timestamp: Date.now(),
492
- agentHealthy: agentHealth.ok,
493
- authHealthy: authHealth.ok,
494
- systemHealthy: systemHealth.healthy,
495
- suggestedAction: '',
496
- details: '',
497
- };
498
- // Analyze and suggest action
499
- const issues = [];
500
- if (!agentHealth.ok) {
501
- issues.push(`Agent: ${agentHealth.message}`);
502
- }
503
- if (!authHealth.ok) {
504
- issues.push(`Auth: ${authHealth.message}`);
505
- diagnostic.suggestedAction = 'Please sign in to Cursor IDE and verify authentication';
506
- }
507
- if (!systemHealth.healthy) {
508
- const failedChecks = systemHealth.checks.filter(c => !c.ok);
509
- issues.push(`System: ${failedChecks.map(c => c.message).join(', ')}`);
510
- }
511
- if (issues.length === 0) {
512
- diagnostic.details = 'All health checks passed. The issue may be with the AI model or network.';
513
- diagnostic.suggestedAction = 'Try resuming with a different model or wait and retry.';
514
- }
515
- else {
516
- diagnostic.details = issues.join('\n');
517
- }
518
- state.diagnosticInfo = diagnostic;
519
- // Record failure history
520
- state.failureHistory.push({
521
- timestamp: Date.now(),
522
- stage: RecoveryStage.DIAGNOSE,
523
- action: 'diagnose',
524
- message: diagnostic.details,
525
- idleTimeMs: Date.now() - state.lastActivityTime,
526
- bytesReceived: state.totalBytesReceived,
527
- lastOutput: state.lastOutput,
528
- });
529
- // Save diagnostic to file
530
- const diagnosticPath = (0, path_1.safeJoin)(laneRunDir, 'diagnostic.json');
531
- fs.writeFileSync(diagnosticPath, JSON.stringify(diagnostic, null, 2));
532
- const message = `[${laneName}] Diagnostic complete:\n${diagnostic.details}\nSuggested action: ${diagnostic.suggestedAction}`;
533
- logger.error(message);
534
- events_1.events.emit('recovery.diagnosed', {
535
- laneName,
536
- diagnostic,
537
- });
538
- return {
539
- success: true,
540
- action: 'diagnose',
541
- message,
542
- shouldContinue: false,
543
- diagnostic,
544
- };
545
- }
546
- catch (error) {
547
- logger.error(`[AutoRecovery] Diagnostic failed: ${error.message}`);
548
- return {
549
- success: false,
550
- action: 'diagnose',
551
- message: `Diagnostic failed: ${error.message}`,
552
- shouldContinue: false,
553
- };
554
- }
555
- }
556
- /**
557
- * Get failure history for a lane
558
- */
559
- getFailureHistory(laneName) {
560
- const state = this.laneStates.get(laneName);
561
- return state?.failureHistory || [];
562
- }
563
- /**
564
- * Get configuration
565
- */
566
- getConfig() {
567
- return { ...this.config };
568
- }
569
- /**
570
- * Update configuration
571
- */
572
- updateConfig(config) {
573
- this.config = { ...this.config, ...config };
574
- }
575
- }
576
- exports.AutoRecoveryManager = AutoRecoveryManager;
577
- // ============================================================================
578
- // POF (Post-mortem of Failure) Management
117
+ // Post-Mortem of Failure (POF) Management
579
118
  // ============================================================================
580
119
  /**
581
120
  * Save a POF entry to the pof directory
@@ -716,24 +255,7 @@ function listPOFs(pofDir) {
716
255
  // ============================================================================
717
256
  // Exports
718
257
  // ============================================================================
719
- /** Singleton instance for easy access */
720
- let defaultManager = null;
721
- /**
722
- * Get or create the default auto-recovery manager
723
- */
724
- function getAutoRecoveryManager(config) {
725
- if (!defaultManager) {
726
- defaultManager = new AutoRecoveryManager(config);
727
- }
728
- else if (config) {
729
- defaultManager.updateConfig(config);
730
- }
731
- return defaultManager;
732
- }
733
- /**
734
- * Reset the default manager (for testing)
735
- */
736
- function resetAutoRecoveryManager() {
737
- defaultManager = null;
738
- }
258
+ // AutoRecoveryManager class removed. All stall detection and recovery logic
259
+ // has been moved to StallDetectionService in ./stall-detection.ts.
260
+ // Utility functions for POF and git guidance are kept below.
739
261
  //# sourceMappingURL=auto-recovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-recovery.js","sourceRoot":"","sources":["../../src/core/auto-recovery.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6JH,8DAoBC;AAGD,4DAqBC;AAGD,kDAUC;AA2fD,0BAwCC;AAKD,gEA8EC;AAKD,0BAaC;AAKD,4BAQC;AAYD,wDAOC;AAKD,4DAEC;AAn4BD,uCAAyB;AAGzB,wDAA0C;AAE1C,4CAAyC;AACzC,wCAAyC;AACzC,4CAAoF;AAEpF,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,mDAAmD;AACnD,IAAY,aAaX;AAbD,WAAY,aAAa;IACvB,oCAAoC;IACpC,qDAAU,CAAA;IACV,gDAAgD;IAChD,uEAAmB,CAAA;IACnB,iDAAiD;IACjD,uEAAmB,CAAA;IACnB,oDAAoD;IACpD,uEAAmB,CAAA;IACnB,0CAA0C;IAC1C,yDAAY,CAAA;IACZ,gCAAgC;IAChC,mDAAS,CAAA;AACX,CAAC,EAbW,aAAa,6BAAb,aAAa,QAaxB;AAsBD,0CAA0C;AAC7B,QAAA,4BAA4B,GAAuB;IAC9D,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAW,6BAA6B;IACpE,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAS,2BAA2B;IAClE,qBAAqB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAG,kCAAkC;IACzE,WAAW,EAAE,CAAC;IACd,kBAAkB,EAAE,IAAI;IACxB,qBAAqB,EAAE;QACrB,4BAA4B;QAC5B,uBAAuB;QACvB,qBAAqB;QACrB,oBAAoB;QACpB,WAAW;QACX,YAAY;QACZ,WAAW;QACX,cAAc;QACd,WAAW;QACX,UAAU;KACX;IACD,oBAAoB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAG,0BAA0B;IACjE,OAAO,EAAE,KAAK;CACf,CAAC;AAgFF,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAE/E,qDAAqD;AACrD,SAAgB,yBAAyB;IACvC,OAAO;;;;;;;;;;;;;;;;;;eAkBM,CAAC;AAChB,CAAC;AAED,mDAAmD;AACnD,SAAgB,wBAAwB;IACtC,OAAO;;;;;;;;;;;;;;;;;;;eAmBM,CAAC;AAChB,CAAC;AAED,sDAAsD;AACtD,SAAgB,mBAAmB,CAAC,YAAoB;IACtD,OAAO;EACP,YAAY;;;;;;;eAOC,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;GAEG;AACH,MAAa,mBAAmB;IACtB,MAAM,CAAqB;IAC3B,UAAU,GAAmC,IAAI,GAAG,EAAE,CAAC;IACvD,aAAa,GAA4B,IAAI,GAAG,EAAE,CAAC;IAE3D,YAAY,SAAsC,EAAE;QAClD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,oCAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAAgB;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE;YAC5B,QAAQ;YACR,KAAK,EAAE,aAAa,CAAC,MAAM;YAC3B,gBAAgB,EAAE,GAAG;YACrB,iBAAiB,EAAE,CAAC;YACpB,kBAAkB,EAAE,CAAC;YACrB,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,CAAC;YACf,mBAAmB,EAAE,CAAC;YACtB,mBAAmB,EAAE,GAAG;YACxB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,EAAE;SACnB,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAAgB;QAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAAgB,EAAE,gBAAwB,CAAC,EAAE,MAAe;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,0DAA0D;QAC1D,0FAA0F;QAC1F,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC;YAC7B,KAAK,CAAC,iBAAiB,GAAG,aAAa,CAAC;YACxC,KAAK,CAAC,kBAAkB,IAAI,aAAa,CAAC;QAC5C,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;YAC1B,oCAAoC;YACpC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACtF,CAAC;QAED,4CAA4C;QAC5C,IAAI,aAAa,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;YAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,mBAAmB,QAAQ,gDAAgD,CAAC,CAAC;YAC3F,CAAC;YACD,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;YACnC,KAAK,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAgB;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,QAAgB;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAEzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAE9C,yCAAyC;QACzC,MAAM,gBAAgB,GAAG,KAAK,CAAC,eAAe;YAC5C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB;YAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAE9B,+BAA+B;QAC/B,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,KAAK,aAAa,CAAC,MAAM;gBACvB,OAAO,QAAQ,GAAG,gBAAgB,CAAC;YAErC,KAAK,aAAa,CAAC,eAAe;gBAChC,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAEzE,KAAK,aAAa,CAAC,eAAe;gBAChC,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC;YAE/E,KAAK,aAAa,CAAC,eAAe;gBAChC,8DAA8D;gBAC9D,OAAO,QAAQ,GAAG,gBAAgB,CAAC;YAErC,KAAK,aAAa,CAAC,QAAQ,CAAC;YAC5B,KAAK,aAAa,CAAC,KAAK;gBACtB,OAAO,KAAK,CAAC,CAAC,wBAAwB;YAExC;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,QAAgB,EAChB,UAAkB,EAClB,KAAoB;QAEpB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,qBAAqB;gBAC9B,cAAc,EAAE,KAAK;aACtB,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QAEhD,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,KAAK,aAAa,CAAC,MAAM;gBACvB,8BAA8B;gBAC9B,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YAEjF,KAAK,aAAa,CAAC,eAAe;gBAChC,wBAAwB;gBACxB,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YAEpE,KAAK,aAAa,CAAC,eAAe;gBAChC,6BAA6B;gBAC7B,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBACjD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC3D,CAAC;gBACD,2BAA2B;gBAC3B,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC;gBACrC,KAAK,CAAC,mBAAmB,GAAG,GAAG,CAAC;gBAChC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YAE9D,KAAK,aAAa,CAAC,eAAe;gBAChC,gDAAgD;gBAChD,IAAI,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBAClD,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC;oBACrC,KAAK,CAAC,mBAAmB,GAAG,GAAG,CAAC;oBAChC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC;gBACD,0CAA0C;gBAC1C,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YAEjF,KAAK,aAAa,CAAC,QAAQ;gBACzB,sBAAsB;gBACtB,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;gBAClC,KAAK,CAAC,mBAAmB,GAAG,GAAG,CAAC;gBAChC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,QAAQ,QAAQ,qCAAqC;oBAC9D,cAAc,EAAE,KAAK;oBACrB,SAAS,EAAE,aAAa,CAAC,KAAK;oBAC9B,UAAU,EAAE,KAAK,CAAC,cAAc;iBACjC,CAAC;YAEJ;gBACE,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,oBAAoB;oBAC7B,cAAc,EAAE,KAAK;iBACtB,CAAC;QACN,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAC9B,QAAgB,EAChB,UAAkB,EAClB,KAAwB,EACxB,WAAmB;QAEnB,MAAM,gBAAgB,GAAG,IAAA,eAAQ,EAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;YAE/C,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,eAAe,CAAC;YAC5C,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvC,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAE5B,yBAAyB;YACzB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;gBACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,KAAK,EAAE,aAAa,CAAC,eAAe;gBACpC,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,YAAY,WAAW,GAAG;gBACnC,UAAU,EAAE,WAAW,GAAG,IAAI;gBAC9B,aAAa,EAAE,KAAK,CAAC,kBAAkB;gBACvC,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,QAAQ,cAAc,WAAW,8BAA8B,KAAK,CAAC,mBAAmB,GAAG,CAAC;YAChH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAErB,eAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBACtC,QAAQ;gBACR,WAAW;gBACX,WAAW,EAAE,KAAK,CAAC,mBAAmB;aACvC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,iBAAiB;gBACzB,OAAO;gBACP,cAAc,EAAE,IAAI;gBACpB,SAAS,EAAE,aAAa,CAAC,eAAe;aACzC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,oDAAoD,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/F,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,mCAAmC,KAAK,CAAC,OAAO,EAAE;gBAC3D,cAAc,EAAE,IAAI;aACrB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAC9B,QAAgB,EAChB,UAAkB,EAClB,KAAwB;QAExB,MAAM,gBAAgB,GAAG,IAAA,eAAQ,EAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAElE,MAAM,cAAc,GAAG;;;;yDAI8B,CAAC;QAEtD,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;YAEnD,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,eAAe,CAAC;YAC5C,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvC,yBAAyB;YACzB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;gBACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,KAAK,EAAE,aAAa,CAAC,eAAe;gBACpC,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,kCAAkC;gBAC3C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,gBAAgB;gBAC/C,aAAa,EAAE,KAAK,CAAC,kBAAkB;gBACvC,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,QAAQ,2DAA2D,CAAC;YACxF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAErB,eAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBACtC,QAAQ;gBACR,MAAM,EAAE,cAAc;aACvB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,iBAAiB;gBACzB,OAAO;gBACP,cAAc,EAAE,IAAI;gBACpB,SAAS,EAAE,aAAa,CAAC,eAAe;aACzC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,oDAAoD,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/F,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,mCAAmC,KAAK,CAAC,OAAO,EAAE;gBAC3D,cAAc,EAAE,IAAI;aACrB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAC1B,QAAgB,EAChB,KAAwB,EACxB,KAAoB;QAEpB,KAAK,CAAC,YAAY,EAAE,CAAC;QACrB,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,eAAe,CAAC;QAC5C,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvC,yBAAyB;QACzB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;YACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,KAAK,EAAE,aAAa,CAAC,eAAe;YACpC,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,mBAAmB,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAC3E,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,gBAAgB;YAC/C,aAAa,EAAE,KAAK,CAAC,kBAAkB;YACvC,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC,CAAC;QAEH,uCAAuC;QACvC,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,mBAAmB,QAAQ,oBAAoB,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1E,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,mBAAmB,QAAQ,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,QAAQ,8BAA8B,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC;QAC3G,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAErB,eAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC9B,QAAQ;YACR,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;SACrC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,SAAS;YACjB,OAAO;YACP,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,aAAa,CAAC,eAAe;SACzC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,QAAgB,EAChB,UAAkB,EAClB,KAAwB;QAExB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACpC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,wCAAwC;gBACjD,cAAc,EAAE,KAAK;aACtB,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,mBAAmB,QAAQ,gCAAgC,CAAC,CAAC;QAEzE,IAAI,CAAC;YACH,oBAAoB;YACpB,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAClD,IAAA,yBAAgB,GAAE;gBAClB,IAAA,wBAAe,GAAE;aAClB,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,IAAA,uBAAc,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAEhF,MAAM,UAAU,GAAmB;gBACjC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,YAAY,EAAE,WAAW,CAAC,EAAE;gBAC5B,WAAW,EAAE,UAAU,CAAC,EAAE;gBAC1B,aAAa,EAAE,YAAY,CAAC,OAAO;gBACnC,eAAe,EAAE,EAAE;gBACnB,OAAO,EAAE,EAAE;aACZ,CAAC;YAEF,6BAA6B;YAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;YAE5B,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,UAAU,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3C,UAAU,CAAC,eAAe,GAAG,wDAAwD,CAAC;YACxF,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC1B,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5D,MAAM,CAAC,IAAI,CAAC,WAAW,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,UAAU,CAAC,OAAO,GAAG,0EAA0E,CAAC;gBAChG,UAAU,CAAC,eAAe,GAAG,wDAAwD,CAAC;YACxF,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YAED,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC;YAElC,yBAAyB;YACzB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;gBACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,KAAK,EAAE,aAAa,CAAC,QAAQ;gBAC7B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,gBAAgB;gBAC/C,aAAa,EAAE,KAAK,CAAC,kBAAkB;gBACvC,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;YAEH,0BAA0B;YAC1B,MAAM,cAAc,GAAG,IAAA,eAAQ,EAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;YAC/D,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAEtE,MAAM,OAAO,GAAG,IAAI,QAAQ,2BAA2B,UAAU,CAAC,OAAO,uBAAuB,UAAU,CAAC,eAAe,EAAE,CAAC;YAC7H,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEtB,eAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAChC,QAAQ;gBACR,UAAU;aACX,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,UAAU;gBAClB,OAAO;gBACP,cAAc,EAAE,KAAK;gBACrB,UAAU;aACX,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,sBAAsB,KAAK,CAAC,OAAO,EAAE;gBAC9C,cAAc,EAAE,KAAK;aACtB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,QAAgB;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,KAAK,EAAE,cAAc,IAAI,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAmC;QAC9C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9C,CAAC;CACF;AAzeD,kDAyeC;AAED,+EAA+E;AAC/E,0CAA0C;AAC1C,+EAA+E;AAE/E;;GAEG;AACH,SAAgB,OAAO,CACrB,KAAa,EACb,MAAc,EACd,KAAe;IAEf,8BAA8B;IAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,eAAQ,EAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC;IAEtD,IAAI,WAAW,GAAoB,IAAI,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9C,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;IACnD,CAAC;IAED,yDAAyD;IACzD,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACtD,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,mDAAmD;IACnD,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;IAChF,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACnE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,+CAA+C;QAC/C,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACpF,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;IAErD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAgB,0BAA0B,CACxC,KAAa,EACb,MAAc,EACd,QAAgB,EAChB,KAAwB,EACxB,SAA2B,EAC3B,UAA2B;IAE3B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,4BAA4B;IAC5B,IAAI,aAAa,GAAG,mBAAmB,CAAC;IACxC,IAAI,oBAAoB,GAAG,2EAA2E,CAAC;IACvG,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,EAAE,CAAC;QACnC,aAAa,GAAG,mBAAmB,CAAC;QACpC,oBAAoB,GAAG,kEAAkE,CAAC;QAC1F,QAAQ,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;QACnC,aAAa,GAAG,gBAAgB,CAAC;QACjC,oBAAoB,GAAG,kEAAkE,CAAC;QAC1F,QAAQ,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,YAAY,wBAAwB,CAAC,CAAC;IACzE,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACnE,QAAQ,CAAC,IAAI,CAAC,0BAA0B,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACrE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAEvE,sCAAsC;IACtC,MAAM,cAAc,GAAa;QAC/B,2CAA2C;QAC3C,qCAAqC;QACrC,6BAA6B;QAC7B,6CAA6C;KAC9C,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YAC7B,cAAc,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC5B,cAAc,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAa;QACtB,KAAK,EAAE,yBAAyB;QAChC,KAAK;QACL,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE;QAC9B,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE;QAC7B,OAAO,EAAE,QAAQ,QAAQ,iBAAiB,KAAK,CAAC,YAAY,mBAAmB,KAAK,CAAC,mBAAmB,qBAAqB;QAC7H,SAAS,EAAE;YACT,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,oBAAoB;YACjC,QAAQ;SACT;QACD,aAAa,EAAE;YACb;gBACE,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,SAAS;gBAClG,SAAS,EAAE,SAAS,EAAE,gBAAgB,IAAI,CAAC;gBAC3C,GAAG,EAAE,SAAS,EAAE,GAAG;gBACnB,MAAM,EAAE,oBAAoB;gBAC5B,gBAAgB,EAAE,KAAK,CAAC,cAAc;aACvC;SACF;QACD,cAAc;QACd,QAAQ,EAAE;YACR,OAAO,EAAE,qCAAqC,MAAM,EAAE;YACtD,WAAW,EAAE,oDAAoD;YACjE,kBAAkB,EAAE,+CAA+C,MAAM,EAAE;YAC3E,sBAAsB,EAAE,6CAA6C;SACtE;KACF,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,MAAc,EAAE,KAAa;IACnD,MAAM,OAAO,GAAG,IAAA,eAAQ,EAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC;IAEtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,iCAAiC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,MAAc;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACxD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,eAAQ,EAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,yCAAyC;AACzC,IAAI,cAAc,GAA+B,IAAI,CAAC;AAEtD;;GAEG;AACH,SAAgB,sBAAsB,CAAC,MAAoC;IACzE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB;IACtC,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"auto-recovery.js","sourceRoot":"","sources":["../../src/core/auto-recovery.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,6 @@ export declare enum FailureType {
19
19
  DEPENDENCY_BLOCK = "DEPENDENCY_BLOCK",
20
20
  DEPENDENCY_FAILED = "DEPENDENCY_FAILED",
21
21
  DEPENDENCY_TIMEOUT = "DEPENDENCY_TIMEOUT",
22
- REVIEW_FAIL = "REVIEW_FAIL",
23
22
  GIT_ERROR = "GIT_ERROR",
24
23
  GIT_PUSH_REJECTED = "GIT_PUSH_REJECTED",
25
24
  MERGE_CONFLICT = "MERGE_CONFLICT",
@@ -53,39 +52,6 @@ export interface FailureAnalysis {
53
52
  /**
54
53
  * Multi-layer stall detection configuration
55
54
  */
56
- export interface StallDetectionConfig {
57
- /** Time without stdout activity before sending continue signal */
58
- idleTimeoutMs: number;
59
- /** Time without state file update before considering stalled */
60
- progressTimeoutMs: number;
61
- /** Maximum time for a single task */
62
- taskTimeoutMs: number;
63
- /** Grace period for known long operations (e.g., npm install) */
64
- longOperationGraceMs: number;
65
- /** Patterns that indicate long operations */
66
- longOperationPatterns: RegExp[];
67
- /** Maximum restarts before aborting */
68
- maxRestarts: number;
69
- }
70
- export declare const DEFAULT_STALL_CONFIG: StallDetectionConfig;
71
- export interface StallContext {
72
- /** Current stall phase (0: normal, 1: continued, 2: stronger_prompt, 3: restarted) */
73
- stallPhase: number;
74
- /** Time since last activity */
75
- idleTimeMs: number;
76
- /** Time since last state update */
77
- progressTimeMs?: number;
78
- /** Last output line (for long operation detection) */
79
- lastOutput?: string;
80
- /** Number of restarts */
81
- restartCount?: number;
82
- /** Task start time */
83
- taskStartTimeMs?: number;
84
- /** Bytes received since last check (0 = no response at all) */
85
- bytesReceived?: number;
86
- /** Number of continue signals already sent */
87
- continueSignalsSent?: number;
88
- }
89
55
  export interface FailureContext {
90
56
  exitCode?: number;
91
57
  stallPhase?: number;
@@ -97,25 +63,6 @@ export interface FailureContext {
97
63
  taskStartTimeMs?: number;
98
64
  circuitBreakerName?: string;
99
65
  }
100
- /**
101
- * Analyze stall condition with multi-layer detection and escalating recovery
102
- *
103
- * @deprecated Use StallDetectionService from './stall-detection' instead.
104
- * This function is kept for backward compatibility but will be removed in a future version.
105
- *
106
- * The new unified StallDetectionService provides:
107
- * - Single source of truth for stall state
108
- * - Automatic recovery action execution
109
- * - Better heartbeat filtering
110
- * - Consistent state management
111
- *
112
- * Recovery escalation stages:
113
- * 1. Phase 0 → Phase 1: Send continue signal (after 2 min idle)
114
- * 2. Phase 1 → Phase 2: Send stronger prompt (after 2 min grace)
115
- * 3. Phase 2 → Phase 3: Kill and restart process (after 2 min grace)
116
- * 4. Phase 3+: Abort after max restarts exceeded
117
- */
118
- export declare function analyzeStall(context: StallContext, config?: StallDetectionConfig): FailureAnalysis;
119
66
  /**
120
67
  * Analyze an error message or state to determine the failure type and recovery action
121
68
  */