@noyrax/5d-database-plugin 0.1.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 (369) hide show
  1. package/ADR_VORSCHLAEGE.md +247 -0
  2. package/CHROMADB_SETUP.md +69 -0
  3. package/IMPROVEMENT_ROADMAP.md +435 -0
  4. package/INSTALLATION_READINESS.md +150 -0
  5. package/KNOWN_ISSUES.md +210 -0
  6. package/LICENSE +21 -0
  7. package/MCP_SERVER_SETUP.md +359 -0
  8. package/MCP_SERVER_TEST_REPORT.md +206 -0
  9. package/NOYRAX_INTEGRATION.md +224 -0
  10. package/QUICK_START.md +316 -0
  11. package/README.md +240 -0
  12. package/SETUP_NEW_PROJECT.md +260 -0
  13. package/SYSTEM_ANALYSIS_REPORT.md +341 -0
  14. package/out/api/adr-api.d.ts +22 -0
  15. package/out/api/adr-api.d.ts.map +1 -0
  16. package/out/api/adr-api.js +38 -0
  17. package/out/api/adr-api.js.map +1 -0
  18. package/out/api/bootstrap-api.d.ts +43 -0
  19. package/out/api/bootstrap-api.d.ts.map +1 -0
  20. package/out/api/bootstrap-api.js +88 -0
  21. package/out/api/bootstrap-api.js.map +1 -0
  22. package/out/api/change-api.d.ts +30 -0
  23. package/out/api/change-api.d.ts.map +1 -0
  24. package/out/api/change-api.js +54 -0
  25. package/out/api/change-api.js.map +1 -0
  26. package/out/api/context-builder.d.ts +81 -0
  27. package/out/api/context-builder.d.ts.map +1 -0
  28. package/out/api/context-builder.js +288 -0
  29. package/out/api/context-builder.js.map +1 -0
  30. package/out/api/cross-dimension-api.d.ts +43 -0
  31. package/out/api/cross-dimension-api.d.ts.map +1 -0
  32. package/out/api/cross-dimension-api.js +55 -0
  33. package/out/api/cross-dimension-api.js.map +1 -0
  34. package/out/api/dependency-api.d.ts +26 -0
  35. package/out/api/dependency-api.d.ts.map +1 -0
  36. package/out/api/dependency-api.js +46 -0
  37. package/out/api/dependency-api.js.map +1 -0
  38. package/out/api/learning-path-api.d.ts +49 -0
  39. package/out/api/learning-path-api.d.ts.map +1 -0
  40. package/out/api/learning-path-api.js +174 -0
  41. package/out/api/learning-path-api.js.map +1 -0
  42. package/out/api/module-api.d.ts +26 -0
  43. package/out/api/module-api.d.ts.map +1 -0
  44. package/out/api/module-api.js +46 -0
  45. package/out/api/module-api.js.map +1 -0
  46. package/out/api/search-api.d.ts +64 -0
  47. package/out/api/search-api.d.ts.map +1 -0
  48. package/out/api/search-api.js +235 -0
  49. package/out/api/search-api.js.map +1 -0
  50. package/out/api/self-explanation-api.d.ts +71 -0
  51. package/out/api/self-explanation-api.d.ts.map +1 -0
  52. package/out/api/self-explanation-api.js +153 -0
  53. package/out/api/self-explanation-api.js.map +1 -0
  54. package/out/api/semantic-search-api.d.ts +64 -0
  55. package/out/api/semantic-search-api.d.ts.map +1 -0
  56. package/out/api/semantic-search-api.js +205 -0
  57. package/out/api/semantic-search-api.js.map +1 -0
  58. package/out/api/symbol-api.d.ts +22 -0
  59. package/out/api/symbol-api.d.ts.map +1 -0
  60. package/out/api/symbol-api.js +38 -0
  61. package/out/api/symbol-api.js.map +1 -0
  62. package/out/api/vector-api.d.ts +26 -0
  63. package/out/api/vector-api.d.ts.map +1 -0
  64. package/out/api/vector-api.js +49 -0
  65. package/out/api/vector-api.js.map +1 -0
  66. package/out/cli/embedding-cli.d.ts +3 -0
  67. package/out/cli/embedding-cli.d.ts.map +1 -0
  68. package/out/cli/embedding-cli.js +151 -0
  69. package/out/cli/embedding-cli.js.map +1 -0
  70. package/out/cli/ingest-cli.d.ts +3 -0
  71. package/out/cli/ingest-cli.d.ts.map +1 -0
  72. package/out/cli/ingest-cli.js +145 -0
  73. package/out/cli/ingest-cli.js.map +1 -0
  74. package/out/cli/mcp-server-cli.d.ts +3 -0
  75. package/out/cli/mcp-server-cli.d.ts.map +1 -0
  76. package/out/cli/mcp-server-cli.js +159 -0
  77. package/out/cli/mcp-server-cli.js.map +1 -0
  78. package/out/cli/query-cli.d.ts +3 -0
  79. package/out/cli/query-cli.d.ts.map +1 -0
  80. package/out/cli/query-cli.js +217 -0
  81. package/out/cli/query-cli.js.map +1 -0
  82. package/out/cli/semantic-search-cli.d.ts +3 -0
  83. package/out/cli/semantic-search-cli.d.ts.map +1 -0
  84. package/out/cli/semantic-search-cli.js +196 -0
  85. package/out/cli/semantic-search-cli.js.map +1 -0
  86. package/out/cli/test-chromadb.d.ts +3 -0
  87. package/out/cli/test-chromadb.d.ts.map +1 -0
  88. package/out/cli/test-chromadb.js +204 -0
  89. package/out/cli/test-chromadb.js.map +1 -0
  90. package/out/cli/test-v-dimension.d.ts +3 -0
  91. package/out/cli/test-v-dimension.d.ts.map +1 -0
  92. package/out/cli/test-v-dimension.js +330 -0
  93. package/out/cli/test-v-dimension.js.map +1 -0
  94. package/out/cli/tool-cli.d.ts +3 -0
  95. package/out/cli/tool-cli.d.ts.map +1 -0
  96. package/out/cli/tool-cli.js +237 -0
  97. package/out/cli/tool-cli.js.map +1 -0
  98. package/out/cli/verify-openai-key.d.ts +3 -0
  99. package/out/cli/verify-openai-key.d.ts.map +1 -0
  100. package/out/cli/verify-openai-key.js +141 -0
  101. package/out/cli/verify-openai-key.js.map +1 -0
  102. package/out/cli/verify-vss-status.d.ts +3 -0
  103. package/out/cli/verify-vss-status.d.ts.map +1 -0
  104. package/out/cli/verify-vss-status.js +185 -0
  105. package/out/cli/verify-vss-status.js.map +1 -0
  106. package/out/core/chromadb-vector-database.d.ts +52 -0
  107. package/out/core/chromadb-vector-database.d.ts.map +1 -0
  108. package/out/core/chromadb-vector-database.js +276 -0
  109. package/out/core/chromadb-vector-database.js.map +1 -0
  110. package/out/core/docs-path-resolver.d.ts +43 -0
  111. package/out/core/docs-path-resolver.d.ts.map +1 -0
  112. package/out/core/docs-path-resolver.js +137 -0
  113. package/out/core/docs-path-resolver.js.map +1 -0
  114. package/out/core/id-mapper.d.ts +68 -0
  115. package/out/core/id-mapper.d.ts.map +1 -0
  116. package/out/core/id-mapper.js +132 -0
  117. package/out/core/id-mapper.js.map +1 -0
  118. package/out/core/migration-manager.d.ts +75 -0
  119. package/out/core/migration-manager.d.ts.map +1 -0
  120. package/out/core/migration-manager.js +212 -0
  121. package/out/core/migration-manager.js.map +1 -0
  122. package/out/core/multi-db-manager.d.ts +84 -0
  123. package/out/core/multi-db-manager.d.ts.map +1 -0
  124. package/out/core/multi-db-manager.js +206 -0
  125. package/out/core/multi-db-manager.js.map +1 -0
  126. package/out/core/transaction-manager.d.ts +69 -0
  127. package/out/core/transaction-manager.d.ts.map +1 -0
  128. package/out/core/transaction-manager.js +138 -0
  129. package/out/core/transaction-manager.js.map +1 -0
  130. package/out/core/vector-database-factory.d.ts +25 -0
  131. package/out/core/vector-database-factory.d.ts.map +1 -0
  132. package/out/core/vector-database-factory.js +82 -0
  133. package/out/core/vector-database-factory.js.map +1 -0
  134. package/out/core/vector-database-interface.d.ts +50 -0
  135. package/out/core/vector-database-interface.d.ts.map +1 -0
  136. package/out/core/vector-database-interface.js +3 -0
  137. package/out/core/vector-database-interface.js.map +1 -0
  138. package/out/core/vss-loader.d.ts +29 -0
  139. package/out/core/vss-loader.d.ts.map +1 -0
  140. package/out/core/vss-loader.js +150 -0
  141. package/out/core/vss-loader.js.map +1 -0
  142. package/out/core/vss-manager.d.ts +81 -0
  143. package/out/core/vss-manager.d.ts.map +1 -0
  144. package/out/core/vss-manager.js +323 -0
  145. package/out/core/vss-manager.js.map +1 -0
  146. package/out/core/vss-vector-database.d.ts +71 -0
  147. package/out/core/vss-vector-database.d.ts.map +1 -0
  148. package/out/core/vss-vector-database.js +284 -0
  149. package/out/core/vss-vector-database.js.map +1 -0
  150. package/out/embedding/embedding-generator.d.ts +45 -0
  151. package/out/embedding/embedding-generator.d.ts.map +1 -0
  152. package/out/embedding/embedding-generator.js +143 -0
  153. package/out/embedding/embedding-generator.js.map +1 -0
  154. package/out/embedding/embedding-pipeline.d.ts +42 -0
  155. package/out/embedding/embedding-pipeline.d.ts.map +1 -0
  156. package/out/embedding/embedding-pipeline.js +290 -0
  157. package/out/embedding/embedding-pipeline.js.map +1 -0
  158. package/out/extension.d.ts +10 -0
  159. package/out/extension.d.ts.map +1 -0
  160. package/out/extension.js +164 -0
  161. package/out/extension.js.map +1 -0
  162. package/out/ingestors/adr-ingestor.d.ts +41 -0
  163. package/out/ingestors/adr-ingestor.d.ts.map +1 -0
  164. package/out/ingestors/adr-ingestor.js +329 -0
  165. package/out/ingestors/adr-ingestor.js.map +1 -0
  166. package/out/ingestors/base-ingestor.d.ts +30 -0
  167. package/out/ingestors/base-ingestor.d.ts.map +1 -0
  168. package/out/ingestors/base-ingestor.js +3 -0
  169. package/out/ingestors/base-ingestor.js.map +1 -0
  170. package/out/ingestors/change-ingestor.d.ts +36 -0
  171. package/out/ingestors/change-ingestor.d.ts.map +1 -0
  172. package/out/ingestors/change-ingestor.js +216 -0
  173. package/out/ingestors/change-ingestor.js.map +1 -0
  174. package/out/ingestors/dependency-ingestor.d.ts +32 -0
  175. package/out/ingestors/dependency-ingestor.d.ts.map +1 -0
  176. package/out/ingestors/dependency-ingestor.js +194 -0
  177. package/out/ingestors/dependency-ingestor.js.map +1 -0
  178. package/out/ingestors/module-ingestor.d.ts +27 -0
  179. package/out/ingestors/module-ingestor.d.ts.map +1 -0
  180. package/out/ingestors/module-ingestor.js +137 -0
  181. package/out/ingestors/module-ingestor.js.map +1 -0
  182. package/out/ingestors/symbol-ingestor.d.ts +26 -0
  183. package/out/ingestors/symbol-ingestor.d.ts.map +1 -0
  184. package/out/ingestors/symbol-ingestor.js +183 -0
  185. package/out/ingestors/symbol-ingestor.js.map +1 -0
  186. package/out/mcp/resources/adrs.d.ts +13 -0
  187. package/out/mcp/resources/adrs.d.ts.map +1 -0
  188. package/out/mcp/resources/adrs.js +26 -0
  189. package/out/mcp/resources/adrs.js.map +1 -0
  190. package/out/mcp/resources/changes.d.ts +13 -0
  191. package/out/mcp/resources/changes.d.ts.map +1 -0
  192. package/out/mcp/resources/changes.js +26 -0
  193. package/out/mcp/resources/changes.js.map +1 -0
  194. package/out/mcp/resources/dependencies.d.ts +13 -0
  195. package/out/mcp/resources/dependencies.d.ts.map +1 -0
  196. package/out/mcp/resources/dependencies.js +26 -0
  197. package/out/mcp/resources/dependencies.js.map +1 -0
  198. package/out/mcp/resources/modules.d.ts +13 -0
  199. package/out/mcp/resources/modules.d.ts.map +1 -0
  200. package/out/mcp/resources/modules.js +26 -0
  201. package/out/mcp/resources/modules.js.map +1 -0
  202. package/out/mcp/resources/symbols.d.ts +13 -0
  203. package/out/mcp/resources/symbols.d.ts.map +1 -0
  204. package/out/mcp/resources/symbols.js +26 -0
  205. package/out/mcp/resources/symbols.js.map +1 -0
  206. package/out/mcp/server.d.ts +29 -0
  207. package/out/mcp/server.d.ts.map +1 -0
  208. package/out/mcp/server.js +300 -0
  209. package/out/mcp/server.js.map +1 -0
  210. package/out/mcp/tools/architecture-mining.d.ts +46 -0
  211. package/out/mcp/tools/architecture-mining.d.ts.map +1 -0
  212. package/out/mcp/tools/architecture-mining.js +272 -0
  213. package/out/mcp/tools/architecture-mining.js.map +1 -0
  214. package/out/mcp/tools/bootstrap.d.ts +9 -0
  215. package/out/mcp/tools/bootstrap.d.ts.map +1 -0
  216. package/out/mcp/tools/bootstrap.js +14 -0
  217. package/out/mcp/tools/bootstrap.js.map +1 -0
  218. package/out/mcp/tools/cross-analysis.d.ts +18 -0
  219. package/out/mcp/tools/cross-analysis.d.ts.map +1 -0
  220. package/out/mcp/tools/cross-analysis.js +23 -0
  221. package/out/mcp/tools/cross-analysis.js.map +1 -0
  222. package/out/mcp/tools/gap-analysis.d.ts +34 -0
  223. package/out/mcp/tools/gap-analysis.d.ts.map +1 -0
  224. package/out/mcp/tools/gap-analysis.js +106 -0
  225. package/out/mcp/tools/gap-analysis.js.map +1 -0
  226. package/out/mcp/tools/learning-path.d.ts +10 -0
  227. package/out/mcp/tools/learning-path.d.ts.map +1 -0
  228. package/out/mcp/tools/learning-path.js +18 -0
  229. package/out/mcp/tools/learning-path.js.map +1 -0
  230. package/out/mcp/tools/query-dependencies.d.ts +18 -0
  231. package/out/mcp/tools/query-dependencies.d.ts.map +1 -0
  232. package/out/mcp/tools/query-dependencies.js +31 -0
  233. package/out/mcp/tools/query-dependencies.js.map +1 -0
  234. package/out/mcp/tools/query-modules.d.ts +17 -0
  235. package/out/mcp/tools/query-modules.d.ts.map +1 -0
  236. package/out/mcp/tools/query-modules.js +22 -0
  237. package/out/mcp/tools/query-modules.js.map +1 -0
  238. package/out/mcp/tools/query-symbols.d.ts +18 -0
  239. package/out/mcp/tools/query-symbols.d.ts.map +1 -0
  240. package/out/mcp/tools/query-symbols.js +32 -0
  241. package/out/mcp/tools/query-symbols.js.map +1 -0
  242. package/out/mcp/tools/semantic-discovery.d.ts +12 -0
  243. package/out/mcp/tools/semantic-discovery.d.ts.map +1 -0
  244. package/out/mcp/tools/semantic-discovery.js +35 -0
  245. package/out/mcp/tools/semantic-discovery.js.map +1 -0
  246. package/out/mcp/tools/system-explanation.d.ts +9 -0
  247. package/out/mcp/tools/system-explanation.d.ts.map +1 -0
  248. package/out/mcp/tools/system-explanation.js +14 -0
  249. package/out/mcp/tools/system-explanation.js.map +1 -0
  250. package/out/mcp/types.d.ts +19 -0
  251. package/out/mcp/types.d.ts.map +1 -0
  252. package/out/mcp/types.js +6 -0
  253. package/out/mcp/types.js.map +1 -0
  254. package/out/models/adr.d.ts +26 -0
  255. package/out/models/adr.d.ts.map +1 -0
  256. package/out/models/adr.js +3 -0
  257. package/out/models/adr.js.map +1 -0
  258. package/out/models/change.d.ts +42 -0
  259. package/out/models/change.d.ts.map +1 -0
  260. package/out/models/change.js +3 -0
  261. package/out/models/change.js.map +1 -0
  262. package/out/models/dependency.d.ts +37 -0
  263. package/out/models/dependency.d.ts.map +1 -0
  264. package/out/models/dependency.js +3 -0
  265. package/out/models/dependency.js.map +1 -0
  266. package/out/models/entity-reference.d.ts +20 -0
  267. package/out/models/entity-reference.d.ts.map +1 -0
  268. package/out/models/entity-reference.js +19 -0
  269. package/out/models/entity-reference.js.map +1 -0
  270. package/out/models/module.d.ts +26 -0
  271. package/out/models/module.d.ts.map +1 -0
  272. package/out/models/module.js +3 -0
  273. package/out/models/module.js.map +1 -0
  274. package/out/models/symbol.d.ts +31 -0
  275. package/out/models/symbol.d.ts.map +1 -0
  276. package/out/models/symbol.js +3 -0
  277. package/out/models/symbol.js.map +1 -0
  278. package/out/repositories/adr-repository.d.ts +41 -0
  279. package/out/repositories/adr-repository.d.ts.map +1 -0
  280. package/out/repositories/adr-repository.js +128 -0
  281. package/out/repositories/adr-repository.js.map +1 -0
  282. package/out/repositories/base-repository.d.ts +86 -0
  283. package/out/repositories/base-repository.d.ts.map +1 -0
  284. package/out/repositories/base-repository.js +66 -0
  285. package/out/repositories/base-repository.js.map +1 -0
  286. package/out/repositories/change-repository.d.ts +40 -0
  287. package/out/repositories/change-repository.d.ts.map +1 -0
  288. package/out/repositories/change-repository.js +150 -0
  289. package/out/repositories/change-repository.js.map +1 -0
  290. package/out/repositories/dependency-repository.d.ts +40 -0
  291. package/out/repositories/dependency-repository.d.ts.map +1 -0
  292. package/out/repositories/dependency-repository.js +129 -0
  293. package/out/repositories/dependency-repository.js.map +1 -0
  294. package/out/repositories/embedding-repository.d.ts +64 -0
  295. package/out/repositories/embedding-repository.d.ts.map +1 -0
  296. package/out/repositories/embedding-repository.js +126 -0
  297. package/out/repositories/embedding-repository.js.map +1 -0
  298. package/out/repositories/importance-repository.d.ts +63 -0
  299. package/out/repositories/importance-repository.d.ts.map +1 -0
  300. package/out/repositories/importance-repository.js +117 -0
  301. package/out/repositories/importance-repository.js.map +1 -0
  302. package/out/repositories/module-repository.d.ts +37 -0
  303. package/out/repositories/module-repository.d.ts.map +1 -0
  304. package/out/repositories/module-repository.js +122 -0
  305. package/out/repositories/module-repository.js.map +1 -0
  306. package/out/repositories/navigation-repository.d.ts +117 -0
  307. package/out/repositories/navigation-repository.d.ts.map +1 -0
  308. package/out/repositories/navigation-repository.js +211 -0
  309. package/out/repositories/navigation-repository.js.map +1 -0
  310. package/out/repositories/symbol-repository.d.ts +37 -0
  311. package/out/repositories/symbol-repository.d.ts.map +1 -0
  312. package/out/repositories/symbol-repository.js +136 -0
  313. package/out/repositories/symbol-repository.js.map +1 -0
  314. package/out/services/cross-dimension-linker.d.ts +45 -0
  315. package/out/services/cross-dimension-linker.d.ts.map +1 -0
  316. package/out/services/cross-dimension-linker.js +98 -0
  317. package/out/services/cross-dimension-linker.js.map +1 -0
  318. package/out/services/importance-scorer.d.ts +47 -0
  319. package/out/services/importance-scorer.d.ts.map +1 -0
  320. package/out/services/importance-scorer.js +188 -0
  321. package/out/services/importance-scorer.js.map +1 -0
  322. package/out/services/ingestion-orchestrator.d.ts +49 -0
  323. package/out/services/ingestion-orchestrator.d.ts.map +1 -0
  324. package/out/services/ingestion-orchestrator.js +140 -0
  325. package/out/services/ingestion-orchestrator.js.map +1 -0
  326. package/out/services/navigation-builder.d.ts +29 -0
  327. package/out/services/navigation-builder.d.ts.map +1 -0
  328. package/out/services/navigation-builder.js +229 -0
  329. package/out/services/navigation-builder.js.map +1 -0
  330. package/out/services/system-model-builder.d.ts +40 -0
  331. package/out/services/system-model-builder.d.ts.map +1 -0
  332. package/out/services/system-model-builder.js +88 -0
  333. package/out/services/system-model-builder.js.map +1 -0
  334. package/out/ui/commands.d.ts +9 -0
  335. package/out/ui/commands.d.ts.map +1 -0
  336. package/out/ui/commands.js +123 -0
  337. package/out/ui/commands.js.map +1 -0
  338. package/out/ui/database-explorer.d.ts +27 -0
  339. package/out/ui/database-explorer.d.ts.map +1 -0
  340. package/out/ui/database-explorer.js +169 -0
  341. package/out/ui/database-explorer.js.map +1 -0
  342. package/out/ui/detail-view-provider.d.ts +86 -0
  343. package/out/ui/detail-view-provider.d.ts.map +1 -0
  344. package/out/ui/detail-view-provider.js +1037 -0
  345. package/out/ui/detail-view-provider.js.map +1 -0
  346. package/out/ui/search-provider.d.ts +30 -0
  347. package/out/ui/search-provider.d.ts.map +1 -0
  348. package/out/ui/search-provider.js +240 -0
  349. package/out/ui/search-provider.js.map +1 -0
  350. package/out/ui/status-provider.d.ts +17 -0
  351. package/out/ui/status-provider.d.ts.map +1 -0
  352. package/out/ui/status-provider.js +76 -0
  353. package/out/ui/status-provider.js.map +1 -0
  354. package/out/validators/consistency-validator.d.ts +37 -0
  355. package/out/validators/consistency-validator.d.ts.map +1 -0
  356. package/out/validators/consistency-validator.js +93 -0
  357. package/out/validators/consistency-validator.js.map +1 -0
  358. package/out/validators/integrity-validator.d.ts +45 -0
  359. package/out/validators/integrity-validator.d.ts.map +1 -0
  360. package/out/validators/integrity-validator.js +115 -0
  361. package/out/validators/integrity-validator.js.map +1 -0
  362. package/package.json +173 -0
  363. package/schemas/sqlite/001_initial_modules.sql +39 -0
  364. package/schemas/sqlite/002_initial_symbols.sql +46 -0
  365. package/schemas/sqlite/003_initial_dependencies.sql +51 -0
  366. package/schemas/sqlite/004_initial_adrs.sql +41 -0
  367. package/schemas/sqlite/005_initial_changes.sql +54 -0
  368. package/schemas/sqlite/006_initial_ingestion.sql +34 -0
  369. package/schemas/sqlite/006_vectors_schema.sql +73 -0
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.VssLoader = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ // Try to import sqlite-vss
40
+ let sqliteVss = null;
41
+ try {
42
+ sqliteVss = require('sqlite-vss');
43
+ }
44
+ catch (error) {
45
+ // sqlite-vss not available, will use fallback
46
+ }
47
+ /**
48
+ * Loads SQLite VSS Extension for vector similarity search.
49
+ * Uses sqlite-vss package if available, otherwise falls back to manual path resolution.
50
+ */
51
+ class VssLoader {
52
+ /**
53
+ * Loads the VSS extension into the given database.
54
+ *
55
+ * @param db The SQLite database instance
56
+ */
57
+ async loadExtension(db) {
58
+ let vssPath = null;
59
+ // Try to use sqlite-vss package's getVssLoadablePath() method
60
+ if (sqliteVss && typeof sqliteVss.getVssLoadablePath === 'function') {
61
+ try {
62
+ vssPath = sqliteVss.getVssLoadablePath();
63
+ console.log(`[VssLoader] Using sqlite-vss package path: ${vssPath}`);
64
+ }
65
+ catch (error) {
66
+ console.warn(`[VssLoader] Failed to get VSS path from sqlite-vss package: ${error}`);
67
+ }
68
+ }
69
+ // Fallback: Try manual path resolution
70
+ if (!vssPath || !fs.existsSync(vssPath)) {
71
+ const platform = process.platform;
72
+ const arch = process.arch;
73
+ vssPath = this.getVssPath(platform, arch);
74
+ }
75
+ if (!vssPath || !fs.existsSync(vssPath)) {
76
+ console.warn(`[VssLoader] VSS Extension not found. Semantic search will use fallback cosine similarity.`);
77
+ return;
78
+ }
79
+ return new Promise((resolve, reject) => {
80
+ try {
81
+ db.loadExtension(vssPath, (err) => {
82
+ if (err) {
83
+ console.warn(`[VssLoader] Failed to load VSS extension: ${err.message}. Semantic search will use fallback cosine similarity.`);
84
+ resolve(); // Nicht abbrechen, System soll auch ohne VSS funktionieren
85
+ }
86
+ else {
87
+ console.log(`[VssLoader] VSS extension loaded successfully from ${vssPath}`);
88
+ resolve();
89
+ }
90
+ });
91
+ }
92
+ catch (error) {
93
+ console.warn(`[VssLoader] Error loading VSS extension: ${error}. Semantic search will use fallback cosine similarity.`);
94
+ resolve(); // Nicht abbrechen
95
+ }
96
+ });
97
+ }
98
+ /**
99
+ * Gets the path to the VSS extension binary for the current platform.
100
+ * Fallback method if sqlite-vss package is not available.
101
+ *
102
+ * @param platform The platform (win32, linux, darwin)
103
+ * @param arch The architecture (x64, arm64, etc.)
104
+ * @returns Path to the VSS extension binary
105
+ */
106
+ getVssPath(platform, arch) {
107
+ const extensionName = platform === 'win32' ? 'vss0.dll' : 'vss0.so';
108
+ const basePath = path.join(__dirname, '..', '..', 'node_modules', 'sqlite-vss');
109
+ // Try different possible paths
110
+ const possiblePaths = [
111
+ path.join(basePath, 'lib', `vss0.${platform}.${arch}.node`),
112
+ path.join(basePath, `vss0.${platform}.${arch}.node`),
113
+ path.join(basePath, 'lib', extensionName),
114
+ path.join(basePath, extensionName)
115
+ ];
116
+ // Return first existing path, or last as fallback
117
+ for (const possiblePath of possiblePaths) {
118
+ if (fs.existsSync(possiblePath)) {
119
+ return possiblePath;
120
+ }
121
+ }
122
+ return possiblePaths[0]; // Return first path as fallback (will be checked by caller)
123
+ }
124
+ /**
125
+ * Checks if VSS extension is available.
126
+ *
127
+ * @returns true if VSS extension is available, false otherwise
128
+ */
129
+ isAvailable() {
130
+ // Try sqlite-vss package first
131
+ if (sqliteVss && typeof sqliteVss.getVssLoadablePath === 'function') {
132
+ try {
133
+ const vssPath = sqliteVss.getVssLoadablePath();
134
+ if (vssPath && fs.existsSync(vssPath)) {
135
+ return true;
136
+ }
137
+ }
138
+ catch (error) {
139
+ // Fall through to manual check (e.g., unsupported platform like Windows)
140
+ }
141
+ }
142
+ // Fallback: Manual path check
143
+ const platform = process.platform;
144
+ const arch = process.arch;
145
+ const vssPath = this.getVssPath(platform, arch);
146
+ return fs.existsSync(vssPath);
147
+ }
148
+ }
149
+ exports.VssLoader = VssLoader;
150
+ //# sourceMappingURL=vss-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vss-loader.js","sourceRoot":"","sources":["../../src/core/vss-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import * as sqlite3 from 'sqlite3';
2
+ import { VssLoader } from './vss-loader';
3
+ /**
4
+ * Manages VSS Virtual Table for vector similarity search.
5
+ * Creates and maintains the embeddings_vss virtual table.
6
+ */
7
+ export declare class VssManager {
8
+ private db;
9
+ private vssLoader;
10
+ private vssAvailable;
11
+ constructor(db: sqlite3.Database, vssLoader: VssLoader);
12
+ /**
13
+ * Initializes VSS Virtual Table.
14
+ * Must be called after VSS extension is loaded.
15
+ *
16
+ * @returns Promise that resolves when VSS is initialized
17
+ */
18
+ initialize(): Promise<void>;
19
+ /**
20
+ * Checks if VSS virtual table exists.
21
+ */
22
+ private checkTableExists;
23
+ /**
24
+ * Creates the VSS virtual table.
25
+ */
26
+ private createVirtualTable;
27
+ /**
28
+ * Inserts or updates an embedding in the VSS virtual table.
29
+ * VSS uses rowid to link to the embeddings table.
30
+ *
31
+ * @param embeddingId The embedding ID (UUID) from the embeddings table
32
+ * @param embeddingVector The embedding vector as Float32Array or Buffer
33
+ */
34
+ upsertEmbedding(embeddingId: string, embeddingVector: Float32Array | Buffer): Promise<void>;
35
+ /**
36
+ * Gets rowid from embedding ID.
37
+ */
38
+ private getRowidFromEmbeddingId;
39
+ /**
40
+ * Checks if a row exists in VSS virtual table.
41
+ */
42
+ private checkRowExists;
43
+ /**
44
+ * Inserts a new embedding into VSS virtual table.
45
+ * VSS expects the vector as a JSON array or BLOB.
46
+ */
47
+ private insertEmbedding;
48
+ /**
49
+ * Deletes an embedding from VSS virtual table by embedding ID.
50
+ *
51
+ * @param embeddingId The embedding ID (UUID) from the embeddings table
52
+ */
53
+ deleteEmbedding(embeddingId: string): Promise<void>;
54
+ /**
55
+ * Deletes an embedding from VSS virtual table by rowid.
56
+ */
57
+ private deleteEmbeddingByRowid;
58
+ /**
59
+ * Performs vector similarity search using VSS.
60
+ *
61
+ * @param queryVector The query embedding vector
62
+ * @param limit Maximum number of results
63
+ * @param dimension Optional dimension filter
64
+ * @param pluginId Plugin ID filter
65
+ * @returns Promise that resolves to array of {rowid, distance, similarity} pairs
66
+ */
67
+ search(queryVector: number[], limit?: number, dimension?: 'X' | 'Y' | 'Z' | 'W' | 'T', pluginId?: string): Promise<Array<{
68
+ rowid: number;
69
+ distance: number;
70
+ similarity: number;
71
+ }>>;
72
+ /**
73
+ * Alternative VSS search syntax (fallback).
74
+ */
75
+ private tryAlternativeSearch;
76
+ /**
77
+ * Checks if VSS is available and initialized.
78
+ */
79
+ isAvailable(): boolean;
80
+ }
81
+ //# sourceMappingURL=vss-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vss-manager.d.ts","sourceRoot":"","sources":["../../src/core/vss-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;;GAGG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,YAAY,CAAkB;gBAE1B,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS;IAKtD;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BjC;;OAEG;YACW,gBAAgB;IAe9B;;OAEG;YACW,kBAAkB;IAmBhC;;;;;;OAMG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CjG;;OAEG;YACW,uBAAuB;IAgBrC;;OAEG;YACW,cAAc;IAiB5B;;;OAGG;YACW,eAAe;IAsB7B;;;;OAIG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBzD;;OAEG;YACW,sBAAsB;IAoBpC;;;;;;;;OAQG;IACG,MAAM,CACR,WAAW,EAAE,MAAM,EAAE,EACrB,KAAK,GAAE,MAAW,EAClB,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EACvC,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAqD1E;;OAEG;YACW,oBAAoB;IAgDlC;;OAEG;IACH,WAAW,IAAI,OAAO;CAGzB"}
@@ -0,0 +1,323 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VssManager = void 0;
4
+ /**
5
+ * Manages VSS Virtual Table for vector similarity search.
6
+ * Creates and maintains the embeddings_vss virtual table.
7
+ */
8
+ class VssManager {
9
+ constructor(db, vssLoader) {
10
+ this.vssAvailable = false;
11
+ this.db = db;
12
+ this.vssLoader = vssLoader;
13
+ }
14
+ /**
15
+ * Initializes VSS Virtual Table.
16
+ * Must be called after VSS extension is loaded.
17
+ *
18
+ * @returns Promise that resolves when VSS is initialized
19
+ */
20
+ async initialize() {
21
+ // Check if VSS is available
22
+ this.vssAvailable = this.vssLoader.isAvailable();
23
+ if (!this.vssAvailable) {
24
+ console.warn('[VssManager] VSS extension not available. Using fallback cosine similarity.');
25
+ return;
26
+ }
27
+ try {
28
+ // Check if virtual table already exists
29
+ const tableExists = await this.checkTableExists();
30
+ if (!tableExists) {
31
+ // Create VSS virtual table
32
+ await this.createVirtualTable();
33
+ console.log('[VssManager] VSS virtual table created successfully');
34
+ }
35
+ else {
36
+ console.log('[VssManager] VSS virtual table already exists');
37
+ }
38
+ }
39
+ catch (error) {
40
+ const errorMsg = error instanceof Error ? error.message : String(error);
41
+ console.warn(`[VssManager] Failed to initialize VSS virtual table: ${errorMsg}. Using fallback cosine similarity.`);
42
+ this.vssAvailable = false;
43
+ }
44
+ }
45
+ /**
46
+ * Checks if VSS virtual table exists.
47
+ */
48
+ async checkTableExists() {
49
+ return new Promise((resolve, reject) => {
50
+ this.db.get(`SELECT name FROM sqlite_master WHERE type='table' AND name='embeddings_vss'`, (err, row) => {
51
+ if (err) {
52
+ reject(err);
53
+ }
54
+ else {
55
+ resolve(row !== undefined);
56
+ }
57
+ });
58
+ });
59
+ }
60
+ /**
61
+ * Creates the VSS virtual table.
62
+ */
63
+ async createVirtualTable() {
64
+ return new Promise((resolve, reject) => {
65
+ // VSS virtual table: embedding_vector(1536) - 1536 dimensions
66
+ this.db.run(`CREATE VIRTUAL TABLE embeddings_vss USING vss0(
67
+ embedding_vector(1536),
68
+ rowid HIDDEN
69
+ )`, (err) => {
70
+ if (err) {
71
+ reject(err);
72
+ }
73
+ else {
74
+ resolve();
75
+ }
76
+ });
77
+ });
78
+ }
79
+ /**
80
+ * Inserts or updates an embedding in the VSS virtual table.
81
+ * VSS uses rowid to link to the embeddings table.
82
+ *
83
+ * @param embeddingId The embedding ID (UUID) from the embeddings table
84
+ * @param embeddingVector The embedding vector as Float32Array or Buffer
85
+ */
86
+ async upsertEmbedding(embeddingId, embeddingVector) {
87
+ if (!this.vssAvailable) {
88
+ return; // Silently skip if VSS not available
89
+ }
90
+ try {
91
+ // Convert to Float32Array if needed
92
+ let vector;
93
+ if (embeddingVector instanceof Buffer) {
94
+ vector = new Float32Array(embeddingVector.buffer, embeddingVector.byteOffset, embeddingVector.length / 4);
95
+ }
96
+ else if (embeddingVector instanceof Float32Array) {
97
+ vector = embeddingVector;
98
+ }
99
+ else {
100
+ // Should not happen, but handle gracefully
101
+ throw new Error(`Invalid embedding vector type: ${typeof embeddingVector}`);
102
+ }
103
+ // Get rowid from embeddings table
104
+ const rowid = await this.getRowidFromEmbeddingId(embeddingId);
105
+ if (rowid === null) {
106
+ console.warn(`[VssManager] Embedding ${embeddingId} not found in embeddings table`);
107
+ return;
108
+ }
109
+ // Check if row exists in VSS
110
+ const exists = await this.checkRowExists(rowid);
111
+ if (exists) {
112
+ // Update existing row - VSS uses DELETE + INSERT for updates
113
+ await this.deleteEmbeddingByRowid(rowid);
114
+ }
115
+ // Insert new row (or re-insert after delete)
116
+ await this.insertEmbedding(rowid, vector);
117
+ }
118
+ catch (error) {
119
+ const errorMsg = error instanceof Error ? error.message : String(error);
120
+ console.warn(`[VssManager] Failed to upsert embedding in VSS: ${errorMsg}`);
121
+ // Don't throw - allow fallback to cosine similarity
122
+ }
123
+ }
124
+ /**
125
+ * Gets rowid from embedding ID.
126
+ */
127
+ async getRowidFromEmbeddingId(embeddingId) {
128
+ return new Promise((resolve, reject) => {
129
+ this.db.get(`SELECT rowid FROM embeddings WHERE id = ?`, [embeddingId], (err, row) => {
130
+ if (err) {
131
+ reject(err);
132
+ }
133
+ else {
134
+ resolve(row ? row.rowid : null);
135
+ }
136
+ });
137
+ });
138
+ }
139
+ /**
140
+ * Checks if a row exists in VSS virtual table.
141
+ */
142
+ async checkRowExists(rowid) {
143
+ return new Promise((resolve, reject) => {
144
+ this.db.get(`SELECT rowid FROM embeddings_vss WHERE rowid = ?`, [rowid], (err, row) => {
145
+ if (err) {
146
+ // If table doesn't exist or query fails, assume row doesn't exist
147
+ resolve(false);
148
+ }
149
+ else {
150
+ resolve(row !== undefined);
151
+ }
152
+ });
153
+ });
154
+ }
155
+ /**
156
+ * Inserts a new embedding into VSS virtual table.
157
+ * VSS expects the vector as a JSON array or BLOB.
158
+ */
159
+ async insertEmbedding(rowid, vector) {
160
+ return new Promise((resolve, reject) => {
161
+ // VSS expects vector as JSON array or as BLOB
162
+ // Convert Float32Array to array for JSON
163
+ const vectorArray = Array.from(vector);
164
+ // Use INSERT with rowid and embedding_vector
165
+ // VSS will handle the vector format internally
166
+ this.db.run(`INSERT INTO embeddings_vss(rowid, embedding_vector) VALUES (?, ?)`, [rowid, JSON.stringify(vectorArray)], (err) => {
167
+ if (err) {
168
+ reject(err);
169
+ }
170
+ else {
171
+ resolve();
172
+ }
173
+ });
174
+ });
175
+ }
176
+ /**
177
+ * Deletes an embedding from VSS virtual table by embedding ID.
178
+ *
179
+ * @param embeddingId The embedding ID (UUID) from the embeddings table
180
+ */
181
+ async deleteEmbedding(embeddingId) {
182
+ if (!this.vssAvailable) {
183
+ return;
184
+ }
185
+ try {
186
+ const rowid = await this.getRowidFromEmbeddingId(embeddingId);
187
+ if (rowid === null) {
188
+ return; // Embedding not found
189
+ }
190
+ await this.deleteEmbeddingByRowid(rowid);
191
+ }
192
+ catch (error) {
193
+ const errorMsg = error instanceof Error ? error.message : String(error);
194
+ console.warn(`[VssManager] Failed to delete embedding from VSS: ${errorMsg}`);
195
+ }
196
+ }
197
+ /**
198
+ * Deletes an embedding from VSS virtual table by rowid.
199
+ */
200
+ async deleteEmbeddingByRowid(rowid) {
201
+ if (!this.vssAvailable) {
202
+ return;
203
+ }
204
+ return new Promise((resolve, reject) => {
205
+ this.db.run(`DELETE FROM embeddings_vss WHERE rowid = ?`, [rowid], (err) => {
206
+ if (err) {
207
+ reject(err);
208
+ }
209
+ else {
210
+ resolve();
211
+ }
212
+ });
213
+ });
214
+ }
215
+ /**
216
+ * Performs vector similarity search using VSS.
217
+ *
218
+ * @param queryVector The query embedding vector
219
+ * @param limit Maximum number of results
220
+ * @param dimension Optional dimension filter
221
+ * @param pluginId Plugin ID filter
222
+ * @returns Promise that resolves to array of {rowid, distance, similarity} pairs
223
+ */
224
+ async search(queryVector, limit = 10, dimension, pluginId) {
225
+ if (!this.vssAvailable) {
226
+ throw new Error('VSS not available. Use fallback cosine similarity.');
227
+ }
228
+ try {
229
+ // VSS uses a special search syntax
230
+ // Build query with JOIN to embeddings table for filtering
231
+ let query = `
232
+ SELECT
233
+ e.rowid,
234
+ vss_distance_l2(e.embedding_vector, ?) as distance
235
+ FROM embeddings_vss e
236
+ `;
237
+ const params = [JSON.stringify(queryVector)];
238
+ // Add dimension filter if provided
239
+ if (dimension && pluginId) {
240
+ query += ` JOIN embeddings em ON e.rowid = em.rowid
241
+ WHERE em.dimension = ? AND em.plugin_id = ?`;
242
+ params.push(dimension, pluginId);
243
+ }
244
+ query += ` ORDER BY distance LIMIT ?`;
245
+ params.push(limit);
246
+ return new Promise((resolve, reject) => {
247
+ this.db.all(query, params, (err, rows) => {
248
+ if (err) {
249
+ // Try alternative VSS syntax if first fails
250
+ this.tryAlternativeSearch(queryVector, limit, dimension, pluginId)
251
+ .then(resolve)
252
+ .catch(reject);
253
+ }
254
+ else {
255
+ // VSS returns distance (lower = more similar)
256
+ // Convert to similarity score (higher = more similar)
257
+ const results = rows.map(row => ({
258
+ rowid: row.rowid,
259
+ distance: row.distance,
260
+ // Convert distance to similarity (1 / (1 + distance))
261
+ similarity: 1 / (1 + Math.max(row.distance, 0))
262
+ }));
263
+ resolve(results);
264
+ }
265
+ });
266
+ });
267
+ }
268
+ catch (error) {
269
+ const errorMsg = error instanceof Error ? error.message : String(error);
270
+ throw new Error(`VSS search failed: ${errorMsg}`);
271
+ }
272
+ }
273
+ /**
274
+ * Alternative VSS search syntax (fallback).
275
+ */
276
+ async tryAlternativeSearch(queryVector, limit, dimension, pluginId) {
277
+ // Alternative: Use vss_search function directly
278
+ let query = `
279
+ SELECT
280
+ rowid,
281
+ distance
282
+ FROM (
283
+ SELECT
284
+ rowid,
285
+ vss_search(embedding_vector, ?) as distance
286
+ FROM embeddings_vss
287
+ )
288
+ `;
289
+ const params = [JSON.stringify(queryVector)];
290
+ if (dimension && pluginId) {
291
+ query += ` WHERE rowid IN (
292
+ SELECT rowid FROM embeddings
293
+ WHERE dimension = ? AND plugin_id = ?
294
+ )`;
295
+ params.push(dimension, pluginId);
296
+ }
297
+ query += ` ORDER BY distance LIMIT ?`;
298
+ params.push(limit);
299
+ return new Promise((resolve, reject) => {
300
+ this.db.all(query, params, (err, rows) => {
301
+ if (err) {
302
+ reject(err);
303
+ }
304
+ else {
305
+ const results = rows.map(row => ({
306
+ rowid: row.rowid,
307
+ distance: row.distance || 0,
308
+ similarity: 1 / (1 + Math.max(row.distance || 0, 0))
309
+ }));
310
+ resolve(results);
311
+ }
312
+ });
313
+ });
314
+ }
315
+ /**
316
+ * Checks if VSS is available and initialized.
317
+ */
318
+ isAvailable() {
319
+ return this.vssAvailable;
320
+ }
321
+ }
322
+ exports.VssManager = VssManager;
323
+ //# sourceMappingURL=vss-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vss-manager.js","sourceRoot":"","sources":["../../src/core/vss-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import * as sqlite3 from 'sqlite3';
2
+ import { VssLoader } from './vss-loader';
3
+ import { VectorDatabase } from './vector-database-interface';
4
+ /**
5
+ * VSS-based vector database implementation.
6
+ * Uses SQLite VSS Extension for optimized vector similarity search.
7
+ * Only available on macOS and Linux (Windows not supported).
8
+ */
9
+ export declare class VssVectorDatabase implements VectorDatabase {
10
+ private db;
11
+ private vssLoader;
12
+ private vssAvailable;
13
+ private readonly embeddingDimensions;
14
+ constructor(db: sqlite3.Database, vssLoader: VssLoader);
15
+ /**
16
+ * Checks if VSS extension is available.
17
+ */
18
+ isAvailable(): boolean;
19
+ /**
20
+ * Initializes VSS Virtual Table.
21
+ * Must be called after VSS extension is loaded.
22
+ *
23
+ * @returns Promise that resolves when VSS is initialized
24
+ */
25
+ initialize(): Promise<void>;
26
+ /**
27
+ * Checks if the VSS virtual table exists.
28
+ */
29
+ private checkVirtualTableExists;
30
+ /**
31
+ * Creates the VSS virtual table.
32
+ */
33
+ private createVirtualTable;
34
+ /**
35
+ * Gets the rowid for an embedding ID.
36
+ */
37
+ private getRowidFromEmbeddingId;
38
+ /**
39
+ * Gets the embedding ID from a rowid.
40
+ */
41
+ getEmbeddingIdFromRowid(rowid: number): Promise<string | null>;
42
+ /**
43
+ * Checks if a row exists in the VSS virtual table.
44
+ */
45
+ private checkRowExists;
46
+ /**
47
+ * Inserts an embedding into the VSS virtual table.
48
+ */
49
+ private insertEmbedding;
50
+ /**
51
+ * Deletes an embedding from the VSS virtual table.
52
+ */
53
+ private deleteEmbedding;
54
+ /**
55
+ * Upserts an embedding into the VSS virtual table.
56
+ */
57
+ upsertEmbedding(embeddingId: string, embeddingVector: Float32Array | number[]): Promise<void>;
58
+ /**
59
+ * Searches for similar embeddings using VSS.
60
+ */
61
+ search(queryEmbedding: Float32Array | number[], limit?: number, dimension?: 'X' | 'Y' | 'Z' | 'W' | 'T', pluginId?: string): Promise<Array<{
62
+ rowid: number;
63
+ distance: number;
64
+ similarity?: number;
65
+ }>>;
66
+ /**
67
+ * Alternative search method (fallback if MATCH syntax doesn't work).
68
+ */
69
+ private tryAlternativeSearch;
70
+ }
71
+ //# sourceMappingURL=vss-vector-database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vss-vector-database.d.ts","sourceRoot":"","sources":["../../src/core/vss-vector-database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACpD,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAgB;gBAExC,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS;IAKtD;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BjC;;OAEG;YACW,uBAAuB;IAerC;;OAEG;YACW,kBAAkB;IAkBhC;;OAEG;YACW,uBAAuB;IAgBrC;;OAEG;IACG,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgBpE;;OAEG;YACW,cAAc;IAgB5B;;OAEG;YACW,eAAe;IAkB7B;;OAEG;YACW,eAAe;IAgB7B;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCnG;;OAEG;IACG,MAAM,CACR,cAAc,EAAE,YAAY,GAAG,MAAM,EAAE,EACvC,KAAK,GAAE,MAAW,EAClB,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EACvC,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAmD3E;;OAEG;YACW,oBAAoB;CA0CrC"}