deepfish-ai 2.0.6 → 2.0.8

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.
@@ -8703,7 +8703,7 @@ var import_fs_extra17 = __toESM(require("fs-extra"));
8703
8703
  var import_path12 = __toESM(require("path"));
8704
8704
 
8705
8705
  // src/agent/AIAgent/index.ts
8706
- var import_langchain17 = require("langchain");
8706
+ var import_langchain18 = require("langchain");
8707
8707
  var import_deepagents2 = require("deepagents");
8708
8708
 
8709
8709
  // src/agent/AIAgent/utils/langgraph-checkpoint-filesystem/filesystem-saver.ts
@@ -23496,10 +23496,33 @@ var executeCommandTool = (0, import_langchain3.tool)(({ command, timeout }) => s
23496
23496
  });
23497
23497
 
23498
23498
  // src/agent/tools/executeJSCode.ts
23499
- var import_langchain4 = require("langchain");
23499
+ var import_langchain5 = require("langchain");
23500
23500
  var import_path6 = __toESM(require("path"));
23501
23501
  var import_fs_extra7 = __toESM(require("fs-extra"));
23502
- async function executeJSCode(code) {
23502
+
23503
+ // src/agent/tools/subAgent.ts
23504
+ var import_langchain4 = require("langchain");
23505
+ async function subAgentExec(prompt, runtime) {
23506
+ const curAgent = runtime.context?.curAgent;
23507
+ if (!curAgent || typeof curAgent.createSubAgent !== "function") {
23508
+ throw new Error("\u5F53\u524D\u8FD0\u884C\u4E0A\u4E0B\u6587\u4E0D\u652F\u6301\u521B\u5EFA\u5B50 agent");
23509
+ }
23510
+ const subAgent = await curAgent.createSubAgent();
23511
+ return subAgent.execute(prompt);
23512
+ }
23513
+ var subAgentTool = (0, import_langchain4.tool)(
23514
+ async ({ prompt }, runtime) => safeTool(() => subAgentExec(prompt, runtime)),
23515
+ {
23516
+ name: "subAgent_exec",
23517
+ description: "\u521B\u5EFA\u4E00\u4E2A\u901A\u7528\u5B50 agent \u6765\u6267\u884C\u72EC\u7ACB\u4EFB\u52A1\uFF0C\u5E76\u8FD4\u56DE\u5B50 agent \u7684\u6267\u884C\u7ED3\u679C\u3002\u9002\u5408\u62C6\u5206\u590D\u6742\u4EFB\u52A1\u3001\u5E76\u884C\u8C03\u7814\u6216\u59D4\u6D3E\u5B50\u4EFB\u52A1\u3002",
23518
+ schema: external_exports.object({
23519
+ prompt: external_exports.string().min(1).describe("\u4EA4\u7ED9\u901A\u7528\u5B50 agent \u6267\u884C\u7684\u5B8C\u6574\u4EFB\u52A1\u63CF\u8FF0")
23520
+ })
23521
+ }
23522
+ );
23523
+
23524
+ // src/agent/tools/executeJSCode.ts
23525
+ async function executeJSCode(code, runtime) {
23503
23526
  logInfo("Executing JavaScript code: ");
23504
23527
  logInfo(code);
23505
23528
  try {
@@ -23508,7 +23531,7 @@ async function executeJSCode(code) {
23508
23531
  const result = await __main()
23509
23532
  return result || "Code executed successfully, but __main() did not return anything."
23510
23533
  })()`;
23511
- const fn = new Function("require", wrapped);
23534
+ const fn = new Function("require", "agentExec", wrapped);
23512
23535
  const _require = require;
23513
23536
  const newRequire = (modulePath) => {
23514
23537
  if (modulePath.startsWith("./")) {
@@ -23517,14 +23540,17 @@ async function executeJSCode(code) {
23517
23540
  }
23518
23541
  return _require(modulePath);
23519
23542
  };
23520
- const result = await fn(newRequire);
23543
+ const agentExec = async (prompt) => {
23544
+ return subAgentExec(prompt, runtime);
23545
+ };
23546
+ const result = await fn(newRequire, agentExec);
23521
23547
  return result;
23522
23548
  } catch (error51) {
23523
23549
  logError(`Error executing code: ${error51.stack}`);
23524
23550
  throw error51;
23525
23551
  }
23526
23552
  }
23527
- var getInstalledPackagesTool = (0, import_langchain4.tool)(
23553
+ var getInstalledPackagesTool = (0, import_langchain5.tool)(
23528
23554
  async () => safeTool(() => {
23529
23555
  const packageJson = import_path6.default.join(getCodePath(), "./package.json");
23530
23556
  const pkg = import_fs_extra7.default.readJsonSync(packageJson);
@@ -23536,7 +23562,7 @@ var getInstalledPackagesTool = (0, import_langchain4.tool)(
23536
23562
  schema: external_exports.object({})
23537
23563
  }
23538
23564
  );
23539
- var checkPackageInstalledTool = (0, import_langchain4.tool)(
23565
+ var checkPackageInstalledTool = (0, import_langchain5.tool)(
23540
23566
  async ({ packageName }) => safeTool(() => {
23541
23567
  const packageJson = import_path6.default.join(getCodePath(), "./package.json");
23542
23568
  const pkg = import_fs_extra7.default.readJsonSync(packageJson);
@@ -23551,7 +23577,7 @@ var checkPackageInstalledTool = (0, import_langchain4.tool)(
23551
23577
  })
23552
23578
  }
23553
23579
  );
23554
- var installPackageTool = (0, import_langchain4.tool)(
23580
+ var installPackageTool = (0, import_langchain5.tool)(
23555
23581
  async ({ packageName }) => safeTool(() => {
23556
23582
  const packageJson = import_path6.default.join(getCodePath(), "./package.json");
23557
23583
  const pkg = import_fs_extra7.default.readJsonSync(packageJson);
@@ -23568,12 +23594,16 @@ var installPackageTool = (0, import_langchain4.tool)(
23568
23594
  })
23569
23595
  }
23570
23596
  );
23571
- var executeJSCodeTool = (0, import_langchain4.tool)(async ({ code }) => safeTool(() => executeJSCode(code)), {
23597
+ var executeJSCodeTool = (0, import_langchain5.tool)(async ({ code }, runtime) => safeTool(() => executeJSCode(code, runtime)), {
23572
23598
  name: "execute_js_code",
23573
- description: `\u6267\u884C\u4E00\u6BB5Node.js\u4EE3\u7801\u5E76\u8FD4\u56DE\u6267\u884C\u7ED3\u679C\u3002\u6CE8\u610F\uFF1A\u4EE3\u7801\u5FC5\u987B\u5305\u542B\u4E00\u4E2A__main()\u51FD\u6570\u4F5C\u4E3A\u6267\u884C\u5165\u53E3\uFF0C__main()\u51FD\u6570\u5185\u5FC5\u987B\u662F\u4E00\u4E2A\u4F7F\u7528async\u524D\u7F00\u7684\u51FD\u6570\u3002\u793A\u4F8B\u4EE3\u7801\uFF1A
23599
+ description: `\u6267\u884C\u4E00\u6BB5Node.js\u4EE3\u7801\u5E76\u8FD4\u56DE\u6267\u884C\u7ED3\u679C\u3002\u6CE8\u610F\uFF1A\u4EE3\u7801\u5FC5\u987B\u5305\u542B\u4E00\u4E2A__main()\u51FD\u6570\u4F5C\u4E3A\u6267\u884C\u5165\u53E3\uFF0C__main()\u51FD\u6570\u5185\u5FC5\u987B\u662F\u4E00\u4E2A\u4F7F\u7528async\u524D\u7F00\u7684\u51FD\u6570\u3002
23600
+ \u53EF\u7528\u5185\u7F6E\u51FD\u6570\uFF1A
23601
+ - agentExec(prompt: string): Promise<string>\uFF0C\u521B\u5EFA\u4E00\u4E2A\u901A\u7528\u5B50 agent \u6267\u884C\u6307\u5B9A\u4EFB\u52A1\u5E76\u8FD4\u56DE\u7ED3\u679C\uFF0C\u9002\u5408\u5C06\u590D\u6742\u4EFB\u52A1\u62C6\u5206\u7ED9\u5B50 agent \u5B8C\u6210\u3002
23602
+ \u793A\u4F8B\u4EE3\u7801\uFF1A
23574
23603
  async function __main() {
23575
23604
  const data = await fs.readFile("data.txt", "utf-8")
23576
- return data
23605
+ const analysis = await agentExec("\u8BF7\u5206\u6790\u8FD9\u6BB5\u6587\u4EF6\u5185\u5BB9\u5E76\u603B\u7ED3\u91CD\u70B9\uFF1A" + data)
23606
+ return analysis
23577
23607
  }
23578
23608
  `,
23579
23609
  schema: external_exports.object({
@@ -23669,9 +23699,9 @@ var UserCache = class {
23669
23699
  };
23670
23700
 
23671
23701
  // src/agent/tools/learn-self.ts
23672
- var import_langchain5 = require("langchain");
23702
+ var import_langchain6 = require("langchain");
23673
23703
  var userCache = new UserCache();
23674
- var learnSelfTool = (0, import_langchain5.tool)(
23704
+ var learnSelfTool = (0, import_langchain6.tool)(
23675
23705
  ({ description, content }) => safeTool(() => {
23676
23706
  userCache.add(description, content);
23677
23707
  return `\u5DF2\u7F13\u5B58\u89E3\u51B3\u65B9\u6848: ${description}`;
@@ -23685,7 +23715,7 @@ var learnSelfTool = (0, import_langchain5.tool)(
23685
23715
  })
23686
23716
  }
23687
23717
  );
23688
- var getLearnedDetailTool = (0, import_langchain5.tool)(
23718
+ var getLearnedDetailTool = (0, import_langchain6.tool)(
23689
23719
  ({ indexOrId }) => safeTool(() => {
23690
23720
  const index = Number(indexOrId);
23691
23721
  let item;
@@ -23714,7 +23744,7 @@ ${detail.content}`;
23714
23744
  })
23715
23745
  }
23716
23746
  );
23717
- var updateLearnContentTool = (0, import_langchain5.tool)(
23747
+ var updateLearnContentTool = (0, import_langchain6.tool)(
23718
23748
  ({ id, content }) => safeTool(() => {
23719
23749
  const success2 = userCache.update(id, content);
23720
23750
  if (!success2) {
@@ -23731,7 +23761,7 @@ var updateLearnContentTool = (0, import_langchain5.tool)(
23731
23761
  })
23732
23762
  }
23733
23763
  );
23734
- var getCatalogFilePathTool = (0, import_langchain5.tool)(() => safeTool(() => userCache.getCatalogFilePath()), {
23764
+ var getCatalogFilePathTool = (0, import_langchain6.tool)(() => safeTool(() => userCache.getCatalogFilePath()), {
23735
23765
  name: "get_catalog_file_path",
23736
23766
  description: "\u83B7\u53D6\u7F13\u5B58\u7D22\u5F15\u6587\u4EF6 catalog.json \u7684\u7EDD\u5BF9\u8DEF\u5F84\u3002\u8BE5\u6587\u4EF6\u5305\u542B\u6240\u6709\u5DF2\u7F13\u5B58\u65B9\u6848\u7684 id \u548C description \u5217\u8868\u3002\u83B7\u53D6\u8DEF\u5F84\u540E\uFF0C\u4F7F\u7528 read_file \u5DE5\u5177\u8BFB\u53D6\u8BE5\u6587\u4EF6\u5373\u53EF\u67E5\u770B\u6240\u6709\u7F13\u5B58\u9879\u3002",
23737
23767
  schema: external_exports.object({})
@@ -23741,11 +23771,11 @@ var learnTools = [learnSelfTool, getLearnedDetailTool, updateLearnContentTool, g
23741
23771
  // src/agent/tools/mcp.ts
23742
23772
  var import_mcp_adapters = require("@langchain/mcp-adapters");
23743
23773
  var import_fs_extra9 = __toESM(require("fs-extra"));
23744
- var import_langchain6 = require("langchain");
23774
+ var import_langchain7 = require("langchain");
23745
23775
 
23746
23776
  // src/agent/tools/edit.ts
23747
23777
  var import_fs_extra10 = __toESM(require("fs-extra"));
23748
- var import_langchain7 = require("langchain");
23778
+ var import_langchain8 = require("langchain");
23749
23779
  async function editFileByReplace(filePath, oldString, newString, replaceAll = false) {
23750
23780
  const absPath = resolveWorkspacePath(filePath);
23751
23781
  if (!await import_fs_extra10.default.pathExists(absPath)) {
@@ -23766,7 +23796,7 @@ async function editFileByReplace(filePath, oldString, newString, replaceAll = fa
23766
23796
  await import_fs_extra10.default.writeFile(absPath, nextContent, "utf-8");
23767
23797
  return `\u5DF2\u7F16\u8F91\u6587\u4EF6: ${absPath}\uFF0C\u66FF\u6362 ${replaceAll ? matches : 1} \u5904`;
23768
23798
  }
23769
- var editFileTool = (0, import_langchain7.tool)(
23799
+ var editFileTool = (0, import_langchain8.tool)(
23770
23800
  async ({ filePath, oldString, newString, replaceAll }) => safeTool(() => editFileByReplace(filePath, oldString, newString, replaceAll)),
23771
23801
  {
23772
23802
  name: "edit_file",
@@ -23782,7 +23812,7 @@ var editFileTool = (0, import_langchain7.tool)(
23782
23812
 
23783
23813
  // src/agent/tools/glob.ts
23784
23814
  var import_path8 = __toESM(require("path"));
23785
- var import_langchain8 = require("langchain");
23815
+ var import_langchain9 = require("langchain");
23786
23816
  async function globFiles(pattern, cwd, maxResults = 200, includeHidden = false) {
23787
23817
  const rootDir = resolveWorkspacePath(cwd || ".");
23788
23818
  const allFiles = await walkFiles(rootDir, { includeHidden, maxFiles: Math.max(maxResults * 20, 1e3) });
@@ -23790,7 +23820,7 @@ async function globFiles(pattern, cwd, maxResults = 200, includeHidden = false)
23790
23820
  const matches = allFiles.map((file2) => normalizePathForMatch(import_path8.default.relative(rootDir, file2))).filter((relativePath) => matchesGlob(relativePath, normalizedPattern)).slice(0, maxResults);
23791
23821
  return truncateOutput(formatJson({ cwd: rootDir, pattern, count: matches.length, files: matches }));
23792
23822
  }
23793
- var globTool = (0, import_langchain8.tool)(
23823
+ var globTool = (0, import_langchain9.tool)(
23794
23824
  async ({ pattern, cwd, maxResults, includeHidden }) => safeTool(() => globFiles(pattern, cwd, maxResults, includeHidden)),
23795
23825
  {
23796
23826
  name: "glob_files",
@@ -23807,7 +23837,7 @@ var globTool = (0, import_langchain8.tool)(
23807
23837
  // src/agent/tools/grep.ts
23808
23838
  var import_fs_extra11 = __toESM(require("fs-extra"));
23809
23839
  var import_path9 = __toESM(require("path"));
23810
- var import_langchain9 = require("langchain");
23840
+ var import_langchain10 = require("langchain");
23811
23841
  async function grepFiles(query, cwd, includePattern = "**/*", isRegexp = false, maxResults = 100, includeHidden = false) {
23812
23842
  const rootDir = resolveWorkspacePath(cwd || ".");
23813
23843
  const matcher = isRegexp ? new RegExp(query, "i") : null;
@@ -23832,7 +23862,7 @@ async function grepFiles(query, cwd, includePattern = "**/*", isRegexp = false,
23832
23862
  }
23833
23863
  return truncateOutput(formatJson({ cwd: rootDir, query, includePattern, count: matches.length, matches }));
23834
23864
  }
23835
- var grepTool = (0, import_langchain9.tool)(
23865
+ var grepTool = (0, import_langchain10.tool)(
23836
23866
  async ({ query, pattern, cwd, includePattern, isRegexp, maxResults, includeHidden }) => safeTool(() => {
23837
23867
  const searchQuery = query || pattern;
23838
23868
  if (!searchQuery) {
@@ -23860,7 +23890,7 @@ var grepTool = (0, import_langchain9.tool)(
23860
23890
 
23861
23891
  // src/agent/tools/question.ts
23862
23892
  var import_inquirer = __toESM(require("inquirer"));
23863
- var import_langchain10 = require("langchain");
23893
+ var import_langchain11 = require("langchain");
23864
23894
  async function askQuestion(question, type = "input", choices = []) {
23865
23895
  const promptType = type === "select" ? "list" : type;
23866
23896
  const answer = await import_inquirer.default.prompt([
@@ -23874,7 +23904,7 @@ async function askQuestion(question, type = "input", choices = []) {
23874
23904
  const value = answer["value"];
23875
23905
  return typeof value === "string" ? value : JSON.stringify(value);
23876
23906
  }
23877
- var questionTool = (0, import_langchain10.tool)(async ({ question, type, choices }) => safeTool(() => askQuestion(question, type, choices)), {
23907
+ var questionTool = (0, import_langchain11.tool)(async ({ question, type, choices }) => safeTool(() => askQuestion(question, type, choices)), {
23878
23908
  name: "ask_question",
23879
23909
  description: "\u5F53\u7EE7\u7EED\u4EFB\u52A1\u5FC5\u987B\u83B7\u53D6\u7528\u6237\u6F84\u6E05\u3001\u786E\u8BA4\u6216\u9009\u62E9\u65F6\uFF0C\u5411\u7528\u6237\u53D1\u8D77\u547D\u4EE4\u884C\u63D0\u95EE\u5E76\u8FD4\u56DE\u7B54\u6848\u3002\u4E0D\u8981\u8BE2\u95EE\u5BC6\u7801\u3001\u5BC6\u94A5\u7B49\u654F\u611F\u4FE1\u606F\u3002",
23880
23910
  schema: external_exports.object({
@@ -23887,7 +23917,7 @@ var questionTool = (0, import_langchain10.tool)(async ({ question, type, choices
23887
23917
  // src/agent/tools/read.ts
23888
23918
  var import_fs_extra12 = __toESM(require("fs-extra"));
23889
23919
  var import_iconv_lite2 = __toESM(require("iconv-lite"));
23890
- var import_langchain11 = require("langchain");
23920
+ var import_langchain12 = require("langchain");
23891
23921
  async function readFile(filePath, startLine = 1, endLine = -1, encoding) {
23892
23922
  const absPath = resolveWorkspacePath(filePath);
23893
23923
  if (!await import_fs_extra12.default.pathExists(absPath)) {
@@ -23909,7 +23939,7 @@ async function readFile(filePath, startLine = 1, endLine = -1, encoding) {
23909
23939
  const selected = lines.slice(safeStart - 1, safeEnd).map((line, index) => `${safeStart + index}: ${line}`).join("\n");
23910
23940
  return truncateOutput(formatJson({ filePath: absPath, totalLines: lines.length, startLine: safeStart, endLine: safeEnd, content: selected }));
23911
23941
  }
23912
- var readFileTool = (0, import_langchain11.tool)(
23942
+ var readFileTool = (0, import_langchain12.tool)(
23913
23943
  async ({ filePath, startLine, endLine, encoding }) => safeTool(() => readFile(filePath, startLine, endLine, encoding)),
23914
23944
  {
23915
23945
  name: "read_file",
@@ -23926,7 +23956,7 @@ var readFileTool = (0, import_langchain11.tool)(
23926
23956
  // src/agent/tools/semanticMemory.ts
23927
23957
  var import_fs_extra13 = __toESM(require("fs-extra"));
23928
23958
  var import_path10 = __toESM(require("path"));
23929
- var import_langchain12 = require("langchain");
23959
+ var import_langchain13 = require("langchain");
23930
23960
  var DEFAULT_MEMORY_MARKDOWN = `# \u7528\u6237\u8BED\u4E49\u8BB0\u5FC6
23931
23961
 
23932
23962
  > \u8BE5\u6587\u4EF6\u7531\u8BED\u4E49\u8BB0\u5FC6\u5DE5\u5177\u7EF4\u62A4\u3002\u4EC5\u8BB0\u5F55\u53EF\u957F\u671F\u590D\u7528\u7684\u7528\u6237\u4FE1\u606F\u3001\u4E60\u60EF\u548C\u504F\u597D\uFF1B\u4E0D\u8981\u8BB0\u5F55\u5BC6\u7801\u3001\u5BC6\u94A5\u3001\u4EE4\u724C\u7B49\u654F\u611F\u4FE1\u606F\u3002
@@ -23962,7 +23992,7 @@ async function updateSemanticMemory(memoryFilePath, content) {
23962
23992
  `, "utf-8");
23963
23993
  return `\u5DF2\u66F4\u65B0\u7528\u6237\u8BED\u4E49\u8BB0\u5FC6: ${memoryFilePath}`;
23964
23994
  }
23965
- var readSemanticMemoryTool = (0, import_langchain12.tool)(
23995
+ var readSemanticMemoryTool = (0, import_langchain13.tool)(
23966
23996
  async (_input, runtime) => safeTool(() => readSemanticMemory(getMemoryFilePath(runtime.context?.memoryFilePath))),
23967
23997
  {
23968
23998
  name: "read_user_semantic_memory",
@@ -23970,7 +24000,7 @@ var readSemanticMemoryTool = (0, import_langchain12.tool)(
23970
24000
  schema: external_exports.object({})
23971
24001
  }
23972
24002
  );
23973
- var updateSemanticMemoryTool = (0, import_langchain12.tool)(
24003
+ var updateSemanticMemoryTool = (0, import_langchain13.tool)(
23974
24004
  async ({ content }, runtime) => safeTool(() => updateSemanticMemory(getMemoryFilePath(runtime.context?.memoryFilePath), content)),
23975
24005
  {
23976
24006
  name: "update_user_semantic_memory",
@@ -24030,7 +24060,7 @@ var TaskQueue = class {
24030
24060
  };
24031
24061
 
24032
24062
  // src/agent/tools/task.ts
24033
- var import_langchain13 = require("langchain");
24063
+ var import_langchain14 = require("langchain");
24034
24064
  function getCurrentTaskQueue(agentId) {
24035
24065
  return agentId ? new TaskQueue(agentId) : null;
24036
24066
  }
@@ -24062,7 +24092,7 @@ function manageTaskQueue(agentId, action, task, index) {
24062
24092
  queue.clearTasks();
24063
24093
  return "\u5DF2\u6E05\u7A7A\u4EFB\u52A1\u961F\u5217";
24064
24094
  }
24065
- var taskTool = (0, import_langchain13.tool)(
24095
+ var taskTool = (0, import_langchain14.tool)(
24066
24096
  async ({ action, task, index }, runtime) => safeTool(() => {
24067
24097
  const agentId = runtime.context?.agentId || getAgentId();
24068
24098
  return manageTaskQueue(agentId, action, task, index);
@@ -24079,7 +24109,7 @@ var taskTool = (0, import_langchain13.tool)(
24079
24109
  );
24080
24110
 
24081
24111
  // src/agent/tools/webfetch.ts
24082
- var import_langchain14 = require("langchain");
24112
+ var import_langchain15 = require("langchain");
24083
24113
  async function webFetch(url2, timeout = 3e4, maxLength = 6e4) {
24084
24114
  const controller = new AbortController();
24085
24115
  const timer = setTimeout(() => controller.abort(), timeout);
@@ -24112,7 +24142,7 @@ async function webFetch(url2, timeout = 3e4, maxLength = 6e4) {
24112
24142
  clearTimeout(timer);
24113
24143
  }
24114
24144
  }
24115
- var webFetchTool = (0, import_langchain14.tool)(async ({ url: url2, timeout, maxLength }) => safeTool(() => webFetch(url2, timeout, maxLength)), {
24145
+ var webFetchTool = (0, import_langchain15.tool)(async ({ url: url2, timeout, maxLength }) => safeTool(() => webFetch(url2, timeout, maxLength)), {
24116
24146
  name: "web_fetch",
24117
24147
  description: "\u901A\u8FC7 HTTP GET \u83B7\u53D6\u7F51\u9875\u3001\u63A5\u53E3\u6216\u8FDC\u7A0B\u6587\u672C\u5185\u5BB9\uFF0C\u5E76\u8FD4\u56DE\u72B6\u6001\u7801\u3001content-type \u548C\u54CD\u5E94\u6B63\u6587\u3002",
24118
24148
  schema: external_exports.object({
@@ -24125,7 +24155,7 @@ var webFetchTool = (0, import_langchain14.tool)(async ({ url: url2, timeout, max
24125
24155
  // src/agent/tools/write.ts
24126
24156
  var import_fs_extra15 = __toESM(require("fs-extra"));
24127
24157
  var import_path11 = __toESM(require("path"));
24128
- var import_langchain15 = require("langchain");
24158
+ var import_langchain16 = require("langchain");
24129
24159
  async function writeFile(filePath, content, mode = "overwrite") {
24130
24160
  const absPath = resolveWorkspacePath(filePath);
24131
24161
  const exists = await import_fs_extra15.default.pathExists(absPath);
@@ -24140,7 +24170,7 @@ async function writeFile(filePath, content, mode = "overwrite") {
24140
24170
  await import_fs_extra15.default.writeFile(absPath, content, "utf-8");
24141
24171
  return `${exists ? "\u5DF2\u8986\u76D6\u5199\u5165\u6587\u4EF6" : "\u5DF2\u521B\u5EFA\u6587\u4EF6"}: ${absPath}`;
24142
24172
  }
24143
- var writeFileTool = (0, import_langchain15.tool)(async ({ filePath, content, mode }) => safeTool(() => writeFile(filePath, content, mode)), {
24173
+ var writeFileTool = (0, import_langchain16.tool)(async ({ filePath, content, mode }) => safeTool(() => writeFile(filePath, content, mode)), {
24144
24174
  name: "write_file",
24145
24175
  description: "\u5411\u672C\u5730\u6587\u4EF6\u5199\u5165\u6587\u672C\u5185\u5BB9\u3002\u53EF\u521B\u5EFA\u65B0\u6587\u4EF6\u3001\u8986\u76D6\u5DF2\u6709\u6587\u4EF6\u6216\u8FFD\u52A0\u5185\u5BB9\uFF0C\u4F1A\u81EA\u52A8\u521B\u5EFA\u7236\u76EE\u5F55\u3002",
24146
24176
  schema: external_exports.object({
@@ -24153,6 +24183,7 @@ var writeFileTool = (0, import_langchain15.tool)(async ({ filePath, content, mod
24153
24183
  // src/agent/tools/index.ts
24154
24184
  var builtinTools = [
24155
24185
  taskTool,
24186
+ subAgentTool,
24156
24187
  executeCommandTool,
24157
24188
  readFileTool,
24158
24189
  editFileTool,
@@ -24170,10 +24201,14 @@ var builtinTools = [
24170
24201
  var import_inquirer2 = __toESM(require("inquirer"));
24171
24202
  var import_fs_extra16 = __toESM(require("fs-extra"));
24172
24203
 
24173
- // src/agent/AIAgent/SubAIAgent.ts
24174
- var import_langchain16 = require("langchain");
24204
+ // src/agent/AIAgent/SubAgents/SubAIAgent.ts
24205
+ var import_langchain17 = require("langchain");
24175
24206
  var import_deepagents = require("deepagents");
24176
24207
  var import_eventemitter_super = require("eventemitter-super");
24208
+ var import_lodash = require("lodash");
24209
+
24210
+ // src/agent/AIAgent/index.ts
24211
+ var import_lodash2 = require("lodash");
24177
24212
 
24178
24213
  // src/serve/service/agent-room/agent-client.ts
24179
24214
  var import_ws = __toESM(require("ws"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepfish-ai",
3
- "version": "2.0.6",
3
+ "version": "2.0.8",
4
4
  "private": false,
5
5
  "description": "An efficient AI-driven command-line tool designed to bridge the gap between natural language and operating system commands, file operations, and more. It enables non-developers to quickly generate executable instructions through simple natural language descriptions, significantly improving terminal operation efficiency.",
6
6
  "repository": {
@@ -55,6 +55,7 @@
55
55
  "inquirer": "^14.0.2",
56
56
  "json5": "^2.2.3",
57
57
  "langchain": "^1.4.4",
58
+ "lodash": "^4.18.1",
58
59
  "pm2": "^7.0.1",
59
60
  "solid-js": "^1.9.13",
60
61
  "tsx": "^4.19.0",
@@ -64,6 +65,7 @@
64
65
  "@types/adm-zip": "^0.5.8",
65
66
  "@types/express": "^5.0.6",
66
67
  "@types/fs-extra": "^11.0.4",
68
+ "@types/lodash": "^4.17.24",
67
69
  "@types/node": "^22.0.0",
68
70
  "@types/ws": "^8.18.1",
69
71
  "less": "^4.6.6",