@agent-relay/utils 2.1.22 → 2.1.23-beta.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/dist/cjs/index.js +2 -0
- package/dist/cjs/model-commands.js +98 -0
- package/dist/cjs/relay-pty-path.js +39 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/model-commands.d.ts +42 -0
- package/dist/model-commands.d.ts.map +1 -0
- package/dist/model-commands.js +90 -0
- package/dist/model-commands.js.map +1 -0
- package/dist/relay-pty-path.d.ts.map +1 -1
- package/dist/relay-pty-path.js +54 -2
- package/dist/relay-pty-path.js.map +1 -1
- package/package.json +9 -3
package/dist/cjs/index.js
CHANGED
|
@@ -23,6 +23,7 @@ __reExport(index_exports, require("./git-remote.js"), module.exports);
|
|
|
23
23
|
__reExport(index_exports, require("./update-checker.js"), module.exports);
|
|
24
24
|
__reExport(index_exports, require("./error-tracking.js"), module.exports);
|
|
25
25
|
__reExport(index_exports, require("./model-mapping.js"), module.exports);
|
|
26
|
+
__reExport(index_exports, require("./model-commands.js"), module.exports);
|
|
26
27
|
__reExport(index_exports, require("./relay-pty-path.js"), module.exports);
|
|
27
28
|
__reExport(index_exports, require("./client-helpers.js"), module.exports);
|
|
28
29
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -35,6 +36,7 @@ __reExport(index_exports, require("./client-helpers.js"), module.exports);
|
|
|
35
36
|
...require("./update-checker.js"),
|
|
36
37
|
...require("./error-tracking.js"),
|
|
37
38
|
...require("./model-mapping.js"),
|
|
39
|
+
...require("./model-commands.js"),
|
|
38
40
|
...require("./relay-pty-path.js"),
|
|
39
41
|
...require("./client-helpers.js")
|
|
40
42
|
});
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var model_commands_exports = {};
|
|
20
|
+
__export(model_commands_exports, {
|
|
21
|
+
buildModelSwitchCommand: () => buildModelSwitchCommand,
|
|
22
|
+
getModelCommandConfig: () => getModelCommandConfig,
|
|
23
|
+
isModelSwitchSupported: () => isModelSwitchSupported,
|
|
24
|
+
validateModelForCli: () => validateModelForCli
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(model_commands_exports);
|
|
27
|
+
const CLAUDE_MODEL_ALIASES = {
|
|
28
|
+
"claude-opus-4": "opus",
|
|
29
|
+
"claude-opus-4.5": "opus",
|
|
30
|
+
"claude-opus-4-6": "opus",
|
|
31
|
+
"claude-sonnet-4": "sonnet",
|
|
32
|
+
"claude-sonnet-4-5": "sonnet",
|
|
33
|
+
"claude-haiku-3.5": "haiku",
|
|
34
|
+
"claude-haiku-4.5": "haiku"
|
|
35
|
+
};
|
|
36
|
+
const CLAUDE_VALID_MODELS = ["opus", "sonnet", "haiku"];
|
|
37
|
+
const CLI_MODEL_COMMANDS = {
|
|
38
|
+
claude: {
|
|
39
|
+
supported: true,
|
|
40
|
+
buildCommand: (model) => `/model ${model}
|
|
41
|
+
`,
|
|
42
|
+
validModels: [
|
|
43
|
+
...CLAUDE_VALID_MODELS,
|
|
44
|
+
...Object.keys(CLAUDE_MODEL_ALIASES)
|
|
45
|
+
],
|
|
46
|
+
normalizeModel: (model) => {
|
|
47
|
+
const normalized = model.trim().toLowerCase();
|
|
48
|
+
return CLAUDE_MODEL_ALIASES[normalized] ?? normalized;
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
codex: { supported: false },
|
|
52
|
+
gemini: { supported: false },
|
|
53
|
+
droid: { supported: false },
|
|
54
|
+
opencode: { supported: false },
|
|
55
|
+
aider: { supported: false },
|
|
56
|
+
goose: { supported: false },
|
|
57
|
+
cursor: { supported: false }
|
|
58
|
+
};
|
|
59
|
+
function getModelCommandConfig(cli) {
|
|
60
|
+
const baseCli = cli.split(":")[0].toLowerCase();
|
|
61
|
+
return CLI_MODEL_COMMANDS[baseCli] ?? { supported: false };
|
|
62
|
+
}
|
|
63
|
+
function isModelSwitchSupported(cli) {
|
|
64
|
+
return getModelCommandConfig(cli).supported;
|
|
65
|
+
}
|
|
66
|
+
function buildModelSwitchCommand(cli, model) {
|
|
67
|
+
const config = getModelCommandConfig(cli);
|
|
68
|
+
if (!config.supported || !config.buildCommand) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
const normalizedModel = config.normalizeModel ? config.normalizeModel(model) : model;
|
|
72
|
+
return config.buildCommand(normalizedModel);
|
|
73
|
+
}
|
|
74
|
+
function validateModelForCli(cli, model) {
|
|
75
|
+
const config = getModelCommandConfig(cli);
|
|
76
|
+
if (!config.supported) {
|
|
77
|
+
return {
|
|
78
|
+
valid: false,
|
|
79
|
+
error: `CLI "${cli}" does not support mid-session model switching`
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const normalizedModel = config.normalizeModel ? config.normalizeModel(model) : model;
|
|
83
|
+
if (config.validModels && !config.validModels.includes(normalizedModel)) {
|
|
84
|
+
const displayModels = config.validModels.filter((m) => !m.includes("-"));
|
|
85
|
+
return {
|
|
86
|
+
valid: false,
|
|
87
|
+
error: `Invalid model "${model}" for CLI "${cli}". Valid models: ${displayModels.join(", ")}`
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
return { valid: true, normalizedModel };
|
|
91
|
+
}
|
|
92
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
93
|
+
0 && (module.exports = {
|
|
94
|
+
buildModelSwitchCommand,
|
|
95
|
+
getModelCommandConfig,
|
|
96
|
+
isModelSwitchSupported,
|
|
97
|
+
validateModelForCli
|
|
98
|
+
});
|
|
@@ -77,7 +77,7 @@ function getLastSearchPaths() {
|
|
|
77
77
|
}
|
|
78
78
|
function findRelayPtyBinary(callerDirname) {
|
|
79
79
|
const envOverride = process.env.RELAY_PTY_BINARY;
|
|
80
|
-
if (envOverride && isExecutable(envOverride)) {
|
|
80
|
+
if (envOverride && isExecutable(envOverride) && isPlatformCompatibleBinary(envOverride)) {
|
|
81
81
|
lastSearchPaths = [envOverride];
|
|
82
82
|
return envOverride;
|
|
83
83
|
}
|
|
@@ -175,7 +175,7 @@ function findRelayPtyBinary(callerDirname) {
|
|
|
175
175
|
candidates.push("/usr/bin/relay-pty");
|
|
176
176
|
lastSearchPaths = candidates;
|
|
177
177
|
for (const candidate of candidates) {
|
|
178
|
-
if (isExecutable(candidate)) {
|
|
178
|
+
if (isExecutable(candidate) && isPlatformCompatibleBinary(candidate)) {
|
|
179
179
|
return candidate;
|
|
180
180
|
}
|
|
181
181
|
}
|
|
@@ -189,6 +189,43 @@ function isExecutable(filePath) {
|
|
|
189
189
|
return false;
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
+
function isPlatformCompatibleBinary(filePath) {
|
|
193
|
+
let fd;
|
|
194
|
+
try {
|
|
195
|
+
fd = import_node_fs.default.openSync(filePath, "r");
|
|
196
|
+
const header = Buffer.alloc(4);
|
|
197
|
+
const bytesRead = import_node_fs.default.readSync(fd, header, 0, 4, 0);
|
|
198
|
+
if (bytesRead < 4) {
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
const magic = header.readUInt32BE(0);
|
|
202
|
+
const platform = import_node_os.default.platform();
|
|
203
|
+
if (platform === "darwin") {
|
|
204
|
+
return isMachOBinary(magic);
|
|
205
|
+
}
|
|
206
|
+
if (platform === "linux") {
|
|
207
|
+
return magic === 2135247942;
|
|
208
|
+
}
|
|
209
|
+
return true;
|
|
210
|
+
} catch {
|
|
211
|
+
return true;
|
|
212
|
+
} finally {
|
|
213
|
+
if (fd !== void 0) {
|
|
214
|
+
try {
|
|
215
|
+
import_node_fs.default.closeSync(fd);
|
|
216
|
+
} catch {
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
function isMachOBinary(magic) {
|
|
222
|
+
return magic === 3489328638 || // MH_CIGAM_64 — 64-bit, byte-swapped (arm64/x64 LE files read as BE)
|
|
223
|
+
magic === 4277009103 || // MH_MAGIC_64 — 64-bit, native byte order
|
|
224
|
+
magic === 3472551422 || // MH_CIGAM — 32-bit, byte-swapped
|
|
225
|
+
magic === 4277009102 || // MH_MAGIC — 32-bit, native byte order
|
|
226
|
+
magic === 3405691582 || // FAT_MAGIC — universal/fat binary
|
|
227
|
+
magic === 3199925962;
|
|
228
|
+
}
|
|
192
229
|
function hasRelayPtyBinary(callerDirname) {
|
|
193
230
|
if (!cacheChecked) {
|
|
194
231
|
cachedBinaryPath = findRelayPtyBinary(callerDirname);
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * from './git-remote.js';
|
|
|
6
6
|
export * from './update-checker.js';
|
|
7
7
|
export * from './error-tracking.js';
|
|
8
8
|
export * from './model-mapping.js';
|
|
9
|
+
export * from './model-commands.js';
|
|
9
10
|
export * from './relay-pty-path.js';
|
|
10
11
|
export * from './client-helpers.js';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export * from './git-remote.js';
|
|
|
6
6
|
export * from './update-checker.js';
|
|
7
7
|
export * from './error-tracking.js';
|
|
8
8
|
export * from './model-mapping.js';
|
|
9
|
+
export * from './model-commands.js';
|
|
9
10
|
export * from './relay-pty-path.js';
|
|
10
11
|
export * from './client-helpers.js';
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Command Registry
|
|
3
|
+
*
|
|
4
|
+
* Maps CLI types to their mid-session model-switch commands.
|
|
5
|
+
* Used by the spawner to send model switch commands to running agents.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Model command configuration for a specific CLI type.
|
|
9
|
+
*/
|
|
10
|
+
export interface ModelCommandConfig {
|
|
11
|
+
/** Whether this CLI supports mid-session model switching */
|
|
12
|
+
supported: boolean;
|
|
13
|
+
/** Function to generate the command string for switching to a given model */
|
|
14
|
+
buildCommand?: (model: string) => string;
|
|
15
|
+
/** Valid model names for this CLI */
|
|
16
|
+
validModels?: string[];
|
|
17
|
+
/** Normalize a model name to the CLI's expected format */
|
|
18
|
+
normalizeModel?: (model: string) => string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get the model command configuration for a CLI type.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getModelCommandConfig(cli: string): ModelCommandConfig;
|
|
24
|
+
/**
|
|
25
|
+
* Check if a CLI type supports mid-session model switching.
|
|
26
|
+
*/
|
|
27
|
+
export declare function isModelSwitchSupported(cli: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Build the command string to switch models for a given CLI.
|
|
30
|
+
* Returns null if the CLI doesn't support model switching.
|
|
31
|
+
*/
|
|
32
|
+
export declare function buildModelSwitchCommand(cli: string, model: string): string | null;
|
|
33
|
+
/**
|
|
34
|
+
* Validate a model name for a given CLI.
|
|
35
|
+
* Returns the normalized model name if valid.
|
|
36
|
+
*/
|
|
37
|
+
export declare function validateModelForCli(cli: string, model: string): {
|
|
38
|
+
valid: boolean;
|
|
39
|
+
error?: string;
|
|
40
|
+
normalizedModel?: string;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=model-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-commands.d.ts","sourceRoot":"","sources":["../src/model-commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C;AAyCD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAGrE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQjF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CAqB9D"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Command Registry
|
|
3
|
+
*
|
|
4
|
+
* Maps CLI types to their mid-session model-switch commands.
|
|
5
|
+
* Used by the spawner to send model switch commands to running agents.
|
|
6
|
+
*/
|
|
7
|
+
/** Model name aliases for Claude Code */
|
|
8
|
+
const CLAUDE_MODEL_ALIASES = {
|
|
9
|
+
'claude-opus-4': 'opus',
|
|
10
|
+
'claude-opus-4.5': 'opus',
|
|
11
|
+
'claude-opus-4-6': 'opus',
|
|
12
|
+
'claude-sonnet-4': 'sonnet',
|
|
13
|
+
'claude-sonnet-4-5': 'sonnet',
|
|
14
|
+
'claude-haiku-3.5': 'haiku',
|
|
15
|
+
'claude-haiku-4.5': 'haiku',
|
|
16
|
+
};
|
|
17
|
+
const CLAUDE_VALID_MODELS = ['opus', 'sonnet', 'haiku'];
|
|
18
|
+
/**
|
|
19
|
+
* Registry of CLI model switch commands.
|
|
20
|
+
* Claude-first; other CLIs can be added as they gain support.
|
|
21
|
+
*/
|
|
22
|
+
const CLI_MODEL_COMMANDS = {
|
|
23
|
+
claude: {
|
|
24
|
+
supported: true,
|
|
25
|
+
buildCommand: (model) => `/model ${model}\n`,
|
|
26
|
+
validModels: [
|
|
27
|
+
...CLAUDE_VALID_MODELS,
|
|
28
|
+
...Object.keys(CLAUDE_MODEL_ALIASES),
|
|
29
|
+
],
|
|
30
|
+
normalizeModel: (model) => {
|
|
31
|
+
const normalized = model.trim().toLowerCase();
|
|
32
|
+
return CLAUDE_MODEL_ALIASES[normalized] ?? normalized;
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
codex: { supported: false },
|
|
36
|
+
gemini: { supported: false },
|
|
37
|
+
droid: { supported: false },
|
|
38
|
+
opencode: { supported: false },
|
|
39
|
+
aider: { supported: false },
|
|
40
|
+
goose: { supported: false },
|
|
41
|
+
cursor: { supported: false },
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Get the model command configuration for a CLI type.
|
|
45
|
+
*/
|
|
46
|
+
export function getModelCommandConfig(cli) {
|
|
47
|
+
const baseCli = cli.split(':')[0].toLowerCase();
|
|
48
|
+
return CLI_MODEL_COMMANDS[baseCli] ?? { supported: false };
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Check if a CLI type supports mid-session model switching.
|
|
52
|
+
*/
|
|
53
|
+
export function isModelSwitchSupported(cli) {
|
|
54
|
+
return getModelCommandConfig(cli).supported;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Build the command string to switch models for a given CLI.
|
|
58
|
+
* Returns null if the CLI doesn't support model switching.
|
|
59
|
+
*/
|
|
60
|
+
export function buildModelSwitchCommand(cli, model) {
|
|
61
|
+
const config = getModelCommandConfig(cli);
|
|
62
|
+
if (!config.supported || !config.buildCommand) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const normalizedModel = config.normalizeModel ? config.normalizeModel(model) : model;
|
|
66
|
+
return config.buildCommand(normalizedModel);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Validate a model name for a given CLI.
|
|
70
|
+
* Returns the normalized model name if valid.
|
|
71
|
+
*/
|
|
72
|
+
export function validateModelForCli(cli, model) {
|
|
73
|
+
const config = getModelCommandConfig(cli);
|
|
74
|
+
if (!config.supported) {
|
|
75
|
+
return {
|
|
76
|
+
valid: false,
|
|
77
|
+
error: `CLI "${cli}" does not support mid-session model switching`,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
const normalizedModel = config.normalizeModel ? config.normalizeModel(model) : model;
|
|
81
|
+
if (config.validModels && !config.validModels.includes(normalizedModel)) {
|
|
82
|
+
const displayModels = config.validModels.filter(m => !m.includes('-')); // Show short names only
|
|
83
|
+
return {
|
|
84
|
+
valid: false,
|
|
85
|
+
error: `Invalid model "${model}" for CLI "${cli}". Valid models: ${displayModels.join(', ')}`,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
return { valid: true, normalizedModel };
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=model-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-commands.js","sourceRoot":"","sources":["../src/model-commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,yCAAyC;AACzC,MAAM,oBAAoB,GAA2B;IACnD,eAAe,EAAE,MAAM;IACvB,iBAAiB,EAAE,MAAM;IACzB,iBAAiB,EAAE,MAAM;IACzB,iBAAiB,EAAE,QAAQ;IAC3B,mBAAmB,EAAE,QAAQ;IAC7B,kBAAkB,EAAE,OAAO;IAC3B,kBAAkB,EAAE,OAAO;CAC5B,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAExD;;;GAGG;AACH,MAAM,kBAAkB,GAAuC;IAC7D,MAAM,EAAE;QACN,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI;QACpD,WAAW,EAAE;YACX,GAAG,mBAAmB;YACtB,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;SACrC;QACD,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE;YAChC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC9C,OAAO,oBAAoB,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;QACxD,CAAC;KACF;IACD,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;IAC3B,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;IAC5B,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;IAC3B,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;IAC9B,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;IAC3B,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;IAC3B,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,OAAO,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAW,EAAE,KAAa;IAChE,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrF,OAAO,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAW,EACX,KAAa;IAEb,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAE1C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,QAAQ,GAAG,gDAAgD;SACnE,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAErF,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACxE,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB;QAChG,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,kBAAkB,KAAK,cAAc,GAAG,oBAAoB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC9F,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-pty-path.d.ts","sourceRoot":"","sources":["../src/relay-pty-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAgCH;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAQ9C;AASD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsLvE;
|
|
1
|
+
{"version":3,"file":"relay-pty-path.d.ts","sourceRoot":"","sources":["../src/relay-pty-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAgCH;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAQ9C;AASD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsLvE;AAoED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAMhE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAEjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
|
package/dist/relay-pty-path.js
CHANGED
|
@@ -83,7 +83,7 @@ export function getLastSearchPaths() {
|
|
|
83
83
|
export function findRelayPtyBinary(callerDirname) {
|
|
84
84
|
// Check for explicit environment variable override first
|
|
85
85
|
const envOverride = process.env.RELAY_PTY_BINARY;
|
|
86
|
-
if (envOverride && isExecutable(envOverride)) {
|
|
86
|
+
if (envOverride && isExecutable(envOverride) && isPlatformCompatibleBinary(envOverride)) {
|
|
87
87
|
lastSearchPaths = [envOverride];
|
|
88
88
|
return envOverride;
|
|
89
89
|
}
|
|
@@ -211,7 +211,7 @@ export function findRelayPtyBinary(callerDirname) {
|
|
|
211
211
|
// Store search paths for debugging
|
|
212
212
|
lastSearchPaths = candidates;
|
|
213
213
|
for (const candidate of candidates) {
|
|
214
|
-
if (isExecutable(candidate)) {
|
|
214
|
+
if (isExecutable(candidate) && isPlatformCompatibleBinary(candidate)) {
|
|
215
215
|
return candidate;
|
|
216
216
|
}
|
|
217
217
|
}
|
|
@@ -230,6 +230,58 @@ function isExecutable(filePath) {
|
|
|
230
230
|
return false;
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
|
+
/**
|
|
234
|
+
* Check if a binary is compatible with the current platform by reading its magic bytes.
|
|
235
|
+
* Prevents using a macOS binary on Linux or vice versa, which would fail at runtime
|
|
236
|
+
* with cryptic errors like "Syntax error: word unexpected".
|
|
237
|
+
*/
|
|
238
|
+
function isPlatformCompatibleBinary(filePath) {
|
|
239
|
+
let fd;
|
|
240
|
+
try {
|
|
241
|
+
fd = fs.openSync(filePath, 'r');
|
|
242
|
+
const header = Buffer.alloc(4);
|
|
243
|
+
const bytesRead = fs.readSync(fd, header, 0, 4, 0);
|
|
244
|
+
if (bytesRead < 4) {
|
|
245
|
+
return false; // Too small to be a valid binary
|
|
246
|
+
}
|
|
247
|
+
const magic = header.readUInt32BE(0);
|
|
248
|
+
const platform = os.platform();
|
|
249
|
+
if (platform === 'darwin') {
|
|
250
|
+
return isMachOBinary(magic);
|
|
251
|
+
}
|
|
252
|
+
if (platform === 'linux') {
|
|
253
|
+
// ELF magic: 0x7f 'E' 'L' 'F'
|
|
254
|
+
return magic === 0x7f454c46;
|
|
255
|
+
}
|
|
256
|
+
// Unknown platform — don't block
|
|
257
|
+
return true;
|
|
258
|
+
}
|
|
259
|
+
catch {
|
|
260
|
+
// Can't read file (e.g. execute-only permissions) — let execution attempt proceed
|
|
261
|
+
return true;
|
|
262
|
+
}
|
|
263
|
+
finally {
|
|
264
|
+
if (fd !== undefined) {
|
|
265
|
+
try {
|
|
266
|
+
fs.closeSync(fd);
|
|
267
|
+
}
|
|
268
|
+
catch { /* ignore close errors */ }
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Check if a magic value corresponds to any valid Mach-O format.
|
|
274
|
+
* Handles all variants: 32/64-bit, native/byte-swapped, and fat/universal.
|
|
275
|
+
*/
|
|
276
|
+
function isMachOBinary(magic) {
|
|
277
|
+
return (magic === 0xcffaedfe || // MH_CIGAM_64 — 64-bit, byte-swapped (arm64/x64 LE files read as BE)
|
|
278
|
+
magic === 0xfeedfacf || // MH_MAGIC_64 — 64-bit, native byte order
|
|
279
|
+
magic === 0xcefaedfe || // MH_CIGAM — 32-bit, byte-swapped
|
|
280
|
+
magic === 0xfeedface || // MH_MAGIC — 32-bit, native byte order
|
|
281
|
+
magic === 0xcafebabe || // FAT_MAGIC — universal/fat binary
|
|
282
|
+
magic === 0xbebafeca // FAT_CIGAM — universal/fat binary, byte-swapped
|
|
283
|
+
);
|
|
284
|
+
}
|
|
233
285
|
/**
|
|
234
286
|
* Check if relay-pty binary is available (cached).
|
|
235
287
|
* Returns true if the binary exists, false otherwise.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-pty-path.js","sourceRoot":"","sources":["../src/relay-pty-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;GAGG;AACH,MAAM,mBAAmB,GAA2C;IAClE,MAAM,EAAE;QACN,KAAK,EAAE,wBAAwB;QAC/B,GAAG,EAAE,sBAAsB;KAC5B;IACD,KAAK,EAAE;QACL,KAAK,EAAE,uBAAuB;QAC9B,GAAG,EAAE,qBAAqB;KAC3B;CACF,CAAC;AAEF;;;GAGG;AACH,SAAS,qBAAqB;IAC5B,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAEvB,OAAO,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACvB,OAAO,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC9D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,8CAA8C;AAC9C,IAAI,gBAA2C,CAAC;AAChD,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB,kDAAkD;AAClD,IAAI,eAAe,GAAa,EAAE,CAAC;AAEnC;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,aAAqB;IACtD,yDAAyD;IACzD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACjD,IAAI,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"relay-pty-path.js","sourceRoot":"","sources":["../src/relay-pty-path.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-relay/utils",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.23-beta.0",
|
|
4
4
|
"description": "Shared utilities for agent-relay: logging, name generation, command resolution, update checking",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -60,6 +60,12 @@
|
|
|
60
60
|
"import": "./dist/model-mapping.js",
|
|
61
61
|
"default": "./dist/cjs/model-mapping.js"
|
|
62
62
|
},
|
|
63
|
+
"./model-commands": {
|
|
64
|
+
"types": "./dist/model-commands.d.ts",
|
|
65
|
+
"require": "./dist/cjs/model-commands.js",
|
|
66
|
+
"import": "./dist/model-commands.js",
|
|
67
|
+
"default": "./dist/cjs/model-commands.js"
|
|
68
|
+
},
|
|
63
69
|
"./relay-pty-path": {
|
|
64
70
|
"types": "./dist/relay-pty-path.d.ts",
|
|
65
71
|
"require": "./dist/cjs/relay-pty-path.js",
|
|
@@ -106,8 +112,8 @@
|
|
|
106
112
|
"vitest": "^3.2.4"
|
|
107
113
|
},
|
|
108
114
|
"dependencies": {
|
|
109
|
-
"@agent-relay/config": "2.1.
|
|
110
|
-
"@agent-relay/protocol": "2.1.
|
|
115
|
+
"@agent-relay/config": "2.1.23-beta.0",
|
|
116
|
+
"@agent-relay/protocol": "2.1.23-beta.0",
|
|
111
117
|
"compare-versions": "^6.1.1"
|
|
112
118
|
},
|
|
113
119
|
"publishConfig": {
|