deepfish-ai 2.0.6 → 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 +1 -0
- package/dist/index.js +241 -152
- package/dist/serve/pm2-server.js +73 -38
- package/package.json +3 -1
package/dist/serve/pm2-server.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
-
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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
|
-
|
|
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
|
|
23702
|
+
var import_langchain6 = require("langchain");
|
|
23673
23703
|
var userCache = new UserCache();
|
|
23674
|
-
var learnSelfTool = (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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.
|
|
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",
|