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.
- package/README.md +23 -430
- package/dist/index.js +132 -23
- package/package.json +20 -42
- package/LICENSE +0 -21
- package/dist/agent-handoff.d.ts +0 -51
- package/dist/agent-handoff.d.ts.map +0 -1
- package/dist/agent-handoff.js +0 -91
- package/dist/agent-handoff.js.map +0 -1
- package/dist/api-client.d.ts +0 -18
- package/dist/api-client.d.ts.map +0 -1
- package/dist/api-client.js +0 -40
- package/dist/api-client.js.map +0 -1
- package/dist/belt.d.ts +0 -25
- package/dist/belt.d.ts.map +0 -1
- package/dist/belt.js +0 -113
- package/dist/belt.js.map +0 -1
- package/dist/card.d.ts +0 -66
- package/dist/card.d.ts.map +0 -1
- package/dist/card.js +0 -151
- package/dist/card.js.map +0 -1
- package/dist/cli.d.ts +0 -2
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -238
- package/dist/cli.js.map +0 -1
- package/dist/commands/book.d.ts +0 -14
- package/dist/commands/book.d.ts.map +0 -1
- package/dist/commands/book.js +0 -90
- package/dist/commands/book.js.map +0 -1
- package/dist/commands/chat.d.ts +0 -36
- package/dist/commands/chat.d.ts.map +0 -1
- package/dist/commands/chat.js +0 -642
- package/dist/commands/chat.js.map +0 -1
- package/dist/commands/config.d.ts +0 -2
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -84
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/daemon.d.ts +0 -19
- package/dist/commands/daemon.d.ts.map +0 -1
- package/dist/commands/daemon.js +0 -72
- package/dist/commands/daemon.js.map +0 -1
- package/dist/commands/drop.d.ts +0 -12
- package/dist/commands/drop.d.ts.map +0 -1
- package/dist/commands/drop.js +0 -103
- package/dist/commands/drop.js.map +0 -1
- package/dist/commands/drops.d.ts +0 -9
- package/dist/commands/drops.d.ts.map +0 -1
- package/dist/commands/drops.js +0 -96
- package/dist/commands/drops.js.map +0 -1
- package/dist/commands/essay.d.ts +0 -40
- package/dist/commands/essay.d.ts.map +0 -1
- package/dist/commands/essay.js +0 -651
- package/dist/commands/essay.js.map +0 -1
- package/dist/commands/hackathon.d.ts +0 -2
- package/dist/commands/hackathon.d.ts.map +0 -1
- package/dist/commands/hackathon.js +0 -893
- package/dist/commands/hackathon.js.map +0 -1
- package/dist/commands/hacker.d.ts +0 -2
- package/dist/commands/hacker.d.ts.map +0 -1
- package/dist/commands/hacker.js +0 -87
- package/dist/commands/hacker.js.map +0 -1
- package/dist/commands/jobs.d.ts +0 -18
- package/dist/commands/jobs.d.ts.map +0 -1
- package/dist/commands/jobs.js +0 -138
- package/dist/commands/jobs.js.map +0 -1
- package/dist/commands/keys.d.ts +0 -2
- package/dist/commands/keys.d.ts.map +0 -1
- package/dist/commands/keys.js +0 -138
- package/dist/commands/keys.js.map +0 -1
- package/dist/commands/login.d.ts +0 -83
- package/dist/commands/login.d.ts.map +0 -1
- package/dist/commands/login.js +0 -236
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.d.ts +0 -2
- package/dist/commands/logout.d.ts.map +0 -1
- package/dist/commands/logout.js +0 -22
- package/dist/commands/logout.js.map +0 -1
- package/dist/commands/org-jobs.d.ts +0 -50
- package/dist/commands/org-jobs.d.ts.map +0 -1
- package/dist/commands/org-jobs.js +0 -383
- package/dist/commands/org-jobs.js.map +0 -1
- package/dist/commands/org.d.ts +0 -67
- package/dist/commands/org.d.ts.map +0 -1
- package/dist/commands/org.js +0 -1244
- package/dist/commands/org.js.map +0 -1
- package/dist/commands/ping.d.ts +0 -2
- package/dist/commands/ping.d.ts.map +0 -1
- package/dist/commands/ping.js +0 -50
- package/dist/commands/ping.js.map +0 -1
- package/dist/commands/profile.d.ts +0 -72
- package/dist/commands/profile.d.ts.map +0 -1
- package/dist/commands/profile.js +0 -672
- package/dist/commands/profile.js.map +0 -1
- package/dist/commands/project.d.ts +0 -2
- package/dist/commands/project.d.ts.map +0 -1
- package/dist/commands/project.js +0 -583
- package/dist/commands/project.js.map +0 -1
- package/dist/commands/referral.d.ts +0 -6
- package/dist/commands/referral.d.ts.map +0 -1
- package/dist/commands/referral.js +0 -93
- package/dist/commands/referral.js.map +0 -1
- package/dist/commands/rtfm.d.ts +0 -9
- package/dist/commands/rtfm.d.ts.map +0 -1
- package/dist/commands/rtfm.js +0 -114
- package/dist/commands/rtfm.js.map +0 -1
- package/dist/commands/scan.d.ts +0 -13
- package/dist/commands/scan.d.ts.map +0 -1
- package/dist/commands/scan.js +0 -286
- package/dist/commands/scan.js.map +0 -1
- package/dist/commands/scout.d.ts +0 -18
- package/dist/commands/scout.d.ts.map +0 -1
- package/dist/commands/scout.js +0 -232
- package/dist/commands/scout.js.map +0 -1
- package/dist/commands/setup-rail.d.ts +0 -58
- package/dist/commands/setup-rail.d.ts.map +0 -1
- package/dist/commands/setup-rail.js +0 -135
- package/dist/commands/setup-rail.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -29
- package/dist/commands/setup.d.ts.map +0 -1
- package/dist/commands/setup.js +0 -442
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/sync.d.ts +0 -9
- package/dist/commands/sync.d.ts.map +0 -1
- package/dist/commands/sync.js +0 -345
- package/dist/commands/sync.js.map +0 -1
- package/dist/commands/update.d.ts +0 -2
- package/dist/commands/update.d.ts.map +0 -1
- package/dist/commands/update.js +0 -92
- package/dist/commands/update.js.map +0 -1
- package/dist/commands/whoami.d.ts +0 -2
- package/dist/commands/whoami.d.ts.map +0 -1
- package/dist/commands/whoami.js +0 -41
- package/dist/commands/whoami.js.map +0 -1
- package/dist/config.d.ts +0 -78
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -93
- package/dist/config.js.map +0 -1
- package/dist/daily-sync.d.ts +0 -150
- package/dist/daily-sync.d.ts.map +0 -1
- package/dist/daily-sync.js +0 -665
- package/dist/daily-sync.js.map +0 -1
- package/dist/dossier.d.ts +0 -73
- package/dist/dossier.d.ts.map +0 -1
- package/dist/dossier.js +0 -141
- package/dist/dossier.js.map +0 -1
- package/dist/field-normalize.d.ts +0 -4
- package/dist/field-normalize.d.ts.map +0 -1
- package/dist/field-normalize.js +0 -8
- package/dist/field-normalize.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/job-fields.d.ts +0 -47
- package/dist/job-fields.d.ts.map +0 -1
- package/dist/job-fields.js +0 -148
- package/dist/job-fields.js.map +0 -1
- package/dist/machine.d.ts +0 -15
- package/dist/machine.d.ts.map +0 -1
- package/dist/machine.js +0 -64
- package/dist/machine.js.map +0 -1
- package/dist/org-fields.d.ts +0 -57
- package/dist/org-fields.d.ts.map +0 -1
- package/dist/org-fields.js +0 -167
- package/dist/org-fields.js.map +0 -1
- package/dist/posthog.d.ts +0 -38
- package/dist/posthog.d.ts.map +0 -1
- package/dist/posthog.js +0 -224
- package/dist/posthog.js.map +0 -1
- package/dist/project-fields.d.ts +0 -40
- package/dist/project-fields.d.ts.map +0 -1
- package/dist/project-fields.js +0 -79
- package/dist/project-fields.js.map +0 -1
- package/dist/prompt-consent.d.ts +0 -73
- package/dist/prompt-consent.d.ts.map +0 -1
- package/dist/prompt-consent.js +0 -191
- package/dist/prompt-consent.js.map +0 -1
- package/dist/prompt-stats.d.ts +0 -226
- package/dist/prompt-stats.d.ts.map +0 -1
- package/dist/prompt-stats.js +0 -561
- package/dist/prompt-stats.js.map +0 -1
- package/dist/referral.d.ts +0 -14
- package/dist/referral.d.ts.map +0 -1
- package/dist/referral.js +0 -28
- package/dist/referral.js.map +0 -1
- package/dist/registry.d.ts +0 -15
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -180
- package/dist/registry.js.map +0 -1
- package/dist/resolve-command.d.ts +0 -20
- package/dist/resolve-command.d.ts.map +0 -1
- package/dist/resolve-command.js +0 -21
- package/dist/resolve-command.js.map +0 -1
- package/dist/scanners/antigravity.d.ts +0 -41
- package/dist/scanners/antigravity.d.ts.map +0 -1
- package/dist/scanners/antigravity.js +0 -210
- package/dist/scanners/antigravity.js.map +0 -1
- package/dist/scanners/github-copilot-telemetry.d.ts +0 -23
- package/dist/scanners/github-copilot-telemetry.d.ts.map +0 -1
- package/dist/scanners/github-copilot-telemetry.js +0 -220
- package/dist/scanners/github-copilot-telemetry.js.map +0 -1
- package/dist/scanners/github-copilot.d.ts +0 -68
- package/dist/scanners/github-copilot.d.ts.map +0 -1
- package/dist/scanners/github-copilot.js +0 -262
- package/dist/scanners/github-copilot.js.map +0 -1
- package/dist/scanners/incremental.d.ts +0 -282
- package/dist/scanners/incremental.d.ts.map +0 -1
- package/dist/scanners/incremental.js +0 -788
- package/dist/scanners/incremental.js.map +0 -1
- package/dist/scanners/index.d.ts +0 -116
- package/dist/scanners/index.d.ts.map +0 -1
- package/dist/scanners/index.js +0 -726
- package/dist/scanners/index.js.map +0 -1
- package/dist/scanners/sqlite.d.ts +0 -18
- package/dist/scanners/sqlite.d.ts.map +0 -1
- package/dist/scanners/sqlite.js +0 -63
- package/dist/scanners/sqlite.js.map +0 -1
- package/dist/scanners/util.d.ts +0 -112
- package/dist/scanners/util.d.ts.map +0 -1
- package/dist/scanners/util.js +0 -167
- package/dist/scanners/util.js.map +0 -1
- package/dist/session.d.ts +0 -106
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js +0 -191
- package/dist/session.js.map +0 -1
- package/dist/share-card-colors.d.ts +0 -19
- package/dist/share-card-colors.d.ts.map +0 -1
- package/dist/share-card-colors.js +0 -36
- package/dist/share-card-colors.js.map +0 -1
- package/dist/share-card.d.ts +0 -31
- package/dist/share-card.d.ts.map +0 -1
- package/dist/share-card.js +0 -380
- package/dist/share-card.js.map +0 -1
- package/dist/share.d.ts +0 -17
- package/dist/share.d.ts.map +0 -1
- package/dist/share.js +0 -75
- package/dist/share.js.map +0 -1
- package/dist/sync.d.ts +0 -100
- package/dist/sync.d.ts.map +0 -1
- package/dist/sync.js +0 -304
- package/dist/sync.js.map +0 -1
- package/dist/ui.d.ts +0 -33
- package/dist/ui.d.ts.map +0 -1
- package/dist/ui.js +0 -127
- package/dist/ui.js.map +0 -1
- package/dist/utils/npmGlobal.d.ts +0 -30
- package/dist/utils/npmGlobal.d.ts.map +0 -1
- package/dist/utils/npmGlobal.js +0 -69
- package/dist/utils/npmGlobal.js.map +0 -1
- package/dist/utils/openBrowser.d.ts +0 -14
- package/dist/utils/openBrowser.d.ts.map +0 -1
- package/dist/utils/openBrowser.js +0 -47
- package/dist/utils/openBrowser.js.map +0 -1
- package/dist/utils/updateCheck.d.ts +0 -16
- package/dist/utils/updateCheck.d.ts.map +0 -1
- package/dist/utils/updateCheck.js +0 -111
- package/dist/utils/updateCheck.js.map +0 -1
- package/dist/utils/waitForEnter.d.ts +0 -12
- package/dist/utils/waitForEnter.d.ts.map +0 -1
- package/dist/utils/waitForEnter.js +0 -43
- 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
|
package/dist/registry.js.map
DELETED
|
@@ -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"}
|
package/dist/resolve-command.js
DELETED
|
@@ -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"}
|