@litmers/cursorflow-orchestrator 0.1.39 → 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 (214) hide show
  1. package/CHANGELOG.md +0 -2
  2. package/README.md +20 -16
  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/prepare.js +0 -1
  12. package/dist/cli/prepare.js.map +1 -1
  13. package/dist/cli/resume.js +23 -5
  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 +94 -12
  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 +2 -1
  26. package/dist/core/auto-recovery.js +6 -1
  27. package/dist/core/auto-recovery.js.map +1 -1
  28. package/dist/core/failure-policy.d.ts +0 -1
  29. package/dist/core/failure-policy.js +0 -1
  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 +176 -0
  38. package/dist/core/intervention.js +424 -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 +38 -63
  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 +45 -30
  48. package/dist/core/runner/agent.js.map +1 -1
  49. package/dist/core/runner/pipeline.js +283 -109
  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 -77
  53. package/dist/core/runner/task.js.map +1 -1
  54. package/dist/core/runner.js +11 -2
  55. package/dist/core/runner.js.map +1 -1
  56. package/dist/core/stall-detection.d.ts +27 -4
  57. package/dist/core/stall-detection.js +116 -28
  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 +8 -5
  81. package/dist/services/logging/console.js.map +1 -1
  82. package/dist/services/logging/formatter.d.ts +9 -3
  83. package/dist/services/logging/formatter.js +64 -17
  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 +24 -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 +13 -2
  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 +15 -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 +99 -20
  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/git.d.ts +12 -1
  129. package/dist/utils/git.js +54 -1
  130. package/dist/utils/git.js.map +1 -1
  131. package/dist/utils/log-constants.d.ts +1 -0
  132. package/dist/utils/log-constants.js +2 -1
  133. package/dist/utils/log-constants.js.map +1 -1
  134. package/dist/utils/log-formatter.d.ts +3 -2
  135. package/dist/utils/log-formatter.js +11 -11
  136. package/dist/utils/log-formatter.js.map +1 -1
  137. package/dist/utils/logger.d.ts +11 -0
  138. package/dist/utils/logger.js +82 -3
  139. package/dist/utils/logger.js.map +1 -1
  140. package/dist/utils/repro-thinking-logs.js +0 -13
  141. package/dist/utils/repro-thinking-logs.js.map +1 -1
  142. package/dist/utils/run-service.js +1 -1
  143. package/dist/utils/run-service.js.map +1 -1
  144. package/examples/README.md +0 -2
  145. package/examples/demo-project/README.md +1 -2
  146. package/package.json +18 -28
  147. package/scripts/setup-security.sh +0 -1
  148. package/scripts/test-log-parser.ts +171 -0
  149. package/scripts/verify-change.sh +272 -0
  150. package/src/cli/logs.ts +121 -10
  151. package/src/cli/models.ts +20 -3
  152. package/src/cli/monitor.ts +1257 -1342
  153. package/src/cli/prepare.ts +0 -1
  154. package/src/cli/resume.ts +29 -5
  155. package/src/cli/run.ts +29 -11
  156. package/src/cli/signal.ts +115 -17
  157. package/src/cli/tasks.ts +2 -59
  158. package/src/core/agent-supervisor.ts +64 -0
  159. package/src/core/auto-recovery.ts +7 -1
  160. package/src/core/failure-policy.ts +0 -1
  161. package/src/core/git-lifecycle-manager.ts +1011 -0
  162. package/src/core/git-pipeline-coordinator.ts +221 -0
  163. package/src/core/intervention.ts +481 -0
  164. package/src/core/lane-state-machine.ts +1097 -0
  165. package/src/core/orchestrator.ts +45 -62
  166. package/src/core/runner/agent.ts +66 -33
  167. package/src/core/runner/pipeline.ts +318 -122
  168. package/src/core/runner/task.ts +12 -93
  169. package/src/core/runner.ts +12 -2
  170. package/src/core/stall-detection.ts +145 -28
  171. package/src/hooks/contexts/index.ts +256 -0
  172. package/src/hooks/data-accessor.ts +488 -0
  173. package/src/hooks/flow-controller.ts +425 -0
  174. package/src/hooks/index.ts +154 -0
  175. package/src/hooks/manager.ts +434 -0
  176. package/src/hooks/types.ts +544 -0
  177. package/src/services/logging/buffer.ts +104 -43
  178. package/src/services/logging/console.ts +9 -5
  179. package/src/services/logging/formatter.ts +74 -17
  180. package/src/services/logging/index.ts +0 -2
  181. package/src/services/logging/paths.ts +14 -0
  182. package/src/services/logging/raw-log.ts +43 -0
  183. package/src/services/process/index.ts +1 -1
  184. package/src/types/agent.ts +15 -0
  185. package/src/types/config.ts +25 -1
  186. package/src/types/event-categories.ts +663 -0
  187. package/src/types/events.ts +0 -25
  188. package/src/types/flow.ts +10 -6
  189. package/src/types/index.ts +50 -4
  190. package/src/types/lane.ts +1 -2
  191. package/src/types/logging.ts +2 -1
  192. package/src/types/task.ts +13 -2
  193. package/src/ui/log-viewer.ts +3 -0
  194. package/src/utils/config.ts +17 -1
  195. package/src/utils/cursor-agent.ts +68 -16
  196. package/src/utils/enhanced-logger.ts +106 -20
  197. package/src/utils/event-registry.ts +595 -0
  198. package/src/utils/events.ts +0 -16
  199. package/src/utils/flow.ts +84 -0
  200. package/src/utils/git.ts +59 -1
  201. package/src/utils/log-constants.ts +2 -1
  202. package/src/utils/log-formatter.ts +11 -12
  203. package/src/utils/logger.ts +49 -3
  204. package/src/utils/repro-thinking-logs.ts +0 -15
  205. package/src/utils/run-service.ts +1 -1
  206. package/dist/services/logging/file-writer.d.ts +0 -71
  207. package/dist/services/logging/file-writer.js +0 -516
  208. package/dist/services/logging/file-writer.js.map +0 -1
  209. package/dist/types/review.d.ts +0 -17
  210. package/dist/types/review.js +0 -6
  211. package/dist/types/review.js.map +0 -1
  212. package/scripts/ai-security-check.js +0 -233
  213. package/src/services/logging/file-writer.ts +0 -526
  214. package/src/types/review.ts +0 -20
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-lifecycle-manager.js","sourceRoot":"","sources":["../../src/core/git-lifecycle-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface WorktreeSetupOptions {
2
+ worktreeDir: string;
3
+ pipelineBranch: string;
4
+ repoRoot: string;
5
+ baseBranch: string;
6
+ }
7
+ export declare class GitPipelineCoordinator {
8
+ ensureWorktree(options: WorktreeSetupOptions): Promise<void>;
9
+ mergeDependencyBranches(deps: string[], runDir: string, worktreeDir: string, pipelineBranch: string): Promise<void>;
10
+ mergeTaskIntoPipeline({ taskName, taskBranch, pipelineBranch, worktreeDir, }: {
11
+ taskName: string;
12
+ taskBranch: string;
13
+ pipelineBranch: string;
14
+ worktreeDir: string;
15
+ }): void;
16
+ finalizeFlowBranch({ flowBranch, pipelineBranch, worktreeDir, }: {
17
+ flowBranch: string;
18
+ pipelineBranch: string;
19
+ worktreeDir: string;
20
+ }): void;
21
+ }
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.GitPipelineCoordinator = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const git = __importStar(require("../utils/git"));
40
+ const logger = __importStar(require("../utils/logger"));
41
+ const events_1 = require("../utils/events");
42
+ const path_1 = require("../utils/path");
43
+ const state_1 = require("../utils/state");
44
+ class GitPipelineCoordinator {
45
+ async ensureWorktree(options) {
46
+ const { worktreeDir, pipelineBranch, repoRoot, baseBranch } = options;
47
+ const worktreeNeedsCreation = !fs.existsSync(worktreeDir);
48
+ const worktreeIsInvalid = !worktreeNeedsCreation && !git.isValidWorktree(worktreeDir);
49
+ if (worktreeIsInvalid) {
50
+ logger.warn(`⚠️ Directory exists but is not a valid worktree: ${worktreeDir}`);
51
+ logger.info(` Cleaning up invalid directory and recreating worktree...`);
52
+ try {
53
+ git.cleanupInvalidWorktreeDir(worktreeDir);
54
+ }
55
+ catch (e) {
56
+ logger.error(`Failed to cleanup invalid worktree directory: ${e.message}`);
57
+ throw new Error(`Cannot proceed: worktree directory is invalid and cleanup failed`);
58
+ }
59
+ }
60
+ if (worktreeNeedsCreation || worktreeIsInvalid) {
61
+ let retries = 3;
62
+ let lastError = null;
63
+ while (retries > 0) {
64
+ try {
65
+ const worktreeParent = path.dirname(worktreeDir);
66
+ if (!fs.existsSync(worktreeParent)) {
67
+ fs.mkdirSync(worktreeParent, { recursive: true });
68
+ }
69
+ await git.createWorktreeAsync(worktreeDir, pipelineBranch, {
70
+ baseBranch,
71
+ cwd: repoRoot,
72
+ });
73
+ return;
74
+ }
75
+ catch (e) {
76
+ lastError = e;
77
+ retries--;
78
+ if (retries > 0) {
79
+ const delay = Math.floor(Math.random() * 1000) + 500;
80
+ logger.warn(`Worktree creation failed, retrying in ${delay}ms... (${retries} retries left)`);
81
+ await new Promise(resolve => setTimeout(resolve, delay));
82
+ }
83
+ }
84
+ }
85
+ if (retries === 0 && lastError) {
86
+ throw new Error(`Failed to create Git worktree after retries: ${lastError.message}`);
87
+ }
88
+ }
89
+ else {
90
+ logger.info(`Reusing existing worktree: ${worktreeDir}`);
91
+ try {
92
+ git.runGit(['checkout', pipelineBranch], { cwd: worktreeDir });
93
+ }
94
+ catch (e) {
95
+ logger.warn(`Failed to checkout branch ${pipelineBranch} in existing worktree: ${e}`);
96
+ }
97
+ }
98
+ }
99
+ async mergeDependencyBranches(deps, runDir, worktreeDir, pipelineBranch) {
100
+ if (!deps || deps.length === 0)
101
+ return;
102
+ const lanesRoot = path.dirname(runDir);
103
+ const lanesToMerge = new Set(deps.map(d => d.split(':')[0]));
104
+ logger.info(`🔄 Syncing with ${pipelineBranch} before merging dependencies`);
105
+ git.runGit(['checkout', pipelineBranch], { cwd: worktreeDir });
106
+ for (const laneName of lanesToMerge) {
107
+ const depStatePath = (0, path_1.safeJoin)(lanesRoot, laneName, 'state.json');
108
+ if (!fs.existsSync(depStatePath))
109
+ continue;
110
+ try {
111
+ const state = (0, state_1.loadState)(depStatePath);
112
+ if (!state?.pipelineBranch)
113
+ continue;
114
+ logger.info(`Merging branch from ${laneName}: ${state.pipelineBranch}`);
115
+ git.runGit(['fetch', 'origin', state.pipelineBranch], { cwd: worktreeDir, silent: true });
116
+ const remoteBranchRef = `origin/${state.pipelineBranch}`;
117
+ const conflictCheck = git.checkMergeConflict(remoteBranchRef, { cwd: worktreeDir });
118
+ if (conflictCheck.willConflict) {
119
+ logger.warn(`⚠️ Pre-check: Merge conflict detected with ${laneName}`);
120
+ logger.warn(` Conflicting files: ${conflictCheck.conflictingFiles.join(', ')}`);
121
+ events_1.events.emit('merge.conflict_detected', {
122
+ laneName,
123
+ targetBranch: state.pipelineBranch,
124
+ conflictingFiles: conflictCheck.conflictingFiles,
125
+ preCheck: true,
126
+ });
127
+ throw new Error(`Pre-merge conflict check failed: ${conflictCheck.conflictingFiles.join(', ')}. ` +
128
+ 'Consider rebasing or resolving conflicts manually.');
129
+ }
130
+ const mergeResult = git.safeMerge(remoteBranchRef, {
131
+ cwd: worktreeDir,
132
+ noFf: true,
133
+ message: `chore: merge task dependency from ${laneName}`,
134
+ abortOnConflict: true,
135
+ });
136
+ if (!mergeResult.success) {
137
+ if (mergeResult.conflict) {
138
+ logger.error(`Merge conflict with ${laneName}: ${mergeResult.conflictingFiles.join(', ')}`);
139
+ throw new Error(`Merge conflict: ${mergeResult.conflictingFiles.join(', ')}`);
140
+ }
141
+ throw new Error(mergeResult.error || 'Merge failed');
142
+ }
143
+ logger.success(`✓ Merged ${laneName}`);
144
+ }
145
+ catch (e) {
146
+ logger.error(`Failed to merge branch from ${laneName}: ${e}`);
147
+ throw e;
148
+ }
149
+ }
150
+ }
151
+ mergeTaskIntoPipeline({ taskName, taskBranch, pipelineBranch, worktreeDir, }) {
152
+ logger.info(`Merging ${taskBranch} → ${pipelineBranch}`);
153
+ logger.info(`🔄 Switching to pipeline branch ${pipelineBranch} to integrate changes`);
154
+ git.runGit(['checkout', pipelineBranch], { cwd: worktreeDir });
155
+ const conflictCheck = git.checkMergeConflict(taskBranch, { cwd: worktreeDir });
156
+ if (conflictCheck.willConflict) {
157
+ logger.warn(`⚠️ Unexpected conflict detected when merging ${taskBranch}`);
158
+ logger.warn(` Conflicting files: ${conflictCheck.conflictingFiles.join(', ')}`);
159
+ logger.warn(` This may indicate concurrent modifications to ${pipelineBranch}`);
160
+ events_1.events.emit('merge.conflict_detected', {
161
+ taskName,
162
+ taskBranch,
163
+ pipelineBranch,
164
+ conflictingFiles: conflictCheck.conflictingFiles,
165
+ preCheck: true,
166
+ });
167
+ }
168
+ logger.info(`🔀 Merging task ${taskName} (${taskBranch}) into ${pipelineBranch}`);
169
+ const mergeResult = git.safeMerge(taskBranch, {
170
+ cwd: worktreeDir,
171
+ noFf: true,
172
+ message: `chore: merge task ${taskName} into pipeline`,
173
+ abortOnConflict: true,
174
+ });
175
+ if (!mergeResult.success) {
176
+ if (mergeResult.conflict) {
177
+ logger.error(`❌ Merge conflict: ${mergeResult.conflictingFiles.join(', ')}`);
178
+ throw new Error(`Merge conflict when integrating task ${taskName}: ${mergeResult.conflictingFiles.join(', ')}`);
179
+ }
180
+ throw new Error(mergeResult.error || 'Merge failed');
181
+ }
182
+ const stats = git.getLastOperationStats(worktreeDir);
183
+ if (stats) {
184
+ logger.info('Changed files:\n' + stats);
185
+ }
186
+ }
187
+ finalizeFlowBranch({ flowBranch, pipelineBranch, worktreeDir, }) {
188
+ if (flowBranch === pipelineBranch)
189
+ return;
190
+ logger.info(`🌿 Creating final flow branch: ${flowBranch}`);
191
+ try {
192
+ git.runGit(['checkout', '-B', flowBranch, pipelineBranch], { cwd: worktreeDir });
193
+ git.push(flowBranch, { cwd: worktreeDir, setUpstream: true });
194
+ logger.info(`🗑️ Deleting local pipeline branch: ${pipelineBranch}`);
195
+ git.runGit(['checkout', flowBranch], { cwd: worktreeDir });
196
+ git.deleteBranch(pipelineBranch, { cwd: worktreeDir, force: true });
197
+ logger.success(`✓ Flow branch '${flowBranch}' created. Remote pipeline branch preserved for dependencies.`);
198
+ }
199
+ catch (e) {
200
+ logger.error(`❌ Failed during final consolidation: ${e}`);
201
+ }
202
+ }
203
+ }
204
+ exports.GitPipelineCoordinator = GitPipelineCoordinator;
205
+ //# sourceMappingURL=git-pipeline-coordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-pipeline-coordinator.js","sourceRoot":"","sources":["../../src/core/git-pipeline-coordinator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Intervention Executor - 즉각적인 에이전트 개입을 위한 통합 모듈
3
+ *
4
+ * 핵심 기능:
5
+ * - 실행 중인 cursor-agent 프로세스 종료
6
+ * - 개입 메시지와 함께 세션 resume
7
+ * - signal, stall-detection에서 일관된 방식으로 사용
8
+ *
9
+ * 동작 원리:
10
+ * 1. 개입 요청 시 pending-intervention.json 파일 생성
11
+ * 2. 현재 프로세스 SIGTERM으로 종료
12
+ * 3. Orchestrator/Runner가 프로세스 종료 감지
13
+ * 4. pending-intervention.json 읽어서 개입 메시지 포함하여 resume
14
+ */
15
+ import { ChildProcess } from 'child_process';
16
+ /**
17
+ * 개입 요청 타입
18
+ */
19
+ export declare enum InterventionType {
20
+ /** 사용자가 직접 보낸 메시지 */
21
+ USER_MESSAGE = "user_message",
22
+ /** Stall 감지로 인한 continue 신호 */
23
+ CONTINUE_SIGNAL = "continue_signal",
24
+ /** Stall 감지로 인한 stronger prompt */
25
+ STRONGER_PROMPT = "stronger_prompt",
26
+ /** 시스템 재시작 요청 */
27
+ SYSTEM_RESTART = "system_restart",
28
+ /** Git 에러 가이던스 */
29
+ GIT_GUIDANCE = "git_guidance"
30
+ }
31
+ /**
32
+ * 개입 요청 데이터
33
+ */
34
+ export interface InterventionRequest {
35
+ /** 개입 유형 */
36
+ type: InterventionType;
37
+ /** 개입 메시지 (에이전트에게 전달될 프롬프트) */
38
+ message: string;
39
+ /** 요청 시간 */
40
+ timestamp: number;
41
+ /** 요청자 (user, system, stall-detector) */
42
+ source: 'user' | 'system' | 'stall-detector';
43
+ /** 우선순위 (높을수록 먼저 처리) */
44
+ priority?: number;
45
+ /** 현재 태스크 인덱스 (resume 시 사용) */
46
+ taskIndex?: number;
47
+ /** 추가 메타데이터 */
48
+ metadata?: Record<string, any>;
49
+ }
50
+ /**
51
+ * 개입 실행 결과
52
+ */
53
+ export interface InterventionResult {
54
+ /** 성공 여부 */
55
+ success: boolean;
56
+ /** 종료된 프로세스 PID */
57
+ killedPid?: number;
58
+ /** 오류 메시지 */
59
+ error?: string;
60
+ /** pending-intervention.json 경로 */
61
+ pendingFile?: string;
62
+ }
63
+ /** 개입 요청 파일명 */
64
+ export declare const PENDING_INTERVENTION_FILE = "pending-intervention.json";
65
+ /** 기존 intervention.txt 파일명 (호환성 유지) */
66
+ export declare const LEGACY_INTERVENTION_FILE = "intervention.txt";
67
+ /**
68
+ * Continue 신호 메시지 생성
69
+ */
70
+ export declare function createContinueMessage(): string;
71
+ /**
72
+ * Stronger prompt 메시지 생성
73
+ */
74
+ export declare function createStrongerPromptMessage(): string;
75
+ /**
76
+ * 시스템 재시작 메시지 생성
77
+ */
78
+ export declare function createRestartMessage(reason: string): string;
79
+ /**
80
+ * 사용자 개입 메시지 래핑
81
+ */
82
+ export declare function wrapUserIntervention(message: string): string;
83
+ /**
84
+ * 개입 요청 파일 경로 가져오기
85
+ */
86
+ export declare function getPendingInterventionPath(laneRunDir: string): string;
87
+ /**
88
+ * 기존 intervention.txt 경로 가져오기 (호환성)
89
+ */
90
+ export declare function getLegacyInterventionPath(laneRunDir: string): string;
91
+ /**
92
+ * 개입 요청 생성 및 저장
93
+ *
94
+ * @param laneRunDir Lane 실행 디렉토리
95
+ * @param request 개입 요청 데이터
96
+ * @returns 저장된 파일 경로
97
+ */
98
+ export declare function createInterventionRequest(laneRunDir: string, request: Omit<InterventionRequest, 'timestamp'>): string;
99
+ /**
100
+ * 대기 중인 개입 요청 읽기
101
+ */
102
+ export declare function readPendingIntervention(laneRunDir: string): InterventionRequest | null;
103
+ /**
104
+ * 대기 중인 개입 요청 삭제 (처리 완료 후)
105
+ */
106
+ export declare function clearPendingIntervention(laneRunDir: string): void;
107
+ /**
108
+ * 대기 중인 개입 요청이 있는지 확인
109
+ */
110
+ export declare function hasPendingIntervention(laneRunDir: string): boolean;
111
+ /**
112
+ * PID로 프로세스 종료
113
+ *
114
+ * @param pid 종료할 프로세스 PID
115
+ * @param signal 종료 시그널 (기본: SIGTERM)
116
+ * @returns 성공 여부
117
+ */
118
+ export declare function killProcess(pid: number, signal?: NodeJS.Signals): boolean;
119
+ /**
120
+ * 프로세스가 살아있는지 확인
121
+ */
122
+ export declare function isProcessAlive(pid: number): boolean;
123
+ /**
124
+ * 프로세스 종료 후 대기
125
+ *
126
+ * @param pid 종료할 프로세스 PID
127
+ * @param timeoutMs 최대 대기 시간
128
+ * @returns 종료 성공 여부
129
+ */
130
+ export declare function killAndWait(pid: number, timeoutMs?: number): Promise<boolean>;
131
+ /**
132
+ * ChildProcess 종료
133
+ */
134
+ export declare function killChildProcess(child: ChildProcess): Promise<boolean>;
135
+ /**
136
+ * 즉각 개입 실행 - 프로세스 종료 및 개입 요청 생성
137
+ *
138
+ * 이 함수는 다음을 수행합니다:
139
+ * 1. 개입 요청 파일 생성 (pending-intervention.json)
140
+ * 2. 현재 프로세스 종료 (SIGTERM → SIGKILL)
141
+ * 3. 결과 반환 (Orchestrator가 resume 처리)
142
+ *
143
+ * @param laneRunDir Lane 실행 디렉토리
144
+ * @param request 개입 요청 데이터
145
+ * @param pid 종료할 프로세스 PID (없으면 state.json에서 읽음)
146
+ */
147
+ export declare function executeIntervention(laneRunDir: string, request: Omit<InterventionRequest, 'timestamp'>, pid?: number): Promise<InterventionResult>;
148
+ /**
149
+ * 사용자 개입 실행 (cursorflow signal 명령용)
150
+ */
151
+ export declare function executeUserIntervention(laneRunDir: string, message: string, pid?: number): Promise<InterventionResult>;
152
+ /**
153
+ * Continue 신호 실행 (stall-detection용)
154
+ */
155
+ export declare function executeContinueSignal(laneRunDir: string, pid?: number): Promise<InterventionResult>;
156
+ /**
157
+ * Stronger prompt 실행 (stall-detection용)
158
+ */
159
+ export declare function executeStrongerPrompt(laneRunDir: string, pid?: number): Promise<InterventionResult>;
160
+ /**
161
+ * Git 가이던스 실행
162
+ */
163
+ export declare function executeGitGuidance(laneRunDir: string, guidance: string, pid?: number): Promise<InterventionResult>;
164
+ /**
165
+ * 개입 메시지를 포함한 resume 프롬프트 생성
166
+ *
167
+ * Runner가 resume 시 호출하여 개입 메시지를 프롬프트에 포함
168
+ */
169
+ export declare function buildResumePromptWithIntervention(laneRunDir: string, originalPrompt: string): {
170
+ prompt: string;
171
+ hadIntervention: boolean;
172
+ };
173
+ /**
174
+ * 개입으로 인한 재시작인지 확인
175
+ */
176
+ export declare function isInterventionRestart(laneRunDir: string): boolean;