hacklab 0.12.2 → 0.12.3
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 +28 -74
- package/dist/belt.d.ts +1 -1
- package/dist/belt.d.ts.map +1 -1
- package/dist/belt.js +2 -2
- package/dist/belt.js.map +1 -1
- package/dist/cli.js +5 -7
- package/dist/cli.js.map +1 -1
- package/dist/commands/daemon.d.ts +1 -1
- package/dist/commands/daemon.js +2 -2
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/login.d.ts +3 -16
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +78 -157
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/referral.js +2 -2
- package/dist/commands/referral.js.map +1 -1
- package/dist/commands/scan.d.ts +7 -0
- package/dist/commands/scan.d.ts.map +1 -0
- package/dist/commands/scan.js +175 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/commands/sync.js +1 -1
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +9 -11
- package/dist/commands/whoami.js.map +1 -1
- package/dist/daily-sync.js +1 -1
- package/dist/daily-sync.js.map +1 -1
- package/dist/posthog.js +1 -1
- package/dist/posthog.js.map +1 -1
- package/dist/referral.js +2 -2
- package/dist/referral.js.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +6 -11
- package/dist/registry.js.map +1 -1
- package/dist/scanners/index.d.ts +3 -3
- package/dist/scanners/index.js +3 -3
- package/dist/session.d.ts +4 -4
- package/dist/share.d.ts.map +1 -1
- package/dist/share.js +4 -4
- package/dist/share.js.map +1 -1
- package/dist/sync.d.ts +5 -6
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +7 -13
- package/dist/sync.js.map +1 -1
- package/dist/ui.d.ts +2 -0
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +4 -0
- package/dist/ui.js.map +1 -1
- package/dist/utils/openBrowser.d.ts +1 -1
- package/dist/utils/openBrowser.js +1 -1
- package/dist/utils/waitForEnter.d.ts +2 -8
- package/dist/utils/waitForEnter.d.ts.map +1 -1
- package/dist/utils/waitForEnter.js +2 -11
- package/dist/utils/waitForEnter.js.map +1 -1
- package/package.json +1 -1
- package/dist/commands/join.d.ts +0 -15
- package/dist/commands/join.d.ts.map +0 -1
- package/dist/commands/join.js +0 -487
- package/dist/commands/join.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
# hacklab
|
|
2
2
|
|
|
3
3
|
The terminal-native way to join [Hacklab](https://hacklab.so) — a social network
|
|
4
|
-
for AI-native hackers.
|
|
5
|
-
|
|
4
|
+
for AI-native hackers. Sign in with GitHub, scan your local AI token usage, share
|
|
5
|
+
a card.
|
|
6
6
|
|
|
7
|
-
## Install
|
|
7
|
+
## Install
|
|
8
8
|
|
|
9
|
-
Install,
|
|
9
|
+
Install, sign in, then summon the daemon:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
12
|
curl -fsSL https://hacklab.so/install | sh
|
|
13
|
-
hacklab
|
|
13
|
+
hacklab login
|
|
14
14
|
hacklab daemon
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
The script checks for Node 20+ and installs the CLI globally — that's all it
|
|
18
|
-
does. After it, `hacklab` is a real command on your PATH; `
|
|
19
|
-
|
|
20
|
-
(including through a version manager), you can skip the script:
|
|
18
|
+
does. After it, `hacklab` is a real command on your PATH; `login` creates or
|
|
19
|
+
restores your account and `daemon` schedules the background sync. If you already
|
|
20
|
+
have Node 20+ (including through a version manager), you can skip the script:
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
23
|
npm i -g hacklab@latest
|
|
24
|
-
hacklab
|
|
24
|
+
hacklab login
|
|
25
25
|
hacklab daemon
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
### Windows
|
|
29
29
|
|
|
30
30
|
On native Windows (PowerShell), use the `.ps1` installer instead — it checks
|
|
31
|
-
for Node 20+ and installs the CLI globally, then points you at `hacklab
|
|
31
|
+
for Node 20+ and installs the CLI globally, then points you at `hacklab login`:
|
|
32
32
|
|
|
33
33
|
```powershell
|
|
34
34
|
irm https://hacklab.so/install.ps1 | iex
|
|
@@ -46,49 +46,26 @@ runs. If you install manually instead (`npm i -g hacklab@latest`) and PowerShell
|
|
|
46
46
|
says *"running scripts is disabled on this system"*, run that one line yourself,
|
|
47
47
|
or call `hacklab.cmd …` (which no execution policy blocks).
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
early: it prints who you're signed in as and how to switch (`hacklab logout`
|
|
51
|
-
then `hacklab login`) instead of re-registering. A half-finished signup that
|
|
52
|
-
authenticated but never claimed a username still falls through, so you can
|
|
53
|
-
re-run and complete it. The `curl | sh` installer itself only installs — it
|
|
54
|
-
never touches your session.
|
|
49
|
+
The `curl | sh` installer itself only installs — it never touches your session.
|
|
55
50
|
|
|
56
51
|
The CLI prints a one-line nudge when a newer version is published (checked at
|
|
57
52
|
most once a day); update with `npm i -g hacklab@latest`.
|
|
58
53
|
|
|
59
|
-
##
|
|
54
|
+
## Scan
|
|
60
55
|
|
|
61
56
|
```
|
|
62
|
-
scan local AI usage →
|
|
57
|
+
scan local AI usage → card → optional X share
|
|
63
58
|
```
|
|
64
59
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
and real daily history. Skip it and the estimate stands — you can add a key
|
|
71
|
-
later with `hacklab config cursor-api-key <key>`. Nobody without Cursor is
|
|
72
|
-
asked.
|
|
73
|
-
3. **Rank** — shows the rank that usage would hold (`you'd be #15 of N`), with no
|
|
74
|
-
account required.
|
|
75
|
-
4. **GitHub** — sign in to authenticate and link your profile + repos.
|
|
76
|
-
5. **Username** — pick your Hacklab handle (checked for availability live).
|
|
77
|
-
6. **Claim** — saves your usage, syncs pinned GitHub projects, and claims
|
|
78
|
-
`hacklab.so/<username>`. Bio and the first drop finish activation in the web
|
|
79
|
-
onboarding flow. Join never schedules anything behind your back — it points
|
|
80
|
-
you at `hacklab daemon` for the background sync.
|
|
81
|
-
7. **Card** — renders the belt, level, rank, and token breakdown directly in the
|
|
82
|
-
terminal. Terminals without inline images get a text version.
|
|
83
|
-
8. **Share** — one optional X prompt. Saying yes saves the image to
|
|
84
|
-
`~/hacklab-card.png`, copies it, and opens a prefilled X post; saying no exits.
|
|
60
|
+
`hacklab scan` reads your local AI token usage from Claude Code, Codex, Cursor,
|
|
61
|
+
OpenClaw, Hermes, OpenCode, and Grok Build. Nothing leaves your machine unless
|
|
62
|
+
you share the card. Cursor users with no API key are offered one (local Cursor
|
|
63
|
+
data is only an estimate). Then it renders the belt/level/token card in the
|
|
64
|
+
terminal and asks whether to share it on X.
|
|
85
65
|
|
|
86
66
|
## Commands
|
|
87
67
|
|
|
88
|
-
- `hacklab
|
|
89
|
-
new users (and `sync` for returning ones). If you're already signed in with a
|
|
90
|
-
finished profile it stops early and points you at `hacklab logout` +
|
|
91
|
-
`hacklab login` to switch accounts.
|
|
68
|
+
- `hacklab scan` — scan local AI usage and generate a share card.
|
|
92
69
|
- `hacklab sync` — re-scan local AI usage and sync it to your profile.
|
|
93
70
|
- `hacklab daemon` — summon the daemon: two OS-native background jobs (launchd on
|
|
94
71
|
macOS, systemd user timers on Linux, Task Scheduler tasks on Windows) so your
|
|
@@ -109,7 +86,7 @@ scan local AI usage → see your rank → sign in with GitHub → claim a userna
|
|
|
109
86
|
`tail`, `post`, `history`, `dms`, `dm <handle>`, `flag`. Author handles are
|
|
110
87
|
coloured by belt rank. Add `--json` to any non-interactive subcommand for
|
|
111
88
|
machine-readable output an agent can drive.
|
|
112
|
-
- `hacklab login` —
|
|
89
|
+
- `hacklab login` — sign in with GitHub (creates an account if you don't have one).
|
|
113
90
|
- `hacklab logout` — clear your saved session on this machine.
|
|
114
91
|
- `hacklab config <key> <value>` — set config (`cursor-api-key`, `cursor-email`,
|
|
115
92
|
`prompt-stats`).
|
|
@@ -169,7 +146,7 @@ scan local AI usage → see your rank → sign in with GitHub → claim a userna
|
|
|
169
146
|
- `hacklab jobs` — browse the Job Shop. Bare `hacklab jobs` (or `jobs list`,
|
|
170
147
|
with `--limit 1-100`) lists what's hiring; `jobs view <id>` reads one listing
|
|
171
148
|
in full with its apply link. Read-only — posting is `hacklab org jobs post`.
|
|
172
|
-
|
|
149
|
+
`hacklab jo` resolves to `jobs`.
|
|
173
150
|
- `hacklab profile` — view and edit your own profile. Bare `profile` (or
|
|
174
151
|
`profile view`) shows it; `profile edit` is an org-style autosave editor;
|
|
175
152
|
`profile set <field> <value>` writes one field (`--clear` unsets, handles like
|
|
@@ -279,7 +256,7 @@ Every command resolves which backend to talk to by the same precedence:
|
|
|
279
256
|
4. **production** (`https://hacklab.so`) by default.
|
|
280
257
|
|
|
281
258
|
```bash
|
|
282
|
-
hacklab
|
|
259
|
+
hacklab login --env development # http://localhost:3000
|
|
283
260
|
hacklab drop "hi" --env dev # the override applies to every command, not just login
|
|
284
261
|
```
|
|
285
262
|
|
|
@@ -307,9 +284,6 @@ you logged in.
|
|
|
307
284
|
the full precedence.
|
|
308
285
|
- `HACKLAB_SESSION_PATH` — custom path for the session file
|
|
309
286
|
(default `~/.hacklab/session.json`).
|
|
310
|
-
- `HACKLAB_CALLBACK_PORT` — pin the local OAuth callback port (default: a random
|
|
311
|
-
free port). Lets you forward a fixed port for the browser-callback flow on a
|
|
312
|
-
remote host.
|
|
313
287
|
- `HACKLAB_NO_UPDATE_CHECK` — set to any value to disable the once-a-day
|
|
314
288
|
"newer version available" nudge. The check is already skipped for piped /
|
|
315
289
|
scripted / `--json` runs; this turns it off for interactive runs too.
|
|
@@ -319,31 +293,11 @@ you logged in.
|
|
|
319
293
|
|
|
320
294
|
## Signing in
|
|
321
295
|
|
|
322
|
-
`hacklab login`
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
URL. (No Hacklab account linked to that GitHub yet? `hacklab join` registers
|
|
328
|
-
one; `hacklab login` tells you to run `join`.)
|
|
329
|
-
|
|
330
|
-
### `--browser`: the local browser flow
|
|
331
|
-
|
|
332
|
-
Pass `--browser` to `login`/`join` to use the OAuth-redirect flow instead — it
|
|
333
|
-
opens your browser and catches the redirect on a local callback server. Handy on
|
|
334
|
-
a desktop where auto-opening a browser beats typing a code. On a remote host
|
|
335
|
-
you'd forward the callback port (pin it with `HACKLAB_CALLBACK_PORT` so the
|
|
336
|
-
forward is stable):
|
|
337
|
-
|
|
338
|
-
```bash
|
|
339
|
-
# on the remote host:
|
|
340
|
-
HACKLAB_CALLBACK_PORT=8765 hacklab login --browser
|
|
341
|
-
# from your laptop, forward that port, then open the printed URL:
|
|
342
|
-
ssh -L 8765:localhost:8765 <this-host>
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
The device flow also falls back to `--browser` automatically if a backend
|
|
346
|
-
doesn't expose the device routes yet.
|
|
296
|
+
`hacklab login` uses **GitHub's device flow**, everywhere (desktop or headless):
|
|
297
|
+
it prints a short code and `github.com/login/device`. Open that on any device
|
|
298
|
+
where you're signed into GitHub, enter the code, and authorize Hacklab — the
|
|
299
|
+
terminal logs into the linked Hacklab account, creating one if needed. No local
|
|
300
|
+
server, no port forwarding, no localhost/app URL.
|
|
347
301
|
|
|
348
302
|
## Local development
|
|
349
303
|
|
|
@@ -362,7 +316,7 @@ development` (localhost) or `HACKLAB_APP_URL=<url>`. Use a throwaway session to
|
|
|
362
316
|
avoid touching a real account:
|
|
363
317
|
|
|
364
318
|
```bash
|
|
365
|
-
HACKLAB_SESSION_PATH=/tmp/hl-test.json pnpm dev
|
|
319
|
+
HACKLAB_SESSION_PATH=/tmp/hl-test.json pnpm dev login --env development
|
|
366
320
|
```
|
|
367
321
|
|
|
368
322
|
## Telemetry
|
package/dist/belt.d.ts
CHANGED
|
@@ -20,6 +20,6 @@ export type BeltProgress = {
|
|
|
20
20
|
beltColor: BeltColor;
|
|
21
21
|
progressPercent: number;
|
|
22
22
|
};
|
|
23
|
-
/** Belt info for a raw token total (pyro-only — correct for a fresh
|
|
23
|
+
/** Belt info for a raw token total (pyro-only — correct for a fresh account). */
|
|
24
24
|
export declare function beltForTokens(tokensTotal: number): BeltProgress;
|
|
25
25
|
//# sourceMappingURL=belt.d.ts.map
|
package/dist/belt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"belt.d.ts","sourceRoot":"","sources":["../src/belt.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,SAAS,GACjB,OAAO,GACP,QAAQ,GACR,KAAK,GACL,MAAM,GACN,MAAM,GACN,QAAQ,GACR,MAAM,GACN,OAAO,GACP,MAAM,GACN,QAAQ,GACR,OAAO,CAAA;AAEX,MAAM,MAAM,KAAK,GACb,QAAQ,GACR,OAAO,GACP,OAAO,GACP,SAAS,GACT,SAAS,GACT,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,KAAK,GACL,QAAQ,CAAA;AAEZ,MAAM,MAAM,QAAQ,GAChB,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,SAAS,GACT,SAAS,GACT,UAAU,GACV,OAAO,GACP,OAAO,CAAA;AAEX,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;AAqCvE,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,8CAA8C;AAC9C,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAM5C;AAED,4CAA4C;AAC5C,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED,yDAAyD;AACzD,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wCAAwC;AACxC,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAMrD;AAED,mCAAmC;AACnC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,gBAAgB,CAkB3E;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,gBAAgB,CAAA;IAC1C,SAAS,EAAE,SAAS,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"belt.d.ts","sourceRoot":"","sources":["../src/belt.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,SAAS,GACjB,OAAO,GACP,QAAQ,GACR,KAAK,GACL,MAAM,GACN,MAAM,GACN,QAAQ,GACR,MAAM,GACN,OAAO,GACP,MAAM,GACN,QAAQ,GACR,OAAO,CAAA;AAEX,MAAM,MAAM,KAAK,GACb,QAAQ,GACR,OAAO,GACP,OAAO,GACP,SAAS,GACT,SAAS,GACT,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,KAAK,GACL,QAAQ,CAAA;AAEZ,MAAM,MAAM,QAAQ,GAChB,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,SAAS,GACT,SAAS,GACT,UAAU,GACV,OAAO,GACP,OAAO,CAAA;AAEX,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;AAqCvE,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,8CAA8C;AAC9C,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAM5C;AAED,4CAA4C;AAC5C,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED,yDAAyD;AACzD,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wCAAwC;AACxC,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAMrD;AAED,mCAAmC;AACnC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,gBAAgB,CAkB3E;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,gBAAgB,CAAA;IAC1C,SAAS,EAAE,SAAS,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAgB/D"}
|
package/dist/belt.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// (drizzle/pg/etc.), so we copy the small, stable curve here.
|
|
5
5
|
//
|
|
6
6
|
// One curve: xp(level) = 23 × level^3.32 up to level 100, exponential above.
|
|
7
|
-
// Pyro XP = tokens / 1000. For a brand-new
|
|
7
|
+
// Pyro XP = tokens / 1000. For a brand-new account, hacker + mason XP are 0, so
|
|
8
8
|
// belt XP == pyro XP — which is exactly what the server computes right after
|
|
9
9
|
// the first sync. Kept in sync via belt.test.ts (anchored to the known points).
|
|
10
10
|
const K = 3.32;
|
|
@@ -94,7 +94,7 @@ export function getTitle(level) {
|
|
|
94
94
|
}
|
|
95
95
|
return 'gaijin';
|
|
96
96
|
}
|
|
97
|
-
/** Belt info for a raw token total (pyro-only — correct for a fresh
|
|
97
|
+
/** Belt info for a raw token total (pyro-only — correct for a fresh account). */
|
|
98
98
|
export function beltForTokens(tokensTotal) {
|
|
99
99
|
const xp = tokensToXp(tokensTotal);
|
|
100
100
|
const level = getLevel(xp);
|
package/dist/belt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"belt.js","sourceRoot":"","sources":["../src/belt.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,6EAA6E;AAC7E,8DAA8D;AAC9D,EAAE;AACF,6EAA6E;AAC7E,
|
|
1
|
+
{"version":3,"file":"belt.js","sourceRoot":"","sources":["../src/belt.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -74,8 +74,7 @@ const HELP_GROUPS = [
|
|
|
74
74
|
{
|
|
75
75
|
title: 'auth',
|
|
76
76
|
rows: [
|
|
77
|
-
{ label: '
|
|
78
|
-
{ label: 'login [--browser]', summary: 're-authenticate with github' },
|
|
77
|
+
{ label: 'login', summary: 'sign in with github' },
|
|
79
78
|
{ label: 'logout', summary: "clear this machine's session" },
|
|
80
79
|
{ label: 'whoami', summary: "who you're logged in as" },
|
|
81
80
|
],
|
|
@@ -91,7 +90,8 @@ const HELP_GROUPS = [
|
|
|
91
90
|
title: 'game',
|
|
92
91
|
rows: [
|
|
93
92
|
{ label: 'rules', summary: 'understand how the ranking works' },
|
|
94
|
-
{ label: '
|
|
93
|
+
{ label: 'scan', summary: 'scan local AI usage and share a card' },
|
|
94
|
+
{ label: 'sync', summary: 'upload local AI usage to your profile' },
|
|
95
95
|
],
|
|
96
96
|
},
|
|
97
97
|
{
|
|
@@ -209,10 +209,8 @@ async function main() {
|
|
|
209
209
|
}
|
|
210
210
|
// Surface a paused daily background sync (e.g. the session expired while the
|
|
211
211
|
// machine was off) once, then clear the marker. Skipped for the auth commands
|
|
212
|
-
// that fix it (login
|
|
213
|
-
if (process.stdout.isTTY &&
|
|
214
|
-
command.name !== 'login' &&
|
|
215
|
-
command.name !== 'join') {
|
|
212
|
+
// that fix it (login), so we never nag mid-fix.
|
|
213
|
+
if (process.stdout.isTTY && command.name !== 'login') {
|
|
216
214
|
const paused = await readSyncPaused();
|
|
217
215
|
if (paused) {
|
|
218
216
|
console.error(dim(`paused: daily background sync — ${paused}`));
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* only what your tools appended since the last run) and a full sync once a day
|
|
9
9
|
* that re-scans everything and repairs whatever the tick got wrong.
|
|
10
10
|
*
|
|
11
|
-
* This used to be a side effect of
|
|
11
|
+
* This used to be a side effect of signup (and a flag on `sync`), which made it
|
|
12
12
|
* invisible: users couldn't tell whether anything was scheduled, and the web
|
|
13
13
|
* onboarding had no step to point at. Now it's a command the onboarding flow
|
|
14
14
|
* tells people to run, so arming the daemon is a thing you *did*, not a thing
|
package/dist/commands/daemon.js
CHANGED
|
@@ -12,7 +12,7 @@ import { dim, error, info, success } from '../ui.js';
|
|
|
12
12
|
* only what your tools appended since the last run) and a full sync once a day
|
|
13
13
|
* that re-scans everything and repairs whatever the tick got wrong.
|
|
14
14
|
*
|
|
15
|
-
* This used to be a side effect of
|
|
15
|
+
* This used to be a side effect of signup (and a flag on `sync`), which made it
|
|
16
16
|
* invisible: users couldn't tell whether anything was scheduled, and the web
|
|
17
17
|
* onboarding had no step to point at. Now it's a command the onboarding flow
|
|
18
18
|
* tells people to run, so arming the daemon is a thing you *did*, not a thing
|
|
@@ -30,7 +30,7 @@ async function summon() {
|
|
|
30
30
|
const session = await loadSession();
|
|
31
31
|
if (!session) {
|
|
32
32
|
error('not logged in');
|
|
33
|
-
info(`run ${dim('hacklab
|
|
33
|
+
info(`run ${dim('hacklab login')} first`);
|
|
34
34
|
process.exit(1);
|
|
35
35
|
}
|
|
36
36
|
const result = await installDailySync();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/commands/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAEpD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAiB,EAAE;IAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,EAAE,CAAA;IACpE,OAAO,MAAM,EAAE,CAAA;AACjB,CAAC;AAED;+CAC+C;AAC/C,KAAK,UAAU,MAAM;IACnB,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAA;IACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,KAAK,CAAC,eAAe,CAAC,CAAA;QACtB,IAAI,CACF,OAAO,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/commands/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAEpD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAiB,EAAE;IAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,EAAE,CAAA;IACpE,OAAO,MAAM,EAAE,CAAA;AACjB,CAAC;AAED;+CAC+C;AAC/C,KAAK,UAAU,MAAM;IACnB,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAA;IACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,KAAK,CAAC,eAAe,CAAC,CAAA;QACtB,IAAI,CACF,OAAO,GAAG,CAAC,eAAe,CAAC,QAAQ,CACpC,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAA;IACvC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,CACL,mEAAmE,MAAM,CAAC,SAAS,EAAE,CACtF,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,GAAG,CAAC,UAAU,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;QACpC,IAAI,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAA;QAC3E,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,0BAA0B,EAAE;YAC7D,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAA;QACF,OAAM;IACR,CAAC;IAED,8EAA8E;IAC9E,uEAAuE;IACvE,+EAA+E;IAC/E,KAAK,CAAC,sDAAsD,CAAC,CAAA;IAC7D,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IACzB,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,uBAAuB,EAAE;QAC1D,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAA;AACJ,CAAC;AAED;0EAC0E;AAC1E,KAAK,UAAU,OAAO;IACpB,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAA;IACnC,MAAM,kBAAkB,EAAE,CAAA;IAC1B,MAAM,eAAe,EAAE,CAAA;IACvB,OAAO,CAAC,4CAA4C,CAAC,CAAA;IACrD,IAAI,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC,CAAA;IACpD,MAAM,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,wBAAwB,CAAC,CAAA;AAC/D,CAAC"}
|
package/dist/commands/login.d.ts
CHANGED
|
@@ -1,19 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Authenticate
|
|
3
|
-
*
|
|
4
|
-
* github.com/login/device (signed into GitHub, not Hacklab), and the backend
|
|
5
|
-
* maps your GitHub identity to the linked Hacklab account. No local server,
|
|
6
|
-
* no port forwarding, no localhost/app URL. Works the same everywhere.
|
|
7
|
-
* - localhost-callback flow (only with `--browser`): opens the browser and
|
|
8
|
-
* catches the OAuth redirect on a local server.
|
|
9
|
-
*
|
|
10
|
-
* `allowSignup` (set by `join`) lets the device flow *create* an account when
|
|
11
|
-
* the GitHub identity has none yet; `login` leaves it off, so an unknown GitHub
|
|
12
|
-
* is told to run `join`. The callback flow always creates-or-logs-in via real
|
|
13
|
-
* OAuth, so it's signup-capable regardless.
|
|
2
|
+
* Authenticate via GitHub's device flow. Unknown GitHub identities get an
|
|
3
|
+
* account. An unclaimed GitHub-derived handle is claimed as-is.
|
|
14
4
|
*/
|
|
15
|
-
export declare function login(
|
|
16
|
-
browser?: boolean;
|
|
17
|
-
allowSignup?: boolean;
|
|
18
|
-
}): Promise<void>;
|
|
5
|
+
export declare function login(): Promise<void>;
|
|
19
6
|
//# sourceMappingURL=login.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA4C3C"}
|