@popoverinstall/cli 0.4.1 → 0.6.0
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 +158 -0
- package/dist/aardvark.d.ts +30 -0
- package/dist/aardvark.d.ts.map +1 -0
- package/dist/aardvark.js +97 -0
- package/dist/aardvark.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +140 -52
- package/dist/index.js.map +1 -1
- package/dist/login.d.ts +8 -1
- package/dist/login.d.ts.map +1 -1
- package/dist/login.js +51 -23
- package/dist/login.js.map +1 -1
- package/dist/next-steps.d.ts +18 -0
- package/dist/next-steps.d.ts.map +1 -0
- package/dist/next-steps.js +73 -0
- package/dist/next-steps.js.map +1 -0
- package/dist/scene.d.ts +43 -0
- package/dist/scene.d.ts.map +1 -0
- package/dist/scene.js +276 -0
- package/dist/scene.js.map +1 -0
- package/dist/snapshot.d.ts +2 -0
- package/dist/snapshot.d.ts.map +1 -0
- package/dist/snapshot.js +828 -0
- package/dist/snapshot.js.map +1 -0
- package/dist/terminal.d.ts +58 -0
- package/dist/terminal.d.ts.map +1 -0
- package/dist/terminal.js +139 -0
- package/dist/terminal.js.map +1 -0
- package/dist/theme.d.ts +123 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +257 -0
- package/dist/theme.js.map +1 -0
- package/dist/welcome.d.ts +23 -0
- package/dist/welcome.d.ts.map +1 -0
- package/dist/welcome.js +128 -0
- package/dist/welcome.js.map +1 -0
- package/package.json +5 -4
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/README.md +11 -1
- package/plugin/commands/fork.md +118 -0
- package/plugin/commands/team.md +44 -20
- package/plugin/hooks/hooks.json +6 -0
- package/plugin/mcp/index.mjs +69 -0
- package/plugin/scripts/deliver-messages.mjs +76 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
What `popover update` prints after it installs a new version. Write for the person who is
|
|
4
|
+
about to be handed the build — what changed for them, not what changed in the tree.
|
|
5
|
+
|
|
6
|
+
The format is parsed by `parseChangelog()` in `packages/shared/src/changelog.ts`, and the
|
|
7
|
+
parser doing the reading is the one shipped in the *previous* release, so keep to what is
|
|
8
|
+
already here:
|
|
9
|
+
|
|
10
|
+
- `## <version>` — newest first. Anything that is not a version triple is skipped, so an
|
|
11
|
+
`## Unreleased` heading is safe to keep at the top while a release is in flight.
|
|
12
|
+
- `### Features` and `### Fixes` — the only two sections that print. Others are ignored.
|
|
13
|
+
- `- ` bullets, one change each. Wrapped lines are joined; a blank line ends the bullet.
|
|
14
|
+
|
|
15
|
+
Every version that ships needs an entry — an update with nothing to print says nothing at
|
|
16
|
+
all, which reads as though the update did not happen.
|
|
17
|
+
|
|
18
|
+
## 0.6.0
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
- Hand a whole conversation to someone with `/popover:fork create`. It prints a code that
|
|
23
|
+
works for 24 hours; whoever you send it to runs `/popover:fork open <code>` and gets their
|
|
24
|
+
own local chat carrying everything you had worked out. Their chat does not expire with the
|
|
25
|
+
code, and nothing they do in it reaches you.
|
|
26
|
+
- Opening a fork needs no popover account — `npx @popoverinstall/cli fork open <code>` is
|
|
27
|
+
enough — so you can hand one to someone who has never installed it.
|
|
28
|
+
- A fork is frozen at the moment you make it. Nothing you say afterwards is included, and
|
|
29
|
+
`popover fork create` tells you which turn it cut at.
|
|
30
|
+
- `popover fork list` shows the codes you have handed out, and `popover fork revoke <code>`
|
|
31
|
+
destroys a snapshot early. Revoking cannot recall a copy someone has already opened, and
|
|
32
|
+
says so rather than implying otherwise.
|
|
33
|
+
- A fork is sealed on your machine before it is sent, with a key derived from the code
|
|
34
|
+
itself, so what the server stores is something it cannot read.
|
|
35
|
+
- Sharing a fork sends the whole conversation, including every file your agent read into it.
|
|
36
|
+
`popover fork create` says so every time, because it is a much larger disclosure than an
|
|
37
|
+
ask.
|
|
38
|
+
|
|
39
|
+
### Fixes
|
|
40
|
+
|
|
41
|
+
- Asks answer from what the agent already knows, and nothing else. The answering copy no
|
|
42
|
+
longer has file access, so it stops going off to investigate and replies from its own
|
|
43
|
+
context — much faster and cheaper, and it can no longer open a file your session had not
|
|
44
|
+
already opened. The trade is that a question about something the agent never looked at now
|
|
45
|
+
gets "I don't know" instead of a fresh answer.
|
|
46
|
+
- A message from one of your own agents in the same repo now arrives with a much lighter
|
|
47
|
+
note than one from a teammate. Both are your agents, working from the same code, so being
|
|
48
|
+
warned about it as sternly as about a stranger was wrong — and framing that cries wolf is
|
|
49
|
+
framing the next reader skims. One of your agents in a *different* repo still gets a
|
|
50
|
+
careful note, because it cannot see the code you are in.
|
|
51
|
+
- The roster marks your own line again, and a message or question is recorded against the
|
|
52
|
+
agent that actually sent it. The plugin's MCP server is started once and kept, so the
|
|
53
|
+
session it believed it was serving could be one that had already ended — which left the
|
|
54
|
+
marker missing, the sender of a tell shown only as "another agent", and the activity page
|
|
55
|
+
ready to name the wrong one of your agents.
|
|
56
|
+
|
|
57
|
+
## 0.5.0
|
|
58
|
+
|
|
59
|
+
### Features
|
|
60
|
+
|
|
61
|
+
- popover installs from npm now: `npm install -g @popoverinstall/cli`, then `popover setup`
|
|
62
|
+
and `popover login`. The same two commands on macOS, Linux and Windows.
|
|
63
|
+
- Running `popover` with no arguments tells you what to run next, and ticks each step off as
|
|
64
|
+
you finish it. It stops appearing once the machine is connected.
|
|
65
|
+
- `popover ask` and `popover tell` have moved into the session: use `/popover:team ask B1 …`
|
|
66
|
+
and `/popover:team tell B1 …` in Claude Code. Typing the old commands tells you where they
|
|
67
|
+
went. An agent asking has the context to write a question worth answering, and to do
|
|
68
|
+
something with the answer — a terminal has neither.
|
|
69
|
+
- `popover log` now lists the messages your agents were sent as well as the questions they
|
|
70
|
+
were asked.
|
|
71
|
+
|
|
72
|
+
### Fixes
|
|
73
|
+
|
|
74
|
+
- `popover setup` registers the Claude Code plugin correctly on a machine that has never had
|
|
75
|
+
it installed. It previously named a plugin marketplace that does not exist, which only
|
|
76
|
+
showed up on a genuinely fresh machine.
|
|
77
|
+
|
|
78
|
+
## 0.4.0
|
|
79
|
+
|
|
80
|
+
### Features
|
|
81
|
+
|
|
82
|
+
- Agents can tell each other things, not only ask. `/popover:team tell B1 the migration is
|
|
83
|
+
applied on prod` drops a heads-up into that agent's next prompt. Nothing comes back —
|
|
84
|
+
it is for facts that would otherwise cause a collision, not for questions.
|
|
85
|
+
- `/popover:team` now takes `ask` or `tell` as its first word. `/popover:team ask B1 why did you
|
|
86
|
+
rule out redis?` is what it always did, spelled out.
|
|
87
|
+
- You are told whenever a teammate's agent sends one of yours a message, so nothing reaches
|
|
88
|
+
your agent without you knowing. Messages between two of your own agents stay quiet.
|
|
89
|
+
- A message arrives named: which agent sent it, and who is running that agent. Your agent is
|
|
90
|
+
told to treat it as information from someone who cannot see what it is working on, rather
|
|
91
|
+
than as an instruction from you.
|
|
92
|
+
- Only agents working in the same repo can be told, the same rule that decides who you can
|
|
93
|
+
ask, and one agent can send another at most ten messages an hour.
|
|
94
|
+
- The activity page lists messages next to questions, so you can see who told whom what.
|
|
95
|
+
- `popover update` prints the release notes for what it just installed.
|
|
96
|
+
|
|
97
|
+
### Fixes
|
|
98
|
+
|
|
99
|
+
- An ask whose agent finishes without writing an answer now says the agent could not
|
|
100
|
+
answer, instead of the contradictory "The agent failed (success)".
|
|
101
|
+
|
|
102
|
+
## 0.3.0
|
|
103
|
+
|
|
104
|
+
### Features
|
|
105
|
+
|
|
106
|
+
- An agent sees only the teammates working in the same repo. Repos are identified by their
|
|
107
|
+
git remotes, so two clones match however they were cloned and whatever the folder is
|
|
108
|
+
called, and a directory with no shared remote stays private.
|
|
109
|
+
- Your teammates' machines now appear on the dashboard, read-only, alongside your own.
|
|
110
|
+
- The dashboard follows the organization picked in the switcher instead of showing
|
|
111
|
+
everything you can see at once.
|
|
112
|
+
- The dashboard, sign-in and onboarding screens are restyled to match the landing poster.
|
|
113
|
+
|
|
114
|
+
### Fixes
|
|
115
|
+
|
|
116
|
+
- A laptop that logged in more than once is one row on the machines page again, not three.
|
|
117
|
+
- Only the daemon can report a daemon version or a heartbeat, so a stale row can no longer
|
|
118
|
+
claim a machine is alive.
|
|
119
|
+
- Refreshing the team list no longer folds your own machines into your teammates'.
|
|
120
|
+
|
|
121
|
+
## 0.2.1
|
|
122
|
+
|
|
123
|
+
### Features
|
|
124
|
+
|
|
125
|
+
- Agent handles lost their dash: `G1`, not `G-1`.
|
|
126
|
+
- The roster marks which line is the reading agent's own, and the activity feed names both
|
|
127
|
+
ends of an ask.
|
|
128
|
+
|
|
129
|
+
### Fixes
|
|
130
|
+
|
|
131
|
+
- The asker's session is read from `CLAUDE_CODE_SESSION_ID` — the old name did not exist,
|
|
132
|
+
so asks were attributed to nobody.
|
|
133
|
+
- A missing `role` claim is named on the dashboard instead of rendering an empty page.
|
|
134
|
+
|
|
135
|
+
## 0.2.0
|
|
136
|
+
|
|
137
|
+
### Features
|
|
138
|
+
|
|
139
|
+
- `popover update` upgrades this machine in place and restarts the daemon on the new build.
|
|
140
|
+
- The roster prints one line when a newer version is available.
|
|
141
|
+
- Windows installer: `irm <host>/install.ps1 | iex`.
|
|
142
|
+
- The machines page stays current instead of freezing at whatever it rendered with.
|
|
143
|
+
|
|
144
|
+
### Fixes
|
|
145
|
+
|
|
146
|
+
- An agent that cannot be reached shows as unreachable rather than active.
|
|
147
|
+
- The daemon exits when it crashes and when its terminal closes, instead of lingering.
|
|
148
|
+
- Stopping the daemon on Windows marks its sessions offline, so teammates stop seeing rows
|
|
149
|
+
for agents that are gone.
|
|
150
|
+
- One machine row per install instead of one per login, and sessions stranded by an earlier
|
|
151
|
+
login on the same host are closed.
|
|
152
|
+
|
|
153
|
+
## 0.1.0
|
|
154
|
+
|
|
155
|
+
### Features
|
|
156
|
+
|
|
157
|
+
- First release: see your team's active Claude Code agents with `/popover:team`, and ask one of
|
|
158
|
+
them a question that a read-only fork answers from that agent's full context.
|
|
@@ -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"}
|
package/dist/aardvark.js
ADDED
|
@@ -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":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
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
|
@@ -4,13 +4,15 @@ import { existsSync, mkdirSync, openSync, readFileSync, rmSync } from "node:fs";
|
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { promisify } from "node:util";
|
|
7
|
-
import { PACKAGE_NAME, clearCredentials, daemonEntryPointerPath, daemonLogPath, defaultApiUrl, installCommand, loadCredentials, popoverHome, } from "@popoverinstall/shared";
|
|
7
|
+
import { PACKAGE_NAME, clearCredentials, daemonEntryPointerPath, daemonLogPath, defaultApiUrl, installCommand, loadCredentials, parseChangelog, popoverHome, releasesInstalled, renderReleaseNotes, } from "@popoverinstall/shared";
|
|
8
8
|
import { resolveDaemonEntry } from "./daemon-entry.js";
|
|
9
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.");
|
|
@@ -40,10 +47,10 @@ async function main() {
|
|
|
40
47
|
return doctor();
|
|
41
48
|
case "team":
|
|
42
49
|
return team();
|
|
43
|
-
case "ask":
|
|
44
|
-
return ask(rest);
|
|
45
50
|
case "daemon":
|
|
46
51
|
return daemonCommand(rest[0] ?? "status");
|
|
52
|
+
case "fork":
|
|
53
|
+
return forkCommand(rest);
|
|
47
54
|
case "log":
|
|
48
55
|
return showLog(Number(flag(rest, "--lines") ?? 20));
|
|
49
56
|
case "uninstall":
|
|
@@ -57,26 +64,88 @@ async function main() {
|
|
|
57
64
|
case "-v":
|
|
58
65
|
console.log(VERSION);
|
|
59
66
|
return 0;
|
|
67
|
+
// Both shipped before 0.4.1 and are muscle memory for anyone who used them, so they get
|
|
68
|
+
// a direction rather than "unknown command" and a wall of usage.
|
|
69
|
+
case "ask":
|
|
70
|
+
case "tell":
|
|
71
|
+
bad(`\`popover ${command}\` has moved into the session.`);
|
|
72
|
+
dim(`Run /popover:team ${command} <agent> <${command === "ask" ? "question" : "message"}> in Claude Code instead.`);
|
|
73
|
+
dim("An agent there has the context to write a question worth answering — and to");
|
|
74
|
+
dim("do something with the answer.");
|
|
75
|
+
return 1;
|
|
60
76
|
default:
|
|
61
77
|
bad(`Unknown command: ${command}`);
|
|
62
78
|
usage();
|
|
63
79
|
return 1;
|
|
64
80
|
}
|
|
65
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* The two commands that finish an install, for someone who just ran `npm install -g`.
|
|
84
|
+
*
|
|
85
|
+
* npm can place files, but it cannot register a Claude Code plugin or connect a machine —
|
|
86
|
+
* so a fresh install is inert until `setup` and `login` run, and nothing in npm's output
|
|
87
|
+
* says so. A `postinstall` hook is the obvious place for this and is deliberately not used
|
|
88
|
+
* (see `setup`); it would also be unreliable, because `--ignore-scripts` is common and
|
|
89
|
+
* corporate registries strip lifecycle scripts. Bare `popover` is what someone types first
|
|
90
|
+
* — `main()` defaults the command to `help` — so the guidance lives here, where it always
|
|
91
|
+
* runs.
|
|
92
|
+
*
|
|
93
|
+
* Both checks are synchronous reads of files written by the step they detect. Asking Claude
|
|
94
|
+
* Code whether the plugin is registered would be more direct, but it costs a subprocess on
|
|
95
|
+
* every argument-less `popover`.
|
|
96
|
+
*
|
|
97
|
+
* Returns null once both are done, so the prompt disappears rather than nagging.
|
|
98
|
+
*/
|
|
99
|
+
function gettingStarted() {
|
|
100
|
+
const steps = [
|
|
101
|
+
{
|
|
102
|
+
done: existsSync(daemonEntryPointerPath()),
|
|
103
|
+
command: "popover setup",
|
|
104
|
+
what: "Register the Claude Code plugin",
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
done: loadCredentials() !== null,
|
|
108
|
+
command: "popover login",
|
|
109
|
+
what: "Connect this machine to your team",
|
|
110
|
+
},
|
|
111
|
+
];
|
|
112
|
+
if (steps.every((s) => s.done))
|
|
113
|
+
return null;
|
|
114
|
+
const lines = steps.map(({ done, command, what }, i) => {
|
|
115
|
+
// Padded to a common width before colouring, so the ✓ and the "2." line up: the
|
|
116
|
+
// escape codes have no width but `padEnd` cannot know that.
|
|
117
|
+
const marker = (done ? "✓" : `${i + 1}.`).padEnd(2);
|
|
118
|
+
const name = command.padEnd(16);
|
|
119
|
+
return done
|
|
120
|
+
? ` ${c.green(marker)} ${c.dim(name)}${c.dim(what)}`
|
|
121
|
+
: ` ${c.bold(marker)} ${c.bold(name)}${what}`;
|
|
122
|
+
});
|
|
123
|
+
return ` ${c.bold("Finish installing")} — npm placed the files, these connect them:
|
|
124
|
+
|
|
125
|
+
${lines.join("\n")}
|
|
126
|
+
|
|
127
|
+
${c.dim("Then run")} ${c.cyan("/popover:team")} ${c.dim("inside Claude Code to see your teammates' agents.")}
|
|
128
|
+
`;
|
|
129
|
+
}
|
|
66
130
|
function usage() {
|
|
131
|
+
const next = gettingStarted();
|
|
67
132
|
console.log(`
|
|
68
|
-
${c.bold("popover")} —
|
|
133
|
+
${c.bold("popover")} — connect this machine, and see what your team's agents are doing
|
|
134
|
+
${next ? `\n${next}` : ""}
|
|
135
|
+
Asking and telling happen inside a session, where the agent doing them has the
|
|
136
|
+
context to be worth reading: ${c.bold("/popover:team ask B1 …")} and ${c.bold("/popover:team tell B1 …")}
|
|
69
137
|
|
|
70
138
|
${c.bold("popover login")} [--api URL] Connect this machine to your team
|
|
71
139
|
${c.bold("popover logout")} Forget this machine's credentials
|
|
72
140
|
${c.bold("popover setup")} [--force] Re-register the Claude Code plugin
|
|
141
|
+
${c.bold("popover welcome")} Replay the welcome and the login prompt
|
|
73
142
|
${c.bold("popover update")} Upgrade to the newest version and restart the daemon
|
|
74
143
|
${c.bold("popover status")} Show this machine's sessions and connection
|
|
75
144
|
${c.bold("popover team")} Print the team roster
|
|
76
|
-
${c.bold("popover
|
|
145
|
+
${c.bold("popover fork")} <create|open|launch|list|revoke>
|
|
77
146
|
${c.bold("popover doctor")} Diagnose setup problems
|
|
78
147
|
${c.bold("popover daemon")} <start|stop|restart|status|logs>
|
|
79
|
-
${c.bold("popover log")} [--lines N] Recent questions
|
|
148
|
+
${c.bold("popover log")} [--lines N] Recent questions and messages your agents received
|
|
80
149
|
${c.bold("popover uninstall")} Remove popover from this machine
|
|
81
150
|
`);
|
|
82
151
|
}
|
|
@@ -132,11 +201,65 @@ async function update() {
|
|
|
132
201
|
// Re-register the plugin at its new version before restarting, so Claude Code and the
|
|
133
202
|
// daemon come back up on the same build.
|
|
134
203
|
await setup({ force: true });
|
|
204
|
+
// Read after npm has replaced the install directory, so this is what actually landed
|
|
205
|
+
// rather than what the registry advertised a moment ago.
|
|
206
|
+
const after = installedVersion() ?? expected ?? VERSION;
|
|
135
207
|
const started = await daemonCommand("start");
|
|
136
|
-
|
|
208
|
+
if (after === VERSION)
|
|
209
|
+
ok(`Reinstalled ${after}.`);
|
|
210
|
+
else
|
|
211
|
+
ok(`Updated ${VERSION} → ${after}.`);
|
|
212
|
+
if (after !== VERSION)
|
|
213
|
+
printReleaseNotes(VERSION, after);
|
|
137
214
|
dim("Restart Claude Code to pick up the new plugin; the daemon is already on the new build.");
|
|
138
215
|
return started;
|
|
139
216
|
}
|
|
217
|
+
/**
|
|
218
|
+
* What arrived, printed from the CHANGELOG.md that npm just installed beside us — see the
|
|
219
|
+
* header of packages/shared/src/changelog.ts for why it is read off disk rather than
|
|
220
|
+
* compiled in.
|
|
221
|
+
*
|
|
222
|
+
* Reads the *new* package's copy, which is the point: the changelog that landed is the one
|
|
223
|
+
* describing what landed. `prepack` stages it into the package (see stage-plugin.mjs),
|
|
224
|
+
* because npm can only pack files inside the package directory.
|
|
225
|
+
*
|
|
226
|
+
* Silent whenever there is nothing trustworthy to print: no changelog in the tree (a dev
|
|
227
|
+
* checkout, or a release predating this), or no entry covering the range. The update
|
|
228
|
+
* succeeded either way, and a warning about missing release notes would read as though it
|
|
229
|
+
* had not.
|
|
230
|
+
*/
|
|
231
|
+
function printReleaseNotes(before, after) {
|
|
232
|
+
let markdown;
|
|
233
|
+
try {
|
|
234
|
+
markdown = readFileSync(new URL("../CHANGELOG.md", import.meta.url), "utf8");
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
const notes = renderReleaseNotes(releasesInstalled(parseChangelog(markdown), before, after), process.stdout.columns ?? 80);
|
|
240
|
+
if (!notes)
|
|
241
|
+
return;
|
|
242
|
+
console.log("");
|
|
243
|
+
console.log(` ${c.bold("What's new")}`);
|
|
244
|
+
console.log("");
|
|
245
|
+
console.log(notes);
|
|
246
|
+
console.log("");
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* The version now on disk, re-read after npm has replaced the install directory.
|
|
250
|
+
*
|
|
251
|
+
* `VERSION` at the top of this file was read when the process started, so it is the build
|
|
252
|
+
* being replaced. This is the one that landed. Deliberately not cached: the whole point is
|
|
253
|
+
* that the file changed underneath us mid-run.
|
|
254
|
+
*/
|
|
255
|
+
function installedVersion() {
|
|
256
|
+
try {
|
|
257
|
+
return (JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version ?? null);
|
|
258
|
+
}
|
|
259
|
+
catch {
|
|
260
|
+
return null;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
140
263
|
/**
|
|
141
264
|
* Undo what `popover setup` did, in the order that keeps the machine consistent if any
|
|
142
265
|
* single step fails: stop publishing, then unhook Claude Code.
|
|
@@ -216,48 +339,6 @@ async function team() {
|
|
|
216
339
|
console.log("");
|
|
217
340
|
return 0;
|
|
218
341
|
}
|
|
219
|
-
async function ask(args) {
|
|
220
|
-
const [target, ...questionParts] = args;
|
|
221
|
-
const question = questionParts.join(" ").trim();
|
|
222
|
-
if (!target || !question) {
|
|
223
|
-
bad("Usage: popover ask <agent> <question>");
|
|
224
|
-
dim('e.g. popover ask B1 "why did you rule out redis?"');
|
|
225
|
-
return 1;
|
|
226
|
-
}
|
|
227
|
-
process.stdout.write(c.dim(` Asking ${target}…`));
|
|
228
|
-
const started = Date.now();
|
|
229
|
-
const ticker = setInterval(() => process.stdout.write(c.dim(".")), 2000);
|
|
230
|
-
const reply = await askDaemon({
|
|
231
|
-
t: "ask",
|
|
232
|
-
id: "cli-ask",
|
|
233
|
-
req: { target, question, timeoutSeconds: 90 },
|
|
234
|
-
cwd: process.cwd(),
|
|
235
|
-
}, 120_000);
|
|
236
|
-
clearInterval(ticker);
|
|
237
|
-
console.log("");
|
|
238
|
-
if (!reply) {
|
|
239
|
-
bad("The daemon is not responding.");
|
|
240
|
-
return 1;
|
|
241
|
-
}
|
|
242
|
-
if (reply.t === "error") {
|
|
243
|
-
bad(reply.message);
|
|
244
|
-
return 1;
|
|
245
|
-
}
|
|
246
|
-
if (reply.t !== "ask.ok") {
|
|
247
|
-
bad("Unexpected response from the daemon.");
|
|
248
|
-
return 1;
|
|
249
|
-
}
|
|
250
|
-
const { answer } = reply;
|
|
251
|
-
const by = answer.answeredBy;
|
|
252
|
-
console.log("");
|
|
253
|
-
console.log(c.bold(by ? `${by.handle} — ${by.ownerName} (${by.repo})` : "Answer"));
|
|
254
|
-
console.log("");
|
|
255
|
-
console.log(answer.answer ?? "(no answer)");
|
|
256
|
-
console.log("");
|
|
257
|
-
dim(`${((Date.now() - started) / 1000).toFixed(1)}s` +
|
|
258
|
-
(answer.costUsd != null ? ` · $${answer.costUsd.toFixed(3)} on their account` : ""));
|
|
259
|
-
return 0;
|
|
260
|
-
}
|
|
261
342
|
async function daemonCommand(sub) {
|
|
262
343
|
switch (sub) {
|
|
263
344
|
case "start": {
|
|
@@ -364,7 +445,7 @@ async function daemonCommand(sub) {
|
|
|
364
445
|
function showLog(limit) {
|
|
365
446
|
const file = path.join(popoverHome(), "notifications.jsonl");
|
|
366
447
|
if (!existsSync(file)) {
|
|
367
|
-
info("No teammate has asked your agents anything yet.");
|
|
448
|
+
info("No teammate has asked or told your agents anything yet.");
|
|
368
449
|
return 0;
|
|
369
450
|
}
|
|
370
451
|
const lines = readFileSync(file, "utf8").split("\n").filter(Boolean).slice(-limit);
|
|
@@ -372,8 +453,15 @@ function showLog(limit) {
|
|
|
372
453
|
for (const line of lines) {
|
|
373
454
|
try {
|
|
374
455
|
const entry = JSON.parse(line);
|
|
375
|
-
|
|
376
|
-
|
|
456
|
+
// Two shapes share this file. Asks predate the `kind` field and have none, so a
|
|
457
|
+
// missing kind means ask rather than unknown — reading it the other way round would
|
|
458
|
+
// blank every entry written before tells existed.
|
|
459
|
+
const isTell = entry.kind === "tell";
|
|
460
|
+
const who = isTell ? entry.senderName : entry.askerName;
|
|
461
|
+
const verb = isTell ? "told" : "→";
|
|
462
|
+
const body = isTell ? entry.message : entry.question;
|
|
463
|
+
console.log(`${c.dim(new Date(entry.at).toLocaleString())} ${c.bold(who ?? "someone")} ${verb} ${entry.handle} ${c.dim(`(${entry.repo})`)}`);
|
|
464
|
+
console.log(` ${body ?? ""}`);
|
|
377
465
|
console.log("");
|
|
378
466
|
}
|
|
379
467
|
catch {
|
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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"}
|