@zswarm/core 0.1.9 → 0.2.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/assets/host-install.sh +120 -0
- package/assets/host-report.sh +29 -0
- package/assets/slot.py +324 -0
- package/dist/host/cli.d.ts +13 -0
- package/dist/host/cli.js +214 -0
- package/dist/host/crew.d.ts +81 -0
- package/dist/host/crew.js +279 -0
- package/dist/host/host.d.ts +55 -0
- package/dist/host/host.js +165 -0
- package/dist/host/relay.d.ts +116 -0
- package/dist/host/relay.js +476 -0
- package/dist/host/serve-service.d.ts +51 -0
- package/dist/host/serve-service.js +150 -0
- package/dist/host/services.d.ts +103 -0
- package/dist/host/services.js +345 -0
- package/dist/host/slot.d.ts +11 -0
- package/dist/host/slot.js +74 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +7 -0
- package/dist/ops/dispatch.js +25 -2
- package/dist/ops/types.d.ts +3 -0
- package/dist/schema.js +10 -4
- package/dist/zellij/binary.js +4 -1
- package/package.json +2 -1
package/dist/schema.js
CHANGED
|
@@ -52,7 +52,7 @@ export const PARAMS = [
|
|
|
52
52
|
name: "session",
|
|
53
53
|
type: "string",
|
|
54
54
|
flags: ["--session", "-s"],
|
|
55
|
-
description: "Zellij session name (optional if sole live session or ZSWARM_SESSION / ZELLIJ_SESSION_NAME). serve --install: readiness target only
|
|
55
|
+
description: "Zellij session name (optional if sole live session or ZSWARM_SESSION / ZELLIJ_SESSION_NAME). serve --install: on Windows the readiness target only (does not change the task's default routing); on Linux/macOS the session the service serves and waits for, one service per session",
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
name: "to",
|
|
@@ -112,13 +112,19 @@ export const PARAMS = [
|
|
|
112
112
|
name: "clear",
|
|
113
113
|
type: "boolean",
|
|
114
114
|
flags: ["--clear"],
|
|
115
|
-
description: "signal: reset the channel (all channels when none is given); bus: forget the installed plugin; serve: stop and unregister the owned Windows zswarm-serve logon task if present",
|
|
115
|
+
description: "signal: reset the channel (all channels when none is given); bus: forget the installed plugin; serve: stop and unregister the owned Windows zswarm-serve logon task, or the Linux/macOS serve service, if present",
|
|
116
116
|
},
|
|
117
117
|
{
|
|
118
118
|
name: "install",
|
|
119
119
|
type: "boolean",
|
|
120
120
|
flags: ["--install"],
|
|
121
|
-
description: "bus: load the event-bus plugin in a pane so its permission prompt can be answered, then remember it; serve: register the current-user Windows Interactive logon task and wait for authenticated hello plus host session visibility",
|
|
121
|
+
description: "bus: load the event-bus plugin in a pane so its permission prompt can be answered, then remember it; serve: register the current-user Windows Interactive logon task, or on Linux/macOS a systemd user unit (with linger) or launchd job whose token lives in ~/.zswarm/serve/, and wait for authenticated hello plus host session visibility",
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
name: "runAs",
|
|
125
|
+
type: "string",
|
|
126
|
+
flags: ["--run-as"],
|
|
127
|
+
description: "serve --install/--clear on Linux/macOS, run as root: install the service for this user (a LaunchDaemon with UserName on macOS, the user's systemd units on Linux), for accounts that never log in",
|
|
122
128
|
},
|
|
123
129
|
{
|
|
124
130
|
name: "reset",
|
|
@@ -496,7 +502,7 @@ export function cliUsage() {
|
|
|
496
502
|
const value = param.type === "boolean" ? "" : param.type === "number" ? " N" : " VALUE";
|
|
497
503
|
lines.push(` ${param.flags.join(", ").padEnd(28)}${value.trim().padEnd(6)}${param.description}`);
|
|
498
504
|
}
|
|
499
|
-
lines.push("", "Guards: writes refuse zswarm's own pane (--allow-self) and exited panes (--force). --expect requires the screen to contain a substring first.", "Bus: `zswarm bus --install` once per Zellij session. `--force` closes orphan bus panes and reloads; do not use it as a retry.", "Remote: ZSWARM_SSH (+ ZSWARM_TMP=auto or ZSWARM_SSH_MODE=interactive on Windows). Or run `zswarm serve --listen` next to Zellij and set ZSWARM_SERVE / --serve (host:port, tcp://, or ssh://user@host?servePort=9419) plus ZSWARM_SERVE_TOKEN. Serve defaults to loopback and always requires a token; an explicit local Tailscale IP is allowed only after host verification. Private raw TCP Tailscale Serve keeps the backend on 127.0.0.1 behind `tailscale serve --tcp=…` (docs/tailscale.md). ssh:// does not start remote serve. Windows default recipe: `zswarm serve --install` (verified readiness).", "Doctor: `zswarm doctor --session crew` inspects local, --ssh, and --serve routes without installs, pane changes, or plugin launch. See docs/doctor.md and docs/tailscale.md.", "Env: ZSWARM_BIN, ZSWARM_PATH, ZSWARM_SESSION, ZSWARM_SELF_PANE, ZSWARM_FROM, ZELLIJ_PANE_ID, ZELLIJ_SESSION_NAME, ZSWARM_BUS, ZSWARM_BUS_PLUGIN, ZSWARM_SSH, ZSWARM_SSH_BIN, ZSWARM_SSH_OPTS, ZSWARM_TMP, ZSWARM_SSH_MODE, ZSWARM_SERVE, ZSWARM_SERVE_TOKEN, ZSWARM_TAILSCALE_BIN, ZSWARM_CACHE_TTL_MS", "");
|
|
505
|
+
lines.push("", "Guards: writes refuse zswarm's own pane (--allow-self) and exited panes (--force). --expect requires the screen to contain a substring first.", "Bus: `zswarm bus --install` once per Zellij session. `--force` closes orphan bus panes and reloads; do not use it as a retry.", "Remote: ZSWARM_SSH (+ ZSWARM_TMP=auto or ZSWARM_SSH_MODE=interactive on Windows). Or run `zswarm serve --listen` next to Zellij and set ZSWARM_SERVE / --serve (host:port, tcp://, or ssh://user@host?servePort=9419) plus ZSWARM_SERVE_TOKEN. Serve defaults to loopback and always requires a token; an explicit local Tailscale IP is allowed only after host verification. Private raw TCP Tailscale Serve keeps the backend on 127.0.0.1 behind `tailscale serve --tcp=…` (docs/tailscale.md). ssh:// does not start remote serve. Windows default recipe: `zswarm serve --install` (verified readiness).", "Hosts (CLI only, see docs/hosts.md): `zswarm slot`, `zswarm crew`, `zswarm relay`, `zswarm host`; `zswarm <command> --help` for each.", "Doctor: `zswarm doctor --session crew` inspects local, --ssh, and --serve routes without installs, pane changes, or plugin launch. See docs/doctor.md and docs/tailscale.md.", "Env: ZSWARM_BIN, ZSWARM_PATH, ZSWARM_SESSION, ZSWARM_SELF_PANE, ZSWARM_FROM, ZELLIJ_PANE_ID, ZELLIJ_SESSION_NAME, ZSWARM_BUS, ZSWARM_BUS_PLUGIN, ZSWARM_SSH, ZSWARM_SSH_BIN, ZSWARM_SSH_OPTS, ZSWARM_TMP, ZSWARM_SSH_MODE, ZSWARM_SERVE, ZSWARM_SERVE_TOKEN, ZSWARM_TAILSCALE_BIN, ZSWARM_CACHE_TTL_MS", "");
|
|
500
506
|
return lines.join("\n");
|
|
501
507
|
}
|
|
502
508
|
/** Turn argv (without the op) into dispatch args, driven by PARAMS. */
|
package/dist/zellij/binary.js
CHANGED
|
@@ -148,6 +148,9 @@ export async function ensureZellijIdentity(exec, zellijPath, timeoutMs = 3_000,
|
|
|
148
148
|
if (result.code === 0) {
|
|
149
149
|
if (signal?.aborted)
|
|
150
150
|
return false;
|
|
151
|
+
// A loaded host can return nothing; that is unresolved, not a wrong binary.
|
|
152
|
+
if (!text.trim())
|
|
153
|
+
return false;
|
|
151
154
|
if (isZellijVersionOutput(result.stdout, result.stderr)) {
|
|
152
155
|
identityCache.add(cacheKey);
|
|
153
156
|
return true;
|
|
@@ -188,7 +191,7 @@ export async function ensureZellijCapabilities(exec, zellijPath, timeoutMs = 3_0
|
|
|
188
191
|
capabilityCache.add(cacheKey);
|
|
189
192
|
return true;
|
|
190
193
|
}
|
|
191
|
-
if (result.code === 0) {
|
|
194
|
+
if (result.code === 0 && text.trim()) {
|
|
192
195
|
throw new ZellijError("zellij_incompatible", `Zellij at ${zellijPath} does not advertise list-sessions --no-formatting; upgrade Zellij (≥ 0.42) or zswarm`, zellijExecDetails(result));
|
|
193
196
|
}
|
|
194
197
|
// Soft: leave unresolved on transport failure.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zswarm/core",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "zSwarm Zellij client and shared ops dispatch",
|
|
6
6
|
"exports": {
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"files": [
|
|
21
21
|
"dist",
|
|
22
|
+
"assets",
|
|
22
23
|
"README.md"
|
|
23
24
|
],
|
|
24
25
|
"publishConfig": {
|