@panguard-ai/panguard 0.3.1 → 0.3.3
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/cli/auth-guard.d.ts +9 -7
- package/dist/cli/auth-guard.d.ts.map +1 -1
- package/dist/cli/auth-guard.js +33 -199
- package/dist/cli/auth-guard.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +146 -26
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/guard.d.ts.map +1 -1
- package/dist/cli/commands/guard.js +264 -7
- package/dist/cli/commands/guard.js.map +1 -1
- package/dist/cli/commands/hacktivity.d.ts +10 -0
- package/dist/cli/commands/hacktivity.d.ts.map +1 -0
- package/dist/cli/commands/hacktivity.js +308 -0
- package/dist/cli/commands/hacktivity.js.map +1 -0
- package/dist/cli/commands/login.d.ts +3 -4
- package/dist/cli/commands/login.d.ts.map +1 -1
- package/dist/cli/commands/login.js +8 -258
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/logout.d.ts +3 -3
- package/dist/cli/commands/logout.d.ts.map +1 -1
- package/dist/cli/commands/logout.js +7 -35
- package/dist/cli/commands/logout.js.map +1 -1
- package/dist/cli/commands/report.d.ts +2 -2
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +30 -40
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/scan.d.ts.map +1 -1
- package/dist/cli/commands/scan.js +16 -19
- package/dist/cli/commands/scan.js.map +1 -1
- package/dist/cli/commands/setup-skill-scan.d.ts +39 -0
- package/dist/cli/commands/setup-skill-scan.d.ts.map +1 -0
- package/dist/cli/commands/setup-skill-scan.js +186 -0
- package/dist/cli/commands/setup-skill-scan.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +11 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +219 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/status.js +43 -0
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/threat.d.ts +3 -0
- package/dist/cli/commands/threat.d.ts.map +1 -1
- package/dist/cli/commands/threat.js +31 -11
- package/dist/cli/commands/threat.js.map +1 -1
- package/dist/cli/commands/trap.d.ts +2 -2
- package/dist/cli/commands/trap.d.ts.map +1 -1
- package/dist/cli/commands/trap.js +32 -29
- package/dist/cli/commands/trap.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts +3 -4
- package/dist/cli/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.js +10 -234
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/whoami.d.ts +2 -2
- package/dist/cli/commands/whoami.d.ts.map +1 -1
- package/dist/cli/commands/whoami.js +9 -60
- package/dist/cli/commands/whoami.js.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/interactive.d.ts +1 -1
- package/dist/cli/interactive.d.ts.map +1 -1
- package/dist/cli/interactive.js +477 -236
- package/dist/cli/interactive.js.map +1 -1
- package/dist/cli/menu.d.ts.map +1 -1
- package/dist/cli/menu.js +2 -5
- package/dist/cli/menu.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/init/wizard-runner.d.ts.map +1 -1
- package/dist/init/wizard-runner.js +136 -6
- package/dist/init/wizard-runner.js.map +1 -1
- package/package.json +25 -13
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `panguard logout` -
|
|
3
|
-
* `panguard logout` -
|
|
2
|
+
* `panguard logout` - Authentication removed
|
|
3
|
+
* `panguard logout` - 驗證功能已移除
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* All features are free and open source. No login required.
|
|
6
6
|
*
|
|
7
7
|
* @module @panguard-ai/panguard/cli/commands/logout
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/logout.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/logout.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,wBAAgB,aAAa,IAAI,OAAO,CASvC"}
|
|
@@ -1,47 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `panguard logout` -
|
|
3
|
-
* `panguard logout` -
|
|
2
|
+
* `panguard logout` - Authentication removed
|
|
3
|
+
* `panguard logout` - 驗證功能已移除
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* All features are free and open source. No login required.
|
|
6
6
|
*
|
|
7
7
|
* @module @panguard-ai/panguard/cli/commands/logout
|
|
8
8
|
*/
|
|
9
9
|
import { Command } from 'commander';
|
|
10
|
-
import { c, symbols } from '@panguard-ai/core';
|
|
11
|
-
import { loadCredentials, deleteCredentials } from '../credentials.js';
|
|
12
10
|
export function logoutCommand() {
|
|
13
11
|
return new Command('logout')
|
|
14
|
-
.description('
|
|
15
|
-
.
|
|
16
|
-
.action(async (opts) => {
|
|
17
|
-
const lang = opts.lang === 'en' ? 'en' : 'zh-TW';
|
|
18
|
-
const creds = loadCredentials();
|
|
19
|
-
if (!creds) {
|
|
20
|
-
console.log('');
|
|
21
|
-
console.log(` ${symbols.info} ${lang === 'zh-TW' ? '\u76EE\u524D\u672A\u767B\u5165\u3002' : 'Not currently logged in.'}`);
|
|
22
|
-
console.log('');
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
// Best-effort server-side logout
|
|
26
|
-
try {
|
|
27
|
-
await fetch(`${creds.apiUrl}/api/auth/logout`, {
|
|
28
|
-
method: 'POST',
|
|
29
|
-
headers: {
|
|
30
|
-
Authorization: `Bearer ${creds.token}`,
|
|
31
|
-
'Content-Type': 'application/json',
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
// Ignore response - best-effort
|
|
35
|
-
}
|
|
36
|
-
catch {
|
|
37
|
-
// Server may be unreachable - that's fine
|
|
38
|
-
}
|
|
39
|
-
// Delete local credentials
|
|
40
|
-
deleteCredentials();
|
|
12
|
+
.description('Authentication removed - all features are free / 驗證已移除 - 所有功能免費')
|
|
13
|
+
.action(async () => {
|
|
41
14
|
console.log('');
|
|
42
|
-
console.log(
|
|
43
|
-
|
|
44
|
-
: `Logged out ${c.sage(creds.email)}. Local credentials deleted.`}`);
|
|
15
|
+
console.log(' Authentication removed. All features are free and open source.');
|
|
16
|
+
console.log(' 驗證功能已移除。所有功能皆免費開源。');
|
|
45
17
|
console.log('');
|
|
46
18
|
});
|
|
47
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/cli/commands/logout.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/cli/commands/logout.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* panguard report - Compliance report generation
|
|
3
|
-
* panguard report -
|
|
2
|
+
* panguard report - Compliance report generation (Coming Soon)
|
|
3
|
+
* panguard report - 合規報告產生(即將推出)
|
|
4
4
|
*/
|
|
5
5
|
import { Command } from 'commander';
|
|
6
6
|
export declare function reportCommand(): Command;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,aAAa,IAAI,OAAO,CA4CvC"}
|
|
@@ -1,68 +1,58 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* panguard report - Compliance report generation
|
|
3
|
-
* panguard report -
|
|
2
|
+
* panguard report - Compliance report generation (Coming Soon)
|
|
3
|
+
* panguard report - 合規報告產生(即將推出)
|
|
4
4
|
*/
|
|
5
5
|
import { Command } from 'commander';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
const COMING_SOON_MSG = `
|
|
7
|
+
Compliance Report — Coming Soon
|
|
8
|
+
|
|
9
|
+
ISO 27001, SOC 2, and TW Cyber Security Act compliance
|
|
10
|
+
reports are under active development.
|
|
11
|
+
|
|
12
|
+
Follow progress: https://github.com/panguard-ai/panguard-ai
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
合規報告 — 即將推出
|
|
16
|
+
|
|
17
|
+
ISO 27001、SOC 2、資安管理法合規報告功能開發中。
|
|
18
|
+
|
|
19
|
+
追蹤進度: https://github.com/panguard-ai/panguard-ai
|
|
20
|
+
`;
|
|
8
21
|
export function reportCommand() {
|
|
9
|
-
const cmd = new Command('report').description('Compliance report generation /
|
|
22
|
+
const cmd = new Command('report').description('[Coming Soon] Compliance report generation / [即將推出] 合規報告產生');
|
|
10
23
|
cmd
|
|
11
24
|
.command('generate')
|
|
12
|
-
.description('Generate a compliance report /
|
|
25
|
+
.description('Generate a compliance report / 產生合規報告')
|
|
13
26
|
.option('--framework <name>', 'Compliance framework (iso27001, soc2, tw_cyber_security_act)')
|
|
14
27
|
.option('--language <lang>', 'Report language (en, zh-TW)')
|
|
15
28
|
.option('--format <fmt>', 'Output format (json, pdf)')
|
|
16
|
-
.option('--output-dir <path>', 'Output directory /
|
|
17
|
-
.option('--org <name>', 'Organization name /
|
|
29
|
+
.option('--output-dir <path>', 'Output directory / 輸出目錄')
|
|
30
|
+
.option('--org <name>', 'Organization name / 組織名稱')
|
|
18
31
|
.option('--input <file>', 'Findings input file (JSON)')
|
|
19
|
-
.action(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
args.push('--framework', opts['framework']);
|
|
23
|
-
if (opts['language'])
|
|
24
|
-
args.push('--language', opts['language']);
|
|
25
|
-
if (opts['format'])
|
|
26
|
-
args.push('--format', opts['format']);
|
|
27
|
-
if (opts['outputDir'])
|
|
28
|
-
args.push('--output-dir', opts['outputDir']);
|
|
29
|
-
if (opts['org'])
|
|
30
|
-
args.push('--org', opts['org']);
|
|
31
|
-
if (opts['input'])
|
|
32
|
-
args.push('--input', opts['input']);
|
|
33
|
-
await executeCli(args);
|
|
34
|
-
}));
|
|
32
|
+
.action(async () => {
|
|
33
|
+
console.log(COMING_SOON_MSG);
|
|
34
|
+
});
|
|
35
35
|
cmd
|
|
36
36
|
.command('summary')
|
|
37
37
|
.description('Show brief compliance summary / 顯示簡短合規摘要')
|
|
38
38
|
.option('--framework <name>', 'Compliance framework')
|
|
39
39
|
.option('--language <lang>', 'Report language')
|
|
40
40
|
.option('--input <file>', 'Findings input file (JSON)')
|
|
41
|
-
.action(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
args.push('--framework', opts['framework']);
|
|
45
|
-
if (opts['language'])
|
|
46
|
-
args.push('--language', opts['language']);
|
|
47
|
-
if (opts['input'])
|
|
48
|
-
args.push('--input', opts['input']);
|
|
49
|
-
await executeCli(args);
|
|
50
|
-
}));
|
|
41
|
+
.action(async () => {
|
|
42
|
+
console.log(COMING_SOON_MSG);
|
|
43
|
+
});
|
|
51
44
|
cmd
|
|
52
45
|
.command('list-frameworks')
|
|
53
46
|
.description('List supported compliance frameworks / 列出支援的合規框架')
|
|
54
47
|
.action(async () => {
|
|
55
|
-
|
|
48
|
+
console.log(COMING_SOON_MSG);
|
|
56
49
|
});
|
|
57
50
|
cmd
|
|
58
51
|
.command('validate')
|
|
59
52
|
.description('Validate findings input file / 驗證發現輸入檔案')
|
|
60
53
|
.option('--input <file>', 'Input file path')
|
|
61
|
-
.action(async (
|
|
62
|
-
|
|
63
|
-
if (opts['input'])
|
|
64
|
-
args.push('--input', opts['input']);
|
|
65
|
-
await executeCli(args);
|
|
54
|
+
.action(async () => {
|
|
55
|
+
console.log(COMING_SOON_MSG);
|
|
66
56
|
});
|
|
67
57
|
return cmd;
|
|
68
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;CAcvB,CAAC;AAEF,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAC3C,4DAA4D,CAC7D,CAAC;IAEF,GAAG;SACA,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,oBAAoB,EAAE,8DAA8D,CAAC;SAC5F,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,CAAC;SAC1D,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;SACrD,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;SACxD,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC;SAClD,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;SACtD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;SACpD,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;SAC9C,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;SACtD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,kDAAkD,CAAC;SAC/D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;SAC3C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,WAAW,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,WAAW,IAAI,OAAO,CAyZrC"}
|
|
@@ -18,8 +18,8 @@ export function scanCommand() {
|
|
|
18
18
|
.option('--save <path>', 'Save JSON results to file / 儲存 JSON 結果到檔案')
|
|
19
19
|
.option('--target <host>', 'Remote target (IP or domain) / 遠端目標')
|
|
20
20
|
.action(async (options) => {
|
|
21
|
-
// Auth:
|
|
22
|
-
const tier =
|
|
21
|
+
// Auth: all scans are free (community tier)
|
|
22
|
+
const tier = 'community';
|
|
23
23
|
const check = requireAuth(tier);
|
|
24
24
|
if (!check.authenticated || !check.authorized) {
|
|
25
25
|
const { withAuth } = await import('../auth-guard.js');
|
|
@@ -289,25 +289,22 @@ export function scanCommand() {
|
|
|
289
289
|
title: f.title,
|
|
290
290
|
}));
|
|
291
291
|
console.log(table(columns, rows));
|
|
292
|
-
// Show manual fix commands
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
console.log(c.dim(
|
|
302
|
-
for (const cmd of f.manualFix) {
|
|
303
|
-
console.log(c.dim(` $ ${cmd}`));
|
|
304
|
-
}
|
|
305
|
-
console.log('');
|
|
292
|
+
// Show manual fix commands unconditionally
|
|
293
|
+
let fixableCount = 0;
|
|
294
|
+
console.log('');
|
|
295
|
+
for (const f of result.findings) {
|
|
296
|
+
if (f.manualFix && f.manualFix.length > 0) {
|
|
297
|
+
fixableCount++;
|
|
298
|
+
console.log(` ${colorSeverity(f.severity).padEnd(10)} ${f.title}`);
|
|
299
|
+
console.log(c.dim(' Manual fix:'));
|
|
300
|
+
for (const cmd of f.manualFix) {
|
|
301
|
+
console.log(c.dim(` $ ${cmd}`));
|
|
306
302
|
}
|
|
303
|
+
console.log('');
|
|
307
304
|
}
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
}
|
|
305
|
+
}
|
|
306
|
+
if (fixableCount > 0) {
|
|
307
|
+
console.log(box(`Auto-fix available for ${fixableCount} issue(s):\n $ panguard scan --fix`, { borderColor: c.sage, title: 'Panguard AI' }));
|
|
311
308
|
}
|
|
312
309
|
console.log('');
|
|
313
310
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Setup Skill Scanner - Discover, audit, and whitelist installed AI skills
|
|
3
|
+
* 安裝技能掃描器 - 發現、審核並將已安裝的 AI 技能加入白名單
|
|
4
|
+
*
|
|
5
|
+
* Used by `panguard setup` to scan all installed MCP servers across
|
|
6
|
+
* detected platforms, audit each for security risks, and interactively
|
|
7
|
+
* manage flagged skills.
|
|
8
|
+
*
|
|
9
|
+
* @module @panguard-ai/panguard/cli/commands/setup-skill-scan
|
|
10
|
+
*/
|
|
11
|
+
import type { MCPServerEntry } from '@panguard-ai/panguard-mcp/config';
|
|
12
|
+
import type { AuditReport } from '@panguard-ai/panguard-skill-auditor';
|
|
13
|
+
export interface SkillScanResult {
|
|
14
|
+
readonly entry: MCPServerEntry;
|
|
15
|
+
readonly audit: AuditReport | null;
|
|
16
|
+
readonly status: 'safe' | 'caution' | 'flagged' | 'unknown';
|
|
17
|
+
}
|
|
18
|
+
export interface SkillScanOptions {
|
|
19
|
+
readonly skipAI?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Audit all discovered skills and classify by risk level.
|
|
23
|
+
*/
|
|
24
|
+
export declare function scanInstalledSkills(skills: readonly MCPServerEntry[], options?: SkillScanOptions): Promise<readonly SkillScanResult[]>;
|
|
25
|
+
/**
|
|
26
|
+
* Render skill scan results as a formatted table.
|
|
27
|
+
*/
|
|
28
|
+
export declare function renderSkillScanResults(results: readonly SkillScanResult[]): void;
|
|
29
|
+
/**
|
|
30
|
+
* Interactively review flagged skills with the user.
|
|
31
|
+
* Returns names of skills the user chose to whitelist.
|
|
32
|
+
*/
|
|
33
|
+
export declare function reviewFlaggedSkills(flagged: readonly SkillScanResult[]): Promise<readonly string[]>;
|
|
34
|
+
/**
|
|
35
|
+
* Auto-whitelist safe skills (used in --yes mode).
|
|
36
|
+
* Returns names of whitelisted skills.
|
|
37
|
+
*/
|
|
38
|
+
export declare function collectSafeSkillNames(results: readonly SkillScanResult[]): readonly string[];
|
|
39
|
+
//# sourceMappingURL=setup-skill-scan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-skill-scan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/setup-skill-scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAMvE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC7D;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAmCD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAkCrC;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI,CA0ChF;AAMD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAoD5B;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,MAAM,EAAE,CAI5F"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Setup Skill Scanner - Discover, audit, and whitelist installed AI skills
|
|
3
|
+
* 安裝技能掃描器 - 發現、審核並將已安裝的 AI 技能加入白名單
|
|
4
|
+
*
|
|
5
|
+
* Used by `panguard setup` to scan all installed MCP servers across
|
|
6
|
+
* detected platforms, audit each for security risks, and interactively
|
|
7
|
+
* manage flagged skills.
|
|
8
|
+
*
|
|
9
|
+
* @module @panguard-ai/panguard/cli/commands/setup-skill-scan
|
|
10
|
+
*/
|
|
11
|
+
import { c, symbols, table, ProgressBar, promptSelect, divider, } from '@panguard-ai/core';
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Classification
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
function classifyRisk(audit) {
|
|
16
|
+
if (!audit)
|
|
17
|
+
return 'unknown';
|
|
18
|
+
if (audit.riskLevel === 'CRITICAL' || audit.riskLevel === 'HIGH')
|
|
19
|
+
return 'flagged';
|
|
20
|
+
if (audit.riskLevel === 'MEDIUM')
|
|
21
|
+
return 'caution';
|
|
22
|
+
return 'safe';
|
|
23
|
+
}
|
|
24
|
+
function statusIcon(status) {
|
|
25
|
+
switch (status) {
|
|
26
|
+
case 'safe': return c.green(symbols.pass);
|
|
27
|
+
case 'caution': return c.yellow(symbols.warn);
|
|
28
|
+
case 'flagged': return c.red(symbols.fail);
|
|
29
|
+
default: return c.dim(symbols.dot);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function statusLabel(status) {
|
|
33
|
+
switch (status) {
|
|
34
|
+
case 'safe': return c.green('SAFE');
|
|
35
|
+
case 'caution': return c.yellow('CAUTION');
|
|
36
|
+
case 'flagged': return c.red('FLAGGED');
|
|
37
|
+
default: return c.dim('UNKNOWN');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
// Scanner
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
/**
|
|
44
|
+
* Audit all discovered skills and classify by risk level.
|
|
45
|
+
*/
|
|
46
|
+
export async function scanInstalledSkills(skills, options) {
|
|
47
|
+
if (skills.length === 0)
|
|
48
|
+
return [];
|
|
49
|
+
// Dynamic import to avoid circular deps
|
|
50
|
+
const { auditSkill } = await import('@panguard-ai/panguard-skill-auditor');
|
|
51
|
+
const { resolveSkillDir } = await import('@panguard-ai/panguard-mcp/config');
|
|
52
|
+
const bar = new ProgressBar({ total: skills.length, width: 30 });
|
|
53
|
+
const results = [];
|
|
54
|
+
for (let i = 0; i < skills.length; i++) {
|
|
55
|
+
const entry = skills[i];
|
|
56
|
+
bar.update(i + 1);
|
|
57
|
+
const skillDir = resolveSkillDir(entry);
|
|
58
|
+
let audit = null;
|
|
59
|
+
if (skillDir) {
|
|
60
|
+
try {
|
|
61
|
+
audit = await auditSkill(skillDir, { skipAI: options?.skipAI ?? true });
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// Audit failed — treat as unknown
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
results.push({
|
|
68
|
+
entry,
|
|
69
|
+
audit,
|
|
70
|
+
status: classifyRisk(audit),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
bar.complete();
|
|
74
|
+
return results;
|
|
75
|
+
}
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
// Rendering
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
/**
|
|
80
|
+
* Render skill scan results as a formatted table.
|
|
81
|
+
*/
|
|
82
|
+
export function renderSkillScanResults(results) {
|
|
83
|
+
if (results.length === 0) {
|
|
84
|
+
console.log(c.dim(` ${symbols.info} No MCP skills found across detected platforms.`));
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const safe = results.filter((r) => r.status === 'safe').length;
|
|
88
|
+
const caution = results.filter((r) => r.status === 'caution').length;
|
|
89
|
+
const flagged = results.filter((r) => r.status === 'flagged').length;
|
|
90
|
+
const unknown = results.filter((r) => r.status === 'unknown').length;
|
|
91
|
+
console.log();
|
|
92
|
+
console.log(c.bold(` Skill Scan Results (${results.length} skills found):`));
|
|
93
|
+
console.log();
|
|
94
|
+
// Summary line
|
|
95
|
+
const parts = [];
|
|
96
|
+
if (safe > 0)
|
|
97
|
+
parts.push(c.green(`${safe} safe`));
|
|
98
|
+
if (caution > 0)
|
|
99
|
+
parts.push(c.yellow(`${caution} caution`));
|
|
100
|
+
if (flagged > 0)
|
|
101
|
+
parts.push(c.red(`${flagged} flagged`));
|
|
102
|
+
if (unknown > 0)
|
|
103
|
+
parts.push(c.dim(`${unknown} unknown`));
|
|
104
|
+
console.log(` ${parts.join(' | ')}`);
|
|
105
|
+
console.log();
|
|
106
|
+
// Table
|
|
107
|
+
const columns = [
|
|
108
|
+
{ header: '', key: 'icon', width: 5 },
|
|
109
|
+
{ header: 'Skill', key: 'name', width: 30 },
|
|
110
|
+
{ header: 'Platform', key: 'platform', width: 14 },
|
|
111
|
+
{ header: 'Risk', key: 'risk', width: 10 },
|
|
112
|
+
{ header: 'Status', key: 'status', width: 10 },
|
|
113
|
+
];
|
|
114
|
+
const rows = results.map((r) => ({
|
|
115
|
+
icon: statusIcon(r.status),
|
|
116
|
+
name: r.entry.name,
|
|
117
|
+
platform: r.entry.platformId,
|
|
118
|
+
risk: r.audit ? `${r.audit.riskScore}/100` : '-',
|
|
119
|
+
status: statusLabel(r.status),
|
|
120
|
+
}));
|
|
121
|
+
table(columns, rows);
|
|
122
|
+
}
|
|
123
|
+
// ---------------------------------------------------------------------------
|
|
124
|
+
// Interactive Review
|
|
125
|
+
// ---------------------------------------------------------------------------
|
|
126
|
+
/**
|
|
127
|
+
* Interactively review flagged skills with the user.
|
|
128
|
+
* Returns names of skills the user chose to whitelist.
|
|
129
|
+
*/
|
|
130
|
+
export async function reviewFlaggedSkills(flagged) {
|
|
131
|
+
if (flagged.length === 0)
|
|
132
|
+
return [];
|
|
133
|
+
console.log();
|
|
134
|
+
divider('Flagged Skills Review');
|
|
135
|
+
console.log();
|
|
136
|
+
const whitelisted = [];
|
|
137
|
+
for (const result of flagged) {
|
|
138
|
+
const name = result.entry.name;
|
|
139
|
+
const riskScore = result.audit?.riskScore ?? 0;
|
|
140
|
+
const findings = result.audit?.findings ?? [];
|
|
141
|
+
console.log(c.red(` ${symbols.fail} ${c.bold(name)}`));
|
|
142
|
+
console.log(c.dim(` Platform: ${result.entry.platformId}`));
|
|
143
|
+
console.log(c.dim(` Risk Score: ${riskScore}/100`));
|
|
144
|
+
if (findings.length > 0) {
|
|
145
|
+
console.log(c.dim(` Findings:`));
|
|
146
|
+
for (const f of findings.slice(0, 5)) {
|
|
147
|
+
console.log(c.dim(` - [${f.severity}] ${f.title}`));
|
|
148
|
+
}
|
|
149
|
+
if (findings.length > 5) {
|
|
150
|
+
console.log(c.dim(` ... and ${findings.length - 5} more`));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
console.log();
|
|
154
|
+
const choice = await promptSelect({
|
|
155
|
+
title: {
|
|
156
|
+
en: `What to do with ${name}?`,
|
|
157
|
+
'zh-TW': `${name} 要如何處理?`,
|
|
158
|
+
},
|
|
159
|
+
options: [
|
|
160
|
+
{ label: { en: 'Keep and whitelist (I trust this skill)', 'zh-TW': '保留並加入白名單(我信任此技能)' }, value: 'whitelist' },
|
|
161
|
+
{ label: { en: 'Keep but monitor (do not whitelist)', 'zh-TW': '保留但監控(不加入白名單)' }, value: 'monitor' },
|
|
162
|
+
{ label: { en: 'Skip for now', 'zh-TW': '暫時跳過' }, value: 'skip' },
|
|
163
|
+
],
|
|
164
|
+
lang: 'en',
|
|
165
|
+
});
|
|
166
|
+
if (choice === 'whitelist') {
|
|
167
|
+
whitelisted.push(name);
|
|
168
|
+
console.log(c.green(` ${symbols.pass} ${name} will be whitelisted`));
|
|
169
|
+
}
|
|
170
|
+
else if (choice === 'monitor') {
|
|
171
|
+
console.log(c.yellow(` ${symbols.warn} ${name} will be monitored`));
|
|
172
|
+
}
|
|
173
|
+
console.log();
|
|
174
|
+
}
|
|
175
|
+
return whitelisted;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Auto-whitelist safe skills (used in --yes mode).
|
|
179
|
+
* Returns names of whitelisted skills.
|
|
180
|
+
*/
|
|
181
|
+
export function collectSafeSkillNames(results) {
|
|
182
|
+
return results
|
|
183
|
+
.filter((r) => r.status === 'safe' || r.status === 'caution')
|
|
184
|
+
.map((r) => r.entry.name);
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=setup-skill-scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-skill-scan.js","sourceRoot":"","sources":["../../../src/cli/commands/setup-skill-scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,CAAC,EACD,OAAO,EACP,KAAK,EACL,WAAW,EACX,YAAY,EACZ,OAAO,GACR,MAAM,mBAAmB,CAAC;AAmB3B,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,SAAS,YAAY,CAAC,KAAyB;IAC7C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IACnF,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,KAAK,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9C,KAAK,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,KAAK,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAiC,EACjC,OAA0B;IAE1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,wCAAwC;IACxC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAC;IAC3E,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;IAE7E,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACzB,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAElB,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,KAAK,GAAuB,IAAI,CAAC;QAErC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;YAC1E,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,KAAK;YACL,KAAK;YACL,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,QAAQ,EAAE,CAAC;IACf,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAmC;IACxE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,iDAAiD,CAAC,CAAC,CAAC;QACvF,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IACrE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IACrE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAErE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,OAAO,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,eAAe;IACf,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC;IAClD,IAAI,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,UAAU,CAAC,CAAC,CAAC;IAC5D,IAAI,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,UAAU,CAAC,CAAC,CAAC;IACzD,IAAI,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,UAAU,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,QAAQ;IACR,MAAM,OAAO,GAAkB;QAC7B,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE;QACrC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3C,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QAClD,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAC1C,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;KAC/C,CAAC;IAEF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;QAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU;QAC5B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,GAAG;QAChD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;KAC9B,CAAC,CAAC,CAAC;IAEJ,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAmC;IAEnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;QAE9C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,SAAS,MAAM,CAAC,CAAC,CAAC;QAEvD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YACpC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,KAAK,EAAE;gBACL,EAAE,EAAE,mBAAmB,IAAI,GAAG;gBAC9B,OAAO,EAAE,GAAG,IAAI,SAAS;aAC1B;YACD,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,yCAAyC,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;gBAC7G,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,qCAAqC,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;gBACpG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;aAClE;YACD,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QAEH,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI,sBAAsB,CAAC,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI,oBAAoB,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAmC;IACvE,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;SAC5D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* panguard setup - One-command platform setup with skill scanning
|
|
3
|
+
* panguard setup - 一行指令平台安裝並掃描技能
|
|
4
|
+
*
|
|
5
|
+
* Detects installed AI agent platforms, injects MCP config,
|
|
6
|
+
* scans and audits all installed skills, and optionally starts Guard.
|
|
7
|
+
* 偵測已安裝的 AI Agent 平台,注入 MCP 設定,掃描審核所有已安裝技能,可選啟動 Guard。
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
export declare function setupCommand(): Command;
|
|
11
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,wBAAgB,YAAY,IAAI,OAAO,CA8NtC"}
|