@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,633 @@
1
+ /**
2
+ * Text Embedding Service
3
+ *
4
+ * Provides multiple embedding strategies:
5
+ * 1. Xenova transformers (local neural network) - high quality
6
+ * 2. External API (OpenAI, Cohere, etc.) - most accurate
7
+ * 3. TF-IDF + SVD - local, no external dependencies
8
+ * 4. Semantic hash - fast fallback
9
+ *
10
+ * @module services/text-embedding
11
+ */
12
+ import { getXenovaProvider } from './embedding-provider.js';
13
+ /**
14
+ * Text Embedding Service
15
+ *
16
+ * Generates semantic embeddings for text using multiple strategies.
17
+ */
18
+ export class TextEmbeddingService {
19
+ config;
20
+ vocabulary = new Map();
21
+ idfValues = new Map();
22
+ documentCount = 0;
23
+ embeddingDimension;
24
+ // Caching
25
+ cache = new Map();
26
+ maxCacheSize = 10000;
27
+ // Word vectors (lightweight semantic representation)
28
+ wordVectors = new Map();
29
+ constructor(config = {}) {
30
+ this.config = {
31
+ type: config.type ?? 'local',
32
+ apiKey: config.apiKey,
33
+ modelId: config.modelId,
34
+ baseUrl: config.baseUrl,
35
+ dimension: config.dimension ?? 384
36
+ };
37
+ this.embeddingDimension = this.config.dimension;
38
+ // Initialize with common word vectors
39
+ this.initializeWordVectors();
40
+ }
41
+ /**
42
+ * Generate embedding for text
43
+ */
44
+ async embed(request) {
45
+ const cacheKey = this.getCacheKey(request.text);
46
+ // Check cache
47
+ if (this.cache.has(cacheKey)) {
48
+ const cached = this.cache.get(cacheKey);
49
+ return { ...cached, cached: true };
50
+ }
51
+ let response;
52
+ switch (this.config.type) {
53
+ case 'xenova':
54
+ response = await this.embedWithXenova(request);
55
+ break;
56
+ case 'openai':
57
+ response = await this.embedWithOpenAI(request);
58
+ break;
59
+ case 'cohere':
60
+ response = await this.embedWithCohere(request);
61
+ break;
62
+ case 'hybrid':
63
+ response = await this.embedHybrid(request);
64
+ break;
65
+ case 'local':
66
+ default:
67
+ response = await this.embedLocal(request);
68
+ break;
69
+ }
70
+ // Cache result
71
+ this.cacheEmbedding(cacheKey, response);
72
+ return response;
73
+ }
74
+ /**
75
+ * Xenova transformers embedding (local neural network)
76
+ */
77
+ async embedWithXenova(request) {
78
+ try {
79
+ const provider = getXenovaProvider();
80
+ await provider.init();
81
+ const embedding = await provider.embed(request.text);
82
+ return {
83
+ embedding,
84
+ provider: 'xenova',
85
+ model: 'all-MiniLM-L6-v2',
86
+ tokenCount: request.text.split(/\s+/).length
87
+ };
88
+ }
89
+ catch (error) {
90
+ // Fallback to local if Xenova fails
91
+ console.warn('Xenova embedding failed, falling back to local:', error);
92
+ return this.embedLocal(request);
93
+ }
94
+ }
95
+ /**
96
+ * Batch embed multiple texts
97
+ */
98
+ async embedBatch(texts) {
99
+ // For API providers, batch requests are more efficient
100
+ if (this.config.type === 'openai' || this.config.type === 'cohere') {
101
+ return this.batchEmbedAPI(texts);
102
+ }
103
+ // For local, process in parallel
104
+ return Promise.all(texts.map(text => this.embed({ text })));
105
+ }
106
+ /**
107
+ * Update vocabulary with new documents (for TF-IDF)
108
+ */
109
+ updateVocabulary(documents) {
110
+ const termDocFreq = new Map();
111
+ for (const doc of documents) {
112
+ const terms = this.tokenize(doc);
113
+ const uniqueTerms = new Set(terms);
114
+ for (const term of uniqueTerms) {
115
+ termDocFreq.set(term, (termDocFreq.get(term) ?? 0) + 1);
116
+ if (!this.vocabulary.has(term)) {
117
+ this.vocabulary.set(term, this.vocabulary.size);
118
+ }
119
+ }
120
+ }
121
+ this.documentCount += documents.length;
122
+ // Update IDF values
123
+ for (const [term, df] of termDocFreq) {
124
+ const idf = Math.log((this.documentCount + 1) / (df + 1)) + 1;
125
+ this.idfValues.set(term, idf);
126
+ }
127
+ }
128
+ /**
129
+ * Local embedding using TF-IDF + semantic projection
130
+ */
131
+ async embedLocal(request) {
132
+ const text = request.text;
133
+ const tokens = this.tokenize(text);
134
+ // Calculate TF-IDF weights
135
+ const tfidf = this.calculateTFIDF(tokens);
136
+ // Build embedding using multiple strategies
137
+ const embedding = new Float32Array(this.embeddingDimension);
138
+ // Strategy 1: Weighted word vector average (50% weight)
139
+ const wordVectorEmbed = this.weightedWordVectorAverage(tokens, tfidf);
140
+ for (let i = 0; i < this.embeddingDimension; i++) {
141
+ embedding[i] += wordVectorEmbed[i] * 0.5;
142
+ }
143
+ // Strategy 2: Character n-gram hash (25% weight)
144
+ const ngramEmbed = this.characterNgramEmbedding(text);
145
+ for (let i = 0; i < this.embeddingDimension; i++) {
146
+ embedding[i] += ngramEmbed[i] * 0.25;
147
+ }
148
+ // Strategy 3: Positional encoding (15% weight)
149
+ const posEmbed = this.positionalEncoding(tokens);
150
+ for (let i = 0; i < this.embeddingDimension; i++) {
151
+ embedding[i] += posEmbed[i] * 0.15;
152
+ }
153
+ // Strategy 4: Context blending (10% weight if available)
154
+ if (request.contextEmbedding) {
155
+ for (let i = 0; i < this.embeddingDimension; i++) {
156
+ embedding[i] += request.contextEmbedding[i] * 0.1;
157
+ }
158
+ }
159
+ else {
160
+ // Add semantic category encoding instead
161
+ const categoryEmbed = this.semanticCategoryEncoding(text);
162
+ for (let i = 0; i < this.embeddingDimension; i++) {
163
+ embedding[i] += categoryEmbed[i] * 0.1;
164
+ }
165
+ }
166
+ // L2 normalize
167
+ this.normalize(embedding);
168
+ return {
169
+ embedding,
170
+ provider: 'local',
171
+ model: 'tfidf-semantic',
172
+ tokenCount: tokens.length
173
+ };
174
+ }
175
+ /**
176
+ * Hybrid embedding: try best available, fallback to local
177
+ *
178
+ * Priority:
179
+ * 1. OpenAI API (if apiKey configured)
180
+ * 2. Xenova transformers (local neural network)
181
+ * 3. TF-IDF + semantic analysis (pure local)
182
+ */
183
+ async embedHybrid(request) {
184
+ // Try API first if configured
185
+ if (this.config.apiKey) {
186
+ try {
187
+ return await this.embedWithOpenAI(request);
188
+ }
189
+ catch {
190
+ // Continue to fallbacks
191
+ }
192
+ }
193
+ // Try Xenova neural network
194
+ try {
195
+ return await this.embedWithXenova(request);
196
+ }
197
+ catch {
198
+ // Continue to fallbacks
199
+ }
200
+ // Final fallback: local TF-IDF
201
+ return this.embedLocal(request);
202
+ }
203
+ /**
204
+ * OpenAI API embedding
205
+ */
206
+ async embedWithOpenAI(request) {
207
+ if (!this.config.apiKey) {
208
+ throw new Error('OpenAI API key not configured');
209
+ }
210
+ const response = await fetch(this.config.baseUrl ?? 'https://api.openai.com/v1/embeddings', {
211
+ method: 'POST',
212
+ headers: {
213
+ 'Authorization': `Bearer ${this.config.apiKey}`,
214
+ 'Content-Type': 'application/json'
215
+ },
216
+ body: JSON.stringify({
217
+ model: this.config.modelId ?? 'text-embedding-3-small',
218
+ input: request.text,
219
+ dimensions: this.embeddingDimension
220
+ })
221
+ });
222
+ if (!response.ok) {
223
+ throw new Error(`OpenAI API error: ${response.statusText}`);
224
+ }
225
+ const data = await response.json();
226
+ return {
227
+ embedding: new Float32Array(data.data[0].embedding),
228
+ provider: 'openai',
229
+ model: this.config.modelId ?? 'text-embedding-3-small',
230
+ tokenCount: data.usage.total_tokens
231
+ };
232
+ }
233
+ /**
234
+ * Cohere API embedding
235
+ */
236
+ async embedWithCohere(request) {
237
+ if (!this.config.apiKey) {
238
+ throw new Error('Cohere API key not configured');
239
+ }
240
+ const response = await fetch(this.config.baseUrl ?? 'https://api.cohere.ai/v1/embed', {
241
+ method: 'POST',
242
+ headers: {
243
+ 'Authorization': `Bearer ${this.config.apiKey}`,
244
+ 'Content-Type': 'application/json'
245
+ },
246
+ body: JSON.stringify({
247
+ model: this.config.modelId ?? 'embed-english-v3.0',
248
+ texts: [request.text],
249
+ input_type: 'search_document'
250
+ })
251
+ });
252
+ if (!response.ok) {
253
+ throw new Error(`Cohere API error: ${response.statusText}`);
254
+ }
255
+ const data = await response.json();
256
+ // Resize if needed
257
+ let embedding = new Float32Array(data.embeddings[0]);
258
+ if (embedding.length !== this.embeddingDimension) {
259
+ embedding = this.resizeEmbedding(embedding, this.embeddingDimension);
260
+ }
261
+ return {
262
+ embedding,
263
+ provider: 'cohere',
264
+ model: this.config.modelId ?? 'embed-english-v3.0'
265
+ };
266
+ }
267
+ /**
268
+ * Batch API embedding
269
+ */
270
+ async batchEmbedAPI(texts) {
271
+ // Simplified: process individually for now
272
+ // In production, batch API calls
273
+ return Promise.all(texts.map(text => this.embed({ text })));
274
+ }
275
+ // ==================== Embedding Strategies ====================
276
+ /**
277
+ * Calculate TF-IDF for tokens
278
+ */
279
+ calculateTFIDF(tokens) {
280
+ const termFreq = new Map();
281
+ // Calculate term frequency
282
+ for (const token of tokens) {
283
+ termFreq.set(token, (termFreq.get(token) ?? 0) + 1);
284
+ }
285
+ // Calculate TF-IDF
286
+ const tfidf = new Map();
287
+ for (const [term, tf] of termFreq) {
288
+ const normalizedTf = tf / tokens.length;
289
+ const idf = this.idfValues.get(term) ?? Math.log(100); // Default IDF for new terms
290
+ tfidf.set(term, normalizedTf * idf);
291
+ }
292
+ return tfidf;
293
+ }
294
+ /**
295
+ * Weighted average of word vectors
296
+ */
297
+ weightedWordVectorAverage(tokens, weights) {
298
+ const embedding = new Float32Array(this.embeddingDimension);
299
+ let totalWeight = 0;
300
+ for (const token of tokens) {
301
+ const weight = weights.get(token) ?? 0.1;
302
+ const vector = this.getWordVector(token);
303
+ for (let i = 0; i < this.embeddingDimension; i++) {
304
+ embedding[i] += vector[i] * weight;
305
+ }
306
+ totalWeight += weight;
307
+ }
308
+ if (totalWeight > 0) {
309
+ for (let i = 0; i < this.embeddingDimension; i++) {
310
+ embedding[i] /= totalWeight;
311
+ }
312
+ }
313
+ return embedding;
314
+ }
315
+ /**
316
+ * Character n-gram embedding
317
+ */
318
+ characterNgramEmbedding(text) {
319
+ const embedding = new Float32Array(this.embeddingDimension);
320
+ const ngrams = this.extractNgrams(text, 3, 5);
321
+ for (const ngram of ngrams) {
322
+ const hash = this.hashString(ngram);
323
+ const index = Math.abs(hash) % this.embeddingDimension;
324
+ const value = ((hash >> 16) & 0xFFFF) / 65535 - 0.5;
325
+ embedding[index] += value;
326
+ }
327
+ // Smooth with rolling average
328
+ const smoothed = new Float32Array(this.embeddingDimension);
329
+ const window = 3;
330
+ for (let i = 0; i < this.embeddingDimension; i++) {
331
+ let sum = 0;
332
+ let count = 0;
333
+ for (let j = Math.max(0, i - window); j <= Math.min(this.embeddingDimension - 1, i + window); j++) {
334
+ sum += embedding[j];
335
+ count++;
336
+ }
337
+ smoothed[i] = sum / count;
338
+ }
339
+ return smoothed;
340
+ }
341
+ /**
342
+ * Positional encoding (transformer-style)
343
+ */
344
+ positionalEncoding(tokens) {
345
+ const embedding = new Float32Array(this.embeddingDimension);
346
+ const maxLength = Math.min(tokens.length, 512);
347
+ for (let pos = 0; pos < maxLength; pos++) {
348
+ const token = tokens[pos];
349
+ const tokenHash = this.hashString(token);
350
+ for (let i = 0; i < this.embeddingDimension; i++) {
351
+ const angle = pos / Math.pow(10000, (2 * (i >> 1)) / this.embeddingDimension);
352
+ if (i % 2 === 0) {
353
+ embedding[i] += Math.sin(angle) * (1 / (pos + 1));
354
+ }
355
+ else {
356
+ embedding[i] += Math.cos(angle) * (1 / (pos + 1));
357
+ }
358
+ // Add token-specific perturbation
359
+ embedding[i] += ((tokenHash >> (i % 32)) & 1) * 0.01 / (pos + 1);
360
+ }
361
+ }
362
+ return embedding;
363
+ }
364
+ /**
365
+ * Semantic category encoding
366
+ */
367
+ semanticCategoryEncoding(text) {
368
+ const embedding = new Float32Array(this.embeddingDimension);
369
+ const lowerText = text.toLowerCase();
370
+ // Category indicators with learned-like weights
371
+ const categories = [
372
+ { pattern: /\b(because|therefore|thus|hence|so)\b/g, dim: 0, weight: 0.3 },
373
+ { pattern: /\b(if|when|unless|while|although)\b/g, dim: 48, weight: 0.3 },
374
+ { pattern: /\b(is|are|was|were|be|being)\b/g, dim: 96, weight: 0.2 },
375
+ { pattern: /\b(can|could|may|might|should|would)\b/g, dim: 144, weight: 0.25 },
376
+ { pattern: /\b(first|then|next|finally|after)\b/g, dim: 192, weight: 0.25 },
377
+ { pattern: /\b(but|however|although|despite|yet)\b/g, dim: 240, weight: 0.3 },
378
+ { pattern: /\b(all|every|any|some|none)\b/g, dim: 288, weight: 0.2 },
379
+ { pattern: /\b(more|less|most|least|very)\b/g, dim: 336, weight: 0.2 },
380
+ ];
381
+ for (const cat of categories) {
382
+ const matches = lowerText.match(cat.pattern);
383
+ if (matches) {
384
+ const count = matches.length;
385
+ for (let i = 0; i < 48; i++) {
386
+ const angle = (i / 48) * Math.PI * 2;
387
+ embedding[cat.dim + i] += Math.sin(angle + count) * cat.weight * Math.log(count + 1);
388
+ }
389
+ }
390
+ }
391
+ // Language detection (Korean vs English)
392
+ const koreanChars = (lowerText.match(/[\uAC00-\uD7AF]/g) ?? []).length;
393
+ const totalChars = text.length;
394
+ const koreanRatio = totalChars > 0 ? koreanChars / totalChars : 0;
395
+ // Add language indicator
396
+ for (let i = 0; i < 16; i++) {
397
+ embedding[i] += (koreanRatio - 0.5) * 0.1;
398
+ }
399
+ return embedding;
400
+ }
401
+ // ==================== Helper Methods ====================
402
+ /**
403
+ * Initialize common word vectors
404
+ */
405
+ initializeWordVectors() {
406
+ // Pre-computed semantic directions for common words
407
+ // These simulate learned word embeddings
408
+ const semanticGroups = {
409
+ // Tech terms
410
+ 'code': { direction: 0, spread: 0.2 },
411
+ 'function': { direction: 0.1, spread: 0.15 },
412
+ 'variable': { direction: 0.05, spread: 0.15 },
413
+ 'class': { direction: 0.08, spread: 0.18 },
414
+ 'method': { direction: 0.12, spread: 0.15 },
415
+ 'type': { direction: 0.15, spread: 0.2 },
416
+ 'error': { direction: 0.5, spread: 0.25 },
417
+ 'bug': { direction: 0.52, spread: 0.2 },
418
+ 'fix': { direction: 0.55, spread: 0.18 },
419
+ 'test': { direction: 0.3, spread: 0.2 },
420
+ // Concepts
421
+ 'learn': { direction: 0.7, spread: 0.25 },
422
+ 'understand': { direction: 0.72, spread: 0.2 },
423
+ 'know': { direction: 0.68, spread: 0.22 },
424
+ 'think': { direction: 0.65, spread: 0.25 },
425
+ 'idea': { direction: 0.75, spread: 0.3 },
426
+ // Actions
427
+ 'create': { direction: 0.25, spread: 0.2 },
428
+ 'build': { direction: 0.27, spread: 0.18 },
429
+ 'make': { direction: 0.28, spread: 0.22 },
430
+ 'use': { direction: 0.35, spread: 0.25 },
431
+ 'get': { direction: 0.4, spread: 0.3 },
432
+ 'set': { direction: 0.42, spread: 0.25 },
433
+ // Relations
434
+ 'is': { direction: 0.9, spread: 0.4 },
435
+ 'has': { direction: 0.88, spread: 0.35 },
436
+ 'with': { direction: 0.85, spread: 0.38 },
437
+ 'from': { direction: 0.82, spread: 0.35 },
438
+ 'to': { direction: 0.95, spread: 0.45 },
439
+ };
440
+ for (const [word, { direction, spread }] of Object.entries(semanticGroups)) {
441
+ this.wordVectors.set(word, this.generateSemanticVector(direction, spread));
442
+ }
443
+ }
444
+ /**
445
+ * Generate a semantic vector from direction and spread
446
+ */
447
+ generateSemanticVector(direction, spread) {
448
+ const vector = new Float32Array(this.embeddingDimension);
449
+ const baseAngle = direction * Math.PI * 2;
450
+ for (let i = 0; i < this.embeddingDimension; i++) {
451
+ const dimAngle = (i / this.embeddingDimension) * Math.PI * 2;
452
+ const distance = Math.abs(Math.sin(dimAngle - baseAngle));
453
+ vector[i] = Math.exp(-distance / spread) * (Math.cos(dimAngle + baseAngle) * 0.5 + 0.5);
454
+ }
455
+ this.normalize(vector);
456
+ return vector;
457
+ }
458
+ /**
459
+ * Get or generate word vector
460
+ */
461
+ getWordVector(word) {
462
+ const lower = word.toLowerCase();
463
+ if (this.wordVectors.has(lower)) {
464
+ return this.wordVectors.get(lower);
465
+ }
466
+ // Generate deterministic vector from word hash
467
+ const vector = new Float32Array(this.embeddingDimension);
468
+ const hash = this.hashString(lower);
469
+ for (let i = 0; i < this.embeddingDimension; i++) {
470
+ const subHash = this.hashString(`${lower}_${i}`);
471
+ vector[i] = ((subHash & 0xFFFF) / 32768) - 1;
472
+ }
473
+ this.normalize(vector);
474
+ this.wordVectors.set(lower, vector);
475
+ return vector;
476
+ }
477
+ /**
478
+ * Tokenize text
479
+ */
480
+ tokenize(text) {
481
+ // Handle both English and Korean
482
+ return text
483
+ .toLowerCase()
484
+ .replace(/[^\w\s가-힣ㄱ-ㅎㅏ-ㅣ]/g, ' ')
485
+ .split(/\s+/)
486
+ .filter(t => t.length > 0);
487
+ }
488
+ /**
489
+ * Extract character n-grams
490
+ */
491
+ extractNgrams(text, minN, maxN) {
492
+ const ngrams = [];
493
+ const chars = text.toLowerCase().replace(/\s+/g, '_');
494
+ for (let n = minN; n <= maxN; n++) {
495
+ for (let i = 0; i <= chars.length - n; i++) {
496
+ ngrams.push(chars.slice(i, i + n));
497
+ }
498
+ }
499
+ return ngrams;
500
+ }
501
+ /**
502
+ * Hash string to number
503
+ */
504
+ hashString(str) {
505
+ let hash = 0;
506
+ for (let i = 0; i < str.length; i++) {
507
+ const char = str.charCodeAt(i);
508
+ hash = ((hash << 5) - hash) + char;
509
+ hash = hash & hash; // Convert to 32-bit integer
510
+ }
511
+ return hash;
512
+ }
513
+ /**
514
+ * L2 normalize embedding
515
+ */
516
+ normalize(embedding) {
517
+ let norm = 0;
518
+ for (let i = 0; i < embedding.length; i++) {
519
+ norm += embedding[i] * embedding[i];
520
+ }
521
+ norm = Math.sqrt(norm);
522
+ if (norm > 0) {
523
+ for (let i = 0; i < embedding.length; i++) {
524
+ embedding[i] /= norm;
525
+ }
526
+ }
527
+ }
528
+ /**
529
+ * Resize embedding to target dimension
530
+ */
531
+ resizeEmbedding(embedding, targetDim) {
532
+ if (embedding.length === targetDim)
533
+ return embedding;
534
+ const result = new Float32Array(targetDim);
535
+ if (embedding.length > targetDim) {
536
+ // Downsample: average groups
537
+ const ratio = embedding.length / targetDim;
538
+ for (let i = 0; i < targetDim; i++) {
539
+ let sum = 0;
540
+ const start = Math.floor(i * ratio);
541
+ const end = Math.floor((i + 1) * ratio);
542
+ for (let j = start; j < end; j++) {
543
+ sum += embedding[j];
544
+ }
545
+ result[i] = sum / (end - start);
546
+ }
547
+ }
548
+ else {
549
+ // Upsample: interpolate
550
+ const ratio = (embedding.length - 1) / (targetDim - 1);
551
+ for (let i = 0; i < targetDim; i++) {
552
+ const srcIdx = i * ratio;
553
+ const lower = Math.floor(srcIdx);
554
+ const upper = Math.min(lower + 1, embedding.length - 1);
555
+ const frac = srcIdx - lower;
556
+ result[i] = embedding[lower] * (1 - frac) + embedding[upper] * frac;
557
+ }
558
+ }
559
+ this.normalize(result);
560
+ return result;
561
+ }
562
+ /**
563
+ * Cache key for text
564
+ */
565
+ getCacheKey(text) {
566
+ return `${this.config.type}:${this.hashString(text)}`;
567
+ }
568
+ /**
569
+ * Cache embedding
570
+ */
571
+ cacheEmbedding(key, response) {
572
+ if (this.cache.size >= this.maxCacheSize) {
573
+ // Remove oldest entries (FIFO)
574
+ const keys = [...this.cache.keys()];
575
+ for (let i = 0; i < keys.length / 10; i++) {
576
+ this.cache.delete(keys[i]);
577
+ }
578
+ }
579
+ this.cache.set(key, response);
580
+ }
581
+ /**
582
+ * Clear cache
583
+ */
584
+ clearCache() {
585
+ this.cache.clear();
586
+ }
587
+ /**
588
+ * Get statistics
589
+ */
590
+ getStats() {
591
+ return {
592
+ vocabularySize: this.vocabulary.size,
593
+ cacheSize: this.cache.size,
594
+ wordVectorCount: this.wordVectors.size,
595
+ documentCount: this.documentCount
596
+ };
597
+ }
598
+ /**
599
+ * Serialize state for persistence
600
+ */
601
+ serialize() {
602
+ return {
603
+ vocabulary: Object.fromEntries(this.vocabulary),
604
+ idfValues: Object.fromEntries(this.idfValues),
605
+ documentCount: this.documentCount,
606
+ config: this.config
607
+ };
608
+ }
609
+ /**
610
+ * Load state from serialized data
611
+ */
612
+ load(data) {
613
+ if (data.vocabulary) {
614
+ this.vocabulary = new Map(Object.entries(data.vocabulary));
615
+ }
616
+ if (data.idfValues) {
617
+ this.idfValues = new Map(Object.entries(data.idfValues));
618
+ }
619
+ if (data.documentCount) {
620
+ this.documentCount = data.documentCount;
621
+ }
622
+ if (data.config) {
623
+ this.config = { ...this.config, ...data.config };
624
+ }
625
+ }
626
+ }
627
+ /**
628
+ * Create a TextEmbeddingService instance
629
+ */
630
+ export function createTextEmbeddingService(config) {
631
+ return new TextEmbeddingService(config);
632
+ }
633
+ //# sourceMappingURL=text-embedding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-embedding.js","sourceRoot":"","sources":["../../../src/services/text-embedding.ts"],"names":[],"mappings":"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"}