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
package/dist/registry.js DELETED
@@ -1,180 +0,0 @@
1
- import { book, parseBookArgs } from './commands/book.js';
2
- import { chat } from './commands/chat.js';
3
- import { configCommand } from './commands/config.js';
4
- import { daemon } from './commands/daemon.js';
5
- import { drop, parseDropArgs } from './commands/drop.js';
6
- import { drops } from './commands/drops.js';
7
- import { essay } from './commands/essay.js';
8
- import { hackathon } from './commands/hackathon.js';
9
- import { hacker } from './commands/hacker.js';
10
- import { jobs } from './commands/jobs.js';
11
- import { keys } from './commands/keys.js';
12
- import { login } from './commands/login.js';
13
- import { logout } from './commands/logout.js';
14
- import { org } from './commands/org.js';
15
- import { ping } from './commands/ping.js';
16
- import { profile } from './commands/profile.js';
17
- import { project } from './commands/project.js';
18
- import { referral } from './commands/referral.js';
19
- import { rtfm } from './commands/rtfm.js';
20
- import { scan } from './commands/scan.js';
21
- import { scout } from './commands/scout.js';
22
- import { setup } from './commands/setup.js';
23
- import { sync } from './commands/sync.js';
24
- import { update } from './commands/update.js';
25
- import { whoami } from './commands/whoami.js';
26
- export const COMMANDS = [
27
- {
28
- name: 'setup',
29
- summary: 'first run: scan, sign in, and start the background sync',
30
- run: () => setup(),
31
- },
32
- {
33
- name: 'scan',
34
- args: '[--no-daemon]',
35
- summary: 'scan this machine, share the card, keep it updating',
36
- run: (args) => scan(args),
37
- },
38
- {
39
- name: 'sync',
40
- summary: 'sync AI token usage to your profile',
41
- run: (args) => sync(args),
42
- },
43
- {
44
- name: 'daemon',
45
- args: '[off]',
46
- summary: 'summon the daily background sync (off tears it down)',
47
- run: (args) => daemon(args),
48
- },
49
- {
50
- name: 'whoami',
51
- summary: "check who you're logged in as",
52
- run: () => whoami(),
53
- },
54
- {
55
- name: 'ping',
56
- summary: 'check the hacklab server is reachable',
57
- run: () => ping(),
58
- },
59
- {
60
- name: 'drop',
61
- args: '"message"',
62
- summary: 'post a drop to your feed (--json for agents)',
63
- run: (args) => {
64
- const { text, url, json } = parseDropArgs(args);
65
- return drop(text, url, json);
66
- },
67
- },
68
- {
69
- name: 'drops',
70
- args: '[--json]',
71
- summary: 'list your drops (--json for agents)',
72
- run: (args) => drops(args),
73
- },
74
- {
75
- name: 'login',
76
- summary: 're-authenticate with hacklab',
77
- run: () => login(),
78
- },
79
- {
80
- name: 'logout',
81
- summary: 'clear your saved session on this machine',
82
- run: () => logout(),
83
- },
84
- {
85
- name: 'config',
86
- args: '<key> <val>',
87
- summary: 'set config (cursor-api-key, cursor-email)',
88
- run: (args) => configCommand(args),
89
- },
90
- {
91
- name: 'project',
92
- args: '[add|list|view|edit|delete]',
93
- summary: 'publish and manage your projects (--json for agents)',
94
- run: (args) => project(args),
95
- },
96
- {
97
- name: 'book',
98
- args: '"Title" --author "Name"',
99
- summary: 'shelve a book you have read (--takeaways "…")',
100
- run: (args) => book(parseBookArgs(args)),
101
- },
102
- {
103
- name: 'org',
104
- args: '[list|view|set|apply|claim|create|access|jobs]',
105
- summary: 'claim, create, edit, share, or hire for your organization (--json for agents)',
106
- run: (args) => org(args),
107
- },
108
- {
109
- name: 'jobs',
110
- args: '[list|view]',
111
- summary: 'browse the job shop (--json for agents)',
112
- run: (args) => jobs(args),
113
- },
114
- {
115
- name: 'chat',
116
- args: '[sub]',
117
- summary: 'open the live channel (or tail/post/dm/…; --json for agents)',
118
- run: (args) => chat(args),
119
- },
120
- {
121
- name: 'essay',
122
- args: '[post|list|view|update|delete]',
123
- summary: 'publish and manage your essays (--json for agents)',
124
- run: (args) => essay(args),
125
- },
126
- {
127
- name: 'hacker',
128
- args: '<username>',
129
- summary: "view a hacker's profile card (--json for agents)",
130
- run: (args) => hacker(args),
131
- },
132
- {
133
- name: 'hackathon',
134
- args: '[list|view|rsvp|invite|team|track|tracks|submit|export]',
135
- summary: 'RSVP, team up, and submit for a hackathon (--json for agents)',
136
- run: (args) => hackathon(args),
137
- },
138
- {
139
- name: 'scout',
140
- args: 'search|picks [flags]',
141
- summary: 'talent scouting for partners: search the pool, or our curated picks (invite-only)',
142
- run: (args) => scout(args),
143
- },
144
- {
145
- name: 'profile',
146
- args: '[view|set|edit|apply]',
147
- summary: 'view and edit your own profile (--json for agents)',
148
- run: (args) => profile(args),
149
- },
150
- {
151
- name: 'referral',
152
- args: '[--json]',
153
- summary: 'get your referral link to invite hacker friends (--json for agents)',
154
- run: (args) => referral(args),
155
- },
156
- {
157
- name: 'rtfm',
158
- args: '[topic]',
159
- // Note `r` is now ambiguous (referral/rtfm) — `rt` and `re` still resolve.
160
- summary: 'list and read the hacklab manuals',
161
- run: (args) => rtfm(args),
162
- },
163
- {
164
- name: 'keys',
165
- args: '[create|list|revoke]',
166
- summary: 'manage API keys for your agent profile endpoint',
167
- run: (args) => keys(args),
168
- },
169
- {
170
- name: 'update',
171
- summary: 'update the hacklab CLI to the latest version',
172
- run: () => update(),
173
- },
174
- ];
175
- /** Every command name, in registry order — the source of truth for resolution. */
176
- export const COMMAND_NAMES = COMMANDS.map((c) => c.name);
177
- export function findCommand(name) {
178
- return COMMANDS.find((c) => c.name === name);
179
- }
180
- //# sourceMappingURL=registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- export type ResolvedCommand = {
2
- kind: 'match';
3
- name: string;
4
- } | {
5
- kind: 'ambiguous';
6
- matches: string[];
7
- } | {
8
- kind: 'unknown';
9
- };
10
- /**
11
- * Resolve a (possibly abbreviated) command token to a full command name by
12
- * shortest unambiguous prefix:
13
- * - an exact match always wins, so a full command is never shadowed by a longer
14
- * one (e.g. if `scan` and `scanner` both existed, `scan` resolves to `scan`);
15
- * - a prefix that matches exactly one command resolves to it (`sy` -> sync);
16
- * - a prefix matching several is ambiguous (`s` -> sync | scan);
17
- * - a token matching none is unknown (a typo like `ogr` does not resolve).
18
- */
19
- export declare function resolveCommand(token: string, commands?: readonly string[]): ResolvedCommand;
20
- //# sourceMappingURL=resolve-command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-command.d.ts","sourceRoot":"","sources":["../src/resolve-command.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAEvB;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,SAAS,MAAM,EAAkB,GAC1C,eAAe,CAOjB"}
@@ -1,21 +0,0 @@
1
- import { COMMAND_NAMES } from './registry.js';
2
- /**
3
- * Resolve a (possibly abbreviated) command token to a full command name by
4
- * shortest unambiguous prefix:
5
- * - an exact match always wins, so a full command is never shadowed by a longer
6
- * one (e.g. if `scan` and `scanner` both existed, `scan` resolves to `scan`);
7
- * - a prefix that matches exactly one command resolves to it (`sy` -> sync);
8
- * - a prefix matching several is ambiguous (`s` -> sync | scan);
9
- * - a token matching none is unknown (a typo like `ogr` does not resolve).
10
- */
11
- export function resolveCommand(token, commands = COMMAND_NAMES) {
12
- if (commands.includes(token))
13
- return { kind: 'match', name: token };
14
- const matches = commands.filter((c) => c.startsWith(token));
15
- if (matches.length === 1)
16
- return { kind: 'match', name: matches[0] };
17
- if (matches.length > 1)
18
- return { kind: 'ambiguous', matches };
19
- return { kind: 'unknown' };
20
- }
21
- //# sourceMappingURL=resolve-command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-command.js","sourceRoot":"","sources":["../src/resolve-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAO7C;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,WAA8B,aAAa;IAE3C,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IAEnE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,CAAA;IACrE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAA;IAC7D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;AAC5B,CAAC"}
@@ -1,41 +0,0 @@
1
- import type { ScanResult } from './util.js';
2
- /**
3
- * Source: github.com/mehdawimohamed/antigravity-conversation-exporter/export_chat.py
4
- * Layout: brain/<UUID>/.system_generated/logs/transcript[_full].jsonl.
5
- * Readable transcripts only. A session can have both variants;
6
- * `transcript_full.jsonl` is preferred by scanAntigravityPrompts().
7
- */
8
- export declare function antigravityTranscriptFiles(): Promise<string[]>;
9
- export type AntigravityPrompt = {
10
- text: string;
11
- /** Stable source-prefixed conversation UUID, shared across CLI/IDE copies. */
12
- sessionId: string;
13
- /** Transcript timestamp when supplied; never inferred from file metadata. */
14
- timestamp: string | null;
15
- };
16
- /**
17
- * Parse a legacy IDE transcript line. The public exporter identifies a typed
18
- * user prompt as `source: USER_EXPLICIT`, `type: USER_INPUT`, with a
19
- * `USER_REQUEST` body. It prefers `created_at`, falling back to the legacy
20
- * `timestamp`; absent or invalid timestamps remain null rather than guessed.
21
- */
22
- export declare function parseAntigravityLegacyPromptLine(line: string, sessionId: string): AntigravityPrompt | null;
23
- /** Read each conversation once even when both storage roots retain a copy. */
24
- export declare function scanAntigravityPrompts(): Promise<AntigravityPrompt[]>;
25
- /** Fingerprint WAL writes too; the read-only reader sees them after checkpoint. */
26
- export declare function antigravityTokenFiles(): Promise<string[]>;
27
- export type AntigravityUsage = {
28
- date: string;
29
- model: string;
30
- tokens: number;
31
- responseId: string | null;
32
- };
33
- /**
34
- * Source: Eneasf/antigravity-token-dashboard docs/TELEMETRY_SPEC.md.
35
- * steps.metadata: field 1 Timestamp, field 9 UsageMetadata. Input field 2 is
36
- * uncached; field 5 is cached input; output field 3 already includes reasoning
37
- * (fields 9 and 10). Never add those output subsets again.
38
- */
39
- export declare function parseAntigravityUsage(metadata: Uint8Array): AntigravityUsage | null;
40
- export declare function scanAntigravity(): Promise<ScanResult>;
41
- //# sourceMappingURL=antigravity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"antigravity.d.ts","sourceRoot":"","sources":["../../src/scanners/antigravity.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAY3C;;;;;GAKG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAepE;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,iBAAiB,GAAG,IAAI,CAoC1B;AAED,8EAA8E;AAC9E,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAyB3E;AAqBD,mFAAmF;AACnF,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAK/D;AAiCD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,UAAU,GACnB,gBAAgB,GAAG,IAAI,CAsCzB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,CA+B3D"}
@@ -1,210 +0,0 @@
1
- import { readFile } from 'node:fs/promises';
2
- import { homedir } from 'node:os';
3
- import { basename, dirname, join } from 'node:path';
4
- import protobuf from 'protobufjs/minimal.js';
5
- import { queryDb } from './sqlite.js';
6
- import { findFiles, TokenCollector } from './util.js';
7
- const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
8
- /** Current shared Antigravity storage and the older IDE-specific directory. */
9
- function antigravityRoots() {
10
- return ['antigravity', 'antigravity-cli', 'antigravity-ide'].map((name) => join(homedir(), '.gemini', name));
11
- }
12
- /**
13
- * Source: github.com/mehdawimohamed/antigravity-conversation-exporter/export_chat.py
14
- * Layout: brain/<UUID>/.system_generated/logs/transcript[_full].jsonl.
15
- * Readable transcripts only. A session can have both variants;
16
- * `transcript_full.jsonl` is preferred by scanAntigravityPrompts().
17
- */
18
- export async function antigravityTranscriptFiles() {
19
- const files = (await Promise.all(antigravityRoots().map((root) => findFiles(join(root, 'brain'), '.jsonl')))).flat();
20
- return files.filter((file) => {
21
- const name = basename(file);
22
- return (basename(dirname(file)) === 'logs' &&
23
- basename(dirname(dirname(file))) === '.system_generated' &&
24
- (name === 'transcript.jsonl' || name === 'transcript_full.jsonl') &&
25
- UUID.test(basename(dirname(dirname(dirname(file))))));
26
- });
27
- }
28
- /**
29
- * Parse a legacy IDE transcript line. The public exporter identifies a typed
30
- * user prompt as `source: USER_EXPLICIT`, `type: USER_INPUT`, with a
31
- * `USER_REQUEST` body. It prefers `created_at`, falling back to the legacy
32
- * `timestamp`; absent or invalid timestamps remain null rather than guessed.
33
- */
34
- export function parseAntigravityLegacyPromptLine(line, sessionId) {
35
- let parsed;
36
- try {
37
- parsed = JSON.parse(line);
38
- }
39
- catch {
40
- return null;
41
- }
42
- if (!parsed || typeof parsed !== 'object')
43
- return null;
44
- const entry = parsed;
45
- if (entry.source !== 'USER_EXPLICIT' ||
46
- entry.type !== 'USER_INPUT' ||
47
- typeof entry.content !== 'string') {
48
- return null;
49
- }
50
- const request = entry.content.match(/<USER_REQUEST>([\s\S]*?)<\/USER_REQUEST>/)?.[1];
51
- if (!request || !request.trim())
52
- return null;
53
- return {
54
- text: request,
55
- sessionId: `antigravity-ide:${sessionId}`,
56
- timestamp: normalizeTimestamp(entry.created_at) ??
57
- normalizeTimestamp(entry.timestamp),
58
- };
59
- }
60
- /** Read each conversation once even when both storage roots retain a copy. */
61
- export async function scanAntigravityPrompts() {
62
- const files = await antigravityTranscriptFiles();
63
- const preferred = new Map();
64
- for (const file of files) {
65
- const sessionId = basename(dirname(dirname(dirname(file))));
66
- const current = preferred.get(sessionId);
67
- if (!current || basename(file) === 'transcript_full.jsonl') {
68
- preferred.set(sessionId, file);
69
- }
70
- }
71
- const prompts = [];
72
- for (const [sessionId, file] of preferred) {
73
- let content;
74
- try {
75
- content = await readFile(file, 'utf8');
76
- }
77
- catch {
78
- continue;
79
- }
80
- for (const line of content.split(/\r?\n/)) {
81
- const prompt = parseAntigravityLegacyPromptLine(line, sessionId);
82
- if (prompt)
83
- prompts.push(prompt);
84
- }
85
- }
86
- return prompts;
87
- }
88
- function normalizeTimestamp(value) {
89
- if (typeof value !== 'string' && typeof value !== 'number')
90
- return null;
91
- const time = typeof value === 'number' ? value : Date.parse(value);
92
- const date = new Date(time);
93
- return Number.isFinite(date.getTime()) ? date.toISOString() : null;
94
- }
95
- async function antigravityConversationDbs() {
96
- return (await Promise.all(antigravityRoots().map((root) => findFiles(join(root, 'conversations'), '.db'))))
97
- .flat()
98
- .filter((path) => UUID.test(basename(path, '.db')));
99
- }
100
- /** Fingerprint WAL writes too; the read-only reader sees them after checkpoint. */
101
- export async function antigravityTokenFiles() {
102
- return (await antigravityConversationDbs()).flatMap((path) => [
103
- path,
104
- `${path}-wal`,
105
- ]);
106
- }
107
- function protoFields(bytes) {
108
- const reader = protobuf.Reader.create(bytes);
109
- const fields = new Map();
110
- while (reader.pos < reader.len) {
111
- const tag = reader.uint32();
112
- const field = tag >>> 3;
113
- if (field === 0)
114
- throw new Error('invalid protobuf field');
115
- switch (tag & 7) {
116
- case 0:
117
- fields.set(field, Number(reader.uint64()));
118
- break;
119
- case 2:
120
- fields.set(field, reader.bytes());
121
- break;
122
- default:
123
- reader.skipType(tag & 7);
124
- }
125
- }
126
- return fields;
127
- }
128
- function tokenField(fields, field) {
129
- const value = fields.get(field) ?? 0;
130
- if (typeof value !== 'number' || !Number.isSafeInteger(value) || value < 0) {
131
- throw new Error('invalid token count');
132
- }
133
- return value;
134
- }
135
- /**
136
- * Source: Eneasf/antigravity-token-dashboard docs/TELEMETRY_SPEC.md.
137
- * steps.metadata: field 1 Timestamp, field 9 UsageMetadata. Input field 2 is
138
- * uncached; field 5 is cached input; output field 3 already includes reasoning
139
- * (fields 9 and 10). Never add those output subsets again.
140
- */
141
- export function parseAntigravityUsage(metadata) {
142
- try {
143
- const fields = protoFields(metadata);
144
- const timeBytes = fields.get(1);
145
- const usageBytes = fields.get(9);
146
- if (!(timeBytes instanceof Uint8Array) ||
147
- !(usageBytes instanceof Uint8Array))
148
- return null;
149
- const time = protoFields(timeBytes);
150
- if (!time.has(1))
151
- return null;
152
- const seconds = tokenField(time, 1);
153
- const nanos = tokenField(time, 2);
154
- if (nanos >= 1_000_000_000)
155
- return null;
156
- const at = new Date(seconds * 1000 + Math.floor(nanos / 1_000_000));
157
- if (!Number.isFinite(at.getTime()))
158
- return null;
159
- const usage = protoFields(usageBytes);
160
- const tokens = tokenField(usage, 2) + tokenField(usage, 3) + tokenField(usage, 5);
161
- if (!Number.isSafeInteger(tokens) || tokens <= 0)
162
- return null;
163
- const modelId = tokenField(usage, 1);
164
- // Preserve the actual enum: unofficial name tables disagree across builds.
165
- const model = modelId ? `antigravity-model-${modelId}` : '';
166
- const response = usage.get(11);
167
- return {
168
- date: at.toISOString().slice(0, 10),
169
- model,
170
- tokens,
171
- responseId: response instanceof Uint8Array
172
- ? Buffer.from(response).toString('utf8').trim() || null
173
- : null,
174
- };
175
- }
176
- catch {
177
- // An unknown/truncated protobuf is not evidence of token usage.
178
- return null;
179
- }
180
- }
181
- export async function scanAntigravity() {
182
- const collector = new TokenCollector('antigravity');
183
- const generations = new Map();
184
- for (const path of await antigravityConversationDbs()) {
185
- try {
186
- const rows = await queryDb(path, 'SELECT idx, metadata FROM steps WHERE step_type = 15 ORDER BY idx');
187
- for (const [index, metadata] of rows) {
188
- if (typeof index !== 'number' || !(metadata instanceof Uint8Array))
189
- continue;
190
- const usage = parseAntigravityUsage(metadata);
191
- if (!usage)
192
- continue;
193
- const key = usage.responseId
194
- ? `response:${usage.responseId}`
195
- : `step:${basename(path, '.db')}:${index}`;
196
- const previous = generations.get(key);
197
- if (!previous || usage.tokens > previous.tokens)
198
- generations.set(key, usage);
199
- }
200
- }
201
- catch (error) {
202
- console.warn(`Antigravity usage unavailable in ${basename(path)}: ${error instanceof Error ? error.message : String(error)}`);
203
- }
204
- }
205
- for (const usage of generations.values()) {
206
- collector.addDaily(usage.date, usage.model, usage.tokens, 1);
207
- }
208
- return collector.result();
209
- }
210
- //# sourceMappingURL=antigravity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../src/scanners/antigravity.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- export type CopilotTelemetrySources = {
2
- files: string[];
3
- databases: string[];
4
- };
5
- export type CopilotInference = {
6
- sessionId: string;
7
- model: string;
8
- timestamp: string;
9
- tokens: number;
10
- };
11
- /** Discover only Copilot-owned exports; never sweep generic agent telemetry. */
12
- export declare function copilotTelemetrySources(userDirs: string[]): Promise<CopilotTelemetrySources>;
13
- /**
14
- * VS Code's SQLiteSpanExporter preserves SDK trace/span IDs, including embedded
15
- * CLI spans. Count completed native Copilot trace leaves only, deduplicating the
16
- * DB and file exports. Require the owning agent span: a Claude/Codex delegate's
17
- * usage belongs to its native scanner, and a model called Claude is not itself
18
- * evidence that the harness was Claude Code.
19
- * Sources: microsoft/vscode extensions/copilot/src/platform/otel/node/{
20
- * fileExporters.ts,sqlite/sqliteSpanExporter.ts,sqlite/otelSqliteStore.ts}.
21
- */
22
- export declare function readCopilotTelemetry(sources: CopilotTelemetrySources): Promise<CopilotInference[]>;
23
- //# sourceMappingURL=github-copilot-telemetry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"github-copilot-telemetry.d.ts","sourceRoot":"","sources":["../../src/scanners/github-copilot-telemetry.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,uBAAuB,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAC9E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAiBD,gFAAgF;AAChF,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,uBAAuB,CAAC,CA0ClC;AAgDD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoJ7B"}