@panguard-ai/panguard 0.3.2 → 0.3.4
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 +15 -50
- package/dist/cli/auth-guard.d.ts.map +1 -1
- package/dist/cli/auth-guard.js +22 -126
- package/dist/cli/auth-guard.js.map +1 -1
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/audit.js +18 -11
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +15 -12
- 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 +11 -8
- package/dist/cli/commands/guard.js.map +1 -1
- package/dist/cli/commands/hacktivity.d.ts.map +1 -1
- package/dist/cli/commands/hacktivity.js +1 -3
- package/dist/cli/commands/hacktivity.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/manager.d.ts.map +1 -1
- package/dist/cli/commands/manager.js.map +1 -1
- package/dist/cli/commands/scan.js +4 -1
- package/dist/cli/commands/scan.js.map +1 -1
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +693 -33
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/setup-skill-scan.d.ts.map +1 -1
- package/dist/cli/commands/setup-skill-scan.js +31 -11
- package/dist/cli/commands/setup-skill-scan.js.map +1 -1
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +137 -39
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/threat.d.ts.map +1 -1
- package/dist/cli/commands/threat.js +213 -0
- package/dist/cli/commands/threat.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts +2 -4
- package/dist/cli/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.js +14 -22
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/whoami.d.ts.map +1 -1
- package/dist/cli/commands/whoami.js +5 -1
- package/dist/cli/commands/whoami.js.map +1 -1
- package/dist/cli/index.js +22 -21
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/interactive.d.ts.map +1 -1
- package/dist/cli/interactive.js +95 -40
- package/dist/cli/interactive.js.map +1 -1
- package/dist/init/steps.d.ts.map +1 -1
- package/dist/init/steps.js.map +1 -1
- package/dist/init/wizard-runner.d.ts.map +1 -1
- package/dist/init/wizard-runner.js +27 -13
- package/dist/init/wizard-runner.js.map +1 -1
- package/package.json +13 -7
package/dist/cli/auth-guard.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Auth guard stubs — all features are free and open source.
|
|
3
|
+
* Kept for backward compatibility with modules that import these functions.
|
|
4
4
|
*
|
|
5
5
|
* @module @panguard-ai/panguard/cli/auth-guard
|
|
6
6
|
*/
|
|
@@ -12,71 +12,36 @@ export interface AuthCheckResult {
|
|
|
12
12
|
authorized: boolean;
|
|
13
13
|
credentials: StoredCredentials | null;
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
*
|
|
23
|
-
* Usage:
|
|
24
|
-
* .action(withAuth('pro', async (opts, creds) => { ... }))
|
|
25
|
-
*/
|
|
26
|
-
export declare function withAuth<T>(requiredTier: RequiredTier, handler: (options: T, credentials: StoredCredentials) => Promise<void>): (options: T) => Promise<void>;
|
|
27
|
-
/**
|
|
28
|
-
* Tier badge string for display in menus.
|
|
29
|
-
*/
|
|
30
|
-
export declare function tierBadge(tier: RequiredTier): string;
|
|
31
|
-
/**
|
|
32
|
-
* Refresh tier from server in background.
|
|
33
|
-
* No-op: all features are free and open source. No auth needed.
|
|
34
|
-
*/
|
|
35
|
-
export declare function refreshTierInBackground(): void;
|
|
36
|
-
/**
|
|
37
|
-
* Get current license/tier from stored credentials or license file.
|
|
38
|
-
* Checks credentials.json first, then falls back to ~/.panguard/license.
|
|
39
|
-
*/
|
|
15
|
+
/** All features are free — always returns authorized. */
|
|
16
|
+
export declare function requireAuth(_requiredTier?: RequiredTier): AuthCheckResult;
|
|
17
|
+
/** All features are free — runs handler directly. */
|
|
18
|
+
export declare function withAuth<T>(_requiredTier: RequiredTier, handler: (options: T, credentials: StoredCredentials) => Promise<void>): (options: T) => Promise<void>;
|
|
19
|
+
/** No-op — all features are free. */
|
|
20
|
+
export declare function tierBadge(_tier: RequiredTier): string;
|
|
21
|
+
/** All features are free. */
|
|
40
22
|
export declare function getLicense(): {
|
|
41
23
|
tier: Tier;
|
|
42
24
|
email?: string;
|
|
43
25
|
};
|
|
44
|
-
/**
|
|
45
|
-
|
|
46
|
-
*/
|
|
47
|
-
export declare function checkAccess(requiredTier: Tier): boolean;
|
|
48
|
-
/**
|
|
49
|
-
* Check if current user has access to a feature by name.
|
|
50
|
-
* Uses FEATURE_TIER mapping to resolve the required tier.
|
|
51
|
-
*/
|
|
26
|
+
/** All features are free — always returns true. */
|
|
27
|
+
export declare function checkAccess(_requiredTier: Tier): boolean;
|
|
28
|
+
/** All features are free — always returns true. */
|
|
52
29
|
export declare function checkFeatureAccess(_feature: string): boolean;
|
|
53
|
-
/**
|
|
54
|
-
* Display a branded upgrade prompt for a locked feature.
|
|
55
|
-
* Accepts feature KEY (e.g. 'report', not 'Compliance Report').
|
|
56
|
-
*/
|
|
30
|
+
/** No-op stubs */
|
|
57
31
|
export declare function showUpgradePrompt(_feature: string, _lang?: string): void;
|
|
58
|
-
/**
|
|
59
|
-
* Show a contextual upgrade hint for scan auto-fix.
|
|
60
|
-
* Used after scan results when fixable issues are found.
|
|
61
|
-
*/
|
|
62
32
|
export declare function showScanUpgradeHint(_fixableCount: number, _lang?: string): void;
|
|
63
|
-
/**
|
|
64
|
-
* Show a contextual upgrade hint for Guard AI analysis.
|
|
65
|
-
* Used when a suspicious event needs AI analysis.
|
|
66
|
-
*/
|
|
67
33
|
export declare function showGuardAIHint(_threatType: string, _confidence: number, _lang?: string): void;
|
|
68
|
-
|
|
34
|
+
export declare function refreshTierInBackground(): void;
|
|
35
|
+
export declare const FEATURE_TIER: Readonly<Record<string, Tier>>;
|
|
69
36
|
export declare const PRICING_TIERS: Record<string, {
|
|
70
37
|
price: number;
|
|
71
38
|
unit: string;
|
|
72
39
|
machines: string;
|
|
73
40
|
}>;
|
|
74
|
-
/** @deprecated All features are free. Kept for backward compatibility. */
|
|
75
41
|
export declare const COMPLIANCE_PRICING: Record<string, {
|
|
76
42
|
price: number;
|
|
77
43
|
unit: string;
|
|
78
44
|
name: Record<string, string>;
|
|
79
45
|
}>;
|
|
80
|
-
/** All features are free — no discount logic needed */
|
|
81
46
|
export declare const BUSINESS_REPORT_DISCOUNT = 0;
|
|
82
47
|
//# sourceMappingURL=auth-guard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-guard.d.ts","sourceRoot":"","sources":["../../src/cli/auth-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"auth-guard.d.ts","sourceRoot":"","sources":["../../src/cli/auth-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC;AAEhC,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACvC;AAED,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,aAAa,GAAE,YAA0B,GAAG,eAAe,CAEtF;AAED,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,CAAC,EACxB,aAAa,EAAE,YAAY,EAC3B,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,GACrE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAc/B;AAED,qCAAqC;AACrC,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAErD;AAED,6BAA6B;AAC7B,wBAAgB,UAAU,IAAI;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAE3D;AAED,mDAAmD;AACnD,wBAAgB,WAAW,CAAC,aAAa,EAAE,IAAI,GAAG,OAAO,CAExD;AAED,mDAAmD;AACnD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,kBAAkB;AAClB,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAG;AAC5E,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAG;AACnF,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAG;AAClG,wBAAgB,uBAAuB,IAAI,IAAI,CAAG;AAElD,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAM,CAAC;AAC/D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAE3F,CAAC;AACF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CACrC,MAAM,EACN;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CACzD,CAAC;AACP,eAAO,MAAM,wBAAwB,IAAI,CAAC"}
|
package/dist/cli/auth-guard.js
CHANGED
|
@@ -1,44 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Auth guard stubs — all features are free and open source.
|
|
3
|
+
* Kept for backward compatibility with modules that import these functions.
|
|
4
4
|
*
|
|
5
5
|
* @module @panguard-ai/panguard/cli/auth-guard
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
import { loadCredentials, isTokenExpired, } from './credentials.js';
|
|
12
|
-
/* ── Feature → Tier mapping (re-exported from core) ── */
|
|
13
|
-
export const FEATURE_TIER = _CORE_FEATURE_TIER;
|
|
14
|
-
/**
|
|
15
|
-
* Check if the current CLI user is authenticated and has the required tier.
|
|
16
|
-
*/
|
|
17
|
-
export function requireAuth(requiredTier = 'community') {
|
|
18
|
-
// Community tier requires no authentication — allow anonymous usage
|
|
19
|
-
if (requiredTier === 'community') {
|
|
20
|
-
return { authenticated: true, authorized: true, credentials: null };
|
|
21
|
-
}
|
|
22
|
-
const creds = loadCredentials();
|
|
23
|
-
if (!creds || isTokenExpired(creds)) {
|
|
24
|
-
return { authenticated: false, authorized: false, credentials: null };
|
|
25
|
-
}
|
|
26
|
-
return {
|
|
27
|
-
authenticated: true,
|
|
28
|
-
authorized: isTierAtLeast(creds.tier, requiredTier),
|
|
29
|
-
credentials: creds,
|
|
30
|
-
};
|
|
7
|
+
import { loadCredentials } from './credentials.js';
|
|
8
|
+
/** All features are free — always returns authorized. */
|
|
9
|
+
export function requireAuth(_requiredTier = 'community') {
|
|
10
|
+
return { authenticated: true, authorized: true, credentials: null };
|
|
31
11
|
}
|
|
32
|
-
/**
|
|
33
|
-
|
|
34
|
-
*
|
|
35
|
-
* Usage:
|
|
36
|
-
* .action(withAuth('pro', async (opts, creds) => { ... }))
|
|
37
|
-
*/
|
|
38
|
-
export function withAuth(requiredTier, handler) {
|
|
12
|
+
/** All features are free — runs handler directly. */
|
|
13
|
+
export function withAuth(_requiredTier, handler) {
|
|
39
14
|
return async (options) => {
|
|
40
|
-
// All features are free — skip tier checks entirely.
|
|
41
|
-
// Still load credentials if available for handler context.
|
|
42
15
|
const creds = loadCredentials();
|
|
43
16
|
const fallback = {
|
|
44
17
|
token: '',
|
|
@@ -52,108 +25,31 @@ export function withAuth(requiredTier, handler) {
|
|
|
52
25
|
await handler(options, creds ?? fallback);
|
|
53
26
|
};
|
|
54
27
|
}
|
|
55
|
-
/**
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
export function tierBadge(tier) {
|
|
59
|
-
if (tier === 'community')
|
|
60
|
-
return '';
|
|
61
|
-
const names = {
|
|
62
|
-
solo: '[SOLO]',
|
|
63
|
-
pro: '[PRO]',
|
|
64
|
-
business: '[BIZ]',
|
|
65
|
-
enterprise: '[ENT]',
|
|
66
|
-
};
|
|
67
|
-
return c.dim(names[tier] ?? '');
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Refresh tier from server in background.
|
|
71
|
-
* No-op: all features are free and open source. No auth needed.
|
|
72
|
-
*/
|
|
73
|
-
export function refreshTierInBackground() {
|
|
74
|
-
// No-op: all features are free and open source
|
|
28
|
+
/** No-op — all features are free. */
|
|
29
|
+
export function tierBadge(_tier) {
|
|
30
|
+
return '';
|
|
75
31
|
}
|
|
76
|
-
/**
|
|
77
|
-
* Get current license/tier from stored credentials or license file.
|
|
78
|
-
* Checks credentials.json first, then falls back to ~/.panguard/license.
|
|
79
|
-
*/
|
|
32
|
+
/** All features are free. */
|
|
80
33
|
export function getLicense() {
|
|
81
|
-
// 1. Try credentials.json (logged-in users)
|
|
82
|
-
const creds = loadCredentials();
|
|
83
|
-
if (creds && !isTokenExpired(creds)) {
|
|
84
|
-
return { tier: creds.tier, email: creds.email };
|
|
85
|
-
}
|
|
86
|
-
// 2. Fallback: ~/.panguard/license file (offline license keys)
|
|
87
|
-
const licensePath = join(homedir(), '.panguard', 'license');
|
|
88
|
-
if (existsSync(licensePath)) {
|
|
89
|
-
try {
|
|
90
|
-
const content = readFileSync(licensePath, 'utf-8').trim();
|
|
91
|
-
const data = JSON.parse(content);
|
|
92
|
-
if (data.tier && TIER_LEVEL[data.tier] !== undefined) {
|
|
93
|
-
return { tier: data.tier, email: data.email };
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
catch {
|
|
97
|
-
// Invalid license file — fall through to community
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
34
|
return { tier: 'community' };
|
|
101
35
|
}
|
|
102
|
-
/**
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
export function checkAccess(requiredTier) {
|
|
106
|
-
const { tier } = getLicense();
|
|
107
|
-
return isTierAtLeast(tier, requiredTier);
|
|
36
|
+
/** All features are free — always returns true. */
|
|
37
|
+
export function checkAccess(_requiredTier) {
|
|
38
|
+
return true;
|
|
108
39
|
}
|
|
109
|
-
/**
|
|
110
|
-
* Check if current user has access to a feature by name.
|
|
111
|
-
* Uses FEATURE_TIER mapping to resolve the required tier.
|
|
112
|
-
*/
|
|
40
|
+
/** All features are free — always returns true. */
|
|
113
41
|
export function checkFeatureAccess(_feature) {
|
|
114
|
-
// All features are free and open source
|
|
115
42
|
return true;
|
|
116
43
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
notifications: { en: 'Notifications', 'zh-TW': '\u901A\u77E5\u7CFB\u7D71' },
|
|
124
|
-
notify: { en: 'Notifications', 'zh-TW': '\u901A\u77E5\u7CFB\u7D71' },
|
|
125
|
-
'threat-cloud': { en: 'Threat Intelligence', 'zh-TW': '\u5A01\u8105\u60C5\u5831' },
|
|
126
|
-
setup: { en: 'Setup Wizard', 'zh-TW': '\u521D\u59CB\u8A2D\u5B9A' },
|
|
127
|
-
demo: { en: 'Feature Demo', 'zh-TW': '\u529F\u80FD\u5C55\u793A' },
|
|
128
|
-
};
|
|
129
|
-
/**
|
|
130
|
-
* Display a branded upgrade prompt for a locked feature.
|
|
131
|
-
* Accepts feature KEY (e.g. 'report', not 'Compliance Report').
|
|
132
|
-
*/
|
|
133
|
-
export function showUpgradePrompt(_feature, _lang = 'en') {
|
|
134
|
-
// All features are free and open source — no upgrade needed
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Show a contextual upgrade hint for scan auto-fix.
|
|
138
|
-
* Used after scan results when fixable issues are found.
|
|
139
|
-
*/
|
|
140
|
-
export function showScanUpgradeHint(_fixableCount, _lang = 'en') {
|
|
141
|
-
// All features are free and open source — no upgrade needed
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Show a contextual upgrade hint for Guard AI analysis.
|
|
145
|
-
* Used when a suspicious event needs AI analysis.
|
|
146
|
-
*/
|
|
147
|
-
export function showGuardAIHint(_threatType, _confidence, _lang = 'en') {
|
|
148
|
-
// All features are free and open source — no upgrade needed
|
|
149
|
-
}
|
|
150
|
-
/* ── Pricing Constants (deprecated: all features are free) ── */
|
|
151
|
-
/** @deprecated All features are free. Kept for backward compatibility. */
|
|
44
|
+
/** No-op stubs */
|
|
45
|
+
export function showUpgradePrompt(_feature, _lang) { }
|
|
46
|
+
export function showScanUpgradeHint(_fixableCount, _lang) { }
|
|
47
|
+
export function showGuardAIHint(_threatType, _confidence, _lang) { }
|
|
48
|
+
export function refreshTierInBackground() { }
|
|
49
|
+
export const FEATURE_TIER = {};
|
|
152
50
|
export const PRICING_TIERS = {
|
|
153
51
|
community: { price: 0, unit: '', machines: 'unlimited' },
|
|
154
52
|
};
|
|
155
|
-
/** @deprecated All features are free. Kept for backward compatibility. */
|
|
156
53
|
export const COMPLIANCE_PRICING = {};
|
|
157
|
-
/** All features are free — no discount logic needed */
|
|
158
54
|
export const BUSINESS_REPORT_DISCOUNT = 0;
|
|
159
55
|
//# sourceMappingURL=auth-guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-guard.js","sourceRoot":"","sources":["../../src/cli/auth-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"auth-guard.js","sourceRoot":"","sources":["../../src/cli/auth-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAWnD,yDAAyD;AACzD,MAAM,UAAU,WAAW,CAAC,gBAA8B,WAAW;IACnE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AACtE,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,QAAQ,CACtB,aAA2B,EAC3B,OAAsE;IAEtE,OAAO,KAAK,EAAE,OAAU,EAAE,EAAE;QAC1B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAsB;YAClC,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,WAAmB;YACzB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACjC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;SAC1E,CAAC;QACF,MAAM,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,SAAS,CAAC,KAAmB;IAC3C,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,UAAU;IACxB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC/B,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,WAAW,CAAC,aAAmB;IAC7C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kBAAkB;AAClB,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,KAAc,IAAS,CAAC;AAC5E,MAAM,UAAU,mBAAmB,CAAC,aAAqB,EAAE,KAAc,IAAS,CAAC;AACnF,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,WAAmB,EAAE,KAAc,IAAS,CAAC;AAClG,MAAM,UAAU,uBAAuB,KAAU,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAmC,EAAE,CAAC;AAC/D,MAAM,CAAC,MAAM,aAAa,GAAsE;IAC9F,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;CACzD,CAAC;AACF,MAAM,CAAC,MAAM,kBAAkB,GAG3B,EAAE,CAAC;AACP,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,YAAY,IAAI,OAAO,CAwGtC"}
|
|
@@ -4,10 +4,9 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Command } from 'commander';
|
|
6
6
|
import path from 'node:path';
|
|
7
|
-
import { c, banner, divider, box, symbols, setLogLevel
|
|
7
|
+
import { c, banner, divider, box, symbols, setLogLevel } from '@panguard-ai/core';
|
|
8
8
|
export function auditCommand() {
|
|
9
|
-
const cmd = new Command('audit')
|
|
10
|
-
.description('Audit security of OpenClaw skills / 審計 OpenClaw 技能的安全性');
|
|
9
|
+
const cmd = new Command('audit').description('Audit security of OpenClaw skills / 審計 OpenClaw 技能的安全性');
|
|
11
10
|
cmd
|
|
12
11
|
.command('skill')
|
|
13
12
|
.description('Audit a SKILL.md directory for security issues / 審計 SKILL.md 目錄的安全問題')
|
|
@@ -47,13 +46,19 @@ export function auditCommand() {
|
|
|
47
46
|
].join('\n')));
|
|
48
47
|
console.log();
|
|
49
48
|
for (const check of report.checks) {
|
|
50
|
-
const icon = check.status === 'pass'
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
const icon = check.status === 'pass'
|
|
50
|
+
? c.green(symbols.pass)
|
|
51
|
+
: check.status === 'fail'
|
|
52
|
+
? c.red(symbols.fail)
|
|
53
|
+
: check.status === 'warn'
|
|
54
|
+
? c.yellow(symbols.warn)
|
|
53
55
|
: c.blue(symbols.info);
|
|
54
|
-
const statusLabel = check.status === 'pass'
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
const statusLabel = check.status === 'pass'
|
|
57
|
+
? 'PASS'
|
|
58
|
+
: check.status === 'fail'
|
|
59
|
+
? 'FAIL'
|
|
60
|
+
: check.status === 'warn'
|
|
61
|
+
? 'WARN'
|
|
57
62
|
: 'INFO';
|
|
58
63
|
console.log(` ${icon} [${statusLabel}] ${check.label}`);
|
|
59
64
|
}
|
|
@@ -64,8 +69,10 @@ export function auditCommand() {
|
|
|
64
69
|
console.log(c.bold(' Detailed Findings:'));
|
|
65
70
|
console.log();
|
|
66
71
|
for (const finding of report.findings) {
|
|
67
|
-
const sevColor = finding.severity === 'critical'
|
|
68
|
-
|
|
72
|
+
const sevColor = finding.severity === 'critical'
|
|
73
|
+
? c.red
|
|
74
|
+
: finding.severity === 'high'
|
|
75
|
+
? c.yellow
|
|
69
76
|
: c.dim;
|
|
70
77
|
console.log(` ${sevColor(`[${finding.severity.toUpperCase()}]`)} ${finding.title}`);
|
|
71
78
|
console.log(` ${c.dim(finding.description)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/cli/commands/audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/cli/commands/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,KAAK,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;AAykB3B,wBAAsB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCzD;AAMD,wBAAgB,aAAa,IAAI,OAAO,CA0DvC"}
|
|
@@ -11,6 +11,7 @@ import { Command } from 'commander';
|
|
|
11
11
|
import { existsSync, readFileSync } from 'node:fs';
|
|
12
12
|
import { join } from 'node:path';
|
|
13
13
|
import { homedir } from 'node:os';
|
|
14
|
+
import { execFileSync } from 'node:child_process';
|
|
14
15
|
import { c, symbols, box, header } from '@panguard-ai/core';
|
|
15
16
|
import { PANGUARD_VERSION } from '../../index.js';
|
|
16
17
|
// ---------------------------------------------------------------------------
|
|
@@ -111,7 +112,6 @@ function checkAiProvider() {
|
|
|
111
112
|
const hasOllamaEnv = Boolean(process.env['OLLAMA_HOST']);
|
|
112
113
|
let ollamaInstalled = false;
|
|
113
114
|
try {
|
|
114
|
-
const { execFileSync } = require('node:child_process');
|
|
115
115
|
execFileSync('ollama', ['--version'], { encoding: 'utf-8', timeout: 3000 });
|
|
116
116
|
ollamaInstalled = true;
|
|
117
117
|
}
|
|
@@ -130,7 +130,7 @@ function checkAiProvider() {
|
|
|
130
130
|
layers.push('Layer 3: Anthropic');
|
|
131
131
|
// Check config file for AI settings
|
|
132
132
|
let configProvider;
|
|
133
|
-
let
|
|
133
|
+
let _configModel;
|
|
134
134
|
if (existsSync(CONFIG_PATH)) {
|
|
135
135
|
try {
|
|
136
136
|
const raw = readFileSync(CONFIG_PATH, 'utf-8');
|
|
@@ -144,9 +144,10 @@ function checkAiProvider() {
|
|
|
144
144
|
}
|
|
145
145
|
if (cfg.ai?.provider) {
|
|
146
146
|
configProvider = cfg.ai.provider;
|
|
147
|
-
|
|
147
|
+
_configModel = cfg.ai.model;
|
|
148
148
|
const layerNum = cfg.ai.provider === 'ollama' ? '2' : '3';
|
|
149
|
-
layers.push(`Layer ${layerNum}: ${cfg.ai.provider} (config)` +
|
|
149
|
+
layers.push(`Layer ${layerNum}: ${cfg.ai.provider} (config)` +
|
|
150
|
+
(cfg.ai.model ? ` / ${cfg.ai.model}` : ''));
|
|
150
151
|
}
|
|
151
152
|
}
|
|
152
153
|
catch {
|
|
@@ -161,7 +162,8 @@ function checkAiProvider() {
|
|
|
161
162
|
const cfg = JSON.parse(raw);
|
|
162
163
|
if (cfg.ai?.provider) {
|
|
163
164
|
const layerNum = cfg.ai.provider === 'ollama' ? '2' : '3';
|
|
164
|
-
layers.push(`Layer ${layerNum}: ${cfg.ai.provider} (guard config)` +
|
|
165
|
+
layers.push(`Layer ${layerNum}: ${cfg.ai.provider} (guard config)` +
|
|
166
|
+
(cfg.ai.model ? ` / ${cfg.ai.model}` : ''));
|
|
165
167
|
}
|
|
166
168
|
}
|
|
167
169
|
catch {
|
|
@@ -360,9 +362,7 @@ function checkSystemService() {
|
|
|
360
362
|
detail: matchesConfig
|
|
361
363
|
? 'launchd unit matches config'
|
|
362
364
|
: 'launchd plist exists but may be outdated',
|
|
363
|
-
fix: matchesConfig
|
|
364
|
-
? undefined
|
|
365
|
-
: 'Run "panguard guard install" to reinstall the service',
|
|
365
|
+
fix: matchesConfig ? undefined : 'Run "panguard guard install" to reinstall the service',
|
|
366
366
|
};
|
|
367
367
|
}
|
|
368
368
|
catch {
|
|
@@ -412,8 +412,10 @@ function checkAiLayerLocal() {
|
|
|
412
412
|
let ollamaInstalled = false;
|
|
413
413
|
let ollamaVersion = '';
|
|
414
414
|
try {
|
|
415
|
-
|
|
416
|
-
|
|
415
|
+
ollamaVersion = execFileSync('ollama', ['--version'], {
|
|
416
|
+
encoding: 'utf-8',
|
|
417
|
+
timeout: 3000,
|
|
418
|
+
}).trim();
|
|
417
419
|
ollamaInstalled = true;
|
|
418
420
|
}
|
|
419
421
|
catch {
|
|
@@ -429,7 +431,6 @@ function checkAiLayerLocal() {
|
|
|
429
431
|
}
|
|
430
432
|
// Check if any models are pulled
|
|
431
433
|
try {
|
|
432
|
-
const { execFileSync } = require('node:child_process');
|
|
433
434
|
const models = execFileSync('ollama', ['list'], { encoding: 'utf-8', timeout: 5000 }).trim();
|
|
434
435
|
const modelLines = models.split('\n').slice(1).filter(Boolean);
|
|
435
436
|
if (modelLines.length === 0) {
|
|
@@ -592,7 +593,9 @@ export function doctorCommand() {
|
|
|
592
593
|
}
|
|
593
594
|
if (opts.fix) {
|
|
594
595
|
console.log('');
|
|
595
|
-
console.log(header(lang === 'zh-TW'
|
|
596
|
+
console.log(header(lang === 'zh-TW'
|
|
597
|
+
? 'Panguard AI 健康診斷 — 自動修復'
|
|
598
|
+
: 'Panguard AI Health Check — Auto-fix'));
|
|
596
599
|
const fixable = results.filter((r) => r.status !== 'pass' && r.fix);
|
|
597
600
|
if (fixable.length === 0) {
|
|
598
601
|
console.log(` ${symbols.pass} ${c.sage('No issues require fixing.')}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,YAAY,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,YAAY,IAAI,OAAO,CA2ItC"}
|
|
@@ -288,7 +288,9 @@ async function commandSetupAi() {
|
|
|
288
288
|
if (setupCloud) {
|
|
289
289
|
console.log(divider('Layer 3: Cloud AI / 第三層:雲端 AI'));
|
|
290
290
|
console.log('');
|
|
291
|
-
const envKey = process.env['PANGUARD_AI_KEY'] ||
|
|
291
|
+
const envKey = process.env['PANGUARD_AI_KEY'] ||
|
|
292
|
+
process.env['ANTHROPIC_API_KEY'] ||
|
|
293
|
+
process.env['OPENAI_API_KEY'];
|
|
292
294
|
if (envKey) {
|
|
293
295
|
const { provider } = validateApiKeyFormat(envKey);
|
|
294
296
|
console.log(` ${symbols.pass} API key found in environment: ${c.sage(provider)}`);
|
|
@@ -387,7 +389,10 @@ async function checkDashboardReachable(port) {
|
|
|
387
389
|
res.resume();
|
|
388
390
|
});
|
|
389
391
|
req.on('error', () => resolve(false));
|
|
390
|
-
req.on('timeout', () => {
|
|
392
|
+
req.on('timeout', () => {
|
|
393
|
+
req.destroy();
|
|
394
|
+
resolve(false);
|
|
395
|
+
});
|
|
391
396
|
req.end();
|
|
392
397
|
});
|
|
393
398
|
}
|
|
@@ -473,7 +478,8 @@ async function showDetailedStatus(dataDirOverride) {
|
|
|
473
478
|
const parts = out.split(/[-:]/).map(Number);
|
|
474
479
|
let seconds = 0;
|
|
475
480
|
if (parts.length === 4)
|
|
476
|
-
seconds =
|
|
481
|
+
seconds =
|
|
482
|
+
(parts[0] ?? 0) * 86400 + (parts[1] ?? 0) * 3600 + (parts[2] ?? 0) * 60 + (parts[3] ?? 0);
|
|
477
483
|
else if (parts.length === 3)
|
|
478
484
|
seconds = (parts[0] ?? 0) * 3600 + (parts[1] ?? 0) * 60 + (parts[2] ?? 0);
|
|
479
485
|
else if (parts.length === 2)
|
|
@@ -489,9 +495,7 @@ async function showDetailedStatus(dataDirOverride) {
|
|
|
489
495
|
}
|
|
490
496
|
// ── Layer 2: Dashboard + config ───────────────────────────────────────────
|
|
491
497
|
const config = readJsonFile(configPath);
|
|
492
|
-
const dashboardPort = typeof config?.['dashboardPort'] === 'number'
|
|
493
|
-
? config['dashboardPort']
|
|
494
|
-
: 3100;
|
|
498
|
+
const dashboardPort = typeof config?.['dashboardPort'] === 'number' ? config['dashboardPort'] : 3100;
|
|
495
499
|
const dashboardEnabled = config?.['dashboardEnabled'] !== false;
|
|
496
500
|
const mode = typeof config?.['mode'] === 'string' ? config['mode'] : 'unknown';
|
|
497
501
|
const cloudEndpoint = typeof config?.['threatCloudEndpoint'] === 'string'
|
|
@@ -525,8 +529,7 @@ async function showDetailedStatus(dataDirOverride) {
|
|
|
525
529
|
const { events, threats } = parseLogStats(logPath);
|
|
526
530
|
// ── Render ────────────────────────────────────────────────────────────────
|
|
527
531
|
const processLine = processRunning
|
|
528
|
-
? c.safe(`running`) +
|
|
529
|
-
c.dim(` (PID: ${pid ?? '?'}, uptime: ${uptimeStr})`)
|
|
532
|
+
? c.safe(`running`) + c.dim(` (PID: ${pid ?? '?'}, uptime: ${uptimeStr})`)
|
|
530
533
|
: c.critical('stopped');
|
|
531
534
|
const cloudHost = cloudEndpoint.replace(/^https?:\/\//, '').replace(/\/.*$/, '');
|
|
532
535
|
const lines = [
|