@lisa.ai/agent 1.1.0 → 1.1.1
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/services/llm.service.js +3 -2
- package/dist/utils/parser.js +38 -2
- package/package.json +1 -1
|
@@ -75,10 +75,11 @@ ${errorLog}
|
|
|
75
75
|
${fileContent}
|
|
76
76
|
|
|
77
77
|
--- Constraints ---
|
|
78
|
-
1. Do not delete business logic.
|
|
78
|
+
1. Do not delete business logic unless absolutely necessary to resolve a missing dependency.
|
|
79
79
|
2. Do not suppress TypeScript errors with @ts-ignore or any type assertions unless absolutely unavoidable.
|
|
80
80
|
3. Fix the underlying type or logic issue.
|
|
81
|
-
4.
|
|
81
|
+
4. CRITICAL AGILE RULE: If the error is 'Cannot find module' or 'Property DOES NOT EXIST' and you do NOT know the correct import path or cannot resolve it from the context, you MUST silently comment out the failing import and completely comment out/stub the code that relies on it. Your ultimate goal is to make the file compile successfully so the Agent can proceed to the next file.
|
|
82
|
+
5. Return the code wrapped in a markdown code block (\`\`\`typescript ... \`\`\`). Do not include any explanation or intro text.`;
|
|
82
83
|
if (previousFixAttempt) {
|
|
83
84
|
console.log(`[Lisa.ai Auto-Heal] Warning! Agent is looping on ${filePath}. Injecting previous failed context...`);
|
|
84
85
|
prompt += `\n\n--- CRITICAL WARNING ---\nYou previously attempted to fix this file but the compiler REJECTED your fix!
|
package/dist/utils/parser.js
CHANGED
|
@@ -1,9 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.extractFilePath = extractFilePath;
|
|
37
|
+
const path = __importStar(require("path"));
|
|
4
38
|
function extractFilePath(errorLog, skipFiles = []) {
|
|
5
39
|
// Sanitize invisible ANSI color codes (e.g. \x1b[96m) from CLI output logs
|
|
6
40
|
const cleanLog = errorLog.replace(/\x1B\[[0-9;]*[a-zA-Z]/g, '');
|
|
41
|
+
// Normalize skip files for reliable absolute path comparison
|
|
42
|
+
const normalizedSkips = skipFiles.map(p => path.resolve(p));
|
|
7
43
|
// 1. First Pass: Try to match typical TS/Angular error patterns
|
|
8
44
|
// e.g., "src/app/app.component.ts:12:3 - error TS2322:"
|
|
9
45
|
const tsErrorRegex = /([a-zA-Z0-9_.\-\/\\]+\.ts)(?:[:(])/g;
|
|
@@ -12,7 +48,7 @@ function extractFilePath(errorLog, skipFiles = []) {
|
|
|
12
48
|
while ((match = tsErrorRegex.exec(cleanLog)) !== null) {
|
|
13
49
|
const foundPath = match[1];
|
|
14
50
|
// If this path is NOT in our skip ledger, we return it as the target
|
|
15
|
-
if (foundPath && !
|
|
51
|
+
if (foundPath && !normalizedSkips.includes(path.resolve(foundPath))) {
|
|
16
52
|
return foundPath;
|
|
17
53
|
}
|
|
18
54
|
}
|
|
@@ -22,7 +58,7 @@ function extractFilePath(errorLog, skipFiles = []) {
|
|
|
22
58
|
let fallbackMatch;
|
|
23
59
|
while ((fallbackMatch = fallbackRegex.exec(cleanLog)) !== null) {
|
|
24
60
|
const foundPath = fallbackMatch[1];
|
|
25
|
-
if (foundPath && !
|
|
61
|
+
if (foundPath && !normalizedSkips.includes(path.resolve(foundPath))) {
|
|
26
62
|
return foundPath;
|
|
27
63
|
}
|
|
28
64
|
}
|