hacklab 0.22.3 → 26.921.1

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 (259) hide show
  1. package/README.md +23 -430
  2. package/dist/index.js +132 -23
  3. package/package.json +20 -42
  4. package/LICENSE +0 -21
  5. package/dist/agent-handoff.d.ts +0 -51
  6. package/dist/agent-handoff.d.ts.map +0 -1
  7. package/dist/agent-handoff.js +0 -91
  8. package/dist/agent-handoff.js.map +0 -1
  9. package/dist/api-client.d.ts +0 -18
  10. package/dist/api-client.d.ts.map +0 -1
  11. package/dist/api-client.js +0 -40
  12. package/dist/api-client.js.map +0 -1
  13. package/dist/belt.d.ts +0 -25
  14. package/dist/belt.d.ts.map +0 -1
  15. package/dist/belt.js +0 -113
  16. package/dist/belt.js.map +0 -1
  17. package/dist/card.d.ts +0 -66
  18. package/dist/card.d.ts.map +0 -1
  19. package/dist/card.js +0 -151
  20. package/dist/card.js.map +0 -1
  21. package/dist/cli.d.ts +0 -2
  22. package/dist/cli.d.ts.map +0 -1
  23. package/dist/cli.js +0 -238
  24. package/dist/cli.js.map +0 -1
  25. package/dist/commands/book.d.ts +0 -14
  26. package/dist/commands/book.d.ts.map +0 -1
  27. package/dist/commands/book.js +0 -90
  28. package/dist/commands/book.js.map +0 -1
  29. package/dist/commands/chat.d.ts +0 -36
  30. package/dist/commands/chat.d.ts.map +0 -1
  31. package/dist/commands/chat.js +0 -642
  32. package/dist/commands/chat.js.map +0 -1
  33. package/dist/commands/config.d.ts +0 -2
  34. package/dist/commands/config.d.ts.map +0 -1
  35. package/dist/commands/config.js +0 -84
  36. package/dist/commands/config.js.map +0 -1
  37. package/dist/commands/daemon.d.ts +0 -19
  38. package/dist/commands/daemon.d.ts.map +0 -1
  39. package/dist/commands/daemon.js +0 -72
  40. package/dist/commands/daemon.js.map +0 -1
  41. package/dist/commands/drop.d.ts +0 -12
  42. package/dist/commands/drop.d.ts.map +0 -1
  43. package/dist/commands/drop.js +0 -103
  44. package/dist/commands/drop.js.map +0 -1
  45. package/dist/commands/drops.d.ts +0 -9
  46. package/dist/commands/drops.d.ts.map +0 -1
  47. package/dist/commands/drops.js +0 -96
  48. package/dist/commands/drops.js.map +0 -1
  49. package/dist/commands/essay.d.ts +0 -40
  50. package/dist/commands/essay.d.ts.map +0 -1
  51. package/dist/commands/essay.js +0 -651
  52. package/dist/commands/essay.js.map +0 -1
  53. package/dist/commands/hackathon.d.ts +0 -2
  54. package/dist/commands/hackathon.d.ts.map +0 -1
  55. package/dist/commands/hackathon.js +0 -893
  56. package/dist/commands/hackathon.js.map +0 -1
  57. package/dist/commands/hacker.d.ts +0 -2
  58. package/dist/commands/hacker.d.ts.map +0 -1
  59. package/dist/commands/hacker.js +0 -87
  60. package/dist/commands/hacker.js.map +0 -1
  61. package/dist/commands/jobs.d.ts +0 -18
  62. package/dist/commands/jobs.d.ts.map +0 -1
  63. package/dist/commands/jobs.js +0 -138
  64. package/dist/commands/jobs.js.map +0 -1
  65. package/dist/commands/keys.d.ts +0 -2
  66. package/dist/commands/keys.d.ts.map +0 -1
  67. package/dist/commands/keys.js +0 -138
  68. package/dist/commands/keys.js.map +0 -1
  69. package/dist/commands/login.d.ts +0 -83
  70. package/dist/commands/login.d.ts.map +0 -1
  71. package/dist/commands/login.js +0 -236
  72. package/dist/commands/login.js.map +0 -1
  73. package/dist/commands/logout.d.ts +0 -2
  74. package/dist/commands/logout.d.ts.map +0 -1
  75. package/dist/commands/logout.js +0 -22
  76. package/dist/commands/logout.js.map +0 -1
  77. package/dist/commands/org-jobs.d.ts +0 -50
  78. package/dist/commands/org-jobs.d.ts.map +0 -1
  79. package/dist/commands/org-jobs.js +0 -383
  80. package/dist/commands/org-jobs.js.map +0 -1
  81. package/dist/commands/org.d.ts +0 -67
  82. package/dist/commands/org.d.ts.map +0 -1
  83. package/dist/commands/org.js +0 -1244
  84. package/dist/commands/org.js.map +0 -1
  85. package/dist/commands/ping.d.ts +0 -2
  86. package/dist/commands/ping.d.ts.map +0 -1
  87. package/dist/commands/ping.js +0 -50
  88. package/dist/commands/ping.js.map +0 -1
  89. package/dist/commands/profile.d.ts +0 -72
  90. package/dist/commands/profile.d.ts.map +0 -1
  91. package/dist/commands/profile.js +0 -672
  92. package/dist/commands/profile.js.map +0 -1
  93. package/dist/commands/project.d.ts +0 -2
  94. package/dist/commands/project.d.ts.map +0 -1
  95. package/dist/commands/project.js +0 -583
  96. package/dist/commands/project.js.map +0 -1
  97. package/dist/commands/referral.d.ts +0 -6
  98. package/dist/commands/referral.d.ts.map +0 -1
  99. package/dist/commands/referral.js +0 -93
  100. package/dist/commands/referral.js.map +0 -1
  101. package/dist/commands/rtfm.d.ts +0 -9
  102. package/dist/commands/rtfm.d.ts.map +0 -1
  103. package/dist/commands/rtfm.js +0 -114
  104. package/dist/commands/rtfm.js.map +0 -1
  105. package/dist/commands/scan.d.ts +0 -13
  106. package/dist/commands/scan.d.ts.map +0 -1
  107. package/dist/commands/scan.js +0 -286
  108. package/dist/commands/scan.js.map +0 -1
  109. package/dist/commands/scout.d.ts +0 -18
  110. package/dist/commands/scout.d.ts.map +0 -1
  111. package/dist/commands/scout.js +0 -232
  112. package/dist/commands/scout.js.map +0 -1
  113. package/dist/commands/setup-rail.d.ts +0 -58
  114. package/dist/commands/setup-rail.d.ts.map +0 -1
  115. package/dist/commands/setup-rail.js +0 -135
  116. package/dist/commands/setup-rail.js.map +0 -1
  117. package/dist/commands/setup.d.ts +0 -29
  118. package/dist/commands/setup.d.ts.map +0 -1
  119. package/dist/commands/setup.js +0 -442
  120. package/dist/commands/setup.js.map +0 -1
  121. package/dist/commands/sync.d.ts +0 -9
  122. package/dist/commands/sync.d.ts.map +0 -1
  123. package/dist/commands/sync.js +0 -345
  124. package/dist/commands/sync.js.map +0 -1
  125. package/dist/commands/update.d.ts +0 -2
  126. package/dist/commands/update.d.ts.map +0 -1
  127. package/dist/commands/update.js +0 -92
  128. package/dist/commands/update.js.map +0 -1
  129. package/dist/commands/whoami.d.ts +0 -2
  130. package/dist/commands/whoami.d.ts.map +0 -1
  131. package/dist/commands/whoami.js +0 -41
  132. package/dist/commands/whoami.js.map +0 -1
  133. package/dist/config.d.ts +0 -78
  134. package/dist/config.d.ts.map +0 -1
  135. package/dist/config.js +0 -93
  136. package/dist/config.js.map +0 -1
  137. package/dist/daily-sync.d.ts +0 -150
  138. package/dist/daily-sync.d.ts.map +0 -1
  139. package/dist/daily-sync.js +0 -665
  140. package/dist/daily-sync.js.map +0 -1
  141. package/dist/dossier.d.ts +0 -73
  142. package/dist/dossier.d.ts.map +0 -1
  143. package/dist/dossier.js +0 -141
  144. package/dist/dossier.js.map +0 -1
  145. package/dist/field-normalize.d.ts +0 -4
  146. package/dist/field-normalize.d.ts.map +0 -1
  147. package/dist/field-normalize.js +0 -8
  148. package/dist/field-normalize.js.map +0 -1
  149. package/dist/index.d.ts +0 -3
  150. package/dist/index.d.ts.map +0 -1
  151. package/dist/index.js.map +0 -1
  152. package/dist/job-fields.d.ts +0 -47
  153. package/dist/job-fields.d.ts.map +0 -1
  154. package/dist/job-fields.js +0 -148
  155. package/dist/job-fields.js.map +0 -1
  156. package/dist/machine.d.ts +0 -15
  157. package/dist/machine.d.ts.map +0 -1
  158. package/dist/machine.js +0 -64
  159. package/dist/machine.js.map +0 -1
  160. package/dist/org-fields.d.ts +0 -57
  161. package/dist/org-fields.d.ts.map +0 -1
  162. package/dist/org-fields.js +0 -167
  163. package/dist/org-fields.js.map +0 -1
  164. package/dist/posthog.d.ts +0 -38
  165. package/dist/posthog.d.ts.map +0 -1
  166. package/dist/posthog.js +0 -224
  167. package/dist/posthog.js.map +0 -1
  168. package/dist/project-fields.d.ts +0 -40
  169. package/dist/project-fields.d.ts.map +0 -1
  170. package/dist/project-fields.js +0 -79
  171. package/dist/project-fields.js.map +0 -1
  172. package/dist/prompt-consent.d.ts +0 -73
  173. package/dist/prompt-consent.d.ts.map +0 -1
  174. package/dist/prompt-consent.js +0 -191
  175. package/dist/prompt-consent.js.map +0 -1
  176. package/dist/prompt-stats.d.ts +0 -226
  177. package/dist/prompt-stats.d.ts.map +0 -1
  178. package/dist/prompt-stats.js +0 -561
  179. package/dist/prompt-stats.js.map +0 -1
  180. package/dist/referral.d.ts +0 -14
  181. package/dist/referral.d.ts.map +0 -1
  182. package/dist/referral.js +0 -28
  183. package/dist/referral.js.map +0 -1
  184. package/dist/registry.d.ts +0 -15
  185. package/dist/registry.d.ts.map +0 -1
  186. package/dist/registry.js +0 -180
  187. package/dist/registry.js.map +0 -1
  188. package/dist/resolve-command.d.ts +0 -20
  189. package/dist/resolve-command.d.ts.map +0 -1
  190. package/dist/resolve-command.js +0 -21
  191. package/dist/resolve-command.js.map +0 -1
  192. package/dist/scanners/antigravity.d.ts +0 -41
  193. package/dist/scanners/antigravity.d.ts.map +0 -1
  194. package/dist/scanners/antigravity.js +0 -210
  195. package/dist/scanners/antigravity.js.map +0 -1
  196. package/dist/scanners/github-copilot-telemetry.d.ts +0 -23
  197. package/dist/scanners/github-copilot-telemetry.d.ts.map +0 -1
  198. package/dist/scanners/github-copilot-telemetry.js +0 -220
  199. package/dist/scanners/github-copilot-telemetry.js.map +0 -1
  200. package/dist/scanners/github-copilot.d.ts +0 -68
  201. package/dist/scanners/github-copilot.d.ts.map +0 -1
  202. package/dist/scanners/github-copilot.js +0 -262
  203. package/dist/scanners/github-copilot.js.map +0 -1
  204. package/dist/scanners/incremental.d.ts +0 -282
  205. package/dist/scanners/incremental.d.ts.map +0 -1
  206. package/dist/scanners/incremental.js +0 -788
  207. package/dist/scanners/incremental.js.map +0 -1
  208. package/dist/scanners/index.d.ts +0 -116
  209. package/dist/scanners/index.d.ts.map +0 -1
  210. package/dist/scanners/index.js +0 -726
  211. package/dist/scanners/index.js.map +0 -1
  212. package/dist/scanners/sqlite.d.ts +0 -18
  213. package/dist/scanners/sqlite.d.ts.map +0 -1
  214. package/dist/scanners/sqlite.js +0 -63
  215. package/dist/scanners/sqlite.js.map +0 -1
  216. package/dist/scanners/util.d.ts +0 -112
  217. package/dist/scanners/util.d.ts.map +0 -1
  218. package/dist/scanners/util.js +0 -167
  219. package/dist/scanners/util.js.map +0 -1
  220. package/dist/session.d.ts +0 -106
  221. package/dist/session.d.ts.map +0 -1
  222. package/dist/session.js +0 -191
  223. package/dist/session.js.map +0 -1
  224. package/dist/share-card-colors.d.ts +0 -19
  225. package/dist/share-card-colors.d.ts.map +0 -1
  226. package/dist/share-card-colors.js +0 -36
  227. package/dist/share-card-colors.js.map +0 -1
  228. package/dist/share-card.d.ts +0 -31
  229. package/dist/share-card.d.ts.map +0 -1
  230. package/dist/share-card.js +0 -380
  231. package/dist/share-card.js.map +0 -1
  232. package/dist/share.d.ts +0 -17
  233. package/dist/share.d.ts.map +0 -1
  234. package/dist/share.js +0 -75
  235. package/dist/share.js.map +0 -1
  236. package/dist/sync.d.ts +0 -100
  237. package/dist/sync.d.ts.map +0 -1
  238. package/dist/sync.js +0 -304
  239. package/dist/sync.js.map +0 -1
  240. package/dist/ui.d.ts +0 -33
  241. package/dist/ui.d.ts.map +0 -1
  242. package/dist/ui.js +0 -127
  243. package/dist/ui.js.map +0 -1
  244. package/dist/utils/npmGlobal.d.ts +0 -30
  245. package/dist/utils/npmGlobal.d.ts.map +0 -1
  246. package/dist/utils/npmGlobal.js +0 -69
  247. package/dist/utils/npmGlobal.js.map +0 -1
  248. package/dist/utils/openBrowser.d.ts +0 -14
  249. package/dist/utils/openBrowser.d.ts.map +0 -1
  250. package/dist/utils/openBrowser.js +0 -47
  251. package/dist/utils/openBrowser.js.map +0 -1
  252. package/dist/utils/updateCheck.d.ts +0 -16
  253. package/dist/utils/updateCheck.d.ts.map +0 -1
  254. package/dist/utils/updateCheck.js +0 -111
  255. package/dist/utils/updateCheck.js.map +0 -1
  256. package/dist/utils/waitForEnter.d.ts +0 -12
  257. package/dist/utils/waitForEnter.d.ts.map +0 -1
  258. package/dist/utils/waitForEnter.js +0 -43
  259. package/dist/utils/waitForEnter.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Print the caller's referral link and join stats. Requires a claimed handle —
3
- * a referral is keyed on the public handle, and an unclaimed session has none.
4
- */
5
- export declare function referral(args: string[]): Promise<void>;
6
- //# sourceMappingURL=referral.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"referral.d.ts","sourceRoot":"","sources":["../../src/commands/referral.ts"],"names":[],"mappings":"AA2CA;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmE5D"}
@@ -1,93 +0,0 @@
1
- import { emitJsonError, requireSession } from '../api-client.js';
2
- import { captureEvent } from '../posthog.js';
3
- import { referralMessage, referralUrl } from '../referral.js';
4
- import { resolveAppUrl } from '../session.js';
5
- import { bold, dim, error, hint, info, success } from '../ui.js';
6
- /**
7
- * Best-effort fetch of referral stats from the backend. Returns null on any
8
- * failure (offline, non-2xx, malformed) so the command can still show the link,
9
- * which is derivable locally and never needs the network.
10
- */
11
- async function fetchReferralStats(session, timeoutMs = 8000) {
12
- try {
13
- const res = await fetch(`${resolveAppUrl(session)}/api/cli/referral`, {
14
- headers: { Authorization: `Bearer ${session.token}` },
15
- signal: AbortSignal.timeout(timeoutMs),
16
- });
17
- if (!res.ok)
18
- return null;
19
- const data = (await res.json());
20
- const count = data.referral?.count;
21
- if (typeof count !== 'number')
22
- return null;
23
- const recent = Array.isArray(data.referral?.recent)
24
- ? data.referral.recent
25
- : [];
26
- return { count, recent };
27
- }
28
- catch {
29
- return null;
30
- }
31
- }
32
- /**
33
- * Print the caller's referral link and join stats. Requires a claimed handle —
34
- * a referral is keyed on the public handle, and an unclaimed session has none.
35
- */
36
- export async function referral(args) {
37
- const json = args.includes('--json');
38
- const session = await requireSession(json);
39
- const handle = session.handle;
40
- if (!handle) {
41
- const message = 'claim a username first with `hacklab login`';
42
- if (json)
43
- emitJsonError('no_handle', message);
44
- error('no referral link yet — you have not claimed a username');
45
- hint('run `hacklab login` to finish setting up your profile');
46
- process.exit(1);
47
- }
48
- const base = resolveAppUrl(session);
49
- const url = referralUrl(handle, base);
50
- const message = referralMessage(handle, base);
51
- const stats = await fetchReferralStats(session);
52
- await captureEvent(handle, 'cli_referral_shown', {
53
- via: json ? 'json' : 'cli',
54
- count: stats?.count ?? null,
55
- });
56
- if (json) {
57
- console.log(JSON.stringify({
58
- schemaVersion: 1,
59
- referral: {
60
- handle,
61
- url,
62
- message,
63
- // null (not 0) when the backend was unreachable, so an agent can tell
64
- // "no referrals yet" apart from "stats unavailable".
65
- count: stats?.count ?? null,
66
- recent: stats?.recent ?? [],
67
- },
68
- }));
69
- return;
70
- }
71
- success('your referral link');
72
- console.log('');
73
- console.log(` ${bold(url)}`);
74
- console.log('');
75
- if (stats) {
76
- if (stats.count > 0) {
77
- info(`${bold(String(stats.count))} hacker${stats.count === 1 ? '' : 's'} joined through you`);
78
- if (stats.recent.length > 0) {
79
- console.log(` ${dim(stats.recent.map((r) => `@${r.handle}`).join(', '))}`);
80
- }
81
- }
82
- else {
83
- info(dim('no one has joined through you yet'));
84
- }
85
- console.log('');
86
- }
87
- info('send it to your smartest hacker friends — copy this:');
88
- console.log('');
89
- for (const line of message.split('\n')) {
90
- console.log(` ${dim(line)}`);
91
- }
92
- }
93
- //# sourceMappingURL=referral.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"referral.js","sourceRoot":"","sources":["../../src/commands/referral.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * The one line a user (or `hacklab setup`) hands an agent to start profile
3
- * setup. Everything the agent needs is behind `hacklab rtfm profile-setup`, so
4
- * this stays short enough to read and retype. The web onboarding shows the same
5
- * sentence verbatim (hacklabubu/hacklab) — change both together.
6
- */
7
- export declare const PROFILE_SETUP_PROMPT = "yo setup my profile on hacklab. to see how, run hacklab rtfm profile-setup";
8
- export declare function rtfm(args: string[]): void;
9
- //# sourceMappingURL=rtfm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rtfm.d.ts","sourceRoot":"","sources":["../../src/commands/rtfm.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,+EAC6C,CAAA;AAoF9E,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAezC"}
@@ -1,114 +0,0 @@
1
- import { bold, dim, error, info } from '../ui.js';
2
- /**
3
- * The one line a user (or `hacklab setup`) hands an agent to start profile
4
- * setup. Everything the agent needs is behind `hacklab rtfm profile-setup`, so
5
- * this stays short enough to read and retype. The web onboarding shows the same
6
- * sentence verbatim (hacklabubu/hacklab) — change both together.
7
- */
8
- export const PROFILE_SETUP_PROMPT = 'yo setup my profile on hacklab. to see how, run hacklab rtfm profile-setup';
9
- const MANUALS = [
10
- {
11
- name: 'profile-setup',
12
- summary: 'build a complete profile from available information',
13
- sections: [
14
- {
15
- heading: 'objective',
16
- lines: [
17
- "Set up the user's hacklab profile. Make it impressive and something they're proud of.",
18
- ],
19
- },
20
- {
21
- heading: 'prerequisites',
22
- lines: ['- Confirm authentication with `hacklab whoami`.'],
23
- },
24
- {
25
- heading: 'steps',
26
- lines: [
27
- '1. Run `hacklab ping` immediately.',
28
- ' This tells hacklab that profile setup is in progress and lets the user continue on the platform.',
29
- '2. Inspect the current profile with `hacklab profile --json`.',
30
- '3. Gather the most relevant, verifiable information about the user.',
31
- '4. Look for their profiles on:',
32
- ' - blog or personal website',
33
- ' - GitHub',
34
- ' - Hugging Face',
35
- ' - X (x.com)',
36
- ' - LinkedIn',
37
- ' - YouTube',
38
- ' - Product Hunt',
39
- ' - Kaggle',
40
- ' - Cursor (`cursor.com/@handle`)',
41
- ' - Dribbble',
42
- ' - Behance',
43
- ' - GitLab',
44
- ' - Devpost',
45
- ' - Replit',
46
- ' - itch.io',
47
- ' - CodePen',
48
- ' - Stack Overflow',
49
- ' - arXiv',
50
- ' - Google Scholar',
51
- ' - Substack',
52
- ' - Twitch',
53
- ' - Farcaster',
54
- ' - Goodreads',
55
- ' - Filmweb',
56
- ' - IMDb',
57
- ' - Spotify',
58
- '5. Run `hacklab profile set --help` to get the exact field names.',
59
- '6. Add every verified profile field and link:',
60
- ' - one field: `hacklab profile set <field> <url> --json`',
61
- ' - several fields: create a YAML or JSON file, then run:',
62
- ' `hacklab profile apply <file> --json`',
63
- '7. Verify the finished profile with `hacklab profile --json`.',
64
- ],
65
- },
66
- {
67
- heading: 'done when',
68
- lines: [
69
- '- The profile looks polished and complete.',
70
- '- The most relevant verified information available has been added.',
71
- '- The final state has been checked with `hacklab profile --json`.',
72
- ],
73
- },
74
- {
75
- heading: 'do not',
76
- lines: ['- Do not put social links in the bio or README.'],
77
- },
78
- ],
79
- },
80
- ];
81
- export function rtfm(args) {
82
- const topic = args[0];
83
- if (!topic || topic === '--help' || topic === '-h' || topic === 'help') {
84
- printManuals();
85
- return;
86
- }
87
- const manual = MANUALS.find(({ name }) => name === topic);
88
- if (!manual) {
89
- error(`manual not found: ${topic}`);
90
- info(`run ${bold('hacklab rtfm')} to list manuals`);
91
- process.exit(1);
92
- }
93
- printManual(manual);
94
- }
95
- function printManuals() {
96
- const width = Math.max(...MANUALS.map(({ name }) => name.length));
97
- console.log('');
98
- for (const { name, summary } of MANUALS) {
99
- console.log(` ${dim(name.padEnd(width))} ${summary}`);
100
- }
101
- console.log('');
102
- }
103
- function printManual(manual) {
104
- console.log('');
105
- console.log(` ${bold(manual.name)}`);
106
- for (const section of manual.sections) {
107
- console.log('');
108
- console.log(` ${bold(section.heading)}`);
109
- for (const line of section.lines)
110
- console.log(` ${line}`);
111
- }
112
- console.log('');
113
- }
114
- //# sourceMappingURL=rtfm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rtfm.js","sourceRoot":"","sources":["../../src/commands/rtfm.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { type AggregateScan } from '../scanners/index.js';
2
- export declare const TOOL_LABELS: Record<string, string>;
3
- /**
4
- * Scan this machine, upload to the logged-in profile, print the usage receipt,
5
- * offer the X share, and arm the daemon so the profile stays current.
6
- *
7
- * Login is required: an anonymous card says @hacker and points at the wrong
8
- * URL, which is how the viral loop dies. `--no-daemon` skips the schedule for
9
- * a one-shot flex on a machine you don't want ticking.
10
- */
11
- export declare function scan(args?: string[]): Promise<void>;
12
- export declare function formatScanReceipt(scan: AggregateScan): string[];
13
- //# sourceMappingURL=scan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,KAAK,aAAa,EAMnB,MAAM,sBAAsB,CAAA;AAiB7B,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAU9C,CAAA;AAED;;;;;;;GAOG;AACH,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA4I7D;AAUD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,EAAE,CAsC/D"}
@@ -1,286 +0,0 @@
1
- import * as clack from '@clack/prompts';
2
- import { beltForTokens } from '../belt.js';
3
- import { loadConfig, resolveCursorAuth, saveConfig } from '../config.js';
4
- import { dailySyncState, formatManualSchedule, installDailySync, } from '../daily-sync.js';
5
- import { captureEvent } from '../posthog.js';
6
- import { stageFullScan } from '../scanners/incremental.js';
7
- import { collectToolScans, detectCursorUsage, mergeToolScans, rescanCursorWithApi, } from '../scanners/index.js';
8
- import { computeStreaks, formatTokens, shortModelName, } from '../scanners/util.js';
9
- import { loadSessionState } from '../session.js';
10
- import { promptShareOnX, renderShareCard, } from '../share.js';
11
- import { checkSession, ensureFreshSession, uploadTokenScan } from '../sync.js';
12
- import { bold, dim, error, info } from '../ui.js';
13
- const MAX_MODELS = 8;
14
- export const TOOL_LABELS = {
15
- claude_code: 'claude',
16
- codex: 'codex',
17
- cursor: 'cursor',
18
- openclaw: 'openclaw',
19
- hermes: 'hermes',
20
- opencode: 'opencode',
21
- grok: 'grok',
22
- github_copilot: 'copilot',
23
- antigravity: 'antigravity',
24
- };
25
- /**
26
- * Scan this machine, upload to the logged-in profile, print the usage receipt,
27
- * offer the X share, and arm the daemon so the profile stays current.
28
- *
29
- * Login is required: an anonymous card says @hacker and points at the wrong
30
- * URL, which is how the viral loop dies. `--no-daemon` skips the schedule for
31
- * a one-shot flex on a machine you don't want ticking.
32
- */
33
- export async function scan(args = []) {
34
- const noDaemon = args.includes('--no-daemon');
35
- const sessionState = await loadSessionState();
36
- if (!sessionState.session) {
37
- error(sessionState.status === 'expired' ? 'login expired' : 'not logged in');
38
- info(`run ${dim('hacklab login')} first`);
39
- process.exit(1);
40
- }
41
- const sessionCheck = await checkSession(sessionState.session);
42
- if (sessionCheck.status === 'unauthorized') {
43
- error('login expired');
44
- info(`run ${dim('hacklab login')} again`);
45
- process.exit(1);
46
- }
47
- if (sessionCheck.status === 'failed') {
48
- error(sessionCheck.message);
49
- process.exit(1);
50
- }
51
- const session = await ensureFreshSession(sessionState.session);
52
- if (!session.handle) {
53
- error('no handle on this session');
54
- info(`run ${dim('hacklab login')} again`);
55
- process.exit(1);
56
- }
57
- let results;
58
- try {
59
- results = await collectToolScans();
60
- }
61
- catch (err) {
62
- error(`couldn't read local AI usage: ${err instanceof Error ? err.message : String(err)}`);
63
- process.exit(1);
64
- }
65
- let scanResult = mergeToolScans(results);
66
- const rescanned = await offerCursorApiKey(results);
67
- if (rescanned) {
68
- results = rescanned;
69
- scanResult = mergeToolScans(results);
70
- }
71
- let uploaded;
72
- try {
73
- // `scan` never reads prompts and never resolves the consent tier, so it
74
- // re-bases the token half only and leaves the prompt state to the tick.
75
- const staged = await stageFullScan(results, 'untouched');
76
- uploaded = await uploadTokenScan(session, scanResult, { interactive: true });
77
- await staged.commit();
78
- }
79
- catch (err) {
80
- error(err instanceof Error ? err.message : String(err));
81
- process.exit(1);
82
- }
83
- // The sync response is the source of truth, but a backend that predates a
84
- // field must not silently mint a white belt / 0-day streak: fall back to the
85
- // same numbers the profile will show. Rank has no local equivalent, so an
86
- // absent rank stays off the card entirely.
87
- const tokensTotal = numberField(uploaded.tokensTotal) ?? scanResult.grandTotal;
88
- const belt = beltForTokens(tokensTotal);
89
- const streaks = computeStreaks(scanResult.dailyTotals.map((e) => e.date));
90
- const rank = numberField(uploaded.rankAfter);
91
- const card = {
92
- handle: session.handle,
93
- level: numberField(uploaded.level) ?? belt.level,
94
- title: stringField(uploaded.title) ?? belt.title,
95
- beltColor: stringField(uploaded.beltColor) ?? belt.beltColor,
96
- tokensTotal,
97
- rank,
98
- streak: numberField(uploaded.streak) ?? streaks.current,
99
- longestStreak: numberField(uploaded.longestStreak) ?? streaks.longest,
100
- progressPercent: numberField(uploaded.progressPercent) ?? belt.progressPercent,
101
- estimatedCost: estimateCost(scanResult.toolTotals),
102
- toolBreakdown: {
103
- claudeCode: scanResult.toolTotals.claude_code ?? 0,
104
- codex: scanResult.toolTotals.codex ?? 0,
105
- cursor: scanResult.toolTotals.cursor ?? 0,
106
- },
107
- models: Object.entries(scanResult.modelTotals)
108
- .map(([name, tokens]) => ({ name, tokens }))
109
- .sort((a, b) => b.tokens - a.tokens),
110
- dailyActivity: aggregateDailyActivity(scanResult.dailyTotals),
111
- };
112
- for (const line of formatScanReceipt(scanResult)) {
113
- console.log(line);
114
- }
115
- console.log('');
116
- // Only touch the scheduler when something is actually wrong with it: a
117
- // reinstall rewrites the plists/units and bounces the jobs (killing a tick
118
- // mid-run), so doing it every scan is pure churn.
119
- if (!noDaemon) {
120
- const state = await dailySyncState();
121
- if (state !== 'current') {
122
- const result = await installDailySync();
123
- if (!result.ok) {
124
- // Only a machine with nothing scheduled gets the manual fallback. A
125
- // failed *repair* means the jobs are still there (an SSH session with no
126
- // user D-Bus fails the systemd probe every time while the desktop
127
- // session's timers keep running), and printing cron instructions there
128
- // both spams every scan and talks the user into a second, duplicate
129
- // schedule.
130
- if (state === 'missing') {
131
- console.log(formatManualSchedule(result.instructions).join('\n'));
132
- await captureEvent(session.handle, 'cli_daily_sync_manual', {
133
- mechanism: result.mechanism,
134
- source: 'scan',
135
- });
136
- }
137
- }
138
- else if (!result.recorded) {
139
- // The jobs are scheduled but we couldn't write the config, so every
140
- // future scan will reinstall. Explain the churn instead of repeating an
141
- // "installed" announcement (and its event) forever.
142
- console.log(dim('could not record daily-sync state — config unwritable'));
143
- }
144
- else if (state === 'missing') {
145
- console.log(dim(`daily sync scheduled (${result.mechanism})`));
146
- await captureEvent(session.handle, 'cli_daily_sync_installed', {
147
- mechanism: result.mechanism,
148
- source: 'scan',
149
- });
150
- }
151
- }
152
- }
153
- const cardPath = await renderShareCard(card);
154
- await promptShareOnX(card, cardPath);
155
- await captureEvent(session.handle, 'cli_scan_completed', {
156
- tokens_total: tokensTotal,
157
- ...(rank !== undefined ? { rank } : {}),
158
- });
159
- }
160
- function numberField(value) {
161
- return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
162
- }
163
- function stringField(value) {
164
- return typeof value === 'string' && value.length > 0 ? value : undefined;
165
- }
166
- export function formatScanReceipt(scan) {
167
- const groups = Object.entries(scan.toolTotals)
168
- .filter(([, total]) => total > 0)
169
- .sort((a, b) => b[1] - a[1])
170
- .map(([tool, total]) => ({
171
- label: TOOL_LABELS[tool] ?? tool,
172
- value: formatTokens(total),
173
- models: Object.entries(scan.modelsByTool?.[tool] ?? {})
174
- .filter(([, tokens]) => tokens > 0)
175
- .sort((a, b) => b[1] - a[1])
176
- .slice(0, MAX_MODELS)
177
- .map(([name, tokens]) => ({
178
- label: shortModelName(name).toLowerCase(),
179
- value: formatTokens(tokens),
180
- }))
181
- .filter((row) => row.label.length > 0),
182
- }));
183
- const rows = groups.flatMap((group) => [
184
- { label: group.label, value: group.value },
185
- ...group.models.map((model) => ({
186
- label: ` ${model.label}`,
187
- value: model.value,
188
- })),
189
- ]);
190
- const aligned = alignRows(rows);
191
- const lines = [
192
- `you burned ${bold(`${formatTokens(scan.grandTotal)} tokens`)}`,
193
- ];
194
- let offset = 0;
195
- for (const group of groups) {
196
- lines.push('');
197
- const n = 1 + group.models.length;
198
- lines.push(...aligned.slice(offset, offset + n));
199
- offset += n;
200
- }
201
- return lines;
202
- }
203
- function alignRows(rows) {
204
- if (rows.length === 0)
205
- return [];
206
- const labelWidth = Math.max(...rows.map((r) => r.label.length));
207
- const valueWidth = Math.max(...rows.map((r) => r.value.length));
208
- return rows.map((row) => `${dim(row.label.padEnd(labelWidth))} ${bold(row.value.padStart(valueWidth))}`);
209
- }
210
- async function offerCursorApiKey(results) {
211
- const { apiKey } = await resolveCursorAuth();
212
- if (apiKey)
213
- return null;
214
- if (!(await detectCursorUsage()))
215
- return null;
216
- const entered = await clack.password({
217
- message: 'cursor api key (enter to skip)',
218
- });
219
- if (clack.isCancel(entered))
220
- return null;
221
- const key = String(entered ?? '').trim();
222
- if (!key)
223
- return null;
224
- const emailValue = await clack.text({
225
- message: 'cursor account email (optional — scopes a team key to just you)',
226
- placeholder: 'enter to skip',
227
- });
228
- const email = clack.isCancel(emailValue) || !String(emailValue ?? '').trim()
229
- ? undefined
230
- : String(emailValue).trim();
231
- await saveConfig({
232
- ...(await loadConfig()),
233
- cursorApiKey: key,
234
- ...(email ? { cursorEmail: email } : {}),
235
- });
236
- let rescanned;
237
- try {
238
- rescanned = await rescanCursorWithApi(results);
239
- }
240
- catch (err) {
241
- console.log(dim(`keeping the local estimate: ${err instanceof Error ? err.message : String(err)}`));
242
- return null;
243
- }
244
- const status = rescanned.find((r) => r.tool === 'cursor')?.cursorScanStatus;
245
- switch (status?.source) {
246
- case 'api':
247
- return rescanned;
248
- case 'api-partial':
249
- console.log(dim(`stopped early: ${status.reason}`));
250
- return rescanned;
251
- case 'api-failed':
252
- console.log(dim(`${status.reason} — keeping the local estimate.`));
253
- return null;
254
- default:
255
- console.log(dim('keeping the local estimate.'));
256
- return null;
257
- }
258
- }
259
- function estimateCost(toolTotals) {
260
- const rate = {
261
- claude_code: 0.6,
262
- codex: 0.25,
263
- cursor: 0.4,
264
- openclaw: 0.5,
265
- hermes: 0.5,
266
- opencode: 0.5,
267
- grok: 0.5,
268
- github_copilot: 0.5,
269
- antigravity: 0.5,
270
- };
271
- let cost = 0;
272
- for (const [tool, tokens] of Object.entries(toolTotals)) {
273
- cost += (tokens / 1_000_000) * (rate[tool] ?? 0.4);
274
- }
275
- return cost;
276
- }
277
- function aggregateDailyActivity(dailyTotals) {
278
- const byDate = new Map();
279
- for (const entry of dailyTotals) {
280
- byDate.set(entry.date, (byDate.get(entry.date) ?? 0) + entry.tokens);
281
- }
282
- return Array.from(byDate.entries())
283
- .map(([date, tokens]) => ({ date, tokens }))
284
- .sort((a, b) => a.date.localeCompare(b.date));
285
- }
286
- //# sourceMappingURL=scan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- /** The `scout` namespace dispatcher: routes to search or picks. */
2
- export declare function scout(args: string[]): Promise<void>;
3
- /**
4
- * Monday 00:00 UTC of the current week, for `--new-this-week`. Mirrors
5
- * @hacklab/db's mondayUtcWeekOf (the week owner for picks); duplicated here
6
- * because the CLI doesn't depend on the db package — this is client-side
7
- * sugar over the real contract param, `newSince`.
8
- */
9
- export declare function mondayUtcStartOfWeek(now: Date): string;
10
- export type SearchFlags = {
11
- json: boolean;
12
- query: URLSearchParams;
13
- };
14
- /** Flag→param mapping is 1:1 with the API contract; the server validates. */
15
- export declare function parseSearchArgs(args: string[]): SearchFlags | {
16
- usage: string;
17
- };
18
- //# sourceMappingURL=scout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scout.d.ts","sourceRoot":"","sources":["../../src/commands/scout.ts"],"names":[],"mappings":"AAiCA,mEAAmE;AACnE,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBzD;AA8BD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,CAUtD;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,eAAe,CAAA;CACvB,CAAA;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EAAE,GACb,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAoCjC"}