agents-relay 2.0.35 → 2.0.36

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 (2) hide show
  1. package/dist/adapters.js +13 -10
  2. package/package.json +1 -1
package/dist/adapters.js CHANGED
@@ -165,9 +165,12 @@ function parseDriverJson(output) {
165
165
  }
166
166
  throw new Error('browser-worker driver returned no submitted receipt');
167
167
  }
168
- function browserWorkspaceCommand(command, args, stdin) {
168
+ function browserWorkspaceCli(override = process.env.AGENTS_RELAY_BROWSER_WORKSPACE_COMMAND) {
169
+ return override ? { command: override, prefix: [] } : { command: 'npx', prefix: ['browser-workspace'] };
170
+ }
171
+ function browserWorkspaceCommand(cli, args, stdin) {
169
172
  return new Promise((resolve, reject) => {
170
- const child = spawn(command, [...args], { shell: false, stdio: [stdin === undefined ? 'ignore' : 'pipe', 'pipe', 'pipe'] });
173
+ const child = spawn(cli.command, [...cli.prefix, ...args], { shell: false, stdio: [stdin === undefined ? 'ignore' : 'pipe', 'pipe', 'pipe'] });
171
174
  let stdout = '';
172
175
  let stderr = '';
173
176
  child.stdout?.on('data', (chunk) => { stdout += chunk.toString(); });
@@ -194,11 +197,11 @@ function parseWorkspaceJson(output) {
194
197
  }
195
198
  throw new Error('browser-workspace returned no JSON result');
196
199
  }
197
- export async function ensureChatGptBrowserWorkspace(command = process.env.AGENTS_RELAY_BROWSER_WORKSPACE_COMMAND ?? 'browser-workspace') {
198
- await browserWorkspaceCommand(command, ['create', CHATGPT_BROWSER_WORKSPACE, String(CHATGPT_BROWSER_WORKSPACE_POOL_SIZE)]);
200
+ export async function ensureChatGptBrowserWorkspace(command = process.env.AGENTS_RELAY_BROWSER_WORKSPACE_COMMAND) {
201
+ await browserWorkspaceCommand(browserWorkspaceCli(command), ['create', CHATGPT_BROWSER_WORKSPACE, String(CHATGPT_BROWSER_WORKSPACE_POOL_SIZE)]);
199
202
  }
200
203
  function sessionBrowserWorkerRunner(root) {
201
- const command = process.env.AGENTS_RELAY_BROWSER_WORKSPACE_COMMAND ?? 'browser-workspace';
204
+ const cli = browserWorkspaceCli();
202
205
  return (_definition, request, _route, signal) => {
203
206
  const policy = request.tabClosePolicy ?? 'after-start';
204
207
  let activeSessionId;
@@ -231,7 +234,7 @@ function sessionBrowserWorkerRunner(root) {
231
234
  close_policy: policy,
232
235
  release_file: '',
233
236
  }));
234
- const startOutput = await browserWorkspaceCommand(command, ['session', 'start', '--workspace', CHATGPT_BROWSER_WORKSPACE]);
237
+ const startOutput = await browserWorkspaceCommand(cli, ['session', 'start', '--workspace', CHATGPT_BROWSER_WORKSPACE]);
235
238
  const started = parseWorkspaceJson(startOutput);
236
239
  if (typeof started.session_id !== 'string') {
237
240
  throw new Error('browser-workspace session start returned no session_id');
@@ -245,7 +248,7 @@ function sessionBrowserWorkerRunner(root) {
245
248
  submitSource.replace(/^from browser_harness import \*\s*$/m, ''),
246
249
  temporarySource.replace(/^_wait_for_release\(\)\s*$/m, ''),
247
250
  ].join('\n\n').replaceAll('__CFG_PATH__', escapedConfig);
248
- const execOutput = await browserWorkspaceCommand(command, ['session', 'exec', activeSessionId], source);
251
+ const execOutput = await browserWorkspaceCommand(cli, ['session', 'exec', activeSessionId], source);
249
252
  const wrapper = parseWorkspaceJson(execOutput);
250
253
  if (wrapper.ok !== true) {
251
254
  throw new Error(typeof wrapper.error === 'string' ? wrapper.error : 'browser-workspace session exec failed');
@@ -260,14 +263,14 @@ function sessionBrowserWorkerRunner(root) {
260
263
  }
261
264
  await releaseBarrier;
262
265
  if (activeSessionId) {
263
- await browserWorkspaceCommand(command, ['session', 'stop', activeSessionId]);
266
+ await browserWorkspaceCommand(cli, ['session', 'stop', activeSessionId]);
264
267
  activeSessionId = undefined;
265
268
  }
266
269
  return result;
267
270
  }
268
271
  catch (failure) {
269
272
  if (activeSessionId) {
270
- await browserWorkspaceCommand(command, ['session', 'stop', activeSessionId]).catch(() => { });
273
+ await browserWorkspaceCommand(cli, ['session', 'stop', activeSessionId]).catch(() => { });
271
274
  activeSessionId = undefined;
272
275
  }
273
276
  await unlink(configFile).catch(() => { });
@@ -279,7 +282,7 @@ function sessionBrowserWorkerRunner(root) {
279
282
  const cancel = () => {
280
283
  release();
281
284
  if (activeSessionId) {
282
- void browserWorkspaceCommand(command, ['session', 'stop', activeSessionId]);
285
+ void browserWorkspaceCommand(cli, ['session', 'stop', activeSessionId]);
283
286
  activeSessionId = undefined;
284
287
  }
285
288
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agents-relay",
3
- "version": "2.0.35",
3
+ "version": "2.0.36",
4
4
  "description": "Durable async agent jobs coordinated through GitHub pull requests",
5
5
  "type": "module",
6
6
  "bin": {