@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.
Files changed (184) hide show
  1. package/README.md +9 -0
  2. package/dist/index.js +1 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/auth/anthropic-device-flow.d.ts +1 -1
  5. package/dist/src/auth/anthropic-device-flow.js +4 -2
  6. package/dist/src/auth/anthropic-device-flow.js.map +1 -1
  7. package/dist/src/code_assist/converter.d.ts +2 -2
  8. package/dist/src/code_assist/converter.js +1 -1
  9. package/dist/src/code_assist/converter.js.map +1 -1
  10. package/dist/src/code_assist/setup.js +49 -15
  11. package/dist/src/code_assist/setup.js.map +1 -1
  12. package/dist/src/config/config.d.ts +9 -6
  13. package/dist/src/config/config.js +28 -22
  14. package/dist/src/config/config.js.map +1 -1
  15. package/dist/src/core/client.d.ts +8 -3
  16. package/dist/src/core/client.js +177 -38
  17. package/dist/src/core/client.js.map +1 -1
  18. package/dist/src/core/contentGenerator.js +0 -2
  19. package/dist/src/core/contentGenerator.js.map +1 -1
  20. package/dist/src/core/coreToolScheduler.d.ts +0 -1
  21. package/dist/src/core/coreToolScheduler.js +0 -3
  22. package/dist/src/core/coreToolScheduler.js.map +1 -1
  23. package/dist/src/core/geminiChat.js +57 -5
  24. package/dist/src/core/geminiChat.js.map +1 -1
  25. package/dist/src/core/loggingContentGenerator.d.ts +5 -0
  26. package/dist/src/core/loggingContentGenerator.js +9 -1
  27. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  28. package/dist/src/core/nonInteractiveToolExecutor.js +158 -3
  29. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  30. package/dist/src/core/prompts.js +19 -2
  31. package/dist/src/core/prompts.js.map +1 -1
  32. package/dist/src/filters/EmojiFilter.d.ts +122 -0
  33. package/dist/src/filters/EmojiFilter.js +327 -0
  34. package/dist/src/filters/EmojiFilter.js.map +1 -0
  35. package/dist/src/ide/detect-ide.d.ts +12 -2
  36. package/dist/src/ide/detect-ide.js +64 -5
  37. package/dist/src/ide/detect-ide.js.map +1 -1
  38. package/dist/src/ide/ide-client.js +22 -15
  39. package/dist/src/ide/ide-client.js.map +1 -1
  40. package/dist/src/ide/ide-installer.js +1 -26
  41. package/dist/src/ide/ide-installer.js.map +1 -1
  42. package/dist/src/ide/ideContext.d.ts +6 -6
  43. package/dist/src/index.d.ts +4 -1
  44. package/dist/src/index.js +4 -1
  45. package/dist/src/index.js.map +1 -1
  46. package/dist/src/mcp/oauth-provider.d.ts +0 -1
  47. package/dist/src/mcp/oauth-provider.js +2 -3
  48. package/dist/src/mcp/oauth-provider.js.map +1 -1
  49. package/dist/src/prompt-config/defaults/core-defaults.d.ts +1 -1
  50. package/dist/src/prompt-config/defaults/core-defaults.js +205 -326
  51. package/dist/src/prompt-config/defaults/core-defaults.js.map +1 -1
  52. package/dist/src/prompt-config/defaults/core.md +1 -1
  53. package/dist/src/prompt-config/defaults/provider-defaults.d.ts +1 -1
  54. package/dist/src/prompt-config/defaults/provider-defaults.js +172 -19
  55. package/dist/src/prompt-config/defaults/provider-defaults.js.map +1 -1
  56. package/dist/src/prompt-config/defaults/providers/anthropic/core.md +81 -0
  57. package/dist/src/prompt-config/defaults/providers/anthropic/tools/glob.md +34 -0
  58. package/dist/src/prompt-config/defaults/providers/anthropic/tools/list-directory.md +11 -0
  59. package/dist/src/prompt-config/defaults/providers/anthropic/tools/read-file.md +14 -0
  60. package/dist/src/prompt-config/defaults/providers/anthropic/tools/read-many-files.md +31 -0
  61. package/dist/src/prompt-config/defaults/providers/anthropic/tools/replace.md +41 -0
  62. package/dist/src/prompt-config/defaults/providers/anthropic/tools/run-shell-command.md +32 -0
  63. package/dist/src/prompt-config/defaults/providers/anthropic/tools/save-memory.md +35 -0
  64. package/dist/src/prompt-config/defaults/providers/anthropic/tools/search-file-content.md +44 -0
  65. package/dist/src/prompt-config/defaults/providers/anthropic/tools/todo-write.md +45 -0
  66. package/dist/src/prompt-config/defaults/providers/anthropic/tools/write-file.md +11 -0
  67. package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/core.md +273 -10
  68. package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/gemini-2-5-flash/core.md +278 -0
  69. package/dist/src/prompt-config/defaults/tool-defaults.d.ts +1 -1
  70. package/dist/src/prompt-config/defaults/tool-defaults.js +184 -75
  71. package/dist/src/prompt-config/defaults/tool-defaults.js.map +1 -1
  72. package/dist/src/prompt-config/defaults/tools/read-file.md +1 -1
  73. package/dist/src/prompt-config/prompt-service.d.ts +1 -1
  74. package/dist/src/prompt-config/prompt-service.js +5 -3
  75. package/dist/src/prompt-config/prompt-service.js.map +1 -1
  76. package/dist/src/providers/BaseProvider.js +1 -1
  77. package/dist/src/providers/BaseProvider.js.map +1 -1
  78. package/dist/src/providers/LoggingProviderWrapper.js +0 -12
  79. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
  80. package/dist/src/providers/ProviderContentGenerator.d.ts +2 -2
  81. package/dist/src/providers/ProviderContentGenerator.js +5 -3
  82. package/dist/src/providers/ProviderContentGenerator.js.map +1 -1
  83. package/dist/src/providers/adapters/GeminiCompatibleWrapper.js +1 -1
  84. package/dist/src/providers/adapters/GeminiCompatibleWrapper.js.map +1 -1
  85. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +1 -1
  86. package/dist/src/providers/anthropic/AnthropicProvider.js +97 -35
  87. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  88. package/dist/src/providers/gemini/GeminiProvider.d.ts +4 -5
  89. package/dist/src/providers/gemini/GeminiProvider.js +21 -26
  90. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  91. package/dist/src/providers/openai/OpenAIProvider.js +2 -1
  92. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  93. package/dist/src/providers/openai/parseResponsesStream.js +6 -6
  94. package/dist/src/providers/openai/parseResponsesStream.js.map +1 -1
  95. package/dist/src/services/loopDetectionService.js +4 -5
  96. package/dist/src/services/loopDetectionService.js.map +1 -1
  97. package/dist/src/services/todo-context-tracker.d.ts +1 -1
  98. package/dist/src/services/todo-context-tracker.js +5 -3
  99. package/dist/src/services/todo-context-tracker.js.map +1 -1
  100. package/dist/src/settings/SettingsService.js.map +1 -1
  101. package/dist/src/settings/types.d.ts +16 -0
  102. package/dist/src/telemetry/integration.test.circular.js +2 -40
  103. package/dist/src/telemetry/integration.test.circular.js.map +1 -1
  104. package/dist/src/telemetry/loggers.js +0 -20
  105. package/dist/src/telemetry/loggers.js.map +1 -1
  106. package/dist/src/telemetry/sdk.d.ts +1 -1
  107. package/dist/src/telemetry/sdk.js +13 -29
  108. package/dist/src/telemetry/sdk.js.map +1 -1
  109. package/dist/src/test-utils/tools.js +2 -2
  110. package/dist/src/test-utils/tools.js.map +1 -1
  111. package/dist/src/tools/edit.js +91 -27
  112. package/dist/src/tools/edit.js.map +1 -1
  113. package/dist/src/tools/glob.js +9 -10
  114. package/dist/src/tools/glob.js.map +1 -1
  115. package/dist/src/tools/grep.js +8 -9
  116. package/dist/src/tools/grep.js.map +1 -1
  117. package/dist/src/tools/ls.d.ts +3 -22
  118. package/dist/src/tools/ls.js +84 -114
  119. package/dist/src/tools/ls.js.map +1 -1
  120. package/dist/src/tools/mcp-client.js +2 -2
  121. package/dist/src/tools/mcp-client.js.map +1 -1
  122. package/dist/src/tools/mcp-tool.d.ts +6 -13
  123. package/dist/src/tools/mcp-tool.js +41 -31
  124. package/dist/src/tools/mcp-tool.js.map +1 -1
  125. package/dist/src/tools/memoryTool.d.ts +9 -13
  126. package/dist/src/tools/memoryTool.js +127 -121
  127. package/dist/src/tools/memoryTool.js.map +1 -1
  128. package/dist/src/tools/read-file.js +7 -8
  129. package/dist/src/tools/read-file.js.map +1 -1
  130. package/dist/src/tools/read-many-files.d.ts +4 -6
  131. package/dist/src/tools/read-many-files.js +118 -111
  132. package/dist/src/tools/read-many-files.js.map +1 -1
  133. package/dist/src/tools/shell.d.ts +7 -14
  134. package/dist/src/tools/shell.js +120 -117
  135. package/dist/src/tools/shell.js.map +1 -1
  136. package/dist/src/tools/todo-pause.js +2 -2
  137. package/dist/src/tools/todo-pause.js.map +1 -1
  138. package/dist/src/tools/todo-read.js +8 -8
  139. package/dist/src/tools/todo-read.js.map +1 -1
  140. package/dist/src/tools/todo-write.js +2 -2
  141. package/dist/src/tools/todo-write.js.map +1 -1
  142. package/dist/src/tools/tool-registry.d.ts +6 -15
  143. package/dist/src/tools/tool-registry.js +17 -74
  144. package/dist/src/tools/tool-registry.js.map +1 -1
  145. package/dist/src/tools/tools.d.ts +20 -19
  146. package/dist/src/tools/tools.js +21 -20
  147. package/dist/src/tools/tools.js.map +1 -1
  148. package/dist/src/tools/web-fetch.d.ts +4 -7
  149. package/dist/src/tools/web-fetch.js +81 -83
  150. package/dist/src/tools/web-fetch.js.map +1 -1
  151. package/dist/src/tools/web-search.js +26 -9
  152. package/dist/src/tools/web-search.js.map +1 -1
  153. package/dist/src/tools/write-file.d.ts +2 -1
  154. package/dist/src/tools/write-file.js +89 -29
  155. package/dist/src/tools/write-file.js.map +1 -1
  156. package/dist/src/utils/editCorrector.js +8 -9
  157. package/dist/src/utils/editCorrector.js.map +1 -1
  158. package/dist/src/utils/errorParsing.d.ts +8 -0
  159. package/dist/src/utils/errorParsing.js +109 -0
  160. package/dist/src/utils/errorParsing.js.map +1 -0
  161. package/dist/src/utils/filesearch/fileSearch.js +1 -1
  162. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  163. package/dist/src/utils/filesearch/result-cache.d.ts +1 -2
  164. package/dist/src/utils/filesearch/result-cache.js +1 -3
  165. package/dist/src/utils/filesearch/result-cache.js.map +1 -1
  166. package/dist/src/utils/memoryImportProcessor.js +1 -1
  167. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  168. package/dist/src/utils/nextSpeakerChecker.js +3 -4
  169. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  170. package/dist/src/utils/quotaErrorDetection.d.ts +1 -5
  171. package/dist/src/utils/quotaErrorDetection.js.map +1 -1
  172. package/dist/src/utils/schemaValidator.d.ts +1 -9
  173. package/dist/src/utils/schemaValidator.js +1 -109
  174. package/dist/src/utils/schemaValidator.js.map +1 -1
  175. package/package.json +2 -2
  176. package/dist/src/core/modelCheck.d.ts +0 -14
  177. package/dist/src/core/modelCheck.js +0 -62
  178. package/dist/src/core/modelCheck.js.map +0 -1
  179. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +0 -48
  180. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +0 -577
  181. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +0 -1
  182. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +0 -58
  183. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +0 -157
  184. 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 contain the default content for provider/model overrides
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-1-5-flash/core.md': `IMPORTANT: You MUST use the provided tools when appropriate. For example:
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;;;;;;;;qEAQe;IACnE,kDAAkD,EAAE;;;;;;;;qEAQe;IACnE,sDAAsD;CACvD,CAAC"}
1
+ {"version":3,"file":"provider-defaults.js","sourceRoot":"","sources":["../../../../src/prompt-config/defaults/provider-defaults.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,4DAA4D;AAC5D,MAAM,SAAS,GACX,UAAsC,CAAC,SAAoB;IAC7D,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1C,SAAS,gBAAgB,CAAC,QAAgB;IACxC,iFAAiF;IACjF,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ;YACN,OAAO,OAAO,KAAK,WAAW;gBAC9B,OAAO,CAAC,GAAG;gBACX,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,wCAAwC,QAAQ,aAAa,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CACT,kCAAkC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAC3F,CAAC;QACF,OAAO,CAAC,GAAG,CACT,oCAAoC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CACjG,CAAC;QACF,OAAO,CAAC,GAAG,CACT,oCAAoC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CACjG,CAAC;QACF,OAAO,CAAC,GAAG,CACT,qCAAqC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CACjG,CAAC;QACF,OAAO,CAAC,GAAG,CACT,6BAA6B,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAC9F,CAAC;QACF,OAAO,CAAC,GAAG,CACT,uBAAuB,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAClF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,qDAAqD;QACrD,oEAAoE;QACpE,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CACT,yCAAyC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAChE,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC9C,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CACT,uDAAuD,UAAU,EAAE,CACpE,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,sCAAsC,UAAU,CAAC,UAAU,CAAC,EAAE,CAC/D,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,IAAI,QAAQ;oBAAE,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;gBACjE,OAAO,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,wCAAwC,UAAU,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CACT,sCAAsC,UAAU,CAAC,UAAU,CAAC,EAAE,CAC/D,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACjE,OAAO,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,6DAA6D;QAC7D,uEAAuE;QACvE,IAAI,SAAS,GAAG,UAAU,CAAC;QAC3B,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,yBAAyB;QAEjD,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC9B,sDAAsD;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC7C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,OAAO,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;YAED,wBAAwB;YACxB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,yBAAyB;gBACzB,MAAM;YACR,CAAC;YACD,SAAS,GAAG,SAAS,CAAC;YACtB,QAAQ,EAAE,CAAC;QACb,CAAC;QAED,uFAAuF;QACvF,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC9C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,OAAO,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,+EAA+E;QAC/E,qEAAqE;QACrE,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC7C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,OAAO,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,uEAAuE;QACvE,MAAM,WAAW,GAAG;YAClB,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;YACnD,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;YACpE,OAAO,OAAO,KAAK,WAAW;gBAC5B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzC,CAAC,CAAC,EAAE;YACN,OAAO,OAAO,KAAK,WAAW;gBAC5B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAClD,CAAC,CAAC,EAAE;YACN,SAAS;YACT,OAAO,CAAC,SAAS,CAAC;YAClB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC5B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAE/B,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,WAAW,CAAC,CAAC;YAEhE,kDAAkD;YAClD,MAAM,SAAS,GAAG;gBAChB,SAAS;gBACT,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;gBACnD,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;aACrE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;YAC9B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CACnC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;wBACjB,CAAC,KAAK,OAAO;wBACb,CAAC,KAAK,WAAW;wBACjB,CAAC,KAAK,KAAK,CACd,CAAC;oBACF,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;gBACzD,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,GAAG,CACT,kCAAkC,GAAG,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACvF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,kBAAkB;YAClB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,IAAI,QAAQ;oBAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;gBACpE,OAAO,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;YAED,+BAA+B;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACjD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,IAAI,QAAQ;oBAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;gBACpE,OAAO,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;YAED,qCAAqC;YACrC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACzC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC5B,IAAI,QAAQ;wBAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,WAAW,EAAE,CAAC,CAAC;oBACtE,OAAO,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CACb,sDAAsD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/E,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CACV,2BAA2B,QAAQ,iCAAiC,QAAQ,EAAE,CAC/E,CAAC;QACF,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CACV,8BAA8B,EAC9B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CACxD,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,kDAAkD,EAAE,gBAAgB,CAClE,kDAAkD,CACnD;IACD,sDAAsD;CACvD,CAAC"}
@@ -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.