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.
- package/dist/adapters.js +13 -10
- 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
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
285
|
+
void browserWorkspaceCommand(cli, ['session', 'stop', activeSessionId]);
|
|
283
286
|
activeSessionId = undefined;
|
|
284
287
|
}
|
|
285
288
|
};
|