@j0hanz/filesystem-context-mcp 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) 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 +32 -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 +10 -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 +51 -31
  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 +13 -4
  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 +47 -18
  83. package/dist/lib/file-operations/read-multiple-files.js.map +1 -1
  84. package/dist/lib/file-operations/search/context-manager.d.ts +2 -0
  85. package/dist/lib/file-operations/search/context-manager.d.ts.map +1 -1
  86. package/dist/lib/file-operations/search/context-manager.js +22 -8
  87. package/dist/lib/file-operations/search/context-manager.js.map +1 -1
  88. package/dist/lib/file-operations/search/engine-stream.d.ts +1 -1
  89. package/dist/lib/file-operations/search/engine-stream.d.ts.map +1 -1
  90. package/dist/lib/file-operations/search/engine-stream.js +102 -9
  91. package/dist/lib/file-operations/search/engine-stream.js.map +1 -1
  92. package/dist/lib/file-operations/search/engine.d.ts.map +1 -1
  93. package/dist/lib/file-operations/search/engine.js +42 -5
  94. package/dist/lib/file-operations/search/engine.js.map +1 -1
  95. package/dist/lib/file-operations/search/file-processor.d.ts.map +1 -1
  96. package/dist/lib/file-operations/search/file-processor.js +102 -55
  97. package/dist/lib/file-operations/search/file-processor.js.map +1 -1
  98. package/dist/lib/file-operations/search/match-strategy.d.ts.map +1 -1
  99. package/dist/lib/file-operations/search/match-strategy.js +2 -1
  100. package/dist/lib/file-operations/search/match-strategy.js.map +1 -1
  101. package/dist/lib/file-operations/search/types.d.ts +3 -0
  102. package/dist/lib/file-operations/search/types.d.ts.map +1 -1
  103. package/dist/lib/file-operations/search-definitions/matchers.d.ts +12 -0
  104. package/dist/lib/file-operations/search-definitions/matchers.d.ts.map +1 -0
  105. package/dist/lib/file-operations/search-definitions/matchers.js +122 -0
  106. package/dist/lib/file-operations/search-definitions/matchers.js.map +1 -0
  107. package/dist/lib/file-operations/search-definitions/patterns.d.ts +14 -0
  108. package/dist/lib/file-operations/search-definitions/patterns.d.ts.map +1 -0
  109. package/dist/lib/file-operations/search-definitions/patterns.js +83 -0
  110. package/dist/lib/file-operations/search-definitions/patterns.js.map +1 -0
  111. package/dist/lib/file-operations/search-definitions.d.ts.map +1 -1
  112. package/dist/lib/file-operations/search-definitions.js +3 -208
  113. package/dist/lib/file-operations/search-definitions.js.map +1 -1
  114. package/dist/lib/file-operations/search-files-helpers.d.ts +2 -2
  115. package/dist/lib/file-operations/search-files-helpers.d.ts.map +1 -1
  116. package/dist/lib/file-operations/search-files-helpers.js +102 -14
  117. package/dist/lib/file-operations/search-files-helpers.js.map +1 -1
  118. package/dist/lib/file-operations/search-files-options.d.ts +4 -2
  119. package/dist/lib/file-operations/search-files-options.d.ts.map +1 -1
  120. package/dist/lib/file-operations/search-files-options.js.map +1 -1
  121. package/dist/lib/file-operations/search-files.d.ts.map +1 -1
  122. package/dist/lib/file-operations/search-files.js +7 -2
  123. package/dist/lib/file-operations/search-files.js.map +1 -1
  124. package/dist/lib/file-operations/sorting.d.ts.map +1 -1
  125. package/dist/lib/file-operations/sorting.js +39 -14
  126. package/dist/lib/file-operations/sorting.js.map +1 -1
  127. package/dist/lib/file-operations.d.ts +0 -5
  128. package/dist/lib/file-operations.d.ts.map +1 -1
  129. package/dist/lib/file-operations.js +0 -5
  130. package/dist/lib/file-operations.js.map +1 -1
  131. package/dist/lib/fs-helpers/abort.d.ts +3 -0
  132. package/dist/lib/fs-helpers/abort.d.ts.map +1 -0
  133. package/dist/lib/fs-helpers/abort.js +15 -0
  134. package/dist/lib/fs-helpers/abort.js.map +1 -0
  135. package/dist/lib/fs-helpers/concurrency.d.ts +1 -1
  136. package/dist/lib/fs-helpers/concurrency.d.ts.map +1 -1
  137. package/dist/lib/fs-helpers/concurrency.js +54 -6
  138. package/dist/lib/fs-helpers/concurrency.js.map +1 -1
  139. package/dist/lib/fs-helpers/readers/head-file.d.ts +1 -1
  140. package/dist/lib/fs-helpers/readers/head-file.d.ts.map +1 -1
  141. package/dist/lib/fs-helpers/readers/head-file.js +7 -4
  142. package/dist/lib/fs-helpers/readers/head-file.js.map +1 -1
  143. package/dist/lib/fs-helpers/readers/line-range.d.ts +1 -1
  144. package/dist/lib/fs-helpers/readers/line-range.d.ts.map +1 -1
  145. package/dist/lib/fs-helpers/readers/line-range.js +17 -3
  146. package/dist/lib/fs-helpers/readers/line-range.js.map +1 -1
  147. package/dist/lib/fs-helpers/readers/read-buffer.d.ts +2 -0
  148. package/dist/lib/fs-helpers/readers/read-buffer.d.ts.map +1 -0
  149. package/dist/lib/fs-helpers/readers/read-buffer.js +64 -0
  150. package/dist/lib/fs-helpers/readers/read-buffer.js.map +1 -0
  151. package/dist/lib/fs-helpers/readers/read-file-content.d.ts +11 -1
  152. package/dist/lib/fs-helpers/readers/read-file-content.d.ts.map +1 -1
  153. package/dist/lib/fs-helpers/readers/read-file-content.js +33 -9
  154. package/dist/lib/fs-helpers/readers/read-file-content.js.map +1 -1
  155. package/dist/lib/fs-helpers/readers/read-file.d.ts +11 -0
  156. package/dist/lib/fs-helpers/readers/read-file.d.ts.map +1 -1
  157. package/dist/lib/fs-helpers/readers/read-file.js +52 -15
  158. package/dist/lib/fs-helpers/readers/read-file.js.map +1 -1
  159. package/dist/lib/fs-helpers/readers/tail-file.d.ts +1 -1
  160. package/dist/lib/fs-helpers/readers/tail-file.d.ts.map +1 -1
  161. package/dist/lib/fs-helpers/readers/tail-file.js +7 -4
  162. package/dist/lib/fs-helpers/readers/tail-file.js.map +1 -1
  163. package/dist/lib/fs-helpers/readers.d.ts +1 -1
  164. package/dist/lib/fs-helpers/readers.d.ts.map +1 -1
  165. package/dist/lib/fs-helpers/readers.js +1 -1
  166. package/dist/lib/fs-helpers/readers.js.map +1 -1
  167. package/dist/lib/fs-helpers.d.ts +1 -1
  168. package/dist/lib/fs-helpers.d.ts.map +1 -1
  169. package/dist/lib/fs-helpers.js +1 -1
  170. package/dist/lib/fs-helpers.js.map +1 -1
  171. package/dist/lib/path-utils.d.ts +1 -0
  172. package/dist/lib/path-utils.d.ts.map +1 -1
  173. package/dist/lib/path-utils.js +12 -0
  174. package/dist/lib/path-utils.js.map +1 -1
  175. package/dist/lib/path-validation/allowed-directories.d.ts.map +1 -1
  176. package/dist/lib/path-validation/allowed-directories.js +2 -9
  177. package/dist/lib/path-validation/allowed-directories.js.map +1 -1
  178. package/dist/lib/path-validation/errors.js +2 -2
  179. package/dist/lib/path-validation/errors.js.map +1 -1
  180. package/dist/lib/path-validation/validators.d.ts.map +1 -1
  181. package/dist/lib/path-validation/validators.js +3 -1
  182. package/dist/lib/path-validation/validators.js.map +1 -1
  183. package/dist/schemas/common.d.ts +0 -18
  184. package/dist/schemas/common.d.ts.map +1 -1
  185. package/dist/schemas/common.js +0 -10
  186. package/dist/schemas/common.js.map +1 -1
  187. package/dist/schemas/index.d.ts +2 -2
  188. package/dist/schemas/index.d.ts.map +1 -1
  189. package/dist/schemas/index.js +2 -2
  190. package/dist/schemas/index.js.map +1 -1
  191. package/dist/schemas/input-helpers.d.ts +1 -4
  192. package/dist/schemas/input-helpers.d.ts.map +1 -1
  193. package/dist/schemas/input-helpers.js +9 -33
  194. package/dist/schemas/input-helpers.js.map +1 -1
  195. package/dist/schemas/inputs/checksums.d.ts +0 -2
  196. package/dist/schemas/inputs/checksums.d.ts.map +1 -1
  197. package/dist/schemas/inputs/checksums.js +2 -7
  198. package/dist/schemas/inputs/checksums.js.map +1 -1
  199. package/dist/schemas/inputs/directory.d.ts +0 -16
  200. package/dist/schemas/inputs/directory.d.ts.map +1 -1
  201. package/dist/schemas/inputs/directory.js +2 -44
  202. package/dist/schemas/inputs/directory.js.map +1 -1
  203. package/dist/schemas/inputs/read.d.ts +0 -4
  204. package/dist/schemas/inputs/read.d.ts.map +1 -1
  205. package/dist/schemas/inputs/read.js +0 -15
  206. package/dist/schemas/inputs/read.js.map +1 -1
  207. package/dist/schemas/inputs/search.d.ts +1 -12
  208. package/dist/schemas/inputs/search.d.ts.map +1 -1
  209. package/dist/schemas/inputs/search.js +4 -30
  210. package/dist/schemas/inputs/search.js.map +1 -1
  211. package/dist/schemas/inputs.d.ts +3 -4
  212. package/dist/schemas/inputs.d.ts.map +1 -1
  213. package/dist/schemas/inputs.js +3 -4
  214. package/dist/schemas/inputs.js.map +1 -1
  215. package/dist/schemas/output-helpers.d.ts +59 -0
  216. package/dist/schemas/output-helpers.d.ts.map +1 -1
  217. package/dist/schemas/output-helpers.js +31 -0
  218. package/dist/schemas/output-helpers.js.map +1 -1
  219. package/dist/schemas/outputs/checksums.d.ts +4 -4
  220. package/dist/schemas/outputs/checksums.d.ts.map +1 -1
  221. package/dist/schemas/outputs/checksums.js +2 -7
  222. package/dist/schemas/outputs/checksums.js.map +1 -1
  223. package/dist/schemas/outputs/directory.d.ts +68 -230
  224. package/dist/schemas/outputs/directory.d.ts.map +1 -1
  225. package/dist/schemas/outputs/directory.js +14 -32
  226. package/dist/schemas/outputs/directory.js.map +1 -1
  227. package/dist/schemas/outputs/file-info.d.ts +14 -14
  228. package/dist/schemas/outputs/file-info.d.ts.map +1 -1
  229. package/dist/schemas/outputs/file-info.js +4 -31
  230. package/dist/schemas/outputs/file-info.js.map +1 -1
  231. package/dist/schemas/outputs/read.d.ts +141 -46
  232. package/dist/schemas/outputs/read.d.ts.map +1 -1
  233. package/dist/schemas/outputs/read.js +35 -12
  234. package/dist/schemas/outputs/read.js.map +1 -1
  235. package/dist/schemas/outputs/search.d.ts +134 -124
  236. package/dist/schemas/outputs/search.d.ts.map +1 -1
  237. package/dist/schemas/outputs/search.js +33 -35
  238. package/dist/schemas/outputs/search.js.map +1 -1
  239. package/dist/schemas/outputs.d.ts +3 -4
  240. package/dist/schemas/outputs.d.ts.map +1 -1
  241. package/dist/schemas/outputs.js +3 -4
  242. package/dist/schemas/outputs.js.map +1 -1
  243. package/dist/server.d.ts.map +1 -1
  244. package/dist/server.js +4 -1
  245. package/dist/server.js.map +1 -1
  246. package/dist/tools/analyze-directory.d.ts.map +1 -1
  247. package/dist/tools/analyze-directory.js +26 -28
  248. package/dist/tools/analyze-directory.js.map +1 -1
  249. package/dist/tools/compute-checksums.d.ts.map +1 -1
  250. package/dist/tools/compute-checksums.js +13 -21
  251. package/dist/tools/compute-checksums.js.map +1 -1
  252. package/dist/tools/directory-tree.d.ts.map +1 -1
  253. package/dist/tools/directory-tree.js +11 -9
  254. package/dist/tools/directory-tree.js.map +1 -1
  255. package/dist/tools/get-file-info.d.ts.map +1 -1
  256. package/dist/tools/get-file-info.js +8 -44
  257. package/dist/tools/get-file-info.js.map +1 -1
  258. package/dist/tools/get-multiple-file-info.d.ts.map +1 -1
  259. package/dist/tools/get-multiple-file-info.js +13 -55
  260. package/dist/tools/get-multiple-file-info.js.map +1 -1
  261. package/dist/tools/index.d.ts.map +1 -1
  262. package/dist/tools/index.js +0 -10
  263. package/dist/tools/index.js.map +1 -1
  264. package/dist/tools/list-allowed-dirs.d.ts.map +1 -1
  265. package/dist/tools/list-allowed-dirs.js +37 -31
  266. package/dist/tools/list-allowed-dirs.js.map +1 -1
  267. package/dist/tools/list-directory.d.ts.map +1 -1
  268. package/dist/tools/list-directory.js +83 -83
  269. package/dist/tools/list-directory.js.map +1 -1
  270. package/dist/tools/read-file.d.ts.map +1 -1
  271. package/dist/tools/read-file.js +66 -43
  272. package/dist/tools/read-file.js.map +1 -1
  273. package/dist/tools/read-media-file.d.ts.map +1 -1
  274. package/dist/tools/read-media-file.js +8 -6
  275. package/dist/tools/read-media-file.js.map +1 -1
  276. package/dist/tools/read-multiple-files.d.ts.map +1 -1
  277. package/dist/tools/read-multiple-files.js +64 -25
  278. package/dist/tools/read-multiple-files.js.map +1 -1
  279. package/dist/tools/search-content.d.ts.map +1 -1
  280. package/dist/tools/search-content.js +14 -16
  281. package/dist/tools/search-content.js.map +1 -1
  282. package/dist/tools/search-definitions.d.ts.map +1 -1
  283. package/dist/tools/search-definitions.js +11 -8
  284. package/dist/tools/search-definitions.js.map +1 -1
  285. package/dist/tools/search-files.d.ts.map +1 -1
  286. package/dist/tools/search-files.js +61 -45
  287. package/dist/tools/search-files.js.map +1 -1
  288. package/dist/tools/shared/abort.d.ts +5 -0
  289. package/dist/tools/shared/abort.d.ts.map +1 -0
  290. package/dist/tools/shared/abort.js +41 -0
  291. package/dist/tools/shared/abort.js.map +1 -0
  292. package/dist/tools/shared/file-info.d.ts +17 -0
  293. package/dist/tools/shared/file-info.d.ts.map +1 -0
  294. package/dist/tools/shared/file-info.js +40 -0
  295. package/dist/tools/shared/file-info.js.map +1 -0
  296. package/dist/tools/shared/formatting.d.ts +5 -0
  297. package/dist/tools/shared/formatting.d.ts.map +1 -1
  298. package/dist/tools/shared/formatting.js +21 -1
  299. package/dist/tools/shared/formatting.js.map +1 -1
  300. package/dist/tools/shared/read-range.d.ts +7 -0
  301. package/dist/tools/shared/read-range.d.ts.map +1 -0
  302. package/dist/tools/shared/read-range.js +22 -0
  303. package/dist/tools/shared/read-range.js.map +1 -0
  304. package/dist/tools/shared/search-formatting.d.ts.map +1 -1
  305. package/dist/tools/shared/search-formatting.js +53 -28
  306. package/dist/tools/shared/search-formatting.js.map +1 -1
  307. package/dist/tools/tool-response.d.ts +22 -0
  308. package/dist/tools/tool-response.d.ts.map +1 -1
  309. package/dist/tools/tool-response.js +30 -0
  310. package/dist/tools/tool-response.js.map +1 -1
  311. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"compute-checksums.d.ts","sourceRoot":"","sources":["../../src/tools/compute-checksums.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuGzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAYpE"}
1
+ {"version":3,"file":"compute-checksums.d.ts","sourceRoot":"","sources":["../../src/tools/compute-checksums.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgGzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAapE"}
@@ -1,8 +1,8 @@
1
- import { ErrorCode, toRpcError } from '../lib/errors.js';
1
+ import { formatBytes, joinLines } from '../config/formatting.js';
2
+ import { ErrorCode } from '../lib/errors.js';
2
3
  import { computeChecksums } from '../lib/file-operations.js';
3
4
  import { ComputeChecksumsInputSchema, ComputeChecksumsOutputSchema, } from '../schemas/index.js';
4
- import { formatBytes } from './shared/formatting.js';
5
- import { buildToolResponse } from './tool-response.js';
5
+ import { buildToolErrorResponse, buildToolResponse, } from './tool-response.js';
6
6
  function buildStructuredResult(result) {
7
7
  return {
8
8
  ok: true,
@@ -17,19 +17,9 @@ function buildStructuredResult(result) {
17
17
  };
18
18
  }
19
19
  function buildTextResult(result) {
20
- const lines = [];
21
- lines.push(`Checksums (${result.summary.total} files):`);
22
- lines.push('');
23
- for (const item of result.results) {
24
- lines.push(formatChecksumLine(item));
25
- }
26
- lines.push('');
27
- lines.push('Summary:');
28
- lines.push(` Algorithm: ${getSummaryAlgorithm(result)}`);
29
- lines.push(` Total: ${result.summary.total}`);
30
- lines.push(` Succeeded: ${result.summary.succeeded}`);
31
- lines.push(` Failed: ${result.summary.failed}`);
32
- return lines.join('\n');
20
+ const checksumLines = result.results.map(formatChecksumLine);
21
+ const summary = `${getSummaryAlgorithm(result)} | ${result.summary.succeeded}/${result.summary.total} ok`;
22
+ return joinLines([`Checksums (${summary}):`, ...checksumLines]);
33
23
  }
34
24
  function formatChecksumLine(item) {
35
25
  if (!item.checksum) {
@@ -41,11 +31,12 @@ function formatChecksumLine(item) {
41
31
  function getSummaryAlgorithm(result) {
42
32
  return result.results[0]?.algorithm ?? 'sha256';
43
33
  }
44
- async function handleComputeChecksums(args) {
34
+ async function handleComputeChecksums(args, signal) {
45
35
  const result = await computeChecksums(args.paths, {
46
36
  algorithm: args.algorithm,
47
37
  encoding: args.encoding,
48
38
  maxFileSize: args.maxFileSize,
39
+ signal,
49
40
  });
50
41
  return buildToolResponse(buildTextResult(result), buildStructuredResult(result));
51
42
  }
@@ -65,13 +56,14 @@ const COMPUTE_CHECKSUMS_TOOL = {
65
56
  },
66
57
  };
67
58
  export function registerComputeChecksumsTool(server) {
68
- server.registerTool('compute_checksums', COMPUTE_CHECKSUMS_TOOL, async (args) => {
59
+ const handler = async (args, extra) => {
69
60
  try {
70
- return await handleComputeChecksums(args);
61
+ return await handleComputeChecksums(args, extra.signal);
71
62
  }
72
63
  catch (error) {
73
- throw toRpcError(error, ErrorCode.E_UNKNOWN);
64
+ return buildToolErrorResponse(error, ErrorCode.E_UNKNOWN);
74
65
  }
75
- });
66
+ };
67
+ server.registerTool('compute_checksums', COMPUTE_CHECKSUMS_TOOL, handler);
76
68
  }
77
69
  //# sourceMappingURL=compute-checksums.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compute-checksums.js","sourceRoot":"","sources":["../../src/tools/compute-checksums.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compute-checksums.js","sourceRoot":"","sources":["../../src/tools/compute-checksums.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"directory-tree.d.ts","sourceRoot":"","sources":["../../src/tools/directory-tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoHzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAYjE"}
1
+ {"version":3,"file":"directory-tree.d.ts","sourceRoot":"","sources":["../../src/tools/directory-tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiIzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiBjE"}
@@ -1,10 +1,10 @@
1
- import { ErrorCode, toRpcError } from '../lib/errors.js';
1
+ import { formatBytes, formatOperationSummary, joinLines, } from '../config/formatting.js';
2
+ import { ErrorCode } from '../lib/errors.js';
2
3
  import { getDirectoryTree } from '../lib/file-operations.js';
3
4
  import { DirectoryTreeInputSchema, DirectoryTreeOutputSchema, } from '../schemas/index.js';
4
- import { formatBytes, formatOperationSummary } from './shared/formatting.js';
5
- import { buildToolResponse } from './tool-response.js';
5
+ import { buildToolErrorResponse, buildToolResponse, } from './tool-response.js';
6
6
  function formatTreeEntry(entry, indent = '') {
7
- return formatTreeEntryLines(entry, indent).join('\n');
7
+ return joinLines(formatTreeEntryLines(entry, indent));
8
8
  }
9
9
  function formatTreeEntryLines(entry, indent) {
10
10
  const lines = [formatTreeEntryLine(entry, indent)];
@@ -40,13 +40,14 @@ function buildTextResult(result, includeSize) {
40
40
  });
41
41
  return textOutput;
42
42
  }
43
- async function handleDirectoryTree({ path, maxDepth, excludePatterns, includeHidden, includeSize, maxFiles, }) {
43
+ async function handleDirectoryTree({ path, maxDepth, excludePatterns, includeHidden, includeSize, maxFiles, }, signal) {
44
44
  const result = await getDirectoryTree(path, {
45
45
  maxDepth,
46
46
  excludePatterns,
47
47
  includeHidden,
48
48
  includeSize,
49
49
  maxFiles,
50
+ signal,
50
51
  });
51
52
  const structured = buildStructuredResult(result);
52
53
  const textOutput = buildTextResult(result, includeSize);
@@ -68,13 +69,14 @@ const DIRECTORY_TREE_TOOL = {
68
69
  },
69
70
  };
70
71
  export function registerDirectoryTreeTool(server) {
71
- server.registerTool('directory_tree', DIRECTORY_TREE_TOOL, async (args) => {
72
+ const handler = async (args, extra) => {
72
73
  try {
73
- return await handleDirectoryTree(args);
74
+ return await handleDirectoryTree(args, extra.signal);
74
75
  }
75
76
  catch (error) {
76
- throw toRpcError(error, ErrorCode.E_NOT_DIRECTORY, args.path);
77
+ return buildToolErrorResponse(error, ErrorCode.E_NOT_DIRECTORY, args.path);
77
78
  }
78
- });
79
+ };
80
+ server.registerTool('directory_tree', DIRECTORY_TREE_TOOL, handler);
79
81
  }
80
82
  //# sourceMappingURL=directory-tree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directory-tree.js","sourceRoot":"","sources":["../../src/tools/directory-tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directory-tree.js","sourceRoot":"","sources":["../../src/tools/directory-tree.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-file-info.d.ts","sourceRoot":"","sources":["../../src/tools/get-file-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkFzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAY/D"}
1
+ {"version":3,"file":"get-file-info.d.ts","sourceRoot":"","sources":["../../src/tools/get-file-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4DzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAU/D"}
@@ -1,52 +1,22 @@
1
- import { ErrorCode, toRpcError } from '../lib/errors.js';
1
+ import { ErrorCode } from '../lib/errors.js';
2
2
  import { getFileInfo } from '../lib/file-operations.js';
3
3
  import { GetFileInfoInputSchema, GetFileInfoOutputSchema, } from '../schemas/index.js';
4
- import { formatBytes, formatDate } from './shared/formatting.js';
5
- import { buildToolResponse } from './tool-response.js';
6
- function formatFileInfo(info) {
7
- const lines = [
8
- `Name: ${info.name}`,
9
- `Path: ${info.path}`,
10
- `Type: ${info.type}`,
11
- `Size: ${formatBytes(info.size)}`,
12
- `Created: ${formatDate(info.created)}`,
13
- `Modified: ${formatDate(info.modified)}`,
14
- `Accessed: ${formatDate(info.accessed)}`,
15
- `Permissions: ${info.permissions}`,
16
- `Hidden: ${info.isHidden ? 'Yes' : 'No'}`,
17
- ];
18
- if (info.mimeType)
19
- lines.push(`MIME Type: ${info.mimeType}`);
20
- if (info.symlinkTarget)
21
- lines.push(`Symlink Target: ${info.symlinkTarget}`);
22
- return lines.join('\n');
23
- }
4
+ import { buildFileInfoPayload, formatFileInfoDetails, } from './shared/file-info.js';
5
+ import { buildToolErrorResponse, buildToolResponse, withToolErrorHandling, } from './tool-response.js';
24
6
  function buildStructuredResult(info) {
25
7
  return {
26
8
  ok: true,
27
- info: {
28
- name: info.name,
29
- path: info.path,
30
- type: info.type,
31
- size: info.size,
32
- created: info.created.toISOString(),
33
- modified: info.modified.toISOString(),
34
- accessed: info.accessed.toISOString(),
35
- permissions: info.permissions,
36
- isHidden: info.isHidden,
37
- mimeType: info.mimeType,
38
- symlinkTarget: info.symlinkTarget,
39
- },
9
+ info: buildFileInfoPayload(info),
40
10
  };
41
11
  }
42
12
  async function handleGetFileInfo({ path, }) {
43
13
  const info = await getFileInfo(path);
44
14
  const structured = buildStructuredResult(info);
45
- return buildToolResponse(formatFileInfo(info), structured);
15
+ return buildToolResponse(formatFileInfoDetails(info), structured);
46
16
  }
47
17
  const GET_FILE_INFO_TOOL = {
48
18
  title: 'Get File Info',
49
- description: 'Retrieve detailed metadata about a file or directory without reading its contents. ' +
19
+ description: 'Retrieve detailed metadata about a file or directory without reading contents. ' +
50
20
  'Returns: name, path, type, size, timestamps (created/modified/accessed), permissions, ' +
51
21
  'MIME type (for files), hidden status, and symlink target (if applicable). ' +
52
22
  'Use this to check file properties before reading large files.',
@@ -59,13 +29,7 @@ const GET_FILE_INFO_TOOL = {
59
29
  },
60
30
  };
61
31
  export function registerGetFileInfoTool(server) {
62
- server.registerTool('get_file_info', GET_FILE_INFO_TOOL, async (args) => {
63
- try {
64
- return await handleGetFileInfo(args);
65
- }
66
- catch (error) {
67
- throw toRpcError(error, ErrorCode.E_NOT_FOUND, args.path);
68
- }
69
- });
32
+ const handler = (args) => withToolErrorHandling(() => handleGetFileInfo(args), (error) => buildToolErrorResponse(error, ErrorCode.E_NOT_FOUND, args.path));
33
+ server.registerTool('get_file_info', GET_FILE_INFO_TOOL, handler);
70
34
  }
71
35
  //# sourceMappingURL=get-file-info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-file-info.js","sourceRoot":"","sources":["../../src/tools/get-file-info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-file-info.js","sourceRoot":"","sources":["../../src/tools/get-file-info.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EAGjB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAK5B,SAAS,qBAAqB,CAC5B,IAA6C;IAE7C,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,EAC/B,IAAI,GAGL;IACC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,kBAAkB,GAAG;IACzB,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,iFAAiF;QACjF,wFAAwF;QACxF,4EAA4E;QAC5E,+DAA+D;IACjE,WAAW,EAAE,sBAAsB;IACnC,YAAY,EAAE,uBAAuB,CAAC,KAAK;IAC3C,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;CACO,CAAC;AAEX,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,OAAO,GAAG,CACd,IAAqB,EAC6B,EAAE,CACpD,qBAAqB,CACnB,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAC7B,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAC3E,CAAC;IAEJ,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-multiple-file-info.d.ts","sourceRoot":"","sources":["../../src/tools/get-multiple-file-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyHzE,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAYvE"}
1
+ {"version":3,"file":"get-multiple-file-info.d.ts","sourceRoot":"","sources":["../../src/tools/get-multiple-file-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyFzE,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAcvE"}
@@ -1,66 +1,30 @@
1
- import { ErrorCode, toRpcError } from '../lib/errors.js';
1
+ import { formatBytes, joinLines } from '../config/formatting.js';
2
+ import { ErrorCode } from '../lib/errors.js';
2
3
  import { getMultipleFileInfo } from '../lib/file-operations.js';
3
4
  import { GetMultipleFileInfoInputSchema, GetMultipleFileInfoOutputSchema, } from '../schemas/index.js';
4
- import { formatBytes } from './shared/formatting.js';
5
- import { buildToolResponse } from './tool-response.js';
5
+ import { buildFileInfoPayload, formatFileInfoSummary, } from './shared/file-info.js';
6
+ import { buildToolErrorResponse, buildToolResponse, withToolErrorHandling, } from './tool-response.js';
6
7
  function buildStructuredResult(result) {
7
8
  return {
8
9
  ok: true,
9
10
  results: result.results.map((r) => ({
10
11
  path: r.path,
11
- info: r.info
12
- ? {
13
- name: r.info.name,
14
- path: r.info.path,
15
- type: r.info.type,
16
- size: r.info.size,
17
- created: r.info.created.toISOString(),
18
- modified: r.info.modified.toISOString(),
19
- accessed: r.info.accessed.toISOString(),
20
- permissions: r.info.permissions,
21
- isHidden: r.info.isHidden,
22
- mimeType: r.info.mimeType,
23
- symlinkTarget: r.info.symlinkTarget,
24
- }
25
- : undefined,
12
+ info: r.info ? buildFileInfoPayload(r.info) : undefined,
26
13
  error: r.error,
27
14
  })),
28
15
  summary: result.summary,
29
16
  };
30
17
  }
31
18
  function buildTextResult(result) {
32
- const lines = [];
33
- lines.push(`File Information (${result.summary.total} files):`);
34
- lines.push('');
35
- for (const item of result.results) {
36
- lines.push(...formatFileInfoBlock(item));
37
- }
38
- lines.push('Summary:');
39
- lines.push(` Total: ${result.summary.total}`);
40
- lines.push(` Succeeded: ${result.summary.succeeded}`);
41
- lines.push(` Failed: ${result.summary.failed}`);
42
- lines.push(` Total Size: ${formatBytes(result.summary.totalSize)}`);
43
- return lines.join('\n');
19
+ const fileBlocks = result.results.flatMap(formatFileInfoBlock);
20
+ const summary = `${result.summary.succeeded}/${result.summary.total} ok | ${formatBytes(result.summary.totalSize)}`;
21
+ return joinLines([`File info (${summary}):`, ...fileBlocks]);
44
22
  }
45
23
  function formatFileInfoBlock(item) {
46
24
  if (!item.info) {
47
- return [
48
- `=== ${item.path} ===`,
49
- ` [Error: ${item.error ?? 'Unknown error'}]`,
50
- '',
51
- ];
52
- }
53
- const lines = [
54
- `=== ${item.path} ===`,
55
- ` Type: ${item.info.type}`,
56
- ` Size: ${formatBytes(item.info.size)}`,
57
- ` Modified: ${item.info.modified.toISOString()}`,
58
- ];
59
- if (item.info.mimeType) {
60
- lines.push(` MIME: ${item.info.mimeType}`);
25
+ return [`${item.path} [error: ${item.error ?? 'unknown'}]`];
61
26
  }
62
- lines.push('');
63
- return lines;
27
+ return [formatFileInfoSummary(item.path, item.info)];
64
28
  }
65
29
  async function handleGetMultipleFileInfo(args) {
66
30
  const result = await getMultipleFileInfo(args.paths, {
@@ -72,7 +36,7 @@ const GET_MULTIPLE_FILE_INFO_TOOL = {
72
36
  title: 'Get Multiple File Info',
73
37
  description: 'Retrieve detailed metadata about multiple files or directories in a single operation (parallel processing). ' +
74
38
  'More efficient than calling get_file_info repeatedly. ' +
75
- 'Individual file errors do not fail the entire operationeach file reports success or error independently. ' +
39
+ 'Individual file errors do not fail the entire operation; each file reports success or error independently. ' +
76
40
  'Returns: name, path, type, size, timestamps, permissions, MIME type, and symlink target for each path.',
77
41
  inputSchema: GetMultipleFileInfoInputSchema,
78
42
  outputSchema: GetMultipleFileInfoOutputSchema.shape,
@@ -83,13 +47,7 @@ const GET_MULTIPLE_FILE_INFO_TOOL = {
83
47
  },
84
48
  };
85
49
  export function registerGetMultipleFileInfoTool(server) {
86
- server.registerTool('get_multiple_file_info', GET_MULTIPLE_FILE_INFO_TOOL, async (args) => {
87
- try {
88
- return await handleGetMultipleFileInfo(args);
89
- }
90
- catch (error) {
91
- throw toRpcError(error, ErrorCode.E_UNKNOWN);
92
- }
93
- });
50
+ const handler = (args) => withToolErrorHandling(() => handleGetMultipleFileInfo(args), (error) => buildToolErrorResponse(error, ErrorCode.E_UNKNOWN));
51
+ server.registerTool('get_multiple_file_info', GET_MULTIPLE_FILE_INFO_TOOL, handler);
94
52
  }
95
53
  //# sourceMappingURL=get-multiple-file-info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-multiple-file-info.js","sourceRoot":"","sources":["../../src/tools/get-multiple-file-info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-multiple-file-info.js","sourceRoot":"","sources":["../../src/tools/get-multiple-file-info.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAcxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CASxD"}
@@ -1,15 +1,10 @@
1
- import { registerAnalyzeDirectoryTool } from './analyze-directory.js';
2
- import { registerComputeChecksumsTool } from './compute-checksums.js';
3
- import { registerDirectoryTreeTool } from './directory-tree.js';
4
1
  import { registerGetFileInfoTool } from './get-file-info.js';
5
2
  import { registerGetMultipleFileInfoTool } from './get-multiple-file-info.js';
6
3
  import { registerListAllowedDirectoriesTool } from './list-allowed-dirs.js';
7
4
  import { registerListDirectoryTool } from './list-directory.js';
8
5
  import { registerReadFileTool } from './read-file.js';
9
- import { registerReadMediaFileTool } from './read-media-file.js';
10
6
  import { registerReadMultipleFilesTool } from './read-multiple-files.js';
11
7
  import { registerSearchContentTool } from './search-content.js';
12
- import { registerSearchDefinitionsTool } from './search-definitions.js';
13
8
  import { registerSearchFilesTool } from './search-files.js';
14
9
  export function registerAllTools(server) {
15
10
  registerListAllowedDirectoriesTool(server);
@@ -19,11 +14,6 @@ export function registerAllTools(server) {
19
14
  registerReadMultipleFilesTool(server);
20
15
  registerGetFileInfoTool(server);
21
16
  registerGetMultipleFileInfoTool(server);
22
- registerComputeChecksumsTool(server);
23
17
  registerSearchContentTool(server);
24
- registerSearchDefinitionsTool(server);
25
- registerAnalyzeDirectoryTool(server);
26
- registerDirectoryTreeTool(server);
27
- registerReadMediaFileTool(server);
28
18
  }
29
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,kCAAkC,CAAC,MAAM,CAAC,CAAC;IAC3C,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IACxC,4BAA4B,CAAC,MAAM,CAAC,CAAC;IACrC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,4BAA4B,CAAC,MAAM,CAAC,CAAC;IACrC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,kCAAkC,CAAC,MAAM,CAAC,CAAC;IAC3C,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IACxC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-allowed-dirs.d.ts","sourceRoot":"","sources":["../../src/tools/list-allowed-dirs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0GzE,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAY1E"}
1
+ {"version":3,"file":"list-allowed-dirs.d.ts","sourceRoot":"","sources":["../../src/tools/list-allowed-dirs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsIzE,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAa1E"}
@@ -1,19 +1,26 @@
1
1
  import * as fs from 'node:fs/promises';
2
- import { ErrorCode, toRpcError } from '../lib/errors.js';
2
+ import { joinLines } from '../config/formatting.js';
3
+ import { ErrorCode, isNodeError } from '../lib/errors.js';
3
4
  import { getAllowedDirectories } from '../lib/path-validation.js';
4
5
  import { ListAllowedDirectoriesOutputSchema } from '../schemas/index.js';
5
- import { buildToolResponse } from './tool-response.js';
6
- function formatAllowedDirectories(dirs, accessStatus) {
6
+ import { buildToolErrorResponse, buildToolResponse, withToolErrorHandling, } from './tool-response.js';
7
+ const ACCESS_STATUS_BY_CODE = {
8
+ EACCES: { accessible: true, readable: false },
9
+ EPERM: { accessible: true, readable: false },
10
+ ENOENT: { accessible: false, readable: false },
11
+ ENOTDIR: { accessible: false, readable: false },
12
+ };
13
+ function buildTextResult(dirs, accessStatus) {
7
14
  if (dirs.length === 0) {
8
- return 'No directories are currently allowed.';
15
+ return 'No directories allowed.';
9
16
  }
10
- const lines = ['Allowed Directories:', ''];
11
- for (const dir of dirs) {
12
- const access = accessStatus.find((a) => a.path === dir);
17
+ const accessByPath = new Map(accessStatus.map((status) => [status.path, status]));
18
+ const lines = dirs.map((dir) => {
19
+ const access = accessByPath.get(dir);
13
20
  const tag = buildAccessTag(access);
14
- lines.push(tag ? ` - ${dir} ${tag}` : ` - ${dir}`);
15
- }
16
- return lines.join('\n');
21
+ return tag ? `${dir} ${tag}` : dir;
22
+ });
23
+ return joinLines([`Allowed directories (${dirs.length}):`, ...lines]);
17
24
  }
18
25
  function buildAccessTag(access) {
19
26
  if (!access)
@@ -24,19 +31,24 @@ function buildAccessTag(access) {
24
31
  return '[no read access]';
25
32
  return '[readable]';
26
33
  }
34
+ function resolveAccessFromError(error, dirPath) {
35
+ if (!isNodeError(error)) {
36
+ return { path: dirPath, accessible: false, readable: false };
37
+ }
38
+ const status = error.code ? ACCESS_STATUS_BY_CODE[error.code] : undefined;
39
+ if (!status) {
40
+ return { path: dirPath, accessible: false, readable: false };
41
+ }
42
+ return { path: dirPath, ...status };
43
+ }
27
44
  async function checkDirectoryAccess(dirPath) {
28
45
  try {
29
- await fs.access(dirPath, fs.constants.R_OK);
46
+ const dir = await fs.opendir(dirPath);
47
+ await dir.close();
30
48
  return { path: dirPath, accessible: true, readable: true };
31
49
  }
32
- catch {
33
- try {
34
- await fs.access(dirPath, fs.constants.F_OK);
35
- return { path: dirPath, accessible: true, readable: false };
36
- }
37
- catch {
38
- return { path: dirPath, accessible: false, readable: false };
39
- }
50
+ catch (error) {
51
+ return resolveAccessFromError(error, dirPath);
40
52
  }
41
53
  }
42
54
  function buildHint(count) {
@@ -60,13 +72,13 @@ async function handleListAllowedDirectories() {
60
72
  accessStatus,
61
73
  hint,
62
74
  };
63
- return buildToolResponse(formatAllowedDirectories(dirs, accessStatus), structured);
75
+ return buildToolResponse(buildTextResult(dirs, accessStatus), structured);
64
76
  }
65
77
  const LIST_ALLOWED_DIRECTORIES_TOOL = {
66
78
  title: 'List Allowed Directories',
67
- description: 'Returns the list of directories this server is permitted to access. ' +
68
- 'Call this FIRST to understand the scope of available file operations. ' +
69
- 'All other tools will only work within these directories for security.',
79
+ description: 'List the directories this server is permitted to access, plus access status. ' +
80
+ 'Call this first to understand the scope of available file operations. ' +
81
+ 'All other tools only work within these directories for security.',
70
82
  outputSchema: ListAllowedDirectoriesOutputSchema.shape,
71
83
  annotations: {
72
84
  readOnlyHint: true,
@@ -75,13 +87,7 @@ const LIST_ALLOWED_DIRECTORIES_TOOL = {
75
87
  },
76
88
  };
77
89
  export function registerListAllowedDirectoriesTool(server) {
78
- server.registerTool('list_allowed_directories', LIST_ALLOWED_DIRECTORIES_TOOL, async () => {
79
- try {
80
- return await handleListAllowedDirectories();
81
- }
82
- catch (error) {
83
- throw toRpcError(error, ErrorCode.E_UNKNOWN);
84
- }
85
- });
90
+ const handler = () => withToolErrorHandling(handleListAllowedDirectories, (error) => buildToolErrorResponse(error, ErrorCode.E_UNKNOWN));
91
+ server.registerTool('list_allowed_directories', LIST_ALLOWED_DIRECTORIES_TOOL, handler);
86
92
  }
87
93
  //# sourceMappingURL=list-allowed-dirs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-allowed-dirs.js","sourceRoot":"","sources":["../../src/tools/list-allowed-dirs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-allowed-dirs.js","sourceRoot":"","sources":["../../src/tools/list-allowed-dirs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-directory.d.ts","sourceRoot":"","sources":["../../src/tools/list-directory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0KzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAYjE"}
1
+ {"version":3,"file":"list-directory.d.ts","sourceRoot":"","sources":["../../src/tools/list-directory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkMzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAYjE"}