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.
Files changed (88) hide show
  1. package/dist/index.cjs +32003 -33977
  2. package/dist/src/cli/index.js +36 -51
  3. package/dist/src/cli/index.js.map +1 -1
  4. package/package.json +18 -19
  5. package/packages/api-types/package.json +1 -1
  6. package/packages/benchmark/package.json +4 -4
  7. package/packages/bridge/package.json +8 -8
  8. package/packages/cli-tester/package.json +1 -1
  9. package/packages/config/dist/project-namespace.d.ts +28 -0
  10. package/packages/config/dist/project-namespace.d.ts.map +1 -1
  11. package/packages/config/dist/project-namespace.js +42 -0
  12. package/packages/config/dist/project-namespace.js.map +1 -1
  13. package/packages/config/package.json +2 -2
  14. package/packages/config/src/project-namespace.ts +65 -0
  15. package/packages/continuity/dist/formatter.d.ts +8 -2
  16. package/packages/continuity/dist/formatter.d.ts.map +1 -1
  17. package/packages/continuity/dist/formatter.js +142 -7
  18. package/packages/continuity/dist/formatter.js.map +1 -1
  19. package/packages/continuity/dist/index.d.ts +1 -0
  20. package/packages/continuity/dist/index.d.ts.map +1 -1
  21. package/packages/continuity/dist/index.js +2 -0
  22. package/packages/continuity/dist/index.js.map +1 -1
  23. package/packages/continuity/package.json +4 -1
  24. package/packages/continuity/src/formatter.ts +175 -10
  25. package/packages/continuity/src/index.ts +3 -0
  26. package/packages/daemon/dist/enhanced-features.d.ts +2 -3
  27. package/packages/daemon/dist/enhanced-features.d.ts.map +1 -1
  28. package/packages/daemon/dist/enhanced-features.js +1 -0
  29. package/packages/daemon/dist/enhanced-features.js.map +1 -1
  30. package/packages/daemon/dist/index.d.ts +0 -2
  31. package/packages/daemon/dist/index.d.ts.map +1 -1
  32. package/packages/daemon/dist/index.js +0 -3
  33. package/packages/daemon/dist/index.js.map +1 -1
  34. package/packages/daemon/dist/server.d.ts +0 -6
  35. package/packages/daemon/dist/server.d.ts.map +1 -1
  36. package/packages/daemon/dist/server.js +20 -119
  37. package/packages/daemon/dist/server.js.map +1 -1
  38. package/packages/daemon/package.json +12 -14
  39. package/packages/daemon/src/enhanced-features.ts +4 -4
  40. package/packages/daemon/src/index.ts +0 -4
  41. package/packages/daemon/src/server.ts +19 -127
  42. package/packages/daemon/vitest.config.ts +9 -0
  43. package/packages/hooks/package.json +4 -4
  44. package/packages/mcp/package.json +3 -3
  45. package/packages/memory/package.json +2 -2
  46. package/packages/policy/package.json +2 -2
  47. package/packages/protocol/package.json +1 -1
  48. package/packages/resiliency/package.json +1 -1
  49. package/packages/sdk/package.json +2 -2
  50. package/packages/spawner/package.json +1 -1
  51. package/packages/state/package.json +1 -1
  52. package/packages/storage/dist/adapter.d.ts +5 -5
  53. package/packages/storage/dist/adapter.js +9 -9
  54. package/packages/storage/dist/adapter.js.map +1 -1
  55. package/packages/storage/package.json +2 -2
  56. package/packages/storage/src/adapter.ts +9 -9
  57. package/packages/telemetry/package.json +1 -1
  58. package/packages/trajectory/package.json +2 -2
  59. package/packages/user-directory/package.json +2 -2
  60. package/packages/utils/dist/cjs/relay-pty-path.js +111 -55
  61. package/packages/utils/dist/relay-pty-path.d.ts +17 -12
  62. package/packages/utils/dist/relay-pty-path.d.ts.map +1 -1
  63. package/packages/utils/dist/relay-pty-path.js +144 -94
  64. package/packages/utils/dist/relay-pty-path.js.map +1 -1
  65. package/packages/utils/package.json +2 -2
  66. package/packages/utils/src/relay-pty-path.test.ts +373 -0
  67. package/packages/utils/src/relay-pty-path.ts +182 -91
  68. package/packages/wrapper/package.json +6 -6
  69. package/scripts/build-cjs.mjs +2 -0
  70. package/packages/daemon/dist/migrations/index.d.ts +0 -73
  71. package/packages/daemon/dist/migrations/index.d.ts.map +0 -1
  72. package/packages/daemon/dist/migrations/index.js +0 -241
  73. package/packages/daemon/dist/migrations/index.js.map +0 -1
  74. package/packages/daemon/dist/relay-ledger.d.ts +0 -263
  75. package/packages/daemon/dist/relay-ledger.d.ts.map +0 -1
  76. package/packages/daemon/dist/relay-ledger.js +0 -538
  77. package/packages/daemon/dist/relay-ledger.js.map +0 -1
  78. package/packages/daemon/dist/relay-watchdog.d.ts +0 -125
  79. package/packages/daemon/dist/relay-watchdog.d.ts.map +0 -1
  80. package/packages/daemon/dist/relay-watchdog.js +0 -611
  81. package/packages/daemon/dist/relay-watchdog.js.map +0 -1
  82. package/packages/daemon/src/migrations/0001_initial.sql +0 -72
  83. package/packages/daemon/src/migrations/index.test.ts +0 -195
  84. package/packages/daemon/src/migrations/index.ts +0 -286
  85. package/packages/daemon/src/relay-ledger.test.ts +0 -358
  86. package/packages/daemon/src/relay-ledger.ts +0 -713
  87. package/packages/daemon/src/relay-watchdog.test.ts +0 -881
  88. package/packages/daemon/src/relay-watchdog.ts +0 -785
@@ -5,15 +5,31 @@
5
5
  * - packages/bridge/src/spawner.ts (AgentSpawner)
6
6
  * - packages/wrapper/src/relay-pty-orchestrator.ts (RelayPtyOrchestrator)
7
7
  *
8
- * The search order handles multiple installation scenarios:
9
- * 1. Development (local Rust build)
10
- * 2. Local npm install (node_modules/agent-relay)
11
- * 3. Global npm install via nvm
12
- * 4. System-wide installs (/usr/local/bin)
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
  */
14
16
  import fs from 'node:fs';
15
17
  import os from 'node:os';
16
18
  import path from 'node:path';
19
+ /**
20
+ * Supported platforms and their binary names.
21
+ * Windows is not supported (relay-pty requires PTY which doesn't work on Windows).
22
+ */
23
+ const SUPPORTED_PLATFORMS = {
24
+ darwin: {
25
+ arm64: 'relay-pty-darwin-arm64',
26
+ x64: 'relay-pty-darwin-x64',
27
+ },
28
+ linux: {
29
+ arm64: 'relay-pty-linux-arm64',
30
+ x64: 'relay-pty-linux-x64',
31
+ },
32
+ };
17
33
  /**
18
34
  * Get the platform-specific binary name for the current system.
19
35
  * Returns null if the platform is not supported.
@@ -21,16 +37,27 @@ import path from 'node:path';
21
37
  function getPlatformBinaryName() {
22
38
  const platform = os.platform();
23
39
  const arch = os.arch();
24
- // Map to supported platforms
25
- if (platform === 'darwin' && arch === 'arm64')
26
- return 'relay-pty-darwin-arm64';
27
- if (platform === 'darwin' && arch === 'x64')
28
- return 'relay-pty-darwin-x64';
29
- if (platform === 'linux' && arch === 'arm64')
30
- return 'relay-pty-linux-arm64';
31
- if (platform === 'linux' && arch === 'x64')
32
- return 'relay-pty-linux-x64';
33
- return null;
40
+ return SUPPORTED_PLATFORMS[platform]?.[arch] ?? null;
41
+ }
42
+ /**
43
+ * Check if the current platform is supported.
44
+ */
45
+ export function isPlatformSupported() {
46
+ const platform = os.platform();
47
+ const arch = os.arch();
48
+ return SUPPORTED_PLATFORMS[platform]?.[arch] !== undefined;
49
+ }
50
+ /**
51
+ * Get a human-readable description of supported platforms.
52
+ */
53
+ export function getSupportedPlatforms() {
54
+ const platforms = [];
55
+ for (const [os, archs] of Object.entries(SUPPORTED_PLATFORMS)) {
56
+ for (const arch of Object.keys(archs)) {
57
+ platforms.push(`${os}-${arch}`);
58
+ }
59
+ }
60
+ return platforms.join(', ');
34
61
  }
35
62
  /** Cached result of relay-pty binary check */
36
63
  let cachedBinaryPath;
@@ -47,13 +74,8 @@ export function getLastSearchPaths() {
47
74
  /**
48
75
  * Find the relay-pty binary.
49
76
  *
50
- * Search order:
51
- * 1. RELAY_PTY_BINARY environment variable (explicit override)
52
- * 2. bin/relay-pty in package root (installed by postinstall)
53
- * 3. relay-pty/target/release/relay-pty (local Rust build)
54
- * 4. /usr/local/bin/relay-pty (global install)
55
- * 5. In node_modules when installed as dependency
56
- * 6. Global npm installs (nvm) - both scoped and root packages
77
+ * Search order prioritizes platform-specific binaries FIRST because npx doesn't run postinstall.
78
+ * This ensures `npx agent-relay up` works without requiring global installation.
57
79
  *
58
80
  * @param callerDirname - The __dirname of the calling module (needed to resolve relative paths)
59
81
  * @returns Path to relay-pty binary, or null if not found
@@ -61,97 +83,125 @@ export function getLastSearchPaths() {
61
83
  export function findRelayPtyBinary(callerDirname) {
62
84
  // Check for explicit environment variable override first
63
85
  const envOverride = process.env.RELAY_PTY_BINARY;
64
- if (envOverride && fs.existsSync(envOverride)) {
86
+ if (envOverride && isExecutable(envOverride)) {
65
87
  lastSearchPaths = [envOverride];
66
88
  return envOverride;
67
89
  }
68
- // Determine the agent-relay package root
69
- // This code runs from either:
70
- // - packages/{package}/dist/ (development/workspace)
71
- // - node_modules/@agent-relay/{package}/dist/ (npm install)
72
- //
73
- // We need to find the agent-relay package root where bin/relay-pty lives
74
- let packageRoot;
75
- // Check if we're inside node_modules/@agent-relay/*/
76
- if (callerDirname.includes('node_modules/@agent-relay/')) {
77
- // Go from node_modules/@agent-relay/{package}/dist/ to agent-relay/
78
- // dist/ -> {package}/ -> @agent-relay/ -> node_modules/ -> agent-relay/
79
- packageRoot = path.join(callerDirname, '..', '..', '..', '..');
80
- }
81
- else if (callerDirname.includes('node_modules/agent-relay')) {
82
- // Direct dependency: node_modules/agent-relay/packages/{package}/dist/
83
- // dist/ -> {package}/ -> packages/ -> agent-relay/
84
- packageRoot = path.join(callerDirname, '..', '..', '..');
90
+ // Get platform-specific binary name (critical for npx where postinstall doesn't run)
91
+ const platformBinary = getPlatformBinaryName();
92
+ // Normalize path separators for cross-platform regex matching
93
+ const normalizedCaller = callerDirname.replace(/\\/g, '/');
94
+ // Collect all possible package root locations
95
+ const packageRoots = [];
96
+ // Find node_modules root from caller path
97
+ // Matches: /path/to/node_modules/@agent-relay/bridge/dist/
98
+ // Or: /path/to/node_modules/agent-relay/dist/src/cli/
99
+ const scopedMatch = normalizedCaller.match(/^(.+?\/node_modules)\/@agent-relay\//);
100
+ const directMatch = normalizedCaller.match(/^(.+?\/node_modules\/agent-relay)/);
101
+ if (scopedMatch) {
102
+ // Running from @agent-relay/* package - binary is in sibling agent-relay package
103
+ packageRoots.push(path.join(scopedMatch[1], 'agent-relay'));
85
104
  }
86
- else {
87
- // Development: packages/{package}/dist/ -> packages/ -> project root
88
- packageRoot = path.join(callerDirname, '..', '..', '..');
105
+ if (directMatch) {
106
+ // Running from agent-relay package directly
107
+ packageRoots.push(directMatch[1]);
89
108
  }
90
- // Find the node_modules root for global installs
91
- // When running from node_modules/@agent-relay/dashboard/node_modules/@agent-relay/wrapper/dist/
92
- // we need to look for agent-relay at node_modules/agent-relay
93
- // Use non-greedy match (.+?) to get the FIRST node_modules, not the last
94
- let nodeModulesRoot = null;
95
- const nodeModulesMatch = callerDirname.match(/^(.+?\/node_modules)\/@agent-relay\//);
96
- if (nodeModulesMatch) {
97
- nodeModulesRoot = nodeModulesMatch[1];
109
+ // Development: packages/{package}/dist/ -> project root
110
+ if (!normalizedCaller.includes('node_modules')) {
111
+ packageRoots.push(path.join(callerDirname, '..', '..', '..'));
98
112
  }
99
- // Get platform-specific binary name as fallback (in case postinstall didn't run)
100
- const platformBinary = getPlatformBinaryName();
101
- const candidates = [
102
- // Primary: installed by postinstall from platform-specific binary
103
- path.join(packageRoot, 'bin', 'relay-pty'),
104
- // Development: local Rust build
105
- path.join(packageRoot, 'relay-pty', 'target', 'release', 'relay-pty'),
106
- path.join(packageRoot, 'relay-pty', 'target', 'debug', 'relay-pty'),
107
- // Local build in cwd (for development)
108
- path.join(process.cwd(), 'relay-pty', 'target', 'release', 'relay-pty'),
109
- // Docker container (CI tests)
110
- '/app/bin/relay-pty',
111
- // Installed globally
112
- '/usr/local/bin/relay-pty',
113
- // In node_modules (when installed as local dependency)
114
- path.join(process.cwd(), 'node_modules', 'agent-relay', 'bin', 'relay-pty'),
115
- // Global npm install (nvm) - root package
116
- path.join(process.env.HOME || '', '.nvm', 'versions', 'node', process.version, 'lib', 'node_modules', 'agent-relay', 'bin', 'relay-pty'),
117
- ];
118
- // Add candidate for root agent-relay package when running from scoped @agent-relay/* packages
119
- if (nodeModulesRoot) {
120
- candidates.push(path.join(nodeModulesRoot, 'agent-relay', 'bin', 'relay-pty'));
113
+ const home = process.env.HOME || process.env.USERPROFILE || '';
114
+ // npx cache locations - npm stores packages here when running via npx
115
+ if (home) {
116
+ const npxCacheBase = path.join(home, '.npm', '_npx');
117
+ if (fs.existsSync(npxCacheBase)) {
118
+ try {
119
+ const entries = fs.readdirSync(npxCacheBase);
120
+ for (const entry of entries) {
121
+ const npxPackage = path.join(npxCacheBase, entry, 'node_modules', 'agent-relay');
122
+ if (fs.existsSync(npxPackage)) {
123
+ packageRoots.push(npxPackage);
124
+ }
125
+ }
126
+ }
127
+ catch {
128
+ // Ignore read errors
129
+ }
130
+ }
121
131
  }
122
- // Try common global npm paths
123
- if (process.env.HOME) {
124
- // Homebrew npm (macOS)
125
- candidates.push(path.join('/usr/local/lib/node_modules', 'agent-relay', 'bin', 'relay-pty'));
126
- candidates.push(path.join('/opt/homebrew/lib/node_modules', 'agent-relay', 'bin', 'relay-pty'));
132
+ // Add cwd-based paths for local installs
133
+ packageRoots.push(path.join(process.cwd(), 'node_modules', 'agent-relay'));
134
+ // Global install locations - support ALL major Node version managers
135
+ if (home) {
136
+ // nvm (most common)
137
+ packageRoots.push(path.join(home, '.nvm', 'versions', 'node', process.version, 'lib', 'node_modules', 'agent-relay'));
138
+ // volta (increasingly popular)
139
+ packageRoots.push(path.join(home, '.volta', 'tools', 'image', 'packages', 'agent-relay', 'lib', 'node_modules', 'agent-relay'));
140
+ // fnm (fast Node manager)
141
+ packageRoots.push(path.join(home, '.fnm', 'node-versions', process.version, 'installation', 'lib', 'node_modules', 'agent-relay'));
142
+ // n (simple Node version manager)
143
+ packageRoots.push(path.join(home, 'n', 'lib', 'node_modules', 'agent-relay'));
144
+ // asdf (universal version manager)
145
+ packageRoots.push(path.join(home, '.asdf', 'installs', 'nodejs', process.version.replace('v', ''), 'lib', 'node_modules', 'agent-relay'));
127
146
  // pnpm global
128
- candidates.push(path.join(process.env.HOME, '.local', 'share', 'pnpm', 'global', 'node_modules', 'agent-relay', 'bin', 'relay-pty'));
147
+ packageRoots.push(path.join(home, '.local', 'share', 'pnpm', 'global', 'node_modules', 'agent-relay'));
148
+ // yarn global (yarn 1.x)
149
+ packageRoots.push(path.join(home, '.config', 'yarn', 'global', 'node_modules', 'agent-relay'));
150
+ // yarn global (alternative location)
151
+ packageRoots.push(path.join(home, '.yarn', 'global', 'node_modules', 'agent-relay'));
129
152
  }
130
- // FALLBACK: If postinstall didn't run, try platform-specific binaries directly
131
- // This handles cases where better-sqlite3 rebuild failed and blocked postinstall.js
132
- if (platformBinary) {
133
- // Add platform-specific binary candidates for all the same locations
134
- candidates.push(path.join(packageRoot, 'bin', platformBinary));
135
- candidates.push(path.join(process.cwd(), 'node_modules', 'agent-relay', 'bin', platformBinary));
136
- candidates.push(path.join(process.env.HOME || '', '.nvm', 'versions', 'node', process.version, 'lib', 'node_modules', 'agent-relay', 'bin', platformBinary));
137
- if (nodeModulesRoot) {
138
- candidates.push(path.join(nodeModulesRoot, 'agent-relay', 'bin', platformBinary));
139
- }
140
- if (process.env.HOME) {
141
- candidates.push(path.join('/usr/local/lib/node_modules', 'agent-relay', 'bin', platformBinary));
142
- candidates.push(path.join('/opt/homebrew/lib/node_modules', 'agent-relay', 'bin', platformBinary));
143
- candidates.push(path.join(process.env.HOME, '.local', 'share', 'pnpm', 'global', 'node_modules', 'agent-relay', 'bin', platformBinary));
153
+ // Homebrew npm (macOS)
154
+ packageRoots.push('/usr/local/lib/node_modules/agent-relay');
155
+ packageRoots.push('/opt/homebrew/lib/node_modules/agent-relay');
156
+ // Linux system-wide npm
157
+ packageRoots.push('/usr/lib/node_modules/agent-relay');
158
+ // Build candidates list - PRIORITIZE platform-specific binaries
159
+ // This is critical for npx since postinstall doesn't run
160
+ const candidates = [];
161
+ for (const root of packageRoots) {
162
+ // Platform-specific binary FIRST (works without postinstall)
163
+ if (platformBinary) {
164
+ candidates.push(path.join(root, 'bin', platformBinary));
144
165
  }
166
+ // Generic binary (requires postinstall to have run)
167
+ candidates.push(path.join(root, 'bin', 'relay-pty'));
145
168
  }
169
+ // Development: local Rust builds
170
+ const devRoot = normalizedCaller.includes('node_modules')
171
+ ? null
172
+ : path.join(callerDirname, '..', '..', '..');
173
+ if (devRoot) {
174
+ candidates.push(path.join(devRoot, 'relay-pty', 'target', 'release', 'relay-pty'));
175
+ candidates.push(path.join(devRoot, 'relay-pty', 'target', 'debug', 'relay-pty'));
176
+ }
177
+ candidates.push(path.join(process.cwd(), 'relay-pty', 'target', 'release', 'relay-pty'));
178
+ // Docker container (CI tests)
179
+ candidates.push('/app/bin/relay-pty');
180
+ // System-wide installs
181
+ candidates.push('/usr/local/bin/relay-pty');
182
+ candidates.push('/usr/bin/relay-pty');
146
183
  // Store search paths for debugging
147
184
  lastSearchPaths = candidates;
148
185
  for (const candidate of candidates) {
149
- if (fs.existsSync(candidate)) {
186
+ if (isExecutable(candidate)) {
150
187
  return candidate;
151
188
  }
152
189
  }
153
190
  return null;
154
191
  }
192
+ /**
193
+ * Check if a file exists and is executable.
194
+ */
195
+ function isExecutable(filePath) {
196
+ try {
197
+ fs.accessSync(filePath, fs.constants.X_OK);
198
+ return true;
199
+ }
200
+ catch {
201
+ // File doesn't exist or isn't executable
202
+ return false;
203
+ }
204
+ }
155
205
  /**
156
206
  * Check if relay-pty binary is available (cached).
157
207
  * 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":"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"}
1
+ {"version":3,"file":"relay-pty-path.js","sourceRoot":"","sources":["../src/relay-pty-path.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/utils",
3
- "version": "2.0.37",
3
+ "version": "2.1.1",
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",
@@ -94,7 +94,7 @@
94
94
  "vitest": "^3.2.4"
95
95
  },
96
96
  "dependencies": {
97
- "@agent-relay/protocol": "2.0.37",
97
+ "@agent-relay/protocol": "2.1.1",
98
98
  "compare-versions": "^6.1.1"
99
99
  },
100
100
  "publishConfig": {