@j0hanz/filesystem-context-mcp 1.3.0 → 1.3.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 (283) hide show
  1. package/README.md +251 -504
  2. package/dist/__tests__/lib/file-operations/search-content-edge-cases.test.js +1 -1
  3. package/dist/__tests__/lib/file-operations/search-content-edge-cases.test.js.map +1 -1
  4. package/dist/__tests__/lib/file-operations/search-definitions-helpers.test.d.ts +2 -0
  5. package/dist/__tests__/lib/file-operations/search-definitions-helpers.test.d.ts.map +1 -0
  6. package/dist/__tests__/lib/file-operations/search-definitions-helpers.test.js +43 -0
  7. package/dist/__tests__/lib/file-operations/search-definitions-helpers.test.js.map +1 -0
  8. package/dist/__tests__/lib/file-operations/search-definitions.fixtures.d.ts +7 -0
  9. package/dist/__tests__/lib/file-operations/search-definitions.fixtures.d.ts.map +1 -0
  10. package/dist/__tests__/lib/file-operations/search-definitions.fixtures.js +113 -0
  11. package/dist/__tests__/lib/file-operations/search-definitions.fixtures.js.map +1 -0
  12. package/dist/__tests__/lib/file-operations/search-definitions.test.js +1 -112
  13. package/dist/__tests__/lib/file-operations/search-definitions.test.js.map +1 -1
  14. package/dist/__tests__/lib/file-operations/sorting.test.js +15 -40
  15. package/dist/__tests__/lib/file-operations/sorting.test.js.map +1 -1
  16. package/dist/__tests__/lib/path-validation-errors.test.js +1 -1
  17. package/dist/__tests__/lib/path-validation-errors.test.js.map +1 -1
  18. package/dist/__tests__/lib/path-validation.test.js +17 -0
  19. package/dist/__tests__/lib/path-validation.test.js.map +1 -1
  20. package/dist/config/formatting.d.ts +14 -0
  21. package/dist/config/formatting.d.ts.map +1 -0
  22. package/dist/config/formatting.js +34 -0
  23. package/dist/config/formatting.js.map +1 -0
  24. package/dist/config/types.d.ts +3 -97
  25. package/dist/config/types.d.ts.map +1 -1
  26. package/dist/config/types.js.map +1 -1
  27. package/dist/index.js +26 -2
  28. package/dist/index.js.map +1 -1
  29. package/dist/instructions.md +151 -170
  30. package/dist/lib/constants.d.ts +1 -5
  31. package/dist/lib/constants.d.ts.map +1 -1
  32. package/dist/lib/constants.js +19 -15
  33. package/dist/lib/constants.js.map +1 -1
  34. package/dist/lib/errors.d.ts +0 -2
  35. package/dist/lib/errors.d.ts.map +1 -1
  36. package/dist/lib/errors.js +2 -30
  37. package/dist/lib/errors.js.map +1 -1
  38. package/dist/lib/file-operations/analyze-directory.d.ts.map +1 -1
  39. package/dist/lib/file-operations/analyze-directory.js +8 -1
  40. package/dist/lib/file-operations/analyze-directory.js.map +1 -1
  41. package/dist/lib/file-operations/batch-results.d.ts +2 -1
  42. package/dist/lib/file-operations/batch-results.d.ts.map +1 -1
  43. package/dist/lib/file-operations/compute-checksums.d.ts +1 -0
  44. package/dist/lib/file-operations/compute-checksums.d.ts.map +1 -1
  45. package/dist/lib/file-operations/compute-checksums.js +58 -45
  46. package/dist/lib/file-operations/compute-checksums.js.map +1 -1
  47. package/dist/lib/file-operations/directory-tree-builders.d.ts +7 -0
  48. package/dist/lib/file-operations/directory-tree-builders.d.ts.map +1 -0
  49. package/dist/lib/file-operations/directory-tree-builders.js +58 -0
  50. package/dist/lib/file-operations/directory-tree-builders.js.map +1 -0
  51. package/dist/lib/file-operations/directory-tree-helpers.d.ts +0 -5
  52. package/dist/lib/file-operations/directory-tree-helpers.d.ts.map +1 -1
  53. package/dist/lib/file-operations/directory-tree-helpers.js +21 -71
  54. package/dist/lib/file-operations/directory-tree-helpers.js.map +1 -1
  55. package/dist/lib/file-operations/directory-tree.d.ts.map +1 -1
  56. package/dist/lib/file-operations/directory-tree.js +2 -1
  57. package/dist/lib/file-operations/directory-tree.js.map +1 -1
  58. package/dist/lib/file-operations/file-info.d.ts +3 -1
  59. package/dist/lib/file-operations/file-info.d.ts.map +1 -1
  60. package/dist/lib/file-operations/file-info.js +16 -5
  61. package/dist/lib/file-operations/file-info.js.map +1 -1
  62. package/dist/lib/file-operations/get-multiple-file-info.d.ts +1 -1
  63. package/dist/lib/file-operations/get-multiple-file-info.d.ts.map +1 -1
  64. package/dist/lib/file-operations/get-multiple-file-info.js +6 -8
  65. package/dist/lib/file-operations/get-multiple-file-info.js.map +1 -1
  66. package/dist/lib/file-operations/list-directory-entry.d.ts.map +1 -1
  67. package/dist/lib/file-operations/list-directory-entry.js +5 -2
  68. package/dist/lib/file-operations/list-directory-entry.js.map +1 -1
  69. package/dist/lib/file-operations/list-directory-helpers.d.ts +5 -1
  70. package/dist/lib/file-operations/list-directory-helpers.d.ts.map +1 -1
  71. package/dist/lib/file-operations/list-directory-helpers.js +24 -16
  72. package/dist/lib/file-operations/list-directory-helpers.js.map +1 -1
  73. package/dist/lib/file-operations/list-directory.d.ts +1 -0
  74. package/dist/lib/file-operations/list-directory.d.ts.map +1 -1
  75. package/dist/lib/file-operations/list-directory.js +8 -3
  76. package/dist/lib/file-operations/list-directory.js.map +1 -1
  77. package/dist/lib/file-operations/read-media-file.d.ts.map +1 -1
  78. package/dist/lib/file-operations/read-media-file.js +5 -1
  79. package/dist/lib/file-operations/read-media-file.js.map +1 -1
  80. package/dist/lib/file-operations/read-multiple-files.d.ts +8 -0
  81. package/dist/lib/file-operations/read-multiple-files.d.ts.map +1 -1
  82. package/dist/lib/file-operations/read-multiple-files.js +15 -7
  83. package/dist/lib/file-operations/read-multiple-files.js.map +1 -1
  84. package/dist/lib/file-operations/search/engine-stream.d.ts +1 -1
  85. package/dist/lib/file-operations/search/engine-stream.d.ts.map +1 -1
  86. package/dist/lib/file-operations/search/engine-stream.js +21 -5
  87. package/dist/lib/file-operations/search/engine-stream.js.map +1 -1
  88. package/dist/lib/file-operations/search/engine.d.ts.map +1 -1
  89. package/dist/lib/file-operations/search/engine.js +42 -5
  90. package/dist/lib/file-operations/search/engine.js.map +1 -1
  91. package/dist/lib/file-operations/search/file-processor.d.ts.map +1 -1
  92. package/dist/lib/file-operations/search/file-processor.js +94 -54
  93. package/dist/lib/file-operations/search/file-processor.js.map +1 -1
  94. package/dist/lib/file-operations/search/match-strategy.d.ts.map +1 -1
  95. package/dist/lib/file-operations/search/match-strategy.js +2 -1
  96. package/dist/lib/file-operations/search/match-strategy.js.map +1 -1
  97. package/dist/lib/file-operations/search/types.d.ts +1 -0
  98. package/dist/lib/file-operations/search/types.d.ts.map +1 -1
  99. package/dist/lib/file-operations/search-definitions/matchers.d.ts +12 -0
  100. package/dist/lib/file-operations/search-definitions/matchers.d.ts.map +1 -0
  101. package/dist/lib/file-operations/search-definitions/matchers.js +122 -0
  102. package/dist/lib/file-operations/search-definitions/matchers.js.map +1 -0
  103. package/dist/lib/file-operations/search-definitions/patterns.d.ts +14 -0
  104. package/dist/lib/file-operations/search-definitions/patterns.d.ts.map +1 -0
  105. package/dist/lib/file-operations/search-definitions/patterns.js +83 -0
  106. package/dist/lib/file-operations/search-definitions/patterns.js.map +1 -0
  107. package/dist/lib/file-operations/search-definitions.d.ts.map +1 -1
  108. package/dist/lib/file-operations/search-definitions.js +3 -208
  109. package/dist/lib/file-operations/search-definitions.js.map +1 -1
  110. package/dist/lib/file-operations/search-files-helpers.d.ts +2 -2
  111. package/dist/lib/file-operations/search-files-helpers.d.ts.map +1 -1
  112. package/dist/lib/file-operations/search-files-helpers.js +17 -6
  113. package/dist/lib/file-operations/search-files-helpers.js.map +1 -1
  114. package/dist/lib/file-operations/search-files-options.d.ts +4 -2
  115. package/dist/lib/file-operations/search-files-options.d.ts.map +1 -1
  116. package/dist/lib/file-operations/search-files-options.js.map +1 -1
  117. package/dist/lib/file-operations/search-files.d.ts.map +1 -1
  118. package/dist/lib/file-operations/search-files.js +7 -2
  119. package/dist/lib/file-operations/search-files.js.map +1 -1
  120. package/dist/lib/file-operations/sorting.d.ts.map +1 -1
  121. package/dist/lib/file-operations/sorting.js +39 -14
  122. package/dist/lib/file-operations/sorting.js.map +1 -1
  123. package/dist/lib/file-operations.d.ts +0 -5
  124. package/dist/lib/file-operations.d.ts.map +1 -1
  125. package/dist/lib/file-operations.js +0 -5
  126. package/dist/lib/file-operations.js.map +1 -1
  127. package/dist/lib/fs-helpers/concurrency.d.ts +1 -1
  128. package/dist/lib/fs-helpers/concurrency.d.ts.map +1 -1
  129. package/dist/lib/fs-helpers/concurrency.js +37 -3
  130. package/dist/lib/fs-helpers/concurrency.js.map +1 -1
  131. package/dist/lib/fs-helpers/readers/head-file.js +1 -1
  132. package/dist/lib/fs-helpers/readers/head-file.js.map +1 -1
  133. package/dist/lib/fs-helpers/readers/read-buffer.d.ts +2 -0
  134. package/dist/lib/fs-helpers/readers/read-buffer.d.ts.map +1 -0
  135. package/dist/lib/fs-helpers/readers/read-buffer.js +52 -0
  136. package/dist/lib/fs-helpers/readers/read-buffer.js.map +1 -0
  137. package/dist/lib/fs-helpers/readers/read-file-content.d.ts +8 -1
  138. package/dist/lib/fs-helpers/readers/read-file-content.d.ts.map +1 -1
  139. package/dist/lib/fs-helpers/readers/read-file-content.js +30 -6
  140. package/dist/lib/fs-helpers/readers/read-file-content.js.map +1 -1
  141. package/dist/lib/fs-helpers/readers/read-file.d.ts +8 -0
  142. package/dist/lib/fs-helpers/readers/read-file.d.ts.map +1 -1
  143. package/dist/lib/fs-helpers/readers/read-file.js +31 -11
  144. package/dist/lib/fs-helpers/readers/read-file.js.map +1 -1
  145. package/dist/lib/fs-helpers/readers/tail-file.js +1 -1
  146. package/dist/lib/fs-helpers/readers/tail-file.js.map +1 -1
  147. package/dist/lib/path-utils.d.ts +1 -0
  148. package/dist/lib/path-utils.d.ts.map +1 -1
  149. package/dist/lib/path-utils.js +12 -0
  150. package/dist/lib/path-utils.js.map +1 -1
  151. package/dist/lib/path-validation/allowed-directories.d.ts.map +1 -1
  152. package/dist/lib/path-validation/allowed-directories.js +2 -9
  153. package/dist/lib/path-validation/allowed-directories.js.map +1 -1
  154. package/dist/lib/path-validation/errors.js +2 -2
  155. package/dist/lib/path-validation/errors.js.map +1 -1
  156. package/dist/lib/path-validation/validators.d.ts.map +1 -1
  157. package/dist/lib/path-validation/validators.js +3 -1
  158. package/dist/lib/path-validation/validators.js.map +1 -1
  159. package/dist/schemas/common.d.ts +0 -18
  160. package/dist/schemas/common.d.ts.map +1 -1
  161. package/dist/schemas/common.js +0 -10
  162. package/dist/schemas/common.js.map +1 -1
  163. package/dist/schemas/index.d.ts +2 -2
  164. package/dist/schemas/index.d.ts.map +1 -1
  165. package/dist/schemas/index.js +2 -2
  166. package/dist/schemas/index.js.map +1 -1
  167. package/dist/schemas/input-helpers.d.ts +1 -4
  168. package/dist/schemas/input-helpers.d.ts.map +1 -1
  169. package/dist/schemas/input-helpers.js +9 -33
  170. package/dist/schemas/input-helpers.js.map +1 -1
  171. package/dist/schemas/inputs/checksums.d.ts +0 -2
  172. package/dist/schemas/inputs/checksums.d.ts.map +1 -1
  173. package/dist/schemas/inputs/checksums.js +2 -7
  174. package/dist/schemas/inputs/checksums.js.map +1 -1
  175. package/dist/schemas/inputs/directory.d.ts +0 -16
  176. package/dist/schemas/inputs/directory.d.ts.map +1 -1
  177. package/dist/schemas/inputs/directory.js +2 -44
  178. package/dist/schemas/inputs/directory.js.map +1 -1
  179. package/dist/schemas/inputs/read.d.ts +0 -4
  180. package/dist/schemas/inputs/read.d.ts.map +1 -1
  181. package/dist/schemas/inputs/read.js +0 -15
  182. package/dist/schemas/inputs/read.js.map +1 -1
  183. package/dist/schemas/inputs/search.d.ts +1 -12
  184. package/dist/schemas/inputs/search.d.ts.map +1 -1
  185. package/dist/schemas/inputs/search.js +4 -30
  186. package/dist/schemas/inputs/search.js.map +1 -1
  187. package/dist/schemas/inputs.d.ts +3 -4
  188. package/dist/schemas/inputs.d.ts.map +1 -1
  189. package/dist/schemas/inputs.js +3 -4
  190. package/dist/schemas/inputs.js.map +1 -1
  191. package/dist/schemas/output-helpers.d.ts +59 -0
  192. package/dist/schemas/output-helpers.d.ts.map +1 -1
  193. package/dist/schemas/output-helpers.js +31 -0
  194. package/dist/schemas/output-helpers.js.map +1 -1
  195. package/dist/schemas/outputs/checksums.d.ts +4 -4
  196. package/dist/schemas/outputs/checksums.d.ts.map +1 -1
  197. package/dist/schemas/outputs/checksums.js +2 -7
  198. package/dist/schemas/outputs/checksums.js.map +1 -1
  199. package/dist/schemas/outputs/directory.d.ts +68 -230
  200. package/dist/schemas/outputs/directory.d.ts.map +1 -1
  201. package/dist/schemas/outputs/directory.js +14 -32
  202. package/dist/schemas/outputs/directory.js.map +1 -1
  203. package/dist/schemas/outputs/file-info.d.ts +14 -14
  204. package/dist/schemas/outputs/file-info.d.ts.map +1 -1
  205. package/dist/schemas/outputs/file-info.js +4 -31
  206. package/dist/schemas/outputs/file-info.js.map +1 -1
  207. package/dist/schemas/outputs/read.d.ts +141 -46
  208. package/dist/schemas/outputs/read.d.ts.map +1 -1
  209. package/dist/schemas/outputs/read.js +35 -12
  210. package/dist/schemas/outputs/read.js.map +1 -1
  211. package/dist/schemas/outputs/search.d.ts +134 -124
  212. package/dist/schemas/outputs/search.d.ts.map +1 -1
  213. package/dist/schemas/outputs/search.js +33 -35
  214. package/dist/schemas/outputs/search.js.map +1 -1
  215. package/dist/schemas/outputs.d.ts +3 -4
  216. package/dist/schemas/outputs.d.ts.map +1 -1
  217. package/dist/schemas/outputs.js +3 -4
  218. package/dist/schemas/outputs.js.map +1 -1
  219. package/dist/server.d.ts.map +1 -1
  220. package/dist/server.js +4 -1
  221. package/dist/server.js.map +1 -1
  222. package/dist/tools/analyze-directory.d.ts.map +1 -1
  223. package/dist/tools/analyze-directory.js +26 -28
  224. package/dist/tools/analyze-directory.js.map +1 -1
  225. package/dist/tools/compute-checksums.d.ts.map +1 -1
  226. package/dist/tools/compute-checksums.js +13 -21
  227. package/dist/tools/compute-checksums.js.map +1 -1
  228. package/dist/tools/directory-tree.d.ts.map +1 -1
  229. package/dist/tools/directory-tree.js +11 -9
  230. package/dist/tools/directory-tree.js.map +1 -1
  231. package/dist/tools/get-file-info.d.ts.map +1 -1
  232. package/dist/tools/get-file-info.js +8 -44
  233. package/dist/tools/get-file-info.js.map +1 -1
  234. package/dist/tools/get-multiple-file-info.d.ts.map +1 -1
  235. package/dist/tools/get-multiple-file-info.js +13 -55
  236. package/dist/tools/get-multiple-file-info.js.map +1 -1
  237. package/dist/tools/index.d.ts.map +1 -1
  238. package/dist/tools/index.js +0 -10
  239. package/dist/tools/index.js.map +1 -1
  240. package/dist/tools/list-allowed-dirs.d.ts.map +1 -1
  241. package/dist/tools/list-allowed-dirs.js +37 -31
  242. package/dist/tools/list-allowed-dirs.js.map +1 -1
  243. package/dist/tools/list-directory.d.ts.map +1 -1
  244. package/dist/tools/list-directory.js +83 -83
  245. package/dist/tools/list-directory.js.map +1 -1
  246. package/dist/tools/read-file.d.ts.map +1 -1
  247. package/dist/tools/read-file.js +57 -45
  248. package/dist/tools/read-file.js.map +1 -1
  249. package/dist/tools/read-media-file.d.ts.map +1 -1
  250. package/dist/tools/read-media-file.js +8 -6
  251. package/dist/tools/read-media-file.js.map +1 -1
  252. package/dist/tools/read-multiple-files.d.ts.map +1 -1
  253. package/dist/tools/read-multiple-files.js +57 -28
  254. package/dist/tools/read-multiple-files.js.map +1 -1
  255. package/dist/tools/search-content.d.ts.map +1 -1
  256. package/dist/tools/search-content.js +14 -16
  257. package/dist/tools/search-content.js.map +1 -1
  258. package/dist/tools/search-definitions.d.ts.map +1 -1
  259. package/dist/tools/search-definitions.js +11 -8
  260. package/dist/tools/search-definitions.js.map +1 -1
  261. package/dist/tools/search-files.d.ts.map +1 -1
  262. package/dist/tools/search-files.js +61 -45
  263. package/dist/tools/search-files.js.map +1 -1
  264. package/dist/tools/shared/file-info.d.ts +17 -0
  265. package/dist/tools/shared/file-info.d.ts.map +1 -0
  266. package/dist/tools/shared/file-info.js +40 -0
  267. package/dist/tools/shared/file-info.js.map +1 -0
  268. package/dist/tools/shared/formatting.d.ts +5 -0
  269. package/dist/tools/shared/formatting.d.ts.map +1 -1
  270. package/dist/tools/shared/formatting.js +21 -1
  271. package/dist/tools/shared/formatting.js.map +1 -1
  272. package/dist/tools/shared/read-range.d.ts +7 -0
  273. package/dist/tools/shared/read-range.d.ts.map +1 -0
  274. package/dist/tools/shared/read-range.js +22 -0
  275. package/dist/tools/shared/read-range.js.map +1 -0
  276. package/dist/tools/shared/search-formatting.d.ts.map +1 -1
  277. package/dist/tools/shared/search-formatting.js +53 -28
  278. package/dist/tools/shared/search-formatting.js.map +1 -1
  279. package/dist/tools/tool-response.d.ts +22 -0
  280. package/dist/tools/tool-response.d.ts.map +1 -1
  281. package/dist/tools/tool-response.js +30 -0
  282. package/dist/tools/tool-response.js.map +1 -1
  283. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"read-multiple-files.js","sourceRoot":"","sources":["../../src/tools/read-multiple-files.ts"],"names":[],"mappings":"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"}
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":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0EzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAYjE"}
1
+ {"version":3,"file":"search-content.d.ts","sourceRoot":"","sources":["../../src/tools/search-content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2EzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAWjE"}
@@ -1,10 +1,10 @@
1
- import { ErrorCode, toRpcError } from '../lib/errors.js';
1
+ import { ErrorCode } from '../lib/errors.js';
2
2
  import { searchContent } from '../lib/file-operations.js';
3
3
  import { SearchContentInputSchema, SearchContentOutputSchema, } from '../schemas/index.js';
4
4
  import { buildStructuredResult, buildTextResult, } from './shared/search-formatting.js';
5
- import { buildToolResponse } from './tool-response.js';
6
- function buildSearchContentOptions(args) {
7
- return {
5
+ import { buildToolErrorResponse, buildToolResponse, withToolErrorHandling, } from './tool-response.js';
6
+ async function handleSearchContent(args, signal) {
7
+ const effectiveOptions = {
8
8
  filePattern: args.filePattern,
9
9
  excludePatterns: args.excludePatterns,
10
10
  caseSensitive: args.caseSensitive,
@@ -20,10 +20,13 @@ function buildSearchContentOptions(args) {
20
20
  baseNameMatch: args.baseNameMatch,
21
21
  caseSensitiveFileMatch: args.caseSensitiveFileMatch,
22
22
  };
23
- }
24
- async function handleSearchContent(args) {
25
- const result = await searchContent(args.path, args.pattern, buildSearchContentOptions(args));
26
- return buildToolResponse(buildTextResult(result), buildStructuredResult(result));
23
+ const result = await searchContent(args.path, args.pattern, {
24
+ ...effectiveOptions,
25
+ signal,
26
+ });
27
+ const structured = buildStructuredResult(result);
28
+ structured.effectiveOptions = effectiveOptions;
29
+ return buildToolResponse(buildTextResult(result), structured);
27
30
  }
28
31
  const SEARCH_CONTENT_TOOL = {
29
32
  title: 'Search Content',
@@ -31,6 +34,7 @@ const SEARCH_CONTENT_TOOL = {
31
34
  'Returns matching lines with optional context (contextLines parameter). ' +
32
35
  'Use isLiteral=true for exact string matching, wholeWord=true to avoid partial matches. ' +
33
36
  'Filter files with filePattern glob (e.g., "**/*.ts" for TypeScript only). ' +
37
+ 'excludePatterns defaults to common dependency/build dirs (pass [] to disable). ' +
34
38
  'Automatically skips binary files unless skipBinary=false.',
35
39
  inputSchema: SearchContentInputSchema,
36
40
  outputSchema: SearchContentOutputSchema.shape,
@@ -41,13 +45,7 @@ const SEARCH_CONTENT_TOOL = {
41
45
  },
42
46
  };
43
47
  export function registerSearchContentTool(server) {
44
- server.registerTool('search_content', SEARCH_CONTENT_TOOL, async (args) => {
45
- try {
46
- return await handleSearchContent(args);
47
- }
48
- catch (error) {
49
- throw toRpcError(error, ErrorCode.E_UNKNOWN, args.path);
50
- }
51
- });
48
+ const handler = (args, extra) => withToolErrorHandling(() => handleSearchContent(args, extra.signal), (error) => buildToolErrorResponse(error, ErrorCode.E_UNKNOWN, args.path));
49
+ server.registerTool('search_content', SEARCH_CONTENT_TOOL, handler);
52
50
  }
53
51
  //# sourceMappingURL=search-content.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-content.js","sourceRoot":"","sources":["../../src/tools/search-content.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAqB,MAAM,oBAAoB,CAAC;AAO1E,SAAS,yBAAyB,CAChC,IAAuB;IAEvB,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;KACpD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,IAAuB;IAEvB,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,yBAAyB,CAAC,IAAI,CAAC,CAChC,CAAC;IAEF,OAAO,iBAAiB,CACtB,eAAe,CAAC,MAAM,CAAC,EACvB,qBAAqB,CAAC,MAAM,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB,GAAG;IAC1B,KAAK,EAAE,gBAAgB;IACvB,WAAW,EACT,uFAAuF;QACvF,yEAAyE;QACzE,yFAAyF;QACzF,4EAA4E;QAC5E,2DAA2D;IAC7D,WAAW,EAAE,wBAAwB;IACrC,YAAY,EAAE,yBAAyB,CAAC,KAAK;IAC7C,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,CACjB,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,EAAE,IAAuB,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,OAAO,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"search-content.js","sourceRoot":"","sources":["../../src/tools/search-content.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EAGjB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAK5B,KAAK,UAAU,mBAAmB,CAChC,IAAuB,EACvB,MAAoB;IAEpB,MAAM,gBAAgB,GAAG;QACvB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;KACpD,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;QAC1D,GAAG,gBAAgB;QACnB,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACjD,UAAU,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAE/C,OAAO,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,mBAAmB,GAAG;IAC1B,KAAK,EAAE,gBAAgB;IACvB,WAAW,EACT,uFAAuF;QACvF,yEAAyE;QACzE,yFAAyF;QACzF,4EAA4E;QAC5E,iFAAiF;QACjF,2DAA2D;IAC7D,WAAW,EAAE,wBAAwB;IACrC,YAAY,EAAE,yBAAyB,CAAC,KAAK;IAC7C,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,OAAO,GAAG,CACd,IAAuB,EACvB,KAA8B,EACsB,EAAE,CACtD,qBAAqB,CACnB,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CACzE,CAAC;IAEJ,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"search-definitions.d.ts","sourceRoot":"","sources":["../../src/tools/search-definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyKzE,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAYrE"}
1
+ {"version":3,"file":"search-definitions.d.ts","sourceRoot":"","sources":["../../src/tools/search-definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiLzE,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAarE"}
@@ -1,7 +1,8 @@
1
- import { ErrorCode, toRpcError } from '../lib/errors.js';
1
+ import { joinLines } from '../config/formatting.js';
2
+ import { ErrorCode } from '../lib/errors.js';
2
3
  import { searchDefinitions } from '../lib/file-operations.js';
3
4
  import { SearchDefinitionsInputSchema, SearchDefinitionsOutputSchema, } from '../schemas/index.js';
4
- import { buildToolResponse } from './tool-response.js';
5
+ import { buildToolErrorResponse, buildToolResponse, } from './tool-response.js';
5
6
  function buildCriteriaText(searchName, searchType) {
6
7
  const parts = [
7
8
  searchName ? `name "${searchName}"` : null,
@@ -61,7 +62,7 @@ function formatTextResult(result) {
61
62
  lines.push(`(Results truncated - scanned ${summary.filesScanned} files)`);
62
63
  }
63
64
  lines.push(`Scanned ${summary.filesScanned} file(s), matched ${summary.filesMatched}.`);
64
- return lines.join('\n');
65
+ return joinLines(lines);
65
66
  }
66
67
  /**
67
68
  * Build structured result for search definitions
@@ -90,7 +91,7 @@ function buildStructuredResult(result) {
90
91
  },
91
92
  };
92
93
  }
93
- async function handleSearchDefinitions(args) {
94
+ async function handleSearchDefinitions(args, signal) {
94
95
  const result = await searchDefinitions({
95
96
  path: args.path,
96
97
  name: args.name,
@@ -100,6 +101,7 @@ async function handleSearchDefinitions(args) {
100
101
  excludePatterns: args.excludePatterns,
101
102
  includeHidden: args.includeHidden,
102
103
  contextLines: args.contextLines,
104
+ signal,
103
105
  });
104
106
  return buildToolResponse(formatTextResult(result), buildStructuredResult(result));
105
107
  }
@@ -118,13 +120,14 @@ const SEARCH_DEFINITIONS_TOOL = {
118
120
  },
119
121
  };
120
122
  export function registerSearchDefinitionsTool(server) {
121
- server.registerTool('search_definitions', SEARCH_DEFINITIONS_TOOL, async (args) => {
123
+ const handler = async (args, extra) => {
122
124
  try {
123
- return await handleSearchDefinitions(args);
125
+ return await handleSearchDefinitions(args, extra.signal);
124
126
  }
125
127
  catch (error) {
126
- throw toRpcError(error, ErrorCode.E_UNKNOWN, args.path);
128
+ return buildToolErrorResponse(error, ErrorCode.E_UNKNOWN, args.path);
127
129
  }
128
- });
130
+ };
131
+ server.registerTool('search_definitions', SEARCH_DEFINITIONS_TOOL, handler);
129
132
  }
130
133
  //# sourceMappingURL=search-definitions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-definitions.js","sourceRoot":"","sources":["../../src/tools/search-definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-definitions.js","sourceRoot":"","sources":["../../src/tools/search-definitions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search-files.d.ts","sourceRoot":"","sources":["../../src/tools/search-files.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4JzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAY/D"}
1
+ {"version":3,"file":"search-files.d.ts","sourceRoot":"","sources":["../../src/tools/search-files.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0MzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAY/D"}
@@ -1,37 +1,38 @@
1
1
  import * as pathModule from 'node:path';
2
- import { ErrorCode, toRpcError } from '../lib/errors.js';
2
+ import { formatBytes, formatOperationSummary, joinLines, } from '../config/formatting.js';
3
+ import { DEFAULT_EXCLUDE_PATTERNS, DEFAULT_MAX_DEPTH, DEFAULT_MAX_RESULTS, DEFAULT_SEARCH_MAX_FILES, DEFAULT_SEARCH_TIMEOUT_MS, } from '../lib/constants.js';
4
+ import { ErrorCode } from '../lib/errors.js';
3
5
  import { searchFiles } from '../lib/file-operations.js';
4
6
  import { SearchFilesInputSchema, SearchFilesOutputSchema, } from '../schemas/index.js';
5
- import { formatBytes, formatOperationSummary } from './shared/formatting.js';
6
- import { buildToolResponse } from './tool-response.js';
7
- function formatSearchResults(results) {
7
+ import { buildToolErrorResponse, buildToolResponse, withToolErrorHandling, } from './tool-response.js';
8
+ function formatSearchResults(results, basePath) {
8
9
  if (results.length === 0)
9
- return 'No matches found';
10
- const lines = [`Found ${results.length} matches:`, ''];
11
- for (const result of results) {
10
+ return 'No matches';
11
+ const lines = results.map((result) => {
12
12
  const tag = result.type === 'directory' ? '[DIR]' : '[FILE]';
13
13
  const size = result.size !== undefined ? ` (${formatBytes(result.size)})` : '';
14
- lines.push(`${tag} ${result.path}${size}`);
15
- }
16
- return lines.join('\n');
14
+ return `${tag} ${pathModule.relative(basePath, result.path)}${size}`;
15
+ });
16
+ return joinLines([`Found ${results.length}:`, ...lines]);
17
17
  }
18
18
  function buildStructuredResult(result) {
19
+ const { basePath, pattern, results, summary } = result;
19
20
  return {
20
21
  ok: true,
21
- basePath: result.basePath,
22
- pattern: result.pattern,
23
- results: result.results.map((r) => ({
24
- path: pathModule.relative(result.basePath, r.path),
22
+ basePath,
23
+ pattern,
24
+ results: results.map((r) => ({
25
+ path: pathModule.relative(basePath, r.path),
25
26
  type: r.type === 'directory' ? 'other' : r.type,
26
27
  size: r.size,
27
28
  modified: r.modified?.toISOString(),
28
29
  })),
29
30
  summary: {
30
- matched: result.summary.matched,
31
- truncated: result.summary.truncated,
32
- skippedInaccessible: result.summary.skippedInaccessible,
33
- filesScanned: result.summary.filesScanned,
34
- stoppedReason: result.summary.stoppedReason,
31
+ matched: summary.matched,
32
+ truncated: summary.truncated,
33
+ skippedInaccessible: summary.skippedInaccessible,
34
+ filesScanned: summary.filesScanned,
35
+ stoppedReason: summary.stoppedReason,
35
36
  },
36
37
  };
37
38
  }
@@ -57,42 +58,63 @@ function buildTruncationInfo(result) {
57
58
  return {};
58
59
  }
59
60
  function buildTextResult(result) {
61
+ const { summary, results } = result;
60
62
  const { truncatedReason, tip } = buildTruncationInfo(result);
61
- let textOutput = formatSearchResults(result.results);
62
- if (result.results.length === 0) {
63
+ const header = joinLines([
64
+ `Base path: ${result.basePath}`,
65
+ `Pattern: ${result.pattern}`,
66
+ ]);
67
+ const body = formatSearchResults(results, result.basePath);
68
+ let textOutput = joinLines([header, body]);
69
+ if (results.length === 0) {
63
70
  textOutput +=
64
71
  '\n(Try a broader pattern, remove excludePatterns, or set includeHidden=true if searching dotfiles.)';
65
72
  }
66
73
  textOutput += formatOperationSummary({
67
- truncated: result.summary.truncated,
74
+ truncated: summary.truncated,
68
75
  truncatedReason,
69
76
  tip: tip ??
70
- (result.summary.truncated
77
+ (summary.truncated
71
78
  ? 'Increase maxResults, use more specific pattern, or add excludePatterns to narrow scope.'
72
79
  : undefined),
73
- skippedInaccessible: result.summary.skippedInaccessible,
80
+ skippedInaccessible: summary.skippedInaccessible,
74
81
  });
75
82
  return textOutput;
76
83
  }
77
- async function handleSearchFiles({ path: searchBasePath, pattern, excludePatterns, maxResults, sortBy, maxDepth, maxFilesScanned, timeoutMs, baseNameMatch, skipSymlinks, includeHidden, }) {
78
- const result = await searchFiles(searchBasePath, pattern, excludePatterns, {
79
- maxResults,
80
- sortBy,
81
- maxDepth,
82
- maxFilesScanned,
83
- timeoutMs,
84
- baseNameMatch,
85
- skipSymlinks,
86
- includeHidden,
84
+ async function handleSearchFiles({ path: searchBasePath, pattern, excludePatterns, maxResults, sortBy, maxDepth, maxFilesScanned, timeoutMs, baseNameMatch, skipSymlinks, includeHidden, }, signal) {
85
+ const effectiveOptions = {
86
+ excludePatterns: excludePatterns ?? DEFAULT_EXCLUDE_PATTERNS,
87
+ maxResults: maxResults ?? DEFAULT_MAX_RESULTS,
88
+ sortBy: sortBy ?? 'path',
89
+ maxDepth: maxDepth ?? DEFAULT_MAX_DEPTH,
90
+ maxFilesScanned: maxFilesScanned ?? DEFAULT_SEARCH_MAX_FILES,
91
+ timeoutMs: timeoutMs ?? DEFAULT_SEARCH_TIMEOUT_MS,
92
+ baseNameMatch: baseNameMatch ?? false,
93
+ skipSymlinks: skipSymlinks ?? true,
94
+ includeHidden: includeHidden ?? false,
95
+ };
96
+ const result = await searchFiles(searchBasePath, pattern, effectiveOptions.excludePatterns, {
97
+ maxResults: effectiveOptions.maxResults,
98
+ sortBy: effectiveOptions.sortBy,
99
+ maxDepth: effectiveOptions.maxDepth,
100
+ maxFilesScanned: effectiveOptions.maxFilesScanned,
101
+ timeoutMs: effectiveOptions.timeoutMs,
102
+ baseNameMatch: effectiveOptions.baseNameMatch,
103
+ skipSymlinks: effectiveOptions.skipSymlinks,
104
+ includeHidden: effectiveOptions.includeHidden,
105
+ signal,
87
106
  });
88
- return buildToolResponse(buildTextResult(result), buildStructuredResult(result));
107
+ const structured = buildStructuredResult(result);
108
+ structured.effectiveOptions = effectiveOptions;
109
+ return buildToolResponse(buildTextResult(result), structured);
89
110
  }
90
111
  const SEARCH_FILES_TOOL = {
91
112
  title: 'Search Files',
92
- description: 'Find files matching a glob pattern within a directory tree (files only). ' +
113
+ description: 'Find files (not directories) matching a glob pattern within a directory tree. ' +
93
114
  'Pattern examples: "**/*.ts" (all TypeScript files), "src/**/*.{js,jsx}" (JS/JSX in src), ' +
94
115
  '"**/test/**" (all test directories). Returns paths, types, sizes, and modification dates. ' +
95
- 'Use excludePatterns to skip directories like node_modules, and includeHidden=true to include dotfiles.',
116
+ 'excludePatterns defaults to common dependency/build dirs (pass [] to disable). ' +
117
+ 'Symlink traversal is disabled (skipSymlinks must remain true).',
96
118
  inputSchema: SearchFilesInputSchema,
97
119
  outputSchema: SearchFilesOutputSchema.shape,
98
120
  annotations: {
@@ -102,13 +124,7 @@ const SEARCH_FILES_TOOL = {
102
124
  },
103
125
  };
104
126
  export function registerSearchFilesTool(server) {
105
- server.registerTool('search_files', SEARCH_FILES_TOOL, async (args) => {
106
- try {
107
- return await handleSearchFiles(args);
108
- }
109
- catch (error) {
110
- throw toRpcError(error, ErrorCode.E_INVALID_PATTERN, args.path);
111
- }
112
- });
127
+ const handler = (args, extra) => withToolErrorHandling(() => handleSearchFiles(args, extra.signal), (error) => buildToolErrorResponse(error, ErrorCode.E_INVALID_PATTERN, args.path));
128
+ server.registerTool('search_files', SEARCH_FILES_TOOL, handler);
113
129
  }
114
130
  //# sourceMappingURL=search-files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-files.js","sourceRoot":"","sources":["../../src/tools/search-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-files.js","sourceRoot":"","sources":["../../src/tools/search-files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { FileInfo } from '../../config/types.js';
2
+ export declare function buildFileInfoPayload(info: FileInfo): {
3
+ name: string;
4
+ path: string;
5
+ type: FileInfo['type'];
6
+ size: number;
7
+ created: string;
8
+ modified: string;
9
+ accessed: string;
10
+ permissions: string;
11
+ isHidden: boolean;
12
+ mimeType?: string;
13
+ symlinkTarget?: string;
14
+ };
15
+ export declare function formatFileInfoDetails(info: FileInfo): string;
16
+ export declare function formatFileInfoSummary(path: string, info: FileInfo): string;
17
+ //# sourceMappingURL=file-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-info.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/file-info.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAcA;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAmB5D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAG1E"}
@@ -0,0 +1,40 @@
1
+ import { formatBytes, formatDate, joinLines } from '../../config/formatting.js';
2
+ export function buildFileInfoPayload(info) {
3
+ return {
4
+ name: info.name,
5
+ path: info.path,
6
+ type: info.type,
7
+ size: info.size,
8
+ created: info.created.toISOString(),
9
+ modified: info.modified.toISOString(),
10
+ accessed: info.accessed.toISOString(),
11
+ permissions: info.permissions,
12
+ isHidden: info.isHidden,
13
+ mimeType: info.mimeType,
14
+ symlinkTarget: info.symlinkTarget,
15
+ };
16
+ }
17
+ export function formatFileInfoDetails(info) {
18
+ const lines = [
19
+ `Name: ${info.name}`,
20
+ `Path: ${info.path}`,
21
+ `Type: ${info.type}`,
22
+ `Size: ${formatBytes(info.size)}`,
23
+ `Created: ${formatDate(info.created)}`,
24
+ `Modified: ${formatDate(info.modified)}`,
25
+ `Accessed: ${formatDate(info.accessed)}`,
26
+ `Permissions: ${info.permissions}`,
27
+ `Hidden: ${info.isHidden ? 'Yes' : 'No'}`,
28
+ ];
29
+ if (info.mimeType)
30
+ lines.push(`MIME Type: ${info.mimeType}`);
31
+ if (info.symlinkTarget) {
32
+ lines.push(`Symlink Target: ${info.symlinkTarget}`);
33
+ }
34
+ return joinLines(lines);
35
+ }
36
+ export function formatFileInfoSummary(path, info) {
37
+ const mime = info.mimeType ? ` | ${info.mimeType}` : '';
38
+ return `${path} | ${info.type} | ${formatBytes(info.size)}${mime}`;
39
+ }
40
+ //# sourceMappingURL=file-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-info.js","sourceRoot":"","sources":["../../../src/tools/shared/file-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGhF,MAAM,UAAU,oBAAoB,CAAC,IAAc;IAajD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;QACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;QACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;QACrC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAc;IAClD,MAAM,KAAK,GAAG;QACZ,SAAS,IAAI,CAAC,IAAI,EAAE;QACpB,SAAS,IAAI,CAAC,IAAI,EAAE;QACpB,SAAS,IAAI,CAAC,IAAI,EAAE;QACpB,SAAS,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACjC,YAAY,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QACtC,aAAa,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACxC,aAAa,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACxC,gBAAgB,IAAI,CAAC,WAAW,EAAE;QAClC,WAAW,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;KAC1C,CAAC;IAEF,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,IAAc;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO,GAAG,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;AACrE,CAAC"}
@@ -1,5 +1,10 @@
1
1
  export declare function formatBytes(bytes: number): string;
2
2
  export declare function formatDate(date: Date): string;
3
+ export declare function joinLines(lines: string[]): string;
4
+ export declare function indent(text: string, spaces?: number): string;
5
+ export declare function formatList(items: string[], indentLevel?: number): string;
6
+ export declare function formatHeader(title: string, level?: number): string;
7
+ export declare function formatSection(title: string, content: string): string;
3
8
  export declare function formatOperationSummary(summary: {
4
9
  truncated?: boolean;
5
10
  truncatedReason?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/formatting.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE7C;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6BAA6B,CAAC,EAAE,MAAM,CAAC;CACxC,GAAG,MAAM,CAoBT"}
1
+ {"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/formatting.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE7C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAEjD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CAG/D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,GAAE,MAAU,GAAG,MAAM,CAG3E;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,CAKrE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6BAA6B,CAAC,EAAE,MAAM,CAAC;CACxC,GAAG,MAAM,CAoBT"}
@@ -10,6 +10,26 @@ export function formatBytes(bytes) {
10
10
  export function formatDate(date) {
11
11
  return date.toISOString();
12
12
  }
13
+ export function joinLines(lines) {
14
+ return lines.join('\n');
15
+ }
16
+ export function indent(text, spaces = 2) {
17
+ const padding = ' '.repeat(spaces);
18
+ return text.split('\n').map((line) => `${padding}${line}`).join('\n');
19
+ }
20
+ export function formatList(items, indentLevel = 0) {
21
+ const padding = ' '.repeat(indentLevel * 2);
22
+ return items.map((item) => `${padding}- ${item}`).join('\n');
23
+ }
24
+ export function formatHeader(title, level = 1) {
25
+ if (level === 1) {
26
+ return `=== ${title} ===`;
27
+ }
28
+ return `--- ${title} ---`;
29
+ }
30
+ export function formatSection(title, content) {
31
+ return `${formatHeader(title)}\n${content}`;
32
+ }
13
33
  export function formatOperationSummary(summary) {
14
34
  const lines = [];
15
35
  if (summary.truncated) {
@@ -26,6 +46,6 @@ export function formatOperationSummary(summary) {
26
46
  note(summary.skippedInaccessible, 'item(s) were inaccessible and skipped.');
27
47
  note(summary.symlinksNotFollowed, 'symlink(s) were not followed (security).');
28
48
  note(summary.linesSkippedDueToRegexTimeout, 'line(s) skipped (regex timeout).');
29
- return lines.join('\n');
49
+ return joinLines(lines);
30
50
  }
31
51
  //# sourceMappingURL=formatting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../../src/tools/shared/formatting.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAEhE,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC;IAChD,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAChD,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAStC;IACC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CACR,uBAAuB,OAAO,CAAC,eAAe,IAAI,mBAAmB,EAAE,CACxE,CAAC;QACF,IAAI,OAAO,CAAC,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,KAAyB,EAAE,GAAW,EAAQ,EAAE;QAC5D,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,8BAA8B,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,wCAAwC,CAAC,CAAC;IAC5E,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,0CAA0C,CAAC,CAAC;IAC9E,IAAI,CACF,OAAO,CAAC,6BAA6B,EACrC,kCAAkC,CACnC,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../../src/tools/shared/formatting.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function assertNoMixedRangeOptions(hasHeadTail: boolean, hasLineRange: boolean, pathLabel: string): void;
2
+ export declare function assertLineRangeComplete(lineStart: number | undefined, lineEnd: number | undefined, pathLabel: string): void;
3
+ export declare function buildLineRange(lineStart: number | undefined, lineEnd: number | undefined, pathLabel: string): {
4
+ start: number;
5
+ end: number;
6
+ } | undefined;
7
+ //# sourceMappingURL=read-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-range.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/read-range.ts"],"names":[],"mappings":"AAEA,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,OAAO,EACpB,YAAY,EAAE,OAAO,EACrB,SAAS,EAAE,MAAM,GAChB,IAAI,CAON;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,GAChB,IAAI,CAWN;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAI5C"}
@@ -0,0 +1,22 @@
1
+ import { ErrorCode, McpError } from '../../lib/errors.js';
2
+ export function assertNoMixedRangeOptions(hasHeadTail, hasLineRange, pathLabel) {
3
+ if (!hasHeadTail || !hasLineRange)
4
+ return;
5
+ throw new McpError(ErrorCode.E_INVALID_INPUT, 'head/tail cannot be combined with lineStart/lineEnd', pathLabel);
6
+ }
7
+ export function assertLineRangeComplete(lineStart, lineEnd, pathLabel) {
8
+ const hasLineStart = lineStart !== undefined;
9
+ const hasLineEnd = lineEnd !== undefined;
10
+ if (hasLineStart === hasLineEnd)
11
+ return;
12
+ const missing = hasLineStart ? 'lineEnd' : 'lineStart';
13
+ const provided = hasLineStart ? 'lineStart' : 'lineEnd';
14
+ throw new McpError(ErrorCode.E_INVALID_INPUT, `Invalid lineRange: ${provided} requires ${missing} to also be specified`, pathLabel);
15
+ }
16
+ export function buildLineRange(lineStart, lineEnd, pathLabel) {
17
+ assertLineRangeComplete(lineStart, lineEnd, pathLabel);
18
+ if (lineStart === undefined || lineEnd === undefined)
19
+ return undefined;
20
+ return { start: lineStart, end: lineEnd };
21
+ }
22
+ //# sourceMappingURL=read-range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-range.js","sourceRoot":"","sources":["../../../src/tools/shared/read-range.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,UAAU,yBAAyB,CACvC,WAAoB,EACpB,YAAqB,EACrB,SAAiB;IAEjB,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY;QAAE,OAAO;IAC1C,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,eAAe,EACzB,qDAAqD,EACrD,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,SAA6B,EAC7B,OAA2B,EAC3B,SAAiB;IAEjB,MAAM,YAAY,GAAG,SAAS,KAAK,SAAS,CAAC;IAC7C,MAAM,UAAU,GAAG,OAAO,KAAK,SAAS,CAAC;IACzC,IAAI,YAAY,KAAK,UAAU;QAAE,OAAO;IACxC,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IACvD,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,eAAe,EACzB,sBAAsB,QAAQ,aAAa,OAAO,uBAAuB,EACzE,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,SAA6B,EAC7B,OAA2B,EAC3B,SAAiB;IAEjB,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACvD,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACvE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"search-formatting.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/search-formatting.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAGxE,KAAK,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAsE/E,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,mBAAmB,GAC1B,6BAA6B,CA2B/B;AA0BD,wBAAgB,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAkBnE"}
1
+ {"version":3,"file":"search-formatting.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/search-formatting.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAExE,KAAK,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAyF/E,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,mBAAmB,GAC1B,6BAA6B,CA6B/B;AA0BD,wBAAgB,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAyBnE"}