mcard-js 2.1.12 → 2.1.13

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 (362) hide show
  1. package/README.md +14 -0
  2. package/dist/hash/HashValidator.d.ts +14 -0
  3. package/dist/hash/HashValidator.d.ts.map +1 -0
  4. package/dist/hash/HashValidator.js +57 -0
  5. package/dist/hash/HashValidator.js.map +1 -0
  6. package/dist/index.d.ts +29 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +38 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/model/CardCollection.d.ts +92 -0
  11. package/dist/model/CardCollection.d.ts.map +1 -0
  12. package/dist/model/CardCollection.js +217 -0
  13. package/dist/model/CardCollection.js.map +1 -0
  14. package/dist/model/ContentTypeInterpreter.d.ts +23 -0
  15. package/dist/model/ContentTypeInterpreter.d.ts.map +1 -0
  16. package/dist/model/ContentTypeInterpreter.js +140 -0
  17. package/dist/model/ContentTypeInterpreter.js.map +1 -0
  18. package/dist/model/EventProducer.d.ts +10 -0
  19. package/dist/model/EventProducer.d.ts.map +1 -0
  20. package/dist/model/EventProducer.js +46 -0
  21. package/dist/model/EventProducer.js.map +1 -0
  22. package/dist/model/GTime.d.ts +44 -0
  23. package/dist/model/GTime.d.ts.map +1 -0
  24. package/dist/model/GTime.js +91 -0
  25. package/dist/model/GTime.js.map +1 -0
  26. package/dist/model/Handle.d.ts +37 -0
  27. package/dist/model/Handle.d.ts.map +1 -0
  28. package/dist/model/Handle.js +90 -0
  29. package/dist/model/Handle.js.map +1 -0
  30. package/dist/model/MCard.d.ts +43 -0
  31. package/dist/model/MCard.d.ts.map +1 -0
  32. package/dist/model/MCard.js +76 -0
  33. package/dist/model/MCard.js.map +1 -0
  34. package/dist/model/constants.d.ts +45 -0
  35. package/dist/model/constants.d.ts.map +1 -0
  36. package/dist/model/constants.js +27 -0
  37. package/dist/model/constants.js.map +1 -0
  38. package/dist/model/detectors/BaseDetector.d.ts +26 -0
  39. package/dist/model/detectors/BaseDetector.d.ts.map +1 -0
  40. package/dist/model/detectors/BaseDetector.js +5 -0
  41. package/dist/model/detectors/BaseDetector.js.map +1 -0
  42. package/dist/model/detectors/BinaryDetector.d.ts +12 -0
  43. package/dist/model/detectors/BinaryDetector.d.ts.map +1 -0
  44. package/dist/model/detectors/BinaryDetector.js +82 -0
  45. package/dist/model/detectors/BinaryDetector.js.map +1 -0
  46. package/dist/model/detectors/ContentTypeInterpreter.d.ts +11 -0
  47. package/dist/model/detectors/ContentTypeInterpreter.d.ts.map +1 -0
  48. package/dist/model/detectors/ContentTypeInterpreter.js +51 -0
  49. package/dist/model/detectors/ContentTypeInterpreter.js.map +1 -0
  50. package/dist/model/detectors/DataFormatDetectors.d.ts +29 -0
  51. package/dist/model/detectors/DataFormatDetectors.d.ts.map +1 -0
  52. package/dist/model/detectors/DataFormatDetectors.js +223 -0
  53. package/dist/model/detectors/DataFormatDetectors.js.map +1 -0
  54. package/dist/model/detectors/LanguageDetector.d.ts +11 -0
  55. package/dist/model/detectors/LanguageDetector.d.ts.map +1 -0
  56. package/dist/model/detectors/LanguageDetector.js +148 -0
  57. package/dist/model/detectors/LanguageDetector.js.map +1 -0
  58. package/dist/model/detectors/MarkupDetectors.d.ts +22 -0
  59. package/dist/model/detectors/MarkupDetectors.d.ts.map +1 -0
  60. package/dist/model/detectors/MarkupDetectors.js +132 -0
  61. package/dist/model/detectors/MarkupDetectors.js.map +1 -0
  62. package/dist/model/detectors/OBJDetector.d.ts +8 -0
  63. package/dist/model/detectors/OBJDetector.d.ts.map +1 -0
  64. package/dist/model/detectors/OBJDetector.js +48 -0
  65. package/dist/model/detectors/OBJDetector.js.map +1 -0
  66. package/dist/model/detectors/registry.d.ts +13 -0
  67. package/dist/model/detectors/registry.d.ts.map +1 -0
  68. package/dist/model/detectors/registry.js +67 -0
  69. package/dist/model/detectors/registry.js.map +1 -0
  70. package/dist/monads/Either.d.ts +51 -0
  71. package/dist/monads/Either.d.ts.map +1 -0
  72. package/dist/monads/Either.js +82 -0
  73. package/dist/monads/Either.js.map +1 -0
  74. package/dist/monads/IO.d.ts +38 -0
  75. package/dist/monads/IO.d.ts.map +1 -0
  76. package/dist/monads/IO.js +66 -0
  77. package/dist/monads/IO.js.map +1 -0
  78. package/dist/monads/Maybe.d.ts +45 -0
  79. package/dist/monads/Maybe.d.ts.map +1 -0
  80. package/dist/monads/Maybe.js +73 -0
  81. package/dist/monads/Maybe.js.map +1 -0
  82. package/dist/monads/Reader.d.ts +29 -0
  83. package/dist/monads/Reader.d.ts.map +1 -0
  84. package/dist/monads/Reader.js +44 -0
  85. package/dist/monads/Reader.js.map +1 -0
  86. package/dist/monads/State.d.ts +33 -0
  87. package/dist/monads/State.d.ts.map +1 -0
  88. package/dist/monads/State.js +50 -0
  89. package/dist/monads/State.js.map +1 -0
  90. package/dist/monads/Writer.d.ts +29 -0
  91. package/dist/monads/Writer.d.ts.map +1 -0
  92. package/dist/monads/Writer.js +46 -0
  93. package/dist/monads/Writer.js.map +1 -0
  94. package/dist/ptr/FaroSidecar.d.ts +56 -0
  95. package/dist/ptr/FaroSidecar.d.ts.map +1 -0
  96. package/dist/ptr/FaroSidecar.js +102 -0
  97. package/dist/ptr/FaroSidecar.js.map +1 -0
  98. package/dist/ptr/LensProtocol.d.ts +84 -0
  99. package/dist/ptr/LensProtocol.d.ts.map +1 -0
  100. package/dist/ptr/LensProtocol.js +98 -0
  101. package/dist/ptr/LensProtocol.js.map +1 -0
  102. package/dist/ptr/SandboxWorker.d.ts +54 -0
  103. package/dist/ptr/SandboxWorker.d.ts.map +1 -0
  104. package/dist/ptr/SandboxWorker.js +172 -0
  105. package/dist/ptr/SandboxWorker.js.map +1 -0
  106. package/dist/ptr/common_types.d.ts +39 -0
  107. package/dist/ptr/common_types.d.ts.map +1 -0
  108. package/dist/ptr/common_types.js +12 -0
  109. package/dist/ptr/common_types.js.map +1 -0
  110. package/dist/ptr/lambda/AlphaConversion.d.ts +42 -0
  111. package/dist/ptr/lambda/AlphaConversion.d.ts.map +1 -0
  112. package/dist/ptr/lambda/AlphaConversion.js +244 -0
  113. package/dist/ptr/lambda/AlphaConversion.js.map +1 -0
  114. package/dist/ptr/lambda/BetaReduction.d.ts +73 -0
  115. package/dist/ptr/lambda/BetaReduction.d.ts.map +1 -0
  116. package/dist/ptr/lambda/BetaReduction.js +322 -0
  117. package/dist/ptr/lambda/BetaReduction.js.map +1 -0
  118. package/dist/ptr/lambda/EtaConversion.d.ts +65 -0
  119. package/dist/ptr/lambda/EtaConversion.d.ts.map +1 -0
  120. package/dist/ptr/lambda/EtaConversion.js +228 -0
  121. package/dist/ptr/lambda/EtaConversion.js.map +1 -0
  122. package/dist/ptr/lambda/FreeVariables.d.ts +44 -0
  123. package/dist/ptr/lambda/FreeVariables.d.ts.map +1 -0
  124. package/dist/ptr/lambda/FreeVariables.js +207 -0
  125. package/dist/ptr/lambda/FreeVariables.js.map +1 -0
  126. package/dist/ptr/lambda/LambdaRuntime.d.ts +80 -0
  127. package/dist/ptr/lambda/LambdaRuntime.d.ts.map +1 -0
  128. package/dist/ptr/lambda/LambdaRuntime.js +433 -0
  129. package/dist/ptr/lambda/LambdaRuntime.js.map +1 -0
  130. package/dist/ptr/lambda/LambdaTerm.d.ts +95 -0
  131. package/dist/ptr/lambda/LambdaTerm.d.ts.map +1 -0
  132. package/dist/ptr/lambda/LambdaTerm.js +159 -0
  133. package/dist/ptr/lambda/LambdaTerm.js.map +1 -0
  134. package/dist/ptr/lambda/index.d.ts +24 -0
  135. package/dist/ptr/lambda/index.d.ts.map +1 -0
  136. package/dist/ptr/lambda/index.js +34 -0
  137. package/dist/ptr/lambda/index.js.map +1 -0
  138. package/dist/ptr/llm/Config.d.ts +57 -0
  139. package/dist/ptr/llm/Config.d.ts.map +1 -0
  140. package/dist/ptr/llm/Config.js +183 -0
  141. package/dist/ptr/llm/Config.js.map +1 -0
  142. package/dist/ptr/llm/LLMRuntime.d.ts +35 -0
  143. package/dist/ptr/llm/LLMRuntime.d.ts.map +1 -0
  144. package/dist/ptr/llm/LLMRuntime.js +176 -0
  145. package/dist/ptr/llm/LLMRuntime.js.map +1 -0
  146. package/dist/ptr/llm/providers/LLMProvider.d.ts +43 -0
  147. package/dist/ptr/llm/providers/LLMProvider.d.ts.map +1 -0
  148. package/dist/ptr/llm/providers/LLMProvider.js +31 -0
  149. package/dist/ptr/llm/providers/LLMProvider.js.map +1 -0
  150. package/dist/ptr/llm/providers/MLCLLMProvider.d.ts +22 -0
  151. package/dist/ptr/llm/providers/MLCLLMProvider.d.ts.map +1 -0
  152. package/dist/ptr/llm/providers/MLCLLMProvider.js +155 -0
  153. package/dist/ptr/llm/providers/MLCLLMProvider.js.map +1 -0
  154. package/dist/ptr/llm/providers/OllamaEmbeddingProvider.d.ts +20 -0
  155. package/dist/ptr/llm/providers/OllamaEmbeddingProvider.d.ts.map +1 -0
  156. package/dist/ptr/llm/providers/OllamaEmbeddingProvider.js +42 -0
  157. package/dist/ptr/llm/providers/OllamaEmbeddingProvider.js.map +1 -0
  158. package/dist/ptr/llm/providers/OllamaProvider.d.ts +21 -0
  159. package/dist/ptr/llm/providers/OllamaProvider.d.ts.map +1 -0
  160. package/dist/ptr/llm/providers/OllamaProvider.js +158 -0
  161. package/dist/ptr/llm/providers/OllamaProvider.js.map +1 -0
  162. package/dist/ptr/llm/providers/WebLLMProvider.d.ts +22 -0
  163. package/dist/ptr/llm/providers/WebLLMProvider.d.ts.map +1 -0
  164. package/dist/ptr/llm/providers/WebLLMProvider.js +151 -0
  165. package/dist/ptr/llm/providers/WebLLMProvider.js.map +1 -0
  166. package/dist/ptr/node/Action.d.ts +426 -0
  167. package/dist/ptr/node/Action.d.ts.map +1 -0
  168. package/dist/ptr/node/Action.js +711 -0
  169. package/dist/ptr/node/Action.js.map +1 -0
  170. package/dist/ptr/node/CLMLoader.d.ts +18 -0
  171. package/dist/ptr/node/CLMLoader.d.ts.map +1 -0
  172. package/dist/ptr/node/CLMLoader.js +18 -0
  173. package/dist/ptr/node/CLMLoader.js.map +1 -0
  174. package/dist/ptr/node/CLMRunner.d.ts +34 -0
  175. package/dist/ptr/node/CLMRunner.d.ts.map +1 -0
  176. package/dist/ptr/node/CLMRunner.js +36 -0
  177. package/dist/ptr/node/CLMRunner.js.map +1 -0
  178. package/dist/ptr/node/FileSystemUtils.d.ts +40 -0
  179. package/dist/ptr/node/FileSystemUtils.d.ts.map +1 -0
  180. package/dist/ptr/node/FileSystemUtils.js +170 -0
  181. package/dist/ptr/node/FileSystemUtils.js.map +1 -0
  182. package/dist/ptr/node/NetworkConfig.d.ts +191 -0
  183. package/dist/ptr/node/NetworkConfig.d.ts.map +1 -0
  184. package/dist/ptr/node/NetworkConfig.js +8 -0
  185. package/dist/ptr/node/NetworkConfig.js.map +1 -0
  186. package/dist/ptr/node/NetworkRuntime.d.ts +38 -0
  187. package/dist/ptr/node/NetworkRuntime.d.ts.map +1 -0
  188. package/dist/ptr/node/NetworkRuntime.js +871 -0
  189. package/dist/ptr/node/NetworkRuntime.js.map +1 -0
  190. package/dist/ptr/node/P2PChatSession.d.ts +53 -0
  191. package/dist/ptr/node/P2PChatSession.d.ts.map +1 -0
  192. package/dist/ptr/node/P2PChatSession.js +154 -0
  193. package/dist/ptr/node/P2PChatSession.js.map +1 -0
  194. package/dist/ptr/node/RuntimeInterface.d.ts +4 -0
  195. package/dist/ptr/node/RuntimeInterface.d.ts.map +1 -0
  196. package/dist/ptr/node/RuntimeInterface.js +2 -0
  197. package/dist/ptr/node/RuntimeInterface.js.map +1 -0
  198. package/dist/ptr/node/Runtimes.d.ts +34 -0
  199. package/dist/ptr/node/Runtimes.d.ts.map +1 -0
  200. package/dist/ptr/node/Runtimes.js +38 -0
  201. package/dist/ptr/node/Runtimes.js.map +1 -0
  202. package/dist/ptr/node/SignalingServer.d.ts +37 -0
  203. package/dist/ptr/node/SignalingServer.d.ts.map +1 -0
  204. package/dist/ptr/node/SignalingServer.js +218 -0
  205. package/dist/ptr/node/SignalingServer.js.map +1 -0
  206. package/dist/ptr/node/cli.d.ts +3 -0
  207. package/dist/ptr/node/cli.d.ts.map +1 -0
  208. package/dist/ptr/node/cli.js +266 -0
  209. package/dist/ptr/node/cli.js.map +1 -0
  210. package/dist/ptr/node/clm/builtins/handle.d.ts +14 -0
  211. package/dist/ptr/node/clm/builtins/handle.d.ts.map +1 -0
  212. package/dist/ptr/node/clm/builtins/handle.js +177 -0
  213. package/dist/ptr/node/clm/builtins/handle.js.map +1 -0
  214. package/dist/ptr/node/clm/builtins/index.d.ts +20 -0
  215. package/dist/ptr/node/clm/builtins/index.d.ts.map +1 -0
  216. package/dist/ptr/node/clm/builtins/index.js +60 -0
  217. package/dist/ptr/node/clm/builtins/index.js.map +1 -0
  218. package/dist/ptr/node/clm/index.d.ts +25 -0
  219. package/dist/ptr/node/clm/index.d.ts.map +1 -0
  220. package/dist/ptr/node/clm/index.js +28 -0
  221. package/dist/ptr/node/clm/index.js.map +1 -0
  222. package/dist/ptr/node/clm/loader.d.ts +25 -0
  223. package/dist/ptr/node/clm/loader.d.ts.map +1 -0
  224. package/dist/ptr/node/clm/loader.js +146 -0
  225. package/dist/ptr/node/clm/loader.js.map +1 -0
  226. package/dist/ptr/node/clm/multiruntime.d.ts +9 -0
  227. package/dist/ptr/node/clm/multiruntime.d.ts.map +1 -0
  228. package/dist/ptr/node/clm/multiruntime.js +121 -0
  229. package/dist/ptr/node/clm/multiruntime.js.map +1 -0
  230. package/dist/ptr/node/clm/runner.d.ts +70 -0
  231. package/dist/ptr/node/clm/runner.d.ts.map +1 -0
  232. package/dist/ptr/node/clm/runner.js +324 -0
  233. package/dist/ptr/node/clm/runner.js.map +1 -0
  234. package/dist/ptr/node/clm/types.d.ts +166 -0
  235. package/dist/ptr/node/clm/types.d.ts.map +1 -0
  236. package/dist/ptr/node/clm/types.js +5 -0
  237. package/dist/ptr/node/clm/types.js.map +1 -0
  238. package/dist/ptr/node/clm/utils.d.ts +29 -0
  239. package/dist/ptr/node/clm/utils.d.ts.map +1 -0
  240. package/dist/ptr/node/clm/utils.js +88 -0
  241. package/dist/ptr/node/clm/utils.js.map +1 -0
  242. package/dist/ptr/node/network/HttpClient.d.ts +14 -0
  243. package/dist/ptr/node/network/HttpClient.d.ts.map +1 -0
  244. package/dist/ptr/node/network/HttpClient.js +139 -0
  245. package/dist/ptr/node/network/HttpClient.js.map +1 -0
  246. package/dist/ptr/node/network/MCardSerialization.d.ts +19 -0
  247. package/dist/ptr/node/network/MCardSerialization.d.ts.map +1 -0
  248. package/dist/ptr/node/network/MCardSerialization.js +41 -0
  249. package/dist/ptr/node/network/MCardSerialization.js.map +1 -0
  250. package/dist/ptr/node/network/NetworkInfrastructure.d.ts +37 -0
  251. package/dist/ptr/node/network/NetworkInfrastructure.d.ts.map +1 -0
  252. package/dist/ptr/node/network/NetworkInfrastructure.js +121 -0
  253. package/dist/ptr/node/network/NetworkInfrastructure.js.map +1 -0
  254. package/dist/ptr/node/network/NetworkSecurity.d.ts +24 -0
  255. package/dist/ptr/node/network/NetworkSecurity.d.ts.map +1 -0
  256. package/dist/ptr/node/network/NetworkSecurity.js +104 -0
  257. package/dist/ptr/node/network/NetworkSecurity.js.map +1 -0
  258. package/dist/ptr/node/runtimes/base.d.ts +31 -0
  259. package/dist/ptr/node/runtimes/base.d.ts.map +1 -0
  260. package/dist/ptr/node/runtimes/base.js +33 -0
  261. package/dist/ptr/node/runtimes/base.js.map +1 -0
  262. package/dist/ptr/node/runtimes/binary.d.ts +10 -0
  263. package/dist/ptr/node/runtimes/binary.d.ts.map +1 -0
  264. package/dist/ptr/node/runtimes/binary.js +16 -0
  265. package/dist/ptr/node/runtimes/binary.js.map +1 -0
  266. package/dist/ptr/node/runtimes/factory.d.ts +22 -0
  267. package/dist/ptr/node/runtimes/factory.d.ts.map +1 -0
  268. package/dist/ptr/node/runtimes/factory.js +152 -0
  269. package/dist/ptr/node/runtimes/factory.js.map +1 -0
  270. package/dist/ptr/node/runtimes/index.d.ts +28 -0
  271. package/dist/ptr/node/runtimes/index.d.ts.map +1 -0
  272. package/dist/ptr/node/runtimes/index.js +30 -0
  273. package/dist/ptr/node/runtimes/index.js.map +1 -0
  274. package/dist/ptr/node/runtimes/javascript.d.ts +22 -0
  275. package/dist/ptr/node/runtimes/javascript.d.ts.map +1 -0
  276. package/dist/ptr/node/runtimes/javascript.js +125 -0
  277. package/dist/ptr/node/runtimes/javascript.js.map +1 -0
  278. package/dist/ptr/node/runtimes/lean.d.ts +10 -0
  279. package/dist/ptr/node/runtimes/lean.d.ts.map +1 -0
  280. package/dist/ptr/node/runtimes/lean.js +60 -0
  281. package/dist/ptr/node/runtimes/lean.js.map +1 -0
  282. package/dist/ptr/node/runtimes/loader.d.ts +21 -0
  283. package/dist/ptr/node/runtimes/loader.d.ts.map +1 -0
  284. package/dist/ptr/node/runtimes/loader.js +126 -0
  285. package/dist/ptr/node/runtimes/loader.js.map +1 -0
  286. package/dist/ptr/node/runtimes/python.d.ts +14 -0
  287. package/dist/ptr/node/runtimes/python.d.ts.map +1 -0
  288. package/dist/ptr/node/runtimes/python.js +100 -0
  289. package/dist/ptr/node/runtimes/python.js.map +1 -0
  290. package/dist/ptr/node/runtimes/wasm.d.ts +10 -0
  291. package/dist/ptr/node/runtimes/wasm.d.ts.map +1 -0
  292. package/dist/ptr/node/runtimes/wasm.js +55 -0
  293. package/dist/ptr/node/runtimes/wasm.js.map +1 -0
  294. package/dist/rag/GraphRAGEngine.d.ts +26 -0
  295. package/dist/rag/GraphRAGEngine.d.ts.map +1 -0
  296. package/dist/rag/GraphRAGEngine.js +166 -0
  297. package/dist/rag/GraphRAGEngine.js.map +1 -0
  298. package/dist/rag/HandleVectorStore.d.ts +201 -0
  299. package/dist/rag/HandleVectorStore.d.ts.map +1 -0
  300. package/dist/rag/HandleVectorStore.js +527 -0
  301. package/dist/rag/HandleVectorStore.js.map +1 -0
  302. package/dist/rag/PersistentIndexer.d.ts +148 -0
  303. package/dist/rag/PersistentIndexer.d.ts.map +1 -0
  304. package/dist/rag/PersistentIndexer.js +302 -0
  305. package/dist/rag/PersistentIndexer.js.map +1 -0
  306. package/dist/rag/embeddings/VisionEmbeddingProvider.d.ts +87 -0
  307. package/dist/rag/embeddings/VisionEmbeddingProvider.d.ts.map +1 -0
  308. package/dist/rag/embeddings/VisionEmbeddingProvider.js +164 -0
  309. package/dist/rag/embeddings/VisionEmbeddingProvider.js.map +1 -0
  310. package/dist/rag/graph/community.d.ts +56 -0
  311. package/dist/rag/graph/community.d.ts.map +1 -0
  312. package/dist/rag/graph/community.js +247 -0
  313. package/dist/rag/graph/community.js.map +1 -0
  314. package/dist/rag/graph/extractor.d.ts +99 -0
  315. package/dist/rag/graph/extractor.d.ts.map +1 -0
  316. package/dist/rag/graph/extractor.js +210 -0
  317. package/dist/rag/graph/extractor.js.map +1 -0
  318. package/dist/rag/graph/store.d.ts +176 -0
  319. package/dist/rag/graph/store.d.ts.map +1 -0
  320. package/dist/rag/graph/store.js +504 -0
  321. package/dist/rag/graph/store.js.map +1 -0
  322. package/dist/rag/index.d.ts +20 -0
  323. package/dist/rag/index.d.ts.map +1 -0
  324. package/dist/rag/index.js +26 -0
  325. package/dist/rag/index.js.map +1 -0
  326. package/dist/rag/semanticVersioning.d.ts +187 -0
  327. package/dist/rag/semanticVersioning.d.ts.map +1 -0
  328. package/dist/rag/semanticVersioning.js +253 -0
  329. package/dist/rag/semanticVersioning.js.map +1 -0
  330. package/dist/storage/IndexedDBEngine.d.ts +33 -0
  331. package/dist/storage/IndexedDBEngine.d.ts.map +1 -0
  332. package/dist/storage/IndexedDBEngine.js +198 -0
  333. package/dist/storage/IndexedDBEngine.js.map +1 -0
  334. package/dist/storage/SqliteNodeEngine.d.ts +123 -0
  335. package/dist/storage/SqliteNodeEngine.d.ts.map +1 -0
  336. package/dist/storage/SqliteNodeEngine.js +385 -0
  337. package/dist/storage/SqliteNodeEngine.js.map +1 -0
  338. package/dist/storage/SqliteWasmEngine.d.ts +60 -0
  339. package/dist/storage/SqliteWasmEngine.d.ts.map +1 -0
  340. package/dist/storage/SqliteWasmEngine.js +193 -0
  341. package/dist/storage/SqliteWasmEngine.js.map +1 -0
  342. package/dist/storage/StorageAdapter.d.ts +42 -0
  343. package/dist/storage/StorageAdapter.d.ts.map +1 -0
  344. package/dist/storage/StorageAdapter.js +2 -0
  345. package/dist/storage/StorageAdapter.js.map +1 -0
  346. package/dist/storage/VectorStore.d.ts +202 -0
  347. package/dist/storage/VectorStore.d.ts.map +1 -0
  348. package/dist/storage/VectorStore.js +557 -0
  349. package/dist/storage/VectorStore.js.map +1 -0
  350. package/dist/storage/schema.d.ts +162 -0
  351. package/dist/storage/schema.d.ts.map +1 -0
  352. package/dist/storage/schema.js +373 -0
  353. package/dist/storage/schema.js.map +1 -0
  354. package/dist/util/FileIO.d.ts +44 -0
  355. package/dist/util/FileIO.d.ts.map +1 -0
  356. package/dist/util/FileIO.js +203 -0
  357. package/dist/util/FileIO.js.map +1 -0
  358. package/dist/util/Loader.d.ts +34 -0
  359. package/dist/util/Loader.d.ts.map +1 -0
  360. package/dist/util/Loader.js +168 -0
  361. package/dist/util/Loader.js.map +1 -0
  362. package/package.json +2 -1
@@ -0,0 +1,557 @@
1
+ /**
2
+ * MCard Vector Store for JavaScript
3
+ *
4
+ * SQLite-based vector storage for semantic search using sqlite-vec extension.
5
+ * Compatible with the Python MCardVectorStore implementation.
6
+ */
7
+ import Database from 'better-sqlite3';
8
+ import { createRequire } from 'module';
9
+ import { MCardSchema, getVec0Schema, VECTOR_METADATA_SCHEMA, VECTOR_METADATA_INDEX, VECTOR_EMBEDDINGS_SCHEMA, VECTOR_FTS_SCHEMA } from './schema';
10
+ const require = createRequire(import.meta.url);
11
+ // Adapter for better-sqlite3 in Node.js
12
+ export class BetterSqliteAdapter {
13
+ db;
14
+ constructor(db) {
15
+ this.db = db;
16
+ }
17
+ exec(sql) {
18
+ this.db.exec(sql);
19
+ }
20
+ prepare(sql) {
21
+ const stmt = this.db.prepare(sql);
22
+ return {
23
+ run: (...params) => stmt.run(...params),
24
+ all: (...params) => stmt.all(...params),
25
+ get: (...params) => stmt.get(...params),
26
+ loadVecExtension: (dimensions) => {
27
+ try {
28
+ // Dynamic import of sqlite-vec so browser bundles are unaffected.
29
+ // This is Node-only.
30
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
31
+ const sqliteVec = require('sqlite-vec');
32
+ sqliteVec.load(this.db);
33
+ // Create vec0 table using schema helper
34
+ // Note: This is dynamically generated because dimensions are runtime-determined
35
+ const schema = getVec0Schema(dimensions);
36
+ this.db.exec(schema);
37
+ return true;
38
+ }
39
+ catch (e) {
40
+ console.warn(`[VectorStore] sqlite-vec not available in Node adapter: ${e}`);
41
+ return false;
42
+ }
43
+ },
44
+ };
45
+ }
46
+ }
47
+ export const DEFAULT_VECTOR_CONFIG = {
48
+ embeddingModel: 'nomic-embed-text',
49
+ dimensions: 768,
50
+ ollamaBaseUrl: 'http://localhost:11434',
51
+ chunkSize: 512,
52
+ chunkOverlap: 50,
53
+ enableHybridSearch: true,
54
+ };
55
+ // ─────────────────────────────────────────────────────────────────────────────
56
+ // Vector Utilities
57
+ // ─────────────────────────────────────────────────────────────────────────────
58
+ /**
59
+ * Serialize a float array to bytes (little-endian float32).
60
+ */
61
+ export function serializeVector(vector) {
62
+ const buffer = Buffer.alloc(vector.length * 4);
63
+ for (let i = 0; i < vector.length; i++) {
64
+ buffer.writeFloatLE(vector[i], i * 4);
65
+ }
66
+ return buffer;
67
+ }
68
+ /**
69
+ * Deserialize bytes to a float array.
70
+ */
71
+ export function deserializeVector(buffer) {
72
+ const count = buffer.length / 4;
73
+ const vector = [];
74
+ for (let i = 0; i < count; i++) {
75
+ vector.push(buffer.readFloatLE(i * 4));
76
+ }
77
+ return vector;
78
+ }
79
+ /**
80
+ * Calculate cosine similarity between two vectors.
81
+ */
82
+ export function cosineSimilarity(a, b) {
83
+ if (a.length !== b.length) {
84
+ throw new Error(`Vector length mismatch: ${a.length} vs ${b.length}`);
85
+ }
86
+ let dotProduct = 0;
87
+ let normA = 0;
88
+ let normB = 0;
89
+ for (let i = 0; i < a.length; i++) {
90
+ dotProduct += a[i] * b[i];
91
+ normA += a[i] * a[i];
92
+ normB += b[i] * b[i];
93
+ }
94
+ normA = Math.sqrt(normA);
95
+ normB = Math.sqrt(normB);
96
+ if (normA === 0 || normB === 0)
97
+ return 0;
98
+ return dotProduct / (normA * normB);
99
+ }
100
+ // ─────────────────────────────────────────────────────────────────────────────
101
+ // Vector Store
102
+ // ─────────────────────────────────────────────────────────────────────────────
103
+ export class MCardVectorStore {
104
+ db;
105
+ config;
106
+ hasVecExtension = false;
107
+ /**
108
+ * Construct a vector store.
109
+ *
110
+ * - Node.js: pass a string path (uses better-sqlite3 under the hood)
111
+ * - Advanced: pass a VectorDb adapter (e.g., SqlJsVectorAdapter for WASM)
112
+ */
113
+ constructor(dbOrPath = ':memory:', config) {
114
+ this.config = { ...DEFAULT_VECTOR_CONFIG, ...config };
115
+ if (typeof dbOrPath === 'string') {
116
+ const raw = new Database(dbOrPath);
117
+ this.db = new BetterSqliteAdapter(raw);
118
+ }
119
+ else {
120
+ this.db = dbOrPath;
121
+ }
122
+ this.initDatabase();
123
+ this.tryLoadVecExtension();
124
+ }
125
+ /**
126
+ * Initialize database tables.
127
+ * Uses schema from the unified MCardSchema singleton (schema/mcard_schema.sql).
128
+ */
129
+ initDatabase() {
130
+ // Import from singleton schema loader
131
+ // This ensures all SQL comes from schema/mcard_schema.sql
132
+ try {
133
+ // Try to use singleton if running in Node.js with file access
134
+ const schema = MCardSchema.getInstance();
135
+ // Vector metadata table
136
+ const metadataSchema = schema.getTable('mcard_vector_metadata');
137
+ if (metadataSchema) {
138
+ this.db.exec(metadataSchema);
139
+ }
140
+ // Metadata index
141
+ const metadataIndex = schema.getIndex('idx_vector_metadata_hash');
142
+ if (metadataIndex) {
143
+ this.db.exec(metadataIndex);
144
+ }
145
+ // Embeddings fallback table
146
+ const embeddingsSchema = schema.getTable('mcard_embeddings');
147
+ if (embeddingsSchema) {
148
+ this.db.exec(embeddingsSchema);
149
+ }
150
+ // FTS table for hybrid search
151
+ if (this.config.enableHybridSearch) {
152
+ const ftsSchema = schema.getTable('mcard_fts');
153
+ if (ftsSchema) {
154
+ this.db.exec(ftsSchema);
155
+ }
156
+ }
157
+ }
158
+ catch (e) {
159
+ // Fallback for browser/WASM environments where file access isn't available
160
+ // In this case, we use the exported constants from schema.ts
161
+ console.warn('[VectorStore] Could not load MCardSchema directly, using fallback');
162
+ this.initDatabaseFallback();
163
+ }
164
+ }
165
+ /**
166
+ * Fallback initialization for browser/WASM environments.
167
+ * Uses exported constants from schema.ts which are loaded from the SQL file.
168
+ */
169
+ initDatabaseFallback() {
170
+ try {
171
+ if (VECTOR_METADATA_SCHEMA) {
172
+ this.db.exec(VECTOR_METADATA_SCHEMA);
173
+ }
174
+ if (VECTOR_METADATA_INDEX) {
175
+ this.db.exec(VECTOR_METADATA_INDEX);
176
+ }
177
+ if (VECTOR_EMBEDDINGS_SCHEMA) {
178
+ this.db.exec(VECTOR_EMBEDDINGS_SCHEMA);
179
+ }
180
+ if (this.config.enableHybridSearch && VECTOR_FTS_SCHEMA) {
181
+ this.db.exec(VECTOR_FTS_SCHEMA);
182
+ }
183
+ }
184
+ catch (e) {
185
+ console.error('[VectorStore] Failed to initialize database from schema:', e);
186
+ throw e;
187
+ }
188
+ }
189
+ /**
190
+ * Try to load sqlite-vec extension.
191
+ */
192
+ tryLoadVecExtension() {
193
+ try {
194
+ const anyDb = this.db;
195
+ if (typeof anyDb.prepare === 'function') {
196
+ // If the adapter exposes a loadVecExtension hook (Node or WASM), use it.
197
+ const prepared = anyDb.prepare('SELECT 1');
198
+ if (typeof prepared.loadVecExtension === 'function') {
199
+ const ok = prepared.loadVecExtension(this.config.dimensions);
200
+ this.hasVecExtension = ok;
201
+ return ok;
202
+ }
203
+ }
204
+ // No extension hook available; fallback mode only.
205
+ this.hasVecExtension = false;
206
+ return false;
207
+ }
208
+ catch (e) {
209
+ console.warn(`[VectorStore] Failed to load sqlite-vec extension: ${e}. Using fallback.`);
210
+ this.hasVecExtension = false;
211
+ return false;
212
+ }
213
+ }
214
+ /**
215
+ * Generate embedding using Ollama.
216
+ */
217
+ async embed(text) {
218
+ const response = await fetch(`${this.config.ollamaBaseUrl}/api/embeddings`, {
219
+ method: 'POST',
220
+ headers: { 'Content-Type': 'application/json' },
221
+ body: JSON.stringify({
222
+ model: this.config.embeddingModel,
223
+ prompt: text
224
+ })
225
+ });
226
+ if (!response.ok) {
227
+ throw new Error(`Ollama embedding failed: ${response.statusText}`);
228
+ }
229
+ const data = await response.json();
230
+ return data.embedding;
231
+ }
232
+ /**
233
+ * Index content with its embedding.
234
+ */
235
+ async index(hash, content, metadata, chunk = true) {
236
+ const chunks = chunk ? this.chunkText(content) : [content];
237
+ let indexed = 0;
238
+ for (let i = 0; i < chunks.length; i++) {
239
+ const chunkContent = chunks[i];
240
+ const preview = chunkContent.substring(0, 200);
241
+ try {
242
+ // Generate embedding
243
+ const embedding = await this.embed(chunkContent);
244
+ // Insert metadata (matches Python mcard_vector_metadata schema)
245
+ const insertMeta = this.db.prepare(`
246
+ INSERT OR REPLACE INTO mcard_vector_metadata
247
+ (hash, model_name, dimensions, chunk_index, chunk_total, chunk_text, created_at)
248
+ VALUES (?, ?, ?, ?, ?, ?, ?)
249
+ `);
250
+ const result = insertMeta.run(hash, this.config.embeddingModel, this.config.dimensions, i, chunks.length, preview, new Date().toISOString());
251
+ const lastId = result.lastInsertRowid;
252
+ if (lastId === undefined) {
253
+ throw new Error("Vector metadata insert failed: no rowid returned");
254
+ }
255
+ const rowId = BigInt(lastId);
256
+ // Store embedding
257
+ if (this.hasVecExtension) {
258
+ // Use vec0 virtual table (matches Python mcard_vec)
259
+ const insertVec = this.db.prepare(`
260
+ INSERT INTO mcard_vec (metadata_id, embedding)
261
+ VALUES (?, ?)
262
+ `);
263
+ insertVec.run(rowId, serializeVector(embedding));
264
+ }
265
+ else {
266
+ // Use fallback embeddings table (matches Python mcard_embeddings)
267
+ const insertEmb = this.db.prepare(`
268
+ INSERT OR REPLACE INTO mcard_embeddings (metadata_id, embedding)
269
+ VALUES (?, ?)
270
+ `);
271
+ insertEmb.run(rowId, serializeVector(embedding));
272
+ }
273
+ // Update FTS (matches Python mcard_fts)
274
+ if (this.config.enableHybridSearch) {
275
+ const insertFts = this.db.prepare(`
276
+ INSERT INTO mcard_fts (hash, content)
277
+ VALUES (?, ?)
278
+ `);
279
+ insertFts.run(hash, chunkContent);
280
+ }
281
+ indexed++;
282
+ }
283
+ catch (e) {
284
+ console.error(`[VectorStore] Failed to index chunk ${i}: ${e}`);
285
+ }
286
+ }
287
+ return indexed;
288
+ }
289
+ /**
290
+ * Search for similar content.
291
+ */
292
+ async search(query, k = 5) {
293
+ const queryEmbedding = await this.embed(query);
294
+ if (this.hasVecExtension) {
295
+ return this.searchWithVec(queryEmbedding, k);
296
+ }
297
+ else {
298
+ return this.searchFallback(queryEmbedding, k);
299
+ }
300
+ }
301
+ /**
302
+ * Search using sqlite-vec KNN.
303
+ */
304
+ searchWithVec(queryEmbedding, k) {
305
+ const stmt = this.db.prepare(`
306
+ SELECT
307
+ m.hash,
308
+ m.chunk_index,
309
+ m.chunk_text,
310
+ v.distance
311
+ FROM (
312
+ SELECT metadata_id, distance
313
+ FROM mcard_vec
314
+ WHERE embedding MATCH ?
315
+ ORDER BY distance
316
+ LIMIT ${k}
317
+ ) v
318
+ JOIN mcard_vector_metadata m ON v.metadata_id = m.id
319
+ ORDER BY v.distance
320
+ `);
321
+ // Serialize vector and pass as BLOB
322
+ const rows = stmt.all(serializeVector(queryEmbedding));
323
+ return rows.map(row => ({
324
+ hash: row.hash,
325
+ score: 1 - row.distance, // Convert distance to similarity
326
+ content: row.chunk_text || undefined,
327
+ chunkIndex: row.chunk_index
328
+ }));
329
+ }
330
+ /**
331
+ * Fallback brute-force similarity search.
332
+ */
333
+ searchFallback(queryEmbedding, k) {
334
+ const stmt = this.db.prepare(`
335
+ SELECT m.id, m.hash, m.chunk_index, m.chunk_text, e.embedding
336
+ FROM mcard_vector_metadata m
337
+ JOIN mcard_embeddings e ON m.id = e.metadata_id
338
+ `);
339
+ const rows = stmt.all();
340
+ // Calculate similarities
341
+ const scored = rows.map(row => ({
342
+ hash: row.hash,
343
+ chunkIndex: row.chunk_index,
344
+ content: row.chunk_text || undefined,
345
+ score: cosineSimilarity(queryEmbedding, deserializeVector(row.embedding))
346
+ }));
347
+ // Sort by score descending
348
+ scored.sort((a, b) => b.score - a.score);
349
+ return scored.slice(0, k);
350
+ }
351
+ /**
352
+ * Hybrid search combining vector and FTS.
353
+ */
354
+ async hybridSearch(query, k = 5, vectorWeight = 0.7) {
355
+ if (!this.config.enableHybridSearch) {
356
+ return this.search(query, k);
357
+ }
358
+ // Get vector results
359
+ const vectorResults = await this.search(query, k * 2);
360
+ // Get FTS results
361
+ const ftsStmt = this.db.prepare(`
362
+ SELECT hash, rank
363
+ FROM mcard_fts
364
+ WHERE mcard_fts MATCH ?
365
+ ORDER BY rank
366
+ LIMIT ?
367
+ `);
368
+ const ftsRows = ftsStmt.all(query, k * 2);
369
+ // Merge results with weighted scoring
370
+ const merged = new Map();
371
+ for (const result of vectorResults) {
372
+ merged.set(result.hash, {
373
+ ...result,
374
+ score: result.score * vectorWeight
375
+ });
376
+ }
377
+ const ftsWeight = 1 - vectorWeight;
378
+ const maxFtsRank = Math.max(...ftsRows.map(r => Math.abs(r.rank)), 1);
379
+ for (const row of ftsRows) {
380
+ const ftsScore = (1 - Math.abs(row.rank) / maxFtsRank) * ftsWeight;
381
+ const existing = merged.get(row.hash);
382
+ if (existing) {
383
+ existing.score += ftsScore;
384
+ }
385
+ else {
386
+ merged.set(row.hash, {
387
+ hash: row.hash,
388
+ score: ftsScore
389
+ });
390
+ }
391
+ }
392
+ // Sort and return top k
393
+ const results = Array.from(merged.values());
394
+ results.sort((a, b) => b.score - a.score);
395
+ return results.slice(0, k);
396
+ }
397
+ /**
398
+ * Split text into overlapping chunks.
399
+ */
400
+ chunkText(text) {
401
+ const { chunkSize, chunkOverlap } = this.config;
402
+ if (text.length <= chunkSize) {
403
+ return [text];
404
+ }
405
+ const chunks = [];
406
+ let start = 0;
407
+ while (start < text.length) {
408
+ const end = Math.min(start + chunkSize, text.length);
409
+ chunks.push(text.slice(start, end));
410
+ start += chunkSize - chunkOverlap;
411
+ }
412
+ return chunks;
413
+ }
414
+ /**
415
+ * Get count of indexed vectors.
416
+ */
417
+ count() {
418
+ const stmt = this.db.prepare('SELECT COUNT(*) as count FROM mcard_vector_metadata');
419
+ const row = stmt.get?.();
420
+ return row?.count ?? 0;
421
+ }
422
+ /**
423
+ * Get list of all indexed hashes (distinct)
424
+ */
425
+ async getIndexedHashes() {
426
+ const stmt = this.db.prepare('SELECT DISTINCT hash FROM mcard_vector_metadata');
427
+ const rows = stmt.all();
428
+ return rows.map(r => r.hash);
429
+ }
430
+ /**
431
+ * Count unique indexed cards
432
+ */
433
+ countUnique() {
434
+ const stmt = this.db.prepare('SELECT COUNT(DISTINCT hash) as count FROM mcard_vector_metadata');
435
+ const row = stmt.get();
436
+ return row?.count ?? 0;
437
+ }
438
+ /**
439
+ * Delete vectors for a hash.
440
+ */
441
+ delete(hash) {
442
+ const getIds = this.db.prepare('SELECT id FROM mcard_vector_metadata WHERE hash = ?');
443
+ const ids = getIds.all(hash);
444
+ for (const { id } of ids) {
445
+ if (this.hasVecExtension) {
446
+ this.db.prepare('DELETE FROM mcard_vec WHERE metadata_id = ?').run(id);
447
+ }
448
+ else {
449
+ this.db.prepare('DELETE FROM mcard_embeddings WHERE metadata_id = ?').run(id);
450
+ }
451
+ }
452
+ const deleteMeta = this.db.prepare('DELETE FROM mcard_vector_metadata WHERE hash = ?');
453
+ const result = deleteMeta.run(hash);
454
+ if (this.config.enableHybridSearch) {
455
+ this.db.prepare('DELETE FROM mcard_fts WHERE hash = ?').run(hash);
456
+ }
457
+ return result.changes ?? 0;
458
+ }
459
+ /**
460
+ * Clear all vectors.
461
+ */
462
+ clear() {
463
+ if (this.hasVecExtension) {
464
+ this.db.exec('DELETE FROM mcard_vec');
465
+ }
466
+ else {
467
+ this.db.exec('DELETE FROM mcard_embeddings');
468
+ }
469
+ this.db.exec('DELETE FROM mcard_vector_metadata');
470
+ if (this.config.enableHybridSearch) {
471
+ this.db.exec('DELETE FROM mcard_fts');
472
+ }
473
+ }
474
+ /**
475
+ * Check if sqlite-vec extension is available.
476
+ */
477
+ hasVectorExtension() {
478
+ return this.hasVecExtension;
479
+ }
480
+ /**
481
+ * Get information about the vector store.
482
+ */
483
+ getInfo() {
484
+ const count = this.count();
485
+ return {
486
+ vectorCount: count,
487
+ embeddingModel: this.config.embeddingModel,
488
+ dimensions: this.config.dimensions,
489
+ hasVecExtension: this.hasVecExtension,
490
+ enableHybridSearch: this.config.enableHybridSearch,
491
+ };
492
+ }
493
+ /**
494
+ * Close the database connection.
495
+ */
496
+ close() {
497
+ // VectorDb interface does not require close; for better-sqlite3 this is
498
+ // handled by the adapter's underlying instance lifecycle.
499
+ const anyDb = this.db;
500
+ if (typeof anyDb.close === 'function') {
501
+ anyDb.close();
502
+ }
503
+ }
504
+ }
505
+ /**
506
+ * Adapter for sql.js / SQLite WASM so VectorStore can run in the browser.
507
+ *
508
+ * NOTE: Parameter binding and stepping are left as a TODO because the exact
509
+ * sql.js API usage (bind/step/getAsObject) depends on how you want to map
510
+ * VectorDb semantics to sql.js. For now, this adapter is scaffolding that
511
+ * shows where to integrate sql.js.
512
+ */
513
+ export class SqlJsVectorAdapter {
514
+ db;
515
+ constructor(db) {
516
+ this.db = db;
517
+ }
518
+ exec(sql) {
519
+ this.db.run(sql);
520
+ }
521
+ prepare(_sql) {
522
+ // TODO: Implement proper sql.js Statement handling here, including:
523
+ // - stmt = this.db.prepare(sql)
524
+ // - stmt.bind(params)
525
+ // - stmt.step()/getAsObject() loops for all()/get()
526
+ // - stmt.free() when done
527
+ // For now, this is a stub so the TypeScript wiring compiles; you
528
+ // should replace this with a real implementation once you decide on
529
+ // the exact sql.js usage pattern.
530
+ return {
531
+ run: (..._params) => ({}),
532
+ all: (..._params) => [],
533
+ get: (..._params) => undefined,
534
+ loadVecExtension: (_dimensions) => {
535
+ // TODO: Load sqlite-vec WASM extension for sql.js here.
536
+ // This will depend on which build of sqlite-vec WASM you use
537
+ // (Alex Garcia's official builds, CR-SQLite integration, etc.).
538
+ // For now, return false so the VectorStore stays in fallback mode.
539
+ return false;
540
+ },
541
+ };
542
+ }
543
+ }
544
+ /**
545
+ * Factory to create a VectorStore backed by SqliteWasmEngine/sql.js.
546
+ *
547
+ * Example usage (browser):
548
+ *
549
+ * const engine = new SqliteWasmEngine();
550
+ * await engine.init(wasmUrl, existingData);
551
+ * const vecStore = createWasmVectorStore(engine.getRawDb());
552
+ */
553
+ export function createWasmVectorStore(wasmDb, config) {
554
+ const adapter = new SqlJsVectorAdapter(wasmDb);
555
+ return new MCardVectorStore(adapter, config);
556
+ }
557
+ //# sourceMappingURL=VectorStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VectorStore.js","sourceRoot":"","sources":["../../src/storage/VectorStore.ts"],"names":[],"mappings":"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"}