kynjal-cli 4.0.0 → 4.0.2

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 (502) hide show
  1. package/dist/src/appliance/gguf-engine.d.ts +91 -0
  2. package/dist/src/appliance/gguf-engine.d.ts.map +1 -0
  3. package/dist/src/appliance/gguf-engine.js +286 -525
  4. package/dist/src/appliance/gguf-engine.js.map +1 -1
  5. package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  6. package/dist/src/appliance/ruvllm-bridge.d.ts.map +1 -0
  7. package/dist/src/appliance/ruvllm-bridge.js +203 -403
  8. package/dist/src/appliance/ruvllm-bridge.js.map +1 -1
  9. package/dist/src/appliance/rvfa-builder.d.ts +44 -0
  10. package/dist/src/appliance/rvfa-builder.d.ts.map +1 -0
  11. package/dist/src/appliance/rvfa-builder.js +154 -208
  12. package/dist/src/appliance/rvfa-builder.js.map +1 -1
  13. package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  14. package/dist/src/appliance/rvfa-distribution.d.ts.map +1 -0
  15. package/dist/src/appliance/rvfa-distribution.js +260 -423
  16. package/dist/src/appliance/rvfa-distribution.js.map +1 -1
  17. package/dist/src/appliance/rvfa-format.d.ts +111 -0
  18. package/dist/src/appliance/rvfa-format.d.ts.map +1 -0
  19. package/dist/src/appliance/rvfa-format.js +128 -200
  20. package/dist/src/appliance/rvfa-format.js.map +1 -1
  21. package/dist/src/appliance/rvfa-runner.d.ts +69 -0
  22. package/dist/src/appliance/rvfa-runner.d.ts.map +1 -0
  23. package/dist/src/appliance/rvfa-runner.js +168 -304
  24. package/dist/src/appliance/rvfa-runner.js.map +1 -1
  25. package/dist/src/appliance/rvfa-signing.d.ts +123 -0
  26. package/dist/src/appliance/rvfa-signing.d.ts.map +1 -0
  27. package/dist/src/appliance/rvfa-signing.js +173 -295
  28. package/dist/src/appliance/rvfa-signing.js.map +1 -1
  29. package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  30. package/dist/src/benchmarks/pretrain/index.d.ts.map +1 -0
  31. package/dist/src/benchmarks/pretrain/index.js +331 -542
  32. package/dist/src/benchmarks/pretrain/index.js.map +1 -1
  33. package/dist/src/commands/agent.js +574 -697
  34. package/dist/src/commands/agent.js.map +1 -1
  35. package/dist/src/commands/analyze.js +1218 -1548
  36. package/dist/src/commands/analyze.js.map +1 -1
  37. package/dist/src/commands/appliance-advanced.js +158 -267
  38. package/dist/src/commands/appliance-advanced.js.map +1 -1
  39. package/dist/src/commands/appliance.js +318 -493
  40. package/dist/src/commands/appliance.js.map +1 -1
  41. package/dist/src/commands/benchmark.js +372 -523
  42. package/dist/src/commands/benchmark.js.map +1 -1
  43. package/dist/src/commands/claims.js +274 -364
  44. package/dist/src/commands/claims.js.map +1 -1
  45. package/dist/src/commands/cleanup.js +113 -157
  46. package/dist/src/commands/cleanup.js.map +1 -1
  47. package/dist/src/commands/completions.js +477 -118
  48. package/dist/src/commands/completions.js.map +1 -1
  49. package/dist/src/commands/config.js +237 -303
  50. package/dist/src/commands/config.js.map +1 -1
  51. package/dist/src/commands/daemon.js +487 -596
  52. package/dist/src/commands/daemon.js.map +1 -1
  53. package/dist/src/commands/deployment.js +194 -275
  54. package/dist/src/commands/deployment.js.map +1 -1
  55. package/dist/src/commands/doctor.js +504 -686
  56. package/dist/src/commands/doctor.js.map +1 -1
  57. package/dist/src/commands/embeddings.js +1293 -1543
  58. package/dist/src/commands/embeddings.js.map +1 -1
  59. package/dist/src/commands/guidance.js +449 -596
  60. package/dist/src/commands/guidance.js.map +1 -1
  61. package/dist/src/commands/hive-mind.js +854 -938
  62. package/dist/src/commands/hive-mind.js.map +1 -1
  63. package/dist/src/commands/hooks.js +3112 -3519
  64. package/dist/src/commands/hooks.js.map +1 -1
  65. package/dist/src/commands/index.d.ts +115 -0
  66. package/dist/src/commands/index.d.ts.map +1 -0
  67. package/dist/src/commands/index.js +126 -308
  68. package/dist/src/commands/index.js.map +1 -1
  69. package/dist/src/commands/init.js +788 -940
  70. package/dist/src/commands/init.js.map +1 -1
  71. package/dist/src/commands/issues.js +383 -558
  72. package/dist/src/commands/issues.js.map +1 -1
  73. package/dist/src/commands/mcp.js +493 -605
  74. package/dist/src/commands/mcp.js.map +1 -1
  75. package/dist/src/commands/memory.js +833 -1026
  76. package/dist/src/commands/memory.js.map +1 -1
  77. package/dist/src/commands/migrate.js +282 -347
  78. package/dist/src/commands/migrate.js.map +1 -1
  79. package/dist/src/commands/neural.js +1289 -1563
  80. package/dist/src/commands/neural.js.map +1 -1
  81. package/dist/src/commands/performance.js +497 -643
  82. package/dist/src/commands/performance.js.map +1 -1
  83. package/dist/src/commands/plugins.js +668 -841
  84. package/dist/src/commands/plugins.js.map +1 -1
  85. package/dist/src/commands/process.js +392 -447
  86. package/dist/src/commands/process.js.map +1 -1
  87. package/dist/src/commands/progress.js +162 -256
  88. package/dist/src/commands/progress.js.map +1 -1
  89. package/dist/src/commands/providers.js +150 -220
  90. package/dist/src/commands/providers.js.map +1 -1
  91. package/dist/src/commands/route.js +520 -665
  92. package/dist/src/commands/route.js.map +1 -1
  93. package/dist/src/commands/ruvector/backup.js +505 -651
  94. package/dist/src/commands/ruvector/backup.js.map +1 -1
  95. package/dist/src/commands/ruvector/benchmark.js +349 -401
  96. package/dist/src/commands/ruvector/benchmark.js.map +1 -1
  97. package/dist/src/commands/ruvector/import.js +224 -266
  98. package/dist/src/commands/ruvector/import.js.map +1 -1
  99. package/dist/src/commands/ruvector/index.js +37 -75
  100. package/dist/src/commands/ruvector/index.js.map +1 -1
  101. package/dist/src/commands/ruvector/init.js +336 -359
  102. package/dist/src/commands/ruvector/init.js.map +1 -1
  103. package/dist/src/commands/ruvector/migrate.js +335 -322
  104. package/dist/src/commands/ruvector/migrate.js.map +1 -1
  105. package/dist/src/commands/ruvector/optimize.js +375 -431
  106. package/dist/src/commands/ruvector/optimize.js.map +1 -1
  107. package/dist/src/commands/ruvector/setup.js +703 -117
  108. package/dist/src/commands/ruvector/setup.js.map +1 -1
  109. package/dist/src/commands/ruvector/status.js +364 -419
  110. package/dist/src/commands/ruvector/status.js.map +1 -1
  111. package/dist/src/commands/security.js +485 -608
  112. package/dist/src/commands/security.js.map +1 -1
  113. package/dist/src/commands/session.js +504 -626
  114. package/dist/src/commands/session.js.map +1 -1
  115. package/dist/src/commands/start.js +267 -364
  116. package/dist/src/commands/start.js.map +1 -1
  117. package/dist/src/commands/status.js +380 -486
  118. package/dist/src/commands/status.js.map +1 -1
  119. package/dist/src/commands/swarm.js +408 -488
  120. package/dist/src/commands/swarm.js.map +1 -1
  121. package/dist/src/commands/task.js +423 -538
  122. package/dist/src/commands/task.js.map +1 -1
  123. package/dist/src/commands/transfer-store.js +322 -412
  124. package/dist/src/commands/transfer-store.js.map +1 -1
  125. package/dist/src/commands/update.js +196 -291
  126. package/dist/src/commands/update.js.map +1 -1
  127. package/dist/src/commands/workflow.js +386 -486
  128. package/dist/src/commands/workflow.js.map +1 -1
  129. package/dist/src/config-adapter.d.ts +15 -0
  130. package/dist/src/config-adapter.d.ts.map +1 -0
  131. package/dist/src/config-adapter.js +38 -39
  132. package/dist/src/config-adapter.js.map +1 -1
  133. package/dist/src/index.d.ts +77 -0
  134. package/dist/src/index.d.ts.map +1 -0
  135. package/dist/src/index.js +309 -411
  136. package/dist/src/index.js.map +1 -1
  137. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  138. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
  139. package/dist/src/infrastructure/in-memory-repositories.js +246 -507
  140. package/dist/src/infrastructure/in-memory-repositories.js.map +1 -1
  141. package/dist/src/init/claudemd-generator.d.ts +25 -0
  142. package/dist/src/init/claudemd-generator.d.ts.map +1 -0
  143. package/dist/src/init/claudemd-generator.js +368 -78
  144. package/dist/src/init/claudemd-generator.js.map +1 -1
  145. package/dist/src/init/executor.d.ts +41 -0
  146. package/dist/src/init/executor.d.ts.map +1 -0
  147. package/dist/src/init/executor.js +1307 -996
  148. package/dist/src/init/executor.js.map +1 -1
  149. package/dist/src/init/helpers-generator.d.ts +60 -0
  150. package/dist/src/init/helpers-generator.d.ts.map +1 -0
  151. package/dist/src/init/helpers-generator.js +657 -12
  152. package/dist/src/init/helpers-generator.js.map +1 -1
  153. package/dist/src/init/index.d.ts +1 -1
  154. package/dist/src/init/index.d.ts.map +1 -1
  155. package/dist/src/init/index.js +1 -1
  156. package/dist/src/init/index.js.map +1 -1
  157. package/dist/src/init/mcp-generator.js +33 -37
  158. package/dist/src/init/mcp-generator.js.map +1 -1
  159. package/dist/src/init/settings-generator.js +76 -77
  160. package/dist/src/init/settings-generator.js.map +1 -1
  161. package/dist/src/init/statusline-generator.js +801 -3
  162. package/dist/src/init/statusline-generator.js.map +1 -1
  163. package/dist/src/init/types.d.ts +1 -1
  164. package/dist/src/init/types.d.ts.map +1 -1
  165. package/dist/src/init/types.js +76 -59
  166. package/dist/src/init/types.js.map +1 -1
  167. package/dist/src/mcp-client.d.ts +92 -0
  168. package/dist/src/mcp-client.d.ts.map +1 -0
  169. package/dist/src/mcp-client.js +81 -125
  170. package/dist/src/mcp-client.js.map +1 -1
  171. package/dist/src/mcp-server.d.ts +161 -0
  172. package/dist/src/mcp-server.d.ts.map +1 -0
  173. package/dist/src/mcp-server.js +470 -757
  174. package/dist/src/mcp-server.js.map +1 -1
  175. package/dist/src/mcp-tools/agent-tools.js +391 -492
  176. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  177. package/dist/src/mcp-tools/agentdb-tools.js +332 -533
  178. package/dist/src/mcp-tools/agentdb-tools.js.map +1 -1
  179. package/dist/src/mcp-tools/analyze-tools.js +172 -236
  180. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  181. package/dist/src/mcp-tools/auto-install.d.ts +83 -0
  182. package/dist/src/mcp-tools/auto-install.d.ts.map +1 -0
  183. package/dist/src/mcp-tools/auto-install.js +80 -142
  184. package/dist/src/mcp-tools/auto-install.js.map +1 -1
  185. package/dist/src/mcp-tools/browser-tools.js +252 -375
  186. package/dist/src/mcp-tools/browser-tools.js.map +1 -1
  187. package/dist/src/mcp-tools/claims-tools.js +473 -565
  188. package/dist/src/mcp-tools/claims-tools.js.map +1 -1
  189. package/dist/src/mcp-tools/config-tools.js +197 -272
  190. package/dist/src/mcp-tools/config-tools.js.map +1 -1
  191. package/dist/src/mcp-tools/coordination-tools.js +500 -572
  192. package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
  193. package/dist/src/mcp-tools/daa-tools.js +286 -364
  194. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  195. package/dist/src/mcp-tools/embeddings-tools.js +582 -693
  196. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  197. package/dist/src/mcp-tools/github-tools.js +260 -311
  198. package/dist/src/mcp-tools/github-tools.js.map +1 -1
  199. package/dist/src/mcp-tools/hive-mind-tools.js +573 -640
  200. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  201. package/dist/src/mcp-tools/hooks-tools.js +2215 -2648
  202. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  203. package/dist/src/mcp-tools/memory-tools.js +350 -505
  204. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  205. package/dist/src/mcp-tools/neural-tools.js +315 -412
  206. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  207. package/dist/src/mcp-tools/performance-tools.js +420 -480
  208. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  209. package/dist/src/mcp-tools/progress-tools.js +204 -278
  210. package/dist/src/mcp-tools/progress-tools.js.map +1 -1
  211. package/dist/src/mcp-tools/ruvllm-tools.js +163 -279
  212. package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -1
  213. package/dist/src/mcp-tools/security-tools.js +297 -429
  214. package/dist/src/mcp-tools/security-tools.js.map +1 -1
  215. package/dist/src/mcp-tools/session-tools.js +185 -234
  216. package/dist/src/mcp-tools/session-tools.js.map +1 -1
  217. package/dist/src/mcp-tools/swarm-tools.js +207 -260
  218. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  219. package/dist/src/mcp-tools/system-tools.js +276 -325
  220. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  221. package/dist/src/mcp-tools/task-tools.js +270 -336
  222. package/dist/src/mcp-tools/task-tools.js.map +1 -1
  223. package/dist/src/mcp-tools/terminal-tools.js +148 -196
  224. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  225. package/dist/src/mcp-tools/transfer-tools.js +186 -333
  226. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  227. package/dist/src/mcp-tools/types.d.ts +31 -0
  228. package/dist/src/mcp-tools/types.d.ts.map +1 -0
  229. package/dist/src/mcp-tools/wasm-agent-tools.js +133 -280
  230. package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -1
  231. package/dist/src/mcp-tools/workflow-tools.js +405 -450
  232. package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
  233. package/dist/src/memory/ewc-consolidation.d.ts +295 -0
  234. package/dist/src/memory/ewc-consolidation.d.ts.map +1 -0
  235. package/dist/src/memory/ewc-consolidation.js +190 -303
  236. package/dist/src/memory/ewc-consolidation.js.map +1 -1
  237. package/dist/src/memory/intelligence.d.ts +338 -0
  238. package/dist/src/memory/intelligence.d.ts.map +1 -0
  239. package/dist/src/memory/intelligence.js +569 -794
  240. package/dist/src/memory/intelligence.js.map +1 -1
  241. package/dist/src/memory/memory-bridge.d.ts +407 -0
  242. package/dist/src/memory/memory-bridge.d.ts.map +1 -0
  243. package/dist/src/memory/memory-bridge.js +1170 -1640
  244. package/dist/src/memory/memory-bridge.js.map +1 -1
  245. package/dist/src/memory/memory-initializer.d.ts +412 -0
  246. package/dist/src/memory/memory-initializer.d.ts.map +1 -0
  247. package/dist/src/memory/memory-initializer.js +1836 -1851
  248. package/dist/src/memory/memory-initializer.js.map +1 -1
  249. package/dist/src/memory/sona-optimizer.d.ts +227 -0
  250. package/dist/src/memory/sona-optimizer.d.ts.map +1 -0
  251. package/dist/src/memory/sona-optimizer.js +199 -329
  252. package/dist/src/memory/sona-optimizer.js.map +1 -1
  253. package/dist/src/output.d.ts +2 -2
  254. package/dist/src/output.d.ts.map +1 -1
  255. package/dist/src/output.js +242 -272
  256. package/dist/src/output.js.map +1 -1
  257. package/dist/src/parser.d.ts +51 -0
  258. package/dist/src/parser.d.ts.map +1 -0
  259. package/dist/src/parser.js +140 -187
  260. package/dist/src/parser.js.map +1 -1
  261. package/dist/src/plugins/manager.d.ts +133 -0
  262. package/dist/src/plugins/manager.d.ts.map +1 -0
  263. package/dist/src/plugins/manager.js +285 -521
  264. package/dist/src/plugins/manager.js.map +1 -1
  265. package/dist/src/plugins/store/discovery.d.ts +88 -0
  266. package/dist/src/plugins/store/discovery.d.ts.map +1 -0
  267. package/dist/src/plugins/store/discovery.js +271 -358
  268. package/dist/src/plugins/store/discovery.js.map +1 -1
  269. package/dist/src/plugins/store/index.d.ts +76 -0
  270. package/dist/src/plugins/store/index.d.ts.map +1 -0
  271. package/dist/src/plugins/store/index.js +48 -105
  272. package/dist/src/plugins/store/index.js.map +1 -1
  273. package/dist/src/plugins/store/search.d.ts +46 -0
  274. package/dist/src/plugins/store/search.d.ts.map +1 -0
  275. package/dist/src/plugins/store/search.js +69 -107
  276. package/dist/src/plugins/store/search.js.map +1 -1
  277. package/dist/src/plugins/store/types.d.ts +274 -0
  278. package/dist/src/plugins/store/types.d.ts.map +1 -0
  279. package/dist/src/plugins/tests/demo-plugin-store.js +113 -160
  280. package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -1
  281. package/dist/src/plugins/tests/standalone-test.js +172 -223
  282. package/dist/src/plugins/tests/standalone-test.js.map +1 -1
  283. package/dist/src/plugins/tests/test-plugin-store.js +190 -228
  284. package/dist/src/plugins/tests/test-plugin-store.js.map +1 -1
  285. package/dist/src/production/circuit-breaker.d.ts +101 -0
  286. package/dist/src/production/circuit-breaker.d.ts.map +1 -0
  287. package/dist/src/production/circuit-breaker.js +62 -126
  288. package/dist/src/production/circuit-breaker.js.map +1 -1
  289. package/dist/src/production/error-handler.d.ts +92 -0
  290. package/dist/src/production/error-handler.d.ts.map +1 -0
  291. package/dist/src/production/error-handler.js +86 -156
  292. package/dist/src/production/error-handler.js.map +1 -1
  293. package/dist/src/production/monitoring.d.ts +161 -0
  294. package/dist/src/production/monitoring.d.ts.map +1 -0
  295. package/dist/src/production/monitoring.js +139 -220
  296. package/dist/src/production/monitoring.js.map +1 -1
  297. package/dist/src/production/rate-limiter.d.ts +80 -0
  298. package/dist/src/production/rate-limiter.d.ts.map +1 -0
  299. package/dist/src/production/rate-limiter.js +74 -93
  300. package/dist/src/production/rate-limiter.js.map +1 -1
  301. package/dist/src/production/retry.d.ts +48 -0
  302. package/dist/src/production/retry.d.ts.map +1 -0
  303. package/dist/src/production/retry.js +75 -167
  304. package/dist/src/production/retry.js.map +1 -1
  305. package/dist/src/prompt.d.ts +44 -0
  306. package/dist/src/prompt.d.ts.map +1 -0
  307. package/dist/src/prompt.js +436 -560
  308. package/dist/src/prompt.js.map +1 -1
  309. package/dist/src/runtime/headless.d.ts +60 -0
  310. package/dist/src/runtime/headless.d.ts.map +1 -0
  311. package/dist/src/runtime/headless.js +197 -286
  312. package/dist/src/runtime/headless.js.map +1 -1
  313. package/dist/src/ruvector/agent-wasm.d.ts +182 -0
  314. package/dist/src/ruvector/agent-wasm.d.ts.map +1 -0
  315. package/dist/src/ruvector/agent-wasm.js +156 -351
  316. package/dist/src/ruvector/agent-wasm.js.map +1 -1
  317. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  318. package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
  319. package/dist/src/ruvector/ast-analyzer.js +145 -232
  320. package/dist/src/ruvector/ast-analyzer.js.map +1 -1
  321. package/dist/src/ruvector/coverage-router.d.ts +160 -0
  322. package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
  323. package/dist/src/ruvector/coverage-router.js +287 -419
  324. package/dist/src/ruvector/coverage-router.js.map +1 -1
  325. package/dist/src/ruvector/coverage-tools.js +56 -101
  326. package/dist/src/ruvector/coverage-tools.js.map +1 -1
  327. package/dist/src/ruvector/diff-classifier.d.ts +175 -0
  328. package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
  329. package/dist/src/ruvector/diff-classifier.js +324 -451
  330. package/dist/src/ruvector/diff-classifier.js.map +1 -1
  331. package/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
  332. package/dist/src/ruvector/enhanced-model-router.d.ts.map +1 -0
  333. package/dist/src/ruvector/enhanced-model-router.js +260 -336
  334. package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
  335. package/dist/src/ruvector/flash-attention.d.ts +195 -0
  336. package/dist/src/ruvector/flash-attention.d.ts.map +1 -0
  337. package/dist/src/ruvector/flash-attention.js +223 -254
  338. package/dist/src/ruvector/flash-attention.js.map +1 -1
  339. package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  340. package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
  341. package/dist/src/ruvector/graph-analyzer.js +486 -680
  342. package/dist/src/ruvector/graph-analyzer.js.map +1 -1
  343. package/dist/src/ruvector/index.d.ts +40 -0
  344. package/dist/src/ruvector/index.d.ts.map +1 -0
  345. package/dist/src/ruvector/index.js +36 -106
  346. package/dist/src/ruvector/index.js.map +1 -1
  347. package/dist/src/ruvector/lora-adapter.d.ts +218 -0
  348. package/dist/src/ruvector/lora-adapter.d.ts.map +1 -0
  349. package/dist/src/ruvector/lora-adapter.js +155 -248
  350. package/dist/src/ruvector/lora-adapter.js.map +1 -1
  351. package/dist/src/ruvector/model-router.d.ts +220 -0
  352. package/dist/src/ruvector/model-router.d.ts.map +1 -0
  353. package/dist/src/ruvector/model-router.js +175 -248
  354. package/dist/src/ruvector/model-router.js.map +1 -1
  355. package/dist/src/ruvector/moe-router.d.ts +206 -0
  356. package/dist/src/ruvector/moe-router.d.ts.map +1 -0
  357. package/dist/src/ruvector/moe-router.js +228 -286
  358. package/dist/src/ruvector/moe-router.js.map +1 -1
  359. package/dist/src/ruvector/q-learning-router.d.ts +211 -0
  360. package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
  361. package/dist/src/ruvector/q-learning-router.js +257 -338
  362. package/dist/src/ruvector/q-learning-router.js.map +1 -1
  363. package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  364. package/dist/src/ruvector/ruvllm-wasm.d.ts.map +1 -0
  365. package/dist/src/ruvector/ruvllm-wasm.js +270 -434
  366. package/dist/src/ruvector/ruvllm-wasm.js.map +1 -1
  367. package/dist/src/ruvector/semantic-router.d.ts +77 -0
  368. package/dist/src/ruvector/semantic-router.d.ts.map +1 -0
  369. package/dist/src/ruvector/semantic-router.js +60 -67
  370. package/dist/src/ruvector/semantic-router.js.map +1 -1
  371. package/dist/src/ruvector/vector-db.d.ts +69 -0
  372. package/dist/src/ruvector/vector-db.d.ts.map +1 -0
  373. package/dist/src/ruvector/vector-db.js +119 -205
  374. package/dist/src/ruvector/vector-db.js.map +1 -1
  375. package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  376. package/dist/src/services/agentic-flow-bridge.d.ts.map +1 -0
  377. package/dist/src/services/agentic-flow-bridge.js +32 -105
  378. package/dist/src/services/agentic-flow-bridge.js.map +1 -1
  379. package/dist/src/services/claim-service.d.ts +204 -0
  380. package/dist/src/services/claim-service.d.ts.map +1 -0
  381. package/dist/src/services/claim-service.js +615 -940
  382. package/dist/src/services/claim-service.js.map +1 -1
  383. package/dist/src/services/container-worker-pool.d.ts +197 -0
  384. package/dist/src/services/container-worker-pool.d.ts.map +1 -0
  385. package/dist/src/services/container-worker-pool.js +398 -666
  386. package/dist/src/services/container-worker-pool.js.map +1 -1
  387. package/dist/src/services/headless-worker-executor.d.ts +304 -0
  388. package/dist/src/services/headless-worker-executor.d.ts.map +1 -0
  389. package/dist/src/services/headless-worker-executor.js +441 -467
  390. package/dist/src/services/headless-worker-executor.js.map +1 -1
  391. package/dist/src/services/index.d.ts +4 -4
  392. package/dist/src/services/index.d.ts.map +1 -1
  393. package/dist/src/services/index.js +4 -4
  394. package/dist/src/services/index.js.map +1 -1
  395. package/dist/src/services/registry-api.d.ts +58 -0
  396. package/dist/src/services/registry-api.d.ts.map +1 -0
  397. package/dist/src/services/registry-api.js +92 -200
  398. package/dist/src/services/registry-api.js.map +1 -1
  399. package/dist/src/services/ruvector-training.d.ts +222 -0
  400. package/dist/src/services/ruvector-training.d.ts.map +1 -0
  401. package/dist/src/services/ruvector-training.js +257 -337
  402. package/dist/src/services/ruvector-training.js.map +1 -1
  403. package/dist/src/services/worker-daemon.d.ts +228 -0
  404. package/dist/src/services/worker-daemon.d.ts.map +1 -0
  405. package/dist/src/services/worker-daemon.js +591 -849
  406. package/dist/src/services/worker-daemon.js.map +1 -1
  407. package/dist/src/services/worker-queue.d.ts +194 -0
  408. package/dist/src/services/worker-queue.d.ts.map +1 -0
  409. package/dist/src/services/worker-queue.js +331 -548
  410. package/dist/src/services/worker-queue.js.map +1 -1
  411. package/dist/src/suggest.d.ts +53 -0
  412. package/dist/src/suggest.d.ts.map +1 -0
  413. package/dist/src/suggest.js +45 -55
  414. package/dist/src/suggest.js.map +1 -1
  415. package/dist/src/transfer/anonymization/index.js +29 -37
  416. package/dist/src/transfer/anonymization/index.js.map +1 -1
  417. package/dist/src/transfer/deploy-seraphine.js +128 -155
  418. package/dist/src/transfer/deploy-seraphine.js.map +1 -1
  419. package/dist/src/transfer/export.d.ts +25 -0
  420. package/dist/src/transfer/export.d.ts.map +1 -0
  421. package/dist/src/transfer/export.js +84 -142
  422. package/dist/src/transfer/export.js.map +1 -1
  423. package/dist/src/transfer/index.d.ts +1 -1
  424. package/dist/src/transfer/index.d.ts.map +1 -1
  425. package/dist/src/transfer/index.js +0 -2
  426. package/dist/src/transfer/index.js.map +1 -1
  427. package/dist/src/transfer/ipfs/client.d.ts +109 -0
  428. package/dist/src/transfer/ipfs/client.d.ts.map +1 -0
  429. package/dist/src/transfer/ipfs/client.js +187 -337
  430. package/dist/src/transfer/ipfs/client.js.map +1 -1
  431. package/dist/src/transfer/ipfs/upload.d.ts +95 -0
  432. package/dist/src/transfer/ipfs/upload.d.ts.map +1 -0
  433. package/dist/src/transfer/ipfs/upload.js +288 -434
  434. package/dist/src/transfer/ipfs/upload.js.map +1 -1
  435. package/dist/src/transfer/models/seraphine.d.ts +72 -0
  436. package/dist/src/transfer/models/seraphine.d.ts.map +1 -0
  437. package/dist/src/transfer/models/seraphine.js +55 -55
  438. package/dist/src/transfer/models/seraphine.js.map +1 -1
  439. package/dist/src/transfer/serialization/cfp.d.ts +49 -0
  440. package/dist/src/transfer/serialization/cfp.d.ts.map +1 -0
  441. package/dist/src/transfer/serialization/cfp.js +30 -31
  442. package/dist/src/transfer/serialization/cfp.js.map +1 -1
  443. package/dist/src/transfer/storage/gcs.d.ts +82 -0
  444. package/dist/src/transfer/storage/gcs.d.ts.map +1 -0
  445. package/dist/src/transfer/storage/gcs.js +165 -232
  446. package/dist/src/transfer/storage/gcs.js.map +1 -1
  447. package/dist/src/transfer/store/discovery.d.ts +84 -0
  448. package/dist/src/transfer/store/discovery.d.ts.map +1 -0
  449. package/dist/src/transfer/store/discovery.js +239 -349
  450. package/dist/src/transfer/store/discovery.js.map +1 -1
  451. package/dist/src/transfer/store/download.d.ts +70 -0
  452. package/dist/src/transfer/store/download.d.ts.map +1 -0
  453. package/dist/src/transfer/store/download.js +243 -365
  454. package/dist/src/transfer/store/download.js.map +1 -1
  455. package/dist/src/transfer/store/index.d.ts +84 -0
  456. package/dist/src/transfer/store/index.d.ts.map +1 -0
  457. package/dist/src/transfer/store/index.js +63 -130
  458. package/dist/src/transfer/store/index.js.map +1 -1
  459. package/dist/src/transfer/store/publish.d.ts +76 -0
  460. package/dist/src/transfer/store/publish.d.ts.map +1 -0
  461. package/dist/src/transfer/store/publish.js +184 -258
  462. package/dist/src/transfer/store/publish.js.map +1 -1
  463. package/dist/src/transfer/store/registry.js +50 -72
  464. package/dist/src/transfer/store/registry.js.map +1 -1
  465. package/dist/src/transfer/store/search.d.ts +54 -0
  466. package/dist/src/transfer/store/search.d.ts.map +1 -0
  467. package/dist/src/transfer/store/search.js +64 -96
  468. package/dist/src/transfer/store/search.js.map +1 -1
  469. package/dist/src/transfer/store/tests/standalone-test.js +174 -231
  470. package/dist/src/transfer/store/tests/standalone-test.js.map +1 -1
  471. package/dist/src/transfer/test-seraphine.js +95 -130
  472. package/dist/src/transfer/test-seraphine.js.map +1 -1
  473. package/dist/src/transfer/tests/test-store.js +194 -239
  474. package/dist/src/transfer/tests/test-store.js.map +1 -1
  475. package/dist/src/transfer/types.d.ts +245 -0
  476. package/dist/src/transfer/types.d.ts.map +1 -0
  477. package/dist/src/types.d.ts +198 -0
  478. package/dist/src/types.d.ts.map +1 -0
  479. package/dist/src/types.js +26 -55
  480. package/dist/src/types.js.map +1 -1
  481. package/dist/src/update/checker.d.ts +34 -0
  482. package/dist/src/update/checker.d.ts.map +1 -0
  483. package/dist/src/update/checker.js +106 -183
  484. package/dist/src/update/checker.js.map +1 -1
  485. package/dist/src/update/executor.d.ts +32 -0
  486. package/dist/src/update/executor.d.ts.map +1 -0
  487. package/dist/src/update/executor.js +135 -198
  488. package/dist/src/update/executor.js.map +1 -1
  489. package/dist/src/update/index.d.ts +33 -0
  490. package/dist/src/update/index.d.ts.map +1 -0
  491. package/dist/src/update/index.js +38 -85
  492. package/dist/src/update/index.js.map +1 -1
  493. package/dist/src/update/rate-limiter.d.ts +20 -0
  494. package/dist/src/update/rate-limiter.d.ts.map +1 -0
  495. package/dist/src/update/rate-limiter.js +19 -31
  496. package/dist/src/update/rate-limiter.js.map +1 -1
  497. package/dist/src/update/validator.d.ts +17 -0
  498. package/dist/src/update/validator.d.ts.map +1 -0
  499. package/dist/src/update/validator.js +38 -64
  500. package/dist/src/update/validator.js.map +1 -1
  501. package/dist/tsconfig.tsbuildinfo +1 -1
  502. package/package.json +1 -1
@@ -9,61 +9,649 @@
9
9
  *
10
10
  * Created with care by ruv.io
11
11
  */
12
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
- return new (P || (P = Promise))(function (resolve, reject) {
15
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
- step((generator = generator.apply(thisArg, _arguments || [])).next());
19
- });
20
- };
21
- var __generator = (this && this.__generator) || function (thisArg, body) {
22
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
- function verb(n) { return function (v) { return step([n, v]); }; }
25
- function step(op) {
26
- if (f) throw new TypeError("Generator is already executing.");
27
- while (_) try {
28
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
- if (y = 0, t) op = [op[0] & 2, t.value];
30
- switch (op[0]) {
31
- case 0: case 1: t = op; break;
32
- case 4: _.label++; return { value: op[1], done: false };
33
- case 5: _.label++; y = op[1]; op = [0]; continue;
34
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
- default:
36
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
- if (t[2]) _.ops.pop();
41
- _.trys.pop(); continue;
42
- }
43
- op = body.call(thisArg, _);
44
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
- }
47
- };
48
12
  import { output } from '../../output.js';
49
13
  import * as fs from 'fs';
50
14
  import * as path from 'path';
51
15
  /**
52
16
  * Docker Compose template for RuVector PostgreSQL
53
17
  */
54
- var DOCKER_COMPOSE_TEMPLATE = "# RuVector PostgreSQL Testing Environment\n# Official RuVector extension from ruvnet/ruvector-postgres\n#\n# Features:\n# - 77+ SQL functions for vector operations\n# - HNSW/IVFFlat indexing with SIMD acceleration\n# - Hyperbolic embeddings (Poincar\u00E9 ball)\n# - Graph operations and GNN support\n# - Agent routing and learning\n#\n# Performance: ~61\u00B5s latency, 16,400 QPS with HNSW\n\nservices:\n postgres:\n image: ruvnet/ruvector-postgres:latest\n container_name: ruvector-postgres\n environment:\n POSTGRES_USER: claude\n POSTGRES_PASSWORD: claude-flow-test\n POSTGRES_DB: claude_flow\n ports:\n - \"5432:5432\"\n volumes:\n - postgres_data:/var/lib/postgresql/data\n - ./scripts/init-db.sql:/docker-entrypoint-initdb.d/01-init.sql\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U claude -d claude_flow\"]\n interval: 5s\n timeout: 5s\n retries: 10\n command: >\n postgres\n -c work_mem=256MB\n -c maintenance_work_mem=512MB\n\n # Optional: pgAdmin for visual database management\n pgadmin:\n image: dpage/pgadmin4:latest\n container_name: ruvector-pgadmin\n environment:\n PGADMIN_DEFAULT_EMAIL: admin@claude-flow.local\n PGADMIN_DEFAULT_PASSWORD: admin\n PGADMIN_CONFIG_SERVER_MODE: 'False'\n ports:\n - \"5050:80\"\n depends_on:\n postgres:\n condition: service_healthy\n profiles:\n - gui\n\nvolumes:\n postgres_data:\n";
18
+ const DOCKER_COMPOSE_TEMPLATE = `# RuVector PostgreSQL Testing Environment
19
+ # Official RuVector extension from ruvnet/ruvector-postgres
20
+ #
21
+ # Features:
22
+ # - 77+ SQL functions for vector operations
23
+ # - HNSW/IVFFlat indexing with SIMD acceleration
24
+ # - Hyperbolic embeddings (Poincaré ball)
25
+ # - Graph operations and GNN support
26
+ # - Agent routing and learning
27
+ #
28
+ # Performance: ~61µs latency, 16,400 QPS with HNSW
29
+
30
+ services:
31
+ postgres:
32
+ image: ruvnet/ruvector-postgres:latest
33
+ container_name: ruvector-postgres
34
+ environment:
35
+ POSTGRES_USER: claude
36
+ POSTGRES_PASSWORD: claude-flow-test
37
+ POSTGRES_DB: claude_flow
38
+ ports:
39
+ - "5432:5432"
40
+ volumes:
41
+ - postgres_data:/var/lib/postgresql/data
42
+ - ./scripts/init-db.sql:/docker-entrypoint-initdb.d/01-init.sql
43
+ healthcheck:
44
+ test: ["CMD-SHELL", "pg_isready -U claude -d claude_flow"]
45
+ interval: 5s
46
+ timeout: 5s
47
+ retries: 10
48
+ command: >
49
+ postgres
50
+ -c work_mem=256MB
51
+ -c maintenance_work_mem=512MB
52
+
53
+ # Optional: pgAdmin for visual database management
54
+ pgadmin:
55
+ image: dpage/pgadmin4:latest
56
+ container_name: ruvector-pgadmin
57
+ environment:
58
+ PGADMIN_DEFAULT_EMAIL: admin@claude-flow.local
59
+ PGADMIN_DEFAULT_PASSWORD: admin
60
+ PGADMIN_CONFIG_SERVER_MODE: 'False'
61
+ ports:
62
+ - "5050:80"
63
+ depends_on:
64
+ postgres:
65
+ condition: service_healthy
66
+ profiles:
67
+ - gui
68
+
69
+ volumes:
70
+ postgres_data:
71
+ `;
55
72
  /**
56
73
  * Init SQL template for RuVector PostgreSQL
57
74
  */
58
- var INIT_SQL_TEMPLATE = "-- ============================================\n-- RUVECTOR POSTGRESQL INITIALIZATION SCRIPT\n-- ============================================\n--\n-- This script initializes RuVector PostgreSQL extension\n-- from ruvnet/ruvector-postgres with Claude-Flow V3 integration.\n--\n-- RuVector provides 77+ SQL functions including:\n-- - Vector similarity search (HNSW with SIMD)\n-- - Hyperbolic embeddings (Poincar\u00E9/Lorentz)\n-- - Graph operations (Cypher queries)\n-- - Agent routing and learning\n--\n-- Performance: ~61\u00B5s latency, 16,400 QPS\n\n-- ============================================\n-- PART 1: EXTENSION AND SCHEMA SETUP\n-- ============================================\n\n-- IMPORTANT: RuVector requires explicit VERSION\n-- The control file says 2.0.0 but only 0.1.0 SQL exists\nCREATE EXTENSION IF NOT EXISTS ruvector VERSION '0.1.0';\n\n-- Enable additional required extensions\nCREATE EXTENSION IF NOT EXISTS pgcrypto;\n\n-- Create the claude_flow schema\nCREATE SCHEMA IF NOT EXISTS claude_flow;\n\n-- Grant permissions\nGRANT ALL ON SCHEMA claude_flow TO claude;\n\n-- Set search path\nSET search_path TO claude_flow, public;\n\n-- ============================================\n-- PART 2: CORE TABLES\n-- ============================================\n\n-- Embeddings table with RuVector vector type (384-dim for all-MiniLM-L6-v2)\nCREATE TABLE IF NOT EXISTS claude_flow.embeddings (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n content TEXT NOT NULL,\n embedding ruvector(384),\n metadata JSONB DEFAULT '{}',\n namespace VARCHAR(100) DEFAULT 'default',\n created_at TIMESTAMPTZ DEFAULT NOW(),\n updated_at TIMESTAMPTZ DEFAULT NOW()\n);\n\n-- Patterns table for learned patterns (ReasoningBank)\nCREATE TABLE IF NOT EXISTS claude_flow.patterns (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n name VARCHAR(255) NOT NULL,\n description TEXT,\n embedding ruvector(384),\n pattern_type VARCHAR(50),\n confidence FLOAT DEFAULT 0.5,\n success_count INT DEFAULT 0,\n failure_count INT DEFAULT 0,\n ewc_importance FLOAT DEFAULT 1.0,\n metadata JSONB DEFAULT '{}',\n created_at TIMESTAMPTZ DEFAULT NOW()\n);\n\n-- Agents table for multi-agent memory coordination\nCREATE TABLE IF NOT EXISTS claude_flow.agents (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n agent_id VARCHAR(255) NOT NULL UNIQUE,\n agent_type VARCHAR(50),\n state JSONB DEFAULT '{}',\n memory_embedding ruvector(384),\n last_active TIMESTAMPTZ DEFAULT NOW(),\n created_at TIMESTAMPTZ DEFAULT NOW()\n);\n\n-- Trajectories table for SONA reinforcement learning\nCREATE TABLE IF NOT EXISTS claude_flow.trajectories (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n trajectory_id VARCHAR(255) NOT NULL UNIQUE,\n agent_type VARCHAR(50),\n task_description TEXT,\n status VARCHAR(20) DEFAULT 'in_progress',\n steps JSONB DEFAULT '[]',\n outcome VARCHAR(20),\n quality_score FLOAT,\n started_at TIMESTAMPTZ DEFAULT NOW(),\n ended_at TIMESTAMPTZ\n);\n\n-- Memory entries table (main storage for Claude-Flow memory)\nCREATE TABLE IF NOT EXISTS claude_flow.memory_entries (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n key VARCHAR(255) NOT NULL,\n value TEXT NOT NULL,\n embedding ruvector(384),\n namespace VARCHAR(100) DEFAULT 'default',\n metadata JSONB DEFAULT '{}',\n ttl TIMESTAMPTZ,\n created_at TIMESTAMPTZ DEFAULT NOW(),\n updated_at TIMESTAMPTZ DEFAULT NOW(),\n UNIQUE(key, namespace)\n);\n\n-- Hyperbolic embeddings for hierarchical data\nCREATE TABLE IF NOT EXISTS claude_flow.hyperbolic_embeddings (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n content TEXT NOT NULL,\n euclidean_embedding ruvector(384),\n poincare_embedding real[], -- Array for hyperbolic operations\n curvature FLOAT DEFAULT -1.0,\n hierarchy_level INT DEFAULT 0,\n parent_id UUID REFERENCES claude_flow.hyperbolic_embeddings(id),\n metadata JSONB DEFAULT '{}',\n created_at TIMESTAMPTZ DEFAULT NOW()\n);\n\n-- Graph nodes for GNN operations\nCREATE TABLE IF NOT EXISTS claude_flow.graph_nodes (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n node_id VARCHAR(255) NOT NULL UNIQUE,\n node_type VARCHAR(50),\n embedding ruvector(384),\n features JSONB DEFAULT '{}',\n created_at TIMESTAMPTZ DEFAULT NOW()\n);\n\n-- Graph edges for message passing\nCREATE TABLE IF NOT EXISTS claude_flow.graph_edges (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n source_id UUID REFERENCES claude_flow.graph_nodes(id),\n target_id UUID REFERENCES claude_flow.graph_nodes(id),\n edge_type VARCHAR(50),\n weight FLOAT DEFAULT 1.0,\n metadata JSONB DEFAULT '{}',\n created_at TIMESTAMPTZ DEFAULT NOW()\n);\n\n-- ============================================\n-- PART 3: HNSW INDICES (150x-12,500x faster)\n-- ============================================\n\n-- HNSW index for embeddings (cosine distance)\nCREATE INDEX IF NOT EXISTS idx_embeddings_hnsw\nON claude_flow.embeddings\nUSING hnsw (embedding ruvector_cosine_ops)\nWITH (m = 16, ef_construction = 100);\n\n-- HNSW index for patterns\nCREATE INDEX IF NOT EXISTS idx_patterns_hnsw\nON claude_flow.patterns\nUSING hnsw (embedding ruvector_cosine_ops)\nWITH (m = 16, ef_construction = 100);\n\n-- HNSW index for agent memory\nCREATE INDEX IF NOT EXISTS idx_agents_hnsw\nON claude_flow.agents\nUSING hnsw (memory_embedding ruvector_cosine_ops)\nWITH (m = 16, ef_construction = 64);\n\n-- HNSW index for memory entries\nCREATE INDEX IF NOT EXISTS idx_memory_entries_hnsw\nON claude_flow.memory_entries\nUSING hnsw (embedding ruvector_cosine_ops)\nWITH (m = 16, ef_construction = 100);\n\n-- HNSW index for hyperbolic embeddings\nCREATE INDEX IF NOT EXISTS idx_hyperbolic_hnsw\nON claude_flow.hyperbolic_embeddings\nUSING hnsw (euclidean_embedding ruvector_cosine_ops)\nWITH (m = 16, ef_construction = 100);\n\n-- HNSW index for graph nodes\nCREATE INDEX IF NOT EXISTS idx_graph_nodes_hnsw\nON claude_flow.graph_nodes\nUSING hnsw (embedding ruvector_cosine_ops)\nWITH (m = 16, ef_construction = 64);\n\n-- Additional indices for common queries\nCREATE INDEX IF NOT EXISTS idx_embeddings_namespace ON claude_flow.embeddings(namespace);\nCREATE INDEX IF NOT EXISTS idx_memory_entries_namespace ON claude_flow.memory_entries(namespace);\nCREATE INDEX IF NOT EXISTS idx_memory_entries_key ON claude_flow.memory_entries(key);\n\n-- ============================================\n-- PART 4: CORE SEARCH FUNCTIONS\n-- ============================================\n\n-- Semantic similarity search using RuVector HNSW\nCREATE OR REPLACE FUNCTION claude_flow.search_similar(\n query_embedding ruvector(384),\n limit_count INT DEFAULT 10,\n min_similarity FLOAT DEFAULT 0.5\n)\nRETURNS TABLE (\n id UUID,\n content TEXT,\n similarity FLOAT,\n metadata JSONB\n) AS $$\nBEGIN\n RETURN QUERY\n SELECT\n e.id,\n e.content,\n (1 - (e.embedding <=> query_embedding))::FLOAT AS similarity,\n e.metadata\n FROM claude_flow.embeddings e\n WHERE e.embedding IS NOT NULL\n AND (1 - (e.embedding <=> query_embedding)) >= min_similarity\n ORDER BY e.embedding <=> query_embedding\n LIMIT limit_count;\nEND;\n$$ LANGUAGE plpgsql STABLE;\n\n-- Memory search with namespace filtering\nCREATE OR REPLACE FUNCTION claude_flow.search_memory(\n query_embedding ruvector(384),\n namespace_filter VARCHAR(100) DEFAULT NULL,\n limit_count INT DEFAULT 10,\n min_similarity FLOAT DEFAULT 0.5\n)\nRETURNS TABLE (\n id UUID,\n key VARCHAR(255),\n value TEXT,\n namespace VARCHAR(100),\n similarity FLOAT,\n metadata JSONB\n) AS $$\nBEGIN\n RETURN QUERY\n SELECT\n m.id,\n m.key,\n m.value,\n m.namespace,\n (1 - (m.embedding <=> query_embedding))::FLOAT AS similarity,\n m.metadata\n FROM claude_flow.memory_entries m\n WHERE m.embedding IS NOT NULL\n AND (1 - (m.embedding <=> query_embedding)) >= min_similarity\n AND (namespace_filter IS NULL OR m.namespace = namespace_filter)\n AND (m.ttl IS NULL OR m.ttl > NOW())\n ORDER BY m.embedding <=> query_embedding\n LIMIT limit_count;\nEND;\n$$ LANGUAGE plpgsql STABLE;\n\n-- Pattern search with type filtering\nCREATE OR REPLACE FUNCTION claude_flow.search_patterns(\n query_embedding ruvector(384),\n pattern_type_filter VARCHAR(50) DEFAULT NULL,\n limit_count INT DEFAULT 10,\n min_confidence FLOAT DEFAULT 0.5\n)\nRETURNS TABLE (\n id UUID,\n name VARCHAR(255),\n description TEXT,\n similarity FLOAT,\n confidence FLOAT,\n metadata JSONB\n) AS $$\nBEGIN\n RETURN QUERY\n SELECT\n p.id,\n p.name,\n p.description,\n (1 - (p.embedding <=> query_embedding))::FLOAT AS similarity,\n p.confidence,\n p.metadata\n FROM claude_flow.patterns p\n WHERE p.embedding IS NOT NULL\n AND p.confidence >= min_confidence\n AND (pattern_type_filter IS NULL OR p.pattern_type = pattern_type_filter)\n ORDER BY p.embedding <=> query_embedding\n LIMIT limit_count;\nEND;\n$$ LANGUAGE plpgsql STABLE;\n\n-- Agent routing by expertise similarity\nCREATE OR REPLACE FUNCTION claude_flow.find_agents(\n query_embedding ruvector(384),\n agent_type_filter VARCHAR(50) DEFAULT NULL,\n limit_count INT DEFAULT 5\n)\nRETURNS TABLE (\n agent_id VARCHAR(255),\n agent_type VARCHAR(50),\n similarity FLOAT,\n state JSONB\n) AS $$\nBEGIN\n RETURN QUERY\n SELECT\n a.agent_id,\n a.agent_type,\n (1 - (a.memory_embedding <=> query_embedding))::FLOAT AS similarity,\n a.state\n FROM claude_flow.agents a\n WHERE a.memory_embedding IS NOT NULL\n AND (agent_type_filter IS NULL OR a.agent_type = agent_type_filter)\n ORDER BY a.memory_embedding <=> query_embedding\n LIMIT limit_count;\nEND;\n$$ LANGUAGE plpgsql STABLE;\n\n-- ============================================\n-- PART 5: HYPERBOLIC OPERATIONS\n-- ============================================\n\n-- Convert Euclidean to Poincar\u00E9 embedding\nCREATE OR REPLACE FUNCTION claude_flow.to_poincare(\n euclidean real[],\n curvature FLOAT DEFAULT -1.0\n)\nRETURNS real[] AS $$\nBEGIN\n RETURN ruvector_exp_map(ARRAY_FILL(0.0::real, ARRAY[array_length(euclidean, 1)]), euclidean, curvature);\nEND;\n$$ LANGUAGE plpgsql IMMUTABLE;\n\n-- Poincar\u00E9 distance (geodesic)\nCREATE OR REPLACE FUNCTION claude_flow.poincare_distance(\n x real[],\n y real[],\n curvature FLOAT DEFAULT -1.0\n)\nRETURNS FLOAT AS $$\nBEGIN\n RETURN ruvector_poincare_distance(x, y, curvature);\nEND;\n$$ LANGUAGE plpgsql IMMUTABLE;\n\n-- Hyperbolic search in Poincar\u00E9 ball\nCREATE OR REPLACE FUNCTION claude_flow.hyperbolic_search(\n query ruvector(384),\n limit_count INT DEFAULT 10,\n curvature FLOAT DEFAULT -1.0\n)\nRETURNS TABLE (\n id UUID,\n content TEXT,\n euclidean_dist FLOAT,\n hyperbolic_dist FLOAT,\n hierarchy_level INT,\n metadata JSONB\n) AS $$\nDECLARE\n query_arr real[];\n query_poincare real[];\nBEGIN\n -- Convert query to array and then to Poincar\u00E9\n SELECT array_agg(x::real ORDER BY ordinality) INTO query_arr\n FROM unnest(string_to_array(trim(both '[]' from query::text), ',')) WITH ORDINALITY AS t(x, ordinality);\n\n query_poincare := claude_flow.to_poincare(query_arr, curvature);\n\n RETURN QUERY\n SELECT\n he.id,\n he.content,\n (he.euclidean_embedding <-> query)::FLOAT AS euc_dist,\n COALESCE(ruvector_poincare_distance(he.poincare_embedding, query_poincare, curvature), 999.0)::FLOAT AS hyp_dist,\n he.hierarchy_level,\n he.metadata\n FROM claude_flow.hyperbolic_embeddings he\n WHERE he.euclidean_embedding IS NOT NULL\n ORDER BY he.euclidean_embedding <-> query\n LIMIT limit_count;\nEND;\n$$ LANGUAGE plpgsql STABLE;\n\n-- ============================================\n-- PART 6: UTILITY FUNCTIONS\n-- ============================================\n\n-- Get RuVector version info\nCREATE OR REPLACE FUNCTION claude_flow.ruvector_info()\nRETURNS TABLE (\n version TEXT,\n simd_info TEXT\n) AS $$\nBEGIN\n RETURN QUERY\n SELECT ruvector_version(), ruvector_simd_info();\nEND;\n$$ LANGUAGE plpgsql STABLE;\n\n-- Cosine similarity helper (converts cosine distance to similarity)\nCREATE OR REPLACE FUNCTION claude_flow.cosine_similarity(\n a ruvector,\n b ruvector\n)\nRETURNS FLOAT AS $$\nBEGIN\n RETURN (1 - (a <=> b))::FLOAT;\nEND;\n$$ LANGUAGE plpgsql IMMUTABLE;\n\n-- L2 distance helper\nCREATE OR REPLACE FUNCTION claude_flow.l2_distance(\n a ruvector,\n b ruvector\n)\nRETURNS FLOAT AS $$\nBEGIN\n RETURN (a <-> b)::FLOAT;\nEND;\n$$ LANGUAGE plpgsql IMMUTABLE;\n\n-- Upsert memory entry\nCREATE OR REPLACE FUNCTION claude_flow.upsert_memory(\n p_key VARCHAR(255),\n p_value TEXT,\n p_embedding ruvector(384) DEFAULT NULL,\n p_namespace VARCHAR(100) DEFAULT 'default',\n p_metadata JSONB DEFAULT '{}',\n p_ttl TIMESTAMPTZ DEFAULT NULL\n)\nRETURNS UUID AS $$\nDECLARE\n v_id UUID;\nBEGIN\n INSERT INTO claude_flow.memory_entries (key, value, embedding, namespace, metadata, ttl, updated_at)\n VALUES (p_key, p_value, p_embedding, p_namespace, p_metadata, p_ttl, NOW())\n ON CONFLICT (key, namespace) DO UPDATE SET\n value = EXCLUDED.value,\n embedding = COALESCE(EXCLUDED.embedding, claude_flow.memory_entries.embedding),\n metadata = EXCLUDED.metadata,\n ttl = EXCLUDED.ttl,\n updated_at = NOW()\n RETURNING id INTO v_id;\n\n RETURN v_id;\nEND;\n$$ LANGUAGE plpgsql;\n\n-- ============================================\n-- COMPLETION\n-- ============================================\n\nDO $$\nDECLARE\n v_version TEXT;\n v_simd TEXT;\nBEGIN\n SELECT ruvector_version() INTO v_version;\n SELECT ruvector_simd_info() INTO v_simd;\n\n RAISE NOTICE '';\n RAISE NOTICE '============================================';\n RAISE NOTICE 'RuVector PostgreSQL Initialization Complete!';\n RAISE NOTICE '============================================';\n RAISE NOTICE '';\n RAISE NOTICE 'RuVector Version: %', v_version;\n RAISE NOTICE 'SIMD: %', v_simd;\n RAISE NOTICE '';\n RAISE NOTICE 'Schema: claude_flow';\n RAISE NOTICE 'Tables: embeddings, patterns, agents, trajectories,';\n RAISE NOTICE ' memory_entries, hyperbolic_embeddings,';\n RAISE NOTICE ' graph_nodes, graph_edges';\n RAISE NOTICE 'Indices: 6 HNSW indices + 3 B-tree indices';\n RAISE NOTICE '';\n RAISE NOTICE 'Key Functions:';\n RAISE NOTICE ' - claude_flow.search_similar(embedding, limit, min_sim)';\n RAISE NOTICE ' - claude_flow.search_memory(embedding, namespace, limit)';\n RAISE NOTICE ' - claude_flow.search_patterns(embedding, type, limit)';\n RAISE NOTICE ' - claude_flow.find_agents(embedding, type, limit)';\n RAISE NOTICE ' - claude_flow.hyperbolic_search(embedding, limit, curvature)';\n RAISE NOTICE ' - claude_flow.upsert_memory(key, value, embedding, namespace)';\n RAISE NOTICE '';\n RAISE NOTICE 'Operators: <=> (cosine), <-> (L2), <#> (neg inner product)';\n RAISE NOTICE '';\nEND $$;\n";
75
+ const INIT_SQL_TEMPLATE = `-- ============================================
76
+ -- RUVECTOR POSTGRESQL INITIALIZATION SCRIPT
77
+ -- ============================================
78
+ --
79
+ -- This script initializes RuVector PostgreSQL extension
80
+ -- from ruvnet/ruvector-postgres with Claude-Flow V3 integration.
81
+ --
82
+ -- RuVector provides 77+ SQL functions including:
83
+ -- - Vector similarity search (HNSW with SIMD)
84
+ -- - Hyperbolic embeddings (Poincaré/Lorentz)
85
+ -- - Graph operations (Cypher queries)
86
+ -- - Agent routing and learning
87
+ --
88
+ -- Performance: ~61µs latency, 16,400 QPS
89
+
90
+ -- ============================================
91
+ -- PART 1: EXTENSION AND SCHEMA SETUP
92
+ -- ============================================
93
+
94
+ -- IMPORTANT: RuVector requires explicit VERSION
95
+ -- The control file says 2.0.0 but only 0.1.0 SQL exists
96
+ CREATE EXTENSION IF NOT EXISTS ruvector VERSION '0.1.0';
97
+
98
+ -- Enable additional required extensions
99
+ CREATE EXTENSION IF NOT EXISTS pgcrypto;
100
+
101
+ -- Create the claude_flow schema
102
+ CREATE SCHEMA IF NOT EXISTS claude_flow;
103
+
104
+ -- Grant permissions
105
+ GRANT ALL ON SCHEMA claude_flow TO claude;
106
+
107
+ -- Set search path
108
+ SET search_path TO claude_flow, public;
109
+
110
+ -- ============================================
111
+ -- PART 2: CORE TABLES
112
+ -- ============================================
113
+
114
+ -- Embeddings table with RuVector vector type (384-dim for all-MiniLM-L6-v2)
115
+ CREATE TABLE IF NOT EXISTS claude_flow.embeddings (
116
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
117
+ content TEXT NOT NULL,
118
+ embedding ruvector(384),
119
+ metadata JSONB DEFAULT '{}',
120
+ namespace VARCHAR(100) DEFAULT 'default',
121
+ created_at TIMESTAMPTZ DEFAULT NOW(),
122
+ updated_at TIMESTAMPTZ DEFAULT NOW()
123
+ );
124
+
125
+ -- Patterns table for learned patterns (ReasoningBank)
126
+ CREATE TABLE IF NOT EXISTS claude_flow.patterns (
127
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
128
+ name VARCHAR(255) NOT NULL,
129
+ description TEXT,
130
+ embedding ruvector(384),
131
+ pattern_type VARCHAR(50),
132
+ confidence FLOAT DEFAULT 0.5,
133
+ success_count INT DEFAULT 0,
134
+ failure_count INT DEFAULT 0,
135
+ ewc_importance FLOAT DEFAULT 1.0,
136
+ metadata JSONB DEFAULT '{}',
137
+ created_at TIMESTAMPTZ DEFAULT NOW()
138
+ );
139
+
140
+ -- Agents table for multi-agent memory coordination
141
+ CREATE TABLE IF NOT EXISTS claude_flow.agents (
142
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
143
+ agent_id VARCHAR(255) NOT NULL UNIQUE,
144
+ agent_type VARCHAR(50),
145
+ state JSONB DEFAULT '{}',
146
+ memory_embedding ruvector(384),
147
+ last_active TIMESTAMPTZ DEFAULT NOW(),
148
+ created_at TIMESTAMPTZ DEFAULT NOW()
149
+ );
150
+
151
+ -- Trajectories table for SONA reinforcement learning
152
+ CREATE TABLE IF NOT EXISTS claude_flow.trajectories (
153
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
154
+ trajectory_id VARCHAR(255) NOT NULL UNIQUE,
155
+ agent_type VARCHAR(50),
156
+ task_description TEXT,
157
+ status VARCHAR(20) DEFAULT 'in_progress',
158
+ steps JSONB DEFAULT '[]',
159
+ outcome VARCHAR(20),
160
+ quality_score FLOAT,
161
+ started_at TIMESTAMPTZ DEFAULT NOW(),
162
+ ended_at TIMESTAMPTZ
163
+ );
164
+
165
+ -- Memory entries table (main storage for Claude-Flow memory)
166
+ CREATE TABLE IF NOT EXISTS claude_flow.memory_entries (
167
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
168
+ key VARCHAR(255) NOT NULL,
169
+ value TEXT NOT NULL,
170
+ embedding ruvector(384),
171
+ namespace VARCHAR(100) DEFAULT 'default',
172
+ metadata JSONB DEFAULT '{}',
173
+ ttl TIMESTAMPTZ,
174
+ created_at TIMESTAMPTZ DEFAULT NOW(),
175
+ updated_at TIMESTAMPTZ DEFAULT NOW(),
176
+ UNIQUE(key, namespace)
177
+ );
178
+
179
+ -- Hyperbolic embeddings for hierarchical data
180
+ CREATE TABLE IF NOT EXISTS claude_flow.hyperbolic_embeddings (
181
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
182
+ content TEXT NOT NULL,
183
+ euclidean_embedding ruvector(384),
184
+ poincare_embedding real[], -- Array for hyperbolic operations
185
+ curvature FLOAT DEFAULT -1.0,
186
+ hierarchy_level INT DEFAULT 0,
187
+ parent_id UUID REFERENCES claude_flow.hyperbolic_embeddings(id),
188
+ metadata JSONB DEFAULT '{}',
189
+ created_at TIMESTAMPTZ DEFAULT NOW()
190
+ );
191
+
192
+ -- Graph nodes for GNN operations
193
+ CREATE TABLE IF NOT EXISTS claude_flow.graph_nodes (
194
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
195
+ node_id VARCHAR(255) NOT NULL UNIQUE,
196
+ node_type VARCHAR(50),
197
+ embedding ruvector(384),
198
+ features JSONB DEFAULT '{}',
199
+ created_at TIMESTAMPTZ DEFAULT NOW()
200
+ );
201
+
202
+ -- Graph edges for message passing
203
+ CREATE TABLE IF NOT EXISTS claude_flow.graph_edges (
204
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
205
+ source_id UUID REFERENCES claude_flow.graph_nodes(id),
206
+ target_id UUID REFERENCES claude_flow.graph_nodes(id),
207
+ edge_type VARCHAR(50),
208
+ weight FLOAT DEFAULT 1.0,
209
+ metadata JSONB DEFAULT '{}',
210
+ created_at TIMESTAMPTZ DEFAULT NOW()
211
+ );
212
+
213
+ -- ============================================
214
+ -- PART 3: HNSW INDICES (150x-12,500x faster)
215
+ -- ============================================
216
+
217
+ -- HNSW index for embeddings (cosine distance)
218
+ CREATE INDEX IF NOT EXISTS idx_embeddings_hnsw
219
+ ON claude_flow.embeddings
220
+ USING hnsw (embedding ruvector_cosine_ops)
221
+ WITH (m = 16, ef_construction = 100);
222
+
223
+ -- HNSW index for patterns
224
+ CREATE INDEX IF NOT EXISTS idx_patterns_hnsw
225
+ ON claude_flow.patterns
226
+ USING hnsw (embedding ruvector_cosine_ops)
227
+ WITH (m = 16, ef_construction = 100);
228
+
229
+ -- HNSW index for agent memory
230
+ CREATE INDEX IF NOT EXISTS idx_agents_hnsw
231
+ ON claude_flow.agents
232
+ USING hnsw (memory_embedding ruvector_cosine_ops)
233
+ WITH (m = 16, ef_construction = 64);
234
+
235
+ -- HNSW index for memory entries
236
+ CREATE INDEX IF NOT EXISTS idx_memory_entries_hnsw
237
+ ON claude_flow.memory_entries
238
+ USING hnsw (embedding ruvector_cosine_ops)
239
+ WITH (m = 16, ef_construction = 100);
240
+
241
+ -- HNSW index for hyperbolic embeddings
242
+ CREATE INDEX IF NOT EXISTS idx_hyperbolic_hnsw
243
+ ON claude_flow.hyperbolic_embeddings
244
+ USING hnsw (euclidean_embedding ruvector_cosine_ops)
245
+ WITH (m = 16, ef_construction = 100);
246
+
247
+ -- HNSW index for graph nodes
248
+ CREATE INDEX IF NOT EXISTS idx_graph_nodes_hnsw
249
+ ON claude_flow.graph_nodes
250
+ USING hnsw (embedding ruvector_cosine_ops)
251
+ WITH (m = 16, ef_construction = 64);
252
+
253
+ -- Additional indices for common queries
254
+ CREATE INDEX IF NOT EXISTS idx_embeddings_namespace ON claude_flow.embeddings(namespace);
255
+ CREATE INDEX IF NOT EXISTS idx_memory_entries_namespace ON claude_flow.memory_entries(namespace);
256
+ CREATE INDEX IF NOT EXISTS idx_memory_entries_key ON claude_flow.memory_entries(key);
257
+
258
+ -- ============================================
259
+ -- PART 4: CORE SEARCH FUNCTIONS
260
+ -- ============================================
261
+
262
+ -- Semantic similarity search using RuVector HNSW
263
+ CREATE OR REPLACE FUNCTION claude_flow.search_similar(
264
+ query_embedding ruvector(384),
265
+ limit_count INT DEFAULT 10,
266
+ min_similarity FLOAT DEFAULT 0.5
267
+ )
268
+ RETURNS TABLE (
269
+ id UUID,
270
+ content TEXT,
271
+ similarity FLOAT,
272
+ metadata JSONB
273
+ ) AS $$
274
+ BEGIN
275
+ RETURN QUERY
276
+ SELECT
277
+ e.id,
278
+ e.content,
279
+ (1 - (e.embedding <=> query_embedding))::FLOAT AS similarity,
280
+ e.metadata
281
+ FROM claude_flow.embeddings e
282
+ WHERE e.embedding IS NOT NULL
283
+ AND (1 - (e.embedding <=> query_embedding)) >= min_similarity
284
+ ORDER BY e.embedding <=> query_embedding
285
+ LIMIT limit_count;
286
+ END;
287
+ $$ LANGUAGE plpgsql STABLE;
288
+
289
+ -- Memory search with namespace filtering
290
+ CREATE OR REPLACE FUNCTION claude_flow.search_memory(
291
+ query_embedding ruvector(384),
292
+ namespace_filter VARCHAR(100) DEFAULT NULL,
293
+ limit_count INT DEFAULT 10,
294
+ min_similarity FLOAT DEFAULT 0.5
295
+ )
296
+ RETURNS TABLE (
297
+ id UUID,
298
+ key VARCHAR(255),
299
+ value TEXT,
300
+ namespace VARCHAR(100),
301
+ similarity FLOAT,
302
+ metadata JSONB
303
+ ) AS $$
304
+ BEGIN
305
+ RETURN QUERY
306
+ SELECT
307
+ m.id,
308
+ m.key,
309
+ m.value,
310
+ m.namespace,
311
+ (1 - (m.embedding <=> query_embedding))::FLOAT AS similarity,
312
+ m.metadata
313
+ FROM claude_flow.memory_entries m
314
+ WHERE m.embedding IS NOT NULL
315
+ AND (1 - (m.embedding <=> query_embedding)) >= min_similarity
316
+ AND (namespace_filter IS NULL OR m.namespace = namespace_filter)
317
+ AND (m.ttl IS NULL OR m.ttl > NOW())
318
+ ORDER BY m.embedding <=> query_embedding
319
+ LIMIT limit_count;
320
+ END;
321
+ $$ LANGUAGE plpgsql STABLE;
322
+
323
+ -- Pattern search with type filtering
324
+ CREATE OR REPLACE FUNCTION claude_flow.search_patterns(
325
+ query_embedding ruvector(384),
326
+ pattern_type_filter VARCHAR(50) DEFAULT NULL,
327
+ limit_count INT DEFAULT 10,
328
+ min_confidence FLOAT DEFAULT 0.5
329
+ )
330
+ RETURNS TABLE (
331
+ id UUID,
332
+ name VARCHAR(255),
333
+ description TEXT,
334
+ similarity FLOAT,
335
+ confidence FLOAT,
336
+ metadata JSONB
337
+ ) AS $$
338
+ BEGIN
339
+ RETURN QUERY
340
+ SELECT
341
+ p.id,
342
+ p.name,
343
+ p.description,
344
+ (1 - (p.embedding <=> query_embedding))::FLOAT AS similarity,
345
+ p.confidence,
346
+ p.metadata
347
+ FROM claude_flow.patterns p
348
+ WHERE p.embedding IS NOT NULL
349
+ AND p.confidence >= min_confidence
350
+ AND (pattern_type_filter IS NULL OR p.pattern_type = pattern_type_filter)
351
+ ORDER BY p.embedding <=> query_embedding
352
+ LIMIT limit_count;
353
+ END;
354
+ $$ LANGUAGE plpgsql STABLE;
355
+
356
+ -- Agent routing by expertise similarity
357
+ CREATE OR REPLACE FUNCTION claude_flow.find_agents(
358
+ query_embedding ruvector(384),
359
+ agent_type_filter VARCHAR(50) DEFAULT NULL,
360
+ limit_count INT DEFAULT 5
361
+ )
362
+ RETURNS TABLE (
363
+ agent_id VARCHAR(255),
364
+ agent_type VARCHAR(50),
365
+ similarity FLOAT,
366
+ state JSONB
367
+ ) AS $$
368
+ BEGIN
369
+ RETURN QUERY
370
+ SELECT
371
+ a.agent_id,
372
+ a.agent_type,
373
+ (1 - (a.memory_embedding <=> query_embedding))::FLOAT AS similarity,
374
+ a.state
375
+ FROM claude_flow.agents a
376
+ WHERE a.memory_embedding IS NOT NULL
377
+ AND (agent_type_filter IS NULL OR a.agent_type = agent_type_filter)
378
+ ORDER BY a.memory_embedding <=> query_embedding
379
+ LIMIT limit_count;
380
+ END;
381
+ $$ LANGUAGE plpgsql STABLE;
382
+
383
+ -- ============================================
384
+ -- PART 5: HYPERBOLIC OPERATIONS
385
+ -- ============================================
386
+
387
+ -- Convert Euclidean to Poincaré embedding
388
+ CREATE OR REPLACE FUNCTION claude_flow.to_poincare(
389
+ euclidean real[],
390
+ curvature FLOAT DEFAULT -1.0
391
+ )
392
+ RETURNS real[] AS $$
393
+ BEGIN
394
+ RETURN ruvector_exp_map(ARRAY_FILL(0.0::real, ARRAY[array_length(euclidean, 1)]), euclidean, curvature);
395
+ END;
396
+ $$ LANGUAGE plpgsql IMMUTABLE;
397
+
398
+ -- Poincaré distance (geodesic)
399
+ CREATE OR REPLACE FUNCTION claude_flow.poincare_distance(
400
+ x real[],
401
+ y real[],
402
+ curvature FLOAT DEFAULT -1.0
403
+ )
404
+ RETURNS FLOAT AS $$
405
+ BEGIN
406
+ RETURN ruvector_poincare_distance(x, y, curvature);
407
+ END;
408
+ $$ LANGUAGE plpgsql IMMUTABLE;
409
+
410
+ -- Hyperbolic search in Poincaré ball
411
+ CREATE OR REPLACE FUNCTION claude_flow.hyperbolic_search(
412
+ query ruvector(384),
413
+ limit_count INT DEFAULT 10,
414
+ curvature FLOAT DEFAULT -1.0
415
+ )
416
+ RETURNS TABLE (
417
+ id UUID,
418
+ content TEXT,
419
+ euclidean_dist FLOAT,
420
+ hyperbolic_dist FLOAT,
421
+ hierarchy_level INT,
422
+ metadata JSONB
423
+ ) AS $$
424
+ DECLARE
425
+ query_arr real[];
426
+ query_poincare real[];
427
+ BEGIN
428
+ -- Convert query to array and then to Poincaré
429
+ SELECT array_agg(x::real ORDER BY ordinality) INTO query_arr
430
+ FROM unnest(string_to_array(trim(both '[]' from query::text), ',')) WITH ORDINALITY AS t(x, ordinality);
431
+
432
+ query_poincare := claude_flow.to_poincare(query_arr, curvature);
433
+
434
+ RETURN QUERY
435
+ SELECT
436
+ he.id,
437
+ he.content,
438
+ (he.euclidean_embedding <-> query)::FLOAT AS euc_dist,
439
+ COALESCE(ruvector_poincare_distance(he.poincare_embedding, query_poincare, curvature), 999.0)::FLOAT AS hyp_dist,
440
+ he.hierarchy_level,
441
+ he.metadata
442
+ FROM claude_flow.hyperbolic_embeddings he
443
+ WHERE he.euclidean_embedding IS NOT NULL
444
+ ORDER BY he.euclidean_embedding <-> query
445
+ LIMIT limit_count;
446
+ END;
447
+ $$ LANGUAGE plpgsql STABLE;
448
+
449
+ -- ============================================
450
+ -- PART 6: UTILITY FUNCTIONS
451
+ -- ============================================
452
+
453
+ -- Get RuVector version info
454
+ CREATE OR REPLACE FUNCTION claude_flow.ruvector_info()
455
+ RETURNS TABLE (
456
+ version TEXT,
457
+ simd_info TEXT
458
+ ) AS $$
459
+ BEGIN
460
+ RETURN QUERY
461
+ SELECT ruvector_version(), ruvector_simd_info();
462
+ END;
463
+ $$ LANGUAGE plpgsql STABLE;
464
+
465
+ -- Cosine similarity helper (converts cosine distance to similarity)
466
+ CREATE OR REPLACE FUNCTION claude_flow.cosine_similarity(
467
+ a ruvector,
468
+ b ruvector
469
+ )
470
+ RETURNS FLOAT AS $$
471
+ BEGIN
472
+ RETURN (1 - (a <=> b))::FLOAT;
473
+ END;
474
+ $$ LANGUAGE plpgsql IMMUTABLE;
475
+
476
+ -- L2 distance helper
477
+ CREATE OR REPLACE FUNCTION claude_flow.l2_distance(
478
+ a ruvector,
479
+ b ruvector
480
+ )
481
+ RETURNS FLOAT AS $$
482
+ BEGIN
483
+ RETURN (a <-> b)::FLOAT;
484
+ END;
485
+ $$ LANGUAGE plpgsql IMMUTABLE;
486
+
487
+ -- Upsert memory entry
488
+ CREATE OR REPLACE FUNCTION claude_flow.upsert_memory(
489
+ p_key VARCHAR(255),
490
+ p_value TEXT,
491
+ p_embedding ruvector(384) DEFAULT NULL,
492
+ p_namespace VARCHAR(100) DEFAULT 'default',
493
+ p_metadata JSONB DEFAULT '{}',
494
+ p_ttl TIMESTAMPTZ DEFAULT NULL
495
+ )
496
+ RETURNS UUID AS $$
497
+ DECLARE
498
+ v_id UUID;
499
+ BEGIN
500
+ INSERT INTO claude_flow.memory_entries (key, value, embedding, namespace, metadata, ttl, updated_at)
501
+ VALUES (p_key, p_value, p_embedding, p_namespace, p_metadata, p_ttl, NOW())
502
+ ON CONFLICT (key, namespace) DO UPDATE SET
503
+ value = EXCLUDED.value,
504
+ embedding = COALESCE(EXCLUDED.embedding, claude_flow.memory_entries.embedding),
505
+ metadata = EXCLUDED.metadata,
506
+ ttl = EXCLUDED.ttl,
507
+ updated_at = NOW()
508
+ RETURNING id INTO v_id;
509
+
510
+ RETURN v_id;
511
+ END;
512
+ $$ LANGUAGE plpgsql;
513
+
514
+ -- ============================================
515
+ -- COMPLETION
516
+ -- ============================================
517
+
518
+ DO $$
519
+ DECLARE
520
+ v_version TEXT;
521
+ v_simd TEXT;
522
+ BEGIN
523
+ SELECT ruvector_version() INTO v_version;
524
+ SELECT ruvector_simd_info() INTO v_simd;
525
+
526
+ RAISE NOTICE '';
527
+ RAISE NOTICE '============================================';
528
+ RAISE NOTICE 'RuVector PostgreSQL Initialization Complete!';
529
+ RAISE NOTICE '============================================';
530
+ RAISE NOTICE '';
531
+ RAISE NOTICE 'RuVector Version: %', v_version;
532
+ RAISE NOTICE 'SIMD: %', v_simd;
533
+ RAISE NOTICE '';
534
+ RAISE NOTICE 'Schema: claude_flow';
535
+ RAISE NOTICE 'Tables: embeddings, patterns, agents, trajectories,';
536
+ RAISE NOTICE ' memory_entries, hyperbolic_embeddings,';
537
+ RAISE NOTICE ' graph_nodes, graph_edges';
538
+ RAISE NOTICE 'Indices: 6 HNSW indices + 3 B-tree indices';
539
+ RAISE NOTICE '';
540
+ RAISE NOTICE 'Key Functions:';
541
+ RAISE NOTICE ' - claude_flow.search_similar(embedding, limit, min_sim)';
542
+ RAISE NOTICE ' - claude_flow.search_memory(embedding, namespace, limit)';
543
+ RAISE NOTICE ' - claude_flow.search_patterns(embedding, type, limit)';
544
+ RAISE NOTICE ' - claude_flow.find_agents(embedding, type, limit)';
545
+ RAISE NOTICE ' - claude_flow.hyperbolic_search(embedding, limit, curvature)';
546
+ RAISE NOTICE ' - claude_flow.upsert_memory(key, value, embedding, namespace)';
547
+ RAISE NOTICE '';
548
+ RAISE NOTICE 'Operators: <=> (cosine), <-> (L2), <#> (neg inner product)';
549
+ RAISE NOTICE '';
550
+ END $$;
551
+ `;
59
552
  /**
60
553
  * README template
61
554
  */
62
- var README_TEMPLATE = "# RuVector PostgreSQL Setup\n\nThis directory contains the Docker configuration for RuVector PostgreSQL with Claude-Flow V3.\n\n## Quick Start\n\n```bash\n# Start the container\ndocker-compose up -d\n\n# Verify it's running\ndocker-compose ps\n\n# Check RuVector version\ndocker exec ruvector-postgres psql -U claude -d claude_flow -c \"SELECT ruvector_version();\"\n```\n\n## Connection Details\n\n| Setting | Value |\n|---------|-------|\n| Host | localhost |\n| Port | 5432 |\n| Database | claude_flow |\n| Username | claude |\n| Password | claude-flow-test |\n| Schema | claude_flow |\n\n## RuVector Syntax\n\n### Extension Installation\n```sql\n-- IMPORTANT: Requires explicit version\nCREATE EXTENSION IF NOT EXISTS ruvector VERSION '0.1.0';\n```\n\n### Vector Type\n```sql\n-- Use ruvector(384), NOT vector(384)\nCREATE TABLE embeddings (\n id UUID PRIMARY KEY,\n embedding ruvector(384)\n);\n```\n\n### Distance Operators\n| Operator | Description |\n|----------|-------------|\n| `<=>` | Cosine distance |\n| `<->` | L2 (Euclidean) distance |\n| `<#>` | Negative inner product |\n\n### HNSW Index\n```sql\nCREATE INDEX idx_embeddings_hnsw\nON embeddings\nUSING hnsw (embedding ruvector_cosine_ops)\nWITH (m = 16, ef_construction = 100);\n```\n\n## Import from sql.js/JSON\n\n```bash\n# Export current Claude-Flow memory\nnpx claude-flow memory list --format json > memory-export.json\n\n# Import to RuVector PostgreSQL\nnpx claude-flow ruvector import --input memory-export.json\n```\n\n## pgAdmin (Optional)\n\n```bash\ndocker-compose --profile gui up -d\n```\n\nAccess at: http://localhost:5050\n- Email: admin@claude-flow.local\n- Password: admin\n\n## Troubleshooting\n\n### Extension creation fails\nUse explicit version: `CREATE EXTENSION ruvector VERSION '0.1.0';`\n\n### Container won't start\n```bash\ndocker-compose logs postgres\ndocker-compose down -v\ndocker-compose up -d\n```\n\n## Learn More\n- [RuVector Docker Hub](https://hub.docker.com/r/ruvnet/ruvector-postgres)\n- [Claude-Flow Documentation](https://github.com/ruvnet/claude-flow)\n";
555
+ const README_TEMPLATE = `# RuVector PostgreSQL Setup
556
+
557
+ This directory contains the Docker configuration for RuVector PostgreSQL with Claude-Flow V3.
558
+
559
+ ## Quick Start
560
+
561
+ \`\`\`bash
562
+ # Start the container
563
+ docker-compose up -d
564
+
565
+ # Verify it's running
566
+ docker-compose ps
567
+
568
+ # Check RuVector version
569
+ docker exec ruvector-postgres psql -U claude -d claude_flow -c "SELECT ruvector_version();"
570
+ \`\`\`
571
+
572
+ ## Connection Details
573
+
574
+ | Setting | Value |
575
+ |---------|-------|
576
+ | Host | localhost |
577
+ | Port | 5432 |
578
+ | Database | claude_flow |
579
+ | Username | claude |
580
+ | Password | claude-flow-test |
581
+ | Schema | claude_flow |
582
+
583
+ ## RuVector Syntax
584
+
585
+ ### Extension Installation
586
+ \`\`\`sql
587
+ -- IMPORTANT: Requires explicit version
588
+ CREATE EXTENSION IF NOT EXISTS ruvector VERSION '0.1.0';
589
+ \`\`\`
590
+
591
+ ### Vector Type
592
+ \`\`\`sql
593
+ -- Use ruvector(384), NOT vector(384)
594
+ CREATE TABLE embeddings (
595
+ id UUID PRIMARY KEY,
596
+ embedding ruvector(384)
597
+ );
598
+ \`\`\`
599
+
600
+ ### Distance Operators
601
+ | Operator | Description |
602
+ |----------|-------------|
603
+ | \`<=>\` | Cosine distance |
604
+ | \`<->\` | L2 (Euclidean) distance |
605
+ | \`<#>\` | Negative inner product |
606
+
607
+ ### HNSW Index
608
+ \`\`\`sql
609
+ CREATE INDEX idx_embeddings_hnsw
610
+ ON embeddings
611
+ USING hnsw (embedding ruvector_cosine_ops)
612
+ WITH (m = 16, ef_construction = 100);
613
+ \`\`\`
614
+
615
+ ## Import from sql.js/JSON
616
+
617
+ \`\`\`bash
618
+ # Export current Claude-Flow memory
619
+ npx claude-flow memory list --format json > memory-export.json
620
+
621
+ # Import to RuVector PostgreSQL
622
+ npx claude-flow ruvector import --input memory-export.json
623
+ \`\`\`
624
+
625
+ ## pgAdmin (Optional)
626
+
627
+ \`\`\`bash
628
+ docker-compose --profile gui up -d
629
+ \`\`\`
630
+
631
+ Access at: http://localhost:5050
632
+ - Email: admin@claude-flow.local
633
+ - Password: admin
634
+
635
+ ## Troubleshooting
636
+
637
+ ### Extension creation fails
638
+ Use explicit version: \`CREATE EXTENSION ruvector VERSION '0.1.0';\`
639
+
640
+ ### Container won't start
641
+ \`\`\`bash
642
+ docker-compose logs postgres
643
+ docker-compose down -v
644
+ docker-compose up -d
645
+ \`\`\`
646
+
647
+ ## Learn More
648
+ - [RuVector Docker Hub](https://hub.docker.com/r/ruvnet/ruvector-postgres)
649
+ - [Claude-Flow Documentation](https://github.com/ruvnet/claude-flow)
650
+ `;
63
651
  /**
64
652
  * RuVector Setup command - outputs Docker files and SQL
65
653
  */
66
- export var setupCommand = {
654
+ export const setupCommand = {
67
655
  name: 'setup',
68
656
  description: 'Output Docker files and SQL for RuVector PostgreSQL setup',
69
657
  aliases: ['scaffold', 'docker'],
@@ -73,21 +661,21 @@ export var setupCommand = {
73
661
  short: 'o',
74
662
  description: 'Output directory (default: ./ruvector-postgres)',
75
663
  type: 'string',
76
- "default": './ruvector-postgres'
664
+ default: './ruvector-postgres',
77
665
  },
78
666
  {
79
667
  name: 'print',
80
668
  short: 'p',
81
669
  description: 'Print to stdout instead of writing files',
82
670
  type: 'boolean',
83
- "default": false
671
+ default: false,
84
672
  },
85
673
  {
86
674
  name: 'force',
87
675
  short: 'f',
88
676
  description: 'Overwrite existing files',
89
677
  type: 'boolean',
90
- "default": false
678
+ default: false,
91
679
  },
92
680
  ],
93
681
  examples: [
@@ -96,84 +684,82 @@ export var setupCommand = {
96
684
  { command: 'claude-flow ruvector setup --print', description: 'Print files to stdout' },
97
685
  { command: 'claude-flow ruvector setup --force', description: 'Overwrite existing files' },
98
686
  ],
99
- action: function (ctx) { return __awaiter(void 0, void 0, Promise, function () {
100
- var outputDir, printOnly, force, scriptsDir, files, dockerComposePath, initSqlPath, readmePath, errorMessage;
101
- return __generator(this, function (_a) {
102
- outputDir = ctx.flags.output || './ruvector-postgres';
103
- printOnly = ctx.flags.print;
104
- force = ctx.flags.force;
687
+ action: async (ctx) => {
688
+ const outputDir = ctx.flags.output || './ruvector-postgres';
689
+ const printOnly = ctx.flags.print;
690
+ const force = ctx.flags.force;
691
+ output.writeln();
692
+ output.writeln(output.bold('RuVector PostgreSQL Setup'));
693
+ output.writeln(output.dim('='.repeat(50)));
694
+ output.writeln();
695
+ if (printOnly) {
696
+ // Print to stdout
697
+ output.writeln(output.bold('=== docker-compose.yml ==='));
105
698
  output.writeln();
106
- output.writeln(output.bold('RuVector PostgreSQL Setup'));
107
- output.writeln(output.dim('='.repeat(50)));
699
+ output.writeln(DOCKER_COMPOSE_TEMPLATE);
108
700
  output.writeln();
109
- if (printOnly) {
110
- // Print to stdout
111
- output.writeln(output.bold('=== docker-compose.yml ==='));
112
- output.writeln();
113
- output.writeln(DOCKER_COMPOSE_TEMPLATE);
114
- output.writeln();
115
- output.writeln(output.bold('=== scripts/init-db.sql ==='));
116
- output.writeln();
117
- output.writeln(INIT_SQL_TEMPLATE);
118
- output.writeln();
119
- output.writeln(output.bold('=== README.md ==='));
120
- output.writeln();
121
- output.writeln(README_TEMPLATE);
122
- return [2 /*return*/, { success: true }];
123
- }
124
- scriptsDir = path.join(outputDir, 'scripts');
125
- try {
126
- // Check if directory exists
127
- if (fs.existsSync(outputDir) && !force) {
128
- files = fs.readdirSync(outputDir);
129
- if (files.length > 0) {
130
- output.printWarning("Directory " + outputDir + " already exists and is not empty.");
131
- output.printInfo('Use --force to overwrite existing files.');
132
- return [2 /*return*/, { success: false, message: 'Directory not empty' }];
133
- }
701
+ output.writeln(output.bold('=== scripts/init-db.sql ==='));
702
+ output.writeln();
703
+ output.writeln(INIT_SQL_TEMPLATE);
704
+ output.writeln();
705
+ output.writeln(output.bold('=== README.md ==='));
706
+ output.writeln();
707
+ output.writeln(README_TEMPLATE);
708
+ return { success: true };
709
+ }
710
+ // Create directory structure
711
+ const scriptsDir = path.join(outputDir, 'scripts');
712
+ try {
713
+ // Check if directory exists
714
+ if (fs.existsSync(outputDir) && !force) {
715
+ const files = fs.readdirSync(outputDir);
716
+ if (files.length > 0) {
717
+ output.printWarning(`Directory ${outputDir} already exists and is not empty.`);
718
+ output.printInfo('Use --force to overwrite existing files.');
719
+ return { success: false, message: 'Directory not empty' };
134
720
  }
135
- // Create directories
136
- output.printInfo("Creating directory: " + outputDir);
137
- fs.mkdirSync(outputDir, { recursive: true });
138
- fs.mkdirSync(scriptsDir, { recursive: true });
139
- dockerComposePath = path.join(outputDir, 'docker-compose.yml');
140
- initSqlPath = path.join(scriptsDir, 'init-db.sql');
141
- readmePath = path.join(outputDir, 'README.md');
142
- output.printInfo("Writing: " + dockerComposePath);
143
- fs.writeFileSync(dockerComposePath, DOCKER_COMPOSE_TEMPLATE);
144
- output.printInfo("Writing: " + initSqlPath);
145
- fs.writeFileSync(initSqlPath, INIT_SQL_TEMPLATE);
146
- output.printInfo("Writing: " + readmePath);
147
- fs.writeFileSync(readmePath, README_TEMPLATE);
148
- output.writeln();
149
- output.printSuccess('RuVector PostgreSQL setup files created!');
150
- output.writeln();
151
- output.printBox([
152
- 'Files created:',
153
- '',
154
- " " + outputDir + "/",
155
- ' ├── docker-compose.yml',
156
- ' ├── README.md',
157
- ' └── scripts/',
158
- ' └── init-db.sql',
159
- '',
160
- 'Next steps:',
161
- '',
162
- " cd " + outputDir,
163
- ' docker-compose up -d',
164
- ' docker exec ruvector-postgres psql -U claude -d claude_flow -c "SELECT ruvector_version();"',
165
- ].join('\n'), 'Setup Complete');
166
- output.writeln();
167
- return [2 /*return*/, { success: true }];
168
- }
169
- catch (error) {
170
- errorMessage = error instanceof Error ? error.message : String(error);
171
- output.printError("Failed to create setup files: " + errorMessage);
172
- return [2 /*return*/, { success: false, message: errorMessage }];
173
721
  }
174
- return [2 /*return*/];
175
- });
176
- }); }
722
+ // Create directories
723
+ output.printInfo(`Creating directory: ${outputDir}`);
724
+ fs.mkdirSync(outputDir, { recursive: true });
725
+ fs.mkdirSync(scriptsDir, { recursive: true });
726
+ // Write files
727
+ const dockerComposePath = path.join(outputDir, 'docker-compose.yml');
728
+ const initSqlPath = path.join(scriptsDir, 'init-db.sql');
729
+ const readmePath = path.join(outputDir, 'README.md');
730
+ output.printInfo(`Writing: ${dockerComposePath}`);
731
+ fs.writeFileSync(dockerComposePath, DOCKER_COMPOSE_TEMPLATE);
732
+ output.printInfo(`Writing: ${initSqlPath}`);
733
+ fs.writeFileSync(initSqlPath, INIT_SQL_TEMPLATE);
734
+ output.printInfo(`Writing: ${readmePath}`);
735
+ fs.writeFileSync(readmePath, README_TEMPLATE);
736
+ output.writeln();
737
+ output.printSuccess('RuVector PostgreSQL setup files created!');
738
+ output.writeln();
739
+ output.printBox([
740
+ 'Files created:',
741
+ '',
742
+ ` ${outputDir}/`,
743
+ ' ├── docker-compose.yml',
744
+ ' ├── README.md',
745
+ ' └── scripts/',
746
+ ' └── init-db.sql',
747
+ '',
748
+ 'Next steps:',
749
+ '',
750
+ ` cd ${outputDir}`,
751
+ ' docker-compose up -d',
752
+ ' docker exec ruvector-postgres psql -U claude -d claude_flow -c "SELECT ruvector_version();"',
753
+ ].join('\n'), 'Setup Complete');
754
+ output.writeln();
755
+ return { success: true };
756
+ }
757
+ catch (error) {
758
+ const errorMessage = error instanceof Error ? error.message : String(error);
759
+ output.printError(`Failed to create setup files: ${errorMessage}`);
760
+ return { success: false, message: errorMessage };
761
+ }
762
+ },
177
763
  };
178
764
  export default setupCommand;
179
765
  //# sourceMappingURL=setup.js.map