vemora 0.1.0-alpha.10

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.

Potentially problematic release.


This version of vemora might be problematic. Click here for more details.

Files changed (242) hide show
  1. package/README.md +759 -0
  2. package/dist/cli.d.ts +16 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +589 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/ask.d.ts +14 -0
  7. package/dist/commands/ask.d.ts.map +1 -0
  8. package/dist/commands/ask.js +137 -0
  9. package/dist/commands/ask.js.map +1 -0
  10. package/dist/commands/audit.d.ts +17 -0
  11. package/dist/commands/audit.d.ts.map +1 -0
  12. package/dist/commands/audit.js +408 -0
  13. package/dist/commands/audit.js.map +1 -0
  14. package/dist/commands/brief.d.ts +14 -0
  15. package/dist/commands/brief.d.ts.map +1 -0
  16. package/dist/commands/brief.js +73 -0
  17. package/dist/commands/brief.js.map +1 -0
  18. package/dist/commands/chat.d.ts +7 -0
  19. package/dist/commands/chat.d.ts.map +1 -0
  20. package/dist/commands/chat.js +155 -0
  21. package/dist/commands/chat.js.map +1 -0
  22. package/dist/commands/context.d.ts +61 -0
  23. package/dist/commands/context.d.ts.map +1 -0
  24. package/dist/commands/context.js +778 -0
  25. package/dist/commands/context.js.map +1 -0
  26. package/dist/commands/deps.d.ts +20 -0
  27. package/dist/commands/deps.d.ts.map +1 -0
  28. package/dist/commands/deps.js +138 -0
  29. package/dist/commands/deps.js.map +1 -0
  30. package/dist/commands/focus.d.ts +6 -0
  31. package/dist/commands/focus.d.ts.map +1 -0
  32. package/dist/commands/focus.js +302 -0
  33. package/dist/commands/focus.js.map +1 -0
  34. package/dist/commands/index.d.ts +10 -0
  35. package/dist/commands/index.d.ts.map +1 -0
  36. package/dist/commands/index.js +366 -0
  37. package/dist/commands/index.js.map +1 -0
  38. package/dist/commands/init-agent.d.ts +23 -0
  39. package/dist/commands/init-agent.d.ts.map +1 -0
  40. package/dist/commands/init-agent.js +447 -0
  41. package/dist/commands/init-agent.js.map +1 -0
  42. package/dist/commands/init.d.ts +2 -0
  43. package/dist/commands/init.d.ts.map +1 -0
  44. package/dist/commands/init.js +122 -0
  45. package/dist/commands/init.js.map +1 -0
  46. package/dist/commands/knowledge.d.ts +8 -0
  47. package/dist/commands/knowledge.d.ts.map +1 -0
  48. package/dist/commands/knowledge.js +98 -0
  49. package/dist/commands/knowledge.js.map +1 -0
  50. package/dist/commands/plan.d.ts +16 -0
  51. package/dist/commands/plan.d.ts.map +1 -0
  52. package/dist/commands/plan.js +535 -0
  53. package/dist/commands/plan.js.map +1 -0
  54. package/dist/commands/query.d.ts +39 -0
  55. package/dist/commands/query.d.ts.map +1 -0
  56. package/dist/commands/query.js +389 -0
  57. package/dist/commands/query.js.map +1 -0
  58. package/dist/commands/remember.d.ts +11 -0
  59. package/dist/commands/remember.d.ts.map +1 -0
  60. package/dist/commands/remember.js +174 -0
  61. package/dist/commands/remember.js.map +1 -0
  62. package/dist/commands/report.d.ts +10 -0
  63. package/dist/commands/report.d.ts.map +1 -0
  64. package/dist/commands/report.js +180 -0
  65. package/dist/commands/report.js.map +1 -0
  66. package/dist/commands/status.d.ts +2 -0
  67. package/dist/commands/status.d.ts.map +1 -0
  68. package/dist/commands/status.js +127 -0
  69. package/dist/commands/status.js.map +1 -0
  70. package/dist/commands/summarize.d.ts +14 -0
  71. package/dist/commands/summarize.d.ts.map +1 -0
  72. package/dist/commands/summarize.js +181 -0
  73. package/dist/commands/summarize.js.map +1 -0
  74. package/dist/commands/triage.d.ts +33 -0
  75. package/dist/commands/triage.d.ts.map +1 -0
  76. package/dist/commands/triage.js +419 -0
  77. package/dist/commands/triage.js.map +1 -0
  78. package/dist/commands/usages.d.ts +14 -0
  79. package/dist/commands/usages.d.ts.map +1 -0
  80. package/dist/commands/usages.js +236 -0
  81. package/dist/commands/usages.js.map +1 -0
  82. package/dist/core/config.d.ts +35 -0
  83. package/dist/core/config.d.ts.map +1 -0
  84. package/dist/core/config.js +141 -0
  85. package/dist/core/config.js.map +1 -0
  86. package/dist/core/types.d.ts +274 -0
  87. package/dist/core/types.d.ts.map +1 -0
  88. package/dist/core/types.js +4 -0
  89. package/dist/core/types.js.map +1 -0
  90. package/dist/embeddings/factory.d.ts +9 -0
  91. package/dist/embeddings/factory.d.ts.map +1 -0
  92. package/dist/embeddings/factory.js +26 -0
  93. package/dist/embeddings/factory.js.map +1 -0
  94. package/dist/embeddings/noop.d.ts +17 -0
  95. package/dist/embeddings/noop.d.ts.map +1 -0
  96. package/dist/embeddings/noop.js +22 -0
  97. package/dist/embeddings/noop.js.map +1 -0
  98. package/dist/embeddings/ollama.d.ts +11 -0
  99. package/dist/embeddings/ollama.d.ts.map +1 -0
  100. package/dist/embeddings/ollama.js +49 -0
  101. package/dist/embeddings/ollama.js.map +1 -0
  102. package/dist/embeddings/openai.d.ts +10 -0
  103. package/dist/embeddings/openai.d.ts.map +1 -0
  104. package/dist/embeddings/openai.js +67 -0
  105. package/dist/embeddings/openai.js.map +1 -0
  106. package/dist/embeddings/provider.d.ts +19 -0
  107. package/dist/embeddings/provider.d.ts.map +1 -0
  108. package/dist/embeddings/provider.js +3 -0
  109. package/dist/embeddings/provider.js.map +1 -0
  110. package/dist/indexer/callgraph.d.ts +16 -0
  111. package/dist/indexer/callgraph.d.ts.map +1 -0
  112. package/dist/indexer/callgraph.js +154 -0
  113. package/dist/indexer/callgraph.js.map +1 -0
  114. package/dist/indexer/chunkBySlidingWindow.d.ts +6 -0
  115. package/dist/indexer/chunkBySlidingWindow.d.ts.map +1 -0
  116. package/dist/indexer/chunkBySlidingWindow.js +30 -0
  117. package/dist/indexer/chunkBySlidingWindow.js.map +1 -0
  118. package/dist/indexer/chunkBySymbols.d.ts +7 -0
  119. package/dist/indexer/chunkBySymbols.d.ts.map +1 -0
  120. package/dist/indexer/chunkBySymbols.js +57 -0
  121. package/dist/indexer/chunkBySymbols.js.map +1 -0
  122. package/dist/indexer/chunker.d.ts +15 -0
  123. package/dist/indexer/chunker.d.ts.map +1 -0
  124. package/dist/indexer/chunker.js +26 -0
  125. package/dist/indexer/chunker.js.map +1 -0
  126. package/dist/indexer/classHeader.d.ts +7 -0
  127. package/dist/indexer/classHeader.d.ts.map +1 -0
  128. package/dist/indexer/classHeader.js +37 -0
  129. package/dist/indexer/classHeader.js.map +1 -0
  130. package/dist/indexer/deps.d.ts +66 -0
  131. package/dist/indexer/deps.d.ts.map +1 -0
  132. package/dist/indexer/deps.js +409 -0
  133. package/dist/indexer/deps.js.map +1 -0
  134. package/dist/indexer/hasher.d.ts +17 -0
  135. package/dist/indexer/hasher.d.ts.map +1 -0
  136. package/dist/indexer/hasher.js +38 -0
  137. package/dist/indexer/hasher.js.map +1 -0
  138. package/dist/indexer/parser.d.ts +18 -0
  139. package/dist/indexer/parser.d.ts.map +1 -0
  140. package/dist/indexer/parser.js +355 -0
  141. package/dist/indexer/parser.js.map +1 -0
  142. package/dist/indexer/scanner.d.ts +18 -0
  143. package/dist/indexer/scanner.d.ts.map +1 -0
  144. package/dist/indexer/scanner.js +37 -0
  145. package/dist/indexer/scanner.js.map +1 -0
  146. package/dist/indexer/strategy.d.ts +11 -0
  147. package/dist/indexer/strategy.d.ts.map +1 -0
  148. package/dist/indexer/strategy.js +15 -0
  149. package/dist/indexer/strategy.js.map +1 -0
  150. package/dist/indexer/tests.d.ts +15 -0
  151. package/dist/indexer/tests.d.ts.map +1 -0
  152. package/dist/indexer/tests.js +68 -0
  153. package/dist/indexer/tests.js.map +1 -0
  154. package/dist/indexer/todos.d.ts +9 -0
  155. package/dist/indexer/todos.d.ts.map +1 -0
  156. package/dist/indexer/todos.js +29 -0
  157. package/dist/indexer/todos.js.map +1 -0
  158. package/dist/llm/anthropic.d.ts +8 -0
  159. package/dist/llm/anthropic.d.ts.map +1 -0
  160. package/dist/llm/anthropic.js +76 -0
  161. package/dist/llm/anthropic.js.map +1 -0
  162. package/dist/llm/factory.d.ts +7 -0
  163. package/dist/llm/factory.d.ts.map +1 -0
  164. package/dist/llm/factory.js +39 -0
  165. package/dist/llm/factory.js.map +1 -0
  166. package/dist/llm/ollama.d.ts +8 -0
  167. package/dist/llm/ollama.d.ts.map +1 -0
  168. package/dist/llm/ollama.js +83 -0
  169. package/dist/llm/ollama.js.map +1 -0
  170. package/dist/llm/openai.d.ts +8 -0
  171. package/dist/llm/openai.d.ts.map +1 -0
  172. package/dist/llm/openai.js +68 -0
  173. package/dist/llm/openai.js.map +1 -0
  174. package/dist/llm/provider.d.ts +29 -0
  175. package/dist/llm/provider.d.ts.map +1 -0
  176. package/dist/llm/provider.js +3 -0
  177. package/dist/llm/provider.js.map +1 -0
  178. package/dist/search/bm25.d.ts +3 -0
  179. package/dist/search/bm25.d.ts.map +1 -0
  180. package/dist/search/bm25.js +102 -0
  181. package/dist/search/bm25.js.map +1 -0
  182. package/dist/search/formatter.d.ts +43 -0
  183. package/dist/search/formatter.d.ts.map +1 -0
  184. package/dist/search/formatter.js +208 -0
  185. package/dist/search/formatter.js.map +1 -0
  186. package/dist/search/hybrid.d.ts +10 -0
  187. package/dist/search/hybrid.d.ts.map +1 -0
  188. package/dist/search/hybrid.js +53 -0
  189. package/dist/search/hybrid.js.map +1 -0
  190. package/dist/search/merge.d.ts +33 -0
  191. package/dist/search/merge.d.ts.map +1 -0
  192. package/dist/search/merge.js +158 -0
  193. package/dist/search/merge.js.map +1 -0
  194. package/dist/search/mmr.d.ts +23 -0
  195. package/dist/search/mmr.d.ts.map +1 -0
  196. package/dist/search/mmr.js +95 -0
  197. package/dist/search/mmr.js.map +1 -0
  198. package/dist/search/rerank.d.ts +12 -0
  199. package/dist/search/rerank.d.ts.map +1 -0
  200. package/dist/search/rerank.js +113 -0
  201. package/dist/search/rerank.js.map +1 -0
  202. package/dist/search/signature.d.ts +42 -0
  203. package/dist/search/signature.d.ts.map +1 -0
  204. package/dist/search/signature.js +112 -0
  205. package/dist/search/signature.js.map +1 -0
  206. package/dist/search/vector.d.ts +41 -0
  207. package/dist/search/vector.d.ts.map +1 -0
  208. package/dist/search/vector.js +185 -0
  209. package/dist/search/vector.js.map +1 -0
  210. package/dist/storage/cache.d.ts +30 -0
  211. package/dist/storage/cache.d.ts.map +1 -0
  212. package/dist/storage/cache.js +160 -0
  213. package/dist/storage/cache.js.map +1 -0
  214. package/dist/storage/knowledge.d.ts +17 -0
  215. package/dist/storage/knowledge.d.ts.map +1 -0
  216. package/dist/storage/knowledge.js +58 -0
  217. package/dist/storage/knowledge.js.map +1 -0
  218. package/dist/storage/repository.d.ts +27 -0
  219. package/dist/storage/repository.d.ts.map +1 -0
  220. package/dist/storage/repository.js +95 -0
  221. package/dist/storage/repository.js.map +1 -0
  222. package/dist/storage/session.d.ts +38 -0
  223. package/dist/storage/session.d.ts.map +1 -0
  224. package/dist/storage/session.js +100 -0
  225. package/dist/storage/session.js.map +1 -0
  226. package/dist/storage/summaries.d.ts +19 -0
  227. package/dist/storage/summaries.d.ts.map +1 -0
  228. package/dist/storage/summaries.js +66 -0
  229. package/dist/storage/summaries.js.map +1 -0
  230. package/dist/storage/usage.d.ts +35 -0
  231. package/dist/storage/usage.d.ts.map +1 -0
  232. package/dist/storage/usage.js +55 -0
  233. package/dist/storage/usage.js.map +1 -0
  234. package/dist/utils/git.d.ts +15 -0
  235. package/dist/utils/git.d.ts.map +1 -0
  236. package/dist/utils/git.js +38 -0
  237. package/dist/utils/git.js.map +1 -0
  238. package/dist/utils/tokenizer.d.ts +24 -0
  239. package/dist/utils/tokenizer.d.ts.map +1 -0
  240. package/dist/utils/tokenizer.js +52 -0
  241. package/dist/utils/tokenizer.js.map +1 -0
  242. package/package.json +71 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triage.js","sourceRoot":"","sources":["../../src/commands/triage.ts"],"names":[],"mappings":";;;;;AA2cA,8BAsDC;AAjgBD,kDAA0B;AAC1B,2CAA4C;AAE5C,sDAA0D;AA2C1D,MAAM,cAAc,GAA6B,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AA+BhF,MAAM,UAAU,GAAgB;IAC9B,gFAAgF;IAChF;QACE,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,6BAA6B;QACtC,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,+DAA+D;QACvE,KAAK,EAAE,CAAC,MAAM,CAAC;KAChB;IACD;QACE,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,0BAA0B;QACnC,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,wEAAwE;QAChF,KAAK,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;KAC/B;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,oBAAoB;QAC7B,YAAY,EAAE,YAAY;QAC1B,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,0DAA0D;QAClE,KAAK,EAAE,CAAC,MAAM,CAAC;KAChB;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,+BAA+B;QACxC,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,sEAAsE;QAC9E,KAAK,EAAE,CAAC,MAAM,CAAC;KAChB;IACD;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,0BAA0B;QACnC,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,uEAAuE;QAC/E,KAAK,EAAE,CAAC,MAAM,CAAC;KAChB;IACD;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,sBAAsB;QAC/B,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,sEAAsE;QAC9E,KAAK,EAAE,CAAC,MAAM,CAAC;KAChB;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,+CAA+C;QACxD,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,4EAA4E;QACpF,KAAK,EAAE,CAAC,MAAM,CAAC;KAChB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,iEAAiE;QAC1E,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,4DAA4D;QACpE,KAAK,EAAE,CAAC,MAAM,CAAC;KAChB;IAED,iFAAiF;IACjF;QACE,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,0FAA0F;QACnG,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,0EAA0E;QAClF,KAAK,EAAE,CAAC,UAAU,CAAC;KACpB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,gEAAgE;QACxE,KAAK,EAAE,CAAC,UAAU,CAAC;KACpB;IACD;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,uBAAuB;QAChC,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,oEAAoE;QAC5E,KAAK,EAAE,CAAC,UAAU,CAAC;KACpB;IACD;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,6CAA6C;QACtD,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,iEAAiE;QACzE,KAAK,EAAE,CAAC,UAAU,CAAC;KACpB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,6BAA6B;QACtC,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,kEAAkE;QAC1E,KAAK,EAAE,CAAC,UAAU,CAAC;KACpB;IACD;QACE,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,iEAAiE;QAC1E,QAAQ,EAAE,wBAAwB;QAClC,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,kEAAkE;QAC1E,KAAK,EAAE,CAAC,UAAU,CAAC;KACpB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,sCAAsC;QAC/C,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,4DAA4D;QACpE,KAAK,EAAE,CAAC,UAAU,CAAC;KACpB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,oDAAoD;QAC7D,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,6CAA6C;QACrD,KAAK,EAAE,CAAC,UAAU,CAAC;KACpB;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,wBAAwB;QACjC,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,0GAA0G;QAClH,KAAK,EAAE,CAAC,UAAU,CAAC;KACpB;IAED,iFAAiF;IACjF;QACE,qFAAqF;QACrF,wFAAwF;QACxF,mFAAmF;QACnF,uCAAuC;QACvC,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,qHAAqH;QAC9H,cAAc,EAAE,8GAA8G;QAC9H,QAAQ,EAAE,yBAAyB;QACnC,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,sFAAsF;QAC9F,KAAK,EAAE,CAAC,aAAa,CAAC;KACvB;IACD;QACE,qEAAqE;QACrE,0FAA0F;QAC1F,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,0IAA0I;QACnJ,YAAY,EAAE,8GAA8G;QAC5H,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,gGAAgG;QACxG,KAAK,EAAE,CAAC,aAAa,CAAC;KACvB;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,yCAAyC;QAClD,QAAQ,EAAE,2BAA2B;QACrC,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,uEAAuE;QAC/E,KAAK,EAAE,CAAC,aAAa,CAAC;KACvB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,mCAAmC;QAC5C,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,4EAA4E;QACpF,KAAK,EAAE,CAAC,aAAa,CAAC;KACvB;IACD;QACE,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,qBAAqB;QAC9B,QAAQ,EAAE,uBAAuB;QACjC,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,sEAAsE;QAC9E,KAAK,EAAE,CAAC,aAAa,CAAC;KACvB;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,iEAAiE;QAC1E,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,8EAA8E;QACtF,KAAK,EAAE,CAAC,aAAa,CAAC;KACvB;CACF,CAAC;AAEF,iFAAiF;AAEjF,SAAS,cAAc,CAAC,QAAgB;IACtC,6DAA6D;IAC7D,IACE,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC;QACxC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC9B,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;QAChC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,2EAA2E;IAC3E,IAAI,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,IAAI,iCAAiC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iFAAiF;AACjF,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,OAAO,CACL,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAM,yCAAyC;QACjE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAO,6BAA6B;QACrD,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAM,qBAAqB;QAC7C,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAO,gCAAgC;QACxD,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAI,0BAA0B;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAY,EAAE,UAAuB;IACzD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,oEAAoE;IACpE,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7C,sEAAsE;IACtE,6EAA6E;IAC7E,MAAM,eAAe,GAAG,KAAK;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SACjC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,SAAS;QAE/B,qFAAqF;QACrF,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC;YAAE,SAAS;QACpD,2EAA2E;QAC3E,2EAA2E;QAC3E,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC;YAAE,SAAS;QAE1E,4DAA4D;QAC5D,sEAAsE;QACtE,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,WAAW,CAAC,CAAC,CAAC;gBAAE,SAAS;YAC7B,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC;oBACX,SAAS,EAAE,CAAC,CAAC,IAAI;oBACjB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC;oBACrB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;iBACvC,CAAC,CAAC;gBACH,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;YACR,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,4EAA4E;QAC5E,4EAA4E;QAC5E,MAAM,eAAe,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACtE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,CAAC,CAAC,IAAI;gBACjB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,IAAI,EAAE,KAAK,CAAC,KAAK;gBACjB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,iFAAiF;AAEjF,MAAM,SAAS,GAA4C;IACzD,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9B,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC;CAC1B,CAAC;AAEF,SAAS,cAAc,CAAC,QAAyB,EAAE,KAAmB;IACpE,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,MAAM,uBAAuB,YAAY,sBAAsB,CAAC,CAAC,CAAC;IAExG,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,OAAO,CAAC,GAAG,CACT,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,WAAW,KAAK,UAAU,EAAE,CAC3G,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,CAAC,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAA6B,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IACvE,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO;YAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjD,CAAC;IACD,MAAM,OAAO,GAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAgB;SACtD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5C,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,IAAI,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,QAAyB,EAAE,KAAmB;IACpE,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,KAAK,GAAa;QACtB,qBAAqB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACvC,EAAE;QACF,uBAAuB,QAAQ,CAAC,MAAM,0BAA0B,YAAY,EAAE;QAC9E,EAAE;KACH,CAAC;IAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,KAAK,GAA+C,EAAE,CAAC;IAC7D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAC7B,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EACpF,KAAK,CACN,CAAC;QACF,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAe,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,EAAE,MAAM;YAAE,SAAS;QAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACjF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAC7F,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;YAC7B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,YAAY,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAChF,IAAI,CAAC,CAAC,OAAO;oBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;YAClD,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,iFAAiF;AAE1E,KAAK,UAAU,SAAS,CAC7B,OAAe,EACf,UAAyB,EAAE;IAE3B,IAAA,mBAAU,EAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B;IAE/C,MAAM,IAAI,GAAG,IAAI,8BAAiB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAEjC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAK,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAkB,CAAC;IACrF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC;IAE5C,sFAAsF;IACtF,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAE1E,yEAAyE;IACzE,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,6CAA6C,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,UAAU;IACV,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,IAAI,KAAK,GAAG,QAAQ;YAAE,SAAS;QAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACxH,CAAC;IAED,0CAA0C;IAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAEzE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;SAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ export interface UsagesOptions {
2
+ /** Max re-export chain depth to follow (default: 10) */
3
+ depth?: number;
4
+ /** Show only files that actually call the symbol (require call graph data) */
5
+ callersOnly?: boolean;
6
+ }
7
+ /**
8
+ * vemora usages <SymbolName>
9
+ *
10
+ * Finds all files that use a named symbol, following re-export chains.
11
+ * Uses both the dependency graph (reliable) and the call graph (line-level detail).
12
+ */
13
+ export declare function runUsages(rootDir: string, symbolName: string, options?: UsagesOptions): Promise<void>;
14
+ //# sourceMappingURL=usages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usages.d.ts","sourceRoot":"","sources":["../../src/commands/usages.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAWD;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA0Rf"}
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runUsages = runUsages;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const config_1 = require("../core/config");
9
+ const repository_1 = require("../storage/repository");
10
+ /**
11
+ * vemora usages <SymbolName>
12
+ *
13
+ * Finds all files that use a named symbol, following re-export chains.
14
+ * Uses both the dependency graph (reliable) and the call graph (line-level detail).
15
+ */
16
+ async function runUsages(rootDir, symbolName, options = {}) {
17
+ const config = (0, config_1.loadConfig)(rootDir);
18
+ const repo = new repository_1.RepositoryStorage(rootDir);
19
+ const symbols = repo.loadSymbols();
20
+ const depGraph = repo.loadDeps();
21
+ const callGraph = repo.loadCallGraph();
22
+ // ── 1. Resolve symbol ────────────────────────────────────────────────────────
23
+ let resolvedName = symbolName;
24
+ if (!symbols[resolvedName]) {
25
+ const lower = symbolName.toLowerCase();
26
+ const candidates = Object.keys(symbols).filter((s) => s.toLowerCase() === lower);
27
+ if (candidates.length === 0) {
28
+ console.log(chalk_1.default.yellow(`Symbol "${symbolName}" not found in index.`));
29
+ console.log(chalk_1.default.gray("Run `vemora index --root .` to update the index."));
30
+ return;
31
+ }
32
+ if (candidates.length === 1) {
33
+ resolvedName = candidates[0];
34
+ }
35
+ else {
36
+ console.log(chalk_1.default.yellow(`Ambiguous symbol name. Did you mean one of these?`));
37
+ for (const c of candidates) {
38
+ console.log(` ${chalk_1.default.cyan(c)} ${chalk_1.default.gray(`(${symbols[c].file})`)}`);
39
+ }
40
+ return;
41
+ }
42
+ }
43
+ const entry = symbols[resolvedName];
44
+ const defFile = entry.file;
45
+ const maxDepth = options.depth ?? 10;
46
+ console.log();
47
+ console.log(chalk_1.default.bold(`Usages of ${chalk_1.default.cyan(resolvedName)}`));
48
+ console.log(` Defined in ${chalk_1.default.blue(defFile)}:${entry.startLine} ${chalk_1.default.gray(`(${entry.type})`)}`);
49
+ console.log();
50
+ // ── Methods: call graph only ─────────────────────────────────────────────────
51
+ //
52
+ // Methods are not individually imported — the dep graph tracks the containing
53
+ // class import, not individual method calls. Use the call graph exclusively.
54
+ // The call graph stores methods as "file:methodName" (without class prefix).
55
+ if (entry.type === "method") {
56
+ const methodName = resolvedName.includes(".")
57
+ ? resolvedName.split(".").pop()
58
+ : resolvedName;
59
+ const cgKey = `${defFile}:${methodName}`;
60
+ const cgEntry = callGraph[cgKey];
61
+ const calledBy = cgEntry?.calledBy ?? [];
62
+ if (calledBy.length === 0) {
63
+ console.log(chalk_1.default.gray("No call graph data for this method."));
64
+ console.log(chalk_1.default.gray(` Methods are not tracked via imports — only the call graph can find callers.`));
65
+ if (entry.parent) {
66
+ console.log(chalk_1.default.gray(` Tip: try \`vemora usages ${entry.parent}\` to find all files that import the class.`));
67
+ }
68
+ console.log(chalk_1.default.gray(" Re-index with tree-sitter enabled to populate call graph data."));
69
+ }
70
+ else {
71
+ // Group calledBy entries by file
72
+ const byFile = new Map();
73
+ for (const callerScope of calledBy) {
74
+ const colonIdx = callerScope.lastIndexOf(":");
75
+ if (colonIdx === -1)
76
+ continue;
77
+ const callerFile = callerScope.substring(0, colonIdx);
78
+ const callerFn = callerScope.substring(colonIdx + 1);
79
+ const list = byFile.get(callerFile) ?? [];
80
+ if (!list.includes(callerFn))
81
+ list.push(callerFn);
82
+ byFile.set(callerFile, list);
83
+ }
84
+ console.log(chalk_1.default.bold(`Found in ${byFile.size} file${byFile.size !== 1 ? "s" : ""} (via call graph):`));
85
+ console.log();
86
+ for (const [file, fns] of byFile) {
87
+ const callInfo = chalk_1.default.gray(` (called in: ${fns.join(", ")})`);
88
+ console.log(` ${chalk_1.default.gray("→")} ${chalk_1.default.blue(file)}${callInfo}`);
89
+ }
90
+ console.log();
91
+ console.log(chalk_1.default.yellow("⚠ Call graph coverage may be incomplete (arrow functions, injected dependencies)."));
92
+ }
93
+ console.log(chalk_1.default.gray(`Project: ${config.projectName} (${config.projectId})`));
94
+ return;
95
+ }
96
+ // ── 2. BFS over dep graph to find all importers (following re-exports) ───────
97
+ const visited = new Set(); // importer files already enqueued
98
+ const queue = [];
99
+ const allImporters = [];
100
+ // Whether the symbol is a default export — also match the "default" sentinel
101
+ const isDefaultExport = entry.isDefault === true;
102
+ // Seed: direct importers of the definition file
103
+ for (const [importerFile, fileDeps] of Object.entries(depGraph)) {
104
+ for (const imp of fileDeps.imports) {
105
+ if (imp.file === defFile &&
106
+ (imp.symbols.includes(resolvedName) ||
107
+ (isDefaultExport && imp.symbols.includes("default")))) {
108
+ if (!visited.has(importerFile)) {
109
+ visited.add(importerFile);
110
+ const node = { file: importerFile, from: defFile, depth: 1 };
111
+ queue.push(node);
112
+ allImporters.push(node);
113
+ }
114
+ }
115
+ }
116
+ }
117
+ // BFS: follow re-export chains
118
+ while (queue.length > 0) {
119
+ const current = queue.shift();
120
+ if (current.depth >= maxDepth)
121
+ continue;
122
+ for (const [importerFile, fileDeps] of Object.entries(depGraph)) {
123
+ for (const imp of fileDeps.imports) {
124
+ if (imp.file === current.file &&
125
+ (imp.symbols.includes(resolvedName) ||
126
+ (isDefaultExport && imp.symbols.includes("default")))) {
127
+ if (!visited.has(importerFile)) {
128
+ visited.add(importerFile);
129
+ const node = {
130
+ file: importerFile,
131
+ from: current.file,
132
+ depth: current.depth + 1,
133
+ };
134
+ queue.push(node);
135
+ allImporters.push(node);
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+ // ── 3. Identify re-exporters ─────────────────────────────────────────────────
142
+ //
143
+ // A file is a re-exporter if other files import the symbol FROM it
144
+ // (and it is not the definition file itself).
145
+ const reExporterFiles = new Set(allImporters.filter((n) => n.from !== defFile).map((n) => n.from));
146
+ // ── 4. Build call-site map from the call graph ───────────────────────────────
147
+ //
148
+ // Keys in the call graph: "<file>:<symbolName>"
149
+ // We look up the definition file AND all re-exporters, because the call graph
150
+ // resolves calls to wherever the symbol was imported FROM.
151
+ const aliasKeys = new Set([`${defFile}:${resolvedName}`]);
152
+ for (const reExp of reExporterFiles) {
153
+ aliasKeys.add(`${reExp}:${resolvedName}`);
154
+ }
155
+ // callerFile -> list of calling scope names (function / method)
156
+ const callSitesByFile = new Map();
157
+ for (const aliasKey of aliasKeys) {
158
+ const cgEntry = callGraph[aliasKey];
159
+ if (!cgEntry?.calledBy?.length)
160
+ continue;
161
+ for (const callerScope of cgEntry.calledBy) {
162
+ // callerScope = "relative/path/to/file.ts:functionName"
163
+ const colonIdx = callerScope.lastIndexOf(":");
164
+ if (colonIdx === -1)
165
+ continue;
166
+ const callerFile = callerScope.substring(0, colonIdx);
167
+ const callerFn = callerScope.substring(colonIdx + 1);
168
+ const list = callSitesByFile.get(callerFile) ?? [];
169
+ if (!list.includes(callerFn))
170
+ list.push(callerFn);
171
+ callSitesByFile.set(callerFile, list);
172
+ }
173
+ }
174
+ // ── 5. Filter if --callers-only ──────────────────────────────────────────────
175
+ const importersToShow = options.callersOnly
176
+ ? allImporters.filter((n) => callSitesByFile.has(n.file))
177
+ : allImporters;
178
+ if (importersToShow.length === 0) {
179
+ if (options.callersOnly) {
180
+ console.log(chalk_1.default.gray("No call graph data found. Try without --callers-only, or re-index with tree-sitter."));
181
+ }
182
+ else {
183
+ console.log(chalk_1.default.gray("No files import this symbol."));
184
+ }
185
+ return;
186
+ }
187
+ // ── 6. Print results ─────────────────────────────────────────────────────────
188
+ const total = importersToShow.length;
189
+ console.log(chalk_1.default.bold(`Found ${total} file${total !== 1 ? "s" : ""} that use this symbol:`));
190
+ console.log();
191
+ const directImporters = importersToShow.filter((n) => n.from === defFile);
192
+ const transitiveImporters = importersToShow.filter((n) => n.from !== defFile);
193
+ if (directImporters.length > 0) {
194
+ console.log(chalk_1.default.bold(`Direct imports (from ${chalk_1.default.blue(defFile)}):`));
195
+ for (const node of directImporters) {
196
+ printImporterLine(node.file, reExporterFiles, callSitesByFile);
197
+ }
198
+ console.log();
199
+ }
200
+ if (transitiveImporters.length > 0) {
201
+ // Group by re-exporter
202
+ const byReExporter = new Map();
203
+ for (const node of transitiveImporters) {
204
+ const list = byReExporter.get(node.from) ?? [];
205
+ list.push(node);
206
+ byReExporter.set(node.from, list);
207
+ }
208
+ console.log(chalk_1.default.bold("Via re-exports:"));
209
+ for (const [reExp, nodes] of byReExporter) {
210
+ console.log(` ${chalk_1.default.yellow("↗")} ${chalk_1.default.blue(reExp)}`);
211
+ for (const node of nodes) {
212
+ printImporterLine(node.file, reExporterFiles, callSitesByFile, " ");
213
+ }
214
+ }
215
+ console.log();
216
+ }
217
+ // ── 7. Footer ────────────────────────────────────────────────────────────────
218
+ const withCallSites = callSitesByFile.size;
219
+ if (withCallSites > 0) {
220
+ console.log(chalk_1.default.gray(`Call graph: ${withCallSites} of ${total} file${total !== 1 ? "s" : ""} have call-site detail.`));
221
+ }
222
+ else {
223
+ console.log(chalk_1.default.gray("No call graph data. Re-index with tree-sitter for call-site details."));
224
+ }
225
+ console.log(chalk_1.default.gray(`Project: ${config.projectName} (${config.projectId})`));
226
+ }
227
+ function printImporterLine(file, reExporterFiles, callSitesByFile, indent = " ") {
228
+ const isReExp = reExporterFiles.has(file);
229
+ const badge = isReExp ? chalk_1.default.yellow(" [re-exports]") : "";
230
+ const sites = callSitesByFile.get(file);
231
+ const callInfo = sites?.length
232
+ ? chalk_1.default.gray(` (called in: ${sites.join(", ")})`)
233
+ : "";
234
+ console.log(`${indent}${chalk_1.default.gray("→")} ${chalk_1.default.blue(file)}${badge}${callInfo}`);
235
+ }
236
+ //# sourceMappingURL=usages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usages.js","sourceRoot":"","sources":["../../src/commands/usages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { AiMemoryConfig } from "./types";
2
+ export declare const AI_MEMORY_DIR = ".vemora";
3
+ export declare const AI_MEMORY_CACHE_DIR = ".vemora-cache";
4
+ export declare const CONFIG_FILE = "config.json";
5
+ export declare const METADATA_FILE = "metadata.json";
6
+ export declare const INDEX_DIR = "index";
7
+ export declare const FILES_JSON = "files.json";
8
+ export declare const CHUNKS_JSON = "chunks.json";
9
+ export declare const SYMBOLS_JSON = "symbols.json";
10
+ export declare const DEPS_JSON = "deps.json";
11
+ export declare const CALLGRAPH_JSON = "callgraph.json";
12
+ export declare const TODOS_JSON = "todos.json";
13
+ export declare const SUMMARIES_DIR = "summaries";
14
+ export declare const FILE_SUMMARIES_JSON = "file-summaries.json";
15
+ export declare const PROJECT_SUMMARY_JSON = "project-summary.json";
16
+ export declare const KNOWLEDGE_DIR = "knowledge";
17
+ export declare const KNOWLEDGE_JSON = "entries.json";
18
+ export declare function getMemoryDir(rootDir: string): string;
19
+ export declare function getIndexDir(rootDir: string): string;
20
+ export declare function getSummariesDir(rootDir: string): string;
21
+ /**
22
+ * Returns the local (per-developer) cache directory.
23
+ * Lives in the user's home directory — never in the repo.
24
+ */
25
+ export declare function getLocalCacheDir(projectId: string): string;
26
+ /**
27
+ * Derives a stable project ID from the root directory path.
28
+ * This is deterministic so developers on the same machine always get the same ID,
29
+ * but differs across machines (cache is local anyway).
30
+ */
31
+ export declare function generateProjectId(rootDir: string): string;
32
+ export declare function getDefaultConfig(rootDir: string, projectName: string): AiMemoryConfig;
33
+ export declare function loadConfig(rootDir: string): AiMemoryConfig;
34
+ export declare function saveConfig(config: AiMemoryConfig): void;
35
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,SAAS,UAAU,CAAC;AACjC,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,aAAa,cAAc,CAAC;AACzC,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AACzD,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,aAAa,cAAc,CAAC;AACzC,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAI7C,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD;AAID,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,cAAc,CAqDhB;AAID,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAoB1D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAKvD"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.KNOWLEDGE_JSON = exports.KNOWLEDGE_DIR = exports.PROJECT_SUMMARY_JSON = exports.FILE_SUMMARIES_JSON = exports.SUMMARIES_DIR = exports.TODOS_JSON = exports.CALLGRAPH_JSON = exports.DEPS_JSON = exports.SYMBOLS_JSON = exports.CHUNKS_JSON = exports.FILES_JSON = exports.INDEX_DIR = exports.METADATA_FILE = exports.CONFIG_FILE = exports.AI_MEMORY_CACHE_DIR = exports.AI_MEMORY_DIR = void 0;
7
+ exports.getMemoryDir = getMemoryDir;
8
+ exports.getIndexDir = getIndexDir;
9
+ exports.getSummariesDir = getSummariesDir;
10
+ exports.getLocalCacheDir = getLocalCacheDir;
11
+ exports.generateProjectId = generateProjectId;
12
+ exports.getDefaultConfig = getDefaultConfig;
13
+ exports.loadConfig = loadConfig;
14
+ exports.saveConfig = saveConfig;
15
+ const crypto_1 = __importDefault(require("crypto"));
16
+ const fs_1 = __importDefault(require("fs"));
17
+ const os_1 = __importDefault(require("os"));
18
+ const path_1 = __importDefault(require("path"));
19
+ // ─── Path Constants ────────────────────────────────────────────────────────────
20
+ exports.AI_MEMORY_DIR = ".vemora";
21
+ exports.AI_MEMORY_CACHE_DIR = ".vemora-cache";
22
+ exports.CONFIG_FILE = "config.json";
23
+ exports.METADATA_FILE = "metadata.json";
24
+ exports.INDEX_DIR = "index";
25
+ exports.FILES_JSON = "files.json";
26
+ exports.CHUNKS_JSON = "chunks.json";
27
+ exports.SYMBOLS_JSON = "symbols.json";
28
+ exports.DEPS_JSON = "deps.json";
29
+ exports.CALLGRAPH_JSON = "callgraph.json";
30
+ exports.TODOS_JSON = "todos.json";
31
+ exports.SUMMARIES_DIR = "summaries";
32
+ exports.FILE_SUMMARIES_JSON = "file-summaries.json";
33
+ exports.PROJECT_SUMMARY_JSON = "project-summary.json";
34
+ exports.KNOWLEDGE_DIR = "knowledge";
35
+ exports.KNOWLEDGE_JSON = "entries.json";
36
+ // ─── Path Helpers ─────────────────────────────────────────────────────────────
37
+ function getMemoryDir(rootDir) {
38
+ return path_1.default.join(rootDir, exports.AI_MEMORY_DIR);
39
+ }
40
+ function getIndexDir(rootDir) {
41
+ return path_1.default.join(rootDir, exports.AI_MEMORY_DIR, exports.INDEX_DIR);
42
+ }
43
+ function getSummariesDir(rootDir) {
44
+ return path_1.default.join(rootDir, exports.AI_MEMORY_DIR, exports.SUMMARIES_DIR);
45
+ }
46
+ /**
47
+ * Returns the local (per-developer) cache directory.
48
+ * Lives in the user's home directory — never in the repo.
49
+ */
50
+ function getLocalCacheDir(projectId) {
51
+ return path_1.default.join(os_1.default.homedir(), ".vemora-cache", projectId);
52
+ }
53
+ /**
54
+ * Derives a stable project ID from the root directory path.
55
+ * This is deterministic so developers on the same machine always get the same ID,
56
+ * but differs across machines (cache is local anyway).
57
+ */
58
+ function generateProjectId(rootDir) {
59
+ return crypto_1.default.createHash("sha256").update(rootDir).digest("hex").slice(0, 16);
60
+ }
61
+ // ─── Config Defaults ──────────────────────────────────────────────────────────
62
+ function getDefaultConfig(rootDir, projectName) {
63
+ return {
64
+ projectId: generateProjectId(rootDir),
65
+ projectName,
66
+ version: "1.0.0",
67
+ rootDir,
68
+ include: [
69
+ "**/*.ts",
70
+ "**/*.tsx",
71
+ "**/*.js",
72
+ "**/*.jsx",
73
+ "**/*.py",
74
+ "**/*.rs",
75
+ "**/*.go",
76
+ "**/*.java",
77
+ "**/*.c",
78
+ "**/*.cpp",
79
+ "**/*.h",
80
+ "**/*.css",
81
+ "**/*.scss",
82
+ "**/*.json",
83
+ "**/*.yaml",
84
+ "**/*.yml",
85
+ "**/*.md",
86
+ ],
87
+ exclude: [
88
+ "**/node_modules/**",
89
+ "**/.git/**",
90
+ "**/dist/**",
91
+ "**/build/**",
92
+ "**/out/**",
93
+ "**/.next/**",
94
+ "**/.nuxt/**",
95
+ "**/coverage/**",
96
+ "**/*.min.js",
97
+ "**/*.bundle.js",
98
+ exports.AI_MEMORY_DIR + "/**",
99
+ exports.AI_MEMORY_CACHE_DIR + "/**",
100
+ ],
101
+ maxChunkLines: 80,
102
+ maxChunkChars: 3000,
103
+ embedding: {
104
+ provider: "ollama",
105
+ model: "nomic-embed-text",
106
+ dimensions: 768,
107
+ },
108
+ summarization: {
109
+ provider: "ollama",
110
+ model: "gemma4:e4b",
111
+ baseUrl: "http://localhost:11434",
112
+ },
113
+ cacheDir: "~/.vemora-cache/<projectId>",
114
+ };
115
+ }
116
+ // ─── Config I/O ───────────────────────────────────────────────────────────────
117
+ function loadConfig(rootDir) {
118
+ const configPath = path_1.default.join(rootDir, exports.AI_MEMORY_DIR, exports.CONFIG_FILE);
119
+ if (!fs_1.default.existsSync(configPath)) {
120
+ throw new Error(`No ${exports.AI_MEMORY_DIR}/config.json found in ${rootDir}.\nRun 'vemora init' first.`);
121
+ }
122
+ const raw = fs_1.default.readFileSync(configPath, "utf-8");
123
+ let config;
124
+ try {
125
+ config = JSON.parse(raw);
126
+ }
127
+ catch {
128
+ throw new Error(`${exports.AI_MEMORY_DIR}/config.json is not valid JSON.\nFix the file manually or run 'vemora init --force' to reset it.`);
129
+ }
130
+ // rootDir is injected at load time (not stored in config) so it always reflects
131
+ // the actual filesystem location, even if the project was moved.
132
+ config.rootDir = rootDir;
133
+ return config;
134
+ }
135
+ function saveConfig(config) {
136
+ const configPath = path_1.default.join(config.rootDir, exports.AI_MEMORY_DIR, exports.CONFIG_FILE);
137
+ // Don't persist rootDir — it's injected at load time
138
+ const { rootDir: _omit, ...toSave } = config;
139
+ fs_1.default.writeFileSync(configPath, JSON.stringify(toSave, null, 2), "utf-8");
140
+ }
141
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}