@cortask/core 0.2.24 → 0.2.26

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.js CHANGED
@@ -2972,8 +2972,9 @@ function createArtifactTool(artifactStore) {
2972
2972
 
2973
2973
  // src/agent/tools/browser-manager.ts
2974
2974
  import { execFile } from "child_process";
2975
- import { existsSync } from "fs";
2975
+ import { existsSync, mkdirSync } from "fs";
2976
2976
  import { join } from "path";
2977
+ import { homedir } from "os";
2977
2978
  import { createRequire } from "module";
2978
2979
  var DEFAULT_TIMEOUT = 3e4;
2979
2980
  function getNativeBinName() {
@@ -3008,15 +3009,19 @@ function resolveCmd() {
3008
3009
  }
3009
3010
  var CMD = resolveCmd();
3010
3011
  var instance = null;
3011
- function resetBrowserInstance() {
3012
- instance = null;
3012
+ function getAgentBrowserHome() {
3013
+ if (process.env.AGENT_BROWSER_HOME) return process.env.AGENT_BROWSER_HOME;
3014
+ const dir = join(homedir(), ".agent-browser");
3015
+ if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
3016
+ return dir;
3013
3017
  }
3014
3018
  function exec2(args, timeout = DEFAULT_TIMEOUT) {
3015
3019
  return new Promise((resolve, reject) => {
3016
3020
  const isScript = CMD.endsWith(".js");
3017
3021
  const cmd = isScript ? process.env.NODE_PATH_BIN || process.execPath : CMD;
3018
3022
  const finalArgs = isScript ? [CMD, ...args] : args;
3019
- execFile(cmd, finalArgs, { timeout, maxBuffer: 5 * 1024 * 1024 }, (err, stdout, stderr) => {
3023
+ const env = { ...process.env, AGENT_BROWSER_HOME: getAgentBrowserHome() };
3024
+ execFile(cmd, finalArgs, { timeout, maxBuffer: 5 * 1024 * 1024, env }, (err, stdout, stderr) => {
3020
3025
  if (err) {
3021
3026
  const msg = stderr?.trim() || stdout?.trim() || err.message;
3022
3027
  reject(new Error(msg));
@@ -3199,7 +3204,7 @@ function createBrowserTool(artifactStore) {
3199
3204
  await closeBrowser();
3200
3205
  return { toolCallId: "", content: "Browser closed." };
3201
3206
  }
3202
- const executeAction = async () => {
3207
+ try {
3203
3208
  const browser = await ensureBrowser();
3204
3209
  switch (action) {
3205
3210
  case "navigate": {
@@ -3389,28 +3394,10 @@ ${result.content}`,
3389
3394
  isError: true
3390
3395
  };
3391
3396
  }
3392
- };
3393
- try {
3394
- return await executeAction();
3395
3397
  } catch (err) {
3396
- const msg = err instanceof Error ? err.message : String(err);
3397
- if (msg.includes("has been closed") || msg.includes("Target page")) {
3398
- await closeBrowser().catch(() => {
3399
- });
3400
- resetBrowserInstance();
3401
- try {
3402
- return await executeAction();
3403
- } catch (retryErr) {
3404
- return {
3405
- toolCallId: "",
3406
- content: `Browser error (after retry): ${retryErr instanceof Error ? retryErr.message : String(retryErr)}`,
3407
- isError: true
3408
- };
3409
- }
3410
- }
3411
3398
  return {
3412
3399
  toolCallId: "",
3413
- content: `Browser error: ${msg}`,
3400
+ content: `Browser error: ${err instanceof Error ? err.message : String(err)}`,
3414
3401
  isError: true
3415
3402
  };
3416
3403
  }