@vybestack/llxprt-code-core 0.6.0 → 0.6.1-nightly.251130.1e208436b
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 +244 -0
- package/dist/prompt-config/defaults/default-prompts.json +5 -2
- package/dist/src/agents/executor.js +2 -2
- package/dist/src/agents/executor.js.map +1 -1
- package/dist/src/config/config.js +10 -4
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +7 -0
- package/dist/src/core/coreToolScheduler.js +67 -0
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/prompts.js +9 -4
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/index.d.ts +5 -2
- package/dist/src/index.js +5 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/token-storage/file-token-storage.js +1 -6
- package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
- package/dist/src/mcp/token-storage/keychain-token-storage.js +3 -6
- package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
- package/dist/src/prompt-config/defaults/tool-defaults.js +5 -2
- package/dist/src/prompt-config/defaults/tool-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/tools/code-search.md +3 -0
- package/dist/src/prompt-config/defaults/tools/direct-web-fetch.md +3 -0
- package/dist/src/prompt-config/defaults/tools/exa-web-search.md +14 -0
- package/dist/src/prompt-config/defaults/tools/{web-fetch.md → google-web-fetch.md} +1 -1
- package/dist/src/prompt-config/defaults/tools/{web-search.md → google-web-search.md} +1 -1
- package/dist/src/providers/gemini/GeminiProvider.js +2 -2
- package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
- package/dist/src/tools/codesearch.d.ts +21 -0
- package/dist/src/tools/codesearch.js +145 -0
- package/dist/src/tools/codesearch.js.map +1 -0
- package/dist/src/tools/direct-web-fetch.d.ts +22 -0
- package/dist/src/tools/direct-web-fetch.js +169 -0
- package/dist/src/tools/direct-web-fetch.js.map +1 -0
- package/dist/src/tools/exa-web-search.d.ts +24 -0
- package/dist/src/tools/exa-web-search.js +137 -0
- package/dist/src/tools/exa-web-search.js.map +1 -0
- package/dist/src/tools/{web-fetch.d.ts → google-web-fetch.d.ts} +4 -4
- package/dist/src/tools/{web-fetch.js → google-web-fetch.js} +29 -16
- package/dist/src/tools/google-web-fetch.js.map +1 -0
- package/dist/src/tools/{web-search-invocation.d.ts → google-web-search-invocation.d.ts} +1 -1
- package/dist/src/tools/{web-search-invocation.js → google-web-search-invocation.js} +2 -2
- package/dist/src/tools/google-web-search-invocation.js.map +1 -0
- package/dist/src/tools/{web-search.d.ts → google-web-search.d.ts} +4 -4
- package/dist/src/tools/{web-search.js → google-web-search.js} +6 -6
- package/dist/src/tools/google-web-search.js.map +1 -0
- package/dist/src/tools/tool-error.d.ts +4 -1
- package/dist/src/tools/tool-error.js +5 -0
- package/dist/src/tools/tool-error.js.map +1 -1
- package/dist/src/utils/fetch.d.ts +1 -1
- package/dist/src/utils/fetch.js +24 -2
- package/dist/src/utils/fetch.js.map +1 -1
- package/package.json +5 -1
- package/dist/src/tools/web-fetch.js.map +0 -1
- package/dist/src/tools/web-search-invocation.js.map +0 -1
- package/dist/src/tools/web-search.js.map +0 -1
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Portions of this code are derived from opencode (https://github.com/sst/opencode)
|
|
7
|
+
* Copyright (c) 2025 opencode
|
|
8
|
+
* Licensed under the MIT License.
|
|
9
|
+
*/
|
|
10
|
+
import { BaseDeclarativeTool, Kind, } from './tools.js';
|
|
11
|
+
import { ToolErrorType } from './tool-error.js';
|
|
12
|
+
import { BaseToolInvocation } from './tools.js';
|
|
13
|
+
import fetch from 'node-fetch';
|
|
14
|
+
import TurndownService from 'turndown';
|
|
15
|
+
import * as cheerio from 'cheerio';
|
|
16
|
+
const MAX_RESPONSE_SIZE = 5 * 1024 * 1024; // 5MB
|
|
17
|
+
const DEFAULT_TIMEOUT = 30 * 1000; // 30 seconds
|
|
18
|
+
const MAX_TIMEOUT = 120 * 1000; // 2 minutes
|
|
19
|
+
export class DirectWebFetchTool extends BaseDeclarativeTool {
|
|
20
|
+
config;
|
|
21
|
+
static Name = 'direct_web_fetch';
|
|
22
|
+
constructor(config) {
|
|
23
|
+
super(DirectWebFetchTool.Name, 'DirectWebFetch', 'Fetches content from a specified URL and converts it to the requested format (text, markdown, or html).', Kind.Search, {
|
|
24
|
+
type: 'object',
|
|
25
|
+
properties: {
|
|
26
|
+
url: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
description: 'The URL to fetch content from',
|
|
29
|
+
},
|
|
30
|
+
format: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
enum: ['text', 'markdown', 'html'],
|
|
33
|
+
description: 'The format to return the content in (text, markdown, or html)',
|
|
34
|
+
},
|
|
35
|
+
timeout: {
|
|
36
|
+
type: 'number',
|
|
37
|
+
description: 'Optional timeout in seconds (max 120)',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
required: ['url', 'format'],
|
|
41
|
+
});
|
|
42
|
+
this.config = config;
|
|
43
|
+
}
|
|
44
|
+
createInvocation(params) {
|
|
45
|
+
return new DirectWebFetchToolInvocation(this.config, params);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
class DirectWebFetchToolInvocation extends BaseToolInvocation {
|
|
49
|
+
constructor(_config, params, messageBus) {
|
|
50
|
+
super(params, messageBus);
|
|
51
|
+
}
|
|
52
|
+
getDescription() {
|
|
53
|
+
return `Fetch content from ${this.params.url}`;
|
|
54
|
+
}
|
|
55
|
+
async execute(signal, _updateOutput) {
|
|
56
|
+
const { url, format, timeout: timeoutSec } = this.params;
|
|
57
|
+
if (!url.startsWith('http://') && !url.startsWith('https://')) {
|
|
58
|
+
return {
|
|
59
|
+
llmContent: 'URL must start with http:// or https://',
|
|
60
|
+
returnDisplay: 'Invalid URL',
|
|
61
|
+
error: {
|
|
62
|
+
message: 'Invalid URL protocol',
|
|
63
|
+
type: ToolErrorType.INVALID_ARGUMENT,
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const timeout = Math.min((timeoutSec ?? DEFAULT_TIMEOUT / 1000) * 1000, MAX_TIMEOUT);
|
|
68
|
+
// Build Accept header
|
|
69
|
+
let acceptHeader = '*/*';
|
|
70
|
+
switch (format) {
|
|
71
|
+
case 'markdown':
|
|
72
|
+
acceptHeader =
|
|
73
|
+
'text/markdown;q=1.0, text/x-markdown;q=0.9, text/plain;q=0.8, text/html;q=0.7, */*;q=0.1';
|
|
74
|
+
break;
|
|
75
|
+
case 'text':
|
|
76
|
+
acceptHeader =
|
|
77
|
+
'text/plain;q=1.0, text/markdown;q=0.9, text/html;q=0.8, */*;q=0.1';
|
|
78
|
+
break;
|
|
79
|
+
case 'html':
|
|
80
|
+
acceptHeader =
|
|
81
|
+
'text/html;q=1.0, application/xhtml+xml;q=0.9, text/plain;q=0.8, text/markdown;q=0.7, */*;q=0.1';
|
|
82
|
+
break;
|
|
83
|
+
default:
|
|
84
|
+
acceptHeader =
|
|
85
|
+
'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8';
|
|
86
|
+
}
|
|
87
|
+
const controller = new AbortController();
|
|
88
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
89
|
+
// If the parent signal aborts, we should also abort our controller
|
|
90
|
+
const onAbort = () => controller.abort();
|
|
91
|
+
signal.addEventListener('abort', onAbort);
|
|
92
|
+
try {
|
|
93
|
+
const response = await fetch(url, {
|
|
94
|
+
signal: controller.signal,
|
|
95
|
+
headers: {
|
|
96
|
+
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
|
97
|
+
Accept: acceptHeader,
|
|
98
|
+
'Accept-Language': 'en-US,en;q=0.9',
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
if (!response.ok) {
|
|
102
|
+
throw new Error(`Request failed with status code: ${response.status}`);
|
|
103
|
+
}
|
|
104
|
+
// Check content length
|
|
105
|
+
const contentLength = response.headers.get('content-length');
|
|
106
|
+
if (contentLength && parseInt(contentLength, 10) > MAX_RESPONSE_SIZE) {
|
|
107
|
+
throw new Error('Response too large (exceeds 5MB limit)');
|
|
108
|
+
}
|
|
109
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
110
|
+
if (arrayBuffer.byteLength > MAX_RESPONSE_SIZE) {
|
|
111
|
+
throw new Error('Response too large (exceeds 5MB limit)');
|
|
112
|
+
}
|
|
113
|
+
const content = new TextDecoder().decode(arrayBuffer);
|
|
114
|
+
const contentType = response.headers.get('content-type') || '';
|
|
115
|
+
let output = content;
|
|
116
|
+
switch (format) {
|
|
117
|
+
case 'markdown':
|
|
118
|
+
if (contentType.includes('text/html')) {
|
|
119
|
+
output = this.convertHTMLToMarkdown(content);
|
|
120
|
+
}
|
|
121
|
+
break;
|
|
122
|
+
case 'text':
|
|
123
|
+
if (contentType.includes('text/html')) {
|
|
124
|
+
output = this.extractTextFromHTML(content);
|
|
125
|
+
}
|
|
126
|
+
break;
|
|
127
|
+
default:
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
llmContent: output,
|
|
132
|
+
returnDisplay: `Fetched ${url} as ${format}`,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
137
|
+
return {
|
|
138
|
+
llmContent: `Error fetching URL: ${errorMessage}`,
|
|
139
|
+
returnDisplay: `Error: ${errorMessage}`,
|
|
140
|
+
error: {
|
|
141
|
+
message: errorMessage,
|
|
142
|
+
type: ToolErrorType.FETCH_ERROR,
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
finally {
|
|
147
|
+
clearTimeout(timeoutId);
|
|
148
|
+
signal.removeEventListener('abort', onAbort);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
extractTextFromHTML(html) {
|
|
152
|
+
const $ = cheerio.load(html);
|
|
153
|
+
// Remove scripts, styles, etc.
|
|
154
|
+
$('script, style, noscript, iframe, object, embed').remove();
|
|
155
|
+
return $.text().trim();
|
|
156
|
+
}
|
|
157
|
+
convertHTMLToMarkdown(html) {
|
|
158
|
+
const turndownService = new TurndownService({
|
|
159
|
+
headingStyle: 'atx',
|
|
160
|
+
hr: '---',
|
|
161
|
+
bulletListMarker: '-',
|
|
162
|
+
codeBlockStyle: 'fenced',
|
|
163
|
+
emDelimiter: '*',
|
|
164
|
+
});
|
|
165
|
+
turndownService.remove(['script', 'style', 'meta', 'link']);
|
|
166
|
+
return turndownService.turndown(html);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=direct-web-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct-web-fetch.js","sourceRoot":"","sources":["../../../src/tools/direct-web-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Portions of this code are derived from opencode (https://github.com/sst/opencode)
|
|
7
|
+
* Copyright (c) 2025 opencode
|
|
8
|
+
* Licensed under the MIT License.
|
|
9
|
+
*/
|
|
10
|
+
import { BaseDeclarativeTool, ToolInvocation, ToolResult } from './tools.js';
|
|
11
|
+
import { Config } from '../config/config.js';
|
|
12
|
+
export interface ExaWebSearchToolParams {
|
|
13
|
+
query: string;
|
|
14
|
+
numResults?: number;
|
|
15
|
+
livecrawl?: 'fallback' | 'preferred';
|
|
16
|
+
type?: 'auto' | 'fast' | 'deep';
|
|
17
|
+
contextMaxCharacters?: number;
|
|
18
|
+
}
|
|
19
|
+
export declare class ExaWebSearchTool extends BaseDeclarativeTool<ExaWebSearchToolParams, ToolResult> {
|
|
20
|
+
private readonly config;
|
|
21
|
+
static readonly Name = "exa_web_search";
|
|
22
|
+
constructor(config: Config);
|
|
23
|
+
protected createInvocation(params: ExaWebSearchToolParams): ToolInvocation<ExaWebSearchToolParams, ToolResult>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Portions of this code are derived from opencode (https://github.com/sst/opencode)
|
|
7
|
+
* Copyright (c) 2025 opencode
|
|
8
|
+
* Licensed under the MIT License.
|
|
9
|
+
*/
|
|
10
|
+
import { BaseDeclarativeTool, Kind, } from './tools.js';
|
|
11
|
+
import { ToolErrorType } from './tool-error.js';
|
|
12
|
+
import { BaseToolInvocation } from './tools.js';
|
|
13
|
+
import fetch from 'node-fetch';
|
|
14
|
+
const API_CONFIG = {
|
|
15
|
+
BASE_URL: 'https://mcp.exa.ai',
|
|
16
|
+
ENDPOINTS: {
|
|
17
|
+
SEARCH: '/mcp',
|
|
18
|
+
},
|
|
19
|
+
DEFAULT_NUM_RESULTS: 8,
|
|
20
|
+
};
|
|
21
|
+
export class ExaWebSearchTool extends BaseDeclarativeTool {
|
|
22
|
+
config;
|
|
23
|
+
static Name = 'exa_web_search';
|
|
24
|
+
constructor(config) {
|
|
25
|
+
super(ExaWebSearchTool.Name, 'ExaWebSearch', 'Search the web using Exa AI - performs real-time web searches and can scrape content from specific URLs. Provides up-to-date information for current events and recent data.', Kind.Search, {
|
|
26
|
+
type: 'object',
|
|
27
|
+
properties: {
|
|
28
|
+
query: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
description: 'Websearch query',
|
|
31
|
+
},
|
|
32
|
+
numResults: {
|
|
33
|
+
type: 'number',
|
|
34
|
+
description: 'Number of search results to return (default: 8)',
|
|
35
|
+
},
|
|
36
|
+
livecrawl: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
enum: ['fallback', 'preferred'],
|
|
39
|
+
description: "Live crawl mode - 'fallback': use live crawling as backup if cached content unavailable, 'preferred': prioritize live crawling (default: 'fallback')",
|
|
40
|
+
},
|
|
41
|
+
type: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
enum: ['auto', 'fast', 'deep'],
|
|
44
|
+
description: "Search type - 'auto': balanced search (default), 'fast': quick results, 'deep': comprehensive search",
|
|
45
|
+
},
|
|
46
|
+
contextMaxCharacters: {
|
|
47
|
+
type: 'number',
|
|
48
|
+
description: 'Maximum characters for context string optimized for LLMs (default: 10000)',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
required: ['query'],
|
|
52
|
+
});
|
|
53
|
+
this.config = config;
|
|
54
|
+
}
|
|
55
|
+
createInvocation(params) {
|
|
56
|
+
return new ExaWebSearchToolInvocation(this.config, params);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
class ExaWebSearchToolInvocation extends BaseToolInvocation {
|
|
60
|
+
constructor(_config, params) {
|
|
61
|
+
super(params);
|
|
62
|
+
}
|
|
63
|
+
getDescription() {
|
|
64
|
+
return `Search web for: ${this.params.query}`;
|
|
65
|
+
}
|
|
66
|
+
async execute(signal, _updateOutput) {
|
|
67
|
+
const searchRequest = {
|
|
68
|
+
jsonrpc: '2.0',
|
|
69
|
+
id: 1,
|
|
70
|
+
method: 'tools/call',
|
|
71
|
+
params: {
|
|
72
|
+
name: 'web_search_exa',
|
|
73
|
+
arguments: {
|
|
74
|
+
query: this.params.query,
|
|
75
|
+
type: this.params.type || 'auto',
|
|
76
|
+
numResults: this.params.numResults || API_CONFIG.DEFAULT_NUM_RESULTS,
|
|
77
|
+
livecrawl: this.params.livecrawl || 'fallback',
|
|
78
|
+
contextMaxCharacters: this.params.contextMaxCharacters ?? 10000,
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
try {
|
|
83
|
+
const headers = {
|
|
84
|
+
accept: 'application/json, text/event-stream',
|
|
85
|
+
'content-type': 'application/json',
|
|
86
|
+
};
|
|
87
|
+
const response = await fetch(`${API_CONFIG.BASE_URL}${API_CONFIG.ENDPOINTS.SEARCH}`, {
|
|
88
|
+
method: 'POST',
|
|
89
|
+
headers,
|
|
90
|
+
body: JSON.stringify(searchRequest),
|
|
91
|
+
signal,
|
|
92
|
+
});
|
|
93
|
+
if (!response.ok) {
|
|
94
|
+
const errorText = await response.text();
|
|
95
|
+
throw new Error(`Search error (${response.status}): ${errorText}`);
|
|
96
|
+
}
|
|
97
|
+
const responseText = await response.text();
|
|
98
|
+
// Parse SSE response
|
|
99
|
+
const lines = responseText.split('\n');
|
|
100
|
+
for (const line of lines) {
|
|
101
|
+
if (line.startsWith('data: ')) {
|
|
102
|
+
try {
|
|
103
|
+
const data = JSON.parse(line.substring(6));
|
|
104
|
+
if (data.result &&
|
|
105
|
+
data.result.content &&
|
|
106
|
+
data.result.content.length > 0) {
|
|
107
|
+
const content = data.result.content[0].text;
|
|
108
|
+
return {
|
|
109
|
+
llmContent: content,
|
|
110
|
+
returnDisplay: content,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch (_e) {
|
|
115
|
+
// Ignore parse errors
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
llmContent: 'No search results found. Please try a different query.',
|
|
121
|
+
returnDisplay: 'No results found.',
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
126
|
+
return {
|
|
127
|
+
llmContent: `Error performing web search: ${errorMessage}`,
|
|
128
|
+
returnDisplay: `Error: ${errorMessage}`,
|
|
129
|
+
error: {
|
|
130
|
+
message: errorMessage,
|
|
131
|
+
type: ToolErrorType.WEB_SEARCH_FAILED,
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=exa-web-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exa-web-search.js","sourceRoot":"","sources":["../../../src/tools/exa-web-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { Config } from '../config/config.js';
|
|
|
9
9
|
/**
|
|
10
10
|
* Parameters for the WebFetch tool
|
|
11
11
|
*/
|
|
12
|
-
export interface
|
|
12
|
+
export interface GoogleWebFetchToolParams {
|
|
13
13
|
/**
|
|
14
14
|
* The prompt containing URL(s) (up to 20) and instructions for processing their content.
|
|
15
15
|
*/
|
|
@@ -18,10 +18,10 @@ export interface WebFetchToolParams {
|
|
|
18
18
|
/**
|
|
19
19
|
* Implementation of the WebFetch tool logic
|
|
20
20
|
*/
|
|
21
|
-
export declare class
|
|
21
|
+
export declare class GoogleWebFetchTool extends BaseDeclarativeTool<GoogleWebFetchToolParams, ToolResult> {
|
|
22
22
|
private readonly config;
|
|
23
23
|
static readonly Name: string;
|
|
24
24
|
constructor(config: Config, messageBus?: MessageBus);
|
|
25
|
-
protected validateToolParamValues(params:
|
|
26
|
-
protected createInvocation(params:
|
|
25
|
+
protected validateToolParamValues(params: GoogleWebFetchToolParams): string | null;
|
|
26
|
+
protected createInvocation(params: GoogleWebFetchToolParams, messageBus?: MessageBus): ToolInvocation<GoogleWebFetchToolParams, ToolResult>;
|
|
27
27
|
}
|
|
@@ -18,27 +18,34 @@ function extractUrls(text) {
|
|
|
18
18
|
const urlRegex = /(https?:\/\/[^\s]+)/g;
|
|
19
19
|
return text.match(urlRegex) || [];
|
|
20
20
|
}
|
|
21
|
-
class
|
|
21
|
+
class GoogleWebFetchToolInvocation extends BaseToolInvocation {
|
|
22
22
|
config;
|
|
23
23
|
constructor(config, params, messageBus) {
|
|
24
24
|
super(params, messageBus);
|
|
25
25
|
this.config = config;
|
|
26
26
|
}
|
|
27
27
|
getToolName() {
|
|
28
|
-
return
|
|
28
|
+
return GoogleWebFetchTool.Name;
|
|
29
29
|
}
|
|
30
30
|
async executeFallback(_signal) {
|
|
31
31
|
const urls = extractUrls(this.params.prompt);
|
|
32
32
|
// For now, we only support one URL for fallback
|
|
33
33
|
let url = urls[0];
|
|
34
34
|
// Convert GitHub blob URL to raw URL
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
// Convert GitHub blob URL to raw URL
|
|
36
|
+
try {
|
|
37
|
+
const urlObj = new URL(url);
|
|
38
|
+
if (urlObj.hostname === 'github.com' && url.includes('/blob/')) {
|
|
39
|
+
url = url
|
|
40
|
+
.replace('github.com', 'raw.githubusercontent.com')
|
|
41
|
+
.replace('/blob/', '/');
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (_) {
|
|
45
|
+
// Ignore invalid URLs, they will be caught by fetchWithTimeout
|
|
39
46
|
}
|
|
40
47
|
try {
|
|
41
|
-
const response = await fetchWithTimeout(url, URL_FETCH_TIMEOUT_MS);
|
|
48
|
+
const response = await fetchWithTimeout(url, URL_FETCH_TIMEOUT_MS, _signal);
|
|
42
49
|
if (!response.ok) {
|
|
43
50
|
throw new Error(`Request failed with status code ${response.status} ${response.statusText}`);
|
|
44
51
|
}
|
|
@@ -83,10 +90,16 @@ class WebFetchToolInvocation extends BaseToolInvocation {
|
|
|
83
90
|
// Perform GitHub URL conversion here to differentiate between user-provided
|
|
84
91
|
// URL and the actual URL to be fetched.
|
|
85
92
|
const urls = extractUrls(this.params.prompt).map((url) => {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
93
|
+
try {
|
|
94
|
+
const urlObj = new URL(url);
|
|
95
|
+
if (urlObj.hostname === 'github.com' && url.includes('/blob/')) {
|
|
96
|
+
return url
|
|
97
|
+
.replace('github.com', 'raw.githubusercontent.com')
|
|
98
|
+
.replace('/blob/', '/');
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch (_) {
|
|
102
|
+
// Ignore invalid URLs
|
|
90
103
|
}
|
|
91
104
|
return url;
|
|
92
105
|
});
|
|
@@ -250,11 +263,11 @@ ${sourceListFormatted.join('\n')}`;
|
|
|
250
263
|
/**
|
|
251
264
|
* Implementation of the WebFetch tool logic
|
|
252
265
|
*/
|
|
253
|
-
export class
|
|
266
|
+
export class GoogleWebFetchTool extends BaseDeclarativeTool {
|
|
254
267
|
config;
|
|
255
|
-
static Name = '
|
|
268
|
+
static Name = 'google_web_fetch';
|
|
256
269
|
constructor(config, messageBus) {
|
|
257
|
-
super(
|
|
270
|
+
super(GoogleWebFetchTool.Name, 'GoogleWebFetch', "Processes content from URL(s), including local and private network addresses (e.g., localhost), embedded in a prompt. Include up to 20 URLs and instructions (e.g., summarize, extract specific data) directly in the 'prompt' parameter.", Kind.Fetch, {
|
|
258
271
|
properties: {
|
|
259
272
|
prompt: {
|
|
260
273
|
description: 'A comprehensive prompt that includes the URL(s) (up to 20) to fetch and specific instructions on how to process their content (e.g., "Summarize https://example.com/article and extract key points from https://another.com/data"). Must contain as least one URL starting with http:// or https://.',
|
|
@@ -283,7 +296,7 @@ export class WebFetchTool extends BaseDeclarativeTool {
|
|
|
283
296
|
return null;
|
|
284
297
|
}
|
|
285
298
|
createInvocation(params, messageBus) {
|
|
286
|
-
return new
|
|
299
|
+
return new GoogleWebFetchToolInvocation(this.config, params, messageBus);
|
|
287
300
|
}
|
|
288
301
|
}
|
|
289
|
-
//# sourceMappingURL=web-fetch.js.map
|
|
302
|
+
//# sourceMappingURL=google-web-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-web-fetch.js","sourceRoot":"","sources":["../../../src/tools/google-web-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,7 @@ export interface WebSearchToolResult extends ToolResult {
|
|
|
44
44
|
/**
|
|
45
45
|
* Tool invocation for performing web searches using Google Search via the Gemini API.
|
|
46
46
|
*/
|
|
47
|
-
export declare class
|
|
47
|
+
export declare class GoogleWebSearchToolInvocation extends BaseToolInvocation<WebSearchToolParams, WebSearchToolResult> {
|
|
48
48
|
private readonly config;
|
|
49
49
|
constructor(config: Config, params: WebSearchToolParams, messageBus?: MessageBus);
|
|
50
50
|
getToolName(): string;
|
|
@@ -10,7 +10,7 @@ import { ToolErrorType } from './tool-error.js';
|
|
|
10
10
|
/**
|
|
11
11
|
* Tool invocation for performing web searches using Google Search via the Gemini API.
|
|
12
12
|
*/
|
|
13
|
-
export class
|
|
13
|
+
export class GoogleWebSearchToolInvocation extends BaseToolInvocation {
|
|
14
14
|
config;
|
|
15
15
|
constructor(config, params, messageBus) {
|
|
16
16
|
super(params, messageBus);
|
|
@@ -144,4 +144,4 @@ export class WebSearchToolInvocation extends BaseToolInvocation {
|
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
|
-
//# sourceMappingURL=web-search-invocation.js.map
|
|
147
|
+
//# sourceMappingURL=google-web-search-invocation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-web-search-invocation.js","sourceRoot":"","sources":["../../../src/tools/google-web-search-invocation.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,17 +6,17 @@
|
|
|
6
6
|
import { BaseDeclarativeTool, ToolInvocation } from './tools.js';
|
|
7
7
|
import type { MessageBus } from '../confirmation-bus/message-bus.js';
|
|
8
8
|
import { Config } from '../config/config.js';
|
|
9
|
-
import { WebSearchToolParams, WebSearchToolResult } from './web-search-invocation.js';
|
|
10
|
-
export { WebSearchToolParams, WebSearchToolResult, } from './web-search-invocation.js';
|
|
9
|
+
import { WebSearchToolParams, WebSearchToolResult } from './google-web-search-invocation.js';
|
|
10
|
+
export { WebSearchToolParams, WebSearchToolResult, } from './google-web-search-invocation.js';
|
|
11
11
|
/**
|
|
12
12
|
* A tool to perform web searches using Google Search via the Gemini API.
|
|
13
13
|
*/
|
|
14
|
-
export declare class
|
|
14
|
+
export declare class GoogleWebSearchTool extends BaseDeclarativeTool<WebSearchToolParams, WebSearchToolResult> {
|
|
15
15
|
private readonly config;
|
|
16
16
|
static readonly Name: string;
|
|
17
17
|
constructor(config: Config, messageBus?: MessageBus);
|
|
18
18
|
/**
|
|
19
|
-
* Validates the parameters for the
|
|
19
|
+
* Validates the parameters for the GoogleWebSearchTool.
|
|
20
20
|
* @param params The parameters to validate
|
|
21
21
|
* @returns An error message string if validation fails, null if valid
|
|
22
22
|
*/
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { BaseDeclarativeTool, Kind } from './tools.js';
|
|
7
|
-
import {
|
|
7
|
+
import { GoogleWebSearchToolInvocation, } from './google-web-search-invocation.js';
|
|
8
8
|
/**
|
|
9
9
|
* A tool to perform web searches using Google Search via the Gemini API.
|
|
10
10
|
*/
|
|
11
|
-
export class
|
|
11
|
+
export class GoogleWebSearchTool extends BaseDeclarativeTool {
|
|
12
12
|
config;
|
|
13
13
|
static Name = 'google_web_search';
|
|
14
14
|
constructor(config, messageBus) {
|
|
15
|
-
super(
|
|
15
|
+
super(GoogleWebSearchTool.Name, 'GoogleSearch', 'Performs a web search using Google Search (via the Gemini API) and returns the results. This tool is useful for finding information on the internet based on a query.', Kind.Search, {
|
|
16
16
|
type: 'object',
|
|
17
17
|
properties: {
|
|
18
18
|
query: {
|
|
@@ -27,7 +27,7 @@ export class WebSearchTool extends BaseDeclarativeTool {
|
|
|
27
27
|
this.config = config;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
* Validates the parameters for the
|
|
30
|
+
* Validates the parameters for the GoogleWebSearchTool.
|
|
31
31
|
* @param params The parameters to validate
|
|
32
32
|
* @returns An error message string if validation fails, null if valid
|
|
33
33
|
*/
|
|
@@ -38,7 +38,7 @@ export class WebSearchTool extends BaseDeclarativeTool {
|
|
|
38
38
|
return null;
|
|
39
39
|
}
|
|
40
40
|
createInvocation(params, messageBus) {
|
|
41
|
-
return new
|
|
41
|
+
return new GoogleWebSearchToolInvocation(this.config, params, messageBus);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
//# sourceMappingURL=web-search.js.map
|
|
44
|
+
//# sourceMappingURL=google-web-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-web-search.js","sourceRoot":"","sources":["../../../src/tools/google-web-search.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAkB,MAAM,YAAY,CAAC;AAGvE,OAAO,EACL,6BAA6B,GAG9B,MAAM,mCAAmC,CAAC;AAQ3C;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,mBAGxC;IAIoB;IAHnB,MAAM,CAAU,IAAI,GAAW,mBAAmB,CAAC;IAEnD,YACmB,MAAc,EAC/B,UAAuB;QAEvB,KAAK,CACH,mBAAmB,CAAC,IAAI,EACxB,cAAc,EACd,uKAAuK,EACvK,IAAI,CAAC,MAAM,EACX;YACE,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kDAAkD;iBAChE;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB,EACD,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,2BAA2B;QAClC,UAAU,CACX,CAAC;QArBe,WAAM,GAAN,MAAM,CAAQ;IAsBjC,CAAC;IAED;;;;OAIG;IACgB,uBAAuB,CACxC,MAA2B;QAE3B,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAChD,OAAO,wCAAwC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAES,gBAAgB,CACxB,MAA2B,EAC3B,UAAuB;QAEvB,OAAO,IAAI,6BAA6B,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5E,CAAC"}
|
|
@@ -42,5 +42,8 @@ export declare enum ToolErrorType {
|
|
|
42
42
|
WEB_FETCH_NO_URL_IN_PROMPT = "web_fetch_no_url_in_prompt",
|
|
43
43
|
WEB_FETCH_FALLBACK_FAILED = "web_fetch_fallback_failed",
|
|
44
44
|
WEB_FETCH_PROCESSING_ERROR = "web_fetch_processing_error",
|
|
45
|
-
WEB_SEARCH_FAILED = "web_search_failed"
|
|
45
|
+
WEB_SEARCH_FAILED = "web_search_failed",
|
|
46
|
+
SEARCH_ERROR = "search_error",
|
|
47
|
+
FETCH_ERROR = "fetch_error",
|
|
48
|
+
INVALID_ARGUMENT = "invalid_argument"
|
|
46
49
|
}
|
|
@@ -57,5 +57,10 @@ export var ToolErrorType;
|
|
|
57
57
|
ToolErrorType["WEB_FETCH_PROCESSING_ERROR"] = "web_fetch_processing_error";
|
|
58
58
|
// WebSearch-specific Errors
|
|
59
59
|
ToolErrorType["WEB_SEARCH_FAILED"] = "web_search_failed";
|
|
60
|
+
// CodeSearch-specific Errors
|
|
61
|
+
ToolErrorType["SEARCH_ERROR"] = "search_error";
|
|
62
|
+
// WebFetch-specific Errors (Direct)
|
|
63
|
+
ToolErrorType["FETCH_ERROR"] = "fetch_error";
|
|
64
|
+
ToolErrorType["INVALID_ARGUMENT"] = "invalid_argument";
|
|
60
65
|
})(ToolErrorType || (ToolErrorType = {}));
|
|
61
66
|
//# sourceMappingURL=tool-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-error.js","sourceRoot":"","sources":["../../../src/tools/tool-error.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"tool-error.js","sourceRoot":"","sources":["../../../src/tools/tool-error.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,aAqEX;AArED,WAAY,aAAa;IACvB,iBAAiB;IACjB,4DAA2C,CAAA;IAC3C,oCAAmB,CAAA;IACnB,4DAA2C,CAAA;IAC3C,4DAA2C,CAAA;IAC3C,sDAAqC,CAAA;IACrC,gDAA+B,CAAA;IAC/B,sDAAqC,CAAA;IAErC,qBAAqB;IACrB,kDAAiC,CAAA;IACjC,0DAAyC,CAAA;IACzC,8DAA6C,CAAA;IAC7C,oFAAmE,CAAA;IACnE,kDAAiC,CAAA;IACjC,wDAAuC,CAAA;IACvC,gDAA+B,CAAA;IAC/B,4DAA2C,CAAA;IAC3C,gEAA+C,CAAA;IAC/C,gEAA+C,CAAA;IAC/C,4EAA2D,CAAA;IAE3D,uBAAuB;IACvB,sEAAqD,CAAA;IACrD,sEAAqD,CAAA;IACrD,wFAAuE,CAAA;IACvE,kDAAiC,CAAA;IACjC,8EAA6D,CAAA;IAE7D,uBAAuB;IACvB,8DAA6C,CAAA;IAE7C,uBAAuB;IACvB,8DAA6C,CAAA;IAE7C,qBAAqB;IACrB,0DAAyC,CAAA;IACzC,oEAAmD,CAAA;IAEnD,sBAAsB;IACtB,kDAAiC,CAAA;IAEjC,yBAAyB;IACzB,4EAA2D,CAAA;IAE3D,gCAAgC;IAChC,8EAA6D,CAAA;IAE7D,eAAe;IACf,4DAA2C,CAAA;IAE3C,iCAAiC;IACjC,oFAAmE,CAAA;IAEnE,2BAA2B;IAC3B,0EAAyD,CAAA;IACzD,wEAAuD,CAAA;IACvD,0EAAyD,CAAA;IAEzD,4BAA4B;IAC5B,wDAAuC,CAAA;IAEvC,6BAA6B;IAC7B,8CAA6B,CAAA;IAE7B,oCAAoC;IACpC,4CAA2B,CAAA;IAC3B,sDAAqC,CAAA;AACvC,CAAC,EArEW,aAAa,KAAb,aAAa,QAqExB"}
|
|
@@ -8,4 +8,4 @@ export declare class FetchError extends Error {
|
|
|
8
8
|
constructor(message: string, code?: string | undefined);
|
|
9
9
|
}
|
|
10
10
|
export declare function isPrivateIp(url: string): boolean;
|
|
11
|
-
export declare function fetchWithTimeout(url: string, timeout: number): Promise<Response>;
|
|
11
|
+
export declare function fetchWithTimeout(url: string, timeout: number, signal?: AbortSignal): Promise<Response>;
|