@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,276 @@
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.ChromaDbVectorDatabase = void 0;
37
+ const path = __importStar(require("path"));
38
+ /**
39
+ * ChromaDB-based vector database implementation for Windows.
40
+ * Uses ChromaDB as an external vector database via HTTP API.
41
+ *
42
+ * Note: ChromaDB must be running as a local server or embedded instance.
43
+ * For embedded mode, ChromaDB requires Python, but we can use the HTTP client.
44
+ */
45
+ class ChromaDbVectorDatabase {
46
+ constructor(db, workspaceRoot) {
47
+ this.chromaClient = null;
48
+ this.collection = null;
49
+ this.available = false;
50
+ this.embeddingDimensions = 1536;
51
+ this.collectionName = 'embeddings';
52
+ this.db = db;
53
+ this.workspaceRoot = workspaceRoot;
54
+ }
55
+ /**
56
+ * Checks if ChromaDB is available.
57
+ */
58
+ isAvailable() {
59
+ return this.available;
60
+ }
61
+ /**
62
+ * Initializes ChromaDB connection and collection.
63
+ */
64
+ async initialize() {
65
+ try {
66
+ // Try to import chromadb package
67
+ let ChromaClient;
68
+ try {
69
+ const chromadb = require('chromadb');
70
+ ChromaClient = chromadb.ChromaClient;
71
+ if (!ChromaClient) {
72
+ console.warn('[ChromaDbVectorDatabase] ChromaClient not found in chromadb package.');
73
+ this.available = false;
74
+ return;
75
+ }
76
+ }
77
+ catch (importError) {
78
+ console.warn('[ChromaDbVectorDatabase] chromadb package not found.');
79
+ console.warn('[ChromaDbVectorDatabase] Please install chromadb: npm install chromadb');
80
+ console.warn('[ChromaDbVectorDatabase] For now, falling back to cosine similarity.');
81
+ this.available = false;
82
+ return;
83
+ }
84
+ // Initialize ChromaDB client (embedded mode)
85
+ // For embedded mode, we need to specify a persistent directory
86
+ const chromaPath = path.join(this.workspaceRoot, '.database-plugin', 'chromadb');
87
+ try {
88
+ // Use ChromaDB server (default: localhost:8000)
89
+ // Note: ChromaDB server needs to be started separately: chroma run --host localhost --port 8000
90
+ this.chromaClient = new ChromaClient({
91
+ host: 'localhost',
92
+ port: 8000
93
+ });
94
+ console.log(`[ChromaDbVectorDatabase] Initialized ChromaDB client (server: localhost:8000)`);
95
+ }
96
+ catch (serverError) {
97
+ console.warn(`[ChromaDbVectorDatabase] Failed to initialize ChromaDB client: ${serverError}`);
98
+ this.available = false;
99
+ return;
100
+ }
101
+ // Get or create collection (without default embedding function since we provide our own embeddings)
102
+ try {
103
+ this.collection = await this.chromaClient.getOrCreateCollection({
104
+ name: this.collectionName,
105
+ metadata: {
106
+ description: 'Embeddings for 5D Database Plugin V-Dimension'
107
+ }
108
+ // Note: We don't specify an embedding function since we provide embeddings directly
109
+ });
110
+ this.available = true;
111
+ console.log('[ChromaDbVectorDatabase] ChromaDB initialized successfully.');
112
+ }
113
+ catch (collectionError) {
114
+ console.warn(`[ChromaDbVectorDatabase] Failed to get/create collection: ${collectionError}`);
115
+ this.available = false;
116
+ }
117
+ }
118
+ catch (error) {
119
+ console.warn(`[ChromaDbVectorDatabase] Initialization failed: ${error}`);
120
+ this.available = false;
121
+ }
122
+ }
123
+ /**
124
+ * Upserts an embedding into ChromaDB.
125
+ */
126
+ async upsertEmbedding(embeddingId, embeddingVector) {
127
+ if (!this.available || !this.collection) {
128
+ return;
129
+ }
130
+ try {
131
+ // Convert to number array
132
+ let vector;
133
+ if (embeddingVector instanceof Float32Array) {
134
+ vector = Array.from(embeddingVector);
135
+ }
136
+ else {
137
+ vector = embeddingVector;
138
+ }
139
+ // Get metadata from embeddings table (dimension, plugin_id, etc.)
140
+ // We need to query by ID directly since we don't have pluginId here
141
+ const embedding = await this.getEmbeddingById(embeddingId);
142
+ if (!embedding) {
143
+ console.warn(`[ChromaDbVectorDatabase] Embedding ${embeddingId} not found in embeddings table`);
144
+ return;
145
+ }
146
+ // Upsert to ChromaDB
147
+ await this.collection.upsert({
148
+ ids: [embeddingId],
149
+ embeddings: [vector],
150
+ metadatas: [{
151
+ dimension: embedding.dimension,
152
+ entity_id: embedding.entity_id,
153
+ external_id: embedding.external_id,
154
+ plugin_id: embedding.plugin_id,
155
+ embedding_model: embedding.embedding_model
156
+ }]
157
+ });
158
+ }
159
+ catch (error) {
160
+ console.warn(`[ChromaDbVectorDatabase] Failed to upsert embedding: ${error}`);
161
+ }
162
+ }
163
+ /**
164
+ * Searches for similar embeddings using ChromaDB.
165
+ */
166
+ async search(queryEmbedding, limit, dimension, pluginId) {
167
+ if (!this.available || !this.collection) {
168
+ return [];
169
+ }
170
+ try {
171
+ // Convert query embedding to number array
172
+ let queryVector;
173
+ if (queryEmbedding instanceof Float32Array) {
174
+ queryVector = Array.from(queryEmbedding);
175
+ }
176
+ else {
177
+ queryVector = queryEmbedding;
178
+ }
179
+ // Build where clause for filtering
180
+ // ChromaDB requires $and operator when multiple conditions are present
181
+ let where = undefined;
182
+ const conditions = [];
183
+ if (dimension) {
184
+ conditions.push({ dimension: dimension });
185
+ }
186
+ if (pluginId) {
187
+ conditions.push({ plugin_id: pluginId });
188
+ }
189
+ if (conditions.length === 1) {
190
+ where = conditions[0];
191
+ }
192
+ else if (conditions.length > 1) {
193
+ where = { $and: conditions };
194
+ }
195
+ // Query ChromaDB
196
+ const results = await this.collection.query({
197
+ queryEmbeddings: [queryVector],
198
+ nResults: limit,
199
+ where: where
200
+ });
201
+ // Map ChromaDB results to our format
202
+ // ChromaDB returns: { ids: string[][], distances: number[][], metadatas: any[][], ... }
203
+ const mappedResults = [];
204
+ if (results.ids && results.ids[0]) {
205
+ for (let i = 0; i < results.ids[0].length; i++) {
206
+ const embeddingId = results.ids[0][i];
207
+ const distance = results.distances?.[0]?.[i] || 0;
208
+ // Get rowid from embeddings table
209
+ const rowid = await this.getRowidFromEmbeddingId(embeddingId);
210
+ if (rowid === null) {
211
+ continue;
212
+ }
213
+ // Convert distance to similarity (ChromaDB uses cosine distance, 0 = identical, 1 = orthogonal)
214
+ const similarity = 1 - Math.max(0, Math.min(1, distance));
215
+ mappedResults.push({
216
+ rowid: rowid,
217
+ distance: distance,
218
+ similarity: similarity
219
+ });
220
+ }
221
+ }
222
+ return mappedResults;
223
+ }
224
+ catch (error) {
225
+ console.warn(`[ChromaDbVectorDatabase] Search failed: ${error}`);
226
+ return [];
227
+ }
228
+ }
229
+ /**
230
+ * Gets the embedding ID from a rowid.
231
+ */
232
+ async getEmbeddingIdFromRowid(rowid) {
233
+ return new Promise((resolve, reject) => {
234
+ this.db.get(`SELECT id FROM embeddings WHERE rowid = ?`, [rowid], (err, row) => {
235
+ if (err) {
236
+ reject(err);
237
+ }
238
+ else {
239
+ resolve(row ? row.id : null);
240
+ }
241
+ });
242
+ });
243
+ }
244
+ /**
245
+ * Gets the rowid for an embedding ID.
246
+ */
247
+ async getRowidFromEmbeddingId(embeddingId) {
248
+ return new Promise((resolve, reject) => {
249
+ this.db.get(`SELECT rowid FROM embeddings WHERE id = ?`, [embeddingId], (err, row) => {
250
+ if (err) {
251
+ reject(err);
252
+ }
253
+ else {
254
+ resolve(row ? row.rowid : null);
255
+ }
256
+ });
257
+ });
258
+ }
259
+ /**
260
+ * Gets an embedding by ID (helper method).
261
+ */
262
+ async getEmbeddingById(embeddingId) {
263
+ return new Promise((resolve, reject) => {
264
+ this.db.get(`SELECT * FROM embeddings WHERE id = ?`, [embeddingId], (err, row) => {
265
+ if (err) {
266
+ reject(err);
267
+ }
268
+ else {
269
+ resolve(row || null);
270
+ }
271
+ });
272
+ });
273
+ }
274
+ }
275
+ exports.ChromaDbVectorDatabase = ChromaDbVectorDatabase;
276
+ //# sourceMappingURL=chromadb-vector-database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromadb-vector-database.js","sourceRoot":"","sources":["../../src/core/chromadb-vector-database.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAA6B;AAI7B;;;;;;GAMG;AACH,MAAa,sBAAsB;IAS/B,YAAY,EAAoB,EAAE,aAAqB;QAN/C,iBAAY,GAAe,IAAI,CAAC;QAChC,eAAU,GAAe,IAAI,CAAC;QAC9B,cAAS,GAAY,KAAK,CAAC;QAClB,wBAAmB,GAAW,IAAI,CAAC;QACnC,mBAAc,GAAW,YAAY,CAAC;QAGnD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,WAAW;QACP,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACZ,IAAI,CAAC;YACD,iCAAiC;YACjC,IAAI,YAAiB,CAAC;YACtB,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;gBACrC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;gBAErC,IAAI,CAAC,YAAY,EAAE,CAAC;oBAChB,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;oBACrF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,OAAO;gBACX,CAAC;YACL,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;gBACrE,OAAO,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;gBACvF,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;gBACrF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,OAAO;YACX,CAAC;YAED,6CAA6C;YAC7C,+DAA+D;YAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC;YAEjF,IAAI,CAAC;gBACD,gDAAgD;gBAChD,gGAAgG;gBAChG,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC;oBACjC,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,IAAI;iBACb,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;YACjG,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,kEAAkE,WAAW,EAAE,CAAC,CAAC;gBAC9F,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,OAAO;YACX,CAAC;YAED,oGAAoG;YACpG,IAAI,CAAC;gBACD,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC;oBAC5D,IAAI,EAAE,IAAI,CAAC,cAAc;oBACzB,QAAQ,EAAE;wBACN,WAAW,EAAE,+CAA+C;qBAC/D;oBACD,oFAAoF;iBACvF,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,eAAe,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,6DAA6D,eAAe,EAAE,CAAC,CAAC;gBAC7F,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAC3B,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,mDAAmD,KAAK,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,eAAwC;QAC/E,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,OAAO;QACX,CAAC;QAED,IAAI,CAAC;YACD,0BAA0B;YAC1B,IAAI,MAAgB,CAAC;YACrB,IAAI,eAAe,YAAY,YAAY,EAAE,CAAC;gBAC1C,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,eAAe,CAAC;YAC7B,CAAC;YAED,kEAAkE;YAClE,oEAAoE;YACpE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAE3D,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,sCAAsC,WAAW,gCAAgC,CAAC,CAAC;gBAChG,OAAO;YACX,CAAC;YAED,qBAAqB;YACrB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBACzB,GAAG,EAAE,CAAC,WAAW,CAAC;gBAClB,UAAU,EAAE,CAAC,MAAM,CAAC;gBACpB,SAAS,EAAE,CAAC;wBACR,SAAS,EAAE,SAAS,CAAC,SAAS;wBAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;wBAC9B,WAAW,EAAE,SAAS,CAAC,WAAW;wBAClC,SAAS,EAAE,SAAS,CAAC,SAAS;wBAC9B,eAAe,EAAE,SAAS,CAAC,eAAe;qBAC7C,CAAC;aACL,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,wDAAwD,KAAK,EAAE,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACR,cAAuC,EACvC,KAAa,EACb,SAAuC,EACvC,QAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,OAAO,EAAE,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACD,0CAA0C;YAC1C,IAAI,WAAqB,CAAC;YAC1B,IAAI,cAAc,YAAY,YAAY,EAAE,CAAC;gBACzC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACJ,WAAW,GAAG,cAAc,CAAC;YACjC,CAAC;YAED,mCAAmC;YACnC,uEAAuE;YACvE,IAAI,KAAK,GAAQ,SAAS,CAAC;YAC3B,MAAM,UAAU,GAAU,EAAE,CAAC;YAC7B,IAAI,SAAS,EAAE,CAAC;gBACZ,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACX,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;iBAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,KAAK,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACjC,CAAC;YAED,iBAAiB;YACjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBACxC,eAAe,EAAE,CAAC,WAAW,CAAC;gBAC9B,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,qCAAqC;YACrC,wFAAwF;YACxF,MAAM,aAAa,GAAoE,EAAE,CAAC;YAE1F,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAElD,kCAAkC;oBAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;oBAC9D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACjB,SAAS;oBACb,CAAC;oBAED,gGAAgG;oBAChG,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAE1D,aAAa,CAAC,IAAI,CAAC;wBACf,KAAK,EAAE,KAAK;wBACZ,QAAQ,EAAE,QAAQ;wBAClB,UAAU,EAAE,UAAU;qBACzB,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAED,OAAO,aAAa,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,2CAA2C,KAAK,EAAE,CAAC,CAAC;YACjE,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAAC,KAAa;QACvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,EAAE,CAAC,GAAG,CACP,2CAA2C,EAC3C,CAAC,KAAK,CAAC,EACP,CAAC,GAAG,EAAE,GAA+B,EAAE,EAAE;gBACrC,IAAI,GAAG,EAAE,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB,CAAC,WAAmB;QACrD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,EAAE,CAAC,GAAG,CACP,2CAA2C,EAC3C,CAAC,WAAW,CAAC,EACb,CAAC,GAAG,EAAE,GAAkC,EAAE,EAAE;gBACxC,IAAI,GAAG,EAAE,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,WAAmB;QAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,EAAE,CAAC,GAAG,CACP,uCAAuC,EACvC,CAAC,WAAW,CAAC,EACb,CAAC,GAAG,EAAE,GAAQ,EAAE,EAAE;gBACd,IAAI,GAAG,EAAE,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;gBACzB,CAAC;YACL,CAAC,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAtQD,wDAsQC"}
@@ -0,0 +1,43 @@
1
+ import * as vscode from 'vscode';
2
+ /**
3
+ * Utility class for finding the docs directory across multiple workspace folders
4
+ * and parent directories. Ensures deterministic behavior by sorting workspace folders.
5
+ */
6
+ export declare class DocsPathResolver {
7
+ /**
8
+ * Finds the docs directory by searching all workspace folders and optionally
9
+ * parent directories. Returns the first found docs directory or null.
10
+ *
11
+ * @param workspaceFolders Array of workspace folders (can be empty)
12
+ * @param searchParentDirectories Whether to search in parent directories if not found in workspace folders
13
+ * @param maxParentDepth Maximum depth to search in parent directories (default: 5)
14
+ * @returns The path to the docs directory or null if not found
15
+ */
16
+ static findDocsDirectory(workspaceFolders: readonly vscode.WorkspaceFolder[] | undefined, searchParentDirectories?: boolean, maxParentDepth?: number): string | null;
17
+ /**
18
+ * Checks if a docs directory exists in the given directory.
19
+ *
20
+ * @param dir The directory to check
21
+ * @returns The path to the docs directory if it exists, null otherwise
22
+ */
23
+ static findDocsInDirectory(dir: string): string | null;
24
+ /**
25
+ * Searches for a docs directory in parent directories, starting from the given directory.
26
+ * Stops when maxDepth is reached or when the root directory is reached.
27
+ *
28
+ * @param startDir The directory to start searching from
29
+ * @param maxDepth Maximum number of parent levels to search (default: 5)
30
+ * @returns The path to the docs directory if found, null otherwise
31
+ */
32
+ static findDocsInParentDirectories(startDir: string, maxDepth?: number): string | null;
33
+ /**
34
+ * Finds the docs directory from a given path (for CLI usage).
35
+ * Searches in the directory and parent directories.
36
+ *
37
+ * @param startPath The path to start searching from
38
+ * @param maxDepth Maximum number of parent levels to search (default: 5)
39
+ * @returns The path to the docs directory if found, null otherwise
40
+ */
41
+ static findDocsDirectoryFromPath(startPath: string, maxDepth?: number): string | null;
42
+ }
43
+ //# sourceMappingURL=docs-path-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-path-resolver.d.ts","sourceRoot":"","sources":["../../src/core/docs-path-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAIjC;;;GAGG;AACH,qBAAa,gBAAgB;IACzB;;;;;;;;OAQG;WACW,iBAAiB,CAC3B,gBAAgB,EAAE,SAAS,MAAM,CAAC,eAAe,EAAE,GAAG,SAAS,EAC/D,uBAAuB,GAAE,OAAc,EACvC,cAAc,GAAE,MAAU,GAC3B,MAAM,GAAG,IAAI;IA6BhB;;;;;OAKG;WACW,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAa7D;;;;;;;OAOG;WACW,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,GAAG,IAAI;IAwBhG;;;;;;;OAOG;WACW,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,GAAG,IAAI;CAUlG"}
@@ -0,0 +1,137 @@
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.DocsPathResolver = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ /**
40
+ * Utility class for finding the docs directory across multiple workspace folders
41
+ * and parent directories. Ensures deterministic behavior by sorting workspace folders.
42
+ */
43
+ class DocsPathResolver {
44
+ /**
45
+ * Finds the docs directory by searching all workspace folders and optionally
46
+ * parent directories. Returns the first found docs directory or null.
47
+ *
48
+ * @param workspaceFolders Array of workspace folders (can be empty)
49
+ * @param searchParentDirectories Whether to search in parent directories if not found in workspace folders
50
+ * @param maxParentDepth Maximum depth to search in parent directories (default: 5)
51
+ * @returns The path to the docs directory or null if not found
52
+ */
53
+ static findDocsDirectory(workspaceFolders, searchParentDirectories = true, maxParentDepth = 5) {
54
+ // First, search in all workspace folders (deterministically sorted)
55
+ if (workspaceFolders && workspaceFolders.length > 0) {
56
+ // Sort workspace folders alphabetically for determinism
57
+ const sortedFolders = [...workspaceFolders].sort((a, b) => a.uri.fsPath.localeCompare(b.uri.fsPath));
58
+ for (const folder of sortedFolders) {
59
+ const docsPath = this.findDocsInDirectory(folder.uri.fsPath);
60
+ if (docsPath) {
61
+ return docsPath;
62
+ }
63
+ }
64
+ // If not found in workspace folders and searchParentDirectories is true,
65
+ // search in parent directories of the first workspace folder
66
+ if (searchParentDirectories && sortedFolders.length > 0) {
67
+ const firstFolderPath = sortedFolders[0].uri.fsPath;
68
+ const parentDocsPath = this.findDocsInParentDirectories(firstFolderPath, maxParentDepth);
69
+ if (parentDocsPath) {
70
+ return parentDocsPath;
71
+ }
72
+ }
73
+ }
74
+ return null;
75
+ }
76
+ /**
77
+ * Checks if a docs directory exists in the given directory.
78
+ *
79
+ * @param dir The directory to check
80
+ * @returns The path to the docs directory if it exists, null otherwise
81
+ */
82
+ static findDocsInDirectory(dir) {
83
+ const docsPath = path.join(dir, 'docs');
84
+ if (fs.existsSync(docsPath)) {
85
+ const stats = fs.statSync(docsPath);
86
+ if (stats.isDirectory()) {
87
+ return docsPath;
88
+ }
89
+ }
90
+ return null;
91
+ }
92
+ /**
93
+ * Searches for a docs directory in parent directories, starting from the given directory.
94
+ * Stops when maxDepth is reached or when the root directory is reached.
95
+ *
96
+ * @param startDir The directory to start searching from
97
+ * @param maxDepth Maximum number of parent levels to search (default: 5)
98
+ * @returns The path to the docs directory if found, null otherwise
99
+ */
100
+ static findDocsInParentDirectories(startDir, maxDepth = 5) {
101
+ let currentDir = path.resolve(startDir);
102
+ let depth = 0;
103
+ while (depth < maxDepth) {
104
+ const docsPath = this.findDocsInDirectory(currentDir);
105
+ if (docsPath) {
106
+ return docsPath;
107
+ }
108
+ const parentDir = path.dirname(currentDir);
109
+ // Stop if we've reached the root (parent equals current)
110
+ if (parentDir === currentDir) {
111
+ break;
112
+ }
113
+ currentDir = parentDir;
114
+ depth++;
115
+ }
116
+ return null;
117
+ }
118
+ /**
119
+ * Finds the docs directory from a given path (for CLI usage).
120
+ * Searches in the directory and parent directories.
121
+ *
122
+ * @param startPath The path to start searching from
123
+ * @param maxDepth Maximum number of parent levels to search (default: 5)
124
+ * @returns The path to the docs directory if found, null otherwise
125
+ */
126
+ static findDocsDirectoryFromPath(startPath, maxDepth = 5) {
127
+ // First check in the start directory
128
+ const docsPath = this.findDocsInDirectory(startPath);
129
+ if (docsPath) {
130
+ return docsPath;
131
+ }
132
+ // Then search in parent directories
133
+ return this.findDocsInParentDirectories(startPath, maxDepth);
134
+ }
135
+ }
136
+ exports.DocsPathResolver = DocsPathResolver;
137
+ //# sourceMappingURL=docs-path-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-path-resolver.js","sourceRoot":"","sources":["../../src/core/docs-path-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { MultiDbManager, Dimension } from './multi-db-manager';
2
+ /**
3
+ * ID mapping record for external to internal ID translation
4
+ */
5
+ export interface IdMapping {
6
+ internal_id: string;
7
+ external_id: string;
8
+ plugin_id: string;
9
+ }
10
+ /**
11
+ * Manages ID mappings between external IDs (from documentation) and internal DB IDs (UUIDs).
12
+ * Each dimension has its own ID mapping table.
13
+ */
14
+ export declare class IdMapper {
15
+ private dbManager;
16
+ /**
17
+ * Creates a new IdMapper instance.
18
+ *
19
+ * @param dbManager The MultiDbManager instance
20
+ */
21
+ constructor(dbManager: MultiDbManager);
22
+ /**
23
+ * Gets the table name for ID mappings for a dimension.
24
+ *
25
+ * @param dimension The dimension
26
+ * @returns The table name
27
+ */
28
+ private getMappingTableName;
29
+ /**
30
+ * Maps an external ID to an internal ID for a dimension.
31
+ * If the mapping doesn't exist, creates a new one.
32
+ *
33
+ * @param dimension The dimension
34
+ * @param externalId The external ID (e.g., symbol_id from JSONL, adr_number)
35
+ * @param internalId The internal UUID
36
+ * @param pluginId The plugin ID
37
+ * @returns Promise that resolves when the mapping is stored
38
+ */
39
+ setMapping(dimension: Dimension, externalId: string, internalId: string, pluginId: string): Promise<void>;
40
+ /**
41
+ * Gets the internal ID for an external ID.
42
+ *
43
+ * @param dimension The dimension
44
+ * @param externalId The external ID
45
+ * @param pluginId The plugin ID
46
+ * @returns Promise that resolves to the internal ID, or null if not found
47
+ */
48
+ getInternalId(dimension: Dimension, externalId: string, pluginId: string): Promise<string | null>;
49
+ /**
50
+ * Gets the external ID for an internal ID.
51
+ *
52
+ * @param dimension The dimension
53
+ * @param internalId The internal UUID
54
+ * @param pluginId The plugin ID
55
+ * @returns Promise that resolves to the external ID, or null if not found
56
+ */
57
+ getExternalId(dimension: Dimension, internalId: string, pluginId: string): Promise<string | null>;
58
+ /**
59
+ * Deletes a mapping for an external ID.
60
+ *
61
+ * @param dimension The dimension
62
+ * @param externalId The external ID
63
+ * @param pluginId The plugin ID
64
+ * @returns Promise that resolves when the mapping is deleted
65
+ */
66
+ deleteMapping(dimension: Dimension, externalId: string, pluginId: string): Promise<void>;
67
+ }
68
+ //# sourceMappingURL=id-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-mapper.d.ts","sourceRoot":"","sources":["../../src/core/id-mapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,SAAS,CAAiB;IAElC;;;;OAIG;gBACS,SAAS,EAAE,cAAc;IAIrC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;;;;;;;;OASG;IACU,UAAU,CACnB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAmBhB;;;;;;;OAOG;IACU,aAAa,CACtB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAqBzB;;;;;;;OAOG;IACU,aAAa,CACtB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAqBzB;;;;;;;OAOG;IACU,aAAa,CACtB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;CAkBnB"}