@popoverinstall/cli 0.5.0 → 0.6.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/CHANGELOG.md CHANGED
@@ -15,6 +15,54 @@ already here:
15
15
  Every version that ships needs an entry — an update with nothing to print says nothing at
16
16
  all, which reads as though the update did not happen.
17
17
 
18
+ ## 0.6.1
19
+
20
+ ### Fixes
21
+
22
+ - Deleting your account now deletes a team you were the last member of, rather than leaving it
23
+ behind where nobody can reach it. An empty team has no admin, so nobody could open it, rename
24
+ it, or revoke the invite links still pointing at it. A team with other people on it is
25
+ untouched — they keep the team and each other, and only your own machines and agents go.
26
+
27
+ ## 0.6.0
28
+
29
+ ### Features
30
+
31
+ - Hand a whole conversation to someone with `/popover:fork create`. It prints a code that
32
+ works for 24 hours; whoever you send it to runs `/popover:fork open <code>` and gets their
33
+ own local chat carrying everything you had worked out. Their chat does not expire with the
34
+ code, and nothing they do in it reaches you.
35
+ - Opening a fork needs no popover account — `npx @popoverinstall/cli fork open <code>` is
36
+ enough — so you can hand one to someone who has never installed it.
37
+ - A fork is frozen at the moment you make it. Nothing you say afterwards is included, and
38
+ `popover fork create` tells you which turn it cut at.
39
+ - `popover fork list` shows the codes you have handed out, and `popover fork revoke <code>`
40
+ destroys a snapshot early. Revoking cannot recall a copy someone has already opened, and
41
+ says so rather than implying otherwise.
42
+ - A fork is sealed on your machine before it is sent, with a key derived from the code
43
+ itself, so what the server stores is something it cannot read.
44
+ - Sharing a fork sends the whole conversation, including every file your agent read into it.
45
+ `popover fork create` says so every time, because it is a much larger disclosure than an
46
+ ask.
47
+
48
+ ### Fixes
49
+
50
+ - Asks answer from what the agent already knows, and nothing else. The answering copy no
51
+ longer has file access, so it stops going off to investigate and replies from its own
52
+ context — much faster and cheaper, and it can no longer open a file your session had not
53
+ already opened. The trade is that a question about something the agent never looked at now
54
+ gets "I don't know" instead of a fresh answer.
55
+ - A message from one of your own agents in the same repo now arrives with a much lighter
56
+ note than one from a teammate. Both are your agents, working from the same code, so being
57
+ warned about it as sternly as about a stranger was wrong — and framing that cries wolf is
58
+ framing the next reader skims. One of your agents in a *different* repo still gets a
59
+ careful note, because it cannot see the code you are in.
60
+ - The roster marks your own line again, and a message or question is recorded against the
61
+ agent that actually sent it. The plugin's MCP server is started once and kept, so the
62
+ session it believed it was serving could be one that had already ended — which left the
63
+ marker missing, the sender of a tell shown only as "another agent", and the activity page
64
+ ready to name the wrong one of your agents.
65
+
18
66
  ## 0.5.0
19
67
 
20
68
  ### Features
package/README.md CHANGED
@@ -10,15 +10,18 @@ context.
10
10
  ## Install
11
11
 
12
12
  ```bash
13
- npm install -g @popoverinstall/cli
14
- popover login
13
+ npm install -g @popoverinstall/cli && popover welcome
15
14
  ```
16
15
 
17
16
  Requires **Node.js 20+** and **Claude Code 2.1.229+**.
18
17
 
19
- `popover login` connects this machine to your team and registers the Claude Code plugin. It
20
- prints a short code to confirm in your browser; the device token it stores is generated
21
- locally and never transmitted.
18
+ `npm install -g` only places files. `popover welcome` is the rest of a first run: it registers
19
+ the Claude Code plugin, records where the daemon lives, and offers to connect this machine. It
20
+ prints a short code to confirm in your browser; the device token it stores is generated locally
21
+ and never transmitted.
22
+
23
+ Both halves are available on their own — `popover setup` for the wiring, `popover login` for the
24
+ connection — and `welcome` is re-runnable, so it is also the way back if either needs redoing.
22
25
 
23
26
  ## Use
24
27
 
@@ -0,0 +1,30 @@
1
+ /**
2
+ * The aardvark, ported from antbear.py.
3
+ *
4
+ * Same trick as the original: each terminal cell holds two stacked pixels using U+2580
5
+ * (upper half block), with the foreground painting the top pixel and the background the
6
+ * bottom one. The sprite grid is 34 px wide and 20 px tall, so it lands in 34 columns and
7
+ * 10 rows — narrow enough to sit above the welcome box at the same indent.
8
+ *
9
+ * Two departures from the original. It does not animate: the original's idle loop runs until
10
+ * you interrupt it, which is the wrong thing to put between someone and the login they came
11
+ * for. And the body is the terminal's *own* dark red (SGR 31/41) rather than an RGB clay, so
12
+ * the aardvark belongs to whatever theme the user has rather than fighting it.
13
+ */
14
+ /**
15
+ * Side profile, facing right. `.` is transparent, `1` is body, `4` is the eye.
16
+ *
17
+ * Exported because scene.ts stamps it onto a wider canvas alongside the sky and the grass.
18
+ */
19
+ export declare const AARDVARK_SPRITE: string[];
20
+ /**
21
+ * Render the sprite as terminal rows, each already prefixed with the trunk so the art hangs
22
+ * off the same vertical line as everything else in the flow.
23
+ *
24
+ * Returns an empty array when the terminal has not told us it speaks UTF-8: half blocks
25
+ * there come out as replacement characters, and no aardvark beats a broken one.
26
+ */
27
+ export declare function aardvarkLines(indent?: number): string[];
28
+ /** Width of the sprite in columns, for sizing whatever sits under it. */
29
+ export declare const AARDVARK_WIDTH: number;
30
+ //# sourceMappingURL=aardvark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aardvark.d.ts","sourceRoot":"","sources":["../src/aardvark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH;;;;GAIG;AAEH,eAAO,MAAM,eAAe,UAqB3B,CAAC;AAgBF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,SAAI,GAAG,MAAM,EAAE,CAkClD;AAED,yEAAyE;AACzE,eAAO,MAAM,cAAc,QAA6B,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * The aardvark, ported from antbear.py.
3
+ *
4
+ * Same trick as the original: each terminal cell holds two stacked pixels using U+2580
5
+ * (upper half block), with the foreground painting the top pixel and the background the
6
+ * bottom one. The sprite grid is 34 px wide and 20 px tall, so it lands in 34 columns and
7
+ * 10 rows — narrow enough to sit above the welcome box at the same indent.
8
+ *
9
+ * Two departures from the original. It does not animate: the original's idle loop runs until
10
+ * you interrupt it, which is the wrong thing to put between someone and the login they came
11
+ * for. And the body is the terminal's *own* dark red (SGR 31/41) rather than an RGB clay, so
12
+ * the aardvark belongs to whatever theme the user has rather than fighting it.
13
+ */
14
+ import { colorEnabled, glyph, style, unicodeEnabled } from "./theme.js";
15
+ /**
16
+ * Side profile, facing right. `.` is transparent, `1` is body, `4` is the eye.
17
+ *
18
+ * Exported because scene.ts stamps it onto a wider canvas alongside the sky and the grass.
19
+ */
20
+ // prettier-ignore
21
+ export const AARDVARK_SPRITE = [
22
+ "........................1...1.....",
23
+ ".......................11...11....",
24
+ ".......................11..111....",
25
+ "......................111..111....",
26
+ "..........11111.......111.1111....",
27
+ "........1111111111....11111111....",
28
+ ".......111111111111111111111......",
29
+ "......11111111111111111111111.....",
30
+ "......1111111111111111111411......",
31
+ "......1111111111111111111111111...",
32
+ "......111111111111111111111111111.",
33
+ ".....11111111111111111111111111111",
34
+ "...111111111111111111111...111111.",
35
+ "..111111111111111111111...........",
36
+ ".111...111.111..111.111...........",
37
+ "111....111.111..111.111...........",
38
+ "11.....111.111..111.111...........",
39
+ ".......111.111..111.111...........",
40
+ ".......111.111..111.111...........",
41
+ ".......111.111..111.111...........",
42
+ ];
43
+ const UPPER = "▀";
44
+ const LOWER = "▄";
45
+ const FULL = "█";
46
+ const RESET = "\x1b[0m";
47
+ /** The terminal's dark red, as foreground and as background. */
48
+ const RED_FG = "\x1b[31m";
49
+ const RED_BG = "\x1b[41m";
50
+ /** The eye reads as an eye only if it contrasts with the body. */
51
+ const EYE_FG = "\x1b[97m";
52
+ const isBody = (px) => px === "1";
53
+ const isEye = (px) => px === "4";
54
+ /**
55
+ * Render the sprite as terminal rows, each already prefixed with the trunk so the art hangs
56
+ * off the same vertical line as everything else in the flow.
57
+ *
58
+ * Returns an empty array when the terminal has not told us it speaks UTF-8: half blocks
59
+ * there come out as replacement characters, and no aardvark beats a broken one.
60
+ */
61
+ export function aardvarkLines(indent = 2) {
62
+ if (!unicodeEnabled)
63
+ return [];
64
+ const rows = [];
65
+ for (let y = 0; y < AARDVARK_SPRITE.length; y += 2) {
66
+ const top = AARDVARK_SPRITE[y];
67
+ const bottom = AARDVARK_SPRITE[y + 1];
68
+ let out = "";
69
+ for (let x = 0; x < top.length; x += 1) {
70
+ const t = top[x];
71
+ const b = bottom[x];
72
+ if (t === "." && b === ".") {
73
+ out += " ";
74
+ }
75
+ else if (!colorEnabled) {
76
+ // No colour to distinguish halves with, so paint the silhouette in shape alone.
77
+ out += t === "." ? LOWER : b === "." ? UPPER : FULL;
78
+ }
79
+ else if (t === ".") {
80
+ out += `${RED_FG}${LOWER}${RESET}`;
81
+ }
82
+ else if (b === ".") {
83
+ out += `${isEye(t) ? EYE_FG : RED_FG}${UPPER}${RESET}`;
84
+ }
85
+ else {
86
+ const fg = isEye(t) ? EYE_FG : RED_FG;
87
+ const bg = isEye(b) ? "\x1b[107m" : isBody(b) ? RED_BG : "";
88
+ out += `${fg}${bg}${UPPER}${RESET}`;
89
+ }
90
+ }
91
+ rows.push(`${style.dim(glyph.trunk)}${" ".repeat(indent)}${out.replace(/\s+$/, "")}`);
92
+ }
93
+ return rows;
94
+ }
95
+ /** Width of the sprite in columns, for sizing whatever sits under it. */
96
+ export const AARDVARK_WIDTH = AARDVARK_SPRITE[0].length;
97
+ //# sourceMappingURL=aardvark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aardvark.js","sourceRoot":"","sources":["../src/aardvark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAExE;;;;GAIG;AACH,kBAAkB;AAClB,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;CACrC,CAAC;AAEF,MAAM,KAAK,GAAG,GAAG,CAAC;AAClB,MAAM,KAAK,GAAG,GAAG,CAAC;AAClB,MAAM,IAAI,GAAG,GAAG,CAAC;AAEjB,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,gEAAgE;AAChE,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,kEAAkE;AAClE,MAAM,MAAM,GAAG,UAAU,CAAC;AAE1B,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC;AAC1C,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAAM,GAAG,CAAC;IACtC,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,CAAC;IAE/B,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,CAAE,CAAC;QAChC,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QACvC,IAAI,GAAG,GAAG,EAAE,CAAC;QAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;YAClB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YAErB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3B,GAAG,IAAI,GAAG,CAAC;YACb,CAAC;iBAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBACzB,gFAAgF;gBAChF,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACtD,CAAC;iBAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACrB,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;YACrC,CAAC;iBAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACrB,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBACtC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;YACtC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA4BA;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,EAAE,MAEb,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA8BA;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,EAAE,MAEb,CAAC"}
package/dist/index.js CHANGED
@@ -10,7 +10,9 @@ import { doctor } from "./doctor.js";
10
10
  import { askDaemon, daemonIsRunning } from "./ipc-client.js";
11
11
  import { login } from "./login.js";
12
12
  import { setup } from "./setup.js";
13
+ import { forkCommand } from "./snapshot.js";
13
14
  import { bad, c, dim, info, ok, warn } from "./ui.js";
15
+ import { welcome } from "./welcome.js";
14
16
  const execFileAsync = promisify(execFile);
15
17
  /**
16
18
  * This package's own version, read from the manifest npm installed beside us.
@@ -27,6 +29,11 @@ async function main() {
27
29
  return login(flag(rest, "--api") ?? defaultApiUrl());
28
30
  case "setup":
29
31
  return setup({ force: rest.includes("--force") });
32
+ // The greeting and the login prompt, as a command rather than something an installer
33
+ // prints. `setup` does the plumbing; this is the part a person reads, and being a real
34
+ // command means it can be replayed later instead of only existing once.
35
+ case "welcome":
36
+ return welcome({ apiUrl: flag(rest, "--api") ?? defaultApiUrl() });
30
37
  case "logout":
31
38
  clearCredentials();
32
39
  ok("Signed out. The daemon will stop publishing after it restarts.");
@@ -42,6 +49,8 @@ async function main() {
42
49
  return team();
43
50
  case "daemon":
44
51
  return daemonCommand(rest[0] ?? "status");
52
+ case "fork":
53
+ return forkCommand(rest);
45
54
  case "log":
46
55
  return showLog(Number(flag(rest, "--lines") ?? 20));
47
56
  case "uninstall":
@@ -129,9 +138,11 @@ ${next ? `\n${next}` : ""}
129
138
  ${c.bold("popover login")} [--api URL] Connect this machine to your team
130
139
  ${c.bold("popover logout")} Forget this machine's credentials
131
140
  ${c.bold("popover setup")} [--force] Re-register the Claude Code plugin
141
+ ${c.bold("popover welcome")} Set up and log in — the whole of a first run
132
142
  ${c.bold("popover update")} Upgrade to the newest version and restart the daemon
133
143
  ${c.bold("popover status")} Show this machine's sessions and connection
134
144
  ${c.bold("popover team")} Print the team roster
145
+ ${c.bold("popover fork")} <create|open|launch|list|revoke>
135
146
  ${c.bold("popover doctor")} Diagnose setup problems
136
147
  ${c.bold("popover daemon")} <start|stop|restart|status|logs>
137
148
  ${c.bold("popover log")} [--lines N] Recent questions and messages your agents received
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/login.d.ts CHANGED
@@ -1,3 +1,10 @@
1
+ export interface LoginOptions {
2
+ /**
3
+ * Continue an existing trunk rather than opening one. Set when `popover welcome` has
4
+ * already drawn the frame this login is happening inside.
5
+ */
6
+ framed?: boolean;
7
+ }
1
8
  /**
2
9
  * Device authorization flow.
3
10
  *
@@ -6,5 +13,5 @@
6
13
  * long-lived credential is in transit. The separate device code authenticates polling
7
14
  * and is discarded once claimed.
8
15
  */
9
- export declare function login(apiUrl: string): Promise<number>;
16
+ export declare function login(apiUrl: string, opts?: LoginOptions): Promise<number>;
10
17
  //# sourceMappingURL=login.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AASA;;;;;;;GAOG;AACH,wBAAsB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4G3D"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAsB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiIpF"}
package/dist/login.js CHANGED
@@ -1,8 +1,10 @@
1
1
  import { createHash, randomBytes } from "node:crypto";
2
2
  import os from "node:os";
3
3
  import { saveCredentials } from "@popoverinstall/shared";
4
- import { c, dim, info, ok, bad, openBrowser } from "./ui.js";
4
+ import { openBrowser } from "./ui.js";
5
5
  import { askDaemon } from "./ipc-client.js";
6
+ import { nextSteps } from "./next-steps.js";
7
+ import { box, line, spinner, step, stepFail, style, trunk } from "./theme.js";
6
8
  const sha256 = (v) => createHash("sha256").update(v, "utf8").digest("hex");
7
9
  const secret = () => randomBytes(32).toString("base64url");
8
10
  /**
@@ -13,9 +15,11 @@ const secret = () => randomBytes(32).toString("base64url");
13
15
  * long-lived credential is in transit. The separate device code authenticates polling
14
16
  * and is discarded once claimed.
15
17
  */
16
- export async function login(apiUrl) {
18
+ export async function login(apiUrl, opts = {}) {
17
19
  const deviceToken = secret();
18
20
  const deviceCode = secret();
21
+ if (!opts.framed)
22
+ console.log("");
19
23
  let start;
20
24
  try {
21
25
  const res = await fetch(`${apiUrl}/api/device/start`, {
@@ -29,34 +33,38 @@ export async function login(apiUrl) {
29
33
  }),
30
34
  });
31
35
  if (!res.ok) {
32
- bad(`Could not start login (${res.status}). Is ${apiUrl} reachable?`);
36
+ stepFail(`Could not start login (${res.status}). Is ${apiUrl} reachable?`);
33
37
  return 1;
34
38
  }
35
39
  start = (await res.json());
36
40
  }
37
41
  catch (err) {
38
- bad(`Could not reach ${apiUrl}: ${err instanceof Error ? err.message : String(err)}`);
42
+ stepFail(`Could not reach ${apiUrl}: ${err instanceof Error ? err.message : String(err)}`);
39
43
  return 1;
40
44
  }
41
- console.log("");
42
- info("Confirm this code in your browser:");
43
- console.log("");
44
- console.log(` ${c.bold(c.cyan(start.user_code))}`);
45
- console.log("");
46
- dim(start.verify_url);
47
- console.log("");
45
+ box({
46
+ title: "Confirm this code in your browser",
47
+ lines: ["", style.bold(style.cyan(start.user_code)), "", style.dim(start.verify_url)],
48
+ minWidth: 36,
49
+ });
50
+ trunk();
51
+ step("Opening your browser…");
48
52
  await openBrowser(start.verify_url_complete);
53
+ trunk();
49
54
  const intervalMs = (start.poll_interval_seconds ?? 2) * 1000;
50
55
  const deadline = Date.parse(start.expires_at);
51
- process.stdout.write(c.dim(" Waiting for approval"));
56
+ // The spinner is the liveness signal the row of dots used to be. It also carries the
57
+ // deadline: a code that quietly expires while someone is hunting for their password is
58
+ // the one failure in this flow that looks like a hang.
59
+ const spin = spinner("Waiting for you to approve…");
52
60
  for (;;) {
53
61
  if (Date.now() > deadline) {
54
- console.log("");
55
- bad("That code expired. Run `popover login` again.");
62
+ spin.clear();
63
+ stepFail("That code expired. Run `popover login` again.");
56
64
  return 1;
57
65
  }
58
66
  await sleep(intervalMs);
59
- process.stdout.write(c.dim("."));
67
+ spin.update(`Waiting for you to approve… ${style.dim(`${remaining(deadline)} left`)}`);
60
68
  let status;
61
69
  try {
62
70
  const res = await fetch(`${apiUrl}/api/device/poll`, {
@@ -71,21 +79,32 @@ export async function login(apiUrl) {
71
79
  }
72
80
  if (status.status === "pending")
73
81
  continue;
74
- console.log("");
75
82
  if (status.status === "denied") {
76
- bad("Login denied. Nothing was connected.");
83
+ spin.clear();
84
+ stepFail("Login denied. Nothing was connected.");
85
+ return 1;
86
+ }
87
+ // The server expires codes on its own schedule, so this arrives slightly before the local
88
+ // deadline check above would have fired. Same situation, so it gets the same sentence
89
+ // rather than the generic one, which rendered as "Login expired.".
90
+ if (status.status === "expired") {
91
+ spin.clear();
92
+ stepFail("That code expired. Run `popover login` again.");
77
93
  return 1;
78
94
  }
79
95
  if (status.status !== "approved" || !status.machine_id) {
80
- bad(`Login ${status.status}. Run \`popover login\` again.`);
96
+ spin.clear();
97
+ stepFail(`Login ${status.status}. Run \`popover login\` again.`);
81
98
  return 1;
82
99
  }
100
+ spin.update("Connecting this machine…");
83
101
  // Immediately exercise the token so a broken backend config surfaces now, at a
84
102
  // prompt, rather than later inside a detached daemon.
85
103
  const session = await exchange(apiUrl, deviceToken);
86
104
  if (!session) {
87
- bad("Connected, but the machine could not obtain an access token.");
88
- dim("Check SUPABASE_JWT_SECRET on the server, then run `popover doctor`.");
105
+ spin.clear();
106
+ stepFail("Connected, but the machine could not obtain an access token.");
107
+ line(style.dim("Check SUPABASE_JWT_SECRET on the server, then run `popover doctor`."));
89
108
  return 1;
90
109
  }
91
110
  saveCredentials({
@@ -100,12 +119,21 @@ export async function login(apiUrl) {
100
119
  // `popover login` the next time they open /team. Best effort: no daemon is fine, the
101
120
  // next start reads the file anyway.
102
121
  await askDaemon({ t: "ping", id: "login" }, 5_000);
103
- ok("This machine is connected.");
104
- dim("Your Claude Code sessions will appear to your team while they are running.");
105
- dim("Run `/team` inside Claude Code to see everyone.");
122
+ spin.stop(style.bold("This machine is connected."));
123
+ line(style.dim("Your Claude Code sessions will appear to your team while they are running."));
124
+ // Connecting a machine is the same milestone however it was reached, so a bare
125
+ // `popover login` gets the same send-off. When welcome() is driving it prints this itself,
126
+ // once, after this returns.
127
+ if (!opts.framed)
128
+ nextSteps();
106
129
  return 0;
107
130
  }
108
131
  }
132
+ /** Time left on the code, as mm:ss — the shape a countdown is read in. */
133
+ function remaining(deadline) {
134
+ const seconds = Math.max(0, Math.round((deadline - Date.now()) / 1000));
135
+ return `${Math.floor(seconds / 60)}:${String(seconds % 60).padStart(2, "0")}`;
136
+ }
109
137
  async function exchange(apiUrl, deviceToken) {
110
138
  try {
111
139
  const res = await fetch(`${apiUrl}/api/device/session`, {
package/dist/login.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * What to do now that the machine is connected.
3
+ *
4
+ * Its own module because both entry points end here: `popover welcome`, which the installer
5
+ * hands off to, and a bare `popover login` run later. Connecting a machine is the same milestone
6
+ * either way, so it gets the same send-off — and login.ts cannot import this from welcome.ts,
7
+ * which imports login.ts.
8
+ */
9
+ /**
10
+ * The product name as people see it. The installers print it too — they are separate templates
11
+ * in apps/web/src/lib/install-script*.ts, so that string is paired with this one rather than
12
+ * shared.
13
+ */
14
+ export declare const BRAND = "Popover";
15
+ export declare const TAGLINE = "The first multiplayer coding experience.";
16
+ export declare const TAGLINE_SECONDARY = "Let your team's AI agents communicate and collaborate with each other.";
17
+ export declare function nextSteps(): void;
18
+ //# sourceMappingURL=next-steps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next-steps.d.ts","sourceRoot":"","sources":["../src/next-steps.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;GAIG;AACH,eAAO,MAAM,KAAK,YAAY,CAAC;AAC/B,eAAO,MAAM,OAAO,6CAA6C,CAAC;AAClE,eAAO,MAAM,iBAAiB,2EAC4C,CAAC;AAoB3E,wBAAgB,SAAS,IAAI,IAAI,CA4ChC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * What to do now that the machine is connected.
3
+ *
4
+ * Its own module because both entry points end here: `popover welcome`, which the installer
5
+ * hands off to, and a bare `popover login` run later. Connecting a machine is the same milestone
6
+ * either way, so it gets the same send-off — and login.ts cannot import this from welcome.ts,
7
+ * which imports login.ts.
8
+ */
9
+ import { badge, box, glyph, line, step, style, trunk, wrap } from "./theme.js";
10
+ /**
11
+ * The product name as people see it. The installers print it too — they are separate templates
12
+ * in apps/web/src/lib/install-script*.ts, so that string is paired with this one rather than
13
+ * shared.
14
+ */
15
+ export const BRAND = "Popover";
16
+ export const TAGLINE = "The first multiplayer coding experience.";
17
+ export const TAGLINE_SECONDARY = "Let your team's AI agents communicate and collaborate with each other.";
18
+ /**
19
+ * Things the agent can genuinely do, phrased the way someone would actually type them.
20
+ *
21
+ * Checked against what the plugin actually exposes — two tools, `team_list` and `team_ask` —
22
+ * rather than invented to sound capable. Suggesting anything else here would be the CLI
23
+ * teaching people a command that fails: the agent can see which teammates are active in this
24
+ * repo, and it can put one question to a teammate's agent, which a read-only copy answers.
25
+ * That is the whole surface.
26
+ *
27
+ * One per tool, then one that uses both — which is the pattern worth teaching, since asking
28
+ * without listing first means guessing at a handle.
29
+ */
30
+ const ASK_EXAMPLES = [
31
+ `Ask ${BRAND} who on my team is working in this repo right now.`,
32
+ `Ask ${BRAND} to ask G1 why they ruled out Redis for the roster cache.`,
33
+ `Ask ${BRAND} who knows this service, then ask their agent how retries work.`,
34
+ ];
35
+ export function nextSteps() {
36
+ // Wrapped to the window, like the welcome box, and before styling — `wrap` counts
37
+ // characters, so escape codes would be measured as content.
38
+ const room = Math.max(28, (process.stdout.columns ?? 80) - 8);
39
+ trunk();
40
+ box({
41
+ title: badge(`${BRAND} is ready to be toasted!`),
42
+ lines: [
43
+ "",
44
+ ...wrap(`${BRAND} can now communicate with your team's agents.`, room).map(style.bold),
45
+ ...wrap("These commands make it excruciatingly easy to get started.", room).map(style.dim),
46
+ "",
47
+ ],
48
+ minWidth: 36,
49
+ });
50
+ trunk();
51
+ step(style.amber("Pick a starting point"));
52
+ bullet(`${style.bold("/popover:team")} ${style.dim("run it in any Claude Code session")}`);
53
+ bullet(`${style.bold("popover doctor")} ${style.dim("if something looks wrong")}`);
54
+ trunk();
55
+ step(style.amber("Ask your coding agent"));
56
+ for (const example of ASK_EXAMPLES) {
57
+ /*
58
+ * Wrapped two columns narrower than the plain lines above.
59
+ *
60
+ * The bullet and the space after it sit in front of every one of these, and `wrap` counts
61
+ * only the text it is given — so without this the longest quote would be two columns wider
62
+ * than the window it was measured against.
63
+ */
64
+ const [first, ...rest] = wrap(`"${example}"`, room - 2);
65
+ bullet(style.dim(first ?? ""));
66
+ // Continuations line up under the text rather than under the dot, so a wrapped quote still
67
+ // reads as one quote instead of as two bullets with one missing.
68
+ for (const more of rest)
69
+ line(style.dim(` ${more}`));
70
+ }
71
+ trunk();
72
+ line(style.dim("Restart Claude Code for the plugin to load."));
73
+ trunk();
74
+ line(style.amber("Happy popping!"));
75
+ console.log("");
76
+ }
77
+ /** A bulleted line hanging off the trunk. */
78
+ function bullet(text) {
79
+ console.log(`${style.dim(glyph.trunk)} ${style.dim(glyph.dot)} ${text}`);
80
+ }
81
+ //# sourceMappingURL=next-steps.js.map