@panguard-ai/panguard-skill-auditor 1.9.0 → 1.10.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.
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Collect the script files a skill ships next to SKILL.md, for the ATR scan.
3
+ * 收集技能附帶的腳本檔,供 ATR 掃描。
4
+ *
5
+ * Every limit that drops a file is counted in `skipped`, so the caller can
6
+ * report a scan that did not see everything instead of calling it clean.
7
+ *
8
+ * @module @panguard-ai/panguard-skill-auditor/bundled-scripts
9
+ */
10
+ /** A single file larger than this is skipped / 超過此大小的單一檔案略過 */
11
+ export declare const MAX_SCRIPT_BYTES: number;
12
+ /** Total bytes read per skill / 每個技能讀取的總位元組上限 */
13
+ export declare const MAX_TOTAL_BYTES: number;
14
+ /** At most this many files are read per skill / 每個技能最多讀取的檔案數 */
15
+ export declare const MAX_SCRIPT_FILES = 200;
16
+ export interface BundledScript {
17
+ /** Path relative to the skill directory, with forward slashes and no control characters */
18
+ readonly path: string;
19
+ readonly content: string;
20
+ }
21
+ /** Script files the walk found but did not return, by reason */
22
+ export interface SkippedScripts {
23
+ readonly oversize: number;
24
+ readonly overTotal: number;
25
+ readonly overCount: number;
26
+ readonly tooDeep: number;
27
+ readonly binary: number;
28
+ }
29
+ export interface BundledScriptSet {
30
+ readonly scripts: readonly BundledScript[];
31
+ readonly skipped: SkippedScripts;
32
+ }
33
+ /** Total number of skipped script files */
34
+ export declare function skippedCount(skipped: SkippedScripts): number;
35
+ /**
36
+ * Read the script files under a skill directory.
37
+ *
38
+ * Returns nothing for a single-file skill (a path to a .md file), since there is
39
+ * no directory of its own to read. Symbolic links are not followed. Files are
40
+ * taken breadth first, with `scripts/`, `bin/`, `hooks/`, `src/` and `lib/`
41
+ * ahead of other directories at the top level.
42
+ */
43
+ export declare function collectBundledScripts(skillDir: string): Promise<BundledScriptSet>;
44
+ //# sourceMappingURL=bundled-scripts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundled-scripts.d.ts","sourceRoot":"","sources":["../src/bundled-scripts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA8CH,+DAA+D;AAC/D,eAAO,MAAM,gBAAgB,QAAa,CAAC;AAE3C,iDAAiD;AACjD,eAAO,MAAM,eAAe,QAAkB,CAAC;AAE/C,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAKpC,MAAM,WAAW,aAAa;IAC5B,2FAA2F;IAC3F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAID,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAI5D;AAOD;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuCvF"}
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Collect the script files a skill ships next to SKILL.md, for the ATR scan.
3
+ * 收集技能附帶的腳本檔,供 ATR 掃描。
4
+ *
5
+ * Every limit that drops a file is counted in `skipped`, so the caller can
6
+ * report a scan that did not see everything instead of calling it clean.
7
+ *
8
+ * @module @panguard-ai/panguard-skill-auditor/bundled-scripts
9
+ */
10
+ import { readdir, readFile, stat } from 'node:fs/promises';
11
+ import { extname, join, relative, sep } from 'node:path';
12
+ /** Extensions of files an agent can run or import / 代理可執行或匯入的檔案副檔名 */
13
+ const SCRIPT_EXTENSIONS = new Set([
14
+ '.py',
15
+ '.js',
16
+ '.mjs',
17
+ '.cjs',
18
+ '.ts',
19
+ '.mts',
20
+ '.cts',
21
+ '.sh',
22
+ '.bash',
23
+ '.zsh',
24
+ '.ps1',
25
+ '.psm1',
26
+ '.bat',
27
+ '.cmd',
28
+ '.vbs',
29
+ '.rb',
30
+ '.pl',
31
+ '.php',
32
+ ]);
33
+ /** Directories never read: dependencies, VCS, bytecode, build and test output */
34
+ const SKIPPED_DIRS = new Set([
35
+ '.git',
36
+ 'node_modules',
37
+ '__pycache__',
38
+ '.venv',
39
+ 'venv',
40
+ 'site-packages',
41
+ 'vendor',
42
+ 'dist',
43
+ 'build',
44
+ '.next',
45
+ 'target',
46
+ 'coverage',
47
+ ]);
48
+ /** Top-level directories read first, so a pile of other files cannot push them past the cap */
49
+ const PRIORITY_DIRS = ['scripts', 'bin', 'hooks', 'src', 'lib'];
50
+ /** A single file larger than this is skipped / 超過此大小的單一檔案略過 */
51
+ export const MAX_SCRIPT_BYTES = 256 * 1024;
52
+ /** Total bytes read per skill / 每個技能讀取的總位元組上限 */
53
+ export const MAX_TOTAL_BYTES = 2 * 1024 * 1024;
54
+ /** At most this many files are read per skill / 每個技能最多讀取的檔案數 */
55
+ export const MAX_SCRIPT_FILES = 200;
56
+ /** Directory depth limit, so a symlink loop or deep tree cannot stall the audit */
57
+ const MAX_DEPTH = 8;
58
+ const NONE = { oversize: 0, overTotal: 0, overCount: 0, tooDeep: 0, binary: 0 };
59
+ /** Total number of skipped script files */
60
+ export function skippedCount(skipped) {
61
+ return (skipped.oversize + skipped.overTotal + skipped.overCount + skipped.tooDeep + skipped.binary);
62
+ }
63
+ /**
64
+ * Read the script files under a skill directory.
65
+ *
66
+ * Returns nothing for a single-file skill (a path to a .md file), since there is
67
+ * no directory of its own to read. Symbolic links are not followed. Files are
68
+ * taken breadth first, with `scripts/`, `bin/`, `hooks/`, `src/` and `lib/`
69
+ * ahead of other directories at the top level.
70
+ */
71
+ export async function collectBundledScripts(skillDir) {
72
+ if (skillDir.endsWith('.md'))
73
+ return { scripts: [], skipped: NONE };
74
+ try {
75
+ if (!(await stat(skillDir)).isDirectory())
76
+ return { scripts: [], skipped: NONE };
77
+ }
78
+ catch {
79
+ return { scripts: [], skipped: NONE };
80
+ }
81
+ const { candidates, oversize, tooDeep } = await walk(skillDir);
82
+ const scripts = [];
83
+ let totalBytes = 0;
84
+ let overTotal = 0;
85
+ let overCount = 0;
86
+ let binary = 0;
87
+ for (const candidate of candidates) {
88
+ if (scripts.length >= MAX_SCRIPT_FILES) {
89
+ overCount++;
90
+ continue;
91
+ }
92
+ if (totalBytes + candidate.size > MAX_TOTAL_BYTES) {
93
+ overTotal++;
94
+ continue;
95
+ }
96
+ let content;
97
+ try {
98
+ content = await readFile(candidate.full, 'utf8');
99
+ }
100
+ catch {
101
+ continue; // Unreadable or vanished: skip rather than fail the audit
102
+ }
103
+ if (content.includes('\u0000')) {
104
+ binary++;
105
+ continue;
106
+ }
107
+ totalBytes += candidate.size;
108
+ scripts.push({ path: displayPath(skillDir, candidate.full), content });
109
+ }
110
+ return { scripts, skipped: { oversize, overTotal, overCount, tooDeep, binary } };
111
+ }
112
+ function displayPath(root, full) {
113
+ return relative(root, full)
114
+ .split(sep)
115
+ .join('/')
116
+ .replace(/[\u0000-\u001f\u007f]/g, '?'); // eslint-disable-line no-control-regex
117
+ }
118
+ async function walk(root) {
119
+ const candidates = [];
120
+ let oversize = 0;
121
+ let tooDeep = 0;
122
+ let level = [root];
123
+ for (let depth = 0; level.length > 0; depth++) {
124
+ const next = [];
125
+ for (const dir of level) {
126
+ let entries;
127
+ try {
128
+ entries = await readdir(dir, { withFileTypes: true });
129
+ }
130
+ catch {
131
+ continue;
132
+ }
133
+ for (const entry of sortEntries(entries, dir === root)) {
134
+ const full = join(dir, entry.name);
135
+ if (entry.isDirectory()) {
136
+ if (SKIPPED_DIRS.has(entry.name))
137
+ continue;
138
+ if (depth + 1 > MAX_DEPTH) {
139
+ tooDeep += await countScripts(full);
140
+ }
141
+ else {
142
+ next.push(full);
143
+ }
144
+ }
145
+ else if (entry.isFile() && isScript(entry.name)) {
146
+ try {
147
+ const size = (await stat(full)).size;
148
+ if (size > MAX_SCRIPT_BYTES)
149
+ oversize++;
150
+ else
151
+ candidates.push({ full, size });
152
+ }
153
+ catch {
154
+ // Vanished between readdir and stat: skip
155
+ }
156
+ }
157
+ }
158
+ }
159
+ level = next;
160
+ }
161
+ return { candidates, oversize, tooDeep };
162
+ }
163
+ function isScript(name) {
164
+ return SCRIPT_EXTENSIONS.has(extname(name).toLowerCase()) && !/\.min\.js$/i.test(name);
165
+ }
166
+ function sortEntries(entries, atRoot) {
167
+ const rank = (name) => {
168
+ if (!atRoot)
169
+ return PRIORITY_DIRS.length;
170
+ const i = PRIORITY_DIRS.indexOf(name);
171
+ return i === -1 ? PRIORITY_DIRS.length : i;
172
+ };
173
+ return [...entries].sort((a, b) => rank(a.name) - rank(b.name) || a.name.localeCompare(b.name));
174
+ }
175
+ /** Count script files below a directory the walk will not enter, without reading them */
176
+ async function countScripts(dir, budget = { left: 1000 }) {
177
+ let count = 0;
178
+ let entries;
179
+ try {
180
+ entries = await readdir(dir, { withFileTypes: true });
181
+ }
182
+ catch {
183
+ return 0;
184
+ }
185
+ for (const entry of entries) {
186
+ if (budget.left-- <= 0)
187
+ break;
188
+ if (entry.isDirectory() && !SKIPPED_DIRS.has(entry.name)) {
189
+ count += await countScripts(join(dir, entry.name), budget);
190
+ }
191
+ else if (entry.isFile() && isScript(entry.name)) {
192
+ count++;
193
+ }
194
+ }
195
+ return count;
196
+ }
197
+ //# sourceMappingURL=bundled-scripts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundled-scripts.js","sourceRoot":"","sources":["../src/bundled-scripts.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ import type { CheckResult, SkillManifest } from '../types.js';
18
18
  * single-pattern prompt-injection rules scanSkill's FP gate suppresses)
19
19
  * 2. Skill description via the same dual path
20
20
  * 3. MCP tool descriptions (if present in metadata) as tool_call events
21
+ * 4. Script files bundled in the skill directory, when `skillDir` is given
21
22
  *
22
23
  * Returns a CheckResult compatible with the Skill Auditor pipeline.
23
24
  */
@@ -26,5 +27,5 @@ export declare function checkWithATR(manifest: SkillManifest, cloudRules?: Array
26
27
  title: string;
27
28
  detection: unknown;
28
29
  [key: string]: unknown;
29
- }>): Promise<CheckResult>;
30
+ }>, skillDir?: string): Promise<CheckResult>;
30
31
  //# sourceMappingURL=atr-check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"atr-check.d.ts","sourceRoot":"","sources":["../../src/checks/atr-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAgB,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA0K5E;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,aAAa,EACvB,UAAU,CAAC,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,GAC5F,OAAO,CAAC,WAAW,CAAC,CAuJtB"}
1
+ {"version":3,"file":"atr-check.d.ts","sourceRoot":"","sources":["../../src/checks/atr-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAgB,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAuQ5E;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,aAAa,EACvB,UAAU,CAAC,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,EAC7F,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC,CA8JtB"}
@@ -14,6 +14,7 @@ import { fileURLToPath } from 'node:url';
14
14
  import { existsSync } from 'node:fs';
15
15
  import { createRequire } from 'node:module';
16
16
  import { filterInjectableCloudRules } from './cloud-rule-guard.js';
17
+ import { collectBundledScripts, skippedCount, MAX_SCRIPT_BYTES, MAX_SCRIPT_FILES, MAX_TOTAL_BYTES, } from '../bundled-scripts.js';
17
18
  const CHECK_LABEL = 'ATR Pattern Detection';
18
19
  // ---------------------------------------------------------------------------
19
20
  // Capability declaration detection (mirrors scan-core context-signals logic)
@@ -122,6 +123,83 @@ function buildToolCallEvent(toolName, description, inputSchema) {
122
123
  },
123
124
  };
124
125
  }
126
+ /**
127
+ * Whether a rule may report on a bundled script: maturity stable or test, the
128
+ * rules the alert lane runs. Experimental and draft rules stay on SKILL.md text,
129
+ * where they were measured; on ordinary code they misfire more.
130
+ */
131
+ function isScriptGradeRule(match) {
132
+ const maturity = String(match.rule.maturity ?? '').toLowerCase();
133
+ return maturity === 'stable' || maturity === 'test';
134
+ }
135
+ /** Wall-clock budget for scanning one skill's scripts / 單一技能腳本掃描的時間上限 */
136
+ const SCRIPT_SCAN_BUDGET_MS = 15_000;
137
+ /** How many other files a script finding names before it says "and N more" */
138
+ const LISTED_FILES = 3;
139
+ /**
140
+ * Scan each bundled script through the skill entry point.
141
+ *
142
+ * One finding per rule, located at the first file it matched, so the risk score
143
+ * counts a rule once however many files repeat it; the other files are named in
144
+ * `location`. When a limit dropped a file, or the time budget ran out, a high
145
+ * finding says the scan was incomplete, so a skill cannot score LOW by hiding a
146
+ * script past a limit.
147
+ */
148
+ async function scanBundledScripts(engine, skillDir) {
149
+ const { scripts, skipped } = await collectBundledScripts(skillDir);
150
+ const byRule = new Map();
151
+ const deadline = Date.now() + SCRIPT_SCAN_BUDGET_MS;
152
+ let unscanned = 0;
153
+ for (const script of scripts) {
154
+ if (Date.now() > deadline) {
155
+ unscanned++;
156
+ continue;
157
+ }
158
+ const matches = engine.scanSkill(script.content).filter(isScriptGradeRule);
159
+ for (const f of matchesToFindings(matches)) {
160
+ const seen = byRule.get(f.id);
161
+ if (seen) {
162
+ seen.files.push(script.path);
163
+ }
164
+ else {
165
+ byRule.set(f.id, {
166
+ finding: { ...f, location: f.location ? `${script.path}: ${f.location}` : script.path },
167
+ files: [],
168
+ });
169
+ }
170
+ }
171
+ // Yield between files so a bulk scan's other work is not starved
172
+ await new Promise((done) => setImmediate(done));
173
+ }
174
+ const findings = [...byRule.values()].map(({ finding, files }) => {
175
+ if (files.length === 0)
176
+ return finding;
177
+ const named = files.slice(0, LISTED_FILES).join(', ');
178
+ const more = files.length > LISTED_FILES ? ` and ${files.length - LISTED_FILES} more` : '';
179
+ return { ...finding, location: `${finding.location} (also in ${named}${more})` };
180
+ });
181
+ const notSeen = skippedCount(skipped) + unscanned;
182
+ if (notSeen > 0) {
183
+ const reasons = [
184
+ skipped.oversize && `${skipped.oversize} over ${MAX_SCRIPT_BYTES / 1024} KB`,
185
+ skipped.overTotal &&
186
+ `${skipped.overTotal} past the ${MAX_TOTAL_BYTES / 1024 / 1024} MB total`,
187
+ skipped.overCount && `${skipped.overCount} past the ${MAX_SCRIPT_FILES}-file cap`,
188
+ skipped.tooDeep && `${skipped.tooDeep} nested too deep`,
189
+ skipped.binary && `${skipped.binary} containing NUL bytes`,
190
+ unscanned && `${unscanned} after the ${SCRIPT_SCAN_BUDGET_MS / 1000} s time budget`,
191
+ ].filter(Boolean);
192
+ findings.push({
193
+ id: 'atr-scripts-incomplete',
194
+ title: 'Some bundled scripts were not scanned',
195
+ description: `${notSeen} script file(s) in this skill were not checked against ATR rules: ` +
196
+ `${reasons.join('; ')}. Review them by hand before trusting this result.`,
197
+ severity: 'high',
198
+ category: 'atr',
199
+ });
200
+ }
201
+ return findings;
202
+ }
125
203
  /**
126
204
  * Convert ATR matches to AuditFinding[], deduplicating by rule ID.
127
205
  *
@@ -163,14 +241,15 @@ function matchesToFindings(matches) {
163
241
  * single-pattern prompt-injection rules scanSkill's FP gate suppresses)
164
242
  * 2. Skill description via the same dual path
165
243
  * 3. MCP tool descriptions (if present in metadata) as tool_call events
244
+ * 4. Script files bundled in the skill directory, when `skillDir` is given
166
245
  *
167
246
  * Returns a CheckResult compatible with the Skill Auditor pipeline.
168
247
  */
169
- export async function checkWithATR(manifest, cloudRules) {
248
+ export async function checkWithATR(manifest, cloudRules, skillDir) {
170
249
  // Dynamic import — gracefully handle missing dependency
171
250
  let ATREngine;
172
251
  try {
173
- const atr = await import('@panguard-ai/atr');
252
+ const atr = await import('agent-threat-rules');
174
253
  ATREngine = atr.ATREngine;
175
254
  }
176
255
  catch {
@@ -185,7 +264,7 @@ export async function checkWithATR(manifest, cloudRules) {
185
264
  // Optional: behavioral fingerprinting for drift detection
186
265
  let fingerprintStore;
187
266
  try {
188
- const { SkillFingerprintStore } = await import('@panguard-ai/atr');
267
+ const { SkillFingerprintStore } = await import('agent-threat-rules');
189
268
  fingerprintStore = new SkillFingerprintStore();
190
269
  }
191
270
  catch {
@@ -277,6 +356,12 @@ export async function checkWithATR(manifest, cloudRules) {
277
356
  return severity !== f.severity ? { ...f, severity } : f;
278
357
  });
279
358
  }
359
+ // 4. Bundled scripts. Added after the downgrade above: SKILL.md declaring a
360
+ // capability or describing its safeguards says nothing about what a
361
+ // script actually does.
362
+ if (skillDir) {
363
+ findings = [...findings, ...(await scanBundledScripts(engine, skillDir))];
364
+ }
280
365
  const hasCritical = findings.some((f) => f.severity === 'critical');
281
366
  const hasHigh = findings.some((f) => f.severity === 'high');
282
367
  const status = hasCritical ? 'fail' : hasHigh ? 'warn' : findings.length > 0 ? 'warn' : 'pass';
@@ -1 +1 @@
1
- {"version":3,"file":"atr-check.js","sourceRoot":"","sources":["../../src/checks/atr-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"atr-check.js","sourceRoot":"","sources":["../../src/checks/atr-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAE5C,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAE9E,MAAM,qBAAqB,GACzB,qFAAqF,CAAC;AAExF,MAAM,uBAAuB,GAAG,6BAA6B,CAAC;AAE9D,MAAM,oBAAoB,GACxB,+LAA+L,CAAC;AAIlM,SAAS,sBAAsB,CAAC,QAAuB;IACrD,MAAM,GAAG,GAAyC;QAChD,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,MAAM;KACb,CAAC;IACF,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,QAAuB;IAItD,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAChC,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;IACvC,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,WAAW,GACf,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAE9F,OAAO;QACL,uBAAuB,EAAE,OAAO,IAAI,OAAO,IAAI,aAAa,IAAI,WAAW;QAC3E,mBAAmB,EAAE,WAAW;KACjC,CAAC;AACJ,CAAC;AAED,oDAAoD;AACpD,MAAM,YAAY,GAA6C;IAC7D,kBAAkB,EAAE,kBAAkB;IACtC,gBAAgB,EAAE,gBAAgB;IAClC,sBAAsB,EAAE,sBAAsB;IAC9C,oBAAoB,EAAE,oBAAoB;IAC1C,sBAAsB,EAAE,sBAAsB;IAC9C,oBAAoB,EAAE,oBAAoB;IAC1C,gBAAgB,EAAE,gBAAgB;IAClC,aAAa,EAAE,aAAa;IAC5B,kBAAkB,EAAE,kBAAkB;CACvC,CAAC;AAEF;;;GAGG;AACH,SAAS,eAAe;IACtB,uDAAuD;IACvD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,IAAI,GAAG,GAAG,OAAO,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;QAC9E,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CAAC,OAAe;IACzC,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO;QACP,MAAM,EAAE;YACN,UAAU,EAAE,OAAO;SACpB;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,QAAgB,EAChB,WAAmB,EACnB,WAAqB;IAErB,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC;SAC7F;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,KAAe;IACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACjE,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM,CAAC;AACtD,CAAC;AAED,yEAAyE;AACzE,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC,8EAA8E;AAC9E,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB;;;;;;;;GAQG;AACH,KAAK,UAAU,kBAAkB,CAC/B,MAAqB,EACrB,QAAgB;IAEhB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsD,CAAC;IAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,qBAAqB,CAAC;IACpD,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC1B,SAAS,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC3E,KAAK,MAAM,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACf,OAAO,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;oBACvF,KAAK,EAAE,EAAE;iBACV,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,iEAAiE;QACjE,MAAM,IAAI,OAAO,CAAO,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,MAAM,GAAG,YAAY,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,OAAO,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,aAAa,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAClD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG;YACd,OAAO,CAAC,QAAQ,IAAI,GAAG,OAAO,CAAC,QAAQ,SAAS,gBAAgB,GAAG,IAAI,KAAK;YAC5E,OAAO,CAAC,SAAS;gBACf,GAAG,OAAO,CAAC,SAAS,aAAa,eAAe,GAAG,IAAI,GAAG,IAAI,WAAW;YAC3E,OAAO,CAAC,SAAS,IAAI,GAAG,OAAO,CAAC,SAAS,aAAa,gBAAgB,WAAW;YACjF,OAAO,CAAC,OAAO,IAAI,GAAG,OAAO,CAAC,OAAO,kBAAkB;YACvD,OAAO,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,uBAAuB;YAC1D,SAAS,IAAI,GAAG,SAAS,cAAc,qBAAqB,GAAG,IAAI,gBAAgB;SACpF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,wBAAwB;YAC5B,KAAK,EAAE,uCAAuC;YAC9C,WAAW,EACT,GAAG,OAAO,oEAAoE;gBAC9E,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,oDAAoD;YAC3E,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CAAC,OAA4B;IACrD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QAC/B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEjB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;QACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;QAEvF,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,OAAO,MAAM,EAAE;YACnB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;YACvB,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW;YACnC,QAAQ;YACR,QAAQ;YACR,QAAQ,EACN,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;gBAC9B,CAAC,CAAC,YAAY,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC5D,CAAC,CAAC,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAuB,EACvB,UAA6F,EAC7F,QAAiB;IAEjB,wDAAwD;IACxD,IAAI,SAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC/C,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QAEnC,0DAA0D;QAC1D,IAAI,gBAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YACrE,gBAAgB,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,sDAAsD;QACxD,CAAC;QAED,MAAM,YAAY,GAA4B,EAAE,QAAQ,EAAE,CAAC;QAC3D,IAAI,gBAAgB;YAAE,YAAY,CAAC,kBAAkB,CAAC,GAAG,gBAAgB,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,YAA8D,CAAC,CAAC;QAC7F,IAAI,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QAEzC,0EAA0E;QAC1E,2EAA2E;QAC3E,6EAA6E;QAC7E,6EAA6E;QAC7E,0EAA0E;QAC1E,0EAA0E;QAC1E,8EAA8E;QAC9E,uEAAuE;QACvE,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,cAAc,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;YAC9D,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,MAAM,CAAC,OAAO,CAAC,IAAuD,CAAC,CAAC;oBACxE,SAAS,EAAE,CAAC;gBACd,CAAC;gBAAC,MAAM,CAAC;oBACP,oCAAoC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO;gBACL,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,GAAG,WAAW,mBAAmB;gBACxC,QAAQ,EAAE,EAAE;aACb,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAe,EAAE,CAAC;QAElC,yEAAyE;QACzE,uEAAuE;QACvE,yEAAyE;QACzE,sEAAsE;QACtE,mEAAmE;QACnE,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,mCAAmC;QACnC,EAAE;QACF,wEAAwE;QACxE,6EAA6E;QAC7E,6EAA6E;QAC7E,2EAA2E;QAC3E,uEAAuE;QACvE,wDAAwD;QACxD,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;YAC5D,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;QAED,kDAAkD;QAClD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;YAC3D,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAG,IAA+B,CAAC;gBAC1C,IAAI,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACzC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CACjC,kBAAkB,CACf,CAAC,CAAC,MAAM,CAAY,IAAI,EAAE,EAC3B,CAAC,CAAC,aAAa,CAAW,EAC1B,CAAC,CAAC,aAAa,CAAC,CACjB,CACF,CAAC;oBACF,UAAU,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,IAAI,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE7C,kDAAkD;QAClD,MAAM,MAAM,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,uBAAuB,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACjE,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC,QAAyB,CAAC;gBAC3C,IAAI,MAAM,CAAC,uBAAuB,EAAE,CAAC;oBACnC,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBAC9C,CAAC;gBACD,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;oBAC/B,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBAC9C,CAAC;gBACD,OAAO,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC;QAED,4EAA4E;QAC5E,uEAAuE;QACvE,2BAA2B;QAC3B,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,MAAM,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAE/F,MAAM,KAAK,GACT,QAAQ,CAAC,MAAM,KAAK,CAAC;YACnB,CAAC,CAAC,GAAG,WAAW,YAAY,SAAS,mBAAmB;YACxD,CAAC,CAAC,GAAG,WAAW,KAAK,QAAQ,CAAC,MAAM,qBAAqB,CAAC;QAE9D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,GAAG,WAAW,gBAAgB;YACrC,QAAQ,EAAE;gBACR;oBACE,EAAE,EAAE,kBAAkB;oBACtB,KAAK,EAAE,iCAAiC;oBACxC,WAAW,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBAC7D,QAAQ,EAAE,MAAM;oBAChB,QAAQ,EAAE,KAAK;iBAChB;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"code-check.d.ts","sourceRoot":"","sources":["../../src/checks/code-check.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,aAAa,CAAC;AAG7D,wBAAsB,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA6G5E"}
1
+ {"version":3,"file":"code-check.d.ts","sourceRoot":"","sources":["../../src/checks/code-check.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,aAAa,CAAC;AAG7D,wBAAsB,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA4H5E"}
@@ -18,6 +18,7 @@ export async function checkCode(skillDirOrFile) {
18
18
  // Dynamic import to handle case where panguard-scan is not available
19
19
  let checkSourceCode = null;
20
20
  let checkHardcodedSecrets = null;
21
+ let checkCompiledArtifacts = null;
21
22
  try {
22
23
  const scan = await import('@panguard-ai/panguard-scan');
23
24
  if (typeof scan.checkSourceCode === 'function') {
@@ -26,6 +27,9 @@ export async function checkCode(skillDirOrFile) {
26
27
  if (typeof scan.checkHardcodedSecrets === 'function') {
27
28
  checkHardcodedSecrets = scan.checkHardcodedSecrets;
28
29
  }
30
+ if (typeof scan.checkCompiledArtifacts === 'function') {
31
+ checkCompiledArtifacts = scan.checkCompiledArtifacts;
32
+ }
29
33
  }
30
34
  catch {
31
35
  return {
@@ -42,11 +46,12 @@ export async function checkCode(skillDirOrFile) {
42
46
  ],
43
47
  };
44
48
  }
45
- const [codeResults, secretResults] = await Promise.all([
49
+ const [codeResults, secretResults, compiledResults] = await Promise.all([
46
50
  checkSourceCode ? checkSourceCode(skillDir) : Promise.resolve([]),
47
51
  checkHardcodedSecrets ? checkHardcodedSecrets(skillDir) : Promise.resolve([]),
52
+ checkCompiledArtifacts ? checkCompiledArtifacts(skillDir) : Promise.resolve([]),
48
53
  ]);
49
- for (const finding of codeResults) {
54
+ for (const finding of [...codeResults, ...compiledResults]) {
50
55
  findings.push({
51
56
  id: `code-${finding.id}`,
52
57
  title: finding.title,
@@ -1 +1 @@
1
- {"version":3,"file":"code-check.js","sourceRoot":"","sources":["../../src/checks/code-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-check.js","sourceRoot":"","sources":["../../src/checks/code-check.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -42,7 +42,7 @@ export async function auditSkill(skillDir, options) {
42
42
  }
43
43
  // ATR pattern detection (the current ATR ruleset including CJK-aware patterns + cloud rules)
44
44
  if (manifest && !options?.skipATR) {
45
- checks.push(await checkWithATR(manifest, options?.cloudRules));
45
+ checks.push(await checkWithATR(manifest, options?.cloudRules, skillDir));
46
46
  }
47
47
  // Code security (SAST + secrets). Skippable for a fast bulk scan — the
48
48
  // per-skill semgrep startup (~3-4s) makes it impractical to run across every
package/dist/index.js.map CHANGED
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panguard-ai/panguard-skill-auditor",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,12 +30,11 @@
30
30
  "LICENSE"
31
31
  ],
32
32
  "dependencies": {
33
- "agent-threat-rules": "^3.5.8",
33
+ "agent-threat-rules": "^4.3.0",
34
34
  "js-yaml": "^4.1.0",
35
- "@panguard-ai/atr": "1.9.0",
36
- "@panguard-ai/core": "1.9.0",
37
- "@panguard-ai/panguard-scan": "1.9.0",
38
- "@panguard-ai/scan-core": "1.9.0"
35
+ "@panguard-ai/core": "1.10.0",
36
+ "@panguard-ai/scan-core": "1.10.0",
37
+ "@panguard-ai/panguard-scan": "1.10.0"
39
38
  },
40
39
  "devDependencies": {
41
40
  "@types/js-yaml": "^4.0.9",