claude-mycelium 2.0.0 → 2.1.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 (189) hide show
  1. package/.agent-meta/_inhibitors.ndjson +1287 -0
  2. package/.agent-meta/_quarantine.json +45 -0
  3. package/.agent-meta/config.json +9 -0
  4. package/.claude/memory.db +0 -0
  5. package/.claude/settings.local.json +4 -1
  6. package/README.md +81 -235
  7. package/SECURITY.md +145 -0
  8. package/dist/agent/worker.d.ts +8 -0
  9. package/dist/agent/worker.d.ts.map +1 -0
  10. package/dist/agent/worker.js +97 -0
  11. package/dist/agent/worker.js.map +1 -0
  12. package/dist/bin.d.ts +7 -0
  13. package/dist/bin.d.ts.map +1 -0
  14. package/dist/bin.js +11 -0
  15. package/dist/bin.js.map +1 -0
  16. package/dist/cli/cost.d.ts +10 -0
  17. package/dist/cli/cost.d.ts.map +1 -0
  18. package/dist/cli/cost.js +163 -0
  19. package/dist/cli/cost.js.map +1 -0
  20. package/dist/cli/gc.d.ts +10 -0
  21. package/dist/cli/gc.d.ts.map +1 -0
  22. package/dist/cli/gc.js +108 -0
  23. package/dist/cli/gc.js.map +1 -0
  24. package/dist/cli/gradients.d.ts +10 -0
  25. package/dist/cli/gradients.d.ts.map +1 -0
  26. package/dist/cli/gradients.js +69 -0
  27. package/dist/cli/gradients.js.map +1 -0
  28. package/dist/cli/index.d.ts +17 -0
  29. package/dist/cli/index.d.ts.map +1 -0
  30. package/dist/cli/index.js +72 -0
  31. package/dist/cli/index.js.map +1 -0
  32. package/dist/cli/init.d.ts +11 -0
  33. package/dist/cli/init.d.ts.map +1 -0
  34. package/dist/cli/init.js +97 -0
  35. package/dist/cli/init.js.map +1 -0
  36. package/dist/cli/status.d.ts +10 -0
  37. package/dist/cli/status.d.ts.map +1 -0
  38. package/dist/cli/status.js +191 -0
  39. package/dist/cli/status.js.map +1 -0
  40. package/dist/coordination/file-locks.d.ts +42 -0
  41. package/dist/coordination/file-locks.d.ts.map +1 -0
  42. package/dist/coordination/file-locks.js +269 -0
  43. package/dist/coordination/file-locks.js.map +1 -0
  44. package/dist/coordination/index.d.ts +4 -0
  45. package/dist/coordination/index.d.ts.map +1 -1
  46. package/dist/coordination/index.js +4 -0
  47. package/dist/coordination/index.js.map +1 -1
  48. package/dist/coordination/inhibitors.d.ts +84 -0
  49. package/dist/coordination/inhibitors.d.ts.map +1 -0
  50. package/dist/coordination/inhibitors.js +290 -0
  51. package/dist/coordination/inhibitors.js.map +1 -0
  52. package/dist/coordination/process-manager.d.ts +73 -0
  53. package/dist/coordination/process-manager.d.ts.map +1 -0
  54. package/dist/coordination/process-manager.js +144 -0
  55. package/dist/coordination/process-manager.js.map +1 -0
  56. package/dist/core/agent-executor.d.ts.map +1 -1
  57. package/dist/core/agent-executor.js +28 -10
  58. package/dist/core/agent-executor.js.map +1 -1
  59. package/dist/core/change-applier.d.ts +29 -5
  60. package/dist/core/change-applier.d.ts.map +1 -1
  61. package/dist/core/change-applier.js +254 -24
  62. package/dist/core/change-applier.js.map +1 -1
  63. package/dist/core/signals/churn.d.ts.map +1 -1
  64. package/dist/core/signals/churn.js +6 -4
  65. package/dist/core/signals/churn.js.map +1 -1
  66. package/dist/core/signals/debt.d.ts.map +1 -1
  67. package/dist/core/signals/debt.js +4 -3
  68. package/dist/core/signals/debt.js.map +1 -1
  69. package/dist/cost/cost-tracker.d.ts.map +1 -1
  70. package/dist/cost/cost-tracker.js +2 -0
  71. package/dist/cost/cost-tracker.js.map +1 -1
  72. package/dist/gc/index.d.ts +17 -0
  73. package/dist/gc/index.d.ts.map +1 -0
  74. package/dist/gc/index.js +17 -0
  75. package/dist/gc/index.js.map +1 -0
  76. package/dist/gc/runner.d.ts +39 -0
  77. package/dist/gc/runner.d.ts.map +1 -0
  78. package/dist/gc/runner.js +277 -0
  79. package/dist/gc/runner.js.map +1 -0
  80. package/dist/gc/trace-compactor.d.ts +31 -0
  81. package/dist/gc/trace-compactor.d.ts.map +1 -0
  82. package/dist/gc/trace-compactor.js +162 -0
  83. package/dist/gc/trace-compactor.js.map +1 -0
  84. package/dist/index.d.ts +5 -1
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +6 -1
  87. package/dist/index.js.map +1 -1
  88. package/dist/prompts/index.d.ts +2 -1
  89. package/dist/prompts/index.d.ts.map +1 -1
  90. package/dist/prompts/index.js.map +1 -1
  91. package/dist/quarantine/explorer.d.ts +65 -0
  92. package/dist/quarantine/explorer.d.ts.map +1 -0
  93. package/dist/quarantine/explorer.js +175 -0
  94. package/dist/quarantine/explorer.js.map +1 -0
  95. package/dist/quarantine/index.d.ts +7 -0
  96. package/dist/quarantine/index.d.ts.map +1 -0
  97. package/dist/quarantine/index.js +7 -0
  98. package/dist/quarantine/index.js.map +1 -0
  99. package/dist/quarantine/manager.d.ts +75 -0
  100. package/dist/quarantine/manager.d.ts.map +1 -0
  101. package/dist/quarantine/manager.js +275 -0
  102. package/dist/quarantine/manager.js.map +1 -0
  103. package/dist/task/acceptance.d.ts +29 -0
  104. package/dist/task/acceptance.d.ts.map +1 -0
  105. package/dist/task/acceptance.js +228 -0
  106. package/dist/task/acceptance.js.map +1 -0
  107. package/dist/task/executor.d.ts +30 -0
  108. package/dist/task/executor.d.ts.map +1 -0
  109. package/dist/task/executor.js +429 -0
  110. package/dist/task/executor.js.map +1 -0
  111. package/dist/task/index.d.ts +12 -0
  112. package/dist/task/index.d.ts.map +1 -0
  113. package/dist/task/index.js +12 -0
  114. package/dist/task/index.js.map +1 -0
  115. package/dist/task/planner.d.ts +21 -0
  116. package/dist/task/planner.d.ts.map +1 -0
  117. package/dist/task/planner.js +253 -0
  118. package/dist/task/planner.js.map +1 -0
  119. package/dist/task/storage.d.ts +46 -0
  120. package/dist/task/storage.d.ts.map +1 -0
  121. package/dist/task/storage.js +266 -0
  122. package/dist/task/storage.js.map +1 -0
  123. package/dist/trace/trace-event.d.ts +2 -18
  124. package/dist/trace/trace-event.d.ts.map +1 -1
  125. package/dist/trace/trace-event.js +6 -6
  126. package/dist/trace/trace-event.js.map +1 -1
  127. package/dist/utils/file-utils.d.ts.map +1 -1
  128. package/dist/utils/file-utils.js +54 -15
  129. package/dist/utils/file-utils.js.map +1 -1
  130. package/docs/PHASE5_IMPLEMENTATION.md +237 -0
  131. package/docs/PHASES-3-7-COMPLETE.md +177 -0
  132. package/docs/PHASE_4_COMPLETE.md +135 -0
  133. package/docs/PHASE_7_DELIVERABLES.md +295 -0
  134. package/docs/PHASE_7_IMPLEMENTATION.md +306 -0
  135. package/docs/PHASE_7_SUMMARY.txt +195 -0
  136. package/docs/RELEASE-NOTES-v2.1.md +213 -0
  137. package/docs/ROADMAP.md +64 -57
  138. package/docs/SECURITY-AUDIT.md +387 -0
  139. package/docs/SNAPSHOT.md +59 -32
  140. package/docs/implementation/phase3-summary.md +220 -0
  141. package/package.json +19 -11
  142. package/src/agent/worker.ts +111 -0
  143. package/src/bin.ts +13 -0
  144. package/src/cli/cost.ts +210 -0
  145. package/src/cli/gc.ts +138 -0
  146. package/src/cli/gradients.ts +95 -0
  147. package/src/cli/index.ts +79 -0
  148. package/src/cli/init.ts +139 -0
  149. package/src/cli/status.ts +218 -0
  150. package/src/coordination/file-locks.ts +300 -0
  151. package/src/coordination/index.ts +4 -0
  152. package/src/coordination/inhibitors.ts +345 -0
  153. package/src/coordination/process-manager.ts +199 -0
  154. package/src/core/agent-executor.ts +20 -4
  155. package/src/core/signals/churn.ts +8 -5
  156. package/src/core/signals/debt.ts +4 -3
  157. package/src/cost/cost-tracker.ts +2 -0
  158. package/src/gc/index.ts +17 -0
  159. package/src/gc/runner.ts +314 -0
  160. package/src/gc/trace-compactor.ts +187 -0
  161. package/src/index.ts +7 -1
  162. package/src/prompts/index.ts +2 -1
  163. package/src/quarantine/explorer.ts +234 -0
  164. package/src/quarantine/index.ts +7 -0
  165. package/src/quarantine/manager.ts +336 -0
  166. package/src/task/acceptance.ts +267 -0
  167. package/src/task/executor.ts +538 -0
  168. package/src/task/index.ts +38 -0
  169. package/src/task/planner.ts +294 -0
  170. package/src/task/storage.ts +332 -0
  171. package/src/trace/trace-event.ts +7 -26
  172. package/src/utils/file-utils.ts +61 -15
  173. package/tests/cli/gc.test.ts +206 -0
  174. package/tests/cli/init.test.ts +181 -0
  175. package/tests/cli/status.test.ts +282 -0
  176. package/tests/coordination/file-locks.test.ts +196 -0
  177. package/tests/coordination/inhibitors.test.ts +459 -0
  178. package/tests/coordination/integration.test.ts +195 -0
  179. package/tests/coordination/process-manager.test.ts +165 -0
  180. package/tests/gc/trace-compactor.test.ts +245 -0
  181. package/tests/integration/phase-7.test.ts +145 -0
  182. package/tests/quarantine/explorer.test.ts +381 -0
  183. package/tests/quarantine/manager.test.ts +399 -0
  184. package/tests/security/command-injection.test.ts +88 -0
  185. package/tests/security/path-traversal.test.ts +103 -0
  186. package/tests/task/acceptance.test.ts +411 -0
  187. package/tests/task/executor.test.ts +421 -0
  188. package/tests/task/planner.test.ts +359 -0
  189. package/tsconfig.json +2 -2
@@ -0,0 +1,429 @@
1
+ /**
2
+ * Task Execution Implementation
3
+ * Per second-spec §12.2: Task Step Execution
4
+ *
5
+ * Executes task steps in dependency order, tracking progress
6
+ * and handling create mode appropriately.
7
+ */
8
+ import { callLLM, calculateCost } from '../llm/anthropic-client.js';
9
+ import { logDebug, logError } from '../utils/logger.js';
10
+ import { fileExists, readFile, writeFile } from '../utils/file-utils.js';
11
+ import { ciProvider } from '../utils/ci-provider.js';
12
+ import { createTraceEvent, recordTraceEvent } from '../trace/index.js';
13
+ import { calculateGradient } from '../core/gradient.js';
14
+ /**
15
+ * Execute a complete task by running all steps in dependency order
16
+ */
17
+ export async function executeTask(task) {
18
+ logDebug('Executing task', { taskId: task.id, steps: task.plan?.steps.length });
19
+ if (!task.plan) {
20
+ throw new Error('Cannot execute task without a plan');
21
+ }
22
+ const waves = getParallelizableSteps(task.plan.steps);
23
+ for (let waveIndex = 0; waveIndex < waves.length; waveIndex++) {
24
+ const wave = waves[waveIndex];
25
+ logDebug('Executing wave', { wave: waveIndex + 1, steps: wave.length });
26
+ // Execute all steps in this wave (they have no dependencies on each other)
27
+ const results = await Promise.all(wave.map(step => executeStep(task, step)));
28
+ // Check for failures
29
+ const failed = results.find(r => !r.success);
30
+ if (failed) {
31
+ task.status = 'failed';
32
+ task.error = failed.error;
33
+ logError('Task step failed', new Error(failed.error), { taskId: task.id });
34
+ return task;
35
+ }
36
+ // Update completed steps
37
+ for (let i = 0; i < wave.length; i++) {
38
+ wave[i].completed = true;
39
+ wave[i].trace_id = results[i].trace_id;
40
+ task.steps_completed++;
41
+ }
42
+ // Track file changes
43
+ for (let i = 0; i < wave.length; i++) {
44
+ if (wave[i].mode === 'create') {
45
+ task.files_created.push(wave[i].target_file);
46
+ }
47
+ else {
48
+ if (!task.files_modified.includes(wave[i].target_file)) {
49
+ task.files_modified.push(wave[i].target_file);
50
+ }
51
+ }
52
+ const traceId = results[i].trace_id;
53
+ if (traceId !== undefined) {
54
+ task.traces.push(traceId);
55
+ }
56
+ }
57
+ }
58
+ task.status = 'completed';
59
+ logDebug('Task execution completed', { taskId: task.id });
60
+ return task;
61
+ }
62
+ /**
63
+ * Execute a single task step
64
+ */
65
+ export async function executeStep(task, step) {
66
+ logDebug('Executing step', {
67
+ taskId: task.id,
68
+ stepOrder: step.order,
69
+ mode: step.mode,
70
+ file: step.target_file,
71
+ });
72
+ try {
73
+ if (step.mode === 'create') {
74
+ return await executeCreateStep(task, step);
75
+ }
76
+ else {
77
+ return await executeModifyStep(task, step);
78
+ }
79
+ }
80
+ catch (error) {
81
+ const errorMsg = error instanceof Error ? error.message : 'Unknown error';
82
+ const errorObj = error instanceof Error ? error : new Error(String(error));
83
+ logError('Step execution failed', errorObj, {
84
+ taskId: task.id,
85
+ stepOrder: step.order,
86
+ });
87
+ return { success: false, error: errorMsg };
88
+ }
89
+ }
90
+ /**
91
+ * Track progress of task execution
92
+ */
93
+ export function trackProgress(task) {
94
+ const percentage = task.steps_total > 0
95
+ ? Math.round((task.steps_completed / task.steps_total) * 100)
96
+ : 0;
97
+ return {
98
+ percentage,
99
+ completed: task.steps_completed,
100
+ total: task.steps_total,
101
+ status: task.status,
102
+ };
103
+ }
104
+ /**
105
+ * Execute a create mode step (new file)
106
+ */
107
+ async function executeCreateStep(task, step) {
108
+ // Check if file already exists
109
+ if (fileExists(step.target_file)) {
110
+ return {
111
+ success: false,
112
+ error: `Cannot create file ${step.target_file} - already exists`,
113
+ };
114
+ }
115
+ // Build prompt for file creation
116
+ const systemPrompt = buildCreateSystemPrompt();
117
+ const userPrompt = buildCreateUserPrompt(task, step);
118
+ // Call LLM to generate file content
119
+ const response = await callLLM({
120
+ prompt: userPrompt,
121
+ systemPrompt,
122
+ temperature: 0.5,
123
+ maxTokens: 4000,
124
+ });
125
+ // Extract code from response
126
+ const fileContent = extractCodeFromResponse(response.content);
127
+ if (!fileContent) {
128
+ return {
129
+ success: false,
130
+ error: 'Failed to extract code from LLM response',
131
+ };
132
+ }
133
+ // Write the file
134
+ writeFile(step.target_file, fileContent);
135
+ // Run CI to validate
136
+ const ciResult = await ciProvider.run({
137
+ additions: fileContent.split('\n').length,
138
+ deletions: 0,
139
+ files_touched: [step.target_file],
140
+ });
141
+ if (!ciResult.passed) {
142
+ // Revert - delete the file
143
+ try {
144
+ const fs = await import('fs');
145
+ fs.unlinkSync(step.target_file);
146
+ }
147
+ catch { }
148
+ return {
149
+ success: false,
150
+ error: `CI failed: ${ciResult.output}`,
151
+ };
152
+ }
153
+ // Record trace
154
+ const traceId = await recordCreateTrace(step.target_file, fileContent, response.usage, response.model, task.id);
155
+ logDebug('Create step completed', {
156
+ file: step.target_file,
157
+ lines: fileContent.split('\n').length,
158
+ traceId,
159
+ });
160
+ return { success: true, trace_id: traceId };
161
+ }
162
+ /**
163
+ * Execute a modify mode step (existing file)
164
+ */
165
+ async function executeModifyStep(task, step) {
166
+ if (!fileExists(step.target_file)) {
167
+ return {
168
+ success: false,
169
+ error: `Cannot modify file ${step.target_file} - does not exist`,
170
+ };
171
+ }
172
+ const originalContent = readFile(step.target_file);
173
+ const gradientBefore = await calculateGradient(step.target_file);
174
+ // Build prompt for modification
175
+ const systemPrompt = buildModifySystemPrompt(step.mode);
176
+ const userPrompt = buildModifyUserPrompt(task, step, originalContent);
177
+ // Call LLM to generate changes
178
+ const response = await callLLM({
179
+ prompt: userPrompt,
180
+ systemPrompt,
181
+ temperature: 0.5,
182
+ maxTokens: 4000,
183
+ });
184
+ // Extract modified content
185
+ const modifiedContent = extractCodeFromResponse(response.content);
186
+ if (!modifiedContent) {
187
+ return {
188
+ success: false,
189
+ error: 'Failed to extract modified code from LLM response',
190
+ };
191
+ }
192
+ // Apply changes
193
+ writeFile(step.target_file, modifiedContent);
194
+ // Calculate change stats
195
+ const changeSet = calculateChanges(originalContent, modifiedContent, step.target_file);
196
+ // Run CI
197
+ const ciResult = await ciProvider.run(changeSet);
198
+ if (!ciResult.passed) {
199
+ // Revert changes
200
+ writeFile(step.target_file, originalContent);
201
+ return {
202
+ success: false,
203
+ error: `CI failed: ${ciResult.output}`,
204
+ };
205
+ }
206
+ // Calculate metrics after
207
+ const gradientAfter = await calculateGradient(step.target_file);
208
+ // Record trace
209
+ const traceId = await recordModifyTrace(step.target_file, step.mode, gradientBefore, gradientAfter, changeSet, response.usage, response.model, task.id);
210
+ logDebug('Modify step completed', {
211
+ file: step.target_file,
212
+ mode: step.mode,
213
+ gradientDelta: gradientBefore.score - gradientAfter.score,
214
+ traceId,
215
+ });
216
+ return { success: true, trace_id: traceId };
217
+ }
218
+ /**
219
+ * Helper to calculate file metrics (not used in current implementation)
220
+ */
221
+ /*
222
+ async function calculateFileMetrics(filePath: string, allFiles: string[]): Promise<FileMetrics> {
223
+ const [complexity, churn, errorRate, debt, centrality] = await Promise.all([
224
+ calculateComplexity(filePath),
225
+ calculateChurn(filePath),
226
+ calculateErrorRate(filePath),
227
+ calculateDebt(filePath),
228
+ calculateCentrality(filePath),
229
+ ]);
230
+
231
+ return {
232
+ path: filePath,
233
+ complexity: complexity.normalized,
234
+ churn: churn.normalized,
235
+ error_rate: errorRate.normalized,
236
+ debt: debt.normalized,
237
+ centrality: centrality.normalized,
238
+ loc: getLineCount(filePath),
239
+ };
240
+ }
241
+ */
242
+ /**
243
+ * Get steps grouped by waves (parallelizable groups)
244
+ */
245
+ function getParallelizableSteps(steps) {
246
+ const waves = [];
247
+ const completed = new Set();
248
+ while (completed.size < steps.length) {
249
+ // Find steps whose dependencies are all completed
250
+ const ready = steps.filter(step => !completed.has(step.order) &&
251
+ step.depends_on.every(dep => completed.has(dep)));
252
+ if (ready.length === 0) {
253
+ throw new Error('Circular dependency detected in task steps');
254
+ }
255
+ waves.push(ready);
256
+ ready.forEach(step => completed.add(step.order));
257
+ }
258
+ return waves;
259
+ }
260
+ /**
261
+ * Build system prompt for create mode
262
+ */
263
+ function buildCreateSystemPrompt() {
264
+ return `You are creating a new file as part of a larger task.
265
+
266
+ Output the complete file content wrapped in triple backticks with the language identifier.
267
+
268
+ Example:
269
+ \`\`\`typescript
270
+ // File content here
271
+ \`\`\`
272
+
273
+ Requirements:
274
+ - Include all necessary imports
275
+ - Add appropriate error handling
276
+ - Include JSDoc comments for exported functions
277
+ - Follow TypeScript best practices`;
278
+ }
279
+ /**
280
+ * Build user prompt for create mode
281
+ */
282
+ function buildCreateUserPrompt(task, step) {
283
+ return `## Overall Task
284
+ ${task.description}
285
+
286
+ ## This Step
287
+ ${step.description}
288
+
289
+ ## File to Create
290
+ ${step.target_file}
291
+
292
+ ## Requirements
293
+ - Create a working implementation
294
+ - Include basic error handling
295
+ - Add type annotations
296
+ - Follow existing project patterns
297
+
298
+ Generate the complete file content.`;
299
+ }
300
+ /**
301
+ * Build system prompt for modify mode
302
+ */
303
+ function buildModifySystemPrompt(mode) {
304
+ const modeInstructions = {
305
+ error_reducer: 'Focus on fixing bugs and adding error handling. Do not refactor for style.',
306
+ complexity_reducer: 'Focus on simplifying code structure. Extract functions, reduce nesting.',
307
+ debt_payer: 'Focus on fixing lint issues and improving types. Do not change logic.',
308
+ stabilizer: 'Focus on adding tests and documentation. Do not change implementation.',
309
+ explorer: 'You may challenge assumptions and propose larger changes within constraints.',
310
+ };
311
+ return `You are modifying an existing file in ${mode} mode.
312
+
313
+ ${modeInstructions[mode]}
314
+
315
+ Output the complete modified file content wrapped in triple backticks.`;
316
+ }
317
+ /**
318
+ * Build user prompt for modify mode
319
+ */
320
+ function buildModifyUserPrompt(task, step, currentContent) {
321
+ return `## Overall Task
322
+ ${task.description}
323
+
324
+ ## This Step
325
+ ${step.description}
326
+
327
+ ## Current File Content
328
+ \`\`\`typescript
329
+ ${currentContent}
330
+ \`\`\`
331
+
332
+ Modify the file according to the step description and mode constraints.
333
+ Output the complete modified file.`;
334
+ }
335
+ /**
336
+ * Extract code from LLM response (handle markdown code blocks)
337
+ */
338
+ function extractCodeFromResponse(content) {
339
+ // Try to find code in triple backticks
340
+ const codeBlockMatch = content.match(/```(?:typescript|ts|javascript|js)?\n([\s\S]*?)\n```/);
341
+ if (codeBlockMatch) {
342
+ return codeBlockMatch[1];
343
+ }
344
+ // If no code block found, check if entire content looks like code
345
+ if (content.includes('import') || content.includes('export') || content.includes('function')) {
346
+ return content.trim();
347
+ }
348
+ return null;
349
+ }
350
+ /**
351
+ * Calculate changes between original and modified content
352
+ */
353
+ function calculateChanges(original, modified, filePath) {
354
+ const originalLines = original.split('\n');
355
+ const modifiedLines = modified.split('\n');
356
+ // Simple diff: count added and removed lines
357
+ const additions = modifiedLines.length > originalLines.length
358
+ ? modifiedLines.length - originalLines.length
359
+ : 0;
360
+ const deletions = originalLines.length > modifiedLines.length
361
+ ? originalLines.length - modifiedLines.length
362
+ : 0;
363
+ return {
364
+ additions,
365
+ deletions,
366
+ files_touched: [filePath],
367
+ };
368
+ }
369
+ /**
370
+ * Record trace for create step
371
+ */
372
+ async function recordCreateTrace(filePath, content, usage, model, taskId) {
373
+ const cost = {
374
+ tokens_in: usage.inputTokens,
375
+ tokens_out: usage.outputTokens,
376
+ model,
377
+ estimated_usd: calculateCost(model, usage.inputTokens, usage.outputTokens),
378
+ };
379
+ // For create mode, gradient goes from 0 to 0 (no improvement measured)
380
+ const trace = createTraceEvent({
381
+ filePath,
382
+ mode: 'debt_payer', // Create is treated as debt_payer for metrics
383
+ gradientBefore: 0,
384
+ gradientAfter: 0,
385
+ metabolicCost: cost.estimated_usd * 100, // Normalize
386
+ efficiency: 0,
387
+ ciPassed: true,
388
+ changes: {
389
+ additions: content.split('\n').length,
390
+ deletions: 0,
391
+ files_touched: [filePath],
392
+ },
393
+ costRecord: cost,
394
+ notes: ['File created as part of task'],
395
+ taskId,
396
+ });
397
+ await recordTraceEvent(trace);
398
+ return trace.id;
399
+ }
400
+ /**
401
+ * Record trace for modify step
402
+ */
403
+ async function recordModifyTrace(filePath, mode, gradientBefore, gradientAfter, changes, usage, model, taskId) {
404
+ const cost = {
405
+ tokens_in: usage.inputTokens,
406
+ tokens_out: usage.outputTokens,
407
+ model,
408
+ estimated_usd: calculateCost(model, usage.inputTokens, usage.outputTokens),
409
+ };
410
+ const gradientDelta = gradientBefore.score - gradientAfter.score;
411
+ const metabolicCost = cost.estimated_usd * 100; // Normalize
412
+ const efficiency = metabolicCost > 0 ? gradientDelta / metabolicCost : 0;
413
+ const trace = createTraceEvent({
414
+ filePath,
415
+ mode,
416
+ gradientBefore: gradientBefore.score,
417
+ gradientAfter: gradientAfter.score,
418
+ metabolicCost,
419
+ efficiency,
420
+ ciPassed: true,
421
+ changes,
422
+ costRecord: cost,
423
+ notes: ['Modified as part of task'],
424
+ taskId,
425
+ });
426
+ await recordTraceEvent(trace);
427
+ return trace.id;
428
+ }
429
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/task/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Task System Module
3
+ * Phase 5: Task Planning & Execution
4
+ *
5
+ * Exports all task-related functionality for LLM-based task decomposition,
6
+ * execution tracking, and acceptance criteria validation.
7
+ */
8
+ export { planTask, analyzeDependencies, identifyRisks, } from './planner.js';
9
+ export { executeTask, executeStep, trackProgress, } from './executor.js';
10
+ export { validateAcceptance, checkFileExists, runTests, generateDefaultCriteria, canCompleteTask, } from './acceptance.js';
11
+ export { storeTask, loadTask, listTasks, listActiveTasks, deleteTask, updateTaskStatus, getTaskHistoryForFile, getTaskStatistics, } from './storage.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,uBAAuB,EACvB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Task System Module
3
+ * Phase 5: Task Planning & Execution
4
+ *
5
+ * Exports all task-related functionality for LLM-based task decomposition,
6
+ * execution tracking, and acceptance criteria validation.
7
+ */
8
+ export { planTask, analyzeDependencies, identifyRisks, } from './planner.js';
9
+ export { executeTask, executeStep, trackProgress, } from './executor.js';
10
+ export { validateAcceptance, checkFileExists, runTests, generateDefaultCriteria, canCompleteTask, } from './acceptance.js';
11
+ export { storeTask, loadTask, listTasks, listActiveTasks, deleteTask, updateTaskStatus, getTaskHistoryForFile, getTaskStatistics, } from './storage.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,uBAAuB,EACvB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Task Planning Implementation
3
+ * Per second-spec §12.1: Task Planning
4
+ *
5
+ * LLM-based task decomposition that generates a TaskPlan with steps,
6
+ * dependency analysis, and risk identification.
7
+ */
8
+ import { Task, TaskPlan, TaskStep } from '../types/index.js';
9
+ /**
10
+ * Plan a task by using LLM to decompose it into steps
11
+ */
12
+ export declare function planTask(task: Task): Promise<TaskPlan>;
13
+ /**
14
+ * Analyze dependencies between task steps
15
+ */
16
+ export declare function analyzeDependencies(steps: TaskStep[]): Map<number, number[]>;
17
+ /**
18
+ * Identify potential risks in the task plan
19
+ */
20
+ export declare function identifyRisks(plan: TaskPlan): string[];
21
+ //# sourceMappingURL=planner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/task/planner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7D;;GAEG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkC5D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAc5E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CA0BtD"}