aicodeman 1.9.6 → 1.9.8
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 +1 -1
- package/dist/config/dependency-registry.d.ts.map +1 -1
- package/dist/config/dependency-registry.js +8 -0
- package/dist/config/dependency-registry.js.map +1 -1
- package/dist/docker-hosts.d.ts.map +1 -1
- package/dist/docker-hosts.js +1 -0
- package/dist/docker-hosts.js.map +1 -1
- package/dist/mux-interface.d.ts +3 -1
- package/dist/mux-interface.d.ts.map +1 -1
- package/dist/remote-hosts.d.ts.map +1 -1
- package/dist/remote-hosts.js +1 -0
- package/dist/remote-hosts.js.map +1 -1
- package/dist/session.d.ts +6 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +27 -12
- package/dist/session.js.map +1 -1
- package/dist/tmux-manager.d.ts +2 -1
- package/dist/tmux-manager.d.ts.map +1 -1
- package/dist/tmux-manager.js +46 -5
- package/dist/tmux-manager.js.map +1 -1
- package/dist/types/session.d.ts +16 -4
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js +2 -1
- package/dist/types/session.js.map +1 -1
- package/dist/utils/antigravity-cli-resolver.d.ts +20 -0
- package/dist/utils/antigravity-cli-resolver.d.ts.map +1 -0
- package/dist/utils/antigravity-cli-resolver.js +60 -0
- package/dist/utils/antigravity-cli-resolver.js.map +1 -0
- package/dist/utils/claude-cli-resolver.d.ts +11 -0
- package/dist/utils/claude-cli-resolver.d.ts.map +1 -1
- package/dist/utils/claude-cli-resolver.js +14 -0
- package/dist/utils/claude-cli-resolver.js.map +1 -1
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/node-pty-repair.d.ts +62 -0
- package/dist/utils/node-pty-repair.d.ts.map +1 -0
- package/dist/utils/node-pty-repair.js +149 -0
- package/dist/utils/node-pty-repair.js.map +1 -0
- package/dist/web/public/admin-ui.js.gz +0 -0
- package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
- package/dist/web/public/{app.adc992cd.js → app.67693130.js} +6 -6
- package/dist/web/public/app.67693130.js.br +0 -0
- package/dist/web/public/app.67693130.js.gz +0 -0
- package/dist/web/public/constants.e7175b95.js.gz +0 -0
- package/dist/web/public/cron-ui.js.gz +0 -0
- package/dist/web/public/entrance-animations.js +754 -0
- package/dist/web/public/entrance-animations.js.br +0 -0
- package/dist/web/public/entrance-animations.js.gz +0 -0
- package/dist/web/public/i18n.8a202f9d.js +1 -0
- package/dist/web/public/i18n.8a202f9d.js.br +0 -0
- package/dist/web/public/i18n.8a202f9d.js.gz +0 -0
- package/dist/web/public/image-input.ee16ad88.js.gz +0 -0
- package/dist/web/public/index.html +46 -10
- package/dist/web/public/index.html.br +0 -0
- package/dist/web/public/index.html.gz +0 -0
- package/dist/web/public/input-cjk.63794d0b.js.gz +0 -0
- package/dist/web/public/keyboard-accessory.9936227d.js.gz +0 -0
- package/dist/web/public/mobile-handlers.bc2b8c1d.js.gz +0 -0
- package/dist/web/public/mobile-overview.js +684 -0
- package/dist/web/public/mobile-overview.js.br +0 -0
- package/dist/web/public/mobile-overview.js.gz +0 -0
- package/dist/web/public/mobile.e56d787a.css +1 -0
- package/dist/web/public/mobile.e56d787a.css.br +0 -0
- package/dist/web/public/mobile.e56d787a.css.gz +0 -0
- package/dist/web/public/notification-manager.5d229063.js.gz +0 -0
- package/dist/web/public/orchestrator-panel.js.gz +0 -0
- package/dist/web/public/{panels-ui.3910e1e2.js → panels-ui.600881ae.js} +17 -17
- package/dist/web/public/panels-ui.600881ae.js.br +0 -0
- package/dist/web/public/panels-ui.600881ae.js.gz +0 -0
- package/dist/web/public/ralph-panel.6de2d0f8.js.gz +0 -0
- package/dist/web/public/ralph-wizard.13a1831e.js.gz +0 -0
- package/dist/web/public/respawn-ui.2d249da9.js.gz +0 -0
- package/dist/web/public/sanitize-html.bc7078d6.js.gz +0 -0
- package/dist/web/public/{session-ui.2d3541c6.js → session-ui.dbc88443.js} +3 -3
- package/dist/web/public/session-ui.dbc88443.js.br +0 -0
- package/dist/web/public/session-ui.dbc88443.js.gz +0 -0
- package/dist/web/public/settings-ui.726e1c19.js +67 -0
- package/dist/web/public/settings-ui.726e1c19.js.br +0 -0
- package/dist/web/public/settings-ui.726e1c19.js.gz +0 -0
- package/dist/web/public/styles.7e638f69.css +1 -0
- package/dist/web/public/styles.7e638f69.css.br +0 -0
- package/dist/web/public/styles.7e638f69.css.gz +0 -0
- package/dist/web/public/{subagent-windows.69b60c35.js → subagent-windows.4cc8b005.js} +27 -3
- package/dist/web/public/subagent-windows.4cc8b005.js.br +0 -0
- package/dist/web/public/subagent-windows.4cc8b005.js.gz +0 -0
- package/dist/web/public/sw.js.gz +0 -0
- package/dist/web/public/terminal-ui.edf4d683.js +3 -0
- package/dist/web/public/terminal-ui.edf4d683.js.br +0 -0
- package/dist/web/public/terminal-ui.edf4d683.js.gz +0 -0
- package/dist/web/public/ultracode-panel.js.gz +0 -0
- package/dist/web/public/ultracode-windows.js +4 -0
- package/dist/web/public/ultracode-windows.js.br +0 -0
- package/dist/web/public/ultracode-windows.js.gz +0 -0
- package/dist/web/public/upload.html.gz +0 -0
- package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
- package/dist/web/public/vendor/marked.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-zerolag-input.137ad9f0.js.gz +0 -0
- package/dist/web/public/vendor/xterm.css.gz +0 -0
- package/dist/web/public/vendor/xterm.min.js.gz +0 -0
- package/dist/web/public/voice-input.085e9e73.js.gz +0 -0
- package/dist/web/public/webview-tabs.js.gz +0 -0
- package/dist/web/routes/session-routes.d.ts.map +1 -1
- package/dist/web/routes/session-routes.js +59 -25
- package/dist/web/routes/session-routes.js.map +1 -1
- package/dist/web/routes/system-routes.d.ts.map +1 -1
- package/dist/web/routes/system-routes.js +9 -1
- package/dist/web/routes/system-routes.js.map +1 -1
- package/dist/web/schemas.d.ts +16 -0
- package/dist/web/schemas.d.ts.map +1 -1
- package/dist/web/schemas.js +24 -5
- package/dist/web/schemas.js.map +1 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +1 -0
- package/dist/web/server.js.map +1 -1
- package/package.json +3 -1
- package/scripts/fix-node-pty.mjs +261 -0
- package/scripts/postinstall.js +21 -24
- package/dist/web/public/app.adc992cd.js.br +0 -0
- package/dist/web/public/app.adc992cd.js.gz +0 -0
- package/dist/web/public/i18n.4dcf1b87.js +0 -1
- package/dist/web/public/i18n.4dcf1b87.js.br +0 -0
- package/dist/web/public/i18n.4dcf1b87.js.gz +0 -0
- package/dist/web/public/mobile.40e2d64e.css +0 -1
- package/dist/web/public/mobile.40e2d64e.css.br +0 -0
- package/dist/web/public/mobile.40e2d64e.css.gz +0 -0
- package/dist/web/public/panels-ui.3910e1e2.js.br +0 -0
- package/dist/web/public/panels-ui.3910e1e2.js.gz +0 -0
- package/dist/web/public/session-ui.2d3541c6.js.br +0 -0
- package/dist/web/public/session-ui.2d3541c6.js.gz +0 -0
- package/dist/web/public/settings-ui.08c08e71.js +0 -67
- package/dist/web/public/settings-ui.08c08e71.js.br +0 -0
- package/dist/web/public/settings-ui.08c08e71.js.gz +0 -0
- package/dist/web/public/styles.30e64547.css +0 -1
- package/dist/web/public/styles.30e64547.css.br +0 -0
- package/dist/web/public/styles.30e64547.css.gz +0 -0
- package/dist/web/public/subagent-windows.69b60c35.js.br +0 -0
- package/dist/web/public/subagent-windows.69b60c35.js.gz +0 -0
- package/dist/web/public/terminal-ui.f3a51974.js +0 -3
- package/dist/web/public/terminal-ui.f3a51974.js.br +0 -0
- package/dist/web/public/terminal-ui.f3a51974.js.gz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-cli-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/claude-cli-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoBH;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAwB7C;AAKD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAazC;AAKD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAyBnD"}
|
|
1
|
+
{"version":3,"file":"claude-cli-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/claude-cli-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoBH;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAwB7C;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAKD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAazC;AAKD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAyBnD"}
|
|
@@ -53,6 +53,20 @@ export function findClaudeDir() {
|
|
|
53
53
|
_claudeDir = ''; // mark as searched, not found
|
|
54
54
|
return null;
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Returns an absolute path to the `claude` binary, falling back to the bare
|
|
58
|
+
* name `'claude'` when it cannot be located (so PATH resolution still gets a
|
|
59
|
+
* chance).
|
|
60
|
+
*
|
|
61
|
+
* Preferred over passing `'claude'` to `pty.spawn()`: a PTY child resolves the
|
|
62
|
+
* command against the environment it is handed, and an install that lives in
|
|
63
|
+
* `~/.local/bin` or `~/.claude/local` is frequently absent from the PATH the
|
|
64
|
+
* server process inherited (issue #6).
|
|
65
|
+
*/
|
|
66
|
+
export function getClaudeBinaryPath() {
|
|
67
|
+
const dir = findClaudeDir();
|
|
68
|
+
return dir ? join(dir, 'claude') : 'claude';
|
|
69
|
+
}
|
|
56
70
|
/** Cached augmented PATH string */
|
|
57
71
|
let _augmentedPath = null;
|
|
58
72
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-cli-resolver.js","sourceRoot":"","sources":["../../src/utils/claude-cli-resolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-cli-resolver.js","sourceRoot":"","sources":["../../src/utils/claude-cli-resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -17,8 +17,10 @@ export { isSafePushEndpoint } from './push-endpoint-validation.js';
|
|
|
17
17
|
export { stringSimilarity, fuzzyPhraseMatch, todoContentHash } from './string-similarity.js';
|
|
18
18
|
export { assertNever } from './type-safety.js';
|
|
19
19
|
export { wrapWithNice } from './nice-wrapper.js';
|
|
20
|
-
export { findClaudeDir, getAugmentedPath, getClaudeCliVersion } from './claude-cli-resolver.js';
|
|
20
|
+
export { findClaudeDir, getAugmentedPath, getClaudeCliVersion, getClaudeBinaryPath } from './claude-cli-resolver.js';
|
|
21
|
+
export { spawnPtyWithHelperRepair } from './node-pty-repair.js';
|
|
21
22
|
export { resolveOpenCodeDir } from './opencode-cli-resolver.js';
|
|
22
23
|
export { resolveCodexDir, isCodexAvailable } from './codex-cli-resolver.js';
|
|
23
24
|
export { resolveGeminiDir, isGeminiAvailable } from './gemini-cli-resolver.js';
|
|
25
|
+
export { resolveAntigravityDir, isAntigravityAvailable } from './antigravity-cli-resolver.js';
|
|
24
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACrH,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -16,8 +16,10 @@ export { isSafePushEndpoint } from './push-endpoint-validation.js';
|
|
|
16
16
|
export { stringSimilarity, fuzzyPhraseMatch, todoContentHash } from './string-similarity.js';
|
|
17
17
|
export { assertNever } from './type-safety.js';
|
|
18
18
|
export { wrapWithNice } from './nice-wrapper.js';
|
|
19
|
-
export { findClaudeDir, getAugmentedPath, getClaudeCliVersion } from './claude-cli-resolver.js';
|
|
19
|
+
export { findClaudeDir, getAugmentedPath, getClaudeCliVersion, getClaudeBinaryPath } from './claude-cli-resolver.js';
|
|
20
|
+
export { spawnPtyWithHelperRepair } from './node-pty-repair.js';
|
|
20
21
|
export { resolveOpenCodeDir } from './opencode-cli-resolver.js';
|
|
21
22
|
export { resolveCodexDir, isCodexAvailable } from './codex-cli-resolver.js';
|
|
22
23
|
export { resolveGeminiDir, isGeminiAvailable } from './gemini-cli-resolver.js';
|
|
24
|
+
export { resolveAntigravityDir, isAntigravityAvailable } from './antigravity-cli-resolver.js';
|
|
23
25
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACrH,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Runtime self-heal for node-pty's macOS `spawn-helper`.
|
|
3
|
+
*
|
|
4
|
+
* node-pty@1.1.0 ships its macOS prebuilt helper as
|
|
5
|
+
* `prebuilds/darwin-<arch>/spawn-helper` with mode 0644 (no execute bit). On
|
|
6
|
+
* macOS every PTY is launched through that helper via posix_spawnp, so a
|
|
7
|
+
* non-executable helper turns every session start into
|
|
8
|
+
* `Error: posix_spawnp failed.` (issues #6 and #204). The bug is macOS-only:
|
|
9
|
+
* `spawn-helper` is an `OS=="mac"` gyp target and pty.cc only spawns it under
|
|
10
|
+
* `#if defined(__APPLE__)`, and node-pty ships no Linux prebuild, so Linux always
|
|
11
|
+
* compiles a correctly-permissioned helper from source.
|
|
12
|
+
*
|
|
13
|
+
* `scripts/fix-node-pty.mjs` fixes this at install time. This module is the
|
|
14
|
+
* safety net for installs that are already broken: the first PTY spawn that
|
|
15
|
+
* fails this way is repaired and retried in-process, so the user never sees a
|
|
16
|
+
* dead session. If the retry still fails, the thrown error carries the manual
|
|
17
|
+
* repair command instead of a bare "posix_spawnp failed".
|
|
18
|
+
*
|
|
19
|
+
* @module utils/node-pty-repair
|
|
20
|
+
*/
|
|
21
|
+
/** The one-line fix appended to errors we could not repair automatically. */
|
|
22
|
+
export declare const SPAWN_HELPER_FIX_HINT: string;
|
|
23
|
+
/**
|
|
24
|
+
* True when an error is node-pty failing to launch its spawn-helper.
|
|
25
|
+
*
|
|
26
|
+
* The native throw site is `throw Napi::Error::New(napiEnv, "posix_spawnp failed.")`
|
|
27
|
+
* in pty.cc, reached only on Apple platforms.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isSpawnHelperFailure(err: unknown): boolean;
|
|
30
|
+
/** Locates the installed node-pty package root, or null when it can't be resolved. */
|
|
31
|
+
export declare function findNodePtyDir(): string | null;
|
|
32
|
+
/**
|
|
33
|
+
* Lists every `spawn-helper` present in a node-pty install.
|
|
34
|
+
*
|
|
35
|
+
* node-pty's loader checks `build/Release`, `build/Debug`, then
|
|
36
|
+
* `prebuilds/<platform>-<arch>`, and takes the helper from whichever directory
|
|
37
|
+
* the native module loaded out of, so every copy has to be executable, not just
|
|
38
|
+
* the one this machine happens to use.
|
|
39
|
+
*/
|
|
40
|
+
export declare function listSpawnHelpers(ptyDir: string): string[];
|
|
41
|
+
/**
|
|
42
|
+
* Adds the execute bit to every `spawn-helper` missing it.
|
|
43
|
+
*
|
|
44
|
+
* @param ptyDir - node-pty package root; resolved automatically when omitted.
|
|
45
|
+
* @returns Paths actually changed (empty when nothing needed repair, or node-pty
|
|
46
|
+
* is missing, or the files are not writable).
|
|
47
|
+
*/
|
|
48
|
+
export declare function repairSpawnHelperPermissions(ptyDir?: string): string[];
|
|
49
|
+
/**
|
|
50
|
+
* Runs a `pty.spawn()` call, repairing a non-executable spawn-helper and
|
|
51
|
+
* retrying once if that is why it failed.
|
|
52
|
+
*
|
|
53
|
+
* Any unrelated spawn error is rethrown untouched, so this stays invisible on
|
|
54
|
+
* every platform but a broken macOS install.
|
|
55
|
+
*
|
|
56
|
+
* @param spawn - The `pty.spawn(...)` call to run.
|
|
57
|
+
* @param ptyDir - node-pty package root; resolved automatically when omitted.
|
|
58
|
+
*/
|
|
59
|
+
export declare function spawnPtyWithHelperRepair<T>(spawn: () => T, ptyDir?: string): T;
|
|
60
|
+
/** Test seam: forget that a repair was already attempted in this process. */
|
|
61
|
+
export declare function resetSpawnHelperRepairState(): void;
|
|
62
|
+
//# sourceMappingURL=node-pty-repair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-pty-repair.d.ts","sourceRoot":"","sources":["../../src/utils/node-pty-repair.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,QAE+B,CAAC;AAKlE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAG1D;AAED,sFAAsF;AACtF,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAc9C;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAezD;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBtE;AAQD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAkB9E;AAED,6EAA6E;AAC7E,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Runtime self-heal for node-pty's macOS `spawn-helper`.
|
|
3
|
+
*
|
|
4
|
+
* node-pty@1.1.0 ships its macOS prebuilt helper as
|
|
5
|
+
* `prebuilds/darwin-<arch>/spawn-helper` with mode 0644 (no execute bit). On
|
|
6
|
+
* macOS every PTY is launched through that helper via posix_spawnp, so a
|
|
7
|
+
* non-executable helper turns every session start into
|
|
8
|
+
* `Error: posix_spawnp failed.` (issues #6 and #204). The bug is macOS-only:
|
|
9
|
+
* `spawn-helper` is an `OS=="mac"` gyp target and pty.cc only spawns it under
|
|
10
|
+
* `#if defined(__APPLE__)`, and node-pty ships no Linux prebuild, so Linux always
|
|
11
|
+
* compiles a correctly-permissioned helper from source.
|
|
12
|
+
*
|
|
13
|
+
* `scripts/fix-node-pty.mjs` fixes this at install time. This module is the
|
|
14
|
+
* safety net for installs that are already broken: the first PTY spawn that
|
|
15
|
+
* fails this way is repaired and retried in-process, so the user never sees a
|
|
16
|
+
* dead session. If the retry still fails, the thrown error carries the manual
|
|
17
|
+
* repair command instead of a bare "posix_spawnp failed".
|
|
18
|
+
*
|
|
19
|
+
* @module utils/node-pty-repair
|
|
20
|
+
*/
|
|
21
|
+
import { chmodSync, existsSync, readdirSync, statSync } from 'node:fs';
|
|
22
|
+
import { createRequire } from 'node:module';
|
|
23
|
+
import { dirname, join } from 'node:path';
|
|
24
|
+
const require = createRequire(import.meta.url);
|
|
25
|
+
/** The one-line fix appended to errors we could not repair automatically. */
|
|
26
|
+
export const SPAWN_HELPER_FIX_HINT = 'node-pty cannot execute its spawn-helper. Repair it with: npm run fix:node-pty ' +
|
|
27
|
+
'(or: chmod +x node_modules/node-pty/prebuilds/*/spawn-helper)';
|
|
28
|
+
/** Set once a repair has been attempted, so a genuinely broken install cannot chmod-storm. */
|
|
29
|
+
let repairAttempted = false;
|
|
30
|
+
/**
|
|
31
|
+
* True when an error is node-pty failing to launch its spawn-helper.
|
|
32
|
+
*
|
|
33
|
+
* The native throw site is `throw Napi::Error::New(napiEnv, "posix_spawnp failed.")`
|
|
34
|
+
* in pty.cc, reached only on Apple platforms.
|
|
35
|
+
*/
|
|
36
|
+
export function isSpawnHelperFailure(err) {
|
|
37
|
+
const message = err instanceof Error ? err.message : String(err ?? '');
|
|
38
|
+
return /posix_spawnp|spawn-helper/i.test(message);
|
|
39
|
+
}
|
|
40
|
+
/** Locates the installed node-pty package root, or null when it can't be resolved. */
|
|
41
|
+
export function findNodePtyDir() {
|
|
42
|
+
// node-pty declares no "exports" map, so the package.json subpath resolves and
|
|
43
|
+
// lands on the package root. require.resolve('node-pty') would return
|
|
44
|
+
// <pkg>/lib/index.js, one level deeper than callers need.
|
|
45
|
+
try {
|
|
46
|
+
return dirname(require.resolve('node-pty/package.json'));
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
/* fall through */
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
return join(dirname(require.resolve('node-pty')), '..');
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Lists every `spawn-helper` present in a node-pty install.
|
|
60
|
+
*
|
|
61
|
+
* node-pty's loader checks `build/Release`, `build/Debug`, then
|
|
62
|
+
* `prebuilds/<platform>-<arch>`, and takes the helper from whichever directory
|
|
63
|
+
* the native module loaded out of, so every copy has to be executable, not just
|
|
64
|
+
* the one this machine happens to use.
|
|
65
|
+
*/
|
|
66
|
+
export function listSpawnHelpers(ptyDir) {
|
|
67
|
+
const dirs = [join(ptyDir, 'build', 'Release'), join(ptyDir, 'build', 'Debug')];
|
|
68
|
+
const prebuilds = join(ptyDir, 'prebuilds');
|
|
69
|
+
if (existsSync(prebuilds)) {
|
|
70
|
+
try {
|
|
71
|
+
for (const entry of readdirSync(prebuilds, { withFileTypes: true })) {
|
|
72
|
+
if (entry.isDirectory())
|
|
73
|
+
dirs.push(join(prebuilds, entry.name));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
/* unreadable prebuilds dir: nothing to repair there */
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return dirs.map((d) => join(d, 'spawn-helper')).filter((p) => existsSync(p));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Adds the execute bit to every `spawn-helper` missing it.
|
|
84
|
+
*
|
|
85
|
+
* @param ptyDir - node-pty package root; resolved automatically when omitted.
|
|
86
|
+
* @returns Paths actually changed (empty when nothing needed repair, or node-pty
|
|
87
|
+
* is missing, or the files are not writable).
|
|
88
|
+
*/
|
|
89
|
+
export function repairSpawnHelperPermissions(ptyDir) {
|
|
90
|
+
const dir = ptyDir ?? findNodePtyDir();
|
|
91
|
+
if (!dir)
|
|
92
|
+
return [];
|
|
93
|
+
const repaired = [];
|
|
94
|
+
for (const helper of listSpawnHelpers(dir)) {
|
|
95
|
+
try {
|
|
96
|
+
const mode = statSync(helper).mode & 0o777;
|
|
97
|
+
if ((mode & 0o111) === 0o111)
|
|
98
|
+
continue;
|
|
99
|
+
chmodSync(helper, mode | 0o755);
|
|
100
|
+
repaired.push(helper);
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// Read-only install (or not ours to chmod): fall through to the hint.
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return repaired;
|
|
107
|
+
}
|
|
108
|
+
/** Wraps an error so the message carries the actionable repair command. */
|
|
109
|
+
function withFixHint(err) {
|
|
110
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
111
|
+
return new Error(`${message}. ${SPAWN_HELPER_FIX_HINT}`, { cause: err });
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Runs a `pty.spawn()` call, repairing a non-executable spawn-helper and
|
|
115
|
+
* retrying once if that is why it failed.
|
|
116
|
+
*
|
|
117
|
+
* Any unrelated spawn error is rethrown untouched, so this stays invisible on
|
|
118
|
+
* every platform but a broken macOS install.
|
|
119
|
+
*
|
|
120
|
+
* @param spawn - The `pty.spawn(...)` call to run.
|
|
121
|
+
* @param ptyDir - node-pty package root; resolved automatically when omitted.
|
|
122
|
+
*/
|
|
123
|
+
export function spawnPtyWithHelperRepair(spawn, ptyDir) {
|
|
124
|
+
try {
|
|
125
|
+
return spawn();
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
if (!isSpawnHelperFailure(err))
|
|
129
|
+
throw err;
|
|
130
|
+
if (repairAttempted)
|
|
131
|
+
throw withFixHint(err);
|
|
132
|
+
repairAttempted = true;
|
|
133
|
+
const repaired = repairSpawnHelperPermissions(ptyDir);
|
|
134
|
+
if (repaired.length === 0)
|
|
135
|
+
throw withFixHint(err);
|
|
136
|
+
console.warn(`[node-pty] spawn-helper was not executable, repaired ${repaired.join(', ')} and retrying`);
|
|
137
|
+
try {
|
|
138
|
+
return spawn();
|
|
139
|
+
}
|
|
140
|
+
catch (retryErr) {
|
|
141
|
+
throw withFixHint(retryErr);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/** Test seam: forget that a repair was already attempted in this process. */
|
|
146
|
+
export function resetSpawnHelperRepairState() {
|
|
147
|
+
repairAttempted = false;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=node-pty-repair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-pty-repair.js","sourceRoot":"","sources":["../../src/utils/node-pty-repair.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
Binary file
|