@j0hanz/filesystem-context-mcp 1.1.0 → 1.2.0

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 (285) hide show
  1. package/README.md +106 -29
  2. package/dist/__tests__/lib/errors.test.js +3 -23
  3. package/dist/__tests__/lib/errors.test.js.map +1 -1
  4. package/dist/__tests__/lib/file-operations.test.js +34 -0
  5. package/dist/__tests__/lib/file-operations.test.js.map +1 -1
  6. package/dist/__tests__/lib/path-validation.test.js +8 -0
  7. package/dist/__tests__/lib/path-validation.test.js.map +1 -1
  8. package/dist/__tests__/schemas/validators.test.js +101 -122
  9. package/dist/__tests__/schemas/validators.test.js.map +1 -1
  10. package/dist/__tests__/security/filesystem-boundary.test.js +1 -1
  11. package/dist/__tests__/security/filesystem-boundary.test.js.map +1 -1
  12. package/dist/config/types.d.ts +1 -85
  13. package/dist/config/types.d.ts.map +1 -1
  14. package/dist/config/types.js +0 -2
  15. package/dist/config/types.js.map +1 -1
  16. package/dist/index.js +3 -3
  17. package/dist/index.js.map +1 -1
  18. package/dist/instructions.md +1 -2
  19. package/dist/lib/constants.d.ts +3 -1
  20. package/dist/lib/constants.d.ts.map +1 -1
  21. package/dist/lib/constants.js +66 -258
  22. package/dist/lib/constants.js.map +1 -1
  23. package/dist/lib/errors.d.ts +25 -3
  24. package/dist/lib/errors.d.ts.map +1 -1
  25. package/dist/lib/errors.js +4 -94
  26. package/dist/lib/errors.js.map +1 -1
  27. package/dist/lib/file-operations/analyze-directory.d.ts +8 -0
  28. package/dist/lib/file-operations/analyze-directory.d.ts.map +1 -0
  29. package/dist/lib/file-operations/analyze-directory.js +117 -0
  30. package/dist/lib/file-operations/analyze-directory.js.map +1 -0
  31. package/dist/lib/file-operations/directory-items.d.ts +20 -0
  32. package/dist/lib/file-operations/directory-items.d.ts.map +1 -0
  33. package/dist/lib/file-operations/directory-items.js +85 -0
  34. package/dist/lib/file-operations/directory-items.js.map +1 -0
  35. package/dist/lib/file-operations/directory-iteration.d.ts +17 -0
  36. package/dist/lib/file-operations/directory-iteration.d.ts.map +1 -0
  37. package/dist/lib/file-operations/directory-iteration.js +55 -0
  38. package/dist/lib/file-operations/directory-iteration.js.map +1 -0
  39. package/dist/lib/file-operations/directory-tree.d.ts +9 -0
  40. package/dist/lib/file-operations/directory-tree.d.ts.map +1 -0
  41. package/dist/lib/file-operations/directory-tree.js +175 -0
  42. package/dist/lib/file-operations/directory-tree.js.map +1 -0
  43. package/dist/lib/file-operations/file-info.d.ts +3 -0
  44. package/dist/lib/file-operations/file-info.d.ts.map +1 -0
  45. package/dist/lib/file-operations/file-info.js +56 -0
  46. package/dist/lib/file-operations/file-info.js.map +1 -0
  47. package/dist/lib/file-operations/list-directory.d.ts +10 -0
  48. package/dist/lib/file-operations/list-directory.d.ts.map +1 -0
  49. package/dist/lib/file-operations/list-directory.js +189 -0
  50. package/dist/lib/file-operations/list-directory.js.map +1 -0
  51. package/dist/lib/file-operations/read-media-file.d.ts +5 -0
  52. package/dist/lib/file-operations/read-media-file.d.ts.map +1 -0
  53. package/dist/lib/file-operations/read-media-file.js +31 -0
  54. package/dist/lib/file-operations/read-media-file.js.map +1 -0
  55. package/dist/lib/file-operations/read-multiple-files.d.ts +16 -0
  56. package/dist/lib/file-operations/read-multiple-files.d.ts.map +1 -0
  57. package/dist/lib/file-operations/read-multiple-files.js +98 -0
  58. package/dist/lib/file-operations/read-multiple-files.js.map +1 -0
  59. package/dist/lib/file-operations/search-content.d.ts +16 -0
  60. package/dist/lib/file-operations/search-content.d.ts.map +1 -0
  61. package/dist/lib/file-operations/search-content.js +431 -0
  62. package/dist/lib/file-operations/search-content.js.map +1 -0
  63. package/dist/lib/file-operations/search-files.d.ts +9 -0
  64. package/dist/lib/file-operations/search-files.d.ts.map +1 -0
  65. package/dist/lib/file-operations/search-files.js +139 -0
  66. package/dist/lib/file-operations/search-files.js.map +1 -0
  67. package/dist/lib/file-operations/sorting.d.ts +12 -0
  68. package/dist/lib/file-operations/sorting.d.ts.map +1 -0
  69. package/dist/lib/file-operations/sorting.js +24 -0
  70. package/dist/lib/file-operations/sorting.js.map +1 -0
  71. package/dist/lib/file-operations.d.ts +9 -57
  72. package/dist/lib/file-operations.d.ts.map +1 -1
  73. package/dist/lib/file-operations.js +9 -773
  74. package/dist/lib/file-operations.js.map +1 -1
  75. package/dist/lib/fs-helpers/binary-detect.d.ts +3 -0
  76. package/dist/lib/fs-helpers/binary-detect.d.ts.map +1 -0
  77. package/dist/lib/fs-helpers/binary-detect.js +54 -0
  78. package/dist/lib/fs-helpers/binary-detect.js.map +1 -0
  79. package/dist/lib/fs-helpers/concurrency.d.ts +11 -0
  80. package/dist/lib/fs-helpers/concurrency.d.ts.map +1 -0
  81. package/dist/lib/fs-helpers/concurrency.js +95 -0
  82. package/dist/lib/fs-helpers/concurrency.js.map +1 -0
  83. package/dist/lib/fs-helpers/fs-utils.d.ts +5 -0
  84. package/dist/lib/fs-helpers/fs-utils.d.ts.map +1 -0
  85. package/dist/lib/fs-helpers/fs-utils.js +13 -0
  86. package/dist/lib/fs-helpers/fs-utils.js.map +1 -0
  87. package/dist/lib/fs-helpers/readers/head-file.d.ts +2 -0
  88. package/dist/lib/fs-helpers/readers/head-file.d.ts.map +1 -0
  89. package/dist/lib/fs-helpers/readers/head-file.js +73 -0
  90. package/dist/lib/fs-helpers/readers/head-file.js.map +1 -0
  91. package/dist/lib/fs-helpers/readers/line-range.d.ts +7 -0
  92. package/dist/lib/fs-helpers/readers/line-range.d.ts.map +1 -0
  93. package/dist/lib/fs-helpers/readers/line-range.js +46 -0
  94. package/dist/lib/fs-helpers/readers/line-range.js.map +1 -0
  95. package/dist/lib/fs-helpers/readers/read-file.d.ts +16 -0
  96. package/dist/lib/fs-helpers/readers/read-file.d.ts.map +1 -0
  97. package/dist/lib/fs-helpers/readers/read-file.js +87 -0
  98. package/dist/lib/fs-helpers/readers/read-file.js.map +1 -0
  99. package/dist/lib/fs-helpers/readers/tail-file.d.ts +2 -0
  100. package/dist/lib/fs-helpers/readers/tail-file.d.ts.map +1 -0
  101. package/dist/lib/fs-helpers/readers/tail-file.js +98 -0
  102. package/dist/lib/fs-helpers/readers/tail-file.js.map +1 -0
  103. package/dist/lib/fs-helpers/readers/utf8.d.ts +3 -0
  104. package/dist/lib/fs-helpers/readers/utf8.d.ts.map +1 -0
  105. package/dist/lib/fs-helpers/readers/utf8.js +22 -0
  106. package/dist/lib/fs-helpers/readers/utf8.js.map +1 -0
  107. package/dist/lib/fs-helpers/readers.d.ts +4 -0
  108. package/dist/lib/fs-helpers/readers.d.ts.map +1 -0
  109. package/dist/lib/fs-helpers/readers.js +4 -0
  110. package/dist/lib/fs-helpers/readers.js.map +1 -0
  111. package/dist/lib/fs-helpers.d.ts +4 -25
  112. package/dist/lib/fs-helpers.d.ts.map +1 -1
  113. package/dist/lib/fs-helpers.js +4 -327
  114. package/dist/lib/fs-helpers.js.map +1 -1
  115. package/dist/lib/path-validation/allowed-directories.d.ts +9 -0
  116. package/dist/lib/path-validation/allowed-directories.d.ts.map +1 -0
  117. package/dist/lib/path-validation/allowed-directories.js +94 -0
  118. package/dist/lib/path-validation/allowed-directories.js.map +1 -0
  119. package/dist/lib/path-validation/errors.d.ts +5 -0
  120. package/dist/lib/path-validation/errors.d.ts.map +1 -0
  121. package/dist/lib/path-validation/errors.js +33 -0
  122. package/dist/lib/path-validation/errors.js.map +1 -0
  123. package/dist/lib/path-validation/roots.d.ts +3 -0
  124. package/dist/lib/path-validation/roots.d.ts.map +1 -0
  125. package/dist/lib/path-validation/roots.js +49 -0
  126. package/dist/lib/path-validation/roots.js.map +1 -0
  127. package/dist/lib/path-validation/validators.d.ts +9 -0
  128. package/dist/lib/path-validation/validators.d.ts.map +1 -0
  129. package/dist/lib/path-validation/validators.js +70 -0
  130. package/dist/lib/path-validation/validators.js.map +1 -0
  131. package/dist/lib/path-validation.d.ts +3 -7
  132. package/dist/lib/path-validation.d.ts.map +1 -1
  133. package/dist/lib/path-validation.js +3 -141
  134. package/dist/lib/path-validation.js.map +1 -1
  135. package/dist/schemas/input-helpers.d.ts +8 -0
  136. package/dist/schemas/input-helpers.d.ts.map +1 -0
  137. package/dist/schemas/input-helpers.js +44 -0
  138. package/dist/schemas/input-helpers.js.map +1 -0
  139. package/dist/schemas/inputs.d.ts +8 -5
  140. package/dist/schemas/inputs.d.ts.map +1 -1
  141. package/dist/schemas/inputs.js +41 -64
  142. package/dist/schemas/inputs.js.map +1 -1
  143. package/dist/schemas/output-helpers.d.ts +24 -0
  144. package/dist/schemas/output-helpers.d.ts.map +1 -0
  145. package/dist/schemas/output-helpers.js +13 -0
  146. package/dist/schemas/output-helpers.js.map +1 -0
  147. package/dist/schemas/outputs.d.ts +476 -42
  148. package/dist/schemas/outputs.d.ts.map +1 -1
  149. package/dist/schemas/outputs.js +26 -41
  150. package/dist/schemas/outputs.js.map +1 -1
  151. package/dist/server.d.ts +9 -1
  152. package/dist/server.d.ts.map +1 -1
  153. package/dist/server.js +28 -42
  154. package/dist/server.js.map +1 -1
  155. package/dist/tools/analyze-directory.d.ts.map +1 -1
  156. package/dist/tools/analyze-directory.js +115 -53
  157. package/dist/tools/analyze-directory.js.map +1 -1
  158. package/dist/tools/directory-tree.d.ts.map +1 -1
  159. package/dist/tools/directory-tree.js +86 -49
  160. package/dist/tools/directory-tree.js.map +1 -1
  161. package/dist/tools/get-file-info.d.ts.map +1 -1
  162. package/dist/tools/get-file-info.js +71 -37
  163. package/dist/tools/get-file-info.js.map +1 -1
  164. package/dist/tools/list-allowed-dirs.d.ts.map +1 -1
  165. package/dist/tools/list-allowed-dirs.js +48 -35
  166. package/dist/tools/list-allowed-dirs.js.map +1 -1
  167. package/dist/tools/list-directory.d.ts.map +1 -1
  168. package/dist/tools/list-directory.js +129 -58
  169. package/dist/tools/list-directory.js.map +1 -1
  170. package/dist/tools/read-file.d.ts.map +1 -1
  171. package/dist/tools/read-file.js +70 -56
  172. package/dist/tools/read-file.js.map +1 -1
  173. package/dist/tools/read-media-file.d.ts.map +1 -1
  174. package/dist/tools/read-media-file.js +39 -41
  175. package/dist/tools/read-media-file.js.map +1 -1
  176. package/dist/tools/read-multiple-files.d.ts.map +1 -1
  177. package/dist/tools/read-multiple-files.js +58 -50
  178. package/dist/tools/read-multiple-files.js.map +1 -1
  179. package/dist/tools/search-content.d.ts.map +1 -1
  180. package/dist/tools/search-content.js +146 -89
  181. package/dist/tools/search-content.js.map +1 -1
  182. package/dist/tools/search-files.d.ts.map +1 -1
  183. package/dist/tools/search-files.js +121 -50
  184. package/dist/tools/search-files.js.map +1 -1
  185. package/dist/tools/tool-response.d.ts +9 -0
  186. package/dist/tools/tool-response.d.ts.map +1 -0
  187. package/dist/tools/tool-response.js +7 -0
  188. package/dist/tools/tool-response.js.map +1 -0
  189. package/package.json +2 -1
  190. package/dist/__tests__/errors.test.d.ts +0 -2
  191. package/dist/__tests__/errors.test.d.ts.map +0 -1
  192. package/dist/__tests__/errors.test.js +0 -88
  193. package/dist/__tests__/errors.test.js.map +0 -1
  194. package/dist/__tests__/file-operations.test.d.ts +0 -2
  195. package/dist/__tests__/file-operations.test.d.ts.map +0 -1
  196. package/dist/__tests__/file-operations.test.js +0 -230
  197. package/dist/__tests__/file-operations.test.js.map +0 -1
  198. package/dist/__tests__/lib/formatters.test.d.ts +0 -2
  199. package/dist/__tests__/lib/formatters.test.d.ts.map +0 -1
  200. package/dist/__tests__/lib/formatters.test.js +0 -248
  201. package/dist/__tests__/lib/formatters.test.js.map +0 -1
  202. package/dist/__tests__/lib/image-parsing.test.d.ts +0 -2
  203. package/dist/__tests__/lib/image-parsing.test.d.ts.map +0 -1
  204. package/dist/__tests__/lib/image-parsing.test.js +0 -262
  205. package/dist/__tests__/lib/image-parsing.test.js.map +0 -1
  206. package/dist/__tests__/path-validation.test.d.ts +0 -2
  207. package/dist/__tests__/path-validation.test.d.ts.map +0 -1
  208. package/dist/__tests__/path-validation.test.js +0 -92
  209. package/dist/__tests__/path-validation.test.js.map +0 -1
  210. package/dist/lib/directory-helpers.d.ts +0 -4
  211. package/dist/lib/directory-helpers.d.ts.map +0 -1
  212. package/dist/lib/directory-helpers.js +0 -36
  213. package/dist/lib/directory-helpers.js.map +0 -1
  214. package/dist/lib/formatters.d.ts +0 -10
  215. package/dist/lib/formatters.d.ts.map +0 -1
  216. package/dist/lib/formatters.js +0 -202
  217. package/dist/lib/formatters.js.map +0 -1
  218. package/dist/lib/image-parsing.d.ts +0 -4
  219. package/dist/lib/image-parsing.d.ts.map +0 -1
  220. package/dist/lib/image-parsing.js +0 -124
  221. package/dist/lib/image-parsing.js.map +0 -1
  222. package/dist/lib/mcp-logger.d.ts +0 -11
  223. package/dist/lib/mcp-logger.d.ts.map +0 -1
  224. package/dist/lib/mcp-logger.js +0 -49
  225. package/dist/lib/mcp-logger.js.map +0 -1
  226. package/dist/lib/roots-utils.d.ts +0 -7
  227. package/dist/lib/roots-utils.d.ts.map +0 -1
  228. package/dist/lib/roots-utils.js +0 -39
  229. package/dist/lib/roots-utils.js.map +0 -1
  230. package/dist/lib/search-helpers.d.ts +0 -16
  231. package/dist/lib/search-helpers.d.ts.map +0 -1
  232. package/dist/lib/search-helpers.js +0 -169
  233. package/dist/lib/search-helpers.js.map +0 -1
  234. package/dist/lib/sorting.d.ts +0 -12
  235. package/dist/lib/sorting.d.ts.map +0 -1
  236. package/dist/lib/sorting.js +0 -41
  237. package/dist/lib/sorting.js.map +0 -1
  238. package/dist/lib/types.d.ts +0 -6
  239. package/dist/lib/types.d.ts.map +0 -1
  240. package/dist/lib/types.js +0 -2
  241. package/dist/lib/types.js.map +0 -1
  242. package/dist/prompts/analyze-codebase.d.ts +0 -3
  243. package/dist/prompts/analyze-codebase.d.ts.map +0 -1
  244. package/dist/prompts/analyze-codebase.js +0 -144
  245. package/dist/prompts/analyze-codebase.js.map +0 -1
  246. package/dist/prompts/filesystem-query.d.ts +0 -3
  247. package/dist/prompts/filesystem-query.d.ts.map +0 -1
  248. package/dist/prompts/filesystem-query.js +0 -168
  249. package/dist/prompts/filesystem-query.js.map +0 -1
  250. package/dist/prompts/find-duplicates.d.ts +0 -3
  251. package/dist/prompts/find-duplicates.d.ts.map +0 -1
  252. package/dist/prompts/find-duplicates.js +0 -77
  253. package/dist/prompts/find-duplicates.js.map +0 -1
  254. package/dist/prompts/index.d.ts +0 -3
  255. package/dist/prompts/index.d.ts.map +0 -1
  256. package/dist/prompts/index.js +0 -13
  257. package/dist/prompts/index.js.map +0 -1
  258. package/dist/prompts/project-overview.d.ts +0 -3
  259. package/dist/prompts/project-overview.d.ts.map +0 -1
  260. package/dist/prompts/project-overview.js +0 -122
  261. package/dist/prompts/project-overview.js.map +0 -1
  262. package/dist/prompts/search-and-replace.d.ts +0 -3
  263. package/dist/prompts/search-and-replace.d.ts.map +0 -1
  264. package/dist/prompts/search-and-replace.js +0 -130
  265. package/dist/prompts/search-and-replace.js.map +0 -1
  266. package/dist/prompts/shared.d.ts +0 -11
  267. package/dist/prompts/shared.d.ts.map +0 -1
  268. package/dist/prompts/shared.js +0 -32
  269. package/dist/prompts/shared.js.map +0 -1
  270. package/dist/resources/index.d.ts +0 -3
  271. package/dist/resources/index.d.ts.map +0 -1
  272. package/dist/resources/index.js +0 -54
  273. package/dist/resources/index.js.map +0 -1
  274. package/dist/schemas/validators.d.ts +0 -12
  275. package/dist/schemas/validators.d.ts.map +0 -1
  276. package/dist/schemas/validators.js +0 -35
  277. package/dist/schemas/validators.js.map +0 -1
  278. package/dist/utils/index.d.ts +0 -2
  279. package/dist/utils/index.d.ts.map +0 -1
  280. package/dist/utils/index.js +0 -2
  281. package/dist/utils/index.js.map +0 -1
  282. package/dist/utils/response-helpers.d.ts +0 -22
  283. package/dist/utils/response-helpers.d.ts.map +0 -1
  284. package/dist/utils/response-helpers.js +0 -24
  285. package/dist/utils/response-helpers.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"list-directory.js","sourceRoot":"","sources":["../../src/tools/list-directory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-directory.js","sourceRoot":"","sources":["../../src/tools/list-directory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../src/tools/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6E5D"}
1
+ {"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../src/tools/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsGzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAQ5D"}
@@ -1,65 +1,79 @@
1
- import { createErrorResponse, ErrorCode, validateMutuallyExclusive, validateOptionPair, } from '../lib/errors.js';
1
+ import { createErrorResponse, ErrorCode, McpError } from '../lib/errors.js';
2
2
  import { readFile } from '../lib/file-operations.js';
3
3
  import { ReadFileInputSchema, ReadFileOutputSchema } from '../schemas/index.js';
4
+ import { buildToolResponse } from './tool-response.js';
5
+ function buildLineRange(lineStart, lineEnd, filePath) {
6
+ const hasLineStart = lineStart !== undefined;
7
+ const hasLineEnd = lineEnd !== undefined;
8
+ if (hasLineStart !== hasLineEnd) {
9
+ const missing = hasLineStart ? 'lineEnd' : 'lineStart';
10
+ const provided = hasLineStart ? 'lineStart' : 'lineEnd';
11
+ throw new McpError(ErrorCode.E_INVALID_INPUT, `Invalid lineRange: ${provided} requires ${missing} to also be specified`, filePath);
12
+ }
13
+ if (lineStart !== undefined && lineEnd !== undefined) {
14
+ return { start: lineStart, end: lineEnd };
15
+ }
16
+ return undefined;
17
+ }
18
+ function buildTextResult(result, head, tail) {
19
+ let text = result.content;
20
+ if (result.truncated) {
21
+ if (result.totalLines) {
22
+ text += `\n\n[Showing requested lines. Total lines in file: ${result.totalLines}]`;
23
+ }
24
+ else if (head !== undefined) {
25
+ text += `\n\n[Showing first ${String(head)} lines]`;
26
+ }
27
+ else if (tail !== undefined) {
28
+ text += `\n\n[Showing last ${String(tail)} lines]`;
29
+ }
30
+ }
31
+ else if (result.totalLines) {
32
+ text += `\n\n[Total lines: ${result.totalLines}]`;
33
+ }
34
+ return text;
35
+ }
36
+ async function handleReadFile(args) {
37
+ const lineRange = buildLineRange(args.lineStart, args.lineEnd, args.path);
38
+ const result = await readFile(args.path, {
39
+ encoding: args.encoding,
40
+ maxSize: args.maxSize,
41
+ lineRange,
42
+ head: args.head,
43
+ tail: args.tail,
44
+ });
45
+ const structured = {
46
+ ok: true,
47
+ path: args.path,
48
+ content: result.content,
49
+ truncated: result.truncated,
50
+ totalLines: result.totalLines,
51
+ };
52
+ const text = buildTextResult(result, args.head, args.tail);
53
+ return buildToolResponse(text, structured);
54
+ }
55
+ const READ_FILE_TOOL = {
56
+ title: 'Read File',
57
+ description: 'Read the text contents of a single file. ' +
58
+ 'Supports different encodings and partial reads via head (first N lines), tail (last N lines), ' +
59
+ 'or lineStart/lineEnd (specific line range). ' +
60
+ 'For multiple files, use read_multiple_files for efficiency. ' +
61
+ 'For binary/media files, use read_media_file instead.',
62
+ inputSchema: ReadFileInputSchema,
63
+ outputSchema: ReadFileOutputSchema,
64
+ annotations: {
65
+ readOnlyHint: true,
66
+ idempotentHint: true,
67
+ openWorldHint: true,
68
+ },
69
+ };
4
70
  export function registerReadFileTool(server) {
5
- server.registerTool('read_file', {
6
- title: 'Read File',
7
- description: 'Read the text contents of a single file. ' +
8
- 'Supports different encodings and partial reads via head (first N lines), tail (last N lines), ' +
9
- 'or lineStart/lineEnd (specific line range). ' +
10
- 'For multiple files, use read_multiple_files for efficiency. ' +
11
- 'For binary/media files, use read_media_file instead.',
12
- inputSchema: ReadFileInputSchema,
13
- outputSchema: ReadFileOutputSchema,
14
- annotations: {
15
- readOnlyHint: true,
16
- idempotentHint: true,
17
- openWorldHint: true,
18
- },
19
- }, async ({ path, encoding, maxSize, lineStart, lineEnd, head, tail }) => {
71
+ server.registerTool('read_file', READ_FILE_TOOL, async (args) => {
20
72
  try {
21
- // Validate option constraints early (before file I/O)
22
- validateOptionPair({ lineStart, lineEnd }, 'lineStart', 'lineEnd', path);
23
- validateMutuallyExclusive({ lineRange: lineStart, head, tail }, ['lineRange', 'head', 'tail'], path);
24
- const lineRange = lineStart !== undefined && lineEnd !== undefined
25
- ? { start: lineStart, end: lineEnd }
26
- : undefined;
27
- const result = await readFile(path, {
28
- encoding,
29
- maxSize,
30
- lineRange,
31
- head,
32
- tail,
33
- });
34
- let text = result.content;
35
- if (result.truncated) {
36
- if (result.totalLines) {
37
- text += `\n\n[Showing requested lines. Total lines in file: ${result.totalLines}]`;
38
- }
39
- else if (head !== undefined) {
40
- text += `\n\n[Showing first ${String(head)} lines]`;
41
- }
42
- else if (tail !== undefined) {
43
- text += `\n\n[Showing last ${String(tail)} lines]`;
44
- }
45
- }
46
- else if (result.totalLines) {
47
- text += `\n\n[Total lines: ${result.totalLines}]`;
48
- }
49
- const structured = {
50
- ok: true,
51
- path,
52
- content: result.content,
53
- truncated: result.truncated,
54
- totalLines: result.totalLines,
55
- };
56
- return {
57
- content: [{ type: 'text', text }],
58
- structuredContent: structured,
59
- };
73
+ return await handleReadFile(args);
60
74
  }
61
75
  catch (error) {
62
- return createErrorResponse(error, ErrorCode.E_NOT_FILE, path);
76
+ return createErrorResponse(error, ErrorCode.E_NOT_FILE, args.path);
63
77
  }
64
78
  });
65
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../src/tools/read-file.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhF,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,WAAW;QAClB,WAAW,EACT,2CAA2C;YAC3C,gGAAgG;YAChG,8CAA8C;YAC9C,8DAA8D;YAC9D,sDAAsD;QACxD,WAAW,EAAE,mBAAmB;QAChC,YAAY,EAAE,oBAAoB;QAClC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QACpE,IAAI,CAAC;YACH,sDAAsD;YACtD,kBAAkB,CAChB,EAAE,SAAS,EAAE,OAAO,EAAE,EACtB,WAAW,EACX,SAAS,EACT,IAAI,CACL,CAAC;YACF,yBAAyB,CACvB,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EACpC,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAC7B,IAAI,CACL,CAAC;YAEF,MAAM,SAAS,GACb,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;gBAC9C,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE;gBACpC,CAAC,CAAC,SAAS,CAAC;YAEhB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;gBAClC,QAAQ;gBACR,OAAO;gBACP,SAAS;gBACT,IAAI;gBACJ,IAAI;aACL,CAAC,CAAC;YAEH,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;YAC1B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACtB,IAAI,IAAI,sDAAsD,MAAM,CAAC,UAAU,GAAG,CAAC;gBACrF,CAAC;qBAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC9B,IAAI,IAAI,sBAAsB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;gBACtD,CAAC;qBAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC9B,IAAI,IAAI,qBAAqB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrD,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC7B,IAAI,IAAI,qBAAqB,MAAM,CAAC,UAAU,GAAG,CAAC;YACpD,CAAC;YAED,MAAM,UAAU,GAAG;gBACjB,EAAE,EAAE,IAAI;gBACR,IAAI;gBACJ,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACjC,iBAAiB,EAAE,UAAU;aAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../src/tools/read-file.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAqB,MAAM,oBAAoB,CAAC;AAE1E,SAAS,cAAc,CACrB,SAA6B,EAC7B,OAA2B,EAC3B,QAAgB;IAEhB,MAAM,YAAY,GAAG,SAAS,KAAK,SAAS,CAAC;IAC7C,MAAM,UAAU,GAAG,OAAO,KAAK,SAAS,CAAC;IACzC,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;QACvD,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QACxD,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,eAAe,EACzB,sBAAsB,QAAQ,aAAa,OAAO,uBAAuB,EACzE,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CACtB,MAA4C,EAC5C,IAAwB,EACxB,IAAwB;IAExB,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,IAAI,sDAAsD,MAAM,CAAC,UAAU,GAAG,CAAC;QACrF,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,IAAI,sBAAsB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACtD,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,IAAI,qBAAqB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACrD,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC7B,IAAI,IAAI,qBAAqB,MAAM,CAAC,UAAU,GAAG,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAID,KAAK,UAAU,cAAc,CAAC,IAQ7B;IACC,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;QACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS;QACT,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,UAAU,GAA6B;QAC3C,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC;IAEF,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,cAAc,GAAG;IACrB,KAAK,EAAE,WAAW;IAClB,WAAW,EACT,2CAA2C;QAC3C,gGAAgG;QAChG,8CAA8C;QAC9C,8DAA8D;QAC9D,sDAAsD;IACxD,WAAW,EAAE,mBAAmB;IAChC,YAAY,EAAE,oBAAoB;IAClC,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;CACO,CAAC;AAEX,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC9D,IAAI,CAAC;YACH,OAAO,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"read-media-file.d.ts","sourceRoot":"","sources":["../../src/tools/read-media-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0DjE"}
1
+ {"version":3,"file":"read-media-file.d.ts","sourceRoot":"","sources":["../../src/tools/read-media-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmEzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAQjE"}
@@ -1,51 +1,49 @@
1
1
  import { createErrorResponse, ErrorCode } from '../lib/errors.js';
2
2
  import { readMediaFile } from '../lib/file-operations.js';
3
3
  import { ReadMediaFileInputSchema, ReadMediaFileOutputSchema, } from '../schemas/index.js';
4
+ import { buildToolResponse } from './tool-response.js';
5
+ function buildStructuredResult(result) {
6
+ return {
7
+ ok: true,
8
+ path: result.path,
9
+ mimeType: result.mimeType,
10
+ size: result.size,
11
+ data: result.data,
12
+ };
13
+ }
14
+ function buildTextResult(result) {
15
+ const textLines = [
16
+ `File: ${result.path}`,
17
+ `MIME Type: ${result.mimeType}`,
18
+ `Size: ${result.size} bytes`,
19
+ `Data: [base64 encoded, ${result.data.length} characters]`,
20
+ ];
21
+ return textLines.join('\n');
22
+ }
23
+ async function handleReadMediaFile({ path, maxSize, }) {
24
+ const result = await readMediaFile(path, { maxSize });
25
+ return buildToolResponse(buildTextResult(result), buildStructuredResult(result));
26
+ }
27
+ const READ_MEDIA_FILE_TOOL = {
28
+ title: 'Read Media File',
29
+ description: 'Read binary/media files (images, audio, fonts, etc.) and return as base64-encoded data with MIME type. ' +
30
+ 'Use this instead of read_file for non-text files. ' +
31
+ 'Supports common formats: PNG, JPG, GIF, WebP, SVG, MP3, WAV, TTF, WOFF2, etc.',
32
+ inputSchema: ReadMediaFileInputSchema,
33
+ outputSchema: ReadMediaFileOutputSchema,
34
+ annotations: {
35
+ readOnlyHint: true,
36
+ idempotentHint: true,
37
+ openWorldHint: true,
38
+ },
39
+ };
4
40
  export function registerReadMediaFileTool(server) {
5
- server.registerTool('read_media_file', {
6
- title: 'Read Media File',
7
- description: 'Read binary/media files (images, audio, fonts, etc.) and return as base64-encoded data with MIME type. ' +
8
- 'For images, also returns dimensions (width x height) when available. ' +
9
- 'Use this instead of read_file for non-text files. ' +
10
- 'Supports common formats: PNG, JPG, GIF, WebP, SVG, MP3, WAV, TTF, WOFF2, etc.',
11
- inputSchema: ReadMediaFileInputSchema,
12
- outputSchema: ReadMediaFileOutputSchema,
13
- annotations: {
14
- readOnlyHint: true,
15
- idempotentHint: true,
16
- openWorldHint: true,
17
- },
18
- }, async ({ path, maxSize }) => {
41
+ server.registerTool('read_media_file', READ_MEDIA_FILE_TOOL, async (args) => {
19
42
  try {
20
- const result = await readMediaFile(path, { maxSize });
21
- // For text output, show summary not the full base64
22
- const textLines = [
23
- `File: ${result.path}`,
24
- `MIME Type: ${result.mimeType}`,
25
- `Size: ${result.size} bytes`,
26
- ];
27
- // Add dimensions if available
28
- if (result.width !== undefined && result.height !== undefined) {
29
- textLines.push(`Dimensions: ${result.width}x${result.height}`);
30
- }
31
- textLines.push(`Data: [base64 encoded, ${result.data.length} characters]`);
32
- const textOutput = textLines.join('\n');
33
- const structured = {
34
- ok: true,
35
- path: result.path,
36
- mimeType: result.mimeType,
37
- size: result.size,
38
- data: result.data,
39
- width: result.width,
40
- height: result.height,
41
- };
42
- return {
43
- content: [{ type: 'text', text: textOutput }],
44
- structuredContent: structured,
45
- };
43
+ return await handleReadMediaFile(args);
46
44
  }
47
45
  catch (error) {
48
- return createErrorResponse(error, ErrorCode.E_NOT_FILE, path);
46
+ return createErrorResponse(error, ErrorCode.E_NOT_FILE, args.path);
49
47
  }
50
48
  });
51
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"read-media-file.js","sourceRoot":"","sources":["../../src/tools/read-media-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,yGAAyG;YACzG,uEAAuE;YACvE,oDAAoD;YACpD,+EAA+E;QACjF,WAAW,EAAE,wBAAwB;QACrC,YAAY,EAAE,yBAAyB;QACvC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAEtD,oDAAoD;YACpD,MAAM,SAAS,GAAG;gBAChB,SAAS,MAAM,CAAC,IAAI,EAAE;gBACtB,cAAc,MAAM,CAAC,QAAQ,EAAE;gBAC/B,SAAS,MAAM,CAAC,IAAI,QAAQ;aAC7B,CAAC;YAEF,8BAA8B;YAC9B,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC9D,SAAS,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,SAAS,CAAC,IAAI,CACZ,0BAA0B,MAAM,CAAC,IAAI,CAAC,MAAM,cAAc,CAC3D,CAAC;YACF,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAExC,MAAM,UAAU,GAAG;gBACjB,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;gBAC7C,iBAAiB,EAAE,UAAU;aAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"read-media-file.js","sourceRoot":"","sources":["../../src/tools/read-media-file.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAqB,MAAM,oBAAoB,CAAC;AAI1E,SAAS,qBAAqB,CAC5B,MAAiD;IAEjD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,MAAiD;IAEjD,MAAM,SAAS,GAAG;QAChB,SAAS,MAAM,CAAC,IAAI,EAAE;QACtB,cAAc,MAAM,CAAC,QAAQ,EAAE;QAC/B,SAAS,MAAM,CAAC,IAAI,QAAQ;QAC5B,0BAA0B,MAAM,CAAC,IAAI,CAAC,MAAM,cAAc;KAC3D,CAAC;IACF,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,EACjC,IAAI,EACJ,OAAO,GAIR;IACC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACtD,OAAO,iBAAiB,CACtB,eAAe,CAAC,MAAM,CAAC,EACvB,qBAAqB,CAAC,MAAM,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB,GAAG;IAC3B,KAAK,EAAE,iBAAiB;IACxB,WAAW,EACT,yGAAyG;QACzG,oDAAoD;QACpD,+EAA+E;IACjF,WAAW,EAAE,wBAAwB;IACrC,YAAY,EAAE,yBAAyB;IACvC,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;CACO,CAAC;AAEX,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1E,IAAI,CAAC;YACH,OAAO,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"read-multiple-files.d.ts","sourceRoot":"","sources":["../../src/tools/read-multiple-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkErE"}
1
+ {"version":3,"file":"read-multiple-files.d.ts","sourceRoot":"","sources":["../../src/tools/read-multiple-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA6FzE,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAYrE"}
@@ -1,57 +1,65 @@
1
- import { createErrorResponse, ErrorCode, validateMutuallyExclusive, } from '../lib/errors.js';
1
+ import { createErrorResponse, ErrorCode } from '../lib/errors.js';
2
2
  import { readMultipleFiles } from '../lib/file-operations.js';
3
3
  import { ReadMultipleFilesInputSchema, ReadMultipleFilesOutputSchema, } from '../schemas/index.js';
4
- export function registerReadMultipleFilesTool(server) {
5
- server.registerTool('read_multiple_files', {
6
- title: 'Read Multiple Files',
7
- description: 'Read contents of multiple files in a single operation (parallel processing). ' +
8
- 'More efficient than calling read_file repeatedly. ' +
9
- 'Individual file errors do not fail the entire operation—each file reports success or error independently. ' +
10
- 'Supports head/tail for reading partial content from all files.',
11
- inputSchema: ReadMultipleFilesInputSchema,
12
- outputSchema: ReadMultipleFilesOutputSchema,
13
- annotations: {
14
- readOnlyHint: true,
15
- idempotentHint: true,
16
- openWorldHint: true,
4
+ import { buildToolResponse } from './tool-response.js';
5
+ function buildStructuredResult(results) {
6
+ const succeeded = results.filter((r) => r.content !== undefined).length;
7
+ const failed = results.filter((r) => r.error !== undefined).length;
8
+ return {
9
+ ok: true,
10
+ results,
11
+ summary: {
12
+ total: results.length,
13
+ succeeded,
14
+ failed,
17
15
  },
18
- }, async ({ paths, encoding, maxSize, maxTotalSize, head, tail }) => {
16
+ };
17
+ }
18
+ function buildTextResult(results) {
19
+ const textParts = [];
20
+ for (const result of results) {
21
+ if (result.content !== undefined) {
22
+ const note = result.truncated === true
23
+ ? result.totalLines !== undefined
24
+ ? `\n\n[Truncated. Total lines: ${result.totalLines}]`
25
+ : '\n\n[Truncated]'
26
+ : '';
27
+ textParts.push(`=== ${result.path} ===\n${result.content}${note}`);
28
+ }
29
+ else {
30
+ textParts.push(`=== ${result.path} ===\n[Error: ${result.error ?? 'Unknown error'}]`);
31
+ }
32
+ }
33
+ return textParts.join('\n\n');
34
+ }
35
+ async function handleReadMultipleFiles(args) {
36
+ const results = await readMultipleFiles(args.paths, {
37
+ encoding: args.encoding,
38
+ maxSize: args.maxSize,
39
+ maxTotalSize: args.maxTotalSize,
40
+ head: args.head,
41
+ tail: args.tail,
42
+ });
43
+ return buildToolResponse(buildTextResult(results), buildStructuredResult(results));
44
+ }
45
+ const READ_MULTIPLE_FILES_TOOL = {
46
+ title: 'Read Multiple Files',
47
+ description: 'Read contents of multiple files in a single operation (parallel processing). ' +
48
+ 'More efficient than calling read_file repeatedly. ' +
49
+ 'Individual file errors do not fail the entire operation—each file reports success or error independently. ' +
50
+ 'Supports head/tail for reading partial content from all files.',
51
+ inputSchema: ReadMultipleFilesInputSchema,
52
+ outputSchema: ReadMultipleFilesOutputSchema,
53
+ annotations: {
54
+ readOnlyHint: true,
55
+ idempotentHint: true,
56
+ openWorldHint: true,
57
+ },
58
+ };
59
+ export function registerReadMultipleFilesTool(server) {
60
+ server.registerTool('read_multiple_files', READ_MULTIPLE_FILES_TOOL, async (args) => {
19
61
  try {
20
- // Validate head/tail mutual exclusivity early
21
- validateMutuallyExclusive({ head, tail }, ['head', 'tail']);
22
- // Read multiple files in parallel
23
- const results = await readMultipleFiles(paths, {
24
- encoding,
25
- maxSize,
26
- maxTotalSize,
27
- head,
28
- tail,
29
- });
30
- const succeeded = results.filter((r) => r.content !== undefined).length;
31
- const failed = results.filter((r) => r.error !== undefined).length;
32
- // Format text output
33
- const textParts = [];
34
- for (const result of results) {
35
- if (result.content !== undefined) {
36
- textParts.push(`=== ${result.path} ===\n${result.content}`);
37
- }
38
- else {
39
- textParts.push(`=== ${result.path} ===\n[Error: ${result.error ?? 'Unknown error'}]`);
40
- }
41
- }
42
- const structured = {
43
- ok: true,
44
- results,
45
- summary: {
46
- total: results.length,
47
- succeeded,
48
- failed,
49
- },
50
- };
51
- return {
52
- content: [{ type: 'text', text: textParts.join('\n\n') }],
53
- structuredContent: structured,
54
- };
62
+ return await handleReadMultipleFiles(args);
55
63
  }
56
64
  catch (error) {
57
65
  return createErrorResponse(error, ErrorCode.E_UNKNOWN);
@@ -1 +1 @@
1
- {"version":3,"file":"read-multiple-files.js","sourceRoot":"","sources":["../../src/tools/read-multiple-files.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,6BAA6B,CAAC,MAAiB;IAC7D,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,+EAA+E;YAC/E,oDAAoD;YACpD,4GAA4G;YAC5G,gEAAgE;QAClE,WAAW,EAAE,4BAA4B;QACzC,YAAY,EAAE,6BAA6B;QAC3C,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QAC/D,IAAI,CAAC;YACH,8CAA8C;YAC9C,yBAAyB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YAE5D,kCAAkC;YAClC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE;gBAC7C,QAAQ;gBACR,OAAO;gBACP,YAAY;gBACZ,IAAI;gBACJ,IAAI;aACL,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;YACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;YAEnE,qBAAqB;YACrB,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACjC,SAAS,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,IAAI,CACZ,OAAO,MAAM,CAAC,IAAI,iBAAiB,MAAM,CAAC,KAAK,IAAI,eAAe,GAAG,CACtE,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG;gBACjB,EAAE,EAAE,IAAI;gBACR,OAAO;gBACP,OAAO,EAAE;oBACP,KAAK,EAAE,OAAO,CAAC,MAAM;oBACrB,SAAS;oBACT,MAAM;iBACP;aACF,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzD,iBAAiB,EAAE,UAAU;aAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"read-multiple-files.js","sourceRoot":"","sources":["../../src/tools/read-multiple-files.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search-content.d.ts","sourceRoot":"","sources":["../../src/tools/search-content.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuHjE"}
1
+ {"version":3,"file":"search-content.d.ts","sourceRoot":"","sources":["../../src/tools/search-content.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA6OzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAQjE"}