agent-relay 2.0.37 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +32003 -33977
- package/dist/src/cli/index.js +36 -51
- package/dist/src/cli/index.js.map +1 -1
- package/package.json +18 -19
- package/packages/api-types/package.json +1 -1
- package/packages/benchmark/package.json +4 -4
- package/packages/bridge/package.json +8 -8
- package/packages/cli-tester/package.json +1 -1
- package/packages/config/dist/project-namespace.d.ts +28 -0
- package/packages/config/dist/project-namespace.d.ts.map +1 -1
- package/packages/config/dist/project-namespace.js +42 -0
- package/packages/config/dist/project-namespace.js.map +1 -1
- package/packages/config/package.json +2 -2
- package/packages/config/src/project-namespace.ts +65 -0
- package/packages/continuity/dist/formatter.d.ts +8 -2
- package/packages/continuity/dist/formatter.d.ts.map +1 -1
- package/packages/continuity/dist/formatter.js +142 -7
- package/packages/continuity/dist/formatter.js.map +1 -1
- package/packages/continuity/dist/index.d.ts +1 -0
- package/packages/continuity/dist/index.d.ts.map +1 -1
- package/packages/continuity/dist/index.js +2 -0
- package/packages/continuity/dist/index.js.map +1 -1
- package/packages/continuity/package.json +4 -1
- package/packages/continuity/src/formatter.ts +175 -10
- package/packages/continuity/src/index.ts +3 -0
- package/packages/daemon/dist/enhanced-features.d.ts +2 -3
- package/packages/daemon/dist/enhanced-features.d.ts.map +1 -1
- package/packages/daemon/dist/enhanced-features.js +1 -0
- package/packages/daemon/dist/enhanced-features.js.map +1 -1
- package/packages/daemon/dist/index.d.ts +0 -2
- package/packages/daemon/dist/index.d.ts.map +1 -1
- package/packages/daemon/dist/index.js +0 -3
- package/packages/daemon/dist/index.js.map +1 -1
- package/packages/daemon/dist/server.d.ts +0 -6
- package/packages/daemon/dist/server.d.ts.map +1 -1
- package/packages/daemon/dist/server.js +20 -119
- package/packages/daemon/dist/server.js.map +1 -1
- package/packages/daemon/package.json +12 -14
- package/packages/daemon/src/enhanced-features.ts +4 -4
- package/packages/daemon/src/index.ts +0 -4
- package/packages/daemon/src/server.ts +19 -127
- package/packages/daemon/vitest.config.ts +9 -0
- package/packages/hooks/package.json +4 -4
- package/packages/mcp/package.json +3 -3
- package/packages/memory/package.json +2 -2
- package/packages/policy/package.json +2 -2
- package/packages/protocol/package.json +1 -1
- package/packages/resiliency/package.json +1 -1
- package/packages/sdk/package.json +2 -2
- package/packages/spawner/package.json +1 -1
- package/packages/state/package.json +1 -1
- package/packages/storage/dist/adapter.d.ts +5 -5
- package/packages/storage/dist/adapter.js +9 -9
- package/packages/storage/dist/adapter.js.map +1 -1
- package/packages/storage/package.json +2 -2
- package/packages/storage/src/adapter.ts +9 -9
- package/packages/telemetry/package.json +1 -1
- package/packages/trajectory/package.json +2 -2
- package/packages/user-directory/package.json +2 -2
- package/packages/utils/dist/cjs/relay-pty-path.js +111 -55
- package/packages/utils/dist/relay-pty-path.d.ts +17 -12
- package/packages/utils/dist/relay-pty-path.d.ts.map +1 -1
- package/packages/utils/dist/relay-pty-path.js +144 -94
- package/packages/utils/dist/relay-pty-path.js.map +1 -1
- package/packages/utils/package.json +2 -2
- package/packages/utils/src/relay-pty-path.test.ts +373 -0
- package/packages/utils/src/relay-pty-path.ts +182 -91
- package/packages/wrapper/package.json +6 -6
- package/scripts/build-cjs.mjs +2 -0
- package/packages/daemon/dist/migrations/index.d.ts +0 -73
- package/packages/daemon/dist/migrations/index.d.ts.map +0 -1
- package/packages/daemon/dist/migrations/index.js +0 -241
- package/packages/daemon/dist/migrations/index.js.map +0 -1
- package/packages/daemon/dist/relay-ledger.d.ts +0 -263
- package/packages/daemon/dist/relay-ledger.d.ts.map +0 -1
- package/packages/daemon/dist/relay-ledger.js +0 -538
- package/packages/daemon/dist/relay-ledger.js.map +0 -1
- package/packages/daemon/dist/relay-watchdog.d.ts +0 -125
- package/packages/daemon/dist/relay-watchdog.d.ts.map +0 -1
- package/packages/daemon/dist/relay-watchdog.js +0 -611
- package/packages/daemon/dist/relay-watchdog.js.map +0 -1
- package/packages/daemon/src/migrations/0001_initial.sql +0 -72
- package/packages/daemon/src/migrations/index.test.ts +0 -195
- package/packages/daemon/src/migrations/index.ts +0 -286
- package/packages/daemon/src/relay-ledger.test.ts +0 -358
- package/packages/daemon/src/relay-ledger.ts +0 -713
- package/packages/daemon/src/relay-watchdog.test.ts +0 -881
- package/packages/daemon/src/relay-watchdog.ts +0 -785
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-relay/sdk",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "Lightweight SDK for agent-to-agent communication via Agent Relay",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"access": "public"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@agent-relay/protocol": "2.
|
|
58
|
+
"@agent-relay/protocol": "2.1.1"
|
|
59
59
|
},
|
|
60
60
|
"engines": {
|
|
61
61
|
"node": ">=18.0.0"
|
|
@@ -169,17 +169,17 @@ export declare function getStorageConfigFromEnv(): StorageConfig;
|
|
|
169
169
|
* Configuration priority:
|
|
170
170
|
* 1. Explicit config passed to function
|
|
171
171
|
* 2. Environment variables (AGENT_RELAY_STORAGE_TYPE, AGENT_RELAY_STORAGE_PATH, AGENT_RELAY_STORAGE_URL)
|
|
172
|
-
* 3. Default:
|
|
172
|
+
* 3. Default: JSONL (no native dependencies)
|
|
173
173
|
*
|
|
174
174
|
* Fallback strategy:
|
|
175
|
-
* -
|
|
176
|
-
* -
|
|
175
|
+
* - Default to JSONL (no native dependencies required)
|
|
176
|
+
* - SQLite available via --storage=sqlite flag (requires better-sqlite3 or Node 22+)
|
|
177
177
|
* - If all durable adapters fail, keep daemon running via memory (non-persistent) with guidance
|
|
178
178
|
*
|
|
179
179
|
* Supported storage types:
|
|
180
|
-
* - '
|
|
180
|
+
* - 'jsonl' (default): Append-only JSONL files (no native deps)
|
|
181
|
+
* - 'sqlite': SQLite file-based storage (requires better-sqlite3 or Node 22+)
|
|
181
182
|
* - 'sqlite-batched': SQLite with buffered writes
|
|
182
|
-
* - 'jsonl': Append-only JSONL files (durable fallback)
|
|
183
183
|
* - 'none' or 'memory': In-memory storage (no persistence)
|
|
184
184
|
* - 'postgres': PostgreSQL (requires AGENT_RELAY_STORAGE_URL) - future
|
|
185
185
|
*/
|
|
@@ -133,17 +133,17 @@ export function getStorageConfigFromEnv() {
|
|
|
133
133
|
* Configuration priority:
|
|
134
134
|
* 1. Explicit config passed to function
|
|
135
135
|
* 2. Environment variables (AGENT_RELAY_STORAGE_TYPE, AGENT_RELAY_STORAGE_PATH, AGENT_RELAY_STORAGE_URL)
|
|
136
|
-
* 3. Default:
|
|
136
|
+
* 3. Default: JSONL (no native dependencies)
|
|
137
137
|
*
|
|
138
138
|
* Fallback strategy:
|
|
139
|
-
* -
|
|
140
|
-
* -
|
|
139
|
+
* - Default to JSONL (no native dependencies required)
|
|
140
|
+
* - SQLite available via --storage=sqlite flag (requires better-sqlite3 or Node 22+)
|
|
141
141
|
* - If all durable adapters fail, keep daemon running via memory (non-persistent) with guidance
|
|
142
142
|
*
|
|
143
143
|
* Supported storage types:
|
|
144
|
-
* - '
|
|
144
|
+
* - 'jsonl' (default): Append-only JSONL files (no native deps)
|
|
145
|
+
* - 'sqlite': SQLite file-based storage (requires better-sqlite3 or Node 22+)
|
|
145
146
|
* - 'sqlite-batched': SQLite with buffered writes
|
|
146
|
-
* - 'jsonl': Append-only JSONL files (durable fallback)
|
|
147
147
|
* - 'none' or 'memory': In-memory storage (no persistence)
|
|
148
148
|
* - 'postgres': PostgreSQL (requires AGENT_RELAY_STORAGE_URL) - future
|
|
149
149
|
*/
|
|
@@ -151,7 +151,7 @@ export async function createStorageAdapter(dbPath, config) {
|
|
|
151
151
|
// Merge with env config, explicit config takes priority
|
|
152
152
|
const envConfig = getStorageConfigFromEnv();
|
|
153
153
|
const finalConfig = {
|
|
154
|
-
type: config?.type ?? envConfig.type ?? '
|
|
154
|
+
type: config?.type ?? envConfig.type ?? 'jsonl',
|
|
155
155
|
path: config?.path ?? envConfig.path ?? dbPath,
|
|
156
156
|
url: config?.url ?? envConfig.url,
|
|
157
157
|
};
|
|
@@ -159,7 +159,7 @@ export async function createStorageAdapter(dbPath, config) {
|
|
|
159
159
|
switch (storageType) {
|
|
160
160
|
case 'none':
|
|
161
161
|
case 'memory': {
|
|
162
|
-
console.
|
|
162
|
+
console.error('[storage] Using in-memory storage (no persistence)');
|
|
163
163
|
const adapter = new MemoryStorageAdapter();
|
|
164
164
|
await adapter.init();
|
|
165
165
|
return adapter;
|
|
@@ -175,7 +175,7 @@ export async function createStorageAdapter(dbPath, config) {
|
|
|
175
175
|
case 'sqlite-batched':
|
|
176
176
|
case 'batched': {
|
|
177
177
|
try {
|
|
178
|
-
console.
|
|
178
|
+
console.error('[storage] Using batched SQLite storage');
|
|
179
179
|
const { BatchedSqliteAdapter } = await import('./batched-sqlite-adapter.js');
|
|
180
180
|
const adapter = new BatchedSqliteAdapter({
|
|
181
181
|
dbPath: finalConfig.path,
|
|
@@ -215,7 +215,7 @@ export async function createStorageAdapter(dbPath, config) {
|
|
|
215
215
|
case 'jsonl': {
|
|
216
216
|
const { JsonlStorageAdapter } = await import('./jsonl-adapter.js');
|
|
217
217
|
const baseDir = path.dirname(finalConfig.path);
|
|
218
|
-
console.
|
|
218
|
+
console.error('[storage] Using JSONL storage');
|
|
219
219
|
const adapter = new JsonlStorageAdapter({ baseDir });
|
|
220
220
|
await adapter.init();
|
|
221
221
|
return adapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-relay/storage",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "Storage adapters and interfaces for Relay message/session persistence",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
}
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@agent-relay/protocol": "2.
|
|
59
|
+
"@agent-relay/protocol": "2.1.1"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@types/node": "^22.19.3",
|
|
@@ -298,17 +298,17 @@ export function getStorageConfigFromEnv(): StorageConfig {
|
|
|
298
298
|
* Configuration priority:
|
|
299
299
|
* 1. Explicit config passed to function
|
|
300
300
|
* 2. Environment variables (AGENT_RELAY_STORAGE_TYPE, AGENT_RELAY_STORAGE_PATH, AGENT_RELAY_STORAGE_URL)
|
|
301
|
-
* 3. Default:
|
|
301
|
+
* 3. Default: JSONL (no native dependencies)
|
|
302
302
|
*
|
|
303
303
|
* Fallback strategy:
|
|
304
|
-
* -
|
|
305
|
-
* -
|
|
304
|
+
* - Default to JSONL (no native dependencies required)
|
|
305
|
+
* - SQLite available via --storage=sqlite flag (requires better-sqlite3 or Node 22+)
|
|
306
306
|
* - If all durable adapters fail, keep daemon running via memory (non-persistent) with guidance
|
|
307
307
|
*
|
|
308
308
|
* Supported storage types:
|
|
309
|
-
* - '
|
|
309
|
+
* - 'jsonl' (default): Append-only JSONL files (no native deps)
|
|
310
|
+
* - 'sqlite': SQLite file-based storage (requires better-sqlite3 or Node 22+)
|
|
310
311
|
* - 'sqlite-batched': SQLite with buffered writes
|
|
311
|
-
* - 'jsonl': Append-only JSONL files (durable fallback)
|
|
312
312
|
* - 'none' or 'memory': In-memory storage (no persistence)
|
|
313
313
|
* - 'postgres': PostgreSQL (requires AGENT_RELAY_STORAGE_URL) - future
|
|
314
314
|
*/
|
|
@@ -319,7 +319,7 @@ export async function createStorageAdapter(
|
|
|
319
319
|
// Merge with env config, explicit config takes priority
|
|
320
320
|
const envConfig = getStorageConfigFromEnv();
|
|
321
321
|
const finalConfig: StorageConfig = {
|
|
322
|
-
type: config?.type ?? envConfig.type ?? '
|
|
322
|
+
type: config?.type ?? envConfig.type ?? 'jsonl',
|
|
323
323
|
path: config?.path ?? envConfig.path ?? dbPath,
|
|
324
324
|
url: config?.url ?? envConfig.url,
|
|
325
325
|
};
|
|
@@ -329,7 +329,7 @@ export async function createStorageAdapter(
|
|
|
329
329
|
switch (storageType) {
|
|
330
330
|
case 'none':
|
|
331
331
|
case 'memory': {
|
|
332
|
-
console.
|
|
332
|
+
console.error('[storage] Using in-memory storage (no persistence)');
|
|
333
333
|
const adapter = new MemoryStorageAdapter();
|
|
334
334
|
await adapter.init();
|
|
335
335
|
return adapter;
|
|
@@ -351,7 +351,7 @@ export async function createStorageAdapter(
|
|
|
351
351
|
case 'sqlite-batched':
|
|
352
352
|
case 'batched': {
|
|
353
353
|
try {
|
|
354
|
-
console.
|
|
354
|
+
console.error('[storage] Using batched SQLite storage');
|
|
355
355
|
const { BatchedSqliteAdapter } = await import('./batched-sqlite-adapter.js');
|
|
356
356
|
const adapter = new BatchedSqliteAdapter({
|
|
357
357
|
dbPath: finalConfig.path!,
|
|
@@ -392,7 +392,7 @@ export async function createStorageAdapter(
|
|
|
392
392
|
case 'jsonl': {
|
|
393
393
|
const { JsonlStorageAdapter } = await import('./jsonl-adapter.js');
|
|
394
394
|
const baseDir = path.dirname(finalConfig.path!);
|
|
395
|
-
console.
|
|
395
|
+
console.error('[storage] Using JSONL storage');
|
|
396
396
|
const adapter = new JsonlStorageAdapter({ baseDir });
|
|
397
397
|
await adapter.init();
|
|
398
398
|
return adapter;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-relay/trajectory",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "Trajectory integration utilities (trail/PDERO) for Relay",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"test:watch": "vitest"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@agent-relay/config": "2.
|
|
25
|
+
"@agent-relay/config": "2.1.1"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^22.19.3",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-relay/user-directory",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "User directory service for agent-relay (per-user credential storage)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"test:watch": "vitest"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@agent-relay/resiliency": "2.
|
|
25
|
+
"@agent-relay/resiliency": "2.1.1"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^22.19.3",
|
|
@@ -32,20 +32,42 @@ __export(relay_pty_path_exports, {
|
|
|
32
32
|
findRelayPtyBinary: () => findRelayPtyBinary,
|
|
33
33
|
getCachedRelayPtyPath: () => getCachedRelayPtyPath,
|
|
34
34
|
getLastSearchPaths: () => getLastSearchPaths,
|
|
35
|
-
|
|
35
|
+
getSupportedPlatforms: () => getSupportedPlatforms,
|
|
36
|
+
hasRelayPtyBinary: () => hasRelayPtyBinary,
|
|
37
|
+
isPlatformSupported: () => isPlatformSupported
|
|
36
38
|
});
|
|
37
39
|
module.exports = __toCommonJS(relay_pty_path_exports);
|
|
38
40
|
var import_node_fs = __toESM(require("node:fs"), 1);
|
|
39
41
|
var import_node_os = __toESM(require("node:os"), 1);
|
|
40
42
|
var import_node_path = __toESM(require("node:path"), 1);
|
|
43
|
+
const SUPPORTED_PLATFORMS = {
|
|
44
|
+
darwin: {
|
|
45
|
+
arm64: "relay-pty-darwin-arm64",
|
|
46
|
+
x64: "relay-pty-darwin-x64"
|
|
47
|
+
},
|
|
48
|
+
linux: {
|
|
49
|
+
arm64: "relay-pty-linux-arm64",
|
|
50
|
+
x64: "relay-pty-linux-x64"
|
|
51
|
+
}
|
|
52
|
+
};
|
|
41
53
|
function getPlatformBinaryName() {
|
|
42
54
|
const platform = import_node_os.default.platform();
|
|
43
55
|
const arch = import_node_os.default.arch();
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
56
|
+
return SUPPORTED_PLATFORMS[platform]?.[arch] ?? null;
|
|
57
|
+
}
|
|
58
|
+
function isPlatformSupported() {
|
|
59
|
+
const platform = import_node_os.default.platform();
|
|
60
|
+
const arch = import_node_os.default.arch();
|
|
61
|
+
return SUPPORTED_PLATFORMS[platform]?.[arch] !== void 0;
|
|
62
|
+
}
|
|
63
|
+
function getSupportedPlatforms() {
|
|
64
|
+
const platforms = [];
|
|
65
|
+
for (const [os2, archs] of Object.entries(SUPPORTED_PLATFORMS)) {
|
|
66
|
+
for (const arch of Object.keys(archs)) {
|
|
67
|
+
platforms.push(`${os2}-${arch}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return platforms.join(", ");
|
|
49
71
|
}
|
|
50
72
|
let cachedBinaryPath;
|
|
51
73
|
let cacheChecked = false;
|
|
@@ -55,70 +77,102 @@ function getLastSearchPaths() {
|
|
|
55
77
|
}
|
|
56
78
|
function findRelayPtyBinary(callerDirname) {
|
|
57
79
|
const envOverride = process.env.RELAY_PTY_BINARY;
|
|
58
|
-
if (envOverride &&
|
|
80
|
+
if (envOverride && isExecutable(envOverride)) {
|
|
59
81
|
lastSearchPaths = [envOverride];
|
|
60
82
|
return envOverride;
|
|
61
83
|
}
|
|
62
|
-
let packageRoot;
|
|
63
|
-
if (callerDirname.includes("node_modules/@agent-relay/")) {
|
|
64
|
-
packageRoot = import_node_path.default.join(callerDirname, "..", "..", "..", "..");
|
|
65
|
-
} else if (callerDirname.includes("node_modules/agent-relay")) {
|
|
66
|
-
packageRoot = import_node_path.default.join(callerDirname, "..", "..", "..");
|
|
67
|
-
} else {
|
|
68
|
-
packageRoot = import_node_path.default.join(callerDirname, "..", "..", "..");
|
|
69
|
-
}
|
|
70
|
-
let nodeModulesRoot = null;
|
|
71
|
-
const nodeModulesMatch = callerDirname.match(/^(.+?\/node_modules)\/@agent-relay\//);
|
|
72
|
-
if (nodeModulesMatch) {
|
|
73
|
-
nodeModulesRoot = nodeModulesMatch[1];
|
|
74
|
-
}
|
|
75
84
|
const platformBinary = getPlatformBinaryName();
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
import_node_path.default.join(
|
|
82
|
-
// Local build in cwd (for development)
|
|
83
|
-
import_node_path.default.join(process.cwd(), "relay-pty", "target", "release", "relay-pty"),
|
|
84
|
-
// Docker container (CI tests)
|
|
85
|
-
"/app/bin/relay-pty",
|
|
86
|
-
// Installed globally
|
|
87
|
-
"/usr/local/bin/relay-pty",
|
|
88
|
-
// In node_modules (when installed as local dependency)
|
|
89
|
-
import_node_path.default.join(process.cwd(), "node_modules", "agent-relay", "bin", "relay-pty"),
|
|
90
|
-
// Global npm install (nvm) - root package
|
|
91
|
-
import_node_path.default.join(process.env.HOME || "", ".nvm", "versions", "node", process.version, "lib", "node_modules", "agent-relay", "bin", "relay-pty")
|
|
92
|
-
];
|
|
93
|
-
if (nodeModulesRoot) {
|
|
94
|
-
candidates.push(import_node_path.default.join(nodeModulesRoot, "agent-relay", "bin", "relay-pty"));
|
|
85
|
+
const normalizedCaller = callerDirname.replace(/\\/g, "/");
|
|
86
|
+
const packageRoots = [];
|
|
87
|
+
const scopedMatch = normalizedCaller.match(/^(.+?\/node_modules)\/@agent-relay\//);
|
|
88
|
+
const directMatch = normalizedCaller.match(/^(.+?\/node_modules\/agent-relay)/);
|
|
89
|
+
if (scopedMatch) {
|
|
90
|
+
packageRoots.push(import_node_path.default.join(scopedMatch[1], "agent-relay"));
|
|
95
91
|
}
|
|
96
|
-
if (
|
|
97
|
-
|
|
98
|
-
candidates.push(import_node_path.default.join("/opt/homebrew/lib/node_modules", "agent-relay", "bin", "relay-pty"));
|
|
99
|
-
candidates.push(import_node_path.default.join(process.env.HOME, ".local", "share", "pnpm", "global", "node_modules", "agent-relay", "bin", "relay-pty"));
|
|
92
|
+
if (directMatch) {
|
|
93
|
+
packageRoots.push(directMatch[1]);
|
|
100
94
|
}
|
|
101
|
-
if (
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
95
|
+
if (!normalizedCaller.includes("node_modules")) {
|
|
96
|
+
packageRoots.push(import_node_path.default.join(callerDirname, "..", "..", ".."));
|
|
97
|
+
}
|
|
98
|
+
const home = process.env.HOME || process.env.USERPROFILE || "";
|
|
99
|
+
if (home) {
|
|
100
|
+
const npxCacheBase = import_node_path.default.join(home, ".npm", "_npx");
|
|
101
|
+
if (import_node_fs.default.existsSync(npxCacheBase)) {
|
|
102
|
+
try {
|
|
103
|
+
const entries = import_node_fs.default.readdirSync(npxCacheBase);
|
|
104
|
+
for (const entry of entries) {
|
|
105
|
+
const npxPackage = import_node_path.default.join(npxCacheBase, entry, "node_modules", "agent-relay");
|
|
106
|
+
if (import_node_fs.default.existsSync(npxPackage)) {
|
|
107
|
+
packageRoots.push(npxPackage);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
} catch {
|
|
111
|
+
}
|
|
107
112
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
113
|
+
}
|
|
114
|
+
packageRoots.push(import_node_path.default.join(process.cwd(), "node_modules", "agent-relay"));
|
|
115
|
+
if (home) {
|
|
116
|
+
packageRoots.push(
|
|
117
|
+
import_node_path.default.join(home, ".nvm", "versions", "node", process.version, "lib", "node_modules", "agent-relay")
|
|
118
|
+
);
|
|
119
|
+
packageRoots.push(
|
|
120
|
+
import_node_path.default.join(home, ".volta", "tools", "image", "packages", "agent-relay", "lib", "node_modules", "agent-relay")
|
|
121
|
+
);
|
|
122
|
+
packageRoots.push(
|
|
123
|
+
import_node_path.default.join(home, ".fnm", "node-versions", process.version, "installation", "lib", "node_modules", "agent-relay")
|
|
124
|
+
);
|
|
125
|
+
packageRoots.push(
|
|
126
|
+
import_node_path.default.join(home, "n", "lib", "node_modules", "agent-relay")
|
|
127
|
+
);
|
|
128
|
+
packageRoots.push(
|
|
129
|
+
import_node_path.default.join(home, ".asdf", "installs", "nodejs", process.version.replace("v", ""), "lib", "node_modules", "agent-relay")
|
|
130
|
+
);
|
|
131
|
+
packageRoots.push(
|
|
132
|
+
import_node_path.default.join(home, ".local", "share", "pnpm", "global", "node_modules", "agent-relay")
|
|
133
|
+
);
|
|
134
|
+
packageRoots.push(
|
|
135
|
+
import_node_path.default.join(home, ".config", "yarn", "global", "node_modules", "agent-relay")
|
|
136
|
+
);
|
|
137
|
+
packageRoots.push(
|
|
138
|
+
import_node_path.default.join(home, ".yarn", "global", "node_modules", "agent-relay")
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
packageRoots.push("/usr/local/lib/node_modules/agent-relay");
|
|
142
|
+
packageRoots.push("/opt/homebrew/lib/node_modules/agent-relay");
|
|
143
|
+
packageRoots.push("/usr/lib/node_modules/agent-relay");
|
|
144
|
+
const candidates = [];
|
|
145
|
+
for (const root of packageRoots) {
|
|
146
|
+
if (platformBinary) {
|
|
147
|
+
candidates.push(import_node_path.default.join(root, "bin", platformBinary));
|
|
112
148
|
}
|
|
149
|
+
candidates.push(import_node_path.default.join(root, "bin", "relay-pty"));
|
|
150
|
+
}
|
|
151
|
+
const devRoot = normalizedCaller.includes("node_modules") ? null : import_node_path.default.join(callerDirname, "..", "..", "..");
|
|
152
|
+
if (devRoot) {
|
|
153
|
+
candidates.push(import_node_path.default.join(devRoot, "relay-pty", "target", "release", "relay-pty"));
|
|
154
|
+
candidates.push(import_node_path.default.join(devRoot, "relay-pty", "target", "debug", "relay-pty"));
|
|
113
155
|
}
|
|
156
|
+
candidates.push(import_node_path.default.join(process.cwd(), "relay-pty", "target", "release", "relay-pty"));
|
|
157
|
+
candidates.push("/app/bin/relay-pty");
|
|
158
|
+
candidates.push("/usr/local/bin/relay-pty");
|
|
159
|
+
candidates.push("/usr/bin/relay-pty");
|
|
114
160
|
lastSearchPaths = candidates;
|
|
115
161
|
for (const candidate of candidates) {
|
|
116
|
-
if (
|
|
162
|
+
if (isExecutable(candidate)) {
|
|
117
163
|
return candidate;
|
|
118
164
|
}
|
|
119
165
|
}
|
|
120
166
|
return null;
|
|
121
167
|
}
|
|
168
|
+
function isExecutable(filePath) {
|
|
169
|
+
try {
|
|
170
|
+
import_node_fs.default.accessSync(filePath, import_node_fs.default.constants.X_OK);
|
|
171
|
+
return true;
|
|
172
|
+
} catch {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
122
176
|
function hasRelayPtyBinary(callerDirname) {
|
|
123
177
|
if (!cacheChecked) {
|
|
124
178
|
cachedBinaryPath = findRelayPtyBinary(callerDirname);
|
|
@@ -139,5 +193,7 @@ function clearBinaryCache() {
|
|
|
139
193
|
findRelayPtyBinary,
|
|
140
194
|
getCachedRelayPtyPath,
|
|
141
195
|
getLastSearchPaths,
|
|
142
|
-
|
|
196
|
+
getSupportedPlatforms,
|
|
197
|
+
hasRelayPtyBinary,
|
|
198
|
+
isPlatformSupported
|
|
143
199
|
});
|
|
@@ -5,12 +5,22 @@
|
|
|
5
5
|
* - packages/bridge/src/spawner.ts (AgentSpawner)
|
|
6
6
|
* - packages/wrapper/src/relay-pty-orchestrator.ts (RelayPtyOrchestrator)
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
8
|
+
* Supports all installation scenarios:
|
|
9
|
+
* - npx agent-relay (no postinstall, uses platform-specific binary)
|
|
10
|
+
* - npm install -g agent-relay (nvm, volta, fnm, n, asdf, Homebrew, system)
|
|
11
|
+
* - npm install agent-relay (local project)
|
|
12
|
+
* - pnpm/yarn global
|
|
13
|
+
* - Development (monorepo with Rust builds)
|
|
14
|
+
* - Docker containers
|
|
13
15
|
*/
|
|
16
|
+
/**
|
|
17
|
+
* Check if the current platform is supported.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isPlatformSupported(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Get a human-readable description of supported platforms.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getSupportedPlatforms(): string;
|
|
14
24
|
/**
|
|
15
25
|
* Get the paths that were checked in the last binary search.
|
|
16
26
|
* Useful for debugging when the binary is not found.
|
|
@@ -19,13 +29,8 @@ export declare function getLastSearchPaths(): string[];
|
|
|
19
29
|
/**
|
|
20
30
|
* Find the relay-pty binary.
|
|
21
31
|
*
|
|
22
|
-
* Search order
|
|
23
|
-
*
|
|
24
|
-
* 2. bin/relay-pty in package root (installed by postinstall)
|
|
25
|
-
* 3. relay-pty/target/release/relay-pty (local Rust build)
|
|
26
|
-
* 4. /usr/local/bin/relay-pty (global install)
|
|
27
|
-
* 5. In node_modules when installed as dependency
|
|
28
|
-
* 6. Global npm installs (nvm) - both scoped and root packages
|
|
32
|
+
* Search order prioritizes platform-specific binaries FIRST because npx doesn't run postinstall.
|
|
33
|
+
* This ensures `npx agent-relay up` works without requiring global installation.
|
|
29
34
|
*
|
|
30
35
|
* @param callerDirname - The __dirname of the calling module (needed to resolve relative paths)
|
|
31
36
|
* @returns Path to relay-pty binary, or null if not found
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-pty-path.d.ts","sourceRoot":"","sources":["../src/relay-pty-path.ts"],"names":[],"mappings":"AAAA
|
|
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,CAuJvE;AAeD;;;;;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"}
|