deepfish-ai 2.0.5 → 2.0.7
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/README.md +2 -0
- package/dist/generate-tool.md +1 -1
- package/dist/index.js +458 -143
- package/dist/serve/pm2-server.js +86 -39
- package/package.json +3 -1
package/dist/serve/pm2-server.js
CHANGED
|
@@ -8703,8 +8703,8 @@ 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
|
|
8707
|
-
var
|
|
8706
|
+
var import_langchain18 = require("langchain");
|
|
8707
|
+
var import_deepagents2 = require("deepagents");
|
|
8708
8708
|
|
|
8709
8709
|
// src/agent/AIAgent/utils/langgraph-checkpoint-filesystem/filesystem-saver.ts
|
|
8710
8710
|
var import_runnables = require("@langchain/core/runnables");
|
|
@@ -23265,7 +23265,7 @@ function date4(params) {
|
|
|
23265
23265
|
config(en_default());
|
|
23266
23266
|
|
|
23267
23267
|
// src/agent/AIAgent/index.ts
|
|
23268
|
-
var
|
|
23268
|
+
var import_eventemitter_super2 = require("eventemitter-super");
|
|
23269
23269
|
|
|
23270
23270
|
// src/agent/AIAgent/middleware/eventEmitMiddleware.ts
|
|
23271
23271
|
var import_langchain = require("langchain");
|
|
@@ -23496,11 +23496,33 @@ var executeCommandTool = (0, import_langchain3.tool)(({ command, timeout }) => s
|
|
|
23496
23496
|
});
|
|
23497
23497
|
|
|
23498
23498
|
// src/agent/tools/executeJSCode.ts
|
|
23499
|
-
var
|
|
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
|
-
|
|
23503
|
-
|
|
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) {
|
|
23504
23526
|
logInfo("Executing JavaScript code: ");
|
|
23505
23527
|
logInfo(code);
|
|
23506
23528
|
try {
|
|
@@ -23509,15 +23531,26 @@ async function executeJSCode(code) {
|
|
|
23509
23531
|
const result = await __main()
|
|
23510
23532
|
return result || "Code executed successfully, but __main() did not return anything."
|
|
23511
23533
|
})()`;
|
|
23512
|
-
const fn = new Function("require", wrapped);
|
|
23513
|
-
const
|
|
23534
|
+
const fn = new Function("require", "agentExec", wrapped);
|
|
23535
|
+
const _require = require;
|
|
23536
|
+
const newRequire = (modulePath) => {
|
|
23537
|
+
if (modulePath.startsWith("./")) {
|
|
23538
|
+
const resolvedPath = import_path6.default.resolve(process.cwd(), modulePath);
|
|
23539
|
+
return _require(resolvedPath);
|
|
23540
|
+
}
|
|
23541
|
+
return _require(modulePath);
|
|
23542
|
+
};
|
|
23543
|
+
const agentExec = async (prompt) => {
|
|
23544
|
+
return subAgentExec(prompt, runtime);
|
|
23545
|
+
};
|
|
23546
|
+
const result = await fn(newRequire, agentExec);
|
|
23514
23547
|
return result;
|
|
23515
23548
|
} catch (error51) {
|
|
23516
23549
|
logError(`Error executing code: ${error51.stack}`);
|
|
23517
23550
|
throw error51;
|
|
23518
23551
|
}
|
|
23519
23552
|
}
|
|
23520
|
-
var getInstalledPackagesTool = (0,
|
|
23553
|
+
var getInstalledPackagesTool = (0, import_langchain5.tool)(
|
|
23521
23554
|
async () => safeTool(() => {
|
|
23522
23555
|
const packageJson = import_path6.default.join(getCodePath(), "./package.json");
|
|
23523
23556
|
const pkg = import_fs_extra7.default.readJsonSync(packageJson);
|
|
@@ -23529,7 +23562,7 @@ var getInstalledPackagesTool = (0, import_langchain4.tool)(
|
|
|
23529
23562
|
schema: external_exports.object({})
|
|
23530
23563
|
}
|
|
23531
23564
|
);
|
|
23532
|
-
var checkPackageInstalledTool = (0,
|
|
23565
|
+
var checkPackageInstalledTool = (0, import_langchain5.tool)(
|
|
23533
23566
|
async ({ packageName }) => safeTool(() => {
|
|
23534
23567
|
const packageJson = import_path6.default.join(getCodePath(), "./package.json");
|
|
23535
23568
|
const pkg = import_fs_extra7.default.readJsonSync(packageJson);
|
|
@@ -23544,7 +23577,7 @@ var checkPackageInstalledTool = (0, import_langchain4.tool)(
|
|
|
23544
23577
|
})
|
|
23545
23578
|
}
|
|
23546
23579
|
);
|
|
23547
|
-
var installPackageTool = (0,
|
|
23580
|
+
var installPackageTool = (0, import_langchain5.tool)(
|
|
23548
23581
|
async ({ packageName }) => safeTool(() => {
|
|
23549
23582
|
const packageJson = import_path6.default.join(getCodePath(), "./package.json");
|
|
23550
23583
|
const pkg = import_fs_extra7.default.readJsonSync(packageJson);
|
|
@@ -23561,12 +23594,16 @@ var installPackageTool = (0, import_langchain4.tool)(
|
|
|
23561
23594
|
})
|
|
23562
23595
|
}
|
|
23563
23596
|
);
|
|
23564
|
-
var executeJSCodeTool = (0,
|
|
23597
|
+
var executeJSCodeTool = (0, import_langchain5.tool)(async ({ code }, runtime) => safeTool(() => executeJSCode(code, runtime)), {
|
|
23565
23598
|
name: "execute_js_code",
|
|
23566
|
-
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
|
|
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
|
|
23567
23603
|
async function __main() {
|
|
23568
23604
|
const data = await fs.readFile("data.txt", "utf-8")
|
|
23569
|
-
|
|
23605
|
+
const analysis = await agentExec("\u8BF7\u5206\u6790\u8FD9\u6BB5\u6587\u4EF6\u5185\u5BB9\u5E76\u603B\u7ED3\u91CD\u70B9\uFF1A" + data)
|
|
23606
|
+
return analysis
|
|
23570
23607
|
}
|
|
23571
23608
|
`,
|
|
23572
23609
|
schema: external_exports.object({
|
|
@@ -23662,9 +23699,9 @@ var UserCache = class {
|
|
|
23662
23699
|
};
|
|
23663
23700
|
|
|
23664
23701
|
// src/agent/tools/learn-self.ts
|
|
23665
|
-
var
|
|
23702
|
+
var import_langchain6 = require("langchain");
|
|
23666
23703
|
var userCache = new UserCache();
|
|
23667
|
-
var learnSelfTool = (0,
|
|
23704
|
+
var learnSelfTool = (0, import_langchain6.tool)(
|
|
23668
23705
|
({ description, content }) => safeTool(() => {
|
|
23669
23706
|
userCache.add(description, content);
|
|
23670
23707
|
return `\u5DF2\u7F13\u5B58\u89E3\u51B3\u65B9\u6848: ${description}`;
|
|
@@ -23678,7 +23715,7 @@ var learnSelfTool = (0, import_langchain5.tool)(
|
|
|
23678
23715
|
})
|
|
23679
23716
|
}
|
|
23680
23717
|
);
|
|
23681
|
-
var getLearnedDetailTool = (0,
|
|
23718
|
+
var getLearnedDetailTool = (0, import_langchain6.tool)(
|
|
23682
23719
|
({ indexOrId }) => safeTool(() => {
|
|
23683
23720
|
const index = Number(indexOrId);
|
|
23684
23721
|
let item;
|
|
@@ -23707,7 +23744,7 @@ ${detail.content}`;
|
|
|
23707
23744
|
})
|
|
23708
23745
|
}
|
|
23709
23746
|
);
|
|
23710
|
-
var updateLearnContentTool = (0,
|
|
23747
|
+
var updateLearnContentTool = (0, import_langchain6.tool)(
|
|
23711
23748
|
({ id, content }) => safeTool(() => {
|
|
23712
23749
|
const success2 = userCache.update(id, content);
|
|
23713
23750
|
if (!success2) {
|
|
@@ -23724,7 +23761,7 @@ var updateLearnContentTool = (0, import_langchain5.tool)(
|
|
|
23724
23761
|
})
|
|
23725
23762
|
}
|
|
23726
23763
|
);
|
|
23727
|
-
var getCatalogFilePathTool = (0,
|
|
23764
|
+
var getCatalogFilePathTool = (0, import_langchain6.tool)(() => safeTool(() => userCache.getCatalogFilePath()), {
|
|
23728
23765
|
name: "get_catalog_file_path",
|
|
23729
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",
|
|
23730
23767
|
schema: external_exports.object({})
|
|
@@ -23734,11 +23771,11 @@ var learnTools = [learnSelfTool, getLearnedDetailTool, updateLearnContentTool, g
|
|
|
23734
23771
|
// src/agent/tools/mcp.ts
|
|
23735
23772
|
var import_mcp_adapters = require("@langchain/mcp-adapters");
|
|
23736
23773
|
var import_fs_extra9 = __toESM(require("fs-extra"));
|
|
23737
|
-
var
|
|
23774
|
+
var import_langchain7 = require("langchain");
|
|
23738
23775
|
|
|
23739
23776
|
// src/agent/tools/edit.ts
|
|
23740
23777
|
var import_fs_extra10 = __toESM(require("fs-extra"));
|
|
23741
|
-
var
|
|
23778
|
+
var import_langchain8 = require("langchain");
|
|
23742
23779
|
async function editFileByReplace(filePath, oldString, newString, replaceAll = false) {
|
|
23743
23780
|
const absPath = resolveWorkspacePath(filePath);
|
|
23744
23781
|
if (!await import_fs_extra10.default.pathExists(absPath)) {
|
|
@@ -23759,7 +23796,7 @@ async function editFileByReplace(filePath, oldString, newString, replaceAll = fa
|
|
|
23759
23796
|
await import_fs_extra10.default.writeFile(absPath, nextContent, "utf-8");
|
|
23760
23797
|
return `\u5DF2\u7F16\u8F91\u6587\u4EF6: ${absPath}\uFF0C\u66FF\u6362 ${replaceAll ? matches : 1} \u5904`;
|
|
23761
23798
|
}
|
|
23762
|
-
var editFileTool = (0,
|
|
23799
|
+
var editFileTool = (0, import_langchain8.tool)(
|
|
23763
23800
|
async ({ filePath, oldString, newString, replaceAll }) => safeTool(() => editFileByReplace(filePath, oldString, newString, replaceAll)),
|
|
23764
23801
|
{
|
|
23765
23802
|
name: "edit_file",
|
|
@@ -23775,7 +23812,7 @@ var editFileTool = (0, import_langchain7.tool)(
|
|
|
23775
23812
|
|
|
23776
23813
|
// src/agent/tools/glob.ts
|
|
23777
23814
|
var import_path8 = __toESM(require("path"));
|
|
23778
|
-
var
|
|
23815
|
+
var import_langchain9 = require("langchain");
|
|
23779
23816
|
async function globFiles(pattern, cwd, maxResults = 200, includeHidden = false) {
|
|
23780
23817
|
const rootDir = resolveWorkspacePath(cwd || ".");
|
|
23781
23818
|
const allFiles = await walkFiles(rootDir, { includeHidden, maxFiles: Math.max(maxResults * 20, 1e3) });
|
|
@@ -23783,7 +23820,7 @@ async function globFiles(pattern, cwd, maxResults = 200, includeHidden = false)
|
|
|
23783
23820
|
const matches = allFiles.map((file2) => normalizePathForMatch(import_path8.default.relative(rootDir, file2))).filter((relativePath) => matchesGlob(relativePath, normalizedPattern)).slice(0, maxResults);
|
|
23784
23821
|
return truncateOutput(formatJson({ cwd: rootDir, pattern, count: matches.length, files: matches }));
|
|
23785
23822
|
}
|
|
23786
|
-
var globTool = (0,
|
|
23823
|
+
var globTool = (0, import_langchain9.tool)(
|
|
23787
23824
|
async ({ pattern, cwd, maxResults, includeHidden }) => safeTool(() => globFiles(pattern, cwd, maxResults, includeHidden)),
|
|
23788
23825
|
{
|
|
23789
23826
|
name: "glob_files",
|
|
@@ -23800,7 +23837,7 @@ var globTool = (0, import_langchain8.tool)(
|
|
|
23800
23837
|
// src/agent/tools/grep.ts
|
|
23801
23838
|
var import_fs_extra11 = __toESM(require("fs-extra"));
|
|
23802
23839
|
var import_path9 = __toESM(require("path"));
|
|
23803
|
-
var
|
|
23840
|
+
var import_langchain10 = require("langchain");
|
|
23804
23841
|
async function grepFiles(query, cwd, includePattern = "**/*", isRegexp = false, maxResults = 100, includeHidden = false) {
|
|
23805
23842
|
const rootDir = resolveWorkspacePath(cwd || ".");
|
|
23806
23843
|
const matcher = isRegexp ? new RegExp(query, "i") : null;
|
|
@@ -23825,7 +23862,7 @@ async function grepFiles(query, cwd, includePattern = "**/*", isRegexp = false,
|
|
|
23825
23862
|
}
|
|
23826
23863
|
return truncateOutput(formatJson({ cwd: rootDir, query, includePattern, count: matches.length, matches }));
|
|
23827
23864
|
}
|
|
23828
|
-
var grepTool = (0,
|
|
23865
|
+
var grepTool = (0, import_langchain10.tool)(
|
|
23829
23866
|
async ({ query, pattern, cwd, includePattern, isRegexp, maxResults, includeHidden }) => safeTool(() => {
|
|
23830
23867
|
const searchQuery = query || pattern;
|
|
23831
23868
|
if (!searchQuery) {
|
|
@@ -23853,7 +23890,7 @@ var grepTool = (0, import_langchain9.tool)(
|
|
|
23853
23890
|
|
|
23854
23891
|
// src/agent/tools/question.ts
|
|
23855
23892
|
var import_inquirer = __toESM(require("inquirer"));
|
|
23856
|
-
var
|
|
23893
|
+
var import_langchain11 = require("langchain");
|
|
23857
23894
|
async function askQuestion(question, type = "input", choices = []) {
|
|
23858
23895
|
const promptType = type === "select" ? "list" : type;
|
|
23859
23896
|
const answer = await import_inquirer.default.prompt([
|
|
@@ -23867,7 +23904,7 @@ async function askQuestion(question, type = "input", choices = []) {
|
|
|
23867
23904
|
const value = answer["value"];
|
|
23868
23905
|
return typeof value === "string" ? value : JSON.stringify(value);
|
|
23869
23906
|
}
|
|
23870
|
-
var questionTool = (0,
|
|
23907
|
+
var questionTool = (0, import_langchain11.tool)(async ({ question, type, choices }) => safeTool(() => askQuestion(question, type, choices)), {
|
|
23871
23908
|
name: "ask_question",
|
|
23872
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",
|
|
23873
23910
|
schema: external_exports.object({
|
|
@@ -23880,7 +23917,7 @@ var questionTool = (0, import_langchain10.tool)(async ({ question, type, choices
|
|
|
23880
23917
|
// src/agent/tools/read.ts
|
|
23881
23918
|
var import_fs_extra12 = __toESM(require("fs-extra"));
|
|
23882
23919
|
var import_iconv_lite2 = __toESM(require("iconv-lite"));
|
|
23883
|
-
var
|
|
23920
|
+
var import_langchain12 = require("langchain");
|
|
23884
23921
|
async function readFile(filePath, startLine = 1, endLine = -1, encoding) {
|
|
23885
23922
|
const absPath = resolveWorkspacePath(filePath);
|
|
23886
23923
|
if (!await import_fs_extra12.default.pathExists(absPath)) {
|
|
@@ -23902,7 +23939,7 @@ async function readFile(filePath, startLine = 1, endLine = -1, encoding) {
|
|
|
23902
23939
|
const selected = lines.slice(safeStart - 1, safeEnd).map((line, index) => `${safeStart + index}: ${line}`).join("\n");
|
|
23903
23940
|
return truncateOutput(formatJson({ filePath: absPath, totalLines: lines.length, startLine: safeStart, endLine: safeEnd, content: selected }));
|
|
23904
23941
|
}
|
|
23905
|
-
var readFileTool = (0,
|
|
23942
|
+
var readFileTool = (0, import_langchain12.tool)(
|
|
23906
23943
|
async ({ filePath, startLine, endLine, encoding }) => safeTool(() => readFile(filePath, startLine, endLine, encoding)),
|
|
23907
23944
|
{
|
|
23908
23945
|
name: "read_file",
|
|
@@ -23919,7 +23956,7 @@ var readFileTool = (0, import_langchain11.tool)(
|
|
|
23919
23956
|
// src/agent/tools/semanticMemory.ts
|
|
23920
23957
|
var import_fs_extra13 = __toESM(require("fs-extra"));
|
|
23921
23958
|
var import_path10 = __toESM(require("path"));
|
|
23922
|
-
var
|
|
23959
|
+
var import_langchain13 = require("langchain");
|
|
23923
23960
|
var DEFAULT_MEMORY_MARKDOWN = `# \u7528\u6237\u8BED\u4E49\u8BB0\u5FC6
|
|
23924
23961
|
|
|
23925
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
|
|
@@ -23955,7 +23992,7 @@ async function updateSemanticMemory(memoryFilePath, content) {
|
|
|
23955
23992
|
`, "utf-8");
|
|
23956
23993
|
return `\u5DF2\u66F4\u65B0\u7528\u6237\u8BED\u4E49\u8BB0\u5FC6: ${memoryFilePath}`;
|
|
23957
23994
|
}
|
|
23958
|
-
var readSemanticMemoryTool = (0,
|
|
23995
|
+
var readSemanticMemoryTool = (0, import_langchain13.tool)(
|
|
23959
23996
|
async (_input, runtime) => safeTool(() => readSemanticMemory(getMemoryFilePath(runtime.context?.memoryFilePath))),
|
|
23960
23997
|
{
|
|
23961
23998
|
name: "read_user_semantic_memory",
|
|
@@ -23963,7 +24000,7 @@ var readSemanticMemoryTool = (0, import_langchain12.tool)(
|
|
|
23963
24000
|
schema: external_exports.object({})
|
|
23964
24001
|
}
|
|
23965
24002
|
);
|
|
23966
|
-
var updateSemanticMemoryTool = (0,
|
|
24003
|
+
var updateSemanticMemoryTool = (0, import_langchain13.tool)(
|
|
23967
24004
|
async ({ content }, runtime) => safeTool(() => updateSemanticMemory(getMemoryFilePath(runtime.context?.memoryFilePath), content)),
|
|
23968
24005
|
{
|
|
23969
24006
|
name: "update_user_semantic_memory",
|
|
@@ -24023,7 +24060,7 @@ var TaskQueue = class {
|
|
|
24023
24060
|
};
|
|
24024
24061
|
|
|
24025
24062
|
// src/agent/tools/task.ts
|
|
24026
|
-
var
|
|
24063
|
+
var import_langchain14 = require("langchain");
|
|
24027
24064
|
function getCurrentTaskQueue(agentId) {
|
|
24028
24065
|
return agentId ? new TaskQueue(agentId) : null;
|
|
24029
24066
|
}
|
|
@@ -24055,7 +24092,7 @@ function manageTaskQueue(agentId, action, task, index) {
|
|
|
24055
24092
|
queue.clearTasks();
|
|
24056
24093
|
return "\u5DF2\u6E05\u7A7A\u4EFB\u52A1\u961F\u5217";
|
|
24057
24094
|
}
|
|
24058
|
-
var taskTool = (0,
|
|
24095
|
+
var taskTool = (0, import_langchain14.tool)(
|
|
24059
24096
|
async ({ action, task, index }, runtime) => safeTool(() => {
|
|
24060
24097
|
const agentId = runtime.context?.agentId || getAgentId();
|
|
24061
24098
|
return manageTaskQueue(agentId, action, task, index);
|
|
@@ -24072,7 +24109,7 @@ var taskTool = (0, import_langchain13.tool)(
|
|
|
24072
24109
|
);
|
|
24073
24110
|
|
|
24074
24111
|
// src/agent/tools/webfetch.ts
|
|
24075
|
-
var
|
|
24112
|
+
var import_langchain15 = require("langchain");
|
|
24076
24113
|
async function webFetch(url2, timeout = 3e4, maxLength = 6e4) {
|
|
24077
24114
|
const controller = new AbortController();
|
|
24078
24115
|
const timer = setTimeout(() => controller.abort(), timeout);
|
|
@@ -24105,7 +24142,7 @@ async function webFetch(url2, timeout = 3e4, maxLength = 6e4) {
|
|
|
24105
24142
|
clearTimeout(timer);
|
|
24106
24143
|
}
|
|
24107
24144
|
}
|
|
24108
|
-
var webFetchTool = (0,
|
|
24145
|
+
var webFetchTool = (0, import_langchain15.tool)(async ({ url: url2, timeout, maxLength }) => safeTool(() => webFetch(url2, timeout, maxLength)), {
|
|
24109
24146
|
name: "web_fetch",
|
|
24110
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",
|
|
24111
24148
|
schema: external_exports.object({
|
|
@@ -24118,7 +24155,7 @@ var webFetchTool = (0, import_langchain14.tool)(async ({ url: url2, timeout, max
|
|
|
24118
24155
|
// src/agent/tools/write.ts
|
|
24119
24156
|
var import_fs_extra15 = __toESM(require("fs-extra"));
|
|
24120
24157
|
var import_path11 = __toESM(require("path"));
|
|
24121
|
-
var
|
|
24158
|
+
var import_langchain16 = require("langchain");
|
|
24122
24159
|
async function writeFile(filePath, content, mode = "overwrite") {
|
|
24123
24160
|
const absPath = resolveWorkspacePath(filePath);
|
|
24124
24161
|
const exists = await import_fs_extra15.default.pathExists(absPath);
|
|
@@ -24133,7 +24170,7 @@ async function writeFile(filePath, content, mode = "overwrite") {
|
|
|
24133
24170
|
await import_fs_extra15.default.writeFile(absPath, content, "utf-8");
|
|
24134
24171
|
return `${exists ? "\u5DF2\u8986\u76D6\u5199\u5165\u6587\u4EF6" : "\u5DF2\u521B\u5EFA\u6587\u4EF6"}: ${absPath}`;
|
|
24135
24172
|
}
|
|
24136
|
-
var writeFileTool = (0,
|
|
24173
|
+
var writeFileTool = (0, import_langchain16.tool)(async ({ filePath, content, mode }) => safeTool(() => writeFile(filePath, content, mode)), {
|
|
24137
24174
|
name: "write_file",
|
|
24138
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",
|
|
24139
24176
|
schema: external_exports.object({
|
|
@@ -24146,6 +24183,7 @@ var writeFileTool = (0, import_langchain15.tool)(async ({ filePath, content, mod
|
|
|
24146
24183
|
// src/agent/tools/index.ts
|
|
24147
24184
|
var builtinTools = [
|
|
24148
24185
|
taskTool,
|
|
24186
|
+
subAgentTool,
|
|
24149
24187
|
executeCommandTool,
|
|
24150
24188
|
readFileTool,
|
|
24151
24189
|
editFileTool,
|
|
@@ -24163,6 +24201,15 @@ var builtinTools = [
|
|
|
24163
24201
|
var import_inquirer2 = __toESM(require("inquirer"));
|
|
24164
24202
|
var import_fs_extra16 = __toESM(require("fs-extra"));
|
|
24165
24203
|
|
|
24204
|
+
// src/agent/AIAgent/SubAgents/SubAIAgent.ts
|
|
24205
|
+
var import_langchain17 = require("langchain");
|
|
24206
|
+
var import_deepagents = require("deepagents");
|
|
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");
|
|
24212
|
+
|
|
24166
24213
|
// src/serve/service/agent-room/agent-client.ts
|
|
24167
24214
|
var import_ws = __toESM(require("ws"));
|
|
24168
24215
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deepfish-ai",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.7",
|
|
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",
|