codevault 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/dist/chunking/file-grouper.d.ts +39 -0
  2. package/dist/chunking/file-grouper.d.ts.map +1 -0
  3. package/dist/chunking/file-grouper.js +164 -0
  4. package/dist/chunking/file-grouper.js.map +1 -0
  5. package/dist/chunking/semantic-chunker.d.ts +37 -0
  6. package/dist/chunking/semantic-chunker.d.ts.map +1 -0
  7. package/dist/chunking/semantic-chunker.js +157 -0
  8. package/dist/chunking/semantic-chunker.js.map +1 -0
  9. package/dist/chunking/token-counter.d.ts +28 -0
  10. package/dist/chunking/token-counter.d.ts.map +1 -0
  11. package/dist/chunking/token-counter.js +207 -0
  12. package/dist/chunking/token-counter.js.map +1 -0
  13. package/dist/cli/commands/ask-cmd.d.ts +3 -0
  14. package/dist/cli/commands/ask-cmd.d.ts.map +1 -0
  15. package/dist/cli/commands/ask-cmd.js +130 -0
  16. package/dist/cli/commands/ask-cmd.js.map +1 -0
  17. package/dist/cli/commands/chat-cmd.d.ts +3 -0
  18. package/dist/cli/commands/chat-cmd.d.ts.map +1 -0
  19. package/dist/cli/commands/chat-cmd.js +194 -0
  20. package/dist/cli/commands/chat-cmd.js.map +1 -0
  21. package/dist/cli/commands/config-cmd.d.ts +3 -0
  22. package/dist/cli/commands/config-cmd.d.ts.map +1 -0
  23. package/dist/cli/commands/config-cmd.js +245 -0
  24. package/dist/cli/commands/config-cmd.js.map +1 -0
  25. package/dist/cli/commands/context.d.ts +3 -0
  26. package/dist/cli/commands/context.d.ts.map +1 -0
  27. package/dist/cli/commands/context.js +98 -0
  28. package/dist/cli/commands/context.js.map +1 -0
  29. package/dist/cli/commands/interactive-config.d.ts +2 -0
  30. package/dist/cli/commands/interactive-config.d.ts.map +1 -0
  31. package/dist/cli/commands/interactive-config.js +274 -0
  32. package/dist/cli/commands/interactive-config.js.map +1 -0
  33. package/dist/cli.d.ts +3 -0
  34. package/dist/cli.d.ts.map +1 -0
  35. package/dist/cli.js +403 -0
  36. package/dist/cli.js.map +1 -0
  37. package/dist/codemap/io.d.ts +5 -0
  38. package/dist/codemap/io.d.ts.map +1 -0
  39. package/dist/codemap/io.js +30 -0
  40. package/dist/codemap/io.js.map +1 -0
  41. package/dist/config/apply-env.d.ts +15 -0
  42. package/dist/config/apply-env.d.ts.map +1 -0
  43. package/dist/config/apply-env.js +91 -0
  44. package/dist/config/apply-env.js.map +1 -0
  45. package/dist/config/constants.d.ts +326 -0
  46. package/dist/config/constants.d.ts.map +1 -0
  47. package/dist/config/constants.js +214 -0
  48. package/dist/config/constants.js.map +1 -0
  49. package/dist/config/loader.d.ts +57 -0
  50. package/dist/config/loader.d.ts.map +1 -0
  51. package/dist/config/loader.js +287 -0
  52. package/dist/config/loader.js.map +1 -0
  53. package/dist/config/types.d.ts +46 -0
  54. package/dist/config/types.d.ts.map +1 -0
  55. package/dist/config/types.js +2 -0
  56. package/dist/config/types.js.map +1 -0
  57. package/dist/context/packs.d.ts +33 -0
  58. package/dist/context/packs.d.ts.map +1 -0
  59. package/dist/context/packs.js +180 -0
  60. package/dist/context/packs.js.map +1 -0
  61. package/dist/core/batch-indexer.d.ts +56 -0
  62. package/dist/core/batch-indexer.d.ts.map +1 -0
  63. package/dist/core/batch-indexer.js +189 -0
  64. package/dist/core/batch-indexer.js.map +1 -0
  65. package/dist/core/indexer.d.ts +3 -0
  66. package/dist/core/indexer.d.ts.map +1 -0
  67. package/dist/core/indexer.js +600 -0
  68. package/dist/core/indexer.js.map +1 -0
  69. package/dist/core/metadata.d.ts +19 -0
  70. package/dist/core/metadata.d.ts.map +1 -0
  71. package/dist/core/metadata.js +161 -0
  72. package/dist/core/metadata.js.map +1 -0
  73. package/dist/core/search.d.ts +7 -0
  74. package/dist/core/search.d.ts.map +1 -0
  75. package/dist/core/search.js +545 -0
  76. package/dist/core/search.js.map +1 -0
  77. package/dist/core/symbol-extractor.d.ts +3 -0
  78. package/dist/core/symbol-extractor.d.ts.map +1 -0
  79. package/dist/core/symbol-extractor.js +78 -0
  80. package/dist/core/symbol-extractor.js.map +1 -0
  81. package/dist/core/types.d.ts +104 -0
  82. package/dist/core/types.d.ts.map +1 -0
  83. package/dist/core/types.js +2 -0
  84. package/dist/core/types.js.map +1 -0
  85. package/dist/database/db.d.ts +102 -0
  86. package/dist/database/db.d.ts.map +1 -0
  87. package/dist/database/db.js +366 -0
  88. package/dist/database/db.js.map +1 -0
  89. package/dist/indexer/merkle.d.ts +13 -0
  90. package/dist/indexer/merkle.d.ts.map +1 -0
  91. package/dist/indexer/merkle.js +86 -0
  92. package/dist/indexer/merkle.js.map +1 -0
  93. package/dist/indexer/update.d.ts +19 -0
  94. package/dist/indexer/update.d.ts.map +1 -0
  95. package/dist/indexer/update.js +40 -0
  96. package/dist/indexer/update.js.map +1 -0
  97. package/dist/indexer/watch.d.ts +21 -0
  98. package/dist/indexer/watch.d.ts.map +1 -0
  99. package/dist/indexer/watch.js +222 -0
  100. package/dist/indexer/watch.js.map +1 -0
  101. package/dist/languages/rules.d.ts +11 -0
  102. package/dist/languages/rules.d.ts.map +1 -0
  103. package/dist/languages/rules.js +371 -0
  104. package/dist/languages/rules.js.map +1 -0
  105. package/dist/languages/tree-sitter-loader.d.ts +27 -0
  106. package/dist/languages/tree-sitter-loader.d.ts.map +1 -0
  107. package/dist/languages/tree-sitter-loader.js +76 -0
  108. package/dist/languages/tree-sitter-loader.js.map +1 -0
  109. package/dist/mcp/schemas.d.ts +166 -0
  110. package/dist/mcp/schemas.d.ts.map +1 -0
  111. package/dist/mcp/schemas.js +159 -0
  112. package/dist/mcp/schemas.js.map +1 -0
  113. package/dist/mcp/tools/ask-codebase.d.ts +85 -0
  114. package/dist/mcp/tools/ask-codebase.d.ts.map +1 -0
  115. package/dist/mcp/tools/ask-codebase.js +125 -0
  116. package/dist/mcp/tools/ask-codebase.js.map +1 -0
  117. package/dist/mcp/tools/use-context-pack.d.ts +57 -0
  118. package/dist/mcp/tools/use-context-pack.d.ts.map +1 -0
  119. package/dist/mcp/tools/use-context-pack.js +91 -0
  120. package/dist/mcp/tools/use-context-pack.js.map +1 -0
  121. package/dist/mcp-server.d.ts +3 -0
  122. package/dist/mcp-server.d.ts.map +1 -0
  123. package/dist/mcp-server.js +511 -0
  124. package/dist/mcp-server.js.map +1 -0
  125. package/dist/providers/base.d.ts +39 -0
  126. package/dist/providers/base.d.ts.map +1 -0
  127. package/dist/providers/base.js +198 -0
  128. package/dist/providers/base.js.map +1 -0
  129. package/dist/providers/chat-llm.d.ts +30 -0
  130. package/dist/providers/chat-llm.d.ts.map +1 -0
  131. package/dist/providers/chat-llm.js +85 -0
  132. package/dist/providers/chat-llm.js.map +1 -0
  133. package/dist/providers/index.d.ts +5 -0
  134. package/dist/providers/index.d.ts.map +1 -0
  135. package/dist/providers/index.js +12 -0
  136. package/dist/providers/index.js.map +1 -0
  137. package/dist/providers/openai.d.ts +14 -0
  138. package/dist/providers/openai.d.ts.map +1 -0
  139. package/dist/providers/openai.js +122 -0
  140. package/dist/providers/openai.js.map +1 -0
  141. package/dist/providers/token-counter.d.ts +2 -0
  142. package/dist/providers/token-counter.d.ts.map +1 -0
  143. package/dist/providers/token-counter.js +18 -0
  144. package/dist/providers/token-counter.js.map +1 -0
  145. package/dist/ranking/api-reranker.d.ts +18 -0
  146. package/dist/ranking/api-reranker.d.ts.map +1 -0
  147. package/dist/ranking/api-reranker.js +134 -0
  148. package/dist/ranking/api-reranker.js.map +1 -0
  149. package/dist/ranking/symbol-boost.d.ts +15 -0
  150. package/dist/ranking/symbol-boost.d.ts.map +1 -0
  151. package/dist/ranking/symbol-boost.js +175 -0
  152. package/dist/ranking/symbol-boost.js.map +1 -0
  153. package/dist/search/bm25.d.ts +17 -0
  154. package/dist/search/bm25.d.ts.map +1 -0
  155. package/dist/search/bm25.js +56 -0
  156. package/dist/search/bm25.js.map +1 -0
  157. package/dist/search/hybrid.d.ts +21 -0
  158. package/dist/search/hybrid.d.ts.map +1 -0
  159. package/dist/search/hybrid.js +50 -0
  160. package/dist/search/hybrid.js.map +1 -0
  161. package/dist/search/scope.d.ts +5 -0
  162. package/dist/search/scope.d.ts.map +1 -0
  163. package/dist/search/scope.js +107 -0
  164. package/dist/search/scope.js.map +1 -0
  165. package/dist/storage/encrypted-chunks.d.ts +40 -0
  166. package/dist/storage/encrypted-chunks.d.ts.map +1 -0
  167. package/dist/storage/encrypted-chunks.js +238 -0
  168. package/dist/storage/encrypted-chunks.js.map +1 -0
  169. package/dist/symbols/extract.d.ts +15 -0
  170. package/dist/symbols/extract.d.ts.map +1 -0
  171. package/dist/symbols/extract.js +208 -0
  172. package/dist/symbols/extract.js.map +1 -0
  173. package/dist/symbols/graph.d.ts +3 -0
  174. package/dist/symbols/graph.d.ts.map +1 -0
  175. package/dist/symbols/graph.js +89 -0
  176. package/dist/symbols/graph.js.map +1 -0
  177. package/dist/synthesis/conversational-synthesizer.d.ts +61 -0
  178. package/dist/synthesis/conversational-synthesizer.d.ts.map +1 -0
  179. package/dist/synthesis/conversational-synthesizer.js +286 -0
  180. package/dist/synthesis/conversational-synthesizer.js.map +1 -0
  181. package/dist/synthesis/markdown-formatter.d.ts +13 -0
  182. package/dist/synthesis/markdown-formatter.d.ts.map +1 -0
  183. package/dist/synthesis/markdown-formatter.js +104 -0
  184. package/dist/synthesis/markdown-formatter.js.map +1 -0
  185. package/dist/synthesis/prompt-builder.d.ts +21 -0
  186. package/dist/synthesis/prompt-builder.d.ts.map +1 -0
  187. package/dist/synthesis/prompt-builder.js +129 -0
  188. package/dist/synthesis/prompt-builder.js.map +1 -0
  189. package/dist/synthesis/synthesizer.d.ts +30 -0
  190. package/dist/synthesis/synthesizer.d.ts.map +1 -0
  191. package/dist/synthesis/synthesizer.js +210 -0
  192. package/dist/synthesis/synthesizer.js.map +1 -0
  193. package/dist/types/ast.d.ts +3 -0
  194. package/dist/types/ast.d.ts.map +1 -0
  195. package/dist/types/ast.js +2 -0
  196. package/dist/types/ast.js.map +1 -0
  197. package/dist/types/codemap.d.ts +58 -0
  198. package/dist/types/codemap.d.ts.map +1 -0
  199. package/dist/types/codemap.js +224 -0
  200. package/dist/types/codemap.js.map +1 -0
  201. package/dist/types/context-pack.d.ts +47 -0
  202. package/dist/types/context-pack.d.ts.map +1 -0
  203. package/dist/types/context-pack.js +44 -0
  204. package/dist/types/context-pack.js.map +1 -0
  205. package/dist/types/search.d.ts +15 -0
  206. package/dist/types/search.d.ts.map +1 -0
  207. package/dist/types/search.js +11 -0
  208. package/dist/types/search.js.map +1 -0
  209. package/dist/utils/cli-ui.d.ts +44 -0
  210. package/dist/utils/cli-ui.d.ts.map +1 -0
  211. package/dist/utils/cli-ui.js +139 -0
  212. package/dist/utils/cli-ui.js.map +1 -0
  213. package/dist/utils/indexer-with-progress.d.ts +10 -0
  214. package/dist/utils/indexer-with-progress.d.ts.map +1 -0
  215. package/dist/utils/indexer-with-progress.js +43 -0
  216. package/dist/utils/indexer-with-progress.js.map +1 -0
  217. package/dist/utils/logger.d.ts +55 -0
  218. package/dist/utils/logger.d.ts.map +1 -0
  219. package/dist/utils/logger.js +121 -0
  220. package/dist/utils/logger.js.map +1 -0
  221. package/dist/utils/mutex.d.ts +63 -0
  222. package/dist/utils/mutex.d.ts.map +1 -0
  223. package/dist/utils/mutex.js +123 -0
  224. package/dist/utils/mutex.js.map +1 -0
  225. package/dist/utils/path-helpers.d.ts +27 -0
  226. package/dist/utils/path-helpers.d.ts.map +1 -0
  227. package/dist/utils/path-helpers.js +55 -0
  228. package/dist/utils/path-helpers.js.map +1 -0
  229. package/dist/utils/rate-limiter.d.ts +34 -0
  230. package/dist/utils/rate-limiter.d.ts.map +1 -0
  231. package/dist/utils/rate-limiter.js +178 -0
  232. package/dist/utils/rate-limiter.js.map +1 -0
  233. package/dist/utils/scan-patterns.d.ts +5 -0
  234. package/dist/utils/scan-patterns.d.ts.map +1 -0
  235. package/dist/utils/scan-patterns.js +29 -0
  236. package/dist/utils/scan-patterns.js.map +1 -0
  237. package/package.json +1 -1
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Mutex implementation for coordinating async operations
3
+ *
4
+ * Provides a proper mutex/lock mechanism to replace polling-based
5
+ * concurrency control patterns.
6
+ */
7
+ export class Mutex {
8
+ locked = false;
9
+ queue = [];
10
+ /**
11
+ * Check if the mutex is currently locked
12
+ */
13
+ isLocked() {
14
+ return this.locked;
15
+ }
16
+ /**
17
+ * Acquire the mutex lock
18
+ * Waits if already locked
19
+ */
20
+ async acquire() {
21
+ if (!this.locked) {
22
+ this.locked = true;
23
+ return;
24
+ }
25
+ // Wait for lock to be released
26
+ await new Promise((resolve) => {
27
+ this.queue.push(resolve);
28
+ });
29
+ }
30
+ /**
31
+ * Release the mutex lock
32
+ * Allows next queued operation to proceed
33
+ */
34
+ release() {
35
+ if (this.queue.length > 0) {
36
+ const resolve = this.queue.shift();
37
+ resolve();
38
+ }
39
+ else {
40
+ this.locked = false;
41
+ }
42
+ }
43
+ /**
44
+ * Run a function with automatic acquire/release
45
+ * Ensures lock is always released even if function throws
46
+ */
47
+ async runExclusive(fn) {
48
+ await this.acquire();
49
+ try {
50
+ return await fn();
51
+ }
52
+ finally {
53
+ this.release();
54
+ }
55
+ }
56
+ /**
57
+ * Get queue length (for debugging)
58
+ */
59
+ getQueueLength() {
60
+ return this.queue.length;
61
+ }
62
+ }
63
+ /**
64
+ * Async semaphore for limiting concurrent operations
65
+ */
66
+ export class Semaphore {
67
+ permits;
68
+ maxPermits;
69
+ queue = [];
70
+ constructor(permits) {
71
+ this.permits = permits;
72
+ this.maxPermits = permits;
73
+ }
74
+ /**
75
+ * Acquire a permit
76
+ */
77
+ async acquire() {
78
+ if (this.permits > 0) {
79
+ this.permits--;
80
+ return;
81
+ }
82
+ await new Promise((resolve) => {
83
+ this.queue.push(resolve);
84
+ });
85
+ }
86
+ /**
87
+ * Release a permit
88
+ */
89
+ release() {
90
+ if (this.queue.length > 0) {
91
+ const resolve = this.queue.shift();
92
+ resolve();
93
+ }
94
+ else {
95
+ this.permits = Math.min(this.permits + 1, this.maxPermits);
96
+ }
97
+ }
98
+ /**
99
+ * Run function with automatic acquire/release
100
+ */
101
+ async runExclusive(fn) {
102
+ await this.acquire();
103
+ try {
104
+ return await fn();
105
+ }
106
+ finally {
107
+ this.release();
108
+ }
109
+ }
110
+ /**
111
+ * Get available permits
112
+ */
113
+ getAvailablePermits() {
114
+ return this.permits;
115
+ }
116
+ /**
117
+ * Get queue length
118
+ */
119
+ getQueueLength() {
120
+ return this.queue.length;
121
+ }
122
+ }
123
+ //# sourceMappingURL=mutex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutex.js","sourceRoot":"","sources":["../../src/utils/mutex.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,OAAO,KAAK;IACR,MAAM,GAAG,KAAK,CAAC;IACf,KAAK,GAAsB,EAAE,CAAC;IAEtC;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO;QACT,CAAC;QAED,+BAA+B;QAC/B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAI,EAAoB;QACxC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,SAAS;IACZ,OAAO,CAAS;IAChB,UAAU,CAAS;IACnB,KAAK,GAAsB,EAAE,CAAC;IAEtC,YAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAI,EAAoB;QACxC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Utility functions for path resolution and normalization
3
+ */
4
+ /**
5
+ * Resolves the project root path from various input options
6
+ * Supports multiple parameter names for backwards compatibility (project, directory, path)
7
+ *
8
+ * @param input - Object containing potential path parameters
9
+ * @returns Normalized path string, defaults to '.' if no path provided
10
+ */
11
+ export declare function resolveProjectRoot(input?: {
12
+ project?: string;
13
+ directory?: string;
14
+ path?: string;
15
+ }): string;
16
+ /**
17
+ * Wraps a function execution with quiet logging mode enabled
18
+ * Automatically restores previous environment state after execution
19
+ *
20
+ * @param fn - Async function to execute with quiet logging
21
+ * @param opts - Options for additional environment flags
22
+ * @returns Result of the wrapped function
23
+ */
24
+ export declare function withQuietLogs<T>(fn: () => Promise<T>, opts?: {
25
+ cacheModelProfile?: boolean;
26
+ }): Promise<T>;
27
+ //# sourceMappingURL=path-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/path-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,CAST;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,CAAC,EAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,OAAO,CAAC,CAAC,CAAC,CA2BZ"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Utility functions for path resolution and normalization
3
+ */
4
+ /**
5
+ * Resolves the project root path from various input options
6
+ * Supports multiple parameter names for backwards compatibility (project, directory, path)
7
+ *
8
+ * @param input - Object containing potential path parameters
9
+ * @returns Normalized path string, defaults to '.' if no path provided
10
+ */
11
+ export function resolveProjectRoot(input) {
12
+ if (!input) {
13
+ return '.';
14
+ }
15
+ const rawPath = input.project || input.directory || input.path || '.';
16
+ const trimmed = typeof rawPath === 'string' ? rawPath.trim() : '.';
17
+ return trimmed.length > 0 ? trimmed : '.';
18
+ }
19
+ /**
20
+ * Wraps a function execution with quiet logging mode enabled
21
+ * Automatically restores previous environment state after execution
22
+ *
23
+ * @param fn - Async function to execute with quiet logging
24
+ * @param opts - Options for additional environment flags
25
+ * @returns Result of the wrapped function
26
+ */
27
+ export async function withQuietLogs(fn, opts) {
28
+ const prevQuiet = process.env.CODEVAULT_QUIET;
29
+ const prevCache = process.env.CODEVAULT_MODEL_PROFILE_CACHED;
30
+ process.env.CODEVAULT_QUIET = 'true';
31
+ if (opts?.cacheModelProfile) {
32
+ process.env.CODEVAULT_MODEL_PROFILE_CACHED = 'true';
33
+ }
34
+ try {
35
+ return await fn();
36
+ }
37
+ finally {
38
+ // Restore previous state
39
+ if (prevQuiet === undefined) {
40
+ delete process.env.CODEVAULT_QUIET;
41
+ }
42
+ else {
43
+ process.env.CODEVAULT_QUIET = prevQuiet;
44
+ }
45
+ if (opts?.cacheModelProfile) {
46
+ if (prevCache === undefined) {
47
+ delete process.env.CODEVAULT_MODEL_PROFILE_CACHED;
48
+ }
49
+ else {
50
+ process.env.CODEVAULT_MODEL_PROFILE_CACHED = prevCache;
51
+ }
52
+ }
53
+ }
54
+ }
55
+ //# sourceMappingURL=path-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-helpers.js","sourceRoot":"","sources":["../../src/utils/path-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAIlC;IACC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC;IACtE,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAEnE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAoB,EACpB,IAAsC;IAEtC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;IAE7D,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC;IACrC,IAAI,IAAI,EAAE,iBAAiB,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,MAAM,CAAC;IACtD,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,yBAAyB;QACzB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,SAAS,CAAC;QAC1C,CAAC;QAED,IAAI,IAAI,EAAE,iBAAiB,EAAE,CAAC;YAC5B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,SAAS,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,34 @@
1
+ export declare class RateLimiter {
2
+ private rpm;
3
+ private tpm;
4
+ private queue;
5
+ private processing;
6
+ private requestTimes;
7
+ private tokenUsage;
8
+ private retryDelays;
9
+ private maxQueueSize;
10
+ constructor(requestsPerMinute?: number | null, tokensPerMinute?: number | null, maxQueueSize?: number);
11
+ private getDefaultRPM;
12
+ private getDefaultTPM;
13
+ private canMakeRequest;
14
+ private recordRequest;
15
+ private getDelayUntilNextSlot;
16
+ execute<T>(fn: () => Promise<T>, retryCount?: number, estimatedTokens?: number): Promise<T>;
17
+ private processQueue;
18
+ private isRateLimitError;
19
+ getStats(): {
20
+ rpm: number | null;
21
+ tpm: number | null;
22
+ queueLength: number;
23
+ maxQueueSize: number;
24
+ queueUtilization: string;
25
+ requestsInLastMinute: number;
26
+ tokensInLastMinute: number;
27
+ isRpmLimited: boolean;
28
+ isTpmLimited: boolean;
29
+ isLimited: boolean;
30
+ };
31
+ reset(): void;
32
+ }
33
+ export declare function createRateLimiter(providerName: string): RateLimiter;
34
+ //# sourceMappingURL=rate-limiter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"AAaA,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,YAAY,CAAS;gBAEjB,iBAAiB,GAAE,MAAM,GAAG,IAAW,EAAE,eAAe,GAAE,MAAM,GAAG,IAAW,EAAE,YAAY,GAAE,MAAc;IAMxH,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,qBAAqB;IAsBvB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,SAAI,EAAE,eAAe,SAAI,GAAG,OAAO,CAAC,CAAC,CAAC;YAazE,YAAY;IAkD1B,OAAO,CAAC,gBAAgB;IAYxB,QAAQ;;;;;;;;;;;;IAqBR,KAAK,IAAI,IAAI;CAMd;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAYnE"}
@@ -0,0 +1,178 @@
1
+ export class RateLimiter {
2
+ rpm;
3
+ tpm;
4
+ queue = [];
5
+ processing = false;
6
+ requestTimes = [];
7
+ tokenUsage = [];
8
+ retryDelays = [1000, 2000, 5000, 10000];
9
+ // FIX: Add max queue size to prevent unbounded growth
10
+ maxQueueSize;
11
+ constructor(requestsPerMinute = null, tokensPerMinute = null, maxQueueSize = 10000) {
12
+ this.rpm = requestsPerMinute ?? this.getDefaultRPM();
13
+ this.tpm = tokensPerMinute ?? this.getDefaultTPM();
14
+ this.maxQueueSize = maxQueueSize;
15
+ }
16
+ getDefaultRPM() {
17
+ const envVar = process.env.CODEVAULT_EMBEDDING_RATE_LIMIT_RPM || process.env.CODEVAULT_RATE_LIMIT_RPM || process.env.CODEVAULT_RATE_LIMIT;
18
+ if (envVar) {
19
+ const limit = parseInt(envVar, 10);
20
+ if (!isNaN(limit) && limit > 0) {
21
+ return limit;
22
+ }
23
+ }
24
+ return null;
25
+ }
26
+ getDefaultTPM() {
27
+ const envVar = process.env.CODEVAULT_EMBEDDING_RATE_LIMIT_TPM || process.env.CODEVAULT_RATE_LIMIT_TPM;
28
+ if (envVar) {
29
+ const limit = parseInt(envVar, 10);
30
+ if (!isNaN(limit) && limit > 0) {
31
+ return limit;
32
+ }
33
+ }
34
+ return null;
35
+ }
36
+ canMakeRequest(estimatedTokens = 0) {
37
+ const now = Date.now();
38
+ const oneMinuteAgo = now - 60000;
39
+ this.requestTimes = this.requestTimes.filter(time => time > oneMinuteAgo);
40
+ this.tokenUsage = this.tokenUsage.filter(entry => entry.time > oneMinuteAgo);
41
+ if (this.rpm !== null && this.requestTimes.length >= this.rpm) {
42
+ return false;
43
+ }
44
+ if (this.tpm !== null && estimatedTokens > 0) {
45
+ const tokensInLastMinute = this.tokenUsage.reduce((sum, entry) => sum + entry.tokens, 0);
46
+ if (tokensInLastMinute + estimatedTokens > this.tpm) {
47
+ return false;
48
+ }
49
+ }
50
+ return true;
51
+ }
52
+ recordRequest(tokensUsed = 0) {
53
+ const now = Date.now();
54
+ if (this.rpm !== null) {
55
+ this.requestTimes.push(now);
56
+ }
57
+ if (this.tpm !== null && tokensUsed > 0) {
58
+ this.tokenUsage.push({ time: now, tokens: tokensUsed });
59
+ }
60
+ }
61
+ getDelayUntilNextSlot(estimatedTokens = 0) {
62
+ const now = Date.now();
63
+ let delay = 0;
64
+ if (this.rpm !== null && this.requestTimes.length > 0) {
65
+ const oldestRequest = this.requestTimes[0];
66
+ const rpmDelay = 60000 - (now - oldestRequest);
67
+ delay = Math.max(delay, rpmDelay);
68
+ }
69
+ if (this.tpm !== null && estimatedTokens > 0 && this.tokenUsage.length > 0) {
70
+ const tokensInLastMinute = this.tokenUsage.reduce((sum, entry) => sum + entry.tokens, 0);
71
+ if (tokensInLastMinute + estimatedTokens > this.tpm) {
72
+ const oldestToken = this.tokenUsage[0];
73
+ const tpmDelay = 60000 - (now - oldestToken.time);
74
+ delay = Math.max(delay, tpmDelay);
75
+ }
76
+ }
77
+ return Math.max(0, delay + 100);
78
+ }
79
+ async execute(fn, retryCount = 0, estimatedTokens = 0) {
80
+ return new Promise((resolve, reject) => {
81
+ // FIX: Reject if queue is at max capacity to prevent memory exhaustion
82
+ if (this.queue.length >= this.maxQueueSize) {
83
+ reject(new Error(`Rate limiter queue is full (${this.maxQueueSize} items). Too many concurrent requests.`));
84
+ return;
85
+ }
86
+ this.queue.push({ fn, resolve, reject, retryCount, estimatedTokens });
87
+ void this.processQueue();
88
+ });
89
+ }
90
+ async processQueue() {
91
+ if (this.processing || this.queue.length === 0) {
92
+ return;
93
+ }
94
+ this.processing = true;
95
+ while (this.queue.length > 0) {
96
+ const item = this.queue[0];
97
+ const { fn, resolve, reject, retryCount, estimatedTokens } = item;
98
+ while (!this.canMakeRequest(estimatedTokens || 0)) {
99
+ const delay = this.getDelayUntilNextSlot(estimatedTokens || 0);
100
+ if (delay > 0) {
101
+ await new Promise(r => setTimeout(r, delay));
102
+ }
103
+ }
104
+ this.queue.shift();
105
+ try {
106
+ const result = await fn();
107
+ const tokensUsed = estimatedTokens || result?.usage?.total_tokens || 0;
108
+ this.recordRequest(tokensUsed);
109
+ resolve(result);
110
+ }
111
+ catch (error) {
112
+ if (this.isRateLimitError(error)) {
113
+ const maxRetries = this.retryDelays.length;
114
+ if (retryCount < maxRetries) {
115
+ const delay = this.retryDelays[retryCount];
116
+ console.warn(`⚠️ Rate limit hit (429). Retrying in ${delay}ms... (attempt ${retryCount + 1}/${maxRetries})`);
117
+ await new Promise(r => setTimeout(r, delay));
118
+ this.queue.unshift({ fn, resolve, reject, retryCount: retryCount + 1, estimatedTokens });
119
+ }
120
+ else {
121
+ reject(new Error(`Rate limit exceeded after ${maxRetries} retries: ${error.message}`));
122
+ }
123
+ }
124
+ else {
125
+ reject(error);
126
+ }
127
+ }
128
+ }
129
+ this.processing = false;
130
+ }
131
+ isRateLimitError(error) {
132
+ if (!error)
133
+ return false;
134
+ const message = error.message || '';
135
+ const status = error.status || error.statusCode || 0;
136
+ return status === 429 ||
137
+ message.includes('429') ||
138
+ message.includes('rate limit') ||
139
+ message.includes('too many requests');
140
+ }
141
+ getStats() {
142
+ const now = Date.now();
143
+ const oneMinuteAgo = now - 60000;
144
+ const tokensInLastMinute = this.tokenUsage
145
+ .filter(entry => entry.time > oneMinuteAgo)
146
+ .reduce((sum, entry) => sum + entry.tokens, 0);
147
+ return {
148
+ rpm: this.rpm,
149
+ tpm: this.tpm,
150
+ queueLength: this.queue.length,
151
+ maxQueueSize: this.maxQueueSize,
152
+ queueUtilization: ((this.queue.length / this.maxQueueSize) * 100).toFixed(1) + '%',
153
+ requestsInLastMinute: this.requestTimes.filter(t => t > oneMinuteAgo).length,
154
+ tokensInLastMinute,
155
+ isRpmLimited: this.rpm !== null,
156
+ isTpmLimited: this.tpm !== null,
157
+ isLimited: this.rpm !== null || this.tpm !== null
158
+ };
159
+ }
160
+ reset() {
161
+ this.queue = [];
162
+ this.requestTimes = [];
163
+ this.tokenUsage = [];
164
+ this.processing = false;
165
+ }
166
+ }
167
+ export function createRateLimiter(providerName) {
168
+ const defaultLimits = {
169
+ 'OpenAI': { rpm: 50, tpm: null },
170
+ 'Qwen': { rpm: 10000, tpm: 600000 },
171
+ };
172
+ if (process.env.CODEVAULT_RATE_LIMIT_RPM || process.env.CODEVAULT_RATE_LIMIT || process.env.CODEVAULT_RATE_LIMIT_TPM) {
173
+ return new RateLimiter();
174
+ }
175
+ const limits = defaultLimits[providerName] ?? { rpm: null, tpm: null };
176
+ return new RateLimiter(limits.rpm, limits.tpm);
177
+ }
178
+ //# sourceMappingURL=rate-limiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Default file and directory patterns to ignore during project scanning
3
+ */
4
+ export declare const DEFAULT_SCAN_IGNORES: string[];
5
+ //# sourceMappingURL=scan-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-patterns.d.ts","sourceRoot":"","sources":["../../src/utils/scan-patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,UAwBhC,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Default file and directory patterns to ignore during project scanning
3
+ */
4
+ export const DEFAULT_SCAN_IGNORES = [
5
+ '**/vendor/**',
6
+ '**/node_modules/**',
7
+ '**/.git/**',
8
+ '**/storage/**',
9
+ '**/dist/**',
10
+ '**/build/**',
11
+ '**/tmp/**',
12
+ '**/temp/**',
13
+ '**/.npm/**',
14
+ '**/.yarn/**',
15
+ '**/Library/**',
16
+ '**/System/**',
17
+ '**/.Trash/**',
18
+ '**/.codevault/**',
19
+ '**/codevault.codemap.json',
20
+ '**/codevault.codemap.json.backup-*',
21
+ '**/package-lock.json',
22
+ '**/yarn.lock',
23
+ '**/pnpm-lock.yaml',
24
+ '**/*.json',
25
+ '**/*.sh',
26
+ '**/examples/**',
27
+ '**/assets/**'
28
+ ];
29
+ //# sourceMappingURL=scan-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-patterns.js","sourceRoot":"","sources":["../../src/utils/scan-patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc;IACd,oBAAoB;IACpB,YAAY;IACZ,eAAe;IACf,YAAY;IACZ,aAAa;IACb,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,eAAe;IACf,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,2BAA2B;IAC3B,oCAAoC;IACpC,sBAAsB;IACtB,cAAc;IACd,mBAAmB;IACnB,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,cAAc;CACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codevault",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "description": "AI-powered semantic code search via Model Context Protocol",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",