ai-trust 0.2.20 → 0.2.22
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/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/output/formatter.d.ts +5 -1
- package/dist/output/formatter.d.ts.map +1 -1
- package/dist/output/formatter.js +217 -138
- package/dist/output/formatter.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ const program = new Command();
|
|
|
16
16
|
program
|
|
17
17
|
.name("ai-trust")
|
|
18
18
|
.description("Check security trust scores for AI agents and MCP servers before installing them")
|
|
19
|
-
.version(pkg.version
|
|
19
|
+
.version(`ai-trust ${pkg.version} — trust verification for AI packages`, "-v, --version")
|
|
20
20
|
.option("--registry-url <url>", "registry base URL", "https://api.oa2a.org")
|
|
21
21
|
.option("--json", "output raw JSON", false)
|
|
22
22
|
.option("--no-color", "disable colored output");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,kFAAkF,CAAC;KAC/F,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,kFAAkF,CAAC;KAC/F,OAAO,CAAC,YAAY,GAAG,CAAC,OAAO,uCAAuC,EAAE,eAAe,CAAC;KACxF,MAAM,CACL,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,CACvB;KACA,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,KAAK,CAAC;KAC1C,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;AAElD,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAE9B,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Output formatting for trust query results.
|
|
3
|
-
*
|
|
3
|
+
* Visual design aligned with hackmyagent CLI:
|
|
4
|
+
* - Score meter with colored bar
|
|
5
|
+
* - Section dividers
|
|
6
|
+
* - Severity-colored finding borders
|
|
7
|
+
* - Actionable next steps
|
|
4
8
|
*/
|
|
5
9
|
import type { TrustAnswer, BatchResponse } from "../api/client.js";
|
|
6
10
|
import type { ScanResult } from "../scanner/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/output/formatter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/output/formatter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AA0HtD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CA8F7D;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,MAAM,GACf,MAAM,CAuJR;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAiK3D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAEhD"}
|
package/dist/output/formatter.js
CHANGED
|
@@ -1,12 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Output formatting for trust query results.
|
|
3
|
-
*
|
|
3
|
+
* Visual design aligned with hackmyagent CLI:
|
|
4
|
+
* - Score meter with colored bar
|
|
5
|
+
* - Section dividers
|
|
6
|
+
* - Severity-colored finding borders
|
|
7
|
+
* - Actionable next steps
|
|
4
8
|
*/
|
|
5
9
|
import chalk from "chalk";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
// ── Visual helpers ─────────────────────────────────────────────���──────
|
|
11
|
+
const METER_WIDTH = 20;
|
|
12
|
+
function scoreMeter(value, max = 100) {
|
|
13
|
+
const pct = Math.round((value / max) * METER_WIDTH);
|
|
14
|
+
const meterColor = value >= 70 ? chalk.green : value >= 40 ? chalk.yellow : chalk.red;
|
|
15
|
+
const filled = "\u2501".repeat(pct);
|
|
16
|
+
const empty = "\u2501".repeat(METER_WIDTH - pct);
|
|
17
|
+
return `${meterColor(filled)}${chalk.dim(empty)} ${meterColor.bold(String(value))}${chalk.dim(`/${max}`)}`;
|
|
18
|
+
}
|
|
19
|
+
function divider(label) {
|
|
20
|
+
if (label) {
|
|
21
|
+
const pad = Math.max(1, 56 - label.length);
|
|
22
|
+
return `\n ${chalk.dim("\u2500\u2500")} ${chalk.bold(label)} ${chalk.dim("\u2500".repeat(pad))}`;
|
|
23
|
+
}
|
|
24
|
+
return ` ${chalk.dim("\u2500".repeat(62))}`;
|
|
25
|
+
}
|
|
26
|
+
function trustLevelLegend(currentLevel) {
|
|
27
|
+
const levels = ["Blocked", "Warning", "Listed", "Scanned", "Verified"];
|
|
28
|
+
return levels
|
|
29
|
+
.map((l, i) => {
|
|
30
|
+
if (i === currentLevel)
|
|
31
|
+
return trustLevelColor(i).bold(l);
|
|
32
|
+
return chalk.dim(l);
|
|
33
|
+
})
|
|
34
|
+
.join(chalk.dim(" > "));
|
|
35
|
+
}
|
|
36
|
+
// ── Data helpers ──────────────────────────────────────────────────────
|
|
10
37
|
function normalizeVerdict(verdict) {
|
|
11
38
|
switch (verdict) {
|
|
12
39
|
case "safe":
|
|
@@ -62,14 +89,7 @@ function trustLevelColor(level) {
|
|
|
62
89
|
return chalk.yellow;
|
|
63
90
|
return chalk.red;
|
|
64
91
|
}
|
|
65
|
-
/**
|
|
66
|
-
* Format trust score for display. Shows "Not scanned" when there's no real data
|
|
67
|
-
* instead of a misleading "0/100".
|
|
68
|
-
*/
|
|
69
92
|
function formatScore(trustScore, scanStatus) {
|
|
70
|
-
// Show "Not scanned" when there's no actual scan data.
|
|
71
|
-
// A non-zero score from metadata alone is misleading (8/100 for
|
|
72
|
-
// the Anthropic SDK looks dangerous when it just means "not scanned yet").
|
|
73
93
|
const notScanned = !scanStatus ||
|
|
74
94
|
scanStatus === "" ||
|
|
75
95
|
scanStatus === "pending" ||
|
|
@@ -82,22 +102,6 @@ function formatScore(trustScore, scanStatus) {
|
|
|
82
102
|
function hasPassedScan(scanStatus) {
|
|
83
103
|
return scanStatus === "passed" || scanStatus === "warnings";
|
|
84
104
|
}
|
|
85
|
-
/**
|
|
86
|
-
* Format confidence level for display.
|
|
87
|
-
*/
|
|
88
|
-
function formatConfidence(confidence) {
|
|
89
|
-
if (confidence === undefined || confidence === null || confidence === 0) {
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
if (confidence >= 0.7)
|
|
93
|
-
return "high confidence";
|
|
94
|
-
if (confidence >= 0.4)
|
|
95
|
-
return "moderate confidence";
|
|
96
|
-
return "low confidence";
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Format scan age for display.
|
|
100
|
-
*/
|
|
101
105
|
function formatScanAge(lastScannedAt) {
|
|
102
106
|
if (!lastScannedAt)
|
|
103
107
|
return null;
|
|
@@ -112,80 +116,93 @@ function formatScanAge(lastScannedAt) {
|
|
|
112
116
|
return `${days} days ago (stale)`;
|
|
113
117
|
return `${days} days ago`;
|
|
114
118
|
}
|
|
115
|
-
|
|
119
|
+
// ── Formatters ────────────────────────────────────────────────────────
|
|
116
120
|
export function formatCheckResult(answer) {
|
|
117
121
|
if (!answer.found) {
|
|
118
122
|
return [
|
|
119
|
-
|
|
120
|
-
chalk.
|
|
121
|
-
chalk.
|
|
123
|
+
"",
|
|
124
|
+
` ${chalk.bold(answer.name)} ${chalk.dim(answer.packageType || "unknown")}`,
|
|
125
|
+
` ${chalk.yellow.bold("Not found in registry")}`,
|
|
126
|
+
"",
|
|
127
|
+
divider("Next Steps"),
|
|
128
|
+
` ${chalk.cyan("Scan locally:")} ai-trust check ${answer.name} --scan-if-missing`,
|
|
129
|
+
` ${chalk.cyan("Full project audit:")} ai-trust audit package.json`,
|
|
122
130
|
"",
|
|
123
131
|
].join("\n");
|
|
124
132
|
}
|
|
125
133
|
const normalized = normalizeVerdict(answer.verdict);
|
|
126
|
-
const colorVerdict = verdictColor(answer.verdict);
|
|
127
|
-
const colorTrust = trustLevelColor(answer.trustLevel);
|
|
128
134
|
const scoreDisplay = formatScore(answer.trustScore, answer.scanStatus);
|
|
129
135
|
const isUnscanned = scoreDisplay === "Not scanned";
|
|
136
|
+
const scoreVal = Math.round(answer.trustScore * 100);
|
|
137
|
+
// Header
|
|
138
|
+
const meta = [answer.packageType || "unknown"];
|
|
139
|
+
const scanAge = formatScanAge(answer.lastScannedAt);
|
|
140
|
+
if (scanAge)
|
|
141
|
+
meta.push(`scanned ${scanAge}`);
|
|
130
142
|
const lines = [
|
|
131
|
-
|
|
132
|
-
`
|
|
133
|
-
` Verdict: ${colorVerdict(normalized.toUpperCase())}`,
|
|
134
|
-
` Trust Level: ${colorTrust(trustLevelLabel(answer.trustLevel))} (${answer.trustLevel}/4)`,
|
|
135
|
-
` Trust Score: ${isUnscanned ? chalk.gray(scoreDisplay) : scoreDisplay}`,
|
|
143
|
+
"",
|
|
144
|
+
` ${chalk.bold.white(answer.name)} ${chalk.dim(meta.join(" \u00b7 "))}`,
|
|
136
145
|
];
|
|
137
|
-
//
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
146
|
+
// Verdict
|
|
147
|
+
let verdictText;
|
|
148
|
+
const vc = verdictColor(answer.verdict);
|
|
149
|
+
if (normalized === "blocked") {
|
|
150
|
+
verdictText = "Blocked by registry";
|
|
141
151
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
152
|
+
else if (normalized === "warning") {
|
|
153
|
+
verdictText = "Review before installing";
|
|
154
|
+
}
|
|
155
|
+
else if (isUnscanned) {
|
|
156
|
+
verdictText = "Not yet security-scanned";
|
|
146
157
|
}
|
|
147
|
-
else
|
|
148
|
-
|
|
158
|
+
else {
|
|
159
|
+
verdictText = "No known issues";
|
|
149
160
|
}
|
|
150
|
-
|
|
161
|
+
lines.push(` ${chalk.bold(vc(verdictText))}`);
|
|
162
|
+
// Score meter
|
|
163
|
+
lines.push("");
|
|
151
164
|
if (isUnscanned) {
|
|
152
|
-
lines.push("");
|
|
153
|
-
lines.push(chalk.yellow(" This package has not been security-scanned."));
|
|
154
|
-
lines.push(chalk.yellow(" Trust level reflects registry listing only."));
|
|
165
|
+
lines.push(` Trust ${chalk.dim("not scanned \u2014 trust level reflects registry listing only")}`);
|
|
155
166
|
}
|
|
167
|
+
else {
|
|
168
|
+
lines.push(` Trust ${scoreMeter(scoreVal)}`);
|
|
169
|
+
}
|
|
170
|
+
// Trust level
|
|
171
|
+
const tlColor = trustLevelColor(answer.trustLevel);
|
|
172
|
+
lines.push(` Level ${chalk.bold(tlColor(trustLevelLabel(answer.trustLevel)))} ${chalk.dim(`(${answer.trustLevel}/4)`)}`);
|
|
173
|
+
// Dependencies
|
|
156
174
|
if (answer.dependencies && answer.dependencies.totalDeps > 0) {
|
|
157
175
|
const deps = answer.dependencies;
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
176
|
+
const depParts = [`${deps.totalDeps} total`];
|
|
177
|
+
if (deps.vulnerableDeps > 0)
|
|
178
|
+
depParts.push(chalk.red(`${deps.vulnerableDeps} vulnerable`));
|
|
179
|
+
if (deps.minTrustLevel !== undefined)
|
|
180
|
+
depParts.push(`min trust ${deps.minTrustLevel}/4`);
|
|
181
|
+
lines.push(` Deps ${depParts.join(chalk.dim(" \u00b7 "))}`);
|
|
163
182
|
}
|
|
164
|
-
// Trust level legend
|
|
183
|
+
// Trust level legend
|
|
165
184
|
if (answer.trustLevel < 4) {
|
|
166
|
-
lines.push(
|
|
167
|
-
lines.push("");
|
|
185
|
+
lines.push(` ${trustLevelLegend(answer.trustLevel)}`);
|
|
168
186
|
}
|
|
169
|
-
//
|
|
170
|
-
|
|
171
|
-
if (
|
|
172
|
-
|
|
187
|
+
// Next steps
|
|
188
|
+
lines.push(divider("Next Steps"));
|
|
189
|
+
if (isUnscanned || answer.trustLevel <= 2) {
|
|
190
|
+
lines.push(` ${chalk.cyan("Scan locally:")} ai-trust check ${answer.name} --rescan`);
|
|
173
191
|
}
|
|
174
|
-
else if (
|
|
175
|
-
|
|
192
|
+
else if (normalized === "blocked" || normalized === "warning") {
|
|
193
|
+
lines.push(` ${chalk.cyan("Deep scan:")} ai-trust check ${answer.name} --rescan`);
|
|
176
194
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
for (const step of nextSteps) {
|
|
180
|
-
lines.push(chalk.gray(step));
|
|
195
|
+
else {
|
|
196
|
+
lines.push(` ${chalk.cyan("Fresh scan:")} ai-trust check ${answer.name} --rescan`);
|
|
181
197
|
}
|
|
198
|
+
lines.push(` ${chalk.cyan("Full project audit:")} ai-trust audit package.json`);
|
|
182
199
|
lines.push("");
|
|
183
200
|
return lines.join("\n");
|
|
184
201
|
}
|
|
185
202
|
export function formatBatchResults(response, minTrust) {
|
|
186
203
|
const lines = [];
|
|
187
|
-
lines.push(chalk.bold(` Trust Audit: ${response.meta.total} packages queried, ${response.meta.found} found, ${response.meta.notFound} not found`));
|
|
188
204
|
lines.push("");
|
|
205
|
+
lines.push(chalk.bold(` Trust Audit: ${response.meta.total} packages queried, ${response.meta.found} found, ${response.meta.notFound} not found`));
|
|
189
206
|
// Table header
|
|
190
207
|
const nameWidth = 40;
|
|
191
208
|
const typeWidth = 14;
|
|
@@ -193,27 +210,33 @@ export function formatBatchResults(response, minTrust) {
|
|
|
193
210
|
const levelWidth = 12;
|
|
194
211
|
const scoreWidth = 14;
|
|
195
212
|
const scanWidth = 10;
|
|
213
|
+
lines.push("");
|
|
214
|
+
lines.push(chalk.dim(" ") +
|
|
215
|
+
chalk.dim("PACKAGE".padEnd(nameWidth) +
|
|
216
|
+
"TYPE".padEnd(typeWidth) +
|
|
217
|
+
"VERDICT".padEnd(verdictWidth) +
|
|
218
|
+
"TRUST".padEnd(levelWidth) +
|
|
219
|
+
"SCORE".padEnd(scoreWidth) +
|
|
220
|
+
"SCAN".padEnd(scanWidth)));
|
|
196
221
|
lines.push(" " +
|
|
197
|
-
"
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
lines.push(" " + "-".repeat(nameWidth + typeWidth + verdictWidth + levelWidth + scoreWidth + scanWidth));
|
|
222
|
+
chalk.dim("\u2500".repeat(nameWidth +
|
|
223
|
+
typeWidth +
|
|
224
|
+
verdictWidth +
|
|
225
|
+
levelWidth +
|
|
226
|
+
scoreWidth +
|
|
227
|
+
scanWidth)));
|
|
204
228
|
for (const result of response.results) {
|
|
205
229
|
const name = result.name.length > nameWidth - 2
|
|
206
230
|
? result.name.substring(0, nameWidth - 5) + "..."
|
|
207
231
|
: result.name;
|
|
208
232
|
if (!result.found) {
|
|
209
|
-
// Not-found packages: show "NO DATA" instead of misleading "UNKNOWN/Blocked"
|
|
210
233
|
lines.push(" " +
|
|
211
234
|
name.padEnd(nameWidth) +
|
|
212
|
-
"-".padEnd(typeWidth) +
|
|
235
|
+
chalk.dim("-".padEnd(typeWidth)) +
|
|
213
236
|
chalk.gray("NO DATA".padEnd(verdictWidth)) +
|
|
214
|
-
chalk.
|
|
215
|
-
"-".padEnd(scoreWidth) +
|
|
216
|
-
"-".padEnd(scanWidth));
|
|
237
|
+
chalk.dim("-".padEnd(levelWidth)) +
|
|
238
|
+
chalk.dim("-".padEnd(scoreWidth)) +
|
|
239
|
+
chalk.dim("-".padEnd(scanWidth)));
|
|
217
240
|
continue;
|
|
218
241
|
}
|
|
219
242
|
const normalized = normalizeVerdict(result.verdict);
|
|
@@ -224,7 +247,7 @@ export function formatBatchResults(response, minTrust) {
|
|
|
224
247
|
name.padEnd(nameWidth) +
|
|
225
248
|
(result.packageType || "-").padEnd(typeWidth) +
|
|
226
249
|
colorVerdict(normalized.toUpperCase().padEnd(verdictWidth)) +
|
|
227
|
-
colorTrust(trustLevelLabel(result.trustLevel).padEnd(levelWidth)) +
|
|
250
|
+
chalk.bold(colorTrust(trustLevelLabel(result.trustLevel).padEnd(levelWidth))) +
|
|
228
251
|
scoreDisplay.padEnd(scoreWidth) +
|
|
229
252
|
(result.scanStatus || "-").padEnd(scanWidth));
|
|
230
253
|
}
|
|
@@ -233,85 +256,139 @@ export function formatBatchResults(response, minTrust) {
|
|
|
233
256
|
const notFound = response.results.filter((r) => !r.found);
|
|
234
257
|
lines.push("");
|
|
235
258
|
if (belowThreshold.length > 0) {
|
|
236
|
-
lines.push(chalk.yellow(`
|
|
259
|
+
lines.push(chalk.yellow.bold(` ${belowThreshold.length} package(s) below minimum trust level ${minTrust}:`));
|
|
237
260
|
for (const pkg of belowThreshold) {
|
|
238
|
-
lines.push(chalk.yellow(`
|
|
261
|
+
lines.push(chalk.yellow(` ${chalk.dim("\u2502")} ${pkg.name} (trust level ${pkg.trustLevel}, verdict: ${pkg.verdict})`));
|
|
239
262
|
}
|
|
240
263
|
}
|
|
241
264
|
if (notFound.length > 0) {
|
|
242
|
-
lines.push(chalk.yellow(`
|
|
265
|
+
lines.push(chalk.yellow.bold(` ${notFound.length} package(s) not found in registry:`));
|
|
243
266
|
for (const pkg of notFound) {
|
|
244
|
-
lines.push(chalk.yellow(`
|
|
267
|
+
lines.push(chalk.yellow(` ${chalk.dim("\u2502")} ${pkg.name}`));
|
|
245
268
|
}
|
|
246
269
|
}
|
|
247
270
|
if (belowThreshold.length === 0 && notFound.length === 0) {
|
|
248
|
-
lines.push(chalk.green(` All ${response.meta.found} packages meet minimum trust level ${minTrust}.`));
|
|
271
|
+
lines.push(chalk.green.bold(` All ${response.meta.found} packages meet minimum trust level ${minTrust}.`));
|
|
249
272
|
}
|
|
250
|
-
// Trust level legend
|
|
273
|
+
// Trust level legend
|
|
251
274
|
const hasNonVerified = response.results.some((r) => r.found && r.trustLevel < 4);
|
|
252
275
|
if (hasNonVerified) {
|
|
253
276
|
lines.push("");
|
|
254
|
-
lines.push(
|
|
277
|
+
lines.push(` ${trustLevelLegend(minTrust)}`);
|
|
255
278
|
}
|
|
256
|
-
//
|
|
257
|
-
lines.push("");
|
|
258
|
-
lines.push(chalk.bold(" Next steps"));
|
|
279
|
+
// Next steps
|
|
280
|
+
lines.push(divider("Next Steps"));
|
|
259
281
|
if (notFound.length > 0) {
|
|
260
|
-
lines.push(chalk.
|
|
261
|
-
lines.push(chalk.
|
|
282
|
+
lines.push(` ${chalk.cyan("Scan missing:")} ai-trust audit <file> --scan-missing`);
|
|
283
|
+
lines.push(` ${chalk.cyan("Check individual:")} ai-trust check <name> --rescan`);
|
|
262
284
|
}
|
|
263
285
|
if (belowThreshold.length > 0) {
|
|
264
|
-
lines.push(chalk.
|
|
286
|
+
lines.push(` ${chalk.cyan("Inspect flagged:")} ai-trust check <name>`);
|
|
265
287
|
}
|
|
266
|
-
lines.push(chalk.
|
|
288
|
+
lines.push(` ${chalk.cyan("Security scan:")} npx hackmyagent secure .`);
|
|
267
289
|
lines.push("");
|
|
268
290
|
return lines.join("\n");
|
|
269
291
|
}
|
|
270
292
|
export function formatScanResult(result) {
|
|
271
|
-
const
|
|
272
|
-
const
|
|
293
|
+
const vc = verdictColor(result.verdict);
|
|
294
|
+
const scoreVal = Math.round(result.trustScore * 100);
|
|
273
295
|
const lines = [
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
` Verdict: ${colorVerdict(result.verdict.toUpperCase())}`,
|
|
277
|
-
` Trust Level: ${colorTrust(trustLevelLabel(result.trustLevel))} (${result.trustLevel}/4)`,
|
|
278
|
-
` Trust Score: ${Math.round(result.trustScore * 100)}/100`,
|
|
279
|
-
` HMA Score: ${result.scan.score}/${result.scan.maxScore}`,
|
|
296
|
+
"",
|
|
297
|
+
` ${chalk.bold.white(result.packageName)} ${chalk.dim("local scan")}`,
|
|
280
298
|
];
|
|
299
|
+
// Verdict
|
|
281
300
|
const failed = result.scan.findings.filter((f) => !f.passed);
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
301
|
+
const critical = failed.filter((f) => f.severity === "critical").length;
|
|
302
|
+
const high = failed.filter((f) => f.severity === "high").length;
|
|
303
|
+
const medium = failed.filter((f) => f.severity === "medium").length;
|
|
304
|
+
const low = failed.filter((f) => f.severity === "low").length;
|
|
305
|
+
const total = failed.length;
|
|
306
|
+
let verdictText;
|
|
307
|
+
if (critical > 0) {
|
|
308
|
+
verdictText = `${critical} critical issue${critical > 1 ? "s" : ""} found`;
|
|
309
|
+
}
|
|
310
|
+
else if (high > 0) {
|
|
311
|
+
verdictText = `${high} high-severity issue${high > 1 ? "s" : ""} found`;
|
|
312
|
+
}
|
|
313
|
+
else if (total > 0) {
|
|
314
|
+
verdictText = `${total} issue${total > 1 ? "s" : ""} found`;
|
|
315
|
+
}
|
|
316
|
+
else {
|
|
317
|
+
verdictText = "No security issues found";
|
|
318
|
+
}
|
|
319
|
+
lines.push(` ${chalk.bold(vc(verdictText))}`);
|
|
320
|
+
// Score meters
|
|
321
|
+
lines.push("");
|
|
322
|
+
lines.push(` Security ${scoreMeter(result.scan.score, result.scan.maxScore)}`);
|
|
323
|
+
lines.push(` Trust ${scoreMeter(scoreVal)}`);
|
|
324
|
+
// Trust level
|
|
325
|
+
const tlColor = trustLevelColor(result.trustLevel);
|
|
326
|
+
lines.push(` Level ${chalk.bold(tlColor(trustLevelLabel(result.trustLevel)))} ${chalk.dim(`(${result.trustLevel}/4)`)}`);
|
|
327
|
+
// Findings
|
|
328
|
+
if (total > 0) {
|
|
329
|
+
const summaryParts = [];
|
|
330
|
+
if (critical > 0)
|
|
331
|
+
summaryParts.push(chalk.red.bold(`${critical} critical`));
|
|
332
|
+
if (high > 0)
|
|
333
|
+
summaryParts.push(chalk.yellow.bold(`${high} high`));
|
|
334
|
+
if (medium > 0)
|
|
335
|
+
summaryParts.push(chalk.yellow(`${medium} medium`));
|
|
336
|
+
if (low > 0)
|
|
337
|
+
summaryParts.push(chalk.dim(`${low} low`));
|
|
338
|
+
lines.push(divider("Findings"));
|
|
339
|
+
lines.push(` ${summaryParts.join(" ")}`);
|
|
340
|
+
// Sort by severity
|
|
341
|
+
const sevWeight = {
|
|
342
|
+
critical: 4,
|
|
343
|
+
high: 3,
|
|
344
|
+
medium: 2,
|
|
345
|
+
low: 1,
|
|
290
346
|
};
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
347
|
+
failed.sort((a, b) => (sevWeight[b.severity] || 0) - (sevWeight[a.severity] || 0));
|
|
348
|
+
// Show top 10 findings with colored borders
|
|
349
|
+
const limit = Math.min(failed.length, 10);
|
|
350
|
+
for (let i = 0; i < limit; i++) {
|
|
351
|
+
const f = failed[i];
|
|
352
|
+
const sevColor = f.severity === "critical"
|
|
295
353
|
? chalk.red
|
|
296
|
-
:
|
|
354
|
+
: f.severity === "high"
|
|
297
355
|
? chalk.yellow
|
|
298
356
|
: chalk.gray;
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
}
|
|
357
|
+
const label = f.severity.toUpperCase();
|
|
358
|
+
lines.push("");
|
|
359
|
+
lines.push(` ${sevColor("\u2502")} ${sevColor.bold(label)} ${chalk.bold.white(f.name)}`);
|
|
360
|
+
if (f.message && f.message !== f.name) {
|
|
361
|
+
lines.push(` ${sevColor("\u2502")} ${f.message}`);
|
|
362
|
+
}
|
|
363
|
+
if (f.fix) {
|
|
364
|
+
lines.push(` ${sevColor("\u2502")} ${chalk.cyan("Fix:")} ${f.fix}`);
|
|
365
|
+
}
|
|
366
|
+
if (f.attackClass) {
|
|
367
|
+
lines.push(` ${sevColor("\u2502")} ${chalk.dim("Attack:")} ${chalk.cyan(f.attackClass)}`);
|
|
304
368
|
}
|
|
305
369
|
}
|
|
370
|
+
if (failed.length > limit) {
|
|
371
|
+
lines.push(`\n ${chalk.dim(`+ ${failed.length - limit} more findings`)}`);
|
|
372
|
+
}
|
|
373
|
+
// Path forward
|
|
374
|
+
if (critical > 0 || high > 0) {
|
|
375
|
+
const recoveryParts = [];
|
|
376
|
+
if (critical > 0)
|
|
377
|
+
recoveryParts.push(`${critical} critical`);
|
|
378
|
+
if (high > 0)
|
|
379
|
+
recoveryParts.push(`${high} high`);
|
|
380
|
+
const estRecovery = Math.min(100, result.scan.score + critical * 15 + high * 8);
|
|
381
|
+
lines.push("");
|
|
382
|
+
lines.push(` ${chalk.cyan.bold("Path forward:")} ${chalk.cyan(String(result.scan.score))} ${chalk.dim("->")} ${chalk.green.bold(String(estRecovery))} ${chalk.cyan(`by fixing ${recoveryParts.join(" + ")}`)}`);
|
|
383
|
+
}
|
|
306
384
|
}
|
|
307
385
|
else {
|
|
308
386
|
lines.push("");
|
|
309
387
|
lines.push(chalk.green(" No security findings."));
|
|
310
388
|
}
|
|
311
|
-
// NanoMind semantic analysis
|
|
389
|
+
// NanoMind semantic analysis
|
|
312
390
|
if (result.semanticFindings && result.semanticFindings.length > 0) {
|
|
313
|
-
lines.push("");
|
|
314
|
-
lines.push(chalk.bold(" Semantic Analysis (NanoMind)"));
|
|
391
|
+
lines.push(divider("Semantic Analysis"));
|
|
315
392
|
for (const sf of result.semanticFindings) {
|
|
316
393
|
const confidencePct = Math.round(sf.confidence * 100);
|
|
317
394
|
const confidenceColor = sf.confidence >= 0.8
|
|
@@ -319,23 +396,25 @@ export function formatScanResult(result) {
|
|
|
319
396
|
: sf.confidence >= 0.5
|
|
320
397
|
? chalk.yellow
|
|
321
398
|
: chalk.gray;
|
|
322
|
-
lines.push(` ${chalk.magenta(
|
|
323
|
-
` ${confidenceColor(`${confidencePct}
|
|
324
|
-
(sf.file ? chalk.
|
|
399
|
+
lines.push(` ${chalk.magenta("\u2502")} ${chalk.magenta.bold(sf.intentClass)} ${sf.attackClass}` +
|
|
400
|
+
` ${confidenceColor(`${confidencePct}%`)}` +
|
|
401
|
+
(sf.file ? chalk.dim(` ${sf.file}`) : ""));
|
|
325
402
|
}
|
|
326
403
|
}
|
|
327
|
-
// Trust level legend
|
|
404
|
+
// Trust level legend
|
|
328
405
|
if (result.trustLevel < 4) {
|
|
329
406
|
lines.push("");
|
|
330
|
-
lines.push(
|
|
407
|
+
lines.push(` ${trustLevelLegend(result.trustLevel)}`);
|
|
331
408
|
}
|
|
332
|
-
//
|
|
333
|
-
lines.push("");
|
|
334
|
-
lines.push(chalk.bold(" Next steps"));
|
|
409
|
+
// Next steps
|
|
410
|
+
lines.push(divider("Next Steps"));
|
|
335
411
|
if (result.verdict === "warning" || result.verdict === "blocked") {
|
|
336
|
-
lines.push(chalk.
|
|
412
|
+
lines.push(` ${chalk.cyan("Remediate:")} Review findings above before installing`);
|
|
413
|
+
}
|
|
414
|
+
if (critical > 0 || high > 0) {
|
|
415
|
+
lines.push(` ${chalk.cyan("Auto-fix:")} npx hackmyagent secure --fix`);
|
|
337
416
|
}
|
|
338
|
-
lines.push(chalk.
|
|
417
|
+
lines.push(` ${chalk.cyan("Full project audit:")} ai-trust audit package.json`);
|
|
339
418
|
lines.push("");
|
|
340
419
|
return lines.join("\n");
|
|
341
420
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/output/formatter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/output/formatter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai-trust",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.22",
|
|
4
4
|
"description": "Trust verification CLI for AI packages — check MCP servers, A2A agents, and AI tools before you install",
|
|
5
5
|
"homepage": "https://opena2a.org/ai-trust",
|
|
6
6
|
"repository": {
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@opena2a/shared": "^0.1.0",
|
|
44
44
|
"chalk": "^5.3.0",
|
|
45
45
|
"commander": "^12.1.0",
|
|
46
|
-
"hackmyagent": "^0.
|
|
46
|
+
"hackmyagent": "^0.16.5"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@types/node": "^20.11.0",
|