zcode-acp-server 0.65.0 → 0.65.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/README.md
CHANGED
|
@@ -289,7 +289,7 @@ Thanks to everyone who has contributed (updated automatically from the
|
|
|
289
289
|
<a href="https://github.com/william0wang/zcode-acp/graphs/contributors">
|
|
290
290
|
<!-- release-please re-stamps &v= on every release: the new URL busts the
|
|
291
291
|
contrib.rocks and GitHub camo image caches. -->
|
|
292
|
-
<img src="https://contrib.rocks/image?repo=william0wang/zcode-acp&v=0.65.
|
|
292
|
+
<img src="https://contrib.rocks/image?repo=william0wang/zcode-acp&v=0.65.1" alt="Contributors" /> <!-- x-release-please-version -->
|
|
293
293
|
</a>
|
|
294
294
|
|
|
295
295
|
## Related Projects
|
|
@@ -24,8 +24,9 @@ export declare const HUB_LAUNCH_LABEL = "com.zcode.acp.hub";
|
|
|
24
24
|
/** Whether this process was born inside our Seatbelt wrap. */
|
|
25
25
|
export declare function sandboxBorn(env?: NodeJS.ProcessEnv): boolean;
|
|
26
26
|
/**
|
|
27
|
-
* The LaunchAgent plist body: run the hub entry under this node, with
|
|
28
|
-
* process's env
|
|
27
|
+
* The LaunchAgent plist body: run the hub entry under this node, with an
|
|
28
|
+
* ALLOWLISTED copy of this process's env (see relaunchEnv — never the raw
|
|
29
|
+
* environment) minus the birth marker (so the relaunched hub does not
|
|
29
30
|
* re-trigger). RunAtLoad/KeepAlive stay false — the hub is started exactly
|
|
30
31
|
* once, now, via kickstart; if it dies the bridges re-spawn it (the existing
|
|
31
32
|
* machine-singleton behaviour).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub-sandbox.d.ts","sourceRoot":"","sources":["../../src/remote/hub-sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAE7D,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AAEpD,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEzE;
|
|
1
|
+
{"version":3,"file":"hub-sandbox.d.ts","sourceRoot":"","sources":["../../src/remote/hub-sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAE7D,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AAEpD,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEzE;AA6CD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,sEAAsE;IACtE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CA+BT;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,sEAAsE;IACtE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CA6DV"}
|
|
@@ -39,14 +39,48 @@ function xmlEscape(s) {
|
|
|
39
39
|
.replace(/"/g, """);
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
42
|
+
* Env the relaunched hub actually needs: identity/path/locale basics plus
|
|
43
|
+
* every ZCODE_* setting (token/ports included — the hub may be
|
|
44
|
+
* env-configured, and the plist is written 0600). Everything else is
|
|
45
|
+
* dropped: `process.env` carries shell secrets (API keys, tokens) that have
|
|
46
|
+
* no business sitting in a plist file, and serve bridges re-complete their
|
|
47
|
+
* env from the login shell at startup anyway, so a lean hub env is all the
|
|
48
|
+
* relaunch requires.
|
|
49
|
+
*/
|
|
50
|
+
const RELAUNCH_ENV_KEYS = new Set([
|
|
51
|
+
"HOME",
|
|
52
|
+
"PATH",
|
|
53
|
+
"TMPDIR",
|
|
54
|
+
"LANG",
|
|
55
|
+
"USER",
|
|
56
|
+
"LOGNAME",
|
|
57
|
+
"SHELL",
|
|
58
|
+
"TZ",
|
|
59
|
+
"XDG_CONFIG_HOME",
|
|
60
|
+
"XDG_DATA_HOME",
|
|
61
|
+
"XDG_CACHE_HOME",
|
|
62
|
+
]);
|
|
63
|
+
function relaunchEnv(env) {
|
|
64
|
+
const out = {};
|
|
65
|
+
for (const [k, v] of Object.entries(env)) {
|
|
66
|
+
if (k === SANDBOX_ACTIVE_ENV)
|
|
67
|
+
continue;
|
|
68
|
+
if (RELAUNCH_ENV_KEYS.has(k) || k.startsWith("ZCODE_") || k.startsWith("LC_")) {
|
|
69
|
+
out[k] = v;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return out;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The LaunchAgent plist body: run the hub entry under this node, with an
|
|
76
|
+
* ALLOWLISTED copy of this process's env (see relaunchEnv — never the raw
|
|
77
|
+
* environment) minus the birth marker (so the relaunched hub does not
|
|
44
78
|
* re-trigger). RunAtLoad/KeepAlive stay false — the hub is started exactly
|
|
45
79
|
* once, now, via kickstart; if it dies the bridges re-spawn it (the existing
|
|
46
80
|
* machine-singleton behaviour).
|
|
47
81
|
*/
|
|
48
82
|
export function buildHubRelaunchPlist(opts) {
|
|
49
|
-
const envEntries = Object.entries(opts.env)
|
|
83
|
+
const envEntries = Object.entries(relaunchEnv(opts.env));
|
|
50
84
|
const pair = ([k, v]) => ` <key>${xmlEscape(k)}</key>\n <string>${xmlEscape(String(v))}</string>`;
|
|
51
85
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
52
86
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
@@ -96,7 +130,11 @@ export function selfRelaunchOutsideSandbox(opts) {
|
|
|
96
130
|
const dir = mkdtempSync(path.join(tmpdir(), "zcode-hub-relaunch-"));
|
|
97
131
|
const logPath = opts.logPath ?? path.join(dir, "hub.log");
|
|
98
132
|
const plistPath = path.join(dir, "hub.plist");
|
|
99
|
-
|
|
133
|
+
// 0600: the plist carries the hub's env (token incl.) — group/world must
|
|
134
|
+
// not read it, even though the mkdtemp dir itself is already 0700.
|
|
135
|
+
writeFileSync(plistPath, buildHubRelaunchPlist({ ...opts, env: process.env, logPath }), {
|
|
136
|
+
mode: 0o600,
|
|
137
|
+
});
|
|
100
138
|
const domain = `gui/${process.getuid?.() ?? 0}`;
|
|
101
139
|
const target = `${domain}/${HUB_LAUNCH_LABEL}`;
|
|
102
140
|
// Best-effort cleanup of the PREVIOUS attempt's dir (plist + log); the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub-sandbox.js","sourceRoot":"","sources":["../../src/remote/hub-sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAE7D,oFAAoF;AACpF,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAEpD,8DAA8D;AAC9D,MAAM,UAAU,WAAW,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC9D,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AACxF,CAAC;AAED,+EAA+E;AAC/E,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"hub-sandbox.js","sourceRoot":"","sources":["../../src/remote/hub-sandbox.ts"],"names":[],"mappings":"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"}
|