@noorm/marie-cli 0.1.11 → 0.1.13

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 (65) hide show
  1. package/dist/cli-new/components/App.js.map +1 -1
  2. package/dist/cli-new/components/ApprovalDialog.js +1 -1
  3. package/dist/cli-new/components/ApprovalDialog.js.map +1 -1
  4. package/dist/cli-new/components/Banner.js.map +1 -1
  5. package/dist/cli-new/components/ChatArea.js.map +1 -1
  6. package/dist/extension.cjs +135 -134
  7. package/dist/monolith/adapters/CliMarieAdapter.js +4 -3
  8. package/dist/monolith/adapters/CliMarieAdapter.js.map +1 -1
  9. package/dist/monolith/adapters/VscodeMarieAdapter.js.map +1 -1
  10. package/dist/monolith/cli/CliFileSystemPort.js +35 -4
  11. package/dist/monolith/cli/CliFileSystemPort.js.map +1 -1
  12. package/dist/monolith/cli/MarieToolDefinitionsCLI.js +15 -12
  13. package/dist/monolith/cli/MarieToolDefinitionsCLI.js.map +1 -1
  14. package/dist/monolith/cli/index.js +16 -0
  15. package/dist/monolith/cli/index.js.map +1 -1
  16. package/dist/monolith/cli/services/JoyAutomationServiceCLI.js +3 -1
  17. package/dist/monolith/cli/services/JoyAutomationServiceCLI.js.map +1 -1
  18. package/dist/monolith/cli/services/JoyServiceCLI.js.map +1 -1
  19. package/dist/monolith/domain/joy/JoyTools.js +39 -17
  20. package/dist/monolith/domain/joy/JoyTools.js.map +1 -1
  21. package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js +2 -1
  22. package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js.map +1 -1
  23. package/dist/monolith/infrastructure/ai/core/MarieEngine.js +37 -35
  24. package/dist/monolith/infrastructure/ai/core/MarieEngine.js.map +1 -1
  25. package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js.map +1 -1
  26. package/dist/monolith/infrastructure/ai/core/MarieSemaphore.js +29 -0
  27. package/dist/monolith/infrastructure/ai/core/MarieSemaphore.js.map +1 -0
  28. package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js +21 -6
  29. package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js.map +1 -1
  30. package/dist/monolith/infrastructure/ai/core/SessionLogService.js +31 -15
  31. package/dist/monolith/infrastructure/ai/core/SessionLogService.js.map +1 -1
  32. package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js.map +1 -1
  33. package/dist/monolith/infrastructure/services/MarieMemoryStore.js +11 -0
  34. package/dist/monolith/infrastructure/services/MarieMemoryStore.js.map +1 -1
  35. package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js +15 -5
  36. package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js.map +1 -1
  37. package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js +46 -2
  38. package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js.map +1 -1
  39. package/dist/monolith/infrastructure/tools/ToolRegistry.js +8 -1
  40. package/dist/monolith/infrastructure/tools/ToolRegistry.js.map +1 -1
  41. package/dist/monolith/plumbing/analysis/LintService.js +10 -3
  42. package/dist/monolith/plumbing/analysis/LintService.js.map +1 -1
  43. package/dist/monolith/plumbing/analysis/MarieSentinelService.js +47 -33
  44. package/dist/monolith/plumbing/analysis/MarieSentinelService.js.map +1 -1
  45. package/dist/monolith/plumbing/analysis/QualityGuardrailService.js +40 -35
  46. package/dist/monolith/plumbing/analysis/QualityGuardrailService.js.map +1 -1
  47. package/dist/monolith/plumbing/analysis/SurgicalMender.js +6 -4
  48. package/dist/monolith/plumbing/analysis/SurgicalMender.js.map +1 -1
  49. package/dist/monolith/plumbing/analysis/TestService.js +3 -1
  50. package/dist/monolith/plumbing/analysis/TestService.js.map +1 -1
  51. package/dist/monolith/plumbing/filesystem/FileService.js +31 -9
  52. package/dist/monolith/plumbing/filesystem/FileService.js.map +1 -1
  53. package/dist/monolith/plumbing/filesystem/PathResolver.js.map +1 -1
  54. package/dist/monolith/plumbing/utils/StreamTagDetector.js +3 -1
  55. package/dist/monolith/plumbing/utils/StreamTagDetector.js.map +1 -1
  56. package/dist/monolith/runtime/MarieRuntime.js.map +1 -1
  57. package/dist/monolith/services/JoyService.js +2 -1
  58. package/dist/monolith/services/JoyService.js.map +1 -1
  59. package/dist/monolith/tests/FileAppendVerifyTest.js +1 -1
  60. package/dist/monolith/tests/FileAppendVerifyTest.js.map +1 -1
  61. package/dist/monolith/tests/StreamingVerifyTest.js +87 -26
  62. package/dist/monolith/tests/StreamingVerifyTest.js.map +1 -1
  63. package/dist/monolith/tests/VisualProgressTest.js +86 -0
  64. package/dist/monolith/tests/VisualProgressTest.js.map +1 -0
  65. package/package.json +1 -1
@@ -32,15 +32,14 @@ export class MarieSentinelService {
32
32
  const newMtimes = {};
33
33
  // FAST PATH: Check ascension mode
34
34
  const isAscension = ConfigService.getAutonomyMode() === "ascension";
35
- for (const file of allFiles) {
35
+ await Promise.all(allFiles.map(async (file) => {
36
36
  const stats = await fs.stat(file);
37
37
  const mtime = stats.mtimeMs;
38
38
  const relativePath = path.relative(workingDir, file);
39
39
  newMtimes[relativePath] = mtime;
40
40
  const hasChanged = lastMtimes[relativePath] !== mtime;
41
41
  const content = await fs.readFile(file, "utf8");
42
- // A. Semantic Duplication (Token-based hash to ignore naming/formatting)
43
- // FAST PATH: Skip expensive semantic hash in Ascension mode
42
+ // A. Semantic Duplication
44
43
  if (!isAscension) {
45
44
  const semanticHash = this.computeSemanticHash(content);
46
45
  if (semanticHashMap.has(semanticHash)) {
@@ -55,15 +54,14 @@ export class MarieSentinelService {
55
54
  }
56
55
  // B. Robust Import Extraction & Resolution
57
56
  const rawImports = this.extractImports(content);
58
- const resolvedImports = await Promise.all(rawImports.map(i => this.resolveImportDeep(i, file, workingDir)));
57
+ const resolvedImports = await Promise.all(rawImports.map((i) => this.resolveImportDeep(i, file, workingDir)));
59
58
  const validImports = resolvedImports.filter(Boolean);
60
59
  dependencyGraph.set(relativePath, validImports);
61
60
  // C. Target Analysis
62
- // INCREMENTAL SENTINEL: Skip expensive analysis if file hasn't changed
63
61
  if (targetFiles.includes(file) && hasChanged) {
64
62
  await this.analyzeFile(file, workingDir, content, validImports, zoneViolations, leakyAbstractions, toxicFiles);
65
63
  }
66
- }
64
+ }));
67
65
  // 2. Cycle Detection (Global)
68
66
  // FAST PATH: Skip expensive cycle detection in Ascension mode
69
67
  if (!isAscension) {
@@ -72,17 +70,20 @@ export class MarieSentinelService {
72
70
  }
73
71
  // 3. Score Normalization & Ratchet
74
72
  const lintErrors = await LintService.runLint(workingDir);
75
- const entropyScore = (zoneViolations.length * 8) + // Weighted higher
76
- (lintErrors.length * 1) +
77
- (circularDependencies.length * 15) + // Structural rot is expensive
78
- (toxicFiles.length * 6) +
79
- (leakyAbstractions.length * 5) +
80
- (duplication.length * 10); // DRY is law
73
+ const entropyScore = zoneViolations.length * 8 + // Weighted higher
74
+ lintErrors.length * 1 +
75
+ circularDependencies.length * 15 + // Structural rot is expensive
76
+ toxicFiles.length * 6 +
77
+ leakyAbstractions.length * 5 +
78
+ duplication.length * 10; // DRY is law
81
79
  const entropyDelta = entropyScore - state.lastEntropy;
82
80
  await this.saveState(workingDir, {
83
81
  lastEntropy: entropyScore,
84
- history: [...state.history, { date: new Date().toISOString(), entropy: entropyScore }].slice(-20),
85
- fileHashes: newMtimes
82
+ history: [
83
+ ...state.history,
84
+ { date: new Date().toISOString(), entropy: entropyScore },
85
+ ].slice(-20),
86
+ fileHashes: newMtimes,
86
87
  });
87
88
  let stability = "Stable";
88
89
  if (entropyScore > 30)
@@ -100,7 +101,7 @@ export class MarieSentinelService {
100
101
  entropyScore,
101
102
  entropyDelta,
102
103
  stability,
103
- hotspots: Array.from(new Set([...zoneViolations.map(v => v.split(" ")[1]), ...toxicFiles])).slice(0, 5),
104
+ hotspots: Array.from(new Set([...zoneViolations.map((v) => v.split(" ")[1]), ...toxicFiles])).slice(0, 5),
104
105
  quarantineCandidates: toxicFiles,
105
106
  graphDefinition: this.generateMermaidGraph(dependencyGraph, zoneViolations),
106
107
  passed: entropyScore < 20 && entropyDelta <= 0,
@@ -114,13 +115,13 @@ export class MarieSentinelService {
114
115
  */
115
116
  static computeSemanticHash(content) {
116
117
  const tokens = content
117
- .replace(/\/\/.*$/gm, '') // Strip line comments
118
- .replace(/\/\*[\s\S]*?\*\//g, '') // Strip block comments
119
- .replace(/\s+/g, ' ') // Normalize whitespace
120
- .replace(/\b(const|let|var)\s+\w+\b/g, 'VAR') // Normalize variable declarations
121
- .replace(/\bfunction\s+\w+\b/g, 'FUNC') // Normalize function names
118
+ .replace(/\/\/.*$/gm, "") // Strip line comments
119
+ .replace(/\/\*[\s\S]*?\*\//g, "") // Strip block comments
120
+ .replace(/\s+/g, " ") // Normalize whitespace
121
+ .replace(/\b(const|let|var)\s+\w+\b/g, "VAR") // Normalize variable declarations
122
+ .replace(/\bfunction\s+\w+\b/g, "FUNC") // Normalize function names
122
123
  .trim();
123
- return crypto.createHash('sha256').update(tokens).digest('hex');
124
+ return crypto.createHash("sha256").update(tokens).digest("hex");
124
125
  }
125
126
  static async resolveImportDeep(imp, sourceFile, workingDir) {
126
127
  if (!imp.startsWith("."))
@@ -160,7 +161,8 @@ export class MarieSentinelService {
160
161
  if (zone === this.ZONES.DOMAIN && impZone !== this.ZONES.DOMAIN) {
161
162
  zoneViolations.push(`[Purity Breach] ${relativePath} -> ${impPath} (${impZone})`);
162
163
  }
163
- if (zone === this.ZONES.INFRASTRUCTURE && impZone === this.ZONES.PLUMBING) {
164
+ if (zone === this.ZONES.INFRASTRUCTURE &&
165
+ impZone === this.ZONES.PLUMBING) {
164
166
  zoneViolations.push(`[Architecture Leak] ${relativePath} -> ${impPath} (Infrastructure cannot use Plumbing)`);
165
167
  }
166
168
  }
@@ -180,7 +182,8 @@ export class MarieSentinelService {
180
182
  static getZone(filePath) {
181
183
  if (filePath.includes("src/domain") || filePath.includes("/domain/"))
182
184
  return this.ZONES.DOMAIN;
183
- if (filePath.includes("src/infrastructure") || filePath.includes("/infrastructure/"))
185
+ if (filePath.includes("src/infrastructure") ||
186
+ filePath.includes("/infrastructure/"))
184
187
  return this.ZONES.INFRASTRUCTURE;
185
188
  if (filePath.includes("src/plumbing") || filePath.includes("/plumbing/"))
186
189
  return this.ZONES.PLUMBING;
@@ -223,12 +226,12 @@ export class MarieSentinelService {
223
226
  static generateMermaidGraph(graph, violations) {
224
227
  let mermaid = "graph TD;\n";
225
228
  const nodes = Array.from(graph.keys()).slice(0, 40);
226
- nodes.forEach(node => {
227
- const id = node.replace(/[^a-zA-Z0-9]/g, '_');
229
+ nodes.forEach((node) => {
230
+ const id = node.replace(/[^a-zA-Z0-9]/g, "_");
228
231
  const name = path.basename(node);
229
- graph.get(node)?.forEach(dep => {
230
- const depId = dep.replace(/[^a-zA-Z0-9]/g, '_');
231
- const isViolated = violations.some(v => v.includes(node) && v.includes(dep));
232
+ graph.get(node)?.forEach((dep) => {
233
+ const depId = dep.replace(/[^a-zA-Z0-9]/g, "_");
234
+ const isViolated = violations.some((v) => v.includes(node) && v.includes(dep));
232
235
  mermaid += ` ${id}[${name}] --> ${depId}[${path.basename(dep)}];\n`;
233
236
  if (isViolated)
234
237
  mermaid += ` style ${id} fill:#f96,stroke:#333,stroke-width:2px\n`;
@@ -254,11 +257,13 @@ export class MarieSentinelService {
254
257
  const entries = await fs.readdir(dir, { withFileTypes: true });
255
258
  const files = await Promise.all(entries.map((entry) => {
256
259
  const res = path.resolve(dir, entry.name);
257
- if (res.includes("node_modules") || res.includes(".git") || res.includes("dist"))
260
+ if (res.includes("node_modules") ||
261
+ res.includes(".git") ||
262
+ res.includes("dist"))
258
263
  return [];
259
264
  return entry.isDirectory() ? this.getAllFiles(res) : res;
260
265
  }));
261
- return files.flat().filter(f => /\.(ts|tsx)$/.test(f));
266
+ return files.flat().filter((f) => /\.(ts|tsx)$/.test(f));
262
267
  }
263
268
  static async writeToSentinelLog(workingDir, report) {
264
269
  const logPath = path.join(workingDir, "SENTINEL.md");
@@ -281,9 +286,18 @@ ${report.graphDefinition}
281
286
  \`\`\`
282
287
 
283
288
  ## 📜 High-Priority Alerts
284
- ${report.zoneViolations.slice(0, 5).map(v => `- ❌ ${v}`).join("\n")}
285
- ${report.circularDependencies.slice(0, 3).map(c => `- 🔄 ${c}`).join("\n")}
286
- ${report.duplication.slice(0, 3).map(d => `- 👯 ${d}`).join("\n")}
289
+ ${report.zoneViolations
290
+ .slice(0, 5)
291
+ .map((v) => `- ${v}`)
292
+ .join("\n")}
293
+ ${report.circularDependencies
294
+ .slice(0, 3)
295
+ .map((c) => `- 🔄 ${c}`)
296
+ .join("\n")}
297
+ ${report.duplication
298
+ .slice(0, 3)
299
+ .map((d) => `- 👯 ${d}`)
300
+ .join("\n")}
287
301
 
288
302
  ---
289
303
  *Marie Sentinel v3.1 — Grounded Architectural Guardian*
@@ -1 +1 @@
1
- {"version":3,"file":"MarieSentinelService.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/analysis/MarieSentinelService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MarieSentinelService.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/analysis/MarieSentinelService.ts"],"names":[],"mappings":"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"}
@@ -18,8 +18,37 @@ export class QualityGuardrailService {
18
18
  let passed = true;
19
19
  let autoFixed = false;
20
20
  let surgicalMends = 0;
21
- // 1. 🛡️ SENTINEL V3.0 ARCHITECTURAL AUDIT
22
- const sentinelReport = await MarieSentinelService.audit(cwd, filePath);
21
+ // 1. TYPE SOVEREIGNTY (Surgical Enforcement) - Do this first as it modifies the file
22
+ surgicalMends += await SurgicalMender.enforceTypeSovereignty(filePath);
23
+ // 2. LINTING & SURGICAL MENDING - May also modify the file
24
+ let lintErrors = await LintService.runLintOnFile(cwd, filePath);
25
+ if (lintErrors.length > 0) {
26
+ // Step A: Attempt standard fixer (ESLint --fix)
27
+ const fixResult = await LintService.fixFile(cwd, filePath);
28
+ if (fixResult.success)
29
+ autoFixed = true;
30
+ // Step B: Apply high-precision surgical mending
31
+ const mendResult = await SurgicalMender.mend(filePath, lintErrors);
32
+ if (mendResult.mended) {
33
+ surgicalMends += mendResult.fixedCount;
34
+ // Re-scan after surgical intervention
35
+ lintErrors = await LintService.runLintOnFile(cwd, filePath);
36
+ }
37
+ }
38
+ const finalCriticalLint = lintErrors.filter((e) => e.severity === "error");
39
+ if (finalCriticalLint.length > 0) {
40
+ passed = false;
41
+ violations.push(`Lint Regression: ${finalCriticalLint.length} persistent error(s) found.`);
42
+ }
43
+ // 3. PARALLEL ANALYTICAL AUDIT
44
+ // Run expensive analytical checks in parallel once modifications are complete
45
+ const [sentinelReport, complexity, testReport, content] = await Promise.all([
46
+ MarieSentinelService.audit(cwd, filePath),
47
+ ComplexityService.analyze(filePath),
48
+ TestService.runTargetedTests(cwd, filePath),
49
+ fs.readFile(filePath, "utf-8"),
50
+ ]);
51
+ // Sentinel Violations
23
52
  if (sentinelReport.zoneViolations.length > 0) {
24
53
  violations.push(...sentinelReport.zoneViolations);
25
54
  passed = false;
@@ -34,9 +63,9 @@ export class QualityGuardrailService {
34
63
  }
35
64
  if (sentinelReport.duplication.length > 0) {
36
65
  violations.push(...sentinelReport.duplication);
37
- passed = false; // Duplication is a hard rejection in the Domain
66
+ passed = false;
38
67
  }
39
- // The Ratchet Protocol: Entropy must not rise
68
+ // Entropy Ratchet
40
69
  if (sentinelReport.entropyDelta > 0) {
41
70
  violations.push(`RATCHET LOCK: Entropy increased by +${sentinelReport.entropyDelta}. Changes must maintain or lower entropy.`);
42
71
  passed = false;
@@ -45,43 +74,19 @@ export class QualityGuardrailService {
45
74
  violations.push(`TOXICITY ALERT: This file is a quarantine candidate. Immediate refactor required.`);
46
75
  passed = false;
47
76
  }
48
- // 2. TYPE SOVEREIGNTY (Surgical Enforcement)
49
- surgicalMends += await SurgicalMender.enforceTypeSovereignty(filePath);
50
- // 3. LINTING & SURGICAL MENDING
51
- let lintErrors = await LintService.runLintOnFile(cwd, filePath);
52
- if (lintErrors.length > 0) {
53
- // Step A: Attempt standard fixer (ESLint --fix)
54
- const fixResult = await LintService.fixFile(cwd, filePath);
55
- if (fixResult.success)
56
- autoFixed = true;
57
- // Step B: Apply high-precision surgical mending
58
- const mendResult = await SurgicalMender.mend(filePath, lintErrors);
59
- if (mendResult.mended) {
60
- surgicalMends += mendResult.fixedCount;
61
- // Re-scan after surgical intervention
62
- lintErrors = await LintService.runLintOnFile(cwd, filePath);
63
- }
64
- }
65
- const finalCriticalLint = lintErrors.filter(e => e.severity === "error");
66
- if (finalCriticalLint.length > 0) {
67
- passed = false;
68
- violations.push(`Lint Regression: ${finalCriticalLint.length} persistent error(s) found.`);
69
- }
70
- // 4. SUB-ATOMIC COMPLEXITY
71
- const complexity = await ComplexityService.analyze(filePath);
77
+ // Complexity Violations
72
78
  if (complexity.clutterLevel === "Toxic") {
73
79
  passed = false;
74
80
  violations.push(`Complexity Alert: Cyclomatic complexity (${complexity.cyclomaticComplexity}) exceeds production safety limits.`);
75
81
  }
76
- // Hard rejection for 'any' in new code
77
- const content = await fs.readFile(filePath, "utf-8");
78
- const anyUsage = (content.match(/:\s*any\b|as\s+any\b|<\s*any\s*>/gi) || []).length;
82
+ // Type Sovereignty (Any check)
83
+ const anyUsage = (content.match(/:\s*any\b|as\s+any\b|<\s*any\s*>/gi) || [])
84
+ .length;
79
85
  if (anyUsage > 0) {
80
86
  passed = false;
81
87
  violations.push(`Type Sovereignty Breach: ${anyUsage} instance(s) of 'any' detected. Be more precise.`);
82
88
  }
83
- // 5. TARGETED TEST REGRESSIONS
84
- const testReport = await TestService.runTargetedTests(cwd, filePath);
89
+ // Test Regression Violations
85
90
  if (testReport && !testReport.success) {
86
91
  passed = false;
87
92
  violations.push(`Test Regression: ${testReport.failedTests.length} related test(s) failed.`);
@@ -92,7 +97,7 @@ export class QualityGuardrailService {
92
97
  score -= sentinelReport.circularDependencies.length * 20;
93
98
  score -= sentinelReport.leakyAbstractions.length * 10;
94
99
  score -= sentinelReport.duplication.length * 10;
95
- score -= sentinelReport.entropyDelta > 0 ? 50 : 0; // Heavy penalty for regression
100
+ score -= sentinelReport.entropyDelta > 0 ? 50 : 0;
96
101
  score -= finalCriticalLint.length * 10;
97
102
  score -= complexity.cyclomaticComplexity > 10 ? 20 : 0;
98
103
  score -= anyUsage * 5;
@@ -112,7 +117,7 @@ export class QualityGuardrailService {
112
117
  zoningHealthy: sentinelReport.zoneViolations.length === 0,
113
118
  typeSovereignty: anyUsage === 0,
114
119
  entropy: sentinelReport.entropyScore,
115
- }
120
+ },
116
121
  };
117
122
  }
118
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QualityGuardrailService.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/analysis/QualityGuardrailService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QualityGuardrailService.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/analysis/QualityGuardrailService.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,8 @@ export class SurgicalMender {
8
8
  * Applies surgical fixes to a file based on provided lint errors.
9
9
  */
10
10
  static async mend(filePath, errors) {
11
- let content = await fs.readFile(filePath, "utf-8");
12
- let lines = content.split("\n");
11
+ const content = await fs.readFile(filePath, "utf-8");
12
+ const lines = content.split("\n");
13
13
  let fixedCount = 0;
14
14
  // Sort errors bottom-to-top to avoid offset issues
15
15
  const sortedErrors = [...errors].sort((a, b) => b.line - a.line);
@@ -20,7 +20,8 @@ export class SurgicalMender {
20
20
  let line = lines[lineIdx];
21
21
  const originalLine = line;
22
22
  // Precision Fix 1: Unused Variables (Prefix with _)
23
- if (err.message.includes("is defined but never used") || err.message.includes("unused")) {
23
+ if (err.message.includes("is defined but never used") ||
24
+ err.message.includes("unused")) {
24
25
  // Try to find the variable name in the error or line
25
26
  const varMatch = err.message.match(/'([^']+)'/);
26
27
  const varName = varMatch ? varMatch[1] : null;
@@ -29,7 +30,8 @@ export class SurgicalMender {
29
30
  }
30
31
  }
31
32
  // Precision Fix 2: Prefer Const
32
- if (err.ruleId === "prefer-const" || err.message.includes("should be a const")) {
33
+ if (err.ruleId === "prefer-const" ||
34
+ err.message.includes("should be a const")) {
33
35
  line = line.replace(/\blet\b/, "const");
34
36
  }
35
37
  // Precision Fix 3: Missing Semicolon
@@ -1 +1 @@
1
- {"version":3,"file":"SurgicalMender.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/analysis/SurgicalMender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SurgicalMender.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/analysis/SurgicalMender.ts"],"names":[],"mappings":"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"}
@@ -75,7 +75,9 @@ export class TestService {
75
75
  let capturingError = false;
76
76
  let currentError = "";
77
77
  for (const line of lines) {
78
- if (line.includes(" ❌ ") || line.includes(" FAIL ") || line.includes("FAILED")) {
78
+ if (line.includes(" ❌ ") ||
79
+ line.includes(" FAIL ") ||
80
+ line.includes("FAILED")) {
79
81
  failedTests.push(line.trim());
80
82
  }
81
83
  if (line.includes("AssertionError") || line.includes("Error: ")) {
@@ -1 +1 @@
1
- {"version":3,"file":"TestService.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/analysis/TestService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TestService.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/analysis/TestService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAUlC,MAAM,OAAO,WAAW;IACtB;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,YAAY,CAC9B,OAAe,EACf,MAAc,OAAO,CAAC,GAAG,EAAE;QAE3B,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAE3C,IAAI,MAAM,GAAG,6BAA6B,CAAC;YAC3C,MAAM,IAAI,eAAe,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC;YAEtF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,wBAAwB,CAAC;gBACnC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBAE9D,MAAM,IAAI,sBAAsB,CAAC;gBACjC,MAAM,CAAC,MAAM;qBACV,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;qBACX,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,6EAA6E,CAAC;YAC1F,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,kDAAkD;gBAClD,IAAI,MAAM,GAAG,6BAA6B,CAAC;gBAC3C,MAAM,IAAI,uCAAuC,CAAC;gBAClD,MAAM,IAAI,wBAAwB,CAAC;gBACnC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9D,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,iCAAiC,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAClC,GAAW,EACX,QAAgB;QAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,MAAM,QAAQ,QAAQ,CAAC;QAE3C,2EAA2E;QAC3E,MAAM,iBAAiB,GAAG;YACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,QAAQ,UAAU,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,QAAQ,UAAU,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,QAAQ,UAAU,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,QAAQ,UAAU,CAAC;SAC/C,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC1B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CACxC,gBAAgB,QAAQ,GAAG,EAC3B,EAAE,GAAG,EAAE,CACR,CAAC;gBACF,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;oBAAE,SAAS;gBAClC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,CAAC,0BAA0B;IACzC,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,MAAc;QACvC,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IACE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACvB,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAChC,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChE,cAAc,GAAG,IAAI,CAAC;gBACtB,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;YACpC,CAAC;iBAAM,IAAI,cAAc,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBACvD,YAAY,IAAI,IAAI,GAAG,IAAI,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;oBACjC,cAAc,GAAG,KAAK,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EACL,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnE,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,WAAW;YACX,MAAM;YACN,SAAS,EAAE,MAAM;SAClB,CAAC;IACJ,CAAC;CACF"}
@@ -132,8 +132,9 @@ export async function writeFile(filePath, content, signal, expectedMtime, onProg
132
132
  const tmpUri = vscode.Uri.file(`${uri.fsPath}.tmp.${Math.random().toString(36).substring(2, 9)}`);
133
133
  console.log(`[FileService] Performing ATOMIC write to ${filePath} via ${tmpUri.fsPath}`);
134
134
  const encoded = textEncoder.encode(content);
135
+ const totalBytes = encoded.length;
135
136
  // CHUNKED WRITE for progress reporting if onProgress is provided
136
- if (onProgress && encoded.length > 16384) {
137
+ if (onProgress && totalBytes > 16384) {
137
138
  const CHUNK_SIZE = 16384; // 16KB chunks
138
139
  let written = 0;
139
140
  // We still use vscode.workspace.fs.writeFile as it doesn't support streams natively in a generic way,
@@ -147,7 +148,7 @@ export async function writeFile(filePath, content, signal, expectedMtime, onProg
147
148
  const chunk = encoded.slice(written, written + CHUNK_SIZE);
148
149
  await handle.write(chunk);
149
150
  written += chunk.length;
150
- onProgress(written);
151
+ onProgress(written, totalBytes);
151
152
  }
152
153
  }
153
154
  finally {
@@ -157,12 +158,12 @@ export async function writeFile(filePath, content, signal, expectedMtime, onProg
157
158
  else {
158
159
  // Fallback for non-file schemes: single write + progress at end
159
160
  await vscode.workspace.fs.writeFile(tmpUri, encoded);
160
- onProgress(encoded.length);
161
+ onProgress(encoded.length, totalBytes);
161
162
  }
162
163
  }
163
164
  else {
164
165
  await vscode.workspace.fs.writeFile(tmpUri, encoded);
165
- onProgress?.(encoded.length);
166
+ onProgress?.(encoded.length, totalBytes);
166
167
  }
167
168
  if (signal?.aborted) {
168
169
  try {
@@ -208,11 +209,32 @@ export async function appendToFile(filePath, content, signal, onProgress) {
208
209
  const lock = getLock(uri.fsPath);
209
210
  await lock.acquireWrite();
210
211
  try {
212
+ const buffer = Buffer.from(content, "utf-8");
213
+ const totalBytes = buffer.length;
211
214
  if (uri.scheme === "file") {
212
- // Direct Node fs append
213
- const buffer = Buffer.from(content, "utf-8");
214
- await fs.promises.appendFile(uri.fsPath, buffer);
215
- onProgress?.(buffer.length);
215
+ // Direct Node fs append with chunked progress if large
216
+ if (onProgress && buffer.length > 16384) {
217
+ const CHUNK_SIZE = 16384;
218
+ let written = 0;
219
+ const handle = await fs.promises.open(uri.fsPath, "a");
220
+ try {
221
+ while (written < buffer.length) {
222
+ if (signal?.aborted)
223
+ throw new Error("Aborted");
224
+ const chunk = buffer.subarray(written, written + CHUNK_SIZE);
225
+ await handle.write(chunk);
226
+ written += chunk.length;
227
+ onProgress(written, totalBytes);
228
+ }
229
+ }
230
+ finally {
231
+ await handle.close();
232
+ }
233
+ }
234
+ else {
235
+ await fs.promises.appendFile(uri.fsPath, buffer);
236
+ onProgress?.(buffer.length, totalBytes);
237
+ }
216
238
  }
217
239
  else {
218
240
  // Fallback to reading and overwriting (less efficient)
@@ -223,7 +245,7 @@ export async function appendToFile(filePath, content, signal, onProgress) {
223
245
  catch (e) {
224
246
  /* proceed with empty */
225
247
  }
226
- await writeFile(filePath, currentContent + content, signal);
248
+ await writeFile(filePath, currentContent + content, signal, undefined, onProgress);
227
249
  }
228
250
  }
229
251
  catch (error) {