rag-lite-ts 2.1.0 → 2.2.0

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 (310) hide show
  1. package/dist/{cli → cjs/cli}/indexer.js +1 -1
  2. package/dist/{cli → cjs/cli}/search.js +5 -10
  3. package/dist/{core → cjs/core}/binary-index-format.d.ts +28 -2
  4. package/dist/cjs/core/binary-index-format.js +291 -0
  5. package/dist/{core → cjs/core}/ingestion.d.ts +5 -1
  6. package/dist/{core → cjs/core}/ingestion.js +76 -9
  7. package/dist/{core → cjs/core}/model-validator.js +1 -1
  8. package/dist/{core → cjs/core}/reranking-strategies.js +4 -5
  9. package/dist/{core → cjs/core}/search.js +2 -1
  10. package/dist/{core → cjs/core}/types.d.ts +1 -1
  11. package/dist/{core → cjs/core}/vector-index.d.ts +4 -0
  12. package/dist/{core → cjs/core}/vector-index.js +10 -2
  13. package/dist/{file-processor.d.ts → cjs/file-processor.d.ts} +2 -0
  14. package/dist/{file-processor.js → cjs/file-processor.js} +20 -0
  15. package/dist/{index-manager.d.ts → cjs/index-manager.d.ts} +17 -1
  16. package/dist/{index-manager.js → cjs/index-manager.js} +148 -7
  17. package/dist/{multimodal → cjs/multimodal}/clip-embedder.js +71 -66
  18. package/dist/esm/api-errors.d.ts +90 -0
  19. package/dist/esm/api-errors.js +320 -0
  20. package/dist/esm/cli/indexer.d.ts +11 -0
  21. package/dist/esm/cli/indexer.js +471 -0
  22. package/dist/esm/cli/search.d.ts +7 -0
  23. package/dist/esm/cli/search.js +332 -0
  24. package/dist/esm/cli.d.ts +3 -0
  25. package/dist/esm/cli.js +529 -0
  26. package/dist/esm/config.d.ts +51 -0
  27. package/dist/esm/config.js +79 -0
  28. package/dist/esm/core/abstract-embedder.d.ts +125 -0
  29. package/dist/esm/core/abstract-embedder.js +264 -0
  30. package/dist/esm/core/actionable-error-messages.d.ts +60 -0
  31. package/dist/esm/core/actionable-error-messages.js +397 -0
  32. package/dist/esm/core/adapters.d.ts +93 -0
  33. package/dist/esm/core/adapters.js +139 -0
  34. package/dist/esm/core/batch-processing-optimizer.d.ts +155 -0
  35. package/dist/esm/core/batch-processing-optimizer.js +536 -0
  36. package/dist/esm/core/binary-index-format.d.ts +78 -0
  37. package/dist/esm/core/binary-index-format.js +291 -0
  38. package/dist/esm/core/chunker.d.ts +119 -0
  39. package/dist/esm/core/chunker.js +73 -0
  40. package/dist/esm/core/cli-database-utils.d.ts +53 -0
  41. package/dist/esm/core/cli-database-utils.js +239 -0
  42. package/dist/esm/core/config.d.ts +102 -0
  43. package/dist/esm/core/config.js +247 -0
  44. package/dist/esm/core/content-errors.d.ts +111 -0
  45. package/dist/esm/core/content-errors.js +362 -0
  46. package/dist/esm/core/content-manager.d.ts +335 -0
  47. package/dist/esm/core/content-manager.js +1476 -0
  48. package/dist/esm/core/content-performance-optimizer.d.ts +150 -0
  49. package/dist/esm/core/content-performance-optimizer.js +516 -0
  50. package/dist/esm/core/content-resolver.d.ts +104 -0
  51. package/dist/esm/core/content-resolver.js +285 -0
  52. package/dist/esm/core/cross-modal-search.d.ts +164 -0
  53. package/dist/esm/core/cross-modal-search.js +342 -0
  54. package/dist/esm/core/database-connection-manager.d.ts +109 -0
  55. package/dist/esm/core/database-connection-manager.js +310 -0
  56. package/dist/esm/core/db.d.ts +213 -0
  57. package/dist/esm/core/db.js +895 -0
  58. package/dist/esm/core/embedder-factory.d.ts +154 -0
  59. package/dist/esm/core/embedder-factory.js +311 -0
  60. package/dist/esm/core/error-handler.d.ts +112 -0
  61. package/dist/esm/core/error-handler.js +239 -0
  62. package/dist/esm/core/index.d.ts +59 -0
  63. package/dist/esm/core/index.js +69 -0
  64. package/dist/esm/core/ingestion.d.ts +202 -0
  65. package/dist/esm/core/ingestion.js +901 -0
  66. package/dist/esm/core/interfaces.d.ts +408 -0
  67. package/dist/esm/core/interfaces.js +106 -0
  68. package/dist/esm/core/lazy-dependency-loader.d.ts +147 -0
  69. package/dist/esm/core/lazy-dependency-loader.js +435 -0
  70. package/dist/esm/core/mode-detection-service.d.ts +150 -0
  71. package/dist/esm/core/mode-detection-service.js +565 -0
  72. package/dist/esm/core/mode-model-validator.d.ts +92 -0
  73. package/dist/esm/core/mode-model-validator.js +203 -0
  74. package/dist/esm/core/model-registry.d.ts +116 -0
  75. package/dist/esm/core/model-registry.js +411 -0
  76. package/dist/esm/core/model-validator.d.ts +217 -0
  77. package/dist/esm/core/model-validator.js +782 -0
  78. package/dist/esm/core/path-manager.d.ts +47 -0
  79. package/dist/esm/core/path-manager.js +71 -0
  80. package/dist/esm/core/raglite-paths.d.ts +121 -0
  81. package/dist/esm/core/raglite-paths.js +145 -0
  82. package/dist/esm/core/reranking-config.d.ts +42 -0
  83. package/dist/esm/core/reranking-config.js +147 -0
  84. package/dist/esm/core/reranking-factory.d.ts +92 -0
  85. package/dist/esm/core/reranking-factory.js +410 -0
  86. package/dist/esm/core/reranking-strategies.d.ts +310 -0
  87. package/dist/esm/core/reranking-strategies.js +650 -0
  88. package/dist/esm/core/resource-cleanup.d.ts +163 -0
  89. package/dist/esm/core/resource-cleanup.js +371 -0
  90. package/dist/esm/core/resource-manager.d.ts +212 -0
  91. package/dist/esm/core/resource-manager.js +564 -0
  92. package/dist/esm/core/search-pipeline.d.ts +111 -0
  93. package/dist/esm/core/search-pipeline.js +287 -0
  94. package/dist/esm/core/search.d.ts +141 -0
  95. package/dist/esm/core/search.js +320 -0
  96. package/dist/esm/core/streaming-operations.d.ts +145 -0
  97. package/dist/esm/core/streaming-operations.js +409 -0
  98. package/dist/esm/core/types.d.ts +66 -0
  99. package/dist/esm/core/types.js +6 -0
  100. package/dist/esm/core/universal-embedder.d.ts +177 -0
  101. package/dist/esm/core/universal-embedder.js +139 -0
  102. package/dist/esm/core/validation-messages.d.ts +99 -0
  103. package/dist/esm/core/validation-messages.js +334 -0
  104. package/dist/esm/core/vector-index.d.ts +72 -0
  105. package/dist/esm/core/vector-index.js +333 -0
  106. package/dist/esm/dom-polyfills.d.ts +6 -0
  107. package/dist/esm/dom-polyfills.js +37 -0
  108. package/dist/esm/factories/index.d.ts +27 -0
  109. package/dist/esm/factories/index.js +29 -0
  110. package/dist/esm/factories/ingestion-factory.d.ts +200 -0
  111. package/dist/esm/factories/ingestion-factory.js +477 -0
  112. package/dist/esm/factories/search-factory.d.ts +154 -0
  113. package/dist/esm/factories/search-factory.js +344 -0
  114. package/dist/esm/file-processor.d.ts +147 -0
  115. package/dist/esm/file-processor.js +963 -0
  116. package/dist/esm/index-manager.d.ts +116 -0
  117. package/dist/esm/index-manager.js +598 -0
  118. package/dist/esm/index.d.ts +75 -0
  119. package/dist/esm/index.js +110 -0
  120. package/dist/esm/indexer.d.ts +7 -0
  121. package/dist/esm/indexer.js +54 -0
  122. package/dist/esm/ingestion.d.ts +63 -0
  123. package/dist/esm/ingestion.js +124 -0
  124. package/dist/esm/mcp-server.d.ts +46 -0
  125. package/dist/esm/mcp-server.js +1820 -0
  126. package/dist/esm/multimodal/clip-embedder.d.ts +327 -0
  127. package/dist/esm/multimodal/clip-embedder.js +996 -0
  128. package/dist/esm/multimodal/index.d.ts +6 -0
  129. package/dist/esm/multimodal/index.js +6 -0
  130. package/dist/esm/preprocess.d.ts +19 -0
  131. package/dist/esm/preprocess.js +203 -0
  132. package/dist/esm/preprocessors/index.d.ts +17 -0
  133. package/dist/esm/preprocessors/index.js +38 -0
  134. package/dist/esm/preprocessors/mdx.d.ts +25 -0
  135. package/dist/esm/preprocessors/mdx.js +101 -0
  136. package/dist/esm/preprocessors/mermaid.d.ts +68 -0
  137. package/dist/esm/preprocessors/mermaid.js +329 -0
  138. package/dist/esm/preprocessors/registry.d.ts +56 -0
  139. package/dist/esm/preprocessors/registry.js +179 -0
  140. package/dist/esm/run-error-recovery-tests.d.ts +7 -0
  141. package/dist/esm/run-error-recovery-tests.js +101 -0
  142. package/dist/esm/search-standalone.d.ts +7 -0
  143. package/dist/esm/search-standalone.js +117 -0
  144. package/dist/esm/search.d.ts +99 -0
  145. package/dist/esm/search.js +177 -0
  146. package/dist/esm/test-utils.d.ts +18 -0
  147. package/dist/esm/test-utils.js +27 -0
  148. package/dist/esm/text/chunker.d.ts +33 -0
  149. package/dist/esm/text/chunker.js +279 -0
  150. package/dist/esm/text/embedder.d.ts +111 -0
  151. package/dist/esm/text/embedder.js +386 -0
  152. package/dist/esm/text/index.d.ts +8 -0
  153. package/dist/esm/text/index.js +9 -0
  154. package/dist/esm/text/preprocessors/index.d.ts +17 -0
  155. package/dist/esm/text/preprocessors/index.js +38 -0
  156. package/dist/esm/text/preprocessors/mdx.d.ts +25 -0
  157. package/dist/esm/text/preprocessors/mdx.js +101 -0
  158. package/dist/esm/text/preprocessors/mermaid.d.ts +68 -0
  159. package/dist/esm/text/preprocessors/mermaid.js +330 -0
  160. package/dist/esm/text/preprocessors/registry.d.ts +56 -0
  161. package/dist/esm/text/preprocessors/registry.js +180 -0
  162. package/dist/esm/text/reranker.d.ts +49 -0
  163. package/dist/esm/text/reranker.js +274 -0
  164. package/dist/esm/text/sentence-transformer-embedder.d.ts +96 -0
  165. package/dist/esm/text/sentence-transformer-embedder.js +340 -0
  166. package/dist/esm/text/tokenizer.d.ts +22 -0
  167. package/dist/esm/text/tokenizer.js +64 -0
  168. package/dist/esm/types.d.ts +83 -0
  169. package/dist/esm/types.js +3 -0
  170. package/dist/esm/utils/vector-math.d.ts +31 -0
  171. package/dist/esm/utils/vector-math.js +70 -0
  172. package/package.json +30 -12
  173. package/dist/core/binary-index-format.js +0 -122
  174. /package/dist/{api-errors.d.ts → cjs/api-errors.d.ts} +0 -0
  175. /package/dist/{api-errors.js → cjs/api-errors.js} +0 -0
  176. /package/dist/{cli → cjs/cli}/indexer.d.ts +0 -0
  177. /package/dist/{cli → cjs/cli}/search.d.ts +0 -0
  178. /package/dist/{cli.d.ts → cjs/cli.d.ts} +0 -0
  179. /package/dist/{cli.js → cjs/cli.js} +0 -0
  180. /package/dist/{config.d.ts → cjs/config.d.ts} +0 -0
  181. /package/dist/{config.js → cjs/config.js} +0 -0
  182. /package/dist/{core → cjs/core}/abstract-embedder.d.ts +0 -0
  183. /package/dist/{core → cjs/core}/abstract-embedder.js +0 -0
  184. /package/dist/{core → cjs/core}/actionable-error-messages.d.ts +0 -0
  185. /package/dist/{core → cjs/core}/actionable-error-messages.js +0 -0
  186. /package/dist/{core → cjs/core}/adapters.d.ts +0 -0
  187. /package/dist/{core → cjs/core}/adapters.js +0 -0
  188. /package/dist/{core → cjs/core}/batch-processing-optimizer.d.ts +0 -0
  189. /package/dist/{core → cjs/core}/batch-processing-optimizer.js +0 -0
  190. /package/dist/{core → cjs/core}/chunker.d.ts +0 -0
  191. /package/dist/{core → cjs/core}/chunker.js +0 -0
  192. /package/dist/{core → cjs/core}/cli-database-utils.d.ts +0 -0
  193. /package/dist/{core → cjs/core}/cli-database-utils.js +0 -0
  194. /package/dist/{core → cjs/core}/config.d.ts +0 -0
  195. /package/dist/{core → cjs/core}/config.js +0 -0
  196. /package/dist/{core → cjs/core}/content-errors.d.ts +0 -0
  197. /package/dist/{core → cjs/core}/content-errors.js +0 -0
  198. /package/dist/{core → cjs/core}/content-manager.d.ts +0 -0
  199. /package/dist/{core → cjs/core}/content-manager.js +0 -0
  200. /package/dist/{core → cjs/core}/content-performance-optimizer.d.ts +0 -0
  201. /package/dist/{core → cjs/core}/content-performance-optimizer.js +0 -0
  202. /package/dist/{core → cjs/core}/content-resolver.d.ts +0 -0
  203. /package/dist/{core → cjs/core}/content-resolver.js +0 -0
  204. /package/dist/{core → cjs/core}/cross-modal-search.d.ts +0 -0
  205. /package/dist/{core → cjs/core}/cross-modal-search.js +0 -0
  206. /package/dist/{core → cjs/core}/database-connection-manager.d.ts +0 -0
  207. /package/dist/{core → cjs/core}/database-connection-manager.js +0 -0
  208. /package/dist/{core → cjs/core}/db.d.ts +0 -0
  209. /package/dist/{core → cjs/core}/db.js +0 -0
  210. /package/dist/{core → cjs/core}/embedder-factory.d.ts +0 -0
  211. /package/dist/{core → cjs/core}/embedder-factory.js +0 -0
  212. /package/dist/{core → cjs/core}/error-handler.d.ts +0 -0
  213. /package/dist/{core → cjs/core}/error-handler.js +0 -0
  214. /package/dist/{core → cjs/core}/index.d.ts +0 -0
  215. /package/dist/{core → cjs/core}/index.js +0 -0
  216. /package/dist/{core → cjs/core}/interfaces.d.ts +0 -0
  217. /package/dist/{core → cjs/core}/interfaces.js +0 -0
  218. /package/dist/{core → cjs/core}/lazy-dependency-loader.d.ts +0 -0
  219. /package/dist/{core → cjs/core}/lazy-dependency-loader.js +0 -0
  220. /package/dist/{core → cjs/core}/mode-detection-service.d.ts +0 -0
  221. /package/dist/{core → cjs/core}/mode-detection-service.js +0 -0
  222. /package/dist/{core → cjs/core}/mode-model-validator.d.ts +0 -0
  223. /package/dist/{core → cjs/core}/mode-model-validator.js +0 -0
  224. /package/dist/{core → cjs/core}/model-registry.d.ts +0 -0
  225. /package/dist/{core → cjs/core}/model-registry.js +0 -0
  226. /package/dist/{core → cjs/core}/model-validator.d.ts +0 -0
  227. /package/dist/{core → cjs/core}/path-manager.d.ts +0 -0
  228. /package/dist/{core → cjs/core}/path-manager.js +0 -0
  229. /package/dist/{core → cjs/core}/raglite-paths.d.ts +0 -0
  230. /package/dist/{core → cjs/core}/raglite-paths.js +0 -0
  231. /package/dist/{core → cjs/core}/reranking-config.d.ts +0 -0
  232. /package/dist/{core → cjs/core}/reranking-config.js +0 -0
  233. /package/dist/{core → cjs/core}/reranking-factory.d.ts +0 -0
  234. /package/dist/{core → cjs/core}/reranking-factory.js +0 -0
  235. /package/dist/{core → cjs/core}/reranking-strategies.d.ts +0 -0
  236. /package/dist/{core → cjs/core}/resource-cleanup.d.ts +0 -0
  237. /package/dist/{core → cjs/core}/resource-cleanup.js +0 -0
  238. /package/dist/{core → cjs/core}/resource-manager.d.ts +0 -0
  239. /package/dist/{core → cjs/core}/resource-manager.js +0 -0
  240. /package/dist/{core → cjs/core}/search-pipeline.d.ts +0 -0
  241. /package/dist/{core → cjs/core}/search-pipeline.js +0 -0
  242. /package/dist/{core → cjs/core}/search.d.ts +0 -0
  243. /package/dist/{core → cjs/core}/streaming-operations.d.ts +0 -0
  244. /package/dist/{core → cjs/core}/streaming-operations.js +0 -0
  245. /package/dist/{core → cjs/core}/types.js +0 -0
  246. /package/dist/{core → cjs/core}/universal-embedder.d.ts +0 -0
  247. /package/dist/{core → cjs/core}/universal-embedder.js +0 -0
  248. /package/dist/{core → cjs/core}/validation-messages.d.ts +0 -0
  249. /package/dist/{core → cjs/core}/validation-messages.js +0 -0
  250. /package/dist/{dom-polyfills.d.ts → cjs/dom-polyfills.d.ts} +0 -0
  251. /package/dist/{dom-polyfills.js → cjs/dom-polyfills.js} +0 -0
  252. /package/dist/{factories → cjs/factories}/index.d.ts +0 -0
  253. /package/dist/{factories → cjs/factories}/index.js +0 -0
  254. /package/dist/{factories → cjs/factories}/ingestion-factory.d.ts +0 -0
  255. /package/dist/{factories → cjs/factories}/ingestion-factory.js +0 -0
  256. /package/dist/{factories → cjs/factories}/search-factory.d.ts +0 -0
  257. /package/dist/{factories → cjs/factories}/search-factory.js +0 -0
  258. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  259. /package/dist/{index.js → cjs/index.js} +0 -0
  260. /package/dist/{indexer.d.ts → cjs/indexer.d.ts} +0 -0
  261. /package/dist/{indexer.js → cjs/indexer.js} +0 -0
  262. /package/dist/{ingestion.d.ts → cjs/ingestion.d.ts} +0 -0
  263. /package/dist/{ingestion.js → cjs/ingestion.js} +0 -0
  264. /package/dist/{mcp-server.d.ts → cjs/mcp-server.d.ts} +0 -0
  265. /package/dist/{mcp-server.js → cjs/mcp-server.js} +0 -0
  266. /package/dist/{multimodal → cjs/multimodal}/clip-embedder.d.ts +0 -0
  267. /package/dist/{multimodal → cjs/multimodal}/index.d.ts +0 -0
  268. /package/dist/{multimodal → cjs/multimodal}/index.js +0 -0
  269. /package/dist/{preprocess.d.ts → cjs/preprocess.d.ts} +0 -0
  270. /package/dist/{preprocess.js → cjs/preprocess.js} +0 -0
  271. /package/dist/{preprocessors → cjs/preprocessors}/index.d.ts +0 -0
  272. /package/dist/{preprocessors → cjs/preprocessors}/index.js +0 -0
  273. /package/dist/{preprocessors → cjs/preprocessors}/mdx.d.ts +0 -0
  274. /package/dist/{preprocessors → cjs/preprocessors}/mdx.js +0 -0
  275. /package/dist/{preprocessors → cjs/preprocessors}/mermaid.d.ts +0 -0
  276. /package/dist/{preprocessors → cjs/preprocessors}/mermaid.js +0 -0
  277. /package/dist/{preprocessors → cjs/preprocessors}/registry.d.ts +0 -0
  278. /package/dist/{preprocessors → cjs/preprocessors}/registry.js +0 -0
  279. /package/dist/{run-error-recovery-tests.d.ts → cjs/run-error-recovery-tests.d.ts} +0 -0
  280. /package/dist/{run-error-recovery-tests.js → cjs/run-error-recovery-tests.js} +0 -0
  281. /package/dist/{search-standalone.d.ts → cjs/search-standalone.d.ts} +0 -0
  282. /package/dist/{search-standalone.js → cjs/search-standalone.js} +0 -0
  283. /package/dist/{search.d.ts → cjs/search.d.ts} +0 -0
  284. /package/dist/{search.js → cjs/search.js} +0 -0
  285. /package/dist/{test-utils.d.ts → cjs/test-utils.d.ts} +0 -0
  286. /package/dist/{test-utils.js → cjs/test-utils.js} +0 -0
  287. /package/dist/{text → cjs/text}/chunker.d.ts +0 -0
  288. /package/dist/{text → cjs/text}/chunker.js +0 -0
  289. /package/dist/{text → cjs/text}/embedder.d.ts +0 -0
  290. /package/dist/{text → cjs/text}/embedder.js +0 -0
  291. /package/dist/{text → cjs/text}/index.d.ts +0 -0
  292. /package/dist/{text → cjs/text}/index.js +0 -0
  293. /package/dist/{text → cjs/text}/preprocessors/index.d.ts +0 -0
  294. /package/dist/{text → cjs/text}/preprocessors/index.js +0 -0
  295. /package/dist/{text → cjs/text}/preprocessors/mdx.d.ts +0 -0
  296. /package/dist/{text → cjs/text}/preprocessors/mdx.js +0 -0
  297. /package/dist/{text → cjs/text}/preprocessors/mermaid.d.ts +0 -0
  298. /package/dist/{text → cjs/text}/preprocessors/mermaid.js +0 -0
  299. /package/dist/{text → cjs/text}/preprocessors/registry.d.ts +0 -0
  300. /package/dist/{text → cjs/text}/preprocessors/registry.js +0 -0
  301. /package/dist/{text → cjs/text}/reranker.d.ts +0 -0
  302. /package/dist/{text → cjs/text}/reranker.js +0 -0
  303. /package/dist/{text → cjs/text}/sentence-transformer-embedder.d.ts +0 -0
  304. /package/dist/{text → cjs/text}/sentence-transformer-embedder.js +0 -0
  305. /package/dist/{text → cjs/text}/tokenizer.d.ts +0 -0
  306. /package/dist/{text → cjs/text}/tokenizer.js +0 -0
  307. /package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
  308. /package/dist/{types.js → cjs/types.js} +0 -0
  309. /package/dist/{utils → cjs/utils}/vector-math.d.ts +0 -0
  310. /package/dist/{utils → cjs/utils}/vector-math.js +0 -0
@@ -0,0 +1,340 @@
1
+ /**
2
+ * TEXT IMPLEMENTATION — Sentence Transformer Embedder Implementation
3
+ * Implements UniversalEmbedder interface for sentence-transformer models
4
+ * Adapts existing text embedding logic to the universal interface
5
+ */
6
+ // Ensure DOM polyfills are set up before any other imports
7
+ import '../dom-polyfills.js';
8
+ import { BaseUniversalEmbedder } from '../core/abstract-embedder.js';
9
+ import { EmbeddingEngine } from './embedder.js';
10
+ import { getResourceManager } from '../core/resource-manager.js';
11
+ // =============================================================================
12
+ // SENTENCE TRANSFORMER EMBEDDER IMPLEMENTATION
13
+ // =============================================================================
14
+ /**
15
+ * Sentence transformer embedder implementation
16
+ * Supports sentence-transformers/all-MiniLM-L6-v2 and Xenova/all-mpnet-base-v2
17
+ * Ensures consistent EmbeddingResult format with contentType='text'
18
+ * Adapts existing EmbeddingEngine to UniversalEmbedder interface
19
+ */
20
+ export class SentenceTransformerEmbedder extends BaseUniversalEmbedder {
21
+ embeddingEngine = null;
22
+ resourceManager = getResourceManager();
23
+ embedderResourceId;
24
+ engineResourceId;
25
+ constructor(modelName, options = {}) {
26
+ super(modelName, options);
27
+ // Register this embedder with the resource manager
28
+ this.embedderResourceId = this.resourceManager.registerEmbedder(this);
29
+ }
30
+ // =============================================================================
31
+ // MODEL LIFECYCLE METHODS
32
+ // =============================================================================
33
+ /**
34
+ * Load the sentence transformer model using existing EmbeddingEngine
35
+ */
36
+ async loadModel() {
37
+ // Check if already loaded and engine is ready
38
+ if (this._isLoaded && this.embeddingEngine?.isLoaded()) {
39
+ return;
40
+ }
41
+ try {
42
+ this.logModelLoading('Loading sentence transformer model');
43
+ // Create EmbeddingEngine if not exists
44
+ if (!this.embeddingEngine) {
45
+ this.embeddingEngine = new EmbeddingEngine(this.modelName, this.options.maxBatchSize || this._modelInfo.capabilities.maxBatchSize || 8);
46
+ }
47
+ // Load the model using the existing engine (only if not already loaded)
48
+ if (!this.embeddingEngine.isLoaded()) {
49
+ await this.embeddingEngine.loadModel();
50
+ }
51
+ // Register the embedding engine with resource manager if not already registered
52
+ if (!this.engineResourceId) {
53
+ this.engineResourceId = this.resourceManager.registerModel(this.embeddingEngine, this.modelName, 'sentence-transformer');
54
+ }
55
+ // Synchronize loading state
56
+ this._isLoaded = this.embeddingEngine.isLoaded();
57
+ if (this._isLoaded) {
58
+ this.logModelLoading('Model loaded successfully');
59
+ }
60
+ else {
61
+ throw new Error('Model loading failed - engine reports not loaded');
62
+ }
63
+ }
64
+ catch (error) {
65
+ // Reset state on failure
66
+ this._isLoaded = false;
67
+ const enhancedError = this.handleLoadingError(error);
68
+ throw enhancedError;
69
+ }
70
+ }
71
+ /**
72
+ * Clean up model resources with comprehensive disposal
73
+ */
74
+ async cleanup() {
75
+ let cleanupErrors = [];
76
+ try {
77
+ // Clean up embedding engine resources
78
+ if (this.embeddingEngine) {
79
+ try {
80
+ // Use resource manager for proper cleanup
81
+ if (this.engineResourceId) {
82
+ await this.resourceManager.cleanupResource(this.engineResourceId);
83
+ this.engineResourceId = undefined;
84
+ }
85
+ // Clear the reference (EmbeddingEngine doesn't have cleanup methods)
86
+ this.embeddingEngine = null;
87
+ this.logModelLoading('Sentence transformer embedding engine disposed');
88
+ }
89
+ catch (error) {
90
+ const errorMsg = `Failed to dispose embedding engine: ${error instanceof Error ? error.message : 'Unknown error'}`;
91
+ cleanupErrors.push(errorMsg);
92
+ console.warn(errorMsg);
93
+ // Force clear reference even if disposal failed
94
+ this.embeddingEngine = null;
95
+ }
96
+ }
97
+ // Clear embedder resource registration (don't call resource manager to avoid circular cleanup)
98
+ if (this.embedderResourceId) {
99
+ this.embedderResourceId = undefined;
100
+ }
101
+ }
102
+ finally {
103
+ // Always clear loaded state regardless of cleanup success
104
+ this._isLoaded = false;
105
+ // Remove from lazy loading cache to ensure fresh instances
106
+ try {
107
+ const { LazyEmbedderLoader } = await import('../core/lazy-dependency-loader.js');
108
+ LazyEmbedderLoader.removeEmbedderFromCache(this.modelName, 'sentence-transformer');
109
+ }
110
+ catch (error) {
111
+ console.warn('Failed to remove embedder from cache:', error);
112
+ }
113
+ // Force garbage collection for sentence transformer models
114
+ if (global.gc) {
115
+ global.gc();
116
+ this.logModelLoading('Forced garbage collection after sentence transformer cleanup');
117
+ }
118
+ // Log cleanup completion
119
+ if (cleanupErrors.length === 0) {
120
+ this.logModelLoading('Sentence transformer resources cleaned up successfully');
121
+ }
122
+ else {
123
+ this.logModelLoading(`Sentence transformer cleanup completed with ${cleanupErrors.length} errors`);
124
+ // Don't throw errors during cleanup - just log them
125
+ }
126
+ }
127
+ }
128
+ // =============================================================================
129
+ // EMBEDDING METHODS
130
+ // =============================================================================
131
+ /**
132
+ * Embed text using the existing EmbeddingEngine
133
+ */
134
+ async embedText(text) {
135
+ // Validate input first, before checking if model is loaded
136
+ if (!text || text.trim().length === 0) {
137
+ throw new Error('Text input cannot be empty');
138
+ }
139
+ this.ensureLoaded();
140
+ // Update resource usage tracking
141
+ if (this.embedderResourceId) {
142
+ this.resourceManager.updateResourceUsage(this.embedderResourceId);
143
+ }
144
+ if (this.engineResourceId) {
145
+ this.resourceManager.updateResourceUsage(this.engineResourceId);
146
+ }
147
+ if (!this.embeddingEngine) {
148
+ throw new Error('Embedding engine not initialized');
149
+ }
150
+ try {
151
+ // Validate and truncate text if necessary
152
+ this.validateTextLength(text);
153
+ const processedText = this.truncateText(text.trim());
154
+ // Use the existing EmbeddingEngine to generate embeddings
155
+ const result = await this.embeddingEngine.embedSingle(processedText);
156
+ // Validate embedding dimensions
157
+ if (result.vector.length !== this.dimensions) {
158
+ throw new Error(`Embedding dimension mismatch: expected ${this.dimensions}, got ${result.vector.length}`);
159
+ }
160
+ // Ensure contentType is always present for UniversalEmbedder interface
161
+ return {
162
+ ...result,
163
+ contentType: 'text'
164
+ };
165
+ }
166
+ catch (error) {
167
+ if (error instanceof Error) {
168
+ throw new Error(`Failed to embed text: ${error.message}`);
169
+ }
170
+ throw new Error('Failed to embed text: Unknown error');
171
+ }
172
+ }
173
+ // =============================================================================
174
+ // BATCH PROCESSING OPTIMIZATION
175
+ // =============================================================================
176
+ /**
177
+ * Optimized batch processing using existing EmbeddingEngine and BatchProcessingOptimizer
178
+ * Overrides the base implementation for better performance with progress reporting
179
+ */
180
+ async processBatch(batch) {
181
+ this.ensureLoaded();
182
+ if (!this.embeddingEngine) {
183
+ throw new Error('Embedding engine not initialized');
184
+ }
185
+ // Filter for text content only (sentence transformers don't support other types)
186
+ const textItems = batch.filter(item => item.contentType === 'text');
187
+ if (textItems.length === 0) {
188
+ return [];
189
+ }
190
+ // For small batches, use the existing EmbeddingEngine directly
191
+ if (textItems.length <= 10) {
192
+ try {
193
+ // Prepare texts for batch processing
194
+ const texts = textItems.map(item => this.truncateText(item.content.trim()));
195
+ // Use the existing EmbeddingEngine's batch processing
196
+ const results = await this.embeddingEngine.embedBatch(texts);
197
+ // Validate dimensions for all results
198
+ for (let i = 0; i < results.length; i++) {
199
+ if (results[i].vector.length !== this.dimensions) {
200
+ throw new Error(`Embedding dimension mismatch for item ${i}: expected ${this.dimensions}, got ${results[i].vector.length}`);
201
+ }
202
+ }
203
+ return results;
204
+ }
205
+ catch (error) {
206
+ // Fall back to individual processing if batch fails
207
+ console.warn(`Batch processing failed, falling back to individual processing: ${error}`);
208
+ return super.processBatch(batch);
209
+ }
210
+ }
211
+ // For larger batches, use the BatchProcessingOptimizer
212
+ try {
213
+ const { createTextBatchProcessor } = await import('../core/batch-processing-optimizer.js');
214
+ const batchProcessor = createTextBatchProcessor();
215
+ // Convert to EmbeddingBatchItem format
216
+ const batchItems = textItems.map(item => ({
217
+ content: this.truncateText(item.content.trim()),
218
+ contentType: item.contentType,
219
+ metadata: item.metadata
220
+ }));
221
+ // Create embed function that uses this embedder
222
+ const embedFunction = async (item) => {
223
+ const result = await this.embeddingEngine.embedSingle(item.content);
224
+ // Validate dimensions
225
+ if (result.vector.length !== this.dimensions) {
226
+ throw new Error(`Embedding dimension mismatch: expected ${this.dimensions}, got ${result.vector.length}`);
227
+ }
228
+ return result;
229
+ };
230
+ // Process with optimization and progress reporting
231
+ const batchResult = await batchProcessor.processBatch(batchItems, embedFunction, (stats) => {
232
+ if (stats.totalItems > 50) { // Only log for larger batches
233
+ console.log(`Text embedding progress: ${stats.processedItems}/${stats.totalItems} (${Math.round((stats.processedItems / stats.totalItems) * 100)}%)`);
234
+ }
235
+ });
236
+ // Log final statistics for large batches
237
+ if (batchResult.stats.totalItems > 50) {
238
+ console.log(`✓ Text embedding complete: ${batchResult.stats.processedItems} processed, ${batchResult.stats.failedItems} failed`);
239
+ console.log(` Processing time: ${Math.round(batchResult.stats.processingTimeMs / 1000)}s, Rate: ${Math.round(batchResult.stats.itemsPerSecond)} items/sec`);
240
+ if (batchResult.stats.peakMemoryUsageMB > 100) {
241
+ console.log(` Peak memory usage: ${batchResult.stats.peakMemoryUsageMB}MB`);
242
+ }
243
+ }
244
+ return batchResult.results;
245
+ }
246
+ catch (error) {
247
+ // Fall back to existing implementation if optimizer fails
248
+ console.warn(`Batch processing optimizer failed, using fallback: ${error}`);
249
+ try {
250
+ const texts = textItems.map(item => this.truncateText(item.content.trim()));
251
+ const results = await this.embeddingEngine.embedBatch(texts);
252
+ for (let i = 0; i < results.length; i++) {
253
+ if (results[i].vector.length !== this.dimensions) {
254
+ throw new Error(`Embedding dimension mismatch for item ${i}: expected ${this.dimensions}, got ${results[i].vector.length}`);
255
+ }
256
+ }
257
+ return results;
258
+ }
259
+ catch (fallbackError) {
260
+ console.warn(`Fallback batch processing failed, using individual processing: ${fallbackError}`);
261
+ return super.processBatch(batch);
262
+ }
263
+ }
264
+ }
265
+ // =============================================================================
266
+ // UTILITY METHODS
267
+ // =============================================================================
268
+ /**
269
+ * Get model-specific information
270
+ */
271
+ getModelInfo() {
272
+ const baseInfo = super.getModelInfo();
273
+ return {
274
+ ...baseInfo,
275
+ capabilities: {
276
+ ...baseInfo.capabilities,
277
+ // Sentence transformers are optimized for text similarity
278
+ supportsSemanticSimilarity: true,
279
+ supportsTextClassification: true,
280
+ supportsTextClustering: true,
281
+ recommendedUseCase: 'text similarity and semantic search'
282
+ }
283
+ };
284
+ }
285
+ /**
286
+ * Check if the model is suitable for a specific task
287
+ */
288
+ isSuitableForTask(task) {
289
+ // Sentence transformers are suitable for all text-based tasks
290
+ const supportedTasks = ['similarity', 'classification', 'clustering', 'retrieval'];
291
+ return supportedTasks.includes(task);
292
+ }
293
+ // =============================================================================
294
+ // ADDITIONAL METHODS FOR COMPATIBILITY WITH EXISTING SYSTEM
295
+ // =============================================================================
296
+ /**
297
+ * Embed document batch using existing EmbeddingEngine's optimized method
298
+ * This method provides compatibility with the existing document ingestion pipeline
299
+ */
300
+ async embedDocumentBatch(chunks) {
301
+ this.ensureLoaded();
302
+ if (!this.embeddingEngine) {
303
+ throw new Error('Embedding engine not initialized');
304
+ }
305
+ // Use the existing EmbeddingEngine's document batch processing
306
+ // which includes progress logging and error handling
307
+ return await this.embeddingEngine.embedDocumentBatch(chunks);
308
+ }
309
+ /**
310
+ * Get the model version from the underlying EmbeddingEngine
311
+ */
312
+ getModelVersion() {
313
+ if (!this.embeddingEngine) {
314
+ throw new Error('Embedding engine not initialized');
315
+ }
316
+ return this.embeddingEngine.getModelVersion();
317
+ }
318
+ /**
319
+ * Get the batch size from the underlying EmbeddingEngine
320
+ */
321
+ getBatchSize() {
322
+ if (!this.embeddingEngine) {
323
+ return this.options.maxBatchSize || this._modelInfo.capabilities.maxBatchSize || 8;
324
+ }
325
+ return this.embeddingEngine.getBatchSize();
326
+ }
327
+ /**
328
+ * Check if the underlying EmbeddingEngine is loaded
329
+ */
330
+ isEngineLoaded() {
331
+ return this.embeddingEngine ? this.embeddingEngine.isLoaded() : false;
332
+ }
333
+ /**
334
+ * Override isLoaded to check both internal state and engine state
335
+ */
336
+ isLoaded() {
337
+ return this._isLoaded && this.isEngineLoaded();
338
+ }
339
+ }
340
+ //# sourceMappingURL=sentence-transformer-embedder.js.map
@@ -0,0 +1,22 @@
1
+ import '../dom-polyfills.js';
2
+ import type { PreTrainedTokenizer } from '@huggingface/transformers';
3
+ /**
4
+ * Count tokens in a text string using the MiniLM-L6-v2 tokenizer
5
+ * This ensures token counts match exactly with the embedding model
6
+ *
7
+ * @param text - Text to count tokens for
8
+ * @returns Number of tokens in the text
9
+ * @throws {Error} If tokenizer fails to initialize or tokenize
10
+ */
11
+ export declare function countTokens(text: string): Promise<number>;
12
+ /**
13
+ * Get the tokenizer instance (for testing purposes)
14
+ * @internal
15
+ */
16
+ export declare function getTokenizer(): Promise<PreTrainedTokenizer>;
17
+ /**
18
+ * Reset the tokenizer instance (for testing purposes)
19
+ * @internal
20
+ */
21
+ export declare function resetTokenizer(): void;
22
+ //# sourceMappingURL=tokenizer.d.ts.map
@@ -0,0 +1,64 @@
1
+ import '../dom-polyfills.js';
2
+ /**
3
+ * Tokenizer instance for consistent token counting
4
+ * Uses the same tokenizer as the embedding model (MiniLM-L6-v2)
5
+ */
6
+ let tokenizer = null;
7
+ /**
8
+ * Initialize the tokenizer with the MiniLM-L6-v2 model
9
+ * This ensures token counting matches the embedding model exactly
10
+ */
11
+ async function initializeTokenizer() {
12
+ if (tokenizer) {
13
+ return tokenizer;
14
+ }
15
+ try {
16
+ // Ensure DOM polyfills are set up before importing transformers
17
+ if (typeof globalThis.self === 'undefined') {
18
+ globalThis.self = globalThis;
19
+ }
20
+ // Use the same model as embeddings for consistent token counting using dynamic import
21
+ const { AutoTokenizer } = await import('@huggingface/transformers');
22
+ tokenizer = await AutoTokenizer.from_pretrained('sentence-transformers/all-MiniLM-L6-v2');
23
+ return tokenizer;
24
+ }
25
+ catch (error) {
26
+ throw new Error(`Failed to initialize tokenizer: ${error instanceof Error ? error.message : 'Unknown error'}`);
27
+ }
28
+ }
29
+ /**
30
+ * Count tokens in a text string using the MiniLM-L6-v2 tokenizer
31
+ * This ensures token counts match exactly with the embedding model
32
+ *
33
+ * @param text - Text to count tokens for
34
+ * @returns Number of tokens in the text
35
+ * @throws {Error} If tokenizer fails to initialize or tokenize
36
+ */
37
+ export async function countTokens(text) {
38
+ if (!text || typeof text !== 'string') {
39
+ return 0;
40
+ }
41
+ try {
42
+ const tokenizerInstance = await initializeTokenizer();
43
+ const tokens = await tokenizerInstance.encode(text);
44
+ return tokens.length;
45
+ }
46
+ catch (error) {
47
+ throw new Error(`Failed to count tokens: ${error instanceof Error ? error.message : 'Unknown error'}`);
48
+ }
49
+ }
50
+ /**
51
+ * Get the tokenizer instance (for testing purposes)
52
+ * @internal
53
+ */
54
+ export async function getTokenizer() {
55
+ return await initializeTokenizer();
56
+ }
57
+ /**
58
+ * Reset the tokenizer instance (for testing purposes)
59
+ * @internal
60
+ */
61
+ export function resetTokenizer() {
62
+ tokenizer = null;
63
+ }
64
+ //# sourceMappingURL=tokenizer.js.map
@@ -0,0 +1,83 @@
1
+ export interface SearchResult {
2
+ text: string;
3
+ score: number;
4
+ document: {
5
+ id: number;
6
+ source: string;
7
+ title: string;
8
+ };
9
+ }
10
+ export interface SearchOptions {
11
+ top_k?: number;
12
+ rerank?: boolean;
13
+ }
14
+ export interface Chunk {
15
+ text: string;
16
+ chunk_index: number;
17
+ }
18
+ export interface Document {
19
+ source: string;
20
+ title: string;
21
+ content: string;
22
+ metadata?: Record<string, any>;
23
+ }
24
+ export interface EmbeddingResult {
25
+ embedding_id: string;
26
+ vector: Float32Array;
27
+ contentType?: string;
28
+ metadata?: Record<string, any>;
29
+ }
30
+ export interface EnhancedEmbeddingResult extends EmbeddingResult {
31
+ contentType: string;
32
+ metadata?: Record<string, any>;
33
+ }
34
+ export interface Preprocessor {
35
+ appliesTo(language: string): boolean;
36
+ process(content: string, options: PreprocessorOptions): string;
37
+ }
38
+ export interface PreprocessorOptions {
39
+ mode: 'strip' | 'keep' | 'placeholder' | 'extract';
40
+ [key: string]: any;
41
+ }
42
+ export interface PreprocessingConfig {
43
+ mode: 'strict' | 'balanced' | 'rich';
44
+ overrides?: {
45
+ mdx?: 'strip' | 'keep' | 'placeholder';
46
+ mermaid?: 'strip' | 'extract' | 'placeholder';
47
+ code?: 'strip' | 'keep' | 'placeholder';
48
+ };
49
+ }
50
+ export type ModeType = 'text' | 'multimodal';
51
+ export type ModelType = 'sentence-transformer' | 'clip';
52
+ export type { RerankingStrategyType, RerankingConfig } from './core/reranking-config.js';
53
+ import type { RerankingStrategyType, RerankingConfig } from './core/reranking-config.js';
54
+ export interface SystemInfo {
55
+ mode: ModeType;
56
+ modelName: string;
57
+ modelType: ModelType;
58
+ modelDimensions: number;
59
+ modelVersion: string;
60
+ supportedContentTypes: string[];
61
+ rerankingStrategy: RerankingStrategyType;
62
+ rerankingModel?: string;
63
+ rerankingConfig?: RerankingConfig;
64
+ createdAt: Date;
65
+ updatedAt: Date;
66
+ }
67
+ export interface SystemInfoRow {
68
+ id: number;
69
+ mode: string;
70
+ model_name: string;
71
+ model_type: string;
72
+ model_dimensions: number;
73
+ model_version: string;
74
+ supported_content_types: string;
75
+ reranking_strategy: string;
76
+ reranking_model?: string;
77
+ reranking_config?: string;
78
+ created_at: string;
79
+ updated_at: string;
80
+ }
81
+ export type { DatabaseConnection, ContentChunk } from './core/db.js';
82
+ export type { UniversalEmbedder, ModelInfo, ModelCapabilities, ModelRequirements, EmbeddingBatchItem, ModelValidationResult, CreateEmbedderFunction, EmbedderCreationOptions, ContentType } from './core/universal-embedder.js';
83
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,3 @@
1
+ // Type definitions for rag-lite-ts
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Vector mathematics utilities for embedding operations
3
+ */
4
+ /**
5
+ * Compute cosine similarity between two vectors
6
+ * @param a - First vector (Float32Array or number array)
7
+ * @param b - Second vector (Float32Array or number array)
8
+ * @returns Cosine similarity score between -1 and 1
9
+ */
10
+ export declare function cosineSimilarity(a: Float32Array | number[], b: Float32Array | number[]): number;
11
+ /**
12
+ * Compute Euclidean distance between two vectors
13
+ * @param a - First vector
14
+ * @param b - Second vector
15
+ * @returns Euclidean distance
16
+ */
17
+ export declare function euclideanDistance(a: Float32Array | number[], b: Float32Array | number[]): number;
18
+ /**
19
+ * Compute dot product between two vectors
20
+ * @param a - First vector
21
+ * @param b - Second vector
22
+ * @returns Dot product
23
+ */
24
+ export declare function dotProduct(a: Float32Array | number[], b: Float32Array | number[]): number;
25
+ /**
26
+ * Compute vector magnitude (L2 norm)
27
+ * @param vector - Input vector
28
+ * @returns Vector magnitude
29
+ */
30
+ export declare function magnitude(vector: Float32Array | number[]): number;
31
+ //# sourceMappingURL=vector-math.d.ts.map
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Vector mathematics utilities for embedding operations
3
+ */
4
+ /**
5
+ * Compute cosine similarity between two vectors
6
+ * @param a - First vector (Float32Array or number array)
7
+ * @param b - Second vector (Float32Array or number array)
8
+ * @returns Cosine similarity score between -1 and 1
9
+ */
10
+ export function cosineSimilarity(a, b) {
11
+ if (a.length !== b.length) {
12
+ throw new Error('Vectors must have the same length');
13
+ }
14
+ let dotProduct = 0;
15
+ let normA = 0;
16
+ let normB = 0;
17
+ for (let i = 0; i < a.length; i++) {
18
+ dotProduct += a[i] * b[i];
19
+ normA += a[i] * a[i];
20
+ normB += b[i] * b[i];
21
+ }
22
+ const magnitude = Math.sqrt(normA) * Math.sqrt(normB);
23
+ return magnitude === 0 ? 0 : dotProduct / magnitude;
24
+ }
25
+ /**
26
+ * Compute Euclidean distance between two vectors
27
+ * @param a - First vector
28
+ * @param b - Second vector
29
+ * @returns Euclidean distance
30
+ */
31
+ export function euclideanDistance(a, b) {
32
+ if (a.length !== b.length) {
33
+ throw new Error('Vectors must have the same length');
34
+ }
35
+ let sum = 0;
36
+ for (let i = 0; i < a.length; i++) {
37
+ const diff = a[i] - b[i];
38
+ sum += diff * diff;
39
+ }
40
+ return Math.sqrt(sum);
41
+ }
42
+ /**
43
+ * Compute dot product between two vectors
44
+ * @param a - First vector
45
+ * @param b - Second vector
46
+ * @returns Dot product
47
+ */
48
+ export function dotProduct(a, b) {
49
+ if (a.length !== b.length) {
50
+ throw new Error('Vectors must have the same length');
51
+ }
52
+ let product = 0;
53
+ for (let i = 0; i < a.length; i++) {
54
+ product += a[i] * b[i];
55
+ }
56
+ return product;
57
+ }
58
+ /**
59
+ * Compute vector magnitude (L2 norm)
60
+ * @param vector - Input vector
61
+ * @returns Vector magnitude
62
+ */
63
+ export function magnitude(vector) {
64
+ let sum = 0;
65
+ for (let i = 0; i < vector.length; i++) {
66
+ sum += vector[i] * vector[i];
67
+ }
68
+ return Math.sqrt(sum);
69
+ }
70
+ //# sourceMappingURL=vector-math.js.map
package/package.json CHANGED
@@ -1,33 +1,51 @@
1
1
  {
2
2
  "name": "rag-lite-ts",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "Local-first TypeScript retrieval engine with Chameleon Multimodal Architecture for semantic search over text and image content",
5
5
  "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
6
+ "main": "./dist/cjs/index.js",
7
+ "types": "./dist/cjs/index.d.ts",
8
8
  "bin": {
9
- "raglite": "./dist/cli.js",
10
- "raglite-mcp": "./dist/mcp-server.js"
9
+ "raglite": "./dist/esm/cli.js",
10
+ "raglite-mcp": "./dist/esm/mcp-server.js"
11
11
  },
12
12
  "exports": {
13
13
  ".": {
14
- "import": "./dist/index.js",
15
- "types": "./dist/index.d.ts"
14
+ "import": {
15
+ "types": "./dist/esm/index.d.ts",
16
+ "default": "./dist/esm/index.js"
17
+ },
18
+ "require": {
19
+ "types": "./dist/cjs/index.d.ts",
20
+ "default": "./dist/cjs/index.js"
21
+ },
22
+ "types": "./dist/esm/index.d.ts"
16
23
  },
17
24
  "./mcp": {
18
- "import": "./dist/mcp-server.js",
19
- "types": "./dist/mcp-server.d.ts"
25
+ "import": {
26
+ "types": "./dist/esm/mcp-server.d.ts",
27
+ "default": "./dist/esm/mcp-server.js"
28
+ },
29
+ "require": {
30
+ "types": "./dist/cjs/mcp-server.d.ts",
31
+ "default": "./dist/cjs/mcp-server.js"
32
+ },
33
+ "types": "./dist/esm/mcp-server.d.ts"
20
34
  }
21
35
  },
22
36
  "files": [
23
- "dist/**/*.js",
24
- "dist/**/*.d.ts",
37
+ "dist/esm/**/*.js",
38
+ "dist/cjs/**/*.js",
39
+ "dist/esm/**/*.d.ts",
40
+ "dist/cjs/**/*.d.ts",
25
41
  "!dist/**/*.map",
26
42
  "README.md",
27
43
  "LICENSE"
28
44
  ],
29
45
  "scripts": {
30
- "build": "tsc",
46
+ "build": "npm run build:esm && npm run build:cjs",
47
+ "build:esm": "tsc -p tsconfig.esm.json",
48
+ "build:cjs": "tsc -p tsconfig.cjs.json",
31
49
  "build:test": "tsc --project tsconfig.test.json",
32
50
  "clean": "rimraf dist",
33
51
  "dev": "tsc --watch",