hacklab 0.6.7 → 0.7.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.
Files changed (80) hide show
  1. package/README.md +36 -6
  2. package/dist/card.d.ts +66 -0
  3. package/dist/card.d.ts.map +1 -0
  4. package/dist/card.js +151 -0
  5. package/dist/card.js.map +1 -0
  6. package/dist/commands/brag.d.ts.map +1 -1
  7. package/dist/commands/brag.js +5 -0
  8. package/dist/commands/brag.js.map +1 -1
  9. package/dist/commands/chat.d.ts +21 -1
  10. package/dist/commands/chat.d.ts.map +1 -1
  11. package/dist/commands/chat.js +109 -14
  12. package/dist/commands/chat.js.map +1 -1
  13. package/dist/commands/config.d.ts.map +1 -1
  14. package/dist/commands/config.js +21 -9
  15. package/dist/commands/config.js.map +1 -1
  16. package/dist/commands/drop.d.ts.map +1 -1
  17. package/dist/commands/drop.js +5 -0
  18. package/dist/commands/drop.js.map +1 -1
  19. package/dist/commands/essay.d.ts +24 -0
  20. package/dist/commands/essay.d.ts.map +1 -0
  21. package/dist/commands/essay.js +434 -0
  22. package/dist/commands/essay.js.map +1 -0
  23. package/dist/commands/hacker.d.ts +2 -0
  24. package/dist/commands/hacker.d.ts.map +1 -0
  25. package/dist/commands/hacker.js +119 -0
  26. package/dist/commands/hacker.js.map +1 -0
  27. package/dist/commands/join.d.ts.map +1 -1
  28. package/dist/commands/join.js +153 -11
  29. package/dist/commands/join.js.map +1 -1
  30. package/dist/commands/login.d.ts.map +1 -1
  31. package/dist/commands/login.js +13 -0
  32. package/dist/commands/login.js.map +1 -1
  33. package/dist/commands/logout.d.ts.map +1 -1
  34. package/dist/commands/logout.js +2 -0
  35. package/dist/commands/logout.js.map +1 -1
  36. package/dist/commands/org.d.ts +0 -2
  37. package/dist/commands/org.d.ts.map +1 -1
  38. package/dist/commands/org.js +1 -17
  39. package/dist/commands/org.js.map +1 -1
  40. package/dist/commands/sync.d.ts.map +1 -1
  41. package/dist/commands/sync.js +25 -1
  42. package/dist/commands/sync.js.map +1 -1
  43. package/dist/commands/update.d.ts +2 -0
  44. package/dist/commands/update.d.ts.map +1 -0
  45. package/dist/commands/update.js +92 -0
  46. package/dist/commands/update.js.map +1 -0
  47. package/dist/config.d.ts +26 -0
  48. package/dist/config.d.ts.map +1 -1
  49. package/dist/config.js +31 -0
  50. package/dist/config.js.map +1 -1
  51. package/dist/index.js +44 -21
  52. package/dist/index.js.map +1 -1
  53. package/dist/posthog.d.ts +9 -0
  54. package/dist/posthog.d.ts.map +1 -0
  55. package/dist/posthog.js +20 -0
  56. package/dist/posthog.js.map +1 -0
  57. package/dist/registry.d.ts.map +1 -1
  58. package/dist/registry.js +20 -0
  59. package/dist/registry.js.map +1 -1
  60. package/dist/scanners/index.d.ts +24 -2
  61. package/dist/scanners/index.d.ts.map +1 -1
  62. package/dist/scanners/index.js +103 -15
  63. package/dist/scanners/index.js.map +1 -1
  64. package/dist/session.d.ts +1 -0
  65. package/dist/session.d.ts.map +1 -1
  66. package/dist/session.js +16 -0
  67. package/dist/session.js.map +1 -1
  68. package/dist/ui.d.ts +12 -0
  69. package/dist/ui.d.ts.map +1 -1
  70. package/dist/ui.js +56 -0
  71. package/dist/ui.js.map +1 -1
  72. package/dist/utils/npmGlobal.d.ts +30 -0
  73. package/dist/utils/npmGlobal.d.ts.map +1 -0
  74. package/dist/utils/npmGlobal.js +69 -0
  75. package/dist/utils/npmGlobal.js.map +1 -0
  76. package/dist/utils/updateCheck.d.ts +6 -0
  77. package/dist/utils/updateCheck.d.ts.map +1 -1
  78. package/dist/utils/updateCheck.js +7 -2
  79. package/dist/utils/updateCheck.js.map +1 -1
  80. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,17 @@ export declare function scanCodex(): Promise<ScanResult>;
5
5
  export declare function scanHermes(): Promise<ScanResult>;
6
6
  export declare function scanOpenclaw(): Promise<ScanResult>;
7
7
  export declare function scanOpenCode(): Promise<ScanResult>;
8
+ /**
9
+ * Does this machine look like a Cursor machine? `join` uses this to decide
10
+ * whether asking for a Cursor API key is worth a prompt.
11
+ *
12
+ * A false positive costs a question the user has to skip, so this looks for
13
+ * evidence Cursor has been *used* — the AI-tracking db, editor session state,
14
+ * per-workspace storage, or local file history — rather than merely installed.
15
+ * Every probe is a filesystem existence check, so it stays cheap enough to run
16
+ * inline in the join flow.
17
+ */
18
+ export declare function detectCursorUsage(): Promise<boolean>;
8
19
  export declare function scanCursorLocal(): Promise<ScanResult>;
9
20
  export declare function scanCursorApi(): Promise<ScanResult>;
10
21
  export type AggregateScan = {
@@ -16,9 +27,20 @@ export type AggregateScan = {
16
27
  cursorStats: CursorStats | null;
17
28
  cursorScanStatus: CursorScanStatus;
18
29
  };
30
+ /** Run every scanner in parallel, returning one resolved result per tool. */
31
+ export declare function collectToolScans(): Promise<ScanResult[]>;
32
+ /**
33
+ * Re-run only the Cursor API scanner and swap the result into an existing set of
34
+ * scans. `join` calls this after the user supplies a key mid-flow, so the exact
35
+ * API numbers replace the local estimate without re-walking every other tool's
36
+ * logs (which for a heavy Claude Code user means re-parsing thousands of files).
37
+ */
38
+ export declare function rescanCursorWithApi(results: ScanResult[]): Promise<ScanResult[]>;
39
+ /** Merge per-tool results into a single submit-ready payload. */
40
+ export declare function mergeToolScans(results: ScanResult[]): AggregateScan;
19
41
  /**
20
- * Run every scanner in parallel and merge into a single submit-ready payload.
21
- * Cursor prefers the API source when configured; otherwise the local estimate.
42
+ * Run every scanner and merge the results — the one-shot entry point for callers
43
+ * that don't need to re-scan a single tool afterwards (`sync`, the daily job).
22
44
  */
23
45
  export declare function scanAllTools(): Promise<AggregateScan>;
24
46
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAGnB,KAAK,WAAW,EAChB,KAAK,UAAU,EAGhB,MAAM,WAAW,CAAA;AAElB,cAAc,WAAW,CAAA;AAKzB,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAuD1D;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,CAiDrD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CAmDtD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CAgFxD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CA+FxD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,CAuE3D;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CAmHzD;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,WAAW,EAAE,cAAc,EAAE,CAAA;IAC7B,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,gBAAgB,EAAE,gBAAgB,CAAA;CACnC,CAAA;AAED;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,CA6C3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAGnB,KAAK,WAAW,EAChB,KAAK,UAAU,EAGhB,MAAM,WAAW,CAAA;AAElB,cAAc,WAAW,CAAA;AAKzB,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAuD1D;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,CAiDrD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CAmDtD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CAgFxD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CA+FxD;AAsCD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAU1D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,CAkE3D;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CAkHzD;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,WAAW,EAAE,cAAc,EAAE,CAAA;IAC7B,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,gBAAgB,EAAE,gBAAgB,CAAA;CACnC,CAAA;AAsBD,6EAA6E;AAC7E,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAc9D;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,UAAU,EAAE,GACpB,OAAO,CAAC,UAAU,EAAE,CAAC,CAGvB;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,aAAa,CA+BnE;AAED;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,CAE3D"}
@@ -1,7 +1,7 @@
1
1
  import { readdir, readFile, stat } from 'node:fs/promises';
2
2
  import { homedir } from 'node:os';
3
3
  import { join } from 'node:path';
4
- import { loadConfig } from '../config.js';
4
+ import { resolveCursorAuth } from '../config.js';
5
5
  import { emptyResult, findFiles, TokenCollector, toDateStr, } from './util.js';
6
6
  export * from './util.js';
7
7
  // One self-contained scanner per tool. Each returns a uniform ScanResult and
@@ -334,8 +334,61 @@ export async function scanOpenCode() {
334
334
  }
335
335
  return collector.result();
336
336
  }
337
+ const CURSOR_TRACKING_DB = join(homedir(), '.cursor', 'ai-tracking', 'ai-code-tracking.db');
338
+ /** Cursor's Electron state dir, per platform. Not where the tracking db lives. */
339
+ function cursorStateDirs() {
340
+ const home = homedir();
341
+ if (process.platform === 'darwin') {
342
+ return [join(home, 'Library', 'Application Support', 'Cursor')];
343
+ }
344
+ if (process.platform === 'win32') {
345
+ return process.env.APPDATA ? [join(process.env.APPDATA, 'Cursor')] : [];
346
+ }
347
+ return [join(home, '.config', 'Cursor')];
348
+ }
349
+ async function pathExists(p) {
350
+ try {
351
+ await stat(p);
352
+ return true;
353
+ }
354
+ catch {
355
+ return false;
356
+ }
357
+ }
358
+ async function dirHasEntries(p) {
359
+ try {
360
+ return (await readdir(p)).length > 0;
361
+ }
362
+ catch {
363
+ return false;
364
+ }
365
+ }
366
+ /**
367
+ * Does this machine look like a Cursor machine? `join` uses this to decide
368
+ * whether asking for a Cursor API key is worth a prompt.
369
+ *
370
+ * A false positive costs a question the user has to skip, so this looks for
371
+ * evidence Cursor has been *used* — the AI-tracking db, editor session state,
372
+ * per-workspace storage, or local file history — rather than merely installed.
373
+ * Every probe is a filesystem existence check, so it stays cheap enough to run
374
+ * inline in the join flow.
375
+ */
376
+ export async function detectCursorUsage() {
377
+ if (await pathExists(CURSOR_TRACKING_DB))
378
+ return true;
379
+ for (const dir of cursorStateDirs()) {
380
+ if (await pathExists(join(dir, 'User', 'globalStorage', 'state.vscdb'))) {
381
+ return true;
382
+ }
383
+ if (await dirHasEntries(join(dir, 'User', 'workspaceStorage')))
384
+ return true;
385
+ if (await dirHasEntries(join(dir, 'User', 'History')))
386
+ return true;
387
+ }
388
+ return false;
389
+ }
337
390
  export async function scanCursorLocal() {
338
- const dbPath = join(homedir(), '.cursor', 'ai-tracking', 'ai-code-tracking.db');
391
+ const dbPath = CURSOR_TRACKING_DB;
339
392
  try {
340
393
  await stat(dbPath);
341
394
  }
@@ -391,12 +444,11 @@ export async function scanCursorLocal() {
391
444
  }
392
445
  }
393
446
  export async function scanCursorApi() {
394
- const config = await loadConfig();
395
- if (!config.cursorApiKey) {
447
+ const { apiKey, email } = await resolveCursorAuth();
448
+ if (!apiKey) {
396
449
  return { ...emptyResult('cursor'), cursorScanStatus: { source: 'none' } };
397
450
  }
398
451
  const collector = new TokenCollector('cursor');
399
- const email = config.cursorEmail;
400
452
  const now = Date.now();
401
453
  const startDate = now - 5 * 365 * 24 * 60 * 60 * 1000;
402
454
  const endDate = now;
@@ -422,7 +474,7 @@ export async function scanCursorApi() {
422
474
  method: 'POST',
423
475
  headers: {
424
476
  'Content-Type': 'application/json',
425
- Authorization: `Bearer ${config.cursorApiKey}`,
477
+ Authorization: `Bearer ${apiKey}`,
426
478
  },
427
479
  body: JSON.stringify(body),
428
480
  });
@@ -443,7 +495,7 @@ export async function scanCursorApi() {
443
495
  ...emptyResult('cursor'),
444
496
  cursorScanStatus: {
445
497
  source: 'api-failed',
446
- reason: `auth ${res.status} — check CURSOR_API_KEY`,
498
+ reason: `Cursor rejected the API key (auth ${res.status})`,
447
499
  },
448
500
  };
449
501
  }
@@ -496,10 +548,26 @@ export async function scanCursorApi() {
496
548
  return collector.result({ cursorScanStatus });
497
549
  }
498
550
  /**
499
- * Run every scanner in parallel and merge into a single submit-ready payload.
500
- * Cursor prefers the API source when configured; otherwise the local estimate.
551
+ * Choose between the two Cursor sources: the API scan when it produced data,
552
+ * else the local `lines × 30` estimate.
553
+ *
554
+ * Either way the winner carries the local commit stats (the API has no notion of
555
+ * commits, and the share card renders them) and the API's status. Propagating
556
+ * the status onto the local fallback is what lets a rejected key surface as
557
+ * `api-failed` — otherwise a bad key is indistinguishable from no key at all,
558
+ * and the user silently gets the estimate while believing they get exact counts.
501
559
  */
502
- export async function scanAllTools() {
560
+ function resolveCursor(api, local) {
561
+ if (api.daily.length > 0) {
562
+ return { ...api, cursorStats: local.cursorStats ?? null };
563
+ }
564
+ return {
565
+ ...local,
566
+ cursorScanStatus: api.cursorScanStatus ?? { source: 'none' },
567
+ };
568
+ }
569
+ /** Run every scanner in parallel, returning one resolved result per tool. */
570
+ export async function collectToolScans() {
503
571
  const [claude, codex, cursorApi, cursorLocal, openclaw, hermes, opencode] = await Promise.all([
504
572
  scanClaudeCode(),
505
573
  scanCodex(),
@@ -509,9 +577,21 @@ export async function scanAllTools() {
509
577
  scanHermes(),
510
578
  scanOpenCode(),
511
579
  ]);
512
- const cursorApiHasData = cursorApi.daily.length > 0;
513
- const cursor = cursorApiHasData ? cursorApi : cursorLocal;
514
- const results = [claude, codex, cursor, openclaw, hermes, opencode];
580
+ const cursor = resolveCursor(cursorApi, cursorLocal);
581
+ return [claude, codex, cursor, openclaw, hermes, opencode];
582
+ }
583
+ /**
584
+ * Re-run only the Cursor API scanner and swap the result into an existing set of
585
+ * scans. `join` calls this after the user supplies a key mid-flow, so the exact
586
+ * API numbers replace the local estimate without re-walking every other tool's
587
+ * logs (which for a heavy Claude Code user means re-parsing thousands of files).
588
+ */
589
+ export async function rescanCursorWithApi(results) {
590
+ const api = await scanCursorApi();
591
+ return results.map((r) => (r.tool === 'cursor' ? resolveCursor(api, r) : r));
592
+ }
593
+ /** Merge per-tool results into a single submit-ready payload. */
594
+ export function mergeToolScans(results) {
515
595
  const toolTotals = {};
516
596
  const dailyTotals = [];
517
597
  const hourlyTotals = [];
@@ -530,14 +610,22 @@ export async function scanAllTools() {
530
610
  modelTotals[model] = (modelTotals[model] ?? 0) + tokens;
531
611
  }
532
612
  }
613
+ const cursor = results.find((r) => r.tool === 'cursor');
533
614
  return {
534
615
  toolTotals,
535
616
  dailyTotals,
536
617
  hourlyTotals,
537
618
  modelTotals,
538
619
  grandTotal,
539
- cursorStats: cursorLocal.cursorStats ?? null,
540
- cursorScanStatus: cursor.cursorScanStatus ?? { source: 'none' },
620
+ cursorStats: cursor?.cursorStats ?? null,
621
+ cursorScanStatus: cursor?.cursorScanStatus ?? { source: 'none' },
541
622
  };
542
623
  }
624
+ /**
625
+ * Run every scanner and merge the results — the one-shot entry point for callers
626
+ * that don't need to re-scan a single tool afterwards (`sync`, the daily job).
627
+ */
628
+ export async function scanAllTools() {
629
+ return mergeToolScans(await collectToolScans());
630
+ }
543
631
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"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"}
package/dist/session.d.ts CHANGED
@@ -70,5 +70,6 @@ export declare function envNameForUrl(url: string): HacklabEnv | null;
70
70
  * 401 until you `hacklab login --env <that>`.
71
71
  */
72
72
  export declare function resolveAppUrl(session?: Pick<Session, 'appUrl'> | null): string;
73
+ export declare function unauthorizedHint(session: Session): string;
73
74
  export declare function getAppUrl(): string;
74
75
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAKD,MAAM,MAAM,gBAAgB,GACxB;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAAA;AAEhE,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjE;AASD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC,GAC9C,IAAI,GAAG,IAAI,CAQb;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC,EAC/C,GAAG,OAAa,GACf,OAAO,CAGT;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAyBlE;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAE3D;AAED;;;;GAIG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAOrD;AAED,qDAAqD;AACrD,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,oBAAoB,CAAA;AAE1D,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,UAAU,CAE/D;AAQD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAMlE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAS5D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,IAAI,GACvC,MAAM,CAOR;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAKD,MAAM,MAAM,gBAAgB,GACxB;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAAA;AAEhE,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjE;AASD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC,GAC9C,IAAI,GAAG,IAAI,CAQb;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC,EAC/C,GAAG,OAAa,GACf,OAAO,CAGT;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAyBlE;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAE3D;AAED;;;;GAIG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAOrD;AAED,qDAAqD;AACrD,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,oBAAoB,CAAA;AAE1D,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,UAAU,CAE/D;AAQD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAMlE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAS5D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,IAAI,GACvC,MAAM,CAOR;AAQD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAUzD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
package/dist/session.js CHANGED
@@ -135,6 +135,22 @@ export function resolveAppUrl(session) {
135
135
  // Normalize here so callers never re-strip the trailing slash themselves.
136
136
  return url.replace(/\/$/, '');
137
137
  }
138
+ // Turn a 401 from any authenticated endpoint into something the user can act
139
+ // on. A bare "Unauthorized" is almost always a per-backend token mismatch: the
140
+ // saved session only authenticates against the backend you logged into, but
141
+ // this command targets a different one (via --env / HACKLAB_APP_URL), so its
142
+ // token isn't valid there. Point at the exact re-login command for the *target*
143
+ // backend instead of dead-ending.
144
+ export function unauthorizedHint(session) {
145
+ const target = resolveAppUrl(session);
146
+ const env = envNameForUrl(target);
147
+ const loginCmd = env && env !== 'production' ? `hacklab login --env ${env}` : 'hacklab login';
148
+ const sessionUrl = session.appUrl.replace(/\/$/, '');
149
+ if (sessionUrl !== target) {
150
+ return `unauthorized — your session is for ${sessionUrl}, but this targets ${target}. run \`${loginCmd}\` to sign in there.`;
151
+ }
152
+ return `unauthorized — your session may have expired. run \`${loginCmd}\` to sign in again.`;
153
+ }
138
154
  export function getAppUrl() {
139
155
  return resolveAppUrl();
140
156
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/ui.d.ts CHANGED
@@ -5,11 +5,23 @@ export declare const red: import("chalk").ChalkInstance;
5
5
  export declare const yellow: import("chalk").ChalkInstance;
6
6
  export declare const white: import("chalk").ChalkInstance;
7
7
  export declare const linkBlue: import("chalk").ChalkInstance;
8
+ export declare const mint: import("chalk").ChalkInstance;
8
9
  /**
9
10
  * Colour a string in the terminal colour for the rank at `level`. A null/unknown
10
11
  * level (e.g. older messages without a sender level) falls back to plain bold.
11
12
  */
12
13
  export declare function rankColor(level: number | null | undefined, text: string): string;
14
+ /** Display columns a plain string occupies (ANSI stripped, CJK/emoji aware). */
15
+ export declare function displayWidth(s: string): number;
16
+ /**
17
+ * Truncate a PLAIN string to at most `max` display columns, cutting on grapheme
18
+ * boundaries (never mid-emoji / mid-surrogate) and adding a 1-column ellipsis
19
+ * when anything was dropped. Must run before colorizing.
20
+ */
21
+ export declare function truncateToWidth(s: string, max: number): string;
22
+ /** Right-pad a PLAIN string with spaces to exactly `width` display columns. */
23
+ export declare function padEndTo(s: string, width: number): string;
24
+ export declare function stripControl(s: string): string;
13
25
  export declare function banner(): void;
14
26
  export declare function success(msg: string): void;
15
27
  export declare function error(msg: string): void;
package/dist/ui.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,GAAG,+BAAY,CAAA;AAC5B,eAAO,MAAM,IAAI,+BAAa,CAAA;AAC9B,eAAO,MAAM,KAAK,+BAAc,CAAA;AAChC,eAAO,MAAM,GAAG,+BAAY,CAAA;AAC5B,eAAO,MAAM,MAAM,+BAAe,CAAA;AAClC,eAAO,MAAM,KAAK,+BAAoB,CAAA;AAGtC,eAAO,MAAM,QAAQ,+BAAuB,CAAA;AAwB5C;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,IAAI,EAAE,MAAM,GACX,MAAM,CAMR;AAED,wBAAgB,MAAM,SAIrB;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,QAElC;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,QAEhC;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,QAE/B"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,GAAG,+BAAY,CAAA;AAC5B,eAAO,MAAM,IAAI,+BAAa,CAAA;AAC9B,eAAO,MAAM,KAAK,+BAAc,CAAA;AAChC,eAAO,MAAM,GAAG,+BAAY,CAAA;AAC5B,eAAO,MAAM,MAAM,+BAAe,CAAA;AAClC,eAAO,MAAM,KAAK,+BAAoB,CAAA;AAGtC,eAAO,MAAM,QAAQ,+BAAuB,CAAA;AAI5C,eAAO,MAAM,IAAI,+BAAuB,CAAA;AAwBxC;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,IAAI,EAAE,MAAM,GACX,MAAM,CAMR;AAcD,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAID;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAa9D;AAED,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGzD;AAOD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,wBAAgB,MAAM,SAIrB;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,QAElC;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,QAEhC;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,QAE/B"}
package/dist/ui.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import chalk from 'chalk';
2
+ import stringWidth from 'string-width';
2
3
  import { getBeltColor } from './belt.js';
3
4
  export const dim = chalk.dim;
4
5
  export const bold = chalk.bold;
@@ -9,6 +10,10 @@ export const white = chalk.whiteBright;
9
10
  // GitHub's link blue. chalk degrades the hex to the nearest ANSI colour on
10
11
  // terminals without truecolor support.
11
12
  export const linkBlue = chalk.hex('#79b8ff');
13
+ // Phosphor Mint (DESIGN.md --primary #82F5C6): the "active and alive" signal —
14
+ // the open-to-work status dot and lit activity cells. chalk degrades the hex on
15
+ // terminals without truecolor.
16
+ export const mint = chalk.hex('#82F5C6');
12
17
  // Map a belt colour to the nearest standard ANSI terminal colour name. We use
13
18
  // chalk's *named* colours (not the hex values from share-card-colors) on
14
19
  // purpose: named colours resolve to each viewer's own terminal theme, so the
@@ -42,6 +47,57 @@ export function rankColor(level, text) {
42
47
  return bold(text);
43
48
  return BELT_ANSI[getBeltColor(level)].bold(text);
44
49
  }
50
+ // --- Display-width primitives ----------------------------------------------
51
+ // The hacker card has a fixed column budget, and its content is user-supplied
52
+ // (handles, bios) that can contain CJK, emoji, and ANSI. `.length` is wrong for
53
+ // all three. Render order everywhere is: strip → truncate → measure → colorize
54
+ // LAST — colorizing before truncation would slice an ANSI escape mid-byte, and
55
+ // stringWidth counts ANSI as zero so a coloured string would measure short and
56
+ // truncate into corruption. These helpers therefore operate on PLAIN text.
57
+ // Ambiguous-width characters (⬤, box-drawing) count as 1 column — pinned per
58
+ // DESIGN.md so the card's rules and content agree with a standard terminal.
59
+ const WIDTH_OPTS = { ambiguousIsNarrow: true };
60
+ /** Display columns a plain string occupies (ANSI stripped, CJK/emoji aware). */
61
+ export function displayWidth(s) {
62
+ return stringWidth(s, WIDTH_OPTS);
63
+ }
64
+ const graphemeSegmenter = new Intl.Segmenter('en', { granularity: 'grapheme' });
65
+ /**
66
+ * Truncate a PLAIN string to at most `max` display columns, cutting on grapheme
67
+ * boundaries (never mid-emoji / mid-surrogate) and adding a 1-column ellipsis
68
+ * when anything was dropped. Must run before colorizing.
69
+ */
70
+ export function truncateToWidth(s, max) {
71
+ if (max <= 0)
72
+ return '';
73
+ if (displayWidth(s) <= max)
74
+ return s;
75
+ const budget = max - 1; // reserve one column for the … ellipsis
76
+ let out = '';
77
+ let width = 0;
78
+ for (const { segment } of graphemeSegmenter.segment(s)) {
79
+ const w = displayWidth(segment);
80
+ if (width + w > budget)
81
+ break;
82
+ out += segment;
83
+ width += w;
84
+ }
85
+ return `${out}…`;
86
+ }
87
+ /** Right-pad a PLAIN string with spaces to exactly `width` display columns. */
88
+ export function padEndTo(s, width) {
89
+ const gap = width - displayWidth(s);
90
+ return gap > 0 ? s + ' '.repeat(gap) : s;
91
+ }
92
+ // Strip C0 control characters + DEL from untrusted text before printing it to
93
+ // the terminal. Without this, a hacker could embed ANSI escape sequences in a
94
+ // handle, bio, message, or any user-supplied field to clear/garble or hijack
95
+ // any viewer's terminal. Lives here (not in a command module) so every renderer
96
+ // — chat, the hacker card — can reach it without a circular import.
97
+ export function stripControl(s) {
98
+ // biome-ignore lint/suspicious/noControlCharactersInRegex: intentionally matching control chars to remove them
99
+ return s.replace(/[\x00-\x1f\x7f]/g, '');
100
+ }
45
101
  export function banner() {
46
102
  console.log('');
47
103
  console.log(bold(' ☠︎ hacklab'));
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAkB,YAAY,EAAE,MAAM,WAAW,CAAA;AAExD,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;AAC5B,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;AAC9B,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;AAChC,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;AAC5B,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;AAClC,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAA;AACtC,2EAA2E;AAC3E,uCAAuC;AACvC,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;AAE5C,8EAA8E;AAC9E,yEAAyE;AACzE,6EAA6E;AAC7E,4EAA4E;AAC5E,+EAA+E;AAC/E,0EAA0E;AAC1E,MAAM,SAAS,GAAwC;IACrD,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,GAAG,EAAE,KAAK,CAAC,GAAG;IACd,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,MAAM,EAAE,KAAK,CAAC,YAAY;IAC1B,IAAI,EAAE,KAAK,CAAC,WAAW;IACvB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,IAAI,EAAE,KAAK,CAAC,aAAa;IACzB,MAAM,EAAE,KAAK,CAAC,OAAO;IACrB,4EAA4E;IAC5E,gFAAgF;IAChF,KAAK,EAAE,KAAK,CAAC,WAAW;CACzB,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,KAAgC,EAChC,IAAY;IAEZ,wEAAwE;IACxE,4EAA4E;IAC5E,uCAAuC;IACvC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/D,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;IAClC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAW;IAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,GAAW;IAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;AAChC,CAAC"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type SpawnSyncReturns } from 'node:child_process';
2
+ /**
3
+ * npm's executable name. On Windows npm is a `.cmd` shim, and recent Node
4
+ * refuses to spawn `.cmd`/`.bat` without a shell, so callers pass `shell: true`
5
+ * on win32 (see {@link runNpm}).
6
+ */
7
+ export declare const NPM_BIN: string;
8
+ /**
9
+ * Run npm with fixed (never user-supplied) args. `capture` pipes stdout/stderr
10
+ * back as strings; otherwise the child inherits the terminal so npm's own
11
+ * progress shows through. `shell: true` on Windows is required to launch the
12
+ * `.cmd` shim; the args here are all literals, so there's nothing to escape.
13
+ */
14
+ export declare function runNpm(args: string[], opts?: {
15
+ capture?: boolean;
16
+ }): SpawnSyncReturns<string>;
17
+ /** The directory npm would drop a global package into (`npm root -g`), or ''. */
18
+ export declare function npmGlobalRoot(): string;
19
+ /**
20
+ * Walk up from `p` to the nearest ancestor that exists on disk. We can't test
21
+ * writability of a directory npm hasn't created yet (`…/lib/node_modules`
22
+ * frequently doesn't exist), so we check the closest thing that does — mkdir
23
+ * succeeds iff that ancestor is writable.
24
+ */
25
+ export declare function firstExistingAncestor(p: string): string;
26
+ /** Can the current user create/write inside `dir` (probing its nearest existing ancestor)? */
27
+ export declare function isWritable(dir: string): boolean;
28
+ /** The user-owned prefix we reconfigure npm to when the system one is read-only. */
29
+ export declare function userNpmPrefix(): string;
30
+ //# sourceMappingURL=npmGlobal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npmGlobal.d.ts","sourceRoot":"","sources":["../../src/utils/npmGlobal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAa,MAAM,oBAAoB,CAAA;AAarE;;;;GAIG;AACH,eAAO,MAAM,OAAO,QAAmD,CAAA;AAEvE;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/B,gBAAgB,CAAC,MAAM,CAAC,CAM1B;AAED,iFAAiF;AACjF,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQvD;AAED,8FAA8F;AAC9F,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAS/C;AAED,oFAAoF;AACpF,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}