@0xmaxma/claude-gateway 1.3.22 → 1.3.24
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 -0
- package/dist/api/packages.d.ts.map +1 -1
- package/dist/api/packages.js +92 -16
- package/dist/api/packages.js.map +1 -1
- package/dist/session/claude-bin.d.ts +52 -0
- package/dist/session/claude-bin.d.ts.map +1 -0
- package/dist/session/claude-bin.js +171 -0
- package/dist/session/claude-bin.js.map +1 -0
- package/dist/session/compactor.d.ts.map +1 -1
- package/dist/session/compactor.js +10 -2
- package/dist/session/compactor.js.map +1 -1
- package/dist/session/process.d.ts +4 -0
- package/dist/session/process.d.ts.map +1 -1
- package/dist/session/process.js +86 -3
- package/dist/session/process.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -37,6 +37,7 @@ A self-hosted multi-agent gateway for Claude Code. Connect Claude agents to Tele
|
|
|
37
37
|
|
|
38
38
|
- Node.js 22+
|
|
39
39
|
- [Claude Code CLI](https://claude.ai/code) v2.1.0+ installed and authenticated — `channels mode` is required (`claude --version`)
|
|
40
|
+
- The gateway must be able to find the `claude` executable: either have `claude` on the `PATH` of the process that launches the gateway, or set `CLAUDE_BIN` to its full path. When `CLAUDE_BIN` is unset, the gateway also probes the native-installer locations (`~/.local/bin/claude`, then `~/.local/share/claude/versions/`) and the legacy npm/nvm layout, so a Claude Code installer migration does not break new sessions. If none resolve, set `CLAUDE_BIN` explicitly (e.g. `CLAUDE_BIN=~/.local/bin/claude`).
|
|
40
41
|
- [Bun](https://bun.sh) — runs the MCP server subprocess (`mcp/server.ts`)
|
|
41
42
|
- A bot token per agent — Telegram (from [@BotFather](https://t.me/BotFather)) or Discord (from [Discord Developer Portal](https://discord.com/developers/applications))
|
|
42
43
|
- **PTY backend only** (`claude.headless: false`): native build tools required for `node-pty` — `gcc`, `python3`, and `node-gyp` must be available at `npm install` time (pre-built binaries are included for common platforms; build tools are only needed if a pre-built binary is unavailable for your platform)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../../src/api/packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAIpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../../src/api/packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAIpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAsDlC,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AA4HD,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CA0L/D"}
|
package/dist/api/packages.js
CHANGED
|
@@ -9,10 +9,19 @@ const child_process_1 = require("child_process");
|
|
|
9
9
|
const fs_1 = require("fs");
|
|
10
10
|
const path_1 = require("path");
|
|
11
11
|
const auth_1 = require("./auth");
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
const migrator_1 = require("../config/migrator");
|
|
13
|
+
// URL param "name" → package config.
|
|
14
|
+
// claude-gateway is a genuine npm global — keep npm detect/update.
|
|
15
|
+
// claude-code ships via the native installer (no longer an npm global), so
|
|
16
|
+
// detect from the `claude` binary and update via its native updater.
|
|
17
|
+
const PACKAGES = {
|
|
18
|
+
'claude-gateway': { npm: '@0xmaxma/claude-gateway', detect: 'npm', update: 'npm' },
|
|
19
|
+
'claude-code': {
|
|
20
|
+
npm: '@anthropic-ai/claude-code',
|
|
21
|
+
detect: 'binary',
|
|
22
|
+
bin: 'claude',
|
|
23
|
+
update: 'native',
|
|
24
|
+
},
|
|
16
25
|
};
|
|
17
26
|
const CACHE_TTL_MS = 5 * 60 * 1000;
|
|
18
27
|
let versionCache = null;
|
|
@@ -40,6 +49,42 @@ function getNpmListVersion(packageName) {
|
|
|
40
49
|
return null;
|
|
41
50
|
}
|
|
42
51
|
}
|
|
52
|
+
// Resolve the installed version by shelling out to the binary on PATH
|
|
53
|
+
// (e.g. `claude --version` → "2.1.207 (Claude Code)"). Parses the leading
|
|
54
|
+
// semver (with optional prerelease) and returns null on any failure —
|
|
55
|
+
// binary missing, non-zero exit, or unparseable output. `bin` is always a
|
|
56
|
+
// trusted constant from PACKAGES, never request-derived.
|
|
57
|
+
function getBinaryVersion(bin) {
|
|
58
|
+
try {
|
|
59
|
+
const output = (0, child_process_1.execSync)(`${bin} --version`, {
|
|
60
|
+
encoding: 'utf-8',
|
|
61
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
62
|
+
timeout: 10000,
|
|
63
|
+
});
|
|
64
|
+
// `claude --version` prints the version first (e.g. "2.1.207 (Claude Code)").
|
|
65
|
+
// Anchor to the start of the trimmed output so a version-like token later in
|
|
66
|
+
// the line can never be mistaken for the installed version.
|
|
67
|
+
const match = output.trim().match(/^(\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?)/);
|
|
68
|
+
return match ? match[1] : null;
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Resolve the currently-installed version per the package's detect strategy.
|
|
75
|
+
function resolveCurrent(config) {
|
|
76
|
+
if (config.detect === 'binary' && config.bin) {
|
|
77
|
+
return getBinaryVersion(config.bin);
|
|
78
|
+
}
|
|
79
|
+
return getNpmListVersion(config.npm);
|
|
80
|
+
}
|
|
81
|
+
// An update is available only when `latest` is strictly newer than `current`.
|
|
82
|
+
// Using semver ordering (not `current !== latest`) avoids a false "update
|
|
83
|
+
// available" when the installed version is *ahead* of the npm-registry latest
|
|
84
|
+
// — e.g. a native-installer channel that leads the npm dist-tag.
|
|
85
|
+
function updateAvailable(current, latest) {
|
|
86
|
+
return !!(current && latest && (0, migrator_1.compareSemver)(latest, current) > 0);
|
|
87
|
+
}
|
|
43
88
|
async function getLatestVersion(packageName) {
|
|
44
89
|
const encodedName = packageName.replace('/', '%2F');
|
|
45
90
|
const res = await fetch(`https://registry.npmjs.org/${encodedName}/latest`);
|
|
@@ -49,17 +94,17 @@ async function getLatestVersion(packageName) {
|
|
|
49
94
|
return data.version ?? null;
|
|
50
95
|
}
|
|
51
96
|
async function fetchAllPackageVersions() {
|
|
52
|
-
const
|
|
53
|
-
// Run all synchronous
|
|
54
|
-
const currents =
|
|
55
|
-
return Promise.all(
|
|
97
|
+
const configs = Object.values(PACKAGES);
|
|
98
|
+
// Run all synchronous current-version lookups before entering async Promise.all
|
|
99
|
+
const currents = configs.map(resolveCurrent);
|
|
100
|
+
return Promise.all(configs.map(async (config, i) => {
|
|
56
101
|
const current = currents[i];
|
|
57
|
-
const latest = await getLatestVersion(
|
|
102
|
+
const latest = await getLatestVersion(config.npm);
|
|
58
103
|
return {
|
|
59
|
-
package:
|
|
104
|
+
package: config.npm,
|
|
60
105
|
current,
|
|
61
106
|
latest,
|
|
62
|
-
hasUpdate:
|
|
107
|
+
hasUpdate: updateAvailable(current, latest),
|
|
63
108
|
};
|
|
64
109
|
}));
|
|
65
110
|
}
|
|
@@ -146,12 +191,13 @@ function createPackagesRouter(apiKeys) {
|
|
|
146
191
|
}
|
|
147
192
|
}
|
|
148
193
|
const { name } = req.params;
|
|
149
|
-
const
|
|
150
|
-
if (!
|
|
194
|
+
const config = PACKAGES[name];
|
|
195
|
+
if (!config) {
|
|
151
196
|
res.status(404).json({ error: `unknown package: ${name}` });
|
|
152
197
|
return;
|
|
153
198
|
}
|
|
154
|
-
const
|
|
199
|
+
const packageName = config.npm;
|
|
200
|
+
const from = resolveCurrent(config);
|
|
155
201
|
let latest;
|
|
156
202
|
try {
|
|
157
203
|
latest = await getLatestVersion(packageName);
|
|
@@ -164,8 +210,8 @@ function createPackagesRouter(apiKeys) {
|
|
|
164
210
|
res.status(503).json({ error: 'registry unavailable' });
|
|
165
211
|
return;
|
|
166
212
|
}
|
|
167
|
-
// Already on latest — no install needed
|
|
168
|
-
if (from
|
|
213
|
+
// Already on latest (or ahead of it) — no install needed
|
|
214
|
+
if (from && !updateAvailable(from, latest)) {
|
|
169
215
|
res.json({ package: packageName, from, to: from, updated: false, warning: null });
|
|
170
216
|
return;
|
|
171
217
|
}
|
|
@@ -176,6 +222,36 @@ function createPackagesRouter(apiKeys) {
|
|
|
176
222
|
}
|
|
177
223
|
isUpdating = true;
|
|
178
224
|
try {
|
|
225
|
+
// Native-installer packages (e.g. claude-code) update the binary on PATH
|
|
226
|
+
// via their own updater. npm install -g would write a separate npm copy
|
|
227
|
+
// that isn't the running binary, so it must not be used here.
|
|
228
|
+
if (config.update === 'native' && config.bin) {
|
|
229
|
+
let updateErr = null;
|
|
230
|
+
try {
|
|
231
|
+
(0, child_process_1.execSync)(`${config.bin} update`, {
|
|
232
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
233
|
+
timeout: 300000,
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
catch (err) {
|
|
237
|
+
updateErr = err;
|
|
238
|
+
}
|
|
239
|
+
if (updateErr !== null) {
|
|
240
|
+
const stderr = updateErr.stderr?.toString() ??
|
|
241
|
+
updateErr.message ??
|
|
242
|
+
'update failed';
|
|
243
|
+
res.status(500).json({ error: stderr });
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
// Invalidate version cache and re-read the actual binary version.
|
|
247
|
+
// The native updater may legitimately be a no-op (already newest on its
|
|
248
|
+
// own channel), so report `updated` from whether the version changed.
|
|
249
|
+
versionCache = null;
|
|
250
|
+
const to = resolveCurrent(config);
|
|
251
|
+
res.json({ package: packageName, from, to, updated: to !== from, warning: null });
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
// npm-global packages (e.g. claude-gateway) update via npm install -g.
|
|
179
255
|
// Resolve npm global root for temp dir cleanup
|
|
180
256
|
let npmRoot = '';
|
|
181
257
|
try {
|
package/dist/api/packages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packages.js","sourceRoot":"","sources":["../../src/api/packages.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"packages.js","sourceRoot":"","sources":["../../src/api/packages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolution of the `claude` executable shared by every host-side spawn site
|
|
3
|
+
* (session subprocess in `process.ts`, `claude --print` in `compactor.ts`).
|
|
4
|
+
*
|
|
5
|
+
* The Claude Code native-installer migration (2026-07) moved the binary out of
|
|
6
|
+
* the legacy npm/nvm layout into `~/.local`, so a gateway launched with a minimal
|
|
7
|
+
* PATH can no longer find `claude` on PATH alone. Centralizing the probe here
|
|
8
|
+
* keeps every spawn site consistent and avoids re-introducing the bug one call
|
|
9
|
+
* site at a time.
|
|
10
|
+
*
|
|
11
|
+
* NOTE: this resolves against the HOST filesystem. App-agents run claude inside a
|
|
12
|
+
* docker container, so they must NOT use this — a host path is meaningless in the
|
|
13
|
+
* container. Those call sites keep bare `claude` (resolved by the container PATH).
|
|
14
|
+
*/
|
|
15
|
+
/** Directory holding the native-installer stable `claude` symlink (`~/.local/bin`). */
|
|
16
|
+
export declare function nativeClaudeBinDir(homeDir?: string): string;
|
|
17
|
+
/** True if `p` is an existing, executable regular file (symlinks are followed). */
|
|
18
|
+
export declare function isExecutableFile(p: string): boolean;
|
|
19
|
+
export type ClaudeBinSource = 'PATH' | 'native-bin' | 'native-versions' | 'legacy-npm' | 'fallback';
|
|
20
|
+
export interface ClaudeBinResolution {
|
|
21
|
+
/** Binary to spawn — a resolved absolute path, or bare `claude` as a last resort. */
|
|
22
|
+
bin: string;
|
|
23
|
+
/** Which probe resolved it (`fallback` = nothing found, spawning bare `claude`). */
|
|
24
|
+
source: ClaudeBinSource;
|
|
25
|
+
/** Ordered list of locations probed, for actionable error logging. */
|
|
26
|
+
searched: string[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the `claude` executable when `CLAUDE_BIN` is not set. Probe order:
|
|
30
|
+
* 1. bare `claude` on PATH — respects the operator's environment when present
|
|
31
|
+
* 2. native stable symlink `~/.local/bin/claude`
|
|
32
|
+
* 3. newest native version under `~/.local/share/claude/versions/`
|
|
33
|
+
* 4. legacy npm-under-nvm `~/.nvm/versions/node/<v>/bin/claude`
|
|
34
|
+
* If every probe misses, fall back to bare `claude` so spawn still runs (and the
|
|
35
|
+
* failure surfaces through the caller's error log with the searched paths).
|
|
36
|
+
*
|
|
37
|
+
* LIMITATION: the PATH probe accepts the first *executable* `claude` it finds,
|
|
38
|
+
* so a broken drop-in shim that is executable but exits non-zero (the exact
|
|
39
|
+
* failure that motivated this) still wins here. Detecting that would require
|
|
40
|
+
* running the binary, which is out of scope (see issue #192 — the deployed host
|
|
41
|
+
* shim is an ops fix). The child PATH is hardened with the native bin dir (see
|
|
42
|
+
* pathWithNativeBin) so a genuine native install is preferred when both exist.
|
|
43
|
+
*/
|
|
44
|
+
export declare function resolveClaudeBin(env?: NodeJS.ProcessEnv, homeDir?: string): ClaudeBinResolution;
|
|
45
|
+
/**
|
|
46
|
+
* PATH with the native-installer bin dir prepended when it holds an executable
|
|
47
|
+
* `claude`, so a spawned child resolves the native install ahead of a stale
|
|
48
|
+
* legacy shim even if the gateway itself launched with a pre-migration PATH.
|
|
49
|
+
* Returns the original PATH unchanged when there is no native install.
|
|
50
|
+
*/
|
|
51
|
+
export declare function pathWithNativeBin(homeDir?: string, pathEnv?: string | undefined): string | undefined;
|
|
52
|
+
//# sourceMappingURL=claude-bin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-bin.d.ts","sourceRoot":"","sources":["../../src/session/claude-bin.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,MAAqB,GAAG,MAAM,CAEzE;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAQnD;AAoCD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,YAAY,GAAG,iBAAiB,GAAG,YAAY,GAAG,UAAU,CAAC;AAEpG,MAAM,WAAW,mBAAmB;IAClC,qFAAqF;IACrF,GAAG,EAAE,MAAM,CAAC;IACZ,oFAAoF;IACpF,MAAM,EAAE,eAAe,CAAC;IACxB,sEAAsE;IACtE,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,OAAO,GAAE,MAAqB,GAC7B,mBAAmB,CAmCrB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,MAAqB,EAC9B,OAAO,GAAE,MAAM,GAAG,SAA4B,GAC7C,MAAM,GAAG,SAAS,CAKpB"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.nativeClaudeBinDir = nativeClaudeBinDir;
|
|
37
|
+
exports.isExecutableFile = isExecutableFile;
|
|
38
|
+
exports.resolveClaudeBin = resolveClaudeBin;
|
|
39
|
+
exports.pathWithNativeBin = pathWithNativeBin;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const os = __importStar(require("os"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
/**
|
|
44
|
+
* Resolution of the `claude` executable shared by every host-side spawn site
|
|
45
|
+
* (session subprocess in `process.ts`, `claude --print` in `compactor.ts`).
|
|
46
|
+
*
|
|
47
|
+
* The Claude Code native-installer migration (2026-07) moved the binary out of
|
|
48
|
+
* the legacy npm/nvm layout into `~/.local`, so a gateway launched with a minimal
|
|
49
|
+
* PATH can no longer find `claude` on PATH alone. Centralizing the probe here
|
|
50
|
+
* keeps every spawn site consistent and avoids re-introducing the bug one call
|
|
51
|
+
* site at a time.
|
|
52
|
+
*
|
|
53
|
+
* NOTE: this resolves against the HOST filesystem. App-agents run claude inside a
|
|
54
|
+
* docker container, so they must NOT use this — a host path is meaningless in the
|
|
55
|
+
* container. Those call sites keep bare `claude` (resolved by the container PATH).
|
|
56
|
+
*/
|
|
57
|
+
/** Directory holding the native-installer stable `claude` symlink (`~/.local/bin`). */
|
|
58
|
+
function nativeClaudeBinDir(homeDir = os.homedir()) {
|
|
59
|
+
return path.join(homeDir, '.local', 'bin');
|
|
60
|
+
}
|
|
61
|
+
/** True if `p` is an existing, executable regular file (symlinks are followed). */
|
|
62
|
+
function isExecutableFile(p) {
|
|
63
|
+
try {
|
|
64
|
+
if (!fs.statSync(p).isFile())
|
|
65
|
+
return false;
|
|
66
|
+
fs.accessSync(p, fs.constants.X_OK);
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/** Resolve `cmd` against a PATH string, returning the first executable hit. */
|
|
74
|
+
function findOnPath(cmd, pathEnv) {
|
|
75
|
+
if (!pathEnv)
|
|
76
|
+
return null;
|
|
77
|
+
for (const dir of pathEnv.split(path.delimiter)) {
|
|
78
|
+
if (!dir)
|
|
79
|
+
continue;
|
|
80
|
+
const candidate = path.join(dir, cmd);
|
|
81
|
+
if (isExecutableFile(candidate))
|
|
82
|
+
return candidate;
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Return the newest executable `claude` under a native-installer versions dir.
|
|
88
|
+
* Each version may be the binary itself (`versions/<ver>`) or a directory
|
|
89
|
+
* containing it (`versions/<ver>/claude`). Newest is decided by numeric-aware
|
|
90
|
+
* descending name sort so `2.1.206` beats `2.1.99`.
|
|
91
|
+
*/
|
|
92
|
+
function newestNativeVersion(versionsDir) {
|
|
93
|
+
let entries;
|
|
94
|
+
try {
|
|
95
|
+
entries = fs.readdirSync(versionsDir);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
const sorted = entries.sort((a, b) => b.localeCompare(a, undefined, { numeric: true }));
|
|
101
|
+
for (const name of sorted) {
|
|
102
|
+
const base = path.join(versionsDir, name);
|
|
103
|
+
if (isExecutableFile(base))
|
|
104
|
+
return base;
|
|
105
|
+
const nested = path.join(base, 'claude');
|
|
106
|
+
if (isExecutableFile(nested))
|
|
107
|
+
return nested;
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Resolve the `claude` executable when `CLAUDE_BIN` is not set. Probe order:
|
|
113
|
+
* 1. bare `claude` on PATH — respects the operator's environment when present
|
|
114
|
+
* 2. native stable symlink `~/.local/bin/claude`
|
|
115
|
+
* 3. newest native version under `~/.local/share/claude/versions/`
|
|
116
|
+
* 4. legacy npm-under-nvm `~/.nvm/versions/node/<v>/bin/claude`
|
|
117
|
+
* If every probe misses, fall back to bare `claude` so spawn still runs (and the
|
|
118
|
+
* failure surfaces through the caller's error log with the searched paths).
|
|
119
|
+
*
|
|
120
|
+
* LIMITATION: the PATH probe accepts the first *executable* `claude` it finds,
|
|
121
|
+
* so a broken drop-in shim that is executable but exits non-zero (the exact
|
|
122
|
+
* failure that motivated this) still wins here. Detecting that would require
|
|
123
|
+
* running the binary, which is out of scope (see issue #192 — the deployed host
|
|
124
|
+
* shim is an ops fix). The child PATH is hardened with the native bin dir (see
|
|
125
|
+
* pathWithNativeBin) so a genuine native install is preferred when both exist.
|
|
126
|
+
*/
|
|
127
|
+
function resolveClaudeBin(env = process.env, homeDir = os.homedir()) {
|
|
128
|
+
const searched = [];
|
|
129
|
+
searched.push('claude (PATH)');
|
|
130
|
+
if (findOnPath('claude', env.PATH)) {
|
|
131
|
+
return { bin: 'claude', source: 'PATH', searched };
|
|
132
|
+
}
|
|
133
|
+
const nativeBin = path.join(nativeClaudeBinDir(homeDir), 'claude');
|
|
134
|
+
searched.push(nativeBin);
|
|
135
|
+
if (isExecutableFile(nativeBin)) {
|
|
136
|
+
return { bin: nativeBin, source: 'native-bin', searched };
|
|
137
|
+
}
|
|
138
|
+
const versionsDir = path.join(homeDir, '.local', 'share', 'claude', 'versions');
|
|
139
|
+
searched.push(path.join(versionsDir, '*'));
|
|
140
|
+
const nativeVersion = newestNativeVersion(versionsDir);
|
|
141
|
+
if (nativeVersion) {
|
|
142
|
+
return { bin: nativeVersion, source: 'native-versions', searched };
|
|
143
|
+
}
|
|
144
|
+
const nvmDir = path.join(homeDir, '.nvm', 'versions', 'node');
|
|
145
|
+
searched.push(path.join(nvmDir, '*', 'bin', 'claude'));
|
|
146
|
+
try {
|
|
147
|
+
for (const node of fs.readdirSync(nvmDir).sort((a, b) => b.localeCompare(a, undefined, { numeric: true }))) {
|
|
148
|
+
const candidate = path.join(nvmDir, node, 'bin', 'claude');
|
|
149
|
+
if (isExecutableFile(candidate)) {
|
|
150
|
+
return { bin: candidate, source: 'legacy-npm', searched };
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
/* no nvm layout */
|
|
156
|
+
}
|
|
157
|
+
return { bin: 'claude', source: 'fallback', searched };
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* PATH with the native-installer bin dir prepended when it holds an executable
|
|
161
|
+
* `claude`, so a spawned child resolves the native install ahead of a stale
|
|
162
|
+
* legacy shim even if the gateway itself launched with a pre-migration PATH.
|
|
163
|
+
* Returns the original PATH unchanged when there is no native install.
|
|
164
|
+
*/
|
|
165
|
+
function pathWithNativeBin(homeDir = os.homedir(), pathEnv = process.env.PATH) {
|
|
166
|
+
const nativeBinDir = nativeClaudeBinDir(homeDir);
|
|
167
|
+
return isExecutableFile(path.join(nativeBinDir, 'claude'))
|
|
168
|
+
? `${nativeBinDir}${path.delimiter}${pathEnv ?? ''}`
|
|
169
|
+
: pathEnv;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=claude-bin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-bin.js","sourceRoot":"","sources":["../../src/session/claude-bin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,gDAEC;AAGD,4CAQC;AA+DD,4CAsCC;AAQD,8CAQC;AAtJD,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAE7B;;;;;;;;;;;;;GAaG;AAEH,uFAAuF;AACvF,SAAgB,kBAAkB,CAAC,UAAkB,EAAE,CAAC,OAAO,EAAE;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,mFAAmF;AACnF,SAAgB,gBAAgB,CAAC,CAAS;IACxC,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;YAAE,OAAO,KAAK,CAAC;QAC3C,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,SAAS,UAAU,CAAC,GAAW,EAAE,OAA2B;IAC1D,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,gBAAgB,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,WAAmB;IAC9C,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxF,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzC,IAAI,gBAAgB,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAaD;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,gBAAgB,CAC9B,MAAyB,OAAO,CAAC,GAAG,EACpC,UAAkB,EAAE,CAAC,OAAO,EAAE;IAE9B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/B,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IACnE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzB,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC9D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3G,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3D,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mBAAmB;IACrB,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,UAAkB,EAAE,CAAC,OAAO,EAAE,EAC9B,UAA8B,OAAO,CAAC,GAAG,CAAC,IAAI;IAE9C,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,IAAI,EAAE,EAAE;QACpD,CAAC,CAAC,OAAO,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compactor.d.ts","sourceRoot":"","sources":["../../src/session/compactor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"compactor.d.ts","sourceRoot":"","sources":["../../src/session/compactor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,KAAK,EAAE,MAAM;CAI1B;AAqBD,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,YAAY;IAEjD,OAAO,CACX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,KAAkB,GAC5D,OAAO,CAAC,gBAAgB,CAAC;YA2Cd,qBAAqB;IA0BnC,OAAO,CAAC,eAAe;YAkBT,oBAAoB;CAgCnC"}
|
|
@@ -37,6 +37,7 @@ exports.SessionCompactor = exports.NotEnoughMessagesError = void 0;
|
|
|
37
37
|
const fs = __importStar(require("fs"));
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
39
|
const child_process_1 = require("child_process");
|
|
40
|
+
const claude_bin_1 = require("./claude-bin");
|
|
40
41
|
class NotEnoughMessagesError extends Error {
|
|
41
42
|
constructor(count) {
|
|
42
43
|
super(`Not enough messages to compact (${count} messages, minimum 5 required)`);
|
|
@@ -131,11 +132,18 @@ class SessionCompactor {
|
|
|
131
132
|
async callClaudeForSummary(text, instruction = SINGLE_SUMMARY_INSTRUCTION) {
|
|
132
133
|
// Wrap content in XML tags so claude treats it as data to analyze, not an active conversation
|
|
133
134
|
const prompt = `${COMPACTOR_SYSTEM_PROMPT}\n\n${instruction}\n\n<transcript>\n${text}\n</transcript>\n\nWrite a concise summary of the above transcript now:`;
|
|
134
|
-
|
|
135
|
+
// Resolve claude the same way the session subprocess does: honor CLAUDE_BIN
|
|
136
|
+
// (which may carry args), else probe PATH and the native/legacy install
|
|
137
|
+
// locations. This runs in the gateway's own (possibly minimal) PATH, so
|
|
138
|
+
// without resolution `claude --print` would fail identically to a session
|
|
139
|
+
// spawn after the native-installer migration.
|
|
140
|
+
const claudeBinRaw = process.env.CLAUDE_BIN ?? (0, claude_bin_1.resolveClaudeBin)().bin;
|
|
141
|
+
const [claudeBin, ...claudeBinArgs] = claudeBinRaw.split(' ');
|
|
142
|
+
const result = (0, child_process_1.spawnSync)(claudeBin, [...claudeBinArgs, '--print'], {
|
|
135
143
|
input: prompt,
|
|
136
144
|
encoding: 'utf-8',
|
|
137
145
|
timeout: 300000,
|
|
138
|
-
env: process.env,
|
|
146
|
+
env: { ...process.env, PATH: (0, claude_bin_1.pathWithNativeBin)() },
|
|
139
147
|
});
|
|
140
148
|
if (result.error) {
|
|
141
149
|
throw new Error(`claude CLI error: ${result.error.message}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compactor.js","sourceRoot":"","sources":["../../src/session/compactor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,iDAA0C;
|
|
1
|
+
{"version":3,"file":"compactor.js","sourceRoot":"","sources":["../../src/session/compactor.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,10 @@ export declare class SessionProcess extends EventEmitter {
|
|
|
34
34
|
queryMode: boolean;
|
|
35
35
|
private lastTotalTokens;
|
|
36
36
|
private thinkingRecoveryCount;
|
|
37
|
+
private lastClaudeBin;
|
|
38
|
+
private lastStderrLine;
|
|
39
|
+
private stderrBuffer;
|
|
40
|
+
private resolvedBinLogged;
|
|
37
41
|
private _queryResolve?;
|
|
38
42
|
private _queryBuffer;
|
|
39
43
|
private _queryTimer?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/session/process.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/session/process.ts"],"names":[],"mappings":"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"}
|
package/dist/session/process.js
CHANGED
|
@@ -46,6 +46,7 @@ const chokidar_1 = __importDefault(require("chokidar"));
|
|
|
46
46
|
const logger_1 = require("../logger");
|
|
47
47
|
const pty_stream_registry_1 = require("../shell/pty-stream-registry");
|
|
48
48
|
const screen_1 = require("../shell/screen");
|
|
49
|
+
const claude_bin_1 = require("./claude-bin");
|
|
49
50
|
const tool_labels_1 = require("../utils/tool-labels");
|
|
50
51
|
exports.MAX_HISTORY_MESSAGES = 50;
|
|
51
52
|
const AUTO_RESTART_DELAY_MS = 5000;
|
|
@@ -81,6 +82,16 @@ class SessionProcess extends events_1.EventEmitter {
|
|
|
81
82
|
// reset to 0 until the first tokenUsage event fires.
|
|
82
83
|
this.lastTotalTokens = 0;
|
|
83
84
|
this.thinkingRecoveryCount = 0;
|
|
85
|
+
// Binary path last spawned and the last non-empty stderr line, retained so a
|
|
86
|
+
// fatal `Session max restarts reached` names what actually failed (e.g. an
|
|
87
|
+
// unresolvable `claude` binary) instead of ending in silence. `stderrBuffer`
|
|
88
|
+
// holds an unterminated trailing fragment so a line split across two `data`
|
|
89
|
+
// chunks is not captured as two partial lines.
|
|
90
|
+
this.lastClaudeBin = 'claude';
|
|
91
|
+
this.lastStderrLine = null;
|
|
92
|
+
this.stderrBuffer = '';
|
|
93
|
+
// Log the resolved-binary source once per instance, not on every restart spawn.
|
|
94
|
+
this.resolvedBinLogged = false;
|
|
84
95
|
this._queryBuffer = '';
|
|
85
96
|
this._querySettled = false;
|
|
86
97
|
this.sessionId = sessionId;
|
|
@@ -381,7 +392,41 @@ class SessionProcess extends events_1.EventEmitter {
|
|
|
381
392
|
const containerRestartPath = isAppAgent ? toContainerPath(this.restartSignalPath) : this.restartSignalPath;
|
|
382
393
|
const freshModel = this.readFreshModel();
|
|
383
394
|
const args = this.buildArgs(effectiveMcpPath, freshModel);
|
|
384
|
-
|
|
395
|
+
// Resolve the claude binary. An explicit CLAUDE_BIN (which may carry args) is
|
|
396
|
+
// trusted verbatim; otherwise probe PATH and the native-installer / legacy
|
|
397
|
+
// install locations so a gateway launched with a minimal PATH still finds it.
|
|
398
|
+
let claudeBinRaw;
|
|
399
|
+
if (process.env.CLAUDE_BIN) {
|
|
400
|
+
claudeBinRaw = process.env.CLAUDE_BIN;
|
|
401
|
+
}
|
|
402
|
+
else if (isAppAgent) {
|
|
403
|
+
// App-agents run claude INSIDE the container; host-side resolution would
|
|
404
|
+
// point at a host path that need not exist in the container. Keep bare
|
|
405
|
+
// `claude` so the container's own PATH resolves it (agentConfig.claudeBin
|
|
406
|
+
// overrides below when the image installs claude elsewhere).
|
|
407
|
+
claudeBinRaw = 'claude';
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
const resolution = (0, claude_bin_1.resolveClaudeBin)();
|
|
411
|
+
claudeBinRaw = resolution.bin;
|
|
412
|
+
if (resolution.source === 'fallback') {
|
|
413
|
+
this.logger.warn('Could not resolve the claude binary — spawning bare "claude" as a last resort', {
|
|
414
|
+
sessionId: this.sessionId,
|
|
415
|
+
searched: resolution.searched,
|
|
416
|
+
hint: 'set CLAUDE_BIN to the claude executable path (native install: ~/.local/bin/claude)',
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
else if (resolution.source !== 'PATH' && !this.resolvedBinLogged) {
|
|
420
|
+
// Log the non-PATH resolution once per instance; auto-restarts re-resolve
|
|
421
|
+
// the same location and would otherwise repeat this line on every spawn.
|
|
422
|
+
this.resolvedBinLogged = true;
|
|
423
|
+
this.logger.info('Resolved claude binary from an install location', {
|
|
424
|
+
sessionId: this.sessionId,
|
|
425
|
+
bin: resolution.bin,
|
|
426
|
+
source: resolution.source,
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
}
|
|
385
430
|
const claudeBinParts = claudeBinRaw.split(' ');
|
|
386
431
|
let claudeBin = claudeBinParts[0];
|
|
387
432
|
let allArgs = [...claudeBinParts.slice(1), ...args];
|
|
@@ -422,6 +467,9 @@ class SessionProcess extends events_1.EventEmitter {
|
|
|
422
467
|
backend: usePtyShell ? 'pty-shell' : 'headless',
|
|
423
468
|
});
|
|
424
469
|
const spawnBin = isAppAgent ? 'docker' : claudeBin;
|
|
470
|
+
// Record the claude binary targeted this spawn so a fatal restart failure
|
|
471
|
+
// can name it (app-agents run claude inside the container).
|
|
472
|
+
this.lastClaudeBin = isAppAgent ? (this.agentConfig.claudeBin ?? claudeBinRaw) : claudeBinRaw;
|
|
425
473
|
// env vars that must be forwarded into the container via `docker exec -e`
|
|
426
474
|
let containerUid = 1000;
|
|
427
475
|
try {
|
|
@@ -453,9 +501,14 @@ class SessionProcess extends events_1.EventEmitter {
|
|
|
453
501
|
ptyStreamSocketPath = pty_stream_registry_1.ptyStreamRegistry.socketPath(this.sessionId);
|
|
454
502
|
pty_stream_registry_1.ptyStreamRegistry.listen(this.sessionId, ptyStreamSocketPath);
|
|
455
503
|
}
|
|
504
|
+
// Ensure the native-installer bin dir is on the child's PATH when it exists,
|
|
505
|
+
// so a bare `claude` resolves even if the gateway itself was launched with a
|
|
506
|
+
// minimal PATH that predates the native-installer migration.
|
|
507
|
+
const hardenedPath = (0, claude_bin_1.pathWithNativeBin)();
|
|
456
508
|
const proc = (0, child_process_1.spawn)(spawnBin, spawnArgs, {
|
|
457
509
|
env: {
|
|
458
510
|
...process.env,
|
|
511
|
+
...(hardenedPath ? { PATH: hardenedPath } : {}),
|
|
459
512
|
CLAUDE_WORKSPACE: isAppAgent ? '/workspace' : this.agentConfig.workspace,
|
|
460
513
|
TELEGRAM_BOT_TOKEN: this.agentConfig.telegram?.botToken ?? '',
|
|
461
514
|
GATEWAY_RESTART_SIGNAL_PATH: this.restartSignalPath,
|
|
@@ -681,9 +734,24 @@ class SessionProcess extends events_1.EventEmitter {
|
|
|
681
734
|
}
|
|
682
735
|
});
|
|
683
736
|
proc.stderr?.on('data', (data) => {
|
|
684
|
-
|
|
737
|
+
const text = data.toString();
|
|
738
|
+
// Buffer across chunks: split into complete lines and retain any unterminated
|
|
739
|
+
// trailing fragment so a line split on a chunk boundary is not seen as two.
|
|
740
|
+
this.stderrBuffer += text;
|
|
741
|
+
const lines = this.stderrBuffer.split('\n');
|
|
742
|
+
this.stderrBuffer = lines.pop() ?? '';
|
|
743
|
+
const lastLine = lines.map(l => l.trim()).filter(Boolean).pop();
|
|
744
|
+
if (lastLine)
|
|
745
|
+
this.lastStderrLine = lastLine;
|
|
746
|
+
this.logger.warn('session stderr', { stderr: text });
|
|
685
747
|
});
|
|
686
748
|
proc.on('exit', (code, signal) => {
|
|
749
|
+
// Flush any unterminated trailing stderr fragment (a process that dies
|
|
750
|
+
// mid-line writes no final newline) so it can still surface as lastStderr.
|
|
751
|
+
const trailing = this.stderrBuffer.trim();
|
|
752
|
+
if (trailing)
|
|
753
|
+
this.lastStderrLine = trailing;
|
|
754
|
+
this.stderrBuffer = '';
|
|
687
755
|
this.logger.info('session subprocess exited', {
|
|
688
756
|
code,
|
|
689
757
|
signal,
|
|
@@ -704,6 +772,11 @@ class SessionProcess extends events_1.EventEmitter {
|
|
|
704
772
|
this.scheduleRestart();
|
|
705
773
|
});
|
|
706
774
|
proc.on('error', (err) => {
|
|
775
|
+
// A missing/unresolvable binary surfaces here as an ENOENT `error` event
|
|
776
|
+
// (e.g. `spawn /path/claude ENOENT`), NOT on stderr — capture it so the
|
|
777
|
+
// fatal max-restarts log can name the real cause and fire the CLAUDE_BIN
|
|
778
|
+
// hint. This is the exact failure the binary-resolution work targets.
|
|
779
|
+
this.lastStderrLine = err.message;
|
|
707
780
|
this.logger.error('session subprocess error', { error: err.message });
|
|
708
781
|
});
|
|
709
782
|
}
|
|
@@ -715,7 +788,17 @@ class SessionProcess extends events_1.EventEmitter {
|
|
|
715
788
|
this.restartCount = 0;
|
|
716
789
|
}
|
|
717
790
|
if (this.restartCount >= MAX_RESTARTS) {
|
|
718
|
-
|
|
791
|
+
// Match both the CLI's own "binary not found" text and Node's spawn ENOENT
|
|
792
|
+
// (the shape a genuinely unresolvable claude binary produces).
|
|
793
|
+
const binNotFound = /binary not found|ENOENT/i.test(this.lastStderrLine ?? '');
|
|
794
|
+
this.logger.error('Session max restarts reached', {
|
|
795
|
+
sessionId: this.sessionId,
|
|
796
|
+
claudeBin: this.lastClaudeBin,
|
|
797
|
+
lastStderr: this.lastStderrLine ?? null,
|
|
798
|
+
...(binNotFound
|
|
799
|
+
? { hint: 'claude executable is not resolvable — set CLAUDE_BIN to the claude path (native install: ~/.local/bin/claude)' }
|
|
800
|
+
: {}),
|
|
801
|
+
});
|
|
719
802
|
this.emit('failed');
|
|
720
803
|
return;
|
|
721
804
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/session/process.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/session/process.ts"],"names":[],"mappings":"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"}
|