@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,235 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SearchApi = void 0;
4
+ const module_api_1 = require("./module-api");
5
+ const symbol_api_1 = require("./symbol-api");
6
+ const adr_api_1 = require("./adr-api");
7
+ const dependency_api_1 = require("./dependency-api");
8
+ const change_api_1 = require("./change-api");
9
+ /**
10
+ * API for keyword search across all 5 dimensions.
11
+ */
12
+ class SearchApi {
13
+ constructor(dbManager) {
14
+ this.dbManager = dbManager;
15
+ this.moduleApi = new module_api_1.ModuleApi(dbManager);
16
+ this.symbolApi = new symbol_api_1.SymbolApi(dbManager);
17
+ this.adrApi = new adr_api_1.AdrApi(dbManager);
18
+ this.dependencyApi = new dependency_api_1.DependencyApi(dbManager);
19
+ this.changeApi = new change_api_1.ChangeApi(dbManager);
20
+ }
21
+ /**
22
+ * Searches across all dimensions.
23
+ */
24
+ async searchAll(query, pluginId, options = {}) {
25
+ const limit = options.limit || 20;
26
+ const caseSensitive = options.caseSensitive || false;
27
+ const results = [];
28
+ // Search in parallel across all dimensions
29
+ const [modules, symbols, adrs, dependencies, changes] = await Promise.all([
30
+ this.searchModules(query, pluginId, limit, caseSensitive),
31
+ this.searchSymbols(query, pluginId, limit, caseSensitive),
32
+ this.searchAdrs(query, pluginId, limit, caseSensitive),
33
+ this.searchDependencies(query, pluginId, limit, caseSensitive),
34
+ this.searchChanges(query, pluginId, limit, caseSensitive)
35
+ ]);
36
+ results.push(...modules, ...symbols, ...adrs, ...dependencies, ...changes);
37
+ // Sort by relevance (exact matches first, then by dimension)
38
+ return this.sortByRelevance(results, query);
39
+ }
40
+ /**
41
+ * Searches in X-Dimension (Modules).
42
+ */
43
+ async searchModules(query, pluginId, limit, caseSensitive) {
44
+ const db = await this.dbManager.getDatabase('X');
45
+ const searchPattern = caseSensitive ? `%${query}%` : `%${query.toLowerCase()}%`;
46
+ const exactPattern = caseSensitive ? `%${query}%` : `%${query.toLowerCase()}%`;
47
+ const rows = await this.queryDatabase(db, `SELECT * FROM modules
48
+ WHERE plugin_id = ?
49
+ AND deleted_at IS NULL
50
+ AND (
51
+ ${caseSensitive ? 'file_path LIKE ?' : 'LOWER(file_path) LIKE ?'}
52
+ OR ${caseSensitive ? 'content_markdown LIKE ?' : 'LOWER(content_markdown) LIKE ?'}
53
+ )
54
+ ORDER BY
55
+ CASE WHEN ${caseSensitive ? 'file_path' : 'LOWER(file_path)'} LIKE ? THEN 1 ELSE 2 END,
56
+ file_path
57
+ LIMIT ?`, caseSensitive
58
+ ? [pluginId, searchPattern, searchPattern, exactPattern, limit]
59
+ : [pluginId, searchPattern, searchPattern, exactPattern, limit]);
60
+ return rows.map((row) => ({
61
+ dimension: 'X',
62
+ id: row.id,
63
+ label: row.file_path,
64
+ description: `Module: ${row.file_path}`,
65
+ filePath: row.file_path,
66
+ metadata: {
67
+ contentHash: row.content_hash,
68
+ createdAt: row.created_at
69
+ }
70
+ }));
71
+ }
72
+ /**
73
+ * Searches in Y-Dimension (Symbols).
74
+ */
75
+ async searchSymbols(query, pluginId, limit, caseSensitive) {
76
+ const db = await this.dbManager.getDatabase('Y');
77
+ const searchPattern = caseSensitive ? `%${query}%` : `%${query.toLowerCase()}%`;
78
+ const exactPattern = caseSensitive ? `%${query}%` : `%${query.toLowerCase()}%`;
79
+ const rows = await this.queryDatabase(db, `SELECT * FROM symbols
80
+ WHERE plugin_id = ?
81
+ AND deleted_at IS NULL
82
+ AND (
83
+ ${caseSensitive ? 'name LIKE ?' : 'LOWER(name) LIKE ?'}
84
+ OR ${caseSensitive ? 'path LIKE ?' : 'LOWER(path) LIKE ?'}
85
+ OR (summary IS NOT NULL AND ${caseSensitive ? 'summary LIKE ?' : 'LOWER(summary) LIKE ?'})
86
+ )
87
+ ORDER BY
88
+ CASE WHEN ${caseSensitive ? 'name' : 'LOWER(name)'} LIKE ? THEN 1 ELSE 2 END,
89
+ name
90
+ LIMIT ?`, caseSensitive
91
+ ? [pluginId, searchPattern, searchPattern, searchPattern, exactPattern, limit]
92
+ : [pluginId, searchPattern, searchPattern, searchPattern, exactPattern, limit]);
93
+ return rows.map((row) => ({
94
+ dimension: 'Y',
95
+ id: row.symbol_id,
96
+ label: `${row.name} (${row.kind})`,
97
+ description: `Symbol in ${row.path}`,
98
+ filePath: row.path,
99
+ metadata: {
100
+ kind: row.kind,
101
+ symbolId: row.symbol_id
102
+ }
103
+ }));
104
+ }
105
+ /**
106
+ * Searches in W-Dimension (ADRs).
107
+ */
108
+ async searchAdrs(query, pluginId, limit, caseSensitive) {
109
+ const db = await this.dbManager.getDatabase('W');
110
+ const searchPattern = caseSensitive ? `%${query}%` : `%${query.toLowerCase()}%`;
111
+ const exactPattern = caseSensitive ? `%${query}%` : `%${query.toLowerCase()}%`;
112
+ const rows = await this.queryDatabase(db, `SELECT * FROM adrs
113
+ WHERE plugin_id = ?
114
+ AND deleted_at IS NULL
115
+ AND (
116
+ ${caseSensitive ? 'title LIKE ?' : 'LOWER(title) LIKE ?'}
117
+ OR ${caseSensitive ? 'adr_number LIKE ?' : 'LOWER(adr_number) LIKE ?'}
118
+ OR ${caseSensitive ? 'content_markdown LIKE ?' : 'LOWER(content_markdown) LIKE ?'}
119
+ )
120
+ ORDER BY
121
+ CASE WHEN ${caseSensitive ? 'title' : 'LOWER(title)'} LIKE ? THEN 1 ELSE 2 END,
122
+ adr_number
123
+ LIMIT ?`, caseSensitive
124
+ ? [pluginId, searchPattern, searchPattern, searchPattern, exactPattern, limit]
125
+ : [pluginId, searchPattern, searchPattern, searchPattern, exactPattern, limit]);
126
+ return rows.map((row) => ({
127
+ dimension: 'W',
128
+ id: row.adr_number,
129
+ label: `ADR-${row.adr_number}: ${row.title}`,
130
+ description: `Architecture Decision Record`,
131
+ metadata: {
132
+ fileName: row.file_name,
133
+ adrNumber: row.adr_number
134
+ }
135
+ }));
136
+ }
137
+ /**
138
+ * Searches in Z-Dimension (Dependencies).
139
+ */
140
+ async searchDependencies(query, pluginId, limit, caseSensitive) {
141
+ const db = await this.dbManager.getDatabase('Z');
142
+ const searchPattern = caseSensitive ? `%${query}%` : `%${query.toLowerCase()}%`;
143
+ const exactPattern = caseSensitive ? `%${query}%` : `%${query.toLowerCase()}%`;
144
+ const rows = await this.queryDatabase(db, `SELECT * FROM dependencies
145
+ WHERE plugin_id = ?
146
+ AND (
147
+ ${caseSensitive ? 'from_module LIKE ?' : 'LOWER(from_module) LIKE ?'}
148
+ OR ${caseSensitive ? 'to_module LIKE ?' : 'LOWER(to_module) LIKE ?'}
149
+ )
150
+ ORDER BY
151
+ CASE WHEN ${caseSensitive ? 'from_module' : 'LOWER(from_module)'} LIKE ? THEN 1 ELSE 2 END,
152
+ from_module, to_module
153
+ LIMIT ?`, caseSensitive
154
+ ? [pluginId, searchPattern, searchPattern, exactPattern, limit]
155
+ : [pluginId, searchPattern, searchPattern, exactPattern, limit]);
156
+ return rows.map((row) => ({
157
+ dimension: 'Z',
158
+ id: row.id,
159
+ label: `${row.from_module} → ${row.to_module}`,
160
+ description: `Dependency: ${row.dependency_type}`,
161
+ metadata: {
162
+ dependencyType: row.dependency_type,
163
+ fromModule: row.from_module,
164
+ toModule: row.to_module
165
+ }
166
+ }));
167
+ }
168
+ /**
169
+ * Searches in T-Dimension (Changes).
170
+ */
171
+ async searchChanges(query, pluginId, limit, caseSensitive) {
172
+ const db = await this.dbManager.getDatabase('T');
173
+ // Changes are searched by date or run type
174
+ const searchPattern = caseSensitive ? `%${query}%` : `%${query.toLowerCase()}%`;
175
+ const rows = await this.queryDatabase(db, `SELECT * FROM change_reports
176
+ WHERE plugin_id = ?
177
+ AND (
178
+ ${caseSensitive ? 'run_type LIKE ?' : 'LOWER(run_type) LIKE ?'}
179
+ OR CAST(created_at AS TEXT) LIKE ?
180
+ )
181
+ ORDER BY created_at DESC
182
+ LIMIT ?`, [pluginId, searchPattern, searchPattern, limit]);
183
+ return rows.map((row) => ({
184
+ dimension: 'T',
185
+ id: row.id,
186
+ label: `${row.run_type} - ${new Date(row.created_at).toLocaleDateString()}`,
187
+ description: `${row.parsed_files} files, ${row.total_dependencies} deps`,
188
+ metadata: {
189
+ runType: row.run_type,
190
+ parsedFiles: row.parsed_files.toString(),
191
+ totalDependencies: row.total_dependencies.toString()
192
+ }
193
+ }));
194
+ }
195
+ /**
196
+ * Helper method to query database directly.
197
+ */
198
+ async queryDatabase(db, sql, params) {
199
+ return new Promise((resolve, reject) => {
200
+ db.all(sql, params, (err, rows) => {
201
+ if (err) {
202
+ reject(err);
203
+ }
204
+ else {
205
+ resolve(rows || []);
206
+ }
207
+ });
208
+ });
209
+ }
210
+ /**
211
+ * Sorts results by relevance (exact matches first, then by dimension order).
212
+ */
213
+ sortByRelevance(results, query) {
214
+ const queryLower = query.toLowerCase();
215
+ return results.sort((a, b) => {
216
+ // Exact match in label gets highest priority
217
+ const aExact = a.label.toLowerCase().includes(queryLower);
218
+ const bExact = b.label.toLowerCase().includes(queryLower);
219
+ if (aExact && !bExact)
220
+ return -1;
221
+ if (!aExact && bExact)
222
+ return 1;
223
+ // Then sort by dimension order: X, Y, Z, W, T
224
+ const dimensionOrder = { X: 1, Y: 2, Z: 3, W: 4, T: 5 };
225
+ const aOrder = dimensionOrder[a.dimension] || 99;
226
+ const bOrder = dimensionOrder[b.dimension] || 99;
227
+ if (aOrder !== bOrder)
228
+ return aOrder - bOrder;
229
+ // Finally sort alphabetically by label
230
+ return a.label.localeCompare(b.label);
231
+ });
232
+ }
233
+ }
234
+ exports.SearchApi = SearchApi;
235
+ //# sourceMappingURL=search-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-api.js","sourceRoot":"","sources":["../../src/api/search-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { MultiDbManager } from '../core/multi-db-manager';
2
+ import { EntityReference } from '../models/entity-reference';
3
+ /**
4
+ * System explanation interface.
5
+ * Describes what the system is, how it works, and entry points.
6
+ */
7
+ export interface SystemExplanation {
8
+ what_am_i: string;
9
+ how_do_i_work: string;
10
+ dimensions: Array<{
11
+ id: 'X' | 'Y' | 'Z' | 'W' | 'T';
12
+ name: string;
13
+ description: string;
14
+ entity_count?: number;
15
+ }>;
16
+ entry_points: Array<EntityReference & {
17
+ reason?: string;
18
+ }>;
19
+ architecture_adrs: Array<{
20
+ adr_number: string;
21
+ title: string;
22
+ }>;
23
+ suggested_start: string;
24
+ }
25
+ /**
26
+ * System overview interface.
27
+ */
28
+ export interface SystemOverview {
29
+ total_modules: number;
30
+ total_symbols: number;
31
+ total_dependencies: number;
32
+ total_adrs: number;
33
+ total_change_reports: number;
34
+ entry_points: Array<EntityReference & {
35
+ reason?: string;
36
+ }>;
37
+ architecture_adrs: Array<{
38
+ adr_number: string;
39
+ title: string;
40
+ }>;
41
+ }
42
+ /**
43
+ * API for system self-explanation.
44
+ * Provides meta-information about the system WITHOUT AI generation.
45
+ */
46
+ export declare class SelfExplanationApi {
47
+ private dbManager;
48
+ private adrApi;
49
+ private moduleApi;
50
+ private symbolApi;
51
+ private dependencyApi;
52
+ private changeApi;
53
+ constructor(dbManager: MultiDbManager);
54
+ /**
55
+ * Gets system overview with statistics and entry points.
56
+ */
57
+ getSystemOverview(pluginId: string): Promise<SystemOverview>;
58
+ /**
59
+ * Explains the system: what it is, how it works, entry points, and architecture ADRs.
60
+ */
61
+ explainSystem(pluginId: string): Promise<SystemExplanation>;
62
+ /**
63
+ * Gets entry points for the system.
64
+ */
65
+ private getEntryPoints;
66
+ /**
67
+ * Gets architecture ADRs (typically ADR-001, ADR-002, etc.).
68
+ */
69
+ private getArchitectureAdrs;
70
+ }
71
+ //# sourceMappingURL=self-explanation-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-explanation-api.d.ts","sourceRoot":"","sources":["../../src/api/self-explanation-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAO1D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAChC,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,YAAY,EAAE,KAAK,CAAC,eAAe,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,iBAAiB,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,KAAK,CAAC,eAAe,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,iBAAiB,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAAY;gBAEjB,SAAS,EAAE,cAAc;IASrC;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAyBlE;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8DjE;;OAEG;YACW,cAAc;IAsB5B;;OAEG;YACW,mBAAmB;CAsBpC"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SelfExplanationApi = void 0;
4
+ const navigation_repository_1 = require("../repositories/navigation-repository");
5
+ const adr_api_1 = require("./adr-api");
6
+ const module_api_1 = require("./module-api");
7
+ const symbol_api_1 = require("./symbol-api");
8
+ const dependency_api_1 = require("./dependency-api");
9
+ const change_api_1 = require("./change-api");
10
+ /**
11
+ * API for system self-explanation.
12
+ * Provides meta-information about the system WITHOUT AI generation.
13
+ */
14
+ class SelfExplanationApi {
15
+ constructor(dbManager) {
16
+ this.dbManager = dbManager;
17
+ this.adrApi = new adr_api_1.AdrApi(dbManager);
18
+ this.moduleApi = new module_api_1.ModuleApi(dbManager);
19
+ this.symbolApi = new symbol_api_1.SymbolApi(dbManager);
20
+ this.dependencyApi = new dependency_api_1.DependencyApi(dbManager);
21
+ this.changeApi = new change_api_1.ChangeApi(dbManager);
22
+ }
23
+ /**
24
+ * Gets system overview with statistics and entry points.
25
+ */
26
+ async getSystemOverview(pluginId) {
27
+ // Get statistics
28
+ const modules = await this.moduleApi.getAllModules(pluginId);
29
+ const symbols = await this.symbolApi.getAllSymbols(pluginId);
30
+ const dependencies = await this.dependencyApi.getAllDependencies(pluginId);
31
+ const adrs = await this.adrApi.getAllAdrs(pluginId);
32
+ const changeReports = await this.changeApi.getAllChangeReports(pluginId);
33
+ // Get entry points
34
+ const entryPoints = await this.getEntryPoints(pluginId);
35
+ // Get architecture ADRs
36
+ const architectureAdrs = await this.getArchitectureAdrs(pluginId);
37
+ return {
38
+ total_modules: modules.length,
39
+ total_symbols: symbols.length,
40
+ total_dependencies: dependencies.length,
41
+ total_adrs: adrs.length,
42
+ total_change_reports: changeReports.length,
43
+ entry_points: entryPoints,
44
+ architecture_adrs: architectureAdrs
45
+ };
46
+ }
47
+ /**
48
+ * Explains the system: what it is, how it works, entry points, and architecture ADRs.
49
+ */
50
+ async explainSystem(pluginId) {
51
+ // Get entry points
52
+ const entryPoints = await this.getEntryPoints(pluginId);
53
+ // Get architecture ADRs
54
+ const architectureAdrs = await this.getArchitectureAdrs(pluginId);
55
+ // Get dimension statistics
56
+ const modules = await this.moduleApi.getAllModules(pluginId);
57
+ const symbols = await this.symbolApi.getAllSymbols(pluginId);
58
+ const dependencies = await this.dependencyApi.getAllDependencies(pluginId);
59
+ const adrs = await this.adrApi.getAllAdrs(pluginId);
60
+ const changeReports = await this.changeApi.getAllChangeReports(pluginId);
61
+ // Determine suggested start
62
+ let suggestedStart = 'Start with MultiDbManager (core module)';
63
+ if (architectureAdrs.length > 0) {
64
+ const firstAdr = architectureAdrs[0];
65
+ suggestedStart = `Start with ${firstAdr.adr_number} (${firstAdr.title})`;
66
+ }
67
+ return {
68
+ what_am_i: '5D Database Plugin - navigable code documentation system',
69
+ how_do_i_work: '5 dimensions (X,Y,Z,W,T) store different views of code: Modules (X), Symbols (Y), Dependencies (Z), ADRs (W), and Changes (T). Each dimension provides a different perspective on the codebase, enabling cross-dimensional navigation and analysis.',
70
+ dimensions: [
71
+ {
72
+ id: 'X',
73
+ name: 'Modules',
74
+ description: 'API documentation per file',
75
+ entity_count: modules.length
76
+ },
77
+ {
78
+ id: 'Y',
79
+ name: 'Symbols',
80
+ description: 'Symbols with dependencies',
81
+ entity_count: symbols.length
82
+ },
83
+ {
84
+ id: 'Z',
85
+ name: 'Dependencies',
86
+ description: 'Module dependencies',
87
+ entity_count: dependencies.length
88
+ },
89
+ {
90
+ id: 'W',
91
+ name: 'ADRs',
92
+ description: 'Architecture decisions',
93
+ entity_count: adrs.length
94
+ },
95
+ {
96
+ id: 'T',
97
+ name: 'Changes',
98
+ description: 'Change history',
99
+ entity_count: changeReports.length
100
+ }
101
+ ],
102
+ entry_points: entryPoints,
103
+ architecture_adrs: architectureAdrs,
104
+ suggested_start: suggestedStart
105
+ };
106
+ }
107
+ /**
108
+ * Gets entry points for the system.
109
+ */
110
+ async getEntryPoints(pluginId) {
111
+ const db = await this.dbManager.getDatabase('V');
112
+ const navRepo = new navigation_repository_1.NavigationRepository(db);
113
+ const entryPoints = await navRepo.getEntryPoints('X', pluginId);
114
+ const result = [];
115
+ for (const ep of entryPoints) {
116
+ const module = await this.moduleApi.getModuleById(ep.entity_id, pluginId);
117
+ if (module) {
118
+ result.push({
119
+ dimension: 'X',
120
+ entity_id: ep.entity_id,
121
+ external_id: module.file_path,
122
+ reason: ep.importance_rank ? `Entry point (rank ${ep.importance_rank})` : 'Entry point'
123
+ });
124
+ }
125
+ }
126
+ return result;
127
+ }
128
+ /**
129
+ * Gets architecture ADRs (typically ADR-001, ADR-002, etc.).
130
+ */
131
+ async getArchitectureAdrs(pluginId) {
132
+ const allAdrs = await this.adrApi.getAllAdrs(pluginId);
133
+ // Filter for architecture ADRs (typically low-numbered ADRs)
134
+ // ADRs with numbers like "001", "002", "003" are usually architecture ADRs
135
+ const architectureAdrs = allAdrs
136
+ .filter(adr => {
137
+ const num = parseInt(adr.adr_number);
138
+ return !isNaN(num) && num <= 10; // First 10 ADRs are usually architecture
139
+ })
140
+ .sort((a, b) => {
141
+ const numA = parseInt(a.adr_number);
142
+ const numB = parseInt(b.adr_number);
143
+ return numA - numB;
144
+ })
145
+ .map(adr => ({
146
+ adr_number: adr.adr_number,
147
+ title: adr.title
148
+ }));
149
+ return architectureAdrs;
150
+ }
151
+ }
152
+ exports.SelfExplanationApi = SelfExplanationApi;
153
+ //# sourceMappingURL=self-explanation-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-explanation-api.js","sourceRoot":"","sources":["../../src/api/self-explanation-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { MultiDbManager } from '../core/multi-db-manager';
2
+ import { EmbeddingGenerator } from '../embedding/embedding-generator';
3
+ import { EntityReference } from '../models/entity-reference';
4
+ /**
5
+ * Semantic search result
6
+ */
7
+ export interface SemanticSearchResult {
8
+ dimension: 'X' | 'Y' | 'Z' | 'W' | 'T';
9
+ entityId: string;
10
+ externalId: string;
11
+ score: number;
12
+ vectorScore: number;
13
+ importanceScore: number;
14
+ entityRef: EntityReference;
15
+ }
16
+ /**
17
+ * Options for semantic search
18
+ */
19
+ export interface SemanticSearchOptions {
20
+ dimensions?: ('X' | 'Y' | 'Z' | 'W' | 'T')[];
21
+ limit?: number;
22
+ minScore?: number;
23
+ }
24
+ /**
25
+ * API for semantic search over all dimensions using vector similarity.
26
+ */
27
+ export declare class SemanticSearchApi {
28
+ private dbManager;
29
+ private embeddingGenerator;
30
+ private readonly vectorWeight;
31
+ private readonly importanceWeight;
32
+ constructor(dbManager: MultiDbManager, embeddingGenerator: EmbeddingGenerator);
33
+ /**
34
+ * Performs semantic search across all or specified dimensions.
35
+ *
36
+ * @param query Natural language query
37
+ * @param pluginId Plugin ID
38
+ * @param options Search options
39
+ * @returns Promise that resolves to search results sorted by relevance
40
+ */
41
+ search(query: string, pluginId: string, options?: SemanticSearchOptions): Promise<SemanticSearchResult[]>;
42
+ /**
43
+ * Searches in a specific dimension using vector similarity.
44
+ * Uses VSS if available, otherwise falls back to cosine similarity.
45
+ */
46
+ private searchDimension;
47
+ /**
48
+ * Searches using vector database (VSS or external DB).
49
+ */
50
+ private searchWithVectorDatabase;
51
+ /**
52
+ * Gets embedding by rowid.
53
+ */
54
+ private getEmbeddingByRowid;
55
+ /**
56
+ * Searches using manual cosine similarity (fallback).
57
+ */
58
+ private searchWithCosineSimilarity;
59
+ /**
60
+ * Calculates cosine similarity between two vectors.
61
+ */
62
+ private cosineSimilarity;
63
+ }
64
+ //# sourceMappingURL=semantic-search-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-search-api.d.ts","sourceRoot":"","sources":["../../src/api/semantic-search-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAItE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,eAAe,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAe;gBAEpC,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,kBAAkB;IAK7E;;;;;;;OAOG;IACG,MAAM,CACR,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,qBAA0B,GACpC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAsClC;;;OAGG;YACW,eAAe;IA2C7B;;OAEG;YACW,wBAAwB;IAsEtC;;OAEG;YACW,mBAAmB;IAoBjC;;OAEG;YACW,0BAA0B;IA+DxC;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAsB3B"}