@litmers/cursorflow-orchestrator 0.1.40 → 0.2.2

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 (207) hide show
  1. package/CHANGELOG.md +0 -2
  2. package/README.md +7 -3
  3. package/commands/cursorflow-init.md +0 -4
  4. package/dist/cli/logs.js +108 -9
  5. package/dist/cli/logs.js.map +1 -1
  6. package/dist/cli/models.js +20 -3
  7. package/dist/cli/models.js.map +1 -1
  8. package/dist/cli/monitor.d.ts +7 -10
  9. package/dist/cli/monitor.js +1088 -1240
  10. package/dist/cli/monitor.js.map +1 -1
  11. package/dist/cli/resume.js +21 -1
  12. package/dist/cli/resume.js.map +1 -1
  13. package/dist/cli/run.js +28 -9
  14. package/dist/cli/run.js.map +1 -1
  15. package/dist/cli/signal.d.ts +6 -1
  16. package/dist/cli/signal.js +94 -12
  17. package/dist/cli/signal.js.map +1 -1
  18. package/dist/cli/tasks.js +3 -46
  19. package/dist/cli/tasks.js.map +1 -1
  20. package/dist/core/agent-supervisor.d.ts +23 -0
  21. package/dist/core/agent-supervisor.js +42 -0
  22. package/dist/core/agent-supervisor.js.map +1 -0
  23. package/dist/core/auto-recovery.d.ts +2 -1
  24. package/dist/core/auto-recovery.js +6 -1
  25. package/dist/core/auto-recovery.js.map +1 -1
  26. package/dist/core/failure-policy.d.ts +0 -1
  27. package/dist/core/failure-policy.js +0 -1
  28. package/dist/core/failure-policy.js.map +1 -1
  29. package/dist/core/git-lifecycle-manager.d.ts +284 -0
  30. package/dist/core/git-lifecycle-manager.js +778 -0
  31. package/dist/core/git-lifecycle-manager.js.map +1 -0
  32. package/dist/core/git-pipeline-coordinator.d.ts +21 -0
  33. package/dist/core/git-pipeline-coordinator.js +205 -0
  34. package/dist/core/git-pipeline-coordinator.js.map +1 -0
  35. package/dist/core/intervention.d.ts +176 -0
  36. package/dist/core/intervention.js +424 -0
  37. package/dist/core/intervention.js.map +1 -0
  38. package/dist/core/lane-state-machine.d.ts +423 -0
  39. package/dist/core/lane-state-machine.js +890 -0
  40. package/dist/core/lane-state-machine.js.map +1 -0
  41. package/dist/core/orchestrator.d.ts +4 -1
  42. package/dist/core/orchestrator.js +29 -62
  43. package/dist/core/orchestrator.js.map +1 -1
  44. package/dist/core/runner/agent.d.ts +7 -1
  45. package/dist/core/runner/agent.js +45 -30
  46. package/dist/core/runner/agent.js.map +1 -1
  47. package/dist/core/runner/pipeline.js +283 -123
  48. package/dist/core/runner/pipeline.js.map +1 -1
  49. package/dist/core/runner/task.d.ts +4 -5
  50. package/dist/core/runner/task.js +6 -80
  51. package/dist/core/runner/task.js.map +1 -1
  52. package/dist/core/runner.js +8 -2
  53. package/dist/core/runner.js.map +1 -1
  54. package/dist/core/stall-detection.d.ts +11 -4
  55. package/dist/core/stall-detection.js +62 -27
  56. package/dist/core/stall-detection.js.map +1 -1
  57. package/dist/hooks/contexts/index.d.ts +104 -0
  58. package/dist/hooks/contexts/index.js +134 -0
  59. package/dist/hooks/contexts/index.js.map +1 -0
  60. package/dist/hooks/data-accessor.d.ts +86 -0
  61. package/dist/hooks/data-accessor.js +410 -0
  62. package/dist/hooks/data-accessor.js.map +1 -0
  63. package/dist/hooks/flow-controller.d.ts +136 -0
  64. package/dist/hooks/flow-controller.js +351 -0
  65. package/dist/hooks/flow-controller.js.map +1 -0
  66. package/dist/hooks/index.d.ts +68 -0
  67. package/dist/hooks/index.js +105 -0
  68. package/dist/hooks/index.js.map +1 -0
  69. package/dist/hooks/manager.d.ts +129 -0
  70. package/dist/hooks/manager.js +389 -0
  71. package/dist/hooks/manager.js.map +1 -0
  72. package/dist/hooks/types.d.ts +463 -0
  73. package/dist/hooks/types.js +45 -0
  74. package/dist/hooks/types.js.map +1 -0
  75. package/dist/services/logging/buffer.d.ts +2 -2
  76. package/dist/services/logging/buffer.js +95 -42
  77. package/dist/services/logging/buffer.js.map +1 -1
  78. package/dist/services/logging/console.js +6 -1
  79. package/dist/services/logging/console.js.map +1 -1
  80. package/dist/services/logging/formatter.d.ts +9 -4
  81. package/dist/services/logging/formatter.js +64 -18
  82. package/dist/services/logging/formatter.js.map +1 -1
  83. package/dist/services/logging/index.d.ts +0 -1
  84. package/dist/services/logging/index.js +0 -1
  85. package/dist/services/logging/index.js.map +1 -1
  86. package/dist/services/logging/paths.d.ts +8 -0
  87. package/dist/services/logging/paths.js +48 -0
  88. package/dist/services/logging/paths.js.map +1 -0
  89. package/dist/services/logging/raw-log.d.ts +6 -0
  90. package/dist/services/logging/raw-log.js +37 -0
  91. package/dist/services/logging/raw-log.js.map +1 -0
  92. package/dist/services/process/index.js +1 -1
  93. package/dist/services/process/index.js.map +1 -1
  94. package/dist/types/agent.d.ts +15 -0
  95. package/dist/types/config.d.ts +22 -1
  96. package/dist/types/event-categories.d.ts +601 -0
  97. package/dist/types/event-categories.js +233 -0
  98. package/dist/types/event-categories.js.map +1 -0
  99. package/dist/types/events.d.ts +0 -20
  100. package/dist/types/flow.d.ts +10 -6
  101. package/dist/types/index.d.ts +1 -1
  102. package/dist/types/index.js +17 -3
  103. package/dist/types/index.js.map +1 -1
  104. package/dist/types/lane.d.ts +1 -1
  105. package/dist/types/logging.d.ts +1 -1
  106. package/dist/types/task.d.ts +12 -1
  107. package/dist/ui/log-viewer.d.ts +3 -0
  108. package/dist/ui/log-viewer.js +3 -0
  109. package/dist/ui/log-viewer.js.map +1 -1
  110. package/dist/utils/config.js +10 -1
  111. package/dist/utils/config.js.map +1 -1
  112. package/dist/utils/cursor-agent.d.ts +11 -1
  113. package/dist/utils/cursor-agent.js +63 -16
  114. package/dist/utils/cursor-agent.js.map +1 -1
  115. package/dist/utils/enhanced-logger.d.ts +5 -1
  116. package/dist/utils/enhanced-logger.js +98 -19
  117. package/dist/utils/enhanced-logger.js.map +1 -1
  118. package/dist/utils/event-registry.d.ts +222 -0
  119. package/dist/utils/event-registry.js +463 -0
  120. package/dist/utils/event-registry.js.map +1 -0
  121. package/dist/utils/events.d.ts +1 -13
  122. package/dist/utils/events.js.map +1 -1
  123. package/dist/utils/flow.d.ts +10 -0
  124. package/dist/utils/flow.js +75 -0
  125. package/dist/utils/flow.js.map +1 -1
  126. package/dist/utils/log-constants.d.ts +1 -0
  127. package/dist/utils/log-constants.js +2 -1
  128. package/dist/utils/log-constants.js.map +1 -1
  129. package/dist/utils/log-formatter.d.ts +2 -1
  130. package/dist/utils/log-formatter.js +10 -10
  131. package/dist/utils/log-formatter.js.map +1 -1
  132. package/dist/utils/logger.d.ts +11 -0
  133. package/dist/utils/logger.js +82 -3
  134. package/dist/utils/logger.js.map +1 -1
  135. package/dist/utils/repro-thinking-logs.js +0 -13
  136. package/dist/utils/repro-thinking-logs.js.map +1 -1
  137. package/dist/utils/run-service.js +1 -1
  138. package/dist/utils/run-service.js.map +1 -1
  139. package/examples/README.md +0 -2
  140. package/examples/demo-project/README.md +1 -2
  141. package/package.json +18 -28
  142. package/scripts/setup-security.sh +0 -1
  143. package/scripts/test-log-parser.ts +171 -0
  144. package/scripts/verify-change.sh +272 -0
  145. package/src/cli/logs.ts +121 -10
  146. package/src/cli/models.ts +20 -3
  147. package/src/cli/monitor.ts +1257 -1342
  148. package/src/cli/resume.ts +27 -1
  149. package/src/cli/run.ts +29 -11
  150. package/src/cli/signal.ts +115 -17
  151. package/src/cli/tasks.ts +2 -59
  152. package/src/core/agent-supervisor.ts +64 -0
  153. package/src/core/auto-recovery.ts +7 -1
  154. package/src/core/failure-policy.ts +0 -1
  155. package/src/core/git-lifecycle-manager.ts +1011 -0
  156. package/src/core/git-pipeline-coordinator.ts +221 -0
  157. package/src/core/intervention.ts +481 -0
  158. package/src/core/lane-state-machine.ts +1097 -0
  159. package/src/core/orchestrator.ts +35 -61
  160. package/src/core/runner/agent.ts +66 -33
  161. package/src/core/runner/pipeline.ts +318 -138
  162. package/src/core/runner/task.ts +12 -97
  163. package/src/core/runner.ts +8 -2
  164. package/src/core/stall-detection.ts +72 -27
  165. package/src/hooks/contexts/index.ts +256 -0
  166. package/src/hooks/data-accessor.ts +488 -0
  167. package/src/hooks/flow-controller.ts +425 -0
  168. package/src/hooks/index.ts +154 -0
  169. package/src/hooks/manager.ts +434 -0
  170. package/src/hooks/types.ts +544 -0
  171. package/src/services/logging/buffer.ts +104 -43
  172. package/src/services/logging/console.ts +7 -1
  173. package/src/services/logging/formatter.ts +74 -18
  174. package/src/services/logging/index.ts +0 -2
  175. package/src/services/logging/paths.ts +14 -0
  176. package/src/services/logging/raw-log.ts +43 -0
  177. package/src/services/process/index.ts +1 -1
  178. package/src/types/agent.ts +15 -0
  179. package/src/types/config.ts +23 -1
  180. package/src/types/event-categories.ts +663 -0
  181. package/src/types/events.ts +0 -25
  182. package/src/types/flow.ts +10 -6
  183. package/src/types/index.ts +50 -4
  184. package/src/types/lane.ts +1 -2
  185. package/src/types/logging.ts +2 -1
  186. package/src/types/task.ts +12 -1
  187. package/src/ui/log-viewer.ts +3 -0
  188. package/src/utils/config.ts +11 -1
  189. package/src/utils/cursor-agent.ts +68 -16
  190. package/src/utils/enhanced-logger.ts +105 -19
  191. package/src/utils/event-registry.ts +595 -0
  192. package/src/utils/events.ts +0 -16
  193. package/src/utils/flow.ts +83 -0
  194. package/src/utils/log-constants.ts +2 -1
  195. package/src/utils/log-formatter.ts +10 -11
  196. package/src/utils/logger.ts +49 -3
  197. package/src/utils/repro-thinking-logs.ts +0 -15
  198. package/src/utils/run-service.ts +1 -1
  199. package/dist/services/logging/file-writer.d.ts +0 -71
  200. package/dist/services/logging/file-writer.js +0 -516
  201. package/dist/services/logging/file-writer.js.map +0 -1
  202. package/dist/types/review.d.ts +0 -17
  203. package/dist/types/review.js +0 -6
  204. package/dist/types/review.js.map +0 -1
  205. package/scripts/ai-security-check.js +0 -233
  206. package/src/services/logging/file-writer.ts +0 -526
  207. package/src/types/review.ts +0 -20
@@ -0,0 +1,423 @@
1
+ /**
2
+ * Lane State Machine
3
+ *
4
+ * Lane의 생명주기를 세분화된 상태로 관리하는 상태 머신입니다.
5
+ *
6
+ * 핵심 원칙:
7
+ * 1. 명시적 상태 전이 (Explicit State Transitions)
8
+ * 2. 단일 상태 저장소 (Single Source of Truth)
9
+ * 3. 상태 전이 검증 (Transition Validation)
10
+ * 4. 복구/재시도 로직 중앙화 (Centralized Recovery)
11
+ *
12
+ * 상태 계층:
13
+ * - 주 상태 (Primary State): Lane의 기본 상태 (pending, running, completed 등)
14
+ * - 부 상태 (Sub State): 세부 작업 상태 (preparing_git, executing_task 등)
15
+ * - 복구 상태 (Recovery State): 복구 진행 상태 (idle, monitoring, recovering 등)
16
+ */
17
+ /**
18
+ * Lane 주 상태 (Primary State)
19
+ *
20
+ * 상태 전이 규칙:
21
+ * - PENDING → INITIALIZING → RUNNING → COMPLETED | FAILED
22
+ * - RUNNING ↔ WAITING (의존성 대기)
23
+ * - RUNNING ↔ PAUSED (사용자 요청)
24
+ * - RUNNING → RECOVERING → RUNNING | FAILED
25
+ * - * → ABORTED (강제 중단)
26
+ */
27
+ export declare enum LanePrimaryState {
28
+ /** 대기 중 - 아직 시작되지 않음 */
29
+ PENDING = "pending",
30
+ /** 초기화 중 - 워크트리/브랜치 준비 */
31
+ INITIALIZING = "initializing",
32
+ /** 실행 중 */
33
+ RUNNING = "running",
34
+ /** 의존성 대기 중 */
35
+ WAITING = "waiting",
36
+ /** 일시 중지 */
37
+ PAUSED = "paused",
38
+ /** 복구 중 */
39
+ RECOVERING = "recovering",
40
+ /** 완료 */
41
+ COMPLETED = "completed",
42
+ /** 실패 */
43
+ FAILED = "failed",
44
+ /** 강제 중단 */
45
+ ABORTED = "aborted"
46
+ }
47
+ /**
48
+ * Lane 부 상태 (Sub State) - RUNNING 상태의 세부 단계
49
+ */
50
+ export declare enum LaneSubState {
51
+ /** 없음 (비실행 상태) */
52
+ NONE = "none",
53
+ /** Git 워크트리 준비 */
54
+ PREPARING_GIT = "preparing_git",
55
+ /** 의존성 브랜치 머지 */
56
+ MERGING_DEPENDENCIES = "merging_dependencies",
57
+ /** Task 브랜치 생성 */
58
+ CREATING_TASK_BRANCH = "creating_task_branch",
59
+ /** 변경사항 커밋 */
60
+ COMMITTING = "committing",
61
+ /** 푸시 */
62
+ PUSHING = "pushing",
63
+ /** 머지 */
64
+ MERGING = "merging",
65
+ /** Task 실행 준비 */
66
+ PREPARING_TASK = "preparing_task",
67
+ /** AI 에이전트와 통신 중 */
68
+ EXECUTING_AGENT = "executing_agent",
69
+ /** Task 실행 완료 처리 */
70
+ FINALIZING_TASK = "finalizing_task",
71
+ /** 의존성 완료 대기 */
72
+ WAITING_DEPENDENCY = "waiting_dependency",
73
+ /** 사용자 입력 대기 */
74
+ WAITING_USER_INPUT = "waiting_user_input",
75
+ /** Rate limit 대기 */
76
+ WAITING_RATE_LIMIT = "waiting_rate_limit"
77
+ }
78
+ /**
79
+ * 복구 상태 (Recovery State)
80
+ */
81
+ export declare enum RecoveryState {
82
+ /** 복구 필요 없음 */
83
+ IDLE = "idle",
84
+ /** 모니터링 중 (Stall 감지) */
85
+ MONITORING = "monitoring",
86
+ /** Continue 신호 발송됨 */
87
+ CONTINUE_SENT = "continue_sent",
88
+ /** Stronger prompt 발송됨 */
89
+ STRONGER_PROMPT_SENT = "stronger_prompt_sent",
90
+ /** 재시작 요청됨 */
91
+ RESTART_REQUESTED = "restart_requested",
92
+ /** 진단 실행됨 */
93
+ DIAGNOSED = "diagnosed",
94
+ /** 복구 포기 */
95
+ EXHAUSTED = "exhausted"
96
+ }
97
+ /**
98
+ * 상태 전이를 발생시키는 트리거
99
+ */
100
+ export declare enum StateTransitionTrigger {
101
+ /** Lane 시작 */
102
+ START = "start",
103
+ /** 초기화 완료 */
104
+ INITIALIZED = "initialized",
105
+ /** Task 완료 */
106
+ TASK_COMPLETED = "task_completed",
107
+ /** 모든 Task 완료 */
108
+ ALL_TASKS_COMPLETED = "all_tasks_completed",
109
+ /** 실패 발생 */
110
+ FAILURE = "failure",
111
+ /** 강제 중단 요청 */
112
+ ABORT = "abort",
113
+ /** 의존성 대기 시작 */
114
+ WAIT_DEPENDENCY = "wait_dependency",
115
+ /** 의존성 해결됨 */
116
+ DEPENDENCY_RESOLVED = "dependency_resolved",
117
+ /** 의존성 타임아웃 */
118
+ DEPENDENCY_TIMEOUT = "dependency_timeout",
119
+ /** 의존성 실패 */
120
+ DEPENDENCY_FAILED = "dependency_failed",
121
+ /** 일시 중지 요청 */
122
+ PAUSE = "pause",
123
+ /** 재개 요청 */
124
+ RESUME = "resume",
125
+ /** 복구 시작 */
126
+ RECOVERY_START = "recovery_start",
127
+ /** 복구 성공 */
128
+ RECOVERY_SUCCESS = "recovery_success",
129
+ /** 복구 실패 */
130
+ RECOVERY_FAILED = "recovery_failed",
131
+ /** Stall 감지 */
132
+ STALL_DETECTED = "stall_detected",
133
+ /** Continue 신호 발송 */
134
+ CONTINUE_SIGNAL_SENT = "continue_signal_sent",
135
+ /** Stronger prompt 발송 */
136
+ STRONGER_PROMPT_SENT = "stronger_prompt_sent",
137
+ /** 재시작 요청 */
138
+ RESTART_REQUESTED = "restart_requested",
139
+ /** 진단 완료 */
140
+ DIAGNOSIS_COMPLETE = "diagnosis_complete",
141
+ /** Git 작업 시작 */
142
+ GIT_START = "git_start",
143
+ /** Git 작업 완료 */
144
+ GIT_COMPLETE = "git_complete",
145
+ /** Task 실행 시작 */
146
+ TASK_START = "task_start",
147
+ /** Agent 통신 시작 */
148
+ AGENT_START = "agent_start",
149
+ /** Agent 응답 수신 */
150
+ AGENT_RESPONSE = "agent_response"
151
+ }
152
+ /**
153
+ * Lane 상태 컨텍스트 (전체 상태 정보)
154
+ */
155
+ export interface LaneStateContext {
156
+ /** Lane 이름 */
157
+ laneName: string;
158
+ /** Run ID */
159
+ runId: string;
160
+ /** 주 상태 */
161
+ primaryState: LanePrimaryState;
162
+ /** 부 상태 */
163
+ subState: LaneSubState;
164
+ /** 복구 상태 */
165
+ recoveryState: RecoveryState;
166
+ /** 현재 Task 인덱스 */
167
+ currentTaskIndex: number;
168
+ /** 전체 Task 수 */
169
+ totalTasks: number;
170
+ /** 완료된 Task 목록 */
171
+ completedTasks: string[];
172
+ /** 현재 Task 이름 */
173
+ currentTaskName?: string;
174
+ /** 대기 중인 의존성 */
175
+ waitingFor?: string[];
176
+ /** 마지막 오류 */
177
+ lastError?: string;
178
+ /** 재시작 횟수 */
179
+ restartCount: number;
180
+ /** 시작 시간 */
181
+ startTime: number;
182
+ /** 종료 시간 */
183
+ endTime?: number;
184
+ /** 마지막 상태 변경 시간 */
185
+ lastTransitionTime: number;
186
+ /** 워크트리 디렉토리 */
187
+ worktreeDir?: string;
188
+ /** 파이프라인 브랜치 */
189
+ pipelineBranch?: string;
190
+ /** 현재 Task 브랜치 */
191
+ taskBranch?: string;
192
+ /** 프로세스 ID */
193
+ pid?: number;
194
+ /** 채팅 세션 ID */
195
+ chatId?: string;
196
+ /** 추가 메타데이터 */
197
+ metadata?: Record<string, any>;
198
+ }
199
+ /**
200
+ * 상태 전이 결과
201
+ */
202
+ export interface StateTransitionResult {
203
+ /** 성공 여부 */
204
+ success: boolean;
205
+ /** 이전 상태 */
206
+ fromState: LanePrimaryState;
207
+ /** 새 상태 */
208
+ toState: LanePrimaryState;
209
+ /** 트리거 */
210
+ trigger: StateTransitionTrigger;
211
+ /** 오류 메시지 (실패 시) */
212
+ error?: string;
213
+ }
214
+ /**
215
+ * Lane 상태 머신
216
+ *
217
+ * 사용 예:
218
+ * ```typescript
219
+ * const sm = LaneStateMachine.getInstance();
220
+ *
221
+ * // Lane 등록
222
+ * sm.registerLane('lane-1', 'run-123', {
223
+ * totalTasks: 5,
224
+ * pipelineBranch: 'cursorflow/pipeline/lane-1'
225
+ * });
226
+ *
227
+ * // 상태 전이
228
+ * sm.transition('lane-1', StateTransitionTrigger.START);
229
+ * sm.transition('lane-1', StateTransitionTrigger.INITIALIZED);
230
+ *
231
+ * // 부 상태 업데이트
232
+ * sm.setSubState('lane-1', LaneSubState.EXECUTING_AGENT);
233
+ *
234
+ * // 상태 조회
235
+ * const ctx = sm.getContext('lane-1');
236
+ * console.log(ctx.primaryState, ctx.subState);
237
+ * ```
238
+ */
239
+ export declare class LaneStateMachine {
240
+ private static instance;
241
+ /** Lane별 상태 컨텍스트 */
242
+ private contexts;
243
+ /** 상태 히스토리 (디버깅/감사용) */
244
+ private history;
245
+ /** 상태 변경 콜백 */
246
+ private onTransitionCallbacks;
247
+ /** 디버그 모드 */
248
+ private verbose;
249
+ private constructor();
250
+ /**
251
+ * 싱글톤 인스턴스 획득
252
+ */
253
+ static getInstance(): LaneStateMachine;
254
+ /**
255
+ * 인스턴스 리셋 (테스트용)
256
+ */
257
+ static resetInstance(): void;
258
+ /**
259
+ * Lane 등록
260
+ */
261
+ registerLane(laneName: string, runId: string, options?: {
262
+ totalTasks?: number;
263
+ pipelineBranch?: string;
264
+ worktreeDir?: string;
265
+ metadata?: Record<string, any>;
266
+ }): LaneStateContext;
267
+ /**
268
+ * Lane 해제
269
+ */
270
+ unregisterLane(laneName: string): void;
271
+ /**
272
+ * Lane 컨텍스트 조회
273
+ */
274
+ getContext(laneName: string): LaneStateContext | undefined;
275
+ /**
276
+ * 모든 Lane 컨텍스트 조회
277
+ */
278
+ getAllContexts(): Map<string, LaneStateContext>;
279
+ /**
280
+ * 상태 전이 실행
281
+ */
282
+ transition(laneName: string, trigger: StateTransitionTrigger, options?: {
283
+ error?: string;
284
+ force?: boolean;
285
+ }): StateTransitionResult;
286
+ /**
287
+ * 전이 규칙 찾기
288
+ */
289
+ private findTransitionRule;
290
+ /**
291
+ * 종료 상태인지 확인
292
+ */
293
+ private isTerminalState;
294
+ /**
295
+ * 부 상태 리셋 필요 여부
296
+ */
297
+ private shouldResetSubState;
298
+ /**
299
+ * 부 상태 설정
300
+ */
301
+ setSubState(laneName: string, subState: LaneSubState): boolean;
302
+ /**
303
+ * 부 상태 조회
304
+ */
305
+ getSubState(laneName: string): LaneSubState;
306
+ /**
307
+ * 복구 상태 설정
308
+ */
309
+ setRecoveryState(laneName: string, recoveryState: RecoveryState): boolean;
310
+ /**
311
+ * 복구 상태 조회
312
+ */
313
+ getRecoveryState(laneName: string): RecoveryState;
314
+ /**
315
+ * 재시작 횟수 증가
316
+ */
317
+ incrementRestartCount(laneName: string): number;
318
+ /**
319
+ * Task 진행 상황 업데이트
320
+ */
321
+ updateTaskProgress(laneName: string, taskIndex: number, taskName?: string, taskBranch?: string): boolean;
322
+ /**
323
+ * Task 완료 기록
324
+ */
325
+ recordTaskCompletion(laneName: string, taskName: string): boolean;
326
+ /**
327
+ * 대기 중인 의존성 설정
328
+ */
329
+ setWaitingFor(laneName: string, dependencies: string[]): boolean;
330
+ /**
331
+ * 오류 설정
332
+ */
333
+ setError(laneName: string, error: string): boolean;
334
+ /**
335
+ * 프로세스 ID 설정
336
+ */
337
+ setPid(laneName: string, pid: number): boolean;
338
+ /**
339
+ * 채팅 세션 ID 설정
340
+ */
341
+ setChatId(laneName: string, chatId: string): boolean;
342
+ /**
343
+ * 메타데이터 업데이트
344
+ */
345
+ updateMetadata(laneName: string, metadata: Record<string, any>): boolean;
346
+ /**
347
+ * 상태를 파일로 저장
348
+ */
349
+ persistState(laneName: string, stateDir: string): boolean;
350
+ /**
351
+ * 파일에서 상태 복구
352
+ */
353
+ restoreState(laneName: string, runId: string, stateDir: string): LaneStateContext | null;
354
+ /**
355
+ * 컨텍스트를 기존 LaneState 형식으로 변환
356
+ */
357
+ private contextToLaneState;
358
+ /**
359
+ * 기존 LaneState에서 컨텍스트로 변환
360
+ */
361
+ private laneStateToContext;
362
+ /**
363
+ * 상태 전이 콜백 등록
364
+ */
365
+ onTransition(callback: (laneName: string, result: StateTransitionResult) => void): () => void;
366
+ /**
367
+ * 전이 콜백 실행
368
+ */
369
+ private notifyTransition;
370
+ /**
371
+ * 전이 이벤트 발행
372
+ */
373
+ private emitTransition;
374
+ /**
375
+ * 전이 실패 이벤트 발행
376
+ */
377
+ private emitTransitionFailed;
378
+ /**
379
+ * 특정 상태의 Lane들 조회
380
+ */
381
+ getLanesInState(state: LanePrimaryState): string[];
382
+ /**
383
+ * 활성 상태 Lane들 조회 (종료되지 않은)
384
+ */
385
+ getActiveLanes(): string[];
386
+ /**
387
+ * 전이 히스토리 조회
388
+ */
389
+ getHistory(laneName: string): Array<{
390
+ timestamp: number;
391
+ fromState: LanePrimaryState;
392
+ toState: LanePrimaryState;
393
+ trigger: StateTransitionTrigger;
394
+ }>;
395
+ /**
396
+ * 전체 상태 요약 조회
397
+ */
398
+ getSummary(): Record<LanePrimaryState, number>;
399
+ /**
400
+ * 로깅
401
+ */
402
+ private log;
403
+ /**
404
+ * 디버그 모드 설정
405
+ */
406
+ setVerbose(verbose: boolean): void;
407
+ /**
408
+ * 디버그 덤프
409
+ */
410
+ dumpState(laneName: string): string;
411
+ }
412
+ /**
413
+ * 싱글톤 인스턴스 획득
414
+ */
415
+ export declare function getStateMachine(): LaneStateMachine;
416
+ /**
417
+ * 인스턴스 리셋 (테스트용)
418
+ */
419
+ export declare function resetStateMachine(): void;
420
+ /**
421
+ * LanePrimaryState를 기존 LaneStatus로 변환 (호환성)
422
+ */
423
+ export declare function primaryStateToLaneStatus(state: LanePrimaryState): string;