@vybestack/llxprt-code-core 0.6.1 → 0.7.0-nightly.251206.43b97dbf4
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/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/auth/precedence.js +9 -10
- package/dist/src/auth/precedence.js.map +1 -1
- package/dist/src/auth/types.d.ts +6 -6
- 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/geminiChat.d.ts +8 -0
- package/dist/src/core/geminiChat.js +63 -5
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/prompts.js +9 -4
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/turn.js +12 -8
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/ide/ide-client.js +4 -2
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/index.d.ts +6 -2
- package/dist/src/index.js +6 -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/parsers/TextToolCallParser.d.ts +0 -15
- package/dist/src/parsers/TextToolCallParser.js +21 -5
- package/dist/src/parsers/TextToolCallParser.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/BaseProvider.d.ts +3 -0
- package/dist/src/providers/BaseProvider.js +11 -0
- package/dist/src/providers/BaseProvider.js.map +1 -1
- package/dist/src/providers/IProvider.d.ts +3 -0
- package/dist/src/providers/ProviderManager.js +6 -0
- package/dist/src/providers/ProviderManager.js.map +1 -1
- package/dist/src/providers/anthropic/AnthropicProvider.d.ts +0 -1
- package/dist/src/providers/anthropic/AnthropicProvider.js +233 -22
- package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
- package/dist/src/providers/anthropic/schemaConverter.d.ts +63 -0
- package/dist/src/providers/anthropic/schemaConverter.js +189 -0
- package/dist/src/providers/anthropic/schemaConverter.js.map +1 -0
- package/dist/src/providers/gemini/GeminiProvider.js +110 -13
- package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
- package/dist/src/providers/gemini/thoughtSignatures.d.ts +51 -0
- package/dist/src/providers/gemini/thoughtSignatures.js +189 -0
- package/dist/src/providers/gemini/thoughtSignatures.js.map +1 -0
- package/dist/src/providers/openai/OpenAIProvider.d.ts +78 -1
- package/dist/src/providers/openai/OpenAIProvider.js +1159 -190
- package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
- package/dist/src/providers/openai/ToolCallNormalizer.d.ts +6 -0
- package/dist/src/providers/openai/ToolCallNormalizer.js +16 -2
- package/dist/src/providers/openai/ToolCallNormalizer.js.map +1 -1
- package/dist/src/providers/openai/schemaConverter.d.ts +67 -0
- package/dist/src/providers/openai/schemaConverter.js +191 -0
- package/dist/src/providers/openai/schemaConverter.js.map +1 -0
- package/dist/src/providers/openai-responses/OpenAIResponsesProvider.d.ts +0 -4
- package/dist/src/providers/openai-responses/OpenAIResponsesProvider.js +3 -75
- package/dist/src/providers/openai-responses/OpenAIResponsesProvider.js.map +1 -1
- package/dist/src/providers/openai-responses/schemaConverter.d.ts +65 -0
- package/dist/src/providers/openai-responses/schemaConverter.js +195 -0
- package/dist/src/providers/openai-responses/schemaConverter.js.map +1 -0
- package/dist/src/providers/openai-vercel/OpenAIVercelProvider.d.ts +146 -0
- package/dist/src/providers/openai-vercel/OpenAIVercelProvider.js +1177 -0
- package/dist/src/providers/openai-vercel/OpenAIVercelProvider.js.map +1 -0
- package/dist/src/providers/openai-vercel/errors.d.ts +46 -0
- package/dist/src/providers/openai-vercel/errors.js +137 -0
- package/dist/src/providers/openai-vercel/errors.js.map +1 -0
- package/dist/src/providers/openai-vercel/index.d.ts +22 -0
- package/dist/src/providers/openai-vercel/index.js +23 -0
- package/dist/src/providers/openai-vercel/index.js.map +1 -0
- package/dist/src/providers/openai-vercel/messageConversion.d.ts +36 -0
- package/dist/src/providers/openai-vercel/messageConversion.js +410 -0
- package/dist/src/providers/openai-vercel/messageConversion.js.map +1 -0
- package/dist/src/providers/openai-vercel/schemaConverter.d.ts +66 -0
- package/dist/src/providers/openai-vercel/schemaConverter.js +191 -0
- package/dist/src/providers/openai-vercel/schemaConverter.js.map +1 -0
- package/dist/src/providers/openai-vercel/toolIdUtils.d.ts +33 -0
- package/dist/src/providers/openai-vercel/toolIdUtils.js +117 -0
- package/dist/src/providers/openai-vercel/toolIdUtils.js.map +1 -0
- package/dist/src/providers/reasoning/reasoningUtils.d.ts +43 -0
- package/dist/src/providers/reasoning/reasoningUtils.js +92 -0
- package/dist/src/providers/reasoning/reasoningUtils.js.map +1 -0
- package/dist/src/providers/utils/localEndpoint.js +6 -2
- package/dist/src/providers/utils/localEndpoint.js.map +1 -1
- package/dist/src/runtime/AgentRuntimeContext.d.ts +27 -0
- package/dist/src/runtime/AgentRuntimeContext.js.map +1 -1
- package/dist/src/runtime/createAgentRuntimeContext.js +27 -1
- package/dist/src/runtime/createAgentRuntimeContext.js.map +1 -1
- package/dist/src/services/history/IContent.d.ts +6 -0
- package/dist/src/services/history/IContent.js.map +1 -1
- package/dist/src/settings/types.d.ts +1 -1
- package/dist/src/tools/IToolFormatter.d.ts +1 -1
- package/dist/src/tools/ToolFormatter.js +14 -2
- package/dist/src/tools/ToolFormatter.js.map +1 -1
- package/dist/src/tools/ToolIdStrategy.d.ts +72 -0
- package/dist/src/tools/ToolIdStrategy.js +107 -0
- package/dist/src/tools/ToolIdStrategy.js.map +1 -0
- 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/todo-schemas.d.ts +4 -4
- 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/dist/src/utils/filesearch/ignore.js +3 -2
- package/dist/src/utils/filesearch/ignore.js.map +1 -1
- package/dist/src/utils/gitIgnoreParser.js +2 -1
- package/dist/src/utils/gitIgnoreParser.js.map +1 -1
- package/dist/src/utils/schemaValidator.js +41 -6
- package/dist/src/utils/schemaValidator.js.map +1 -1
- package/package.json +7 -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,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"}
|
|
@@ -123,7 +123,7 @@ export declare const TodoSchema: z.ZodObject<{
|
|
|
123
123
|
id: string;
|
|
124
124
|
status: "in_progress" | "completed" | "pending";
|
|
125
125
|
content: string;
|
|
126
|
-
priority: "
|
|
126
|
+
priority: "low" | "medium" | "high";
|
|
127
127
|
toolCalls?: {
|
|
128
128
|
id: string;
|
|
129
129
|
timestamp: Date;
|
|
@@ -144,7 +144,7 @@ export declare const TodoSchema: z.ZodObject<{
|
|
|
144
144
|
id: string | number;
|
|
145
145
|
status: "in_progress" | "completed" | "pending";
|
|
146
146
|
content: string;
|
|
147
|
-
priority: "
|
|
147
|
+
priority: "low" | "medium" | "high";
|
|
148
148
|
toolCalls?: {
|
|
149
149
|
id: string | number;
|
|
150
150
|
timestamp: Date;
|
|
@@ -225,7 +225,7 @@ export declare const TodoArraySchema: z.ZodArray<z.ZodObject<{
|
|
|
225
225
|
id: string;
|
|
226
226
|
status: "in_progress" | "completed" | "pending";
|
|
227
227
|
content: string;
|
|
228
|
-
priority: "
|
|
228
|
+
priority: "low" | "medium" | "high";
|
|
229
229
|
toolCalls?: {
|
|
230
230
|
id: string;
|
|
231
231
|
timestamp: Date;
|
|
@@ -246,7 +246,7 @@ export declare const TodoArraySchema: z.ZodArray<z.ZodObject<{
|
|
|
246
246
|
id: string | number;
|
|
247
247
|
status: "in_progress" | "completed" | "pending";
|
|
248
248
|
content: string;
|
|
249
|
-
priority: "
|
|
249
|
+
priority: "low" | "medium" | "high";
|
|
250
250
|
toolCalls?: {
|
|
251
251
|
id: string | number;
|
|
252
252
|
timestamp: Date;
|
|
@@ -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>;
|
package/dist/src/utils/fetch.js
CHANGED
|
@@ -31,21 +31,43 @@ export function isPrivateIp(url) {
|
|
|
31
31
|
return false;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
export async function fetchWithTimeout(url, timeout) {
|
|
34
|
+
export async function fetchWithTimeout(url, timeout, signal) {
|
|
35
35
|
const controller = new AbortController();
|
|
36
36
|
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
37
|
+
const onAbort = () => {
|
|
38
|
+
clearTimeout(timeoutId);
|
|
39
|
+
controller.abort();
|
|
40
|
+
};
|
|
41
|
+
// If an external signal is provided, listen to it
|
|
42
|
+
if (signal) {
|
|
43
|
+
if (signal.aborted) {
|
|
44
|
+
clearTimeout(timeoutId);
|
|
45
|
+
controller.abort();
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
signal.addEventListener('abort', onAbort);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
37
51
|
try {
|
|
38
52
|
const response = await fetch(url, { signal: controller.signal });
|
|
39
53
|
return response;
|
|
40
54
|
}
|
|
41
55
|
catch (error) {
|
|
42
|
-
if (isNodeError(error) && error.code === 'ABORT_ERR')
|
|
56
|
+
if ((isNodeError(error) && error.code === 'ABORT_ERR') ||
|
|
57
|
+
(error instanceof Error && error.name === 'AbortError')) {
|
|
58
|
+
// Check if it was our timeout or the external signal
|
|
59
|
+
if (signal?.aborted) {
|
|
60
|
+
throw new FetchError('Request aborted by user', 'ABORT_ERR');
|
|
61
|
+
}
|
|
43
62
|
throw new FetchError(`Request timed out after ${timeout}ms`, 'ETIMEDOUT');
|
|
44
63
|
}
|
|
45
64
|
throw new FetchError(getErrorMessage(error));
|
|
46
65
|
}
|
|
47
66
|
finally {
|
|
48
67
|
clearTimeout(timeoutId);
|
|
68
|
+
if (signal) {
|
|
69
|
+
signal.removeEventListener('abort', onAbort);
|
|
70
|
+
}
|
|
49
71
|
}
|
|
50
72
|
}
|
|
51
73
|
//# sourceMappingURL=fetch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,iBAAiB,GAAG;IACxB,OAAO;IACP,QAAQ;IACR,gCAAgC;IAChC,aAAa;IACb,OAAO;IACP,QAAQ;IACR,QAAQ;CACT,CAAC;AAEF,MAAM,OAAO,UAAW,SAAQ,KAAK;IAG1B;IAFT,YACE,OAAe,EACR,IAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFR,SAAI,GAAJ,IAAI,CAAS;QAGpB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QACvC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,OAAe;
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,iBAAiB,GAAG;IACxB,OAAO;IACP,QAAQ;IACR,gCAAgC;IAChC,aAAa;IACb,OAAO;IACP,QAAQ;IACR,QAAQ;CACT,CAAC;AAEF,MAAM,OAAO,UAAW,SAAQ,KAAK;IAG1B;IAFT,YACE,OAAe,EACR,IAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFR,SAAI,GAAJ,IAAI,CAAS;QAGpB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QACvC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,OAAe,EACf,MAAoB;IAEpB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,UAAU,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,kDAAkD;IAClD,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IACE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;YAClD,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,EACvD,CAAC;YACD,qDAAqD;YACrD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,UAAU,CAAC,yBAAyB,EAAE,WAAW,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,2BAA2B,OAAO,IAAI,EAAE,WAAW,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,IAAI,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -8,6 +8,7 @@ import path from 'node:path';
|
|
|
8
8
|
import ignore from 'ignore';
|
|
9
9
|
import picomatch from 'picomatch';
|
|
10
10
|
const hasFileExtension = picomatch('**/*[*.]*');
|
|
11
|
+
const createIgnore = ignore;
|
|
11
12
|
export function loadIgnoreRules(options) {
|
|
12
13
|
const ignorer = new Ignore();
|
|
13
14
|
if (options.useGitignore) {
|
|
@@ -33,8 +34,8 @@ export function loadIgnoreRules(options) {
|
|
|
33
34
|
}
|
|
34
35
|
export class Ignore {
|
|
35
36
|
allPatterns = [];
|
|
36
|
-
dirIgnorer =
|
|
37
|
-
fileIgnorer =
|
|
37
|
+
dirIgnorer = createIgnore();
|
|
38
|
+
fileIgnorer = createIgnore();
|
|
38
39
|
/**
|
|
39
40
|
* Adds one or more ignore patterns.
|
|
40
41
|
* @param patterns A single pattern string or an array of pattern strings.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../../../src/utils/filesearch/ignore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../../../src/utils/filesearch/ignore.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,10 @@ import * as fs from 'fs';
|
|
|
7
7
|
import * as path from 'path';
|
|
8
8
|
import ignore from 'ignore';
|
|
9
9
|
import { isGitRepository } from './gitUtils.js';
|
|
10
|
+
const createIgnore = ignore;
|
|
10
11
|
export class GitIgnoreParser {
|
|
11
12
|
projectRoot;
|
|
12
|
-
ig =
|
|
13
|
+
ig = createIgnore();
|
|
13
14
|
patterns = [];
|
|
14
15
|
constructor(projectRoot) {
|
|
15
16
|
this.projectRoot = path.resolve(projectRoot);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitIgnoreParser.js","sourceRoot":"","sources":["../../../src/utils/gitIgnoreParser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"gitIgnoreParser.js","sourceRoot":"","sources":["../../../src/utils/gitIgnoreParser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,MAGN,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAOhD,MAAM,YAAY,GAAG,MAEJ,CAAC;AAElB,MAAM,OAAO,eAAe;IAClB,WAAW,CAAS;IACpB,EAAE,GAAiB,YAAY,EAAE,CAAC;IAClC,QAAQ,GAAa,EAAE,CAAC;IAEhC,YAAY,WAAmB;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;YAAE,OAAO;QAE/C,gEAAgE;QAChE,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAE3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IAEO,yBAAyB,CAC/B,GAAW,EACX,YAAyB;QAEzB,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACH,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE9B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAEzD,oEAAoE;QACpE,iEAAiE;QACjE,IAAI,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,yDAAyD;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACnD,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,SAAS;gBACX,CAAC;gBACD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,IAAI,CAAC,yBAAyB,CAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAC1B,YAAY,CACb,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,wBAAwB;QAC1B,CAAC;IACH,CAAC;IAED,YAAY,CAAC,gBAAwB;QACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACvE,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,wBAAwB;YACxB,OAAO;QACT,CAAC;QAED,sFAAsF;QACtF,MAAM,aAAa,GACjB,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,mBAAmB,CAAC;QAC/D,MAAM,eAAe,GAAG,aAAa;YACnC,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAEnC,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;aAC7B,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,UAAU,EAAE,CAAC;gBACf,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;YAED,MAAM,gBAAgB,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,gBAAgB,EAAE,CAAC;gBACrB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;YAED,+DAA+D;YAC/D,uBAAuB;YACvB,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,eAAe,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC;gBAC/C,kFAAkF;gBAClF,6EAA6E;gBAC7E,+EAA+E;gBAC/E,gFAAgF;gBAEhF,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1C,gEAAgE;oBAChE,gBAAgB;oBAChB,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAClC,CAAC;gBAED,2CAA2C;gBAC3C,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;gBAEpD,sDAAsD;gBACtD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,UAAU,GAAG,GAAG,GAAG,UAAU,CAAC;gBAChC,CAAC;YACH,CAAC;YAED,4CAA4C;YAC5C,IAAI,gBAAgB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpD,UAAU,GAAG,GAAG,GAAG,UAAU,CAAC;YAChC,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,GAAG,GAAG,GAAG,UAAU,CAAC;YAChC,CAAC;YAED,mDAAmD;YACnD,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAE5C,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAEO,WAAW,CAAC,QAAkB;QACpC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IACE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,QAAQ,KAAK,GAAG;YAChB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EACvB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAE/D,IAAI,YAAY,KAAK,EAAE,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,mDAAmD;YACnD,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAExD,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;gBAC5D,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"}
|