@panguard-ai/panguard 1.4.16 → 1.4.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cli/commands/audit.d.ts.map +1 -1
  3. package/dist/cli/commands/audit.js +5 -6
  4. package/dist/cli/commands/audit.js.map +1 -1
  5. package/dist/cli/commands/chat.d.ts.map +1 -1
  6. package/dist/cli/commands/chat.js +11 -11
  7. package/dist/cli/commands/chat.js.map +1 -1
  8. package/dist/cli/commands/config.d.ts +4 -4
  9. package/dist/cli/commands/config.d.ts.map +1 -1
  10. package/dist/cli/commands/config.js +32 -21
  11. package/dist/cli/commands/config.js.map +1 -1
  12. package/dist/cli/commands/demo.js +5 -5
  13. package/dist/cli/commands/demo.js.map +1 -1
  14. package/dist/cli/commands/deploy.js +10 -10
  15. package/dist/cli/commands/deploy.js.map +1 -1
  16. package/dist/cli/commands/doctor.d.ts.map +1 -1
  17. package/dist/cli/commands/doctor.js +30 -65
  18. package/dist/cli/commands/doctor.js.map +1 -1
  19. package/dist/cli/commands/guard.d.ts.map +1 -1
  20. package/dist/cli/commands/guard.js +42 -45
  21. package/dist/cli/commands/guard.js.map +1 -1
  22. package/dist/cli/commands/hacktivity.d.ts +2 -2
  23. package/dist/cli/commands/hacktivity.d.ts.map +1 -1
  24. package/dist/cli/commands/hacktivity.js +10 -10
  25. package/dist/cli/commands/hacktivity.js.map +1 -1
  26. package/dist/cli/commands/hardening.js +6 -6
  27. package/dist/cli/commands/hardening.js.map +1 -1
  28. package/dist/cli/commands/init.d.ts.map +1 -1
  29. package/dist/cli/commands/init.js +2 -2
  30. package/dist/cli/commands/init.js.map +1 -1
  31. package/dist/cli/commands/login.js +1 -1
  32. package/dist/cli/commands/login.js.map +1 -1
  33. package/dist/cli/commands/logout.js +1 -1
  34. package/dist/cli/commands/logout.js.map +1 -1
  35. package/dist/cli/commands/report.js +6 -6
  36. package/dist/cli/commands/report.js.map +1 -1
  37. package/dist/cli/commands/scan.d.ts.map +1 -1
  38. package/dist/cli/commands/scan.js +93 -12
  39. package/dist/cli/commands/scan.js.map +1 -1
  40. package/dist/cli/commands/setup.d.ts.map +1 -1
  41. package/dist/cli/commands/setup.js +16 -15
  42. package/dist/cli/commands/setup.js.map +1 -1
  43. package/dist/cli/commands/skills.d.ts.map +1 -1
  44. package/dist/cli/commands/skills.js +4 -4
  45. package/dist/cli/commands/skills.js.map +1 -1
  46. package/dist/cli/commands/status.d.ts.map +1 -1
  47. package/dist/cli/commands/status.js +4 -4
  48. package/dist/cli/commands/status.js.map +1 -1
  49. package/dist/cli/commands/threat.d.ts.map +1 -1
  50. package/dist/cli/commands/threat.js +15 -15
  51. package/dist/cli/commands/threat.js.map +1 -1
  52. package/dist/cli/commands/trap.js +7 -7
  53. package/dist/cli/commands/trap.js.map +1 -1
  54. package/dist/cli/commands/up.d.ts.map +1 -1
  55. package/dist/cli/commands/up.js +157 -60
  56. package/dist/cli/commands/up.js.map +1 -1
  57. package/dist/cli/commands/upgrade.js +1 -1
  58. package/dist/cli/commands/upgrade.js.map +1 -1
  59. package/dist/cli/commands/whoami.js +1 -1
  60. package/dist/cli/commands/whoami.js.map +1 -1
  61. package/dist/cli/consent.js +1 -1
  62. package/dist/cli/consent.js.map +1 -1
  63. package/dist/cli/index.js +1 -1
  64. package/dist/cli/index.js.map +1 -1
  65. package/dist/cli/interactive/actions/audit.js +2 -2
  66. package/dist/cli/interactive/actions/audit.js.map +1 -1
  67. package/dist/cli/interactive/actions/scan.js +2 -2
  68. package/dist/cli/interactive/actions/scan.js.map +1 -1
  69. package/dist/cli/interactive.js +2 -2
  70. package/dist/cli/interactive.js.map +1 -1
  71. package/dist/init/config-writer.d.ts.map +1 -1
  72. package/dist/init/config-writer.js +2 -1
  73. package/dist/init/config-writer.js.map +1 -1
  74. package/dist/init/steps.js +2 -2
  75. package/dist/init/steps.js.map +1 -1
  76. package/dist/init/wizard-runner.js +18 -18
  77. package/dist/init/wizard-runner.js.map +1 -1
  78. package/package.json +21 -22
@@ -20,8 +20,6 @@ import { PANGUARD_VERSION } from '../../index.js';
20
20
  const HOME = homedir();
21
21
  const PANGUARD_DIR = join(HOME, '.panguard');
22
22
  const CONFIG_PATH = join(PANGUARD_DIR, 'config.json');
23
- const CREDENTIALS_PATH = join(PANGUARD_DIR, 'credentials.enc');
24
- const LEGACY_CREDENTIALS_PATH = join(PANGUARD_DIR, 'credentials.json');
25
23
  const LAST_SCAN_PATH = join(PANGUARD_DIR, 'last-scan.json');
26
24
  const GUARD_PID_PATH = join(HOME, '.panguard-guard', 'panguard-guard.pid');
27
25
  const LAUNCHD_PLIST_PATH = join(HOME, 'Library', 'LaunchAgents', 'ai.panguard.guard.plist');
@@ -44,7 +42,7 @@ function checkConfiguration() {
44
42
  status: 'fail',
45
43
  label: 'Configuration valid',
46
44
  detail: '~/.panguard/config.json not found',
47
- fix: 'Run "panguard init" to create your configuration',
45
+ fix: 'Run "pga setup" to create your configuration',
48
46
  };
49
47
  }
50
48
  try {
@@ -61,50 +59,17 @@ function checkConfiguration() {
61
59
  status: 'fail',
62
60
  label: 'Configuration valid',
63
61
  detail: '~/.panguard/config.json is not valid JSON',
64
- fix: 'Run "panguard init" to regenerate the configuration file',
62
+ fix: 'Run "pga setup" to regenerate the configuration file',
65
63
  };
66
64
  }
67
65
  }
68
66
  function checkCredentials() {
69
- const hasEncrypted = existsSync(CREDENTIALS_PATH);
70
- const hasLegacy = existsSync(LEGACY_CREDENTIALS_PATH);
71
- if (!hasEncrypted && !hasLegacy) {
72
- return {
73
- status: 'warn',
74
- label: 'License / credentials',
75
- detail: 'No credentials found',
76
- fix: 'Run "panguard login" to authenticate and activate your plan',
77
- };
78
- }
79
- const credPath = hasEncrypted ? CREDENTIALS_PATH : LEGACY_CREDENTIALS_PATH;
80
- try {
81
- if (!hasEncrypted && hasLegacy) {
82
- // Legacy plaintext — can read directly
83
- const raw = readFileSync(credPath, 'utf-8');
84
- const data = JSON.parse(raw);
85
- const tier = data.tier ?? 'unknown';
86
- const expiry = data.expiresAt ? data.expiresAt.slice(0, 10) : 'unknown';
87
- return {
88
- status: 'pass',
89
- label: 'License / credentials',
90
- detail: `${capitalise(tier)} plan, expires ${expiry}`,
91
- };
92
- }
93
- // Encrypted — only report presence, not content (no key available here)
94
- return {
95
- status: 'pass',
96
- label: 'License / credentials',
97
- detail: 'Credentials file present (~/.panguard/credentials.enc)',
98
- };
99
- }
100
- catch {
101
- return {
102
- status: 'warn',
103
- label: 'License / credentials',
104
- detail: 'Credentials file present but could not be read',
105
- fix: 'Run "panguard login" to re-authenticate',
106
- };
107
- }
67
+ // PanGuard is 100% free and open source — no license or login required
68
+ return {
69
+ status: 'pass',
70
+ label: 'License',
71
+ detail: 'Open source — no license required',
72
+ };
108
73
  }
109
74
  function checkAiProvider() {
110
75
  const layers = [];
@@ -181,7 +146,7 @@ function checkAiProvider() {
181
146
  status: 'warn',
182
147
  label: 'AI provider',
183
148
  detail: 'No AI provider configured (Layer 1 rules-only mode)',
184
- fix: 'Run "panguard guard setup-ai" for interactive setup, or set ANTHROPIC_API_KEY / install Ollama',
149
+ fix: 'Run "pga guard setup-ai" for interactive setup, or set ANTHROPIC_API_KEY / install Ollama',
185
150
  };
186
151
  }
187
152
  function checkGuardEngine() {
@@ -190,7 +155,7 @@ function checkGuardEngine() {
190
155
  status: 'fail',
191
156
  label: 'Guard engine',
192
157
  detail: 'Daemon not running (no PID file)',
193
- fix: 'Run "panguard guard start" to start the guard daemon',
158
+ fix: 'Run "pga guard start" to start the guard daemon',
194
159
  };
195
160
  }
196
161
  try {
@@ -210,7 +175,7 @@ function checkGuardEngine() {
210
175
  status: 'fail',
211
176
  label: 'Guard engine',
212
177
  detail: 'PID file exists but daemon is not running',
213
- fix: 'Run "panguard guard start" to restart the guard daemon',
178
+ fix: 'Run "pga guard start" to restart the guard daemon',
214
179
  };
215
180
  }
216
181
  }
@@ -220,7 +185,7 @@ function checkNotificationChannels() {
220
185
  status: 'warn',
221
186
  label: 'Notification channels',
222
187
  detail: 'Config not found — cannot verify channels',
223
- fix: 'Run "panguard init" to set up notification channels',
188
+ fix: 'Run "pga setup" to set up notification channels',
224
189
  };
225
190
  }
226
191
  try {
@@ -232,7 +197,7 @@ function checkNotificationChannels() {
232
197
  status: 'warn',
233
198
  label: 'Notification channels',
234
199
  detail: 'No notification channel configured',
235
- fix: 'Run "panguard init" and configure a Telegram, Slack, or webhook channel',
200
+ fix: 'Run "pga setup" and configure a Telegram, Slack, or webhook channel',
236
201
  };
237
202
  }
238
203
  return {
@@ -246,7 +211,7 @@ function checkNotificationChannels() {
246
211
  status: 'warn',
247
212
  label: 'Notification channels',
248
213
  detail: 'Could not parse config to verify channels',
249
- fix: 'Run "panguard init" to reconfigure',
214
+ fix: 'Run "pga setup" to reconfigure',
250
215
  };
251
216
  }
252
217
  }
@@ -256,7 +221,7 @@ function checkLastScan() {
256
221
  status: 'warn',
257
222
  label: 'Last scan',
258
223
  detail: 'No scan result found',
259
- fix: 'Run "panguard scan" to perform your first scan',
224
+ fix: 'Run "pga scan" to perform your first scan',
260
225
  };
261
226
  }
262
227
  try {
@@ -268,7 +233,7 @@ function checkLastScan() {
268
233
  status: 'warn',
269
234
  label: 'Last scan',
270
235
  detail: 'Scan record found but timestamp is invalid',
271
- fix: 'Run "panguard scan" to perform a fresh scan',
236
+ fix: 'Run "pga scan" to perform a fresh scan',
272
237
  };
273
238
  }
274
239
  const diffDays = Math.floor((Date.now() - scannedAt.getTime()) / 86_400_000);
@@ -277,7 +242,7 @@ function checkLastScan() {
277
242
  status: 'warn',
278
243
  label: 'Last scan',
279
244
  detail: `${diffDays} days ago (recommend weekly)`,
280
- fix: 'Run "panguard scan" to perform a fresh scan',
245
+ fix: 'Run "pga scan" to perform a fresh scan',
281
246
  };
282
247
  }
283
248
  return {
@@ -291,7 +256,7 @@ function checkLastScan() {
291
256
  status: 'warn',
292
257
  label: 'Last scan',
293
258
  detail: 'Could not read last scan record',
294
- fix: 'Run "panguard scan" to generate a fresh scan result',
259
+ fix: 'Run "pga scan" to generate a fresh scan result',
295
260
  };
296
261
  }
297
262
  }
@@ -301,7 +266,7 @@ function checkThreatCloud() {
301
266
  status: 'warn',
302
267
  label: 'Threat Cloud',
303
268
  detail: 'Config not found — cannot verify Threat Cloud endpoint',
304
- fix: 'Run "panguard init" to configure Threat Cloud connectivity',
269
+ fix: 'Run "pga setup" to configure Threat Cloud connectivity',
305
270
  };
306
271
  }
307
272
  try {
@@ -330,7 +295,7 @@ function checkThreatCloud() {
330
295
  status: 'warn',
331
296
  label: 'Threat Cloud',
332
297
  detail: 'Could not parse config to verify Threat Cloud',
333
- fix: 'Run "panguard init" to reconfigure',
298
+ fix: 'Run "pga setup" to reconfigure',
334
299
  };
335
300
  }
336
301
  }
@@ -349,7 +314,7 @@ function checkSystemService() {
349
314
  status: 'warn',
350
315
  label: 'System service',
351
316
  detail: 'launchd plist not found',
352
- fix: 'Run "panguard guard install" to install the system service',
317
+ fix: 'Run "pga guard install" to install the system service',
353
318
  };
354
319
  }
355
320
  // Verify plist references the config
@@ -362,7 +327,7 @@ function checkSystemService() {
362
327
  detail: matchesConfig
363
328
  ? 'launchd unit matches config'
364
329
  : 'launchd plist exists but may be outdated',
365
- fix: matchesConfig ? undefined : 'Run "panguard guard install" to reinstall the service',
330
+ fix: matchesConfig ? undefined : 'Run "pga guard install" to reinstall the service',
366
331
  };
367
332
  }
368
333
  catch {
@@ -370,7 +335,7 @@ function checkSystemService() {
370
335
  status: 'warn',
371
336
  label: 'System service',
372
337
  detail: 'launchd plist found but could not be read',
373
- fix: 'Run "panguard guard install" to reinstall the service',
338
+ fix: 'Run "pga guard install" to reinstall the service',
374
339
  };
375
340
  }
376
341
  }
@@ -401,7 +366,7 @@ function checkShellCompletions() {
401
366
  status: 'warn',
402
367
  label: 'Shell completions',
403
368
  detail: 'zsh completions not found',
404
- fix: 'Run "panguard completion install" to install shell completions',
369
+ fix: 'Run "pga completion install" to install shell completions',
405
370
  };
406
371
  }
407
372
  // ---------------------------------------------------------------------------
@@ -496,7 +461,7 @@ function checkAiLayerCloud() {
496
461
  status: 'warn',
497
462
  label: 'AI Layer 3 (Cloud)',
498
463
  detail: 'No cloud AI API key configured',
499
- fix: 'Run "panguard guard setup-ai" or set ANTHROPIC_API_KEY / OPENAI_API_KEY',
464
+ fix: 'Run "pga guard setup-ai" or set ANTHROPIC_API_KEY / OPENAI_API_KEY',
500
465
  };
501
466
  }
502
467
  function runAllChecks() {
@@ -580,12 +545,12 @@ export async function runDoctor(lang) {
580
545
  // ---------------------------------------------------------------------------
581
546
  export function doctorCommand() {
582
547
  return new Command('doctor')
583
- .description('Run health diagnostics / \u57F7\u884C\u5065\u5EB7\u8A3A\u65B7')
548
+ .description('Run health diagnostics')
584
549
  .option('--json', 'Output results as JSON')
585
- .option('--fix', 'Attempt auto-repair of detected issues')
550
+ .option('--fix', 'Show fix commands for detected issues')
586
551
  .option('--lang <language>', 'Language override (en | zh-TW)')
587
552
  .action(async (opts) => {
588
- const lang = opts.lang === 'en' ? 'en' : 'zh-TW';
553
+ const lang = opts.lang === 'zh-TW' ? 'zh-TW' : 'en';
589
554
  const results = runAllChecks();
590
555
  if (opts.json) {
591
556
  console.log(JSON.stringify(results, null, 2));
@@ -609,8 +574,8 @@ export function doctorCommand() {
609
574
  }
610
575
  console.log('');
611
576
  console.log(` ${symbols.info} ${c.dim(lang === 'zh-TW'
612
- ? '自動修復功能即將推出。請手動執行上述指令。'
613
- : 'Automated fix execution coming soon. Please run the above commands manually.')}`);
577
+ ? '請複製上述指令執行修復。'
578
+ : 'Copy and run the commands above to fix.')}`);
614
579
  console.log('');
615
580
  return;
616
581
  }
@@ -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,CA2ItC"}
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,CA4HtC"}
@@ -12,9 +12,9 @@ import { runCLI } from '@panguard-ai/panguard-guard';
12
12
  import { c, box, header, symbols, divider } from '@panguard-ai/core';
13
13
  export function guardCommand() {
14
14
  const cmd = new Command('guard')
15
- .description('Guard engine management / \u5B88\u8B77\u5F15\u64CE\u7BA1\u7406')
16
- .option('--watch', 'Start guard engine in foreground (alias for guard start) / 前景啟動守護引擎', false)
17
- .option('--dashboard', 'Enable live TUI dashboard / 啟用即時 TUI 儀表板', false)
15
+ .description('Guard engine management')
16
+ .option('--watch', 'Start guard engine in foreground (alias for guard start)', false)
17
+ .option('--dashboard', 'Enable live TUI dashboard', false)
18
18
  .action(async (opts) => {
19
19
  if (opts.watch) {
20
20
  const args = ['start'];
@@ -25,12 +25,12 @@ export function guardCommand() {
25
25
  });
26
26
  cmd
27
27
  .command('start')
28
- .description('Start the guard engine / \u555F\u52D5\u5B88\u8B77\u5F15\u64CE')
29
- .option('--data-dir <path>', 'Data directory / \u8CC7\u6599\u76EE\u9304')
30
- .option('--verbose', 'Verbose output (show all event logs) / \u8A73\u7D30\u8F38\u51FA', false)
31
- .option('--dashboard', 'Enable live TUI dashboard / \u555F\u7528\u5373\u6642 TUI \u5100\u8868\u677F', false)
32
- .option('--interactive', 'Prompt for medium-confidence threats / \u4E2D\u4FE1\u5FC3\u5EA6\u5A01\u8105\u4E92\u52D5\u63D0\u793A', false)
33
- .option('--manager <url>', 'Manager URL for agent mode / Manager \u7DB2\u5740\uFF08Agent \u6A21\u5F0F\uFF09')
28
+ .description('Start the guard engine')
29
+ .option('--data-dir <path>', 'Data directory')
30
+ .option('--verbose', 'Verbose output (show all event logs)', false)
31
+ .option('--dashboard', 'Enable live TUI dashboard', false)
32
+ .option('--interactive', 'Prompt for medium-confidence threats', false)
33
+ .option('--manager <url>', 'Manager URL for agent mode')
34
34
  .action(async (opts) => {
35
35
  const args = ['start'];
36
36
  if (opts.dataDir)
@@ -47,8 +47,8 @@ export function guardCommand() {
47
47
  });
48
48
  cmd
49
49
  .command('stop')
50
- .description('Stop the guard engine / \u505C\u6B62\u5B88\u8B77\u5F15\u64CE')
51
- .option('--data-dir <path>', 'Data directory / \u8CC7\u6599\u76EE\u9304')
50
+ .description('Stop the guard engine')
51
+ .option('--data-dir <path>', 'Data directory')
52
52
  .action(async (opts) => {
53
53
  const args = ['stop'];
54
54
  if (opts.dataDir)
@@ -57,9 +57,9 @@ export function guardCommand() {
57
57
  });
58
58
  cmd
59
59
  .command('restart')
60
- .description('Restart the guard engine / 重啟守護引擎')
61
- .option('--data-dir <path>', 'Data directory / 資料目錄')
62
- .option('--verbose', 'Verbose output / 詳細輸出', false)
60
+ .description('Restart the guard engine')
61
+ .option('--data-dir <path>', 'Data directory')
62
+ .option('--verbose', 'Verbose output', false)
63
63
  .action(async (opts) => {
64
64
  const stopArgs = ['stop'];
65
65
  if (opts.dataDir)
@@ -74,9 +74,9 @@ export function guardCommand() {
74
74
  });
75
75
  cmd
76
76
  .command('status')
77
- .description('Show engine status / 顯示引擎狀態')
78
- .option('--data-dir <path>', 'Data directory / 資料目錄')
79
- .option('--detailed', 'Show 3-layer health check / 顯示三層健康檢查', false)
77
+ .description('Show engine status')
78
+ .option('--data-dir <path>', 'Data directory')
79
+ .option('--detailed', 'Show 3-layer health check', false)
80
80
  .action(async (opts) => {
81
81
  if (opts.detailed) {
82
82
  await showDetailedStatus(opts.dataDir);
@@ -89,8 +89,8 @@ export function guardCommand() {
89
89
  });
90
90
  cmd
91
91
  .command('config')
92
- .description('Show current configuration / 顯示當前配置')
93
- .option('--data-dir <path>', 'Data directory / 資料目錄')
92
+ .description('Show current configuration')
93
+ .option('--data-dir <path>', 'Data directory')
94
94
  .action(async (opts) => {
95
95
  const args = ['config'];
96
96
  if (opts.dataDir)
@@ -99,7 +99,7 @@ export function guardCommand() {
99
99
  });
100
100
  cmd
101
101
  .command('generate-key [tier]')
102
- .description('Generate a test license key / 產生測試授權金鑰')
102
+ .description('Generate a test license key')
103
103
  .action(async (tier) => {
104
104
  const args = ['generate-key'];
105
105
  if (tier)
@@ -108,8 +108,8 @@ export function guardCommand() {
108
108
  });
109
109
  cmd
110
110
  .command('install')
111
- .description('Install as system service / 安裝為系統服務')
112
- .option('--data-dir <path>', 'Data directory / 資料目錄')
111
+ .description('Install as system service')
112
+ .option('--data-dir <path>', 'Data directory')
113
113
  .action(async (opts) => {
114
114
  const args = ['install'];
115
115
  if (opts.dataDir)
@@ -118,13 +118,13 @@ export function guardCommand() {
118
118
  });
119
119
  cmd
120
120
  .command('uninstall')
121
- .description('Remove system service / 移除系統服務')
121
+ .description('Remove system service')
122
122
  .action(async () => {
123
123
  await runCLI(['uninstall']);
124
124
  });
125
125
  cmd
126
126
  .command('setup-ai')
127
- .description('Interactive AI layer setup / 互動式 AI 層設定')
127
+ .description('Interactive AI layer setup')
128
128
  .action(async () => {
129
129
  await commandSetupAi();
130
130
  });
@@ -213,17 +213,16 @@ async function commandSetupAi() {
213
213
  }
214
214
  // Step 1: Ask which layer
215
215
  console.log(` Which AI layer would you like to configure?`);
216
- console.log(` 您想要設定哪個 AI 層?`);
217
216
  console.log('');
218
- console.log(` ${c.sage('1')} - Local AI (Ollama) / 本地 AI(Ollama)`);
219
- console.log(` ${c.sage('2')} - Cloud AI (API key) / 雲端 AI(API 金鑰)`);
220
- console.log(` ${c.sage('3')} - Both (Local + Cloud) / 兩者皆用`);
221
- console.log(` ${c.sage('q')} - Cancel / 取消`);
217
+ console.log(` ${c.sage('1')} - Local AI (Ollama)`);
218
+ console.log(` ${c.sage('2')} - Cloud AI (API key)`);
219
+ console.log(` ${c.sage('3')} - Both (Local + Cloud)`);
220
+ console.log(` ${c.sage('q')} - Cancel`);
222
221
  console.log('');
223
- const choice = await readLine(` Choice / 選擇 [1/2/3/q]: `);
222
+ const choice = await readLine(` Choice: `);
224
223
  console.log('');
225
224
  if (choice === 'q' || choice === '') {
226
- console.log(` ${symbols.info} Setup cancelled. / 設定已取消。`);
225
+ console.log(` ${symbols.info} Setup cancelled.`);
227
226
  console.log('');
228
227
  return;
229
228
  }
@@ -235,7 +234,7 @@ async function commandSetupAi() {
235
234
  }
236
235
  // Step 2a: Local AI (Ollama)
237
236
  if (setupLocal) {
238
- console.log(divider('Layer 2: Local AI / 第二層:本地 AI'));
237
+ console.log(divider('Layer 2: Local AI'));
239
238
  console.log('');
240
239
  const ollamaInstalled = isOllamaInstalled();
241
240
  if (ollamaInstalled) {
@@ -247,28 +246,28 @@ async function commandSetupAi() {
247
246
  timeout: 5000,
248
247
  }).trim();
249
248
  if (models && models.split('\n').length > 1) {
250
- console.log(` ${symbols.pass} Available models / 可用模型:`);
249
+ console.log(` ${symbols.pass} Available models:`);
251
250
  const modelLines = models.split('\n').slice(1, 6);
252
251
  for (const line of modelLines) {
253
252
  console.log(` ${c.dim(line.trim())}`);
254
253
  }
255
254
  }
256
255
  else {
257
- console.log(` ${symbols.warn} No models found. / 未找到模型。`);
256
+ console.log(` ${symbols.warn} No models found.`);
258
257
  console.log(` ${c.dim('Run: ollama pull llama3.2')}`);
259
258
  }
260
259
  }
261
260
  catch {
262
- console.log(` ${symbols.warn} Could not list models / 無法列出模型`);
261
+ console.log(` ${symbols.warn} Could not list models`);
263
262
  }
264
263
  }
265
264
  else {
266
- console.log(` ${symbols.warn} Ollama is not installed / Ollama 未安裝`);
267
- console.log(` Install / 安裝: ${c.sage('curl -fsSL https://ollama.com/install.sh | sh')}`);
268
- console.log(` Then pull a model / 然後下載模型: ${c.sage('ollama pull llama3.2')}`);
265
+ console.log(` ${symbols.warn} Ollama is not installed`);
266
+ console.log(` ${c.dim('Install: curl -fsSL https://ollama.com/install.sh | sh')}`);
267
+ console.log(` ${c.dim('Then pull a model: ollama pull llama3.2')}`);
269
268
  }
270
269
  console.log('');
271
- const model = await readLine(` Ollama model name / 模型名稱 [llama3.2]: `);
270
+ const model = await readLine(` Ollama model name [llama3.2]: `);
272
271
  const ollamaModel = model || 'llama3.2';
273
272
  const ollamaEndpoint = await readLine(` Ollama URL [http://localhost:11434]: `);
274
273
  const aiConfig = {
@@ -286,7 +285,7 @@ async function commandSetupAi() {
286
285
  }
287
286
  // Step 2b: Cloud AI
288
287
  if (setupCloud) {
289
- console.log(divider('Layer 3: Cloud AI / 第三層:雲端 AI'));
288
+ console.log(divider('Layer 3: Cloud AI'));
290
289
  console.log('');
291
290
  const envKey = process.env['PANGUARD_AI_KEY'] ||
292
291
  process.env['ANTHROPIC_API_KEY'] ||
@@ -311,7 +310,7 @@ async function commandSetupAi() {
311
310
  }
312
311
  const cloudProvider = provider === 'anthropic' ? 'claude' : provider === 'openai' ? 'openai' : 'claude';
313
312
  const defaultModel = cloudProvider === 'claude' ? 'claude-sonnet-4-20250514' : 'gpt-4o';
314
- const model = await readLine(` Model / 模型 [${defaultModel}]: `);
313
+ const model = await readLine(` Model [${defaultModel}]: `);
315
314
  const cloudModel = model || defaultModel;
316
315
  // If we already set local AI, merge into a combined config
317
316
  const currentAi = (existingConfig['ai'] ?? {});
@@ -343,10 +342,9 @@ async function commandSetupAi() {
343
342
  }
344
343
  console.log('');
345
344
  console.log(` ${symbols.pass} Cloud AI configured: ${c.sage(`${cloudProvider} / ${cloudModel}`)}`);
346
- console.log(` ${c.dim('雲端 AI 已設定')}: ${cloudProvider} / ${cloudModel}`);
347
345
  }
348
346
  else {
349
- console.log(` ${symbols.info} Skipped cloud AI setup / 跳過雲端 AI 設定`);
347
+ console.log(` ${symbols.info} Skipped cloud AI setup`);
350
348
  }
351
349
  console.log('');
352
350
  }
@@ -362,8 +360,7 @@ async function commandSetupAi() {
362
360
  console.log(` ${c.dim('儲存設定失敗')}: ${msg}`);
363
361
  }
364
362
  console.log('');
365
- console.log(` ${symbols.info} Restart guard to apply changes: ${c.sage('panguard guard restart')}`);
366
- console.log(` ${c.dim('重啟守護以套用變更')}: panguard guard restart`);
363
+ console.log(` ${symbols.info} Restart guard to apply changes: ${c.sage('pga guard restart')}`);
367
364
  console.log('');
368
365
  }
369
366
  // ---------------------------------------------------------------------------