@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,284 @@
1
+ /**
2
+ * Git Lifecycle Manager
3
+ *
4
+ * Git 파이프라인의 생명주기를 명확하게 관리합니다.
5
+ *
6
+ * 작업 흐름:
7
+ * 1. 작업 시작 (startWork): 브랜치 생성 및 체크아웃
8
+ * 2. 작업 중 (saveProgress): 주기적 커밋 (선택적)
9
+ * 3. 작업 종료 (finalizeWork): 남은 변경사항 커밋 및 푸시
10
+ * 4. 머지 (mergeToTarget): 다음 단계로 머지
11
+ *
12
+ * 생명주기 상태:
13
+ * - IDLE: 초기 상태 / 작업 종료 후
14
+ * - PREPARING: 브랜치 준비 중
15
+ * - WORKING: 작업 진행 중
16
+ * - COMMITTING: 커밋 중
17
+ * - PUSHING: 푸시 중
18
+ * - MERGING: 머지 중
19
+ * - ERROR: 오류 발생
20
+ */
21
+ /**
22
+ * Git 작업 생명주기 상태
23
+ */
24
+ export declare enum GitLifecyclePhase {
25
+ /** 대기 상태 */
26
+ IDLE = "IDLE",
27
+ /** 브랜치/워크트리 준비 중 */
28
+ PREPARING = "PREPARING",
29
+ /** 작업 진행 중 */
30
+ WORKING = "WORKING",
31
+ /** 커밋 중 */
32
+ COMMITTING = "COMMITTING",
33
+ /** 푸시 중 */
34
+ PUSHING = "PUSHING",
35
+ /** 머지 중 */
36
+ MERGING = "MERGING",
37
+ /** 오류 발생 */
38
+ ERROR = "ERROR"
39
+ }
40
+ /**
41
+ * 브랜치 유형
42
+ */
43
+ export declare enum BranchType {
44
+ /** Pipeline 브랜치 (Lane당 하나) */
45
+ PIPELINE = "pipeline",
46
+ /** Task 브랜치 (Task당 하나) */
47
+ TASK = "task",
48
+ /** Flow 브랜치 (최종 결과) */
49
+ FLOW = "flow"
50
+ }
51
+ /**
52
+ * 작업 시작 옵션
53
+ */
54
+ export interface StartWorkOptions {
55
+ /** 워크트리 디렉토리 */
56
+ worktreeDir: string;
57
+ /** 생성할 브랜치 이름 */
58
+ branchName: string;
59
+ /** 베이스 브랜치 */
60
+ baseBranch: string;
61
+ /** Repository 루트 */
62
+ repoRoot: string;
63
+ /** Lane 이름 (로깅용) */
64
+ laneName?: string;
65
+ /** Task 이름 (로깅용) */
66
+ taskName?: string;
67
+ /** 브랜치 유형 */
68
+ branchType?: BranchType;
69
+ /** 의존성 브랜치들 (머지할 브랜치들) */
70
+ dependencyBranches?: string[];
71
+ }
72
+ /**
73
+ * 작업 종료 옵션
74
+ */
75
+ export interface FinalizeWorkOptions {
76
+ /** 워크트리 디렉토리 */
77
+ worktreeDir: string;
78
+ /** 현재 브랜치 이름 */
79
+ branchName: string;
80
+ /** 커밋 메시지 */
81
+ commitMessage?: string;
82
+ /** Lane 이름 (로깅용) */
83
+ laneName?: string;
84
+ /** Task 이름 (로깅용) */
85
+ taskName?: string;
86
+ /** 푸시 여부 (기본: true) */
87
+ push?: boolean;
88
+ /** 원격 이름 (기본: origin) */
89
+ remote?: string;
90
+ /** 변경사항 없으면 스킵 */
91
+ skipIfClean?: boolean;
92
+ }
93
+ /**
94
+ * 머지 옵션
95
+ */
96
+ export interface MergeOptions {
97
+ /** 워크트리 디렉토리 */
98
+ worktreeDir: string;
99
+ /** 소스 브랜치 */
100
+ sourceBranch: string;
101
+ /** 타겟 브랜치 */
102
+ targetBranch: string;
103
+ /** 커밋 메시지 */
104
+ commitMessage?: string;
105
+ /** Lane 이름 (로깅용) */
106
+ laneName?: string;
107
+ /** 머지 유형 */
108
+ mergeType?: 'task_to_pipeline' | 'dependency' | 'final';
109
+ /** 충돌 시 중단 */
110
+ abortOnConflict?: boolean;
111
+ /** 푸시 여부 */
112
+ push?: boolean;
113
+ }
114
+ /**
115
+ * 작업 결과
116
+ */
117
+ export interface GitOperationResult {
118
+ /** 성공 여부 */
119
+ success: boolean;
120
+ /** 오류 메시지 */
121
+ error?: string;
122
+ /** 생성된 커밋 해시 */
123
+ commitHash?: string;
124
+ /** 변경된 파일 수 */
125
+ filesChanged?: number;
126
+ /** 추가 정보 */
127
+ details?: Record<string, any>;
128
+ }
129
+ /**
130
+ * Lane별 Git 상태 추적
131
+ */
132
+ interface LaneGitState {
133
+ laneName: string;
134
+ phase: GitLifecyclePhase;
135
+ currentBranch: string | null;
136
+ pipelineBranch: string | null;
137
+ worktreeDir: string | null;
138
+ lastCommitHash: string | null;
139
+ uncommittedChanges: boolean;
140
+ lastOperation: string | null;
141
+ lastOperationTime: number | null;
142
+ error: string | null;
143
+ }
144
+ /**
145
+ * Git 파이프라인 생명주기 관리자
146
+ *
147
+ * 사용 예:
148
+ * ```typescript
149
+ * const gitManager = GitLifecycleManager.getInstance();
150
+ *
151
+ * // 1. 작업 시작
152
+ * await gitManager.startWork({
153
+ * worktreeDir: '/path/to/worktree',
154
+ * branchName: 'cursorflow/task-1',
155
+ * baseBranch: 'main',
156
+ * repoRoot: '/path/to/repo',
157
+ * laneName: 'lane-1'
158
+ * });
159
+ *
160
+ * // 2. 작업 진행...
161
+ *
162
+ * // 3. 작업 종료 (모든 변경사항 커밋 및 푸시)
163
+ * await gitManager.finalizeWork({
164
+ * worktreeDir: '/path/to/worktree',
165
+ * branchName: 'cursorflow/task-1',
166
+ * commitMessage: 'feat: implement feature',
167
+ * laneName: 'lane-1'
168
+ * });
169
+ *
170
+ * // 4. 파이프라인 브랜치로 머지
171
+ * await gitManager.mergeToTarget({
172
+ * worktreeDir: '/path/to/worktree',
173
+ * sourceBranch: 'cursorflow/task-1',
174
+ * targetBranch: 'cursorflow/pipeline',
175
+ * laneName: 'lane-1',
176
+ * mergeType: 'task_to_pipeline'
177
+ * });
178
+ * ```
179
+ */
180
+ export declare class GitLifecycleManager {
181
+ private static instance;
182
+ /** Lane별 상태 추적 */
183
+ private laneStates;
184
+ /** 디버그 모드 */
185
+ private verbose;
186
+ private constructor();
187
+ /**
188
+ * 싱글톤 인스턴스 획득
189
+ */
190
+ static getInstance(): GitLifecycleManager;
191
+ /**
192
+ * 인스턴스 리셋 (테스트용)
193
+ */
194
+ static resetInstance(): void;
195
+ /**
196
+ * Lane의 Git 상태 초기화
197
+ */
198
+ initializeLane(laneName: string, pipelineBranch: string, worktreeDir?: string): void;
199
+ /**
200
+ * Lane의 Git 상태 조회
201
+ */
202
+ getLaneState(laneName: string): LaneGitState | undefined;
203
+ /**
204
+ * Lane 상태 업데이트
205
+ */
206
+ private updateLaneState;
207
+ /**
208
+ * 작업 시작 - 브랜치 생성 및 체크아웃
209
+ *
210
+ * 1. 워크트리가 없으면 생성
211
+ * 2. 브랜치가 없으면 baseBranch에서 생성
212
+ * 3. 의존성 브랜치들 머지 (있는 경우)
213
+ * 4. 브랜치 체크아웃
214
+ */
215
+ startWork(options: StartWorkOptions): Promise<GitOperationResult>;
216
+ /**
217
+ * 워크트리 확인 및 생성
218
+ */
219
+ private ensureWorktree;
220
+ /**
221
+ * 의존성 브랜치 머지
222
+ */
223
+ private mergeDependencyBranch;
224
+ /**
225
+ * 진행 상황 저장 (중간 커밋)
226
+ *
227
+ * 장기 작업 중 주기적으로 호출하여 진행 상황을 저장할 수 있습니다.
228
+ */
229
+ saveProgress(worktreeDir: string, message: string, laneName?: string): Promise<GitOperationResult>;
230
+ /**
231
+ * 작업 종료 - 모든 변경사항 커밋 및 푸시
232
+ *
233
+ * 1. 남은 변경사항 모두 스테이징
234
+ * 2. 커밋 생성
235
+ * 3. 원격으로 푸시
236
+ */
237
+ finalizeWork(options: FinalizeWorkOptions): Promise<GitOperationResult>;
238
+ /**
239
+ * 타겟 브랜치로 머지
240
+ *
241
+ * 사용 사례:
242
+ * - Task → Pipeline 머지
243
+ * - 의존성 브랜치 머지
244
+ * - 최종 Flow 브랜치 생성
245
+ */
246
+ mergeToTarget(options: MergeOptions): Promise<GitOperationResult>;
247
+ /**
248
+ * 워크트리 정리
249
+ */
250
+ cleanupWorktree(worktreeDir: string, laneName?: string): Promise<GitOperationResult>;
251
+ /**
252
+ * Lane 상태 정리
253
+ */
254
+ cleanupLane(laneName: string): void;
255
+ /**
256
+ * 현재 브랜치에 미커밋 변경사항이 있는지 확인
257
+ */
258
+ hasUncommittedChanges(worktreeDir: string): boolean;
259
+ /**
260
+ * 안전하게 모든 변경사항 커밋 (오류 무시)
261
+ */
262
+ safeCommitAll(worktreeDir: string, message: string, laneName?: string): Promise<GitOperationResult>;
263
+ /**
264
+ * 브랜치가 원격에 존재하는지 확인
265
+ */
266
+ branchExistsRemote(branchName: string, worktreeDir: string): boolean;
267
+ /**
268
+ * 로깅 헬퍼
269
+ */
270
+ private log;
271
+ /**
272
+ * 디버그 모드 설정
273
+ */
274
+ setVerbose(verbose: boolean): void;
275
+ }
276
+ /**
277
+ * 싱글톤 인스턴스 획득
278
+ */
279
+ export declare function getGitLifecycleManager(): GitLifecycleManager;
280
+ /**
281
+ * 인스턴스 리셋 (테스트용)
282
+ */
283
+ export declare function resetGitLifecycleManager(): void;
284
+ export {};