@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.
Files changed (55) hide show
  1. package/README.md +244 -0
  2. package/dist/prompt-config/defaults/default-prompts.json +5 -2
  3. package/dist/src/agents/executor.js +2 -2
  4. package/dist/src/agents/executor.js.map +1 -1
  5. package/dist/src/config/config.js +10 -4
  6. package/dist/src/config/config.js.map +1 -1
  7. package/dist/src/core/coreToolScheduler.d.ts +7 -0
  8. package/dist/src/core/coreToolScheduler.js +67 -0
  9. package/dist/src/core/coreToolScheduler.js.map +1 -1
  10. package/dist/src/core/prompts.js +9 -4
  11. package/dist/src/core/prompts.js.map +1 -1
  12. package/dist/src/index.d.ts +5 -2
  13. package/dist/src/index.js +5 -2
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/mcp/token-storage/file-token-storage.js +1 -6
  16. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
  17. package/dist/src/mcp/token-storage/keychain-token-storage.js +3 -6
  18. package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
  19. package/dist/src/prompt-config/defaults/tool-defaults.js +5 -2
  20. package/dist/src/prompt-config/defaults/tool-defaults.js.map +1 -1
  21. package/dist/src/prompt-config/defaults/tools/code-search.md +3 -0
  22. package/dist/src/prompt-config/defaults/tools/direct-web-fetch.md +3 -0
  23. package/dist/src/prompt-config/defaults/tools/exa-web-search.md +14 -0
  24. package/dist/src/prompt-config/defaults/tools/{web-fetch.md → google-web-fetch.md} +1 -1
  25. package/dist/src/prompt-config/defaults/tools/{web-search.md → google-web-search.md} +1 -1
  26. package/dist/src/providers/gemini/GeminiProvider.js +2 -2
  27. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  28. package/dist/src/tools/codesearch.d.ts +21 -0
  29. package/dist/src/tools/codesearch.js +145 -0
  30. package/dist/src/tools/codesearch.js.map +1 -0
  31. package/dist/src/tools/direct-web-fetch.d.ts +22 -0
  32. package/dist/src/tools/direct-web-fetch.js +169 -0
  33. package/dist/src/tools/direct-web-fetch.js.map +1 -0
  34. package/dist/src/tools/exa-web-search.d.ts +24 -0
  35. package/dist/src/tools/exa-web-search.js +137 -0
  36. package/dist/src/tools/exa-web-search.js.map +1 -0
  37. package/dist/src/tools/{web-fetch.d.ts → google-web-fetch.d.ts} +4 -4
  38. package/dist/src/tools/{web-fetch.js → google-web-fetch.js} +29 -16
  39. package/dist/src/tools/google-web-fetch.js.map +1 -0
  40. package/dist/src/tools/{web-search-invocation.d.ts → google-web-search-invocation.d.ts} +1 -1
  41. package/dist/src/tools/{web-search-invocation.js → google-web-search-invocation.js} +2 -2
  42. package/dist/src/tools/google-web-search-invocation.js.map +1 -0
  43. package/dist/src/tools/{web-search.d.ts → google-web-search.d.ts} +4 -4
  44. package/dist/src/tools/{web-search.js → google-web-search.js} +6 -6
  45. package/dist/src/tools/google-web-search.js.map +1 -0
  46. package/dist/src/tools/tool-error.d.ts +4 -1
  47. package/dist/src/tools/tool-error.js +5 -0
  48. package/dist/src/tools/tool-error.js.map +1 -1
  49. package/dist/src/utils/fetch.d.ts +1 -1
  50. package/dist/src/utils/fetch.js +24 -2
  51. package/dist/src/utils/fetch.js.map +1 -1
  52. package/package.json +5 -1
  53. package/dist/src/tools/web-fetch.js.map +0 -1
  54. package/dist/src/tools/web-search-invocation.js.map +0 -1
  55. 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":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,mBAAmB,EACnB,IAAI,GAGL,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,UAAU,GAAG;IACjB,QAAQ,EAAE,oBAAoB;IAC9B,SAAS,EAAE;QACT,MAAM,EAAE,MAAM;KACf;IACD,mBAAmB,EAAE,CAAC;CACd,CAAC;AAoCX,MAAM,OAAO,gBAAiB,SAAQ,mBAGrC;IAG8B;IAF7B,MAAM,CAAU,IAAI,GAAG,gBAAgB,CAAC;IAExC,YAA6B,MAAc;QACzC,KAAK,CACH,gBAAgB,CAAC,IAAI,EACrB,cAAc,EACd,8KAA8K,EAC9K,IAAI,CAAC,MAAM,EACX;YACE,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iBAAiB;iBAC/B;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;oBAC/B,WAAW,EACT,sJAAsJ;iBACzJ;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;oBAC9B,WAAW,EACT,sGAAsG;iBACzG;gBACD,oBAAoB,EAAE;oBACpB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,2EAA2E;iBAC9E;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB,CACF,CAAC;QArCyB,WAAM,GAAN,MAAM,CAAQ;IAsC3C,CAAC;IAES,gBAAgB,CACxB,MAA8B;QAE9B,OAAO,IAAI,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;;AAGH,MAAM,0BAA2B,SAAQ,kBAGxC;IACC,YAAY,OAAe,EAAE,MAA8B;QACzD,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,cAAc;QACZ,OAAO,mBAAmB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAmB,EACnB,aAAwC;QAExC,MAAM,aAAa,GAAqB;YACtC,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,CAAC;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE;gBACN,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE;oBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;oBACxB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM;oBAChC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,mBAAmB;oBACpE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,UAAU;oBAC9C,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,KAAK;iBAChE;aACF;SACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,GAA2B;gBACtC,MAAM,EAAE,qCAAqC;gBAC7C,cAAc,EAAE,kBAAkB;aACnC,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,EACtD;gBACE,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;gBACnC,MAAM;aACP,CACF,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAE3C,qBAAqB;YACrB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC;wBACH,MAAM,IAAI,GAAsB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC9D,IACE,IAAI,CAAC,MAAM;4BACX,IAAI,CAAC,MAAM,CAAC,OAAO;4BACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAC9B,CAAC;4BACD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;4BAC5C,OAAO;gCACL,UAAU,EAAE,OAAO;gCACnB,aAAa,EAAE,OAAO;6BACvB,CAAC;wBACJ,CAAC;oBACH,CAAC;oBAAC,OAAO,EAAE,EAAE,CAAC;wBACZ,sBAAsB;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO;gBACL,UAAU,EAAE,wDAAwD;gBACpE,aAAa,EAAE,mBAAmB;aACnC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO;gBACL,UAAU,EAAE,gCAAgC,YAAY,EAAE;gBAC1D,aAAa,EAAE,UAAU,YAAY,EAAE;gBACvC,KAAK,EAAE;oBACL,OAAO,EAAE,YAAY;oBACrB,IAAI,EAAE,aAAa,CAAC,iBAAiB;iBACtC;aACF,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -9,7 +9,7 @@ import { Config } from '../config/config.js';
9
9
  /**
10
10
  * Parameters for the WebFetch tool
11
11
  */
12
- export interface WebFetchToolParams {
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 WebFetchTool extends BaseDeclarativeTool<WebFetchToolParams, ToolResult> {
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: WebFetchToolParams): string | null;
26
- protected createInvocation(params: WebFetchToolParams, messageBus?: MessageBus): ToolInvocation<WebFetchToolParams, ToolResult>;
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 WebFetchToolInvocation extends BaseToolInvocation {
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 WebFetchTool.Name;
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
- if (url.includes('github.com') && url.includes('/blob/')) {
36
- url = url
37
- .replace('github.com', 'raw.githubusercontent.com')
38
- .replace('/blob/', '/');
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
- if (url.includes('github.com') && url.includes('/blob/')) {
87
- return url
88
- .replace('github.com', 'raw.githubusercontent.com')
89
- .replace('/blob/', '/');
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 WebFetchTool extends BaseDeclarativeTool {
266
+ export class GoogleWebFetchTool extends BaseDeclarativeTool {
254
267
  config;
255
- static Name = 'web_fetch';
268
+ static Name = 'google_web_fetch';
256
269
  constructor(config, messageBus) {
257
- super(WebFetchTool.Name, 'WebFetch', "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, {
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 WebFetchToolInvocation(this.config, params, messageBus);
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 WebSearchToolInvocation extends BaseToolInvocation<WebSearchToolParams, WebSearchToolResult> {
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 WebSearchToolInvocation extends BaseToolInvocation {
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 WebSearchTool extends BaseDeclarativeTool<WebSearchToolParams, WebSearchToolResult> {
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 WebSearchTool.
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 { WebSearchToolInvocation, } from './web-search-invocation.js';
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 WebSearchTool extends BaseDeclarativeTool {
11
+ export class GoogleWebSearchTool extends BaseDeclarativeTool {
12
12
  config;
13
13
  static Name = 'google_web_search';
14
14
  constructor(config, messageBus) {
15
- super(WebSearchTool.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, {
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 WebSearchTool.
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 WebSearchToolInvocation(this.config, params, messageBus);
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,aA8DX;AA9DD,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;AACzC,CAAC,EA9DW,aAAa,KAAb,aAAa,QA8DxB"}
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>;