vskill 1.2.4 → 1.2.7

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 (114) hide show
  1. package/README.md +51 -3
  2. package/agents.json +6 -1
  3. package/dist/agents/agents-registry.d.ts +43 -16
  4. package/dist/agents/agents-registry.js +119 -33
  5. package/dist/agents/agents-registry.js.map +1 -1
  6. package/dist/agents/global-dirs.d.ts +19 -0
  7. package/dist/agents/global-dirs.js +53 -0
  8. package/dist/agents/global-dirs.js.map +1 -0
  9. package/dist/audit/fix-suggestions.js +6 -0
  10. package/dist/audit/fix-suggestions.js.map +1 -1
  11. package/dist/commands/add-github-bundle.d.ts +29 -0
  12. package/dist/commands/add-github-bundle.js +135 -0
  13. package/dist/commands/add-github-bundle.js.map +1 -0
  14. package/dist/commands/add-lockfile.d.ts +2 -0
  15. package/dist/commands/add-lockfile.js +1 -1
  16. package/dist/commands/add-lockfile.js.map +1 -1
  17. package/dist/commands/add.d.ts +5 -7
  18. package/dist/commands/add.js +207 -111
  19. package/dist/commands/add.js.map +1 -1
  20. package/dist/commands/audit-webmcp.d.ts +25 -0
  21. package/dist/commands/audit-webmcp.js +167 -0
  22. package/dist/commands/audit-webmcp.js.map +1 -0
  23. package/dist/commands/doctor.d.ts +69 -0
  24. package/dist/commands/doctor.js +760 -0
  25. package/dist/commands/doctor.js.map +1 -0
  26. package/dist/commands/remove.js +43 -8
  27. package/dist/commands/remove.js.map +1 -1
  28. package/dist/commands/scan.js +1 -1
  29. package/dist/commands/scan.js.map +1 -1
  30. package/dist/commands/update.js +12 -4
  31. package/dist/commands/update.js.map +1 -1
  32. package/dist/discovery/github-skill-bundle.d.ts +74 -0
  33. package/dist/discovery/github-skill-bundle.js +323 -0
  34. package/dist/discovery/github-skill-bundle.js.map +1 -0
  35. package/dist/eval/skill-scanner.js +7 -1
  36. package/dist/eval/skill-scanner.js.map +1 -1
  37. package/dist/eval-server/install-skill-routes.js +10 -3
  38. package/dist/eval-server/install-skill-routes.js.map +1 -1
  39. package/dist/eval-server/remove-skill-routes.js +262 -29
  40. package/dist/eval-server/remove-skill-routes.js.map +1 -1
  41. package/dist/eval-server/studio-privacy.js +2 -3
  42. package/dist/eval-server/studio-privacy.js.map +1 -1
  43. package/dist/eval-server/utils/scan-install-locations.js +22 -3
  44. package/dist/eval-server/utils/scan-install-locations.js.map +1 -1
  45. package/dist/eval-ui/assets/{CreateSkillPage-BUrgworx.js → CreateSkillPage-CXDd6gDN.js} +1 -1
  46. package/dist/eval-ui/assets/{FindSkillsPalette-BstJ22TI.js → FindSkillsPalette-DQ6uGhFP.js} +2 -2
  47. package/dist/eval-ui/assets/{SearchPaletteCore-Dagnc-E7.js → SearchPaletteCore-DpHCf0mf.js} +1 -1
  48. package/dist/eval-ui/assets/{SkillDetailPanel-DnujVk6g.js → SkillDetailPanel-BjHFjGxg.js} +1 -1
  49. package/dist/eval-ui/assets/{UpdateDropdown-B7D2vXrm.js → UpdateDropdown-Cn4Vsq5d.js} +1 -1
  50. package/dist/eval-ui/assets/main-BmB7Zj9I.js +86 -0
  51. package/dist/eval-ui/index.html +1 -1
  52. package/dist/index.js +34 -0
  53. package/dist/index.js.map +1 -1
  54. package/dist/installer/bundle-files.d.ts +39 -2
  55. package/dist/installer/bundle-files.js +80 -10
  56. package/dist/installer/bundle-files.js.map +1 -1
  57. package/dist/installer/canonical.d.ts +39 -4
  58. package/dist/installer/canonical.js +178 -24
  59. package/dist/installer/canonical.js.map +1 -1
  60. package/dist/installer/multi-install.d.ts +11 -2
  61. package/dist/installer/multi-install.js +41 -9
  62. package/dist/installer/multi-install.js.map +1 -1
  63. package/dist/installer/transformers/index.d.ts +8 -0
  64. package/dist/installer/yaml-safe-mutate.js +48 -2
  65. package/dist/installer/yaml-safe-mutate.js.map +1 -1
  66. package/dist/lib/github-fetch.js +2 -0
  67. package/dist/lib/github-fetch.js.map +1 -1
  68. package/dist/lib/private-source.d.ts +8 -0
  69. package/dist/lib/private-source.js +16 -2
  70. package/dist/lib/private-source.js.map +1 -1
  71. package/dist/scanner/hidden-content.d.ts +47 -0
  72. package/dist/scanner/hidden-content.js +904 -0
  73. package/dist/scanner/hidden-content.js.map +1 -0
  74. package/dist/scanner/installer-hosts.d.ts +26 -0
  75. package/dist/scanner/installer-hosts.js +92 -0
  76. package/dist/scanner/installer-hosts.js.map +1 -0
  77. package/dist/scanner/judge-guard.d.ts +119 -0
  78. package/dist/scanner/judge-guard.js +481 -0
  79. package/dist/scanner/judge-guard.js.map +1 -0
  80. package/dist/scanner/patterns.d.ts +12 -0
  81. package/dist/scanner/patterns.js +353 -113
  82. package/dist/scanner/patterns.js.map +1 -1
  83. package/dist/scanner/repo-scanner.d.ts +4 -0
  84. package/dist/scanner/repo-scanner.js +4 -1
  85. package/dist/scanner/repo-scanner.js.map +1 -1
  86. package/dist/scanner/tier1.js +37 -7
  87. package/dist/scanner/tier1.js.map +1 -1
  88. package/dist/scanner/tier2-llm.d.ts +22 -4
  89. package/dist/scanner/tier2-llm.js +163 -23
  90. package/dist/scanner/tier2-llm.js.map +1 -1
  91. package/dist/scanner/types.d.ts +8 -0
  92. package/dist/webmcp/args.d.ts +34 -0
  93. package/dist/webmcp/args.js +87 -0
  94. package/dist/webmcp/args.js.map +1 -0
  95. package/dist/webmcp/attribution.d.ts +38 -0
  96. package/dist/webmcp/attribution.js +141 -0
  97. package/dist/webmcp/attribution.js.map +1 -0
  98. package/dist/webmcp/enumerate.d.ts +81 -0
  99. package/dist/webmcp/enumerate.js +436 -0
  100. package/dist/webmcp/enumerate.js.map +1 -0
  101. package/dist/webmcp/format.d.ts +9 -0
  102. package/dist/webmcp/format.js +105 -0
  103. package/dist/webmcp/format.js.map +1 -0
  104. package/dist/webmcp/merge.d.ts +49 -0
  105. package/dist/webmcp/merge.js +167 -0
  106. package/dist/webmcp/merge.js.map +1 -0
  107. package/dist/webmcp/score.d.ts +70 -0
  108. package/dist/webmcp/score.js +586 -0
  109. package/dist/webmcp/score.js.map +1 -0
  110. package/dist/webmcp/types.d.ts +92 -0
  111. package/dist/webmcp/types.js +8 -0
  112. package/dist/webmcp/types.js.map +1 -0
  113. package/package.json +1 -1
  114. package/dist/eval-ui/assets/main-DjA5gpjV.js +0 -86
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/scanner/patterns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/scanner/patterns.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,10 @@ import type { RepoFile, ScanResult } from './types.js';
13
13
  * @returns Path to the cloned repository
14
14
  */
15
15
  export declare function shallowClone(repoUrl: string, tmpDir: string): Promise<string>;
16
+ /**
17
+ * Checks if a buffer likely contains binary content (null byte check).
18
+ */
19
+ export declare function isBinary(buffer: Buffer): boolean;
16
20
  /**
17
21
  * Recursively discovers all non-binary, scannable files in a directory.
18
22
  *
@@ -61,7 +61,7 @@ export async function shallowClone(repoUrl, tmpDir) {
61
61
  /**
62
62
  * Checks if a buffer likely contains binary content (null byte check).
63
63
  */
64
- function isBinary(buffer) {
64
+ export function isBinary(buffer) {
65
65
  // Check for null bytes in the first 8KB
66
66
  const checkLength = Math.min(buffer.length, 8192);
67
67
  for (let i = 0; i < checkLength; i++) {
@@ -174,6 +174,9 @@ export async function scanRepository(repoUrl) {
174
174
  category: f.category,
175
175
  message: `[${file.path}] ${f.patternName}: ${f.match}`,
176
176
  line: f.lineNumber,
177
+ patternId: f.patternId,
178
+ match: f.match,
179
+ ...(f.downgradedFrom ? { downgradedFrom: f.downgradedFrom } : {}),
177
180
  });
178
181
  }
179
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repo-scanner.js","sourceRoot":"","sources":["../../src/scanner/repo-scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo-scanner.js","sourceRoot":"","sources":["../../src/scanner/repo-scanner.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  // Tier 1 Scanner -- Static pattern-based security analysis
3
3
  // ---------------------------------------------------------------------------
4
4
  import { scanContent, SCAN_PATTERNS, } from "./patterns.js";
5
+ import { ADVISORY_IDS } from "./judge-guard.js";
5
6
  // ---- Severity scoring weights ---------------------------------------------
6
7
  const SEVERITY_DEDUCTIONS = {
7
8
  critical: 25,
@@ -10,7 +11,24 @@ const SEVERITY_DEDUCTIONS = {
10
11
  low: 3,
11
12
  info: 0,
12
13
  };
14
+ /** Score ceiling when hidden Unicode tag text is present (always FAIL). */
15
+ const HC001_SCORE_CAP = 39;
13
16
  // ---- Scanner --------------------------------------------------------------
17
+ /**
18
+ * HC-014 (visible text addressed to an AI reviewer) only asks for the LLM
19
+ * judge. The CLI installs on Tier 1 alone and has no judge to send it to, so
20
+ * it is reported but not scored. HC-009 (hidden or forged) still scores.
21
+ */
22
+ const CLI_UNSCORED_IDS = new Set(["HC-014"]);
23
+ /**
24
+ * Severity used for counts and the score. Advisory findings (look-alike
25
+ * domains, mixed-script words) are common in localized docs: they are
26
+ * reported at their own severity but score as info, so they cannot push a
27
+ * skill below the install threshold on their own.
28
+ */
29
+ function scoredSeverity(finding) {
30
+ return ADVISORY_IDS.has(finding.patternId) || CLI_UNSCORED_IDS.has(finding.patternId) ? "info" : finding.severity;
31
+ }
14
32
  /**
15
33
  * Run the Tier 1 static scan against the provided skill content.
16
34
  *
@@ -29,32 +47,44 @@ export function runTier1Scan(content) {
29
47
  let mediumCount = 0;
30
48
  let lowCount = 0;
31
49
  let infoCount = 0;
50
+ // Repeated matches on one line are folded into one finding (see
51
+ // scanContent); count and score each occurrence, so folding bounds the
52
+ // work without raising the score the CLI installs on. Findings folded in
53
+ // past scanContent's caps (foldedFindings) add their occurrences to the
54
+ // holder, so they are counted here too.
32
55
  for (const finding of findings) {
33
- switch (finding.severity) {
56
+ const n = finding.occurrences ?? 1;
57
+ switch (scoredSeverity(finding)) {
34
58
  case "critical":
35
- criticalCount++;
59
+ criticalCount += n;
36
60
  break;
37
61
  case "high":
38
- highCount++;
62
+ highCount += n;
39
63
  break;
40
64
  case "medium":
41
- mediumCount++;
65
+ mediumCount += n;
42
66
  break;
43
67
  case "low":
44
- lowCount++;
68
+ lowCount += n;
45
69
  break;
46
70
  case "info":
47
- infoCount++;
71
+ infoCount += n;
48
72
  break;
49
73
  }
50
74
  }
51
75
  // Calculate score
52
76
  let score = 100;
53
77
  for (const finding of findings) {
54
- score -= SEVERITY_DEDUCTIONS[finding.severity];
78
+ score -= SEVERITY_DEDUCTIONS[scoredSeverity(finding)] * (finding.occurrences ?? 1);
55
79
  }
56
80
  // Clamp to 0-100
57
81
  score = Math.max(0, Math.min(100, score));
82
+ // Hidden Unicode tag text (HC-001) has no legitimate use in a skill and
83
+ // the platform judge caps it at FAIL; the CLI installs on Tier 1 alone, so
84
+ // apply the same cap here.
85
+ if (findings.some((f) => f.patternId === "HC-001" && f.severity !== "info")) {
86
+ score = Math.min(score, HC001_SCORE_CAP);
87
+ }
58
88
  // Determine verdict
59
89
  let verdict;
60
90
  if (score >= 80) {
@@ -1 +1 @@
1
- {"version":3,"file":"tier1.js","sourceRoot":"","sources":["../../src/scanner/tier1.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAE9E,OAAO,EACL,WAAW,EACX,aAAa,GAId,MAAM,eAAe,CAAC;AAiBvB,8EAA8E;AAE9E,MAAM,mBAAmB,GAAoC;IAC3D,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAEhC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAEtC,6BAA6B;IAC7B,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzB,KAAK,UAAU;gBACb,aAAa,EAAE,CAAC;gBAChB,MAAM;YACR,KAAK,MAAM;gBACT,SAAS,EAAE,CAAC;gBACZ,MAAM;YACR,KAAK,QAAQ;gBACX,WAAW,EAAE,CAAC;gBACd,MAAM;YACR,KAAK,KAAK;gBACR,QAAQ,EAAE,CAAC;gBACX,MAAM;YACR,KAAK,MAAM;gBACT,SAAS,EAAE,CAAC;gBACZ,MAAM;QACV,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,KAAK,GAAG,GAAG,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,IAAI,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IACD,iBAAiB;IACjB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1C,oBAAoB;IACpB,IAAI,OAAoB,CAAC;IACzB,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChB,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;SAAM,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QACvB,OAAO,GAAG,UAAU,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IAEzD,OAAO;QACL,OAAO;QACP,QAAQ;QACR,KAAK;QACL,eAAe,EAAE,aAAa,CAAC,MAAM;QACrC,aAAa;QACb,SAAS;QACT,WAAW;QACX,QAAQ;QACR,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tier1.js","sourceRoot":"","sources":["../../src/scanner/tier1.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,12 @@
3
3
  *
4
4
  * Takes SKILL.md content + Tier 1 findings and uses Cloudflare Workers AI
5
5
  * (Llama 3.1 70B) to provide a semantic security assessment with a score,
6
- * verdict, and rationale.
6
+ * verdict, and rationale. The skill content is fenced with a per-scan nonce
7
+ * and the judge's verdict passes through the guards in judge-guard.ts.
7
8
  */
8
9
  import type { SecurityFinding, Tier2Result } from './types.js';
10
+ import type { ScanFinding } from './patterns.js';
11
+ import { type GuardFinding, type GuardedVerdict } from './judge-guard.js';
9
12
  /** Minimum interface for the Workers AI binding */
10
13
  export interface AIBinding {
11
14
  run(model: string, input: {
@@ -13,20 +16,35 @@ export interface AIBinding {
13
16
  role: string;
14
17
  content: string;
15
18
  }>;
19
+ /** JSON mode and response schema, for providers that support them. */
20
+ response_format?: {
21
+ type: 'json_object';
22
+ };
23
+ json_schema?: Record<string, unknown>;
16
24
  }): Promise<{
17
25
  response?: string;
18
26
  }>;
19
27
  }
28
+ /** Tier 1 findings in either the shared SecurityFinding or the raw ScanFinding shape. */
29
+ export type Tier2Finding = SecurityFinding | ScanFinding;
30
+ /**
31
+ * Rewrites the judge's criticalValidation ids to the exact Tier 1 ids they
32
+ * name. Models vary the id ("ci-001", "CI-001 (exec)", " CI-001 ", or one
33
+ * entry listing several ids); exact matching would leave every critical
34
+ * "unvalidated" and cap the score. Entries naming no known id are dropped.
35
+ */
36
+ export declare function normalizeCriticalValidation(validations: GuardedVerdict['criticalValidation'], findings: GuardFinding[]): GuardedVerdict['criticalValidation'];
20
37
  /**
21
38
  * Runs Tier 2 LLM-based security analysis.
22
39
  *
23
40
  * Retries up to MAX_RETRIES times with exponential backoff on transient
24
41
  * failures (network errors, timeouts, 5xx). Only returns FAIL after all
25
- * retries are exhausted.
42
+ * retries are exhausted. An answer that omits criticalValidation for a listed
43
+ * critical finding is asked once more, then the scan returns FAIL.
26
44
  *
27
45
  * @param content - The SKILL.md file content
28
- * @param tier1Findings - Findings from the Tier 1 pattern scanner
46
+ * @param tier1Findings - Findings from the Tier 1 pattern scanner (SecurityFinding or ScanFinding)
29
47
  * @param ai - The Workers AI binding (env.AI)
30
48
  * @returns Tier2Result with score, verdict, rationale, and model
31
49
  */
32
- export declare function runTier2Scan(content: string, tier1Findings: SecurityFinding[], ai: AIBinding): Promise<Tier2Result>;
50
+ export declare function runTier2Scan(content: string, tier1Findings: Tier2Finding[], ai: AIBinding): Promise<Tier2Result>;
@@ -3,10 +3,45 @@
3
3
  *
4
4
  * Takes SKILL.md content + Tier 1 findings and uses Cloudflare Workers AI
5
5
  * (Llama 3.1 70B) to provide a semantic security assessment with a score,
6
- * verdict, and rationale.
6
+ * verdict, and rationale. The skill content is fenced with a per-scan nonce
7
+ * and the judge's verdict passes through the guards in judge-guard.ts.
7
8
  */
9
+ import { JUDGE_GUARD_RULES, applyJudgeGuards, buildSkillBlock, criticalIdsToValidate, judgeResponseSchema, makeNonce, unvalidatedCriticals, } from './judge-guard.js';
10
+ import { revealInvisible } from './hidden-content.js';
8
11
  /** The Workers AI model used for Tier 2 scanning */
9
12
  const TIER2_MODEL = '@cf/meta/llama-3.1-70b-instruct';
13
+ /**
14
+ * Normalizes a finding for the judge guards. SecurityFindings without a
15
+ * pattern ID are keyed by category so critical validation still works.
16
+ */
17
+ function toGuardFinding(f) {
18
+ if ('patternId' in f && typeof f.patternId === 'string' && 'patternName' in f) {
19
+ return {
20
+ patternId: f.patternId,
21
+ severity: f.severity,
22
+ match: f.match,
23
+ category: f.category,
24
+ lineNumber: f.lineNumber,
25
+ context: f.context,
26
+ ...(f.downgradedFrom ? { downgradedFrom: f.downgradedFrom } : {}),
27
+ };
28
+ }
29
+ const sf = f;
30
+ return {
31
+ patternId: sf.patternId ?? sf.category,
32
+ severity: sf.severity,
33
+ match: sf.match ?? sf.message ?? '',
34
+ category: sf.category,
35
+ ...(typeof sf.line === 'number' ? { lineNumber: sf.line } : {}),
36
+ ...(sf.downgradedFrom ? { downgradedFrom: sf.downgradedFrom } : {}),
37
+ };
38
+ }
39
+ function findingLine(f) {
40
+ return 'lineNumber' in f ? f.lineNumber : f.line;
41
+ }
42
+ function findingText(f) {
43
+ return 'patternName' in f ? `${f.patternName}: ${f.match}` : f.message;
44
+ }
10
45
  /**
11
46
  * Builds the system prompt for the Tier 2 LLM judge.
12
47
  */
@@ -14,20 +49,23 @@ function buildSystemPrompt() {
14
49
  return `You are a security auditor for AI agent skill packages. Your job is to analyze SKILL.md files (which define AI agent capabilities) for security risks.
15
50
 
16
51
  You will receive:
17
- 1. The full SKILL.md content
52
+ 1. The SKILL.md content (excerpted when long)
18
53
  2. Findings from an automated pattern-based scanner (Tier 1)
19
54
 
20
55
  Your task:
21
56
  - Assess the OVERALL security risk of this skill package
22
57
  - Consider both the Tier 1 findings AND your own semantic analysis
23
58
  - Look for subtle risks the pattern scanner might miss (social engineering, indirect prompt injection, data exfiltration through side channels, etc.)
59
+ - For every critical finding listed under "CRITICAL FINDINGS TO VALIDATE", decide whether it is a real threat ("confirmed") or a false positive ("false_positive") and say why
24
60
  - Provide a score from 0 (most dangerous) to 100 (completely safe)
25
61
 
26
62
  Respond ONLY with valid JSON in this exact format:
27
63
  {
28
64
  "score": <number 0-100>,
29
65
  "verdict": "<PASS|CONCERNS|FAIL>",
30
- "rationale": "<2-3 sentence explanation>"
66
+ "rationale": "<2-3 sentence explanation>",
67
+ "concerns": ["<concern>", ...],
68
+ "criticalValidation": [{ "patternId": "<ID>", "verdict": "<confirmed|false_positive>", "reason": "<why>" }]
31
69
  }
32
70
 
33
71
  Scoring guide:
@@ -35,26 +73,32 @@ Scoring guide:
35
73
  - 40-79: CONCERNS — Some risks worth manual review
36
74
  - 0-39: FAIL — Significant security risks detected
37
75
 
38
- Be strict. When in doubt, err on the side of caution.`;
76
+ Be strict. When in doubt, err on the side of caution.
77
+
78
+ ${JUDGE_GUARD_RULES}`;
39
79
  }
40
80
  /**
41
- * Builds the user message containing the content and Tier 1 findings.
81
+ * Builds the user message containing the fenced content and Tier 1 findings.
82
+ * Finding text is quoted and invisible characters revealed, because matches
83
+ * are attacker-controlled too.
42
84
  */
43
- function buildUserMessage(content, tier1Findings) {
85
+ function buildUserMessage(content, tier1Findings, guardFindings, nonce) {
44
86
  const findingsSummary = tier1Findings.length > 0
45
87
  ? tier1Findings
46
- .map((f) => `- [${f.severity.toUpperCase()}] ${f.category}: ${f.message} (line ${f.line ?? '?'})`)
88
+ .map((f, i) => `- [${f.severity.toUpperCase()}] [${guardFindings[i].patternId}] ${f.category}: ${JSON.stringify(revealInvisible(findingText(f)))} (line ${findingLine(f) ?? '?'})`)
47
89
  .join('\n')
48
90
  : 'No findings from automated scan.';
49
- return `## SKILL.md Content
91
+ const criticalIds = criticalIdsToValidate(guardFindings);
92
+ const criticalSection = criticalIds.length > 0
93
+ ? `\n\n## CRITICAL FINDINGS TO VALIDATE\n\nReturn one criticalValidation entry for each of: ${criticalIds.join(', ')}`
94
+ : '';
95
+ return `## Tier 1 Scanner Findings
50
96
 
51
- \`\`\`markdown
52
- ${content}
53
- \`\`\`
97
+ ${findingsSummary}${criticalSection}
54
98
 
55
- ## Tier 1 Scanner Findings
99
+ ## SKILL.md Content
56
100
 
57
- ${findingsSummary}
101
+ ${buildSkillBlock(content, guardFindings, nonce)}
58
102
 
59
103
  Analyze this skill package and respond with the JSON assessment.`;
60
104
  }
@@ -80,7 +124,16 @@ function parseResponse(raw) {
80
124
  ? 'CONCERNS'
81
125
  : 'FAIL';
82
126
  const rationale = typeof parsed.rationale === 'string' ? parsed.rationale : 'No rationale provided.';
83
- return { score, verdict, rationale };
127
+ const concerns = Array.isArray(parsed.concerns)
128
+ ? parsed.concerns.filter((c) => typeof c === 'string')
129
+ : [];
130
+ const criticalValidation = Array.isArray(parsed.criticalValidation)
131
+ ? parsed.criticalValidation.filter((v) => !!v &&
132
+ typeof v.patternId === 'string' &&
133
+ (v.verdict === 'confirmed' ||
134
+ v.verdict === 'false_positive'))
135
+ : undefined;
136
+ return { score, verdict, rationale, concerns, criticalValidation, parsed: true };
84
137
  }
85
138
  catch {
86
139
  // If parsing fails, return a conservative FAIL
@@ -88,43 +141,106 @@ function parseResponse(raw) {
88
141
  score: 0,
89
142
  verdict: 'FAIL',
90
143
  rationale: `Failed to parse LLM response: ${raw.slice(0, 200)}`,
144
+ concerns: [],
145
+ parsed: false,
91
146
  };
92
147
  }
93
148
  }
149
+ const PATTERN_ID_RE = /\b([A-Za-z]{2,4})[-_ ]?(\d{3})\b/g;
150
+ /** Comparison key for a pattern id or category: "ci-001 (exec)" -> "CI-001". */
151
+ function idKeys(raw) {
152
+ const keys = [...raw.matchAll(PATTERN_ID_RE)].map((m) => `${m[1].toUpperCase()}-${m[2]}`);
153
+ return keys.length > 0 ? keys : [raw.trim().toLowerCase()];
154
+ }
155
+ /**
156
+ * Rewrites the judge's criticalValidation ids to the exact Tier 1 ids they
157
+ * name. Models vary the id ("ci-001", "CI-001 (exec)", " CI-001 ", or one
158
+ * entry listing several ids); exact matching would leave every critical
159
+ * "unvalidated" and cap the score. Entries naming no known id are dropped.
160
+ */
161
+ export function normalizeCriticalValidation(validations, findings) {
162
+ if (!validations)
163
+ return validations;
164
+ const known = new Map();
165
+ for (const f of findings) {
166
+ if (!f || typeof f.patternId !== 'string')
167
+ continue;
168
+ for (const key of idKeys(f.patternId))
169
+ if (!known.has(key))
170
+ known.set(key, f.patternId);
171
+ }
172
+ const out = [];
173
+ for (const v of validations) {
174
+ for (const key of idKeys(v.patternId)) {
175
+ const id = known.get(key);
176
+ if (id)
177
+ out.push({ ...v, patternId: id });
178
+ }
179
+ }
180
+ return out;
181
+ }
182
+ /**
183
+ * Applies the judge guards (score caps the model cannot talk its way out of)
184
+ * and records any guard-added concerns in the rationale.
185
+ */
186
+ function guardVerdict(parsed, guardFindings) {
187
+ if (!parsed.parsed) {
188
+ return { score: parsed.score, verdict: parsed.verdict, rationale: parsed.rationale, concerns: parsed.concerns };
189
+ }
190
+ const guarded = applyJudgeGuards({
191
+ verdict: parsed.verdict,
192
+ score: parsed.score,
193
+ concerns: parsed.concerns,
194
+ criticalValidation: normalizeCriticalValidation(parsed.criticalValidation, guardFindings),
195
+ }, guardFindings);
196
+ const added = guarded.concerns.slice(parsed.concerns.length);
197
+ const rationale = added.length > 0 ? `${parsed.rationale} Guard: ${added.join('; ')}.` : parsed.rationale;
198
+ return { score: guarded.score, verdict: guarded.verdict, rationale, concerns: guarded.concerns };
199
+ }
94
200
  /** Max retry attempts for transient AI API failures */
95
201
  const MAX_RETRIES = 3;
96
202
  /** Initial backoff in ms (doubles each attempt) */
97
203
  const INITIAL_BACKOFF_MS = 1000;
204
+ /**
205
+ * Answers accepted that skip a required criticalValidation entry before the
206
+ * scan fails: the first is retried, the second ends it.
207
+ */
208
+ const MAX_UNVALIDATED_ANSWERS = 2;
98
209
  /**
99
210
  * Runs Tier 2 LLM-based security analysis.
100
211
  *
101
212
  * Retries up to MAX_RETRIES times with exponential backoff on transient
102
213
  * failures (network errors, timeouts, 5xx). Only returns FAIL after all
103
- * retries are exhausted.
214
+ * retries are exhausted. An answer that omits criticalValidation for a listed
215
+ * critical finding is asked once more, then the scan returns FAIL.
104
216
  *
105
217
  * @param content - The SKILL.md file content
106
- * @param tier1Findings - Findings from the Tier 1 pattern scanner
218
+ * @param tier1Findings - Findings from the Tier 1 pattern scanner (SecurityFinding or ScanFinding)
107
219
  * @param ai - The Workers AI binding (env.AI)
108
220
  * @returns Tier2Result with score, verdict, rationale, and model
109
221
  */
110
222
  export async function runTier2Scan(content, tier1Findings, ai) {
223
+ const guardFindings = tier1Findings.map(toGuardFinding);
111
224
  const systemPrompt = buildSystemPrompt();
112
- const userMessage = buildUserMessage(content, tier1Findings);
225
+ // Fresh per scan so the content cannot forge the end of the untrusted block.
226
+ const userMessage = buildUserMessage(content, tier1Findings, guardFindings, makeNonce());
227
+ // When criticals are listed the schema requires their validation, and an
228
+ // answer without it is unusable rather than a low score.
229
+ const jsonSchema = judgeResponseSchema(criticalIdsToValidate(guardFindings).length > 0);
113
230
  let lastError = 'unknown error';
231
+ let unvalidatedAnswers = 0;
114
232
  for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
233
+ let responseText;
115
234
  try {
116
235
  const result = await ai.run(TIER2_MODEL, {
117
236
  messages: [
118
237
  { role: 'system', content: systemPrompt },
119
238
  { role: 'user', content: userMessage },
120
239
  ],
240
+ response_format: { type: 'json_object' },
241
+ json_schema: jsonSchema,
121
242
  });
122
- const responseText = result.response ?? '';
123
- const parsed = parseResponse(responseText);
124
- return {
125
- ...parsed,
126
- model: TIER2_MODEL,
127
- };
243
+ responseText = result.response ?? '';
128
244
  }
129
245
  catch (error) {
130
246
  lastError = error instanceof Error ? error.message : String(error);
@@ -132,7 +248,31 @@ export async function runTier2Scan(content, tier1Findings, ai) {
132
248
  const backoff = INITIAL_BACKOFF_MS * Math.pow(2, attempt - 1);
133
249
  await new Promise((resolve) => setTimeout(resolve, backoff));
134
250
  }
251
+ continue;
252
+ }
253
+ const parsed = parseResponse(responseText);
254
+ const missing = parsed.parsed
255
+ ? unvalidatedCriticals({ criticalValidation: normalizeCriticalValidation(parsed.criticalValidation, guardFindings) }, guardFindings)
256
+ : [];
257
+ if (missing.length > 0) {
258
+ unvalidatedAnswers++;
259
+ if (unvalidatedAnswers < MAX_UNVALIDATED_ANSWERS) {
260
+ // Ask again without spending a transient-failure retry.
261
+ attempt--;
262
+ continue;
263
+ }
264
+ return {
265
+ score: 0,
266
+ verdict: 'FAIL',
267
+ rationale: `Tier 2 judge did not validate critical finding(s) ${missing.join(', ')} in ${unvalidatedAnswers} answers; no usable verdict.`,
268
+ concerns: [`Reviewer did not validate critical finding(s): ${missing.join(', ')}`],
269
+ model: TIER2_MODEL,
270
+ };
135
271
  }
272
+ return {
273
+ ...guardVerdict(parsed, guardFindings),
274
+ model: TIER2_MODEL,
275
+ };
136
276
  }
137
277
  // All retries exhausted — return conservative FAIL
138
278
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"tier2-llm.js","sourceRoot":"","sources":["../../src/scanner/tier2-llm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tier2-llm.js","sourceRoot":"","sources":["../../src/scanner/tier2-llm.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,12 @@ export interface SecurityFinding {
13
13
  message: string;
14
14
  /** Line number in the file where the finding was detected */
15
15
  line?: number;
16
+ /** Tier 1 pattern ID (e.g. 'CE-001', 'HC-001') when the finding came from a pattern */
17
+ patternId?: string;
18
+ /** Matched text, when known */
19
+ match?: string;
20
+ /** Original severity when Tier 1 context rules lowered it */
21
+ downgradedFrom?: Severity;
16
22
  }
17
23
  /** Result from a security scan */
18
24
  export interface ScanResult {
@@ -53,6 +59,8 @@ export interface Tier2Result {
53
59
  rationale: string;
54
60
  /** Model identifier used for the scan */
55
61
  model: string;
62
+ /** Concerns raised by the judge and by the judge guards */
63
+ concerns?: string[];
56
64
  }
57
65
  /** Overall verdict for a scan */
58
66
  export type ScanVerdict = 'PASS' | 'CONCERNS' | 'FAIL';