hacklab 0.22.3 → 26.921.2

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 +39 -415
  2. package/dist/index.js +317 -23
  3. package/package.json +22 -40
  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":"index.js","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import type { SqlValue } from 'sql.js';
2
- /**
3
- * Run a read-only query against a SQLite file and return its rows as typed value
4
- * arrays (numbers stay numbers, JSON `json_extract` values keep their JSON type).
5
- * The whole DB is loaded into memory — fine for the small local agent DBs we read.
6
- * Throws if the file can't be read; callers already degrade to an empty result.
7
- *
8
- * Reads only the main `.db` file, so rows still sitting in an un-checkpointed
9
- * `-wal` of a live DB are missed — the snapshot is consistent, just possibly a
10
- * bit stale. That matches how the old `sqlite3` shell-out behaved closely enough
11
- * for daily token totals.
12
- */
13
- export declare function queryDb(dbPath: string, sql: string): Promise<SqlValue[][]>;
14
- /** Coerce a SqlValue to a number (parses numeric strings; null/blobs → 0). */
15
- export declare function num(v: SqlValue | undefined): number;
16
- /** Coerce a SqlValue to a string (null/blobs → ''); callers `.trim()` if needed. */
17
- export declare function str(v: SqlValue | undefined): string;
18
- //# sourceMappingURL=sqlite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/scanners/sqlite.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAyBtC;;;;;;;;;;GAUG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAUvB;AAED,8EAA8E;AAC9E,wBAAgB,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAOnD;AAED,oFAAoF;AACpF,wBAAgB,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAInD"}
@@ -1,63 +0,0 @@
1
- import { readFile } from 'node:fs/promises';
2
- import { createRequire } from 'node:module';
3
- // A tiny read-only SQLite reader backed by sql.js (pure WASM). We used to shell
4
- // out to a `sqlite3` binary via execSync, but that binary is absent on stock
5
- // Windows (and not guaranteed on macOS/Linux either), so every DB-backed scanner
6
- // silently returned nothing there. sql.js needs no native build and ships JSON1,
7
- // so the scanners' `json_extract` queries work unchanged on every platform.
8
- const require = createRequire(import.meta.url);
9
- // sql.js is CommonJS; the default export is the async `initSqlJs` factory.
10
- let sqlPromise = null;
11
- async function getSql() {
12
- if (!sqlPromise) {
13
- const initSqlJs = (await import('sql.js')).default;
14
- // Resolve the wasm from sql.js's own package so it works from a global
15
- // install (where sql.js is a direct dependency of hacklab) without the
16
- // build having to copy the asset into dist/.
17
- const wasmPath = require.resolve('sql.js/dist/sql-wasm.wasm');
18
- sqlPromise = initSqlJs({ locateFile: () => wasmPath });
19
- }
20
- return sqlPromise;
21
- }
22
- /**
23
- * Run a read-only query against a SQLite file and return its rows as typed value
24
- * arrays (numbers stay numbers, JSON `json_extract` values keep their JSON type).
25
- * The whole DB is loaded into memory — fine for the small local agent DBs we read.
26
- * Throws if the file can't be read; callers already degrade to an empty result.
27
- *
28
- * Reads only the main `.db` file, so rows still sitting in an un-checkpointed
29
- * `-wal` of a live DB are missed — the snapshot is consistent, just possibly a
30
- * bit stale. That matches how the old `sqlite3` shell-out behaved closely enough
31
- * for daily token totals.
32
- */
33
- export async function queryDb(dbPath, sql) {
34
- const SQL = await getSql();
35
- const buf = await readFile(dbPath);
36
- const db = new SQL.Database(buf);
37
- try {
38
- const res = db.exec(sql);
39
- return res[0]?.values ?? [];
40
- }
41
- finally {
42
- db.close();
43
- }
44
- }
45
- /** Coerce a SqlValue to a number (parses numeric strings; null/blobs → 0). */
46
- export function num(v) {
47
- if (typeof v === 'number')
48
- return v;
49
- if (typeof v === 'string') {
50
- const n = Number(v);
51
- return Number.isFinite(n) ? n : 0;
52
- }
53
- return 0;
54
- }
55
- /** Coerce a SqlValue to a string (null/blobs → ''); callers `.trim()` if needed. */
56
- export function str(v) {
57
- if (typeof v === 'string')
58
- return v;
59
- if (typeof v === 'number')
60
- return String(v);
61
- return '';
62
- }
63
- //# sourceMappingURL=sqlite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/scanners/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAI3C,gFAAgF;AAChF,6EAA6E;AAC7E,iFAAiF;AACjF,iFAAiF;AACjF,4EAA4E;AAE5E,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAE9C,2EAA2E;AAC3E,IAAI,UAAU,GAAiD,IAAI,CAAA;AAEnE,KAAK,UAAU,MAAM;IACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;QAClD,uEAAuE;QACvE,uEAAuE;QACvE,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAA;QAC7D,UAAU,GAAG,SAAS,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAc,EACd,GAAW;IAEX,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAA;IAC1B,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAA;IAClC,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACxB,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,EAAE,CAAA;IAC7B,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,GAAG,CAAC,CAAuB;IACzC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAA;IACnC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACnB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,GAAG,CAAC,CAAuB;IACzC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAA;IACnC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;IAC3C,OAAO,EAAE,CAAA;AACX,CAAC"}
@@ -1,112 +0,0 @@
1
- export type Tool = 'claude_code' | 'codex' | 'cursor' | 'openclaw' | 'hermes' | 'opencode' | 'grok' | 'github_copilot' | 'antigravity';
2
- export type DailyToolEntry = {
3
- date: string;
4
- tool: string;
5
- tokens: number;
6
- messages?: number;
7
- model?: string;
8
- };
9
- /**
10
- * One coding session's prompt activity, as `promptActivity.sessions` carries it.
11
- * The server upserts these per (machine, sessionId) with GREATEST semantics, so
12
- * a resend after a failed POST is always safe.
13
- */
14
- export type PromptSessionEntry = {
15
- sessionId: string;
16
- startedAt: string;
17
- lastActiveAt: string;
18
- promptCount: number;
19
- };
20
- /** One day's prompt counts, cumulative per (machine, date). */
21
- export type PromptDayEntry = {
22
- date: string;
23
- prompts: number;
24
- words: number;
25
- };
26
- /**
27
- * The prompt-metadata block of an upload. Present only under the `stats` or
28
- * `full` tier of `promptSync` — never at `none`, and never carrying prompt text
29
- * (that rides in `promptStats.conversationSample`, `full` only).
30
- */
31
- export type PromptActivity = {
32
- sessions: PromptSessionEntry[];
33
- dailyPrompts: PromptDayEntry[];
34
- };
35
- /** The server's caps. Anything over stays dirty and goes out next tick. */
36
- export declare const PROMPT_ACTIVITY_SESSION_CAP = 500;
37
- export declare const PROMPT_ACTIVITY_DATE_CAP = 400;
38
- export type CursorStats = {
39
- totalCommits: number;
40
- aiLinesAdded: number;
41
- humanLinesAdded: number;
42
- avgAiPercent: number;
43
- models: Array<{
44
- model: string;
45
- uses: number;
46
- }>;
47
- };
48
- export type CursorScanStatus = {
49
- source: 'none';
50
- } | {
51
- source: 'api';
52
- events: number;
53
- } | {
54
- source: 'api-partial';
55
- events: number;
56
- reason: string;
57
- } | {
58
- source: 'api-failed';
59
- reason: string;
60
- };
61
- /**
62
- * Uniform result every scanner returns. No shared module state — each scanner
63
- * owns its own maps, so scanners are pure and safe to run concurrently.
64
- */
65
- export type ScanResult = {
66
- tool: Tool;
67
- daily: DailyToolEntry[];
68
- /** model name -> tokens, for the share card + modelTotals payload. */
69
- models: Record<string, number>;
70
- /** Cursor-only: local commit stats (null for other tools). */
71
- cursorStats?: CursorStats | null;
72
- /** Cursor-only: how the scan resolved (api/local/failed). */
73
- cursorScanStatus?: CursorScanStatus;
74
- };
75
- export declare function emptyResult(tool: Tool): ScanResult;
76
- export type TokensMessages = {
77
- tokens: number;
78
- messages: number;
79
- };
80
- export declare function toDateStr(ts: string | number | Date): string;
81
- /** `n` days before today, as a YYYY-MM-DD cutoff. */
82
- export declare function dateDaysAgo(days: number): string;
83
- export declare function formatTokens(n: number): string;
84
- /** Fold a raw model id into a short display label, keeping the version. */
85
- export declare function shortModelName(raw: string): string;
86
- export declare function formatBytes(n: number): string;
87
- /**
88
- * Current + longest activity-day streak from a set of activity dates
89
- * (YYYY-MM-DD, UTC). Mirrors the server's updateStreak so the share card shows
90
- * the same numbers the profile will after sync: the current streak only counts
91
- * if the most recent activity was today or yesterday.
92
- */
93
- export declare function computeStreaks(dates: string[]): {
94
- current: number;
95
- longest: number;
96
- };
97
- /** Recursively collect files with a given extension; unreadable dirs are skipped. */
98
- export declare function findFiles(dir: string, ext: string): Promise<string[]>;
99
- /**
100
- * Per-scanner accumulator. Replaces the old module-level modelAccumulator
101
- * globals — each scanner instantiates its own, so there is no cross-scan state
102
- * to clear and concurrent runs can't clobber each other.
103
- */
104
- export declare class TokenCollector {
105
- private readonly tool;
106
- private readonly dailyByModel;
107
- private readonly models;
108
- constructor(tool: Tool);
109
- addDaily(date: string, model: string, tokens: number, messages?: number): void;
110
- result(extra?: Partial<ScanResult>): ScanResult;
111
- }
112
- //# sourceMappingURL=util.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/scanners/util.ts"],"names":[],"mappings":"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"}
@@ -1,167 +0,0 @@
1
- import { readdir } from 'node:fs/promises';
2
- import { join } from 'node:path';
3
- /** The server's caps. Anything over stays dirty and goes out next tick. */
4
- export const PROMPT_ACTIVITY_SESSION_CAP = 500;
5
- export const PROMPT_ACTIVITY_DATE_CAP = 400;
6
- export function emptyResult(tool) {
7
- return { tool, daily: [], models: {} };
8
- }
9
- export function toDateStr(ts) {
10
- const v = typeof ts === 'string' && /^\d+$/.test(ts) ? Number(ts) : ts;
11
- const d = new Date(v);
12
- return d.toISOString().slice(0, 10);
13
- }
14
- /** `n` days before today, as a YYYY-MM-DD cutoff. */
15
- export function dateDaysAgo(days) {
16
- const d = new Date();
17
- d.setUTCDate(d.getUTCDate() - days);
18
- return d.toISOString().slice(0, 10);
19
- }
20
- export function formatTokens(n) {
21
- if (n >= 1_000_000_000)
22
- return `${(n / 1_000_000_000).toFixed(1)}B`;
23
- if (n >= 1_000_000)
24
- return `${(n / 1_000_000).toFixed(1)}M`;
25
- if (n >= 1_000)
26
- return `${(n / 1_000).toFixed(0)}K`;
27
- return String(n);
28
- }
29
- /** Fold a raw model id into a short display label, keeping the version. */
30
- export function shortModelName(raw) {
31
- const s = raw.trim().toLowerCase();
32
- if (!s)
33
- return '';
34
- const t = s.replace(/[-_]?\d{8}$/, '');
35
- const tier = t.includes('opus')
36
- ? 'opus'
37
- : t.includes('sonnet')
38
- ? 'sonnet'
39
- : t.includes('haiku')
40
- ? 'haiku'
41
- : null;
42
- if (tier) {
43
- const ver = t
44
- .split(/[-_.\s]+/)
45
- .filter((p) => /^\d+$/.test(p))
46
- .slice(0, 2)
47
- .join('.');
48
- return (ver ? `${tier} ${ver}` : tier).toUpperCase();
49
- }
50
- return t.toUpperCase().slice(0, 16);
51
- }
52
- export function formatBytes(n) {
53
- if (n >= 1_073_741_824)
54
- return `${(n / 1_073_741_824).toFixed(1)}GB`;
55
- if (n >= 1_048_576)
56
- return `${(n / 1_048_576).toFixed(1)}MB`;
57
- if (n >= 1_024)
58
- return `${(n / 1_024).toFixed(0)}KB`;
59
- return `${n}B`;
60
- }
61
- /**
62
- * Current + longest activity-day streak from a set of activity dates
63
- * (YYYY-MM-DD, UTC). Mirrors the server's updateStreak so the share card shows
64
- * the same numbers the profile will after sync: the current streak only counts
65
- * if the most recent activity was today or yesterday.
66
- */
67
- export function computeStreaks(dates) {
68
- const dateSet = new Set(dates);
69
- if (dateSet.size === 0)
70
- return { current: 0, longest: 0 };
71
- const sorted = [...dateSet].sort((a, b) => b.localeCompare(a)); // newest first
72
- const today = new Date().toISOString().slice(0, 10);
73
- const yest = new Date();
74
- yest.setUTCDate(yest.getUTCDate() - 1);
75
- const yesterday = yest.toISOString().slice(0, 10);
76
- let current = 0;
77
- if (sorted[0] === today || sorted[0] === yesterday) {
78
- const cursor = new Date(`${sorted[0]}T00:00:00Z`);
79
- while (dateSet.has(cursor.toISOString().slice(0, 10))) {
80
- current++;
81
- cursor.setUTCDate(cursor.getUTCDate() - 1);
82
- }
83
- }
84
- let longest = 0;
85
- let run = 1;
86
- for (let i = 1; i < sorted.length; i++) {
87
- const prev = new Date(`${sorted[i - 1]}T00:00:00Z`).getTime();
88
- const curr = new Date(`${sorted[i]}T00:00:00Z`).getTime();
89
- if (Math.round((prev - curr) / 86_400_000) === 1) {
90
- run++;
91
- }
92
- else {
93
- longest = Math.max(longest, run);
94
- run = 1;
95
- }
96
- }
97
- longest = Math.max(longest, run, current);
98
- return { current, longest };
99
- }
100
- /** Recursively collect files with a given extension; unreadable dirs are skipped. */
101
- export async function findFiles(dir, ext) {
102
- const results = [];
103
- async function walk(current) {
104
- try {
105
- const entries = await readdir(current, { withFileTypes: true });
106
- for (const entry of entries) {
107
- const fullPath = join(current, entry.name);
108
- if (entry.isDirectory()) {
109
- await walk(fullPath);
110
- }
111
- else if (entry.name.endsWith(ext)) {
112
- results.push(fullPath);
113
- }
114
- }
115
- }
116
- catch {
117
- // skip unreadable directories
118
- }
119
- }
120
- await walk(dir);
121
- return results;
122
- }
123
- /**
124
- * Per-scanner accumulator. Replaces the old module-level modelAccumulator
125
- * globals — each scanner instantiates its own, so there is no cross-scan state
126
- * to clear and concurrent runs can't clobber each other.
127
- */
128
- export class TokenCollector {
129
- tool;
130
- dailyByModel = new Map();
131
- models = new Map();
132
- constructor(tool) {
133
- this.tool = tool;
134
- }
135
- addDaily(date, model, tokens, messages = 1) {
136
- const key = `${date}|${model}`;
137
- const existing = this.dailyByModel.get(key);
138
- if (existing) {
139
- existing.tokens += tokens;
140
- existing.messages += messages;
141
- }
142
- else {
143
- this.dailyByModel.set(key, { tokens, messages });
144
- }
145
- if (model)
146
- this.models.set(model, (this.models.get(model) ?? 0) + tokens);
147
- }
148
- result(extra) {
149
- const daily = Array.from(this.dailyByModel.entries()).map(([key, { tokens, messages }]) => {
150
- const [date, model] = key.split('|');
151
- return {
152
- date: date ?? '',
153
- tool: this.tool,
154
- tokens,
155
- messages,
156
- model: model || undefined,
157
- };
158
- });
159
- return {
160
- tool: this.tool,
161
- daily,
162
- models: Object.fromEntries(this.models),
163
- ...extra,
164
- };
165
- }
166
- }
167
- //# sourceMappingURL=util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/scanners/util.ts"],"names":[],"mappings":"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"}
package/dist/session.d.ts DELETED
@@ -1,106 +0,0 @@
1
- export type Session = {
2
- token: string;
3
- email: string;
4
- handle?: string;
5
- /**
6
- * Whether the profile has completed the username claim. A handle can exist on
7
- * an auto-created but unclaimed profile. `login` claims the handle the
8
- * account came with so a finished session is the default. Absent on
9
- * sessions saved before this field existed — treated as unclaimed until the
10
- * next login refreshes it.
11
- */
12
- usernameClaimed?: boolean;
13
- appUrl: string;
14
- savedAt: string;
15
- expiresAt?: string;
16
- };
17
- export type LoadSessionState = {
18
- status: 'ok';
19
- session: Session;
20
- } | {
21
- status: 'missing' | 'invalid' | 'expired';
22
- session: null;
23
- };
24
- export declare function getSessionPath(): string;
25
- export declare function saveSession(session: Session): Promise<void>;
26
- export declare function getSessionExpiresAt(session: Pick<Session, 'expiresAt' | 'savedAt'>): Date | null;
27
- export declare function isSessionExpired(session: Pick<Session, 'expiresAt' | 'savedAt'>, now?: Date): boolean;
28
- export declare function loadSessionState(): Promise<LoadSessionState>;
29
- export declare function loadSession(): Promise<Session | null>;
30
- /**
31
- * Delete the local session file. Returns true if a file was removed, false if
32
- * there was nothing to clear (no session). Local-only — it doesn't revoke the
33
- * token server-side, so the token stays valid until it expires.
34
- */
35
- export declare function clearSession(): Promise<boolean>;
36
- /**
37
- * Named backends the CLI can target via `--env`. Any other backend (e.g. an
38
- * internal preview or self-hosted instance) can be targeted with
39
- * `HACKLAB_APP_URL`.
40
- */
41
- export declare const HACKLAB_ENVIRONMENTS: {
42
- readonly production: "https://hacklab.so";
43
- readonly development: "http://localhost:3000";
44
- };
45
- export type HacklabEnv = keyof typeof HACKLAB_ENVIRONMENTS;
46
- export declare function isHacklabEnv(value: string): value is HacklabEnv;
47
- /**
48
- * Resolve an `--env` value to a canonical backend name. Accepts the full name,
49
- * any unambiguous prefix (`dev`/`prod`, mirroring how command names resolve so
50
- * abbreviations work everywhere), and a couple of natural aliases
51
- * (`local`/`localhost`). Returns null if it matches none — the env names start
52
- * with distinct letters, so a prefix is never ambiguous.
53
- */
54
- export declare function resolveHacklabEnv(value: string): HacklabEnv | null;
55
- /**
56
- * Reverse of HACKLAB_ENVIRONMENTS: the canonical env name for a backend URL, or
57
- * null when it isn't one of the three known backends (e.g. a custom
58
- * HACKLAB_APP_URL). Used to suggest the right `hacklab login --env <name>` when
59
- * a per-backend token is rejected.
60
- */
61
- export declare function envNameForUrl(url: string): HacklabEnv | null;
62
- /**
63
- * Which backend to talk to, by precedence:
64
- * 1. an explicit `HACKLAB_APP_URL` (also how `--env` is applied — see
65
- * index.ts) so `--env development` always switches backends;
66
- * 2. the backend you logged into (`session.appUrl`), when a session is given;
67
- * 3. the production default, so a freshly-installed `hacklab` hits hacklab.so
68
- * rather than a localhost server that isn't running.
69
- *
70
- * The single source of this precedence: `getAppUrl()` is the no-session form,
71
- * and the chat command's `baseUrl()` is the session-aware form. Note the token
72
- * is per-backend, so pointing `--env` at an env you haven't logged into will
73
- * 401 until you `hacklab login --env <that>`.
74
- */
75
- export declare function resolveAppUrl(session?: Pick<Session, 'appUrl'> | null): string;
76
- export declare function unauthorizedHint(session: Session): string;
77
- export declare function getAppUrl(): string;
78
- /**
79
- * What the backend said about a saved token:
80
- *
81
- * 'ok' — the token authenticates; the account is real.
82
- * 'unauthorized' — the backend refused it: revoked, expired, or minted for a
83
- * different backend. The session on disk is dead.
84
- * 'unverified' — the backend never answered the question (offline, timeout,
85
- * 5xx, a rate limit). Not the same as "logged out".
86
- */
87
- export type SessionCheck = 'ok' | 'unauthorized' | 'unverified';
88
- /**
89
- * Ask the backend whether this session still works.
90
- *
91
- * `GET /api/hackers/me` is the cheapest authenticated read there is, and its
92
- * answer is unambiguous: the route resolves the bearer token against the live
93
- * session rows, so only a token with no unexpired session behind it comes back
94
- * 401. That is the *one* status that means signed out, and the only one that
95
- * may cost someone their local session. The route has no 403 on GET (the one
96
- * 403 it can return belongs to PATCH, for a profile that hasn't been claimed),
97
- * so 403 is not treated as a refusal here.
98
- *
99
- * Everything else is 'unverified' — a 429 from either of the route's rate
100
- * limiters (the per-IP one fires before auth is even looked at), a 5xx, a DNS
101
- * failure on a plane, the 10s timeout. A machine that can't reach the server is
102
- * not a machine whose account is gone, and guessing otherwise would throw away
103
- * a working session over a flaky network.
104
- */
105
- export declare function verifySession(session: Session): Promise<SessionCheck>;
106
- //# sourceMappingURL=session.d.ts.map
@@ -1 +0,0 @@
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;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;CAGvB,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;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,cAAc,GAAG,YAAY,CAAA;AAE/D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAc3E"}