@ninebix/nmt-system 1.0.2 → 1.0.4

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 (430) hide show
  1. package/README.md +288 -213
  2. package/dashboard-lite/index.html +1083 -762
  3. package/dist/bin/nmt.js +192 -41
  4. package/dist/bin/nmt.js.map +1 -1
  5. package/dist/src/api/cli-server.d.ts.map +1 -1
  6. package/dist/src/api/cli-server.js +156 -0
  7. package/dist/src/api/cli-server.js.map +1 -1
  8. package/dist/src/core/attractor-model.d.ts +5 -2
  9. package/dist/src/core/attractor-model.d.ts.map +1 -1
  10. package/dist/src/core/attractor-model.js +7 -4
  11. package/dist/src/core/attractor-model.js.map +1 -1
  12. package/dist/src/core/neuron-graph.d.ts.map +1 -1
  13. package/dist/src/core/neuron-graph.js +41 -7
  14. package/dist/src/core/neuron-graph.js.map +1 -1
  15. package/dist/src/mcp/server.d.ts.map +1 -1
  16. package/dist/src/mcp/server.js +168 -34
  17. package/dist/src/mcp/server.js.map +1 -1
  18. package/dist/src/services/four-stage-learning.d.ts +19 -0
  19. package/dist/src/services/four-stage-learning.d.ts.map +1 -1
  20. package/dist/src/services/four-stage-learning.js +113 -17
  21. package/dist/src/services/four-stage-learning.js.map +1 -1
  22. package/dist/src/storage/neuron-store.d.ts +2 -0
  23. package/dist/src/storage/neuron-store.d.ts.map +1 -1
  24. package/dist/src/storage/neuron-store.js +22 -14
  25. package/dist/src/storage/neuron-store.js.map +1 -1
  26. package/package.json +1 -1
  27. package/dist/api/cli-server.d.ts +0 -83
  28. package/dist/api/cli-server.d.ts.map +0 -1
  29. package/dist/api/cli-server.js +0 -597
  30. package/dist/api/cli-server.js.map +0 -1
  31. package/dist/api/index.d.ts +0 -6
  32. package/dist/api/index.d.ts.map +0 -1
  33. package/dist/api/index.js +0 -6
  34. package/dist/api/index.js.map +0 -1
  35. package/dist/api/middleware/index.d.ts +0 -12
  36. package/dist/api/middleware/index.d.ts.map +0 -1
  37. package/dist/api/middleware/index.js +0 -13
  38. package/dist/api/middleware/index.js.map +0 -1
  39. package/dist/api/middleware/logger.d.ts +0 -21
  40. package/dist/api/middleware/logger.d.ts.map +0 -1
  41. package/dist/api/middleware/logger.js +0 -134
  42. package/dist/api/middleware/logger.js.map +0 -1
  43. package/dist/api/middleware/rate-limit.d.ts +0 -26
  44. package/dist/api/middleware/rate-limit.d.ts.map +0 -1
  45. package/dist/api/middleware/rate-limit.js +0 -107
  46. package/dist/api/middleware/rate-limit.js.map +0 -1
  47. package/dist/api/middleware/response.d.ts +0 -61
  48. package/dist/api/middleware/response.d.ts.map +0 -1
  49. package/dist/api/middleware/response.js +0 -86
  50. package/dist/api/middleware/response.js.map +0 -1
  51. package/dist/api/middleware/validation.d.ts +0 -43
  52. package/dist/api/middleware/validation.d.ts.map +0 -1
  53. package/dist/api/middleware/validation.js +0 -257
  54. package/dist/api/middleware/validation.js.map +0 -1
  55. package/dist/api/server.d.ts +0 -79
  56. package/dist/api/server.d.ts.map +0 -1
  57. package/dist/api/server.js +0 -2011
  58. package/dist/api/server.js.map +0 -1
  59. package/dist/cli/commands/attractor.d.ts +0 -6
  60. package/dist/cli/commands/attractor.d.ts.map +0 -1
  61. package/dist/cli/commands/attractor.js +0 -167
  62. package/dist/cli/commands/attractor.js.map +0 -1
  63. package/dist/cli/commands/dimension.d.ts +0 -6
  64. package/dist/cli/commands/dimension.d.ts.map +0 -1
  65. package/dist/cli/commands/dimension.js +0 -85
  66. package/dist/cli/commands/dimension.js.map +0 -1
  67. package/dist/cli/commands/index.d.ts +0 -11
  68. package/dist/cli/commands/index.d.ts.map +0 -1
  69. package/dist/cli/commands/index.js +0 -11
  70. package/dist/cli/commands/index.js.map +0 -1
  71. package/dist/cli/commands/infer.d.ts +0 -6
  72. package/dist/cli/commands/infer.d.ts.map +0 -1
  73. package/dist/cli/commands/infer.js +0 -139
  74. package/dist/cli/commands/infer.js.map +0 -1
  75. package/dist/cli/commands/learn.d.ts +0 -6
  76. package/dist/cli/commands/learn.d.ts.map +0 -1
  77. package/dist/cli/commands/learn.js +0 -87
  78. package/dist/cli/commands/learn.js.map +0 -1
  79. package/dist/cli/commands/orchestrate.d.ts +0 -6
  80. package/dist/cli/commands/orchestrate.d.ts.map +0 -1
  81. package/dist/cli/commands/orchestrate.js +0 -279
  82. package/dist/cli/commands/orchestrate.js.map +0 -1
  83. package/dist/cli/commands/prob.d.ts +0 -6
  84. package/dist/cli/commands/prob.d.ts.map +0 -1
  85. package/dist/cli/commands/prob.js +0 -256
  86. package/dist/cli/commands/prob.js.map +0 -1
  87. package/dist/cli/commands/quantum.d.ts +0 -6
  88. package/dist/cli/commands/quantum.d.ts.map +0 -1
  89. package/dist/cli/commands/quantum.js +0 -150
  90. package/dist/cli/commands/quantum.js.map +0 -1
  91. package/dist/cli/commands/sync.d.ts +0 -65
  92. package/dist/cli/commands/sync.d.ts.map +0 -1
  93. package/dist/cli/commands/sync.js +0 -338
  94. package/dist/cli/commands/sync.js.map +0 -1
  95. package/dist/cli/index.d.ts +0 -9
  96. package/dist/cli/index.d.ts.map +0 -1
  97. package/dist/cli/index.js +0 -9
  98. package/dist/cli/index.js.map +0 -1
  99. package/dist/cli/probabilistic-commands.d.ts +0 -39
  100. package/dist/cli/probabilistic-commands.d.ts.map +0 -1
  101. package/dist/cli/probabilistic-commands.js +0 -112
  102. package/dist/cli/probabilistic-commands.js.map +0 -1
  103. package/dist/cli/types.d.ts +0 -69
  104. package/dist/cli/types.d.ts.map +0 -1
  105. package/dist/cli/types.js +0 -5
  106. package/dist/cli/types.js.map +0 -1
  107. package/dist/cli/utils/formatters.d.ts +0 -51
  108. package/dist/cli/utils/formatters.d.ts.map +0 -1
  109. package/dist/cli/utils/formatters.js +0 -79
  110. package/dist/cli/utils/formatters.js.map +0 -1
  111. package/dist/cli/utils/helpers.d.ts +0 -21
  112. package/dist/cli/utils/helpers.d.ts.map +0 -1
  113. package/dist/cli/utils/helpers.js +0 -51
  114. package/dist/cli/utils/helpers.js.map +0 -1
  115. package/dist/cli/utils/index.d.ts +0 -7
  116. package/dist/cli/utils/index.d.ts.map +0 -1
  117. package/dist/cli/utils/index.js +0 -13
  118. package/dist/cli/utils/index.js.map +0 -1
  119. package/dist/cli/utils/validators.d.ts +0 -162
  120. package/dist/cli/utils/validators.d.ts.map +0 -1
  121. package/dist/cli/utils/validators.js +0 -351
  122. package/dist/cli/utils/validators.js.map +0 -1
  123. package/dist/core/advanced-embedding.d.ts +0 -154
  124. package/dist/core/advanced-embedding.d.ts.map +0 -1
  125. package/dist/core/advanced-embedding.js +0 -367
  126. package/dist/core/advanced-embedding.js.map +0 -1
  127. package/dist/core/attractor-model.d.ts +0 -381
  128. package/dist/core/attractor-model.d.ts.map +0 -1
  129. package/dist/core/attractor-model.js +0 -821
  130. package/dist/core/attractor-model.js.map +0 -1
  131. package/dist/core/bidirectional-inference.d.ts +0 -143
  132. package/dist/core/bidirectional-inference.d.ts.map +0 -1
  133. package/dist/core/bidirectional-inference.js +0 -501
  134. package/dist/core/bidirectional-inference.js.map +0 -1
  135. package/dist/core/chunk-engine.d.ts +0 -78
  136. package/dist/core/chunk-engine.d.ts.map +0 -1
  137. package/dist/core/chunk-engine.js +0 -192
  138. package/dist/core/chunk-engine.js.map +0 -1
  139. package/dist/core/dynamic-embedding.d.ts +0 -327
  140. package/dist/core/dynamic-embedding.d.ts.map +0 -1
  141. package/dist/core/dynamic-embedding.js +0 -527
  142. package/dist/core/dynamic-embedding.js.map +0 -1
  143. package/dist/core/embedding-similarity.d.ts +0 -68
  144. package/dist/core/embedding-similarity.d.ts.map +0 -1
  145. package/dist/core/embedding-similarity.js +0 -291
  146. package/dist/core/embedding-similarity.js.map +0 -1
  147. package/dist/core/evolution-scheduler.d.ts +0 -101
  148. package/dist/core/evolution-scheduler.d.ts.map +0 -1
  149. package/dist/core/evolution-scheduler.js +0 -235
  150. package/dist/core/evolution-scheduler.js.map +0 -1
  151. package/dist/core/hierarchical-chunker.d.ts +0 -108
  152. package/dist/core/hierarchical-chunker.d.ts.map +0 -1
  153. package/dist/core/hierarchical-chunker.js +0 -296
  154. package/dist/core/hierarchical-chunker.js.map +0 -1
  155. package/dist/core/hnsw-index.d.ts +0 -111
  156. package/dist/core/hnsw-index.d.ts.map +0 -1
  157. package/dist/core/hnsw-index.js +0 -466
  158. package/dist/core/hnsw-index.js.map +0 -1
  159. package/dist/core/index.d.ts +0 -23
  160. package/dist/core/index.d.ts.map +0 -1
  161. package/dist/core/index.js +0 -25
  162. package/dist/core/index.js.map +0 -1
  163. package/dist/core/language-analyzers.d.ts +0 -124
  164. package/dist/core/language-analyzers.d.ts.map +0 -1
  165. package/dist/core/language-analyzers.js +0 -365
  166. package/dist/core/language-analyzers.js.map +0 -1
  167. package/dist/core/local-embedding.d.ts +0 -109
  168. package/dist/core/local-embedding.d.ts.map +0 -1
  169. package/dist/core/local-embedding.js +0 -222
  170. package/dist/core/local-embedding.js.map +0 -1
  171. package/dist/core/merkle-engine.d.ts +0 -263
  172. package/dist/core/merkle-engine.d.ts.map +0 -1
  173. package/dist/core/merkle-engine.js +0 -528
  174. package/dist/core/merkle-engine.js.map +0 -1
  175. package/dist/core/multi-layer-reasoning.d.ts +0 -178
  176. package/dist/core/multi-layer-reasoning.d.ts.map +0 -1
  177. package/dist/core/multi-layer-reasoning.js +0 -607
  178. package/dist/core/multi-layer-reasoning.js.map +0 -1
  179. package/dist/core/neuron-graph.d.ts +0 -134
  180. package/dist/core/neuron-graph.d.ts.map +0 -1
  181. package/dist/core/neuron-graph.js +0 -436
  182. package/dist/core/neuron-graph.js.map +0 -1
  183. package/dist/core/probabilistic-neuron.d.ts +0 -251
  184. package/dist/core/probabilistic-neuron.d.ts.map +0 -1
  185. package/dist/core/probabilistic-neuron.js +0 -618
  186. package/dist/core/probabilistic-neuron.js.map +0 -1
  187. package/dist/core/probabilistic-orchestrator.d.ts +0 -408
  188. package/dist/core/probabilistic-orchestrator.d.ts.map +0 -1
  189. package/dist/core/probabilistic-orchestrator.js +0 -798
  190. package/dist/core/probabilistic-orchestrator.js.map +0 -1
  191. package/dist/core/semantic-chunker.d.ts +0 -117
  192. package/dist/core/semantic-chunker.d.ts.map +0 -1
  193. package/dist/core/semantic-chunker.js +0 -464
  194. package/dist/core/semantic-chunker.js.map +0 -1
  195. package/dist/events/event-bus.d.ts +0 -166
  196. package/dist/events/event-bus.d.ts.map +0 -1
  197. package/dist/events/event-bus.js +0 -228
  198. package/dist/events/event-bus.js.map +0 -1
  199. package/dist/events/index.d.ts +0 -7
  200. package/dist/events/index.d.ts.map +0 -1
  201. package/dist/events/index.js +0 -7
  202. package/dist/events/index.js.map +0 -1
  203. package/dist/events/progress-tracker.d.ts +0 -150
  204. package/dist/events/progress-tracker.d.ts.map +0 -1
  205. package/dist/events/progress-tracker.js +0 -290
  206. package/dist/events/progress-tracker.js.map +0 -1
  207. package/dist/extensions/clustering/community-detection.d.ts +0 -90
  208. package/dist/extensions/clustering/community-detection.d.ts.map +0 -1
  209. package/dist/extensions/clustering/community-detection.js +0 -470
  210. package/dist/extensions/clustering/community-detection.js.map +0 -1
  211. package/dist/extensions/clustering/index.d.ts +0 -114
  212. package/dist/extensions/clustering/index.d.ts.map +0 -1
  213. package/dist/extensions/clustering/index.js +0 -468
  214. package/dist/extensions/clustering/index.js.map +0 -1
  215. package/dist/extensions/clustering/topic-modeling.d.ts +0 -86
  216. package/dist/extensions/clustering/topic-modeling.d.ts.map +0 -1
  217. package/dist/extensions/clustering/topic-modeling.js +0 -355
  218. package/dist/extensions/clustering/topic-modeling.js.map +0 -1
  219. package/dist/extensions/distributed/coordinator.d.ts +0 -114
  220. package/dist/extensions/distributed/coordinator.d.ts.map +0 -1
  221. package/dist/extensions/distributed/coordinator.js +0 -319
  222. package/dist/extensions/distributed/coordinator.js.map +0 -1
  223. package/dist/extensions/distributed/index.d.ts +0 -10
  224. package/dist/extensions/distributed/index.d.ts.map +0 -1
  225. package/dist/extensions/distributed/index.js +0 -10
  226. package/dist/extensions/distributed/index.js.map +0 -1
  227. package/dist/extensions/distributed/queue.d.ts +0 -157
  228. package/dist/extensions/distributed/queue.d.ts.map +0 -1
  229. package/dist/extensions/distributed/queue.js +0 -326
  230. package/dist/extensions/distributed/queue.js.map +0 -1
  231. package/dist/extensions/distributed/scheduler.d.ts +0 -107
  232. package/dist/extensions/distributed/scheduler.d.ts.map +0 -1
  233. package/dist/extensions/distributed/scheduler.js +0 -301
  234. package/dist/extensions/distributed/scheduler.js.map +0 -1
  235. package/dist/extensions/distributed/worker.d.ts +0 -112
  236. package/dist/extensions/distributed/worker.d.ts.map +0 -1
  237. package/dist/extensions/distributed/worker.js +0 -260
  238. package/dist/extensions/distributed/worker.js.map +0 -1
  239. package/dist/index.d.ts +0 -14
  240. package/dist/index.d.ts.map +0 -1
  241. package/dist/index.js +0 -20
  242. package/dist/index.js.map +0 -1
  243. package/dist/mcp/server.d.ts +0 -43
  244. package/dist/mcp/server.d.ts.map +0 -1
  245. package/dist/mcp/server.js +0 -494
  246. package/dist/mcp/server.js.map +0 -1
  247. package/dist/services/adaptive-fallback.d.ts +0 -140
  248. package/dist/services/adaptive-fallback.d.ts.map +0 -1
  249. package/dist/services/adaptive-fallback.js +0 -273
  250. package/dist/services/adaptive-fallback.js.map +0 -1
  251. package/dist/services/answer-gate.d.ts +0 -112
  252. package/dist/services/answer-gate.d.ts.map +0 -1
  253. package/dist/services/answer-gate.js +0 -299
  254. package/dist/services/answer-gate.js.map +0 -1
  255. package/dist/services/auto-learning.d.ts +0 -135
  256. package/dist/services/auto-learning.d.ts.map +0 -1
  257. package/dist/services/auto-learning.js +0 -413
  258. package/dist/services/auto-learning.js.map +0 -1
  259. package/dist/services/context-compressor.d.ts +0 -77
  260. package/dist/services/context-compressor.d.ts.map +0 -1
  261. package/dist/services/context-compressor.js +0 -234
  262. package/dist/services/context-compressor.js.map +0 -1
  263. package/dist/services/efficient-rag.d.ts +0 -140
  264. package/dist/services/efficient-rag.d.ts.map +0 -1
  265. package/dist/services/efficient-rag.js +0 -311
  266. package/dist/services/efficient-rag.js.map +0 -1
  267. package/dist/services/embedding-provider.d.ts +0 -72
  268. package/dist/services/embedding-provider.d.ts.map +0 -1
  269. package/dist/services/embedding-provider.js +0 -176
  270. package/dist/services/embedding-provider.js.map +0 -1
  271. package/dist/services/file-ingestion.d.ts +0 -72
  272. package/dist/services/file-ingestion.d.ts.map +0 -1
  273. package/dist/services/file-ingestion.js +0 -237
  274. package/dist/services/file-ingestion.js.map +0 -1
  275. package/dist/services/four-stage-learning.d.ts +0 -552
  276. package/dist/services/four-stage-learning.d.ts.map +0 -1
  277. package/dist/services/four-stage-learning.js +0 -1110
  278. package/dist/services/four-stage-learning.js.map +0 -1
  279. package/dist/services/graph.d.ts +0 -94
  280. package/dist/services/graph.d.ts.map +0 -1
  281. package/dist/services/graph.js +0 -292
  282. package/dist/services/graph.js.map +0 -1
  283. package/dist/services/index.d.ts +0 -15
  284. package/dist/services/index.d.ts.map +0 -1
  285. package/dist/services/index.js +0 -18
  286. package/dist/services/index.js.map +0 -1
  287. package/dist/services/ingestion.d.ts +0 -98
  288. package/dist/services/ingestion.d.ts.map +0 -1
  289. package/dist/services/ingestion.js +0 -259
  290. package/dist/services/ingestion.js.map +0 -1
  291. package/dist/services/learning.d.ts +0 -67
  292. package/dist/services/learning.d.ts.map +0 -1
  293. package/dist/services/learning.js +0 -262
  294. package/dist/services/learning.js.map +0 -1
  295. package/dist/services/llm-router.d.ts +0 -143
  296. package/dist/services/llm-router.d.ts.map +0 -1
  297. package/dist/services/llm-router.js +0 -284
  298. package/dist/services/llm-router.js.map +0 -1
  299. package/dist/services/llm.d.ts +0 -86
  300. package/dist/services/llm.d.ts.map +0 -1
  301. package/dist/services/llm.js +0 -283
  302. package/dist/services/llm.js.map +0 -1
  303. package/dist/services/metrics-dashboard.d.ts +0 -262
  304. package/dist/services/metrics-dashboard.d.ts.map +0 -1
  305. package/dist/services/metrics-dashboard.js +0 -417
  306. package/dist/services/metrics-dashboard.js.map +0 -1
  307. package/dist/services/neuron-lifecycle.d.ts +0 -137
  308. package/dist/services/neuron-lifecycle.d.ts.map +0 -1
  309. package/dist/services/neuron-lifecycle.js +0 -422
  310. package/dist/services/neuron-lifecycle.js.map +0 -1
  311. package/dist/services/nmt-pipeline.d.ts +0 -219
  312. package/dist/services/nmt-pipeline.d.ts.map +0 -1
  313. package/dist/services/nmt-pipeline.js +0 -449
  314. package/dist/services/nmt-pipeline.js.map +0 -1
  315. package/dist/services/query-cache.d.ts +0 -136
  316. package/dist/services/query-cache.d.ts.map +0 -1
  317. package/dist/services/query-cache.js +0 -255
  318. package/dist/services/query-cache.js.map +0 -1
  319. package/dist/services/query-normalize.d.ts +0 -107
  320. package/dist/services/query-normalize.d.ts.map +0 -1
  321. package/dist/services/query-normalize.js +0 -366
  322. package/dist/services/query-normalize.js.map +0 -1
  323. package/dist/services/query.d.ts +0 -102
  324. package/dist/services/query.d.ts.map +0 -1
  325. package/dist/services/query.js +0 -227
  326. package/dist/services/query.js.map +0 -1
  327. package/dist/services/text-embedding.d.ts +0 -183
  328. package/dist/services/text-embedding.d.ts.map +0 -1
  329. package/dist/services/text-embedding.js +0 -633
  330. package/dist/services/text-embedding.js.map +0 -1
  331. package/dist/services/verification-gate.d.ts +0 -147
  332. package/dist/services/verification-gate.d.ts.map +0 -1
  333. package/dist/services/verification-gate.js +0 -344
  334. package/dist/services/verification-gate.js.map +0 -1
  335. package/dist/services/verify.d.ts +0 -114
  336. package/dist/services/verify.d.ts.map +0 -1
  337. package/dist/services/verify.js +0 -237
  338. package/dist/services/verify.js.map +0 -1
  339. package/dist/services/web-search.d.ts +0 -145
  340. package/dist/services/web-search.d.ts.map +0 -1
  341. package/dist/services/web-search.js +0 -534
  342. package/dist/services/web-search.js.map +0 -1
  343. package/dist/storage/chunk-store.d.ts +0 -107
  344. package/dist/storage/chunk-store.d.ts.map +0 -1
  345. package/dist/storage/chunk-store.js +0 -293
  346. package/dist/storage/chunk-store.js.map +0 -1
  347. package/dist/storage/hybrid-adapters.d.ts +0 -111
  348. package/dist/storage/hybrid-adapters.d.ts.map +0 -1
  349. package/dist/storage/hybrid-adapters.js +0 -223
  350. package/dist/storage/hybrid-adapters.js.map +0 -1
  351. package/dist/storage/hybrid-store.d.ts +0 -125
  352. package/dist/storage/hybrid-store.d.ts.map +0 -1
  353. package/dist/storage/hybrid-store.js +0 -655
  354. package/dist/storage/hybrid-store.js.map +0 -1
  355. package/dist/storage/index-store.d.ts +0 -126
  356. package/dist/storage/index-store.d.ts.map +0 -1
  357. package/dist/storage/index-store.js +0 -316
  358. package/dist/storage/index-store.js.map +0 -1
  359. package/dist/storage/index.d.ts +0 -45
  360. package/dist/storage/index.d.ts.map +0 -1
  361. package/dist/storage/index.js +0 -52
  362. package/dist/storage/index.js.map +0 -1
  363. package/dist/storage/neuron-store.d.ts +0 -121
  364. package/dist/storage/neuron-store.d.ts.map +0 -1
  365. package/dist/storage/neuron-store.js +0 -466
  366. package/dist/storage/neuron-store.js.map +0 -1
  367. package/dist/storage/ontology-store.d.ts +0 -132
  368. package/dist/storage/ontology-store.d.ts.map +0 -1
  369. package/dist/storage/ontology-store.js +0 -319
  370. package/dist/storage/ontology-store.js.map +0 -1
  371. package/dist/storage/probabilistic-store.d.ts +0 -104
  372. package/dist/storage/probabilistic-store.d.ts.map +0 -1
  373. package/dist/storage/probabilistic-store.js +0 -257
  374. package/dist/storage/probabilistic-store.js.map +0 -1
  375. package/dist/storage/redis-adapters.d.ts +0 -102
  376. package/dist/storage/redis-adapters.d.ts.map +0 -1
  377. package/dist/storage/redis-adapters.js +0 -205
  378. package/dist/storage/redis-adapters.js.map +0 -1
  379. package/dist/storage/redis-ontology-store.d.ts +0 -146
  380. package/dist/storage/redis-ontology-store.d.ts.map +0 -1
  381. package/dist/storage/redis-ontology-store.js +0 -384
  382. package/dist/storage/redis-ontology-store.js.map +0 -1
  383. package/dist/storage/redis-store.d.ts +0 -174
  384. package/dist/storage/redis-store.d.ts.map +0 -1
  385. package/dist/storage/redis-store.js +0 -506
  386. package/dist/storage/redis-store.js.map +0 -1
  387. package/dist/sync/change-journal.d.ts +0 -171
  388. package/dist/sync/change-journal.d.ts.map +0 -1
  389. package/dist/sync/change-journal.js +0 -362
  390. package/dist/sync/change-journal.js.map +0 -1
  391. package/dist/sync/index.d.ts +0 -8
  392. package/dist/sync/index.d.ts.map +0 -1
  393. package/dist/sync/index.js +0 -8
  394. package/dist/sync/index.js.map +0 -1
  395. package/dist/sync/state-sync.d.ts +0 -241
  396. package/dist/sync/state-sync.d.ts.map +0 -1
  397. package/dist/sync/state-sync.js +0 -396
  398. package/dist/sync/state-sync.js.map +0 -1
  399. package/dist/sync/vector-clock.d.ts +0 -144
  400. package/dist/sync/vector-clock.d.ts.map +0 -1
  401. package/dist/sync/vector-clock.js +0 -266
  402. package/dist/sync/vector-clock.js.map +0 -1
  403. package/dist/types/index.d.ts +0 -224
  404. package/dist/types/index.d.ts.map +0 -1
  405. package/dist/types/index.js +0 -24
  406. package/dist/types/index.js.map +0 -1
  407. package/dist/utils/hash.d.ts +0 -39
  408. package/dist/utils/hash.d.ts.map +0 -1
  409. package/dist/utils/hash.js +0 -56
  410. package/dist/utils/hash.js.map +0 -1
  411. package/dist/utils/index.d.ts +0 -26
  412. package/dist/utils/index.d.ts.map +0 -1
  413. package/dist/utils/index.js +0 -50
  414. package/dist/utils/index.js.map +0 -1
  415. package/dist/utils/logger.d.ts +0 -88
  416. package/dist/utils/logger.d.ts.map +0 -1
  417. package/dist/utils/logger.js +0 -157
  418. package/dist/utils/logger.js.map +0 -1
  419. package/dist/utils/metrics.d.ts +0 -232
  420. package/dist/utils/metrics.d.ts.map +0 -1
  421. package/dist/utils/metrics.js +0 -387
  422. package/dist/utils/metrics.js.map +0 -1
  423. package/dist/utils/similarity.d.ts +0 -64
  424. package/dist/utils/similarity.d.ts.map +0 -1
  425. package/dist/utils/similarity.js +0 -151
  426. package/dist/utils/similarity.js.map +0 -1
  427. package/dist/utils/uuid.d.ts +0 -23
  428. package/dist/utils/uuid.d.ts.map +0 -1
  429. package/dist/utils/uuid.js +0 -29
  430. package/dist/utils/uuid.js.map +0 -1
@@ -1,174 +0,0 @@
1
- /**
2
- * Redis-based Storage for NMT System
3
- * Replaces all LevelDB stores with Redis
4
- *
5
- * @module storage/redis-store
6
- */
7
- import type { UUID, SHA3Hash, Chunk, NeuronNode, Synapse, SynapseType, Embedding384 } from '../types/index.js';
8
- /**
9
- * Redis Store Options
10
- */
11
- export interface RedisStoreOptions {
12
- host?: string;
13
- port?: number;
14
- password?: string;
15
- db?: number;
16
- keyPrefix?: string;
17
- dataDir?: string;
18
- }
19
- /**
20
- * Unified Redis Store
21
- */
22
- export declare class RedisStore {
23
- private redis;
24
- private keyPrefix;
25
- private dataDir;
26
- private chunkDir;
27
- private initialized;
28
- constructor(options?: RedisStoreOptions);
29
- /**
30
- * Initialize store
31
- */
32
- init(): Promise<void>;
33
- /**
34
- * Close store
35
- */
36
- close(): Promise<void>;
37
- /**
38
- * Store a chunk
39
- */
40
- putChunk(chunk: Chunk): Promise<SHA3Hash>;
41
- /**
42
- * Store multiple chunks
43
- */
44
- putChunks(chunks: Chunk[]): Promise<SHA3Hash[]>;
45
- /**
46
- * Get a chunk
47
- */
48
- getChunk(chunkHash: SHA3Hash): Promise<Chunk | null>;
49
- /**
50
- * Get multiple chunks
51
- */
52
- getChunks(hashes: SHA3Hash[]): Promise<(Chunk | null)[]>;
53
- /**
54
- * Check if chunk exists
55
- */
56
- hasChunk(chunkHash: SHA3Hash): Promise<boolean>;
57
- /**
58
- * Delete a chunk
59
- */
60
- deleteChunk(chunkHash: SHA3Hash): Promise<boolean>;
61
- /**
62
- * Get all chunk hashes
63
- */
64
- getAllChunkHashes(): Promise<SHA3Hash[]>;
65
- /**
66
- * Get chunk stats
67
- */
68
- getChunkStats(): Promise<{
69
- totalChunks: number;
70
- totalSize: number;
71
- avgChunkSize: number;
72
- }>;
73
- /**
74
- * Create a new neuron
75
- */
76
- createNeuron(input: {
77
- embedding: Embedding384;
78
- chunkHashes: string[];
79
- merkleRoot: string;
80
- sourceType?: string;
81
- tags?: string[];
82
- }): Promise<NeuronNode>;
83
- /**
84
- * Store a neuron
85
- */
86
- putNeuron(neuron: NeuronNode): Promise<void>;
87
- /**
88
- * Get a neuron by ID
89
- */
90
- getNeuron(id: UUID): Promise<NeuronNode | null>;
91
- /**
92
- * Get neuron by Merkle root
93
- */
94
- getNeuronByMerkleRoot(merkleRoot: string): Promise<NeuronNode | null>;
95
- /**
96
- * Update a neuron
97
- */
98
- updateNeuron(id: UUID, updates: Partial<NeuronNode>): Promise<NeuronNode | null>;
99
- /**
100
- * Delete a neuron
101
- */
102
- deleteNeuron(id: UUID): Promise<boolean>;
103
- /**
104
- * Record neuron access
105
- */
106
- recordNeuronAccess(id: UUID): Promise<void>;
107
- /**
108
- * Get all neuron IDs
109
- */
110
- getAllNeuronIds(): Promise<UUID[]>;
111
- /**
112
- * Get neurons by tag
113
- */
114
- getNeuronsByTag(tag: string): Promise<NeuronNode[]>;
115
- /**
116
- * Get neuron count
117
- */
118
- getNeuronCount(): Promise<number>;
119
- /**
120
- * Create a synapse
121
- */
122
- createSynapse(sourceId: UUID, targetId: UUID, type: SynapseType, weight?: number, bidirectional?: boolean): Promise<Synapse | null>;
123
- /**
124
- * Store a synapse
125
- */
126
- putSynapse(synapse: Synapse): Promise<void>;
127
- /**
128
- * Get a synapse
129
- */
130
- getSynapse(id: UUID): Promise<Synapse | null>;
131
- /**
132
- * Get outgoing synapses
133
- */
134
- getOutgoingSynapses(neuronId: UUID): Promise<Synapse[]>;
135
- /**
136
- * Get incoming synapses
137
- */
138
- getIncomingSynapses(neuronId: UUID): Promise<Synapse[]>;
139
- /**
140
- * Update synapse weight
141
- */
142
- updateSynapseWeight(id: UUID, weight: number): Promise<Synapse | null>;
143
- /**
144
- * Delete a synapse
145
- */
146
- deleteSynapse(id: UUID): Promise<boolean>;
147
- /**
148
- * Get synapse count
149
- */
150
- getSynapseCount(): Promise<number>;
151
- /**
152
- * Save HNSW index
153
- */
154
- saveIndex(name: string, indexData: any): Promise<void>;
155
- /**
156
- * Load HNSW index
157
- */
158
- loadIndex(name: string): Promise<any | null>;
159
- private getChunkPath;
160
- private ensureInitialized;
161
- /**
162
- * Get overall stats
163
- */
164
- getStats(): Promise<{
165
- chunks: {
166
- total: number;
167
- size: number;
168
- };
169
- neurons: number;
170
- synapses: number;
171
- }>;
172
- }
173
- export declare function createRedisStore(options?: RedisStoreOptions): RedisStore;
174
- //# sourceMappingURL=redis-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redis-store.d.ts","sourceRoot":"","sources":["../../src/storage/redis-store.ts"],"names":[],"mappings":"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"}
@@ -1,506 +0,0 @@
1
- /**
2
- * Redis-based Storage for NMT System
3
- * Replaces all LevelDB stores with Redis
4
- *
5
- * @module storage/redis-store
6
- */
7
- import Redis from 'ioredis';
8
- import { generateUUID } from '../utils/uuid.js';
9
- import { verifyHash } from '../utils/hash.js';
10
- import * as fs from 'fs/promises';
11
- import * as path from 'path';
12
- /**
13
- * Unified Redis Store
14
- */
15
- export class RedisStore {
16
- redis;
17
- keyPrefix;
18
- dataDir;
19
- chunkDir;
20
- initialized = false;
21
- constructor(options = {}) {
22
- this.keyPrefix = options.keyPrefix || 'nmt:';
23
- this.dataDir = options.dataDir || './data';
24
- this.chunkDir = path.join(this.dataDir, 'chunks');
25
- this.redis = new Redis({
26
- host: options.host || 'localhost',
27
- port: options.port || 6379,
28
- password: options.password,
29
- db: options.db || 0,
30
- keyPrefix: this.keyPrefix,
31
- retryStrategy: (times) => Math.min(times * 100, 3000),
32
- lazyConnect: true,
33
- });
34
- }
35
- /**
36
- * Initialize store
37
- */
38
- async init() {
39
- if (this.initialized)
40
- return;
41
- await this.redis.connect();
42
- console.log('Redis Store connected');
43
- // Ensure chunk directory exists
44
- await fs.mkdir(this.chunkDir, { recursive: true });
45
- this.initialized = true;
46
- }
47
- /**
48
- * Close store
49
- */
50
- async close() {
51
- if (!this.initialized)
52
- return;
53
- await this.redis.quit();
54
- this.initialized = false;
55
- }
56
- // ==================== Chunk Operations ====================
57
- /**
58
- * Store a chunk
59
- */
60
- async putChunk(chunk) {
61
- this.ensureInitialized();
62
- const chunkHash = chunk.hash;
63
- // Check if exists
64
- const existing = await this.redis.hget('chunks:meta', chunkHash);
65
- if (existing) {
66
- const meta = JSON.parse(existing);
67
- meta.refCount++;
68
- await this.redis.hset('chunks:meta', chunkHash, JSON.stringify(meta));
69
- return chunkHash;
70
- }
71
- // Store chunk data to file
72
- const chunkPath = this.getChunkPath(chunkHash);
73
- await fs.mkdir(path.dirname(chunkPath), { recursive: true });
74
- await fs.writeFile(chunkPath, chunk.data);
75
- // Store metadata in Redis
76
- const metadata = {
77
- hash: chunkHash,
78
- size: chunk.data.length,
79
- index: chunk.index,
80
- offset: chunk.offset,
81
- fingerprint: chunk.fingerprint,
82
- createdAt: new Date().toISOString(),
83
- refCount: 1
84
- };
85
- await this.redis.hset('chunks:meta', chunkHash, JSON.stringify(metadata));
86
- return chunkHash;
87
- }
88
- /**
89
- * Store multiple chunks
90
- */
91
- async putChunks(chunks) {
92
- return Promise.all(chunks.map(c => this.putChunk(c)));
93
- }
94
- /**
95
- * Get a chunk
96
- */
97
- async getChunk(chunkHash) {
98
- this.ensureInitialized();
99
- const metaStr = await this.redis.hget('chunks:meta', chunkHash);
100
- if (!metaStr)
101
- return null;
102
- const metadata = JSON.parse(metaStr);
103
- try {
104
- const chunkPath = this.getChunkPath(chunkHash);
105
- const data = await fs.readFile(chunkPath);
106
- if (!verifyHash(data, chunkHash)) {
107
- throw new Error(`Chunk integrity failed: ${chunkHash}`);
108
- }
109
- return {
110
- index: metadata.index,
111
- offset: metadata.offset,
112
- data: Buffer.from(data),
113
- hash: chunkHash,
114
- fingerprint: metadata.fingerprint
115
- };
116
- }
117
- catch (err) {
118
- if (err.code === 'ENOENT') {
119
- return null;
120
- }
121
- throw err;
122
- }
123
- }
124
- /**
125
- * Get multiple chunks
126
- */
127
- async getChunks(hashes) {
128
- return Promise.all(hashes.map(h => this.getChunk(h)));
129
- }
130
- /**
131
- * Check if chunk exists
132
- */
133
- async hasChunk(chunkHash) {
134
- return (await this.redis.hexists('chunks:meta', chunkHash)) === 1;
135
- }
136
- /**
137
- * Delete a chunk
138
- */
139
- async deleteChunk(chunkHash) {
140
- this.ensureInitialized();
141
- const metaStr = await this.redis.hget('chunks:meta', chunkHash);
142
- if (!metaStr)
143
- return false;
144
- const metadata = JSON.parse(metaStr);
145
- metadata.refCount--;
146
- if (metadata.refCount <= 0) {
147
- const chunkPath = this.getChunkPath(chunkHash);
148
- try {
149
- await fs.unlink(chunkPath);
150
- }
151
- catch (err) {
152
- if (err.code !== 'ENOENT')
153
- throw err;
154
- }
155
- await this.redis.hdel('chunks:meta', chunkHash);
156
- }
157
- else {
158
- await this.redis.hset('chunks:meta', chunkHash, JSON.stringify(metadata));
159
- }
160
- return true;
161
- }
162
- /**
163
- * Get all chunk hashes
164
- */
165
- async getAllChunkHashes() {
166
- return this.redis.hkeys('chunks:meta');
167
- }
168
- /**
169
- * Get chunk stats
170
- */
171
- async getChunkStats() {
172
- const all = await this.redis.hgetall('chunks:meta');
173
- let totalChunks = 0;
174
- let totalSize = 0;
175
- for (const value of Object.values(all)) {
176
- const meta = JSON.parse(value);
177
- totalChunks++;
178
- totalSize += meta.size;
179
- }
180
- return {
181
- totalChunks,
182
- totalSize,
183
- avgChunkSize: totalChunks > 0 ? Math.round(totalSize / totalChunks) : 0
184
- };
185
- }
186
- // ==================== Neuron Operations ====================
187
- /**
188
- * Create a new neuron
189
- */
190
- async createNeuron(input) {
191
- this.ensureInitialized();
192
- const now = new Date().toISOString();
193
- const neuron = {
194
- id: generateUUID(),
195
- embedding: input.embedding,
196
- chunkHashes: input.chunkHashes,
197
- merkleRoot: input.merkleRoot,
198
- metadata: {
199
- createdAt: now,
200
- updatedAt: now,
201
- accessCount: 0,
202
- lastAccessed: now,
203
- sourceType: input.sourceType ?? 'unknown',
204
- tags: input.tags ?? []
205
- },
206
- outgoingSynapses: [],
207
- incomingSynapses: []
208
- };
209
- await this.putNeuron(neuron);
210
- return neuron;
211
- }
212
- /**
213
- * Store a neuron
214
- */
215
- async putNeuron(neuron) {
216
- this.ensureInitialized();
217
- const serialized = {
218
- id: neuron.id,
219
- embedding: Array.from(neuron.embedding),
220
- chunkHashes: neuron.chunkHashes,
221
- merkleRoot: neuron.merkleRoot,
222
- metadata: neuron.metadata,
223
- outgoingSynapses: neuron.outgoingSynapses,
224
- incomingSynapses: neuron.incomingSynapses
225
- };
226
- await this.redis.hset('neurons', neuron.id, JSON.stringify(serialized));
227
- await this.redis.hset('neurons:byRoot', neuron.merkleRoot, neuron.id);
228
- // Index by tags
229
- for (const tag of neuron.metadata.tags) {
230
- await this.redis.sadd(`neurons:tag:${tag}`, neuron.id);
231
- }
232
- }
233
- /**
234
- * Get a neuron by ID
235
- */
236
- async getNeuron(id) {
237
- this.ensureInitialized();
238
- const data = await this.redis.hget('neurons', id);
239
- if (!data)
240
- return null;
241
- const parsed = JSON.parse(data);
242
- return {
243
- ...parsed,
244
- embedding: new Float32Array(parsed.embedding)
245
- };
246
- }
247
- /**
248
- * Get neuron by Merkle root
249
- */
250
- async getNeuronByMerkleRoot(merkleRoot) {
251
- const id = await this.redis.hget('neurons:byRoot', merkleRoot);
252
- if (!id)
253
- return null;
254
- return this.getNeuron(id);
255
- }
256
- /**
257
- * Update a neuron
258
- */
259
- async updateNeuron(id, updates) {
260
- const neuron = await this.getNeuron(id);
261
- if (!neuron)
262
- return null;
263
- const updated = {
264
- ...neuron,
265
- ...updates,
266
- id: neuron.id,
267
- metadata: {
268
- ...neuron.metadata,
269
- ...updates.metadata,
270
- updatedAt: new Date().toISOString()
271
- }
272
- };
273
- await this.putNeuron(updated);
274
- return updated;
275
- }
276
- /**
277
- * Delete a neuron
278
- */
279
- async deleteNeuron(id) {
280
- const neuron = await this.getNeuron(id);
281
- if (!neuron)
282
- return false;
283
- // Delete synapses
284
- for (const synapseId of [...neuron.outgoingSynapses, ...neuron.incomingSynapses]) {
285
- await this.deleteSynapse(synapseId);
286
- }
287
- // Remove from indices
288
- for (const tag of neuron.metadata.tags) {
289
- await this.redis.srem(`neurons:tag:${tag}`, id);
290
- }
291
- await this.redis.hdel('neurons', id);
292
- await this.redis.hdel('neurons:byRoot', neuron.merkleRoot);
293
- return true;
294
- }
295
- /**
296
- * Record neuron access
297
- */
298
- async recordNeuronAccess(id) {
299
- const neuron = await this.getNeuron(id);
300
- if (!neuron)
301
- return;
302
- neuron.metadata.accessCount++;
303
- neuron.metadata.lastAccessed = new Date().toISOString();
304
- await this.putNeuron(neuron);
305
- }
306
- /**
307
- * Get all neuron IDs
308
- */
309
- async getAllNeuronIds() {
310
- return this.redis.hkeys('neurons');
311
- }
312
- /**
313
- * Get neurons by tag
314
- */
315
- async getNeuronsByTag(tag) {
316
- const ids = await this.redis.smembers(`neurons:tag:${tag}`);
317
- const neurons = [];
318
- for (const id of ids) {
319
- const neuron = await this.getNeuron(id);
320
- if (neuron)
321
- neurons.push(neuron);
322
- }
323
- return neurons;
324
- }
325
- /**
326
- * Get neuron count
327
- */
328
- async getNeuronCount() {
329
- return this.redis.hlen('neurons');
330
- }
331
- // ==================== Synapse Operations ====================
332
- /**
333
- * Create a synapse
334
- */
335
- async createSynapse(sourceId, targetId, type, weight = 1.0, bidirectional = false) {
336
- this.ensureInitialized();
337
- const source = await this.getNeuron(sourceId);
338
- const target = await this.getNeuron(targetId);
339
- if (!source || !target)
340
- return null;
341
- const now = new Date().toISOString();
342
- const synapse = {
343
- id: generateUUID(),
344
- sourceId,
345
- targetId,
346
- type,
347
- weight,
348
- metadata: {
349
- createdAt: now,
350
- updatedAt: now,
351
- activationCount: 0,
352
- lastActivated: now,
353
- bidirectional
354
- }
355
- };
356
- await this.putSynapse(synapse);
357
- // Update neurons
358
- source.outgoingSynapses.push(synapse.id);
359
- target.incomingSynapses.push(synapse.id);
360
- await this.putNeuron(source);
361
- await this.putNeuron(target);
362
- // Create reverse if bidirectional
363
- if (bidirectional) {
364
- const reverse = {
365
- id: generateUUID(),
366
- sourceId: targetId,
367
- targetId: sourceId,
368
- type,
369
- weight,
370
- metadata: { createdAt: now, updatedAt: now, activationCount: 0, lastActivated: now, bidirectional: true }
371
- };
372
- await this.putSynapse(reverse);
373
- target.outgoingSynapses.push(reverse.id);
374
- source.incomingSynapses.push(reverse.id);
375
- await this.putNeuron(source);
376
- await this.putNeuron(target);
377
- }
378
- return synapse;
379
- }
380
- /**
381
- * Store a synapse
382
- */
383
- async putSynapse(synapse) {
384
- await this.redis.hset('synapses', synapse.id, JSON.stringify(synapse));
385
- await this.redis.sadd(`synapses:source:${synapse.sourceId}`, synapse.id);
386
- await this.redis.sadd(`synapses:target:${synapse.targetId}`, synapse.id);
387
- }
388
- /**
389
- * Get a synapse
390
- */
391
- async getSynapse(id) {
392
- const data = await this.redis.hget('synapses', id);
393
- if (!data)
394
- return null;
395
- return JSON.parse(data);
396
- }
397
- /**
398
- * Get outgoing synapses
399
- */
400
- async getOutgoingSynapses(neuronId) {
401
- const ids = await this.redis.smembers(`synapses:source:${neuronId}`);
402
- const synapses = [];
403
- for (const id of ids) {
404
- const synapse = await this.getSynapse(id);
405
- if (synapse)
406
- synapses.push(synapse);
407
- }
408
- return synapses;
409
- }
410
- /**
411
- * Get incoming synapses
412
- */
413
- async getIncomingSynapses(neuronId) {
414
- const ids = await this.redis.smembers(`synapses:target:${neuronId}`);
415
- const synapses = [];
416
- for (const id of ids) {
417
- const synapse = await this.getSynapse(id);
418
- if (synapse)
419
- synapses.push(synapse);
420
- }
421
- return synapses;
422
- }
423
- /**
424
- * Update synapse weight
425
- */
426
- async updateSynapseWeight(id, weight) {
427
- const synapse = await this.getSynapse(id);
428
- if (!synapse)
429
- return null;
430
- synapse.weight = weight;
431
- synapse.metadata.updatedAt = new Date().toISOString();
432
- await this.putSynapse(synapse);
433
- return synapse;
434
- }
435
- /**
436
- * Delete a synapse
437
- */
438
- async deleteSynapse(id) {
439
- const synapse = await this.getSynapse(id);
440
- if (!synapse)
441
- return false;
442
- await this.redis.hdel('synapses', id);
443
- await this.redis.srem(`synapses:source:${synapse.sourceId}`, id);
444
- await this.redis.srem(`synapses:target:${synapse.targetId}`, id);
445
- // Update neurons
446
- const source = await this.getNeuron(synapse.sourceId);
447
- const target = await this.getNeuron(synapse.targetId);
448
- if (source) {
449
- source.outgoingSynapses = source.outgoingSynapses.filter(s => s !== id);
450
- await this.putNeuron(source);
451
- }
452
- if (target) {
453
- target.incomingSynapses = target.incomingSynapses.filter(s => s !== id);
454
- await this.putNeuron(target);
455
- }
456
- return true;
457
- }
458
- /**
459
- * Get synapse count
460
- */
461
- async getSynapseCount() {
462
- return this.redis.hlen('synapses');
463
- }
464
- // ==================== Index Operations ====================
465
- /**
466
- * Save HNSW index
467
- */
468
- async saveIndex(name, indexData) {
469
- await this.redis.set(`index:${name}`, JSON.stringify(indexData));
470
- }
471
- /**
472
- * Load HNSW index
473
- */
474
- async loadIndex(name) {
475
- const data = await this.redis.get(`index:${name}`);
476
- if (!data)
477
- return null;
478
- return JSON.parse(data);
479
- }
480
- // ==================== Utilities ====================
481
- getChunkPath(chunkHash) {
482
- const prefix = chunkHash.slice(0, 2);
483
- return path.join(this.chunkDir, prefix, chunkHash);
484
- }
485
- ensureInitialized() {
486
- if (!this.initialized) {
487
- throw new Error('RedisStore not initialized. Call init() first.');
488
- }
489
- }
490
- /**
491
- * Get overall stats
492
- */
493
- async getStats() {
494
- const chunkStats = await this.getChunkStats();
495
- return {
496
- chunks: { total: chunkStats.totalChunks, size: chunkStats.totalSize },
497
- neurons: await this.getNeuronCount(),
498
- synapses: await this.getSynapseCount()
499
- };
500
- }
501
- }
502
- // Export singleton factory
503
- export function createRedisStore(options) {
504
- return new RedisStore(options);
505
- }
506
- //# sourceMappingURL=redis-store.js.map