seatmesh 1.2.4 → 1.3.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/bin/seatmesh +6 -1
- package/dist/commands/agent-forum.d.ts +6 -0
- package/dist/commands/agent-forum.d.ts.map +1 -0
- package/dist/commands/agent-forum.js +26 -0
- package/dist/commands/agent-forum.js.map +1 -0
- package/dist/commands/campaign-cli.d.ts +10 -0
- package/dist/commands/campaign-cli.d.ts.map +1 -0
- package/dist/commands/campaign-cli.js +136 -0
- package/dist/commands/campaign-cli.js.map +1 -0
- package/dist/commands/chat-cli.d.ts.map +1 -1
- package/dist/commands/chat-cli.js +55 -0
- package/dist/commands/chat-cli.js.map +1 -1
- package/dist/commands/cli-speed.test.d.ts +2 -0
- package/dist/commands/cli-speed.test.d.ts.map +1 -0
- package/dist/commands/cli-speed.test.js +39 -0
- package/dist/commands/cli-speed.test.js.map +1 -0
- package/dist/commands/cli-vocal.test.d.ts +2 -0
- package/dist/commands/cli-vocal.test.d.ts.map +1 -0
- package/dist/commands/cli-vocal.test.js +58 -0
- package/dist/commands/cli-vocal.test.js.map +1 -0
- package/dist/commands/completion.d.ts +3 -0
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +55 -14
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/completion.test.js +37 -2
- package/dist/commands/completion.test.js.map +1 -1
- package/dist/commands/contract-lock-cli.d.ts.map +1 -1
- package/dist/commands/contract-lock-cli.js +150 -29
- package/dist/commands/contract-lock-cli.js.map +1 -1
- package/dist/commands/help-text.d.ts.map +1 -1
- package/dist/commands/help-text.js +90 -26
- package/dist/commands/help-text.js.map +1 -1
- package/dist/commands/host-cli.d.ts +5 -0
- package/dist/commands/host-cli.d.ts.map +1 -0
- package/dist/commands/host-cli.js +120 -0
- package/dist/commands/host-cli.js.map +1 -0
- package/dist/commands/nav-cli.d.ts +8 -0
- package/dist/commands/nav-cli.d.ts.map +1 -0
- package/dist/commands/nav-cli.js +54 -0
- package/dist/commands/nav-cli.js.map +1 -0
- package/dist/commands/notify-cli.d.ts.map +1 -1
- package/dist/commands/notify-cli.js +38 -3
- package/dist/commands/notify-cli.js.map +1 -1
- package/dist/commands/room-cli.d.ts.map +1 -1
- package/dist/commands/room-cli.js +23 -6
- package/dist/commands/room-cli.js.map +1 -1
- package/dist/commands/schedule-cli.d.ts +13 -0
- package/dist/commands/schedule-cli.d.ts.map +1 -0
- package/dist/commands/schedule-cli.js +74 -0
- package/dist/commands/schedule-cli.js.map +1 -0
- package/dist/commands/schedule-cli.test.d.ts +2 -0
- package/dist/commands/schedule-cli.test.d.ts.map +1 -0
- package/dist/commands/schedule-cli.test.js +29 -0
- package/dist/commands/schedule-cli.test.js.map +1 -0
- package/dist/commands/todo-give.test.js +21 -5
- package/dist/commands/todo-give.test.js.map +1 -1
- package/dist/fast-spawn.d.ts +3 -0
- package/dist/fast-spawn.d.ts.map +1 -0
- package/dist/fast-spawn.js +107 -0
- package/dist/fast-spawn.js.map +1 -0
- package/dist/main.js +323 -44
- package/dist/main.js.map +1 -1
- package/dist/setup/init.d.ts +11 -0
- package/dist/setup/init.d.ts.map +1 -1
- package/dist/setup/init.js +38 -0
- package/dist/setup/init.js.map +1 -1
- package/dist/setup/init.test.js +3 -2
- package/dist/setup/init.test.js.map +1 -1
- package/dist/setup/install.js +2 -2
- package/dist/setup/install.js.map +1 -1
- package/package.json +8 -7
- package/profiles/minimal/mesh.config.yaml +1 -0
- package/templates/cursor/rules/seatmesh-agent.mdc +40 -0
- package/templates/docs/RELEASE.md +9 -3
- package/templates/docs/cli/README.md +110 -11
- package/templates/docs/cli/chat.md +4 -3
- package/templates/docs/cli/contract.md +15 -15
- package/templates/docs/cli/host.md +12 -0
- package/templates/docs/cli/human.md +15 -7
- package/templates/docs/cli/kind.md +4 -2
- package/templates/docs/cli/nav.md +12 -0
- package/templates/docs/cli/{oc-proxy.md → opencode-cpe.md} +10 -10
- package/templates/docs/cli/rebuild.md +3 -0
- package/templates/docs/cli/reload.md +8 -5
- package/templates/docs/cli/room.md +5 -7
- package/templates/docs/cli/schedule.md +13 -0
- package/templates/docs/cli/secretary.md +1 -1
- package/templates/docs/cli/spawn.md +13 -0
- package/templates/docs/cli/switch.md +4 -4
- package/templates/init/AGENTS.md +10 -10
- package/templates/init/mesh.config.yaml +11 -4
|
@@ -14,6 +14,9 @@ const ALIASES = {
|
|
|
14
14
|
patience: "cb",
|
|
15
15
|
coldstart: "cold-start",
|
|
16
16
|
handoff: "switch",
|
|
17
|
+
empty: "kill",
|
|
18
|
+
/** Rebuild engine + labels (prefer vocal over misleading "reload"). */
|
|
19
|
+
rebuild: "reload",
|
|
17
20
|
targets: "target",
|
|
18
21
|
dc: "stack",
|
|
19
22
|
cc: "switch",
|
|
@@ -39,16 +42,20 @@ const HELP = {
|
|
|
39
42
|
Put agent: seatmesh help human`,
|
|
40
43
|
human: `human — put an agent CLI on a pane (operator)
|
|
41
44
|
|
|
42
|
-
Empty terminal → agent:
|
|
43
|
-
|
|
45
|
+
Empty terminal → agent (prefer spawn; **fast by default**):
|
|
46
|
+
spawn <target|1..4> <opencode|opencode-cpe|claude|agent|kiro>
|
|
44
47
|
Examples:
|
|
45
|
-
seatmesh
|
|
46
|
-
seatmesh
|
|
47
|
-
seatmesh
|
|
48
|
-
seatmesh switch mini-1 oc-proxy --keep-resume
|
|
48
|
+
seatmesh spawn slot-1 opencode
|
|
49
|
+
seatmesh spawn 1..3 opencode-cpe
|
|
50
|
+
seatmesh spawn here agent --slow # wait verify + FRESH SUMMON
|
|
49
51
|
|
|
50
|
-
|
|
51
|
-
switch <target>
|
|
52
|
+
Replace a live agent:
|
|
53
|
+
switch <target> <cli> [--fast] [reason...]
|
|
54
|
+
seatmesh switch here agent --fast
|
|
55
|
+
|
|
56
|
+
Back to plain shell (saves empty in mesh-agents.json):
|
|
57
|
+
kill <target> # alias: empty
|
|
58
|
+
switch <target> empty --fast
|
|
52
59
|
|
|
53
60
|
Start/resume the seat's configured CLI (no type pick):
|
|
54
61
|
launch <target|all|manager|secretary>
|
|
@@ -59,7 +66,7 @@ const HELP = {
|
|
|
59
66
|
Check agent vs shell:
|
|
60
67
|
kind <target> # aliases: what | typeof
|
|
61
68
|
|
|
62
|
-
Give the seat WORK / a todo (does NOT install a CLI — different from switch):
|
|
69
|
+
Give the seat WORK / a todo (does NOT install a CLI — different from spawn/switch):
|
|
63
70
|
todo give <target> "do the thing" # preferred
|
|
64
71
|
todo <target> "do the thing" # shorthand
|
|
65
72
|
assign <target> "do the thing" # same engine
|
|
@@ -124,17 +131,21 @@ const HELP = {
|
|
|
124
131
|
cb: `cb list | cb start <dur> --expect "…" [--here]
|
|
125
132
|
cb cancel <id> | cb cancel-all | cb reset <id> <dur> | cb ack <id> yes|no
|
|
126
133
|
Poll-later timers (aliases: checkback, patience). Chat does NOT cancel.`,
|
|
127
|
-
room: `room tail [-r slug] [-n N] | room
|
|
134
|
+
room: `room tail [-r slug] [-n N] [--truncate N] [--json] | room get <id> [--json]
|
|
135
|
+
room say [-r slug] "<msg>" (same sender+body within ~20s is deduped, not re-sent)
|
|
128
136
|
room broadcast <msg> | room read | room call|accept …
|
|
129
137
|
A2A ledger. Global default; -r managers|supervise
|
|
130
138
|
broadcast/say fan-out = daemon queue (POST /room-fanout) — not direct-inject storm`,
|
|
131
139
|
chat: `chat tail [--slot key] [--lines N] [--json]
|
|
132
140
|
chat query [--slot|--session|--model|--since|--limit] [--json]
|
|
141
|
+
chat put <slot> "<human>" [--response "<text>"] (positional upsert, dedupe by turnHash)
|
|
142
|
+
chat get <id> [--slot key] [--json] (id or turnHash, full or 8-char prefix)
|
|
133
143
|
chat append|record — per-slot prompt/response CHAT.jsonl`,
|
|
134
144
|
notify: `notify "<session>" "<check>" [--url <link>]
|
|
135
145
|
notify info|md "<title>" --md <file>|--body "…" [--image path] [--url https://…]
|
|
136
146
|
notify yesno "<title>" "<blurb>" [--md file|--body "…"] [--image path] [--url https://…]
|
|
137
147
|
[--target seat] [--yes-msg "…"] [--no-msg "…"]
|
|
148
|
+
notify run|cmd "<title>" --cmd "…" [--body "…"] [--cwd rel]
|
|
138
149
|
Operator eyes (beta) — prefer over asking chat for a toast.
|
|
139
150
|
|
|
140
151
|
Pick one shape:
|
|
@@ -142,17 +153,22 @@ const HELP = {
|
|
|
142
153
|
Info only notify info "Brief" --body "## Why\\n\\n…" [--url https://mdview.io/s/…]
|
|
143
154
|
→ hub /act/card (:3190). [--url] = Open button (clickable).
|
|
144
155
|
Bare https:// in body also autolinks. [label](url) works.
|
|
145
|
-
|
|
156
|
+
Mermaid → local Info card renders \`\`\`mermaid (mermaid.js). Optional: preview (mdview.io) then --url share.
|
|
146
157
|
Info+Yes/No notify yesno "Ship?" "Need your call" --body "## Diff\\n…" [--url https://…]
|
|
147
158
|
→ toast buttons Info · Yes · No; card Open if --url.
|
|
148
159
|
Agents may still put links in --body/--md; toast body stays blurb-only.
|
|
160
|
+
Run cmd notify run "Reload layout" --cmd "sm layout reload"
|
|
161
|
+
→ toast **Review** → card shows exact command → **Run** | **Decline**
|
|
162
|
+
Run never on the toast — only after you see the command on the card.
|
|
149
163
|
|
|
150
164
|
yesno args: <title>=decision name · <blurb>=short toast line
|
|
151
165
|
Full recipe: seatmesh agent help notify`,
|
|
152
166
|
peek: `peek <target> status|full
|
|
153
167
|
Live pane snapshot / scrollback (manager|slot-N|mini-N|here)`,
|
|
154
|
-
kind: `kind <target>
|
|
155
|
-
|
|
168
|
+
kind: `kind <target> | kind list | kind show <id>
|
|
169
|
+
<target>: agent CLI vs plain terminal (aliases: what, typeof)
|
|
170
|
+
list/show: dump resolved agent kinds (provider kindBase ⋂ agents.kinds overlay
|
|
171
|
+
⋂ runners shim, extends flattened) — DX for custom-profile kinds`,
|
|
156
172
|
inbox: `inbox [--json] [--wait N] [--meta]
|
|
157
173
|
inbox list|resolve|log|instances|stop|restart
|
|
158
174
|
Daemon queue status (restart is lead/operator)`,
|
|
@@ -176,25 +192,33 @@ const HELP = {
|
|
|
176
192
|
mini: `mini list | mini spawn [--role R] <task...>
|
|
177
193
|
mini prompt <N> <text> | mini done <N> PASS|FAIL: …
|
|
178
194
|
mini kill|reassign|dispatch-all`,
|
|
179
|
-
secretary: `secretary start|status|digest|restart
|
|
195
|
+
secretary: `secretary start|stop|status|digest|restart
|
|
180
196
|
secretary supervise on [10m]|run|off
|
|
181
197
|
secretary switch <cli> [--keep-resume]
|
|
182
198
|
Lead supervise path (secretary→manager)`,
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
Examples:
|
|
187
|
-
|
|
199
|
+
spawn: `spawn <target|1..4> <agent|claude|opencode|kiro> [flags]
|
|
200
|
+
Empty shell → agent CLI (preferred). Default --fast (paste like typing opencode).
|
|
201
|
+
Replace live: switch. Thorough waits: --slow. Ranges: 1..4 · slot-2..5 · mini-1..3
|
|
202
|
+
Examples: spawn slot-1 opencode · spawn 1..3 opencode-cpe · spawn here agent --slow`,
|
|
203
|
+
switch: `switch <target|1..4> <agent|claude|opencode|kiro|empty> [flags] [reason...]
|
|
204
|
+
Replace a LIVE agent CLI (or → empty). Empty pane → prefer spawn (--fast).
|
|
205
|
+
Alias: handoff. Flags: --fast (skip verify) --slow --keep-resume --resume ID --queue
|
|
206
|
+
Examples: switch slot-1 claude · switch here agent --fast`,
|
|
207
|
+
forum: `forum | golf
|
|
208
|
+
Print the real shorthand table (Ruby ranges + one verb per job).
|
|
209
|
+
Alias: golf. Also: sm agent forum`,
|
|
210
|
+
golf: `golf
|
|
211
|
+
Alias for forum — shorthand table (no repo spelunk)`,
|
|
188
212
|
swap: `swap <a> <b> [--identity]
|
|
189
213
|
Visual pane swap (same tier). --identity also swaps numbers+seats`,
|
|
190
214
|
launch: `launch [targets...]
|
|
191
215
|
Start/resume the seat's already-configured CLI (no type pick).
|
|
192
|
-
|
|
216
|
+
Empty pane → pick type with spawn. Replace live → switch.
|
|
193
217
|
Examples: launch slot-1 · launch all · launch manager secretary`,
|
|
194
218
|
pane: `pane resume [target]
|
|
195
219
|
Autodetect original session id on the pane and resume it.
|
|
196
220
|
Sources: live cmdline → @mesh_oc_session → scrollback → mesh-agents.
|
|
197
|
-
Live OpenCode: paste resume [ses_…]. Else relaunch
|
|
221
|
+
Live OpenCode: paste resume [ses_…]. Else relaunch opencode-cpe/opencode/claude with that id.
|
|
198
222
|
Default target: here. Examples: pane resume · pane resume secretary`,
|
|
199
223
|
flush: `flush <slot|all|manager|mini-N>
|
|
200
224
|
Rescue stuck composer Enter`,
|
|
@@ -250,11 +274,23 @@ const HELP = {
|
|
|
250
274
|
Init if needed + create-or-attach session`,
|
|
251
275
|
session: `session attach|up|down|status|sync|check|repair|init <sm-name>
|
|
252
276
|
Session lifecycle. check = config/version/lost files; repair recreates missing`,
|
|
253
|
-
reload: `reload [--layout]
|
|
254
|
-
Rebuild
|
|
277
|
+
reload: `reload|rebuild [--layout]
|
|
278
|
+
Rebuild seatmesh packages (npm build) + refresh labels/borders/inbox.
|
|
279
|
+
Does NOT re-read config into live agents / does NOT replace pane CLIs
|
|
280
|
+
(that is spawn/switch/coordSync). --layout re-grids (disruptive).
|
|
281
|
+
Prefer vocal: rebuild`,
|
|
282
|
+
rebuild: `rebuild [--layout]
|
|
283
|
+
Alias of reload — rebuild engine + labels (not "reload config JSON").`,
|
|
255
284
|
layout: `layout [--no-leads] [--dry-run] [--yes]
|
|
285
|
+
layout reload [--yes] [--no-leads] [--no-resume]
|
|
286
|
+
layout scale workers|minis up|down|<N> [--yes] [--dry-run]
|
|
256
287
|
layout column list|add <id> [--cli P] [--after ID] [--co-typed]|remove <id>
|
|
257
|
-
|
|
288
|
+
Relayout + repair panes from mesh-agents.json (resume). Scale + columns.
|
|
289
|
+
Auto: layout.autoScale.enabled in mesh.config.yaml`,
|
|
290
|
+
kill: `kill <target|1..4|slot-N|mini-N|here>
|
|
291
|
+
Alias: empty. Respawn pane to plain terminal + save type=empty in mesh-agents.json`,
|
|
292
|
+
empty: `empty <target|1..4|slot-N|mini-N|here>
|
|
293
|
+
Alias of kill — pane → plain terminal, mesh-agents saved empty`,
|
|
258
294
|
realign: `realign
|
|
259
295
|
Resize-only: base ratio + equal worker/mini grids`,
|
|
260
296
|
save: `save|auto [--json] [--no-labels]
|
|
@@ -273,6 +309,10 @@ const HELP = {
|
|
|
273
309
|
CLI vs npm latest vs profile .seatmesh-version`,
|
|
274
310
|
roles: `roles status|migrate [--to VER]|steps
|
|
275
311
|
Locked role-pack up/down`,
|
|
312
|
+
host: `host up|down|status
|
|
313
|
+
Opt-in single host-supervisor: one process watches all meshes registered in
|
|
314
|
+
~/.config/seatmesh/sessions.json instead of each spawning its own supervisor.
|
|
315
|
+
Does not affect meshes that haven't opted in (Phase 1, see NOW.md).`,
|
|
276
316
|
target: `target add "<text>" [--deadline eod|6h]
|
|
277
317
|
target list | target done <id> | target triage <id>
|
|
278
318
|
Operator EOD work items (outside agent). Alias: targets`,
|
|
@@ -299,6 +339,24 @@ const HELP = {
|
|
|
299
339
|
preview ./handout.md --set 7 --notify
|
|
300
340
|
Also: notify info|md "<title>" --md <file> (same publish, toast+card)
|
|
301
341
|
Docs: https://mdview.io/agents · API POST https://mdview.io/api/public/publish`,
|
|
342
|
+
nav: `nav log [-n N] [--json]
|
|
343
|
+
nav summary [-n N] [--json]
|
|
344
|
+
Navigation history — recent \`peek <target>\` events (which panes/seats you've
|
|
345
|
+
looked at). log = chronological, summary = grouped by target, most-recent first.`,
|
|
346
|
+
campaign: `campaign create <title> [--objective "..."] [--assign <seat>] [--json]
|
|
347
|
+
campaign list [--status open|done|cancelled|all] [--json]
|
|
348
|
+
campaign show <id> [--json]
|
|
349
|
+
campaign assign <id> <seat>
|
|
350
|
+
campaign done|cancel|reopen <id>
|
|
351
|
+
campaign note <id> "<text>"
|
|
352
|
+
Ticket-style campaigns (TODO 8.2/8.4) — one atomic work unit: title, objective
|
|
353
|
+
(what "done" means), status, optional assignee, freeform notes. Purely additive,
|
|
354
|
+
its own event log — no dependency graph, no supervisor/balancer roles yet.`,
|
|
355
|
+
schedule: `schedule <target> "<msg...>" --at <time>
|
|
356
|
+
Delayed one-shot peer — queues now, held out of drain until --at passes
|
|
357
|
+
(ISO time or relative duration: 10m, 2h, 1d). Fire-and-forget: no ACK
|
|
358
|
+
tracking opens until it's actually delivered.
|
|
359
|
+
Examples: schedule secretary "EOD digest" --at 6h · schedule slot-2 "follow up" --at 2026-09-20T09:00:00Z`,
|
|
302
360
|
mds: `mds [hosted|agent-self|agent <kind>] …
|
|
303
361
|
Three markdown galleries (CLI ↔ hub /mds):
|
|
304
362
|
hosted [list] | host <file.md> [--as slug] | show|url <slug>
|
|
@@ -309,8 +367,12 @@ const HELP = {
|
|
|
309
367
|
→ locked role POV under .sm/roles/_vendor/docs/
|
|
310
368
|
Bare mds / mds status = counts. mdview.io share stays: agent preview <file.md>
|
|
311
369
|
Map: docs/patterns/cli-web-parity.md · docs/cli/mds.md`,
|
|
312
|
-
contract: `contract
|
|
313
|
-
|
|
370
|
+
contract: `contract [status]
|
|
371
|
+
contract show <id>
|
|
372
|
+
contract on|off <id> [--agent <seat>]
|
|
373
|
+
contract create|open <slug>
|
|
374
|
+
Easy locks: status = vendor + ON/off. on/off default agent from yaml
|
|
375
|
+
(supervise→secretary, balance→balance_lead). No --agent needed.`,
|
|
314
376
|
balance: `balance …
|
|
315
377
|
Dual-lead balance (coord)`,
|
|
316
378
|
"to-slot": `to-slot <N> "<msg>"
|
|
@@ -323,6 +385,8 @@ const HELP = {
|
|
|
323
385
|
Manager slot coaching`,
|
|
324
386
|
"pane-meta": `pane-meta <target>
|
|
325
387
|
Raw @mesh_* pane metadata`,
|
|
388
|
+
capture: `capture [target] [--lines N] [--ansi] [--json]
|
|
389
|
+
Read-only pane scrollback dump (default: here, last 80 lines)`,
|
|
326
390
|
ppa: `ppa [--raw] [--idle SEC]
|
|
327
391
|
Who is slacking? Idle ≥ppa.idleSlackSec (default 120) with open TASKS / BUSY|BLOCKED mark.
|
|
328
392
|
Default = slack verdict. --raw = telemetry table (old perf-index).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help-text.js","sourceRoot":"","sources":["../../src/commands/help-text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,OAAO,GAA2B;IACtC,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,cAAc;IACvB,WAAW,EAAE,cAAc;IAC3B,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,QAAQ;IACZ,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,OAAO;IACpB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,iEAAiE;AACjE,MAAM,IAAI,GAA2B;IACnC,IAAI,EAAE;;;;iCAIyB;IAE/B,KAAK,EAAE
|
|
1
|
+
{"version":3,"file":"help-text.js","sourceRoot":"","sources":["../../src/commands/help-text.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-cli.d.ts","sourceRoot":"","sources":["../../src/commands/host-cli.ts"],"names":[],"mappings":"AA8CA,wBAAgB,MAAM,IAAI,MAAM,CA+B/B;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAoBjC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAenC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAerD"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `seatmesh host up|down|status` — opt-in single host-level supervisor (Phase 1 of
|
|
3
|
+
* the single-daemon migration, see NOW.md "Direction"). One process manages a
|
|
4
|
+
* mesh-inbox-watcher per mesh registered in `~/.config/seatmesh/sessions.json`,
|
|
5
|
+
* instead of each mesh spawning its own supervisor+server pair.
|
|
6
|
+
*
|
|
7
|
+
* Does not touch `ensureMeshInbox` — meshes still spawn their own per-mesh
|
|
8
|
+
* supervisor by default unless the operator runs `host up` explicitly.
|
|
9
|
+
*/
|
|
10
|
+
import fs from "node:fs";
|
|
11
|
+
import path from "node:path";
|
|
12
|
+
import { spawn, spawnSync } from "node:child_process";
|
|
13
|
+
import { globalConfigDir, hostSupervisorMetaPath, readHostSupervisorMeta, resolveDaemonScript, } from "@seat-mesh/core";
|
|
14
|
+
function hostStateDir() {
|
|
15
|
+
return globalConfigDir();
|
|
16
|
+
}
|
|
17
|
+
function metaPath() {
|
|
18
|
+
return hostSupervisorMetaPath();
|
|
19
|
+
}
|
|
20
|
+
function stopPath() {
|
|
21
|
+
return path.join(hostStateDir(), "host-supervisor.stop");
|
|
22
|
+
}
|
|
23
|
+
function logPath() {
|
|
24
|
+
return path.join(hostStateDir(), "host-supervisor.log");
|
|
25
|
+
}
|
|
26
|
+
function readMeta() {
|
|
27
|
+
return readHostSupervisorMeta();
|
|
28
|
+
}
|
|
29
|
+
function pidAlive(pid) {
|
|
30
|
+
if (!pid || pid <= 0)
|
|
31
|
+
return false;
|
|
32
|
+
return spawnSync("kill", ["-0", String(pid)], { stdio: "ignore" }).status === 0;
|
|
33
|
+
}
|
|
34
|
+
function sleepSync(ms) {
|
|
35
|
+
spawnSync("sleep", [String(ms / 1000)]);
|
|
36
|
+
}
|
|
37
|
+
export function hostUp() {
|
|
38
|
+
const existing = readMeta();
|
|
39
|
+
if (existing && pidAlive(existing.hostSupervisorPid)) {
|
|
40
|
+
console.log(`host-supervisor already running pid=${existing.hostSupervisorPid}`);
|
|
41
|
+
return 0;
|
|
42
|
+
}
|
|
43
|
+
const entryJs = resolveDaemonScript("mesh-inbox-host-supervisor.js");
|
|
44
|
+
if (!fs.existsSync(entryJs)) {
|
|
45
|
+
console.error(`host-supervisor script missing: ${entryJs} — run seatmesh reload`);
|
|
46
|
+
return 1;
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
fs.unlinkSync(stopPath());
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
/* ignore */
|
|
53
|
+
}
|
|
54
|
+
fs.mkdirSync(hostStateDir(), { recursive: true });
|
|
55
|
+
const child = spawn("node", [entryJs], { detached: true, stdio: "ignore" });
|
|
56
|
+
child.unref();
|
|
57
|
+
for (let i = 0; i < 40; i++) {
|
|
58
|
+
const meta = readMeta();
|
|
59
|
+
if (meta && pidAlive(meta.hostSupervisorPid)) {
|
|
60
|
+
console.log(`OK: host-supervisor up pid=${meta.hostSupervisorPid} (${meta.sessions.length} mesh(es))`);
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
sleepSync(250);
|
|
64
|
+
}
|
|
65
|
+
console.error(`host-supervisor did not come up (see ${logPath()})`);
|
|
66
|
+
return 1;
|
|
67
|
+
}
|
|
68
|
+
export function hostDown() {
|
|
69
|
+
const meta = readMeta();
|
|
70
|
+
if (!meta || !pidAlive(meta.hostSupervisorPid)) {
|
|
71
|
+
console.log("host-supervisor not running");
|
|
72
|
+
return 0;
|
|
73
|
+
}
|
|
74
|
+
fs.mkdirSync(hostStateDir(), { recursive: true });
|
|
75
|
+
fs.writeFileSync(stopPath(), `${new Date().toISOString()} stop\n`, { encoding: "utf8" });
|
|
76
|
+
spawnSync("kill", ["-TERM", String(meta.hostSupervisorPid)], { stdio: "ignore" });
|
|
77
|
+
for (let i = 0; i < 20; i++) {
|
|
78
|
+
if (!pidAlive(meta.hostSupervisorPid)) {
|
|
79
|
+
console.log("OK: host-supervisor stopped");
|
|
80
|
+
return 0;
|
|
81
|
+
}
|
|
82
|
+
sleepSync(250);
|
|
83
|
+
}
|
|
84
|
+
spawnSync("kill", ["-KILL", String(meta.hostSupervisorPid)], { stdio: "ignore" });
|
|
85
|
+
console.log("OK: host-supervisor stopped (force)");
|
|
86
|
+
return 0;
|
|
87
|
+
}
|
|
88
|
+
export function hostStatus() {
|
|
89
|
+
const meta = readMeta();
|
|
90
|
+
if (!meta || !pidAlive(meta.hostSupervisorPid)) {
|
|
91
|
+
console.log("host-supervisor: DOWN");
|
|
92
|
+
return 1;
|
|
93
|
+
}
|
|
94
|
+
console.log(`host-supervisor: UP pid=${meta.hostSupervisorPid} started=${meta.startedAt} rescan=${meta.rescanMs}ms`);
|
|
95
|
+
if (!meta.sessions.length) {
|
|
96
|
+
console.log(" (no meshes registered in ~/.config/seatmesh/sessions.json)");
|
|
97
|
+
return 0;
|
|
98
|
+
}
|
|
99
|
+
for (const s of meta.sessions) {
|
|
100
|
+
console.log(` ${s.session} :${s.port} pid=${s.pid ?? "-"} ${s.profilePath}`);
|
|
101
|
+
}
|
|
102
|
+
return 0;
|
|
103
|
+
}
|
|
104
|
+
export function runHostCommand(args) {
|
|
105
|
+
const sub = args[0];
|
|
106
|
+
switch (sub) {
|
|
107
|
+
case "up":
|
|
108
|
+
return hostUp();
|
|
109
|
+
case "down":
|
|
110
|
+
return hostDown();
|
|
111
|
+
case "status":
|
|
112
|
+
case undefined:
|
|
113
|
+
return hostStatus();
|
|
114
|
+
default:
|
|
115
|
+
console.error(`unknown: seatmesh host ${sub}`);
|
|
116
|
+
console.error("usage: seatmesh host up|down|status");
|
|
117
|
+
return 2;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=host-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-cli.js","sourceRoot":"","sources":["../../src/commands/host-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `sm nav log|summary` (TODO 3.6) — reads the navigation history `peek <target>`
|
|
3
|
+
* appends to (`@seat-mesh/core` nav-log.ts). Read-only; nothing to enqueue.
|
|
4
|
+
*/
|
|
5
|
+
import { Command } from "commander";
|
|
6
|
+
import { type LoadedProfile } from "@seat-mesh/core";
|
|
7
|
+
export declare function buildNavCommands(getLoaded: () => LoadedProfile): Command;
|
|
8
|
+
//# sourceMappingURL=nav-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-cli.d.ts","sourceRoot":"","sources":["../../src/commands/nav-cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAmC,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEtF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG,OAAO,CAqDxE"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `sm nav log|summary` (TODO 3.6) — reads the navigation history `peek <target>`
|
|
3
|
+
* appends to (`@seat-mesh/core` nav-log.ts). Read-only; nothing to enqueue.
|
|
4
|
+
*/
|
|
5
|
+
import { Command } from "commander";
|
|
6
|
+
import { summarizeNavEntries, tailNavLog } from "@seat-mesh/core";
|
|
7
|
+
export function buildNavCommands(getLoaded) {
|
|
8
|
+
const nav = new Command("nav").description("Navigation history — which targets peek has looked at recently");
|
|
9
|
+
nav
|
|
10
|
+
.command("log")
|
|
11
|
+
.description("Recent peek events, most recent last")
|
|
12
|
+
.option("-n, --lines <n>", "entry count", "50")
|
|
13
|
+
.option("--json", "JSON output")
|
|
14
|
+
.action(async (opts) => {
|
|
15
|
+
const loaded = getLoaded();
|
|
16
|
+
const n = Number.parseInt(opts.lines, 10) || 50;
|
|
17
|
+
const entries = await tailNavLog(loaded, n);
|
|
18
|
+
if (opts.json) {
|
|
19
|
+
console.log(JSON.stringify(entries, null, 2));
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (!entries.length) {
|
|
23
|
+
console.log("(no navigation history yet — run `peek <target>`)");
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
for (const e of entries) {
|
|
27
|
+
console.log(`${e.at}\t${e.actor}\t${e.target}\t${e.targetPane}\trole=${e.role ?? "?"} slot=${e.slot ?? "-"}`);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
nav
|
|
31
|
+
.command("summary")
|
|
32
|
+
.description("Peek targets grouped by visit count, most-recently-visited first")
|
|
33
|
+
.option("-n, --lines <n>", "how much recent history to summarize", "1000")
|
|
34
|
+
.option("--json", "JSON output")
|
|
35
|
+
.action(async (opts) => {
|
|
36
|
+
const loaded = getLoaded();
|
|
37
|
+
const n = Number.parseInt(opts.lines, 10) || 1000;
|
|
38
|
+
const entries = await tailNavLog(loaded, n);
|
|
39
|
+
const rows = summarizeNavEntries(entries);
|
|
40
|
+
if (opts.json) {
|
|
41
|
+
console.log(JSON.stringify(rows, null, 2));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (!rows.length) {
|
|
45
|
+
console.log("(no navigation history yet — run `peek <target>`)");
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
for (const r of rows) {
|
|
49
|
+
console.log(`${r.target}\tvisits=${r.count}\tlast=${r.lastAt}`);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
return nav;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=nav-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-cli.js","sourceRoot":"","sources":["../../src/commands/nav-cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAsB,MAAM,iBAAiB,CAAC;AAEtF,MAAM,UAAU,gBAAgB,CAAC,SAA8B;IAC7D,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CACxC,gEAAgE,CACjE,CAAC;IAEF,GAAG;SACA,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC;SAC9C,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,KAAK,EAAE,IAAuC,EAAE,EAAE;QACxD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,UAAU,UAAU,CAAC,CAAC,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,CACjG,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,kEAAkE,CAAC;SAC/E,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,EAAE,MAAM,CAAC;SACzE,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,KAAK,EAAE,IAAuC,EAAE,EAAE;QACxD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify-cli.d.ts","sourceRoot":"","sources":["../../src/commands/notify-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"notify-cli.d.ts","sourceRoot":"","sources":["../../src/commands/notify-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAqBrD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG,OAAO,CA4M1E"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
-
import {
|
|
2
|
+
import { unescapeNotifyMarkdown } from "@seat-mesh/core";
|
|
3
|
+
import { runMeshNotify, runNotifyDetails, sendDesktopToastSync, sendYesNoToast, sendRunCmdToast, } from "@seat-mesh/tmux";
|
|
3
4
|
function collectImage(v, acc) {
|
|
4
5
|
acc.push(v);
|
|
5
6
|
return acc;
|
|
6
7
|
}
|
|
8
|
+
function bodyOpt(raw) {
|
|
9
|
+
const t = raw?.trim();
|
|
10
|
+
if (!t)
|
|
11
|
+
return undefined;
|
|
12
|
+
return unescapeNotifyMarkdown(t);
|
|
13
|
+
}
|
|
7
14
|
export function buildNotifyCommand(getLoaded) {
|
|
8
15
|
const notify = new Command("notify").description("Operator toast: plain / Info (mdview) / Yes-No decide");
|
|
9
16
|
// Parent also has --url (eyes-only). Without this, `notify yesno … --url`
|
|
@@ -41,7 +48,7 @@ export function buildNotifyCommand(getLoaded) {
|
|
|
41
48
|
.action(async (title, body, opts) => {
|
|
42
49
|
const loaded = getLoaded();
|
|
43
50
|
const days = Number.parseInt(opts.days, 10);
|
|
44
|
-
const infoBody = (opts.body ?? opts.bodyMd)
|
|
51
|
+
const infoBody = bodyOpt(opts.body ?? opts.bodyMd);
|
|
45
52
|
const result = await sendYesNoToast(loaded, title.trim(), body.trim(), {
|
|
46
53
|
yesMsg: opts.yesMsg?.trim(),
|
|
47
54
|
noMsg: opts.noMsg?.trim(),
|
|
@@ -81,7 +88,7 @@ export function buildNotifyCommand(getLoaded) {
|
|
|
81
88
|
const result = await runNotifyDetails(loaded, {
|
|
82
89
|
title: title.trim(),
|
|
83
90
|
mdFile: opts.md,
|
|
84
|
-
body: opts.body,
|
|
91
|
+
body: bodyOpt(opts.body),
|
|
85
92
|
images: opts.image,
|
|
86
93
|
openUrl: opts.url?.trim(),
|
|
87
94
|
check: opts.check ?? "Open Info card",
|
|
@@ -100,6 +107,34 @@ export function buildNotifyCommand(getLoaded) {
|
|
|
100
107
|
console.log(`ok info ${result.viewerUrl?.trim()}${result.embedded?.length ? ` images=${result.embedded.length}` : ""}`);
|
|
101
108
|
});
|
|
102
109
|
notify.addCommand(info);
|
|
110
|
+
notify
|
|
111
|
+
.command("run")
|
|
112
|
+
.alias("cmd")
|
|
113
|
+
.description("Two-step command: toast Review → card shows the exact command → Run or Decline")
|
|
114
|
+
.argument("<title>", "toast + card title")
|
|
115
|
+
.requiredOption("--cmd <command>", "shell command to run after operator accepts")
|
|
116
|
+
.option("--body <markdown>", "prose above the command on the Review card")
|
|
117
|
+
.option("--cwd <rel>", "workdir relative to workspace (default: workspace root)")
|
|
118
|
+
.option("--days <n>", "card TTL days 1-30 (default 7)", "7")
|
|
119
|
+
.action(async (title, opts) => {
|
|
120
|
+
const loaded = getLoaded();
|
|
121
|
+
const days = Number.parseInt(opts.days, 10);
|
|
122
|
+
if (!Number.isFinite(days) || days < 1 || days > 30) {
|
|
123
|
+
console.error("FAIL usage 2: --days must be 1-30");
|
|
124
|
+
process.exit(2);
|
|
125
|
+
}
|
|
126
|
+
const result = await sendRunCmdToast(loaded, title.trim(), {
|
|
127
|
+
cmd: opts.cmd,
|
|
128
|
+
body: bodyOpt(opts.body),
|
|
129
|
+
cwd: opts.cwd?.trim(),
|
|
130
|
+
days,
|
|
131
|
+
});
|
|
132
|
+
if (!result.ok) {
|
|
133
|
+
console.error(`FAIL: ${result.error ?? "notify run failed"}`);
|
|
134
|
+
process.exit(1);
|
|
135
|
+
}
|
|
136
|
+
console.log(`ok run "${title.trim()}" review=${result.infoUrl ?? "?"} (toast Review → card Run|Decline)`);
|
|
137
|
+
});
|
|
103
138
|
notify
|
|
104
139
|
.argument("<session>", "what this session is about (title body)")
|
|
105
140
|
.argument("<check>", "what the operator should verify (Check: line)")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify-cli.js","sourceRoot":"","sources":["../../src/commands/notify-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,
|
|
1
|
+
{"version":3,"file":"notify-cli.js","sourceRoot":"","sources":["../../src/commands/notify-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-cli.d.ts","sourceRoot":"","sources":["../../src/commands/room-cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"room-cli.d.ts","sourceRoot":"","sources":["../../src/commands/room-cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,KAAK,aAAa,EAiBnB,MAAM,iBAAiB,CAAC;AA8FzB,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG,OAAO,CA0OzE;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG,OAAO,CAoC7E"}
|