gencode-ai 0.1.1 → 0.1.2

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 (263) hide show
  1. package/.gencode/settings.local.json +7 -0
  2. package/README.md +11 -11
  3. package/dist/agent/agent.d.ts +42 -1
  4. package/dist/agent/agent.d.ts.map +1 -1
  5. package/dist/agent/agent.js +82 -15
  6. package/dist/agent/agent.js.map +1 -1
  7. package/dist/cli/components/App.d.ts +8 -1
  8. package/dist/cli/components/App.d.ts.map +1 -1
  9. package/dist/cli/components/App.js +231 -29
  10. package/dist/cli/components/App.js.map +1 -1
  11. package/dist/cli/components/CommandSuggestions.d.ts.map +1 -1
  12. package/dist/cli/components/CommandSuggestions.js +2 -0
  13. package/dist/cli/components/CommandSuggestions.js.map +1 -1
  14. package/dist/cli/components/Header.d.ts +1 -1
  15. package/dist/cli/components/Header.d.ts.map +1 -1
  16. package/dist/cli/components/Header.js +4 -6
  17. package/dist/cli/components/Header.js.map +1 -1
  18. package/dist/cli/components/Logo.d.ts +1 -0
  19. package/dist/cli/components/Logo.d.ts.map +1 -1
  20. package/dist/cli/components/Logo.js +16 -3
  21. package/dist/cli/components/Logo.js.map +1 -1
  22. package/dist/cli/components/Messages.d.ts +4 -4
  23. package/dist/cli/components/Messages.d.ts.map +1 -1
  24. package/dist/cli/components/Messages.js +51 -25
  25. package/dist/cli/components/Messages.js.map +1 -1
  26. package/dist/cli/components/PermissionPrompt.d.ts +60 -0
  27. package/dist/cli/components/PermissionPrompt.d.ts.map +1 -0
  28. package/dist/cli/components/PermissionPrompt.js +192 -0
  29. package/dist/cli/components/PermissionPrompt.js.map +1 -0
  30. package/dist/cli/components/ProviderManager.js +3 -3
  31. package/dist/cli/components/ProviderManager.js.map +1 -1
  32. package/dist/cli/components/Spinner.d.ts +7 -2
  33. package/dist/cli/components/Spinner.d.ts.map +1 -1
  34. package/dist/cli/components/Spinner.js +116 -25
  35. package/dist/cli/components/Spinner.js.map +1 -1
  36. package/dist/cli/components/TodoList.d.ts +7 -0
  37. package/dist/cli/components/TodoList.d.ts.map +1 -0
  38. package/dist/cli/components/TodoList.js +34 -0
  39. package/dist/cli/components/TodoList.js.map +1 -0
  40. package/dist/cli/components/index.d.ts +1 -0
  41. package/dist/cli/components/index.d.ts.map +1 -1
  42. package/dist/cli/components/index.js +1 -0
  43. package/dist/cli/components/index.js.map +1 -1
  44. package/dist/cli/index.js +47 -7
  45. package/dist/cli/index.js.map +1 -1
  46. package/dist/config/index.d.ts +13 -4
  47. package/dist/config/index.d.ts.map +1 -1
  48. package/dist/config/index.js +18 -3
  49. package/dist/config/index.js.map +1 -1
  50. package/dist/config/levels.d.ts +49 -0
  51. package/dist/config/levels.d.ts.map +1 -0
  52. package/dist/config/levels.js +222 -0
  53. package/dist/config/levels.js.map +1 -0
  54. package/dist/config/loader.d.ts +46 -0
  55. package/dist/config/loader.d.ts.map +1 -0
  56. package/dist/config/loader.js +153 -0
  57. package/dist/config/loader.js.map +1 -0
  58. package/dist/config/manager.d.ts +115 -15
  59. package/dist/config/manager.d.ts.map +1 -1
  60. package/dist/config/manager.js +260 -34
  61. package/dist/config/manager.js.map +1 -1
  62. package/dist/config/manager.test.d.ts +5 -0
  63. package/dist/config/manager.test.d.ts.map +1 -0
  64. package/dist/config/manager.test.js +192 -0
  65. package/dist/config/manager.test.js.map +1 -0
  66. package/dist/config/merger.d.ts +56 -0
  67. package/dist/config/merger.d.ts.map +1 -0
  68. package/dist/config/merger.js +177 -0
  69. package/dist/config/merger.js.map +1 -0
  70. package/dist/config/test-utils.d.ts +24 -0
  71. package/dist/config/test-utils.d.ts.map +1 -0
  72. package/dist/config/test-utils.js +55 -0
  73. package/dist/config/test-utils.js.map +1 -0
  74. package/dist/config/types.d.ts +78 -9
  75. package/dist/config/types.d.ts.map +1 -1
  76. package/dist/config/types.js +52 -2
  77. package/dist/config/types.js.map +1 -1
  78. package/dist/memory/import-resolver.d.ts +46 -0
  79. package/dist/memory/import-resolver.d.ts.map +1 -0
  80. package/dist/memory/import-resolver.js +117 -0
  81. package/dist/memory/import-resolver.js.map +1 -0
  82. package/dist/memory/index.d.ts +7 -6
  83. package/dist/memory/index.d.ts.map +1 -1
  84. package/dist/memory/index.js +7 -5
  85. package/dist/memory/index.js.map +1 -1
  86. package/dist/memory/init-prompt.d.ts +22 -0
  87. package/dist/memory/init-prompt.d.ts.map +1 -0
  88. package/dist/memory/init-prompt.js +103 -0
  89. package/dist/memory/init-prompt.js.map +1 -0
  90. package/dist/memory/memory-manager.d.ts +119 -0
  91. package/dist/memory/memory-manager.d.ts.map +1 -0
  92. package/dist/memory/memory-manager.js +587 -0
  93. package/dist/memory/memory-manager.js.map +1 -0
  94. package/dist/memory/rules-parser.d.ts +38 -0
  95. package/dist/memory/rules-parser.d.ts.map +1 -0
  96. package/dist/memory/rules-parser.js +69 -0
  97. package/dist/memory/rules-parser.js.map +1 -0
  98. package/dist/memory/test-utils.d.ts +20 -0
  99. package/dist/memory/test-utils.d.ts.map +1 -0
  100. package/dist/memory/test-utils.js +44 -0
  101. package/dist/memory/test-utils.js.map +1 -0
  102. package/dist/memory/types.d.ts +70 -63
  103. package/dist/memory/types.d.ts.map +1 -1
  104. package/dist/memory/types.js +42 -2
  105. package/dist/memory/types.js.map +1 -1
  106. package/dist/permissions/audit.d.ts +82 -0
  107. package/dist/permissions/audit.d.ts.map +1 -0
  108. package/dist/permissions/audit.js +229 -0
  109. package/dist/permissions/audit.js.map +1 -0
  110. package/dist/permissions/index.d.ts +11 -1
  111. package/dist/permissions/index.d.ts.map +1 -1
  112. package/dist/permissions/index.js +15 -0
  113. package/dist/permissions/index.js.map +1 -1
  114. package/dist/permissions/manager.d.ts +149 -13
  115. package/dist/permissions/manager.d.ts.map +1 -1
  116. package/dist/permissions/manager.js +480 -35
  117. package/dist/permissions/manager.js.map +1 -1
  118. package/dist/permissions/manager.test.d.ts +5 -0
  119. package/dist/permissions/manager.test.d.ts.map +1 -0
  120. package/dist/permissions/manager.test.js +213 -0
  121. package/dist/permissions/manager.test.js.map +1 -0
  122. package/dist/permissions/persistence.d.ts +74 -0
  123. package/dist/permissions/persistence.d.ts.map +1 -0
  124. package/dist/permissions/persistence.js +248 -0
  125. package/dist/permissions/persistence.js.map +1 -0
  126. package/dist/permissions/persistence.test.d.ts +5 -0
  127. package/dist/permissions/persistence.test.d.ts.map +1 -0
  128. package/dist/permissions/persistence.test.js +171 -0
  129. package/dist/permissions/persistence.test.js.map +1 -0
  130. package/dist/permissions/prompt-matcher.d.ts +64 -0
  131. package/dist/permissions/prompt-matcher.d.ts.map +1 -0
  132. package/dist/permissions/prompt-matcher.js +415 -0
  133. package/dist/permissions/prompt-matcher.js.map +1 -0
  134. package/dist/permissions/prompt-matcher.test.d.ts +5 -0
  135. package/dist/permissions/prompt-matcher.test.d.ts.map +1 -0
  136. package/dist/permissions/prompt-matcher.test.js +107 -0
  137. package/dist/permissions/prompt-matcher.test.js.map +1 -0
  138. package/dist/permissions/types.d.ts +157 -0
  139. package/dist/permissions/types.d.ts.map +1 -1
  140. package/dist/permissions/types.js +43 -8
  141. package/dist/permissions/types.js.map +1 -1
  142. package/dist/prompts/index.d.ts +92 -0
  143. package/dist/prompts/index.d.ts.map +1 -0
  144. package/dist/prompts/index.js +241 -0
  145. package/dist/prompts/index.js.map +1 -0
  146. package/dist/tools/builtin/bash.d.ts.map +1 -1
  147. package/dist/tools/builtin/bash.js +2 -1
  148. package/dist/tools/builtin/bash.js.map +1 -1
  149. package/dist/tools/builtin/edit.d.ts.map +1 -1
  150. package/dist/tools/builtin/edit.js +2 -1
  151. package/dist/tools/builtin/edit.js.map +1 -1
  152. package/dist/tools/builtin/glob.d.ts.map +1 -1
  153. package/dist/tools/builtin/glob.js +2 -1
  154. package/dist/tools/builtin/glob.js.map +1 -1
  155. package/dist/tools/builtin/grep.d.ts.map +1 -1
  156. package/dist/tools/builtin/grep.js +2 -1
  157. package/dist/tools/builtin/grep.js.map +1 -1
  158. package/dist/tools/builtin/read.d.ts.map +1 -1
  159. package/dist/tools/builtin/read.js +2 -1
  160. package/dist/tools/builtin/read.js.map +1 -1
  161. package/dist/tools/builtin/todowrite.d.ts +15 -0
  162. package/dist/tools/builtin/todowrite.d.ts.map +1 -0
  163. package/dist/tools/builtin/todowrite.js +88 -0
  164. package/dist/tools/builtin/todowrite.js.map +1 -0
  165. package/dist/tools/builtin/webfetch.d.ts.map +1 -1
  166. package/dist/tools/builtin/webfetch.js +2 -5
  167. package/dist/tools/builtin/webfetch.js.map +1 -1
  168. package/dist/tools/builtin/websearch.d.ts.map +1 -1
  169. package/dist/tools/builtin/websearch.js +2 -16
  170. package/dist/tools/builtin/websearch.js.map +1 -1
  171. package/dist/tools/builtin/write.d.ts.map +1 -1
  172. package/dist/tools/builtin/write.js +2 -1
  173. package/dist/tools/builtin/write.js.map +1 -1
  174. package/dist/tools/index.d.ts +7 -0
  175. package/dist/tools/index.d.ts.map +1 -1
  176. package/dist/tools/index.js +4 -0
  177. package/dist/tools/index.js.map +1 -1
  178. package/dist/tools/types.d.ts +22 -0
  179. package/dist/tools/types.d.ts.map +1 -1
  180. package/dist/tools/types.js +8 -0
  181. package/dist/tools/types.js.map +1 -1
  182. package/docs/config-system-comparison.md +707 -0
  183. package/docs/memory-system.md +238 -0
  184. package/docs/permissions.md +368 -0
  185. package/docs/proposals/0005-todo-system.md +350 -85
  186. package/docs/proposals/0006-memory-system.md +11 -10
  187. package/docs/proposals/0012-ask-user-question.md +941 -206
  188. package/docs/proposals/0023-permission-enhancements.md +61 -2
  189. package/docs/proposals/0041-configuration-system.md +33 -2
  190. package/docs/proposals/0042-prompt-optimization.md +866 -0
  191. package/docs/proposals/README.md +6 -5
  192. package/jest.config.js +26 -0
  193. package/package.json +8 -2
  194. package/src/agent/agent.ts +111 -16
  195. package/src/cli/components/App.tsx +309 -36
  196. package/src/cli/components/CommandSuggestions.tsx +2 -0
  197. package/src/cli/components/Header.tsx +11 -17
  198. package/src/cli/components/Logo.tsx +76 -9
  199. package/src/cli/components/Messages.tsx +73 -53
  200. package/src/cli/components/PermissionPrompt.tsx +388 -0
  201. package/src/cli/components/ProviderManager.tsx +5 -5
  202. package/src/cli/components/Spinner.tsx +138 -25
  203. package/src/cli/components/TodoList.tsx +54 -0
  204. package/src/cli/components/index.ts +6 -0
  205. package/src/cli/index.tsx +54 -6
  206. package/src/config/index.ts +78 -4
  207. package/src/config/levels.test.ts +163 -0
  208. package/src/config/levels.ts +285 -0
  209. package/src/config/loader.test.ts +120 -0
  210. package/src/config/loader.ts +178 -0
  211. package/src/config/manager.test.ts +215 -0
  212. package/src/config/manager.ts +328 -40
  213. package/src/config/merger.test.ts +360 -0
  214. package/src/config/merger.ts +221 -0
  215. package/src/config/test-utils.ts +79 -0
  216. package/src/config/types.ts +152 -9
  217. package/src/memory/import-resolver.test.ts +117 -0
  218. package/src/memory/import-resolver.ts +149 -0
  219. package/src/memory/index.ts +11 -0
  220. package/src/memory/init-prompt.ts +113 -0
  221. package/src/memory/memory-manager.test.ts +198 -0
  222. package/src/memory/memory-manager.ts +716 -0
  223. package/src/memory/rules-parser.test.ts +182 -0
  224. package/src/memory/rules-parser.ts +82 -0
  225. package/src/memory/test-utils.ts +60 -0
  226. package/src/memory/types.ts +119 -0
  227. package/src/permissions/audit.ts +284 -0
  228. package/src/permissions/index.ts +20 -1
  229. package/src/permissions/manager.test.ts +260 -0
  230. package/src/permissions/manager.ts +592 -40
  231. package/src/permissions/persistence.test.ts +220 -0
  232. package/src/permissions/persistence.ts +301 -0
  233. package/src/permissions/prompt-matcher.test.ts +213 -0
  234. package/src/permissions/prompt-matcher.ts +472 -0
  235. package/src/permissions/types.ts +236 -8
  236. package/src/prompts/index.test.ts +279 -0
  237. package/src/prompts/index.ts +306 -0
  238. package/src/prompts/system/anthropic.txt +29 -0
  239. package/src/prompts/system/base.txt +124 -0
  240. package/src/prompts/system/gemini.txt +35 -0
  241. package/src/prompts/system/generic.txt +128 -0
  242. package/src/prompts/system/openai.txt +29 -0
  243. package/src/prompts/tools/bash.txt +60 -0
  244. package/src/prompts/tools/edit.txt +29 -0
  245. package/src/prompts/tools/glob.txt +35 -0
  246. package/src/prompts/tools/grep.txt +43 -0
  247. package/src/prompts/tools/read.txt +22 -0
  248. package/src/prompts/tools/todowrite.txt +71 -0
  249. package/src/prompts/tools/webfetch.txt +34 -0
  250. package/src/prompts/tools/websearch.txt +41 -0
  251. package/src/prompts/tools/write.txt +23 -0
  252. package/src/tools/builtin/bash.ts +2 -1
  253. package/src/tools/builtin/edit.ts +2 -1
  254. package/src/tools/builtin/glob.ts +2 -1
  255. package/src/tools/builtin/grep.ts +2 -1
  256. package/src/tools/builtin/read.ts +2 -1
  257. package/src/tools/builtin/todowrite.ts +102 -0
  258. package/src/tools/builtin/webfetch.ts +2 -5
  259. package/src/tools/builtin/websearch.ts +2 -16
  260. package/src/tools/builtin/write.ts +2 -1
  261. package/src/tools/index.ts +4 -0
  262. package/src/tools/types.ts +12 -0
  263. package/tsconfig.json +1 -1
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Prompt Loader - Load prompts from .txt files
3
+ *
4
+ * This module provides utilities for loading system prompts and tool descriptions
5
+ * from separate .txt files, enabling easier maintenance and prompt engineering.
6
+ */
7
+ import { readFileSync, existsSync } from 'fs';
8
+ import { join, dirname } from 'path';
9
+ import { fileURLToPath } from 'url';
10
+ import { homedir } from 'os';
11
+ import * as os from 'os';
12
+ const __dirname = dirname(fileURLToPath(import.meta.url));
13
+ // Path to providers.json config
14
+ const PROVIDERS_CONFIG_PATH = join(homedir(), '.gencode', 'providers.json');
15
+ // Resolve prompts directory - check both src and dist locations
16
+ function getPromptsDir() {
17
+ // If running from dist, look for prompts in src
18
+ if (__dirname.includes('/dist/')) {
19
+ const srcPath = __dirname.replace('/dist/', '/src/');
20
+ if (existsSync(srcPath)) {
21
+ return srcPath;
22
+ }
23
+ }
24
+ return __dirname;
25
+ }
26
+ const promptsDir = getPromptsDir();
27
+ /**
28
+ * Load providers config from ~/.gencode/providers.json
29
+ */
30
+ function loadProvidersConfig() {
31
+ try {
32
+ if (existsSync(PROVIDERS_CONFIG_PATH)) {
33
+ const data = readFileSync(PROVIDERS_CONFIG_PATH, 'utf-8');
34
+ return JSON.parse(data);
35
+ }
36
+ }
37
+ catch {
38
+ // Ignore parse errors
39
+ }
40
+ return null;
41
+ }
42
+ /**
43
+ * Look up which provider owns a given model ID
44
+ * Searches through ~/.gencode/providers.json to find the provider
45
+ *
46
+ * @param model - The model ID (e.g., "claude-sonnet-4-5@20250929")
47
+ * @returns The provider name (e.g., "anthropic") or null if not found
48
+ */
49
+ export function getProviderForModel(model) {
50
+ const config = loadProvidersConfig();
51
+ if (!config?.models) {
52
+ return null;
53
+ }
54
+ for (const [provider, cache] of Object.entries(config.models)) {
55
+ if (cache.list?.some((m) => m.id === model)) {
56
+ return provider;
57
+ }
58
+ }
59
+ return null;
60
+ }
61
+ /**
62
+ * Map provider names to prompt types
63
+ * Falls back to 'generic' for unknown providers
64
+ */
65
+ export function mapProviderToPromptType(provider) {
66
+ switch (provider) {
67
+ case 'anthropic':
68
+ return 'anthropic';
69
+ case 'openai':
70
+ return 'openai';
71
+ case 'gemini':
72
+ return 'gemini';
73
+ default:
74
+ return 'generic';
75
+ }
76
+ }
77
+ /**
78
+ * Get prompt type for a model
79
+ * Flow: model → provider (from providers.json) → prompt type
80
+ *
81
+ * @param model - The model ID
82
+ * @param fallbackProvider - Provider to use if model lookup fails
83
+ * @returns The prompt type to use
84
+ */
85
+ export function getPromptTypeForModel(model, fallbackProvider) {
86
+ // First, try to look up the provider for this model
87
+ const provider = getProviderForModel(model);
88
+ if (provider) {
89
+ return mapProviderToPromptType(provider);
90
+ }
91
+ // Fall back to the provided provider if model lookup fails
92
+ if (fallbackProvider) {
93
+ return mapProviderToPromptType(fallbackProvider);
94
+ }
95
+ // Default to generic
96
+ return 'generic';
97
+ }
98
+ /**
99
+ * Load a prompt file from a category subdirectory
100
+ */
101
+ export function loadPrompt(category, name) {
102
+ const path = join(promptsDir, category, `${name}.txt`);
103
+ return readFileSync(path, 'utf-8');
104
+ }
105
+ /**
106
+ * Load the complete system prompt for a specific provider
107
+ */
108
+ export function loadSystemPrompt(provider) {
109
+ const base = loadPrompt('system', 'base');
110
+ const providerSpecific = loadPrompt('system', provider);
111
+ return `${base}\n\n${providerSpecific}`;
112
+ }
113
+ /**
114
+ * Load a tool description from the tools directory
115
+ */
116
+ export function loadToolDescription(toolName) {
117
+ try {
118
+ return loadPrompt('tools', toolName.toLowerCase());
119
+ }
120
+ catch {
121
+ // Fallback if file doesn't exist (for tools without description files)
122
+ return `Tool: ${toolName}`;
123
+ }
124
+ }
125
+ /**
126
+ * Get current environment info
127
+ */
128
+ export function getEnvironmentInfo(cwd, isGitRepo = false) {
129
+ return {
130
+ cwd,
131
+ platform: process.platform,
132
+ osVersion: `${os.type()} ${os.release()}`,
133
+ date: new Date().toISOString().split('T')[0],
134
+ isGitRepo,
135
+ };
136
+ }
137
+ /**
138
+ * Format environment info for injection into system prompt
139
+ */
140
+ export function formatEnvironmentInfo(env) {
141
+ return `<env>
142
+ Working directory: ${env.cwd}
143
+ Is directory a git repo: ${env.isGitRepo ? 'Yes' : 'No'}
144
+ Platform: ${env.platform}
145
+ OS Version: ${env.osVersion}
146
+ Today's date: ${env.date}
147
+ </env>`;
148
+ }
149
+ /**
150
+ * Build the complete system prompt with environment info
151
+ */
152
+ export function buildSystemPrompt(provider, cwd, isGitRepo = false) {
153
+ const prompt = loadSystemPrompt(provider);
154
+ const envInfo = formatEnvironmentInfo(getEnvironmentInfo(cwd, isGitRepo));
155
+ return prompt.replace('{{ENVIRONMENT}}', envInfo);
156
+ }
157
+ /**
158
+ * Format memory context for injection into system prompt
159
+ * Uses <claudeMd> tag for Claude Code compatibility
160
+ */
161
+ export function formatMemoryContext(memoryContext) {
162
+ if (!memoryContext) {
163
+ return '';
164
+ }
165
+ return `
166
+ <claudeMd>
167
+ Codebase and user instructions are shown below. Be sure to adhere to these instructions. IMPORTANT: These instructions OVERRIDE any default behavior and you MUST follow them exactly as written.
168
+
169
+ ${memoryContext}
170
+
171
+ IMPORTANT: this context may or may not be relevant to your tasks. You should not respond to this context unless it is highly relevant to your task.
172
+ </claudeMd>`;
173
+ }
174
+ /**
175
+ * Build the complete system prompt with environment info and memory context
176
+ */
177
+ export function buildSystemPromptWithMemory(provider, cwd, isGitRepo = false, memoryContext) {
178
+ let prompt = buildSystemPrompt(provider, cwd, isGitRepo);
179
+ if (memoryContext) {
180
+ prompt += formatMemoryContext(memoryContext);
181
+ }
182
+ return prompt;
183
+ }
184
+ /**
185
+ * Build system prompt for a model
186
+ * Flow: model → provider (from providers.json) → prompt
187
+ *
188
+ * This is the recommended way to build system prompts as it automatically
189
+ * looks up the provider for the given model from ~/.gencode/providers.json
190
+ *
191
+ * @param model - The model ID (e.g., "claude-sonnet-4-5@20250929")
192
+ * @param cwd - Current working directory
193
+ * @param isGitRepo - Whether the cwd is a git repository
194
+ * @param memoryContext - Optional memory context to include
195
+ * @param fallbackProvider - Provider to use if model lookup fails
196
+ */
197
+ export function buildSystemPromptForModel(model, cwd, isGitRepo = false, memoryContext, fallbackProvider) {
198
+ const promptType = getPromptTypeForModel(model, fallbackProvider);
199
+ return buildSystemPromptWithMemory(promptType, cwd, isGitRepo, memoryContext);
200
+ }
201
+ /**
202
+ * Debug utility to verify prompt loading at runtime
203
+ * Set GENCODE_DEBUG_PROMPTS=1 for summary, GENCODE_DEBUG_PROMPTS=2 for full content
204
+ */
205
+ export function debugPromptLoading(model, fallbackProvider) {
206
+ const debugLevel = process.env.GENCODE_DEBUG_PROMPTS;
207
+ if (!debugLevel || debugLevel === '0') {
208
+ return;
209
+ }
210
+ const promptType = getPromptTypeForModel(model, fallbackProvider);
211
+ const basePrompt = loadPrompt('system', 'base');
212
+ const providerPrompt = loadPrompt('system', promptType);
213
+ console.error('[PROMPT DEBUG] ================================');
214
+ console.error(`[PROMPT DEBUG] Model: ${model}`);
215
+ console.error(`[PROMPT DEBUG] Fallback Provider: ${fallbackProvider || 'none'}`);
216
+ console.error(`[PROMPT DEBUG] Resolved Prompt Type: ${promptType}`);
217
+ console.error(`[PROMPT DEBUG] base.txt lines: ${basePrompt.split('\n').length}`);
218
+ console.error(`[PROMPT DEBUG] ${promptType}.txt lines: ${providerPrompt.split('\n').length}`);
219
+ console.error(`[PROMPT DEBUG] Total chars: ${basePrompt.length + providerPrompt.length}`);
220
+ // Verify key content
221
+ const checks = [
222
+ { name: 'Token minimization', pattern: /minimize output tokens/i },
223
+ { name: 'CommonMark', pattern: /CommonMark/i },
224
+ { name: 'Examples', pattern: /<example>/ },
225
+ { name: 'Environment placeholder', pattern: /\{\{ENVIRONMENT\}\}/ },
226
+ ];
227
+ for (const check of checks) {
228
+ const found = check.pattern.test(basePrompt);
229
+ console.error(`[PROMPT DEBUG] ✓ ${check.name}: ${found ? 'OK' : 'MISSING'}`);
230
+ }
231
+ console.error('[PROMPT DEBUG] ================================');
232
+ // Print full content if level >= 2
233
+ if (debugLevel === '2') {
234
+ console.error('\n[PROMPT DEBUG] === base.txt ===\n');
235
+ console.error(basePrompt);
236
+ console.error(`\n[PROMPT DEBUG] === ${promptType}.txt ===\n`);
237
+ console.error(providerPrompt);
238
+ console.error('\n[PROMPT DEBUG] === END ===\n');
239
+ }
240
+ }
241
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/bash.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,aAAa,CAAC;AACjE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE9D,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,SAAS,CAmFpC,CAAC"}
1
+ {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/bash.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,aAAa,CAAC;AACjE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAG9D,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,SAAS,CAmFpC,CAAC"}
@@ -3,9 +3,10 @@
3
3
  */
4
4
  import { spawn } from 'child_process';
5
5
  import { BashInputSchema } from '../types.js';
6
+ import { loadToolDescription } from '../../prompts/index.js';
6
7
  export const bashTool = {
7
8
  name: 'Bash',
8
- description: 'Execute a bash command and return its output. Use for running scripts, git commands, npm, etc.',
9
+ description: loadToolDescription('bash'),
9
10
  parameters: BashInputSchema,
10
11
  async execute(input, context) {
11
12
  const timeout = input.timeout ?? 30000;
@@ -1 +1 @@
1
- {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/tools/builtin/bash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/tools/builtin/bash.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/edit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,aAAa,CAAC;AACpD,OAAO,EAAmB,KAAK,SAAS,EAAgC,MAAM,aAAa,CAAC;AAE5F,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,SAAS,CA4BpC,CAAC"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/edit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,aAAa,CAAC;AACpD,OAAO,EAAmB,KAAK,SAAS,EAAgC,MAAM,aAAa,CAAC;AAG5F,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,SAAS,CA4BpC,CAAC"}
@@ -3,9 +3,10 @@
3
3
  */
4
4
  import * as fs from 'fs/promises';
5
5
  import { EditInputSchema, resolvePath, getErrorMessage } from '../types.js';
6
+ import { loadToolDescription } from '../../prompts/index.js';
6
7
  export const editTool = {
7
8
  name: 'Edit',
8
- description: 'Edit a file by replacing a specific string with another. The old_string must be unique in the file.',
9
+ description: loadToolDescription('edit'),
9
10
  parameters: EditInputSchema,
10
11
  async execute(input, context) {
11
12
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/tools/builtin/edit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,eAAe,EAAkB,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE5F,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,qGAAqG;IAClH,UAAU,EAAE,eAAe;IAE3B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QAC1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAE/D,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,kDAAkD,EAAE,CAAC;YACnG,CAAC;YACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,gCAAgC,WAAW,8CAA8C,EAAE,CAAC;YAC1I,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YACvE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAElD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,uBAAuB,QAAQ,cAAc,QAAQ,iBAAiB,QAAQ,UAAU,EAAE,CAAC;QAC7H,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,wBAAwB,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACjG,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/tools/builtin/edit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,eAAe,EAAkB,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,mBAAmB,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,eAAe;IAE3B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QAC1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAE/D,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,kDAAkD,EAAE,CAAC;YACnG,CAAC;YACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,gCAAgC,WAAW,8CAA8C,EAAE,CAAC;YAC1I,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YACvE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAElD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,uBAAuB,QAAQ,cAAc,QAAQ,iBAAiB,QAAQ,UAAU,EAAE,CAAC;QAC7H,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,wBAAwB,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACjG,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/glob.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,aAAa,CAAC;AACpD,OAAO,EAAmB,KAAK,SAAS,EAAgC,MAAM,aAAa,CAAC;AAI5F,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,SAAS,CA+BpC,CAAC"}
1
+ {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/glob.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,aAAa,CAAC;AACpD,OAAO,EAAmB,KAAK,SAAS,EAAgC,MAAM,aAAa,CAAC;AAK5F,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,SAAS,CA+BpC,CAAC"}
@@ -3,10 +3,11 @@
3
3
  */
4
4
  import fastGlob from 'fast-glob';
5
5
  import { GlobInputSchema, resolvePath, getErrorMessage } from '../types.js';
6
+ import { loadToolDescription } from '../../prompts/index.js';
6
7
  const MAX_RESULTS = 100;
7
8
  export const globTool = {
8
9
  name: 'Glob',
9
- description: 'Find files matching a glob pattern. Returns a list of matching file paths.',
10
+ description: loadToolDescription('glob'),
10
11
  parameters: GlobInputSchema,
11
12
  async execute(input, context) {
12
13
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../src/tools/builtin/glob.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAkB,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE5F,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,4EAA4E;IACzF,UAAU,EAAE,eAAe;IAE3B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QAC1B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;YAEnF,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,GAAG,EAAE,UAAU;gBACf,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,CAAC,oBAAoB,EAAE,YAAY,CAAC;gBAC5C,mBAAmB,EAAE,KAAK;aAC3B,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC;YAC3E,CAAC;YAED,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;YAC7C,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YACjD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,SAAS,KAAK,CAAC,MAAM,cAAc,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE;aAC5G,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,uBAAuB,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAChG,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../src/tools/builtin/glob.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAkB,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,mBAAmB,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,eAAe;IAE3B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QAC1B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;YAEnF,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC1C,GAAG,EAAE,UAAU;gBACf,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,CAAC,oBAAoB,EAAE,YAAY,CAAC;gBAC5C,mBAAmB,EAAE,KAAK;aAC3B,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC;YAC3E,CAAC;YAED,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;YAC7C,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YACjD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,SAAS,KAAK,CAAC,MAAM,cAAc,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE;aAC5G,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,uBAAuB,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAChG,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/grep.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,aAAa,CAAC;AACpD,OAAO,EAAmB,KAAK,SAAS,EAAgC,MAAM,aAAa,CAAC;AAI5F,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,SAAS,CAsDpC,CAAC"}
1
+ {"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/grep.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,aAAa,CAAC;AACpD,OAAO,EAAmB,KAAK,SAAS,EAAgC,MAAM,aAAa,CAAC;AAK5F,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,SAAS,CAsDpC,CAAC"}
@@ -5,10 +5,11 @@ import * as fs from 'fs/promises';
5
5
  import * as path from 'path';
6
6
  import fastGlob from 'fast-glob';
7
7
  import { GrepInputSchema, resolvePath, getErrorMessage } from '../types.js';
8
+ import { loadToolDescription } from '../../prompts/index.js';
8
9
  const MAX_MATCHES = 50;
9
10
  export const grepTool = {
10
11
  name: 'Grep',
11
- description: 'Search for a regex pattern in files. Returns matching lines with file paths and line numbers.',
12
+ description: loadToolDescription('grep'),
12
13
  parameters: GrepInputSchema,
13
14
  async execute(input, context) {
14
15
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"grep.js","sourceRoot":"","sources":["../../../src/tools/builtin/grep.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAkB,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE5F,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,+FAA+F;IAC5G,UAAU,EAAE,eAAe;IAE3B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QAC1B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;YACnF,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAE9C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACzD,MAAM,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE;gBAC1B,CAAC,CAAC,CAAC,UAAU,CAAC;gBACd,CAAC,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM,EAAE;oBACtC,GAAG,EAAE,UAAU;oBACf,QAAQ,EAAE,IAAI;oBACd,SAAS,EAAE,IAAI;oBACf,MAAM,EAAE,CAAC,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC;oBAC1D,mBAAmB,EAAE,KAAK;iBAC3B,CAAC,CAAC;YAEP,MAAM,OAAO,GAAa,EAAE,CAAC;YAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,OAAO,CAAC,MAAM,IAAI,WAAW;oBAAE,MAAM;gBAEzC,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtE,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BACzB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBACnF,CAAC;wBACD,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;oBACtB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,wBAAwB;gBAC1B,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;YACxD,CAAC;YAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC;YAChD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,SAAS,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE;aAC3G,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,uBAAuB,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAChG,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"grep.js","sourceRoot":"","sources":["../../../src/tools/builtin/grep.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/read.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,aAAa,CAAC;AACpD,OAAO,EAAmB,KAAK,SAAS,EAAgC,MAAM,aAAa,CAAC;AAE5F,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,SAAS,CAyBpC,CAAC"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/read.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,aAAa,CAAC;AACpD,OAAO,EAAmB,KAAK,SAAS,EAAgC,MAAM,aAAa,CAAC;AAG5F,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,SAAS,CAyBpC,CAAC"}
@@ -3,9 +3,10 @@
3
3
  */
4
4
  import * as fs from 'fs/promises';
5
5
  import { ReadInputSchema, resolvePath, getErrorMessage } from '../types.js';
6
+ import { loadToolDescription } from '../../prompts/index.js';
6
7
  export const readTool = {
7
8
  name: 'Read',
8
- description: 'Read the contents of a file. Returns the file content with line numbers.',
9
+ description: loadToolDescription('read'),
9
10
  parameters: ReadInputSchema,
10
11
  async execute(input, context) {
11
12
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/tools/builtin/read.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,eAAe,EAAkB,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE5F,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,0EAA0E;IACvF,UAAU,EAAE,eAAe;IAE3B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QAC1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;YAE1C,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YAClE,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAClD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACzD,OAAO,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;YAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,wBAAwB,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACjG,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/tools/builtin/read.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,eAAe,EAAkB,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,mBAAmB,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,eAAe;IAE3B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QAC1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;YAE1C,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YAClE,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAClD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACzD,OAAO,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;YAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,wBAAwB,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACjG,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * TodoWrite Tool - Manage task list for tracking progress
3
+ */
4
+ import type { Tool, TodoItem } from '../types.js';
5
+ import { type TodoWriteInput } from '../types.js';
6
+ /**
7
+ * Get the current todo list
8
+ */
9
+ export declare function getTodos(): TodoItem[];
10
+ /**
11
+ * Clear all todos
12
+ */
13
+ export declare function clearTodos(): void;
14
+ export declare const todowriteTool: Tool<TodoWriteInput>;
15
+ //# sourceMappingURL=todowrite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todowrite.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/todowrite.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAc,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAMxE;;GAEG;AACH,wBAAgB,QAAQ,IAAI,QAAQ,EAAE,CAErC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAmCD,eAAO,MAAM,aAAa,EAAE,IAAI,CAAC,cAAc,CA2C9C,CAAC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * TodoWrite Tool - Manage task list for tracking progress
3
+ */
4
+ import { TodoWriteInputSchema } from '../types.js';
5
+ import { loadToolDescription } from '../../prompts/index.js';
6
+ // Global todo state - shared across tool invocations
7
+ let currentTodos = [];
8
+ /**
9
+ * Get the current todo list
10
+ */
11
+ export function getTodos() {
12
+ return [...currentTodos];
13
+ }
14
+ /**
15
+ * Clear all todos
16
+ */
17
+ export function clearTodos() {
18
+ currentTodos = [];
19
+ }
20
+ /**
21
+ * Format todos for display
22
+ */
23
+ function formatTodos(todos) {
24
+ if (todos.length === 0) {
25
+ return 'Todo list is empty.';
26
+ }
27
+ const statusIcons = {
28
+ pending: '[ ]',
29
+ in_progress: '[>]',
30
+ completed: '[x]',
31
+ };
32
+ const lines = todos.map((todo, index) => {
33
+ const icon = statusIcons[todo.status] || '[ ]';
34
+ return `${index + 1}. ${icon} ${todo.content}`;
35
+ });
36
+ return lines.join('\n');
37
+ }
38
+ /**
39
+ * Validate todo list rules
40
+ */
41
+ function validateTodos(todos) {
42
+ const inProgress = todos.filter((t) => t.status === 'in_progress');
43
+ if (inProgress.length > 1) {
44
+ return `Only one task should be in_progress at a time. Found ${inProgress.length} tasks in progress.`;
45
+ }
46
+ return null;
47
+ }
48
+ export const todowriteTool = {
49
+ name: 'TodoWrite',
50
+ description: loadToolDescription('todowrite'),
51
+ parameters: TodoWriteInputSchema,
52
+ async execute(input) {
53
+ try {
54
+ // Validate the todo list
55
+ const validationError = validateTodos(input.todos);
56
+ if (validationError) {
57
+ return {
58
+ success: false,
59
+ output: '',
60
+ error: validationError,
61
+ };
62
+ }
63
+ // Update the global todo state (auto-generate id if missing)
64
+ currentTodos = input.todos.map((todo, index) => ({
65
+ ...todo,
66
+ id: todo.id || `todo-${index + 1}`,
67
+ }));
68
+ // Count statistics
69
+ const pending = currentTodos.filter((t) => t.status === 'pending').length;
70
+ const inProgress = currentTodos.filter((t) => t.status === 'in_progress').length;
71
+ const completed = currentTodos.filter((t) => t.status === 'completed').length;
72
+ const summary = `Todos updated: ${completed} completed, ${inProgress} in progress, ${pending} pending`;
73
+ const formatted = formatTodos(currentTodos);
74
+ return {
75
+ success: true,
76
+ output: `${summary}\n\n${formatted}`,
77
+ };
78
+ }
79
+ catch (error) {
80
+ return {
81
+ success: false,
82
+ output: '',
83
+ error: `Failed to update todos: ${error instanceof Error ? error.message : String(error)}`,
84
+ };
85
+ }
86
+ },
87
+ };
88
+ //# sourceMappingURL=todowrite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todowrite.js","sourceRoot":"","sources":["../../../src/tools/builtin/todowrite.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webfetch.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/webfetch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,aAAa,CAAC;AAYjE,eAAO,MAAM,mBAAmB;;;;;;;;iBAO9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAuHhE;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,IAAI,CAAC,aAAa,CAmH5C,CAAC"}
1
+ {"version":3,"file":"webfetch.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/webfetch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,aAAa,CAAC;AAajE,eAAO,MAAM,mBAAmB;;;;;;;;iBAO9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAuHhE;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,IAAI,CAAC,aAAa,CA+G5C,CAAC"}
@@ -5,6 +5,7 @@ import TurndownService from 'turndown';
5
5
  import { z } from 'zod';
6
6
  import { getErrorMessage } from '../types.js';
7
7
  import { validateUrl } from '../utils/ssrf.js';
8
+ import { loadToolDescription } from '../../prompts/index.js';
8
9
  // Constants
9
10
  const MAX_RESPONSE_SIZE = 5 * 1024 * 1024; // 5MB
10
11
  const DEFAULT_TIMEOUT = 30 * 1000; // 30 seconds
@@ -127,11 +128,7 @@ function truncateOutput(output) {
127
128
  */
128
129
  export const webfetchTool = {
129
130
  name: 'WebFetch',
130
- description: `Fetch content from a URL and return it in the specified format.
131
- - Converts HTML to Markdown by default for easier reading
132
- - Supports text, markdown, and html output formats
133
- - Maximum response size: 5MB
134
- - Timeout: 30 seconds (configurable up to 120 seconds)`,
131
+ description: loadToolDescription('webfetch'),
135
132
  parameters: WebFetchInputSchema,
136
133
  async execute(input, context) {
137
134
  const startTime = Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"webfetch.js","sourceRoot":"","sources":["../../../src/tools/builtin/webfetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webfetch.js","sourceRoot":"","sources":["../../../src/tools/builtin/webfetch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"websearch.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/websearch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,aAAa,CAAC;AAYjE,eAAO,MAAM,oBAAoB;;;;;iBAiB/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAwBlE;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,IAAI,CAAC,cAAc,CAsD9C,CAAC"}
1
+ {"version":3,"file":"websearch.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/websearch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,aAAa,CAAC;AAajE,eAAO,MAAM,oBAAoB;;;;;iBAiB/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAwBlE;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,IAAI,CAAC,cAAc,CAuC9C,CAAC"}
@@ -4,6 +4,7 @@
4
4
  import { z } from 'zod';
5
5
  import { getErrorMessage } from '../types.js';
6
6
  import { createSearchProvider, getCurrentSearchProviderName, } from '../../providers/search/index.js';
7
+ import { loadToolDescription } from '../../prompts/index.js';
7
8
  // Constants
8
9
  const DEFAULT_NUM_RESULTS = 10;
9
10
  // Input schema
@@ -49,22 +50,7 @@ function formatResults(results, query) {
49
50
  */
50
51
  export const websearchTool = {
51
52
  name: 'WebSearch',
52
- description: `Search the web for current information.
53
-
54
- Use this tool when you need:
55
- - Up-to-date information beyond your knowledge cutoff
56
- - Current documentation or release notes
57
- - Recent solutions to technical problems
58
- - Current best practices
59
-
60
- IMPORTANT: After answering, include a "Sources:" section with all relevant URLs as markdown hyperlinks.
61
-
62
- Example:
63
- [Your answer]
64
-
65
- Sources:
66
- - [Title 1](https://url1)
67
- - [Title 2](https://url2)`,
53
+ description: loadToolDescription('websearch'),
68
54
  parameters: WebSearchInputSchema,
69
55
  async execute(input, context) {
70
56
  const startTime = Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"websearch.js","sourceRoot":"","sources":["../../../src/tools/builtin/websearch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websearch.js","sourceRoot":"","sources":["../../../src/tools/builtin/websearch.ts"],"names":[],"mappings":"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"}