codesift-mcp 0.5.24 → 0.5.28

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 (221) hide show
  1. package/README.md +4 -4
  2. package/dist/cli/commands.d.ts.map +1 -1
  3. package/dist/cli/commands.js +28 -0
  4. package/dist/cli/commands.js.map +1 -1
  5. package/dist/cli/help.js +1 -1
  6. package/dist/cli/help.js.map +1 -1
  7. package/dist/cli/hooks.d.ts +4 -0
  8. package/dist/cli/hooks.d.ts.map +1 -1
  9. package/dist/cli/hooks.js +15 -4
  10. package/dist/cli/hooks.js.map +1 -1
  11. package/dist/cli/journal-commands.d.ts +9 -0
  12. package/dist/cli/journal-commands.d.ts.map +1 -0
  13. package/dist/cli/journal-commands.js +160 -0
  14. package/dist/cli/journal-commands.js.map +1 -0
  15. package/dist/cli/wiki-commands.d.ts.map +1 -1
  16. package/dist/cli/wiki-commands.js +5 -0
  17. package/dist/cli/wiki-commands.js.map +1 -1
  18. package/dist/instructions.d.ts +1 -1
  19. package/dist/instructions.d.ts.map +1 -1
  20. package/dist/instructions.js +41 -47
  21. package/dist/instructions.js.map +1 -1
  22. package/dist/parser/extractors/_shared.d.ts +2 -0
  23. package/dist/parser/extractors/_shared.d.ts.map +1 -1
  24. package/dist/parser/extractors/_shared.js +4 -0
  25. package/dist/parser/extractors/_shared.js.map +1 -1
  26. package/dist/parser/extractors/typescript.d.ts.map +1 -1
  27. package/dist/parser/extractors/typescript.js +606 -31
  28. package/dist/parser/extractors/typescript.js.map +1 -1
  29. package/dist/parser/parse-worker.d.ts +2 -0
  30. package/dist/parser/parse-worker.d.ts.map +1 -0
  31. package/dist/parser/parse-worker.js +47 -0
  32. package/dist/parser/parse-worker.js.map +1 -0
  33. package/dist/parser/parser-manager.d.ts +10 -1
  34. package/dist/parser/parser-manager.d.ts.map +1 -1
  35. package/dist/parser/parser-manager.js +40 -2
  36. package/dist/parser/parser-manager.js.map +1 -1
  37. package/dist/parser/parser-pool.d.ts +31 -0
  38. package/dist/parser/parser-pool.d.ts.map +1 -0
  39. package/dist/parser/parser-pool.js +211 -0
  40. package/dist/parser/parser-pool.js.map +1 -0
  41. package/dist/register-tool-loaders.d.ts +1 -1
  42. package/dist/register-tool-loaders.d.ts.map +1 -1
  43. package/dist/register-tool-loaders.js +2 -2
  44. package/dist/register-tool-loaders.js.map +1 -1
  45. package/dist/register-tools.d.ts.map +1 -1
  46. package/dist/register-tools.js +382 -35
  47. package/dist/register-tools.js.map +1 -1
  48. package/dist/retrieval/codebase-retrieval.d.ts.map +1 -1
  49. package/dist/retrieval/codebase-retrieval.js +9 -1
  50. package/dist/retrieval/codebase-retrieval.js.map +1 -1
  51. package/dist/search/chunker.d.ts +1 -0
  52. package/dist/search/chunker.d.ts.map +1 -1
  53. package/dist/search/chunker.js +8 -1
  54. package/dist/search/chunker.js.map +1 -1
  55. package/dist/server-helpers.d.ts +27 -0
  56. package/dist/server-helpers.d.ts.map +1 -1
  57. package/dist/server-helpers.js +90 -9
  58. package/dist/server-helpers.js.map +1 -1
  59. package/dist/server.js +31 -0
  60. package/dist/server.js.map +1 -1
  61. package/dist/storage/index-store.d.ts +41 -4
  62. package/dist/storage/index-store.d.ts.map +1 -1
  63. package/dist/storage/index-store.js +89 -6
  64. package/dist/storage/index-store.js.map +1 -1
  65. package/dist/storage/watcher.d.ts +33 -6
  66. package/dist/storage/watcher.d.ts.map +1 -1
  67. package/dist/storage/watcher.js +73 -34
  68. package/dist/storage/watcher.js.map +1 -1
  69. package/dist/storage/workspace-resolver.d.ts +15 -0
  70. package/dist/storage/workspace-resolver.d.ts.map +1 -0
  71. package/dist/storage/workspace-resolver.js +130 -0
  72. package/dist/storage/workspace-resolver.js.map +1 -0
  73. package/dist/tools/_helpers.d.ts +37 -0
  74. package/dist/tools/_helpers.d.ts.map +1 -0
  75. package/dist/tools/_helpers.js +31 -0
  76. package/dist/tools/_helpers.js.map +1 -0
  77. package/dist/tools/constant-resolution-tools.d.ts +8 -0
  78. package/dist/tools/constant-resolution-tools.d.ts.map +1 -0
  79. package/dist/tools/constant-resolution-tools.js +68 -0
  80. package/dist/tools/constant-resolution-tools.js.map +1 -0
  81. package/dist/tools/graph-tools.d.ts +27 -5
  82. package/dist/tools/graph-tools.d.ts.map +1 -1
  83. package/dist/tools/graph-tools.js +141 -18
  84. package/dist/tools/graph-tools.js.map +1 -1
  85. package/dist/tools/hotspot-tools.d.ts +6 -0
  86. package/dist/tools/hotspot-tools.d.ts.map +1 -1
  87. package/dist/tools/hotspot-tools.js +48 -8
  88. package/dist/tools/hotspot-tools.js.map +1 -1
  89. package/dist/tools/impact-tools.d.ts.map +1 -1
  90. package/dist/tools/impact-tools.js +9 -2
  91. package/dist/tools/impact-tools.js.map +1 -1
  92. package/dist/tools/index-tools.d.ts +15 -1
  93. package/dist/tools/index-tools.d.ts.map +1 -1
  94. package/dist/tools/index-tools.js +161 -16
  95. package/dist/tools/index-tools.js.map +1 -1
  96. package/dist/tools/journal-generator-helpers.d.ts +55 -0
  97. package/dist/tools/journal-generator-helpers.d.ts.map +1 -0
  98. package/dist/tools/journal-generator-helpers.js +250 -0
  99. package/dist/tools/journal-generator-helpers.js.map +1 -0
  100. package/dist/tools/journal-generator.d.ts +48 -0
  101. package/dist/tools/journal-generator.d.ts.map +1 -0
  102. package/dist/tools/journal-generator.js +204 -0
  103. package/dist/tools/journal-generator.js.map +1 -0
  104. package/dist/tools/journal-git-client.d.ts +20 -0
  105. package/dist/tools/journal-git-client.d.ts.map +1 -0
  106. package/dist/tools/journal-git-client.js +57 -0
  107. package/dist/tools/journal-git-client.js.map +1 -0
  108. package/dist/tools/journal-llm-client.d.ts +57 -0
  109. package/dist/tools/journal-llm-client.d.ts.map +1 -0
  110. package/dist/tools/journal-llm-client.js +175 -0
  111. package/dist/tools/journal-llm-client.js.map +1 -0
  112. package/dist/tools/journal-migrator.d.ts +22 -0
  113. package/dist/tools/journal-migrator.d.ts.map +1 -0
  114. package/dist/tools/journal-migrator.js +183 -0
  115. package/dist/tools/journal-migrator.js.map +1 -0
  116. package/dist/tools/journal-phase-detector.d.ts +26 -0
  117. package/dist/tools/journal-phase-detector.d.ts.map +1 -0
  118. package/dist/tools/journal-phase-detector.js +126 -0
  119. package/dist/tools/journal-phase-detector.js.map +1 -0
  120. package/dist/tools/journal-sentinel.d.ts +15 -0
  121. package/dist/tools/journal-sentinel.d.ts.map +1 -0
  122. package/dist/tools/journal-sentinel.js +110 -0
  123. package/dist/tools/journal-sentinel.js.map +1 -0
  124. package/dist/tools/journal-templates.d.ts +28 -0
  125. package/dist/tools/journal-templates.d.ts.map +1 -0
  126. package/dist/tools/journal-templates.js +93 -0
  127. package/dist/tools/journal-templates.js.map +1 -0
  128. package/dist/tools/pattern-tools.d.ts +2 -0
  129. package/dist/tools/pattern-tools.d.ts.map +1 -1
  130. package/dist/tools/pattern-tools.js +73 -0
  131. package/dist/tools/pattern-tools.js.map +1 -1
  132. package/dist/tools/perf-tools.d.ts.map +1 -1
  133. package/dist/tools/perf-tools.js +6 -0
  134. package/dist/tools/perf-tools.js.map +1 -1
  135. package/dist/tools/plan-turn-tools.d.ts.map +1 -1
  136. package/dist/tools/plan-turn-tools.js +38 -2
  137. package/dist/tools/plan-turn-tools.js.map +1 -1
  138. package/dist/tools/project-tools.d.ts +6 -0
  139. package/dist/tools/project-tools.d.ts.map +1 -1
  140. package/dist/tools/project-tools.js +65 -25
  141. package/dist/tools/project-tools.js.map +1 -1
  142. package/dist/tools/python-constants-tools.d.ts +6 -0
  143. package/dist/tools/python-constants-tools.d.ts.map +1 -1
  144. package/dist/tools/python-constants-tools.js.map +1 -1
  145. package/dist/tools/react-tools.d.ts +44 -1
  146. package/dist/tools/react-tools.d.ts.map +1 -1
  147. package/dist/tools/react-tools.js +142 -9
  148. package/dist/tools/react-tools.js.map +1 -1
  149. package/dist/tools/search-tools.d.ts.map +1 -1
  150. package/dist/tools/search-tools.js +21 -2
  151. package/dist/tools/search-tools.js.map +1 -1
  152. package/dist/tools/status-tools.d.ts +10 -0
  153. package/dist/tools/status-tools.d.ts.map +1 -1
  154. package/dist/tools/status-tools.js +53 -2
  155. package/dist/tools/status-tools.js.map +1 -1
  156. package/dist/tools/symbol-tools.d.ts +13 -0
  157. package/dist/tools/symbol-tools.d.ts.map +1 -1
  158. package/dist/tools/symbol-tools.js +38 -0
  159. package/dist/tools/symbol-tools.js.map +1 -1
  160. package/dist/tools/typescript-constants-tools.d.ts +6 -0
  161. package/dist/tools/typescript-constants-tools.d.ts.map +1 -0
  162. package/dist/tools/typescript-constants-tools.js +687 -0
  163. package/dist/tools/typescript-constants-tools.js.map +1 -0
  164. package/dist/tools/wiki-hub-ranker.d.ts +36 -0
  165. package/dist/tools/wiki-hub-ranker.d.ts.map +1 -0
  166. package/dist/tools/wiki-hub-ranker.js +72 -0
  167. package/dist/tools/wiki-hub-ranker.js.map +1 -0
  168. package/dist/tools/wiki-lint.d.ts +7 -2
  169. package/dist/tools/wiki-lint.d.ts.map +1 -1
  170. package/dist/tools/wiki-lint.js +73 -1
  171. package/dist/tools/wiki-lint.js.map +1 -1
  172. package/dist/tools/wiki-manifest.d.ts +129 -21
  173. package/dist/tools/wiki-manifest.d.ts.map +1 -1
  174. package/dist/tools/wiki-manifest.js +16 -9
  175. package/dist/tools/wiki-manifest.js.map +1 -1
  176. package/dist/tools/wiki-module-builder.d.ts +42 -0
  177. package/dist/tools/wiki-module-builder.d.ts.map +1 -0
  178. package/dist/tools/wiki-module-builder.js +449 -0
  179. package/dist/tools/wiki-module-builder.js.map +1 -0
  180. package/dist/tools/wiki-overview-sources.d.ts +26 -0
  181. package/dist/tools/wiki-overview-sources.d.ts.map +1 -0
  182. package/dist/tools/wiki-overview-sources.js +128 -0
  183. package/dist/tools/wiki-overview-sources.js.map +1 -0
  184. package/dist/tools/wiki-page-generators.d.ts +19 -3
  185. package/dist/tools/wiki-page-generators.d.ts.map +1 -1
  186. package/dist/tools/wiki-page-generators.js +156 -22
  187. package/dist/tools/wiki-page-generators.js.map +1 -1
  188. package/dist/tools/wiki-tools.d.ts +20 -0
  189. package/dist/tools/wiki-tools.d.ts.map +1 -1
  190. package/dist/tools/wiki-tools.js +181 -29
  191. package/dist/tools/wiki-tools.js.map +1 -1
  192. package/dist/tools/workspace-scope-helper.d.ts +21 -0
  193. package/dist/tools/workspace-scope-helper.d.ts.map +1 -0
  194. package/dist/tools/workspace-scope-helper.js +50 -0
  195. package/dist/tools/workspace-scope-helper.js.map +1 -0
  196. package/dist/tools/workspace-tools.d.ts +74 -0
  197. package/dist/tools/workspace-tools.d.ts.map +1 -0
  198. package/dist/tools/workspace-tools.js +366 -0
  199. package/dist/tools/workspace-tools.js.map +1 -0
  200. package/dist/types.d.ts +65 -0
  201. package/dist/types.d.ts.map +1 -1
  202. package/dist/utils/import-graph.d.ts +27 -0
  203. package/dist/utils/import-graph.d.ts.map +1 -1
  204. package/dist/utils/import-graph.js +331 -8
  205. package/dist/utils/import-graph.js.map +1 -1
  206. package/dist/utils/ts-imports.d.ts +30 -0
  207. package/dist/utils/ts-imports.d.ts.map +1 -0
  208. package/dist/utils/ts-imports.js +168 -0
  209. package/dist/utils/ts-imports.js.map +1 -0
  210. package/dist/utils/tsconfig-paths.d.ts +59 -0
  211. package/dist/utils/tsconfig-paths.d.ts.map +1 -0
  212. package/dist/utils/tsconfig-paths.js +176 -0
  213. package/dist/utils/tsconfig-paths.js.map +1 -0
  214. package/dist/utils/walk.d.ts.map +1 -1
  215. package/dist/utils/walk.js +1 -0
  216. package/dist/utils/walk.js.map +1 -1
  217. package/package.json +13 -3
  218. package/rules/codesift.md +19 -2
  219. package/rules/codesift.mdc +2 -2
  220. package/rules/codex.md +13 -2
  221. package/rules/gemini.md +13 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index-store.js","sourceRoot":"","sources":["../../src/storage/index-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,0DAA0D;AAC1D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAC;AAEpD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAAiB,EACjB,KAAgB;IAEhB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAAiB,EACjB,eAAwC;IAExC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,eAAe,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC;YAC3E,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAgB,EAChB,eAAuC;IAEvC,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAChD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAiB,EACjB,WAAmB,EACnB,UAAwB,EACxB,SAAqB;IAErB,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAE5D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QAChC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,mDAAmD,SAAS,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,iBAAiB;QACjB,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CACtC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CACxC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC,CAAC;QAE5C,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QACtC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEjC,oCAAoC;QACpC,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;YACtE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9C,CAAC;QAED,MAAM,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAiB,EACjB,WAAmB;IAEnB,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAE5D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QAChC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO;YAAE,OAAO;QAEpC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAC1E,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QAChD,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QACtE,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAC5C,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEjC,MAAM,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,QAAgB;IAC5D,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC9B,MAAM,CAAC,QAAQ,CAAC;SAChB,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhB,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,aAAa,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE9D,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAEjD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"index-store.js","sourceRoot":"","sources":["../../src/storage/index-store.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,38 @@
1
- import { type FSWatcher } from "chokidar";
2
- export type { FSWatcher };
3
1
  /**
4
- * Start watching a repo root for file changes.
5
- * Calls onChange with the relative file path, debounced per file at 500ms.
6
- * Calls onDelete immediately when a file is removed (no debounce needed).
2
+ * File watcher built on @parcel/watcher.
3
+ *
4
+ * Why not chokidar:
5
+ * - chokidar 4.x dropped fsevents support entirely. On macOS that pushed
6
+ * the watcher onto Node's fs.watch fallback, which on this platform
7
+ * allocates one fd per directory. Indexing several CMS-style repos
8
+ * (~1000+ subdirs each) drove the system file table to ENFILE.
9
+ * - chokidar 3.x is a workaround (deps rollback, locks us out of upstream
10
+ * fixes) — not a real solution.
11
+ *
12
+ * @parcel/watcher uses native, recursive backends:
13
+ * macOS → FSEvents (1 stream per recursive root, fd-cheap)
14
+ * Linux → inotify (1 watcher per root)
15
+ * Win → ReadDirectoryChangesW (1 handle per root)
16
+ *
17
+ * The exported API (`startWatcher`, `stopWatcher`, `FSWatcher`) keeps the
18
+ * same shape callers already use — only `startWatcher` is now async because
19
+ * `parcelWatcher.subscribe()` returns a Promise.
7
20
  */
8
- export declare function startWatcher(repoRoot: string, onChange: (filePath: string) => void, onDelete?: (filePath: string) => void): FSWatcher;
21
+ import * as parcelWatcher from "@parcel/watcher";
22
+ /**
23
+ * Re-exported under the historical name so call sites keep working unchanged.
24
+ * Underneath this is a `parcelWatcher.AsyncSubscription`.
25
+ */
26
+ export type FSWatcher = parcelWatcher.AsyncSubscription;
27
+ /**
28
+ * Subscribe to file changes under `repoRoot`. Calls `onChange` with the
29
+ * relative file path on create/update events (debounced 500ms per file)
30
+ * and `onDelete` immediately on delete events.
31
+ *
32
+ * Returns the underlying subscription so the caller can later pass it to
33
+ * `stopWatcher`.
34
+ */
35
+ export declare function startWatcher(repoRoot: string, onChange: (filePath: string) => void, onDelete?: (filePath: string) => void): Promise<FSWatcher>;
9
36
  /**
10
37
  * Stop a file watcher and clean up all debounce timers.
11
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/storage/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAIjD,YAAY,EAAE,SAAS,EAAE,CAAC;AAO1B;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACpC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACpC,SAAS,CAgDX;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAWnE"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/storage/watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AAIjD;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAyBxD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACpC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACpC,OAAO,CAAC,SAAS,CAAC,CAkDpB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAWnE"}
@@ -1,15 +1,53 @@
1
- import { watch } from "chokidar";
2
- import { relative } from "node:path";
3
- import { toIgnorePatterns } from "../utils/walk.js";
4
- const IGNORE_PATTERNS = toIgnorePatterns();
5
- // WeakMap to track debounce timers per watcher for cleanup
1
+ /**
2
+ * File watcher built on @parcel/watcher.
3
+ *
4
+ * Why not chokidar:
5
+ * - chokidar 4.x dropped fsevents support entirely. On macOS that pushed
6
+ * the watcher onto Node's fs.watch fallback, which on this platform
7
+ * allocates one fd per directory. Indexing several CMS-style repos
8
+ * (~1000+ subdirs each) drove the system file table to ENFILE.
9
+ * - chokidar 3.x is a workaround (deps rollback, locks us out of upstream
10
+ * fixes) — not a real solution.
11
+ *
12
+ * @parcel/watcher uses native, recursive backends:
13
+ * macOS → FSEvents (1 stream per recursive root, fd-cheap)
14
+ * Linux → inotify (1 watcher per root)
15
+ * Win → ReadDirectoryChangesW (1 handle per root)
16
+ *
17
+ * The exported API (`startWatcher`, `stopWatcher`, `FSWatcher`) keeps the
18
+ * same shape callers already use — only `startWatcher` is now async because
19
+ * `parcelWatcher.subscribe()` returns a Promise.
20
+ */
21
+ import * as parcelWatcher from "@parcel/watcher";
22
+ import { relative, join } from "node:path";
23
+ import { IGNORE_DIRS } from "../utils/walk.js";
6
24
  const watcherTimers = new WeakMap();
7
25
  /**
8
- * Start watching a repo root for file changes.
9
- * Calls onChange with the relative file path, debounced per file at 500ms.
10
- * Calls onDelete immediately when a file is removed (no debounce needed).
26
+ * Build the ignore list for @parcel/watcher. The library accepts absolute
27
+ * paths and glob patterns. We feed it both:
28
+ * - Absolute paths to known top-level vendor dirs (cheapest: native skip
29
+ * of subtree traversal at the root).
30
+ * - Globs for nested occurrences (`**\/node_modules` style) — handles the
31
+ * common case where vendored deps live under a workspace.
32
+ */
33
+ function buildIgnoreList(repoRoot) {
34
+ const ignores = [];
35
+ for (const dir of IGNORE_DIRS) {
36
+ ignores.push(join(repoRoot, dir));
37
+ ignores.push(`**/${dir}`);
38
+ ignores.push(`**/${dir}/**`);
39
+ }
40
+ return ignores;
41
+ }
42
+ /**
43
+ * Subscribe to file changes under `repoRoot`. Calls `onChange` with the
44
+ * relative file path on create/update events (debounced 500ms per file)
45
+ * and `onDelete` immediately on delete events.
46
+ *
47
+ * Returns the underlying subscription so the caller can later pass it to
48
+ * `stopWatcher`.
11
49
  */
12
- export function startWatcher(repoRoot, onChange, onDelete) {
50
+ export async function startWatcher(repoRoot, onChange, onDelete) {
13
51
  const debounceTimers = new Map();
14
52
  const debouncedOnChange = (absolutePath) => {
15
53
  const relativePath = relative(repoRoot, absolutePath);
@@ -23,31 +61,32 @@ export function startWatcher(repoRoot, onChange, onDelete) {
23
61
  }, 500);
24
62
  debounceTimers.set(relativePath, timer);
25
63
  };
26
- const watcher = watch(repoRoot, {
27
- ignored: IGNORE_PATTERNS,
28
- persistent: true,
29
- ignoreInitial: true,
30
- awaitWriteFinish: {
31
- stabilityThreshold: 200,
32
- pollInterval: 50,
33
- },
34
- });
35
- watcher.on("add", debouncedOnChange);
36
- watcher.on("change", debouncedOnChange);
37
- if (onDelete) {
38
- watcher.on("unlink", (absolutePath) => {
39
- const relativePath = relative(repoRoot, absolutePath);
40
- // Cancel any pending debounce for this file
41
- const pendingTimer = debounceTimers.get(relativePath);
42
- if (pendingTimer !== undefined) {
43
- clearTimeout(pendingTimer);
44
- debounceTimers.delete(relativePath);
64
+ const subscription = await parcelWatcher.subscribe(repoRoot, (err, events) => {
65
+ if (err) {
66
+ console.error(`[parcel-watcher] error watching ${repoRoot}: ${err.message}`);
67
+ return;
68
+ }
69
+ for (const event of events) {
70
+ if (event.type === "delete") {
71
+ const relativePath = relative(repoRoot, event.path);
72
+ // Cancel any pending change debounce — a delete supersedes it
73
+ const pendingTimer = debounceTimers.get(relativePath);
74
+ if (pendingTimer !== undefined) {
75
+ clearTimeout(pendingTimer);
76
+ debounceTimers.delete(relativePath);
77
+ }
78
+ if (onDelete)
79
+ onDelete(relativePath);
45
80
  }
46
- onDelete(relativePath);
47
- });
48
- }
49
- watcherTimers.set(watcher, debounceTimers);
50
- return watcher;
81
+ else {
82
+ // 'create' or 'update' — both go through the debounced path so
83
+ // editors performing atomic-write-then-rename only fire once.
84
+ debouncedOnChange(event.path);
85
+ }
86
+ }
87
+ }, { ignore: buildIgnoreList(repoRoot) });
88
+ watcherTimers.set(subscription, debounceTimers);
89
+ return subscription;
51
90
  }
52
91
  /**
53
92
  * Stop a file watcher and clean up all debounce timers.
@@ -61,6 +100,6 @@ export async function stopWatcher(watcher) {
61
100
  timers.clear();
62
101
  watcherTimers.delete(watcher);
63
102
  }
64
- await watcher.close();
103
+ await watcher.unsubscribe();
65
104
  }
66
105
  //# sourceMappingURL=watcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/storage/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIpD,MAAM,eAAe,GAAG,gBAAgB,EAAE,CAAC;AAE3C,2DAA2D;AAC3D,MAAM,aAAa,GAAG,IAAI,OAAO,EAAyD,CAAC;AAE3F;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,QAAoC,EACpC,QAAqC;IAErC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAyC,CAAC;IAExE,MAAM,iBAAiB,GAAG,CAAC,YAAoB,EAAQ,EAAE;QACvD,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEtD,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACpC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzB,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE;QAC9B,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE;YAChB,kBAAkB,EAAE,GAAG;YACvB,YAAY,EAAE,EAAE;SACjB;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAExC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,YAAoB,EAAE,EAAE;YAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACtD,4CAA4C;YAC5C,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACtD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,YAAY,CAAC,YAAY,CAAC,CAAC;gBAC3B,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACtC,CAAC;YACD,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAE3C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAkB;IAClD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/storage/watcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Workspace } from "../types.js";
2
+ export interface WorkspaceIndex {
3
+ /** Resolved workspaces (root package excluded; only package-role workspaces). */
4
+ workspaces: Workspace[];
5
+ /** Build-orchestrator / package-manager signal at root. */
6
+ manifest_tool: Workspace["manifest_tool"];
7
+ /** Names of duplicate/conflicting workspace packages (informational). */
8
+ duplicate_names?: string[];
9
+ }
10
+ /** Resolve workspace metadata for a monorepo root.
11
+ * Returns null on any unrecoverable failure (caller treats as flat-repo).
12
+ * Uses @manypkg/get-packages for package enumeration; layers manual
13
+ * turbo.json / nx.json detection for the manifest_tool field. */
14
+ export declare function resolveWorkspaces(root: string): Promise<WorkspaceIndex | null>;
15
+ //# sourceMappingURL=workspace-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-resolver.d.ts","sourceRoot":"","sources":["../../src/storage/workspace-resolver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EAGV,MAAM,aAAa,CAAC;AAerB,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,2DAA2D;IAC3D,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC1C,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAYD;;;kEAGkE;AAClE,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CA6FpF"}
@@ -0,0 +1,130 @@
1
+ import { existsSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { getTsconfig } from "get-tsconfig";
4
+ // Frameworks recognized at workspace package.json level (mirrors project-tools.ts).
5
+ const FRAMEWORK_DEPS = [
6
+ ["next", "nextjs"],
7
+ ["nuxt", "nuxt"],
8
+ ["@nestjs/core", "nestjs"],
9
+ ["@remix-run/node", "remix"],
10
+ ["astro", "astro"],
11
+ ["hono", "hono"],
12
+ ["express", "express"],
13
+ ["fastify", "fastify"],
14
+ ["react", "react"],
15
+ ];
16
+ /** Resolve workspace metadata for a monorepo root.
17
+ * Returns null on any unrecoverable failure (caller treats as flat-repo).
18
+ * Uses @manypkg/get-packages for package enumeration; layers manual
19
+ * turbo.json / nx.json detection for the manifest_tool field. */
20
+ export async function resolveWorkspaces(root) {
21
+ let raw = null;
22
+ try {
23
+ const { getPackages } = await import("@manypkg/get-packages");
24
+ const result = await getPackages(root);
25
+ const rootPackage = result.rootPackage
26
+ ? { dir: result.rootPackage.dir, packageJson: result.rootPackage.packageJson }
27
+ : undefined;
28
+ raw = {
29
+ tool: typeof result.tool === "string" ? result.tool : result.tool.type,
30
+ packages: result.packages.map((p) => ({
31
+ dir: p.dir,
32
+ packageJson: p.packageJson,
33
+ })),
34
+ ...(rootPackage ? { rootPackage } : {}),
35
+ };
36
+ }
37
+ catch (err) {
38
+ // @manypkg throws on non-monorepo or malformed config — caller treats null
39
+ // as flat-repo. Existing regex YAML parser in project-tools.ts is the
40
+ // last-resort fallback and is invoked there, not here.
41
+ return null;
42
+ }
43
+ if (!raw || raw.packages.length === 0) {
44
+ return null;
45
+ }
46
+ // @manypkg returns tool="root" when there is no recognized workspace
47
+ // manager — i.e. a flat single-package repo. Treat as non-monorepo.
48
+ if (raw.tool === "root") {
49
+ return null;
50
+ }
51
+ // manifest_tool: layer Turbo / Nx detection on top of @manypkg's tool
52
+ const tool = raw.tool || "pnpm";
53
+ let manifest_tool = tool;
54
+ if (existsSync(join(root, "turbo.json")))
55
+ manifest_tool = "turbo";
56
+ else if (existsSync(join(root, "nx.json")))
57
+ manifest_tool = "nx";
58
+ // Build workspace name set up-front for dependency classification
59
+ const nameToInfo = new Map();
60
+ const duplicateNames = new Set();
61
+ for (const pkg of raw.packages) {
62
+ const name = pkg.packageJson.name;
63
+ if (!name)
64
+ continue;
65
+ if (nameToInfo.has(name)) {
66
+ duplicateNames.add(name);
67
+ }
68
+ nameToInfo.set(name, pkg);
69
+ }
70
+ const workspaces = [];
71
+ for (const pkg of raw.packages) {
72
+ const name = pkg.packageJson.name ?? null;
73
+ const id = name ?? pkg.dir.slice(root.length).replace(/^[\\/]+/, "");
74
+ const allDeps = {
75
+ ...(pkg.packageJson.dependencies ?? {}),
76
+ ...(pkg.packageJson.devDependencies ?? {}),
77
+ ...(pkg.packageJson.peerDependencies ?? {}),
78
+ };
79
+ const dependencies = { workspace: [], external: [] };
80
+ for (const dep of Object.keys(allDeps)) {
81
+ if (nameToInfo.has(dep))
82
+ dependencies.workspace.push(dep);
83
+ else
84
+ dependencies.external.push(dep);
85
+ }
86
+ const detected_frameworks = [];
87
+ for (const [dep, fwName] of FRAMEWORK_DEPS) {
88
+ if (Object.prototype.hasOwnProperty.call(allDeps, dep)) {
89
+ detected_frameworks.push(fwName);
90
+ }
91
+ }
92
+ const tsconfig_paths = readTsconfigPaths(pkg.dir);
93
+ workspaces.push({
94
+ id,
95
+ name,
96
+ root: pkg.dir,
97
+ package_manager_role: "package",
98
+ manifest_tool,
99
+ dependencies,
100
+ tsconfig_paths,
101
+ detected_frameworks,
102
+ });
103
+ }
104
+ return {
105
+ workspaces,
106
+ manifest_tool,
107
+ ...(duplicateNames.size > 0 ? { duplicate_names: [...duplicateNames] } : {}),
108
+ };
109
+ }
110
+ /** Read tsconfig.json at the workspace root and extract `paths` aliases.
111
+ * Cached at index time; never read at query time. */
112
+ function readTsconfigPaths(workspaceRoot) {
113
+ const tsconfigPath = join(workspaceRoot, "tsconfig.json");
114
+ if (!existsSync(tsconfigPath))
115
+ return [];
116
+ try {
117
+ const result = getTsconfig(tsconfigPath);
118
+ const paths = result?.config?.compilerOptions?.paths;
119
+ if (!paths || typeof paths !== "object")
120
+ return [];
121
+ return Object.entries(paths).map(([from_pattern, to_paths]) => ({
122
+ from_pattern,
123
+ to_paths: Array.isArray(to_paths) ? to_paths : [],
124
+ }));
125
+ }
126
+ catch {
127
+ return [];
128
+ }
129
+ }
130
+ //# sourceMappingURL=workspace-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-resolver.js","sourceRoot":"","sources":["../../src/storage/workspace-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Tool-layer utilities — stateless converter/formatter helpers shared across
3
+ * MCP tool wrappers in `src/tools/*.ts`.
4
+ *
5
+ * Conventions:
6
+ * - Pure functions only (no I/O, no global state).
7
+ * - Each helper is independently testable.
8
+ * - First occupant: staleToMcpError — converts a "stale index" discriminated
9
+ * union from loadIndexOrStale into the standard MCP `{ isError: true }`
10
+ * error envelope so MCP clients handle stale-index the same way they handle
11
+ * any other tool error.
12
+ */
13
+ interface StaleIndexResult {
14
+ reason: string;
15
+ expected_version: string;
16
+ actual_version: string;
17
+ /** Optional language identifier (e.g., "typescript"). When present, the
18
+ * rendered error text names it explicitly. Older callers that omit this
19
+ * still get a sensible message. */
20
+ language?: string;
21
+ }
22
+ interface McpErrorEnvelope {
23
+ isError: true;
24
+ content: Array<{
25
+ type: "text";
26
+ text: string;
27
+ }>;
28
+ }
29
+ /** Convert a stale-index result to the standard MCP isError envelope.
30
+ *
31
+ * The internal TypeScript contract uses a discriminated union
32
+ * `{ status: "ok" | "stale", ... }` for type-safe handling at call sites; the
33
+ * wire format is the standard MCP error envelope so existing client code paths
34
+ * handle it without changes. */
35
+ export declare function staleToMcpError(stale: StaleIndexResult): McpErrorEnvelope;
36
+ export {};
37
+ //# sourceMappingURL=_helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_helpers.d.ts","sourceRoot":"","sources":["../../src/tools/_helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB;;wCAEoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED;;;;;gCAKgC;AAChC,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAWzE"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Tool-layer utilities — stateless converter/formatter helpers shared across
3
+ * MCP tool wrappers in `src/tools/*.ts`.
4
+ *
5
+ * Conventions:
6
+ * - Pure functions only (no I/O, no global state).
7
+ * - Each helper is independently testable.
8
+ * - First occupant: staleToMcpError — converts a "stale index" discriminated
9
+ * union from loadIndexOrStale into the standard MCP `{ isError: true }`
10
+ * error envelope so MCP clients handle stale-index the same way they handle
11
+ * any other tool error.
12
+ */
13
+ /** Convert a stale-index result to the standard MCP isError envelope.
14
+ *
15
+ * The internal TypeScript contract uses a discriminated union
16
+ * `{ status: "ok" | "stale", ... }` for type-safe handling at call sites; the
17
+ * wire format is the standard MCP error envelope so existing client code paths
18
+ * handle it without changes. */
19
+ export function staleToMcpError(stale) {
20
+ const langPrefix = stale.language ? `${stale.language} ` : "";
21
+ return {
22
+ isError: true,
23
+ content: [
24
+ {
25
+ type: "text",
26
+ text: `Index stale: ${stale.reason} (${langPrefix}expected ${stale.expected_version}, got ${stale.actual_version}). Run index_folder to refresh.`,
27
+ },
28
+ ],
29
+ };
30
+ }
31
+ //# sourceMappingURL=_helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_helpers.js","sourceRoot":"","sources":["../../src/tools/_helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAiBH;;;;;gCAKgC;AAChC,MAAM,UAAU,eAAe,CAAC,KAAuB;IACrD,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,gBAAgB,KAAK,CAAC,MAAM,KAAK,UAAU,YAAY,KAAK,CAAC,gBAAgB,SAAS,KAAK,CAAC,cAAc,iCAAiC;aAClJ;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ConstantResolutionResult } from "./python-constants-tools.js";
2
+ export type ConstantResolutionLanguage = "python" | "typescript";
3
+ export declare function resolveConstantValue(repo: string, symbolName: string, options?: {
4
+ file_pattern?: string;
5
+ max_depth?: number;
6
+ language?: ConstantResolutionLanguage;
7
+ }): Promise<ConstantResolutionResult>;
8
+ //# sourceMappingURL=constant-resolution-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant-resolution-tools.d.ts","sourceRoot":"","sources":["../../src/tools/constant-resolution-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAA2B,MAAM,6BAA6B,CAAC;AAIrG,MAAM,MAAM,0BAA0B,GAAG,QAAQ,GAAG,YAAY,CAAC;AA+CjE,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,0BAA0B,CAAC;CACvC,GACA,OAAO,CAAC,wBAAwB,CAAC,CAgCnC"}
@@ -0,0 +1,68 @@
1
+ import { getCodeIndex } from "./index-tools.js";
2
+ import { resolveConstantValue as resolvePythonConstantValue } from "./python-constants-tools.js";
3
+ import { resolveTypeScriptConstantValue } from "./typescript-constants-tools.js";
4
+ function isTypeScriptFile(filePath) {
5
+ return filePath.endsWith(".ts") || filePath.endsWith(".tsx");
6
+ }
7
+ function inferLanguages(index, symbolName, options) {
8
+ if (options?.language)
9
+ return [options.language];
10
+ const pattern = options?.file_pattern ?? "";
11
+ if (pattern.endsWith(".py"))
12
+ return ["python"];
13
+ if (pattern.endsWith(".ts") || pattern.endsWith(".tsx"))
14
+ return ["typescript"];
15
+ const candidates = index.symbols
16
+ .filter((symbol) => symbol.name === symbolName)
17
+ .filter((symbol) => !options?.file_pattern || symbol.file.includes(options.file_pattern));
18
+ const hasPython = candidates.some((symbol) => symbol.file.endsWith(".py"));
19
+ const hasTypeScript = candidates.some((symbol) => isTypeScriptFile(symbol.file));
20
+ if (hasPython && hasTypeScript)
21
+ return ["python", "typescript"];
22
+ if (hasPython)
23
+ return ["python"];
24
+ if (hasTypeScript)
25
+ return ["typescript"];
26
+ const repoHasPython = index.files.some((file) => file.path.endsWith(".py"));
27
+ const repoHasTypeScript = index.files.some((file) => isTypeScriptFile(file.path));
28
+ if (repoHasPython && repoHasTypeScript)
29
+ return ["python", "typescript"];
30
+ if (repoHasPython)
31
+ return ["python"];
32
+ if (repoHasTypeScript)
33
+ return ["typescript"];
34
+ return ["python"];
35
+ }
36
+ function normalizeMatches(matches, language) {
37
+ return matches.map((match) => ({
38
+ ...match,
39
+ language,
40
+ }));
41
+ }
42
+ export async function resolveConstantValue(repo, symbolName, options) {
43
+ const index = await getCodeIndex(repo);
44
+ if (!index) {
45
+ throw new Error(`Repository "${repo}" not found.`);
46
+ }
47
+ const languages = inferLanguages(index, symbolName, options);
48
+ const matches = [];
49
+ for (const language of languages) {
50
+ if (language === "python") {
51
+ const result = await resolvePythonConstantValue(repo, symbolName, options);
52
+ matches.push(...normalizeMatches(result.matches, "python"));
53
+ continue;
54
+ }
55
+ if (language === "typescript") {
56
+ const result = await resolveTypeScriptConstantValue(repo, symbolName, options);
57
+ matches.push(...normalizeMatches(result.matches, "typescript"));
58
+ }
59
+ }
60
+ matches.sort((a, b) => a.file.localeCompare(b.file)
61
+ || a.line - b.line
62
+ || (a.language ?? "").localeCompare(b.language ?? ""));
63
+ return {
64
+ query: symbolName,
65
+ matches,
66
+ };
67
+ }
68
+ //# sourceMappingURL=constant-resolution-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant-resolution-tools.js","sourceRoot":"","sources":["../../src/tools/constant-resolution-tools.ts"],"names":[],"mappings":"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"}
@@ -10,14 +10,24 @@ export interface AdjacencyIndex {
10
10
  /** symbol id → symbols that reference this symbol (callers) */
11
11
  callers: Map<string, CodeSymbol[]>;
12
12
  }
13
+ export interface CallSite {
14
+ name: string;
15
+ is_method_call: boolean;
16
+ }
13
17
  /**
14
18
  * Extract identifiers that look like function/method calls from source code.
15
- * Matches patterns like: `functionName(`, `obj.methodName(`, `this.method(`
16
- * Also matches JSX component usage: `<ComponentName`, which captures React
17
- * component rendering as a call-graph edge (PascalCase filter skips HTML tags).
18
- * Returns a Set of the called/used identifier names.
19
+ * Matches patterns like: `functionName(`, `obj.methodName(`, `this.method(`.
20
+ * Also matches JSX component usage: `<ComponentName`.
21
+ *
22
+ * Returns an array of CallSite entries with an `is_method_call` flag so
23
+ * downstream graph consumers can exclude method calls from bare-function
24
+ * caller edges (root cause fix for builtin hub contamination, spec D4).
25
+ *
26
+ * Method-call detection: the match position is preceded by `.` or `?.`
27
+ * (including surrounding whitespace). Bracket notation `obj["map"]()` is
28
+ * NOT detected (documented residual noise per spec).
19
29
  */
20
- declare function extractCallSites(source: string): Set<string>;
30
+ declare function extractCallSites(source: string): CallSite[];
21
31
  /**
22
32
  * Build caller/callee adjacency lists by extracting actual call sites from source code.
23
33
  *
@@ -90,6 +100,18 @@ export interface CircularDepsResult {
90
100
  cycles: CircularDep[];
91
101
  total_files: number;
92
102
  total_edges: number;
103
+ /** Package-level cycles in JS/TS monorepos. Present when index.workspaces
104
+ * is non-null (Task 12 of monorepo workspace intelligence plan). */
105
+ package_cycles?: Array<{
106
+ cycle: string[];
107
+ length: number;
108
+ }>;
109
+ /** Workspace dependency targets that don't match any known workspace name.
110
+ * Surfaced as a diagnostic; never crashes SCC. */
111
+ unresolved_workspace_refs?: Array<{
112
+ from_workspace: string;
113
+ missing_dep: string;
114
+ }>;
93
115
  }
94
116
  export declare function findCircularDeps(repo: string, options?: {
95
117
  max_cycles?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"graph-tools.d.ts","sourceRoot":"","sources":["../../src/tools/graph-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-tools.d.ts","sourceRoot":"","sources":["../../src/tools/graph-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAmBnE;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACnC,+DAA+D;IAC/D,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,iBAAS,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuDpD;AAwBD;;;;;;;;;;;GAWG;AACH,iBAAS,mBAAmB,CAC1B,UAAU,EAAE,UAAU,EAAE,EACxB,SAAS,UAAO,EAChB,gBAAgB,UAAQ,GACvB,cAAc,CA4DhB;AAED;;;;GAIG;AACH,iBAAS,aAAa,CACpB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,MAAM,GACf,QAAQ,CA0BV;AAED;;GAEG;AACH,iBAAS,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAIhD;AAYD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,aAAa,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACzC,0FAA0F;IAC1F,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1C;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,EACpB,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY,GACrC,OAAO,CAAC,QAAQ,CAAC,CAkDnB;AAgDD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAExE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC/G,OAAO,CAAC,cAAc,EAAE,CAAC,CAkC3B;AAED,iBAAS,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAkBlE;AAMD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB;yEACqE;IACrE,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D;uDACmD;IACnD,yBAAyB,CAAC,EAAE,KAAK,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpF;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACvD,OAAO,CAAC,kBAAkB,CAAC,CA2E7B;AAiFD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}