pm-orchestrator-runner 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +108 -0
  3. package/dist/cli/cli-interface.d.ts +150 -0
  4. package/dist/cli/cli-interface.d.ts.map +1 -0
  5. package/dist/cli/cli-interface.js +606 -0
  6. package/dist/cli/cli-interface.js.map +1 -0
  7. package/dist/cli/index.d.ts +13 -0
  8. package/dist/cli/index.d.ts.map +1 -0
  9. package/dist/cli/index.js +243 -0
  10. package/dist/cli/index.js.map +1 -0
  11. package/dist/cli/llm-sentinel.d.ts +15 -0
  12. package/dist/cli/llm-sentinel.d.ts.map +1 -0
  13. package/dist/cli/llm-sentinel.js +184 -0
  14. package/dist/cli/llm-sentinel.js.map +1 -0
  15. package/dist/config/configuration-manager.d.ts +149 -0
  16. package/dist/config/configuration-manager.d.ts.map +1 -0
  17. package/dist/config/configuration-manager.js +241 -0
  18. package/dist/config/configuration-manager.js.map +1 -0
  19. package/dist/continuation/continuation-control-manager.d.ts +154 -0
  20. package/dist/continuation/continuation-control-manager.d.ts.map +1 -0
  21. package/dist/continuation/continuation-control-manager.js +303 -0
  22. package/dist/continuation/continuation-control-manager.js.map +1 -0
  23. package/dist/core/runner-core.d.ts +474 -0
  24. package/dist/core/runner-core.d.ts.map +1 -0
  25. package/dist/core/runner-core.js +1311 -0
  26. package/dist/core/runner-core.js.map +1 -0
  27. package/dist/errors/error-codes.d.ts +105 -0
  28. package/dist/errors/error-codes.d.ts.map +1 -0
  29. package/dist/errors/error-codes.js +198 -0
  30. package/dist/errors/error-codes.js.map +1 -0
  31. package/dist/errors/runner-error.d.ts +14 -0
  32. package/dist/errors/runner-error.d.ts.map +1 -0
  33. package/dist/errors/runner-error.js +33 -0
  34. package/dist/errors/runner-error.js.map +1 -0
  35. package/dist/evidence/evidence-manager.d.ts +112 -0
  36. package/dist/evidence/evidence-manager.d.ts.map +1 -0
  37. package/dist/evidence/evidence-manager.js +337 -0
  38. package/dist/evidence/evidence-manager.js.map +1 -0
  39. package/dist/executor/claude-code-executor.d.ts +136 -0
  40. package/dist/executor/claude-code-executor.d.ts.map +1 -0
  41. package/dist/executor/claude-code-executor.js +643 -0
  42. package/dist/executor/claude-code-executor.js.map +1 -0
  43. package/dist/executor/deterministic-executor.d.ts +40 -0
  44. package/dist/executor/deterministic-executor.d.ts.map +1 -0
  45. package/dist/executor/deterministic-executor.js +269 -0
  46. package/dist/executor/deterministic-executor.js.map +1 -0
  47. package/dist/lifecycle/lifecycle-controller.d.ts +270 -0
  48. package/dist/lifecycle/lifecycle-controller.d.ts.map +1 -0
  49. package/dist/lifecycle/lifecycle-controller.js +596 -0
  50. package/dist/lifecycle/lifecycle-controller.js.map +1 -0
  51. package/dist/limits/resource-limit-manager.d.ts +200 -0
  52. package/dist/limits/resource-limit-manager.d.ts.map +1 -0
  53. package/dist/limits/resource-limit-manager.js +376 -0
  54. package/dist/limits/resource-limit-manager.js.map +1 -0
  55. package/dist/locks/lock-manager.d.ts +116 -0
  56. package/dist/locks/lock-manager.d.ts.map +1 -0
  57. package/dist/locks/lock-manager.js +306 -0
  58. package/dist/locks/lock-manager.js.map +1 -0
  59. package/dist/logging/index.d.ts +8 -0
  60. package/dist/logging/index.d.ts.map +1 -0
  61. package/dist/logging/index.js +22 -0
  62. package/dist/logging/index.js.map +1 -0
  63. package/dist/logging/sensitive-data-masker.d.ts +90 -0
  64. package/dist/logging/sensitive-data-masker.d.ts.map +1 -0
  65. package/dist/logging/sensitive-data-masker.js +228 -0
  66. package/dist/logging/sensitive-data-masker.js.map +1 -0
  67. package/dist/logging/task-log-manager.d.ts +215 -0
  68. package/dist/logging/task-log-manager.d.ts.map +1 -0
  69. package/dist/logging/task-log-manager.js +743 -0
  70. package/dist/logging/task-log-manager.js.map +1 -0
  71. package/dist/mediation/fail-closed-runner.d.ts +131 -0
  72. package/dist/mediation/fail-closed-runner.d.ts.map +1 -0
  73. package/dist/mediation/fail-closed-runner.js +245 -0
  74. package/dist/mediation/fail-closed-runner.js.map +1 -0
  75. package/dist/mediation/llm-client-with-evidence.d.ts +123 -0
  76. package/dist/mediation/llm-client-with-evidence.d.ts.map +1 -0
  77. package/dist/mediation/llm-client-with-evidence.js +245 -0
  78. package/dist/mediation/llm-client-with-evidence.js.map +1 -0
  79. package/dist/mediation/llm-client.d.ts +102 -0
  80. package/dist/mediation/llm-client.d.ts.map +1 -0
  81. package/dist/mediation/llm-client.js +206 -0
  82. package/dist/mediation/llm-client.js.map +1 -0
  83. package/dist/mediation/llm-evidence-manager.d.ts +108 -0
  84. package/dist/mediation/llm-evidence-manager.d.ts.map +1 -0
  85. package/dist/mediation/llm-evidence-manager.js +230 -0
  86. package/dist/mediation/llm-evidence-manager.js.map +1 -0
  87. package/dist/mediation/llm-mediation-layer.d.ts +175 -0
  88. package/dist/mediation/llm-mediation-layer.d.ts.map +1 -0
  89. package/dist/mediation/llm-mediation-layer.js +315 -0
  90. package/dist/mediation/llm-mediation-layer.js.map +1 -0
  91. package/dist/mediation/llm-sentinel.d.ts +107 -0
  92. package/dist/mediation/llm-sentinel.d.ts.map +1 -0
  93. package/dist/mediation/llm-sentinel.js +187 -0
  94. package/dist/mediation/llm-sentinel.js.map +1 -0
  95. package/dist/mediation/real-llm-mediation-layer.d.ts +104 -0
  96. package/dist/mediation/real-llm-mediation-layer.d.ts.map +1 -0
  97. package/dist/mediation/real-llm-mediation-layer.js +322 -0
  98. package/dist/mediation/real-llm-mediation-layer.js.map +1 -0
  99. package/dist/mediation/verdict-reporter.d.ts +61 -0
  100. package/dist/mediation/verdict-reporter.d.ts.map +1 -0
  101. package/dist/mediation/verdict-reporter.js +178 -0
  102. package/dist/mediation/verdict-reporter.js.map +1 -0
  103. package/dist/models/enums.d.ts +133 -0
  104. package/dist/models/enums.d.ts.map +1 -0
  105. package/dist/models/enums.js +201 -0
  106. package/dist/models/enums.js.map +1 -0
  107. package/dist/models/evidence.d.ts +60 -0
  108. package/dist/models/evidence.d.ts.map +1 -0
  109. package/dist/models/evidence.js +135 -0
  110. package/dist/models/evidence.js.map +1 -0
  111. package/dist/models/execution-result.d.ts +89 -0
  112. package/dist/models/execution-result.d.ts.map +1 -0
  113. package/dist/models/execution-result.js +197 -0
  114. package/dist/models/execution-result.js.map +1 -0
  115. package/dist/models/file-lock.d.ts +62 -0
  116. package/dist/models/file-lock.d.ts.map +1 -0
  117. package/dist/models/file-lock.js +133 -0
  118. package/dist/models/file-lock.js.map +1 -0
  119. package/dist/models/index.d.ts +12 -0
  120. package/dist/models/index.d.ts.map +1 -0
  121. package/dist/models/index.js +91 -0
  122. package/dist/models/index.js.map +1 -0
  123. package/dist/models/repl/index.d.ts +7 -0
  124. package/dist/models/repl/index.d.ts.map +1 -0
  125. package/dist/models/repl/index.js +32 -0
  126. package/dist/models/repl/index.js.map +1 -0
  127. package/dist/models/repl/model-registry.d.ts +73 -0
  128. package/dist/models/repl/model-registry.d.ts.map +1 -0
  129. package/dist/models/repl/model-registry.js +116 -0
  130. package/dist/models/repl/model-registry.js.map +1 -0
  131. package/dist/models/repl/repl-state.d.ts +86 -0
  132. package/dist/models/repl/repl-state.d.ts.map +1 -0
  133. package/dist/models/repl/repl-state.js +152 -0
  134. package/dist/models/repl/repl-state.js.map +1 -0
  135. package/dist/models/repl/task-log.d.ts +247 -0
  136. package/dist/models/repl/task-log.d.ts.map +1 -0
  137. package/dist/models/repl/task-log.js +178 -0
  138. package/dist/models/repl/task-log.js.map +1 -0
  139. package/dist/models/session.d.ts +71 -0
  140. package/dist/models/session.d.ts.map +1 -0
  141. package/dist/models/session.js +140 -0
  142. package/dist/models/session.js.map +1 -0
  143. package/dist/models/supporting.d.ts +97 -0
  144. package/dist/models/supporting.d.ts.map +1 -0
  145. package/dist/models/supporting.js +208 -0
  146. package/dist/models/supporting.js.map +1 -0
  147. package/dist/models/task.d.ts +77 -0
  148. package/dist/models/task.d.ts.map +1 -0
  149. package/dist/models/task.js +170 -0
  150. package/dist/models/task.js.map +1 -0
  151. package/dist/output/output-control-manager.d.ts +217 -0
  152. package/dist/output/output-control-manager.d.ts.map +1 -0
  153. package/dist/output/output-control-manager.js +378 -0
  154. package/dist/output/output-control-manager.js.map +1 -0
  155. package/dist/pool/agent-pool.d.ts +284 -0
  156. package/dist/pool/agent-pool.d.ts.map +1 -0
  157. package/dist/pool/agent-pool.js +451 -0
  158. package/dist/pool/agent-pool.js.map +1 -0
  159. package/dist/repl/commands/index.d.ts +12 -0
  160. package/dist/repl/commands/index.d.ts.map +1 -0
  161. package/dist/repl/commands/index.js +26 -0
  162. package/dist/repl/commands/index.js.map +1 -0
  163. package/dist/repl/commands/init.d.ts +31 -0
  164. package/dist/repl/commands/init.d.ts.map +1 -0
  165. package/dist/repl/commands/init.js +234 -0
  166. package/dist/repl/commands/init.js.map +1 -0
  167. package/dist/repl/commands/keys.d.ts +63 -0
  168. package/dist/repl/commands/keys.d.ts.map +1 -0
  169. package/dist/repl/commands/keys.js +114 -0
  170. package/dist/repl/commands/keys.js.map +1 -0
  171. package/dist/repl/commands/logs.d.ts +91 -0
  172. package/dist/repl/commands/logs.d.ts.map +1 -0
  173. package/dist/repl/commands/logs.js +200 -0
  174. package/dist/repl/commands/logs.js.map +1 -0
  175. package/dist/repl/commands/model.d.ts +85 -0
  176. package/dist/repl/commands/model.d.ts.map +1 -0
  177. package/dist/repl/commands/model.js +225 -0
  178. package/dist/repl/commands/model.js.map +1 -0
  179. package/dist/repl/commands/models.d.ts +50 -0
  180. package/dist/repl/commands/models.d.ts.map +1 -0
  181. package/dist/repl/commands/models.js +180 -0
  182. package/dist/repl/commands/models.js.map +1 -0
  183. package/dist/repl/commands/provider.d.ts +79 -0
  184. package/dist/repl/commands/provider.d.ts.map +1 -0
  185. package/dist/repl/commands/provider.js +291 -0
  186. package/dist/repl/commands/provider.js.map +1 -0
  187. package/dist/repl/commands/session.d.ts +50 -0
  188. package/dist/repl/commands/session.d.ts.map +1 -0
  189. package/dist/repl/commands/session.js +152 -0
  190. package/dist/repl/commands/session.js.map +1 -0
  191. package/dist/repl/commands/status.d.ts +55 -0
  192. package/dist/repl/commands/status.d.ts.map +1 -0
  193. package/dist/repl/commands/status.js +182 -0
  194. package/dist/repl/commands/status.js.map +1 -0
  195. package/dist/repl/index.d.ts +6 -0
  196. package/dist/repl/index.d.ts.map +1 -0
  197. package/dist/repl/index.js +25 -0
  198. package/dist/repl/index.js.map +1 -0
  199. package/dist/repl/repl-interface.d.ts +371 -0
  200. package/dist/repl/repl-interface.d.ts.map +1 -0
  201. package/dist/repl/repl-interface.js +1214 -0
  202. package/dist/repl/repl-interface.js.map +1 -0
  203. package/dist/session/session-manager.d.ts +85 -0
  204. package/dist/session/session-manager.d.ts.map +1 -0
  205. package/dist/session/session-manager.js +217 -0
  206. package/dist/session/session-manager.js.map +1 -0
  207. package/dist/supervisor/executor-supervisor.d.ts +90 -0
  208. package/dist/supervisor/executor-supervisor.d.ts.map +1 -0
  209. package/dist/supervisor/executor-supervisor.js +223 -0
  210. package/dist/supervisor/executor-supervisor.js.map +1 -0
  211. package/dist/supervisor/index.d.ts +5 -0
  212. package/dist/supervisor/index.d.ts.map +1 -0
  213. package/dist/supervisor/index.js +9 -0
  214. package/dist/supervisor/index.js.map +1 -0
  215. package/package.json +57 -0
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Deterministic Executor for CLI_TEST_MODE
3
+ *
4
+ * Per spec 10_REPL_UX.md Section 11 and spec 06_CORRECTNESS_PROPERTIES.md Property 37:
5
+ * When CLI_TEST_MODE=1, use deterministic stub instead of Claude Code CLI.
6
+ *
7
+ * This executor:
8
+ * - Parses natural language prompts for file creation patterns
9
+ * - Creates actual files on disk (verified_files exists=true)
10
+ * - Performs filesBefore/filesAfter 2-scan (Property 31)
11
+ * - Returns immediately without spawning subprocess
12
+ */
13
+ import type { IExecutor, ExecutorTask, ExecutorResult } from './claude-code-executor';
14
+ /**
15
+ * DeterministicExecutor - For CLI_TEST_MODE=1
16
+ *
17
+ * Creates actual files on disk without spawning Claude Code CLI.
18
+ * Performs proper filesBefore/filesAfter 2-scan per Property 31.
19
+ */
20
+ export declare class DeterministicExecutor implements IExecutor {
21
+ isClaudeCodeAvailable(): Promise<boolean>;
22
+ execute(task: ExecutorTask): Promise<ExecutorResult>;
23
+ /**
24
+ * List all files in a directory (recursively)
25
+ */
26
+ private listFiles;
27
+ /**
28
+ * Detect files that were modified or created
29
+ */
30
+ private detectModifiedFiles;
31
+ }
32
+ /**
33
+ * Check if deterministic mode is enabled
34
+ */
35
+ export declare function isDeterministicMode(): boolean;
36
+ /**
37
+ * Create appropriate executor based on environment
38
+ */
39
+ export declare function createExecutorForEnvironment(): IExecutor | null;
40
+ //# sourceMappingURL=deterministic-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deterministic-executor.d.ts","sourceRoot":"","sources":["../../src/executor/deterministic-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,cAAc,EAEf,MAAM,wBAAwB,CAAC;AA8DhC;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,SAAS;IAC/C,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAKzC,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IA0F1D;;OAEG;YACW,SAAS;IAsCvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAwB5B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,SAAS,GAAG,IAAI,CAK/D"}
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+ /**
3
+ * Deterministic Executor for CLI_TEST_MODE
4
+ *
5
+ * Per spec 10_REPL_UX.md Section 11 and spec 06_CORRECTNESS_PROPERTIES.md Property 37:
6
+ * When CLI_TEST_MODE=1, use deterministic stub instead of Claude Code CLI.
7
+ *
8
+ * This executor:
9
+ * - Parses natural language prompts for file creation patterns
10
+ * - Creates actual files on disk (verified_files exists=true)
11
+ * - Performs filesBefore/filesAfter 2-scan (Property 31)
12
+ * - Returns immediately without spawning subprocess
13
+ */
14
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ var desc = Object.getOwnPropertyDescriptor(m, k);
17
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
+ desc = { enumerable: true, get: function() { return m[k]; } };
19
+ }
20
+ Object.defineProperty(o, k2, desc);
21
+ }) : (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ }));
25
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
26
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
27
+ }) : function(o, v) {
28
+ o["default"] = v;
29
+ });
30
+ var __importStar = (this && this.__importStar) || (function () {
31
+ var ownKeys = function(o) {
32
+ ownKeys = Object.getOwnPropertyNames || function (o) {
33
+ var ar = [];
34
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
35
+ return ar;
36
+ };
37
+ return ownKeys(o);
38
+ };
39
+ return function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ })();
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.DeterministicExecutor = void 0;
49
+ exports.isDeterministicMode = isDeterministicMode;
50
+ exports.createExecutorForEnvironment = createExecutorForEnvironment;
51
+ const fs = __importStar(require("fs"));
52
+ const path = __importStar(require("path"));
53
+ /**
54
+ * File creation patterns detected from natural language
55
+ */
56
+ const FILE_CREATION_PATTERNS = [
57
+ // README patterns
58
+ /readme/i,
59
+ /create\s+readme/i,
60
+ /作.*readme/i,
61
+ // General file creation
62
+ /create\s+(?:a\s+)?(?:file\s+)?(?:named?\s+)?(\S+\.\w+)/i,
63
+ /make\s+(?:a\s+)?(?:file\s+)?(?:named?\s+)?(\S+\.\w+)/i,
64
+ /write\s+(?:a\s+)?(?:file\s+)?(?:named?\s+)?(\S+\.\w+)/i,
65
+ /生成\s*(\S+\.\w+)/i,
66
+ /作成\s*(\S+\.\w+)/i,
67
+ ];
68
+ /**
69
+ * Extract filename from prompt
70
+ */
71
+ function extractFilename(prompt) {
72
+ const lowerPrompt = prompt.toLowerCase();
73
+ // README detection
74
+ if (lowerPrompt.includes('readme')) {
75
+ return 'README.md';
76
+ }
77
+ // Generic file pattern matching
78
+ for (const pattern of FILE_CREATION_PATTERNS) {
79
+ const match = prompt.match(pattern);
80
+ if (match && match[1]) {
81
+ return match[1];
82
+ }
83
+ }
84
+ return null;
85
+ }
86
+ /**
87
+ * Generate default content based on filename
88
+ */
89
+ function generateContent(filename, prompt) {
90
+ const basename = path.basename(filename, path.extname(filename));
91
+ const ext = path.extname(filename).toLowerCase();
92
+ switch (ext) {
93
+ case '.md':
94
+ return `# ${basename}\n\nGenerated by deterministic executor.\n\nTask: ${prompt}\n`;
95
+ case '.json':
96
+ return JSON.stringify({ name: basename, generated: true }, null, 2);
97
+ case '.txt':
98
+ return `${basename}\n\nGenerated by deterministic executor.\nTask: ${prompt}\n`;
99
+ case '.ts':
100
+ case '.js':
101
+ return `// ${basename}\n// Generated by deterministic executor\n\nexport const generated = true;\n`;
102
+ default:
103
+ return `Generated file: ${filename}\nTask: ${prompt}\n`;
104
+ }
105
+ }
106
+ /**
107
+ * DeterministicExecutor - For CLI_TEST_MODE=1
108
+ *
109
+ * Creates actual files on disk without spawning Claude Code CLI.
110
+ * Performs proper filesBefore/filesAfter 2-scan per Property 31.
111
+ */
112
+ class DeterministicExecutor {
113
+ async isClaudeCodeAvailable() {
114
+ // In deterministic mode, we don't need Claude Code CLI
115
+ return true;
116
+ }
117
+ async execute(task) {
118
+ const startTime = Date.now();
119
+ const cwd = task.workingDir;
120
+ // Step 1: filesBefore scan (Property 31)
121
+ const filesBefore = await this.listFiles(cwd);
122
+ // Step 2: Detect file creation from prompt
123
+ const filename = extractFilename(task.prompt);
124
+ // Step 3: Create file if detected
125
+ const filesCreated = [];
126
+ if (filename) {
127
+ const fullPath = path.join(cwd, filename);
128
+ const content = generateContent(filename, task.prompt);
129
+ // Ensure parent directory exists
130
+ const dir = path.dirname(fullPath);
131
+ if (!fs.existsSync(dir)) {
132
+ fs.mkdirSync(dir, { recursive: true });
133
+ }
134
+ // Write file
135
+ fs.writeFileSync(fullPath, content, 'utf-8');
136
+ filesCreated.push(filename);
137
+ }
138
+ // Step 4: filesAfter scan (Property 31)
139
+ const filesAfter = await this.listFiles(cwd);
140
+ // Step 5: Detect modified/created files via diff
141
+ const files_modified = this.detectModifiedFiles(filesBefore, filesAfter, cwd);
142
+ // Step 6: Build verified_files with actual disk verification
143
+ const verified_files = [];
144
+ const detectedAt = new Date().toISOString();
145
+ // Verify all detected files
146
+ for (const relPath of files_modified) {
147
+ const fullPath = path.join(cwd, relPath);
148
+ try {
149
+ if (fs.existsSync(fullPath)) {
150
+ const stat = fs.statSync(fullPath);
151
+ let content_preview;
152
+ if (stat.size < 10000) {
153
+ try {
154
+ const content = fs.readFileSync(fullPath, 'utf-8');
155
+ content_preview = content.substring(0, 100);
156
+ }
157
+ catch {
158
+ // Binary or encoding issue
159
+ }
160
+ }
161
+ verified_files.push({
162
+ path: relPath,
163
+ exists: true,
164
+ size: stat.size,
165
+ content_preview,
166
+ });
167
+ }
168
+ }
169
+ catch {
170
+ // File access error - skip
171
+ }
172
+ }
173
+ // Step 7: Determine status
174
+ const hasVerifiedFiles = verified_files.some((vf) => vf.exists);
175
+ let status = hasVerifiedFiles ? 'COMPLETE' : 'NO_EVIDENCE';
176
+ // If no file creation was detected but prompt was processed, still mark as complete
177
+ if (!filename && !hasVerifiedFiles) {
178
+ // No file creation detected - informational response only
179
+ status = 'COMPLETE';
180
+ }
181
+ const duration_ms = Date.now() - startTime;
182
+ return {
183
+ executed: true,
184
+ output: filename
185
+ ? `Created ${filename} successfully (deterministic mode)`
186
+ : 'No file creation detected in prompt (deterministic mode)',
187
+ files_modified,
188
+ duration_ms,
189
+ status,
190
+ cwd,
191
+ verified_files,
192
+ unverified_files: [],
193
+ };
194
+ }
195
+ /**
196
+ * List all files in a directory (recursively)
197
+ */
198
+ async listFiles(dir) {
199
+ const files = new Map();
200
+ try {
201
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
202
+ for (const entry of entries) {
203
+ const fullPath = path.join(dir, entry.name);
204
+ // Skip hidden files and node_modules
205
+ if (entry.name.startsWith('.') || entry.name === 'node_modules') {
206
+ continue;
207
+ }
208
+ if (entry.isFile()) {
209
+ try {
210
+ const stat = fs.statSync(fullPath);
211
+ files.set(fullPath, {
212
+ mtime: stat.mtimeMs,
213
+ size: stat.size,
214
+ });
215
+ }
216
+ catch {
217
+ // File may have been deleted during scan
218
+ }
219
+ }
220
+ else if (entry.isDirectory()) {
221
+ const subFiles = await this.listFiles(fullPath);
222
+ for (const [key, value] of subFiles) {
223
+ files.set(key, value);
224
+ }
225
+ }
226
+ }
227
+ }
228
+ catch {
229
+ // Directory may not exist or be inaccessible
230
+ }
231
+ return files;
232
+ }
233
+ /**
234
+ * Detect files that were modified or created
235
+ */
236
+ detectModifiedFiles(before, after, baseDir) {
237
+ const modified = [];
238
+ for (const [filePath, afterStat] of after) {
239
+ const beforeStat = before.get(filePath);
240
+ // New file
241
+ if (!beforeStat) {
242
+ modified.push(path.relative(baseDir, filePath));
243
+ continue;
244
+ }
245
+ // Modified file (mtime or size changed)
246
+ if (beforeStat.mtime !== afterStat.mtime || beforeStat.size !== afterStat.size) {
247
+ modified.push(path.relative(baseDir, filePath));
248
+ }
249
+ }
250
+ return modified;
251
+ }
252
+ }
253
+ exports.DeterministicExecutor = DeterministicExecutor;
254
+ /**
255
+ * Check if deterministic mode is enabled
256
+ */
257
+ function isDeterministicMode() {
258
+ return process.env.CLI_TEST_MODE === '1';
259
+ }
260
+ /**
261
+ * Create appropriate executor based on environment
262
+ */
263
+ function createExecutorForEnvironment() {
264
+ if (isDeterministicMode()) {
265
+ return new DeterministicExecutor();
266
+ }
267
+ return null; // Let caller use default ClaudeCodeExecutor
268
+ }
269
+ //# sourceMappingURL=deterministic-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deterministic-executor.js","sourceRoot":"","sources":["../../src/executor/deterministic-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,270 @@
1
+ /**
2
+ * Lifecycle Controller
3
+ * Based on 04_COMPONENTS.md L34-81
4
+ *
5
+ * Responsible for:
6
+ * - 7-phase lifecycle management
7
+ * - Phase transitions with gate validation
8
+ * - Fail-closed behavior
9
+ * - Overall status determination
10
+ * - Event emission (observable pattern)
11
+ * - State persistence
12
+ * - Parallel execution control
13
+ * - Error recovery with retry
14
+ */
15
+ import { EventEmitter } from 'events';
16
+ import { LifecyclePhase, PhaseStatus, OverallStatus, TaskStatus } from '../models/enums';
17
+ import { ErrorCode } from '../errors/error-codes';
18
+ /**
19
+ * Lifecycle Controller Error
20
+ */
21
+ export declare class LifecycleError extends Error {
22
+ readonly code: ErrorCode;
23
+ readonly details?: Record<string, unknown>;
24
+ constructor(code: ErrorCode, message?: string, details?: Record<string, unknown>);
25
+ }
26
+ /**
27
+ * Phase completion input
28
+ */
29
+ interface PhaseCompletionInput {
30
+ evidence: Record<string, unknown> | null;
31
+ status: PhaseStatus;
32
+ }
33
+ /**
34
+ * Phase info
35
+ */
36
+ interface PhaseInfo {
37
+ phase: LifecyclePhase;
38
+ status: PhaseStatus;
39
+ started_at?: string;
40
+ completed_at?: string;
41
+ duration_seconds: number;
42
+ retry_count: number;
43
+ evidence?: Record<string, unknown>;
44
+ }
45
+ /**
46
+ * Gate validation result
47
+ */
48
+ interface GateResult {
49
+ passed: boolean;
50
+ failures: string[];
51
+ }
52
+ /**
53
+ * Task update input
54
+ */
55
+ interface TaskUpdate {
56
+ task_id: string;
57
+ status: TaskStatus;
58
+ started_at?: string;
59
+ completed_at?: string;
60
+ evidence?: Record<string, unknown>;
61
+ }
62
+ /**
63
+ * Task info
64
+ */
65
+ interface TaskInfo {
66
+ task_id: string;
67
+ status: TaskStatus;
68
+ started_at?: string;
69
+ completed_at?: string;
70
+ evidence?: Record<string, unknown>;
71
+ }
72
+ /**
73
+ * Parallel task completion input
74
+ */
75
+ interface ParallelTaskCompletion {
76
+ status: TaskStatus;
77
+ evidence: Record<string, unknown>;
78
+ }
79
+ /**
80
+ * Parallel execution info
81
+ */
82
+ interface ParallelExecutionInfo {
83
+ active_count: number;
84
+ active_tasks: string[];
85
+ max_parallel: number;
86
+ }
87
+ /**
88
+ * Final report structure
89
+ */
90
+ interface FinalReport {
91
+ session_id: string;
92
+ phases: Array<{
93
+ name: string;
94
+ status: PhaseStatus;
95
+ started_at?: string;
96
+ completed_at?: string;
97
+ duration_seconds: number;
98
+ }>;
99
+ overall_status: OverallStatus;
100
+ completed_at: string;
101
+ }
102
+ /**
103
+ * Serialized lifecycle state
104
+ */
105
+ interface SerializedState {
106
+ session_id: string;
107
+ current_phase: LifecyclePhase;
108
+ phases: Record<string, PhaseInfo>;
109
+ overall_status: OverallStatus;
110
+ tasks: Record<string, TaskInfo>;
111
+ parallel_tasks: string[];
112
+ status_flags: {
113
+ is_error: boolean;
114
+ is_incomplete: boolean;
115
+ is_no_evidence: boolean;
116
+ is_invalid: boolean;
117
+ };
118
+ }
119
+ /**
120
+ * Lifecycle Controller class
121
+ */
122
+ export declare class LifecycleController extends EventEmitter {
123
+ private sessionId;
124
+ private currentPhase;
125
+ private phases;
126
+ private tasks;
127
+ private registeredTasks;
128
+ private parallelTasks;
129
+ private phaseTimeouts;
130
+ private phaseStartTimes;
131
+ private executorLimit;
132
+ private maxRetries;
133
+ private isError;
134
+ private isIncomplete;
135
+ private isNoEvidence;
136
+ private isInvalid;
137
+ private isCompleted;
138
+ /**
139
+ * Create a new LifecycleController
140
+ */
141
+ constructor();
142
+ /**
143
+ * Get all lifecycle phases
144
+ */
145
+ getAllPhases(): LifecyclePhase[];
146
+ /**
147
+ * Initialize the lifecycle with a session ID
148
+ */
149
+ initialize(sessionId: string): void;
150
+ /**
151
+ * Get current phase
152
+ */
153
+ getCurrentPhase(): LifecyclePhase;
154
+ /**
155
+ * Get phase status
156
+ */
157
+ getPhaseStatus(phase: LifecyclePhase): PhaseStatus;
158
+ /**
159
+ * Get phase info
160
+ */
161
+ getPhaseInfo(phase: LifecyclePhase): PhaseInfo;
162
+ /**
163
+ * Complete current phase and transition to next
164
+ * @throws LifecycleError if evidence is missing or invalid
165
+ */
166
+ completeCurrentPhase(input: PhaseCompletionInput): void;
167
+ /**
168
+ * Transition to a specific phase
169
+ * @throws LifecycleError if transition is invalid
170
+ */
171
+ transitionTo(targetPhase: LifecyclePhase): void;
172
+ /**
173
+ * Validate gate conditions for a phase
174
+ */
175
+ validateGate(phase: LifecyclePhase, input: {
176
+ evidence: Record<string, unknown>;
177
+ }): GateResult;
178
+ /**
179
+ * Handle critical error
180
+ */
181
+ handleCriticalError(error: Error): void;
182
+ /**
183
+ * Handle recoverable error (with retry)
184
+ * @throws LifecycleError if max retries exceeded
185
+ */
186
+ handleRecoverableError(phase: LifecyclePhase, error: Error): void;
187
+ /**
188
+ * Set max retries for recoverable errors
189
+ */
190
+ setMaxRetries(count: number): void;
191
+ /**
192
+ * Get overall status
193
+ */
194
+ getOverallStatus(): OverallStatus;
195
+ /**
196
+ * Check if lifecycle is complete
197
+ */
198
+ isComplete(): boolean;
199
+ /**
200
+ * Mark lifecycle as incomplete
201
+ */
202
+ markIncomplete(reason: string): void;
203
+ /**
204
+ * Mark lifecycle as no evidence
205
+ */
206
+ markNoEvidence(reason: string): void;
207
+ /**
208
+ * Mark lifecycle as invalid
209
+ */
210
+ markInvalid(reason: string): void;
211
+ /**
212
+ * Update task status (for EXECUTION phase)
213
+ */
214
+ updateTaskStatus(update: TaskUpdate): void;
215
+ /**
216
+ * Get task info
217
+ */
218
+ getTaskInfo(taskId: string): TaskInfo;
219
+ /**
220
+ * Get incomplete tasks
221
+ */
222
+ private getIncompleteTasks;
223
+ /**
224
+ * Generate final report
225
+ */
226
+ generateFinalReport(): FinalReport;
227
+ /**
228
+ * Set phase timeout
229
+ */
230
+ setPhaseTimeout(phase: LifecyclePhase, seconds: number): void;
231
+ /**
232
+ * Set phase start time (for testing)
233
+ */
234
+ setPhaseStartTimeForTesting(phase: LifecyclePhase, timestamp: number): void;
235
+ /**
236
+ * Check if phase is timed out
237
+ */
238
+ isPhaseTimedOut(phase: LifecyclePhase): boolean;
239
+ /**
240
+ * Check and handle timeout
241
+ */
242
+ checkAndHandleTimeout(): void;
243
+ /**
244
+ * Start parallel tasks
245
+ */
246
+ startParallelTasks(taskIds: string[]): void;
247
+ /**
248
+ * Start a single parallel task
249
+ * @throws LifecycleError if executor limit exceeded
250
+ */
251
+ startParallelTask(taskId: string): void;
252
+ /**
253
+ * Complete a parallel task
254
+ */
255
+ completeParallelTask(taskId: string, completion: ParallelTaskCompletion): void;
256
+ /**
257
+ * Get parallel execution info
258
+ */
259
+ getParallelExecutionInfo(): ParallelExecutionInfo;
260
+ /**
261
+ * Serialize lifecycle state
262
+ */
263
+ serialize(): SerializedState;
264
+ /**
265
+ * Deserialize lifecycle state
266
+ */
267
+ static deserialize(state: SerializedState): LifecycleController;
268
+ }
269
+ export {};
270
+ //# sourceMappingURL=lifecycle-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-controller.d.ts","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-controller.ts"],"names":[],"mappings":"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"}