@rbalchii/anchor-engine 4.7.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 (539) hide show
  1. package/LICENSE +609 -0
  2. package/README.md +317 -0
  3. package/anchor.bat +5 -0
  4. package/docs/API.md +314 -0
  5. package/docs/DEPLOYMENT.md +448 -0
  6. package/docs/INDEX.md +226 -0
  7. package/docs/STAR_Whitepaper_Executive.md +216 -0
  8. package/docs/TROUBLESHOOTING.md +535 -0
  9. package/docs/archive/GIT_BACKUP_VERIFICATION.md +297 -0
  10. package/docs/archive/adoption-guide.md +264 -0
  11. package/docs/archive/adoption-preparation.md +179 -0
  12. package/docs/archive/agent-harness-integration.md +227 -0
  13. package/docs/archive/api-reference.md +106 -0
  14. package/docs/archive/api_flows_diagram.md +118 -0
  15. package/docs/archive/architecture.md +410 -0
  16. package/docs/archive/architecture_diagram.md +174 -0
  17. package/docs/archive/broader-adoption-preparation.md +175 -0
  18. package/docs/archive/browser-paradigm-architecture.md +163 -0
  19. package/docs/archive/chat-integration.md +124 -0
  20. package/docs/archive/community-adoption-materials.md +103 -0
  21. package/docs/archive/community-adoption.md +147 -0
  22. package/docs/archive/comparison-with-siloed-solutions.md +192 -0
  23. package/docs/archive/comprehensive-docs.md +156 -0
  24. package/docs/archive/data_flow_diagram.md +251 -0
  25. package/docs/archive/enhancement-implementation-summary.md +146 -0
  26. package/docs/archive/evolution-summary.md +141 -0
  27. package/docs/archive/ingestion_pipeline_diagram.md +198 -0
  28. package/docs/archive/native-module-profiling-results.md +135 -0
  29. package/docs/archive/positioning-document.md +158 -0
  30. package/docs/archive/positioning.md +175 -0
  31. package/docs/archive/query-builder-documentation.md +218 -0
  32. package/docs/archive/quick-reference.md +40 -0
  33. package/docs/archive/quickstart.md +63 -0
  34. package/docs/archive/relationship-narrative-discovery.md +141 -0
  35. package/docs/archive/search-logic-improvement-plan.md +336 -0
  36. package/docs/archive/search_architecture_diagram.md +212 -0
  37. package/docs/archive/semantic-architecture-guide.md +97 -0
  38. package/docs/archive/sequence-diagrams.md +128 -0
  39. package/docs/archive/system_components_diagram.md +296 -0
  40. package/docs/archive/test-framework-integration.md +109 -0
  41. package/docs/archive/testing-framework-documentation.md +397 -0
  42. package/docs/archive/testing-framework-summary.md +121 -0
  43. package/docs/archive/testing-framework.md +377 -0
  44. package/docs/archive/ui-architecture.md +75 -0
  45. package/docs/arxiv/BIBLIOGRAPHY.bib +145 -0
  46. package/docs/arxiv/RELATED_WORK.tex +39 -0
  47. package/docs/arxiv/compile.bat +48 -0
  48. package/docs/arxiv/joss_response.md +33 -0
  49. package/docs/arxiv/prepare-submission.bat +46 -0
  50. package/docs/arxiv/review.md +128 -0
  51. package/docs/arxiv/star-whitepaper.tex +657 -0
  52. package/docs/code-patterns.md +289 -0
  53. package/docs/whitepaper.md +445 -0
  54. package/engine/dist/agent/runtime.d.ts +41 -0
  55. package/engine/dist/agent/runtime.d.ts.map +1 -0
  56. package/engine/dist/agent/runtime.js +73 -0
  57. package/engine/dist/agent/runtime.js.map +1 -0
  58. package/engine/dist/commands/audit-tags.d.ts +14 -0
  59. package/engine/dist/commands/audit-tags.d.ts.map +1 -0
  60. package/engine/dist/commands/audit-tags.js +180 -0
  61. package/engine/dist/commands/audit-tags.js.map +1 -0
  62. package/engine/dist/commands/distill.d.ts +19 -0
  63. package/engine/dist/commands/distill.d.ts.map +1 -0
  64. package/engine/dist/commands/distill.js +114 -0
  65. package/engine/dist/commands/distill.js.map +1 -0
  66. package/engine/dist/commands/generate-synonyms.d.ts +14 -0
  67. package/engine/dist/commands/generate-synonyms.d.ts.map +1 -0
  68. package/engine/dist/commands/generate-synonyms.js +91 -0
  69. package/engine/dist/commands/generate-synonyms.js.map +1 -0
  70. package/engine/dist/config/index.d.ts +115 -0
  71. package/engine/dist/config/index.d.ts.map +1 -0
  72. package/engine/dist/config/index.js +326 -0
  73. package/engine/dist/config/index.js.map +1 -0
  74. package/engine/dist/config/max-recall-config.d.ts +102 -0
  75. package/engine/dist/config/max-recall-config.d.ts.map +1 -0
  76. package/engine/dist/config/max-recall-config.js +102 -0
  77. package/engine/dist/config/max-recall-config.js.map +1 -0
  78. package/engine/dist/config/paths.d.ts +40 -0
  79. package/engine/dist/config/paths.d.ts.map +1 -0
  80. package/engine/dist/config/paths.js +49 -0
  81. package/engine/dist/config/paths.js.map +1 -0
  82. package/engine/dist/core/batch.d.ts +19 -0
  83. package/engine/dist/core/batch.d.ts.map +1 -0
  84. package/engine/dist/core/batch.js +37 -0
  85. package/engine/dist/core/batch.js.map +1 -0
  86. package/engine/dist/core/db.d.ts +58 -0
  87. package/engine/dist/core/db.d.ts.map +1 -0
  88. package/engine/dist/core/db.js +563 -0
  89. package/engine/dist/core/db.js.map +1 -0
  90. package/engine/dist/core/inference/ChatWorker.d.ts +2 -0
  91. package/engine/dist/core/inference/ChatWorker.d.ts.map +1 -0
  92. package/engine/dist/core/inference/ChatWorker.js +28 -0
  93. package/engine/dist/core/inference/ChatWorker.js.map +1 -0
  94. package/engine/dist/core/inference/context_manager.d.ts +49 -0
  95. package/engine/dist/core/inference/context_manager.d.ts.map +1 -0
  96. package/engine/dist/core/inference/context_manager.js +199 -0
  97. package/engine/dist/core/inference/context_manager.js.map +1 -0
  98. package/engine/dist/core/inference/llamaLoaderWorker.d.ts +2 -0
  99. package/engine/dist/core/inference/llamaLoaderWorker.d.ts.map +1 -0
  100. package/engine/dist/core/inference/llamaLoaderWorker.js +23 -0
  101. package/engine/dist/core/inference/llamaLoaderWorker.js.map +1 -0
  102. package/engine/dist/core/vector.d.ts +40 -0
  103. package/engine/dist/core/vector.d.ts.map +1 -0
  104. package/engine/dist/core/vector.js +167 -0
  105. package/engine/dist/core/vector.js.map +1 -0
  106. package/engine/dist/index.d.ts +4 -0
  107. package/engine/dist/index.d.ts.map +1 -0
  108. package/engine/dist/index.js +400 -0
  109. package/engine/dist/index.js.map +1 -0
  110. package/engine/dist/middleware/auth.d.ts +14 -0
  111. package/engine/dist/middleware/auth.d.ts.map +1 -0
  112. package/engine/dist/middleware/auth.js +44 -0
  113. package/engine/dist/middleware/auth.js.map +1 -0
  114. package/engine/dist/middleware/request-tracing.d.ts +29 -0
  115. package/engine/dist/middleware/request-tracing.d.ts.map +1 -0
  116. package/engine/dist/middleware/request-tracing.js +115 -0
  117. package/engine/dist/middleware/request-tracing.js.map +1 -0
  118. package/engine/dist/middleware/validate.d.ts +30 -0
  119. package/engine/dist/middleware/validate.d.ts.map +1 -0
  120. package/engine/dist/middleware/validate.js +117 -0
  121. package/engine/dist/middleware/validate.js.map +1 -0
  122. package/engine/dist/native/index.d.ts +106 -0
  123. package/engine/dist/native/index.d.ts.map +1 -0
  124. package/engine/dist/native/index.js +230 -0
  125. package/engine/dist/native/index.js.map +1 -0
  126. package/engine/dist/native/types.d.ts +45 -0
  127. package/engine/dist/native/types.d.ts.map +1 -0
  128. package/engine/dist/native/types.js +6 -0
  129. package/engine/dist/native/types.js.map +1 -0
  130. package/engine/dist/profiling/atomization-profiling.d.ts +8 -0
  131. package/engine/dist/profiling/atomization-profiling.d.ts.map +1 -0
  132. package/engine/dist/profiling/atomization-profiling.js +108 -0
  133. package/engine/dist/profiling/atomization-profiling.js.map +1 -0
  134. package/engine/dist/profiling/bottleneck-identification.d.ts +8 -0
  135. package/engine/dist/profiling/bottleneck-identification.d.ts.map +1 -0
  136. package/engine/dist/profiling/bottleneck-identification.js +249 -0
  137. package/engine/dist/profiling/bottleneck-identification.js.map +1 -0
  138. package/engine/dist/profiling/content-sanitization-profiling.d.ts +12 -0
  139. package/engine/dist/profiling/content-sanitization-profiling.d.ts.map +1 -0
  140. package/engine/dist/profiling/content-sanitization-profiling.js +266 -0
  141. package/engine/dist/profiling/content-sanitization-profiling.js.map +1 -0
  142. package/engine/dist/profiling/simhash-profiling.d.ts +11 -0
  143. package/engine/dist/profiling/simhash-profiling.d.ts.map +1 -0
  144. package/engine/dist/profiling/simhash-profiling.js +168 -0
  145. package/engine/dist/profiling/simhash-profiling.js.map +1 -0
  146. package/engine/dist/routes/api.d.ts +9 -0
  147. package/engine/dist/routes/api.d.ts.map +1 -0
  148. package/engine/dist/routes/api.js +37 -0
  149. package/engine/dist/routes/api.js.map +1 -0
  150. package/engine/dist/routes/enhanced-api.d.ts +9 -0
  151. package/engine/dist/routes/enhanced-api.d.ts.map +1 -0
  152. package/engine/dist/routes/enhanced-api.js +139 -0
  153. package/engine/dist/routes/enhanced-api.js.map +1 -0
  154. package/engine/dist/routes/health.d.ts +8 -0
  155. package/engine/dist/routes/health.d.ts.map +1 -0
  156. package/engine/dist/routes/health.js +89 -0
  157. package/engine/dist/routes/health.js.map +1 -0
  158. package/engine/dist/routes/monitoring.d.ts +8 -0
  159. package/engine/dist/routes/monitoring.d.ts.map +1 -0
  160. package/engine/dist/routes/monitoring.js +509 -0
  161. package/engine/dist/routes/monitoring.js.map +1 -0
  162. package/engine/dist/routes/v1/admin.d.ts +3 -0
  163. package/engine/dist/routes/v1/admin.d.ts.map +1 -0
  164. package/engine/dist/routes/v1/admin.js +261 -0
  165. package/engine/dist/routes/v1/admin.js.map +1 -0
  166. package/engine/dist/routes/v1/atoms.d.ts +3 -0
  167. package/engine/dist/routes/v1/atoms.d.ts.map +1 -0
  168. package/engine/dist/routes/v1/atoms.js +172 -0
  169. package/engine/dist/routes/v1/atoms.js.map +1 -0
  170. package/engine/dist/routes/v1/backup.d.ts +3 -0
  171. package/engine/dist/routes/v1/backup.d.ts.map +1 -0
  172. package/engine/dist/routes/v1/backup.js +100 -0
  173. package/engine/dist/routes/v1/backup.js.map +1 -0
  174. package/engine/dist/routes/v1/git.d.ts +3 -0
  175. package/engine/dist/routes/v1/git.d.ts.map +1 -0
  176. package/engine/dist/routes/v1/git.js +316 -0
  177. package/engine/dist/routes/v1/git.js.map +1 -0
  178. package/engine/dist/routes/v1/ingest.d.ts +3 -0
  179. package/engine/dist/routes/v1/ingest.d.ts.map +1 -0
  180. package/engine/dist/routes/v1/ingest.js +66 -0
  181. package/engine/dist/routes/v1/ingest.js.map +1 -0
  182. package/engine/dist/routes/v1/memory.d.ts +14 -0
  183. package/engine/dist/routes/v1/memory.d.ts.map +1 -0
  184. package/engine/dist/routes/v1/memory.js +87 -0
  185. package/engine/dist/routes/v1/memory.js.map +1 -0
  186. package/engine/dist/routes/v1/research.d.ts +3 -0
  187. package/engine/dist/routes/v1/research.d.ts.map +1 -0
  188. package/engine/dist/routes/v1/research.js +109 -0
  189. package/engine/dist/routes/v1/research.js.map +1 -0
  190. package/engine/dist/routes/v1/search.d.ts +3 -0
  191. package/engine/dist/routes/v1/search.d.ts.map +1 -0
  192. package/engine/dist/routes/v1/search.js +180 -0
  193. package/engine/dist/routes/v1/search.js.map +1 -0
  194. package/engine/dist/routes/v1/settings.d.ts +8 -0
  195. package/engine/dist/routes/v1/settings.d.ts.map +1 -0
  196. package/engine/dist/routes/v1/settings.js +211 -0
  197. package/engine/dist/routes/v1/settings.js.map +1 -0
  198. package/engine/dist/routes/v1/system.d.ts +3 -0
  199. package/engine/dist/routes/v1/system.d.ts.map +1 -0
  200. package/engine/dist/routes/v1/system.js +326 -0
  201. package/engine/dist/routes/v1/system.js.map +1 -0
  202. package/engine/dist/routes/v1/tags.d.ts +3 -0
  203. package/engine/dist/routes/v1/tags.d.ts.map +1 -0
  204. package/engine/dist/routes/v1/tags.js +102 -0
  205. package/engine/dist/routes/v1/tags.js.map +1 -0
  206. package/engine/dist/server-8080.d.ts +2 -0
  207. package/engine/dist/server-8080.d.ts.map +1 -0
  208. package/engine/dist/server-8080.js +74 -0
  209. package/engine/dist/server-8080.js.map +1 -0
  210. package/engine/dist/services/backup/backup-restore.d.ts +37 -0
  211. package/engine/dist/services/backup/backup-restore.d.ts.map +1 -0
  212. package/engine/dist/services/backup/backup-restore.js +385 -0
  213. package/engine/dist/services/backup/backup-restore.js.map +1 -0
  214. package/engine/dist/services/backup/backup.d.ts +14 -0
  215. package/engine/dist/services/backup/backup.d.ts.map +1 -0
  216. package/engine/dist/services/backup/backup.js +442 -0
  217. package/engine/dist/services/backup/backup.js.map +1 -0
  218. package/engine/dist/services/distillation/radial-distiller-v2.d.ts +127 -0
  219. package/engine/dist/services/distillation/radial-distiller-v2.d.ts.map +1 -0
  220. package/engine/dist/services/distillation/radial-distiller-v2.js +503 -0
  221. package/engine/dist/services/distillation/radial-distiller-v2.js.map +1 -0
  222. package/engine/dist/services/distillation/radial-distiller.d.ts +63 -0
  223. package/engine/dist/services/distillation/radial-distiller.d.ts.map +1 -0
  224. package/engine/dist/services/distillation/radial-distiller.js +394 -0
  225. package/engine/dist/services/distillation/radial-distiller.js.map +1 -0
  226. package/engine/dist/services/health-check-enhanced.d.ts +89 -0
  227. package/engine/dist/services/health-check-enhanced.d.ts.map +1 -0
  228. package/engine/dist/services/health-check-enhanced.js +417 -0
  229. package/engine/dist/services/health-check-enhanced.js.map +1 -0
  230. package/engine/dist/services/idle-manager.d.ts +56 -0
  231. package/engine/dist/services/idle-manager.d.ts.map +1 -0
  232. package/engine/dist/services/idle-manager.js +210 -0
  233. package/engine/dist/services/idle-manager.js.map +1 -0
  234. package/engine/dist/services/inference/inference-service.d.ts +27 -0
  235. package/engine/dist/services/inference/inference-service.d.ts.map +1 -0
  236. package/engine/dist/services/inference/inference-service.js +89 -0
  237. package/engine/dist/services/inference/inference-service.js.map +1 -0
  238. package/engine/dist/services/inference/inference.d.ts +59 -0
  239. package/engine/dist/services/inference/inference.d.ts.map +1 -0
  240. package/engine/dist/services/inference/inference.js +131 -0
  241. package/engine/dist/services/inference/inference.js.map +1 -0
  242. package/engine/dist/services/ingest/atomizer-service.d.ts +74 -0
  243. package/engine/dist/services/ingest/atomizer-service.d.ts.map +1 -0
  244. package/engine/dist/services/ingest/atomizer-service.js +982 -0
  245. package/engine/dist/services/ingest/atomizer-service.js.map +1 -0
  246. package/engine/dist/services/ingest/content-cleaner.d.ts +43 -0
  247. package/engine/dist/services/ingest/content-cleaner.d.ts.map +1 -0
  248. package/engine/dist/services/ingest/content-cleaner.js +166 -0
  249. package/engine/dist/services/ingest/content-cleaner.js.map +1 -0
  250. package/engine/dist/services/ingest/github-ingest-service.d.ts +103 -0
  251. package/engine/dist/services/ingest/github-ingest-service.d.ts.map +1 -0
  252. package/engine/dist/services/ingest/github-ingest-service.js +537 -0
  253. package/engine/dist/services/ingest/github-ingest-service.js.map +1 -0
  254. package/engine/dist/services/ingest/ingest-atomic.d.ts +16 -0
  255. package/engine/dist/services/ingest/ingest-atomic.d.ts.map +1 -0
  256. package/engine/dist/services/ingest/ingest-atomic.js +437 -0
  257. package/engine/dist/services/ingest/ingest-atomic.js.map +1 -0
  258. package/engine/dist/services/ingest/ingest.d.ts +50 -0
  259. package/engine/dist/services/ingest/ingest.d.ts.map +1 -0
  260. package/engine/dist/services/ingest/ingest.js +230 -0
  261. package/engine/dist/services/ingest/ingest.js.map +1 -0
  262. package/engine/dist/services/ingest/watchdog.d.ts +31 -0
  263. package/engine/dist/services/ingest/watchdog.d.ts.map +1 -0
  264. package/engine/dist/services/ingest/watchdog.js +400 -0
  265. package/engine/dist/services/ingest/watchdog.js.map +1 -0
  266. package/engine/dist/services/llm/context.d.ts +6 -0
  267. package/engine/dist/services/llm/context.d.ts.map +1 -0
  268. package/engine/dist/services/llm/context.js +80 -0
  269. package/engine/dist/services/llm/context.js.map +1 -0
  270. package/engine/dist/services/llm/provider.d.ts +23 -0
  271. package/engine/dist/services/llm/provider.d.ts.map +1 -0
  272. package/engine/dist/services/llm/provider.js +338 -0
  273. package/engine/dist/services/llm/provider.js.map +1 -0
  274. package/engine/dist/services/llm/reader.d.ts +12 -0
  275. package/engine/dist/services/llm/reader.d.ts.map +1 -0
  276. package/engine/dist/services/llm/reader.js +40 -0
  277. package/engine/dist/services/llm/reader.js.map +1 -0
  278. package/engine/dist/services/mirror/mirror.d.ts +28 -0
  279. package/engine/dist/services/mirror/mirror.d.ts.map +1 -0
  280. package/engine/dist/services/mirror/mirror.js +208 -0
  281. package/engine/dist/services/mirror/mirror.js.map +1 -0
  282. package/engine/dist/services/nlp/nlp-service.d.ts +70 -0
  283. package/engine/dist/services/nlp/nlp-service.d.ts.map +1 -0
  284. package/engine/dist/services/nlp/nlp-service.js +151 -0
  285. package/engine/dist/services/nlp/nlp-service.js.map +1 -0
  286. package/engine/dist/services/nlp/query-parser.d.ts +9 -0
  287. package/engine/dist/services/nlp/query-parser.d.ts.map +1 -0
  288. package/engine/dist/services/nlp/query-parser.js +29 -0
  289. package/engine/dist/services/nlp/query-parser.js.map +1 -0
  290. package/engine/dist/services/query-builder/DataFrame.d.ts +95 -0
  291. package/engine/dist/services/query-builder/DataFrame.d.ts.map +1 -0
  292. package/engine/dist/services/query-builder/DataFrame.js +263 -0
  293. package/engine/dist/services/query-builder/DataFrame.js.map +1 -0
  294. package/engine/dist/services/query-builder/QueryBuilder.d.ts +106 -0
  295. package/engine/dist/services/query-builder/QueryBuilder.d.ts.map +1 -0
  296. package/engine/dist/services/query-builder/QueryBuilder.js +235 -0
  297. package/engine/dist/services/query-builder/QueryBuilder.js.map +1 -0
  298. package/engine/dist/services/query-builder/utils/export.d.ts +11 -0
  299. package/engine/dist/services/query-builder/utils/export.d.ts.map +1 -0
  300. package/engine/dist/services/query-builder/utils/export.js +130 -0
  301. package/engine/dist/services/query-builder/utils/export.js.map +1 -0
  302. package/engine/dist/services/research/researcher.d.ts +15 -0
  303. package/engine/dist/services/research/researcher.d.ts.map +1 -0
  304. package/engine/dist/services/research/researcher.js +123 -0
  305. package/engine/dist/services/research/researcher.js.map +1 -0
  306. package/engine/dist/services/scribe/scribe.d.ts +43 -0
  307. package/engine/dist/services/scribe/scribe.d.ts.map +1 -0
  308. package/engine/dist/services/scribe/scribe.js +135 -0
  309. package/engine/dist/services/scribe/scribe.js.map +1 -0
  310. package/engine/dist/services/search/bright-nodes.d.ts +41 -0
  311. package/engine/dist/services/search/bright-nodes.d.ts.map +1 -0
  312. package/engine/dist/services/search/bright-nodes.js +117 -0
  313. package/engine/dist/services/search/bright-nodes.js.map +1 -0
  314. package/engine/dist/services/search/context-inflator.d.ts +63 -0
  315. package/engine/dist/services/search/context-inflator.d.ts.map +1 -0
  316. package/engine/dist/services/search/context-inflator.js +649 -0
  317. package/engine/dist/services/search/context-inflator.js.map +1 -0
  318. package/engine/dist/services/search/context-manager.d.ts +34 -0
  319. package/engine/dist/services/search/context-manager.d.ts.map +1 -0
  320. package/engine/dist/services/search/context-manager.js +124 -0
  321. package/engine/dist/services/search/context-manager.js.map +1 -0
  322. package/engine/dist/services/search/distributed-query.d.ts +38 -0
  323. package/engine/dist/services/search/distributed-query.d.ts.map +1 -0
  324. package/engine/dist/services/search/distributed-query.js +105 -0
  325. package/engine/dist/services/search/distributed-query.js.map +1 -0
  326. package/engine/dist/services/search/explore.d.ts +73 -0
  327. package/engine/dist/services/search/explore.d.ts.map +1 -0
  328. package/engine/dist/services/search/explore.js +388 -0
  329. package/engine/dist/services/search/explore.js.map +1 -0
  330. package/engine/dist/services/search/graph-context-serializer.d.ts +76 -0
  331. package/engine/dist/services/search/graph-context-serializer.d.ts.map +1 -0
  332. package/engine/dist/services/search/graph-context-serializer.js +435 -0
  333. package/engine/dist/services/search/graph-context-serializer.js.map +1 -0
  334. package/engine/dist/services/search/llm-context-formatter.d.ts +122 -0
  335. package/engine/dist/services/search/llm-context-formatter.d.ts.map +1 -0
  336. package/engine/dist/services/search/llm-context-formatter.js +394 -0
  337. package/engine/dist/services/search/llm-context-formatter.js.map +1 -0
  338. package/engine/dist/services/search/physics-tag-walker.d.ts +115 -0
  339. package/engine/dist/services/search/physics-tag-walker.d.ts.map +1 -0
  340. package/engine/dist/services/search/physics-tag-walker.js +611 -0
  341. package/engine/dist/services/search/physics-tag-walker.js.map +1 -0
  342. package/engine/dist/services/search/query-parser.d.ts +66 -0
  343. package/engine/dist/services/search/query-parser.d.ts.map +1 -0
  344. package/engine/dist/services/search/query-parser.js +346 -0
  345. package/engine/dist/services/search/query-parser.js.map +1 -0
  346. package/engine/dist/services/search/search-utils.d.ts +100 -0
  347. package/engine/dist/services/search/search-utils.d.ts.map +1 -0
  348. package/engine/dist/services/search/search-utils.js +473 -0
  349. package/engine/dist/services/search/search-utils.js.map +1 -0
  350. package/engine/dist/services/search/search.d.ts +116 -0
  351. package/engine/dist/services/search/search.d.ts.map +1 -0
  352. package/engine/dist/services/search/search.js +1286 -0
  353. package/engine/dist/services/search/search.js.map +1 -0
  354. package/engine/dist/services/search/sovereign-system-prompt.d.ts +48 -0
  355. package/engine/dist/services/search/sovereign-system-prompt.d.ts.map +1 -0
  356. package/engine/dist/services/search/sovereign-system-prompt.js +101 -0
  357. package/engine/dist/services/search/sovereign-system-prompt.js.map +1 -0
  358. package/engine/dist/services/search/streaming-search.d.ts +51 -0
  359. package/engine/dist/services/search/streaming-search.d.ts.map +1 -0
  360. package/engine/dist/services/search/streaming-search.js +94 -0
  361. package/engine/dist/services/search/streaming-search.js.map +1 -0
  362. package/engine/dist/services/semantic/semantic-ingestion-service.d.ts +53 -0
  363. package/engine/dist/services/semantic/semantic-ingestion-service.d.ts.map +1 -0
  364. package/engine/dist/services/semantic/semantic-ingestion-service.js +625 -0
  365. package/engine/dist/services/semantic/semantic-ingestion-service.js.map +1 -0
  366. package/engine/dist/services/semantic/semantic-molecule-processor.d.ts +68 -0
  367. package/engine/dist/services/semantic/semantic-molecule-processor.d.ts.map +1 -0
  368. package/engine/dist/services/semantic/semantic-molecule-processor.js +176 -0
  369. package/engine/dist/services/semantic/semantic-molecule-processor.js.map +1 -0
  370. package/engine/dist/services/semantic/semantic-search.d.ts +52 -0
  371. package/engine/dist/services/semantic/semantic-search.d.ts.map +1 -0
  372. package/engine/dist/services/semantic/semantic-search.js +649 -0
  373. package/engine/dist/services/semantic/semantic-search.js.map +1 -0
  374. package/engine/dist/services/semantic/semantic-tag-deriver.d.ts +64 -0
  375. package/engine/dist/services/semantic/semantic-tag-deriver.d.ts.map +1 -0
  376. package/engine/dist/services/semantic/semantic-tag-deriver.js +191 -0
  377. package/engine/dist/services/semantic/semantic-tag-deriver.js.map +1 -0
  378. package/engine/dist/services/semantic/types/semantic.d.ts +26 -0
  379. package/engine/dist/services/semantic/types/semantic.d.ts.map +1 -0
  380. package/engine/dist/services/semantic/types/semantic.js +7 -0
  381. package/engine/dist/services/semantic/types/semantic.js.map +1 -0
  382. package/engine/dist/services/synonyms/auto-synonym-generator.d.ts +79 -0
  383. package/engine/dist/services/synonyms/auto-synonym-generator.d.ts.map +1 -0
  384. package/engine/dist/services/synonyms/auto-synonym-generator.js +415 -0
  385. package/engine/dist/services/synonyms/auto-synonym-generator.js.map +1 -0
  386. package/engine/dist/services/system-status.d.ts +68 -0
  387. package/engine/dist/services/system-status.d.ts.map +1 -0
  388. package/engine/dist/services/system-status.js +107 -0
  389. package/engine/dist/services/system-status.js.map +1 -0
  390. package/engine/dist/services/tags/discovery.d.ts +16 -0
  391. package/engine/dist/services/tags/discovery.d.ts.map +1 -0
  392. package/engine/dist/services/tags/discovery.js +206 -0
  393. package/engine/dist/services/tags/discovery.js.map +1 -0
  394. package/engine/dist/services/tags/gliner.d.ts +18 -0
  395. package/engine/dist/services/tags/gliner.d.ts.map +1 -0
  396. package/engine/dist/services/tags/gliner.js +119 -0
  397. package/engine/dist/services/tags/gliner.js.map +1 -0
  398. package/engine/dist/services/tags/infector.d.ts +21 -0
  399. package/engine/dist/services/tags/infector.d.ts.map +1 -0
  400. package/engine/dist/services/tags/infector.js +168 -0
  401. package/engine/dist/services/tags/infector.js.map +1 -0
  402. package/engine/dist/services/tags/tag-auditor.d.ts +77 -0
  403. package/engine/dist/services/tags/tag-auditor.d.ts.map +1 -0
  404. package/engine/dist/services/tags/tag-auditor.js +283 -0
  405. package/engine/dist/services/tags/tag-auditor.js.map +1 -0
  406. package/engine/dist/services/taxonomy/taxonomy-manager.d.ts +50 -0
  407. package/engine/dist/services/taxonomy/taxonomy-manager.d.ts.map +1 -0
  408. package/engine/dist/services/taxonomy/taxonomy-manager.js +291 -0
  409. package/engine/dist/services/taxonomy/taxonomy-manager.js.map +1 -0
  410. package/engine/dist/services/vision/vision_service.d.ts +4 -0
  411. package/engine/dist/services/vision/vision_service.d.ts.map +1 -0
  412. package/engine/dist/services/vision/vision_service.js +197 -0
  413. package/engine/dist/services/vision/vision_service.js.map +1 -0
  414. package/engine/dist/test-framework/core.d.ts +133 -0
  415. package/engine/dist/test-framework/core.d.ts.map +1 -0
  416. package/engine/dist/test-framework/core.js +313 -0
  417. package/engine/dist/test-framework/core.js.map +1 -0
  418. package/engine/dist/test-framework/dataset-runner.d.ts +78 -0
  419. package/engine/dist/test-framework/dataset-runner.d.ts.map +1 -0
  420. package/engine/dist/test-framework/dataset-runner.js +223 -0
  421. package/engine/dist/test-framework/dataset-runner.js.map +1 -0
  422. package/engine/dist/test-framework/diagnostic-tests.d.ts +38 -0
  423. package/engine/dist/test-framework/diagnostic-tests.d.ts.map +1 -0
  424. package/engine/dist/test-framework/diagnostic-tests.js +283 -0
  425. package/engine/dist/test-framework/diagnostic-tests.js.map +1 -0
  426. package/engine/dist/test-framework/performance-regression-tests.d.ts +30 -0
  427. package/engine/dist/test-framework/performance-regression-tests.d.ts.map +1 -0
  428. package/engine/dist/test-framework/performance-regression-tests.js +331 -0
  429. package/engine/dist/test-framework/performance-regression-tests.js.map +1 -0
  430. package/engine/dist/types/api.d.ts +53 -0
  431. package/engine/dist/types/api.d.ts.map +1 -0
  432. package/engine/dist/types/api.js +2 -0
  433. package/engine/dist/types/api.js.map +1 -0
  434. package/engine/dist/types/atomic.d.ts +42 -0
  435. package/engine/dist/types/atomic.d.ts.map +1 -0
  436. package/engine/dist/types/atomic.js +10 -0
  437. package/engine/dist/types/atomic.js.map +1 -0
  438. package/engine/dist/types/context-protocol.d.ts +137 -0
  439. package/engine/dist/types/context-protocol.d.ts.map +1 -0
  440. package/engine/dist/types/context-protocol.js +28 -0
  441. package/engine/dist/types/context-protocol.js.map +1 -0
  442. package/engine/dist/types/context.d.ts +2 -0
  443. package/engine/dist/types/context.d.ts.map +1 -0
  444. package/engine/dist/types/context.js +2 -0
  445. package/engine/dist/types/context.js.map +1 -0
  446. package/engine/dist/types/index.d.ts +20 -0
  447. package/engine/dist/types/index.d.ts.map +1 -0
  448. package/engine/dist/types/index.js +18 -0
  449. package/engine/dist/types/index.js.map +1 -0
  450. package/engine/dist/types/search.d.ts +31 -0
  451. package/engine/dist/types/search.d.ts.map +1 -0
  452. package/engine/dist/types/search.js +2 -0
  453. package/engine/dist/types/search.js.map +1 -0
  454. package/engine/dist/types/taxonomy.d.ts +137 -0
  455. package/engine/dist/types/taxonomy.d.ts.map +1 -0
  456. package/engine/dist/types/taxonomy.js +138 -0
  457. package/engine/dist/types/taxonomy.js.map +1 -0
  458. package/engine/dist/types/taxonomy.simple.d.ts +131 -0
  459. package/engine/dist/types/taxonomy.simple.d.ts.map +1 -0
  460. package/engine/dist/types/taxonomy.simple.js +132 -0
  461. package/engine/dist/types/taxonomy.simple.js.map +1 -0
  462. package/engine/dist/types/tool-call.d.ts +16 -0
  463. package/engine/dist/types/tool-call.d.ts.map +1 -0
  464. package/engine/dist/types/tool-call.js +6 -0
  465. package/engine/dist/types/tool-call.js.map +1 -0
  466. package/engine/dist/types/trace.d.ts +25 -0
  467. package/engine/dist/types/trace.d.ts.map +1 -0
  468. package/engine/dist/types/trace.js +5 -0
  469. package/engine/dist/types/trace.js.map +1 -0
  470. package/engine/dist/utils/adaptive-concurrency.d.ts +81 -0
  471. package/engine/dist/utils/adaptive-concurrency.d.ts.map +1 -0
  472. package/engine/dist/utils/adaptive-concurrency.js +266 -0
  473. package/engine/dist/utils/adaptive-concurrency.js.map +1 -0
  474. package/engine/dist/utils/date_extractor.d.ts +2 -0
  475. package/engine/dist/utils/date_extractor.d.ts.map +1 -0
  476. package/engine/dist/utils/date_extractor.js +32 -0
  477. package/engine/dist/utils/date_extractor.js.map +1 -0
  478. package/engine/dist/utils/native-module-manager.d.ts +48 -0
  479. package/engine/dist/utils/native-module-manager.d.ts.map +1 -0
  480. package/engine/dist/utils/native-module-manager.js +265 -0
  481. package/engine/dist/utils/native-module-manager.js.map +1 -0
  482. package/engine/dist/utils/native-module-profiler.d.ts +66 -0
  483. package/engine/dist/utils/native-module-profiler.d.ts.map +1 -0
  484. package/engine/dist/utils/native-module-profiler.js +182 -0
  485. package/engine/dist/utils/native-module-profiler.js.map +1 -0
  486. package/engine/dist/utils/path-manager.d.ts +59 -0
  487. package/engine/dist/utils/path-manager.d.ts.map +1 -0
  488. package/engine/dist/utils/path-manager.js +154 -0
  489. package/engine/dist/utils/path-manager.js.map +1 -0
  490. package/engine/dist/utils/performance-monitor.d.ts +92 -0
  491. package/engine/dist/utils/performance-monitor.d.ts.map +1 -0
  492. package/engine/dist/utils/performance-monitor.js +221 -0
  493. package/engine/dist/utils/performance-monitor.js.map +1 -0
  494. package/engine/dist/utils/process-manager.d.ts +18 -0
  495. package/engine/dist/utils/process-manager.d.ts.map +1 -0
  496. package/engine/dist/utils/process-manager.js +100 -0
  497. package/engine/dist/utils/process-manager.js.map +1 -0
  498. package/engine/dist/utils/request-tracer.d.ts +131 -0
  499. package/engine/dist/utils/request-tracer.d.ts.map +1 -0
  500. package/engine/dist/utils/request-tracer.js +414 -0
  501. package/engine/dist/utils/request-tracer.js.map +1 -0
  502. package/engine/dist/utils/resource-manager.d.ts +108 -0
  503. package/engine/dist/utils/resource-manager.d.ts.map +1 -0
  504. package/engine/dist/utils/resource-manager.js +235 -0
  505. package/engine/dist/utils/resource-manager.js.map +1 -0
  506. package/engine/dist/utils/safe-dns.d.ts +14 -0
  507. package/engine/dist/utils/safe-dns.d.ts.map +1 -0
  508. package/engine/dist/utils/safe-dns.js +105 -0
  509. package/engine/dist/utils/safe-dns.js.map +1 -0
  510. package/engine/dist/utils/structured-logger.d.ts +124 -0
  511. package/engine/dist/utils/structured-logger.d.ts.map +1 -0
  512. package/engine/dist/utils/structured-logger.js +332 -0
  513. package/engine/dist/utils/structured-logger.js.map +1 -0
  514. package/engine/dist/utils/tag-cleanup.d.ts +11 -0
  515. package/engine/dist/utils/tag-cleanup.d.ts.map +1 -0
  516. package/engine/dist/utils/tag-cleanup.js +111 -0
  517. package/engine/dist/utils/tag-cleanup.js.map +1 -0
  518. package/engine/dist/utils/tag-filter.d.ts +19 -0
  519. package/engine/dist/utils/tag-filter.d.ts.map +1 -0
  520. package/engine/dist/utils/tag-filter.js +147 -0
  521. package/engine/dist/utils/tag-filter.js.map +1 -0
  522. package/engine/dist/utils/tag-modulation.d.ts +80 -0
  523. package/engine/dist/utils/tag-modulation.d.ts.map +1 -0
  524. package/engine/dist/utils/tag-modulation.js +284 -0
  525. package/engine/dist/utils/tag-modulation.js.map +1 -0
  526. package/engine/dist/utils/timer.d.ts +40 -0
  527. package/engine/dist/utils/timer.d.ts.map +1 -0
  528. package/engine/dist/utils/timer.js +76 -0
  529. package/engine/dist/utils/timer.js.map +1 -0
  530. package/engine/dist/utils/token-utils.d.ts +19 -0
  531. package/engine/dist/utils/token-utils.d.ts.map +1 -0
  532. package/engine/dist/utils/token-utils.js +71 -0
  533. package/engine/dist/utils/token-utils.js.map +1 -0
  534. package/engine/dist/utils/wasm-module-loader.d.ts +50 -0
  535. package/engine/dist/utils/wasm-module-loader.d.ts.map +1 -0
  536. package/engine/dist/utils/wasm-module-loader.js +136 -0
  537. package/engine/dist/utils/wasm-module-loader.js.map +1 -0
  538. package/engine/package.json +105 -0
  539. package/package.json +106 -0
@@ -0,0 +1,208 @@
1
+ /**
2
+ * Mirror Protocol Service - "Tangible Knowledge Graph"
3
+ *
4
+ * Writes CLEANED content (compound_body) to mirrored_brain/, not raw copies.
5
+ * The sanitizer strips noise, timestamps, PII, and boilerplate before writing,
6
+ * so mirrored_brain/ is smaller and more meaningful than the original inbox/.
7
+ *
8
+ * Supports YAML rehydration: flattened YAML files (from read_all.js) are
9
+ * expanded back into their original file structure.
10
+ */
11
+ import * as fs from 'fs';
12
+ import * as path from 'path';
13
+ import yaml from 'js-yaml';
14
+ import { db } from '../../core/db.js';
15
+ import { NOTEBOOK_DIR } from '../../config/paths.js';
16
+ import PATHS from '../../config/paths.js';
17
+ export const MIRRORED_BRAIN_PATH = PATHS.MIRRORED_BRAIN_DIR;
18
+ /**
19
+ * Mirror Protocol: Full rebuild of mirrored_brain/ from DB compounds.
20
+ * Writes cleaned compound_body for each source. Falls back to raw file
21
+ * copy only when compound_body is missing (migration / edge case).
22
+ */
23
+ export async function createMirror() {
24
+ console.log('🪞 Mirror Protocol: Rebuilding from cleaned compound content...');
25
+ // Create mirror root
26
+ if (!fs.existsSync(MIRRORED_BRAIN_PATH)) {
27
+ fs.mkdirSync(MIRRORED_BRAIN_PATH, { recursive: true });
28
+ }
29
+ // Join sources with compounds to get cleaned content
30
+ const sourcesQuery = `
31
+ SELECT s.path, c.compound_body, c.provenance
32
+ FROM sources s
33
+ LEFT JOIN compounds c ON c.path = s.path
34
+ `;
35
+ const result = await db.run(sourcesQuery);
36
+ if (!result.rows || result.rows.length === 0) {
37
+ console.log('🪞 Mirror Protocol: No files to mirror.');
38
+ return;
39
+ }
40
+ let fileCount = 0;
41
+ let fallbackCount = 0;
42
+ let rehydratedCount = 0;
43
+ for (const row of result.rows) {
44
+ const dbPath = Array.isArray(row) ? row[0] : row.path;
45
+ const compoundBody = Array.isArray(row) ? row[1] : row.compound_body;
46
+ const provenance = (Array.isArray(row) ? row[2] : row.provenance) || 'internal';
47
+ if (!dbPath)
48
+ continue;
49
+ // Determine mirror subdirectory
50
+ let provenanceDir = '@inbox';
51
+ if (dbPath.startsWith('external-inbox') || dbPath.includes('external-inbox')) {
52
+ provenanceDir = '@external-inbox';
53
+ }
54
+ else if (dbPath.startsWith('quarantine')) {
55
+ provenanceDir = '@quarantine';
56
+ }
57
+ // Use cleaned compound_body when available
58
+ if (compoundBody) {
59
+ const relativePath = getRelativePath(dbPath);
60
+ const mirrorPath = path.join(MIRRORED_BRAIN_PATH, provenanceDir, relativePath);
61
+ await writeFile(mirrorPath, compoundBody);
62
+ fileCount++;
63
+ continue;
64
+ }
65
+ // Fallback: raw file copy for sources without compound_body (migration)
66
+ let sourcePath = dbPath;
67
+ if (!path.isAbsolute(sourcePath)) {
68
+ sourcePath = path.join(NOTEBOOK_DIR, sourcePath);
69
+ }
70
+ if (!fs.existsSync(sourcePath))
71
+ continue;
72
+ // Check if this is a rehydratable YAML file
73
+ if (sourcePath.endsWith('.yaml') || sourcePath.endsWith('.yml')) {
74
+ const rehydrated = await tryRehydrateYAML(sourcePath, provenanceDir);
75
+ if (rehydrated > 0) {
76
+ rehydratedCount += rehydrated;
77
+ continue;
78
+ }
79
+ }
80
+ const relativePath = getRelativePath(sourcePath);
81
+ const mirrorPath = path.join(MIRRORED_BRAIN_PATH, provenanceDir, relativePath);
82
+ await copyFile(sourcePath, mirrorPath);
83
+ fallbackCount++;
84
+ }
85
+ console.log(`🪞 Mirror Protocol: Complete. ${fileCount} cleaned, ${fallbackCount} fallback copies, ${rehydratedCount} rehydrated.`);
86
+ }
87
+ /**
88
+ * Write a single file's cleaned content directly to mirrored_brain/.
89
+ * Called by watchdog after atomization — faster than a full createMirror() rebuild.
90
+ */
91
+ export async function writeMirroredFile(relativePath, cleanedContent, provenance = 'internal') {
92
+ console.log(`[MirrorWrite] Starting write for: ${relativePath}`);
93
+ console.log(`[MirrorWrite] Content length: ${cleanedContent?.length || 0} chars`);
94
+ console.log(`[MirrorWrite] Provenance: ${provenance}`);
95
+ console.log(`[MirrorWrite] MIRRORED_BRAIN_PATH: ${MIRRORED_BRAIN_PATH}`);
96
+ if (!fs.existsSync(MIRRORED_BRAIN_PATH)) {
97
+ console.log(`[MirrorWrite] Creating mirrored_brain directory...`);
98
+ fs.mkdirSync(MIRRORED_BRAIN_PATH, { recursive: true });
99
+ console.log(`[MirrorWrite] ✓ Directory created`);
100
+ }
101
+ const mirrorPath = getMirrorPath(relativePath, provenance);
102
+ console.log(`[MirrorWrite] Target path: ${mirrorPath}`);
103
+ try {
104
+ await writeFile(mirrorPath, cleanedContent);
105
+ console.log(`[MirrorWrite] ✓ SUCCESS: Written ${cleanedContent?.length || 0} chars to ${mirrorPath}`);
106
+ }
107
+ catch (error) {
108
+ console.error(`[MirrorWrite] ✗ FAILED: ${error.message}`);
109
+ throw error;
110
+ }
111
+ }
112
+ /**
113
+ * Try to rehydrate a YAML file (from read_all.js format)
114
+ * Returns number of files rehydrated, or 0 if not a rehydratable format
115
+ */
116
+ async function tryRehydrateYAML(yamlPath, provenanceDir) {
117
+ try {
118
+ const content = fs.readFileSync(yamlPath, 'utf-8');
119
+ const data = yaml.load(content);
120
+ // Check if this matches read_all.js format
121
+ if (!data || !Array.isArray(data.files) || data.files.length === 0) {
122
+ return 0; // Not a rehydratable format
123
+ }
124
+ // Get project name from project_structure or filename
125
+ const projectName = data.project_structure
126
+ ? path.basename(data.project_structure)
127
+ : path.basename(yamlPath, path.extname(yamlPath));
128
+ console.log(`🪞 Rehydrating YAML: ${yamlPath} → ${data.files.length} files (project: ${projectName})`);
129
+ let count = 0;
130
+ for (const file of data.files) {
131
+ if (!file.path || file.content === undefined)
132
+ continue;
133
+ const mirrorPath = path.join(MIRRORED_BRAIN_PATH, provenanceDir, projectName, file.path);
134
+ await writeFile(mirrorPath, file.content);
135
+ count++;
136
+ }
137
+ return count;
138
+ }
139
+ catch (e) {
140
+ // Not a valid YAML or parsing error - treat as normal file
141
+ return 0;
142
+ }
143
+ }
144
+ /**
145
+ * Get relative path from inbox roots
146
+ */
147
+ function getRelativePath(absolutePath) {
148
+ if (!absolutePath)
149
+ return 'unknown_file';
150
+ const inboxDir = PATHS.INBOX_DIR;
151
+ const externalDir = path.join(path.dirname(PATHS.INBOX_DIR), 'external-inbox');
152
+ if (absolutePath.startsWith(inboxDir)) {
153
+ return path.relative(inboxDir, absolutePath);
154
+ }
155
+ if (absolutePath.startsWith(externalDir)) {
156
+ return path.relative(externalDir, absolutePath);
157
+ }
158
+ // Hande pre-relative paths (e.g. from DB)
159
+ if (absolutePath.startsWith('inbox/') || absolutePath.startsWith('inbox\\')) {
160
+ return absolutePath.substring(6); // remove 'inbox/'
161
+ }
162
+ if (absolutePath.startsWith('external-inbox/') || absolutePath.startsWith('external-inbox\\')) {
163
+ return absolutePath.substring(15); // remove 'external-inbox/'
164
+ }
165
+ // Fallback: use filename only
166
+ return path.basename(absolutePath);
167
+ }
168
+ /**
169
+ * Copy a file to mirror location
170
+ */
171
+ async function copyFile(source, dest) {
172
+ try {
173
+ const destDir = path.dirname(dest);
174
+ if (!fs.existsSync(destDir)) {
175
+ fs.mkdirSync(destDir, { recursive: true });
176
+ }
177
+ fs.copyFileSync(source, dest);
178
+ }
179
+ catch (e) {
180
+ console.warn(`🪞 Mirror: Failed to copy ${source}: ${e.message}`);
181
+ }
182
+ }
183
+ /**
184
+ * Write content to a file
185
+ */
186
+ async function writeFile(filePath, content) {
187
+ try {
188
+ const dir = path.dirname(filePath);
189
+ if (!fs.existsSync(dir)) {
190
+ fs.mkdirSync(dir, { recursive: true });
191
+ }
192
+ fs.writeFileSync(filePath, content, 'utf-8');
193
+ }
194
+ catch (e) {
195
+ console.warn(`🪞 Mirror: Failed to write ${filePath}: ${e.message}`);
196
+ }
197
+ }
198
+ /**
199
+ * Get the mirrored path for a source file
200
+ * Used by context inflator to read from mirror instead of DB
201
+ */
202
+ export function getMirrorPath(sourcePath, provenance = 'internal') {
203
+ const provenanceDir = provenance === 'external' ? '@external-inbox' :
204
+ provenance === 'quarantine' ? '@quarantine' : '@inbox';
205
+ const relativePath = getRelativePath(sourcePath);
206
+ return path.join(MIRRORED_BRAIN_PATH, provenanceDir, relativePath);
207
+ }
208
+ //# sourceMappingURL=mirror.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mirror.js","sourceRoot":"","sources":["../../../src/services/mirror/mirror.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * NLP Service for ECE Semantic Architecture
3
+ *
4
+ * Provides NLP capabilities using Wink NLP (entity extraction, classification).
5
+ * Dense vector embeddings (previously @xenova/transformers) are intentionally
6
+ * removed — the STAR algorithm uses sparse tag-based graph retrieval and does
7
+ * not require dense embeddings for its core operation.
8
+ *
9
+ * If dense vector augmentation is desired (hybrid retrieval), configure an
10
+ * external vector store (e.g., pgvector, Chroma, Weaviate) and plug it into
11
+ * the VectorService interface in core/vector.ts.
12
+ */
13
+ export declare class NlpService {
14
+ /**
15
+ * Stub: dense embeddings are not loaded. Returns false always.
16
+ */
17
+ static isModelLoadedStatus(): boolean;
18
+ /**
19
+ * No-op: no model to unload.
20
+ */
21
+ static unloadModel(): Promise<void>;
22
+ /** No-op cache stub */
23
+ static clearCache(): void;
24
+ /** Returns 0 — no cache */
25
+ static getCacheSize(): number;
26
+ /**
27
+ * Dense embedding stub. Returns an empty array.
28
+ *
29
+ * The STAR engine uses sparse tag-intersection scoring (Unified Field Equation)
30
+ * and does not require dense embeddings for retrieval. The vector search path
31
+ * in semantic-search.ts already handles empty results gracefully via try/catch.
32
+ *
33
+ * To add dense vector augmentation, implement a provider here and wire it to
34
+ * VectorService in core/vector.ts.
35
+ */
36
+ getEmbedding(_text: string): Promise<number[]>;
37
+ /**
38
+ * Extract entities from text using Wink NLP
39
+ */
40
+ extractEntities(text: string): string[];
41
+ /**
42
+ * Identify if an entity is a person
43
+ */
44
+ isPersonEntity(entity: string): boolean;
45
+ /**
46
+ * Identify if an entity is a place
47
+ */
48
+ isPlaceEntity(entity: string): boolean;
49
+ /**
50
+ * Identify if an entity is a technical term
51
+ */
52
+ isTechnicalEntity(entity: string): boolean;
53
+ /**
54
+ * Identify if an entity is a date
55
+ */
56
+ isDateEntity(entity: string): boolean;
57
+ /**
58
+ * Classify entity type
59
+ */
60
+ classifyEntity(entity: string): 'person' | 'place' | 'technical' | 'date' | 'concept';
61
+ /**
62
+ * Check if a word is common (non-entity)
63
+ */
64
+ private isCommonWord;
65
+ /**
66
+ * Check if text contains relationship indicators
67
+ */
68
+ hasRelationshipIndicators(text: string): boolean;
69
+ }
70
+ //# sourceMappingURL=nlp-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nlp-service.d.ts","sourceRoot":"","sources":["../../../src/services/nlp/nlp-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,qBAAa,UAAU;IACrB;;OAEG;WACW,mBAAmB,IAAI,OAAO;IAE5C;;OAEG;WACiB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAEhD,uBAAuB;WACT,UAAU,IAAI,IAAI;IAEhC,2BAA2B;WACb,YAAY,IAAI,MAAM;IAEpC;;;;;;;;;OASG;IACU,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAI3D;;OAEG;IACI,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAa9C;;OAEG;IACI,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAc9C;;OAEG;IACI,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAY7C;;OAEG;IACI,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAWjD;;OAEG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAW5C;;OAEG;IACI,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS;IAQ5F;;OAEG;IACH,OAAO,CAAC,YAAY;IAWpB;;OAEG;IACI,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAexD"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * NLP Service for ECE Semantic Architecture
3
+ *
4
+ * Provides NLP capabilities using Wink NLP (entity extraction, classification).
5
+ * Dense vector embeddings (previously @xenova/transformers) are intentionally
6
+ * removed — the STAR algorithm uses sparse tag-based graph retrieval and does
7
+ * not require dense embeddings for its core operation.
8
+ *
9
+ * If dense vector augmentation is desired (hybrid retrieval), configure an
10
+ * external vector store (e.g., pgvector, Chroma, Weaviate) and plug it into
11
+ * the VectorService interface in core/vector.ts.
12
+ */
13
+ import wink from 'wink-nlp';
14
+ import model from 'wink-eng-lite-web-model';
15
+ const nlp = wink(model);
16
+ export class NlpService {
17
+ /**
18
+ * Stub: dense embeddings are not loaded. Returns false always.
19
+ */
20
+ static isModelLoadedStatus() { return false; }
21
+ /**
22
+ * No-op: no model to unload.
23
+ */
24
+ static async unloadModel() { }
25
+ /** No-op cache stub */
26
+ static clearCache() { }
27
+ /** Returns 0 — no cache */
28
+ static getCacheSize() { return 0; }
29
+ /**
30
+ * Dense embedding stub. Returns an empty array.
31
+ *
32
+ * The STAR engine uses sparse tag-intersection scoring (Unified Field Equation)
33
+ * and does not require dense embeddings for retrieval. The vector search path
34
+ * in semantic-search.ts already handles empty results gracefully via try/catch.
35
+ *
36
+ * To add dense vector augmentation, implement a provider here and wire it to
37
+ * VectorService in core/vector.ts.
38
+ */
39
+ async getEmbedding(_text) {
40
+ return [];
41
+ }
42
+ /**
43
+ * Extract entities from text using Wink NLP
44
+ */
45
+ extractEntities(text) {
46
+ const doc = nlp.readDoc(text);
47
+ const entities = doc.entities();
48
+ // Extract named entities
49
+ const entityValues = [];
50
+ entities.each((entity) => {
51
+ entityValues.push(entity.out());
52
+ });
53
+ return entityValues;
54
+ }
55
+ /**
56
+ * Identify if an entity is a person
57
+ */
58
+ isPersonEntity(entity) {
59
+ // Basic heuristic for person names
60
+ const personIndicators = ['mr.', 'mrs.', 'ms.', 'dr.', 'prof.', 'jr.', 'sr.'];
61
+ const lowerEntity = entity.toLowerCase();
62
+ // Check if it's a capitalized name pattern
63
+ if (/^[A-Z][a-z]+/.test(entity) && !this.isCommonWord(entity)) {
64
+ return true;
65
+ }
66
+ // Check for person indicators
67
+ return personIndicators.some(indicator => lowerEntity.includes(indicator));
68
+ }
69
+ /**
70
+ * Identify if an entity is a place
71
+ */
72
+ isPlaceEntity(entity) {
73
+ const placeIndicators = [
74
+ 'city', 'town', 'state', 'country', 'street', 'avenue', 'road', 'building',
75
+ 'avenue', 'boulevard', 'lane', 'drive', 'court', 'place', 'plaza', 'square',
76
+ 'mountain', 'river', 'lake', 'ocean', 'sea', 'valley', 'canyon', 'park',
77
+ 'hotel', 'restaurant', 'store', 'mall', 'airport', 'station', 'port'
78
+ ];
79
+ return placeIndicators.some(indicator => entity.toLowerCase().includes(indicator.toLowerCase()));
80
+ }
81
+ /**
82
+ * Identify if an entity is a technical term
83
+ */
84
+ isTechnicalEntity(entity) {
85
+ const techTerms = [
86
+ 'node.js', 'typescript', 'javascript', 'api', 'database', 'function', 'class',
87
+ 'method', 'variable', 'algorithm', 'cozodb', 'electron', 'react', 'vite',
88
+ 'graphql', 'rest', 'json', 'xml', 'html', 'css', 'sql', 'nosql', 'mongodb',
89
+ 'postgresql', 'mysql', 'redis', 'docker', 'kubernetes', 'aws', 'azure', 'gcp',
90
+ 'glm', 'llama', 'model', 'tensor', 'vector', 'embedding', 'rag', 'ai', 'ml', 'dl'
91
+ ];
92
+ return techTerms.includes(entity.toLowerCase());
93
+ }
94
+ /**
95
+ * Identify if an entity is a date
96
+ */
97
+ isDateEntity(entity) {
98
+ // Check for date patterns
99
+ const dateRegex = /^(19|20)\d{2}$|^(0?[1-9]|1[0-2])[\/\-](0?[1-9]|[12]\d|3[01])|^(0?[1-9]|[12]\d|3[01])[\/\-](0?[1-9]|1[0-2])/;
100
+ if (dateRegex.test(entity))
101
+ return true;
102
+ // Check if it's a month name
103
+ const months = ['january', 'february', 'march', 'april', 'may', 'june',
104
+ 'july', 'august', 'september', 'october', 'november', 'december'];
105
+ return months.includes(entity.toLowerCase());
106
+ }
107
+ /**
108
+ * Classify entity type
109
+ */
110
+ classifyEntity(entity) {
111
+ if (this.isPersonEntity(entity))
112
+ return 'person';
113
+ if (this.isPlaceEntity(entity))
114
+ return 'place';
115
+ if (this.isTechnicalEntity(entity))
116
+ return 'technical';
117
+ if (this.isDateEntity(entity))
118
+ return 'date';
119
+ return 'concept';
120
+ }
121
+ /**
122
+ * Check if a word is common (non-entity)
123
+ */
124
+ isCommonWord(word) {
125
+ const commonWords = [
126
+ 'the', 'a', 'an', 'and', 'or', 'but', 'in', 'on', 'at', 'to', 'for',
127
+ 'of', 'with', 'by', 'is', 'are', 'was', 'were', 'be', 'been', 'being',
128
+ 'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'could',
129
+ 'should', 'may', 'might', 'must', 'can', 'shall', 'this', 'that', 'these', 'those',
130
+ 'i', 'you', 'he', 'she', 'it', 'we', 'they', 'me', 'him', 'her', 'us', 'them'
131
+ ];
132
+ return commonWords.includes(word.toLowerCase());
133
+ }
134
+ /**
135
+ * Check if text contains relationship indicators
136
+ */
137
+ hasRelationshipIndicators(text) {
138
+ const relationshipIndicators = [
139
+ 'and', 'with', 'met', 'told', 'said', 'spoke', 'visited',
140
+ 'called', 'texted', 'together', 'relationship', 'friend', 'partner',
141
+ 'love', 'missed', 'cared', 'knows', 'introduced', 'about', 'to'
142
+ ];
143
+ const lowerText = text.toLowerCase();
144
+ return relationshipIndicators.some(indicator => lowerText.includes(` ${indicator} `) ||
145
+ lowerText.startsWith(`${indicator} `) ||
146
+ lowerText.endsWith(` ${indicator}`) ||
147
+ lowerText.includes(`${indicator},`) ||
148
+ lowerText.includes(`${indicator}.`));
149
+ }
150
+ }
151
+ //# sourceMappingURL=nlp-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nlp-service.js","sourceRoot":"","sources":["../../../src/services/nlp/nlp-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Query Parser Service for ECE (Natural Language Query Processing)
3
+ *
4
+ * Provides utilities for parsing and expanding natural language queries
5
+ * to improve search effectiveness.
6
+ */
7
+ export declare function parseNaturalLanguage(query: string): string;
8
+ export declare function expandQuery(query: string): Promise<string[]>;
9
+ //# sourceMappingURL=query-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-parser.d.ts","sourceRoot":"","sources":["../../../src/services/nlp/query-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAe1D;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAIlE"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Query Parser Service for ECE (Natural Language Query Processing)
3
+ *
4
+ * Provides utilities for parsing and expanding natural language queries
5
+ * to improve search effectiveness.
6
+ */
7
+ const STOP_PHRASES = [
8
+ 'show me', 'what is', 'what are', 'can you find', 'search for', 'look for', 'find', 'display', 'list',
9
+ 'tell me about', 'give me', 'bring up', 'what do we know about', 'what can we see from', 'how about', 'describe', 'explain'
10
+ ];
11
+ export function parseNaturalLanguage(query) {
12
+ let cleaned = query.trim();
13
+ // Case insensitive removal of start phrases
14
+ // We sort by length descending to match longest phrases first
15
+ const sortedPhrases = [...STOP_PHRASES].sort((a, b) => b.length - a.length);
16
+ for (const phrase of sortedPhrases) {
17
+ const regex = new RegExp(`^${phrase}\\s+`, 'i');
18
+ if (regex.test(cleaned)) {
19
+ cleaned = cleaned.replace(regex, '');
20
+ }
21
+ }
22
+ return cleaned.trim();
23
+ }
24
+ export async function expandQuery(query) {
25
+ // Basic query expansion - could be enhanced with semantic expansion
26
+ // For now, just return empty array indicating no expansions
27
+ return [];
28
+ }
29
+ //# sourceMappingURL=query-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-parser.js","sourceRoot":"","sources":["../../../src/services/nlp/query-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,YAAY,GAAG;IACnB,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IACrG,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS;CAC5H,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE3B,4CAA4C;IAC5C,8DAA8D;IAC9D,MAAM,aAAa,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAE5E,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,MAAM,MAAM,EAAE,GAAG,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa;IAC7C,oEAAoE;IACpE,4DAA4D;IAC5D,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Anchor DataFrame - In-Memory Data Manipulation
3
+ *
4
+ * Provides a pandas-like interface for in-memory data operations
5
+ * Designed to work with query results from the Anchor system
6
+ */
7
+ export type DataFrameRow = Record<string, any>;
8
+ export interface GroupByResult {
9
+ [key: string]: DataFrameRow[];
10
+ }
11
+ export declare class DataFrame {
12
+ private data;
13
+ constructor(data?: DataFrameRow[]);
14
+ /**
15
+ * Create a DataFrame from query results
16
+ */
17
+ static from(data: DataFrameRow[]): DataFrame;
18
+ /**
19
+ * Get the number of rows in the DataFrame
20
+ */
21
+ get length(): number;
22
+ /**
23
+ * Get the column names in the DataFrame
24
+ */
25
+ get columns(): string[];
26
+ /**
27
+ * Select specific columns from the DataFrame
28
+ */
29
+ select(columnMap: Record<string, (row: DataFrameRow) => any>): DataFrame;
30
+ /**
31
+ * Filter rows based on a condition
32
+ */
33
+ filter(condition: (row: DataFrameRow) => boolean): DataFrame;
34
+ /**
35
+ * Transform columns using mapping functions
36
+ */
37
+ transform(transformations: Record<string, (row: DataFrameRow) => any>): DataFrame;
38
+ /**
39
+ * Sort the DataFrame by a specific column
40
+ */
41
+ sort(column: string, direction?: 'asc' | 'desc'): DataFrame;
42
+ /**
43
+ * Limit the number of rows in the DataFrame
44
+ */
45
+ head(n: number): DataFrame;
46
+ /**
47
+ * Skip the first n rows
48
+ */
49
+ tail(n: number): DataFrame;
50
+ /**
51
+ * Skip the first n rows
52
+ */
53
+ skip(n: number): DataFrame;
54
+ /**
55
+ * Group rows by a specific column
56
+ */
57
+ groupBy(column: string): GroupByResult;
58
+ /**
59
+ * Aggregate data by applying functions to groups
60
+ */
61
+ agg(aggregations: Record<string, (values: any[]) => any>): DataFrameRow[];
62
+ /**
63
+ * Get unique values for a specific column
64
+ */
65
+ unique(column: string): any[];
66
+ /**
67
+ * Count occurrences of each unique value in a column
68
+ */
69
+ valueCounts(column: string): Record<string, number>;
70
+ /**
71
+ * Apply a function to each row
72
+ */
73
+ map<T>(fn: (row: DataFrameRow, index: number) => T): T[];
74
+ /**
75
+ * Convert DataFrame to an array of objects
76
+ */
77
+ toArray(): DataFrameRow[];
78
+ /**
79
+ * Convert DataFrame to CSV format
80
+ */
81
+ toCSV(): string;
82
+ /**
83
+ * Convert DataFrame to JSON format
84
+ */
85
+ toJSON(): string;
86
+ /**
87
+ * Convert DataFrame to a formatted table string
88
+ */
89
+ toTable(): string;
90
+ /**
91
+ * Export DataFrame to a file
92
+ */
93
+ export(filename: string, format?: 'csv' | 'json' | 'yaml' | 'table'): Promise<void>;
94
+ }
95
+ //# sourceMappingURL=DataFrame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataFrame.d.ts","sourceRoot":"","sources":["../../../src/services/query-builder/DataFrame.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;CAC/B;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAiB;gBAEjB,IAAI,GAAE,YAAY,EAAO;IAIrC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,SAAS;IAI5C;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,EAAE,CAGtB;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,GAAG,CAAC,GAAG,SAAS;IAYxE;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,GAAG,SAAS;IAK5D;;OAEG;IACH,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,GAAG,CAAC,GAAG,SAAS;IAYjF;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,KAAK,GAAG,MAAc,GAAG,SAAS;IAmBlE;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS;IAK1B;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS;IAK1B;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS;IAK1B;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IActC;;OAEG;IACH,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,YAAY,EAAE;IAazE;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE;IAe7B;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAWnD;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE;IAIxD;;OAEG;IACH,OAAO,IAAI,YAAY,EAAE;IAIzB;;OAEG;IACH,KAAK,IAAI,MAAM;IA4Bf;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACH,OAAO,IAAI,MAAM;IAsCjB;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAiClG"}