codevault 1.6.0 → 1.6.1

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 (237) hide show
  1. package/dist/chunking/file-grouper.d.ts +39 -0
  2. package/dist/chunking/file-grouper.d.ts.map +1 -0
  3. package/dist/chunking/file-grouper.js +164 -0
  4. package/dist/chunking/file-grouper.js.map +1 -0
  5. package/dist/chunking/semantic-chunker.d.ts +37 -0
  6. package/dist/chunking/semantic-chunker.d.ts.map +1 -0
  7. package/dist/chunking/semantic-chunker.js +157 -0
  8. package/dist/chunking/semantic-chunker.js.map +1 -0
  9. package/dist/chunking/token-counter.d.ts +28 -0
  10. package/dist/chunking/token-counter.d.ts.map +1 -0
  11. package/dist/chunking/token-counter.js +207 -0
  12. package/dist/chunking/token-counter.js.map +1 -0
  13. package/dist/cli/commands/ask-cmd.d.ts +3 -0
  14. package/dist/cli/commands/ask-cmd.d.ts.map +1 -0
  15. package/dist/cli/commands/ask-cmd.js +130 -0
  16. package/dist/cli/commands/ask-cmd.js.map +1 -0
  17. package/dist/cli/commands/chat-cmd.d.ts +3 -0
  18. package/dist/cli/commands/chat-cmd.d.ts.map +1 -0
  19. package/dist/cli/commands/chat-cmd.js +194 -0
  20. package/dist/cli/commands/chat-cmd.js.map +1 -0
  21. package/dist/cli/commands/config-cmd.d.ts +3 -0
  22. package/dist/cli/commands/config-cmd.d.ts.map +1 -0
  23. package/dist/cli/commands/config-cmd.js +245 -0
  24. package/dist/cli/commands/config-cmd.js.map +1 -0
  25. package/dist/cli/commands/context.d.ts +3 -0
  26. package/dist/cli/commands/context.d.ts.map +1 -0
  27. package/dist/cli/commands/context.js +98 -0
  28. package/dist/cli/commands/context.js.map +1 -0
  29. package/dist/cli/commands/interactive-config.d.ts +2 -0
  30. package/dist/cli/commands/interactive-config.d.ts.map +1 -0
  31. package/dist/cli/commands/interactive-config.js +274 -0
  32. package/dist/cli/commands/interactive-config.js.map +1 -0
  33. package/dist/cli.d.ts +3 -0
  34. package/dist/cli.d.ts.map +1 -0
  35. package/dist/cli.js +403 -0
  36. package/dist/cli.js.map +1 -0
  37. package/dist/codemap/io.d.ts +5 -0
  38. package/dist/codemap/io.d.ts.map +1 -0
  39. package/dist/codemap/io.js +30 -0
  40. package/dist/codemap/io.js.map +1 -0
  41. package/dist/config/apply-env.d.ts +15 -0
  42. package/dist/config/apply-env.d.ts.map +1 -0
  43. package/dist/config/apply-env.js +91 -0
  44. package/dist/config/apply-env.js.map +1 -0
  45. package/dist/config/constants.d.ts +326 -0
  46. package/dist/config/constants.d.ts.map +1 -0
  47. package/dist/config/constants.js +214 -0
  48. package/dist/config/constants.js.map +1 -0
  49. package/dist/config/loader.d.ts +57 -0
  50. package/dist/config/loader.d.ts.map +1 -0
  51. package/dist/config/loader.js +287 -0
  52. package/dist/config/loader.js.map +1 -0
  53. package/dist/config/types.d.ts +46 -0
  54. package/dist/config/types.d.ts.map +1 -0
  55. package/dist/config/types.js +2 -0
  56. package/dist/config/types.js.map +1 -0
  57. package/dist/context/packs.d.ts +33 -0
  58. package/dist/context/packs.d.ts.map +1 -0
  59. package/dist/context/packs.js +180 -0
  60. package/dist/context/packs.js.map +1 -0
  61. package/dist/core/batch-indexer.d.ts +56 -0
  62. package/dist/core/batch-indexer.d.ts.map +1 -0
  63. package/dist/core/batch-indexer.js +189 -0
  64. package/dist/core/batch-indexer.js.map +1 -0
  65. package/dist/core/indexer.d.ts +3 -0
  66. package/dist/core/indexer.d.ts.map +1 -0
  67. package/dist/core/indexer.js +600 -0
  68. package/dist/core/indexer.js.map +1 -0
  69. package/dist/core/metadata.d.ts +19 -0
  70. package/dist/core/metadata.d.ts.map +1 -0
  71. package/dist/core/metadata.js +161 -0
  72. package/dist/core/metadata.js.map +1 -0
  73. package/dist/core/search.d.ts +7 -0
  74. package/dist/core/search.d.ts.map +1 -0
  75. package/dist/core/search.js +545 -0
  76. package/dist/core/search.js.map +1 -0
  77. package/dist/core/symbol-extractor.d.ts +3 -0
  78. package/dist/core/symbol-extractor.d.ts.map +1 -0
  79. package/dist/core/symbol-extractor.js +78 -0
  80. package/dist/core/symbol-extractor.js.map +1 -0
  81. package/dist/core/types.d.ts +104 -0
  82. package/dist/core/types.d.ts.map +1 -0
  83. package/dist/core/types.js +2 -0
  84. package/dist/core/types.js.map +1 -0
  85. package/dist/database/db.d.ts +102 -0
  86. package/dist/database/db.d.ts.map +1 -0
  87. package/dist/database/db.js +366 -0
  88. package/dist/database/db.js.map +1 -0
  89. package/dist/indexer/merkle.d.ts +13 -0
  90. package/dist/indexer/merkle.d.ts.map +1 -0
  91. package/dist/indexer/merkle.js +86 -0
  92. package/dist/indexer/merkle.js.map +1 -0
  93. package/dist/indexer/update.d.ts +19 -0
  94. package/dist/indexer/update.d.ts.map +1 -0
  95. package/dist/indexer/update.js +40 -0
  96. package/dist/indexer/update.js.map +1 -0
  97. package/dist/indexer/watch.d.ts +21 -0
  98. package/dist/indexer/watch.d.ts.map +1 -0
  99. package/dist/indexer/watch.js +222 -0
  100. package/dist/indexer/watch.js.map +1 -0
  101. package/dist/languages/rules.d.ts +11 -0
  102. package/dist/languages/rules.d.ts.map +1 -0
  103. package/dist/languages/rules.js +371 -0
  104. package/dist/languages/rules.js.map +1 -0
  105. package/dist/languages/tree-sitter-loader.d.ts +27 -0
  106. package/dist/languages/tree-sitter-loader.d.ts.map +1 -0
  107. package/dist/languages/tree-sitter-loader.js +76 -0
  108. package/dist/languages/tree-sitter-loader.js.map +1 -0
  109. package/dist/mcp/schemas.d.ts +166 -0
  110. package/dist/mcp/schemas.d.ts.map +1 -0
  111. package/dist/mcp/schemas.js +159 -0
  112. package/dist/mcp/schemas.js.map +1 -0
  113. package/dist/mcp/tools/ask-codebase.d.ts +85 -0
  114. package/dist/mcp/tools/ask-codebase.d.ts.map +1 -0
  115. package/dist/mcp/tools/ask-codebase.js +125 -0
  116. package/dist/mcp/tools/ask-codebase.js.map +1 -0
  117. package/dist/mcp/tools/use-context-pack.d.ts +57 -0
  118. package/dist/mcp/tools/use-context-pack.d.ts.map +1 -0
  119. package/dist/mcp/tools/use-context-pack.js +91 -0
  120. package/dist/mcp/tools/use-context-pack.js.map +1 -0
  121. package/dist/mcp-server.d.ts +3 -0
  122. package/dist/mcp-server.d.ts.map +1 -0
  123. package/dist/mcp-server.js +511 -0
  124. package/dist/mcp-server.js.map +1 -0
  125. package/dist/providers/base.d.ts +39 -0
  126. package/dist/providers/base.d.ts.map +1 -0
  127. package/dist/providers/base.js +198 -0
  128. package/dist/providers/base.js.map +1 -0
  129. package/dist/providers/chat-llm.d.ts +30 -0
  130. package/dist/providers/chat-llm.d.ts.map +1 -0
  131. package/dist/providers/chat-llm.js +85 -0
  132. package/dist/providers/chat-llm.js.map +1 -0
  133. package/dist/providers/index.d.ts +5 -0
  134. package/dist/providers/index.d.ts.map +1 -0
  135. package/dist/providers/index.js +12 -0
  136. package/dist/providers/index.js.map +1 -0
  137. package/dist/providers/openai.d.ts +14 -0
  138. package/dist/providers/openai.d.ts.map +1 -0
  139. package/dist/providers/openai.js +122 -0
  140. package/dist/providers/openai.js.map +1 -0
  141. package/dist/providers/token-counter.d.ts +2 -0
  142. package/dist/providers/token-counter.d.ts.map +1 -0
  143. package/dist/providers/token-counter.js +18 -0
  144. package/dist/providers/token-counter.js.map +1 -0
  145. package/dist/ranking/api-reranker.d.ts +18 -0
  146. package/dist/ranking/api-reranker.d.ts.map +1 -0
  147. package/dist/ranking/api-reranker.js +134 -0
  148. package/dist/ranking/api-reranker.js.map +1 -0
  149. package/dist/ranking/symbol-boost.d.ts +15 -0
  150. package/dist/ranking/symbol-boost.d.ts.map +1 -0
  151. package/dist/ranking/symbol-boost.js +175 -0
  152. package/dist/ranking/symbol-boost.js.map +1 -0
  153. package/dist/search/bm25.d.ts +17 -0
  154. package/dist/search/bm25.d.ts.map +1 -0
  155. package/dist/search/bm25.js +56 -0
  156. package/dist/search/bm25.js.map +1 -0
  157. package/dist/search/hybrid.d.ts +21 -0
  158. package/dist/search/hybrid.d.ts.map +1 -0
  159. package/dist/search/hybrid.js +50 -0
  160. package/dist/search/hybrid.js.map +1 -0
  161. package/dist/search/scope.d.ts +5 -0
  162. package/dist/search/scope.d.ts.map +1 -0
  163. package/dist/search/scope.js +107 -0
  164. package/dist/search/scope.js.map +1 -0
  165. package/dist/storage/encrypted-chunks.d.ts +40 -0
  166. package/dist/storage/encrypted-chunks.d.ts.map +1 -0
  167. package/dist/storage/encrypted-chunks.js +238 -0
  168. package/dist/storage/encrypted-chunks.js.map +1 -0
  169. package/dist/symbols/extract.d.ts +15 -0
  170. package/dist/symbols/extract.d.ts.map +1 -0
  171. package/dist/symbols/extract.js +208 -0
  172. package/dist/symbols/extract.js.map +1 -0
  173. package/dist/symbols/graph.d.ts +3 -0
  174. package/dist/symbols/graph.d.ts.map +1 -0
  175. package/dist/symbols/graph.js +89 -0
  176. package/dist/symbols/graph.js.map +1 -0
  177. package/dist/synthesis/conversational-synthesizer.d.ts +61 -0
  178. package/dist/synthesis/conversational-synthesizer.d.ts.map +1 -0
  179. package/dist/synthesis/conversational-synthesizer.js +286 -0
  180. package/dist/synthesis/conversational-synthesizer.js.map +1 -0
  181. package/dist/synthesis/markdown-formatter.d.ts +13 -0
  182. package/dist/synthesis/markdown-formatter.d.ts.map +1 -0
  183. package/dist/synthesis/markdown-formatter.js +104 -0
  184. package/dist/synthesis/markdown-formatter.js.map +1 -0
  185. package/dist/synthesis/prompt-builder.d.ts +21 -0
  186. package/dist/synthesis/prompt-builder.d.ts.map +1 -0
  187. package/dist/synthesis/prompt-builder.js +129 -0
  188. package/dist/synthesis/prompt-builder.js.map +1 -0
  189. package/dist/synthesis/synthesizer.d.ts +30 -0
  190. package/dist/synthesis/synthesizer.d.ts.map +1 -0
  191. package/dist/synthesis/synthesizer.js +210 -0
  192. package/dist/synthesis/synthesizer.js.map +1 -0
  193. package/dist/types/ast.d.ts +3 -0
  194. package/dist/types/ast.d.ts.map +1 -0
  195. package/dist/types/ast.js +2 -0
  196. package/dist/types/ast.js.map +1 -0
  197. package/dist/types/codemap.d.ts +58 -0
  198. package/dist/types/codemap.d.ts.map +1 -0
  199. package/dist/types/codemap.js +224 -0
  200. package/dist/types/codemap.js.map +1 -0
  201. package/dist/types/context-pack.d.ts +47 -0
  202. package/dist/types/context-pack.d.ts.map +1 -0
  203. package/dist/types/context-pack.js +44 -0
  204. package/dist/types/context-pack.js.map +1 -0
  205. package/dist/types/search.d.ts +15 -0
  206. package/dist/types/search.d.ts.map +1 -0
  207. package/dist/types/search.js +11 -0
  208. package/dist/types/search.js.map +1 -0
  209. package/dist/utils/cli-ui.d.ts +44 -0
  210. package/dist/utils/cli-ui.d.ts.map +1 -0
  211. package/dist/utils/cli-ui.js +139 -0
  212. package/dist/utils/cli-ui.js.map +1 -0
  213. package/dist/utils/indexer-with-progress.d.ts +10 -0
  214. package/dist/utils/indexer-with-progress.d.ts.map +1 -0
  215. package/dist/utils/indexer-with-progress.js +43 -0
  216. package/dist/utils/indexer-with-progress.js.map +1 -0
  217. package/dist/utils/logger.d.ts +55 -0
  218. package/dist/utils/logger.d.ts.map +1 -0
  219. package/dist/utils/logger.js +121 -0
  220. package/dist/utils/logger.js.map +1 -0
  221. package/dist/utils/mutex.d.ts +63 -0
  222. package/dist/utils/mutex.d.ts.map +1 -0
  223. package/dist/utils/mutex.js +123 -0
  224. package/dist/utils/mutex.js.map +1 -0
  225. package/dist/utils/path-helpers.d.ts +27 -0
  226. package/dist/utils/path-helpers.d.ts.map +1 -0
  227. package/dist/utils/path-helpers.js +55 -0
  228. package/dist/utils/path-helpers.js.map +1 -0
  229. package/dist/utils/rate-limiter.d.ts +34 -0
  230. package/dist/utils/rate-limiter.d.ts.map +1 -0
  231. package/dist/utils/rate-limiter.js +178 -0
  232. package/dist/utils/rate-limiter.js.map +1 -0
  233. package/dist/utils/scan-patterns.d.ts +5 -0
  234. package/dist/utils/scan-patterns.d.ts.map +1 -0
  235. package/dist/utils/scan-patterns.js +29 -0
  236. package/dist/utils/scan-patterns.js.map +1 -0
  237. package/package.json +1 -1
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Zod validation schemas for MCP tool arguments
3
+ *
4
+ * Provides runtime validation and type safety for all MCP tool inputs
5
+ */
6
+ import { z } from 'zod';
7
+ /**
8
+ * Search code arguments
9
+ */
10
+ export declare const SearchCodeArgsSchema: z.ZodObject<{
11
+ query: z.ZodString;
12
+ limit: z.ZodDefault<z.ZodNumber>;
13
+ provider: z.ZodDefault<z.ZodEnum<{
14
+ openai: "openai";
15
+ auto: "auto";
16
+ }>>;
17
+ path: z.ZodOptional<z.ZodDefault<z.ZodString>>;
18
+ project: z.ZodOptional<z.ZodDefault<z.ZodString>>;
19
+ directory: z.ZodOptional<z.ZodDefault<z.ZodString>>;
20
+ path_glob: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
21
+ tags: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
22
+ lang: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
23
+ reranker: z.ZodDefault<z.ZodEnum<{
24
+ off: "off";
25
+ api: "api";
26
+ }>>;
27
+ hybrid: z.ZodDefault<z.ZodEnum<{
28
+ off: "off";
29
+ on: "on";
30
+ }>>;
31
+ bm25: z.ZodDefault<z.ZodEnum<{
32
+ off: "off";
33
+ on: "on";
34
+ }>>;
35
+ symbol_boost: z.ZodDefault<z.ZodEnum<{
36
+ off: "off";
37
+ on: "on";
38
+ }>>;
39
+ }, z.core.$strip>;
40
+ export type SearchCodeArgs = z.infer<typeof SearchCodeArgsSchema>;
41
+ /**
42
+ * Search code with chunks arguments
43
+ */
44
+ export declare const SearchCodeWithChunksArgsSchema: z.ZodObject<{
45
+ query: z.ZodString;
46
+ limit: z.ZodDefault<z.ZodNumber>;
47
+ provider: z.ZodDefault<z.ZodEnum<{
48
+ openai: "openai";
49
+ auto: "auto";
50
+ }>>;
51
+ path: z.ZodOptional<z.ZodDefault<z.ZodString>>;
52
+ project: z.ZodOptional<z.ZodDefault<z.ZodString>>;
53
+ directory: z.ZodOptional<z.ZodDefault<z.ZodString>>;
54
+ path_glob: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
55
+ tags: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
56
+ lang: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
57
+ reranker: z.ZodDefault<z.ZodEnum<{
58
+ off: "off";
59
+ api: "api";
60
+ }>>;
61
+ hybrid: z.ZodDefault<z.ZodEnum<{
62
+ off: "off";
63
+ on: "on";
64
+ }>>;
65
+ bm25: z.ZodDefault<z.ZodEnum<{
66
+ off: "off";
67
+ on: "on";
68
+ }>>;
69
+ symbol_boost: z.ZodDefault<z.ZodEnum<{
70
+ off: "off";
71
+ on: "on";
72
+ }>>;
73
+ }, z.core.$strip>;
74
+ export type SearchCodeWithChunksArgs = z.infer<typeof SearchCodeWithChunksArgsSchema>;
75
+ /**
76
+ * Get code chunk arguments
77
+ */
78
+ export declare const GetCodeChunkArgsSchema: z.ZodObject<{
79
+ sha: z.ZodString;
80
+ path: z.ZodOptional<z.ZodDefault<z.ZodString>>;
81
+ project: z.ZodOptional<z.ZodDefault<z.ZodString>>;
82
+ directory: z.ZodOptional<z.ZodDefault<z.ZodString>>;
83
+ }, z.core.$strip>;
84
+ export type GetCodeChunkArgs = z.infer<typeof GetCodeChunkArgsSchema>;
85
+ /**
86
+ * Index project arguments
87
+ */
88
+ export declare const IndexProjectArgsSchema: z.ZodObject<{
89
+ path: z.ZodOptional<z.ZodDefault<z.ZodString>>;
90
+ project: z.ZodOptional<z.ZodDefault<z.ZodString>>;
91
+ directory: z.ZodOptional<z.ZodDefault<z.ZodString>>;
92
+ provider: z.ZodDefault<z.ZodEnum<{
93
+ openai: "openai";
94
+ auto: "auto";
95
+ }>>;
96
+ }, z.core.$strip>;
97
+ export type IndexProjectArgs = z.infer<typeof IndexProjectArgsSchema>;
98
+ /**
99
+ * Update project arguments
100
+ */
101
+ export declare const UpdateProjectArgsSchema: z.ZodObject<{
102
+ path: z.ZodOptional<z.ZodDefault<z.ZodString>>;
103
+ project: z.ZodOptional<z.ZodDefault<z.ZodString>>;
104
+ directory: z.ZodOptional<z.ZodDefault<z.ZodString>>;
105
+ provider: z.ZodDefault<z.ZodEnum<{
106
+ openai: "openai";
107
+ auto: "auto";
108
+ }>>;
109
+ }, z.core.$strip>;
110
+ export type UpdateProjectArgs = z.infer<typeof UpdateProjectArgsSchema>;
111
+ /**
112
+ * Get project stats arguments
113
+ */
114
+ export declare const GetProjectStatsArgsSchema: z.ZodObject<{
115
+ path: z.ZodOptional<z.ZodDefault<z.ZodString>>;
116
+ project: z.ZodOptional<z.ZodDefault<z.ZodString>>;
117
+ directory: z.ZodOptional<z.ZodDefault<z.ZodString>>;
118
+ }, z.core.$strip>;
119
+ export type GetProjectStatsArgs = z.infer<typeof GetProjectStatsArgsSchema>;
120
+ /**
121
+ * Use context pack arguments
122
+ */
123
+ export declare const UseContextPackArgsSchema: z.ZodObject<{
124
+ name: z.ZodString;
125
+ path: z.ZodOptional<z.ZodDefault<z.ZodString>>;
126
+ project: z.ZodOptional<z.ZodDefault<z.ZodString>>;
127
+ directory: z.ZodOptional<z.ZodDefault<z.ZodString>>;
128
+ }, z.core.$strip>;
129
+ export type UseContextPackArgs = z.infer<typeof UseContextPackArgsSchema>;
130
+ /**
131
+ * Ask codebase arguments
132
+ */
133
+ export declare const AskCodebaseArgsSchema: z.ZodObject<{
134
+ question: z.ZodString;
135
+ provider: z.ZodDefault<z.ZodEnum<{
136
+ openai: "openai";
137
+ auto: "auto";
138
+ }>>;
139
+ chat_provider: z.ZodDefault<z.ZodEnum<{
140
+ openai: "openai";
141
+ auto: "auto";
142
+ }>>;
143
+ path: z.ZodOptional<z.ZodDefault<z.ZodString>>;
144
+ project: z.ZodOptional<z.ZodDefault<z.ZodString>>;
145
+ directory: z.ZodOptional<z.ZodDefault<z.ZodString>>;
146
+ max_chunks: z.ZodDefault<z.ZodNumber>;
147
+ path_glob: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
148
+ tags: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
149
+ lang: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
150
+ reranker: z.ZodDefault<z.ZodEnum<{
151
+ off: "off";
152
+ on: "on";
153
+ }>>;
154
+ multi_query: z.ZodDefault<z.ZodBoolean>;
155
+ temperature: z.ZodDefault<z.ZodNumber>;
156
+ }, z.core.$strip>;
157
+ export type AskCodebaseArgs = z.infer<typeof AskCodebaseArgsSchema>;
158
+ /**
159
+ * Helper function to extract path from validated args
160
+ */
161
+ export declare function extractPath(args: {
162
+ path?: string;
163
+ project?: string;
164
+ directory?: string;
165
+ }): string;
166
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgCxB;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsB/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsBzC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;iBAKjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;iBAAyB,CAAC;AAE9D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;iBAIpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;iBAKnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;iBA0BhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEjG"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Zod validation schemas for MCP tool arguments
3
+ *
4
+ * Provides runtime validation and type safety for all MCP tool inputs
5
+ */
6
+ import { z } from 'zod';
7
+ import { SEARCH_CONSTANTS } from '../config/constants.js';
8
+ /**
9
+ * Common path parameter that accepts multiple aliases
10
+ */
11
+ const PathSchema = z
12
+ .string()
13
+ .trim()
14
+ .min(1, 'Path cannot be empty')
15
+ .default('.');
16
+ /**
17
+ * Provider enum
18
+ */
19
+ const ProviderSchema = z.enum(['auto', 'openai']).default('auto');
20
+ /**
21
+ * Boolean-like string enum
22
+ */
23
+ const BooleanStringSchema = z.enum(['on', 'off']);
24
+ /**
25
+ * Reranker mode enum
26
+ */
27
+ const RerankerSchema = z.enum(['off', 'api']).default('off');
28
+ /**
29
+ * Flexible string or array schema
30
+ */
31
+ const StringOrArraySchema = z.union([z.string(), z.array(z.string())]).optional();
32
+ /**
33
+ * Search code arguments
34
+ */
35
+ export const SearchCodeArgsSchema = z.object({
36
+ query: z
37
+ .string()
38
+ .min(1, 'Query cannot be empty')
39
+ .max(1000, 'Query too long (max 1000 chars)'),
40
+ limit: z
41
+ .number()
42
+ .int('Limit must be integer')
43
+ .min(1, 'Limit must be at least 1')
44
+ .max(SEARCH_CONSTANTS.MAX_SEARCH_LIMIT, `Limit cannot exceed ${SEARCH_CONSTANTS.MAX_SEARCH_LIMIT}`)
45
+ .default(50),
46
+ provider: ProviderSchema,
47
+ path: PathSchema.optional(),
48
+ project: PathSchema.optional(),
49
+ directory: PathSchema.optional(),
50
+ path_glob: StringOrArraySchema,
51
+ tags: StringOrArraySchema,
52
+ lang: StringOrArraySchema,
53
+ reranker: RerankerSchema,
54
+ hybrid: BooleanStringSchema.default('on'),
55
+ bm25: BooleanStringSchema.default('on'),
56
+ symbol_boost: BooleanStringSchema.default('on'),
57
+ });
58
+ /**
59
+ * Search code with chunks arguments
60
+ */
61
+ export const SearchCodeWithChunksArgsSchema = z.object({
62
+ query: z
63
+ .string()
64
+ .min(1, 'Query cannot be empty')
65
+ .max(1000, 'Query too long (max 1000 chars)'),
66
+ limit: z
67
+ .number()
68
+ .int('Limit must be integer')
69
+ .min(1, 'Limit must be at least 1')
70
+ .max(50, 'Limit cannot exceed 50 for code chunks')
71
+ .default(10),
72
+ provider: ProviderSchema,
73
+ path: PathSchema.optional(),
74
+ project: PathSchema.optional(),
75
+ directory: PathSchema.optional(),
76
+ path_glob: StringOrArraySchema,
77
+ tags: StringOrArraySchema,
78
+ lang: StringOrArraySchema,
79
+ reranker: RerankerSchema,
80
+ hybrid: BooleanStringSchema.default('on'),
81
+ bm25: BooleanStringSchema.default('on'),
82
+ symbol_boost: BooleanStringSchema.default('on'),
83
+ });
84
+ /**
85
+ * Get code chunk arguments
86
+ */
87
+ export const GetCodeChunkArgsSchema = z.object({
88
+ sha: z.string().min(1, 'SHA cannot be empty').max(64, 'SHA too long'),
89
+ path: PathSchema.optional(),
90
+ project: PathSchema.optional(),
91
+ directory: PathSchema.optional(),
92
+ });
93
+ /**
94
+ * Index project arguments
95
+ */
96
+ export const IndexProjectArgsSchema = z.object({
97
+ path: PathSchema.optional(),
98
+ project: PathSchema.optional(),
99
+ directory: PathSchema.optional(),
100
+ provider: ProviderSchema,
101
+ });
102
+ /**
103
+ * Update project arguments
104
+ */
105
+ export const UpdateProjectArgsSchema = IndexProjectArgsSchema;
106
+ /**
107
+ * Get project stats arguments
108
+ */
109
+ export const GetProjectStatsArgsSchema = z.object({
110
+ path: PathSchema.optional(),
111
+ project: PathSchema.optional(),
112
+ directory: PathSchema.optional(),
113
+ });
114
+ /**
115
+ * Use context pack arguments
116
+ */
117
+ export const UseContextPackArgsSchema = z.object({
118
+ name: z.string().min(1, 'Context pack name cannot be empty').max(100, 'Name too long'),
119
+ path: PathSchema.optional(),
120
+ project: PathSchema.optional(),
121
+ directory: PathSchema.optional(),
122
+ });
123
+ /**
124
+ * Ask codebase arguments
125
+ */
126
+ export const AskCodebaseArgsSchema = z.object({
127
+ question: z
128
+ .string()
129
+ .min(1, 'Question cannot be empty')
130
+ .max(2000, 'Question too long (max 2000 chars)'),
131
+ provider: ProviderSchema,
132
+ chat_provider: ProviderSchema,
133
+ path: PathSchema.optional(),
134
+ project: PathSchema.optional(),
135
+ directory: PathSchema.optional(),
136
+ max_chunks: z
137
+ .number()
138
+ .int('max_chunks must be integer')
139
+ .min(1, 'max_chunks must be at least 1')
140
+ .max(50, 'max_chunks cannot exceed 50')
141
+ .default(10),
142
+ path_glob: StringOrArraySchema,
143
+ tags: StringOrArraySchema,
144
+ lang: StringOrArraySchema,
145
+ reranker: z.enum(['on', 'off']).default('on'),
146
+ multi_query: z.boolean().default(false),
147
+ temperature: z
148
+ .number()
149
+ .min(0, 'Temperature must be >= 0')
150
+ .max(2, 'Temperature must be <= 2')
151
+ .default(0.7),
152
+ });
153
+ /**
154
+ * Helper function to extract path from validated args
155
+ */
156
+ export function extractPath(args) {
157
+ return (args.path || args.project || args.directory || '.').trim();
158
+ }
159
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,EAAE;KACR,IAAI,EAAE;KACN,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;KAC9B,OAAO,CAAC,GAAG,CAAC,CAAC;AAEhB;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAElD;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;SAC/B,GAAG,CAAC,IAAI,EAAE,iCAAiC,CAAC;IAC/C,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,uBAAuB,CAAC;SAC5B,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;SAClC,GAAG,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,uBAAuB,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;SAClG,OAAO,CAAC,EAAE,CAAC;IACd,QAAQ,EAAE,cAAc;IACxB,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,mBAAmB;IAC9B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;IACzC,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,YAAY,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;CAChD,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;SAC/B,GAAG,CAAC,IAAI,EAAE,iCAAiC,CAAC;IAC/C,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,uBAAuB,CAAC;SAC5B,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;SAClC,GAAG,CAAC,EAAE,EAAE,wCAAwC,CAAC;SACjD,OAAO,CAAC,EAAE,CAAC;IACd,QAAQ,EAAE,cAAc;IACxB,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,mBAAmB;IAC9B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;IACzC,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,YAAY,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;CAChD,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC;IACrE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE;IAChC,QAAQ,EAAE,cAAc;CACzB,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;AAI9D;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mCAAmC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC;IACtF,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;SAClC,GAAG,CAAC,IAAI,EAAE,oCAAoC,CAAC;IAClD,QAAQ,EAAE,cAAc;IACxB,aAAa,EAAE,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE;IAChC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,4BAA4B,CAAC;SACjC,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;SACvC,GAAG,CAAC,EAAE,EAAE,6BAA6B,CAAC;SACtC,OAAO,CAAC,EAAE,CAAC;IACd,SAAS,EAAE,mBAAmB;IAC9B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACvC,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;SAClC,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;SAClC,OAAO,CAAC,GAAG,CAAC;CAChB,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAA6D;IACvF,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACrE,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { z } from 'zod';
2
+ export declare const askCodebaseInputSchema: z.ZodObject<{
3
+ question: z.ZodString;
4
+ provider: z.ZodDefault<z.ZodOptional<z.ZodString>>;
5
+ chat_provider: z.ZodDefault<z.ZodOptional<z.ZodString>>;
6
+ path: z.ZodDefault<z.ZodOptional<z.ZodString>>;
7
+ max_chunks: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
8
+ path_glob: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
9
+ tags: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
10
+ lang: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
11
+ reranker: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
12
+ off: "off";
13
+ on: "on";
14
+ }>>>;
15
+ multi_query: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
16
+ temperature: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
17
+ }, z.core.$strip>;
18
+ export declare const askCodebaseResultSchema: z.ZodObject<{
19
+ success: z.ZodBoolean;
20
+ answer: z.ZodOptional<z.ZodString>;
21
+ query: z.ZodString;
22
+ queriesUsed: z.ZodOptional<z.ZodArray<z.ZodString>>;
23
+ chunksAnalyzed: z.ZodNumber;
24
+ chatProvider: z.ZodString;
25
+ embeddingProvider: z.ZodString;
26
+ error: z.ZodOptional<z.ZodString>;
27
+ }, z.core.$strip>;
28
+ interface CreateHandlerOptions {
29
+ sessionPack?: any;
30
+ errorLogger?: any;
31
+ }
32
+ export declare function createAskCodebaseHandler(options?: CreateHandlerOptions): (params: {
33
+ question: string;
34
+ provider?: string;
35
+ chat_provider?: string;
36
+ path?: string;
37
+ max_chunks?: number;
38
+ path_glob?: string | string[];
39
+ tags?: string | string[];
40
+ lang?: string | string[];
41
+ reranker?: "on" | "off";
42
+ multi_query?: boolean;
43
+ temperature?: number;
44
+ }) => Promise<{
45
+ success: boolean;
46
+ content: string;
47
+ metadata?: undefined;
48
+ } | {
49
+ success: boolean;
50
+ content: string;
51
+ metadata: {
52
+ chunksAnalyzed: number;
53
+ queriesUsed: string[] | undefined;
54
+ chatProvider: string;
55
+ embeddingProvider: string;
56
+ };
57
+ }>;
58
+ export declare function registerAskCodebaseTool(server: any, options?: CreateHandlerOptions): (params: {
59
+ question: string;
60
+ provider?: string;
61
+ chat_provider?: string;
62
+ path?: string;
63
+ max_chunks?: number;
64
+ path_glob?: string | string[];
65
+ tags?: string | string[];
66
+ lang?: string | string[];
67
+ reranker?: "on" | "off";
68
+ multi_query?: boolean;
69
+ temperature?: number;
70
+ }) => Promise<{
71
+ success: boolean;
72
+ content: string;
73
+ metadata?: undefined;
74
+ } | {
75
+ success: boolean;
76
+ content: string;
77
+ metadata: {
78
+ chunksAnalyzed: number;
79
+ queriesUsed: string[] | undefined;
80
+ chatProvider: string;
81
+ embeddingProvider: string;
82
+ };
83
+ }>;
84
+ export {};
85
+ //# sourceMappingURL=ask-codebase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-codebase.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/ask-codebase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;iBAYjC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;iBASlC,CAAC;AAEH,UAAU,oBAAoB;IAC5B,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,oBAAyB,IAG3D,QAAQ;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;;;;;;;;;;;;;GAwFF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,GAAE,oBAAyB,YAtG/D;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;;;;;;;;;;;;;GA0HF"}
@@ -0,0 +1,125 @@
1
+ import { z } from 'zod';
2
+ import { synthesizeAnswer } from '../../synthesis/synthesizer.js';
3
+ import { formatSynthesisResult, formatErrorMessage, formatNoResultsMessage } from '../../synthesis/markdown-formatter.js';
4
+ export const askCodebaseInputSchema = z.object({
5
+ question: z.string().min(1, 'Question is required'),
6
+ provider: z.string().optional().default('auto'),
7
+ chat_provider: z.string().optional().default('auto'),
8
+ path: z.string().optional().default('.'),
9
+ max_chunks: z.number().optional().default(10),
10
+ path_glob: z.union([z.string(), z.array(z.string())]).optional(),
11
+ tags: z.union([z.string(), z.array(z.string())]).optional(),
12
+ lang: z.union([z.string(), z.array(z.string())]).optional(),
13
+ reranker: z.enum(['on', 'off']).optional().default('on'),
14
+ multi_query: z.boolean().optional().default(false),
15
+ temperature: z.number().min(0).max(2).optional().default(0.7)
16
+ });
17
+ export const askCodebaseResultSchema = z.object({
18
+ success: z.boolean(),
19
+ answer: z.string().optional(),
20
+ query: z.string(),
21
+ queriesUsed: z.array(z.string()).optional(),
22
+ chunksAnalyzed: z.number(),
23
+ chatProvider: z.string(),
24
+ embeddingProvider: z.string(),
25
+ error: z.string().optional()
26
+ });
27
+ export function createAskCodebaseHandler(options = {}) {
28
+ const { sessionPack, errorLogger } = options;
29
+ return async (params) => {
30
+ const { question, provider = 'auto', chat_provider = 'auto', path: workingPath = '.', max_chunks = 10, path_glob, tags, lang, reranker = 'on', multi_query = false, temperature = 0.7 } = params;
31
+ try {
32
+ const scopeFilters = {
33
+ path_glob: Array.isArray(path_glob) ? path_glob : path_glob ? [path_glob] : undefined,
34
+ tags: Array.isArray(tags) ? tags : tags ? [tags] : undefined,
35
+ lang: Array.isArray(lang) ? lang : lang ? [lang] : undefined
36
+ };
37
+ if (errorLogger?.debugLog) {
38
+ errorLogger.debugLog('ask_codebase called', {
39
+ question,
40
+ provider,
41
+ chat_provider,
42
+ workingPath,
43
+ max_chunks
44
+ });
45
+ }
46
+ const result = await synthesizeAnswer(question, {
47
+ provider,
48
+ chatProvider: chat_provider,
49
+ workingPath,
50
+ scope: scopeFilters,
51
+ maxChunks: max_chunks,
52
+ useReranking: reranker === 'on',
53
+ useMultiQuery: multi_query,
54
+ temperature
55
+ });
56
+ if (!result.success) {
57
+ if (result.error === 'no_results') {
58
+ return {
59
+ success: false,
60
+ content: formatNoResultsMessage(result.query, result.queriesUsed)
61
+ };
62
+ }
63
+ return {
64
+ success: false,
65
+ content: formatErrorMessage(result.error || 'Unknown error', result.query)
66
+ };
67
+ }
68
+ const formattedResult = formatSynthesisResult(result, {
69
+ includeMetadata: true,
70
+ includeStats: true
71
+ });
72
+ return {
73
+ success: true,
74
+ content: formattedResult,
75
+ metadata: {
76
+ chunksAnalyzed: result.chunksAnalyzed,
77
+ queriesUsed: result.queriesUsed,
78
+ chatProvider: result.chatProvider,
79
+ embeddingProvider: result.embeddingProvider
80
+ }
81
+ };
82
+ }
83
+ catch (error) {
84
+ if (errorLogger?.log) {
85
+ errorLogger.log(error, {
86
+ operation: 'ask_codebase',
87
+ question,
88
+ path: workingPath
89
+ });
90
+ }
91
+ return {
92
+ success: false,
93
+ content: formatErrorMessage(error.message, question)
94
+ };
95
+ }
96
+ };
97
+ }
98
+ export function registerAskCodebaseTool(server, options = {}) {
99
+ const handler = createAskCodebaseHandler(options);
100
+ server.tool('ask_codebase', {
101
+ question: z.string().min(1).describe('Natural language question about the codebase'),
102
+ provider: z.string().optional().describe('Embedding provider (auto|openai)'),
103
+ chat_provider: z.string().optional().describe('Chat LLM provider (auto|openai)'),
104
+ path: z.string().optional().describe('Project root directory (default: ".")'),
105
+ max_chunks: z.number().optional().describe('Maximum code chunks to analyze (default: 10)'),
106
+ path_glob: z.union([z.string(), z.array(z.string())]).optional().describe('File patterns to filter'),
107
+ tags: z.union([z.string(), z.array(z.string())]).optional().describe('Tags to filter'),
108
+ lang: z.union([z.string(), z.array(z.string())]).optional().describe('Languages to filter'),
109
+ reranker: z.enum(['on', 'off']).optional().describe('Use API reranking (default: on)'),
110
+ multi_query: z.boolean().optional().describe('Break complex questions into sub-queries'),
111
+ temperature: z.number().min(0).max(2).optional().describe('LLM temperature (default: 0.7)')
112
+ }, async (params) => {
113
+ const result = await handler(params);
114
+ return {
115
+ content: [
116
+ {
117
+ type: 'text',
118
+ text: result.content
119
+ }
120
+ ]
121
+ };
122
+ });
123
+ return handler;
124
+ }
125
+ //# sourceMappingURL=ask-codebase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-codebase.js","sourceRoot":"","sources":["../../../src/mcp/tools/ask-codebase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { z } from 'zod';
2
+ export declare const useContextPackInputSchema: z.ZodObject<{
3
+ name: z.ZodString;
4
+ path: z.ZodOptional<z.ZodString>;
5
+ }, z.core.$strip>;
6
+ export declare const useContextPackResultSchema: z.ZodObject<{
7
+ success: z.ZodBoolean;
8
+ message: z.ZodString;
9
+ pack: z.ZodOptional<z.ZodObject<{
10
+ key: z.ZodString;
11
+ name: z.ZodString;
12
+ description: z.ZodNullable<z.ZodString>;
13
+ scope: z.ZodRecord<z.ZodString, z.ZodAny>;
14
+ }, z.core.$strip>>;
15
+ }, z.core.$strip>;
16
+ interface CreateHandlerOptions {
17
+ getWorkingPath: () => string;
18
+ setSessionPack: (pack: any) => void;
19
+ clearSessionPack: () => void;
20
+ errorLogger?: any;
21
+ }
22
+ export declare function createUseContextPackHandler(options: CreateHandlerOptions): ({ name, path: explicitPath }: {
23
+ name: string;
24
+ path?: string;
25
+ }) => Promise<{
26
+ success: boolean;
27
+ message: string;
28
+ pack?: undefined;
29
+ } | {
30
+ success: boolean;
31
+ message: string;
32
+ pack: {
33
+ key: string;
34
+ name: string;
35
+ description: string | null;
36
+ scope: Record<string, any>;
37
+ };
38
+ }>;
39
+ export declare function registerUseContextPackTool(server: any, options: CreateHandlerOptions): ({ name, path: explicitPath }: {
40
+ name: string;
41
+ path?: string;
42
+ }) => Promise<{
43
+ success: boolean;
44
+ message: string;
45
+ pack?: undefined;
46
+ } | {
47
+ success: boolean;
48
+ message: string;
49
+ pack: {
50
+ key: string;
51
+ name: string;
52
+ description: string | null;
53
+ scope: Record<string, any>;
54
+ };
55
+ }>;
56
+ export {};
57
+ //# sourceMappingURL=use-context-pack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-context-pack.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/use-context-pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,yBAAyB;;;iBAGpC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;iBASrC,CAAC;AAEH,UAAU,oBAAoB;IAC5B,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,oBAAoB,IAGzD,8BAA8B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;GAyD5E;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,oBAAoB,kCA3DvC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;GAkF5E"}