ai-trust 0.6.0 → 0.7.0
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/check/narrative-fetch.d.ts +50 -0
- package/dist/check/narrative-fetch.d.ts.map +1 -0
- package/dist/check/narrative-fetch.js +99 -0
- package/dist/check/narrative-fetch.js.map +1 -0
- package/dist/check/render-rich-block.d.ts +42 -0
- package/dist/check/render-rich-block.d.ts.map +1 -0
- package/dist/check/render-rich-block.js +59 -0
- package/dist/check/render-rich-block.js.map +1 -0
- package/dist/check/rich-block-adapter.d.ts +68 -0
- package/dist/check/rich-block-adapter.d.ts.map +1 -0
- package/dist/check/rich-block-adapter.js +296 -0
- package/dist/check/rich-block-adapter.js.map +1 -0
- package/dist/check/skill-mcp-check.d.ts +60 -0
- package/dist/check/skill-mcp-check.d.ts.map +1 -0
- package/dist/check/skill-mcp-check.js +136 -0
- package/dist/check/skill-mcp-check.js.map +1 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +48 -4
- package/dist/commands/check.js.map +1 -1
- package/dist/index.js +69 -2
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Narrative fetch helper — GET /api/v1/trust/narrative.
|
|
3
|
+
*
|
|
4
|
+
* Brief: opena2a-org/briefs/check-rich-context-skills-mcp-v1.md (§8 task 3a).
|
|
5
|
+
*
|
|
6
|
+
* Returns the parsed `PackageNarrative` shape, or `null` on any
|
|
7
|
+
* non-success response (404 narrative_not_available, 4xx, 5xx, network
|
|
8
|
+
* timeout). Always best-effort — the caller falls back to the legacy
|
|
9
|
+
* check block + v1 footer when the registry has no fresh narrative.
|
|
10
|
+
*
|
|
11
|
+
* Wire shape mirrors `packageNarrativeResponse` from the Registry's
|
|
12
|
+
* `internal/interfaces/http/handlers/package_narrative_handler.go`.
|
|
13
|
+
* Inner JSON fields (`hardcodedSecrets`, `skillNarrative`, `mcpNarrative`,
|
|
14
|
+
* `verdictReasoning`, `nextSteps`) ship as opaque JSON values; the
|
|
15
|
+
* adapter parses + validates them before they reach cli-ui renderers.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Wire shape for `GET /api/v1/trust/narrative`. Inner JSON fields are
|
|
19
|
+
* left as `unknown` because the registry handler ships them as raw
|
|
20
|
+
* `json.RawMessage` — the adapter is responsible for shape validation.
|
|
21
|
+
*/
|
|
22
|
+
export interface FetchedPackageNarrative {
|
|
23
|
+
artifactType: "skill" | "mcp";
|
|
24
|
+
packageName: string;
|
|
25
|
+
packageVersion: string;
|
|
26
|
+
schemaVersion: number;
|
|
27
|
+
generatedAt: string;
|
|
28
|
+
summary: string;
|
|
29
|
+
hardcodedSecrets: unknown;
|
|
30
|
+
skillNarrative?: unknown;
|
|
31
|
+
mcpNarrative?: unknown;
|
|
32
|
+
verdictReasoning: unknown;
|
|
33
|
+
nextSteps: unknown;
|
|
34
|
+
}
|
|
35
|
+
export interface NarrativeFetchOptions {
|
|
36
|
+
registryUrl: string;
|
|
37
|
+
artifactType: "skill" | "mcp";
|
|
38
|
+
name: string;
|
|
39
|
+
version: string;
|
|
40
|
+
userAgent: string;
|
|
41
|
+
/** Override timeout (defaults to 5000ms). */
|
|
42
|
+
timeoutMs?: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Fetch a fresh narrative for the given (type, name, version) tuple.
|
|
46
|
+
* Returns null on 404 (no narrative available) or any error condition.
|
|
47
|
+
* Never throws.
|
|
48
|
+
*/
|
|
49
|
+
export declare function fetchNarrative(options: NarrativeFetchOptions): Promise<FetchedPackageNarrative | null>;
|
|
50
|
+
//# sourceMappingURL=narrative-fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"narrative-fetch.d.ts","sourceRoot":"","sources":["../../src/check/narrative-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,OAAO,GAAG,KAAK,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,GAAG,KAAK,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAqCzC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Narrative fetch helper — GET /api/v1/trust/narrative.
|
|
3
|
+
*
|
|
4
|
+
* Brief: opena2a-org/briefs/check-rich-context-skills-mcp-v1.md (§8 task 3a).
|
|
5
|
+
*
|
|
6
|
+
* Returns the parsed `PackageNarrative` shape, or `null` on any
|
|
7
|
+
* non-success response (404 narrative_not_available, 4xx, 5xx, network
|
|
8
|
+
* timeout). Always best-effort — the caller falls back to the legacy
|
|
9
|
+
* check block + v1 footer when the registry has no fresh narrative.
|
|
10
|
+
*
|
|
11
|
+
* Wire shape mirrors `packageNarrativeResponse` from the Registry's
|
|
12
|
+
* `internal/interfaces/http/handlers/package_narrative_handler.go`.
|
|
13
|
+
* Inner JSON fields (`hardcodedSecrets`, `skillNarrative`, `mcpNarrative`,
|
|
14
|
+
* `verdictReasoning`, `nextSteps`) ship as opaque JSON values; the
|
|
15
|
+
* adapter parses + validates them before they reach cli-ui renderers.
|
|
16
|
+
*/
|
|
17
|
+
const NARRATIVE_FETCH_TIMEOUT_MS = 5000;
|
|
18
|
+
/**
|
|
19
|
+
* Fetch a fresh narrative for the given (type, name, version) tuple.
|
|
20
|
+
* Returns null on 404 (no narrative available) or any error condition.
|
|
21
|
+
* Never throws.
|
|
22
|
+
*/
|
|
23
|
+
export async function fetchNarrative(options) {
|
|
24
|
+
const { registryUrl, artifactType, name, version, userAgent } = options;
|
|
25
|
+
const timeoutMs = options.timeoutMs ?? NARRATIVE_FETCH_TIMEOUT_MS;
|
|
26
|
+
const url = new URL("/api/v1/trust/narrative", registryUrl);
|
|
27
|
+
url.searchParams.set("type", artifactType);
|
|
28
|
+
url.searchParams.set("name", name);
|
|
29
|
+
url.searchParams.set("version", version);
|
|
30
|
+
const controller = new AbortController();
|
|
31
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
32
|
+
try {
|
|
33
|
+
const res = await fetch(url.toString(), {
|
|
34
|
+
method: "GET",
|
|
35
|
+
headers: {
|
|
36
|
+
accept: "application/json",
|
|
37
|
+
"user-agent": userAgent,
|
|
38
|
+
},
|
|
39
|
+
signal: controller.signal,
|
|
40
|
+
});
|
|
41
|
+
if (!res.ok) {
|
|
42
|
+
// 404 narrative_not_available is the documented "graceful
|
|
43
|
+
// degrade" signal. Any other 4xx / 5xx is also treated as a
|
|
44
|
+
// miss — caller falls back to legacy block.
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
const body = (await res.json());
|
|
48
|
+
const parsed = validateWireShape(body);
|
|
49
|
+
return parsed;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// Network error, JSON parse error, abort timeout — all degrade to
|
|
53
|
+
// null and let the caller render the legacy block.
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
clearTimeout(timer);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Minimal shape validation. The handler ships well-formed responses,
|
|
62
|
+
* so this is defense-in-depth. Returns null when required top-level
|
|
63
|
+
* fields are missing or the artifactType isn't skill/mcp.
|
|
64
|
+
*/
|
|
65
|
+
function validateWireShape(body) {
|
|
66
|
+
const artifactType = body.artifactType;
|
|
67
|
+
if (artifactType !== "skill" && artifactType !== "mcp")
|
|
68
|
+
return null;
|
|
69
|
+
if (typeof body.packageName !== "string" || body.packageName.length === 0) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
if (typeof body.packageVersion !== "string" ||
|
|
73
|
+
body.packageVersion.length === 0) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
if (typeof body.schemaVersion !== "number")
|
|
77
|
+
return null;
|
|
78
|
+
if (typeof body.generatedAt !== "string")
|
|
79
|
+
return null;
|
|
80
|
+
if (typeof body.summary !== "string")
|
|
81
|
+
return null;
|
|
82
|
+
return {
|
|
83
|
+
artifactType,
|
|
84
|
+
packageName: body.packageName,
|
|
85
|
+
packageVersion: body.packageVersion,
|
|
86
|
+
schemaVersion: body.schemaVersion,
|
|
87
|
+
generatedAt: body.generatedAt,
|
|
88
|
+
summary: body.summary,
|
|
89
|
+
hardcodedSecrets: body.hardcodedSecrets,
|
|
90
|
+
// Wire shape uses `skill` / `mcp` (matches the registry handler's
|
|
91
|
+
// `json:"skill,omitempty"` tag); the typed value carries the same
|
|
92
|
+
// payload as the internal `SkillNarrative` / `McpNarrative` fields.
|
|
93
|
+
skillNarrative: body.skill,
|
|
94
|
+
mcpNarrative: body.mcp,
|
|
95
|
+
verdictReasoning: body.verdictReasoning,
|
|
96
|
+
nextSteps: body.nextSteps,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=narrative-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"narrative-fetch.js","sourceRoot":"","sources":["../../src/check/narrative-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal-side renderer for `RenderedRichBlock` — applies HMA's
|
|
3
|
+
* chalk palette to the structured tone-tagged output produced by
|
|
4
|
+
* `renderCheckRichBlock` from `@opena2a/cli-ui`.
|
|
5
|
+
*
|
|
6
|
+
* Brief: opena2a-org/briefs/check-rich-context-skills-mcp-v1.md (§3).
|
|
7
|
+
*
|
|
8
|
+
* cli-ui returns tone-tagged lines (no chalk imports); this module
|
|
9
|
+
* paints them in HMA's terminal style and writes to stdout. ai-trust
|
|
10
|
+
* has a parallel module — the dividers, indents, and labels are
|
|
11
|
+
* byte-identical across CLIs (parity F12 / F13).
|
|
12
|
+
*/
|
|
13
|
+
import type { RenderedRichBlock } from "@opena2a/cli-ui";
|
|
14
|
+
type ColorFn = (s: string) => string;
|
|
15
|
+
/**
|
|
16
|
+
* Color palette interface — kept structural so callers can pass HMA's
|
|
17
|
+
* existing `colors` object without dragging chalk into this module's
|
|
18
|
+
* imports.
|
|
19
|
+
*/
|
|
20
|
+
export interface RichBlockPalette {
|
|
21
|
+
reset: string;
|
|
22
|
+
dim: ColorFn;
|
|
23
|
+
bold: ColorFn;
|
|
24
|
+
white: ColorFn;
|
|
25
|
+
green: ColorFn;
|
|
26
|
+
yellow: ColorFn;
|
|
27
|
+
red: ColorFn;
|
|
28
|
+
brightRed: ColorFn;
|
|
29
|
+
cyan: ColorFn;
|
|
30
|
+
}
|
|
31
|
+
export interface PrintRichBlockOptions {
|
|
32
|
+
palette: RichBlockPalette;
|
|
33
|
+
/** Width of section divider rule. Defaults to 62 chars. */
|
|
34
|
+
dividerWidth?: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Print the rich block to stdout. The input is the typed render output
|
|
38
|
+
* from cli-ui; this function only translates tones to ANSI and writes.
|
|
39
|
+
*/
|
|
40
|
+
export declare function printRichBlock(block: RenderedRichBlock, options: PrintRichBlockOptions): void;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=render-rich-block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-rich-block.d.ts","sourceRoot":"","sources":["../../src/check/render-rich-block.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAErC;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,qBAAqB,GAC7B,IAAI,CAoBN"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal-side renderer for `RenderedRichBlock` — applies HMA's
|
|
3
|
+
* chalk palette to the structured tone-tagged output produced by
|
|
4
|
+
* `renderCheckRichBlock` from `@opena2a/cli-ui`.
|
|
5
|
+
*
|
|
6
|
+
* Brief: opena2a-org/briefs/check-rich-context-skills-mcp-v1.md (§3).
|
|
7
|
+
*
|
|
8
|
+
* cli-ui returns tone-tagged lines (no chalk imports); this module
|
|
9
|
+
* paints them in HMA's terminal style and writes to stdout. ai-trust
|
|
10
|
+
* has a parallel module — the dividers, indents, and labels are
|
|
11
|
+
* byte-identical across CLIs (parity F12 / F13).
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Print the rich block to stdout. The input is the typed render output
|
|
15
|
+
* from cli-ui; this function only translates tones to ANSI and writes.
|
|
16
|
+
*/
|
|
17
|
+
export function printRichBlock(block, options) {
|
|
18
|
+
const { palette } = options;
|
|
19
|
+
const dividerWidth = options.dividerWidth ?? 62;
|
|
20
|
+
// -- Header --------------------------------------------------------------
|
|
21
|
+
console.log();
|
|
22
|
+
console.log(` ${palette.bold(palette.white(block.header.name))}`);
|
|
23
|
+
for (const line of block.header.metaLines) {
|
|
24
|
+
console.log(` ${paintTone(line.text, line.tone, palette)}`);
|
|
25
|
+
}
|
|
26
|
+
// -- Sections ------------------------------------------------------------
|
|
27
|
+
for (const section of block.sections) {
|
|
28
|
+
printDivider(section.divider, section.dividerTone, palette, dividerWidth);
|
|
29
|
+
for (const line of section.lines) {
|
|
30
|
+
const indent = " " + " ".repeat(line.indent);
|
|
31
|
+
console.log(`${indent}${paintTone(line.text, line.tone, palette)}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
console.log();
|
|
35
|
+
}
|
|
36
|
+
function printDivider(label, tone, palette, width) {
|
|
37
|
+
const dashCount = Math.max(1, width - label.length - 4);
|
|
38
|
+
const labelPainted = paintTone(label, tone, palette);
|
|
39
|
+
const dashesLeft = palette.dim("──");
|
|
40
|
+
const dashesRight = palette.dim("─".repeat(dashCount));
|
|
41
|
+
console.log();
|
|
42
|
+
console.log(` ${dashesLeft} ${palette.bold(labelPainted)} ${dashesRight}`);
|
|
43
|
+
}
|
|
44
|
+
function paintTone(text, tone, palette) {
|
|
45
|
+
switch (tone) {
|
|
46
|
+
case "good":
|
|
47
|
+
return palette.green(text);
|
|
48
|
+
case "warning":
|
|
49
|
+
return palette.yellow(text);
|
|
50
|
+
case "critical":
|
|
51
|
+
return palette.brightRed(text);
|
|
52
|
+
case "dim":
|
|
53
|
+
return palette.dim(text);
|
|
54
|
+
case "default":
|
|
55
|
+
default:
|
|
56
|
+
return text;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=render-rich-block.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-rich-block.js","sourceRoot":"","sources":["../../src/check/render-rich-block.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA6BH;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAwB,EACxB,OAA8B;IAE9B,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;IAEhD,2EAA2E;IAC3E,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,2EAA2E;IAC3E,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC1E,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CACnB,KAAa,EACb,IAA0D,EAC1D,OAAyB,EACzB,KAAa;IAEb,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,SAAS,CAChB,IAAY,EACZ,IAAoE,EACpE,OAAyB;IAEzB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,KAAK,UAAU;YACb,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,KAAK,SAAS,CAAC;QACf;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rich-block adapter — combines the registry-fetched narrative,
|
|
3
|
+
* registry trust data, and runtime args into a `CheckRichBlockInput`
|
|
4
|
+
* suitable for `renderCheckRichBlock` from `@opena2a/cli-ui`.
|
|
5
|
+
*
|
|
6
|
+
* Brief: opena2a-org/briefs/check-rich-context-skills-mcp-v1.md (§3, §5, §7).
|
|
7
|
+
*
|
|
8
|
+
* Pure function — no I/O. Validates inner JSON shapes (the registry
|
|
9
|
+
* handler ships them as opaque JSON.RawMessage) and returns null when
|
|
10
|
+
* the narrative is missing required structure for the artifact type.
|
|
11
|
+
*
|
|
12
|
+
* The adapter never invents data. Missing fields fall through to
|
|
13
|
+
* sensible empty defaults so the cli-ui renderer can still produce a
|
|
14
|
+
* legible block — the alternative is a hard failure that the caller
|
|
15
|
+
* would have to translate to "fall back to legacy block" anyway.
|
|
16
|
+
*/
|
|
17
|
+
import type { CheckRichBlockInput } from "@opena2a/cli-ui";
|
|
18
|
+
import type { FetchedPackageNarrative } from "./narrative-fetch.js";
|
|
19
|
+
/**
|
|
20
|
+
* Trust-data fields the adapter needs from the registry. Defined here
|
|
21
|
+
* (not imported from cli.ts) to keep this module decoupled — the
|
|
22
|
+
* caller maps `RegistryTrustData` to this shape.
|
|
23
|
+
*/
|
|
24
|
+
export interface RichBlockTrustInput {
|
|
25
|
+
trustVerdict: "VERIFIED" | "LISTED" | "LISTED_UNSCANNED" | "BLOCKED";
|
|
26
|
+
trustScore?: number;
|
|
27
|
+
scanStatus?: string;
|
|
28
|
+
lastScanAge?: string;
|
|
29
|
+
latestVersionLabel?: string;
|
|
30
|
+
publisher?: {
|
|
31
|
+
name: string;
|
|
32
|
+
verified: boolean;
|
|
33
|
+
kind?: string;
|
|
34
|
+
};
|
|
35
|
+
license?: string;
|
|
36
|
+
maintainerCount?: number;
|
|
37
|
+
downloads?: {
|
|
38
|
+
perWeek: number;
|
|
39
|
+
trend?: "rising" | "steady" | "declining";
|
|
40
|
+
};
|
|
41
|
+
communityScans?: number;
|
|
42
|
+
}
|
|
43
|
+
export interface BuildRichBlockInputArgs {
|
|
44
|
+
/** Package name as the user typed it (without prefix). */
|
|
45
|
+
name: string;
|
|
46
|
+
artifactType: "skill" | "mcp";
|
|
47
|
+
narrative: FetchedPackageNarrative;
|
|
48
|
+
trust: RichBlockTrustInput;
|
|
49
|
+
/** Tool name for the secrets-block report command. */
|
|
50
|
+
reportTool: string;
|
|
51
|
+
/** Local-scan findings, when available. Shape mirrors HMA's SecurityFinding. */
|
|
52
|
+
localFindings?: Array<{
|
|
53
|
+
severity: "critical" | "high" | "medium" | "low";
|
|
54
|
+
checkId: string;
|
|
55
|
+
name?: string;
|
|
56
|
+
file?: string;
|
|
57
|
+
line?: number;
|
|
58
|
+
message?: string;
|
|
59
|
+
fix?: string;
|
|
60
|
+
}>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Build the CheckRichBlockInput. Returns null when the narrative does
|
|
64
|
+
* not satisfy the minimum shape for its artifactType (e.g. skill
|
|
65
|
+
* narrative present but inner skillNarrative field missing).
|
|
66
|
+
*/
|
|
67
|
+
export declare function buildRichBlockInput(args: BuildRichBlockInputArgs): CheckRichBlockInput | null;
|
|
68
|
+
//# sourceMappingURL=rich-block-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rich-block-adapter.d.ts","sourceRoot":"","sources":["../../src/check/rich-block-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,mBAAmB,EAWpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,UAAU,GAAG,QAAQ,GAAG,kBAAkB,GAAG,SAAS,CAAC;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAA;KAAE,CAAC;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,GAAG,KAAK,CAAC;IAC9B,SAAS,EAAE,uBAAuB,CAAC;IACnC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACjD,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,uBAAuB,GAC5B,mBAAmB,GAAG,IAAI,CAuD5B"}
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rich-block adapter — combines the registry-fetched narrative,
|
|
3
|
+
* registry trust data, and runtime args into a `CheckRichBlockInput`
|
|
4
|
+
* suitable for `renderCheckRichBlock` from `@opena2a/cli-ui`.
|
|
5
|
+
*
|
|
6
|
+
* Brief: opena2a-org/briefs/check-rich-context-skills-mcp-v1.md (§3, §5, §7).
|
|
7
|
+
*
|
|
8
|
+
* Pure function — no I/O. Validates inner JSON shapes (the registry
|
|
9
|
+
* handler ships them as opaque JSON.RawMessage) and returns null when
|
|
10
|
+
* the narrative is missing required structure for the artifact type.
|
|
11
|
+
*
|
|
12
|
+
* The adapter never invents data. Missing fields fall through to
|
|
13
|
+
* sensible empty defaults so the cli-ui renderer can still produce a
|
|
14
|
+
* legible block — the alternative is a hard failure that the caller
|
|
15
|
+
* would have to translate to "fall back to legacy block" anyway.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Build the CheckRichBlockInput. Returns null when the narrative does
|
|
19
|
+
* not satisfy the minimum shape for its artifactType (e.g. skill
|
|
20
|
+
* narrative present but inner skillNarrative field missing).
|
|
21
|
+
*/
|
|
22
|
+
export function buildRichBlockInput(args) {
|
|
23
|
+
const { narrative, trust, artifactType } = args;
|
|
24
|
+
// Inner-narrative artifact-type check — if a skill: target was
|
|
25
|
+
// requested but the registry stored an mcpNarrative (or vice versa)
|
|
26
|
+
// we treat that as missing data. Caller falls back to legacy block.
|
|
27
|
+
if (artifactType === "skill" && narrative.artifactType !== "skill") {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
if (artifactType === "mcp" && narrative.artifactType !== "mcp")
|
|
31
|
+
return null;
|
|
32
|
+
const hardcodedSecrets = parseHardcodedSecrets(narrative.hardcodedSecrets);
|
|
33
|
+
const verdictReasoning = parseVerdictReasoning(narrative.verdictReasoning);
|
|
34
|
+
const nextSteps = parseNextSteps(narrative.nextSteps);
|
|
35
|
+
const findings = mapLocalFindings(args.localFindings ?? []);
|
|
36
|
+
let skill;
|
|
37
|
+
let mcp;
|
|
38
|
+
if (artifactType === "skill") {
|
|
39
|
+
const parsed = parseSkillNarrative(narrative.skillNarrative);
|
|
40
|
+
if (!parsed)
|
|
41
|
+
return null;
|
|
42
|
+
skill = parsed;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const parsed = parseMcpNarrative(narrative.mcpNarrative);
|
|
46
|
+
if (!parsed)
|
|
47
|
+
return null;
|
|
48
|
+
mcp = parsed;
|
|
49
|
+
}
|
|
50
|
+
const header = {
|
|
51
|
+
trustVerdict: trust.trustVerdict,
|
|
52
|
+
trustScore: trust.trustScore,
|
|
53
|
+
lastScanAge: trust.lastScanAge,
|
|
54
|
+
latestVersionLabel: trust.latestVersionLabel,
|
|
55
|
+
publisher: trust.publisher,
|
|
56
|
+
license: trust.license,
|
|
57
|
+
maintainerCount: trust.maintainerCount,
|
|
58
|
+
downloads: trust.downloads,
|
|
59
|
+
communityScans: trust.communityScans,
|
|
60
|
+
findingsCount: findings.length,
|
|
61
|
+
};
|
|
62
|
+
return {
|
|
63
|
+
name: args.name,
|
|
64
|
+
artifactType,
|
|
65
|
+
header,
|
|
66
|
+
hardcodedSecrets,
|
|
67
|
+
latestVersion: narrative.packageVersion,
|
|
68
|
+
skill,
|
|
69
|
+
mcp,
|
|
70
|
+
findings,
|
|
71
|
+
verdictReasoning,
|
|
72
|
+
nextSteps,
|
|
73
|
+
reportTool: args.reportTool,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
// Inner-JSON shape validators
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
function parseHardcodedSecrets(raw) {
|
|
80
|
+
if (!isPlainObject(raw)) {
|
|
81
|
+
return { detected: [], scanCovered: false };
|
|
82
|
+
}
|
|
83
|
+
const scanCovered = typeof raw.scanCovered === "boolean"
|
|
84
|
+
? raw.scanCovered
|
|
85
|
+
: false;
|
|
86
|
+
const detected = [];
|
|
87
|
+
if (Array.isArray(raw.detected)) {
|
|
88
|
+
for (const entry of raw.detected) {
|
|
89
|
+
const parsed = parseSecret(entry);
|
|
90
|
+
if (parsed)
|
|
91
|
+
detected.push(parsed);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return { detected, scanCovered };
|
|
95
|
+
}
|
|
96
|
+
function parseSecret(raw) {
|
|
97
|
+
if (!isPlainObject(raw))
|
|
98
|
+
return null;
|
|
99
|
+
const severity = raw.severity;
|
|
100
|
+
if (severity !== "critical" &&
|
|
101
|
+
severity !== "high" &&
|
|
102
|
+
severity !== "medium" &&
|
|
103
|
+
severity !== "low") {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
if (typeof raw.type !== "string" || typeof raw.typeLabel !== "string") {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
if (typeof raw.file !== "string")
|
|
110
|
+
return null;
|
|
111
|
+
if (typeof raw.maskedValue !== "string")
|
|
112
|
+
return null;
|
|
113
|
+
if (typeof raw.shownChars !== "number")
|
|
114
|
+
return null;
|
|
115
|
+
if (typeof raw.totalChars !== "number")
|
|
116
|
+
return null;
|
|
117
|
+
if (typeof raw.shipsInArtifact !== "boolean")
|
|
118
|
+
return null;
|
|
119
|
+
return {
|
|
120
|
+
type: raw.type,
|
|
121
|
+
typeLabel: raw.typeLabel,
|
|
122
|
+
file: raw.file,
|
|
123
|
+
line: typeof raw.line === "number" ? raw.line : undefined,
|
|
124
|
+
maskedValue: raw.maskedValue,
|
|
125
|
+
shownChars: raw.shownChars,
|
|
126
|
+
totalChars: raw.totalChars,
|
|
127
|
+
shipsInArtifact: raw.shipsInArtifact,
|
|
128
|
+
severity,
|
|
129
|
+
rotationUrl: typeof raw.rotationUrl === "string" ? raw.rotationUrl : undefined,
|
|
130
|
+
rotationCommand: typeof raw.rotationCommand === "string" ? raw.rotationCommand : undefined,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
function parseSkillNarrative(raw) {
|
|
134
|
+
if (!isPlainObject(raw))
|
|
135
|
+
return null;
|
|
136
|
+
if (typeof raw.skillName !== "string")
|
|
137
|
+
return null;
|
|
138
|
+
const activationPhrases = stringArray(raw.activationPhrases);
|
|
139
|
+
const externalServices = stringArray(raw.externalServices);
|
|
140
|
+
const permissions = parsePermissions(raw.permissions);
|
|
141
|
+
const toolCallsObserved = parseToolCalls(raw.toolCallsObserved);
|
|
142
|
+
return {
|
|
143
|
+
skillName: raw.skillName,
|
|
144
|
+
activationPhrases,
|
|
145
|
+
behaviorDescription: typeof raw.behaviorDescription === "string"
|
|
146
|
+
? raw.behaviorDescription
|
|
147
|
+
: "",
|
|
148
|
+
permissions,
|
|
149
|
+
externalServices,
|
|
150
|
+
persistence: typeof raw.persistence === "string" ? raw.persistence : "",
|
|
151
|
+
toolCallsObserved,
|
|
152
|
+
misuseNarrative: typeof raw.misuseNarrative === "string" ? raw.misuseNarrative : "",
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
function parseMcpNarrative(raw) {
|
|
156
|
+
if (!isPlainObject(raw))
|
|
157
|
+
return null;
|
|
158
|
+
if (typeof raw.mcpName !== "string")
|
|
159
|
+
return null;
|
|
160
|
+
const tools = parseMcpTools(raw.tools);
|
|
161
|
+
const sideEffects = stringArray(raw.sideEffects);
|
|
162
|
+
return {
|
|
163
|
+
mcpName: raw.mcpName,
|
|
164
|
+
tools,
|
|
165
|
+
pathScope: typeof raw.pathScope === "string" ? raw.pathScope : "",
|
|
166
|
+
network: typeof raw.network === "string" ? raw.network : "",
|
|
167
|
+
persistence: typeof raw.persistence === "string" ? raw.persistence : "",
|
|
168
|
+
auth: typeof raw.auth === "string" ? raw.auth : "",
|
|
169
|
+
sideEffects,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
function parsePermissions(raw) {
|
|
173
|
+
if (!Array.isArray(raw))
|
|
174
|
+
return [];
|
|
175
|
+
const out = [];
|
|
176
|
+
for (const entry of raw) {
|
|
177
|
+
if (!isPlainObject(entry))
|
|
178
|
+
continue;
|
|
179
|
+
if (typeof entry.name !== "string")
|
|
180
|
+
continue;
|
|
181
|
+
const status = entry.status;
|
|
182
|
+
if (status !== "used" && status !== "unused" && status !== "undeclared") {
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
out.push({
|
|
186
|
+
name: entry.name,
|
|
187
|
+
declared: !!entry.declared,
|
|
188
|
+
used: !!entry.used,
|
|
189
|
+
status,
|
|
190
|
+
note: typeof entry.note === "string" ? entry.note : undefined,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
return out;
|
|
194
|
+
}
|
|
195
|
+
function parseToolCalls(raw) {
|
|
196
|
+
if (!Array.isArray(raw))
|
|
197
|
+
return [];
|
|
198
|
+
const out = [];
|
|
199
|
+
for (const entry of raw) {
|
|
200
|
+
if (!isPlainObject(entry))
|
|
201
|
+
continue;
|
|
202
|
+
if (typeof entry.tool !== "string")
|
|
203
|
+
continue;
|
|
204
|
+
if (typeof entry.count !== "number")
|
|
205
|
+
continue;
|
|
206
|
+
out.push({ tool: entry.tool, count: entry.count });
|
|
207
|
+
}
|
|
208
|
+
return out;
|
|
209
|
+
}
|
|
210
|
+
function parseMcpTools(raw) {
|
|
211
|
+
if (!Array.isArray(raw))
|
|
212
|
+
return [];
|
|
213
|
+
const out = [];
|
|
214
|
+
for (const entry of raw) {
|
|
215
|
+
if (!isPlainObject(entry))
|
|
216
|
+
continue;
|
|
217
|
+
if (typeof entry.name !== "string")
|
|
218
|
+
continue;
|
|
219
|
+
out.push({
|
|
220
|
+
name: entry.name,
|
|
221
|
+
signature: typeof entry.signature === "string" ? entry.signature : "",
|
|
222
|
+
description: typeof entry.description === "string" ? entry.description : "",
|
|
223
|
+
destructive: !!entry.destructive,
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
return out;
|
|
227
|
+
}
|
|
228
|
+
function parseVerdictReasoning(raw) {
|
|
229
|
+
if (!Array.isArray(raw))
|
|
230
|
+
return [];
|
|
231
|
+
const out = [];
|
|
232
|
+
for (const entry of raw) {
|
|
233
|
+
if (!isPlainObject(entry))
|
|
234
|
+
continue;
|
|
235
|
+
const kind = entry.kind;
|
|
236
|
+
if (kind !== "positive" && kind !== "gap" && kind !== "critical")
|
|
237
|
+
continue;
|
|
238
|
+
if (typeof entry.text !== "string")
|
|
239
|
+
continue;
|
|
240
|
+
out.push({ kind, text: entry.text });
|
|
241
|
+
}
|
|
242
|
+
return out;
|
|
243
|
+
}
|
|
244
|
+
function parseNextSteps(raw) {
|
|
245
|
+
if (!Array.isArray(raw))
|
|
246
|
+
return [];
|
|
247
|
+
const out = [];
|
|
248
|
+
for (const entry of raw) {
|
|
249
|
+
if (!isPlainObject(entry))
|
|
250
|
+
continue;
|
|
251
|
+
const weight = entry.weight;
|
|
252
|
+
if (weight !== "primary" && weight !== "secondary")
|
|
253
|
+
continue;
|
|
254
|
+
if (typeof entry.label !== "string")
|
|
255
|
+
continue;
|
|
256
|
+
out.push({
|
|
257
|
+
weight,
|
|
258
|
+
label: entry.label,
|
|
259
|
+
command: typeof entry.command === "string" ? entry.command : undefined,
|
|
260
|
+
url: typeof entry.url === "string" ? entry.url : undefined,
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
return out;
|
|
264
|
+
}
|
|
265
|
+
function mapLocalFindings(findings = []) {
|
|
266
|
+
const out = [];
|
|
267
|
+
for (const f of findings) {
|
|
268
|
+
const locator = f.file
|
|
269
|
+
? f.line !== undefined
|
|
270
|
+
? `${f.file}:${f.line}`
|
|
271
|
+
: f.file
|
|
272
|
+
: "";
|
|
273
|
+
out.push({
|
|
274
|
+
severity: f.severity,
|
|
275
|
+
ruleId: f.checkId,
|
|
276
|
+
locator,
|
|
277
|
+
description: f.message ?? f.name ?? f.checkId,
|
|
278
|
+
fix: f.fix,
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
return out;
|
|
282
|
+
}
|
|
283
|
+
function isPlainObject(v) {
|
|
284
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
285
|
+
}
|
|
286
|
+
function stringArray(raw) {
|
|
287
|
+
if (!Array.isArray(raw))
|
|
288
|
+
return [];
|
|
289
|
+
const out = [];
|
|
290
|
+
for (const entry of raw) {
|
|
291
|
+
if (typeof entry === "string")
|
|
292
|
+
out.push(entry);
|
|
293
|
+
}
|
|
294
|
+
return out;
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=rich-block-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rich-block-adapter.js","sourceRoot":"","sources":["../../src/check/rich-block-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ai-trust check skill:<name>` / `check mcp:<name>` orchestrator.
|
|
3
|
+
*
|
|
4
|
+
* Brief: opena2a-org/briefs/check-rich-context-skills-mcp-v1.md (§3, §8).
|
|
5
|
+
*
|
|
6
|
+
* Mirrors hackmyagent/src/check/skill-mcp-check.ts to keep the two
|
|
7
|
+
* CLIs byte-identical on the rich-block render (parity F12 / F13).
|
|
8
|
+
* Adapted to use ai-trust's `@opena2a/registry-client` for the trust
|
|
9
|
+
* lookup; the rest of the helpers (parseRichTarget, fetchNarrative,
|
|
10
|
+
* buildRichBlockInput, render-rich-block) are shared verbatim.
|
|
11
|
+
*/
|
|
12
|
+
import type { RegistryClient } from "@opena2a/registry-client";
|
|
13
|
+
import { type CheckRichBlockInput } from "@opena2a/cli-ui";
|
|
14
|
+
import { type RichBlockPalette } from "./render-rich-block.js";
|
|
15
|
+
export interface ParsedRichTarget {
|
|
16
|
+
artifactType: "skill" | "mcp";
|
|
17
|
+
name: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Parse `skill:<name>` / `mcp:<name>` prefixes. Returns null when the
|
|
21
|
+
* input has no recognised prefix — the caller routes through the
|
|
22
|
+
* existing AI-classifier dispatch.
|
|
23
|
+
*/
|
|
24
|
+
export declare function parseRichTarget(target: string): ParsedRichTarget | null;
|
|
25
|
+
/**
|
|
26
|
+
* Map a registry verdict + scanStatus to the rich-block trustVerdict
|
|
27
|
+
* tier. Same logic as HMA's deriveTrustVerdict (parity F12 / F13).
|
|
28
|
+
*/
|
|
29
|
+
export declare function deriveTrustVerdict(verdict: string | undefined, trustLevel: number | undefined, scanStatus: string | undefined): "VERIFIED" | "LISTED" | "LISTED_UNSCANNED" | "BLOCKED";
|
|
30
|
+
export interface CheckSkillOrMcpOptions {
|
|
31
|
+
parsed: ParsedRichTarget;
|
|
32
|
+
registryUrl: string;
|
|
33
|
+
client: RegistryClient;
|
|
34
|
+
userAgent: string;
|
|
35
|
+
/** Tool name for the secrets-block report command (e.g. "ai-trust"). */
|
|
36
|
+
reportTool: string;
|
|
37
|
+
/** Pre-built palette to paint the output. */
|
|
38
|
+
palette: RichBlockPalette;
|
|
39
|
+
/** Optional explicit version pin; defaults to registry's "latest". */
|
|
40
|
+
version?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Suppress the human-readable rich-block render. Used by `--json`
|
|
43
|
+
* callers and the opena2a-parity harness so output is parseable.
|
|
44
|
+
* The orchestrator still builds and returns `result.input`.
|
|
45
|
+
*/
|
|
46
|
+
silent?: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface CheckSkillOrMcpResult {
|
|
49
|
+
/** True when the rich block was printed. False → caller falls back. */
|
|
50
|
+
rendered: boolean;
|
|
51
|
+
/** Raw input passed to renderCheckRichBlock — useful for tests / --json. */
|
|
52
|
+
input?: CheckRichBlockInput;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Run the rich-block path. Returns `{rendered: false}` when the
|
|
56
|
+
* narrative is unavailable; caller falls back to the existing
|
|
57
|
+
* classifier path.
|
|
58
|
+
*/
|
|
59
|
+
export declare function checkSkillOrMcp(options: CheckSkillOrMcpOptions): Promise<CheckSkillOrMcpResult>;
|
|
60
|
+
//# sourceMappingURL=skill-mcp-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-mcp-check.d.ts","sourceRoot":"","sources":["../../src/check/skill-mcp-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGjF,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/E,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,OAAO,GAAG,KAAK,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAYvE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,UAAU,GAAG,QAAQ,GAAG,kBAAkB,GAAG,SAAS,CAMxD;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,OAAO,EAAE,gBAAgB,CAAC;IAC1B,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,QAAQ,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAuEhC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ai-trust check skill:<name>` / `check mcp:<name>` orchestrator.
|
|
3
|
+
*
|
|
4
|
+
* Brief: opena2a-org/briefs/check-rich-context-skills-mcp-v1.md (§3, §8).
|
|
5
|
+
*
|
|
6
|
+
* Mirrors hackmyagent/src/check/skill-mcp-check.ts to keep the two
|
|
7
|
+
* CLIs byte-identical on the rich-block render (parity F12 / F13).
|
|
8
|
+
* Adapted to use ai-trust's `@opena2a/registry-client` for the trust
|
|
9
|
+
* lookup; the rest of the helpers (parseRichTarget, fetchNarrative,
|
|
10
|
+
* buildRichBlockInput, render-rich-block) are shared verbatim.
|
|
11
|
+
*/
|
|
12
|
+
import { renderCheckRichBlock } from "@opena2a/cli-ui";
|
|
13
|
+
import { fetchNarrative } from "./narrative-fetch.js";
|
|
14
|
+
import { buildRichBlockInput } from "./rich-block-adapter.js";
|
|
15
|
+
import { printRichBlock } from "./render-rich-block.js";
|
|
16
|
+
const SKILL_PREFIX = "skill:";
|
|
17
|
+
const MCP_PREFIX = "mcp:";
|
|
18
|
+
/**
|
|
19
|
+
* Parse `skill:<name>` / `mcp:<name>` prefixes. Returns null when the
|
|
20
|
+
* input has no recognised prefix — the caller routes through the
|
|
21
|
+
* existing AI-classifier dispatch.
|
|
22
|
+
*/
|
|
23
|
+
export function parseRichTarget(target) {
|
|
24
|
+
if (target.startsWith(SKILL_PREFIX)) {
|
|
25
|
+
const name = target.slice(SKILL_PREFIX.length);
|
|
26
|
+
if (name.length === 0)
|
|
27
|
+
return null;
|
|
28
|
+
return { artifactType: "skill", name };
|
|
29
|
+
}
|
|
30
|
+
if (target.startsWith(MCP_PREFIX)) {
|
|
31
|
+
const name = target.slice(MCP_PREFIX.length);
|
|
32
|
+
if (name.length === 0)
|
|
33
|
+
return null;
|
|
34
|
+
return { artifactType: "mcp", name };
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Map a registry verdict + scanStatus to the rich-block trustVerdict
|
|
40
|
+
* tier. Same logic as HMA's deriveTrustVerdict (parity F12 / F13).
|
|
41
|
+
*/
|
|
42
|
+
export function deriveTrustVerdict(verdict, trustLevel, scanStatus) {
|
|
43
|
+
const v = (verdict ?? "").toLowerCase();
|
|
44
|
+
if (v === "blocked" || trustLevel === 0)
|
|
45
|
+
return "BLOCKED";
|
|
46
|
+
if (trustLevel === 4 || v === "verified")
|
|
47
|
+
return "VERIFIED";
|
|
48
|
+
if (scanStatus !== "completed")
|
|
49
|
+
return "LISTED_UNSCANNED";
|
|
50
|
+
return "LISTED";
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Run the rich-block path. Returns `{rendered: false}` when the
|
|
54
|
+
* narrative is unavailable; caller falls back to the existing
|
|
55
|
+
* classifier path.
|
|
56
|
+
*/
|
|
57
|
+
export async function checkSkillOrMcp(options) {
|
|
58
|
+
const { parsed, client } = options;
|
|
59
|
+
const version = options.version && options.version.length > 0
|
|
60
|
+
? options.version
|
|
61
|
+
: "latest";
|
|
62
|
+
const narrative = await fetchNarrative({
|
|
63
|
+
registryUrl: options.registryUrl,
|
|
64
|
+
artifactType: parsed.artifactType,
|
|
65
|
+
name: parsed.name,
|
|
66
|
+
version,
|
|
67
|
+
userAgent: options.userAgent,
|
|
68
|
+
});
|
|
69
|
+
if (!narrative) {
|
|
70
|
+
return { rendered: false };
|
|
71
|
+
}
|
|
72
|
+
// Trust lookup is best-effort — a freshly-seeded narrative may not
|
|
73
|
+
// yet have a trust record. Sparse / missing trust degrades the
|
|
74
|
+
// header to LISTED_UNSCANNED but the narrative carries the bulk
|
|
75
|
+
// of the rich block.
|
|
76
|
+
let trust = null;
|
|
77
|
+
try {
|
|
78
|
+
trust = await client.checkTrust(parsed.name);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
trust = null;
|
|
82
|
+
}
|
|
83
|
+
const trustInput = trust && trust.found
|
|
84
|
+
? {
|
|
85
|
+
trustVerdict: deriveTrustVerdict(trust.verdict, trust.trustLevel, trust.scanStatus),
|
|
86
|
+
trustScore: trust.scanStatus === "completed"
|
|
87
|
+
? Math.round(trust.trustScore * 100)
|
|
88
|
+
: undefined,
|
|
89
|
+
scanStatus: trust.scanStatus,
|
|
90
|
+
lastScanAge: formatScanAge(trust.lastScannedAt),
|
|
91
|
+
latestVersionLabel: narrative.packageVersion,
|
|
92
|
+
communityScans: trust.communityScans,
|
|
93
|
+
}
|
|
94
|
+
: {
|
|
95
|
+
trustVerdict: "LISTED_UNSCANNED",
|
|
96
|
+
latestVersionLabel: narrative.packageVersion,
|
|
97
|
+
};
|
|
98
|
+
const input = buildRichBlockInput({
|
|
99
|
+
name: parsed.name,
|
|
100
|
+
artifactType: parsed.artifactType,
|
|
101
|
+
narrative,
|
|
102
|
+
trust: trustInput,
|
|
103
|
+
reportTool: options.reportTool,
|
|
104
|
+
});
|
|
105
|
+
if (!input) {
|
|
106
|
+
return { rendered: false };
|
|
107
|
+
}
|
|
108
|
+
if (options.silent) {
|
|
109
|
+
return { rendered: true, input };
|
|
110
|
+
}
|
|
111
|
+
const rendered = renderCheckRichBlock(input);
|
|
112
|
+
printRichBlock(rendered, { palette: options.palette });
|
|
113
|
+
return { rendered: true, input };
|
|
114
|
+
}
|
|
115
|
+
function formatScanAge(lastScannedAt) {
|
|
116
|
+
if (!lastScannedAt)
|
|
117
|
+
return undefined;
|
|
118
|
+
const scanned = new Date(lastScannedAt);
|
|
119
|
+
if (Number.isNaN(scanned.getTime()))
|
|
120
|
+
return undefined;
|
|
121
|
+
const days = Math.floor((Date.now() - scanned.getTime()) / (1000 * 60 * 60 * 24));
|
|
122
|
+
if (days < 1)
|
|
123
|
+
return "today";
|
|
124
|
+
if (days === 1)
|
|
125
|
+
return "1d ago";
|
|
126
|
+
if (days < 30)
|
|
127
|
+
return `${days}d ago`;
|
|
128
|
+
const months = Math.floor(days / 30);
|
|
129
|
+
if (months === 1)
|
|
130
|
+
return "1mo ago";
|
|
131
|
+
if (months < 12)
|
|
132
|
+
return `${months}mo ago`;
|
|
133
|
+
const years = Math.floor(days / 365);
|
|
134
|
+
return years === 1 ? "1y ago" : `${years}y ago`;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=skill-mcp-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-mcp-check.js","sourceRoot":"","sources":["../../src/check/skill-mcp-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,oBAAoB,EAA4B,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAyB,MAAM,wBAAwB,CAAC;AAE/E,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,UAAU,GAAG,MAAM,CAAC;AAO1B;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,IAAI,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA2B,EAC3B,UAA8B,EAC9B,UAA8B;IAE9B,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,CAAC,KAAK,SAAS,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1D,IAAI,UAAU,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAC5D,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,kBAAkB,CAAC;IAC1D,OAAO,QAAQ,CAAC;AAClB,CAAC;AA4BD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAA+B;IAE/B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEnC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAC3D,CAAC,CAAC,OAAO,CAAC,OAAO;QACjB,CAAC,CAAC,QAAQ,CAAC;IAEb,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC;QACrC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO;QACP,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,mEAAmE;IACnE,+DAA+D;IAC/D,gEAAgE;IAChE,qBAAqB;IACrB,IAAI,KAAK,GAAuB,IAAI,CAAC;IACrC,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GACd,KAAK,IAAI,KAAK,CAAC,KAAK;QAClB,CAAC,CAAC;YACE,YAAY,EAAE,kBAAkB,CAC9B,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,CACjB;YACD,UAAU,EACR,KAAK,CAAC,UAAU,KAAK,WAAW;gBAC9B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;gBACpC,CAAC,CAAC,SAAS;YACf,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC;YAC/C,kBAAkB,EAAE,SAAS,CAAC,cAAc;YAC5C,cAAc,EAAE,KAAK,CAAC,cAAc;SACrC;QACH,CAAC,CAAC;YACE,YAAY,EAAE,kBAA2B;YACzC,kBAAkB,EAAE,SAAS,CAAC,cAAc;SAC7C,CAAC;IAER,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAChC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS;QACT,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC7C,cAAc,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,aAAa,CAAC,aAAsB;IAC3C,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CACrB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CACzD,CAAC;IACF,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAC7B,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAChC,IAAI,IAAI,GAAG,EAAE;QAAE,OAAO,GAAG,IAAI,OAAO,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnC,IAAI,MAAM,GAAG,EAAE;QAAE,OAAO,GAAG,MAAM,QAAQ,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IACrC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC;AAClD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4CzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyL3D"}
|
package/dist/commands/check.js
CHANGED
|
@@ -13,6 +13,7 @@ import { resolveAndLog } from "../utils/resolve.js";
|
|
|
13
13
|
import { isHmaAvailable, scanPackage } from "../scanner/index.js";
|
|
14
14
|
import { confirm } from "../utils/prompt.js";
|
|
15
15
|
import { isContributeEnabled, queueScanResult, flushQueue, recordScanAndMaybeShowTip, saveContributeChoice, sendScanPing, } from "../telemetry/index.js";
|
|
16
|
+
import { checkSkillOrMcp, parseRichTarget } from "../check/skill-mcp-check.js";
|
|
16
17
|
import { createRequire } from "node:module";
|
|
17
18
|
const require = createRequire(import.meta.url);
|
|
18
19
|
const pkg = require("../../package.json");
|
|
@@ -30,6 +31,46 @@ export function registerCheckCommand(program) {
|
|
|
30
31
|
.option("--analm", "AI-powered threat analysis using AnaLM")
|
|
31
32
|
.action(async (rawName, opts) => {
|
|
32
33
|
const globalOpts = program.opts();
|
|
34
|
+
// Rich-block dispatch (skill: / mcp: prefix). Mirrors HMA's
|
|
35
|
+
// src/check/ module for parity F12 / F13. When the registry
|
|
36
|
+
// has a fresh narrative, render the rich block and exit.
|
|
37
|
+
// Otherwise fall through to the existing classifier flow.
|
|
38
|
+
const parsed = parseRichTarget(rawName);
|
|
39
|
+
if (parsed) {
|
|
40
|
+
const richClient = new RegistryClient({
|
|
41
|
+
baseUrl: globalOpts.registryUrl,
|
|
42
|
+
userAgent: `ai-trust/${AI_TRUST_VERSION}`,
|
|
43
|
+
});
|
|
44
|
+
const result = await checkSkillOrMcp({
|
|
45
|
+
parsed,
|
|
46
|
+
registryUrl: globalOpts.registryUrl,
|
|
47
|
+
client: richClient,
|
|
48
|
+
userAgent: `ai-trust/${AI_TRUST_VERSION}`,
|
|
49
|
+
reportTool: "ai-trust",
|
|
50
|
+
silent: !!globalOpts.json,
|
|
51
|
+
palette: {
|
|
52
|
+
reset: "[0m",
|
|
53
|
+
dim: chalk.dim,
|
|
54
|
+
bold: chalk.bold,
|
|
55
|
+
white: chalk.white,
|
|
56
|
+
green: chalk.green,
|
|
57
|
+
yellow: chalk.yellow,
|
|
58
|
+
red: chalk.red,
|
|
59
|
+
brightRed: chalk.redBright,
|
|
60
|
+
cyan: chalk.cyan,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
if (result.rendered) {
|
|
64
|
+
if (globalOpts.json && result.input) {
|
|
65
|
+
console.log(JSON.stringify(result.input, null, 2));
|
|
66
|
+
}
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
// No narrative → falls through; classifier picks up parsed.name
|
|
70
|
+
// as a normal lookup target. Replace the name so downstream
|
|
71
|
+
// logic (no-scan, scan paths) operates on the unprefixed name.
|
|
72
|
+
rawName = parsed.name;
|
|
73
|
+
}
|
|
33
74
|
const name = resolveAndLog(rawName);
|
|
34
75
|
const client = new RegistryClient({
|
|
35
76
|
baseUrl: globalOpts.registryUrl,
|
|
@@ -368,9 +409,12 @@ function isPolicyFailure(verdict) {
|
|
|
368
409
|
verdict === "failed");
|
|
369
410
|
}
|
|
370
411
|
/**
|
|
371
|
-
* Print a registry-confirmed library result.
|
|
372
|
-
*
|
|
373
|
-
*
|
|
412
|
+
* Print a registry-confirmed library result. Per the v0.3 spec
|
|
413
|
+
* (ai-trust/CLAUDE.md "UX philosophy v0.3"), Tier 3 libraries get
|
|
414
|
+
* ONLY the out-of-scope notice + HMA CTA \u2014 no trust block. Rendering
|
|
415
|
+
* the trust block on top would surface a misleading "Scan failed \u2014
|
|
416
|
+
* score is unreliable" line on errored library scans (AI-TRUST-1).
|
|
417
|
+
* The full trust read for libraries lives in `hackmyagent check`.
|
|
374
418
|
*/
|
|
375
419
|
function printLibraryWithTrust(result, asJson) {
|
|
376
420
|
if (asJson) {
|
|
@@ -382,8 +426,8 @@ function printLibraryWithTrust(result, asJson) {
|
|
|
382
426
|
}));
|
|
383
427
|
return;
|
|
384
428
|
}
|
|
385
|
-
console.log(formatCheckResult(result));
|
|
386
429
|
console.error("");
|
|
430
|
+
console.error(` ${chalk.bold.white(result.name)} ${chalk.dim("library (registry-classified)")}`);
|
|
387
431
|
console.error(` ${chalk.cyan("Out of scope for ai-trust")} ${chalk.dim("\u2014 the registry classifies this as a general-purpose library.")}`);
|
|
388
432
|
console.error(` ${chalk.dim("For a thorough security audit:")}`);
|
|
389
433
|
console.error(` ${chalk.cyan(`hackmyagent check ${result.name}`)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,yBAAyB,EACzB,oBAAoB,EACpB,YAAY,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC1C,MAAM,gBAAgB,GAAW,GAAG,CAAC,OAAO,CAAC;AAgB7C,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CACL,mBAAmB,EACnB,4DAA4D,CAC7D;SACA,MAAM,CACL,mBAAmB,EACnB,sDAAsD,CACvD;SACA,MAAM,CACL,cAAc,EACd,oDAAoD,CACrD;SACA,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;SAC5D,MAAM,CAAC,UAAU,EAAE,4CAA4C,CAAC;SAChE,MAAM,CACL,WAAW,EACX,yDAAyD,CAC1D;SACA,MAAM,CACL,SAAS,EACT,wCAAwC,CACzC;SACA,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,IAAkB,EAAE,EAAE;QACpD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAG9B,CAAC;QAEF,4DAA4D;QAC5D,4DAA4D;QAC5D,yDAAyD;QACzD,0DAA0D;QAC1D,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC;gBACpC,OAAO,EAAE,UAAU,CAAC,WAAW;gBAC/B,SAAS,EAAE,YAAY,gBAAgB,EAAE;aAC1C,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;gBACnC,MAAM;gBACN,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,YAAY,gBAAgB,EAAE;gBACzC,UAAU,EAAE,UAAU;gBACtB,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI;gBACzB,OAAO,EAAE;oBACP,KAAK,EAAE,MAAM;oBACb,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB;aACF,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,IAAI,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACrD,CAAC;gBACD,OAAO;YACT,CAAC;YACD,gEAAgE;YAChE,4DAA4D;YAC5D,+DAA+D;YAC/D,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,CAAC;QAED,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,OAAO,EAAE,UAAU,CAAC,WAAW;YAC/B,SAAS,EAAE,YAAY,gBAAgB,EAAE;SAC1C,CAAC,CAAC;QAEH,yDAAyD;QACzD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAC;QAC7F,CAAC;QAED,8CAA8C;QAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxD,mEAAmE;gBACnE,2CAA2C;gBAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC;gBACtE,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;oBACzB,+DAA+D;oBAC/D,+DAA+D;oBAC/D,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC/C,iEAAiE;oBACjE,4DAA4D;oBAC5D,gDAAgD;oBAChD,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;wBACpC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;oBACvB,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;gBACzC,CAAC;gBACD,IACE,MAAM,CAAC,KAAK;oBACZ,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,EAC9H,CAAC;oBACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,oBAAoB,EAAE,CAAC;oBACxC,6DAA6D;oBAC7D,yDAAyD;oBACzD,2DAA2D;oBAC3D,8DAA8D;oBAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;oBACzC,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;wBAC7B,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;wBAC7C,OAAO,CAAC,SAAS;oBACnB,CAAC;oBACD,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACjE,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;wBACpB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC;4BACzC,IAAI;4BACJ,SAAS,EAAE,KAAK;4BAChB,KAAK,EAAE,OAAO;yBACf,CAAC,CAAC,CAAC,CAAC;oBACP,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;oBACrC,CAAC;oBACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,qEAAqE;QACrE,qEAAqE;QACrE,mEAAmE;QACnE,iDAAiD;QACjD,EAAE;QACF,uEAAuE;QACvE,qEAAqE;QACrE,mEAAmE;QACnE,4DAA4D;QAC5D,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC;YAC9E,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;gBACzB,qBAAqB,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvD,4DAA4D;gBAC5D,IAAI,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACvB,CAAC;gBACD,OAAO;YACT,CAAC;YACD,qDAAqD;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,YAAY,oBAAoB,CAAC,EAAE,CAAC;gBAC3C,0EAA0E;gBAC1E,wEAAwE;gBACxE,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,OAAO,gCAAgC,CAAC,CAAC,CAAC;YACjG,CAAC;YACD,sEAAsE;YACtE,kEAAkE;YAClE,sEAAsE;YACtE,sEAAsE;QACxE,CAAC;QAED,MAAM,cAAc,CAClB,IAAI,EACJ,MAAM,EACN,UAAU,EACV,IAAI,EACJ,YAAY,IAAI,KAAK,CACtB,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,IAAY,EACZ,MAAsB,EACtB,UAAkD,EAClD,IAAkB;IAElB,8CAA8C;IAC9C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,MAAM,cAAc,CAClB,IAAI,EACJ,MAAM,EACN,UAAU,EACV,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAC7B,YAAY,IAAI,sCAAsC,CACvD,CAAC;QACF,OAAO;IACT,CAAC;IAED,uDAAuD;IACvD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC;gBACzC,IAAI;gBACJ,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,YAAY,IAAI,sCAAsC;gBAC7D,SAAS,EAAE;oBACT,kBAAkB,IAAI,oBAAoB;oBAC1C,sCAAsC;iBACvC;aACF,CAAC,CAAC,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,wCAAwC,CAAC,CAAC;YACxE,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,sBAAsB,IAAI,oBAAoB,CAAC,CAAC;YAC9D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,iCAAiC;IACjC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,sCAAsC,CAAC,CACnE,CAAC;IAEF,IAAI,CAAC,CAAC,MAAM,aAAa,EAAE,CAAC;QAAE,OAAO;IAErC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC;IAC1E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;AAC/F,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,IAAY,EACZ,MAAsB,EACtB,UAAkD,EAClD,IAAkB,EAClB,aAAqB;IAErB,IAAI,CAAC,CAAC,MAAM,aAAa,EAAE,CAAC;QAAE,OAAO;IAErC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAEzC,IAAI,UAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,yEAAyE;QACzE,sEAAsE;QACtE,yEAAyE;QACzE,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC;oBACzC,IAAI;oBACJ,SAAS,EAAE,KAAK;oBAChB,KAAK,EAAE,OAAO;oBACd,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;iBACpC,CAAC,CAAC,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,cAAc,CAAC;oBACb,GAAG,EAAE,IAAI;oBACT,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;iBACpC,CAAC,CACH,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC;gBACzC,IAAI;gBACJ,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,OAAO;aACf,CAAC,CAAC,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,sBAAsB;IACtB,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,2EAA2E;IAC3E,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACzE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,mFAAmF;IACnF,8EAA8E;IAC9E,YAAY,CACV,IAAI,EACJ,UAAU,CAAC,OAAO,EAClB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,EACvC,UAAU,CAAC,WAAW,CACvB,CAAC;IAEF,8BAA8B;IAC9B,MAAM,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAElC,KAAK,UAAU,gBAAgB,CAC7B,IAAY,EACZ,UAAsB,EACtB,UAAkD,EAClD,IAAkB;IAElB,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,EAAE,KAAK,IAAI,CAAC;IAEzE,6EAA6E;IAC7E,mEAAmE;IACnE,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,kEAAkE;YAClE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CACzE,CAAC;YACF,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAClE,CAAC;YACF,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CACpE,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAElB,MAAM,YAAY,GAAG,MAAM,OAAO,CAChC,qCAAqC,EACrC,IAAI,CACL,CAAC;YAEF,2CAA2C;YAC3C,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAEnC,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,IAAI,CAAC,yEAAyE,CAAC,CACtF,CAAC;gBACF,MAAM,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxF,OAAO;YACT,CAAC;QACH,CAAC;aAAM,CAAC;YACN,gFAAgF;YAChF,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC3B,qBAAqB,GAAG,IAAI,CAAC;gBAC7B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClB,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,IAAI,CACR,wEAAwE,CACzE,CACF,CAAC;gBACF,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,IAAI,CACR,sBAAsB,IAAI,iCAAiC,CAC5D,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,MAAM,GAAG,GAAG,yBAAyB,EAAE,CAAC;IACxC,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,cAAc;QAAE,OAAO;IAE5B,MAAM,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,IAAY,EACZ,UAAsB,EACtB,WAAmB,EACnB,IAAwB;IAExB,IAAI,CAAC;QACH,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,EAAE,EAAE,CAAC;YACP,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,KAAK,CAAC,uEAAuE,CAAC,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;IACxD,CAAC;IAED,kFAAkF;IAClF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,YAAY,gBAAgB,EAAE;SAC1C,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;YACpC,IAAI;YACJ,IAAI,EAAE,IAAI,EAAE,IAAI;YAChB,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK;YAC5B,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ;YAClC,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,UAAU,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACvG,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC3C,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;gBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC,CAAC;YACH,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW;YACxC,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACxC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;IACxD,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAY,EACZ,UAAkD;IAElD,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACzC,IAAI;YACJ,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,YAAY,IAAI,sCAAsC;YAC7D,SAAS,EAAE;gBACT,kBAAkB,IAAI,oBAAoB;gBAC1C,sCAAsC;aACvC;SACF,CAAC,CAAC,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACN,yFAAyF;QACzF,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,MAAM,SAAS,GAAG,MAAM,cAAc,EAAE,CAAC;IACzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,8DAA8D,CAC/D,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,OAAgB;IACvC,OAAO,CACL,OAAO,KAAK,SAAS;QACrB,OAAO,KAAK,SAAS;QACrB,OAAO,KAAK,UAAU;QACtB,OAAO,KAAK,QAAQ,CACrB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,MAAmB,EAAE,MAAe;IACjE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;YACrB,GAAG,MAAM;YACT,UAAU,EAAE,IAAI;YAChB,gBAAgB,EAAE,gDAAgD;YAClE,SAAS,EAAE,CAAC,qBAAqB,MAAM,CAAC,IAAI,EAAE,CAAC;SAChD,CAAC,CAAC,CAAC;QACJ,OAAO;IACT,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CACX,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,EAAE,CACpF,CAAC;IACF,OAAO,CAAC,KAAK,CACX,KAAK,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,mEAAmE,CAAC,EAAE,CACjI,CAAC;IACF,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;IAClE,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,IAAY,EAAE,MAAe;IAC1D,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;YACrB,IAAI;YACJ,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,IAAI;YAChB,gBAAgB,EAAE,kEAAkE;YACpF,SAAS,EAAE,CAAC,qBAAqB,IAAI,EAAE,CAAC;SACzC,CAAC,CAAC,CAAC;IACN,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CACX,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,EAAE,CACpF,CAAC;QACF,OAAO,CAAC,KAAK,CACX,KAAK,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,mFAAmF,CAAC,EAAE,CACjJ,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,16 +12,83 @@ import { registerAuditCommand } from "./commands/audit.js";
|
|
|
12
12
|
import { registerBatchCommand } from "./commands/batch.js";
|
|
13
13
|
const require = createRequire(import.meta.url);
|
|
14
14
|
const pkg = require("../package.json");
|
|
15
|
+
const VERSION = pkg.version;
|
|
16
|
+
const TELEMETRY_TOOL = "ai-trust";
|
|
17
|
+
const NON_TRACKED_TELEMETRY_COMMANDS = new Set(["telemetry", "help"]);
|
|
18
|
+
const telemetryStartedAt = new Map();
|
|
15
19
|
const program = new Command();
|
|
16
20
|
program
|
|
17
21
|
.name("ai-trust")
|
|
18
22
|
.description("Check security trust scores for AI agents and MCP servers before installing them")
|
|
19
|
-
.version(`ai-trust ${pkg.version} — trust verification for AI packages`, "-v, --version")
|
|
20
23
|
.option("--registry-url <url>", "registry base URL", "https://api.oa2a.org")
|
|
21
24
|
.option("--json", "output raw JSON", false)
|
|
22
25
|
.option("--no-color", "disable colored output");
|
|
23
26
|
registerCheckCommand(program);
|
|
24
27
|
registerAuditCommand(program);
|
|
25
28
|
registerBatchCommand(program);
|
|
26
|
-
|
|
29
|
+
(async () => {
|
|
30
|
+
// Tier-1 anonymous usage telemetry — default ON; opt-out via
|
|
31
|
+
// OPENA2A_TELEMETRY=off or `ai-trust telemetry off`. Mirrors the
|
|
32
|
+
// pattern shipped in hackmyagent + opena2a-cli (parity).
|
|
33
|
+
// Disclosure surfaces: README, --version line, telemetry subcommand,
|
|
34
|
+
// opena2a.org/telemetry.
|
|
35
|
+
// Silent-post-consent rule (briefs/scan-result-telemetry-policy.md §5):
|
|
36
|
+
// ALL ongoing contribution after opt-in is invisible — no per-scan
|
|
37
|
+
// banner, no "queued for registry" line. ai-trust currently emits
|
|
38
|
+
// none; preserve that.
|
|
39
|
+
const tele = await import("@opena2a/telemetry");
|
|
40
|
+
const cliUi = await import("@opena2a/cli-ui");
|
|
41
|
+
await tele.init({ tool: TELEMETRY_TOOL, version: VERSION });
|
|
42
|
+
program.version(cliUi.versionLine({
|
|
43
|
+
tool: TELEMETRY_TOOL,
|
|
44
|
+
version: VERSION,
|
|
45
|
+
telemetry: tele.status(),
|
|
46
|
+
}), "-v, --version", "Output the version number");
|
|
47
|
+
program
|
|
48
|
+
.hook("preAction", (_thisCommand, actionCommand) => {
|
|
49
|
+
const name = actionCommand.name();
|
|
50
|
+
if (NON_TRACKED_TELEMETRY_COMMANDS.has(name))
|
|
51
|
+
return;
|
|
52
|
+
telemetryStartedAt.set(name, Date.now());
|
|
53
|
+
})
|
|
54
|
+
.hook("postAction", (_thisCommand, actionCommand) => {
|
|
55
|
+
const name = actionCommand.name();
|
|
56
|
+
const startedAt = telemetryStartedAt.get(name);
|
|
57
|
+
if (startedAt === undefined)
|
|
58
|
+
return;
|
|
59
|
+
telemetryStartedAt.delete(name);
|
|
60
|
+
void tele.track(name, {
|
|
61
|
+
success: (process.exitCode ?? 0) === 0,
|
|
62
|
+
durationMs: Date.now() - startedAt,
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
program
|
|
66
|
+
.command("telemetry [action]")
|
|
67
|
+
.description("Inspect or toggle anonymous usage telemetry: on | off | status")
|
|
68
|
+
.action((action) => {
|
|
69
|
+
console.log(cliUi.runTelemetryCommand(action, {
|
|
70
|
+
tool: TELEMETRY_TOOL,
|
|
71
|
+
getStatus: tele.status,
|
|
72
|
+
setOptOut: tele.setOptOut,
|
|
73
|
+
}));
|
|
74
|
+
});
|
|
75
|
+
if (process.argv.length <= 2) {
|
|
76
|
+
program.outputHelp();
|
|
77
|
+
process.exit(0);
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
await program.parseAsync(process.argv);
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
const inFlight = telemetryStartedAt.keys().next().value;
|
|
84
|
+
if (inFlight) {
|
|
85
|
+
const code = err instanceof Error ? err.name : "unknown";
|
|
86
|
+
tele.error(inFlight, code);
|
|
87
|
+
}
|
|
88
|
+
throw err;
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
await tele.flush();
|
|
92
|
+
}
|
|
93
|
+
})();
|
|
27
94
|
//# sourceMappingURL=index.js.map
|
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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Trust verification CLI for AI packages — check MCP servers, A2A agents, AI tools, and LLMs before you install",
|
|
5
5
|
"homepage": "https://opena2a.org/ai-trust",
|
|
6
6
|
"repository": {
|
|
@@ -41,10 +41,11 @@
|
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@opena2a/ai-classifier": "^0.1.0",
|
|
43
43
|
"@opena2a/check-core": "0.2.0",
|
|
44
|
-
"@opena2a/cli-ui": "0.
|
|
44
|
+
"@opena2a/cli-ui": "0.5.0",
|
|
45
45
|
"@opena2a/contribute": "^0.1.0",
|
|
46
46
|
"@opena2a/registry-client": "0.1.0",
|
|
47
47
|
"@opena2a/shared": "^0.1.0",
|
|
48
|
+
"@opena2a/telemetry": "^0.1.2",
|
|
48
49
|
"chalk": "^5.3.0",
|
|
49
50
|
"commander": "^12.1.0",
|
|
50
51
|
"hackmyagent": "^0.17.1"
|