vegas-chat 2.0.1
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/LICENSE +21 -0
- package/dist/autocomplete.d.ts +11 -0
- package/dist/autocomplete.d.ts.map +1 -0
- package/dist/autocomplete.js +215 -0
- package/dist/autocomplete.js.map +1 -0
- package/dist/coding/analyzer.d.ts +14 -0
- package/dist/coding/analyzer.d.ts.map +1 -0
- package/dist/coding/analyzer.js +245 -0
- package/dist/coding/analyzer.js.map +1 -0
- package/dist/coding/linter.d.ts +15 -0
- package/dist/coding/linter.d.ts.map +1 -0
- package/dist/coding/linter.js +118 -0
- package/dist/coding/linter.js.map +1 -0
- package/dist/coding/refactor.d.ts +14 -0
- package/dist/coding/refactor.d.ts.map +1 -0
- package/dist/coding/refactor.js +158 -0
- package/dist/coding/refactor.js.map +1 -0
- package/dist/coding/tester.d.ts +16 -0
- package/dist/coding/tester.d.ts.map +1 -0
- package/dist/coding/tester.js +118 -0
- package/dist/coding/tester.js.map +1 -0
- package/dist/commands/apikey.d.ts +4 -0
- package/dist/commands/apikey.d.ts.map +1 -0
- package/dist/commands/apikey.js +48 -0
- package/dist/commands/apikey.js.map +1 -0
- package/dist/commands/clear.d.ts +3 -0
- package/dist/commands/clear.d.ts.map +1 -0
- package/dist/commands/clear.js +11 -0
- package/dist/commands/clear.js.map +1 -0
- package/dist/commands/coding.d.ts +3 -0
- package/dist/commands/coding.d.ts.map +1 -0
- package/dist/commands/coding.js +106 -0
- package/dist/commands/coding.js.map +1 -0
- package/dist/commands/config.d.ts +4 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +56 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/exit.d.ts +3 -0
- package/dist/commands/exit.d.ts.map +1 -0
- package/dist/commands/exit.js +10 -0
- package/dist/commands/exit.js.map +1 -0
- package/dist/commands/help.d.ts +3 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +46 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/index.d.ts +4 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +52 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/model.d.ts +4 -0
- package/dist/commands/model.d.ts.map +1 -0
- package/dist/commands/model.js +36 -0
- package/dist/commands/model.js.map +1 -0
- package/dist/commands/models.d.ts +4 -0
- package/dist/commands/models.d.ts.map +1 -0
- package/dist/commands/models.js +123 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/provider.d.ts +4 -0
- package/dist/commands/provider.d.ts.map +1 -0
- package/dist/commands/provider.js +118 -0
- package/dist/commands/provider.js.map +1 -0
- package/dist/commands/session.d.ts +5 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +255 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/skills.d.ts +3 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +69 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/tools.d.ts +4 -0
- package/dist/commands/tools.d.ts.map +1 -0
- package/dist/commands/tools.js +59 -0
- package/dist/commands/tools.js.map +1 -0
- package/dist/commands/version.d.ts +4 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +17 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/config.d.ts +21 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +110 -0
- package/dist/config.js.map +1 -0
- package/dist/database.d.ts +59 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +212 -0
- package/dist/database.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/loop/autoFix.d.ts +12 -0
- package/dist/loop/autoFix.d.ts.map +1 -0
- package/dist/loop/autoFix.js +42 -0
- package/dist/loop/autoFix.js.map +1 -0
- package/dist/modelCache.d.ts +3 -0
- package/dist/modelCache.d.ts.map +1 -0
- package/dist/modelCache.js +10 -0
- package/dist/modelCache.js.map +1 -0
- package/dist/provider/anthropic.d.ts +10 -0
- package/dist/provider/anthropic.d.ts.map +1 -0
- package/dist/provider/anthropic.js +106 -0
- package/dist/provider/anthropic.js.map +1 -0
- package/dist/provider/google.d.ts +11 -0
- package/dist/provider/google.d.ts.map +1 -0
- package/dist/provider/google.js +113 -0
- package/dist/provider/google.js.map +1 -0
- package/dist/provider/interface.d.ts +3 -0
- package/dist/provider/interface.d.ts.map +1 -0
- package/dist/provider/interface.js +2 -0
- package/dist/provider/interface.js.map +1 -0
- package/dist/provider/openai-compatible.d.ts +10 -0
- package/dist/provider/openai-compatible.d.ts.map +1 -0
- package/dist/provider/openai-compatible.js +90 -0
- package/dist/provider/openai-compatible.js.map +1 -0
- package/dist/provider/registry.d.ts +9 -0
- package/dist/provider/registry.d.ts.map +1 -0
- package/dist/provider/registry.js +118 -0
- package/dist/provider/registry.js.map +1 -0
- package/dist/provider/zen.d.ts +11 -0
- package/dist/provider/zen.d.ts.map +1 -0
- package/dist/provider/zen.js +120 -0
- package/dist/provider/zen.js.map +1 -0
- package/dist/repl.d.ts +23 -0
- package/dist/repl.d.ts.map +1 -0
- package/dist/repl.js +387 -0
- package/dist/repl.js.map +1 -0
- package/dist/skills/loader.d.ts +14 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +109 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/matcher.d.ts +11 -0
- package/dist/skills/matcher.d.ts.map +1 -0
- package/dist/skills/matcher.js +51 -0
- package/dist/skills/matcher.js.map +1 -0
- package/dist/tools/bash.d.ts +3 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +59 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/edit.d.ts +3 -0
- package/dist/tools/edit.d.ts.map +1 -0
- package/dist/tools/edit.js +75 -0
- package/dist/tools/edit.js.map +1 -0
- package/dist/tools/glob.d.ts +3 -0
- package/dist/tools/glob.d.ts.map +1 -0
- package/dist/tools/glob.js +93 -0
- package/dist/tools/glob.js.map +1 -0
- package/dist/tools/grep.d.ts +3 -0
- package/dist/tools/grep.d.ts.map +1 -0
- package/dist/tools/grep.js +119 -0
- package/dist/tools/grep.js.map +1 -0
- package/dist/tools/read.d.ts +3 -0
- package/dist/tools/read.d.ts.map +1 -0
- package/dist/tools/read.js +52 -0
- package/dist/tools/read.js.map +1 -0
- package/dist/tools/registry.d.ts +6 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +48 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/webFetch.d.ts +3 -0
- package/dist/tools/webFetch.d.ts.map +1 -0
- package/dist/tools/webFetch.js +57 -0
- package/dist/tools/webFetch.js.map +1 -0
- package/dist/tools/webSearch.d.ts +5 -0
- package/dist/tools/webSearch.d.ts.map +1 -0
- package/dist/tools/webSearch.js +107 -0
- package/dist/tools/webSearch.js.map +1 -0
- package/dist/tools/write.d.ts +3 -0
- package/dist/tools/write.d.ts.map +1 -0
- package/dist/tools/write.js +41 -0
- package/dist/tools/write.js.map +1 -0
- package/dist/types.d.ts +74 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui.d.ts +179 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +481 -0
- package/dist/ui.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
2
|
+
export const bashTool = {
|
|
3
|
+
name: "bash",
|
|
4
|
+
description: "Execute a shell command. Cross-platform (Windows, Linux, Termux). Returns stdout, stderr, and exit code.",
|
|
5
|
+
parameters: {
|
|
6
|
+
type: "object",
|
|
7
|
+
properties: {
|
|
8
|
+
command: {
|
|
9
|
+
type: "string",
|
|
10
|
+
description: "The shell command to execute",
|
|
11
|
+
},
|
|
12
|
+
timeout: {
|
|
13
|
+
type: "number",
|
|
14
|
+
description: "Timeout in milliseconds (default: 120000)",
|
|
15
|
+
},
|
|
16
|
+
workdir: {
|
|
17
|
+
type: "string",
|
|
18
|
+
description: "Working directory for the command",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
required: ["command"],
|
|
22
|
+
},
|
|
23
|
+
async execute(args) {
|
|
24
|
+
const command = String(args.command);
|
|
25
|
+
const timeout = args.timeout || 120000;
|
|
26
|
+
const workdir = args.workdir ? String(args.workdir) : undefined;
|
|
27
|
+
try {
|
|
28
|
+
const output = execSync(command, {
|
|
29
|
+
cwd: workdir,
|
|
30
|
+
timeout,
|
|
31
|
+
encoding: "utf-8",
|
|
32
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
33
|
+
windowsHide: true,
|
|
34
|
+
});
|
|
35
|
+
return {
|
|
36
|
+
content: [{ type: "text", text: output || "(empty output)" }],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
const error = err;
|
|
41
|
+
const stderr = error.stderr || "";
|
|
42
|
+
const stdout = error.stdout || "";
|
|
43
|
+
const exitCode = error.status ?? -1;
|
|
44
|
+
const message = error.message || String(error);
|
|
45
|
+
let text = `Exit code: ${exitCode}\n`;
|
|
46
|
+
if (stdout)
|
|
47
|
+
text += `stdout:\n${stdout}\n`;
|
|
48
|
+
if (stderr)
|
|
49
|
+
text += `stderr:\n${stderr}\n`;
|
|
50
|
+
if (!stdout && !stderr)
|
|
51
|
+
text += message;
|
|
52
|
+
return {
|
|
53
|
+
content: [{ type: "text", text }],
|
|
54
|
+
isError: true,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=bash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,MAAM,CAAC,MAAM,QAAQ,GAAmB;IACtC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,0GAA0G;IACvH,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;aAC5C;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2CAA2C;aACzD;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mCAAmC;aACjD;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;IACD,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAI,MAAM,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEhE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE;gBAC/B,GAAG,EAAE,OAAO;gBACZ,OAAO;gBACP,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,gBAAgB,EAAE,CAAC;aAC9D,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,GAAoE,CAAC;YACnF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;YAE/C,IAAI,IAAI,GAAG,cAAc,QAAQ,IAAI,CAAC;YACtC,IAAI,MAAM;gBAAE,IAAI,IAAI,YAAY,MAAM,IAAI,CAAC;YAC3C,IAAI,MAAM;gBAAE,IAAI,IAAI,YAAY,MAAM,IAAI,CAAC;YAC3C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;gBAAE,IAAI,IAAI,OAAO,CAAC;YAExC,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACjC,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAE9D,eAAO,MAAM,QAAQ,EAAE,cA4EtB,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, existsSync } from "node:fs";
|
|
2
|
+
export const editTool = {
|
|
3
|
+
name: "edit",
|
|
4
|
+
description: "Replace text in a file by matching an exact string. Use this to make targeted edits.",
|
|
5
|
+
parameters: {
|
|
6
|
+
type: "object",
|
|
7
|
+
properties: {
|
|
8
|
+
filePath: {
|
|
9
|
+
type: "string",
|
|
10
|
+
description: "Absolute path to the file",
|
|
11
|
+
},
|
|
12
|
+
oldString: {
|
|
13
|
+
type: "string",
|
|
14
|
+
description: "The exact text to replace",
|
|
15
|
+
},
|
|
16
|
+
newString: {
|
|
17
|
+
type: "string",
|
|
18
|
+
description: "The replacement text",
|
|
19
|
+
},
|
|
20
|
+
replaceAll: {
|
|
21
|
+
type: "boolean",
|
|
22
|
+
description: "Replace all occurrences (default: false)",
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
required: ["filePath", "oldString", "newString"],
|
|
26
|
+
},
|
|
27
|
+
async execute(args) {
|
|
28
|
+
const filePath = String(args.filePath);
|
|
29
|
+
const oldString = String(args.oldString);
|
|
30
|
+
const newString = String(args.newString);
|
|
31
|
+
const replaceAll = args.replaceAll === true;
|
|
32
|
+
if (!existsSync(filePath)) {
|
|
33
|
+
return {
|
|
34
|
+
content: [{ type: "text", text: `File not found: ${filePath}` }],
|
|
35
|
+
isError: true,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const content = readFileSync(filePath, "utf-8");
|
|
40
|
+
if (replaceAll) {
|
|
41
|
+
if (!content.includes(oldString)) {
|
|
42
|
+
return {
|
|
43
|
+
content: [{ type: "text", text: `String not found in file: ${filePath}` }],
|
|
44
|
+
isError: true,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const count = content.split(oldString).length - 1;
|
|
48
|
+
const newContent = content.replaceAll(oldString, newString);
|
|
49
|
+
writeFileSync(filePath, newContent, "utf-8");
|
|
50
|
+
return {
|
|
51
|
+
content: [{ type: "text", text: `Replaced ${count} occurrence(s) in ${filePath}` }],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
const idx = content.indexOf(oldString);
|
|
55
|
+
if (idx === -1) {
|
|
56
|
+
return {
|
|
57
|
+
content: [{ type: "text", text: `String not found in file: ${filePath}` }],
|
|
58
|
+
isError: true,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
const newContent = content.replace(oldString, newString);
|
|
62
|
+
writeFileSync(filePath, newContent, "utf-8");
|
|
63
|
+
return {
|
|
64
|
+
content: [{ type: "text", text: `Edited file: ${filePath}` }],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
return {
|
|
69
|
+
content: [{ type: "text", text: `Error editing file: ${err}` }],
|
|
70
|
+
isError: true,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=edit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/tools/glob.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAE9D,eAAO,MAAM,QAAQ,EAAE,cAiCtB,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { readdirSync, statSync } from "node:fs";
|
|
2
|
+
import { join, relative } from "node:path";
|
|
3
|
+
export const globTool = {
|
|
4
|
+
name: "glob",
|
|
5
|
+
description: "Find files matching a glob pattern. Searches recursively from the given path.",
|
|
6
|
+
parameters: {
|
|
7
|
+
type: "object",
|
|
8
|
+
properties: {
|
|
9
|
+
pattern: {
|
|
10
|
+
type: "string",
|
|
11
|
+
description: "Glob pattern (e.g. **/*.ts, src/**/*.js)",
|
|
12
|
+
},
|
|
13
|
+
path: {
|
|
14
|
+
type: "string",
|
|
15
|
+
description: "Starting directory (default: current working directory)",
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
required: ["pattern"],
|
|
19
|
+
},
|
|
20
|
+
async execute(args) {
|
|
21
|
+
const pattern = String(args.pattern);
|
|
22
|
+
const rootDir = args.path ? String(args.path) : process.cwd();
|
|
23
|
+
try {
|
|
24
|
+
const results = findFiles(rootDir, pattern);
|
|
25
|
+
return {
|
|
26
|
+
content: [{ type: "text", text: results.length > 0 ? results.join("\n") : "(no matches)" }],
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
return {
|
|
31
|
+
content: [{ type: "text", text: `Error searching files: ${err}` }],
|
|
32
|
+
isError: true,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
function findFiles(rootDir, pattern) {
|
|
38
|
+
const results = [];
|
|
39
|
+
const normalizedPattern = pattern.replace(/\\/g, "/");
|
|
40
|
+
const isRecursive = normalizedPattern.startsWith("**/");
|
|
41
|
+
const extPattern = isRecursive ? normalizedPattern.slice(3) : normalizedPattern;
|
|
42
|
+
function walk(dir, recursive) {
|
|
43
|
+
try {
|
|
44
|
+
const entries = readdirSync(dir);
|
|
45
|
+
for (const entry of entries) {
|
|
46
|
+
const fullPath = join(dir, entry);
|
|
47
|
+
let stat;
|
|
48
|
+
try {
|
|
49
|
+
stat = statSync(fullPath);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (stat.isDirectory()) {
|
|
55
|
+
if (recursive) {
|
|
56
|
+
walk(fullPath, true);
|
|
57
|
+
}
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
const relPath = relative(rootDir, fullPath).replace(/\\/g, "/");
|
|
61
|
+
if (matchGlob(relPath, normalizedPattern)) {
|
|
62
|
+
results.push(fullPath);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// skip permission errors
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
walk(rootDir, true);
|
|
71
|
+
return results;
|
|
72
|
+
}
|
|
73
|
+
function matchGlob(path, pattern) {
|
|
74
|
+
if (pattern.startsWith("**/")) {
|
|
75
|
+
const suffix = pattern.slice(3);
|
|
76
|
+
if (path.endsWith(suffix))
|
|
77
|
+
return true;
|
|
78
|
+
if (suffix.includes("*")) {
|
|
79
|
+
const parts = suffix.split("*");
|
|
80
|
+
return parts.every(p => p === "" || path.includes(p));
|
|
81
|
+
}
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
if (pattern.includes("*")) {
|
|
85
|
+
const parts = pattern.split("*");
|
|
86
|
+
if (path.startsWith(parts[0]) && path.endsWith(parts[parts.length - 1])) {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
return path === pattern || path.endsWith("/" + pattern);
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=glob.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/tools/glob.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAE9D,eAAO,MAAM,QAAQ,EAAE,cAgDtB,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { readdirSync, statSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join, relative } from "node:path";
|
|
3
|
+
export const grepTool = {
|
|
4
|
+
name: "grep",
|
|
5
|
+
description: "Search file contents using a regex pattern. Returns matching files with line numbers.",
|
|
6
|
+
parameters: {
|
|
7
|
+
type: "object",
|
|
8
|
+
properties: {
|
|
9
|
+
pattern: {
|
|
10
|
+
type: "string",
|
|
11
|
+
description: "Regex pattern to search for",
|
|
12
|
+
},
|
|
13
|
+
path: {
|
|
14
|
+
type: "string",
|
|
15
|
+
description: "Directory to search (default: current working directory)",
|
|
16
|
+
},
|
|
17
|
+
include: {
|
|
18
|
+
type: "string",
|
|
19
|
+
description: "File glob pattern to include (e.g. *.ts, *.{ts,js})",
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
required: ["pattern"],
|
|
23
|
+
},
|
|
24
|
+
async execute(args) {
|
|
25
|
+
const pattern = String(args.pattern);
|
|
26
|
+
const rootDir = args.path ? String(args.path) : process.cwd();
|
|
27
|
+
const include = args.include ? String(args.include) : undefined;
|
|
28
|
+
let regex;
|
|
29
|
+
try {
|
|
30
|
+
regex = new RegExp(pattern, "g");
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return {
|
|
34
|
+
content: [{ type: "text", text: `Invalid regex pattern: ${pattern}` }],
|
|
35
|
+
isError: true,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const results = searchFiles(rootDir, regex, include);
|
|
40
|
+
return {
|
|
41
|
+
content: [{ type: "text", text: results || "(no matches)" }],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
return {
|
|
46
|
+
content: [{ type: "text", text: `Error searching content: ${err}` }],
|
|
47
|
+
isError: true,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
function searchFiles(rootDir, regex, include) {
|
|
53
|
+
const results = [];
|
|
54
|
+
function walk(dir) {
|
|
55
|
+
try {
|
|
56
|
+
const entries = readdirSync(dir);
|
|
57
|
+
for (const entry of entries) {
|
|
58
|
+
const fullPath = join(dir, entry);
|
|
59
|
+
let stat;
|
|
60
|
+
try {
|
|
61
|
+
stat = statSync(fullPath);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
if (stat.isDirectory()) {
|
|
67
|
+
if (!entry.startsWith(".") && entry !== "node_modules") {
|
|
68
|
+
walk(fullPath);
|
|
69
|
+
}
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if (include && !matchExtension(entry, include)) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
const content = readFileSync(fullPath, "utf-8");
|
|
77
|
+
regex.lastIndex = 0;
|
|
78
|
+
const match = regex.exec(content);
|
|
79
|
+
if (match) {
|
|
80
|
+
const lines = content.split("\n");
|
|
81
|
+
const matchingLines = [];
|
|
82
|
+
for (let i = 0; i < lines.length; i++) {
|
|
83
|
+
regex.lastIndex = 0;
|
|
84
|
+
if (regex.test(lines[i])) {
|
|
85
|
+
matchingLines.push(` ${i + 1}: ${lines[i].trim().substring(0, 120)}`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const rel = relative(rootDir, fullPath).replace(/\\/g, "/");
|
|
89
|
+
results.push(`${rel}:`);
|
|
90
|
+
results.push(...matchingLines);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// skip binary files
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// skip permission errors
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
walk(rootDir);
|
|
103
|
+
return results.join("\n");
|
|
104
|
+
}
|
|
105
|
+
function matchExtension(filename, pattern) {
|
|
106
|
+
if (!pattern.includes("{") && !pattern.includes("*")) {
|
|
107
|
+
return filename.endsWith(pattern);
|
|
108
|
+
}
|
|
109
|
+
if (pattern.includes("{") && pattern.includes("}")) {
|
|
110
|
+
const inner = pattern.slice(pattern.indexOf("{") + 1, pattern.indexOf("}"));
|
|
111
|
+
const exts = inner.split(",");
|
|
112
|
+
return exts.some(ext => filename.endsWith(ext));
|
|
113
|
+
}
|
|
114
|
+
if (pattern.startsWith("*.")) {
|
|
115
|
+
return filename.endsWith(pattern.slice(1));
|
|
116
|
+
}
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=grep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grep.js","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAE9D,eAAO,MAAM,QAAQ,EAAE,cAmDtB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { readFileSync, existsSync } from "node:fs";
|
|
2
|
+
export const readTool = {
|
|
3
|
+
name: "read",
|
|
4
|
+
description: "Read the contents of a file. Returns file content with line numbers.",
|
|
5
|
+
parameters: {
|
|
6
|
+
type: "object",
|
|
7
|
+
properties: {
|
|
8
|
+
filePath: {
|
|
9
|
+
type: "string",
|
|
10
|
+
description: "Absolute path to the file",
|
|
11
|
+
},
|
|
12
|
+
offset: {
|
|
13
|
+
type: "number",
|
|
14
|
+
description: "Starting line number (1-indexed, default: 1)",
|
|
15
|
+
},
|
|
16
|
+
limit: {
|
|
17
|
+
type: "number",
|
|
18
|
+
description: "Maximum number of lines to read (default: 2000)",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
required: ["filePath"],
|
|
22
|
+
},
|
|
23
|
+
async execute(args) {
|
|
24
|
+
const filePath = String(args.filePath);
|
|
25
|
+
const offset = args.offset || 1;
|
|
26
|
+
const limit = args.limit || 2000;
|
|
27
|
+
if (!existsSync(filePath)) {
|
|
28
|
+
return {
|
|
29
|
+
content: [{ type: "text", text: `File not found: ${filePath}` }],
|
|
30
|
+
isError: true,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
const content = readFileSync(filePath, "utf-8");
|
|
35
|
+
const lines = content.split("\n");
|
|
36
|
+
const start = Math.max(0, offset - 1);
|
|
37
|
+
const end = Math.min(lines.length, start + limit);
|
|
38
|
+
const sliced = lines.slice(start, end);
|
|
39
|
+
const numbered = sliced.map((line, i) => `${start + i + 1}: ${line}`).join("\n");
|
|
40
|
+
return {
|
|
41
|
+
content: [{ type: "text", text: numbered || "(empty file)" }],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
return {
|
|
46
|
+
content: [{ type: "text", text: `Error reading file: ${err}` }],
|
|
47
|
+
isError: true,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGnD,MAAM,CAAC,MAAM,QAAQ,GAAmB;IACtC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,sEAAsE;IACnF,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2BAA2B;aACzC;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC5D;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iDAAiD;aAC/D;SACF;QACD,QAAQ,EAAE,CAAC,UAAU,CAAC;KACvB;IACD,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAI,IAAI,CAAC,KAAgB,IAAI,IAAI,CAAC;QAE7C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,EAAE,CAAC;gBAChE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEjF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,IAAI,cAAc,EAAE,CAAC;aAC9D,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,GAAG,EAAE,EAAE,CAAC;gBAC/D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ToolDefinition } from "../types.js";
|
|
2
|
+
import { ConfigManager } from "../config.js";
|
|
3
|
+
export declare function getEnabledTools(config: ConfigManager): ToolDefinition[];
|
|
4
|
+
export declare function getTool(name: string): ToolDefinition | undefined;
|
|
5
|
+
export declare function getAllTools(): ToolDefinition[];
|
|
6
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAU7C,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,EAAE,CAyBvE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEhE;AAED,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAW9C"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { bashTool } from "./bash.js";
|
|
2
|
+
import { readTool } from "./read.js";
|
|
3
|
+
import { writeTool } from "./write.js";
|
|
4
|
+
import { editTool } from "./edit.js";
|
|
5
|
+
import { globTool } from "./glob.js";
|
|
6
|
+
import { grepTool } from "./grep.js";
|
|
7
|
+
import { webFetchTool } from "./webFetch.js";
|
|
8
|
+
import { webSearchTool, webSearchToolSimple } from "./webSearch.js";
|
|
9
|
+
export function getEnabledTools(config) {
|
|
10
|
+
const cfg = config.get();
|
|
11
|
+
const tools = [
|
|
12
|
+
bashTool,
|
|
13
|
+
readTool,
|
|
14
|
+
writeTool,
|
|
15
|
+
editTool,
|
|
16
|
+
globTool,
|
|
17
|
+
grepTool,
|
|
18
|
+
];
|
|
19
|
+
if (cfg.tools.webFetch?.enabled !== false) {
|
|
20
|
+
tools.push(webFetchTool);
|
|
21
|
+
}
|
|
22
|
+
if (cfg.tools.webSearch?.enabled !== false) {
|
|
23
|
+
const apiKey = cfg.webSearch?.apiKey || cfg.apiKeys["serper"];
|
|
24
|
+
if (apiKey) {
|
|
25
|
+
tools.push(webSearchTool(config));
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
tools.push(webSearchToolSimple);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return tools;
|
|
32
|
+
}
|
|
33
|
+
export function getTool(name) {
|
|
34
|
+
return [...getAllTools()].find(t => t.name === name);
|
|
35
|
+
}
|
|
36
|
+
export function getAllTools() {
|
|
37
|
+
return [
|
|
38
|
+
bashTool,
|
|
39
|
+
readTool,
|
|
40
|
+
writeTool,
|
|
41
|
+
editTool,
|
|
42
|
+
globTool,
|
|
43
|
+
grepTool,
|
|
44
|
+
webFetchTool,
|
|
45
|
+
webSearchToolSimple,
|
|
46
|
+
];
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEpE,MAAM,UAAU,eAAe,CAAC,MAAqB;IACnD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,KAAK,GAAqB;QAC9B,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,QAAQ;KACT,CAAC;IAEF,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,CAAC,GAAG,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,mBAAmB;KACpB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webFetch.d.ts","sourceRoot":"","sources":["../../src/tools/webFetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAE9D,eAAO,MAAM,YAAY,EAAE,cA2D1B,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export const webFetchTool = {
|
|
2
|
+
name: "webFetch",
|
|
3
|
+
description: "Fetch content from a URL and return it as text or simplified markdown.",
|
|
4
|
+
parameters: {
|
|
5
|
+
type: "object",
|
|
6
|
+
properties: {
|
|
7
|
+
url: {
|
|
8
|
+
type: "string",
|
|
9
|
+
description: "The URL to fetch",
|
|
10
|
+
},
|
|
11
|
+
format: {
|
|
12
|
+
type: "string",
|
|
13
|
+
enum: ["text", "markdown", "html"],
|
|
14
|
+
description: "Output format (default: markdown)",
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
required: ["url"],
|
|
18
|
+
},
|
|
19
|
+
async execute(args) {
|
|
20
|
+
const url = String(args.url);
|
|
21
|
+
const format = String(args.format || "markdown");
|
|
22
|
+
try {
|
|
23
|
+
const res = await fetch(url, {
|
|
24
|
+
headers: {
|
|
25
|
+
"User-Agent": "vegas-ai-agent/1.0",
|
|
26
|
+
Accept: "text/html,text/plain,application/json",
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
if (!res.ok) {
|
|
30
|
+
return {
|
|
31
|
+
content: [{ type: "text", text: `HTTP ${res.status}: ${res.statusText}` }],
|
|
32
|
+
isError: true,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
const contentType = res.headers.get("content-type") || "";
|
|
36
|
+
let text;
|
|
37
|
+
if (contentType.includes("application/json")) {
|
|
38
|
+
const json = await res.json();
|
|
39
|
+
text = JSON.stringify(json, null, 2);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
text = await res.text();
|
|
43
|
+
}
|
|
44
|
+
const truncated = text.length > 50000 ? text.substring(0, 50000) + "\n\n...(truncated)" : text;
|
|
45
|
+
return {
|
|
46
|
+
content: [{ type: "text", text: truncated }],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
return {
|
|
51
|
+
content: [{ type: "text", text: `Error fetching URL: ${err}` }],
|
|
52
|
+
isError: true,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=webFetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webFetch.js","sourceRoot":"","sources":["../../src/tools/webFetch.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,wEAAwE;IACrF,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kBAAkB;aAChC;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;gBAClC,WAAW,EAAE,mCAAmC;aACjD;SACF;QACD,QAAQ,EAAE,CAAC,KAAK,CAAC;KAClB;IACD,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC;QAEjD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,OAAO,EAAE;oBACP,YAAY,EAAE,oBAAoB;oBAClC,MAAM,EAAE,uCAAuC;iBAChD;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;oBAC1E,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC1D,IAAI,IAAY,CAAC;YAEjB,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;YAE/F,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aAC7C,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,GAAG,EAAE,EAAE,CAAC;gBAC/D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ToolDefinition } from "../types.js";
|
|
2
|
+
import { ConfigManager } from "../config.js";
|
|
3
|
+
export declare function webSearchTool(configManager?: ConfigManager): ToolDefinition;
|
|
4
|
+
export declare const webSearchToolSimple: ToolDefinition;
|
|
5
|
+
//# sourceMappingURL=webSearch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webSearch.d.ts","sourceRoot":"","sources":["../../src/tools/webSearch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,wBAAgB,aAAa,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,cAAc,CA4G3E;AAED,eAAO,MAAM,mBAAmB,EAAE,cAcjC,CAAC"}
|