@geohar/un-bien 0.8.0 → 0.14.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/README.md +258 -320
- package/dist/actions/handlers.js.map +1 -1
- package/dist/actions/registry.js.map +1 -1
- package/dist/bin/launcher.js +38 -0
- package/dist/bin/launcher.js.map +1 -0
- package/dist/commands/deps.d.ts +156 -0
- package/dist/commands/deps.js +2 -0
- package/dist/commands/deps.js.map +1 -0
- package/dist/commands/fork_link.d.ts +4 -0
- package/dist/commands/fork_link.js +45 -0
- package/dist/commands/fork_link.js.map +1 -0
- package/dist/commands/housekeeping.d.ts +34 -0
- package/dist/commands/housekeeping.js +275 -0
- package/dist/commands/housekeeping.js.map +1 -0
- package/dist/commands/info.d.ts +43 -0
- package/dist/commands/info.js +127 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/lifecycle.d.ts +45 -0
- package/dist/commands/lifecycle.js +708 -0
- package/dist/commands/lifecycle.js.map +1 -0
- package/dist/commands/pairing.d.ts +26 -0
- package/dist/commands/pairing.js +167 -0
- package/dist/commands/pairing.js.map +1 -0
- package/dist/commands/register.d.ts +12 -0
- package/dist/commands/register.js +255 -0
- package/dist/commands/register.js.map +1 -0
- package/dist/commands/relay.d.ts +28 -0
- package/dist/commands/relay.js +81 -0
- package/dist/commands/relay.js.map +1 -0
- package/dist/commands/session_ops.d.ts +52 -0
- package/dist/commands/session_ops.js +75 -0
- package/dist/commands/session_ops.js.map +1 -0
- package/dist/config.d.ts +30 -2
- package/dist/config.js.map +1 -1
- package/dist/daemon/install.d.ts +36 -37
- package/dist/daemon/install.js +49 -73
- package/dist/daemon/install.js.map +1 -1
- package/dist/enrich_tool_args.d.ts +9 -0
- package/dist/enrich_tool_args.js +171 -0
- package/dist/enrich_tool_args.js.map +1 -0
- package/dist/extension_ui_bridge.js.map +1 -1
- package/dist/image_codec.d.ts +22 -0
- package/dist/image_codec.js +149 -0
- package/dist/image_codec.js.map +1 -0
- package/dist/index.d.ts +32 -127
- package/dist/index.js +957 -4042
- package/dist/index.js.map +1 -1
- package/dist/launch.d.ts +42 -0
- package/dist/launch.js +206 -0
- package/dist/launch.js.map +1 -0
- package/dist/launcher/launcher.d.ts +6 -0
- package/dist/launcher/launcher.js +207 -0
- package/dist/launcher/launcher.js.map +1 -0
- package/dist/mcp/mesh_result.js.map +1 -1
- package/dist/mcp/mesh_server.js.map +1 -1
- package/dist/mesh/canonical.js +1 -1
- package/dist/mesh/canonical.js.map +1 -1
- package/dist/mesh/client.js.map +1 -1
- package/dist/mesh/encoding.js.map +1 -1
- package/dist/mesh/self_revoke.js.map +1 -1
- package/dist/mesh/siblings.js.map +1 -1
- package/dist/mesh/verify.js +1 -1
- package/dist/mesh/verify.js.map +1 -1
- package/dist/pairing/crypto.js +0 -1
- package/dist/pairing/crypto.js.map +1 -1
- package/dist/pairing/peer_trust.d.ts +20 -0
- package/dist/pairing/peer_trust.js +82 -0
- package/dist/pairing/peer_trust.js.map +1 -0
- package/dist/pairing/qr.js.map +1 -1
- package/dist/pairing/storage.js +4 -3
- package/dist/pairing/storage.js.map +1 -1
- package/dist/panel_bridge.d.ts +3 -1
- package/dist/panel_bridge.js +11 -10
- package/dist/panel_bridge.js.map +1 -1
- package/dist/paths.d.ts +22 -8
- package/dist/paths.js +37 -10
- package/dist/paths.js.map +1 -1
- package/dist/protocol/codec.js.map +1 -1
- package/dist/rooms.d.ts +16 -0
- package/dist/rooms.js +23 -4
- package/dist/rooms.js.map +1 -1
- package/dist/session/bridge.js.map +1 -1
- package/dist/session/broker.js.map +1 -1
- package/dist/session/broker_remote.js.map +1 -1
- package/dist/session/capabilities.d.ts +11 -0
- package/dist/session/capabilities.js +35 -0
- package/dist/session/capabilities.js.map +1 -0
- package/dist/session/cwd_lock.js +3 -3
- package/dist/session/cwd_lock.js.map +1 -1
- package/dist/session/debug_log.js +15 -5
- package/dist/session/debug_log.js.map +1 -1
- package/dist/session/envelope.js.map +1 -1
- package/dist/session/global_config.d.ts +1 -1
- package/dist/session/global_config.js +1 -1
- package/dist/session/global_config.js.map +1 -1
- package/dist/session/ipc.d.ts +2 -2
- package/dist/session/ipc.js.map +1 -1
- package/dist/session/leader_election.js.map +1 -1
- package/dist/session/local_config.d.ts +37 -0
- package/dist/session/local_config.js +47 -1
- package/dist/session/local_config.js.map +1 -1
- package/dist/session/mesh_node.d.ts +1 -1
- package/dist/session/mesh_node.js +1 -1
- package/dist/session/mesh_node.js.map +1 -1
- package/dist/session/peer.js.map +1 -1
- package/dist/session/peer_inventory.js.map +1 -1
- package/dist/session/peer_limits.js.map +1 -1
- package/dist/session/received_images.d.ts +63 -0
- package/dist/session/received_images.js +273 -0
- package/dist/session/received_images.js.map +1 -0
- package/dist/session/relay_lifecycle.d.ts +219 -0
- package/dist/session/relay_lifecycle.js +764 -0
- package/dist/session/relay_lifecycle.js.map +1 -0
- package/dist/session/rpc_envelope.d.ts +28 -0
- package/dist/session/rpc_envelope.js +10 -1
- package/dist/session/rpc_envelope.js.map +1 -1
- package/dist/session/rpc_handlers.d.ts +53 -0
- package/dist/session/rpc_handlers.js +268 -0
- package/dist/session/rpc_handlers.js.map +1 -0
- package/dist/session/rpc_inbound.d.ts +42 -7
- package/dist/session/rpc_inbound.js +56 -1
- package/dist/session/rpc_inbound.js.map +1 -1
- package/dist/session/setup_wizard.js.map +1 -1
- package/dist/session/tools.js.map +1 -1
- package/dist/session/wizard.js.map +1 -1
- package/dist/state_migration.d.ts +45 -0
- package/dist/state_migration.js +104 -0
- package/dist/state_migration.js.map +1 -0
- package/dist/subagent_rooms.d.ts +68 -0
- package/dist/subagent_rooms.js +919 -0
- package/dist/subagent_rooms.js.map +1 -0
- package/dist/test_hooks.d.ts +180 -0
- package/dist/test_hooks.js +98 -0
- package/dist/test_hooks.js.map +1 -0
- package/dist/transport/peer_channel.d.ts +18 -1
- package/dist/transport/peer_channel.js +42 -12
- package/dist/transport/peer_channel.js.map +1 -1
- package/dist/transport/pi_forward_client.js.map +1 -1
- package/dist/transport/relay_client.d.ts +24 -2
- package/dist/transport/relay_client.js +6 -3
- package/dist/transport/relay_client.js.map +1 -1
- package/dist/ui/footer.js.map +1 -1
- package/docs/daemon.md +170 -179
- package/package.json +13 -11
- package/service-templates/launchd.plist.template +8 -7
- package/service-templates/systemd.service.template +5 -4
- package/service-templates/task-launcher.vbs.template +5 -5
- package/service-templates/task-scheduler.xml.template +1 -1
- package/dist/bin/supervisord.js +0 -86
- package/dist/bin/supervisord.js.map +0 -1
- package/dist/daemon/client.d.ts +0 -20
- package/dist/daemon/client.js +0 -131
- package/dist/daemon/client.js.map +0 -1
- package/dist/daemon/control_protocol.d.ts +0 -176
- package/dist/daemon/control_protocol.js +0 -63
- package/dist/daemon/control_protocol.js.map +0 -1
- package/dist/daemon/cron_log.d.ts +0 -45
- package/dist/daemon/cron_log.js +0 -71
- package/dist/daemon/cron_log.js.map +0 -1
- package/dist/daemon/cron_registry.d.ts +0 -80
- package/dist/daemon/cron_registry.js +0 -198
- package/dist/daemon/cron_registry.js.map +0 -1
- package/dist/daemon/id.d.ts +0 -24
- package/dist/daemon/id.js +0 -36
- package/dist/daemon/id.js.map +0 -1
- package/dist/daemon/registry.d.ts +0 -63
- package/dist/daemon/registry.js +0 -153
- package/dist/daemon/registry.js.map +0 -1
- package/dist/daemon/rpc_child.d.ts +0 -194
- package/dist/daemon/rpc_child.js +0 -419
- package/dist/daemon/rpc_child.js.map +0 -1
- package/dist/daemon/supervisor.d.ts +0 -93
- package/dist/daemon/supervisor.js +0 -666
- package/dist/daemon/supervisor.js.map +0 -1
- /package/dist/bin/{supervisord.d.ts → launcher.d.ts} +0 -0
package/dist/launch.js
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { spawn, spawnSync, execFile } from "node:child_process";
|
|
2
|
+
import { basename, join } from "node:path";
|
|
3
|
+
import { existsSync, statSync } from "node:fs";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import { loadConfig } from "./config.js";
|
|
6
|
+
import { envLog } from "./session/debug_log.js";
|
|
7
|
+
/**
|
|
8
|
+
* Launch backends for remote `session_launch` — shared by the extension (index.ts)
|
|
9
|
+
* and the regime-2 launcher daemon. PTY-hosted backends exec `pi` cleanly (no
|
|
10
|
+
* keystrokes): `tmux` = a WINDOW in one shared named session; `herdr` =
|
|
11
|
+
* `workspace create` then `agent start --kind pi`. `rpc` is a fast-follow.
|
|
12
|
+
*/
|
|
13
|
+
/** Expand a leading `~`/`~/` to the extension machine's home dir. Node's `fs` does
|
|
14
|
+
* NOT expand `~`, so a launch cwd like `~/proj` would fail the existsSync
|
|
15
|
+
* check and silently abort the launch. Machine-side (the phone's `~` is
|
|
16
|
+
* meaningless here). Exported for tests. */
|
|
17
|
+
export function _expandTilde(p) {
|
|
18
|
+
if (p === "~")
|
|
19
|
+
return homedir();
|
|
20
|
+
if (p.startsWith("~/"))
|
|
21
|
+
return join(homedir(), p.slice(2));
|
|
22
|
+
return p;
|
|
23
|
+
}
|
|
24
|
+
/** Sanitize a tmux session name: keep it shell-safe and tmux-legal. */
|
|
25
|
+
function _safeTmuxName(name, fallback) {
|
|
26
|
+
const base = (name ?? "").trim() || fallback;
|
|
27
|
+
// tmux disallows `.` and `:` in session names; strip anything risky.
|
|
28
|
+
const clean = base
|
|
29
|
+
.replace(/[^A-Za-z0-9_-]+/g, "-")
|
|
30
|
+
.replace(/-{2,}/g, "-")
|
|
31
|
+
.replace(/^-+|-+$/g, "");
|
|
32
|
+
return clean.slice(0, 40) || "pi";
|
|
33
|
+
}
|
|
34
|
+
/** Build the argv for launching `pi` in `cwd` as a WINDOW of the shared tmux
|
|
35
|
+
* session `session` (one named session, a window per pi — clean `new-window`,
|
|
36
|
+
* NO keystrokes/prefix). First launch creates the detached session; later ones
|
|
37
|
+
* add a window. Array (never a shell string) so cwd/names can't inject.
|
|
38
|
+
* Exported for tests. */
|
|
39
|
+
/**
|
|
40
|
+
* argv for the tmux launch. The pi invocation carries `-n <name>` when the
|
|
41
|
+
* launch request named the session: pi's native session display name, which
|
|
42
|
+
* the extension reads back (piSessionName → resolveAgentName) so the mesh
|
|
43
|
+
* join, cwd lock, room_meta, and the app tile ALL show the requested name
|
|
44
|
+
* instead of the path-derived default. Per-process arg — never inherited by
|
|
45
|
+
* subagents or child processes. Exported for tests.
|
|
46
|
+
*/
|
|
47
|
+
export function _buildTmuxLaunchArgs(session, windowName, cwd, sessionExists, sessionName) {
|
|
48
|
+
const nameArgv = typeof sessionName === "string" && sessionName.trim().length > 0
|
|
49
|
+
? ["-n", sessionName.trim()]
|
|
50
|
+
: [];
|
|
51
|
+
return sessionExists
|
|
52
|
+
? [
|
|
53
|
+
"new-window",
|
|
54
|
+
"-t",
|
|
55
|
+
session,
|
|
56
|
+
"-n",
|
|
57
|
+
windowName,
|
|
58
|
+
"-c",
|
|
59
|
+
cwd,
|
|
60
|
+
"pi",
|
|
61
|
+
...nameArgv,
|
|
62
|
+
]
|
|
63
|
+
: [
|
|
64
|
+
"new-session",
|
|
65
|
+
"-d",
|
|
66
|
+
"-s",
|
|
67
|
+
session,
|
|
68
|
+
"-n",
|
|
69
|
+
windowName,
|
|
70
|
+
"-c",
|
|
71
|
+
cwd,
|
|
72
|
+
"pi",
|
|
73
|
+
...nameArgv,
|
|
74
|
+
];
|
|
75
|
+
}
|
|
76
|
+
/** Sanitize a herdr agent name: must match [a-z][a-z0-9_-]{0,31}. */
|
|
77
|
+
function _safeHerdrName(name, fallback) {
|
|
78
|
+
const base = (name ?? "").trim().toLowerCase() || fallback;
|
|
79
|
+
let clean = base
|
|
80
|
+
.replace(/[^a-z0-9_-]+/g, "-")
|
|
81
|
+
.replace(/-{2,}/g, "-")
|
|
82
|
+
.replace(/^-+|-+$/g, "");
|
|
83
|
+
if (!/^[a-z]/.test(clean))
|
|
84
|
+
clean = `pi-${clean}`;
|
|
85
|
+
return clean.slice(0, 32).replace(/-+$/g, "") || "pi";
|
|
86
|
+
}
|
|
87
|
+
/** argv for creating a detached herdr workspace in `cwd` (JSON response).
|
|
88
|
+
* ARRAY (never a shell string) so cwd/label can't inject. Exported for tests. */
|
|
89
|
+
export function _buildHerdrWorkspaceArgs(label, cwd) {
|
|
90
|
+
return [
|
|
91
|
+
"workspace",
|
|
92
|
+
"create",
|
|
93
|
+
"--cwd",
|
|
94
|
+
cwd,
|
|
95
|
+
"--label",
|
|
96
|
+
label,
|
|
97
|
+
"--no-focus",
|
|
98
|
+
"--json",
|
|
99
|
+
];
|
|
100
|
+
}
|
|
101
|
+
/** argv for exec-launching `pi` as a named herdr agent in an existing pane —
|
|
102
|
+
* herdr's canonical-executable launch (NOT keystroke injection). */
|
|
103
|
+
export function _buildHerdrAgentStartArgs(agentName, paneId) {
|
|
104
|
+
return ["agent", "start", agentName, "--kind", "pi", "--pane", paneId];
|
|
105
|
+
}
|
|
106
|
+
/** Extract `.result.root_pane.pane_id` from `herdr workspace create --json`. */
|
|
107
|
+
export function _herdrPaneIdFromCreate(stdout) {
|
|
108
|
+
try {
|
|
109
|
+
const j = JSON.parse(stdout);
|
|
110
|
+
const id = j.result?.root_pane?.pane_id;
|
|
111
|
+
return typeof id === "string" && id.length > 0 ? id : null;
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/** Is a launch backend's binary present on PATH? A `--version` probe: a missing
|
|
118
|
+
* binary (ENOENT) sets `error`; anything that runs counts as present. */
|
|
119
|
+
function _backendAvailable(backend) {
|
|
120
|
+
try {
|
|
121
|
+
return (spawnSync(backend, ["--version"], {
|
|
122
|
+
stdio: "ignore",
|
|
123
|
+
timeout: 5_000,
|
|
124
|
+
}).error === undefined);
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function _execFileCapture(cmd, args) {
|
|
131
|
+
return new Promise((resolve, reject) => {
|
|
132
|
+
execFile(cmd, args, { timeout: 15_000 }, (err, stdout) => {
|
|
133
|
+
if (err)
|
|
134
|
+
reject(err);
|
|
135
|
+
else
|
|
136
|
+
resolve(stdout);
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* herdr launch (clean exec, no keystrokes): create a detached workspace in
|
|
142
|
+
* `cwd`, then start `pi` as its agent via herdr's canonical-executable path
|
|
143
|
+
* (`agent start --kind pi`). Fire-and-forget — the launched pi joins the relay
|
|
144
|
+
* and the app attaches there; create/start errors are logged, not returned.
|
|
145
|
+
*/
|
|
146
|
+
async function _launchHerdr(cwd, agentName) {
|
|
147
|
+
try {
|
|
148
|
+
const created = await _execFileCapture("herdr", _buildHerdrWorkspaceArgs(agentName, cwd));
|
|
149
|
+
const paneId = _herdrPaneIdFromCreate(created);
|
|
150
|
+
if (!paneId) {
|
|
151
|
+
envLog("herdr launch: no root_pane_id in `workspace create` output");
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
await _execFileCapture("herdr", _buildHerdrAgentStartArgs(agentName, paneId));
|
|
155
|
+
envLog(`herdr launch: agent '${agentName}' started in pane ${paneId}`);
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
envLog(`herdr launch failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Honor a `session_launch` request. The caller checked the per-cwd opt-in and
|
|
163
|
+
* picked `mode` from `launch.backend` (machine config). PTY-hosted backends
|
|
164
|
+
* exec `pi` cleanly (no keystrokes): `tmux` = detached `new-session … pi`;
|
|
165
|
+
* `herdr` = `workspace create` then `agent start --kind pi`. `rpc` is a
|
|
166
|
+
* fast-follow (stubbed). Returns null when the launch is initiated, else an
|
|
167
|
+
* error string.
|
|
168
|
+
*/
|
|
169
|
+
export function _launchSession(mode, cwd, name) {
|
|
170
|
+
if (mode === "rpc")
|
|
171
|
+
return "launch mode 'rpc' is not supported yet";
|
|
172
|
+
if (mode !== "tmux" && mode !== "herdr") {
|
|
173
|
+
return `unknown launch mode '${mode}'`;
|
|
174
|
+
}
|
|
175
|
+
if (!existsSync(cwd) || !statSync(cwd).isDirectory()) {
|
|
176
|
+
return `cwd does not exist or is not a directory: ${cwd}`;
|
|
177
|
+
}
|
|
178
|
+
if (!_backendAvailable(mode)) {
|
|
179
|
+
return `launch backend '${mode}' is not installed`;
|
|
180
|
+
}
|
|
181
|
+
if (mode === "herdr") {
|
|
182
|
+
const agentName = _safeHerdrName(name, `pi-${basename(cwd) || "session"}`);
|
|
183
|
+
void _launchHerdr(cwd, agentName);
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
// One shared, named tmux session; each launch is a WINDOW in it (single
|
|
187
|
+
// attach point). Clean `new-window` via the CLI — never a prefix keystroke.
|
|
188
|
+
const session = _safeTmuxName(loadConfig().launch?.tmux_session, "un-bien");
|
|
189
|
+
const windowName = _safeTmuxName(name, `pi-${basename(cwd) || "session"}`);
|
|
190
|
+
// The raw name rides the pi argv (`-n`) — the extension resolves it as the
|
|
191
|
+
// session-scoped agent name (see resolveAgentName). herdr keeps the
|
|
192
|
+
// workspace-label-only plumbing until it can pass args through to pi.
|
|
193
|
+
const sessionExists = spawnSync("tmux", ["has-session", "-t", session], {
|
|
194
|
+
stdio: "ignore",
|
|
195
|
+
timeout: 5_000,
|
|
196
|
+
}).status === 0;
|
|
197
|
+
try {
|
|
198
|
+
const child = spawn("tmux", _buildTmuxLaunchArgs(session, windowName, cwd, sessionExists, name), { detached: true, stdio: "ignore" });
|
|
199
|
+
child.unref();
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
return `tmux launch failed: ${error instanceof Error ? error.message : String(error)}`;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=launch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { Buffer } from "node:buffer";
|
|
2
|
+
import { hostname, homedir } from "node:os";
|
|
3
|
+
import { RelayClient } from "../transport/relay_client.js";
|
|
4
|
+
import { PlainPeerChannel } from "../transport/peer_channel.js";
|
|
5
|
+
import { getOrCreateEd25519Keypair } from "../pairing/storage.js";
|
|
6
|
+
import { roomIdForControl } from "../rooms.js";
|
|
7
|
+
import { _findKnownPeer } from "../pairing/peer_trust.js";
|
|
8
|
+
import { _launchSession, _expandTilde } from "../launch.js";
|
|
9
|
+
import { helloEnvelope, isEnvelopeFrame, } from "../session/rpc_envelope.js";
|
|
10
|
+
import { loadConfig, resolveRelayUrl } from "../config.js";
|
|
11
|
+
import { loadLocalConfig, effectiveAllowRemoteLaunch, } from "../session/local_config.js";
|
|
12
|
+
import { envLog } from "../session/debug_log.js";
|
|
13
|
+
/**
|
|
14
|
+
* Regime-2 machine-launcher core (pi-INDEPENDENT — no pi SDK). A lightweight
|
|
15
|
+
* mesh peer that lets a paired app reach a machine with NO live pi session:
|
|
16
|
+
* it joins the machine-level control room (roomIdForControl), advertises the
|
|
17
|
+
* `remote_launch` capability, and on a `session_launch` frame spawns a
|
|
18
|
+
* tmux/herdr window via the shared launch module. Owner-auth reuses the extension's
|
|
19
|
+
* exact gate (relay verifies the peer's key; _findKnownPeer checks peers.json).
|
|
20
|
+
*
|
|
21
|
+
* NOT a pi process: no transcript/rpc/panels, no pairing (pairing happens once
|
|
22
|
+
* via any session extension's QR — the launcher only trusts already-paired owners).
|
|
23
|
+
*/
|
|
24
|
+
const RECONNECT_DELAY_MS = 3_000;
|
|
25
|
+
/** Caps the launcher daemon advertises: `remote_launch` gates the app's launch
|
|
26
|
+
* control; `is_daemon` marks the control room so the app filters it. */
|
|
27
|
+
const DAEMON_CAPS = ["remote_launch", "is_daemon"];
|
|
28
|
+
export async function startLauncher() {
|
|
29
|
+
const kp = await getOrCreateEd25519Keypair();
|
|
30
|
+
const epk = Buffer.from(kp.publicKey).toString("base64url");
|
|
31
|
+
const roomId = roomIdForControl(epk);
|
|
32
|
+
const resolution = resolveRelayUrl();
|
|
33
|
+
if (!resolution.url) {
|
|
34
|
+
throw new Error("un-bien launcher: no relay configured (set UNBIEN_RELAY or the `relay` config key)");
|
|
35
|
+
}
|
|
36
|
+
const relayUrl = resolution.url;
|
|
37
|
+
let stopped = false;
|
|
38
|
+
let relay = null;
|
|
39
|
+
// One in-flight reconnect chain, not N: `close` on the CURRENT relay and a
|
|
40
|
+
// failed connectOnce can both schedule; without the guard they multiply.
|
|
41
|
+
let reconnectTimer = null;
|
|
42
|
+
const channels = new Map();
|
|
43
|
+
/** The machine's configured launch backend (rpc is a fast-follow). */
|
|
44
|
+
function configuredBackend() {
|
|
45
|
+
return loadConfig().launch?.backend === "herdr" ? "herdr" : "tmux";
|
|
46
|
+
}
|
|
47
|
+
/** Liveness: answer a stock `ping` with `pong`, mirroring the extension's
|
|
48
|
+
* transport-control handler (index.ts) so a health check works against an
|
|
49
|
+
* idle machine too. Distinct from the `presence_status` caps PULL — this is
|
|
50
|
+
* the plain are-you-there reply, no caps. */
|
|
51
|
+
function handleStockMessage(msg, sender) {
|
|
52
|
+
if (msg.type === "ping") {
|
|
53
|
+
sender.send({
|
|
54
|
+
type: "pong",
|
|
55
|
+
in_reply_to: msg.id,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/** Handle a ub-frame from an attached owner. `presence_status` is the
|
|
60
|
+
* DAEMON-SPECIFIC caps PULL (design 01M1813Q) — reply with caps + hostname +
|
|
61
|
+
* backend. `session_launch` mirrors the extension's _routeUnBienPlaneFrom handler:
|
|
62
|
+
* per-cwd opt-in, machine-config backend, clean exec (no keystrokes). */
|
|
63
|
+
function handleUbFrame(env, sender) {
|
|
64
|
+
if (env.ub === undefined)
|
|
65
|
+
return;
|
|
66
|
+
const frame = env.ub;
|
|
67
|
+
if (frame.type === "presence_status") {
|
|
68
|
+
sender.sendEnvelope({
|
|
69
|
+
ub: {
|
|
70
|
+
type: "presence_status",
|
|
71
|
+
caps: [...DAEMON_CAPS],
|
|
72
|
+
hostname: hostname(),
|
|
73
|
+
backend: configuredBackend(),
|
|
74
|
+
...(typeof frame.id === "string" ? { in_reply_to: frame.id } : {}),
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (frame.type !== "session_launch")
|
|
80
|
+
return;
|
|
81
|
+
const cwd = _expandTilde(typeof frame.cwd === "string" && frame.cwd.length > 0
|
|
82
|
+
? frame.cwd
|
|
83
|
+
: process.cwd());
|
|
84
|
+
if (!effectiveAllowRemoteLaunch(loadLocalConfig(cwd))) {
|
|
85
|
+
envLog("launcher session_launch: remote launch disabled on this machine");
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const launchError = _launchSession(configuredBackend(), cwd, typeof frame.name === "string" ? frame.name : undefined);
|
|
89
|
+
if (launchError)
|
|
90
|
+
envLog(`launcher session_launch error: ${launchError}`);
|
|
91
|
+
}
|
|
92
|
+
async function gateAndAttach(r, peer, firstInner) {
|
|
93
|
+
const known = await _findKnownPeer(peer);
|
|
94
|
+
if (!known) {
|
|
95
|
+
// Relay-verified but not a paired owner (never paired / revoked). Signal
|
|
96
|
+
// so the app can react, mirroring the extension's unknown-peer reply.
|
|
97
|
+
try {
|
|
98
|
+
const errCt = Buffer.from(JSON.stringify({
|
|
99
|
+
type: "error",
|
|
100
|
+
code: "unknown_peer",
|
|
101
|
+
message: "Peer not paired — re-scan QR",
|
|
102
|
+
})).toString("base64");
|
|
103
|
+
r.send(JSON.stringify({ peer, ct: errCt }));
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
/* relay down — nothing to signal */
|
|
107
|
+
}
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (channels.has(peer))
|
|
111
|
+
return;
|
|
112
|
+
const channel = new PlainPeerChannel(r, peer, roomId, (msg) => handleStockMessage(msg, channel), // liveness ping->pong
|
|
113
|
+
() => channels.delete(peer), (env) => handleUbFrame(env, channel));
|
|
114
|
+
channels.set(peer, channel);
|
|
115
|
+
// Advertise machine caps up front so the app enables its launch control for
|
|
116
|
+
// this control room. No sessionId — the launcher has no pi session.
|
|
117
|
+
channel.sendEnvelope(helloEnvelope([...DAEMON_CAPS]));
|
|
118
|
+
envLog(`launcher: owner ${peer.slice(0, 8)} (${known.name}) attached; caps sent`);
|
|
119
|
+
// The channel didn't see the line that triggered the attach — route it.
|
|
120
|
+
if (isEnvelopeFrame(firstInner)) {
|
|
121
|
+
handleUbFrame(firstInner, channel);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function onMsg(r, line) {
|
|
125
|
+
let outer;
|
|
126
|
+
try {
|
|
127
|
+
outer = JSON.parse(line);
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (!outer.peer || !outer.ct)
|
|
133
|
+
return;
|
|
134
|
+
if (channels.has(outer.peer))
|
|
135
|
+
return; // its PlainPeerChannel handles routing
|
|
136
|
+
let inner;
|
|
137
|
+
try {
|
|
138
|
+
inner = JSON.parse(Buffer.from(outer.ct, "base64").toString("utf8"));
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (!inner || typeof inner !== "object")
|
|
144
|
+
return;
|
|
145
|
+
void gateAndAttach(r, outer.peer, inner);
|
|
146
|
+
}
|
|
147
|
+
function scheduleReconnect() {
|
|
148
|
+
if (stopped)
|
|
149
|
+
return;
|
|
150
|
+
if (reconnectTimer)
|
|
151
|
+
return; // a retry chain is already pending
|
|
152
|
+
reconnectTimer = setTimeout(() => {
|
|
153
|
+
reconnectTimer = null;
|
|
154
|
+
if (stopped)
|
|
155
|
+
return;
|
|
156
|
+
connectOnce().catch(() => scheduleReconnect());
|
|
157
|
+
}, RECONNECT_DELAY_MS);
|
|
158
|
+
}
|
|
159
|
+
async function connectOnce() {
|
|
160
|
+
const r = new RelayClient(relayUrl, kp);
|
|
161
|
+
relay = r;
|
|
162
|
+
r.on("message", (line) => onMsg(r, line));
|
|
163
|
+
r.on("close", () => {
|
|
164
|
+
channels.clear();
|
|
165
|
+
if (!stopped)
|
|
166
|
+
scheduleReconnect();
|
|
167
|
+
});
|
|
168
|
+
await r.connect({
|
|
169
|
+
roomId,
|
|
170
|
+
// caps ride room_meta so the app filters the control room from the announce.
|
|
171
|
+
roomMeta: { name: hostname(), cwd: homedir(), caps: [...DAEMON_CAPS] },
|
|
172
|
+
});
|
|
173
|
+
envLog(`launcher: connected to control room ${roomId} (epk ${epk.slice(0, 12)}…)`);
|
|
174
|
+
}
|
|
175
|
+
// A DAEMON must not die on a first-connect race: a profile `up` can start
|
|
176
|
+
// the launcher in the same breath as the relay, whose port may not be
|
|
177
|
+
// listening yet — a fatal initial connect made the launcher exit(1) and the
|
|
178
|
+
// sharedserver's health check merely WARN (the "tends to just die" symptom).
|
|
179
|
+
// Post-connect drops already retried; the INITIAL connect now does too.
|
|
180
|
+
try {
|
|
181
|
+
await connectOnce();
|
|
182
|
+
}
|
|
183
|
+
catch (err) {
|
|
184
|
+
envLog(`launcher: initial connect failed (${err instanceof Error ? err.message : String(err)}) — retrying every ${RECONNECT_DELAY_MS}ms`);
|
|
185
|
+
scheduleReconnect();
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
roomId,
|
|
189
|
+
epk,
|
|
190
|
+
stop() {
|
|
191
|
+
stopped = true;
|
|
192
|
+
if (reconnectTimer)
|
|
193
|
+
clearTimeout(reconnectTimer);
|
|
194
|
+
for (const ch of channels.values()) {
|
|
195
|
+
try {
|
|
196
|
+
ch.detach();
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
/* best-effort */
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
channels.clear();
|
|
203
|
+
relay?.close();
|
|
204
|
+
},
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=launcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/launcher/launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh_result.js","sourceRoot":"","sources":["../../src/mcp/mesh_result.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,mBAAmB,CAAC,EAAU,EAAE,GAAc;IAC5D,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,UAAU,CAAC,gBAAgB,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"mesh_result.js","sourceRoot":"","sources":["../../src/mcp/mesh_result.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,mBAAmB,CAAC,EAAU,EAAE,GAAc;IAC5D,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,UAAU,CAAC,gBAAgB,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAA;QACvD,KAAK,MAAM;YACT,OAAO,WAAW,CAChB,oBAAoB,EAAE,+CAA+C;gBACnE,yEAAyE;gBACzE,uEAAuE;gBACvE,sEAAsE,CACzE,CAAA;QACH,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;QAC3C,KAAK,SAAS;YACZ,OAAO,WAAW,CAAC,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,EAAU,EAAE,GAAc;IAC9C,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACtD,IAAI,GAAG,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;QACpC,OAAO,CACL,uCAAuC,EAAE,GAAG,WAAW,IAAI;YAC3D,mDAAmD,CACpD,CAAA;IACH,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QAClC,OAAO,CACL,mCAAmC,EAAE,GAAG,WAAW,IAAI;YACvD,mDAAmD,CACpD,CAAA;IACH,CAAC;IACD,OAAO,GAAG,EAAE,qBAAqB,CAAA;AACnC,CAAC;AAED,SAAS,aAAa,CAAC,EAAU,EAAE,GAAc;IAC/C,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACtD,OAAO,CACL,+CAA+C,EAAE,GAAG,WAAW,IAAI;YACnE,iDAAiD,CAClD,CAAA;IACH,CAAC;IACD,OAAO,eAAe,EAAE,kCAAkC,CAAA;AAC5D,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;AAC9C,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC7D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh_server.js","sourceRoot":"","sources":["../../src/mcp/mesh_server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,
|
|
1
|
+
{"version":3,"file":"mesh_server.js","sourceRoot":"","sources":["../../src/mcp/mesh_server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAqB,MAAM,wBAAwB,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,iFAAiF;AAEjF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACnC,4EAA4E;AAC5E,+EAA+E;AAC/E,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,2EAA2E;AAC3E,yEAAyE;AACzE,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;AACzD,IAAI,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;AAClD,IAAI,cAAc,GAAG,IAAI,CAAA;AAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;IACtC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACzC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAE,CAAA;IACpB,CAAC;SAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACjD,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5B,CAAC;SAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;QACtC,cAAc,GAAG,KAAK,CAAA;IACxB,CAAC;AACH,CAAC;AAED,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;AAClC,MAAM,UAAU,GAAG,aAAa,IAAI,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAA;AAC7E,4EAA4E;AAC5E,MAAM,WAAW,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAA;AACvD,MAAM,UAAU,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAA;AAYvD,MAAM,KAAK,GAAkB,EAAE,CAAA;AAE/B,iFAAiF;AAEjF,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAE,CAAA;AAE3C,8EAA8E;AAC9E,8EAA8E;AAC9E,8DAA8D;AAC9D,SAAS,MAAM,CAAC,GAAW;IACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,CAAA;AAC7D,CAAC;AAED,4EAA4E;AAC5E,0EAA0E;AAC1E,2EAA2E;AAC3E,0EAA0E;AAC1E,+EAA+E;AAC/E,yEAAyE;AACzE,6EAA6E;AAC7E,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;IAC1C,MAAM,CACJ,uBAAuB,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CACrG,CAAA;AACH,CAAC,CAAC,CAAA;AACF,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;IACtC,MAAM,CAAC,sBAAsB,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;AAC1D,CAAC,CAAC,CAAA;AAEF,6EAA6E;AAC7E,4EAA4E;AAC5E,IAAI,SAAS,GAAG,IAAI,CAAA;AACpB,IAAI,CAAC;IACH,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC;AAAC,MAAM,CAAC;IACP,gCAAgC;AAClC,CAAC;AAED,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC;IACxB,QAAQ,EAAE,WAAW;IACrB,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,SAAS,EAAE,8DAA8D;IAC9E,SAAS,EAAE,UAAU;IACrB,yEAAyE;IACzE,qEAAqE;IACrE,+DAA+D;IAC/D,GAAG,CAAC,cAAc,IAAI,QAAQ,KAAK,IAAI;QACrC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACrC,CAAC,CAAC,EAAE,CAAC;IACP,4EAA4E;IAC5E,yEAAyE;IACzE,GAAG,EAAE,GAAG,EAAE;QACR,WAAW;IACb,CAAC;CACF,CAAC,CAAA;AAEF,IAAI,SAAS,GAAG,KAAK,CAAA;AACrB,+EAA+E;AAC/E,8EAA8E;AAC9E,IAAI,cAAc,GAAG,yBAAyB,CAAA;AAE9C,iFAAiF;AAEjF,MAAM,GAAG,GAAG,IAAI,SAAS,CACvB,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,EAC1C;IACE,YAAY,EAAE,EAAE,YAAY,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE;IACxD,YAAY,EAAE;QACZ,mDAAmD,UAAU,IAAI;QACjE,+FAA+F;QAC/F,8CAA8C;QAC9C,mKAAmK;QACnK,kFAAkF;QAClF,mKAAmK;KACpK,CAAC,IAAI,CAAC,IAAI,CAAC;CACb,CACF,CAAA;AAED,SAAS,QAAQ;IACf,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,4BAA4B,cAAc,EAAE;aACnD;SACF;QACD,OAAO,EAAE,IAAI;KACd,CAAA;AACH,CAAC;AAED,GAAG,CAAC,YAAY,CACd,YAAY,EACZ;IACE,WAAW,EAAE,6DAA6D;IAC1E,WAAW,EAAE,EAAE;CAChB,EACD,KAAK,IAAI,EAAE;IACT,IAAI,CAAC,SAAS;QAAE,OAAO,QAAQ,EAAE,CAAA;IACjC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACpC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY;iBACzD;aACF;SACF,CAAA;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,sBAAsB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;aACnE;YACD,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;AACH,CAAC,CACF,CAAA;AAED,GAAG,CAAC,YAAY,CACd,YAAY,EACZ;IACE,WAAW,EACT,wEAAwE;IAC1E,WAAW,EAAE;QACX,EAAE,EAAE,CAAC;aACF,MAAM,EAAE;aACR,QAAQ,CACP,qHAAqH,CACtH;QACH,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC3D,EAAE,EAAE,CAAC;aACF,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,iDAAiD,CAAC;KAC/D;CACF,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;IACzB,IAAI,CAAC,SAAS;QAAE,OAAO,QAAQ,EAAE,CAAA;IACjC,IAAI,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAChD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;YACrE,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IACD,IAAI,CAAC;QACH,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC,CAAA;YACrC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAA;QACzE,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC,CAAA;QACxD,OAAO,mBAAmB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACrC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gBAAgB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACvE,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;AACH,CAAC,CACF,CAAA;AAED,GAAG,CAAC,YAAY,CACd,cAAc,EACd;IACE,WAAW,EACT,mGAAmG;IACrG,WAAW,EAAE,EAAE;CAChB,EACD,KAAK,IAAI,EAAE;IACT,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,CAAA;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACzG,CAAA;IACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAA;AAC3E,CAAC,CACF,CAAA;AAED,iFAAiF;AAEjF,SAAS,MAAM;IACb,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;AACjC,CAAC;AAED,6EAA6E;AAC7E,6EAA6E;AAC7E,+CAA+C;AAC/C,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,0EAA0E;AAC1E,+EAA+E;AAC/E,0EAA0E;AAC1E,iFAAiF;AACjF,MAAM,aAAa,GAAG,KAAK,CAAA;AAC3B,MAAM,iBAAiB,GAAG,CAAC,CAAA,CAAC,iDAAiD;AAC7E,IAAI,KAAK,GAAwB,IAAI,CAAA;AACrC,IAAI,eAAe,GAAyC,IAAI,CAAA;AAChE,IAAI,YAAY,GAAG,CAAC,CAAA;AACpB,IAAI,OAAO,GAAG,KAAK,CAAA;AACnB,IAAI,aAAa,GAAG,KAAK,CAAA;AAEzB,KAAK,UAAU,IAAI;IACjB,oEAAoE;IACpE,uEAAuE;IACvE,+DAA+D;IAC/D,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;QACrB,8DAA8D;QAC9D,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,yEAAyE;QACzE,8CAA8C;QAC9C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAM;QAEjE,MAAM,GAAG,GAAgB;YACvB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,EAAE,EAAE,MAAM,EAAE;SACb,CAAA;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACf,wEAAwE;QACxE,kFAAkF;QAClF,KAAK,GAAG,CAAC,MAAM;aACZ,YAAY,CAAC;YACZ,MAAM,EAAE,8BAA8B;YACtC,MAAM,EAAE;gBACN,OAAO,EAAE,mBAAmB,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aAC9E;SACF,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,2DAA2D;QAC7D,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,wEAAwE;IACxE,2EAA2E;IAC3E,wEAAwE;IACxE,4DAA4D;IAC5D,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAA;IAC5B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACjC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACnC,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAE5B,yEAAyE;IACzE,mEAAmE;IACnE,wEAAwE;IACxE,4EAA4E;IAC5E,2EAA2E;IAC3E,0EAA0E;IAC1E,oEAAoE;IACpE,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAC3D,uEAAuE;QACvE,4EAA4E;QAC5E,KAAK,WAAW,EAAE,CAAA;IACpB,CAAC;SAAM,CAAC;QACN,cAAc;YACZ,sEAAsE;gBACtE,2CAA2C,CAAA;IAC/C,CAAC;AACH,CAAC;AAED;;2EAE2E;AAC3E,KAAK,UAAU,WAAW;IACxB,IAAI,OAAO,IAAI,aAAa;QAAE,OAAM;IAEpC,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,YAAY,EAAE,CAAA;QACd,IAAI,YAAY,IAAI,iBAAiB,EAAE,CAAC;YACtC,SAAS,CACP,yDAAyD,GAAG,CAAC,QAAQ,GAAG,CACzE,CAAA;QACH,CAAC;QACD,cAAc,GAAG,qBAAqB,GAAG,CAAC,QAAQ,cAAc,YAAY,IAAI,iBAAiB,EAAE,CAAA;QACnG,kBAAkB,CAAC,aAAa,CAAC,CAAA;QACjC,OAAM;IACR,CAAC;IACD,KAAK,GAAG,GAAG,CAAA;IAEX,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACpB,SAAS,GAAG,IAAI,CAAA;QAChB,OAAO,GAAG,IAAI,CAAA;QACd,YAAY,GAAG,CAAC,CAAA;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,2EAA2E;QAC3E,mEAAmE;QACnE,YAAY,EAAE,CAAA;QACd,IAAI,CAAC;YACH,KAAK,CAAC,OAAO,EAAE,CAAA;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;QACD,KAAK,GAAG,IAAI,CAAA;QACZ,IAAI,YAAY,IAAI,iBAAiB,EAAE,CAAC;YACtC,SAAS,CAAC,qBAAqB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC7C,CAAC;QACD,cAAc,GAAG,6BAA6B,YAAY,IAAI,iBAAiB,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;QAChG,kBAAkB,CAAC,aAAa,CAAC,CAAA;IACnC,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,IAAI,eAAe,IAAI,OAAO,IAAI,aAAa;QAAE,OAAM;IACvD,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;QACxB,eAAe,GAAG,IAAI,CAAA;QACtB,KAAK,WAAW,EAAE,CAAA;IACpB,CAAC,EAAE,OAAO,CAAC,CAAA;IACX,2EAA2E;IAC3E,CAAC,CAAC,KAAK,EAAE,EAAE,CAAA;IACX,eAAe,GAAG,CAAC,CAAA;AACrB,CAAC;AAED;qEACqE;AACrE,SAAS,SAAS,CAAC,MAAc;IAC/B,MAAM,CACJ,UAAU,MAAM,4CAA4C,IAAI,IAAI;QAClE,sEAAsE;QACtE,6DAA6D;QAC7D,uEAAuE,CAC1E,CAAA;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,wEAAwE;AACxE,0EAA0E;AAC1E,SAAS,QAAQ;IACf,IAAI,aAAa;QAAE,OAAM;IACzB,aAAa,GAAG,IAAI,CAAA;IACpB,IAAI,eAAe,EAAE,CAAC;QACpB,YAAY,CAAC,eAAe,CAAC,CAAA;QAC7B,eAAe,GAAG,IAAI,CAAA;IACxB,CAAC;IACD,IAAI,CAAC;QACH,KAAK,EAAE,OAAO,EAAE,CAAA;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;IAC5C,CAAC;IACD,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;SAC/B,KAAK,CAAC,GAAG,EAAE;QACV,iBAAiB;IACnB,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
package/dist/mesh/canonical.js
CHANGED
|
@@ -40,7 +40,7 @@ export function canonicalize(value) {
|
|
|
40
40
|
return JSON.stringify(value);
|
|
41
41
|
if (Array.isArray(value)) {
|
|
42
42
|
// Inside arrays, undefined → null (mirrors JSON.stringify).
|
|
43
|
-
const items = value.map((v) => v === undefined ? "null" : canonicalize(v));
|
|
43
|
+
const items = value.map((v) => (v === undefined ? "null" : canonicalize(v)));
|
|
44
44
|
return "[" + items.join(",") + "]";
|
|
45
45
|
}
|
|
46
46
|
if (typeof value === "object") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../src/mesh/canonical.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../src/mesh/canonical.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAA;IACjC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;IAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;QACxE,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,4DAA4D;QAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5E,OAAO,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACpC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAgC,CAAA;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;aACnC,IAAI,EAAE,CAAA;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACtD,CAAA;QACD,OAAO,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACpC,CAAC;IACD,uEAAuE;IACvE,4DAA4D;IAC5D,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAA;AAEtC,6EAA6E;AAC7E,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;AACjD,CAAC"}
|
package/dist/mesh/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/mesh/client.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAChC,IAAI,GAAG,2BAA2B,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/mesh/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/mesh/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/mesh/encoding.ts"],"names":[],"mappings":"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"}
|