@kryptosai/mcp-observatory 1.29.2 → 1.30.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.
Files changed (44) hide show
  1. package/README.md +65 -6
  2. package/README.zh-CN.md +66 -7
  3. package/dist/src/checks/runtime-profile.d.ts +5 -0
  4. package/dist/src/checks/runtime-profile.js +214 -0
  5. package/dist/src/checks/runtime-profile.js.map +1 -0
  6. package/dist/src/checks/security-rules.js +18 -0
  7. package/dist/src/checks/security-rules.js.map +1 -1
  8. package/dist/src/checks/skill-scan.d.ts +46 -0
  9. package/dist/src/checks/skill-scan.js +665 -0
  10. package/dist/src/checks/skill-scan.js.map +1 -0
  11. package/dist/src/cli.js +5 -0
  12. package/dist/src/cli.js.map +1 -1
  13. package/dist/src/commands/enforce.d.ts +12 -0
  14. package/dist/src/commands/enforce.js +187 -0
  15. package/dist/src/commands/enforce.js.map +1 -0
  16. package/dist/src/commands/scan.js +36 -9
  17. package/dist/src/commands/scan.js.map +1 -1
  18. package/dist/src/commands/skill-scan.d.ts +6 -0
  19. package/dist/src/commands/skill-scan.js +62 -0
  20. package/dist/src/commands/skill-scan.js.map +1 -0
  21. package/dist/src/commands/test.js +13 -0
  22. package/dist/src/commands/test.js.map +1 -1
  23. package/dist/src/discovery.d.ts +15 -1
  24. package/dist/src/discovery.js +219 -9
  25. package/dist/src/discovery.js.map +1 -1
  26. package/dist/src/index.d.ts +3 -1
  27. package/dist/src/index.js +3 -1
  28. package/dist/src/index.js.map +1 -1
  29. package/dist/src/receipt.d.ts +4 -1
  30. package/dist/src/receipt.js +85 -0
  31. package/dist/src/receipt.js.map +1 -1
  32. package/dist/src/reporters/markdown.js +39 -0
  33. package/dist/src/reporters/markdown.js.map +1 -1
  34. package/dist/src/reporters/terminal.d.ts +2 -0
  35. package/dist/src/reporters/terminal.js +53 -1
  36. package/dist/src/reporters/terminal.js.map +1 -1
  37. package/dist/src/runner.js +6 -0
  38. package/dist/src/runner.js.map +1 -1
  39. package/dist/src/types.d.ts +26 -1
  40. package/docs/mcp-server-safety-index.md +13 -11
  41. package/docs/safety-index/artifacts/github-mcp-server.json +1707 -0
  42. package/docs/safety-index/artifacts/github-mcp-server.md +169 -0
  43. package/docs/safety-index/targets.json +17 -0
  44. package/package.json +2 -2
@@ -5,6 +5,8 @@ import { renderSarif } from "../reporters/sarif.js";
5
5
  import { buildEvent, normalizeCampaign, recordEvent } from "../telemetry.js";
6
6
  import { maybePrintCloudCta } from "../commercial.js";
7
7
  import { renderActionReceipt } from "../action-receipt.js";
8
+ import { runEnforce } from "./enforce.js";
9
+ import { renderNextActions } from "../reporters/terminal.js";
8
10
  import { ANSI, c, resolveTarget, targetFromCommand, writeOutput } from "./helpers.js";
9
11
  import { maybeConvertPassingCheckToCi } from "./setup-ci-conversion.js";
10
12
  function extractTrailingConversionFlags(commandArgs, options) {
@@ -37,6 +39,9 @@ function extractTrailingConversionFlags(commandArgs, options) {
37
39
  flags.sarif = next;
38
40
  i += 1;
39
41
  }
42
+ else if (arg === "--enforce") {
43
+ flags.enforce = true;
44
+ }
40
45
  else if (arg === "--campaign") {
41
46
  const next = commandArgs[i + 1];
42
47
  if (!next)
@@ -70,6 +75,7 @@ export function registerTestCommands(program) {
70
75
  .option("--no-setup-ci", "Suppress the post-success CI conversion prompt and hint.")
71
76
  .option("--no-ci-sarif", "Generate post-check CI without GitHub Code Scanning SARIF upload.")
72
77
  .option("--force", "Overwrite existing generated CI adoption files.", false)
78
+ .option("--enforce", "After testing, generate seatbelt policy and optionally start proxy.", false)
73
79
  .option("--no-color", "Disable colored output.")
74
80
  .action(async (commandArgs, options) => {
75
81
  const extracted = extractTrailingConversionFlags(commandArgs, options);
@@ -104,6 +110,7 @@ export function registerTestCommands(program) {
104
110
  }
105
111
  process.stdout.write(` ${c(ANSI.dim, "→")} ${renderActionReceipt(artifact).split("\n")[0]}\n`);
106
112
  process.stdout.write(`\n ${c(ANSI.dim, `Artifact: ${outPath}`)}\n\n`);
113
+ process.stdout.write(renderNextActions(artifact) + "\n");
107
114
  // Track history
108
115
  const historyEntry = buildHistoryEntry(artifact);
109
116
  await appendHistory(historyEntry).catch(() => { });
@@ -150,6 +157,12 @@ export function registerTestCommands(program) {
150
157
  campaign: conversionFlags.campaign,
151
158
  });
152
159
  }
160
+ if (options.enforce || conversionFlags.enforce) {
161
+ await runEnforce(target, commandArgs, {
162
+ security: options.security,
163
+ deep: options.deep || options.invokeTools,
164
+ }, "mcp-observatory");
165
+ }
153
166
  maybePrintCloudCta(options.security ? "security" : "general");
154
167
  });
155
168
  }
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/commands/test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/commands/test.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,19 @@ interface DiscoveredTarget {
3
3
  source: string;
4
4
  config: TargetConfig;
5
5
  }
6
+ declare function defaultConfigPaths(): string[];
7
+ declare function defaultSkillPaths(): string[];
6
8
  export declare function scanForTargets(configPath?: string): Promise<DiscoveredTarget[]>;
7
- export {};
9
+ export declare function discoverSkillPaths(explicitPath?: string): Promise<string[]>;
10
+ export declare function discoverFromCursor(): Promise<DiscoveredTarget[]>;
11
+ export declare function discoverFromWindsurf(): Promise<DiscoveredTarget[]>;
12
+ export declare function discoverFromVSCode(): Promise<DiscoveredTarget[]>;
13
+ export declare function discoverFromOpenCode(): Promise<DiscoveredTarget[]>;
14
+ export declare function discoverFromCodex(): Promise<DiscoveredTarget[]>;
15
+ export declare function discoverFromGeminiCli(): Promise<DiscoveredTarget[]>;
16
+ export declare function discoverFromKiro(): Promise<DiscoveredTarget[]>;
17
+ export declare function discoverFromAntigravity(): Promise<DiscoveredTarget[]>;
18
+ export declare function discoverFromAmazonQ(): Promise<DiscoveredTarget[]>;
19
+ export declare function discoverFromClaudeDesktop(): Promise<DiscoveredTarget[]>;
20
+ export declare function discoverFromClaudeCode(): Promise<DiscoveredTarget[]>;
21
+ export { defaultConfigPaths, defaultSkillPaths };
@@ -1,4 +1,4 @@
1
- import { readFile } from "node:fs/promises";
1
+ import { access, readFile } from "node:fs/promises";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
4
  import { z } from "zod";
@@ -12,37 +12,164 @@ const mcpServerEntrySchema = z.object({
12
12
  const mcpConfigSchema = z.object({
13
13
  mcpServers: z.record(z.string(), z.unknown()),
14
14
  }).passthrough();
15
- function defaultConfigPaths() {
15
+ // ── Per-agent config path functions ─────────────────────────────────────────
16
+ function claudeCodeConfigPaths() {
17
+ const home = os.homedir();
18
+ return [path.join(home, ".claude.json")];
19
+ }
20
+ function claudeDesktopConfigPaths() {
16
21
  const home = os.homedir();
17
22
  const paths = [];
18
- // Claude Code user config
19
- paths.push(path.join(home, ".claude.json"));
20
- // Claude Desktop (macOS)
21
23
  if (process.platform === "darwin") {
22
24
  paths.push(path.join(home, "Library", "Application Support", "Claude", "claude_desktop_config.json"));
23
25
  }
24
- // Claude Desktop (Windows)
25
26
  if (process.platform === "win32") {
26
27
  const appData = process.env["APPDATA"];
27
28
  if (appData) {
28
29
  paths.push(path.join(appData, "Claude", "claude_desktop_config.json"));
29
30
  }
30
31
  }
31
- // Walk up from cwd to find .mcp.json and .claude.json in parent directories
32
- // (capped at 10 levels to avoid scanning the entire filesystem)
32
+ return paths;
33
+ }
34
+ function cursorConfigPaths() {
35
+ const home = os.homedir();
36
+ return [path.join(home, ".cursor", "mcp.json")];
37
+ }
38
+ function windsurfConfigPaths() {
39
+ const home = os.homedir();
40
+ return [path.join(home, ".windsurf", "mcp.json")];
41
+ }
42
+ function vscodeConfigPaths() {
43
+ const home = os.homedir();
44
+ return [path.join(home, ".vscode", "mcp.json")];
45
+ }
46
+ function opencodeConfigPaths() {
47
+ const home = os.homedir();
48
+ return [
49
+ path.join(home, ".config", "opencode", "opencode.json"),
50
+ path.join(home, ".opencode", "opencode.json"),
51
+ ];
52
+ }
53
+ function codexConfigPaths() {
54
+ const home = os.homedir();
55
+ return [path.join(home, ".codex", "config.json")];
56
+ }
57
+ function geminiCliConfigPaths() {
58
+ const home = os.homedir();
59
+ return [path.join(home, ".gemini", "mcp.json")];
60
+ }
61
+ function kiroConfigPaths() {
62
+ const home = os.homedir();
63
+ return [path.join(home, ".kiro", "mcp.json")];
64
+ }
65
+ function antigravityConfigPaths() {
66
+ const home = os.homedir();
67
+ return [path.join(home, ".antigravity", "mcp.json")];
68
+ }
69
+ function amazonQConfigPaths() {
70
+ const home = os.homedir();
71
+ return [path.join(home, ".amazonq", "mcp.json")];
72
+ }
73
+ // ── Per-agent skill path functions ──────────────────────────────────────────
74
+ function cursorSkillPaths() {
75
+ const home = os.homedir();
76
+ return [path.join(home, ".cursor", "skills")];
77
+ }
78
+ function opencodeSkillPaths() {
79
+ const home = os.homedir();
80
+ return [
81
+ path.join(home, ".config", "opencode", "skills"),
82
+ path.join(home, ".opencode", "skills"),
83
+ ];
84
+ }
85
+ function codexSkillPaths() {
86
+ const home = os.homedir();
87
+ return [
88
+ path.join(home, ".agents", "skills"),
89
+ path.join(home, ".codex", "skills"),
90
+ ];
91
+ }
92
+ function ampSkillPaths() {
93
+ const home = os.homedir();
94
+ return [
95
+ path.join(home, ".config", "agents", "skills"),
96
+ path.join(home, ".amp", "skills"),
97
+ ];
98
+ }
99
+ function openclawSkillPaths() {
100
+ const home = os.homedir();
101
+ return [
102
+ path.join(home, ".openclaw", "skills"),
103
+ path.join(home, ".openclaw", "workspace", "skills"),
104
+ path.join(home, ".clawdbot", "skills"),
105
+ ];
106
+ }
107
+ // ── Project-level config paths ──────────────────────────────────────────────
108
+ function projectConfigPaths() {
109
+ const paths = [];
33
110
  let dir = process.cwd();
34
111
  const root = path.parse(dir).root;
35
112
  let depth = 0;
36
113
  while (dir !== root && depth < 10) {
37
114
  paths.push(path.join(dir, ".claude.json"));
38
115
  paths.push(path.join(dir, ".mcp.json"));
39
- // Also check for Claude Code project-level config
40
116
  paths.push(path.join(dir, ".claude", "settings.local.json"));
117
+ paths.push(path.join(dir, ".cursor", "mcp.json"));
118
+ paths.push(path.join(dir, ".windsurf", "mcp.json"));
119
+ paths.push(path.join(dir, ".vscode", "mcp.json"));
120
+ paths.push(path.join(dir, ".opencode", "opencode.json"));
121
+ paths.push(path.join(dir, ".gemini", "mcp.json"));
122
+ paths.push(path.join(dir, ".kiro", "mcp.json"));
123
+ paths.push(path.join(dir, ".antigravity", "mcp.json"));
124
+ paths.push(path.join(dir, ".amazonq", "mcp.json"));
125
+ dir = path.dirname(dir);
126
+ depth++;
127
+ }
128
+ return paths;
129
+ }
130
+ function projectSkillPaths() {
131
+ const paths = [];
132
+ let dir = process.cwd();
133
+ const root = path.parse(dir).root;
134
+ let depth = 0;
135
+ while (dir !== root && depth < 10) {
136
+ paths.push(path.join(dir, ".cursor", "skills"));
137
+ paths.push(path.join(dir, ".opencode", "skills"));
138
+ paths.push(path.join(dir, ".agents", "skills"));
139
+ paths.push(path.join(dir, ".codex", "skills"));
41
140
  dir = path.dirname(dir);
42
141
  depth++;
43
142
  }
44
143
  return paths;
45
144
  }
145
+ // ── Aggregate path functions ────────────────────────────────────────────────
146
+ function defaultConfigPaths() {
147
+ return [
148
+ ...claudeCodeConfigPaths(),
149
+ ...claudeDesktopConfigPaths(),
150
+ ...cursorConfigPaths(),
151
+ ...windsurfConfigPaths(),
152
+ ...vscodeConfigPaths(),
153
+ ...opencodeConfigPaths(),
154
+ ...codexConfigPaths(),
155
+ ...geminiCliConfigPaths(),
156
+ ...kiroConfigPaths(),
157
+ ...antigravityConfigPaths(),
158
+ ...amazonQConfigPaths(),
159
+ ...projectConfigPaths(),
160
+ ];
161
+ }
162
+ function defaultSkillPaths() {
163
+ return [
164
+ ...cursorSkillPaths(),
165
+ ...opencodeSkillPaths(),
166
+ ...codexSkillPaths(),
167
+ ...ampSkillPaths(),
168
+ ...openclawSkillPaths(),
169
+ ...projectSkillPaths(),
170
+ ];
171
+ }
172
+ // ── Core scanning logic ─────────────────────────────────────────────────────
46
173
  async function tryReadJson(filePath) {
47
174
  try {
48
175
  const content = await readFile(filePath, "utf8");
@@ -108,6 +235,7 @@ function extractTargets(data, source) {
108
235
  }
109
236
  return results;
110
237
  }
238
+ // ── Public API ──────────────────────────────────────────────────────────────
111
239
  export async function scanForTargets(configPath) {
112
240
  const paths = configPath ? [configPath] : defaultConfigPaths();
113
241
  const allTargets = [];
@@ -129,4 +257,86 @@ export async function scanForTargets(configPath) {
129
257
  }
130
258
  return allTargets;
131
259
  }
260
+ export async function discoverSkillPaths(explicitPath) {
261
+ if (explicitPath) {
262
+ try {
263
+ await access(explicitPath);
264
+ return [explicitPath];
265
+ }
266
+ catch {
267
+ return [];
268
+ }
269
+ }
270
+ const paths = defaultSkillPaths();
271
+ const results = [];
272
+ const seen = new Set();
273
+ for (const p of paths) {
274
+ if (seen.has(p))
275
+ continue;
276
+ seen.add(p);
277
+ try {
278
+ await access(p);
279
+ results.push(p);
280
+ }
281
+ catch {
282
+ // Path doesn't exist, skip
283
+ }
284
+ }
285
+ return results;
286
+ }
287
+ // ── Per-agent discovery exports ─────────────────────────────────────────────
288
+ export async function discoverFromCursor() {
289
+ return scanForTargetsFromPaths(cursorConfigPaths());
290
+ }
291
+ export async function discoverFromWindsurf() {
292
+ return scanForTargetsFromPaths(windsurfConfigPaths());
293
+ }
294
+ export async function discoverFromVSCode() {
295
+ return scanForTargetsFromPaths(vscodeConfigPaths());
296
+ }
297
+ export async function discoverFromOpenCode() {
298
+ return scanForTargetsFromPaths(opencodeConfigPaths());
299
+ }
300
+ export async function discoverFromCodex() {
301
+ return scanForTargetsFromPaths(codexConfigPaths());
302
+ }
303
+ export async function discoverFromGeminiCli() {
304
+ return scanForTargetsFromPaths(geminiCliConfigPaths());
305
+ }
306
+ export async function discoverFromKiro() {
307
+ return scanForTargetsFromPaths(kiroConfigPaths());
308
+ }
309
+ export async function discoverFromAntigravity() {
310
+ return scanForTargetsFromPaths(antigravityConfigPaths());
311
+ }
312
+ export async function discoverFromAmazonQ() {
313
+ return scanForTargetsFromPaths(amazonQConfigPaths());
314
+ }
315
+ export async function discoverFromClaudeDesktop() {
316
+ return scanForTargetsFromPaths(claudeDesktopConfigPaths());
317
+ }
318
+ export async function discoverFromClaudeCode() {
319
+ return scanForTargetsFromPaths(claudeCodeConfigPaths());
320
+ }
321
+ async function scanForTargetsFromPaths(configPaths) {
322
+ const allTargets = [];
323
+ const seen = new Set();
324
+ for (const p of configPaths) {
325
+ const data = await tryReadJson(p);
326
+ if (data === undefined)
327
+ continue;
328
+ const targets = extractTargets(data, p);
329
+ for (const target of targets) {
330
+ const key = target.config.adapter === "http"
331
+ ? target.config.url
332
+ : `${target.config.command} ${target.config.args.join(" ")}`;
333
+ if (!seen.has(key)) {
334
+ seen.add(key);
335
+ allTargets.push(target);
336
+ }
337
+ }
338
+ }
339
+ return allTargets;
340
+ }
341
+ export { defaultConfigPaths, defaultSkillPaths };
132
342
  //# sourceMappingURL=discovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/discovery.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,11 @@ export { runConformanceCheck } from "./checks/conformance.js";
6
6
  export { runSchemaQualityCheck } from "./checks/schema-quality.js";
7
7
  export { runAttackSimulationCheck, type AttackSimulationFinding, type AttackSimulationOptions } from "./checks/attack-sim.js";
8
8
  export { runLightweightSecurityCheck, runSecurityCheck } from "./checks/security.js";
9
+ export { analyzeRuntimeProfile, runRuntimeProfileCheck } from "./checks/runtime-profile.js";
9
10
  export { SECURITY_RULES, type SecurityFinding, type SecurityRule, type ToolInfo } from "./checks/security-rules.js";
11
+ export { scanContent, scanFile, scanDirectory, scanPath, computeSkillHealthScore, summarizeScan, renderSkillScanTerminal, renderSkillScanMarkdown, renderSkillScanJson, renderSkillScanSarif, SKILL_SCAN_RULES, type SkillScanRule, type SkillScanFinding, type SkillScanResult, type SkillScanSummary, type SkillScanSeverity, } from "./checks/skill-scan.js";
10
12
  export { diffArtifacts } from "./diff.js";
11
- export { scanForTargets } from "./discovery.js";
13
+ export { scanForTargets, discoverSkillPaths, discoverFromCursor, discoverFromWindsurf, discoverFromVSCode, discoverFromOpenCode, discoverFromCodex, discoverFromGeminiCli, discoverFromKiro, discoverFromAntigravity, discoverFromAmazonQ, discoverFromClaudeDesktop, discoverFromClaudeCode, } from "./discovery.js";
12
14
  export { renderHtml } from "./reporters/html.js";
13
15
  export { renderJUnit } from "./reporters/junit.js";
14
16
  export { renderMarkdown } from "./reporters/markdown.js";
package/dist/src/index.js CHANGED
@@ -6,9 +6,11 @@ export { runConformanceCheck } from "./checks/conformance.js";
6
6
  export { runSchemaQualityCheck } from "./checks/schema-quality.js";
7
7
  export { runAttackSimulationCheck } from "./checks/attack-sim.js";
8
8
  export { runLightweightSecurityCheck, runSecurityCheck } from "./checks/security.js";
9
+ export { analyzeRuntimeProfile, runRuntimeProfileCheck } from "./checks/runtime-profile.js";
9
10
  export { SECURITY_RULES } from "./checks/security-rules.js";
11
+ export { scanContent, scanFile, scanDirectory, scanPath, computeSkillHealthScore, summarizeScan, renderSkillScanTerminal, renderSkillScanMarkdown, renderSkillScanJson, renderSkillScanSarif, SKILL_SCAN_RULES, } from "./checks/skill-scan.js";
10
12
  export { diffArtifacts } from "./diff.js";
11
- export { scanForTargets } from "./discovery.js";
13
+ export { scanForTargets, discoverSkillPaths, discoverFromCursor, discoverFromWindsurf, discoverFromVSCode, discoverFromOpenCode, discoverFromCodex, discoverFromGeminiCli, discoverFromKiro, discoverFromAntigravity, discoverFromAmazonQ, discoverFromClaudeDesktop, discoverFromClaudeCode, } from "./discovery.js";
12
14
  export { renderHtml } from "./reporters/html.js";
13
15
  export { renderJUnit } from "./reporters/junit.js";
14
16
  export { renderMarkdown } from "./reporters/markdown.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type AuditReport, type AuditSeverity, type TrustStatus } from "./audit.js";
2
- import type { TargetConfig } from "./types.js";
2
+ import type { NotObserved, RunArtifact, TargetConfig } from "./types.js";
3
3
  export type ReceiptEnvironmentClass = "local" | "ci" | "public_safety_index" | "private_fleet";
4
4
  export type ReceiptState = "ready_for_ci" | "needs_review" | "blocked" | "could_not_evaluate";
5
5
  export type ReceiptAction = "allow" | "gate" | "rerun" | "quarantine" | "escalate";
@@ -39,6 +39,7 @@ export interface ReceiptEvidence {
39
39
  tool_surface_summary: string;
40
40
  attack_simulation_summary: string;
41
41
  baseline_or_drift_summary: string;
42
+ runtime_profile_summary: string;
42
43
  }
43
44
  export interface ReceiptVerdict {
44
45
  score: number;
@@ -76,6 +77,7 @@ export interface McpReceipt {
76
77
  evidence: ReceiptEvidence;
77
78
  verdict: ReceiptVerdict;
78
79
  findings: ReceiptFinding[];
80
+ notObserved: NotObserved[];
79
81
  reproduction: ReceiptReproduction;
80
82
  maintainer_cta: ReceiptCta[];
81
83
  buyer_cta: ReceiptCta[];
@@ -93,6 +95,7 @@ export interface BuildReceiptOptions extends ReceiptEvidenceOptions {
93
95
  outputPath?: string;
94
96
  topFindingsLimit?: number;
95
97
  }
98
+ export declare function detectNotObserved(artifact: RunArtifact): NotObserved[];
96
99
  export declare function mapStatusToReceiptVerdict(report: AuditReport): ReceiptVerdict;
97
100
  export declare function buildMcpReceipt(report: AuditReport, target: TargetConfig, options?: BuildReceiptOptions): Promise<McpReceipt>;
98
101
  export declare function renderReceiptMarkdown(receipt: McpReceipt): string;
@@ -111,6 +111,81 @@ function driftSummary(report) {
111
111
  return "No baseline or drift finding was included in this receipt.";
112
112
  return `${driftFindings.length} baseline/drift finding(s) summarized.`;
113
113
  }
114
+ function runtimeProfileSummary(report) {
115
+ const profile = report.artifact.runtimeProfile;
116
+ if (!profile)
117
+ return "Runtime profile was not generated for this run.";
118
+ const egressCount = profile.egress?.length ?? 0;
119
+ const mutationCount = profile.stateMutations?.length ?? 0;
120
+ if (egressCount === 0 && mutationCount === 0) {
121
+ return `No egress or state mutation indicators detected (confidence: ${profile.confidence}).`;
122
+ }
123
+ const parts = [];
124
+ if (egressCount > 0)
125
+ parts.push(`${egressCount} egress target(s) detected`);
126
+ if (mutationCount > 0)
127
+ parts.push(`${mutationCount} state mutation(s) detected`);
128
+ return `${parts.join(", ")} (confidence: ${profile.confidence}).`;
129
+ }
130
+ export function detectNotObserved(artifact) {
131
+ const notObserved = [];
132
+ const allToolIds = new Set();
133
+ const networkPattern = /url|http|https|fetch|request|api|web|curl|wget|net|socket|connect|download|upload/i;
134
+ const fsPattern = /read|write|delete|remove|create|mkdir|rmdir|file[_-]|fs[_-]|^cp$|^mv$|^ln$|touch|chmod|chown|move|copy|rename|dir/i;
135
+ for (const check of artifact.checks) {
136
+ for (const ev of check.evidence) {
137
+ for (const id of ev.identifiers ?? []) {
138
+ allToolIds.add(id);
139
+ }
140
+ if (ev.endpoint === "tools/list" && typeof ev.responseSnapshots?.tools === "object") {
141
+ const tools = (ev.responseSnapshots).tools;
142
+ if (tools) {
143
+ for (const tool of tools) {
144
+ if (typeof tool.name === "string")
145
+ allToolIds.add(tool.name);
146
+ }
147
+ }
148
+ }
149
+ }
150
+ }
151
+ const hasNetworkTool = [...allToolIds].some((t) => networkPattern.test(t));
152
+ if (!hasNetworkTool) {
153
+ notObserved.push({
154
+ category: "network_egress",
155
+ detail: "No outbound network calls were attempted during scan",
156
+ severity: "warning",
157
+ });
158
+ }
159
+ const hasFsTool = [...allToolIds].some((t) => fsPattern.test(t));
160
+ if (!hasFsTool) {
161
+ notObserved.push({
162
+ category: "filesystem_mutation",
163
+ detail: "Filesystem write operations were not exercised",
164
+ severity: "warning",
165
+ });
166
+ }
167
+ const securityCheck = artifact.checks.find((c) => c.id === "security" || c.id === "security-lite");
168
+ if (!securityCheck) {
169
+ notObserved.push({
170
+ category: "credential_access",
171
+ detail: "Credential scanning was not performed",
172
+ severity: "warning",
173
+ });
174
+ }
175
+ else {
176
+ notObserved.push({
177
+ category: "credential_access",
178
+ detail: "Credential scanning was performed (see security findings)",
179
+ severity: "info",
180
+ });
181
+ }
182
+ notObserved.push({
183
+ category: "destructive_payloads",
184
+ detail: "Destructive payloads were not attempted (safe-mode only)",
185
+ severity: "info",
186
+ });
187
+ return notObserved;
188
+ }
114
189
  export function mapStatusToReceiptVerdict(report) {
115
190
  if (report.artifact.fatalError) {
116
191
  return {
@@ -219,9 +294,11 @@ export async function buildMcpReceipt(report, target, options = {}) {
219
294
  tool_surface_summary: toolSurfaceSummary(report),
220
295
  attack_simulation_summary: attackSimulationSummary(report),
221
296
  baseline_or_drift_summary: driftSummary(report),
297
+ runtime_profile_summary: runtimeProfileSummary(report),
222
298
  },
223
299
  verdict: mapStatusToReceiptVerdict(report),
224
300
  findings: receiptFindings(report, options.topFindingsLimit ?? 5),
301
+ notObserved: detectNotObserved(report.artifact),
225
302
  reproduction: {
226
303
  rerun_command: rerunCommand(target, report.summary.profile),
227
304
  ci_command: ciCommand(target),
@@ -315,6 +392,14 @@ export function renderReceiptMarkdown(receipt) {
315
392
  `- Tool surface summary: ${receipt.evidence.tool_surface_summary}`,
316
393
  `- Attack simulation summary: ${receipt.evidence.attack_simulation_summary}`,
317
394
  `- Baseline/drift summary: ${receipt.evidence.baseline_or_drift_summary}`,
395
+ `- Runtime profile summary: ${receipt.evidence.runtime_profile_summary}`,
396
+ "",
397
+ "## What Was Not Tested",
398
+ "",
399
+ ...receipt.notObserved.map((entry) => {
400
+ const icon = entry.severity === "warning" ? "🔒" : "â„šī¸";
401
+ return `- ${icon} ${entry.category}: ${entry.detail}`;
402
+ }),
318
403
  "",
319
404
  "## Top Findings",
320
405
  "",