@vybestack/llxprt-code-core 0.1.19-gamma → 0.1.20
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 +9 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/auth/anthropic-device-flow.d.ts +1 -1
- package/dist/src/auth/anthropic-device-flow.js +4 -2
- package/dist/src/auth/anthropic-device-flow.js.map +1 -1
- package/dist/src/code_assist/converter.d.ts +2 -2
- package/dist/src/code_assist/converter.js +1 -1
- package/dist/src/code_assist/converter.js.map +1 -1
- package/dist/src/code_assist/setup.js +49 -15
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/config/config.d.ts +9 -6
- package/dist/src/config/config.js +28 -22
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/core/client.d.ts +8 -3
- package/dist/src/core/client.js +177 -38
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/contentGenerator.js +0 -2
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +0 -1
- package/dist/src/core/coreToolScheduler.js +0 -3
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/geminiChat.js +57 -5
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.d.ts +5 -0
- package/dist/src/core/loggingContentGenerator.js +9 -1
- package/dist/src/core/loggingContentGenerator.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.js +158 -3
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/prompts.js +19 -2
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/filters/EmojiFilter.d.ts +122 -0
- package/dist/src/filters/EmojiFilter.js +327 -0
- package/dist/src/filters/EmojiFilter.js.map +1 -0
- package/dist/src/ide/detect-ide.d.ts +12 -2
- package/dist/src/ide/detect-ide.js +64 -5
- package/dist/src/ide/detect-ide.js.map +1 -1
- package/dist/src/ide/ide-client.js +22 -15
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-installer.js +1 -26
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/ide/ideContext.d.ts +6 -6
- package/dist/src/index.d.ts +4 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.d.ts +0 -1
- package/dist/src/mcp/oauth-provider.js +2 -3
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/prompt-config/defaults/core-defaults.d.ts +1 -1
- package/dist/src/prompt-config/defaults/core-defaults.js +205 -326
- package/dist/src/prompt-config/defaults/core-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/core.md +1 -1
- package/dist/src/prompt-config/defaults/provider-defaults.d.ts +1 -1
- package/dist/src/prompt-config/defaults/provider-defaults.js +172 -19
- package/dist/src/prompt-config/defaults/provider-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/providers/anthropic/core.md +81 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/glob.md +34 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/list-directory.md +11 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/read-file.md +14 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/read-many-files.md +31 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/replace.md +41 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/run-shell-command.md +32 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/save-memory.md +35 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/search-file-content.md +44 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/todo-write.md +45 -0
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/write-file.md +11 -0
- package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/core.md +273 -10
- package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/gemini-2-5-flash/core.md +278 -0
- package/dist/src/prompt-config/defaults/tool-defaults.d.ts +1 -1
- package/dist/src/prompt-config/defaults/tool-defaults.js +184 -75
- package/dist/src/prompt-config/defaults/tool-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/tools/read-file.md +1 -1
- package/dist/src/prompt-config/prompt-service.d.ts +1 -1
- package/dist/src/prompt-config/prompt-service.js +5 -3
- package/dist/src/prompt-config/prompt-service.js.map +1 -1
- package/dist/src/providers/BaseProvider.js +1 -1
- package/dist/src/providers/BaseProvider.js.map +1 -1
- package/dist/src/providers/LoggingProviderWrapper.js +0 -12
- package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
- package/dist/src/providers/ProviderContentGenerator.d.ts +2 -2
- package/dist/src/providers/ProviderContentGenerator.js +5 -3
- package/dist/src/providers/ProviderContentGenerator.js.map +1 -1
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.js +1 -1
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.js.map +1 -1
- package/dist/src/providers/anthropic/AnthropicProvider.d.ts +1 -1
- package/dist/src/providers/anthropic/AnthropicProvider.js +97 -35
- package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
- package/dist/src/providers/gemini/GeminiProvider.d.ts +4 -5
- package/dist/src/providers/gemini/GeminiProvider.js +21 -26
- package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.js +2 -1
- package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
- package/dist/src/providers/openai/parseResponsesStream.js +6 -6
- package/dist/src/providers/openai/parseResponsesStream.js.map +1 -1
- package/dist/src/services/loopDetectionService.js +4 -5
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/todo-context-tracker.d.ts +1 -1
- package/dist/src/services/todo-context-tracker.js +5 -3
- package/dist/src/services/todo-context-tracker.js.map +1 -1
- package/dist/src/settings/SettingsService.js.map +1 -1
- package/dist/src/settings/types.d.ts +16 -0
- package/dist/src/telemetry/integration.test.circular.js +2 -40
- package/dist/src/telemetry/integration.test.circular.js.map +1 -1
- package/dist/src/telemetry/loggers.js +0 -20
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/sdk.d.ts +1 -1
- package/dist/src/telemetry/sdk.js +13 -29
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/test-utils/tools.js +2 -2
- package/dist/src/test-utils/tools.js.map +1 -1
- package/dist/src/tools/edit.js +91 -27
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/glob.js +9 -10
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/grep.js +8 -9
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/ls.d.ts +3 -22
- package/dist/src/tools/ls.js +84 -114
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/mcp-client.js +2 -2
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +6 -13
- package/dist/src/tools/mcp-tool.js +41 -31
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +9 -13
- package/dist/src/tools/memoryTool.js +127 -121
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/read-file.js +7 -8
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-many-files.d.ts +4 -6
- package/dist/src/tools/read-many-files.js +118 -111
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/shell.d.ts +7 -14
- package/dist/src/tools/shell.js +120 -117
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/todo-pause.js +2 -2
- package/dist/src/tools/todo-pause.js.map +1 -1
- package/dist/src/tools/todo-read.js +8 -8
- package/dist/src/tools/todo-read.js.map +1 -1
- package/dist/src/tools/todo-write.js +2 -2
- package/dist/src/tools/todo-write.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +6 -15
- package/dist/src/tools/tool-registry.js +17 -74
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tools.d.ts +20 -19
- package/dist/src/tools/tools.js +21 -20
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.d.ts +4 -7
- package/dist/src/tools/web-fetch.js +81 -83
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-search.js +26 -9
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +2 -1
- package/dist/src/tools/write-file.js +89 -29
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/utils/editCorrector.js +8 -9
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/errorParsing.d.ts +8 -0
- package/dist/src/utils/errorParsing.js +109 -0
- package/dist/src/utils/errorParsing.js.map +1 -0
- package/dist/src/utils/filesearch/fileSearch.js +1 -1
- package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
- package/dist/src/utils/filesearch/result-cache.d.ts +1 -2
- package/dist/src/utils/filesearch/result-cache.js +1 -3
- package/dist/src/utils/filesearch/result-cache.js.map +1 -1
- package/dist/src/utils/memoryImportProcessor.js +1 -1
- package/dist/src/utils/memoryImportProcessor.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.js +3 -4
- package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
- package/dist/src/utils/quotaErrorDetection.d.ts +1 -5
- package/dist/src/utils/quotaErrorDetection.js.map +1 -1
- package/dist/src/utils/schemaValidator.d.ts +1 -9
- package/dist/src/utils/schemaValidator.js +1 -109
- package/dist/src/utils/schemaValidator.js.map +1 -1
- package/package.json +2 -2
- package/dist/src/core/modelCheck.d.ts +0 -14
- package/dist/src/core/modelCheck.js +0 -62
- package/dist/src/core/modelCheck.js.map +0 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +0 -48
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +0 -577
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +0 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +0 -58
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +0 -157
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +0 -1
|
@@ -1,26 +1,179 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Provider and model-specific default prompts
|
|
3
|
-
* These constants
|
|
3
|
+
* These constants reference the corresponding .md files for default content
|
|
4
4
|
*/
|
|
5
|
+
import { readFileSync, existsSync, readdirSync } from 'node:fs';
|
|
6
|
+
import { join, dirname, basename, resolve } from 'node:path';
|
|
7
|
+
import { fileURLToPath } from 'node:url';
|
|
8
|
+
import process from 'node:process';
|
|
9
|
+
// In bundled environment, use global __dirname if available
|
|
10
|
+
const __dirname = globalThis.__dirname ||
|
|
11
|
+
dirname(fileURLToPath(import.meta.url));
|
|
12
|
+
function loadMarkdownFile(filename) {
|
|
13
|
+
// Skip debug logging if process or process.env is unavailable (test environment)
|
|
14
|
+
let debugLog = false;
|
|
15
|
+
try {
|
|
16
|
+
debugLog =
|
|
17
|
+
typeof process !== 'undefined' &&
|
|
18
|
+
process.env &&
|
|
19
|
+
(process.env.DEBUG === '1' || process.env.DEBUG === 'true');
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
debugLog = false;
|
|
23
|
+
}
|
|
24
|
+
if (debugLog) {
|
|
25
|
+
console.log(`\n[PROMPT_LOADER] ========== Loading ${filename} ==========`);
|
|
26
|
+
console.log(`[PROMPT_LOADER] __dirname: ${__dirname}`);
|
|
27
|
+
console.log(`[PROMPT_LOADER] process.cwd(): ${typeof process !== 'undefined' ? process.cwd() : 'N/A'}`);
|
|
28
|
+
console.log(`[PROMPT_LOADER] process.argv[0]: ${typeof process !== 'undefined' ? process.argv?.[0] : 'N/A'}`);
|
|
29
|
+
console.log(`[PROMPT_LOADER] process.argv[1]: ${typeof process !== 'undefined' ? process.argv?.[1] : 'N/A'}`);
|
|
30
|
+
console.log(`[PROMPT_LOADER] process.platform: ${typeof process !== 'undefined' ? process.platform : 'N/A'}`);
|
|
31
|
+
console.log(`[PROMPT_LOADER] NODE_ENV: ${typeof process !== 'undefined' ? process.env?.NODE_ENV : 'N/A'}`);
|
|
32
|
+
console.log(`[PROMPT_LOADER] CI: ${typeof process !== 'undefined' ? process.env?.CI : 'N/A'}`);
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
// Check if we're already in a bundle directory FIRST
|
|
36
|
+
// This fixes the Windows CI issue where __dirname is already bundle
|
|
37
|
+
const currentDir = resolve(__dirname);
|
|
38
|
+
if (debugLog) {
|
|
39
|
+
console.log(`[PROMPT_LOADER] currentDir: ${currentDir}`);
|
|
40
|
+
console.log(`[PROMPT_LOADER] basename(currentDir): ${basename(currentDir)}`);
|
|
41
|
+
}
|
|
42
|
+
if (basename(currentDir) === 'bundle') {
|
|
43
|
+
const directPath = join(currentDir, filename);
|
|
44
|
+
if (debugLog) {
|
|
45
|
+
console.log(`[PROMPT_LOADER] In bundle dir, checking directPath: ${directPath}`);
|
|
46
|
+
console.log(`[PROMPT_LOADER] directPath exists: ${existsSync(directPath)}`);
|
|
47
|
+
}
|
|
48
|
+
if (existsSync(directPath)) {
|
|
49
|
+
if (debugLog)
|
|
50
|
+
console.log(`[PROMPT_LOADER] Found at directPath`);
|
|
51
|
+
return readFileSync(directPath, 'utf-8');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Then try the normal path (works in development and non-bundled builds)
|
|
55
|
+
const normalPath = join(__dirname, filename);
|
|
56
|
+
if (debugLog) {
|
|
57
|
+
console.log(`[PROMPT_LOADER] Checking normalPath: ${normalPath}`);
|
|
58
|
+
console.log(`[PROMPT_LOADER] normalPath exists: ${existsSync(normalPath)}`);
|
|
59
|
+
}
|
|
60
|
+
if (existsSync(normalPath)) {
|
|
61
|
+
if (debugLog)
|
|
62
|
+
console.log(`[PROMPT_LOADER] Found at normalPath`);
|
|
63
|
+
return readFileSync(normalPath, 'utf-8');
|
|
64
|
+
}
|
|
65
|
+
// If that doesn't work, we might be in a bundled environment
|
|
66
|
+
// Try to find the bundle directory by traversing up the directory tree
|
|
67
|
+
let searchDir = currentDir;
|
|
68
|
+
let attempts = 0;
|
|
69
|
+
const maxAttempts = 10; // Prevent infinite loops
|
|
70
|
+
while (attempts < maxAttempts) {
|
|
71
|
+
// Check if we find a 'bundle' directory at this level
|
|
72
|
+
const bundleDir = join(searchDir, 'bundle');
|
|
73
|
+
const bundlePath = join(bundleDir, filename);
|
|
74
|
+
if (existsSync(bundlePath)) {
|
|
75
|
+
return readFileSync(bundlePath, 'utf-8');
|
|
76
|
+
}
|
|
77
|
+
// Move up one directory
|
|
78
|
+
const parentDir = dirname(searchDir);
|
|
79
|
+
if (parentDir === searchDir) {
|
|
80
|
+
// We've reached the root
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
searchDir = parentDir;
|
|
84
|
+
attempts++;
|
|
85
|
+
}
|
|
86
|
+
// As a last resort, check if we're running from a bundle directory using process.cwd()
|
|
87
|
+
if (typeof process !== 'undefined' && process.cwd().includes('bundle')) {
|
|
88
|
+
const cwdPath = join(process.cwd(), filename);
|
|
89
|
+
if (existsSync(cwdPath)) {
|
|
90
|
+
return readFileSync(cwdPath, 'utf-8');
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// Additional check for Windows CI where files might be in a different location
|
|
94
|
+
// Check if the file exists relative to the executing script location
|
|
95
|
+
if (typeof process !== 'undefined' && process.argv[1]) {
|
|
96
|
+
const scriptDir = dirname(process.argv[1]);
|
|
97
|
+
const scriptPath = join(scriptDir, filename);
|
|
98
|
+
if (existsSync(scriptPath)) {
|
|
99
|
+
return readFileSync(scriptPath, 'utf-8');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Last resort: Do a broader search for the bundle directory
|
|
103
|
+
// This handles edge cases like Windows CI where paths might be unusual
|
|
104
|
+
const searchPaths = [
|
|
105
|
+
typeof process !== 'undefined' ? process.cwd() : '',
|
|
106
|
+
typeof process !== 'undefined' ? dirname(process.argv[1] || '') : '',
|
|
107
|
+
typeof process !== 'undefined'
|
|
108
|
+
? dirname(dirname(process.argv[1] || ''))
|
|
109
|
+
: '',
|
|
110
|
+
typeof process !== 'undefined'
|
|
111
|
+
? dirname(dirname(dirname(process.argv[1] || '')))
|
|
112
|
+
: '',
|
|
113
|
+
__dirname,
|
|
114
|
+
dirname(__dirname),
|
|
115
|
+
dirname(dirname(__dirname)),
|
|
116
|
+
].filter((p) => p && p !== '');
|
|
117
|
+
if (debugLog) {
|
|
118
|
+
console.log(`[PROMPT_LOADER] Searching in paths:`, searchPaths);
|
|
119
|
+
// List files in key directories to debug CI issue
|
|
120
|
+
const checkDirs = [
|
|
121
|
+
__dirname,
|
|
122
|
+
typeof process !== 'undefined' ? process.cwd() : '',
|
|
123
|
+
typeof process !== 'undefined' ? dirname(process.argv[1] || '') : '',
|
|
124
|
+
].filter((dir) => dir !== '');
|
|
125
|
+
for (const dir of checkDirs) {
|
|
126
|
+
try {
|
|
127
|
+
const files = readdirSync(dir).filter((f) => f.endsWith('.md') ||
|
|
128
|
+
f === 'tools' ||
|
|
129
|
+
f === 'providers' ||
|
|
130
|
+
f === 'env');
|
|
131
|
+
console.log(`[PROMPT_LOADER] Files in ${dir}:`, files);
|
|
132
|
+
}
|
|
133
|
+
catch (e) {
|
|
134
|
+
console.log(`[PROMPT_LOADER] Could not list ${dir}: ${e instanceof Error ? e.message : String(e)}`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
for (const base of searchPaths) {
|
|
139
|
+
// Try direct path
|
|
140
|
+
const directTry = join(base, filename);
|
|
141
|
+
if (existsSync(directTry)) {
|
|
142
|
+
if (debugLog)
|
|
143
|
+
console.log(`[PROMPT_LOADER] Found at: ${directTry}`);
|
|
144
|
+
return readFileSync(directTry, 'utf-8');
|
|
145
|
+
}
|
|
146
|
+
// Try with bundle subdirectory
|
|
147
|
+
const bundleTry = join(base, 'bundle', filename);
|
|
148
|
+
if (existsSync(bundleTry)) {
|
|
149
|
+
if (debugLog)
|
|
150
|
+
console.log(`[PROMPT_LOADER] Found at: ${bundleTry}`);
|
|
151
|
+
return readFileSync(bundleTry, 'utf-8');
|
|
152
|
+
}
|
|
153
|
+
// Try if base itself is named bundle
|
|
154
|
+
if (basename(base) === 'bundle') {
|
|
155
|
+
const inBundleTry = join(base, filename);
|
|
156
|
+
if (existsSync(inBundleTry)) {
|
|
157
|
+
if (debugLog)
|
|
158
|
+
console.log(`[PROMPT_LOADER] Found at: ${inBundleTry}`);
|
|
159
|
+
return readFileSync(inBundleTry, 'utf-8');
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
throw new Error(`File not found in any expected location. Searched: ${searchPaths.join(', ')}`);
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
167
|
+
console.warn(`Warning: Could not load ${filename}, using empty content. Error: ${errorMsg}`);
|
|
168
|
+
if (debugLog) {
|
|
169
|
+
console.warn(`[PROMPT_LOADER] Full error:`, error);
|
|
170
|
+
console.warn(`[PROMPT_LOADER] Stack trace:`, error instanceof Error ? error.stack : 'No stack trace');
|
|
171
|
+
}
|
|
172
|
+
return '';
|
|
173
|
+
}
|
|
174
|
+
}
|
|
5
175
|
export const PROVIDER_DEFAULTS = {
|
|
6
|
-
'providers/gemini/models/gemini-
|
|
7
|
-
- When asked to list files or directories, use the 'Ls' tool
|
|
8
|
-
- When asked to read file contents, use the 'ReadFile' tool
|
|
9
|
-
- When asked to search for patterns in files, use the 'Grep' tool
|
|
10
|
-
- When asked to find files by name, use the 'Glob' tool
|
|
11
|
-
- When asked to create files, use the 'WriteFile' tool
|
|
12
|
-
- When asked to modify files, use the 'Edit' tool
|
|
13
|
-
- When asked to run commands, use the 'Shell' tool
|
|
14
|
-
Do not describe what you would do - actually execute the tool calls.`,
|
|
15
|
-
'providers/gemini/models/gemini-2-5-flash/core.md': `IMPORTANT: You MUST use the provided tools when appropriate. For example:
|
|
16
|
-
- When asked to list files or directories, use the 'Ls' tool
|
|
17
|
-
- When asked to read file contents, use the 'ReadFile' tool
|
|
18
|
-
- When asked to search for patterns in files, use the 'Grep' tool
|
|
19
|
-
- When asked to find files by name, use the 'Glob' tool
|
|
20
|
-
- When asked to create files, use the 'WriteFile' tool
|
|
21
|
-
- When asked to modify files, use the 'Edit' tool
|
|
22
|
-
- When asked to run commands, use the 'Shell' tool
|
|
23
|
-
Do not describe what you would do - actually execute the tool calls.`,
|
|
176
|
+
'providers/gemini/models/gemini-2.5-flash/core.md': loadMarkdownFile('providers/gemini/models/gemini-2.5-flash/core.md'),
|
|
24
177
|
// Future provider-specific defaults can be added here
|
|
25
178
|
};
|
|
26
179
|
//# sourceMappingURL=provider-defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-defaults.js","sourceRoot":"","sources":["../../../../src/prompt-config/defaults/provider-defaults.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,kDAAkD,EAAE
|
|
1
|
+
{"version":3,"file":"provider-defaults.js","sourceRoot":"","sources":["../../../../src/prompt-config/defaults/provider-defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
You are an interactive CLI agent specializing in software engineering tasks. Your primary goal is to help users efficiently and safely, utilizing the available tools.
|
|
2
|
+
|
|
3
|
+
# Core Principles
|
|
4
|
+
|
|
5
|
+
**Project Conventions First**: Always analyze existing code patterns, styles, and conventions before making changes. Match the project's established practices exactly.
|
|
6
|
+
|
|
7
|
+
**Verify Before Assuming**: Never assume libraries, frameworks, or dependencies exist. Check package.json, requirements.txt, or other configuration files first.
|
|
8
|
+
|
|
9
|
+
**Concise Communication**: Respond with actions, not explanations. Keep text output minimal (1-3 lines) unless clarity demands more.
|
|
10
|
+
|
|
11
|
+
# Critical Tool Parameters
|
|
12
|
+
|
|
13
|
+
**IMPORTANT - Parameter Names in llxprt**:
|
|
14
|
+
|
|
15
|
+
- `read_file` uses parameter: `absolute_path`
|
|
16
|
+
- `write_file` uses parameter: `file_path`
|
|
17
|
+
- `list_directory` uses parameter: `path`
|
|
18
|
+
- `replace` uses parameters: `old_string`, `new_string`, `expected_replacements` (optional)
|
|
19
|
+
- `todo_write` uses: `todos` array with fields: `id`, `content`, `status`, `priority`
|
|
20
|
+
- All file paths must be absolute (starting with /)
|
|
21
|
+
|
|
22
|
+
# Primary Workflows
|
|
23
|
+
|
|
24
|
+
## Code Tasks
|
|
25
|
+
|
|
26
|
+
1. **Understand**: Use grep and glob to explore the codebase structure
|
|
27
|
+
2. **Implement**: Make changes that match existing patterns
|
|
28
|
+
3. **Verify**: Run tests and linting if available
|
|
29
|
+
|
|
30
|
+
## New Applications
|
|
31
|
+
|
|
32
|
+
Default technology choices when unspecified:
|
|
33
|
+
|
|
34
|
+
- Web frontend: React with TypeScript
|
|
35
|
+
- Backend API: Node.js/Express or Python/FastAPI
|
|
36
|
+
- CLI tools: Python or Go
|
|
37
|
+
- Mobile: Flutter or React Native
|
|
38
|
+
|
|
39
|
+
# Tool Usage Patterns
|
|
40
|
+
|
|
41
|
+
**Parallel Operations**: Execute independent searches (grep, glob) simultaneously when exploring.
|
|
42
|
+
|
|
43
|
+
**File Operations**: Always construct absolute paths by combining the project root with relative paths.
|
|
44
|
+
|
|
45
|
+
**Shell Commands**:
|
|
46
|
+
|
|
47
|
+
- Explain destructive operations before executing
|
|
48
|
+
- Use `&` for long-running processes
|
|
49
|
+
- Prefer non-interactive command variants
|
|
50
|
+
|
|
51
|
+
**Task Management**: Use todo tools for tasks with 3+ steps or multiple components. Update status in real-time.
|
|
52
|
+
|
|
53
|
+
# Examples
|
|
54
|
+
|
|
55
|
+
<example>
|
|
56
|
+
user: find all typescript files
|
|
57
|
+
assistant: <use glob with pattern "**/*.ts">
|
|
58
|
+
</example>
|
|
59
|
+
|
|
60
|
+
<example>
|
|
61
|
+
user: read the config file
|
|
62
|
+
assistant: I'll read the configuration file.
|
|
63
|
+
<use read_file with absolute_path "/path/to/project/config.json">
|
|
64
|
+
</example>
|
|
65
|
+
|
|
66
|
+
<example>
|
|
67
|
+
user: update the database connection string
|
|
68
|
+
assistant: I'll search for the database configuration first.
|
|
69
|
+
<use grep with pattern "database|connection|db_url">
|
|
70
|
+
[After finding the file]
|
|
71
|
+
<use read_file to examine the current configuration>
|
|
72
|
+
<use replace to update the connection string>
|
|
73
|
+
</example>
|
|
74
|
+
|
|
75
|
+
# Response Guidelines
|
|
76
|
+
|
|
77
|
+
- Take action immediately without announcing intentions
|
|
78
|
+
- Chain related operations efficiently
|
|
79
|
+
- Validate changes match project standards
|
|
80
|
+
- Complete the entire request before stopping
|
|
81
|
+
- When blocked, state the specific issue concisely
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# glob Tool
|
|
2
|
+
|
|
3
|
+
**Parameter**: Use `pattern` for the glob pattern (required)
|
|
4
|
+
|
|
5
|
+
Find files matching glob patterns. Returns absolute paths sorted by modification time (newest first).
|
|
6
|
+
|
|
7
|
+
## Pattern Examples
|
|
8
|
+
|
|
9
|
+
- `**/*.js` - All JavaScript files recursively
|
|
10
|
+
- `src/**/*.ts` - All TypeScript files under src/
|
|
11
|
+
- `*.md` - Markdown files in current directory only
|
|
12
|
+
- `**/*.{ts,tsx}` - TypeScript and TSX files
|
|
13
|
+
- `**/test*.js` - Files starting with "test"
|
|
14
|
+
- `!**/node_modules/**` - Exclude node_modules (use in ignore parameter)
|
|
15
|
+
|
|
16
|
+
## Common Uses
|
|
17
|
+
|
|
18
|
+
Find all test files:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
pattern: "**/*.test.{js,ts}"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Find configuration files:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
pattern: "**/config*.{json,js,yaml}"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Find all source files:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
pattern: "src/**/*.{js,jsx,ts,tsx}"
|
|
34
|
+
```
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# list_directory Tool
|
|
2
|
+
|
|
3
|
+
**Parameter**: Use `path` for the directory path (required)
|
|
4
|
+
|
|
5
|
+
The path must be absolute, starting with /.
|
|
6
|
+
|
|
7
|
+
Optional parameter:
|
|
8
|
+
|
|
9
|
+
- `ignore`: Array of glob patterns to exclude from listing
|
|
10
|
+
|
|
11
|
+
Lists all files and subdirectories in the specified directory.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# read_file Tool
|
|
2
|
+
|
|
3
|
+
**Parameter**: Use `absolute_path` for the file path (required)
|
|
4
|
+
|
|
5
|
+
The path must be absolute, starting with /. For example:
|
|
6
|
+
|
|
7
|
+
- Correct: `/Users/name/project/src/index.js`
|
|
8
|
+
- Wrong: `src/index.js` or `./src/index.js`
|
|
9
|
+
|
|
10
|
+
When reading files:
|
|
11
|
+
|
|
12
|
+
- Large files will be automatically truncated
|
|
13
|
+
- Use `offset` and `limit` parameters to paginate through large files
|
|
14
|
+
- The tool handles text, images, and PDFs
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# read_many_files Tool
|
|
2
|
+
|
|
3
|
+
**Parameter**: Use `paths` - array of file paths or glob patterns (required)
|
|
4
|
+
|
|
5
|
+
Reads multiple files at once. Useful for:
|
|
6
|
+
|
|
7
|
+
- Getting overview of codebase sections
|
|
8
|
+
- Reading all files of a certain type
|
|
9
|
+
- Comparing related files
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
With specific files:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
paths: ["/path/to/file1.js", "/path/to/file2.js"]
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
With glob patterns:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
paths: ["src/**/*.ts", "tests/**/*.test.js"]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Limits
|
|
26
|
+
|
|
27
|
+
- Maximum 50 files by default
|
|
28
|
+
- Files over 512KB are truncated
|
|
29
|
+
- Total output limited to 50,000 tokens
|
|
30
|
+
|
|
31
|
+
If limits exceeded, the tool will suggest more specific patterns.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# replace Tool (Edit)
|
|
2
|
+
|
|
3
|
+
**Parameters**:
|
|
4
|
+
|
|
5
|
+
- `file_path`: Absolute path to the file (required)
|
|
6
|
+
- `old_string`: Exact text to find and replace (required)
|
|
7
|
+
- `new_string`: Replacement text (required)
|
|
8
|
+
- `expected_replacements`: Number of occurrences to replace (optional)
|
|
9
|
+
|
|
10
|
+
## Critical Requirements
|
|
11
|
+
|
|
12
|
+
**old_string** must be EXACT, including:
|
|
13
|
+
|
|
14
|
+
- All whitespace and indentation
|
|
15
|
+
- Line breaks exactly as they appear
|
|
16
|
+
- At least 3 lines of context before and after the target
|
|
17
|
+
|
|
18
|
+
**Context is Essential**: Include enough surrounding code to uniquely identify the location. The tool will fail if old_string matches multiple locations unexpectedly.
|
|
19
|
+
|
|
20
|
+
## Example Usage
|
|
21
|
+
|
|
22
|
+
Wrong (too little context):
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
old_string: "user_id = None"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Right (with context):
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
old_string: " def __init__(self):\n self.user_id = None\n self.session_token = None"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Common Patterns
|
|
35
|
+
|
|
36
|
+
For multiple replacements in one file:
|
|
37
|
+
|
|
38
|
+
1. Set `expected_replacements` to the count you expect
|
|
39
|
+
2. Or make multiple separate replace calls for different sections
|
|
40
|
+
|
|
41
|
+
The tool preserves file formatting and encoding automatically.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# run_shell_command Tool
|
|
2
|
+
|
|
3
|
+
**Parameters**:
|
|
4
|
+
|
|
5
|
+
- `command`: The shell command to execute (required)
|
|
6
|
+
- `description`: Brief explanation of what the command does (optional but recommended)
|
|
7
|
+
|
|
8
|
+
## Usage Guidelines
|
|
9
|
+
|
|
10
|
+
**Before destructive operations**: Briefly explain what the command will do (delete files, modify system state, etc.)
|
|
11
|
+
|
|
12
|
+
**Background processes**: Add `&` for long-running processes:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
command: "npm start &"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**Non-interactive**: Use non-interactive flags when available:
|
|
19
|
+
|
|
20
|
+
- `npm init -y` instead of `npm init`
|
|
21
|
+
- `apt-get install -y` instead of `apt-get install`
|
|
22
|
+
|
|
23
|
+
## Output Handling
|
|
24
|
+
|
|
25
|
+
The tool returns:
|
|
26
|
+
|
|
27
|
+
- Stdout: Command output
|
|
28
|
+
- Stderr: Error output
|
|
29
|
+
- Exit Code: Process exit code
|
|
30
|
+
- Signal: If terminated by signal
|
|
31
|
+
|
|
32
|
+
Check exit codes to verify success before proceeding with dependent operations.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# save_memory Tool
|
|
2
|
+
|
|
3
|
+
**Parameter**: Use `fact` - a clear, concise statement to remember (required)
|
|
4
|
+
|
|
5
|
+
Saves user-specific information for future sessions.
|
|
6
|
+
|
|
7
|
+
## When to Use
|
|
8
|
+
|
|
9
|
+
Save facts when:
|
|
10
|
+
|
|
11
|
+
- User explicitly asks you to remember something
|
|
12
|
+
- User shares preferences that would help in future interactions
|
|
13
|
+
- User mentions frequently used paths, aliases, or conventions
|
|
14
|
+
|
|
15
|
+
## What to Save
|
|
16
|
+
|
|
17
|
+
Good examples:
|
|
18
|
+
|
|
19
|
+
- "User prefers tabs over spaces for indentation"
|
|
20
|
+
- "User's main project is located at /home/user/my-project"
|
|
21
|
+
- "User likes descriptive variable names over abbreviations"
|
|
22
|
+
|
|
23
|
+
Don't save:
|
|
24
|
+
|
|
25
|
+
- Current session context
|
|
26
|
+
- Project-specific information (unless it's their main project)
|
|
27
|
+
- Temporary information
|
|
28
|
+
|
|
29
|
+
## Format
|
|
30
|
+
|
|
31
|
+
Keep facts concise and self-contained:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
fact: "User prefers Python type hints in all new code"
|
|
35
|
+
```
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# search_file_content Tool (Grep)
|
|
2
|
+
|
|
3
|
+
**Parameters**:
|
|
4
|
+
|
|
5
|
+
- `pattern`: Regular expression pattern to search for (required)
|
|
6
|
+
- `path`: Directory or file to search in (optional, defaults to current directory)
|
|
7
|
+
- `glob`: File pattern filter like "_.js" or "_.{ts,tsx}" (optional)
|
|
8
|
+
|
|
9
|
+
## Important: Uses Regular Expressions
|
|
10
|
+
|
|
11
|
+
The pattern is interpreted as a regular expression, not literal text:
|
|
12
|
+
|
|
13
|
+
- Use `\\.` to match literal dots
|
|
14
|
+
- Use `\\(` and `\\)` for literal parentheses
|
|
15
|
+
- Use `\\*` for literal asterisks
|
|
16
|
+
- Use `|` for alternatives: `"error|warning|failed"`
|
|
17
|
+
|
|
18
|
+
## Examples
|
|
19
|
+
|
|
20
|
+
Search for function definitions:
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
pattern: "^function |^const .* = .*function|^export function"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Search for specific imports:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
pattern: "import.*from ['\"]\\.\\./utils"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Find TODO comments:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
pattern: "//.*TODO|/\\*.*TODO"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Output
|
|
39
|
+
|
|
40
|
+
Returns matching lines with:
|
|
41
|
+
|
|
42
|
+
- File path
|
|
43
|
+
- Line number
|
|
44
|
+
- Matched content
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# todo_write Tool
|
|
2
|
+
|
|
3
|
+
**Parameter**: Use `todos` - an array of todo objects
|
|
4
|
+
|
|
5
|
+
Each todo object requires:
|
|
6
|
+
|
|
7
|
+
- `id`: String identifier (e.g., "1", "2", "task-1")
|
|
8
|
+
- `content`: String description of the task
|
|
9
|
+
- `status`: One of "pending", "in_progress", "completed"
|
|
10
|
+
- `priority`: One of "high", "medium", "low"
|
|
11
|
+
|
|
12
|
+
Example structure:
|
|
13
|
+
|
|
14
|
+
```json
|
|
15
|
+
{
|
|
16
|
+
"todos": [
|
|
17
|
+
{
|
|
18
|
+
"id": "1",
|
|
19
|
+
"content": "Implement user authentication",
|
|
20
|
+
"status": "pending",
|
|
21
|
+
"priority": "high"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Usage Guidelines
|
|
28
|
+
|
|
29
|
+
Use todos when:
|
|
30
|
+
|
|
31
|
+
- Task has 3+ distinct steps
|
|
32
|
+
- Managing multiple related changes
|
|
33
|
+
- User provides a list of items to complete
|
|
34
|
+
|
|
35
|
+
Update status as you work:
|
|
36
|
+
|
|
37
|
+
- Mark "in_progress" before starting
|
|
38
|
+
- Mark "completed" immediately when done
|
|
39
|
+
- Only one task "in_progress" at a time
|
|
40
|
+
|
|
41
|
+
Skip todos for:
|
|
42
|
+
|
|
43
|
+
- Single, simple operations
|
|
44
|
+
- Purely informational responses
|
|
45
|
+
- Tasks that complete in one tool call
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# write_file Tool
|
|
2
|
+
|
|
3
|
+
**Parameter**: Use `file_path` for the file path (required)
|
|
4
|
+
**Parameter**: Use `content` for the file content (required)
|
|
5
|
+
|
|
6
|
+
The path must be absolute, starting with /. For example:
|
|
7
|
+
|
|
8
|
+
- Correct: `/Users/name/project/src/new-file.js`
|
|
9
|
+
- Wrong: `src/new-file.js` or `./src/new-file.js`
|
|
10
|
+
|
|
11
|
+
This tool creates new files or completely replaces existing file content.
|