@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.
- package/dist/cli-new/components/App.js.map +1 -1
- package/dist/cli-new/components/ApprovalDialog.js +1 -1
- package/dist/cli-new/components/ApprovalDialog.js.map +1 -1
- package/dist/cli-new/components/Banner.js.map +1 -1
- package/dist/cli-new/components/ChatArea.js.map +1 -1
- package/dist/extension.cjs +135 -134
- package/dist/monolith/adapters/CliMarieAdapter.js +4 -3
- package/dist/monolith/adapters/CliMarieAdapter.js.map +1 -1
- package/dist/monolith/adapters/VscodeMarieAdapter.js.map +1 -1
- package/dist/monolith/cli/CliFileSystemPort.js +35 -4
- package/dist/monolith/cli/CliFileSystemPort.js.map +1 -1
- package/dist/monolith/cli/MarieToolDefinitionsCLI.js +15 -12
- package/dist/monolith/cli/MarieToolDefinitionsCLI.js.map +1 -1
- package/dist/monolith/cli/index.js +16 -0
- package/dist/monolith/cli/index.js.map +1 -1
- package/dist/monolith/cli/services/JoyAutomationServiceCLI.js +3 -1
- package/dist/monolith/cli/services/JoyAutomationServiceCLI.js.map +1 -1
- package/dist/monolith/cli/services/JoyServiceCLI.js.map +1 -1
- package/dist/monolith/domain/joy/JoyTools.js +39 -17
- package/dist/monolith/domain/joy/JoyTools.js.map +1 -1
- package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js +2 -1
- package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieEngine.js +37 -35
- package/dist/monolith/infrastructure/ai/core/MarieEngine.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieSemaphore.js +29 -0
- package/dist/monolith/infrastructure/ai/core/MarieSemaphore.js.map +1 -0
- package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js +21 -6
- package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/SessionLogService.js +31 -15
- package/dist/monolith/infrastructure/ai/core/SessionLogService.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js.map +1 -1
- package/dist/monolith/infrastructure/services/MarieMemoryStore.js +11 -0
- package/dist/monolith/infrastructure/services/MarieMemoryStore.js.map +1 -1
- package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js +15 -5
- package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js.map +1 -1
- package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js +46 -2
- package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js.map +1 -1
- package/dist/monolith/infrastructure/tools/ToolRegistry.js +8 -1
- package/dist/monolith/infrastructure/tools/ToolRegistry.js.map +1 -1
- package/dist/monolith/plumbing/analysis/LintService.js +10 -3
- package/dist/monolith/plumbing/analysis/LintService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/MarieSentinelService.js +47 -33
- package/dist/monolith/plumbing/analysis/MarieSentinelService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/QualityGuardrailService.js +40 -35
- package/dist/monolith/plumbing/analysis/QualityGuardrailService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/SurgicalMender.js +6 -4
- package/dist/monolith/plumbing/analysis/SurgicalMender.js.map +1 -1
- package/dist/monolith/plumbing/analysis/TestService.js +3 -1
- package/dist/monolith/plumbing/analysis/TestService.js.map +1 -1
- package/dist/monolith/plumbing/filesystem/FileService.js +31 -9
- package/dist/monolith/plumbing/filesystem/FileService.js.map +1 -1
- package/dist/monolith/plumbing/filesystem/PathResolver.js.map +1 -1
- package/dist/monolith/plumbing/utils/StreamTagDetector.js +3 -1
- package/dist/monolith/plumbing/utils/StreamTagDetector.js.map +1 -1
- package/dist/monolith/runtime/MarieRuntime.js.map +1 -1
- package/dist/monolith/services/JoyService.js +2 -1
- package/dist/monolith/services/JoyService.js.map +1 -1
- package/dist/monolith/tests/FileAppendVerifyTest.js +1 -1
- package/dist/monolith/tests/FileAppendVerifyTest.js.map +1 -1
- package/dist/monolith/tests/StreamingVerifyTest.js +87 -26
- package/dist/monolith/tests/StreamingVerifyTest.js.map +1 -1
- package/dist/monolith/tests/VisualProgressTest.js +86 -0
- package/dist/monolith/tests/VisualProgressTest.js.map +1 -0
- 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
|
-
|
|
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
|
|
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 =
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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: [
|
|
85
|
-
|
|
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,
|
|
118
|
-
.replace(/\/\*[\s\S]*?\*\//g,
|
|
119
|
-
.replace(/\s+/g,
|
|
120
|
-
.replace(/\b(const|let|var)\s+\w+\b/g,
|
|
121
|
-
.replace(/\bfunction\s+\w+\b/g,
|
|
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(
|
|
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 &&
|
|
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") ||
|
|
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") ||
|
|
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
|
|
285
|
-
|
|
286
|
-
|
|
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.
|
|
22
|
-
|
|
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;
|
|
66
|
+
passed = false;
|
|
38
67
|
}
|
|
39
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
77
|
-
const
|
|
78
|
-
|
|
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
|
-
//
|
|
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;
|
|
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":"AAAA,OAAO,EAAE,WAAW,EAAa,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAqB,MAAM,wBAAwB,CAAC;
|
|
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
|
-
|
|
12
|
-
|
|
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") ||
|
|
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" ||
|
|
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":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGvC;;;GAGG;AACH,MAAM,OAAO,cAAc;IACzB;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,IAAI,
|
|
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(" ❌ ") ||
|
|
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":"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,
|
|
1
|
+
{"version":3,"file":"TestService.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/analysis/TestService.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 &&
|
|
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
|
-
|
|
214
|
-
|
|
215
|
-
|
|
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) {
|