claude-mycelium 2.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 (207) hide show
  1. package/.claude/settings.local.json +14 -0
  2. package/README.md +304 -0
  3. package/dist/coordination/gradient-cache.d.ts +48 -0
  4. package/dist/coordination/gradient-cache.d.ts.map +1 -0
  5. package/dist/coordination/gradient-cache.js +145 -0
  6. package/dist/coordination/gradient-cache.js.map +1 -0
  7. package/dist/coordination/index.d.ts +10 -0
  8. package/dist/coordination/index.d.ts.map +1 -0
  9. package/dist/coordination/index.js +10 -0
  10. package/dist/coordination/index.js.map +1 -0
  11. package/dist/core/agent-executor.d.ts +31 -0
  12. package/dist/core/agent-executor.d.ts.map +1 -0
  13. package/dist/core/agent-executor.js +257 -0
  14. package/dist/core/agent-executor.js.map +1 -0
  15. package/dist/core/change-applier.d.ts +10 -0
  16. package/dist/core/change-applier.d.ts.map +1 -0
  17. package/dist/core/change-applier.js +32 -0
  18. package/dist/core/change-applier.js.map +1 -0
  19. package/dist/core/gradient.d.ts +60 -0
  20. package/dist/core/gradient.d.ts.map +1 -0
  21. package/dist/core/gradient.js +191 -0
  22. package/dist/core/gradient.js.map +1 -0
  23. package/dist/core/index.d.ts +24 -0
  24. package/dist/core/index.d.ts.map +1 -0
  25. package/dist/core/index.js +24 -0
  26. package/dist/core/index.js.map +1 -0
  27. package/dist/core/mode-selector.d.ts +44 -0
  28. package/dist/core/mode-selector.d.ts.map +1 -0
  29. package/dist/core/mode-selector.js +208 -0
  30. package/dist/core/mode-selector.js.map +1 -0
  31. package/dist/core/signals/centrality.d.ts +44 -0
  32. package/dist/core/signals/centrality.d.ts.map +1 -0
  33. package/dist/core/signals/centrality.js +264 -0
  34. package/dist/core/signals/centrality.js.map +1 -0
  35. package/dist/core/signals/churn.d.ts +41 -0
  36. package/dist/core/signals/churn.d.ts.map +1 -0
  37. package/dist/core/signals/churn.js +188 -0
  38. package/dist/core/signals/churn.js.map +1 -0
  39. package/dist/core/signals/complexity.d.ts +29 -0
  40. package/dist/core/signals/complexity.d.ts.map +1 -0
  41. package/dist/core/signals/complexity.js +169 -0
  42. package/dist/core/signals/complexity.js.map +1 -0
  43. package/dist/core/signals/debt.d.ts +27 -0
  44. package/dist/core/signals/debt.d.ts.map +1 -0
  45. package/dist/core/signals/debt.js +80 -0
  46. package/dist/core/signals/debt.js.map +1 -0
  47. package/dist/core/signals/errors.d.ts +32 -0
  48. package/dist/core/signals/errors.d.ts.map +1 -0
  49. package/dist/core/signals/errors.js +73 -0
  50. package/dist/core/signals/errors.js.map +1 -0
  51. package/dist/core/signals/index.d.ts +19 -0
  52. package/dist/core/signals/index.d.ts.map +1 -0
  53. package/dist/core/signals/index.js +19 -0
  54. package/dist/core/signals/index.js.map +1 -0
  55. package/dist/cost/cost-tracker.d.ts +90 -0
  56. package/dist/cost/cost-tracker.d.ts.map +1 -0
  57. package/dist/cost/cost-tracker.js +305 -0
  58. package/dist/cost/cost-tracker.js.map +1 -0
  59. package/dist/cost/index.d.ts +56 -0
  60. package/dist/cost/index.d.ts.map +1 -0
  61. package/dist/cost/index.js +111 -0
  62. package/dist/cost/index.js.map +1 -0
  63. package/dist/index.d.ts +35 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +40 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/llm/anthropic-client.d.ts +52 -0
  68. package/dist/llm/anthropic-client.d.ts.map +1 -0
  69. package/dist/llm/anthropic-client.js +310 -0
  70. package/dist/llm/anthropic-client.js.map +1 -0
  71. package/dist/llm/index.d.ts +27 -0
  72. package/dist/llm/index.d.ts.map +1 -0
  73. package/dist/llm/index.js +34 -0
  74. package/dist/llm/index.js.map +1 -0
  75. package/dist/prompts/complexity-reducer.d.ts +7 -0
  76. package/dist/prompts/complexity-reducer.d.ts.map +1 -0
  77. package/dist/prompts/complexity-reducer.js +55 -0
  78. package/dist/prompts/complexity-reducer.js.map +1 -0
  79. package/dist/prompts/debt-payer.d.ts +7 -0
  80. package/dist/prompts/debt-payer.d.ts.map +1 -0
  81. package/dist/prompts/debt-payer.js +55 -0
  82. package/dist/prompts/debt-payer.js.map +1 -0
  83. package/dist/prompts/error-reducer.d.ts +7 -0
  84. package/dist/prompts/error-reducer.d.ts.map +1 -0
  85. package/dist/prompts/error-reducer.js +54 -0
  86. package/dist/prompts/error-reducer.js.map +1 -0
  87. package/dist/prompts/index.d.ts +22 -0
  88. package/dist/prompts/index.d.ts.map +1 -0
  89. package/dist/prompts/index.js +112 -0
  90. package/dist/prompts/index.js.map +1 -0
  91. package/dist/prompts/stabilizer.d.ts +7 -0
  92. package/dist/prompts/stabilizer.d.ts.map +1 -0
  93. package/dist/prompts/stabilizer.js +55 -0
  94. package/dist/prompts/stabilizer.js.map +1 -0
  95. package/dist/prompts/types.d.ts +14 -0
  96. package/dist/prompts/types.d.ts.map +1 -0
  97. package/dist/prompts/types.js +5 -0
  98. package/dist/prompts/types.js.map +1 -0
  99. package/dist/trace/index.d.ts +51 -0
  100. package/dist/trace/index.d.ts.map +1 -0
  101. package/dist/trace/index.js +60 -0
  102. package/dist/trace/index.js.map +1 -0
  103. package/dist/trace/trace-event.d.ts +72 -0
  104. package/dist/trace/trace-event.d.ts.map +1 -0
  105. package/dist/trace/trace-event.js +244 -0
  106. package/dist/trace/trace-event.js.map +1 -0
  107. package/dist/types/index.d.ts +206 -0
  108. package/dist/types/index.d.ts.map +1 -0
  109. package/dist/types/index.js +6 -0
  110. package/dist/types/index.js.map +1 -0
  111. package/dist/utils/ci-provider.d.ts +43 -0
  112. package/dist/utils/ci-provider.d.ts.map +1 -0
  113. package/dist/utils/ci-provider.js +130 -0
  114. package/dist/utils/ci-provider.js.map +1 -0
  115. package/dist/utils/config.d.ts +31 -0
  116. package/dist/utils/config.d.ts.map +1 -0
  117. package/dist/utils/config.js +85 -0
  118. package/dist/utils/config.js.map +1 -0
  119. package/dist/utils/error-provider.d.ts +51 -0
  120. package/dist/utils/error-provider.d.ts.map +1 -0
  121. package/dist/utils/error-provider.js +123 -0
  122. package/dist/utils/error-provider.js.map +1 -0
  123. package/dist/utils/file-utils.d.ts +18 -0
  124. package/dist/utils/file-utils.d.ts.map +1 -0
  125. package/dist/utils/file-utils.js +95 -0
  126. package/dist/utils/file-utils.js.map +1 -0
  127. package/dist/utils/index.d.ts +10 -0
  128. package/dist/utils/index.d.ts.map +1 -0
  129. package/dist/utils/index.js +10 -0
  130. package/dist/utils/index.js.map +1 -0
  131. package/dist/utils/logger.d.ts +36 -0
  132. package/dist/utils/logger.d.ts.map +1 -0
  133. package/dist/utils/logger.js +74 -0
  134. package/dist/utils/logger.js.map +1 -0
  135. package/docs/IMPLEMENTATION-STATUS.md +199 -0
  136. package/docs/PHASE-0-COMPLETE.md +252 -0
  137. package/docs/PHASE-1-COMPLETE.md +204 -0
  138. package/docs/PHASE-2-COMPLETE.md +233 -0
  139. package/docs/PHASE2_COMPLETION_CHECKLIST.md +290 -0
  140. package/docs/PHASE2_INTEGRATION_SUMMARY.md +255 -0
  141. package/docs/PHASE2_QUICK_REFERENCE.md +365 -0
  142. package/docs/PHASE2_TEST_RESULTS.md +282 -0
  143. package/docs/ROADMAP.md +746 -0
  144. package/docs/SNAPSHOT.md +376 -0
  145. package/docs/adrs/ADR-001-signal-computation.md +76 -0
  146. package/docs/adrs/ADR-002-inhibitor-signals.md +108 -0
  147. package/docs/adrs/ADR-003-llm-integration.md +156 -0
  148. package/docs/adrs/ADR-004-process-architecture.md +175 -0
  149. package/docs/adrs/ADR-005-testing-strategy.md +243 -0
  150. package/docs/pitch.md +94 -0
  151. package/docs/specs/fourth-spec.md +1973 -0
  152. package/docs/specs/initial-spec.md +2096 -0
  153. package/docs/specs/second-spec.md +2690 -0
  154. package/package.json +50 -0
  155. package/src/coordination/gradient-cache.ts +185 -0
  156. package/src/coordination/index.ts +10 -0
  157. package/src/core/agent-executor.ts +327 -0
  158. package/src/core/change-applier.ts +338 -0
  159. package/src/core/gradient.ts +258 -0
  160. package/src/core/index.ts +24 -0
  161. package/src/core/mode-selector.ts +243 -0
  162. package/src/core/signals/centrality.ts +328 -0
  163. package/src/core/signals/churn.ts +239 -0
  164. package/src/core/signals/complexity.ts +206 -0
  165. package/src/core/signals/debt.ts +111 -0
  166. package/src/core/signals/errors.ts +93 -0
  167. package/src/core/signals/index.ts +19 -0
  168. package/src/cost/cost-tracker.ts +410 -0
  169. package/src/cost/index.ts +143 -0
  170. package/src/index.ts +43 -0
  171. package/src/llm/anthropic-client.ts +415 -0
  172. package/src/llm/index.ts +43 -0
  173. package/src/prompts/complexity-reducer.ts +59 -0
  174. package/src/prompts/debt-payer.ts +59 -0
  175. package/src/prompts/error-reducer.ts +58 -0
  176. package/src/prompts/index.ts +128 -0
  177. package/src/prompts/stabilizer.ts +59 -0
  178. package/src/prompts/types.ts +15 -0
  179. package/src/trace/README.md +178 -0
  180. package/src/trace/index.ts +88 -0
  181. package/src/trace/trace-event.ts +324 -0
  182. package/src/types/index.ts +271 -0
  183. package/src/utils/ci-provider.ts +145 -0
  184. package/src/utils/config.ts +95 -0
  185. package/src/utils/error-provider.ts +138 -0
  186. package/src/utils/file-utils.ts +111 -0
  187. package/src/utils/index.ts +10 -0
  188. package/src/utils/logger.ts +94 -0
  189. package/test-8d713cc8-f4b7-403d-8153-57573172b94c.ts +3 -0
  190. package/tests/coordination/gradient-cache.test.ts +270 -0
  191. package/tests/core/agent-executor.test.ts +217 -0
  192. package/tests/core/change-applier.test.ts +336 -0
  193. package/tests/core/gradient.test.ts +263 -0
  194. package/tests/core/mode-selector.test.ts +239 -0
  195. package/tests/core/signals/centrality.test.ts +512 -0
  196. package/tests/core/signals/churn.test.ts +355 -0
  197. package/tests/core/signals/complexity.test.ts +284 -0
  198. package/tests/core/signals/debt.test.ts +437 -0
  199. package/tests/core/signals/errors.test.ts +350 -0
  200. package/tests/cost/cost-tracker.test.ts +475 -0
  201. package/tests/integration/phase2.test.ts +405 -0
  202. package/tests/llm/anthropic-client.test.ts +437 -0
  203. package/tests/prompts/prompts.test.ts +266 -0
  204. package/tests/trace/trace-event.test.ts +666 -0
  205. package/tests/utils/file-utils.test.ts +148 -0
  206. package/tsconfig.json +24 -0
  207. package/vitest.config.ts +28 -0
@@ -0,0 +1,244 @@
1
+ /**
2
+ * Trace Event System for Claude-Mycelium
3
+ * Records agent actions for learning and analysis
4
+ * Storage: .agent-meta/traces.jsonl (JSON Lines format)
5
+ */
6
+ import { v4 as uuidv4 } from 'uuid';
7
+ import * as path from 'path';
8
+ import * as fs from 'fs';
9
+ import { appendFile, readFile, fileExists, ensureDir } from '../utils/file-utils.js';
10
+ import { logInfo, logError, logDebug } from '../utils/logger.js';
11
+ const TRACES_FILE = '.agent-meta/traces.jsonl';
12
+ const MAX_TRACES = 1000; // Keep last 1000 traces
13
+ /**
14
+ * Record a trace event to the append-only log
15
+ */
16
+ export async function recordTrace(event) {
17
+ try {
18
+ // Ensure .agent-meta directory exists
19
+ ensureDir('.agent-meta');
20
+ // Calculate gradient delta if not provided
21
+ if (event.gradient_delta === undefined) {
22
+ event.gradient_delta = event.gradient_before - event.gradient_after;
23
+ }
24
+ // Serialize to JSON and append
25
+ const line = JSON.stringify(event) + '\n';
26
+ appendFile(TRACES_FILE, line);
27
+ // Log summary
28
+ logInfo('Trace recorded', {
29
+ file: event.file_path,
30
+ mode: event.mode,
31
+ delta: event.gradient_delta.toFixed(3),
32
+ cost: `$${event.cost_usd.toFixed(4)}`,
33
+ success: event.success,
34
+ });
35
+ // Check if cleanup needed (every 100 traces)
36
+ await maybeCleanupTraces();
37
+ }
38
+ catch (error) {
39
+ logError('Failed to record trace', error, { event });
40
+ throw error;
41
+ }
42
+ }
43
+ /**
44
+ * Read traces with optional filters
45
+ * Returns traces sorted by timestamp (newest first)
46
+ */
47
+ export async function readTraces(filters) {
48
+ try {
49
+ if (!fileExists(TRACES_FILE)) {
50
+ return [];
51
+ }
52
+ const content = readFile(TRACES_FILE);
53
+ const lines = content.trim().split('\n').filter(line => line.length > 0);
54
+ // Parse all traces
55
+ const traces = [];
56
+ for (const line of lines) {
57
+ try {
58
+ const trace = JSON.parse(line);
59
+ traces.push(trace);
60
+ }
61
+ catch (error) {
62
+ logError('Failed to parse trace line', error, { line: line.substring(0, 100) });
63
+ // Skip corrupted lines
64
+ }
65
+ }
66
+ // Apply filters
67
+ let filtered = traces;
68
+ if (filters?.file) {
69
+ filtered = filtered.filter(t => t.file_path === filters.file);
70
+ }
71
+ if (filters?.mode) {
72
+ filtered = filtered.filter(t => t.mode === filters.mode);
73
+ }
74
+ if (filters?.since) {
75
+ const sinceMs = filters.since.getTime();
76
+ filtered = filtered.filter(t => new Date(t.timestamp).getTime() >= sinceMs);
77
+ }
78
+ // Sort by timestamp (newest first)
79
+ filtered.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
80
+ // Apply limit
81
+ if (filters?.limit && filters.limit > 0) {
82
+ filtered = filtered.slice(0, filters.limit);
83
+ }
84
+ return filtered;
85
+ }
86
+ catch (error) {
87
+ logError('Failed to read traces', error);
88
+ return [];
89
+ }
90
+ }
91
+ /**
92
+ * Calculate recent efficiency for a file
93
+ * Efficiency = gradient improvement per dollar spent
94
+ * Returns null if insufficient data
95
+ */
96
+ export async function getRecentEfficiency(file, lastN = 5) {
97
+ try {
98
+ const traces = await readTraces({ file, limit: lastN });
99
+ if (traces.length < 3) {
100
+ // Need at least 3 samples
101
+ return null;
102
+ }
103
+ const efficiency = calculateEfficiency(traces);
104
+ return efficiency;
105
+ }
106
+ catch (error) {
107
+ logError('Failed to calculate efficiency', error, { file, lastN });
108
+ return null;
109
+ }
110
+ }
111
+ /**
112
+ * Calculate efficiency from traces
113
+ * Efficiency = sum(gradient_delta) / sum(cost_usd)
114
+ */
115
+ export function calculateEfficiency(traces) {
116
+ if (traces.length === 0) {
117
+ return 0;
118
+ }
119
+ const totalDelta = traces.reduce((sum, t) => sum + t.gradient_delta, 0);
120
+ const totalCost = traces.reduce((sum, t) => sum + t.cost_usd, 0);
121
+ // Prevent division by zero
122
+ if (totalCost === 0) {
123
+ return totalDelta > 0 ? Infinity : 0;
124
+ }
125
+ return totalDelta / totalCost;
126
+ }
127
+ /**
128
+ * Get statistics from traces
129
+ */
130
+ export function getTraceStats(traces) {
131
+ if (traces.length === 0) {
132
+ return {
133
+ totalCost: 0,
134
+ avgDelta: 0,
135
+ successRate: 0,
136
+ totalTraces: 0,
137
+ };
138
+ }
139
+ const totalCost = traces.reduce((sum, t) => sum + t.cost_usd, 0);
140
+ const totalDelta = traces.reduce((sum, t) => sum + t.gradient_delta, 0);
141
+ const successCount = traces.filter(t => t.success).length;
142
+ return {
143
+ totalCost,
144
+ avgDelta: totalDelta / traces.length,
145
+ successRate: successCount / traces.length,
146
+ totalTraces: traces.length,
147
+ };
148
+ }
149
+ /**
150
+ * Cleanup old traces to keep file size manageable
151
+ * Keeps last MAX_TRACES traces
152
+ */
153
+ async function maybeCleanupTraces() {
154
+ try {
155
+ if (!fileExists(TRACES_FILE)) {
156
+ return;
157
+ }
158
+ const traces = await readTraces();
159
+ if (traces.length <= MAX_TRACES) {
160
+ return;
161
+ }
162
+ logInfo('Cleaning up traces', {
163
+ current: traces.length,
164
+ keeping: MAX_TRACES,
165
+ });
166
+ // Keep last MAX_TRACES traces
167
+ const kept = traces.slice(0, MAX_TRACES);
168
+ // Archive older traces
169
+ const archived = traces.slice(MAX_TRACES);
170
+ await archiveTraces(archived);
171
+ // Rewrite traces file
172
+ const lines = kept.map(t => JSON.stringify(t) + '\n').join('');
173
+ fs.writeFileSync(TRACES_FILE, lines, 'utf-8');
174
+ logInfo('Trace cleanup complete', {
175
+ archived: archived.length,
176
+ remaining: kept.length,
177
+ });
178
+ }
179
+ catch (error) {
180
+ logError('Failed to cleanup traces', error);
181
+ // Non-fatal, continue
182
+ }
183
+ }
184
+ /**
185
+ * Archive old traces to dated files
186
+ */
187
+ async function archiveTraces(traces) {
188
+ if (traces.length === 0) {
189
+ return;
190
+ }
191
+ const archiveDir = '.agent-meta/traces-archive';
192
+ ensureDir(archiveDir);
193
+ // Group by date
194
+ const byDate = new Map();
195
+ for (const trace of traces) {
196
+ const date = trace.timestamp.split('T')[0]; // Extract YYYY-MM-DD
197
+ if (!byDate.has(date)) {
198
+ byDate.set(date, []);
199
+ }
200
+ byDate.get(date).push(trace);
201
+ }
202
+ // Write to dated archive files
203
+ for (const [date, dateTraces] of byDate.entries()) {
204
+ const archiveFile = path.join(archiveDir, `traces-${date}.jsonl`);
205
+ const lines = dateTraces.map(t => JSON.stringify(t) + '\n').join('');
206
+ appendFile(archiveFile, lines);
207
+ }
208
+ logDebug('Traces archived', { dates: Array.from(byDate.keys()) });
209
+ }
210
+ /**
211
+ * Generate a unique trace ID
212
+ */
213
+ export function generateTraceId() {
214
+ return uuidv4();
215
+ }
216
+ /**
217
+ * Calculate cost from token usage
218
+ * Based on model pricing (Claude Sonnet 4)
219
+ */
220
+ export function calculateCost(tokensIn, tokensOut, model = 'claude-sonnet-4') {
221
+ // Pricing per million tokens (as of 2025)
222
+ const PRICING = {
223
+ 'claude-sonnet-4': { input: 3.00, output: 15.00 },
224
+ 'claude-sonnet-4-20250514': { input: 3.00, output: 15.00 },
225
+ 'claude-haiku-4': { input: 0.25, output: 1.25 },
226
+ 'claude-haiku-4-20250514': { input: 0.25, output: 1.25 },
227
+ };
228
+ const pricing = PRICING[model] || PRICING['claude-sonnet-4'];
229
+ const inputCost = (tokensIn / 1_000_000) * pricing.input;
230
+ const outputCost = (tokensOut / 1_000_000) * pricing.output;
231
+ return inputCost + outputCost;
232
+ }
233
+ /**
234
+ * Create a trace event with defaults
235
+ */
236
+ export function createTraceEvent(partial) {
237
+ return {
238
+ id: generateTraceId(),
239
+ timestamp: new Date().toISOString(),
240
+ gradient_delta: partial.gradient_before - partial.gradient_after,
241
+ ...partial,
242
+ };
243
+ }
244
+ //# sourceMappingURL=trace-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-event.js","sourceRoot":"","sources":["../../src/trace/trace-event.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAmCjE,MAAM,WAAW,GAAG,0BAA0B,CAAC;AAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,wBAAwB;AAEjD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAiB;IACjD,IAAI,CAAC;QACH,sCAAsC;QACtC,SAAS,CAAC,aAAa,CAAC,CAAC;QAEzB,2CAA2C;QAC3C,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACvC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;QACtE,CAAC;QAED,+BAA+B;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC1C,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAE9B,cAAc;QACd,OAAO,CAAC,gBAAgB,EAAE;YACxB,IAAI,EAAE,KAAK,CAAC,SAAS;YACrB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;YACtC,IAAI,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACrC,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QAEH,6CAA6C;QAC7C,MAAM,kBAAkB,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,wBAAwB,EAAE,KAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAsB;IACrD,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEzE,mBAAmB;QACnB,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAe,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,4BAA4B,EAAE,KAAc,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACzF,uBAAuB;YACzB,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,QAAQ,GAAG,MAAM,CAAC;QAEtB,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACxC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,CAAC;QAC9E,CAAC;QAED,mCAAmC;QACnC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAE3F,cAAc;QACd,IAAI,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACxC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,uBAAuB,EAAE,KAAc,CAAC,CAAC;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAY,EACZ,QAAgB,CAAC;IAEjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAExD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,0BAA0B;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,gCAAgC,EAAE,KAAc,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAoB;IACtD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEjE,2BAA2B;IAC3B,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,UAAU,GAAG,SAAS,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,CAAC;SACf,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAE1D,OAAO;QACL,SAAS;QACT,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM;QACpC,WAAW,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM;QACzC,WAAW,EAAE,MAAM,CAAC,MAAM;KAC3B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB;IAC/B,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAElC,IAAI,MAAM,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,oBAAoB,EAAE;YAC5B,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,OAAO,EAAE,UAAU;SACpB,CAAC,CAAC;QAEH,8BAA8B;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAEzC,uBAAuB;QACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE9B,sBAAsB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAE9C,OAAO,CAAC,wBAAwB,EAAE;YAChC,QAAQ,EAAE,QAAQ,CAAC,MAAM;YACzB,SAAS,EAAE,IAAI,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,0BAA0B,EAAE,KAAc,CAAC,CAAC;QACrD,sBAAsB;IACxB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,MAAoB;IAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,4BAA4B,CAAC;IAChD,SAAS,CAAC,UAAU,CAAC,CAAC;IAEtB,gBAAgB;IAChB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAC;IAE/C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;QACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,+BAA+B;IAC/B,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,QAAQ,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,QAAQ,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,EAAE,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,SAAiB,EAAE,QAAgB,iBAAiB;IAClG,0CAA0C;IAC1C,MAAM,OAAO,GAAsD;QACjE,iBAAiB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;QACjD,0BAA0B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1D,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAC/C,yBAAyB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;KACzD,CAAC;IAEF,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IACzD,MAAM,UAAU,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAE5D,OAAO,SAAS,GAAG,UAAU,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAgE;IAEhE,OAAO;QACL,EAAE,EAAE,eAAe,EAAE;QACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,cAAc,EAAE,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc;QAChE,GAAG,OAAO;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Claude-Mycelium v2 Type Definitions
3
+ * Complete TypeScript interfaces from Appendix A of the specification
4
+ */
5
+ export type Mode = 'error_reducer' | 'complexity_reducer' | 'debt_payer' | 'stabilizer' | 'explorer';
6
+ export type TaskMode = Mode | 'create';
7
+ export type TaskStatus = 'pending' | 'planning' | 'in_progress' | 'validating' | 'completed' | 'failed' | 'blocked';
8
+ export interface FileMetrics {
9
+ path: string;
10
+ complexity: number;
11
+ churn: number;
12
+ error_rate: number;
13
+ debt: number;
14
+ centrality: number;
15
+ loc: number;
16
+ }
17
+ export interface Gradient {
18
+ file: string;
19
+ score: number;
20
+ baseScore: number;
21
+ impactMultiplier: number;
22
+ efficiencyPenalty: number;
23
+ dominantSignal: 'complexity' | 'churn' | 'error_rate' | 'debt';
24
+ }
25
+ export interface TraceEvent {
26
+ id: string;
27
+ timestamp: string;
28
+ file_path: string;
29
+ mode: Mode;
30
+ gradient_before: number;
31
+ gradient_after: number;
32
+ gradient_delta: number;
33
+ metabolic_cost: number;
34
+ efficiency: number;
35
+ ci_passed: boolean;
36
+ changes: ChangeSet;
37
+ notes: string[];
38
+ task_id?: string;
39
+ agent_id?: string;
40
+ cost: CostRecord;
41
+ }
42
+ export interface ChangeSet {
43
+ additions: number;
44
+ deletions: number;
45
+ files_touched: string[];
46
+ }
47
+ export interface CostRecord {
48
+ tokens_in: number;
49
+ tokens_out: number;
50
+ model: string;
51
+ estimated_usd: number;
52
+ }
53
+ export interface QuarantineEntry {
54
+ file: string;
55
+ quarantined_at: string;
56
+ reason: string;
57
+ attempts_before_quarantine: number;
58
+ explorer_attempts: number;
59
+ max_explorer_attempts: 3;
60
+ }
61
+ export interface GCReport {
62
+ timestamp: string;
63
+ deleted: number;
64
+ compacted: number;
65
+ size_before_mb: number;
66
+ size_after_mb: number;
67
+ errors: string[];
68
+ duration_ms: number;
69
+ }
70
+ export interface EventSummary {
71
+ __summary__: true;
72
+ mode: Mode;
73
+ avg_efficiency: number;
74
+ efficiency_range: [number, number];
75
+ count: number;
76
+ date_range: [string, string];
77
+ success_rate: number;
78
+ notes: string;
79
+ }
80
+ export interface Task {
81
+ id: string;
82
+ description: string;
83
+ target?: string;
84
+ status: TaskStatus;
85
+ created_at: string;
86
+ completed_at?: string;
87
+ plan?: TaskPlan;
88
+ acceptance_criteria: AcceptanceCriterion[];
89
+ steps_completed: number;
90
+ steps_total: number;
91
+ files_created: string[];
92
+ files_modified: string[];
93
+ traces: string[];
94
+ error?: string;
95
+ }
96
+ export interface TaskPlan {
97
+ summary: string;
98
+ steps: TaskStep[];
99
+ estimated_complexity: 'small' | 'medium' | 'large';
100
+ risks: string[];
101
+ }
102
+ export interface TaskStep {
103
+ order: number;
104
+ description: string;
105
+ target_file: string;
106
+ mode: TaskMode;
107
+ depends_on: number[];
108
+ completed: boolean;
109
+ trace_id?: string;
110
+ }
111
+ export interface AcceptanceCriterion {
112
+ description: string;
113
+ type: 'file_exists' | 'test_passes' | 'no_lint_errors' | 'custom';
114
+ check: string;
115
+ met: boolean;
116
+ }
117
+ export interface LockFile {
118
+ agent_id: string;
119
+ file: string;
120
+ mode: Mode;
121
+ acquired_at: string;
122
+ expires_at: string;
123
+ pid: number;
124
+ task_id?: string;
125
+ }
126
+ export interface GradientCache {
127
+ computed_at: string;
128
+ expires_at: string;
129
+ gradients: Gradient[];
130
+ }
131
+ export interface AgentResult {
132
+ success: boolean;
133
+ changes?: ChangeSet;
134
+ cost?: CostRecord;
135
+ efficiency?: number;
136
+ error?: string;
137
+ }
138
+ export interface CostMetrics {
139
+ total_usd: number;
140
+ total_tokens_in: number;
141
+ total_tokens_out: number;
142
+ avg_cost_per_run: number;
143
+ avg_cost_per_improvement: number;
144
+ cost_efficiency_trend: 'improving' | 'stable' | 'degrading';
145
+ }
146
+ export interface DailyCostSummary {
147
+ date: string;
148
+ runs: number;
149
+ total_cost_usd: number;
150
+ total_tokens_in: number;
151
+ total_tokens_out: number;
152
+ avg_efficiency: number;
153
+ cost_per_improvement: number;
154
+ }
155
+ export interface Inhibitor {
156
+ id: string;
157
+ timestamp: string;
158
+ trigger: {
159
+ file?: string;
160
+ pattern?: string;
161
+ mode?: Mode;
162
+ };
163
+ signal: string;
164
+ origin: {
165
+ agent_id: string;
166
+ trace_id: string;
167
+ energy_wasted: number;
168
+ failure_type: 'ci_failed' | 'regression' | 'reverted' | 'loop_detected';
169
+ };
170
+ strength: number;
171
+ half_life_days: number;
172
+ }
173
+ export interface InhibitorState {
174
+ updated_at: string;
175
+ inhibitors: Inhibitor[];
176
+ }
177
+ export interface ErrorProvider {
178
+ getErrors(file: string): Promise<{
179
+ count: number;
180
+ types: string[];
181
+ }>;
182
+ }
183
+ export interface CIProvider {
184
+ run(changes: ChangeSet): Promise<{
185
+ passed: boolean;
186
+ output: string;
187
+ }>;
188
+ }
189
+ export interface SystemConfig {
190
+ version: string;
191
+ created_at: string;
192
+ error_provider: 'file' | string;
193
+ error_file: string;
194
+ ci_command: string;
195
+ spawn_count: number;
196
+ last_gc_at_spawn: number;
197
+ }
198
+ export interface ErrorProviderData {
199
+ updated_at: string;
200
+ errors: Array<{
201
+ file: string;
202
+ count: number;
203
+ types: string[];
204
+ }>;
205
+ }
206
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,MAAM,IAAI,GAAG,eAAe,GAAG,oBAAoB,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;AACrG,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC;AACvC,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAMpH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,YAAY,GAAG,OAAO,GAAG,YAAY,GAAG,MAAM,CAAC;CAChE;AAMD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB;AAMD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B,EAAE,MAAM,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,CAAC,CAAC;CAC1B;AAMD,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,IAAI,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAMD,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,oBAAoB,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,aAAa,GAAG,aAAa,GAAG,gBAAgB,GAAG,QAAQ,CAAC;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;CACd;AAMD,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAMD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,MAAM,CAAC;IACjC,qBAAqB,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;CAC7D;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAMD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,IAAI,CAAC;KACb,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,eAAe,CAAC;KACzE,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAMD,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvE;AAMD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Claude-Mycelium v2 Type Definitions
3
+ * Complete TypeScript interfaces from Appendix A of the specification
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,43 @@
1
+ import type { CIProvider, ChangeSet } from '../types/index.js';
2
+ /**
3
+ * CI provider that runs tests and linters
4
+ * Per spec §16 (second-spec.md)
5
+ *
6
+ * Default command: "npm test && npm run lint"
7
+ * Configurable via .agent-meta/config.json
8
+ */
9
+ export declare class NpmCIProvider implements CIProvider {
10
+ private ciCommand;
11
+ constructor(ciCommand?: string);
12
+ /**
13
+ * Run CI checks (tests + lint)
14
+ * Returns whether all checks passed and output
15
+ */
16
+ run(changes: ChangeSet): Promise<{
17
+ passed: boolean;
18
+ output: string;
19
+ }>;
20
+ /**
21
+ * Run only tests (skip lint)
22
+ */
23
+ runTests(): Promise<{
24
+ passed: boolean;
25
+ output: string;
26
+ }>;
27
+ /**
28
+ * Run only lint (skip tests)
29
+ */
30
+ runLint(): Promise<{
31
+ passed: boolean;
32
+ output: string;
33
+ }>;
34
+ /**
35
+ * Check if CI is configured (npm scripts exist)
36
+ */
37
+ isConfigured(): Promise<boolean>;
38
+ }
39
+ /**
40
+ * Default CI provider instance
41
+ */
42
+ export declare const ciProvider: NpmCIProvider;
43
+ //# sourceMappingURL=ci-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-provider.d.ts","sourceRoot":"","sources":["../../src/utils/ci-provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAM/D;;;;;;GAMG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,CAAC,EAAE,MAAM;IAU9B;;;OAGG;IACG,GAAG,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAyC3E;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAuB9D;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAuB7D;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;CAWvC;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,eAAsB,CAAC"}
@@ -0,0 +1,130 @@
1
+ import { exec } from 'child_process';
2
+ import { promisify } from 'util';
3
+ import { loadConfig } from './config.js';
4
+ import { logInfo, logError } from './logger.js';
5
+ const execAsync = promisify(exec);
6
+ /**
7
+ * CI provider that runs tests and linters
8
+ * Per spec §16 (second-spec.md)
9
+ *
10
+ * Default command: "npm test && npm run lint"
11
+ * Configurable via .agent-meta/config.json
12
+ */
13
+ export class NpmCIProvider {
14
+ ciCommand;
15
+ constructor(ciCommand) {
16
+ if (ciCommand) {
17
+ this.ciCommand = ciCommand;
18
+ }
19
+ else {
20
+ // Load from config
21
+ const config = loadConfig();
22
+ this.ciCommand = config.ci_command;
23
+ }
24
+ }
25
+ /**
26
+ * Run CI checks (tests + lint)
27
+ * Returns whether all checks passed and output
28
+ */
29
+ async run(changes) {
30
+ logInfo('Running CI checks', {
31
+ command: this.ciCommand,
32
+ files: changes.files_touched.length,
33
+ });
34
+ try {
35
+ const { stdout, stderr } = await execAsync(this.ciCommand, {
36
+ maxBuffer: 1024 * 1024 * 10, // 10MB buffer for large test output
37
+ timeout: 300000, // 5 minute timeout
38
+ });
39
+ const output = [stdout, stderr].filter(Boolean).join('\n');
40
+ logInfo('CI checks passed', {
41
+ additions: changes.additions,
42
+ deletions: changes.deletions,
43
+ });
44
+ return {
45
+ passed: true,
46
+ output,
47
+ };
48
+ }
49
+ catch (error) {
50
+ // exec throws error when command exits with non-zero code
51
+ const output = [error.stdout || '', error.stderr || '']
52
+ .filter(Boolean)
53
+ .join('\n');
54
+ logError('CI checks failed', error, {
55
+ exitCode: error.code,
56
+ signal: error.signal,
57
+ });
58
+ return {
59
+ passed: false,
60
+ output: output || error.message,
61
+ };
62
+ }
63
+ }
64
+ /**
65
+ * Run only tests (skip lint)
66
+ */
67
+ async runTests() {
68
+ const testCommand = 'npm test';
69
+ try {
70
+ const { stdout, stderr } = await execAsync(testCommand, {
71
+ maxBuffer: 1024 * 1024 * 10,
72
+ timeout: 300000,
73
+ });
74
+ return {
75
+ passed: true,
76
+ output: [stdout, stderr].filter(Boolean).join('\n'),
77
+ };
78
+ }
79
+ catch (error) {
80
+ return {
81
+ passed: false,
82
+ output: [error.stdout, error.stderr].filter(Boolean).join('\n') ||
83
+ error.message,
84
+ };
85
+ }
86
+ }
87
+ /**
88
+ * Run only lint (skip tests)
89
+ */
90
+ async runLint() {
91
+ const lintCommand = 'npm run lint';
92
+ try {
93
+ const { stdout, stderr } = await execAsync(lintCommand, {
94
+ maxBuffer: 1024 * 1024 * 10,
95
+ timeout: 60000, // 1 minute for lint
96
+ });
97
+ return {
98
+ passed: true,
99
+ output: [stdout, stderr].filter(Boolean).join('\n'),
100
+ };
101
+ }
102
+ catch (error) {
103
+ return {
104
+ passed: false,
105
+ output: [error.stdout, error.stderr].filter(Boolean).join('\n') ||
106
+ error.message,
107
+ };
108
+ }
109
+ }
110
+ /**
111
+ * Check if CI is configured (npm scripts exist)
112
+ */
113
+ async isConfigured() {
114
+ try {
115
+ // Check if npm test is defined
116
+ await execAsync('npm run test --help', {
117
+ timeout: 5000,
118
+ });
119
+ return true;
120
+ }
121
+ catch {
122
+ return false;
123
+ }
124
+ }
125
+ }
126
+ /**
127
+ * Default CI provider instance
128
+ */
129
+ export const ciProvider = new NpmCIProvider();
130
+ //# sourceMappingURL=ci-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-provider.js","sourceRoot":"","sources":["../../src/utils/ci-provider.ts"],"names":[],"mappings":"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"}