agent-relay 4.0.20 → 4.0.22

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 (59) hide show
  1. package/README.md +8 -0
  2. package/dist/src/cli/commands/messaging.d.ts +44 -0
  3. package/dist/src/cli/commands/messaging.d.ts.map +1 -1
  4. package/dist/src/cli/commands/messaging.js +195 -8
  5. package/dist/src/cli/commands/messaging.js.map +1 -1
  6. package/dist/src/cli/lib/ssh-interactive.d.ts +11 -0
  7. package/dist/src/cli/lib/ssh-interactive.d.ts.map +1 -1
  8. package/dist/src/cli/lib/ssh-interactive.js +53 -26
  9. package/dist/src/cli/lib/ssh-interactive.js.map +1 -1
  10. package/node_modules/@agent-relay/cloud/dist/auth.d.ts +2 -2
  11. package/node_modules/@agent-relay/cloud/dist/auth.d.ts.map +1 -1
  12. package/node_modules/@agent-relay/cloud/dist/auth.js +108 -62
  13. package/node_modules/@agent-relay/cloud/dist/auth.js.map +1 -1
  14. package/node_modules/@agent-relay/cloud/package.json +2 -2
  15. package/node_modules/@agent-relay/config/package.json +1 -1
  16. package/node_modules/@agent-relay/hooks/package.json +4 -4
  17. package/node_modules/@agent-relay/sdk/package.json +2 -2
  18. package/node_modules/@agent-relay/telemetry/package.json +1 -1
  19. package/node_modules/@agent-relay/trajectory/package.json +2 -2
  20. package/node_modules/@agent-relay/user-directory/package.json +2 -2
  21. package/node_modules/@agent-relay/utils/package.json +2 -2
  22. package/node_modules/@smithy/config-resolver/package.json +2 -2
  23. package/node_modules/@smithy/util-defaults-mode-node/package.json +2 -2
  24. package/node_modules/@smithy/util-endpoints/dist-cjs/index.js +154 -61
  25. package/node_modules/@smithy/util-endpoints/dist-es/bdd/BinaryDecisionDiagram.js +15 -0
  26. package/node_modules/@smithy/util-endpoints/dist-es/decideEndpoint.js +41 -0
  27. package/node_modules/@smithy/util-endpoints/dist-es/index.js +2 -0
  28. package/node_modules/@smithy/util-endpoints/dist-es/lib/coalesce.js +8 -0
  29. package/node_modules/@smithy/util-endpoints/dist-es/lib/index.js +3 -0
  30. package/node_modules/@smithy/util-endpoints/dist-es/lib/ite.js +3 -0
  31. package/node_modules/@smithy/util-endpoints/dist-es/lib/split.js +13 -0
  32. package/node_modules/@smithy/util-endpoints/dist-es/lib/substring.js +1 -1
  33. package/node_modules/@smithy/util-endpoints/dist-es/utils/endpointFunctions.js +4 -1
  34. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateExpression.js +20 -5
  35. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTemplate.js +3 -6
  36. package/node_modules/@smithy/util-endpoints/dist-es/utils/getReferenceValue.js +1 -5
  37. package/node_modules/@smithy/util-endpoints/dist-types/bdd/BinaryDecisionDiagram.d.ts +22 -0
  38. package/node_modules/@smithy/util-endpoints/dist-types/decideEndpoint.d.ts +7 -0
  39. package/node_modules/@smithy/util-endpoints/dist-types/index.d.ts +2 -0
  40. package/node_modules/@smithy/util-endpoints/dist-types/lib/coalesce.d.ts +7 -0
  41. package/node_modules/@smithy/util-endpoints/dist-types/lib/index.d.ts +3 -0
  42. package/node_modules/@smithy/util-endpoints/dist-types/lib/ite.d.ts +6 -0
  43. package/node_modules/@smithy/util-endpoints/dist-types/lib/split.d.ts +11 -0
  44. package/node_modules/@smithy/util-endpoints/dist-types/utils/endpointFunctions.d.ts +4 -0
  45. package/node_modules/@smithy/util-endpoints/dist-types/utils/getReferenceValue.d.ts +3 -1
  46. package/node_modules/@smithy/util-endpoints/package.json +1 -1
  47. package/package.json +11 -10
  48. package/packages/cloud/dist/auth.d.ts +2 -2
  49. package/packages/cloud/dist/auth.d.ts.map +1 -1
  50. package/packages/cloud/dist/auth.js +108 -62
  51. package/packages/cloud/dist/auth.js.map +1 -1
  52. package/packages/cloud/package.json +2 -2
  53. package/packages/config/package.json +1 -1
  54. package/packages/hooks/package.json +4 -4
  55. package/packages/sdk/package.json +2 -2
  56. package/packages/telemetry/package.json +1 -1
  57. package/packages/trajectory/package.json +2 -2
  58. package/packages/user-directory/package.json +2 -2
  59. package/packages/utils/package.json +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-relay",
3
- "version": "4.0.20",
3
+ "version": "4.0.22",
4
4
  "description": "Real-time agent-to-agent communication system",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -121,7 +121,8 @@
121
121
  "build:telemetry": "cd packages/telemetry && npm run build",
122
122
  "build:cjs": "node ./scripts/build-cjs.mjs",
123
123
  "postbuild": "chmod +x dist/src/cli/bootstrap.js dist/src/cli/index.js && npm run build:cjs",
124
- "prepack": "if [ -d node_modules ]; then npm run build; else echo '⚠ node_modules not found, skipping prepack build'; fi",
124
+ "prepack": "if [ -d node_modules ]; then npm run build; else echo '⚠ node_modules not found, skipping prepack build'; fi && node scripts/prepack-materialize-workspaces.mjs && node scripts/verify-bundled-deps.mjs",
125
+ "prepublishOnly": "node scripts/verify-bundled-deps.mjs",
125
126
  "dev:watch": "tsc -w",
126
127
  "watch:start": "npm run build && concurrently -k \"npm run dev:watch\" \"node --watch dist/src/cli/index.js start dashboard.js claude\"",
127
128
  "watch:start:cli-tools": "npm run build && bash ./scripts/watch-cli-tools.sh",
@@ -195,14 +196,14 @@
195
196
  },
196
197
  "homepage": "https://github.com/AgentWorkforce/relay#readme",
197
198
  "dependencies": {
198
- "@agent-relay/cloud": "4.0.20",
199
- "@agent-relay/config": "4.0.20",
200
- "@agent-relay/hooks": "4.0.20",
201
- "@agent-relay/sdk": "4.0.20",
202
- "@agent-relay/telemetry": "4.0.20",
203
- "@agent-relay/trajectory": "4.0.20",
204
- "@agent-relay/user-directory": "4.0.20",
205
- "@agent-relay/utils": "4.0.20",
199
+ "@agent-relay/cloud": "4.0.22",
200
+ "@agent-relay/config": "4.0.22",
201
+ "@agent-relay/hooks": "4.0.22",
202
+ "@agent-relay/sdk": "4.0.22",
203
+ "@agent-relay/telemetry": "4.0.22",
204
+ "@agent-relay/trajectory": "4.0.22",
205
+ "@agent-relay/user-directory": "4.0.22",
206
+ "@agent-relay/utils": "4.0.22",
206
207
  "@aws-sdk/client-s3": "3.1020.0",
207
208
  "@modelcontextprotocol/sdk": "^1.0.0",
208
209
  "@relayauth/core": "^0.1.2",
@@ -1,5 +1,5 @@
1
- import { type StoredAuth } from "./types.js";
2
- export declare function readStoredAuth(): Promise<StoredAuth | null>;
1
+ import { type StoredAuth } from './types.js';
2
+ export declare function readStoredAuth(env?: NodeJS.ProcessEnv): Promise<StoredAuth | null>;
3
3
  export declare function writeStoredAuth(auth: StoredAuth): Promise<void>;
4
4
  export declare function clearStoredAuth(): Promise<void>;
5
5
  export declare function refreshStoredAuth(auth: StoredAuth): Promise<StoredAuth>;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAOA,OAAO,EAAqC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAgBhF,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAQjE;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CASrE;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAErD;AA8KD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CA6B7E;AASD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAiB5G;AAkBD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAgBnD"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAOA,OAAO,EAAqC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAgEhF,wBAAsB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAarG;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CASrE;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAErD;AAyKD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAgC7E;AASD,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5B,OAAO,CAAC,UAAU,CAAC,CAqBrB;AAkBD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAoBnD"}
@@ -1,23 +1,63 @@
1
- import fs from "node:fs/promises";
2
- import http from "node:http";
3
- import os from "node:os";
4
- import path from "node:path";
5
- import { spawn } from "node:child_process";
6
- import { buildApiUrl } from "./api-client.js";
7
- import { AUTH_FILE_PATH, REFRESH_WINDOW_MS } from "./types.js";
1
+ import fs from 'node:fs/promises';
2
+ import http from 'node:http';
3
+ import os from 'node:os';
4
+ import path from 'node:path';
5
+ import { spawn } from 'node:child_process';
6
+ import { buildApiUrl } from './api-client.js';
7
+ import { AUTH_FILE_PATH, REFRESH_WINDOW_MS } from './types.js';
8
+ const envBackedAuth = new WeakSet();
9
+ function markEnvBackedAuth(auth) {
10
+ envBackedAuth.add(auth);
11
+ return auth;
12
+ }
13
+ function isEnvBackedAuth(auth) {
14
+ return envBackedAuth.has(auth);
15
+ }
16
+ function readEnvAuth(env = process.env) {
17
+ const apiUrl = env.CLOUD_API_URL?.trim();
18
+ const accessToken = env.CLOUD_API_ACCESS_TOKEN?.trim();
19
+ const refreshToken = env.CLOUD_API_REFRESH_TOKEN?.trim();
20
+ const accessTokenExpiresAt = env.CLOUD_API_ACCESS_TOKEN_EXPIRES_AT?.trim();
21
+ if (!apiUrl || !accessToken || !refreshToken || !accessTokenExpiresAt) {
22
+ return null;
23
+ }
24
+ try {
25
+ new URL(apiUrl);
26
+ }
27
+ catch {
28
+ return null;
29
+ }
30
+ if (Number.isNaN(Date.parse(accessTokenExpiresAt))) {
31
+ return null;
32
+ }
33
+ return markEnvBackedAuth({
34
+ apiUrl,
35
+ accessToken,
36
+ refreshToken,
37
+ accessTokenExpiresAt,
38
+ });
39
+ }
40
+ function toEnvAuthRefreshError(error) {
41
+ const message = error instanceof Error && error.message ? `${error.message}. ` : '';
42
+ return new Error(`${message}Env-backed cloud auth could not be refreshed interactively; re-provision CLOUD_API_URL, CLOUD_API_ACCESS_TOKEN, CLOUD_API_REFRESH_TOKEN, and CLOUD_API_ACCESS_TOKEN_EXPIRES_AT.`, error instanceof Error ? { cause: error } : undefined);
43
+ }
8
44
  function isValidStoredAuth(value) {
9
- if (!value || typeof value !== "object") {
45
+ if (!value || typeof value !== 'object') {
10
46
  return false;
11
47
  }
12
48
  const auth = value;
13
- return (typeof auth.accessToken === "string" &&
14
- typeof auth.refreshToken === "string" &&
15
- typeof auth.accessTokenExpiresAt === "string" &&
16
- typeof auth.apiUrl === "string");
49
+ return (typeof auth.accessToken === 'string' &&
50
+ typeof auth.refreshToken === 'string' &&
51
+ typeof auth.accessTokenExpiresAt === 'string' &&
52
+ typeof auth.apiUrl === 'string');
17
53
  }
18
- export async function readStoredAuth() {
54
+ export async function readStoredAuth(env = process.env) {
55
+ const envAuth = readEnvAuth(env);
56
+ if (envAuth) {
57
+ return envAuth;
58
+ }
19
59
  try {
20
- const file = await fs.readFile(AUTH_FILE_PATH, "utf8");
60
+ const file = await fs.readFile(AUTH_FILE_PATH, 'utf8');
21
61
  const parsed = JSON.parse(file);
22
62
  return isValidStoredAuth(parsed) ? parsed : null;
23
63
  }
@@ -31,7 +71,7 @@ export async function writeStoredAuth(auth) {
31
71
  mode: 0o700,
32
72
  });
33
73
  await fs.writeFile(AUTH_FILE_PATH, `${JSON.stringify(auth, null, 2)}\n`, {
34
- encoding: "utf8",
74
+ encoding: 'utf8',
35
75
  mode: 0o600,
36
76
  });
37
77
  }
@@ -47,22 +87,22 @@ function shouldRefresh(accessTokenExpiresAt) {
47
87
  }
48
88
  function openBrowser(url) {
49
89
  const platform = os.platform();
50
- if (platform === "darwin") {
51
- return spawn("open", [url], { stdio: "ignore", detached: true });
90
+ if (platform === 'darwin') {
91
+ return spawn('open', [url], { stdio: 'ignore', detached: true });
52
92
  }
53
- if (platform === "win32") {
54
- return spawn("cmd", ["/c", "start", "", url], { stdio: "ignore", detached: true });
93
+ if (platform === 'win32') {
94
+ return spawn('cmd', ['/c', 'start', '', url], { stdio: 'ignore', detached: true });
55
95
  }
56
- return spawn("xdg-open", [url], { stdio: "ignore", detached: true });
96
+ return spawn('xdg-open', [url], { stdio: 'ignore', detached: true });
57
97
  }
58
98
  function redirectToHostedCliAuthPage(response, apiUrl, options) {
59
- const resultUrl = buildApiUrl(apiUrl, "/cli/auth-result");
60
- resultUrl.searchParams.set("status", options.status);
99
+ const resultUrl = buildApiUrl(apiUrl, '/cli/auth-result');
100
+ resultUrl.searchParams.set('status', options.status);
61
101
  if (options.detail) {
62
- resultUrl.searchParams.set("detail", options.detail);
102
+ resultUrl.searchParams.set('detail', options.detail);
63
103
  }
64
104
  response.statusCode = 302;
65
- response.setHeader("location", resultUrl.toString());
105
+ response.setHeader('location', resultUrl.toString());
66
106
  response.end();
67
107
  }
68
108
  async function beginBrowserLogin(apiUrl) {
@@ -70,31 +110,31 @@ async function beginBrowserLogin(apiUrl) {
70
110
  return new Promise((resolve, reject) => {
71
111
  let settled = false;
72
112
  const server = http.createServer((request, response) => {
73
- const requestUrl = new URL(request.url || "/", "http://127.0.0.1");
74
- if (requestUrl.pathname !== "/callback") {
113
+ const requestUrl = new URL(request.url || '/', 'http://127.0.0.1');
114
+ if (requestUrl.pathname !== '/callback') {
75
115
  response.statusCode = 404;
76
- response.end("Not found");
116
+ response.end('Not found');
77
117
  return;
78
118
  }
79
- const returnedState = requestUrl.searchParams.get("state");
119
+ const returnedState = requestUrl.searchParams.get('state');
80
120
  // Validate state parameter first (CSRF protection) — this check
81
121
  // must run unconditionally, before any user-controlled values.
82
122
  if (returnedState !== state) {
83
123
  redirectToHostedCliAuthPage(response, apiUrl, {
84
- status: "error",
85
- detail: "Invalid state parameter",
124
+ status: 'error',
125
+ detail: 'Invalid state parameter',
86
126
  });
87
127
  if (!settled) {
88
128
  settled = true;
89
129
  server.close();
90
- reject(new Error("Invalid state parameter in CLI login callback"));
130
+ reject(new Error('Invalid state parameter in CLI login callback'));
91
131
  }
92
132
  return;
93
133
  }
94
- const error = requestUrl.searchParams.get("error");
134
+ const error = requestUrl.searchParams.get('error');
95
135
  if (error) {
96
136
  redirectToHostedCliAuthPage(response, apiUrl, {
97
- status: "error",
137
+ status: 'error',
98
138
  detail: error,
99
139
  });
100
140
  if (!settled) {
@@ -104,27 +144,24 @@ async function beginBrowserLogin(apiUrl) {
104
144
  }
105
145
  return;
106
146
  }
107
- const accessToken = requestUrl.searchParams.get("access_token");
108
- const refreshToken = requestUrl.searchParams.get("refresh_token");
109
- const accessTokenExpiresAt = requestUrl.searchParams.get("access_token_expires_at");
110
- const returnedApiUrl = requestUrl.searchParams.get("api_url");
111
- if (!accessToken ||
112
- !refreshToken ||
113
- !accessTokenExpiresAt ||
114
- !returnedApiUrl) {
147
+ const accessToken = requestUrl.searchParams.get('access_token');
148
+ const refreshToken = requestUrl.searchParams.get('refresh_token');
149
+ const accessTokenExpiresAt = requestUrl.searchParams.get('access_token_expires_at');
150
+ const returnedApiUrl = requestUrl.searchParams.get('api_url');
151
+ if (!accessToken || !refreshToken || !accessTokenExpiresAt || !returnedApiUrl) {
115
152
  redirectToHostedCliAuthPage(response, apiUrl, {
116
- status: "error",
117
- detail: "Expected access token, refresh token, API URL, and expiration timestamp.",
153
+ status: 'error',
154
+ detail: 'Expected access token, refresh token, API URL, and expiration timestamp.',
118
155
  });
119
156
  if (!settled) {
120
157
  settled = true;
121
158
  server.close();
122
- reject(new Error("CLI login callback was missing required fields"));
159
+ reject(new Error('CLI login callback was missing required fields'));
123
160
  }
124
161
  return;
125
162
  }
126
163
  redirectToHostedCliAuthPage(response, returnedApiUrl, {
127
- status: "success",
164
+ status: 'success',
128
165
  detail: `API endpoint: ${returnedApiUrl}`,
129
166
  });
130
167
  if (!settled) {
@@ -138,22 +175,22 @@ async function beginBrowserLogin(apiUrl) {
138
175
  });
139
176
  }
140
177
  });
141
- server.listen(0, "127.0.0.1", () => {
178
+ server.listen(0, '127.0.0.1', () => {
142
179
  const address = server.address();
143
- if (!address || typeof address === "string") {
180
+ if (!address || typeof address === 'string') {
144
181
  if (!settled) {
145
182
  settled = true;
146
183
  server.close();
147
- reject(new Error("Failed to start local callback server"));
184
+ reject(new Error('Failed to start local callback server'));
148
185
  }
149
186
  return;
150
187
  }
151
- const callbackUrl = new URL("/callback", `http://127.0.0.1:${address.port}`);
152
- const loginUrl = buildApiUrl(apiUrl, "/api/v1/cli/login");
153
- loginUrl.searchParams.set("redirect_uri", callbackUrl.toString());
154
- loginUrl.searchParams.set("state", state);
188
+ const callbackUrl = new URL('/callback', `http://127.0.0.1:${address.port}`);
189
+ const loginUrl = buildApiUrl(apiUrl, '/api/v1/cli/login');
190
+ loginUrl.searchParams.set('redirect_uri', callbackUrl.toString());
191
+ loginUrl.searchParams.set('state', state);
155
192
  console.log(`Opening browser for cloud login: ${loginUrl.toString()}`);
156
- console.log("If the browser does not open, paste this URL into your browser.");
193
+ console.log('If the browser does not open, paste this URL into your browser.');
157
194
  try {
158
195
  const child = openBrowser(loginUrl.toString());
159
196
  child.unref();
@@ -162,7 +199,7 @@ async function beginBrowserLogin(apiUrl) {
162
199
  // Browser open failure is non-fatal; user still has the URL.
163
200
  }
164
201
  });
165
- server.on("error", (error) => {
202
+ server.on('error', (error) => {
166
203
  if (!settled) {
167
204
  settled = true;
168
205
  reject(error);
@@ -172,22 +209,22 @@ async function beginBrowserLogin(apiUrl) {
172
209
  if (!settled) {
173
210
  settled = true;
174
211
  server.close();
175
- reject(new Error("Timed out waiting for browser login"));
212
+ reject(new Error('Timed out waiting for browser login'));
176
213
  }
177
214
  }, 5 * 60_000).unref();
178
215
  });
179
216
  }
180
217
  export async function refreshStoredAuth(auth) {
181
- const response = await fetch(buildApiUrl(auth.apiUrl, "/api/v1/auth/token/refresh"), {
182
- method: "POST",
218
+ const response = await fetch(buildApiUrl(auth.apiUrl, '/api/v1/auth/token/refresh'), {
219
+ method: 'POST',
183
220
  headers: {
184
- "content-type": "application/json",
221
+ 'content-type': 'application/json',
185
222
  },
186
223
  body: JSON.stringify({ refreshToken: auth.refreshToken }),
187
224
  });
188
225
  const payload = (await response.json().catch(() => null));
189
226
  if (!response.ok || !payload?.accessToken || !payload?.refreshToken || !payload?.accessTokenExpiresAt) {
190
- throw new Error("Stored cloud login has expired");
227
+ throw new Error('Stored cloud login has expired');
191
228
  }
192
229
  const nextAuth = {
193
230
  apiUrl: auth.apiUrl,
@@ -195,6 +232,9 @@ export async function refreshStoredAuth(auth) {
195
232
  refreshToken: payload.refreshToken,
196
233
  accessTokenExpiresAt: payload.accessTokenExpiresAt,
197
234
  };
235
+ if (isEnvBackedAuth(auth)) {
236
+ return markEnvBackedAuth(nextAuth);
237
+ }
198
238
  await writeStoredAuth(nextAuth);
199
239
  return nextAuth;
200
240
  }
@@ -216,7 +256,10 @@ export async function ensureAuthenticated(apiUrl, options) {
216
256
  try {
217
257
  return await refreshStoredAuth(stored);
218
258
  }
219
- catch {
259
+ catch (error) {
260
+ if (isEnvBackedAuth(stored)) {
261
+ throw toEnvAuthRefreshError(error);
262
+ }
220
263
  return loginWithBrowser(apiUrl);
221
264
  }
222
265
  }
@@ -224,7 +267,7 @@ function apiFetch(apiUrl, accessToken, requestPath, init) {
224
267
  return fetch(buildApiUrl(apiUrl, requestPath), {
225
268
  ...init,
226
269
  headers: {
227
- "content-type": "application/json",
270
+ 'content-type': 'application/json',
228
271
  authorization: `Bearer ${accessToken}`,
229
272
  ...(init.headers ?? {}),
230
273
  },
@@ -239,7 +282,10 @@ export async function authorizedApiFetch(auth, requestPath, init) {
239
282
  try {
240
283
  activeAuth = await refreshStoredAuth(activeAuth);
241
284
  }
242
- catch {
285
+ catch (error) {
286
+ if (isEnvBackedAuth(activeAuth)) {
287
+ throw toEnvAuthRefreshError(error);
288
+ }
243
289
  activeAuth = await loginWithBrowser(activeAuth.apiUrl);
244
290
  }
245
291
  response = await apiFetch(activeAuth.apiUrl, activeAuth.accessToken, requestPath, init);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAmB,MAAM,YAAY,CAAC;AAEhF,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,KAA4B,CAAC;IAC1C,OAAO,CACL,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QACpC,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;QACrC,OAAO,IAAI,CAAC,oBAAoB,KAAK,QAAQ;QAC7C,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAChC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAgB;IACpD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;QAC3C,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QACvE,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,aAAa,CAAC,oBAA4B;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,iBAAiB,CAAC;AACrD,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAE/B,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,2BAA2B,CAClC,QAAmD,EACnD,MAAc,EACd,OAGC;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC1D,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,QAAQ,CAAC,GAAG,EAAE,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,MAAc;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAElC,OAAO,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjD,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;YACrD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC;YAEnE,IAAI,UAAU,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACxC,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;gBAC1B,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAE3D,gEAAgE;YAChE,+DAA+D;YAC/D,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;gBAC5B,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE;oBAC5C,MAAM,EAAE,OAAO;oBACf,MAAM,EAAE,yBAAyB;iBAClC,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,KAAK,EAAE,CAAC;gBACV,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE;oBAC5C,MAAM,EAAE,OAAO;oBACf,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAChE,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAClE,MAAM,oBAAoB,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACpF,MAAM,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE9D,IACE,CAAC,WAAW;gBACZ,CAAC,YAAY;gBACb,CAAC,oBAAoB;gBACrB,CAAC,cAAc,EACf,CAAC;gBACD,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE;oBAC5C,MAAM,EAAE,OAAO;oBACf,MAAM,EAAE,0EAA0E;iBACnF,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;gBACtE,CAAC;gBACD,OAAO;YACT,CAAC;YAED,2BAA2B,CAAC,QAAQ,EAAE,cAAc,EAAE;gBACpD,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,iBAAiB,cAAc,EAAE;aAC1C,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC;oBACN,WAAW;oBACX,YAAY;oBACZ,oBAAoB;oBACpB,MAAM,EAAE,cAAc;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7E,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YAC1D,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAE1C,OAAO,CAAC,GAAG,CAAC,oCAAoC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;YAE/E,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/C,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,6DAA6D;YAC/D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAgB;IACtD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,4BAA4B,CAAC,EAAE;QACnF,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;KAC1D,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAMhD,CAAC;IAET,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,CAAC;QACtG,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,QAAQ,GAAe;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;KACnD,CAAC;IACF,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAc;IAC5C,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAc,EAAE,OAA6B;IACrF,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACxC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CACf,MAAc,EACd,WAAmB,EACnB,WAAmB,EACnB,IAAiB;IAEjB,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE;QAC7C,GAAG,IAAI;QACP,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,WAAW,EAAE;YACtC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;SACxB;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAgB,EAChB,WAAmB,EACnB,IAAiB;IAEjB,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,IAAI,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAE5F,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACxC,CAAC;IAED,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,UAAU,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IACxF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/cloud",
3
- "version": "4.0.20",
3
+ "version": "4.0.22",
4
4
  "description": "Cloud SDK for Agent Relay — auth, workflow execution, and provider connections",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -23,7 +23,7 @@
23
23
  "test:watch": "vitest"
24
24
  },
25
25
  "dependencies": {
26
- "@agent-relay/config": "4.0.20",
26
+ "@agent-relay/config": "4.0.22",
27
27
  "@aws-sdk/client-s3": "3.1020.0",
28
28
  "ignore": "^7.0.5",
29
29
  "tar": "^7.5.10"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/config",
3
- "version": "4.0.20",
3
+ "version": "4.0.22",
4
4
  "description": "Shared configuration schemas and loaders for Agent Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/hooks",
3
- "version": "4.0.20",
3
+ "version": "4.0.22",
4
4
  "description": "Hook emitter, registry, and trajectory hooks for Agent Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -37,9 +37,9 @@
37
37
  "test:watch": "vitest"
38
38
  },
39
39
  "dependencies": {
40
- "@agent-relay/config": "4.0.20",
41
- "@agent-relay/trajectory": "4.0.20",
42
- "@agent-relay/sdk": "4.0.20"
40
+ "@agent-relay/config": "4.0.22",
41
+ "@agent-relay/trajectory": "4.0.22",
42
+ "@agent-relay/sdk": "4.0.22"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "^22.19.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/sdk",
3
- "version": "4.0.20",
3
+ "version": "4.0.22",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -114,7 +114,7 @@
114
114
  "@types/ws": "^8.5.10"
115
115
  },
116
116
  "dependencies": {
117
- "@agent-relay/config": "4.0.20",
117
+ "@agent-relay/config": "4.0.22",
118
118
  "@relaycast/sdk": "^1.1.0",
119
119
  "@relayfile/sdk": "^0.1.2",
120
120
  "@sinclair/typebox": "^0.34.48",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/telemetry",
3
- "version": "4.0.20",
3
+ "version": "4.0.22",
4
4
  "description": "Anonymous telemetry for Agent Relay usage analytics",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/trajectory",
3
- "version": "4.0.20",
3
+ "version": "4.0.22",
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": "4.0.20"
25
+ "@agent-relay/config": "4.0.22"
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": "4.0.20",
3
+ "version": "4.0.22",
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/utils": "4.0.20"
25
+ "@agent-relay/utils": "4.0.22"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.19.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/utils",
3
- "version": "4.0.20",
3
+ "version": "4.0.22",
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",
@@ -111,7 +111,7 @@
111
111
  "vitest": "^3.2.4"
112
112
  },
113
113
  "dependencies": {
114
- "@agent-relay/config": "4.0.20",
114
+ "@agent-relay/config": "4.0.22",
115
115
  "compare-versions": "^6.1.1"
116
116
  },
117
117
  "publishConfig": {