@panguard-ai/panguard 1.6.1 → 1.7.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.
Files changed (69) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/dist/cli/commands/audit.d.ts.map +1 -1
  3. package/dist/cli/commands/audit.js +56 -6
  4. package/dist/cli/commands/audit.js.map +1 -1
  5. package/dist/cli/commands/config.d.ts +6 -1
  6. package/dist/cli/commands/config.d.ts.map +1 -1
  7. package/dist/cli/commands/config.js +39 -23
  8. package/dist/cli/commands/config.js.map +1 -1
  9. package/dist/cli/commands/doctor.d.ts.map +1 -1
  10. package/dist/cli/commands/doctor.js +63 -20
  11. package/dist/cli/commands/doctor.js.map +1 -1
  12. package/dist/cli/commands/guard.d.ts.map +1 -1
  13. package/dist/cli/commands/guard.js +220 -70
  14. package/dist/cli/commands/guard.js.map +1 -1
  15. package/dist/cli/commands/hook.d.ts +115 -0
  16. package/dist/cli/commands/hook.d.ts.map +1 -0
  17. package/dist/cli/commands/hook.js +767 -0
  18. package/dist/cli/commands/hook.js.map +1 -0
  19. package/dist/cli/commands/persist.d.ts +32 -0
  20. package/dist/cli/commands/persist.d.ts.map +1 -0
  21. package/dist/cli/commands/persist.js +104 -0
  22. package/dist/cli/commands/persist.js.map +1 -0
  23. package/dist/cli/commands/scan.d.ts.map +1 -1
  24. package/dist/cli/commands/scan.js +75 -21
  25. package/dist/cli/commands/scan.js.map +1 -1
  26. package/dist/cli/commands/setup.d.ts.map +1 -1
  27. package/dist/cli/commands/setup.js +110 -37
  28. package/dist/cli/commands/setup.js.map +1 -1
  29. package/dist/cli/commands/status.d.ts.map +1 -1
  30. package/dist/cli/commands/status.js +66 -26
  31. package/dist/cli/commands/status.js.map +1 -1
  32. package/dist/cli/commands/up.d.ts.map +1 -1
  33. package/dist/cli/commands/up.js +257 -43
  34. package/dist/cli/commands/up.js.map +1 -1
  35. package/dist/cli/consent.d.ts +26 -6
  36. package/dist/cli/consent.d.ts.map +1 -1
  37. package/dist/cli/consent.js +47 -18
  38. package/dist/cli/consent.js.map +1 -1
  39. package/dist/cli/credentials.d.ts +11 -1
  40. package/dist/cli/credentials.d.ts.map +1 -1
  41. package/dist/cli/credentials.js +6 -1
  42. package/dist/cli/credentials.js.map +1 -1
  43. package/dist/cli/dashboard-url.d.ts +31 -0
  44. package/dist/cli/dashboard-url.d.ts.map +1 -0
  45. package/dist/cli/dashboard-url.js +66 -0
  46. package/dist/cli/dashboard-url.js.map +1 -0
  47. package/dist/cli/first-run.d.ts +35 -0
  48. package/dist/cli/first-run.d.ts.map +1 -0
  49. package/dist/cli/first-run.js +59 -0
  50. package/dist/cli/first-run.js.map +1 -0
  51. package/dist/cli/guard-config.d.ts.map +1 -1
  52. package/dist/cli/guard-config.js +15 -3
  53. package/dist/cli/guard-config.js.map +1 -1
  54. package/dist/cli/index.js +32 -11
  55. package/dist/cli/index.js.map +1 -1
  56. package/dist/cli/interactive/actions/setup.d.ts.map +1 -1
  57. package/dist/cli/interactive/actions/setup.js +2 -10
  58. package/dist/cli/interactive/actions/setup.js.map +1 -1
  59. package/dist/cli/interactive/menu-defs.js +6 -6
  60. package/dist/cli/interactive/render.js +1 -1
  61. package/dist/cli/interactive/render.js.map +1 -1
  62. package/dist/cli/workspace-sync.d.ts +0 -1
  63. package/dist/cli/workspace-sync.d.ts.map +1 -1
  64. package/dist/cli/workspace-sync.js +3 -1
  65. package/dist/cli/workspace-sync.js.map +1 -1
  66. package/dist/init/wizard-runner.d.ts.map +1 -1
  67. package/dist/init/wizard-runner.js +0 -8
  68. package/dist/init/wizard-runner.js.map +1 -1
  69. package/package.json +15 -14
@@ -3,20 +3,24 @@
3
3
  *
4
4
  * Flow: scan installed skills → warn about threats → start Guard → open dashboard
5
5
  */
6
- import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
7
- import { join, dirname } from 'node:path';
6
+ import { existsSync, readFileSync, readdirSync, statSync, mkdirSync, openSync } from 'node:fs';
7
+ import { join, dirname, resolve } from 'node:path';
8
8
  import { fileURLToPath } from 'node:url';
9
9
  import { homedir, platform } from 'node:os';
10
- import { execFile } from 'node:child_process';
10
+ import { execFile, spawn } from 'node:child_process';
11
11
  import { Command } from 'commander';
12
12
  import { runCLI } from '@panguard-ai/panguard-guard';
13
13
  import { c, setLogLevel } from '@panguard-ai/core';
14
14
  import { ok, warn, arrow, shield, brandTagline } from '../theme.js';
15
15
  import { detectLang } from '../interactive/lang.js';
16
+ import { ensureTelemetryConsent } from '../consent.js';
17
+ import { installFor, toHookPlatform } from './hook.js';
18
+ import { ensurePersistentService } from './persist.js';
19
+ import { isFirstRun, markInitialized } from '../first-run.js';
20
+ import { readAuthenticatedDashboardUrl, dashboardBaseUrl, } from '../dashboard-url.js';
16
21
  /** Minimal i18n for key user-facing strings */
17
22
  const t = (lang, en, zh) => (lang === 'zh-TW' ? zh : en);
18
23
  const TC_ENDPOINT = 'https://tc.panguard.ai';
19
- const DASHBOARD_URL = 'http://127.0.0.1:3100';
20
24
  function openBrowser(url) {
21
25
  const os = platform();
22
26
  if (os === 'win32') {
@@ -45,6 +49,29 @@ function isGuardRunning() {
45
49
  return false;
46
50
  }
47
51
  }
52
+ /**
53
+ * Whether Guard is installed as a persistent OS service (launchd/systemd). `pga up`
54
+ * starts a background daemon but does NOT install the service — so monitoring stops
55
+ * at the next reboot unless the user ran `pga guard install`. Used to keep the
56
+ * summary panel honest about persistence (a security tool must not overclaim it).
57
+ */
58
+ function isServiceInstalled() {
59
+ try {
60
+ const os = platform();
61
+ if (os === 'darwin') {
62
+ const dir = join(homedir(), 'Library', 'LaunchAgents');
63
+ return existsSync(dir) && readdirSync(dir).some((f) => /panguard.*guard.*\.plist$/i.test(f));
64
+ }
65
+ if (os === 'linux') {
66
+ const dir = join(homedir(), '.config', 'systemd', 'user');
67
+ return existsSync(dir) && readdirSync(dir).some((f) => /panguard.*guard/i.test(f));
68
+ }
69
+ }
70
+ catch {
71
+ /* best-effort */
72
+ }
73
+ return false;
74
+ }
48
75
  /**
49
76
  * Read the real rule count loaded by Guard from its TC cache, falling back to
50
77
  * the count actually bundled with THIS install (never a hardcoded guess — the
@@ -155,6 +182,7 @@ export function upCommand() {
155
182
  .option('--no-proxy', 'Scan only — do not inject runtime protection into agent configs')
156
183
  .option('--verbose', 'Verbose output', false)
157
184
  .option('--skip-scan', 'Skip initial skill scan', false)
185
+ .option('--no-persist', 'Do not install the reboot-surviving service (run only until reboot)')
158
186
  .option('-y, --yes', 'Skip confirmation prompts', false)
159
187
  .action(async (opts) => {
160
188
  // Suppress JSON logs for clean output — set env var BEFORE any dynamic imports
@@ -168,9 +196,13 @@ export function upCommand() {
168
196
  console.log(`\n ${c.sage(c.bold('PanGuard'))} ${c.dim(t(lang, 'Your AI Security Guard', '你的 AI 安全防護'))}`);
169
197
  console.log(` ${c.dim(brandTagline(lang))}\n`);
170
198
  console.log(` ${c.dim('─'.repeat(50))}\n`);
171
- const activatedMarker = join(homedir(), '.panguard', 'activated');
172
- const isFirstRun = !existsSync(activatedMarker);
173
- if (isFirstRun) {
199
+ // First-run detection uses a durable, telemetry-independent marker
200
+ // (~/.panguard/.initialized) so the welcome + interactive setup run ONCE.
201
+ // The old ~/.panguard/activated marker was written only by the opt-in
202
+ // Threat Cloud ping, so an opt-out user (the default) saw the welcome +
203
+ // setup on every single `pga up`.
204
+ const firstRun = isFirstRun();
205
+ if (firstRun) {
174
206
  console.log('');
175
207
  console.log(` ${c.sage(c.bold(t(lang, 'Welcome to PanGuard AI!', '歡迎使用 PanGuard AI!')))}`);
176
208
  console.log('');
@@ -191,6 +223,36 @@ export function upCommand() {
191
223
  process.stderr.write(`[panguard up] Setup failed: ${err instanceof Error ? err.message : String(err)}\n`);
192
224
  }
193
225
  }
226
+ // ── Threat Cloud policy + consent (BEFORE we scan or deploy anything) ──
227
+ // Discloses exactly what is shared — anonymized threat signatures + one-way
228
+ // hashes, never code/prompts/PII — and asks once. OPT-IN, default OFF: a
229
+ // bare Enter declines and nothing leaves the machine. This gates all TC
230
+ // upload, and is changeable anytime (pga config set telemetry true / the
231
+ // dashboard Settings + Threat Cloud toggle). Non-interactive (CI) stays OFF.
232
+ const telemetryConsented = await ensureTelemetryConsent();
233
+ // Whether the scan flywheel may upload to Threat Cloud. OPT-IN, default
234
+ // OFF: requires an affirmative consent (telemetryConsented) AND that TC
235
+ // upload is EXPLICITLY enabled in config (threatCloudUploadEnabled ===
236
+ // true). Absent/unset config => OFF (gate is `=== true`, never `!== false`).
237
+ // Nothing leaves the machine unless the user opted in via the first-run
238
+ // prompt / `pga config set telemetry true` / the dashboard toggle.
239
+ const tcUploadAllowed = (() => {
240
+ if (!telemetryConsented)
241
+ return false;
242
+ try {
243
+ const cfgPath = join(homedir(), '.panguard-guard', 'config.json');
244
+ if (existsSync(cfgPath)) {
245
+ const cfg = JSON.parse(readFileSync(cfgPath, 'utf-8'));
246
+ return cfg.threatCloudUploadEnabled === true;
247
+ }
248
+ }
249
+ catch {
250
+ // On any read error, fail closed — do not upload.
251
+ return false;
252
+ }
253
+ // No config on disk yet => not opted in => OFF.
254
+ return false;
255
+ })();
194
256
  // ── Step 1: Detect AI platforms (we SCAN before deploying) ──
195
257
  let platformCount = 0;
196
258
  let serverCount = 0;
@@ -296,8 +358,10 @@ export function upCommand() {
296
358
  riskScore: report.riskScore,
297
359
  });
298
360
  }
299
- // ── Flywheel: submit scan results to TC ──
300
- if (report.riskScore > 0) {
361
+ // ── Flywheel: submit scan results to TC (consent-gated) ──
362
+ // Never upload anything when the user has not consented or
363
+ // has opted out of Threat Cloud.
364
+ if (tcUploadAllowed && report.riskScore > 0) {
301
365
  submitToTC(skill.name, skillDir, report).catch(() => { });
302
366
  }
303
367
  }
@@ -397,48 +461,157 @@ export function upCommand() {
397
461
  console.log(` ${c.critical(`${r.platformId}: ${r.error}`)}`);
398
462
  }
399
463
  }
464
+ // The MCP proxy only covers MCP tool servers. An agent's BUILT-IN
465
+ // tools (Bash/Edit/Write/WebFetch) bypass it — the most dangerous
466
+ // surface. Register the per-platform tool-call hook on EVERY detected
467
+ // platform that exposes one, so built-in tools are evaluated too.
468
+ const hookable = detectedPlatforms
469
+ .map((p) => toHookPlatform(p.id))
470
+ .filter((p) => p !== null);
471
+ if (hookable.length) {
472
+ const done = [];
473
+ for (const hp of hookable) {
474
+ try {
475
+ if (installFor(hp) !== 'error')
476
+ done.push(hp);
477
+ }
478
+ catch {
479
+ /* best-effort; pga hook install can retry */
480
+ }
481
+ }
482
+ if (done.length) {
483
+ console.log(` ${c.safe(`Built-in tools guarded on ${done.length} platform(s)`)} ` +
484
+ `${c.dim(`(${done.join(', ')} — restart the agent to activate)`)}`);
485
+ }
486
+ }
400
487
  }
401
488
  console.log();
402
489
  }
403
- // ── Activation tracking (one-time, respects telemetry opt-out) ──
404
- const telemetryDisabled = (() => {
405
- try {
406
- const cfgPath = join(homedir(), '.panguard-guard', 'config.json');
407
- if (existsSync(cfgPath)) {
408
- const cfg = JSON.parse(readFileSync(cfgPath, 'utf-8'));
409
- return cfg.telemetryEnabled === false;
410
- }
411
- }
412
- catch {
413
- /* default to enabled */
414
- }
415
- return false;
416
- })();
417
- if (!telemetryDisabled) {
490
+ // ── Activation tracking (one-time, OPT-IN) ──
491
+ // The activation ping is non-essential collective telemetry, so it only
492
+ // fires when the user has EXPLICITLY opted in (threatCloudUploadEnabled
493
+ // === true). Default OFF: absent/unset config or any read error => no ping.
494
+ const telemetryDisabled = !tcUploadAllowed;
495
+ if (tcUploadAllowed) {
418
496
  reportActivation().catch(() => { });
419
497
  }
420
498
  // ── Summary + Start Guard ─────────────────────────────
421
499
  const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
422
500
  const guardAlreadyRunning = isGuardRunning();
501
+ // Persistence: on macOS install a user-level LaunchAgent (no sudo) so
502
+ // protection survives reboot like an antivirus. The service IS the daemon
503
+ // (RunAtLoad), so when we install it we do NOT also spawn an ephemeral one
504
+ // — two daemons would fight over the dashboard port. Linux/Windows keep
505
+ // the ephemeral daemon plus the honest "pga guard install" hint.
506
+ let persistResult = isServiceInstalled() ? 'already' : 'unsupported';
423
507
  if (!guardAlreadyRunning) {
424
- // Suppress guard's own banner/status pga up has its own summary
425
- process.env['PANGUARD_QUIET_GUARD'] = '1';
426
- const args = ['start'];
427
- if (opts.dashboard)
428
- args.push('--dashboard');
429
- if (opts.verbose)
430
- args.push('--verbose');
431
- try {
432
- await runCLI(args);
508
+ if (opts.persist !== false && platform() === 'darwin' && persistResult !== 'already') {
509
+ persistResult = ensurePersistentService();
433
510
  }
434
- catch (err) {
435
- process.stderr.write(` ${c.caution('Guard start failed:')} ${err instanceof Error ? err.message : String(err)}\n`);
511
+ const serviceManages = persistResult === 'installed' || persistResult === 'already';
512
+ if (serviceManages) {
513
+ // launchctl starts the daemon asynchronously — wait briefly (up to
514
+ // ~3s for the PID file) so the summary reflects reality.
515
+ for (let i = 0; i < 30 && !isGuardRunning(); i++) {
516
+ await new Promise((r) => setTimeout(r, 100));
517
+ }
518
+ }
519
+ else {
520
+ // Ephemeral fallback (no reboot-surviving service, e.g. --no-persist
521
+ // or a non-macOS host without an installed service): spawn a DETACHED
522
+ // background daemon so protection actually runs until reboot. Running
523
+ // the guard in-process (runCLI('start')) would die the moment `pga up`
524
+ // returns — commandStart is a foreground daemon, so it must be its own
525
+ // process, exactly like the launchd/systemd path. spawn + detached +
526
+ // unref() is what keeps it alive after this process exits.
527
+ // Re-launch THIS CLI entry running `guard --watch` — the exact command
528
+ // the launchd/systemd service runs — as a detached process. Resolving
529
+ // the guard package would fail here: its exports map defines only an
530
+ // `import` condition, so require.resolve (CJS) throws "No exports main".
531
+ // process.argv[1] is the running CLI entry and needs no resolution.
532
+ const watchArgs = ['guard', '--watch'];
533
+ if (opts.dashboard)
534
+ watchArgs.push('--dashboard');
535
+ if (opts.verbose)
536
+ watchArgs.push('--verbose');
537
+ // Resolve to an absolute path: when invoked as `node ./dist/...` the
538
+ // entry is relative, and a detached child must not depend on inheriting
539
+ // the right cwd to find it.
540
+ const cliEntry = process.argv[1] ? resolve(process.argv[1]) : '';
541
+ try {
542
+ if (cliEntry && existsSync(cliEntry)) {
543
+ // Send the daemon's console output to its own log (like launchd),
544
+ // not /dev/null, so a failed background start is diagnosable.
545
+ let outFd = 'ignore';
546
+ try {
547
+ const gdir = join(homedir(), '.panguard-guard');
548
+ if (!existsSync(gdir))
549
+ mkdirSync(gdir, { recursive: true, mode: 0o700 });
550
+ outFd = openSync(join(gdir, 'panguard-guard.log'), 'a');
551
+ }
552
+ catch {
553
+ outFd = 'ignore';
554
+ }
555
+ const child = spawn(process.execPath, [cliEntry, ...watchArgs], {
556
+ detached: true,
557
+ stdio: ['ignore', outFd, outFd],
558
+ env: { ...process.env, PANGUARD_QUIET_GUARD: '1' },
559
+ });
560
+ child.unref();
561
+ // Wait briefly for the detached daemon to come up so the summary
562
+ // + authenticated-URL step below reflect a running guard.
563
+ for (let i = 0; i < 30 && !isGuardRunning(); i++) {
564
+ await new Promise((r) => setTimeout(r, 100));
565
+ }
566
+ }
567
+ else {
568
+ // Last-resort fallback (no resolvable CLI entry): in-process start.
569
+ // Protection lasts only while this process lives — degraded, but
570
+ // better than no daemon at all.
571
+ process.env['PANGUARD_QUIET_GUARD'] = '1';
572
+ const inProc = ['start'];
573
+ if (opts.dashboard)
574
+ inProc.push('--dashboard');
575
+ if (opts.verbose)
576
+ inProc.push('--verbose');
577
+ await runCLI(inProc);
578
+ }
579
+ }
580
+ catch (err) {
581
+ process.stderr.write(` ${c.caution('Guard start failed:')} ${err instanceof Error ? err.message : String(err)}\n`);
582
+ }
583
+ }
584
+ }
585
+ // ── Resolve the AUTHENTICATED dashboard URL ──────────────────
586
+ // The daemon persists its launch token once the dashboard is listening.
587
+ // The launchd path writes the PID file before the dashboard token, so
588
+ // there can be a brief window where the daemon is up but the token is
589
+ // not yet on disk — poll up to ~2s before falling back to guidance, so
590
+ // we never open/print a bare URL that 401s.
591
+ let dashboardUrl = null;
592
+ if (opts.dashboard && isGuardRunning()) {
593
+ for (let i = 0; i < 20; i++) {
594
+ dashboardUrl = readAuthenticatedDashboardUrl();
595
+ if (dashboardUrl)
596
+ break;
597
+ await new Promise((r) => setTimeout(r, 100));
436
598
  }
437
599
  }
438
600
  // ── Open dashboard (after Guard is up so the server is listening) ──
601
+ // Open + print the AUTHENTICATED URL so it works on rerun, headless, or
602
+ // when copied. If the token is unavailable, print guidance instead of a
603
+ // dead bare URL that would land on a 401 "Invalid token" page.
439
604
  if (opts.dashboard) {
440
- console.log(`\n ${c.sage(`Opening dashboard: ${DASHBOARD_URL}`)}\n`);
441
- openBrowser(DASHBOARD_URL);
605
+ if (dashboardUrl) {
606
+ console.log(`\n ${c.sage(`Opening dashboard: ${dashboardBaseUrl()}`)}\n`);
607
+ openBrowser(dashboardUrl);
608
+ }
609
+ else if (isGuardRunning()) {
610
+ console.log(`\n ${c.caution(t(lang, `Dashboard is still starting. Re-run "pga up" in a moment to open it.`, `儀表板仍在啟動中。請稍後再次執行「pga up」開啟。`))}\n`);
611
+ }
612
+ else {
613
+ console.log(`\n ${c.caution(t(lang, `Dashboard not available (Guard is not running). Start it with: pga up`, `儀表板無法使用(Guard 未執行)。請用以下指令啟動:pga up`))}\n`);
614
+ }
442
615
  }
443
616
  // ── Read rule count + TC status ──────────
444
617
  const ruleCount = readRuleCountFromCache();
@@ -468,9 +641,21 @@ export function upCommand() {
468
641
  console.log(`\n ${c.dim('\u2500'.repeat(50))}`);
469
642
  console.log(` ${statusLabel} ${c.dim(`\u2014 ${elapsed}s`)}`);
470
643
  console.log(` ${c.dim('\u2500'.repeat(50))}`);
644
+ // Honest persistence framing: say plainly whether protection survives a
645
+ // reboot \u2014 never imply always-on when it's only a until-reboot daemon.
646
+ const persisted = persistResult === 'installed' || persistResult === 'already' || isServiceInstalled();
647
+ if (guardRunning && persisted) {
648
+ console.log(` ${c.dim(t(lang, 'Always-on: protection restarts after reboot (launchd).', '\u5e38\u99d0:\u91cd\u958b\u6a5f\u5f8c\u81ea\u52d5\u6062\u5fa9\u9632\u8b77(launchd)\u3002'))}`);
649
+ }
650
+ else if (guardRunning) {
651
+ console.log(` ${c.dim(t(lang, 'Runs until reboot. For always-on monitoring: pga guard install', '\u6301\u7e8c\u5230\u91cd\u958b\u6a5f\u70ba\u6b62\u3002\u8981\u958b\u6a5f\u5f8c\u4ecd\u6301\u7e8c\u76e3\u63a7:pga guard install'))}`);
652
+ }
471
653
  console.log('');
472
654
  if (opts.dashboard) {
473
- console.log(` ${c.sage('Dashboard')} ${DASHBOARD_URL}`);
655
+ // Print the AUTHENTICATED URL (with token) so copy-pasting it works —
656
+ // a bare URL 401s. Fall back to the base URL only as a last resort
657
+ // when the token is not yet on disk.
658
+ console.log(` ${c.sage('Dashboard')} ${dashboardUrl ?? dashboardBaseUrl()}`);
474
659
  }
475
660
  console.log(` ${c.sage(t(lang, 'Rules', '規則'))} ${ruleCount} ${t(lang, 'detection rules active', '條偵測規則運作中')}`);
476
661
  if (platformCount > 0) {
@@ -495,7 +680,13 @@ export function upCommand() {
495
680
  }
496
681
  // ── Next steps ─────────────────────────────────────────
497
682
  console.log(` ${c.bold(t(lang, 'NEXT STEPS', '下一步'))}`);
498
- console.log(` ${c.dim('1.')} ${t(lang, 'Open dashboard', '開啟儀表板')} ${c.sage(DASHBOARD_URL)}`);
683
+ if (dashboardUrl) {
684
+ console.log(` ${c.dim('1.')} ${t(lang, 'Open dashboard', '開啟儀表板')} ${c.sage(dashboardUrl)}`);
685
+ }
686
+ else {
687
+ // No live token: point at re-running `pga up` rather than a dead URL.
688
+ console.log(` ${c.dim('1.')} ${t(lang, 'Open dashboard', '開啟儀表板')} ${c.dim(t(lang, 'run "pga up" to open the dashboard', '執行「pga up」開啟儀表板'))}`);
689
+ }
499
690
  if (threatCount > 0) {
500
691
  console.log(` ${c.dim('2.')} ${t(lang, 'Review threats', '檢視威脅')} ${c.caution(`${threatCount} ${t(lang, 'flagged', '個標記')}`)} ${c.dim('\u2014 pga audit skill <name>')}`);
501
692
  console.log(` ${c.dim('3.')} ${t(lang, 'Upgrade detection', '升級偵測')} ${c.dim('pga guard setup-ai')}`);
@@ -506,11 +697,28 @@ export function upCommand() {
506
697
  console.log('');
507
698
  console.log(` ${c.dim(t(lang, 'Layer 1 (regex) catches ~70% of attacks at zero cost.', 'Layer 1 (正則) 零成本攔截約 70% 攻擊。'))}`);
508
699
  console.log(` ${c.dim(t(lang, 'Add Layer 2 (local AI) or 3 (cloud AI) for deeper detection.', '加入 Layer 2 (本地 AI) 或 Layer 3 (雲端 AI) 提升偵測深度。'))}`);
509
- if (!telemetryDisabled) {
510
- console.log(` ${c.dim(t(lang, 'Telemetry: anonymous usage stats sent to tc.panguard.ai', '遙測:匿名使用統計會傳送至 tc.panguard.ai'))}`);
511
- console.log(` ${c.dim(t(lang, 'Opt out: pga config set telemetry false', '關閉:pga config set telemetry false'))}`);
700
+ if (tcUploadAllowed) {
701
+ console.log(` ${c.dim(t(lang, 'Collective defense ON: when an attack is blocked, only the matched rule ID,', '集體防禦已開啟:擋下攻擊時,只分享命中的規則 ID、'))}`);
702
+ console.log(` ${c.dim(t(lang, 'a one-way payload hash, and the source type are shared — never your prompts,', 'payload 的單向雜湊、來源類型 絕不含你的 prompt、'))}`);
703
+ console.log(` ${c.dim(t(lang, 'code, file contents, keys, hostname, or IP. Thank you for defending the commons.', '程式碼、檔案內容、金鑰、主機名或 IP。謝謝你一起守護社群。'))}`);
704
+ console.log(` ${c.dim(t(lang, 'Turn off anytime: pga config set telemetry false', '隨時可關閉:pga config set telemetry false'))}`);
705
+ }
706
+ else {
707
+ // OPT-IN guidance (NOT a default, NOT a nag): explain the value + the
708
+ // privacy guarantee + the one command, so the user can make an
709
+ // informed choice. Collective defense stays OFF until they opt in.
710
+ console.log(` ${c.dim(t(lang, 'Collective defense is OFF — nothing leaves this machine.', '集體防禦目前關閉 — 沒有任何資料離開這台機器。'))}`);
711
+ console.log(` ${c.dim(t(lang, 'Want to help? Each attack you block can become a new ATR rule that protects', '想幫忙嗎?你擋下的每次攻擊,都能變成一條保護所有人的新 ATR 規則,'))}`);
712
+ console.log(` ${c.dim(t(lang, 'everyone — and you get community rules back faster. Shared: only the matched', '而你也能更快收到社群回流的規則。分享的只有命中的規則 ID、'))}`);
713
+ console.log(` ${c.dim(t(lang, 'rule ID, a one-way hash, and the source type. Never your prompts, code,', 'payload 的單向雜湊、來源類型。絕不含你的 prompt、程式碼、'))}`);
714
+ console.log(` ${c.dim(t(lang, 'file contents, keys, hostname, or IP. Opt in: pga config set telemetry true', '檔案內容、金鑰、主機名或 IP。開啟:pga config set telemetry true'))}`);
512
715
  }
513
716
  console.log('');
717
+ // The full first run completed: record the durable marker so the next
718
+ // `pga up` (and bare `pga`) skip the welcome + interactive setup and go
719
+ // straight to scan -> protect -> summary. Independent of telemetry
720
+ // consent, so opt-out users are no longer nagged every run.
721
+ markInitialized();
514
722
  });
515
723
  }
516
724
  /** Best-effort submit scan results to Threat Cloud for the flywheel */
@@ -621,7 +829,8 @@ async function reportActivation() {
621
829
  if (fe(marker))
622
830
  return;
623
831
  const { randomUUID } = await import('node:crypto');
624
- const idPath = join(homedir(), '.panguard', 'client-id');
832
+ const idDir = join(homedir(), '.panguard');
833
+ const idPath = join(idDir, 'client-id');
625
834
  let clientId;
626
835
  try {
627
836
  clientId = rf(idPath, 'utf-8').trim();
@@ -629,6 +838,11 @@ async function reportActivation() {
629
838
  catch {
630
839
  clientId = randomUUID();
631
840
  try {
841
+ // On a true first run ~/.panguard may not exist yet; create it (0o700)
842
+ // before writing the client-id, otherwise the write ENOENTs and
843
+ // readSensorId() keeps returning null forever.
844
+ if (!fe(idDir))
845
+ md(idDir, { recursive: true, mode: 0o700 });
632
846
  wf(idPath, clientId, 'utf-8');
633
847
  }
634
848
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"up.js","sourceRoot":"","sources":["../../../src/cli/commands/up.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"up.js","sourceRoot":"","sources":["../../../src/cli/commands/up.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,25 @@
1
1
  /**
2
2
  * Telemetry consent — first-run collective-defense disclosure.
3
3
  *
4
- * On first interactive run we disclose what is shared (matched rule ID, a
5
- * one-way payload hash, source type never prompts/code/data, no IP, a random
6
- * install ID) and default to ON (opt-out). Raw samples are never sent unless
7
- * the user opts in separately. Non-interactive (CI) stays OFF until explicitly
8
- * enabled. The guard event-processor will not upload anything before this
9
- * disclosure has been shown at least once (it gates on the marker written here).
4
+ * Collective-defense sharing is OPT-IN and defaults to OFF. On first interactive
5
+ * run we explain BOTH the value (your blocked attacks become ATR rules that
6
+ * protect everyone, and you get community rules back faster) and the privacy
7
+ * guarantee (matched rule ID, a one-way payload hash, source type — never
8
+ * prompts/code/file contents/keys, no IP, no hostname, a random install ID),
9
+ * then ask the user to turn it ON; pressing Enter declines. This is an informed
10
+ * invitation, not a nag or a pre-checked default. Raw samples are never sent.
11
+ * Non-interactive (CI) stays OFF until explicitly enabled. Nothing leaves the
12
+ * machine unless the user explicitly opts in (gates are `=== true`).
10
13
  */
11
14
  /** Check if consent has already been asked */
12
15
  export declare function hasConsentBeenAsked(): boolean;
16
+ /**
17
+ * Mark consent as asked (regardless of answer). Exported so a command that owns
18
+ * its own consent prompt (e.g. `pga setup`'s Threat Cloud question) can record
19
+ * that the user has already been asked — preventing the trailing
20
+ * `ensureTelemetryConsent()` from re-prompting and overwriting the first answer.
21
+ */
22
+ export declare function markConsentAsked(): void;
13
23
  /**
14
24
  * Ask the user for telemetry consent (opt-in).
15
25
  * Returns true if the user opted in, false otherwise.
@@ -17,6 +27,16 @@ export declare function hasConsentBeenAsked(): boolean;
17
27
  * In non-interactive mode (no TTY), defaults to OFF and marks as asked.
18
28
  */
19
29
  export declare function askTelemetryConsent(): Promise<boolean>;
30
+ /**
31
+ * Non-interactive read: has the user explicitly opted in to Threat Cloud upload?
32
+ *
33
+ * Use this on one-off code paths (e.g. `pga scan <path>`) that must NEVER trigger
34
+ * an outbound upload — or an interactive prompt — but still need to honour a prior
35
+ * opt-in. Defaults to FALSE (no upload) when config is absent or unreadable, so the
36
+ * privacy guarantee holds by default. Gate is `=== true`, matching the guard's
37
+ * upload gate.
38
+ */
39
+ export declare function isThreatCloudUploadEnabled(): boolean;
20
40
  /**
21
41
  * Check and ask for telemetry consent if not yet asked.
22
42
  * Call this at the start of scan/setup commands.
@@ -1 +1 @@
1
- {"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../src/cli/consent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,8CAA8C;AAC9C,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAcD;;;;;GAKG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAuC5D;AAqBD;;;;GAIG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO/D"}
1
+ {"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../src/cli/consent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH,8CAA8C;AAC9C,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CASvC;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CA2C5D;AAsBD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAMpD;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO/D"}