@triedotdev/mcp 1.0.65 → 1.0.67
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/{agent-smith-ILGLKYRT.js → agent-smith-XGYNJUCJ.js} +5 -5
- package/dist/{agent-smith-runner-NWJGTREO.js → agent-smith-runner-QHYGVRNR.js} +65 -65
- package/dist/agent-smith-runner-QHYGVRNR.js.map +1 -0
- package/dist/{chunk-TSHZQKCM.js → chunk-2KLYR5GW.js} +4 -4
- package/dist/chunk-2KLYR5GW.js.map +1 -0
- package/dist/{chunk-JP4U3OMW.js → chunk-4H6HAVYQ.js} +3 -3
- package/dist/{chunk-7KHT2NKR.js → chunk-6TSYRIQS.js} +2 -2
- package/dist/{chunk-DQ4FYOHV.js → chunk-6XMLAP65.js} +414 -200
- package/dist/chunk-6XMLAP65.js.map +1 -0
- package/dist/{chunk-KOFQ47YW.js → chunk-CM7EHNQK.js} +6 -6
- package/dist/chunk-CM7EHNQK.js.map +1 -0
- package/dist/{chunk-PBOVCPKE.js → chunk-CMZTFDNC.js} +41 -41
- package/dist/chunk-CMZTFDNC.js.map +1 -0
- package/dist/{chunk-H5MDUTL3.js → chunk-E2ASFZMF.js} +15 -15
- package/dist/chunk-E2ASFZMF.js.map +1 -0
- package/dist/{chunk-NM35UECE.js → chunk-EWQF6INU.js} +6 -6
- package/dist/chunk-EWQF6INU.js.map +1 -0
- package/dist/{chunk-ULOW5HSH.js → chunk-FCMAQSV7.js} +3 -3
- package/dist/{chunk-ULOW5HSH.js.map → chunk-FCMAQSV7.js.map} +1 -1
- package/dist/{chunk-D3DMONAJ.js → chunk-HWJJIAR7.js} +138 -11
- package/dist/chunk-HWJJIAR7.js.map +1 -0
- package/dist/{chunk-RAZUNSBI.js → chunk-MIL54SAF.js} +2 -2
- package/dist/{chunk-RAZUNSBI.js.map → chunk-MIL54SAF.js.map} +1 -1
- package/dist/{chunk-4YSLDGBL.js → chunk-O7WFJC2P.js} +5 -5
- package/dist/chunk-O7WFJC2P.js.map +1 -0
- package/dist/{chunk-GWSNINKX.js → chunk-PH4HZEAM.js} +2 -2
- package/dist/{chunk-3RQPPRM3.js → chunk-PSYXALLF.js} +13 -13
- package/dist/chunk-PSYXALLF.js.map +1 -0
- package/dist/{chunk-MVUCBUBR.js → chunk-SH2JIQLB.js} +3 -3
- package/dist/{chunk-MVUCBUBR.js.map → chunk-SH2JIQLB.js.map} +1 -1
- package/dist/{chunk-AQCAMIQQ.js → chunk-Z7N7KDK3.js} +4 -4
- package/dist/{chunk-AQCAMIQQ.js.map → chunk-Z7N7KDK3.js.map} +1 -1
- package/dist/cli/create-agent.js +18 -18
- package/dist/cli/create-agent.js.map +1 -1
- package/dist/cli/main.js +31 -31
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/yolo-daemon.js +17 -17
- package/dist/cli/yolo-daemon.js.map +1 -1
- package/dist/{goal-manager-KFBOAP4X.js → goal-manager-B673YUZF.js} +6 -6
- package/dist/guardian-agent-FYZ5F3DA.js +17 -0
- package/dist/index.js +77 -77
- package/dist/index.js.map +1 -1
- package/dist/{issue-store-QRDF3X55.js → issue-store-SHQZICED.js} +4 -4
- package/dist/{vibe-code-signatures-TGMQXYGO.js → vibe-code-signatures-X26VXSZ4.js} +3 -3
- package/dist/{vulnerability-signatures-GOVD4Q24.js → vulnerability-signatures-BER2HRDC.js} +3 -3
- package/dist/workers/agent-worker.js +8 -8
- package/package.json +1 -1
- package/dist/agent-smith-runner-NWJGTREO.js.map +0 -1
- package/dist/chunk-3RQPPRM3.js.map +0 -1
- package/dist/chunk-4YSLDGBL.js.map +0 -1
- package/dist/chunk-D3DMONAJ.js.map +0 -1
- package/dist/chunk-DQ4FYOHV.js.map +0 -1
- package/dist/chunk-H5MDUTL3.js.map +0 -1
- package/dist/chunk-KOFQ47YW.js.map +0 -1
- package/dist/chunk-NM35UECE.js.map +0 -1
- package/dist/chunk-PBOVCPKE.js.map +0 -1
- package/dist/chunk-TSHZQKCM.js.map +0 -1
- package/dist/guardian-agent-PULK546O.js +0 -17
- /package/dist/{agent-smith-ILGLKYRT.js.map → agent-smith-XGYNJUCJ.js.map} +0 -0
- /package/dist/{chunk-JP4U3OMW.js.map → chunk-4H6HAVYQ.js.map} +0 -0
- /package/dist/{chunk-7KHT2NKR.js.map → chunk-6TSYRIQS.js.map} +0 -0
- /package/dist/{chunk-GWSNINKX.js.map → chunk-PH4HZEAM.js.map} +0 -0
- /package/dist/{goal-manager-KFBOAP4X.js.map → goal-manager-B673YUZF.js.map} +0 -0
- /package/dist/{guardian-agent-PULK546O.js.map → guardian-agent-FYZ5F3DA.js.map} +0 -0
- /package/dist/{issue-store-QRDF3X55.js.map → issue-store-SHQZICED.js.map} +0 -0
- /package/dist/{vibe-code-signatures-TGMQXYGO.js.map → vibe-code-signatures-X26VXSZ4.js.map} +0 -0
- /package/dist/{vulnerability-signatures-GOVD4Q24.js.map → vulnerability-signatures-BER2HRDC.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
listCustomAgents,
|
|
4
4
|
loadAgentConfig,
|
|
5
5
|
parseDocument
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-PH4HZEAM.js";
|
|
7
7
|
import {
|
|
8
8
|
ContextGraph,
|
|
9
9
|
IncidentIndex,
|
|
@@ -24,20 +24,20 @@ import {
|
|
|
24
24
|
reasonAboutChangesHumanReadable,
|
|
25
25
|
saveCheckpoint,
|
|
26
26
|
trackIssueOccurrence
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-4H6HAVYQ.js";
|
|
28
28
|
import {
|
|
29
29
|
InteractiveDashboard,
|
|
30
30
|
StreamingManager,
|
|
31
31
|
TrieScanTool,
|
|
32
32
|
loadConfig
|
|
33
|
-
} from "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
33
|
+
} from "./chunk-6XMLAP65.js";
|
|
34
|
+
import "./chunk-FCMAQSV7.js";
|
|
35
|
+
import "./chunk-CMZTFDNC.js";
|
|
36
|
+
import "./chunk-HWJJIAR7.js";
|
|
37
37
|
import {
|
|
38
38
|
isTrieInitialized
|
|
39
|
-
} from "./chunk-
|
|
40
|
-
import "./chunk-
|
|
39
|
+
} from "./chunk-PSYXALLF.js";
|
|
40
|
+
import "./chunk-O7WFJC2P.js";
|
|
41
41
|
import {
|
|
42
42
|
CRITICAL_REVIEW_CHECKLIST,
|
|
43
43
|
SuperReviewerSkill,
|
|
@@ -53,32 +53,32 @@ import {
|
|
|
53
53
|
loadProjectInfo,
|
|
54
54
|
projectInfoExists,
|
|
55
55
|
updateProjectSection
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-E2ASFZMF.js";
|
|
57
57
|
import {
|
|
58
58
|
findCrossProjectPatterns,
|
|
59
59
|
getGlobalMemoryStats,
|
|
60
60
|
listTrackedProjects,
|
|
61
61
|
searchGlobalPatterns
|
|
62
|
-
} from "./chunk-
|
|
63
|
-
import "./chunk-
|
|
62
|
+
} from "./chunk-6TSYRIQS.js";
|
|
63
|
+
import "./chunk-SH2JIQLB.js";
|
|
64
64
|
import "./chunk-6NLHFIYA.js";
|
|
65
65
|
import {
|
|
66
66
|
getOutputManager
|
|
67
|
-
} from "./chunk-
|
|
68
|
-
import "./chunk-
|
|
67
|
+
} from "./chunk-EWQF6INU.js";
|
|
68
|
+
import "./chunk-Z7N7KDK3.js";
|
|
69
69
|
import {
|
|
70
70
|
findSimilarIssues,
|
|
71
71
|
getMemoryStats,
|
|
72
72
|
getRecentIssues,
|
|
73
73
|
markIssueResolved,
|
|
74
74
|
searchIssues
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-2KLYR5GW.js";
|
|
76
76
|
import {
|
|
77
77
|
getWorkingDirectory
|
|
78
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-CM7EHNQK.js";
|
|
79
79
|
import {
|
|
80
80
|
isInteractiveMode
|
|
81
|
-
} from "./chunk-
|
|
81
|
+
} from "./chunk-MIL54SAF.js";
|
|
82
82
|
import "./chunk-DGUM43GV.js";
|
|
83
83
|
|
|
84
84
|
// src/server/mcp-server.ts
|
|
@@ -727,7 +727,7 @@ For each file, I will:
|
|
|
727
727
|
{{/if}}
|
|
728
728
|
|
|
729
729
|
{{#if potentialIssue}}
|
|
730
|
-
###
|
|
730
|
+
### Potential Issue
|
|
731
731
|
|
|
732
732
|
**Issue:** {{issueDescription}}
|
|
733
733
|
**Scenario:** {{issueScenario}}
|
|
@@ -785,7 +785,7 @@ Focus on the MOST COMMON issues with AI-generated code:
|
|
|
785
785
|
- Hardcoded URLs (localhost in production)
|
|
786
786
|
|
|
787
787
|
Remember: These are often first-time coders. Be helpful, not condescending.`,
|
|
788
|
-
analysis: `##
|
|
788
|
+
analysis: `## Vibe Check - AI Code Review
|
|
789
789
|
|
|
790
790
|
Review this AI-generated code for common issues:
|
|
791
791
|
|
|
@@ -1126,7 +1126,7 @@ var TrieFixTool = class {
|
|
|
1126
1126
|
continue;
|
|
1127
1127
|
}
|
|
1128
1128
|
if (pendingFix.confidence < 0.8 && !autoApprove) {
|
|
1129
|
-
results.push(
|
|
1129
|
+
results.push(`[!] Issue ${id}: Confidence too low (${(pendingFix.confidence * 100).toFixed(0)}%) - use autoApprove:true to override`);
|
|
1130
1130
|
continue;
|
|
1131
1131
|
}
|
|
1132
1132
|
if (dryRun) {
|
|
@@ -1488,7 +1488,7 @@ ${"\u2501".repeat(60)}
|
|
|
1488
1488
|
output += `${"\u2501".repeat(60)}
|
|
1489
1489
|
|
|
1490
1490
|
`;
|
|
1491
|
-
output += `##
|
|
1491
|
+
output += `## Source
|
|
1492
1492
|
|
|
1493
1493
|
`;
|
|
1494
1494
|
output += `- **File:** \`${filePath}\`
|
|
@@ -1679,7 +1679,7 @@ ${"\u2501".repeat(60)}
|
|
|
1679
1679
|
let output = `
|
|
1680
1680
|
${"\u2501".repeat(60)}
|
|
1681
1681
|
`;
|
|
1682
|
-
output +=
|
|
1682
|
+
output += `RISK ASSESSMENT
|
|
1683
1683
|
`;
|
|
1684
1684
|
output += `${"\u2501".repeat(60)}
|
|
1685
1685
|
|
|
@@ -1688,7 +1688,7 @@ ${"\u2501".repeat(60)}
|
|
|
1688
1688
|
const code = await readFile2(resolvedPath, "utf-8");
|
|
1689
1689
|
const filePath = relative2(workDir, resolvedPath);
|
|
1690
1690
|
const riskIndicators = this.detectRiskIndicators(code);
|
|
1691
|
-
output += `##
|
|
1691
|
+
output += `## Target
|
|
1692
1692
|
|
|
1693
1693
|
`;
|
|
1694
1694
|
output += `- **File:** \`${filePath}\`
|
|
@@ -1697,7 +1697,7 @@ ${"\u2501".repeat(60)}
|
|
|
1697
1697
|
|
|
1698
1698
|
`;
|
|
1699
1699
|
if (riskIndicators.length > 0) {
|
|
1700
|
-
output += `##
|
|
1700
|
+
output += `## Risk Indicators Found
|
|
1701
1701
|
|
|
1702
1702
|
`;
|
|
1703
1703
|
for (const indicator of riskIndicators) {
|
|
@@ -1750,14 +1750,14 @@ ${"\u2500".repeat(60)}
|
|
|
1750
1750
|
detectRiskIndicators(code) {
|
|
1751
1751
|
const indicators = [];
|
|
1752
1752
|
const checks = [
|
|
1753
|
-
{ pattern: /delete|drop|truncate/i, message: "
|
|
1754
|
-
{ pattern: /password|secret|key|token/i, message: "
|
|
1755
|
-
{ pattern: /exec|eval|spawn/i, message: "
|
|
1756
|
-
{ pattern: /SELECT.*FROM|INSERT|UPDATE|DELETE/i, message: "
|
|
1757
|
-
{ pattern: /fetch|axios|request|http/i, message: "
|
|
1758
|
-
{ pattern: /process\.env/i, message: "
|
|
1759
|
-
{ pattern: /fs\.|writeFile|readFile/i, message: "
|
|
1760
|
-
{ pattern: /setTimeout|setInterval/i, message: "
|
|
1753
|
+
{ pattern: /delete|drop|truncate/i, message: "[!] Destructive operations detected" },
|
|
1754
|
+
{ pattern: /password|secret|key|token/i, message: "[SEC] Credential handling detected" },
|
|
1755
|
+
{ pattern: /exec|eval|spawn/i, message: "[EXEC] Code execution patterns detected" },
|
|
1756
|
+
{ pattern: /SELECT.*FROM|INSERT|UPDATE|DELETE/i, message: "[DB] Direct database operations" },
|
|
1757
|
+
{ pattern: /fetch|axios|request|http/i, message: "[API] External API calls detected" },
|
|
1758
|
+
{ pattern: /process\.env/i, message: "[ENV] Environment variable usage" },
|
|
1759
|
+
{ pattern: /fs\.|writeFile|readFile/i, message: "[FS] File system operations" },
|
|
1760
|
+
{ pattern: /setTimeout|setInterval/i, message: "[TIMER] Async timing operations" },
|
|
1761
1761
|
{ pattern: /try\s*{/i, message: "\u{1F6E1}\uFE0F Error handling present" },
|
|
1762
1762
|
{ pattern: /catch\s*\(/i, message: "\u{1F6E1}\uFE0F Exception handling present" }
|
|
1763
1763
|
];
|
|
@@ -1967,7 +1967,7 @@ ${"\u2501".repeat(60)}
|
|
|
1967
1967
|
for (const file of files) {
|
|
1968
1968
|
const resolvedPath = isAbsolute3(file) ? file : resolve3(workDir, file);
|
|
1969
1969
|
if (!existsSync3(resolvedPath)) {
|
|
1970
|
-
output +=
|
|
1970
|
+
output += `[!] File not found: ${file}
|
|
1971
1971
|
`;
|
|
1972
1972
|
continue;
|
|
1973
1973
|
}
|
|
@@ -2051,7 +2051,7 @@ ${"\u2501".repeat(60)}
|
|
|
2051
2051
|
for (const file of files) {
|
|
2052
2052
|
const resolvedPath = isAbsolute3(file) ? file : resolve3(workDir, file);
|
|
2053
2053
|
if (!existsSync3(resolvedPath)) {
|
|
2054
|
-
output +=
|
|
2054
|
+
output += `[!] File not found: ${file}
|
|
2055
2055
|
`;
|
|
2056
2056
|
continue;
|
|
2057
2057
|
}
|
|
@@ -2133,7 +2133,7 @@ ${"\u2501".repeat(60)}
|
|
|
2133
2133
|
for (const file of files) {
|
|
2134
2134
|
const resolvedPath = isAbsolute3(file) ? file : resolve3(workDir, file);
|
|
2135
2135
|
if (!existsSync3(resolvedPath)) {
|
|
2136
|
-
output +=
|
|
2136
|
+
output += `[!] File not found: ${file}
|
|
2137
2137
|
`;
|
|
2138
2138
|
continue;
|
|
2139
2139
|
}
|
|
@@ -2166,7 +2166,7 @@ ${"\u2501".repeat(60)}
|
|
|
2166
2166
|
let output = `
|
|
2167
2167
|
${"\u2501".repeat(60)}
|
|
2168
2168
|
`;
|
|
2169
|
-
output +=
|
|
2169
|
+
output += `RUN TESTS
|
|
2170
2170
|
`;
|
|
2171
2171
|
output += `${"\u2501".repeat(60)}
|
|
2172
2172
|
|
|
@@ -2781,7 +2781,7 @@ Found ${newIssues} issues in changed files!`);
|
|
|
2781
2781
|
this.maybeNudge(files, resultText);
|
|
2782
2782
|
} catch (error) {
|
|
2783
2783
|
if (!isInteractiveMode()) {
|
|
2784
|
-
console.error(
|
|
2784
|
+
console.error(`Scan error: ${error}`);
|
|
2785
2785
|
}
|
|
2786
2786
|
}
|
|
2787
2787
|
}
|
|
@@ -2962,7 +2962,7 @@ Use \`trie_watch start\` to begin autonomous scanning.`
|
|
|
2962
2962
|
).join("\n");
|
|
2963
2963
|
let agencyStatus = "";
|
|
2964
2964
|
try {
|
|
2965
|
-
const { getGuardian } = await import("./guardian-agent-
|
|
2965
|
+
const { getGuardian } = await import("./guardian-agent-FYZ5F3DA.js");
|
|
2966
2966
|
const guardian = getGuardian(getWorkingDirectory(void 0, true));
|
|
2967
2967
|
await guardian.initialize();
|
|
2968
2968
|
const status = await guardian.getAgencyStatus();
|
|
@@ -3368,7 +3368,7 @@ var TrieAgentTool = class {
|
|
|
3368
3368
|
return {
|
|
3369
3369
|
content: [{
|
|
3370
3370
|
type: "text",
|
|
3371
|
-
text:
|
|
3371
|
+
text: `Skill not found: ${agent}
|
|
3372
3372
|
|
|
3373
3373
|
Available skills:
|
|
3374
3374
|
${this.agentRegistry.getSkillNames().map((n) => `- ${n}`).join("\n")}`
|
|
@@ -3379,7 +3379,7 @@ ${this.agentRegistry.getSkillNames().map((n) => `- ${n}`).join("\n")}`
|
|
|
3379
3379
|
let filesToScan = files || [];
|
|
3380
3380
|
if (!filesToScan.length) {
|
|
3381
3381
|
console.error(`
|
|
3382
|
-
|
|
3382
|
+
Discovering files in: ${workDir}`);
|
|
3383
3383
|
filesToScan = await this.discoverFiles(workDir);
|
|
3384
3384
|
console.error(` Found ${filesToScan.length} files
|
|
3385
3385
|
`);
|
|
@@ -3393,7 +3393,7 @@ ${this.agentRegistry.getSkillNames().map((n) => `- ${n}`).join("\n")}`
|
|
|
3393
3393
|
return {
|
|
3394
3394
|
content: [{
|
|
3395
3395
|
type: "text",
|
|
3396
|
-
text:
|
|
3396
|
+
text: `No valid files found to scan.`
|
|
3397
3397
|
}]
|
|
3398
3398
|
};
|
|
3399
3399
|
}
|
|
@@ -3407,10 +3407,10 @@ ${this.agentRegistry.getSkillNames().map((n) => `- ${n}`).join("\n")}`
|
|
|
3407
3407
|
async runSkillScan(agentInstance, files, startTime, _outputMode) {
|
|
3408
3408
|
console.error(`
|
|
3409
3409
|
\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501`);
|
|
3410
|
-
console.error(
|
|
3410
|
+
console.error(`Running ${agentInstance.name.toUpperCase()} analysis`);
|
|
3411
3411
|
console.error(`\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501
|
|
3412
3412
|
`);
|
|
3413
|
-
console.error(
|
|
3413
|
+
console.error(`${agentInstance.description}`);
|
|
3414
3414
|
console.error(`\u{1F4C2} Scanning ${files.length} files...`);
|
|
3415
3415
|
console.error(` (Pattern detection + AI enhancement if API key is set)
|
|
3416
3416
|
`);
|
|
@@ -3427,7 +3427,7 @@ ${this.agentRegistry.getSkillNames().map((n) => `- ${n}`).join("\n")}`
|
|
|
3427
3427
|
return {
|
|
3428
3428
|
content: [{
|
|
3429
3429
|
type: "text",
|
|
3430
|
-
text:
|
|
3430
|
+
text: `Skill error: ${error instanceof Error ? error.message : String(error)}`
|
|
3431
3431
|
}]
|
|
3432
3432
|
};
|
|
3433
3433
|
}
|
|
@@ -3449,7 +3449,7 @@ ${this.agentRegistry.getSkillNames().map((n) => `- ${n}`).join("\n")}`
|
|
|
3449
3449
|
const skills = this.agentRegistry.getSkillDescriptions();
|
|
3450
3450
|
const skillList = skills.map((a) => {
|
|
3451
3451
|
const command = this.getSkillCommand(a.name);
|
|
3452
|
-
return `| \`${command}\` |
|
|
3452
|
+
return `| \`${command}\` | [PATTERN+AI] ${a.name} | ${a.description} |`;
|
|
3453
3453
|
}).join("\n");
|
|
3454
3454
|
return {
|
|
3455
3455
|
content: [{
|
|
@@ -3460,7 +3460,7 @@ ${this.agentRegistry.getSkillNames().map((n) => `- ${n}`).join("\n")}`
|
|
|
3460
3460
|
|---------|-------|-------------|
|
|
3461
3461
|
${skillList}
|
|
3462
3462
|
|
|
3463
|
-
**Legend:**
|
|
3463
|
+
**Legend:** [PATTERN+AI] = Pattern detection + AI enhancement (if ANTHROPIC_API_KEY is set)
|
|
3464
3464
|
|
|
3465
3465
|
## Usage
|
|
3466
3466
|
|
|
@@ -3527,7 +3527,7 @@ trie_scan # Full scan with smart triaging
|
|
|
3527
3527
|
|
|
3528
3528
|
`;
|
|
3529
3529
|
if (issues.length === 0) {
|
|
3530
|
-
output += `##
|
|
3530
|
+
output += `## No Issues Found
|
|
3531
3531
|
|
|
3532
3532
|
`;
|
|
3533
3533
|
output += `Your code passed all ${agentName} checks.
|
|
@@ -3535,13 +3535,13 @@ trie_scan # Full scan with smart triaging
|
|
|
3535
3535
|
`;
|
|
3536
3536
|
return output;
|
|
3537
3537
|
}
|
|
3538
|
-
output += `##
|
|
3538
|
+
output += `## ${issues.length} Issues Found
|
|
3539
3539
|
|
|
3540
3540
|
`;
|
|
3541
|
-
if (critical > 0) output +=
|
|
3542
|
-
if (serious > 0) output +=
|
|
3543
|
-
if (moderate > 0) output +=
|
|
3544
|
-
if (low > 0) output +=
|
|
3541
|
+
if (critical > 0) output += `[!] ${critical} Critical `;
|
|
3542
|
+
if (serious > 0) output += `[!] ${serious} Serious `;
|
|
3543
|
+
if (moderate > 0) output += `[~] ${moderate} Moderate `;
|
|
3544
|
+
if (low > 0) output += `[-] ${low} Low`;
|
|
3545
3545
|
output += `
|
|
3546
3546
|
|
|
3547
3547
|
`;
|
|
@@ -3553,14 +3553,14 @@ trie_scan # Full scan with smart triaging
|
|
|
3553
3553
|
return (a.line || 0) - (b.line || 0);
|
|
3554
3554
|
});
|
|
3555
3555
|
for (const issue of sorted) {
|
|
3556
|
-
const icon = { critical: "
|
|
3556
|
+
const icon = { critical: "[!]", serious: "[!]", moderate: "[~]", low: "[-]" }[issue.severity];
|
|
3557
3557
|
output += `---
|
|
3558
3558
|
|
|
3559
3559
|
`;
|
|
3560
3560
|
output += `${icon} **${issue.issue}**
|
|
3561
3561
|
|
|
3562
3562
|
`;
|
|
3563
|
-
output +=
|
|
3563
|
+
output += `\`${issue.file}:${issue.line || "?"}\`
|
|
3564
3564
|
|
|
3565
3565
|
`;
|
|
3566
3566
|
const snippet = await this.getCodeSnippet(issue.file, issue.line);
|
|
@@ -3579,7 +3579,7 @@ ${snippet}
|
|
|
3579
3579
|
if (issue.regulation) output += `Regulation: ${issue.regulation}
|
|
3580
3580
|
`;
|
|
3581
3581
|
output += `<details>
|
|
3582
|
-
<summary
|
|
3582
|
+
<summary>Prompt to fix this</summary>
|
|
3583
3583
|
|
|
3584
3584
|
`;
|
|
3585
3585
|
output += `\`\`\`
|
|
@@ -3620,20 +3620,20 @@ ${issue.fix}
|
|
|
3620
3620
|
}
|
|
3621
3621
|
getSkillEmoji(agentName) {
|
|
3622
3622
|
const emojis = {
|
|
3623
|
-
"security": "
|
|
3624
|
-
"privacy": "
|
|
3625
|
-
"legal": "
|
|
3626
|
-
"accessibility": "
|
|
3627
|
-
"design-engineer": "
|
|
3628
|
-
"software-architect": "
|
|
3629
|
-
"bug-finding": "
|
|
3630
|
-
"user-testing": "
|
|
3631
|
-
"typecheck": "
|
|
3632
|
-
"devops": "
|
|
3633
|
-
"comprehension": "
|
|
3634
|
-
"test": "
|
|
3623
|
+
"security": "[SEC]",
|
|
3624
|
+
"privacy": "[PRIV]",
|
|
3625
|
+
"legal": "[LEGAL]",
|
|
3626
|
+
"accessibility": "[A11Y]",
|
|
3627
|
+
"design-engineer": "[DESIGN]",
|
|
3628
|
+
"software-architect": "[ARCH]",
|
|
3629
|
+
"bug-finding": "[BUG]",
|
|
3630
|
+
"user-testing": "[TEST]",
|
|
3631
|
+
"typecheck": "[TYPE]",
|
|
3632
|
+
"devops": "[OPS]",
|
|
3633
|
+
"comprehension": "[DOC]",
|
|
3634
|
+
"test": "[TEST]"
|
|
3635
3635
|
};
|
|
3636
|
-
return emojis[agentName] || "
|
|
3636
|
+
return emojis[agentName] || "[?]";
|
|
3637
3637
|
}
|
|
3638
3638
|
async discoverFiles(dir, maxFiles = 200) {
|
|
3639
3639
|
const files = [];
|
|
@@ -4243,7 +4243,7 @@ var TriePRReviewTool = class {
|
|
|
4243
4243
|
return {
|
|
4244
4244
|
content: [{
|
|
4245
4245
|
type: "text",
|
|
4246
|
-
text:
|
|
4246
|
+
text: `${prInfo.error}
|
|
4247
4247
|
|
|
4248
4248
|
Usage:
|
|
4249
4249
|
- \`pr_review 12345\` \u2014 review specific PR
|
|
@@ -4257,7 +4257,7 @@ Usage:
|
|
|
4257
4257
|
return {
|
|
4258
4258
|
content: [{
|
|
4259
4259
|
type: "text",
|
|
4260
|
-
text:
|
|
4260
|
+
text: `No changes found to review.`
|
|
4261
4261
|
}]
|
|
4262
4262
|
};
|
|
4263
4263
|
}
|
|
@@ -4286,7 +4286,7 @@ Usage:
|
|
|
4286
4286
|
return {
|
|
4287
4287
|
content: [{
|
|
4288
4288
|
type: "text",
|
|
4289
|
-
text:
|
|
4289
|
+
text: `Error: ${error instanceof Error ? error.message : String(error)}`
|
|
4290
4290
|
}]
|
|
4291
4291
|
};
|
|
4292
4292
|
}
|
|
@@ -4535,7 +4535,7 @@ Usage:
|
|
|
4535
4535
|
---
|
|
4536
4536
|
|
|
4537
4537
|
`;
|
|
4538
|
-
prompt += `##
|
|
4538
|
+
prompt += `## Critical Review Mindset
|
|
4539
4539
|
|
|
4540
4540
|
`;
|
|
4541
4541
|
prompt += `As we go through each file, I'll actively look for:
|
|
@@ -5841,7 +5841,7 @@ var ToolRegistry = class {
|
|
|
5841
5841
|
{ name: "privacy", desc: "PII handling, GDPR/HIPAA compliance, data encryption" },
|
|
5842
5842
|
{ name: "legal", desc: "GDPR, CCPA, consent patterns, data retention compliance" },
|
|
5843
5843
|
{ name: "accessibility", desc: "WCAG 2.1 compliance, keyboard nav, screen readers, color contrast" },
|
|
5844
|
-
{ name: "design", desc: "
|
|
5844
|
+
{ name: "design", desc: "Awwwards-level polish, design systems, motion design, creative CSS" },
|
|
5845
5845
|
{ name: "architecture", desc: "code organization, SOLID principles, N+1 queries, scalability" },
|
|
5846
5846
|
{ name: "bugs", desc: "null safety, edge cases, common bugs, async issues" },
|
|
5847
5847
|
{ name: "ux", desc: "simulate happy path, security tester, confused user, impatient user" },
|
|
@@ -6455,8 +6455,8 @@ This information is automatically available to Claude Code, Cursor, and other AI
|
|
|
6455
6455
|
}
|
|
6456
6456
|
}
|
|
6457
6457
|
async getSignaturesResource(uri) {
|
|
6458
|
-
const { getVulnerabilityStats } = await import("./vulnerability-signatures-
|
|
6459
|
-
const { getVibeCodeStats } = await import("./vibe-code-signatures-
|
|
6458
|
+
const { getVulnerabilityStats } = await import("./vulnerability-signatures-BER2HRDC.js");
|
|
6459
|
+
const { getVibeCodeStats } = await import("./vibe-code-signatures-X26VXSZ4.js");
|
|
6460
6460
|
const vulnStats = getVulnerabilityStats();
|
|
6461
6461
|
const vibeStats = getVibeCodeStats();
|
|
6462
6462
|
return {
|
|
@@ -6764,7 +6764,7 @@ Try:
|
|
|
6764
6764
|
url = `http://localhost:${options.port}`;
|
|
6765
6765
|
} else {
|
|
6766
6766
|
if (!isInteractiveMode()) {
|
|
6767
|
-
console.error("
|
|
6767
|
+
console.error("Visual QA: Auto-detecting running dev server...");
|
|
6768
6768
|
}
|
|
6769
6769
|
const port = await findOpenPort();
|
|
6770
6770
|
if (!port) {
|
|
@@ -7189,7 +7189,7 @@ npx playwright install chromium
|
|
|
7189
7189
|
};
|
|
7190
7190
|
}
|
|
7191
7191
|
async handleAgentSmith(smithArgs) {
|
|
7192
|
-
const { AgentSmithSkill } = await import("./agent-smith-
|
|
7192
|
+
const { AgentSmithSkill } = await import("./agent-smith-XGYNJUCJ.js");
|
|
7193
7193
|
if (smithArgs.clear_memory) {
|
|
7194
7194
|
const smith = new AgentSmithSkill();
|
|
7195
7195
|
const result = await smith.clearMemory();
|
|
@@ -7217,7 +7217,7 @@ npx playwright install chromium
|
|
|
7217
7217
|
}]
|
|
7218
7218
|
};
|
|
7219
7219
|
}
|
|
7220
|
-
const agentSmithRunner = await import("./agent-smith-runner-
|
|
7220
|
+
const agentSmithRunner = await import("./agent-smith-runner-QHYGVRNR.js");
|
|
7221
7221
|
return await agentSmithRunner.runAgentSmith(smithArgs);
|
|
7222
7222
|
}
|
|
7223
7223
|
};
|