@ninebix/nmt-system 1.0.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 (639) hide show
  1. package/LICENSE +70 -0
  2. package/README.md +465 -0
  3. package/dist/api/cli-server.d.ts +83 -0
  4. package/dist/api/cli-server.d.ts.map +1 -0
  5. package/dist/api/cli-server.js +597 -0
  6. package/dist/api/cli-server.js.map +1 -0
  7. package/dist/api/index.d.ts +6 -0
  8. package/dist/api/index.d.ts.map +1 -0
  9. package/dist/api/index.js +6 -0
  10. package/dist/api/index.js.map +1 -0
  11. package/dist/api/middleware/index.d.ts +12 -0
  12. package/dist/api/middleware/index.d.ts.map +1 -0
  13. package/dist/api/middleware/index.js +13 -0
  14. package/dist/api/middleware/index.js.map +1 -0
  15. package/dist/api/middleware/logger.d.ts +21 -0
  16. package/dist/api/middleware/logger.d.ts.map +1 -0
  17. package/dist/api/middleware/logger.js +134 -0
  18. package/dist/api/middleware/logger.js.map +1 -0
  19. package/dist/api/middleware/rate-limit.d.ts +26 -0
  20. package/dist/api/middleware/rate-limit.d.ts.map +1 -0
  21. package/dist/api/middleware/rate-limit.js +107 -0
  22. package/dist/api/middleware/rate-limit.js.map +1 -0
  23. package/dist/api/middleware/response.d.ts +61 -0
  24. package/dist/api/middleware/response.d.ts.map +1 -0
  25. package/dist/api/middleware/response.js +86 -0
  26. package/dist/api/middleware/response.js.map +1 -0
  27. package/dist/api/middleware/validation.d.ts +43 -0
  28. package/dist/api/middleware/validation.d.ts.map +1 -0
  29. package/dist/api/middleware/validation.js +257 -0
  30. package/dist/api/middleware/validation.js.map +1 -0
  31. package/dist/api/server.d.ts +79 -0
  32. package/dist/api/server.d.ts.map +1 -0
  33. package/dist/api/server.js +2011 -0
  34. package/dist/api/server.js.map +1 -0
  35. package/dist/bin/nmt.d.ts +9 -0
  36. package/dist/bin/nmt.d.ts.map +1 -0
  37. package/dist/bin/nmt.js +1142 -0
  38. package/dist/bin/nmt.js.map +1 -0
  39. package/dist/cli/commands/attractor.d.ts +6 -0
  40. package/dist/cli/commands/attractor.d.ts.map +1 -0
  41. package/dist/cli/commands/attractor.js +167 -0
  42. package/dist/cli/commands/attractor.js.map +1 -0
  43. package/dist/cli/commands/dimension.d.ts +6 -0
  44. package/dist/cli/commands/dimension.d.ts.map +1 -0
  45. package/dist/cli/commands/dimension.js +85 -0
  46. package/dist/cli/commands/dimension.js.map +1 -0
  47. package/dist/cli/commands/index.d.ts +11 -0
  48. package/dist/cli/commands/index.d.ts.map +1 -0
  49. package/dist/cli/commands/index.js +11 -0
  50. package/dist/cli/commands/index.js.map +1 -0
  51. package/dist/cli/commands/infer.d.ts +6 -0
  52. package/dist/cli/commands/infer.d.ts.map +1 -0
  53. package/dist/cli/commands/infer.js +139 -0
  54. package/dist/cli/commands/infer.js.map +1 -0
  55. package/dist/cli/commands/learn.d.ts +6 -0
  56. package/dist/cli/commands/learn.d.ts.map +1 -0
  57. package/dist/cli/commands/learn.js +87 -0
  58. package/dist/cli/commands/learn.js.map +1 -0
  59. package/dist/cli/commands/orchestrate.d.ts +6 -0
  60. package/dist/cli/commands/orchestrate.d.ts.map +1 -0
  61. package/dist/cli/commands/orchestrate.js +279 -0
  62. package/dist/cli/commands/orchestrate.js.map +1 -0
  63. package/dist/cli/commands/prob.d.ts +6 -0
  64. package/dist/cli/commands/prob.d.ts.map +1 -0
  65. package/dist/cli/commands/prob.js +256 -0
  66. package/dist/cli/commands/prob.js.map +1 -0
  67. package/dist/cli/commands/quantum.d.ts +6 -0
  68. package/dist/cli/commands/quantum.d.ts.map +1 -0
  69. package/dist/cli/commands/quantum.js +150 -0
  70. package/dist/cli/commands/quantum.js.map +1 -0
  71. package/dist/cli/commands/sync.d.ts +65 -0
  72. package/dist/cli/commands/sync.d.ts.map +1 -0
  73. package/dist/cli/commands/sync.js +338 -0
  74. package/dist/cli/commands/sync.js.map +1 -0
  75. package/dist/cli/index.d.ts +9 -0
  76. package/dist/cli/index.d.ts.map +1 -0
  77. package/dist/cli/index.js +9 -0
  78. package/dist/cli/index.js.map +1 -0
  79. package/dist/cli/probabilistic-commands.d.ts +39 -0
  80. package/dist/cli/probabilistic-commands.d.ts.map +1 -0
  81. package/dist/cli/probabilistic-commands.js +112 -0
  82. package/dist/cli/probabilistic-commands.js.map +1 -0
  83. package/dist/cli/types.d.ts +69 -0
  84. package/dist/cli/types.d.ts.map +1 -0
  85. package/dist/cli/types.js +5 -0
  86. package/dist/cli/types.js.map +1 -0
  87. package/dist/cli/utils/formatters.d.ts +51 -0
  88. package/dist/cli/utils/formatters.d.ts.map +1 -0
  89. package/dist/cli/utils/formatters.js +79 -0
  90. package/dist/cli/utils/formatters.js.map +1 -0
  91. package/dist/cli/utils/helpers.d.ts +21 -0
  92. package/dist/cli/utils/helpers.d.ts.map +1 -0
  93. package/dist/cli/utils/helpers.js +51 -0
  94. package/dist/cli/utils/helpers.js.map +1 -0
  95. package/dist/cli/utils/index.d.ts +7 -0
  96. package/dist/cli/utils/index.d.ts.map +1 -0
  97. package/dist/cli/utils/index.js +13 -0
  98. package/dist/cli/utils/index.js.map +1 -0
  99. package/dist/cli/utils/validators.d.ts +162 -0
  100. package/dist/cli/utils/validators.d.ts.map +1 -0
  101. package/dist/cli/utils/validators.js +351 -0
  102. package/dist/cli/utils/validators.js.map +1 -0
  103. package/dist/core/advanced-embedding.d.ts +154 -0
  104. package/dist/core/advanced-embedding.d.ts.map +1 -0
  105. package/dist/core/advanced-embedding.js +367 -0
  106. package/dist/core/advanced-embedding.js.map +1 -0
  107. package/dist/core/attractor-model.d.ts +381 -0
  108. package/dist/core/attractor-model.d.ts.map +1 -0
  109. package/dist/core/attractor-model.js +821 -0
  110. package/dist/core/attractor-model.js.map +1 -0
  111. package/dist/core/bidirectional-inference.d.ts +143 -0
  112. package/dist/core/bidirectional-inference.d.ts.map +1 -0
  113. package/dist/core/bidirectional-inference.js +501 -0
  114. package/dist/core/bidirectional-inference.js.map +1 -0
  115. package/dist/core/chunk-engine.d.ts +78 -0
  116. package/dist/core/chunk-engine.d.ts.map +1 -0
  117. package/dist/core/chunk-engine.js +192 -0
  118. package/dist/core/chunk-engine.js.map +1 -0
  119. package/dist/core/dynamic-embedding.d.ts +327 -0
  120. package/dist/core/dynamic-embedding.d.ts.map +1 -0
  121. package/dist/core/dynamic-embedding.js +527 -0
  122. package/dist/core/dynamic-embedding.js.map +1 -0
  123. package/dist/core/embedding-similarity.d.ts +68 -0
  124. package/dist/core/embedding-similarity.d.ts.map +1 -0
  125. package/dist/core/embedding-similarity.js +291 -0
  126. package/dist/core/embedding-similarity.js.map +1 -0
  127. package/dist/core/evolution-scheduler.d.ts +101 -0
  128. package/dist/core/evolution-scheduler.d.ts.map +1 -0
  129. package/dist/core/evolution-scheduler.js +235 -0
  130. package/dist/core/evolution-scheduler.js.map +1 -0
  131. package/dist/core/hierarchical-chunker.d.ts +108 -0
  132. package/dist/core/hierarchical-chunker.d.ts.map +1 -0
  133. package/dist/core/hierarchical-chunker.js +296 -0
  134. package/dist/core/hierarchical-chunker.js.map +1 -0
  135. package/dist/core/hnsw-index.d.ts +111 -0
  136. package/dist/core/hnsw-index.d.ts.map +1 -0
  137. package/dist/core/hnsw-index.js +466 -0
  138. package/dist/core/hnsw-index.js.map +1 -0
  139. package/dist/core/index.d.ts +23 -0
  140. package/dist/core/index.d.ts.map +1 -0
  141. package/dist/core/index.js +25 -0
  142. package/dist/core/index.js.map +1 -0
  143. package/dist/core/language-analyzers.d.ts +124 -0
  144. package/dist/core/language-analyzers.d.ts.map +1 -0
  145. package/dist/core/language-analyzers.js +365 -0
  146. package/dist/core/language-analyzers.js.map +1 -0
  147. package/dist/core/local-embedding.d.ts +109 -0
  148. package/dist/core/local-embedding.d.ts.map +1 -0
  149. package/dist/core/local-embedding.js +222 -0
  150. package/dist/core/local-embedding.js.map +1 -0
  151. package/dist/core/merkle-engine.d.ts +263 -0
  152. package/dist/core/merkle-engine.d.ts.map +1 -0
  153. package/dist/core/merkle-engine.js +528 -0
  154. package/dist/core/merkle-engine.js.map +1 -0
  155. package/dist/core/multi-layer-reasoning.d.ts +178 -0
  156. package/dist/core/multi-layer-reasoning.d.ts.map +1 -0
  157. package/dist/core/multi-layer-reasoning.js +607 -0
  158. package/dist/core/multi-layer-reasoning.js.map +1 -0
  159. package/dist/core/neuron-graph.d.ts +134 -0
  160. package/dist/core/neuron-graph.d.ts.map +1 -0
  161. package/dist/core/neuron-graph.js +436 -0
  162. package/dist/core/neuron-graph.js.map +1 -0
  163. package/dist/core/probabilistic-neuron.d.ts +251 -0
  164. package/dist/core/probabilistic-neuron.d.ts.map +1 -0
  165. package/dist/core/probabilistic-neuron.js +618 -0
  166. package/dist/core/probabilistic-neuron.js.map +1 -0
  167. package/dist/core/probabilistic-orchestrator.d.ts +408 -0
  168. package/dist/core/probabilistic-orchestrator.d.ts.map +1 -0
  169. package/dist/core/probabilistic-orchestrator.js +798 -0
  170. package/dist/core/probabilistic-orchestrator.js.map +1 -0
  171. package/dist/core/semantic-chunker.d.ts +117 -0
  172. package/dist/core/semantic-chunker.d.ts.map +1 -0
  173. package/dist/core/semantic-chunker.js +464 -0
  174. package/dist/core/semantic-chunker.js.map +1 -0
  175. package/dist/events/event-bus.d.ts +166 -0
  176. package/dist/events/event-bus.d.ts.map +1 -0
  177. package/dist/events/event-bus.js +228 -0
  178. package/dist/events/event-bus.js.map +1 -0
  179. package/dist/events/index.d.ts +7 -0
  180. package/dist/events/index.d.ts.map +1 -0
  181. package/dist/events/index.js +7 -0
  182. package/dist/events/index.js.map +1 -0
  183. package/dist/events/progress-tracker.d.ts +150 -0
  184. package/dist/events/progress-tracker.d.ts.map +1 -0
  185. package/dist/events/progress-tracker.js +290 -0
  186. package/dist/events/progress-tracker.js.map +1 -0
  187. package/dist/extensions/clustering/community-detection.d.ts +90 -0
  188. package/dist/extensions/clustering/community-detection.d.ts.map +1 -0
  189. package/dist/extensions/clustering/community-detection.js +470 -0
  190. package/dist/extensions/clustering/community-detection.js.map +1 -0
  191. package/dist/extensions/clustering/index.d.ts +114 -0
  192. package/dist/extensions/clustering/index.d.ts.map +1 -0
  193. package/dist/extensions/clustering/index.js +468 -0
  194. package/dist/extensions/clustering/index.js.map +1 -0
  195. package/dist/extensions/clustering/topic-modeling.d.ts +86 -0
  196. package/dist/extensions/clustering/topic-modeling.d.ts.map +1 -0
  197. package/dist/extensions/clustering/topic-modeling.js +355 -0
  198. package/dist/extensions/clustering/topic-modeling.js.map +1 -0
  199. package/dist/extensions/distributed/coordinator.d.ts +114 -0
  200. package/dist/extensions/distributed/coordinator.d.ts.map +1 -0
  201. package/dist/extensions/distributed/coordinator.js +319 -0
  202. package/dist/extensions/distributed/coordinator.js.map +1 -0
  203. package/dist/extensions/distributed/index.d.ts +10 -0
  204. package/dist/extensions/distributed/index.d.ts.map +1 -0
  205. package/dist/extensions/distributed/index.js +10 -0
  206. package/dist/extensions/distributed/index.js.map +1 -0
  207. package/dist/extensions/distributed/queue.d.ts +157 -0
  208. package/dist/extensions/distributed/queue.d.ts.map +1 -0
  209. package/dist/extensions/distributed/queue.js +326 -0
  210. package/dist/extensions/distributed/queue.js.map +1 -0
  211. package/dist/extensions/distributed/scheduler.d.ts +107 -0
  212. package/dist/extensions/distributed/scheduler.d.ts.map +1 -0
  213. package/dist/extensions/distributed/scheduler.js +301 -0
  214. package/dist/extensions/distributed/scheduler.js.map +1 -0
  215. package/dist/extensions/distributed/worker.d.ts +112 -0
  216. package/dist/extensions/distributed/worker.d.ts.map +1 -0
  217. package/dist/extensions/distributed/worker.js +260 -0
  218. package/dist/extensions/distributed/worker.js.map +1 -0
  219. package/dist/index.d.ts +14 -0
  220. package/dist/index.d.ts.map +1 -0
  221. package/dist/index.js +20 -0
  222. package/dist/index.js.map +1 -0
  223. package/dist/mcp/server.d.ts +43 -0
  224. package/dist/mcp/server.d.ts.map +1 -0
  225. package/dist/mcp/server.js +494 -0
  226. package/dist/mcp/server.js.map +1 -0
  227. package/dist/services/adaptive-fallback.d.ts +140 -0
  228. package/dist/services/adaptive-fallback.d.ts.map +1 -0
  229. package/dist/services/adaptive-fallback.js +273 -0
  230. package/dist/services/adaptive-fallback.js.map +1 -0
  231. package/dist/services/answer-gate.d.ts +112 -0
  232. package/dist/services/answer-gate.d.ts.map +1 -0
  233. package/dist/services/answer-gate.js +299 -0
  234. package/dist/services/answer-gate.js.map +1 -0
  235. package/dist/services/auto-learning.d.ts +135 -0
  236. package/dist/services/auto-learning.d.ts.map +1 -0
  237. package/dist/services/auto-learning.js +413 -0
  238. package/dist/services/auto-learning.js.map +1 -0
  239. package/dist/services/context-compressor.d.ts +77 -0
  240. package/dist/services/context-compressor.d.ts.map +1 -0
  241. package/dist/services/context-compressor.js +234 -0
  242. package/dist/services/context-compressor.js.map +1 -0
  243. package/dist/services/efficient-rag.d.ts +140 -0
  244. package/dist/services/efficient-rag.d.ts.map +1 -0
  245. package/dist/services/efficient-rag.js +311 -0
  246. package/dist/services/efficient-rag.js.map +1 -0
  247. package/dist/services/embedding-provider.d.ts +72 -0
  248. package/dist/services/embedding-provider.d.ts.map +1 -0
  249. package/dist/services/embedding-provider.js +176 -0
  250. package/dist/services/embedding-provider.js.map +1 -0
  251. package/dist/services/file-ingestion.d.ts +72 -0
  252. package/dist/services/file-ingestion.d.ts.map +1 -0
  253. package/dist/services/file-ingestion.js +237 -0
  254. package/dist/services/file-ingestion.js.map +1 -0
  255. package/dist/services/four-stage-learning.d.ts +552 -0
  256. package/dist/services/four-stage-learning.d.ts.map +1 -0
  257. package/dist/services/four-stage-learning.js +1110 -0
  258. package/dist/services/four-stage-learning.js.map +1 -0
  259. package/dist/services/graph.d.ts +94 -0
  260. package/dist/services/graph.d.ts.map +1 -0
  261. package/dist/services/graph.js +292 -0
  262. package/dist/services/graph.js.map +1 -0
  263. package/dist/services/index.d.ts +15 -0
  264. package/dist/services/index.d.ts.map +1 -0
  265. package/dist/services/index.js +18 -0
  266. package/dist/services/index.js.map +1 -0
  267. package/dist/services/ingestion.d.ts +98 -0
  268. package/dist/services/ingestion.d.ts.map +1 -0
  269. package/dist/services/ingestion.js +259 -0
  270. package/dist/services/ingestion.js.map +1 -0
  271. package/dist/services/learning.d.ts +67 -0
  272. package/dist/services/learning.d.ts.map +1 -0
  273. package/dist/services/learning.js +262 -0
  274. package/dist/services/learning.js.map +1 -0
  275. package/dist/services/llm-router.d.ts +143 -0
  276. package/dist/services/llm-router.d.ts.map +1 -0
  277. package/dist/services/llm-router.js +284 -0
  278. package/dist/services/llm-router.js.map +1 -0
  279. package/dist/services/llm.d.ts +86 -0
  280. package/dist/services/llm.d.ts.map +1 -0
  281. package/dist/services/llm.js +283 -0
  282. package/dist/services/llm.js.map +1 -0
  283. package/dist/services/metrics-dashboard.d.ts +262 -0
  284. package/dist/services/metrics-dashboard.d.ts.map +1 -0
  285. package/dist/services/metrics-dashboard.js +417 -0
  286. package/dist/services/metrics-dashboard.js.map +1 -0
  287. package/dist/services/neuron-lifecycle.d.ts +137 -0
  288. package/dist/services/neuron-lifecycle.d.ts.map +1 -0
  289. package/dist/services/neuron-lifecycle.js +422 -0
  290. package/dist/services/neuron-lifecycle.js.map +1 -0
  291. package/dist/services/nmt-pipeline.d.ts +219 -0
  292. package/dist/services/nmt-pipeline.d.ts.map +1 -0
  293. package/dist/services/nmt-pipeline.js +449 -0
  294. package/dist/services/nmt-pipeline.js.map +1 -0
  295. package/dist/services/query-cache.d.ts +136 -0
  296. package/dist/services/query-cache.d.ts.map +1 -0
  297. package/dist/services/query-cache.js +255 -0
  298. package/dist/services/query-cache.js.map +1 -0
  299. package/dist/services/query-normalize.d.ts +107 -0
  300. package/dist/services/query-normalize.d.ts.map +1 -0
  301. package/dist/services/query-normalize.js +366 -0
  302. package/dist/services/query-normalize.js.map +1 -0
  303. package/dist/services/query.d.ts +102 -0
  304. package/dist/services/query.d.ts.map +1 -0
  305. package/dist/services/query.js +227 -0
  306. package/dist/services/query.js.map +1 -0
  307. package/dist/services/text-embedding.d.ts +183 -0
  308. package/dist/services/text-embedding.d.ts.map +1 -0
  309. package/dist/services/text-embedding.js +633 -0
  310. package/dist/services/text-embedding.js.map +1 -0
  311. package/dist/services/verification-gate.d.ts +147 -0
  312. package/dist/services/verification-gate.d.ts.map +1 -0
  313. package/dist/services/verification-gate.js +344 -0
  314. package/dist/services/verification-gate.js.map +1 -0
  315. package/dist/services/verify.d.ts +114 -0
  316. package/dist/services/verify.d.ts.map +1 -0
  317. package/dist/services/verify.js +237 -0
  318. package/dist/services/verify.js.map +1 -0
  319. package/dist/services/web-search.d.ts +145 -0
  320. package/dist/services/web-search.d.ts.map +1 -0
  321. package/dist/services/web-search.js +534 -0
  322. package/dist/services/web-search.js.map +1 -0
  323. package/dist/src/api/cli-server.d.ts +83 -0
  324. package/dist/src/api/cli-server.d.ts.map +1 -0
  325. package/dist/src/api/cli-server.js +597 -0
  326. package/dist/src/api/cli-server.js.map +1 -0
  327. package/dist/src/api/index.d.ts +6 -0
  328. package/dist/src/api/index.d.ts.map +1 -0
  329. package/dist/src/api/index.js +6 -0
  330. package/dist/src/api/index.js.map +1 -0
  331. package/dist/src/cli/commands/attractor.d.ts +6 -0
  332. package/dist/src/cli/commands/attractor.d.ts.map +1 -0
  333. package/dist/src/cli/commands/attractor.js +167 -0
  334. package/dist/src/cli/commands/attractor.js.map +1 -0
  335. package/dist/src/cli/commands/dimension.d.ts +6 -0
  336. package/dist/src/cli/commands/dimension.d.ts.map +1 -0
  337. package/dist/src/cli/commands/dimension.js +85 -0
  338. package/dist/src/cli/commands/dimension.js.map +1 -0
  339. package/dist/src/cli/commands/index.d.ts +11 -0
  340. package/dist/src/cli/commands/index.d.ts.map +1 -0
  341. package/dist/src/cli/commands/index.js +11 -0
  342. package/dist/src/cli/commands/index.js.map +1 -0
  343. package/dist/src/cli/commands/infer.d.ts +6 -0
  344. package/dist/src/cli/commands/infer.d.ts.map +1 -0
  345. package/dist/src/cli/commands/infer.js +139 -0
  346. package/dist/src/cli/commands/infer.js.map +1 -0
  347. package/dist/src/cli/commands/learn.d.ts +6 -0
  348. package/dist/src/cli/commands/learn.d.ts.map +1 -0
  349. package/dist/src/cli/commands/learn.js +87 -0
  350. package/dist/src/cli/commands/learn.js.map +1 -0
  351. package/dist/src/cli/commands/orchestrate.d.ts +6 -0
  352. package/dist/src/cli/commands/orchestrate.d.ts.map +1 -0
  353. package/dist/src/cli/commands/orchestrate.js +279 -0
  354. package/dist/src/cli/commands/orchestrate.js.map +1 -0
  355. package/dist/src/cli/commands/prob.d.ts +6 -0
  356. package/dist/src/cli/commands/prob.d.ts.map +1 -0
  357. package/dist/src/cli/commands/prob.js +256 -0
  358. package/dist/src/cli/commands/prob.js.map +1 -0
  359. package/dist/src/cli/commands/sync.d.ts +65 -0
  360. package/dist/src/cli/commands/sync.d.ts.map +1 -0
  361. package/dist/src/cli/commands/sync.js +338 -0
  362. package/dist/src/cli/commands/sync.js.map +1 -0
  363. package/dist/src/cli/index.d.ts +9 -0
  364. package/dist/src/cli/index.d.ts.map +1 -0
  365. package/dist/src/cli/index.js +9 -0
  366. package/dist/src/cli/index.js.map +1 -0
  367. package/dist/src/cli/probabilistic-commands.d.ts +39 -0
  368. package/dist/src/cli/probabilistic-commands.d.ts.map +1 -0
  369. package/dist/src/cli/probabilistic-commands.js +112 -0
  370. package/dist/src/cli/probabilistic-commands.js.map +1 -0
  371. package/dist/src/cli/types.d.ts +69 -0
  372. package/dist/src/cli/types.d.ts.map +1 -0
  373. package/dist/src/cli/types.js +5 -0
  374. package/dist/src/cli/types.js.map +1 -0
  375. package/dist/src/cli/utils/formatters.d.ts +51 -0
  376. package/dist/src/cli/utils/formatters.d.ts.map +1 -0
  377. package/dist/src/cli/utils/formatters.js +79 -0
  378. package/dist/src/cli/utils/formatters.js.map +1 -0
  379. package/dist/src/cli/utils/helpers.d.ts +21 -0
  380. package/dist/src/cli/utils/helpers.d.ts.map +1 -0
  381. package/dist/src/cli/utils/helpers.js +51 -0
  382. package/dist/src/cli/utils/helpers.js.map +1 -0
  383. package/dist/src/cli/utils/index.d.ts +7 -0
  384. package/dist/src/cli/utils/index.d.ts.map +1 -0
  385. package/dist/src/cli/utils/index.js +13 -0
  386. package/dist/src/cli/utils/index.js.map +1 -0
  387. package/dist/src/cli/utils/validators.d.ts +162 -0
  388. package/dist/src/cli/utils/validators.d.ts.map +1 -0
  389. package/dist/src/cli/utils/validators.js +351 -0
  390. package/dist/src/cli/utils/validators.js.map +1 -0
  391. package/dist/src/core/attractor-model.d.ts +381 -0
  392. package/dist/src/core/attractor-model.d.ts.map +1 -0
  393. package/dist/src/core/attractor-model.js +821 -0
  394. package/dist/src/core/attractor-model.js.map +1 -0
  395. package/dist/src/core/bidirectional-inference.d.ts +143 -0
  396. package/dist/src/core/bidirectional-inference.d.ts.map +1 -0
  397. package/dist/src/core/bidirectional-inference.js +501 -0
  398. package/dist/src/core/bidirectional-inference.js.map +1 -0
  399. package/dist/src/core/chunk-engine.d.ts +78 -0
  400. package/dist/src/core/chunk-engine.d.ts.map +1 -0
  401. package/dist/src/core/chunk-engine.js +192 -0
  402. package/dist/src/core/chunk-engine.js.map +1 -0
  403. package/dist/src/core/dynamic-embedding.d.ts +327 -0
  404. package/dist/src/core/dynamic-embedding.d.ts.map +1 -0
  405. package/dist/src/core/dynamic-embedding.js +527 -0
  406. package/dist/src/core/dynamic-embedding.js.map +1 -0
  407. package/dist/src/core/evolution-scheduler.d.ts +101 -0
  408. package/dist/src/core/evolution-scheduler.d.ts.map +1 -0
  409. package/dist/src/core/evolution-scheduler.js +235 -0
  410. package/dist/src/core/evolution-scheduler.js.map +1 -0
  411. package/dist/src/core/hnsw-index.d.ts +111 -0
  412. package/dist/src/core/hnsw-index.d.ts.map +1 -0
  413. package/dist/src/core/hnsw-index.js +466 -0
  414. package/dist/src/core/hnsw-index.js.map +1 -0
  415. package/dist/src/core/index.d.ts +23 -0
  416. package/dist/src/core/index.d.ts.map +1 -0
  417. package/dist/src/core/index.js +25 -0
  418. package/dist/src/core/index.js.map +1 -0
  419. package/dist/src/core/merkle-engine.d.ts +263 -0
  420. package/dist/src/core/merkle-engine.d.ts.map +1 -0
  421. package/dist/src/core/merkle-engine.js +528 -0
  422. package/dist/src/core/merkle-engine.js.map +1 -0
  423. package/dist/src/core/neuron-graph.d.ts +134 -0
  424. package/dist/src/core/neuron-graph.d.ts.map +1 -0
  425. package/dist/src/core/neuron-graph.js +436 -0
  426. package/dist/src/core/neuron-graph.js.map +1 -0
  427. package/dist/src/core/probabilistic-neuron.d.ts +251 -0
  428. package/dist/src/core/probabilistic-neuron.d.ts.map +1 -0
  429. package/dist/src/core/probabilistic-neuron.js +618 -0
  430. package/dist/src/core/probabilistic-neuron.js.map +1 -0
  431. package/dist/src/core/probabilistic-orchestrator.d.ts +408 -0
  432. package/dist/src/core/probabilistic-orchestrator.d.ts.map +1 -0
  433. package/dist/src/core/probabilistic-orchestrator.js +798 -0
  434. package/dist/src/core/probabilistic-orchestrator.js.map +1 -0
  435. package/dist/src/events/event-bus.d.ts +166 -0
  436. package/dist/src/events/event-bus.d.ts.map +1 -0
  437. package/dist/src/events/event-bus.js +228 -0
  438. package/dist/src/events/event-bus.js.map +1 -0
  439. package/dist/src/events/index.d.ts +7 -0
  440. package/dist/src/events/index.d.ts.map +1 -0
  441. package/dist/src/events/index.js +7 -0
  442. package/dist/src/events/index.js.map +1 -0
  443. package/dist/src/events/progress-tracker.d.ts +150 -0
  444. package/dist/src/events/progress-tracker.d.ts.map +1 -0
  445. package/dist/src/events/progress-tracker.js +290 -0
  446. package/dist/src/events/progress-tracker.js.map +1 -0
  447. package/dist/src/extensions/clustering/index.d.ts +114 -0
  448. package/dist/src/extensions/clustering/index.d.ts.map +1 -0
  449. package/dist/src/extensions/clustering/index.js +468 -0
  450. package/dist/src/extensions/clustering/index.js.map +1 -0
  451. package/dist/src/index.d.ts +14 -0
  452. package/dist/src/index.d.ts.map +1 -0
  453. package/dist/src/index.js +20 -0
  454. package/dist/src/index.js.map +1 -0
  455. package/dist/src/mcp/server.d.ts +43 -0
  456. package/dist/src/mcp/server.d.ts.map +1 -0
  457. package/dist/src/mcp/server.js +494 -0
  458. package/dist/src/mcp/server.js.map +1 -0
  459. package/dist/src/services/embedding-provider.d.ts +72 -0
  460. package/dist/src/services/embedding-provider.d.ts.map +1 -0
  461. package/dist/src/services/embedding-provider.js +176 -0
  462. package/dist/src/services/embedding-provider.js.map +1 -0
  463. package/dist/src/services/four-stage-learning.d.ts +552 -0
  464. package/dist/src/services/four-stage-learning.d.ts.map +1 -0
  465. package/dist/src/services/four-stage-learning.js +1110 -0
  466. package/dist/src/services/four-stage-learning.js.map +1 -0
  467. package/dist/src/services/index.d.ts +15 -0
  468. package/dist/src/services/index.d.ts.map +1 -0
  469. package/dist/src/services/index.js +18 -0
  470. package/dist/src/services/index.js.map +1 -0
  471. package/dist/src/services/ingestion.d.ts +98 -0
  472. package/dist/src/services/ingestion.d.ts.map +1 -0
  473. package/dist/src/services/ingestion.js +259 -0
  474. package/dist/src/services/ingestion.js.map +1 -0
  475. package/dist/src/services/query.d.ts +102 -0
  476. package/dist/src/services/query.d.ts.map +1 -0
  477. package/dist/src/services/query.js +227 -0
  478. package/dist/src/services/query.js.map +1 -0
  479. package/dist/src/services/text-embedding.d.ts +183 -0
  480. package/dist/src/services/text-embedding.d.ts.map +1 -0
  481. package/dist/src/services/text-embedding.js +633 -0
  482. package/dist/src/services/text-embedding.js.map +1 -0
  483. package/dist/src/services/verify.d.ts +114 -0
  484. package/dist/src/services/verify.d.ts.map +1 -0
  485. package/dist/src/services/verify.js +237 -0
  486. package/dist/src/services/verify.js.map +1 -0
  487. package/dist/src/storage/chunk-store.d.ts +107 -0
  488. package/dist/src/storage/chunk-store.d.ts.map +1 -0
  489. package/dist/src/storage/chunk-store.js +293 -0
  490. package/dist/src/storage/chunk-store.js.map +1 -0
  491. package/dist/src/storage/index-store.d.ts +126 -0
  492. package/dist/src/storage/index-store.d.ts.map +1 -0
  493. package/dist/src/storage/index-store.js +316 -0
  494. package/dist/src/storage/index-store.js.map +1 -0
  495. package/dist/src/storage/index.d.ts +45 -0
  496. package/dist/src/storage/index.d.ts.map +1 -0
  497. package/dist/src/storage/index.js +52 -0
  498. package/dist/src/storage/index.js.map +1 -0
  499. package/dist/src/storage/neuron-store.d.ts +121 -0
  500. package/dist/src/storage/neuron-store.d.ts.map +1 -0
  501. package/dist/src/storage/neuron-store.js +466 -0
  502. package/dist/src/storage/neuron-store.js.map +1 -0
  503. package/dist/src/storage/probabilistic-store.d.ts +104 -0
  504. package/dist/src/storage/probabilistic-store.d.ts.map +1 -0
  505. package/dist/src/storage/probabilistic-store.js +257 -0
  506. package/dist/src/storage/probabilistic-store.js.map +1 -0
  507. package/dist/src/sync/change-journal.d.ts +171 -0
  508. package/dist/src/sync/change-journal.d.ts.map +1 -0
  509. package/dist/src/sync/change-journal.js +362 -0
  510. package/dist/src/sync/change-journal.js.map +1 -0
  511. package/dist/src/sync/index.d.ts +8 -0
  512. package/dist/src/sync/index.d.ts.map +1 -0
  513. package/dist/src/sync/index.js +8 -0
  514. package/dist/src/sync/index.js.map +1 -0
  515. package/dist/src/sync/state-sync.d.ts +241 -0
  516. package/dist/src/sync/state-sync.d.ts.map +1 -0
  517. package/dist/src/sync/state-sync.js +396 -0
  518. package/dist/src/sync/state-sync.js.map +1 -0
  519. package/dist/src/sync/vector-clock.d.ts +144 -0
  520. package/dist/src/sync/vector-clock.d.ts.map +1 -0
  521. package/dist/src/sync/vector-clock.js +266 -0
  522. package/dist/src/sync/vector-clock.js.map +1 -0
  523. package/dist/src/types/index.d.ts +224 -0
  524. package/dist/src/types/index.d.ts.map +1 -0
  525. package/dist/src/types/index.js +24 -0
  526. package/dist/src/types/index.js.map +1 -0
  527. package/dist/src/utils/hash.d.ts +39 -0
  528. package/dist/src/utils/hash.d.ts.map +1 -0
  529. package/dist/src/utils/hash.js +56 -0
  530. package/dist/src/utils/hash.js.map +1 -0
  531. package/dist/src/utils/index.d.ts +26 -0
  532. package/dist/src/utils/index.d.ts.map +1 -0
  533. package/dist/src/utils/index.js +50 -0
  534. package/dist/src/utils/index.js.map +1 -0
  535. package/dist/src/utils/logger.d.ts +88 -0
  536. package/dist/src/utils/logger.d.ts.map +1 -0
  537. package/dist/src/utils/logger.js +157 -0
  538. package/dist/src/utils/logger.js.map +1 -0
  539. package/dist/src/utils/metrics.d.ts +232 -0
  540. package/dist/src/utils/metrics.d.ts.map +1 -0
  541. package/dist/src/utils/metrics.js +387 -0
  542. package/dist/src/utils/metrics.js.map +1 -0
  543. package/dist/src/utils/similarity.d.ts +64 -0
  544. package/dist/src/utils/similarity.d.ts.map +1 -0
  545. package/dist/src/utils/similarity.js +151 -0
  546. package/dist/src/utils/similarity.js.map +1 -0
  547. package/dist/src/utils/uuid.d.ts +23 -0
  548. package/dist/src/utils/uuid.d.ts.map +1 -0
  549. package/dist/src/utils/uuid.js +29 -0
  550. package/dist/src/utils/uuid.js.map +1 -0
  551. package/dist/storage/chunk-store.d.ts +107 -0
  552. package/dist/storage/chunk-store.d.ts.map +1 -0
  553. package/dist/storage/chunk-store.js +293 -0
  554. package/dist/storage/chunk-store.js.map +1 -0
  555. package/dist/storage/hybrid-adapters.d.ts +111 -0
  556. package/dist/storage/hybrid-adapters.d.ts.map +1 -0
  557. package/dist/storage/hybrid-adapters.js +223 -0
  558. package/dist/storage/hybrid-adapters.js.map +1 -0
  559. package/dist/storage/hybrid-store.d.ts +125 -0
  560. package/dist/storage/hybrid-store.d.ts.map +1 -0
  561. package/dist/storage/hybrid-store.js +655 -0
  562. package/dist/storage/hybrid-store.js.map +1 -0
  563. package/dist/storage/index-store.d.ts +126 -0
  564. package/dist/storage/index-store.d.ts.map +1 -0
  565. package/dist/storage/index-store.js +316 -0
  566. package/dist/storage/index-store.js.map +1 -0
  567. package/dist/storage/index.d.ts +45 -0
  568. package/dist/storage/index.d.ts.map +1 -0
  569. package/dist/storage/index.js +52 -0
  570. package/dist/storage/index.js.map +1 -0
  571. package/dist/storage/neuron-store.d.ts +121 -0
  572. package/dist/storage/neuron-store.d.ts.map +1 -0
  573. package/dist/storage/neuron-store.js +466 -0
  574. package/dist/storage/neuron-store.js.map +1 -0
  575. package/dist/storage/ontology-store.d.ts +132 -0
  576. package/dist/storage/ontology-store.d.ts.map +1 -0
  577. package/dist/storage/ontology-store.js +319 -0
  578. package/dist/storage/ontology-store.js.map +1 -0
  579. package/dist/storage/probabilistic-store.d.ts +104 -0
  580. package/dist/storage/probabilistic-store.d.ts.map +1 -0
  581. package/dist/storage/probabilistic-store.js +257 -0
  582. package/dist/storage/probabilistic-store.js.map +1 -0
  583. package/dist/storage/redis-adapters.d.ts +102 -0
  584. package/dist/storage/redis-adapters.d.ts.map +1 -0
  585. package/dist/storage/redis-adapters.js +205 -0
  586. package/dist/storage/redis-adapters.js.map +1 -0
  587. package/dist/storage/redis-ontology-store.d.ts +146 -0
  588. package/dist/storage/redis-ontology-store.d.ts.map +1 -0
  589. package/dist/storage/redis-ontology-store.js +384 -0
  590. package/dist/storage/redis-ontology-store.js.map +1 -0
  591. package/dist/storage/redis-store.d.ts +174 -0
  592. package/dist/storage/redis-store.d.ts.map +1 -0
  593. package/dist/storage/redis-store.js +506 -0
  594. package/dist/storage/redis-store.js.map +1 -0
  595. package/dist/sync/change-journal.d.ts +171 -0
  596. package/dist/sync/change-journal.d.ts.map +1 -0
  597. package/dist/sync/change-journal.js +362 -0
  598. package/dist/sync/change-journal.js.map +1 -0
  599. package/dist/sync/index.d.ts +8 -0
  600. package/dist/sync/index.d.ts.map +1 -0
  601. package/dist/sync/index.js +8 -0
  602. package/dist/sync/index.js.map +1 -0
  603. package/dist/sync/state-sync.d.ts +241 -0
  604. package/dist/sync/state-sync.d.ts.map +1 -0
  605. package/dist/sync/state-sync.js +396 -0
  606. package/dist/sync/state-sync.js.map +1 -0
  607. package/dist/sync/vector-clock.d.ts +144 -0
  608. package/dist/sync/vector-clock.d.ts.map +1 -0
  609. package/dist/sync/vector-clock.js +266 -0
  610. package/dist/sync/vector-clock.js.map +1 -0
  611. package/dist/types/index.d.ts +224 -0
  612. package/dist/types/index.d.ts.map +1 -0
  613. package/dist/types/index.js +24 -0
  614. package/dist/types/index.js.map +1 -0
  615. package/dist/utils/hash.d.ts +39 -0
  616. package/dist/utils/hash.d.ts.map +1 -0
  617. package/dist/utils/hash.js +56 -0
  618. package/dist/utils/hash.js.map +1 -0
  619. package/dist/utils/index.d.ts +26 -0
  620. package/dist/utils/index.d.ts.map +1 -0
  621. package/dist/utils/index.js +50 -0
  622. package/dist/utils/index.js.map +1 -0
  623. package/dist/utils/logger.d.ts +88 -0
  624. package/dist/utils/logger.d.ts.map +1 -0
  625. package/dist/utils/logger.js +157 -0
  626. package/dist/utils/logger.js.map +1 -0
  627. package/dist/utils/metrics.d.ts +232 -0
  628. package/dist/utils/metrics.d.ts.map +1 -0
  629. package/dist/utils/metrics.js +387 -0
  630. package/dist/utils/metrics.js.map +1 -0
  631. package/dist/utils/similarity.d.ts +64 -0
  632. package/dist/utils/similarity.d.ts.map +1 -0
  633. package/dist/utils/similarity.js +151 -0
  634. package/dist/utils/similarity.js.map +1 -0
  635. package/dist/utils/uuid.d.ts +23 -0
  636. package/dist/utils/uuid.d.ts.map +1 -0
  637. package/dist/utils/uuid.js +29 -0
  638. package/dist/utils/uuid.js.map +1 -0
  639. package/package.json +72 -0
@@ -0,0 +1,528 @@
1
+ /**
2
+ * Merkle Engine - Tree construction and verification
3
+ *
4
+ * Extended features:
5
+ * - Tree diff computation
6
+ * - Batch proofs for multiple leaves
7
+ * - Range proofs for consecutive leaves
8
+ * - Versioned trees
9
+ *
10
+ * @module core/merkle-engine
11
+ */
12
+ import { hash, hashPair } from '../utils/hash.js';
13
+ /**
14
+ * MerkleEngine class for tree operations
15
+ */
16
+ export class MerkleEngine {
17
+ /**
18
+ * Build a Merkle tree from leaf hashes
19
+ * @param leaves - Array of leaf hashes
20
+ * @returns Complete Merkle tree structure
21
+ */
22
+ buildTree(leaves) {
23
+ if (leaves.length === 0) {
24
+ throw new Error('Cannot build Merkle tree from empty leaves');
25
+ }
26
+ const originalLeaves = [...leaves];
27
+ // Pad to power of 2 by duplicating last leaf
28
+ const paddedLeaves = [...leaves];
29
+ while (!this.isPowerOfTwo(paddedLeaves.length)) {
30
+ paddedLeaves.push(paddedLeaves[paddedLeaves.length - 1]);
31
+ }
32
+ // Build levels from bottom to top
33
+ const levels = [paddedLeaves];
34
+ let currentLevel = paddedLeaves;
35
+ while (currentLevel.length > 1) {
36
+ const nextLevel = [];
37
+ for (let i = 0; i < currentLevel.length; i += 2) {
38
+ const left = currentLevel[i];
39
+ const right = currentLevel[i + 1];
40
+ const parent = hashPair(left, right);
41
+ nextLevel.push(parent);
42
+ }
43
+ levels.push(nextLevel);
44
+ currentLevel = nextLevel;
45
+ }
46
+ return {
47
+ root: currentLevel[0],
48
+ levels,
49
+ leafCount: originalLeaves.length,
50
+ originalLeaves
51
+ };
52
+ }
53
+ /**
54
+ * Build Merkle tree from raw data buffers
55
+ * @param data - Array of data buffers
56
+ * @returns Merkle tree with hashed leaves
57
+ */
58
+ buildTreeFromData(data) {
59
+ const leaves = data.map(d => hash(d));
60
+ return this.buildTree(leaves);
61
+ }
62
+ /**
63
+ * Generate inclusion proof for a leaf
64
+ * @param tree - Merkle tree
65
+ * @param leafIndex - Index of leaf to prove
66
+ * @returns Merkle proof
67
+ */
68
+ generateProof(tree, leafIndex) {
69
+ if (leafIndex < 0 || leafIndex >= tree.leafCount) {
70
+ throw new Error(`Invalid leaf index: ${leafIndex}`);
71
+ }
72
+ const siblings = [];
73
+ const directions = [];
74
+ // Handle padding - if index is beyond padded leaves, use last leaf
75
+ let currentIndex = Math.min(leafIndex, tree.levels[0].length - 1);
76
+ // Traverse from leaf to root
77
+ for (let level = 0; level < tree.levels.length - 1; level++) {
78
+ const currentLevel = tree.levels[level];
79
+ const isLeft = currentIndex % 2 === 0;
80
+ const siblingIndex = isLeft ? currentIndex + 1 : currentIndex - 1;
81
+ // Ensure sibling exists
82
+ if (siblingIndex >= 0 && siblingIndex < currentLevel.length) {
83
+ siblings.push(currentLevel[siblingIndex]);
84
+ directions.push(isLeft);
85
+ }
86
+ // Move to parent index
87
+ currentIndex = Math.floor(currentIndex / 2);
88
+ }
89
+ return {
90
+ leaf: tree.levels[0][Math.min(leafIndex, tree.levels[0].length - 1)],
91
+ leafIndex,
92
+ siblings,
93
+ directions,
94
+ root: tree.root
95
+ };
96
+ }
97
+ /**
98
+ * Verify a Merkle proof
99
+ * @param proof - Proof to verify
100
+ * @returns true if proof is valid
101
+ */
102
+ verifyProof(proof) {
103
+ let currentHash = proof.leaf;
104
+ for (let i = 0; i < proof.siblings.length; i++) {
105
+ const sibling = proof.siblings[i];
106
+ const isLeft = proof.directions[i];
107
+ if (isLeft) {
108
+ currentHash = hashPair(currentHash, sibling);
109
+ }
110
+ else {
111
+ currentHash = hashPair(sibling, currentHash);
112
+ }
113
+ }
114
+ return currentHash === proof.root;
115
+ }
116
+ /**
117
+ * Verify proof with explicit root and leaf
118
+ * @param proof - Proof structure
119
+ * @param root - Expected root hash
120
+ * @param leaf - Expected leaf hash
121
+ * @returns true if valid
122
+ */
123
+ verifyProofWithValues(proof, root, leaf) {
124
+ return proof.root === root && proof.leaf === leaf && this.verifyProof(proof);
125
+ }
126
+ /**
127
+ * Compute the root hash directly from leaves
128
+ * @param leaves - Leaf hashes
129
+ * @returns Root hash
130
+ */
131
+ computeRoot(leaves) {
132
+ return this.buildTree(leaves).root;
133
+ }
134
+ /**
135
+ * Update a leaf in the tree (returns new tree)
136
+ * @param tree - Original tree
137
+ * @param index - Leaf index to update
138
+ * @param newLeaf - New leaf hash
139
+ * @returns Updated tree
140
+ */
141
+ updateLeaf(tree, index, newLeaf) {
142
+ if (index < 0 || index >= tree.leafCount) {
143
+ throw new Error(`Invalid leaf index: ${index}`);
144
+ }
145
+ // Create new original leaves array
146
+ const newOriginalLeaves = [...tree.originalLeaves];
147
+ newOriginalLeaves[index] = newLeaf;
148
+ // Rebuild tree with new leaves
149
+ return this.buildTree(newOriginalLeaves);
150
+ }
151
+ /**
152
+ * Add a new leaf to the tree
153
+ * @param tree - Original tree
154
+ * @param newLeaf - New leaf hash
155
+ * @returns Updated tree
156
+ */
157
+ addLeaf(tree, newLeaf) {
158
+ const newLeaves = [...tree.originalLeaves, newLeaf];
159
+ return this.buildTree(newLeaves);
160
+ }
161
+ /**
162
+ * Get the height of the tree
163
+ * @param tree - Merkle tree
164
+ * @returns Tree height (number of levels)
165
+ */
166
+ getHeight(tree) {
167
+ return tree.levels.length;
168
+ }
169
+ /**
170
+ * Get all nodes at a specific level
171
+ * @param tree - Merkle tree
172
+ * @param level - Level index (0 = leaves)
173
+ * @returns Array of hashes at that level
174
+ */
175
+ getLevel(tree, level) {
176
+ if (level < 0 || level >= tree.levels.length) {
177
+ throw new Error(`Invalid level: ${level}`);
178
+ }
179
+ return [...tree.levels[level]];
180
+ }
181
+ /**
182
+ * Serialize tree to JSON-friendly format
183
+ */
184
+ serialize(tree) {
185
+ return {
186
+ root: tree.root,
187
+ levels: tree.levels,
188
+ leafCount: tree.leafCount,
189
+ originalLeaves: tree.originalLeaves
190
+ };
191
+ }
192
+ /**
193
+ * Deserialize tree from JSON
194
+ */
195
+ deserialize(data) {
196
+ return {
197
+ root: data.root,
198
+ levels: data.levels,
199
+ leafCount: data.leafCount,
200
+ originalLeaves: data.originalLeaves
201
+ };
202
+ }
203
+ // ==================== EXTENDED FEATURES ====================
204
+ /**
205
+ * Compute the difference between two Merkle trees
206
+ *
207
+ * @param oldTree - Original tree
208
+ * @param newTree - Updated tree
209
+ * @returns TreeDiff with added, removed, and modified leaves
210
+ *
211
+ * @example
212
+ * ```typescript
213
+ * const tree1 = engine.buildTree(['a', 'b', 'c']);
214
+ * const tree2 = engine.buildTree(['a', 'b', 'd']);
215
+ * const diff = engine.computeDiff(tree1, tree2);
216
+ * // diff.modified = [{ index: 2, oldHash: 'c', newHash: 'd' }]
217
+ * ```
218
+ */
219
+ computeDiff(oldTree, newTree) {
220
+ const added = [];
221
+ const removed = [];
222
+ const modified = [];
223
+ const oldLeaves = oldTree.originalLeaves;
224
+ const newLeaves = newTree.originalLeaves;
225
+ // Find modified and removed
226
+ for (let i = 0; i < oldLeaves.length; i++) {
227
+ if (i < newLeaves.length) {
228
+ if (oldLeaves[i] !== newLeaves[i]) {
229
+ modified.push({
230
+ index: i,
231
+ oldHash: oldLeaves[i],
232
+ newHash: newLeaves[i],
233
+ });
234
+ }
235
+ }
236
+ else {
237
+ removed.push(oldLeaves[i]);
238
+ }
239
+ }
240
+ // Find added
241
+ for (let i = oldLeaves.length; i < newLeaves.length; i++) {
242
+ added.push(newLeaves[i]);
243
+ }
244
+ return {
245
+ added,
246
+ removed,
247
+ modified,
248
+ oldRoot: oldTree.root,
249
+ newRoot: newTree.root,
250
+ };
251
+ }
252
+ /**
253
+ * Check if two trees have the same content
254
+ */
255
+ treesEqual(tree1, tree2) {
256
+ return tree1.root === tree2.root;
257
+ }
258
+ /**
259
+ * Generate a batch proof for multiple leaves at once
260
+ *
261
+ * More efficient than generating individual proofs as siblings are deduplicated.
262
+ *
263
+ * @param tree - Merkle tree
264
+ * @param indices - Array of leaf indices to prove
265
+ * @returns BatchMerkleProof with deduplicated siblings
266
+ *
267
+ * @example
268
+ * ```typescript
269
+ * const batchProof = engine.generateBatchProof(tree, [0, 2, 5]);
270
+ * const valid = engine.verifyBatchProof(batchProof);
271
+ * ```
272
+ */
273
+ generateBatchProof(tree, indices) {
274
+ if (indices.length === 0) {
275
+ throw new Error('Cannot generate batch proof for empty indices');
276
+ }
277
+ // Validate indices
278
+ for (const index of indices) {
279
+ if (index < 0 || index >= tree.leafCount) {
280
+ throw new Error(`Invalid leaf index: ${index}`);
281
+ }
282
+ }
283
+ const leaves = [];
284
+ const siblings = {};
285
+ // Collect leaves
286
+ for (const index of indices) {
287
+ const actualIndex = Math.min(index, tree.levels[0].length - 1);
288
+ leaves.push({
289
+ index,
290
+ hash: tree.levels[0][actualIndex],
291
+ });
292
+ }
293
+ // For each level, track which nodes we need vs which we can compute
294
+ const nodesNeeded = new Set();
295
+ // Mark all leaf nodes we have
296
+ for (const index of indices) {
297
+ const actualIndex = Math.min(index, tree.levels[0].length - 1);
298
+ nodesNeeded.add(`0:${actualIndex}`);
299
+ }
300
+ // Traverse up the tree to find all needed siblings
301
+ for (let level = 0; level < tree.levels.length - 1; level++) {
302
+ const currentLevel = tree.levels[level];
303
+ const parentNodesNeeded = new Set();
304
+ // Find siblings we need for this level
305
+ for (const nodeKey of nodesNeeded) {
306
+ const [lvl, idx] = nodeKey.split(':').map(Number);
307
+ if (lvl !== level)
308
+ continue;
309
+ const isLeft = idx % 2 === 0;
310
+ const siblingIndex = isLeft ? idx + 1 : idx - 1;
311
+ // If sibling exists and we don't already have it, add to siblings
312
+ if (siblingIndex >= 0 && siblingIndex < currentLevel.length) {
313
+ const siblingKey = `${level}:${siblingIndex}`;
314
+ if (!nodesNeeded.has(siblingKey)) {
315
+ siblings[siblingKey] = currentLevel[siblingIndex];
316
+ }
317
+ }
318
+ // Mark parent as needed
319
+ const parentIndex = Math.floor(idx / 2);
320
+ parentNodesNeeded.add(`${level + 1}:${parentIndex}`);
321
+ }
322
+ // Add parent nodes to needed set
323
+ for (const key of parentNodesNeeded) {
324
+ nodesNeeded.add(key);
325
+ }
326
+ }
327
+ return {
328
+ leaves,
329
+ siblings,
330
+ root: tree.root,
331
+ };
332
+ }
333
+ /**
334
+ * Verify a batch proof
335
+ *
336
+ * @param proof - BatchMerkleProof to verify
337
+ * @returns true if all leaves are proven to be in the tree
338
+ */
339
+ verifyBatchProof(proof) {
340
+ if (proof.leaves.length === 0) {
341
+ return false;
342
+ }
343
+ // Build a map of known node hashes
344
+ const knownNodes = new Map();
345
+ // Add leaves
346
+ for (const { index, hash } of proof.leaves) {
347
+ knownNodes.set(`0:${index}`, hash);
348
+ }
349
+ // Add siblings
350
+ for (const [key, hash] of Object.entries(proof.siblings)) {
351
+ knownNodes.set(key, hash);
352
+ }
353
+ // Find the maximum level we need to compute
354
+ const maxLevel = Math.ceil(Math.log2(Math.max(...proof.leaves.map(l => l.index + 1)))) + 1;
355
+ // Compute up the tree
356
+ for (let level = 0; level < maxLevel; level++) {
357
+ const indices = new Set();
358
+ for (const key of knownNodes.keys()) {
359
+ const [lvl, idx] = key.split(':').map(Number);
360
+ if (lvl === level) {
361
+ indices.add(Math.floor(idx / 2));
362
+ }
363
+ }
364
+ for (const parentIndex of indices) {
365
+ const leftKey = `${level}:${parentIndex * 2}`;
366
+ const rightKey = `${level}:${parentIndex * 2 + 1}`;
367
+ const left = knownNodes.get(leftKey);
368
+ const right = knownNodes.get(rightKey);
369
+ if (left && right) {
370
+ const parentHash = hashPair(left, right);
371
+ knownNodes.set(`${level + 1}:${parentIndex}`, parentHash);
372
+ }
373
+ }
374
+ }
375
+ // Find the root (should be at 0 index of highest level)
376
+ for (const [key, hash] of knownNodes.entries()) {
377
+ if (key.endsWith(':0') && hash === proof.root) {
378
+ return true;
379
+ }
380
+ }
381
+ return false;
382
+ }
383
+ /**
384
+ * Generate a range proof for consecutive leaves
385
+ *
386
+ * Useful for proving a subset of the tree without full proofs for each leaf.
387
+ *
388
+ * @param tree - Merkle tree
389
+ * @param startIndex - Start index (inclusive)
390
+ * @param endIndex - End index (exclusive)
391
+ * @returns RangeProof
392
+ */
393
+ generateRangeProof(tree, startIndex, endIndex) {
394
+ if (startIndex < 0 || startIndex >= tree.leafCount) {
395
+ throw new Error(`Invalid start index: ${startIndex}`);
396
+ }
397
+ if (endIndex <= startIndex || endIndex > tree.leafCount) {
398
+ throw new Error(`Invalid end index: ${endIndex}`);
399
+ }
400
+ // Get leaves in range
401
+ const leaves = tree.originalLeaves.slice(startIndex, endIndex);
402
+ // Generate boundary proofs
403
+ const leftProof = startIndex > 0
404
+ ? this.generateProof(tree, startIndex)
405
+ : null;
406
+ const rightProof = endIndex < tree.leafCount
407
+ ? this.generateProof(tree, endIndex - 1)
408
+ : null;
409
+ return {
410
+ startIndex,
411
+ endIndex,
412
+ leaves,
413
+ leftProof,
414
+ rightProof,
415
+ root: tree.root,
416
+ };
417
+ }
418
+ /**
419
+ * Verify a range proof
420
+ *
421
+ * @param proof - RangeProof to verify
422
+ * @returns true if the range is valid
423
+ */
424
+ verifyRangeProof(proof) {
425
+ // Verify boundary proofs if they exist
426
+ if (proof.leftProof) {
427
+ if (proof.leftProof.root !== proof.root) {
428
+ return false;
429
+ }
430
+ if (!this.verifyProof(proof.leftProof)) {
431
+ return false;
432
+ }
433
+ // Check that the left boundary leaf matches
434
+ if (proof.leftProof.leaf !== proof.leaves[0]) {
435
+ return false;
436
+ }
437
+ }
438
+ if (proof.rightProof) {
439
+ if (proof.rightProof.root !== proof.root) {
440
+ return false;
441
+ }
442
+ if (!this.verifyProof(proof.rightProof)) {
443
+ return false;
444
+ }
445
+ // Check that the right boundary leaf matches
446
+ if (proof.rightProof.leaf !== proof.leaves[proof.leaves.length - 1]) {
447
+ return false;
448
+ }
449
+ }
450
+ // Verify the range is contiguous
451
+ if (proof.endIndex - proof.startIndex !== proof.leaves.length) {
452
+ return false;
453
+ }
454
+ return true;
455
+ }
456
+ /**
457
+ * Create a versioned tree from an existing tree
458
+ *
459
+ * @param tree - Source tree
460
+ * @param parentRoot - Parent version root (null for initial)
461
+ * @returns VersionedMerkleTree
462
+ */
463
+ createVersion(tree, parentRoot = null) {
464
+ return {
465
+ ...tree,
466
+ version: parentRoot ? 1 : 0, // Version increments handled externally
467
+ parentRoot,
468
+ timestamp: new Date().toISOString(),
469
+ };
470
+ }
471
+ /**
472
+ * Create a new version from changes
473
+ *
474
+ * @param currentVersion - Current versioned tree
475
+ * @param newTree - New tree state
476
+ * @returns New VersionedMerkleTree with diff
477
+ */
478
+ createNewVersion(currentVersion, newTree) {
479
+ const diff = this.computeDiff(currentVersion, newTree);
480
+ return {
481
+ ...newTree,
482
+ version: currentVersion.version + 1,
483
+ parentRoot: currentVersion.root,
484
+ timestamp: new Date().toISOString(),
485
+ diff,
486
+ };
487
+ }
488
+ /**
489
+ * Serialize a versioned tree
490
+ */
491
+ serializeVersioned(tree) {
492
+ return {
493
+ ...this.serialize(tree),
494
+ version: tree.version,
495
+ parentRoot: tree.parentRoot,
496
+ timestamp: tree.timestamp,
497
+ diff: tree.diff,
498
+ };
499
+ }
500
+ /**
501
+ * Deserialize a versioned tree
502
+ */
503
+ deserializeVersioned(data) {
504
+ return {
505
+ root: data.root,
506
+ levels: data.levels,
507
+ leafCount: data.leafCount,
508
+ originalLeaves: data.originalLeaves,
509
+ version: data.version,
510
+ parentRoot: data.parentRoot,
511
+ timestamp: data.timestamp,
512
+ diff: data.diff,
513
+ };
514
+ }
515
+ /**
516
+ * Check if number is power of 2
517
+ */
518
+ isPowerOfTwo(n) {
519
+ return n > 0 && (n & (n - 1)) === 0;
520
+ }
521
+ }
522
+ /**
523
+ * Create a MerkleEngine instance
524
+ */
525
+ export function createMerkleEngine() {
526
+ return new MerkleEngine();
527
+ }
528
+ //# sourceMappingURL=merkle-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merkle-engine.js","sourceRoot":"","sources":["../../../src/core/merkle-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Neuron Graph Manager - Graph operations and traversal
3
+ * @module core/neuron-graph
4
+ */
5
+ import type { UUID, NeuronNode, Synapse, SynapseType, Embedding384, TraversalStrategy, NeuronPath, INeuronStore } from '../types/index.js';
6
+ import { HNSWIndex } from './hnsw-index.js';
7
+ /**
8
+ * Neuron Graph Manager options
9
+ */
10
+ export interface NeuronGraphOptions {
11
+ neuronStore: INeuronStore;
12
+ hnswIndex: HNSWIndex;
13
+ semanticThreshold?: number;
14
+ maxTraversalDepth?: number;
15
+ }
16
+ /**
17
+ * Create neuron input
18
+ */
19
+ export interface CreateNeuronInput {
20
+ embedding: Embedding384;
21
+ chunkHashes: string[];
22
+ merkleRoot: string;
23
+ sourceType?: string;
24
+ tags?: string[];
25
+ autoConnect?: boolean;
26
+ connectionThreshold?: number;
27
+ }
28
+ /**
29
+ * Traversal result
30
+ */
31
+ export interface TraversalResult {
32
+ paths: NeuronPath[];
33
+ visited: Set<UUID>;
34
+ totalWeight: number;
35
+ }
36
+ /**
37
+ * Neuron Graph Manager
38
+ * Handles neuron creation, connection, and graph traversal
39
+ */
40
+ export declare class NeuronGraphManager {
41
+ private store;
42
+ private index;
43
+ private semanticThreshold;
44
+ private maxTraversalDepth;
45
+ constructor(options: NeuronGraphOptions);
46
+ /**
47
+ * Create a new neuron
48
+ */
49
+ createNeuron(input: CreateNeuronInput): Promise<NeuronNode>;
50
+ /**
51
+ * Get a neuron by ID
52
+ */
53
+ getNeuron(id: UUID): Promise<NeuronNode | null>;
54
+ /**
55
+ * Get a neuron by Merkle root
56
+ */
57
+ getNeuronByMerkleRoot(merkleRoot: string): Promise<NeuronNode | null>;
58
+ /**
59
+ * Delete a neuron
60
+ */
61
+ deleteNeuron(id: UUID): Promise<boolean>;
62
+ /**
63
+ * Connect two neurons with a synapse
64
+ */
65
+ connect(sourceId: UUID, targetId: UUID, type: SynapseType, weight?: number, bidirectional?: boolean): Promise<Synapse | null>;
66
+ /**
67
+ * Disconnect two neurons
68
+ */
69
+ disconnect(synapseId: UUID): Promise<boolean>;
70
+ /**
71
+ * Find similar neurons using HNSW index
72
+ */
73
+ findSimilar(embedding: Embedding384, k?: number, ef?: number): Promise<Array<{
74
+ neuron: NeuronNode;
75
+ score: number;
76
+ }>>;
77
+ /**
78
+ * Find similar neurons to an existing neuron
79
+ */
80
+ findSimilarTo(neuronId: UUID, k?: number): Promise<Array<{
81
+ neuron: NeuronNode;
82
+ score: number;
83
+ }>>;
84
+ /**
85
+ * Auto-connect neuron to similar neurons
86
+ */
87
+ autoConnect(neuronId: UUID, threshold?: number): Promise<Synapse[]>;
88
+ /**
89
+ * Get connection between two neurons
90
+ */
91
+ getConnection(sourceId: UUID, targetId: UUID): Promise<Synapse | null>;
92
+ /**
93
+ * Traverse the graph from a starting neuron
94
+ */
95
+ traverse(startId: UUID, strategy?: TraversalStrategy, maxDepth?: number, filter?: (neuron: NeuronNode, synapse: Synapse) => boolean): Promise<TraversalResult>;
96
+ /**
97
+ * Find shortest path between two neurons
98
+ */
99
+ findPath(sourceId: UUID, targetId: UUID, maxDepth?: number): Promise<NeuronPath | null>;
100
+ /**
101
+ * Get graph statistics
102
+ */
103
+ getStats(): Promise<{
104
+ neuronCount: number;
105
+ synapseCount: number;
106
+ indexStats: {
107
+ totalNodes: number;
108
+ layerDistribution: Map<number, number>;
109
+ maxLayer: number;
110
+ };
111
+ }>;
112
+ /**
113
+ * Get connected components
114
+ */
115
+ getConnectedComponents(): Promise<Set<UUID>[]>;
116
+ /**
117
+ * Strengthen synapse (Hebbian learning)
118
+ */
119
+ strengthenSynapse(synapseId: UUID, amount?: number): Promise<Synapse | null>;
120
+ /**
121
+ * Weaken synapse
122
+ */
123
+ weakenSynapse(synapseId: UUID, amount?: number): Promise<Synapse | null>;
124
+ private bfsTraverse;
125
+ private dfsTraverse;
126
+ private weightedTraverse;
127
+ private randomWalkTraverse;
128
+ private getNeuronsForPath;
129
+ }
130
+ /**
131
+ * Create a NeuronGraphManager instance
132
+ */
133
+ export declare function createNeuronGraphManager(options: NeuronGraphOptions): NeuronGraphManager;
134
+ //# sourceMappingURL=neuron-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"neuron-graph.d.ts","sourceRoot":"","sources":["../../../src/core/neuron-graph.ts"],"names":[],"mappings":"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"}