@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,66 @@
1
+ /**
2
+ * Query Parser Module — "The Ears"
3
+ *
4
+ * NLP parsing, temporal extraction, query decomposition, and semantic expansion.
5
+ * Extracted from search.ts to isolate natural language understanding
6
+ * from the physics-based search core.
7
+ */
8
+ import { expandTerms as semanticExpand, isExpansionReady } from '@rbalchii/dse';
9
+ declare const nlp: import("wink-nlp").WinkMethods;
10
+ export { nlp, isExpansionReady, semanticExpand };
11
+ /**
12
+ * Fetch top tags from the system to ground the LLM's query expansion
13
+ */
14
+ export declare function getGlobalTags(limit?: number): Promise<string[]>;
15
+ /**
16
+ * Deterministic Query Expansion (No LLM)
17
+ * Scans the user query for known tags from the master list.
18
+ */
19
+ export declare function expandQuery(originalQuery: string): Promise<string[]>;
20
+ /**
21
+ * Helper to sanitize queries for FTS engine
22
+ */
23
+ export declare function sanitizeFtsQuery(query: string): string;
24
+ /**
25
+ * Expand camelCase and PascalCase identifiers into additional search terms.
26
+ * e.g. "findAnchors" → ["findAnchors", "find", "Anchors", "anchors"]
27
+ * Returned terms are de-duped and lowercased for FTS.
28
+ */
29
+ export declare function expandCamelCase(terms: string[]): string[];
30
+ /**
31
+ * Helper: Extract Temporal Context
32
+ * Detects "last X months/years", year ranges, and returns a list of relevant year tags.
33
+ */
34
+ export declare function extractTemporalContext(query: string): string[];
35
+ /**
36
+ * Natural Language Parser (Standard 070 - Enhanced)
37
+ * Uses NLP to extract "Meaningful Tags" including Temporal Context.
38
+ * Enhanced to handle conversational queries of any size.
39
+ */
40
+ export declare function parseNaturalLanguage(query: string): string;
41
+ /**
42
+ * Extract key terms from conversational queries
43
+ * Identifies important nouns, proper nouns, adjectives, and verbs while preserving context
44
+ */
45
+ export declare function extractKeyTermsFromConversation(conversation: string): string[];
46
+ /**
47
+ * Split a query into sentence-like chunks (molecules)
48
+ */
49
+ export declare function splitQueryIntoMolecules(query: string): string[];
50
+ export declare function parseQuery(query: string): {
51
+ phrases: string[];
52
+ temporal: string[];
53
+ buckets: string[];
54
+ keywords: string[];
55
+ };
56
+ /**
57
+ * Conversational Query Expansion (Standard 086)
58
+ * Expands natural language queries into semantic equivalents
59
+ */
60
+ export declare function expandConversationalQuery(query: string): string[];
61
+ /**
62
+ * Get related tags for a given query to provide semantic serendipity
63
+ * This function finds tags that are semantically related to the query terms
64
+ */
65
+ export declare function getRelatedTagsForQuery(query: string, maxTags?: number): Promise<string[]>;
66
+ //# sourceMappingURL=query-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-parser.d.ts","sourceRoot":"","sources":["../../../src/services/search/query-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,WAAW,IAAI,cAAc,EAAmB,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMjG,QAAA,MAAM,GAAG,gCAAc,CAAC;AAMxB,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAEjD;;GAEG;AACH,wBAAsB,aAAa,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoBzE;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqB1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAezD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAoD9D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsC1D;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAgC9E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAmC/D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;CAAE,CAgB3H;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BjE;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA6ClG"}
@@ -0,0 +1,346 @@
1
+ /**
2
+ * Query Parser Module — "The Ears"
3
+ *
4
+ * NLP parsing, temporal extraction, query decomposition, and semantic expansion.
5
+ * Extracted from search.ts to isolate natural language understanding
6
+ * from the physics-based search core.
7
+ */
8
+ import { db } from '../../core/db.js';
9
+ import { config } from '../../config/index.js';
10
+ import { expandTerms as semanticExpand, loadSynonymRing, isExpansionReady } from '@rbalchii/dse';
11
+ import wink from 'wink-nlp';
12
+ import model from 'wink-eng-lite-web-model';
13
+ import { getMasterTags } from '../tags/discovery.js';
14
+ // Initialize NLP (Fast CPU-based)
15
+ const nlp = wink(model);
16
+ // Initialize Semantic Expansion (Synonym Ring)
17
+ loadSynonymRing();
18
+ // Re-export NLP instance and expansion readiness for use by search orchestrator
19
+ export { nlp, isExpansionReady, semanticExpand };
20
+ /**
21
+ * Fetch top tags from the system to ground the LLM's query expansion
22
+ */
23
+ export async function getGlobalTags(limit = 50) {
24
+ try {
25
+ // Fetch unique tags from the tags table
26
+ const query = `
27
+ SELECT DISTINCT unnest(tags) as tag
28
+ FROM atoms
29
+ WHERE tags IS NOT NULL
30
+ LIMIT $1
31
+ `;
32
+ const result = await db.run(query, [limit * 10]); // Get more than needed for filtering
33
+ if (!result.rows)
34
+ return [];
35
+ const uniqueTags = result.rows
36
+ .map((r) => r.tag)
37
+ .filter((t) => typeof t === 'string' && t.length > 0);
38
+ return [...new Set(uniqueTags)].slice(0, limit);
39
+ }
40
+ catch (e) {
41
+ console.error('[Search] Failed to fetch global tags:', e);
42
+ return [];
43
+ }
44
+ }
45
+ /**
46
+ * Deterministic Query Expansion (No LLM)
47
+ * Scans the user query for known tags from the master list.
48
+ */
49
+ export async function expandQuery(originalQuery) {
50
+ try {
51
+ const globalTags = getMasterTags(); // This is synchronous file read
52
+ const queryLower = originalQuery.toLowerCase();
53
+ // Find tags specifically mentioned in the query or that substring match
54
+ // Simple heuristic: if query contains the tag, we boost it.
55
+ const foundTags = globalTags.filter(tag => {
56
+ const tagLower = tag.toLowerCase();
57
+ // Check for boundary matches or direct inclusion
58
+ return queryLower.includes(tagLower);
59
+ });
60
+ if (foundTags.length > 0) {
61
+ console.log(`[Search] Deterministically matched tags: ${foundTags.join(', ')}`);
62
+ }
63
+ return foundTags;
64
+ }
65
+ catch (e) {
66
+ console.error('[Search] Expansion failed:', e);
67
+ return [];
68
+ }
69
+ }
70
+ /**
71
+ * Helper to sanitize queries for FTS engine
72
+ */
73
+ export function sanitizeFtsQuery(query) {
74
+ return query
75
+ .replace(/[^a-zA-Z0-9\s]/g, ' ')
76
+ .replace(/\s+/g, ' ')
77
+ .trim()
78
+ .toLowerCase();
79
+ }
80
+ /**
81
+ * Expand camelCase and PascalCase identifiers into additional search terms.
82
+ * e.g. "findAnchors" → ["findAnchors", "find", "Anchors", "anchors"]
83
+ * Returned terms are de-duped and lowercased for FTS.
84
+ */
85
+ export function expandCamelCase(terms) {
86
+ const expanded = new Set();
87
+ for (const term of terms) {
88
+ expanded.add(term.toLowerCase());
89
+ // Split on camelCase/PascalCase boundaries
90
+ const parts = term
91
+ .replace(/([a-z])([A-Z])/g, '$1 $2') // camelCase → camel Case
92
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2') // acronym run: ABCDef → ABC Def
93
+ .split(/\s+/)
94
+ .filter(p => p.length > 1);
95
+ for (const p of parts) {
96
+ expanded.add(p.toLowerCase());
97
+ }
98
+ }
99
+ return Array.from(expanded);
100
+ }
101
+ /**
102
+ * Helper: Extract Temporal Context
103
+ * Detects "last X months/years", year ranges, and returns a list of relevant year tags.
104
+ */
105
+ export function extractTemporalContext(query) {
106
+ const now = new Date();
107
+ const currentYear = now.getFullYear();
108
+ const tags = new Set();
109
+ const MAX_TEMPORAL_AMOUNT = 100;
110
+ // Regex for "last X months/years"
111
+ const match = query.match(/last\s+(\d+)\s+(months?|years?|days?)/i);
112
+ if (match) {
113
+ let amount = parseInt(match[1]);
114
+ const unit = match[2].toLowerCase();
115
+ // Security: Cap the amount to prevent loop exhaustion DoS
116
+ if (amount > MAX_TEMPORAL_AMOUNT) {
117
+ amount = MAX_TEMPORAL_AMOUNT;
118
+ }
119
+ tags.add(currentYear.toString()); // Always include current year
120
+ if (unit.startsWith('year')) {
121
+ for (let i = 1; i <= amount; i++) {
122
+ tags.add((currentYear - i).toString());
123
+ }
124
+ }
125
+ else if (unit.startsWith('month')) {
126
+ // If subtracting months goes back to prev year
127
+ const pastDate = new Date(now);
128
+ pastDate.setMonth(now.getMonth() - amount);
129
+ const pastYear = pastDate.getFullYear();
130
+ if (pastYear < currentYear) {
131
+ for (let y = pastYear; y < currentYear; y++)
132
+ tags.add(y.toString());
133
+ }
134
+ }
135
+ }
136
+ // Detect year ranges like "from 2025 to 2026" or "between 2024 and 2025"
137
+ const rangeMatch = query.match(/\b(from|between)\s+(\d{4})\s+(to|and)\s+(\d{4})\b/i);
138
+ if (rangeMatch) {
139
+ const startYear = parseInt(rangeMatch[2]);
140
+ const endYear = parseInt(rangeMatch[4]);
141
+ // Add all years in the range
142
+ for (let year = Math.min(startYear, endYear); year <= Math.max(startYear, endYear); year++) {
143
+ tags.add(year.toString());
144
+ }
145
+ }
146
+ // Also detect explicit years (2020-2030)
147
+ const yearMatch = query.match(/\b(202[0-9]|203[0-9])\b/g);
148
+ if (yearMatch) {
149
+ yearMatch.forEach(y => tags.add(y));
150
+ }
151
+ return Array.from(tags);
152
+ }
153
+ /**
154
+ * Natural Language Parser (Standard 070 - Enhanced)
155
+ * Uses NLP to extract "Meaningful Tags" including Temporal Context.
156
+ * Enhanced to handle conversational queries of any size.
157
+ */
158
+ export function parseNaturalLanguage(query) {
159
+ // 1. Extract Temporal Context
160
+ const timeTags = extractTemporalContext(query);
161
+ // 2. Handle conversational queries by extracting key entities and concepts
162
+ // For very long queries, we want to identify the most important terms
163
+ const queryLength = query.trim().split(/\s+/).length;
164
+ let tokens = [];
165
+ if (queryLength > 10) {
166
+ // For longer conversational queries, use more sophisticated extraction
167
+ tokens = extractKeyTermsFromConversation(query);
168
+ }
169
+ else {
170
+ // For shorter queries, use the original approach
171
+ const doc = nlp.readDoc(query);
172
+ tokens = doc.tokens().filter((t) => {
173
+ const tag = t.out(nlp.its.pos);
174
+ const text = t.out().toLowerCase();
175
+ // Whitelist specific domain words that might get misclassified or filtered
176
+ // Uses Config-based whitelist or falls back to defaults
177
+ const whitelist = config.SEARCH?.whitelist || ['burnout', 'career', 'decision', 'pattern', 'impact'];
178
+ if (whitelist.some((w) => text.includes(w)))
179
+ return true;
180
+ return tag === 'NOUN' || tag === 'PROPN' || tag === 'ADJ' || tag === 'VERB';
181
+ }).out(nlp.its.text);
182
+ }
183
+ // Combine with temporal tags
184
+ const uniqueTokens = new Set([...tokens, ...timeTags]);
185
+ if (uniqueTokens.size > 0) {
186
+ return Array.from(uniqueTokens).join(' ').toLowerCase();
187
+ }
188
+ return sanitizeFtsQuery(query);
189
+ }
190
+ /**
191
+ * Extract key terms from conversational queries
192
+ * Identifies important nouns, proper nouns, adjectives, and verbs while preserving context
193
+ */
194
+ export function extractKeyTermsFromConversation(conversation) {
195
+ const doc = nlp.readDoc(conversation);
196
+ // Extract named entities (people, places, organizations)
197
+ const entities = doc.entities().out(nlp.its.normal);
198
+ // Extract important tokens (nouns, proper nouns, adjectives, verbs)
199
+ const importantTokens = doc.tokens().filter((t) => {
200
+ const tag = t.out(nlp.its.pos);
201
+ const text = t.out().toLowerCase();
202
+ // Include named entities
203
+ if (entities.includes(text))
204
+ return true;
205
+ // Include important POS tags
206
+ return tag === 'NOUN' || tag === 'PROPN' || tag === 'ADJ' || tag === 'VERB';
207
+ }).out(nlp.its.normal);
208
+ // Combine and deduplicate
209
+ const allTerms = [...new Set([...entities, ...importantTokens])];
210
+ // Filter out common stop words that might have slipped through
211
+ const stopWords = new Set([
212
+ 'the', 'a', 'an', 'and', 'or', 'but', 'in', 'on', 'at', 'to', 'for',
213
+ 'of', 'with', 'by', 'is', 'are', 'was', 'were', 'be', 'been', 'being',
214
+ 'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'could',
215
+ 'should', 'may', 'might', 'must', 'can', 'shall', 'this', 'that', 'these', 'those',
216
+ 'i', 'you', 'he', 'she', 'it', 'we', 'they', 'me', 'him', 'her', 'us', 'them',
217
+ 'what', 'which', 'who', 'when', 'where', 'why', 'how', 'whose', 'whom'
218
+ ]);
219
+ return allTerms.filter(term => !stopWords.has(term.toLowerCase()) && term.length > 2);
220
+ }
221
+ /**
222
+ * Split a query into sentence-like chunks (molecules)
223
+ */
224
+ export function splitQueryIntoMolecules(query) {
225
+ // First, clean the query of any extraneous characters or formatting
226
+ let cleanQuery = query.trim();
227
+ // Remove common prefixes/suffixes that might interfere with sentence detection
228
+ cleanQuery = cleanQuery.replace(/^[#\-\*\s]+|[#\-\*\s]+$/g, '').trim();
229
+ // Split by sentence endings first (periods, exclamation marks, question marks)
230
+ let sentences = cleanQuery.split(/(?<=[.!?])\s+/);
231
+ // If no sentence endings found, try to split by commas or other separators
232
+ if (sentences.length <= 1) {
233
+ sentences = cleanQuery.split(/(?<=[,;:])\s+/);
234
+ }
235
+ // If still no good splits, split by word count (about 10-15 words per chunk)
236
+ if (sentences.length <= 1) {
237
+ const words = cleanQuery.split(/\s+/);
238
+ const chunks = [];
239
+ const chunkSize = 15; // About 15 words per "molecule"
240
+ for (let i = 0; i < words.length; i += chunkSize) {
241
+ const chunk = words.slice(i, i + chunkSize).join(' ');
242
+ if (chunk.trim()) {
243
+ chunks.push(chunk);
244
+ }
245
+ }
246
+ return chunks.length > 0 ? chunks : [cleanQuery];
247
+ }
248
+ // Clean up the sentences
249
+ return sentences
250
+ .map(s => s.trim())
251
+ .filter(s => s.length > 0);
252
+ }
253
+ export function parseQuery(query) {
254
+ const result = { phrases: [], temporal: [], buckets: [], keywords: [] };
255
+ const phraseRegex = /"([^"]+)"/g;
256
+ let phraseMatch;
257
+ while ((phraseMatch = phraseRegex.exec(query)) !== null)
258
+ result.phrases.push(phraseMatch[1]);
259
+ let remainingQuery = query.replace(/"[^"]+"/g, '');
260
+ const temporalRegex = /@(\w+)/g;
261
+ let temporalMatch;
262
+ while ((temporalMatch = temporalRegex.exec(remainingQuery)) !== null)
263
+ result.temporal.push(temporalMatch[1]);
264
+ remainingQuery = remainingQuery.replace(/@\w+/g, '');
265
+ const bucketRegex = /#(\w+)/g;
266
+ let bucketMatch;
267
+ while ((bucketMatch = bucketRegex.exec(remainingQuery)) !== null)
268
+ result.buckets.push(bucketMatch[1]);
269
+ remainingQuery = remainingQuery.replace(/#\w+/g, '');
270
+ result.keywords = remainingQuery.split(/\s+/).filter(kw => kw.length > 0);
271
+ return result;
272
+ }
273
+ /**
274
+ * Conversational Query Expansion (Standard 086)
275
+ * Expands natural language queries into semantic equivalents
276
+ */
277
+ export function expandConversationalQuery(query) {
278
+ const expansions = [];
279
+ // Common conversational patterns
280
+ const patterns = [
281
+ { pattern: /what is the (latest|current|recent) (.+)/i, replacement: "$2" },
282
+ { pattern: /tell me about (.+)/i, replacement: "$1" },
283
+ { pattern: /how is (.+) doing/i, replacement: "$1" },
284
+ { pattern: /what's happening with (.+)/i, replacement: "$1" },
285
+ { pattern: /what do you know about (.+)/i, replacement: "$1" },
286
+ { pattern: /explain (.+)/i, replacement: "$1" },
287
+ { pattern: /describe (.+)/i, replacement: "$1" },
288
+ { pattern: /summarize (.+)/i, replacement: "$1" }
289
+ ];
290
+ for (const p of patterns) {
291
+ const match = query.match(p.pattern);
292
+ if (match) {
293
+ const expanded = query.replace(p.pattern, p.replacement).trim();
294
+ if (expanded && !expansions.includes(expanded)) {
295
+ expansions.push(expanded);
296
+ }
297
+ }
298
+ }
299
+ return expansions;
300
+ }
301
+ /**
302
+ * Get related tags for a given query to provide semantic serendipity
303
+ * This function finds tags that are semantically related to the query terms
304
+ */
305
+ export async function getRelatedTagsForQuery(query, maxTags = 5) {
306
+ try {
307
+ // Get all tags from the system
308
+ const allTags = await getGlobalTags(100); // Get top 100 tags
309
+ // Get the query terms to match against
310
+ const queryTerms = query.toLowerCase().split(/\s+/).filter(term => term.length > 0);
311
+ // If no query terms, return empty array
312
+ if (queryTerms.length === 0) {
313
+ return [];
314
+ }
315
+ // Find tags that are related to the query terms
316
+ const relatedTags = [];
317
+ for (const tag of allTags) {
318
+ if (typeof tag !== 'string')
319
+ continue;
320
+ const tagLower = tag.toLowerCase();
321
+ let score = 0;
322
+ // Increase score if tag contains or is similar to query terms
323
+ for (const term of queryTerms) {
324
+ if (tagLower.includes(term) || term.includes(tagLower)) {
325
+ score += 10; // Direct match gets high score
326
+ }
327
+ else if (tagLower.startsWith(term) || tagLower.endsWith(term)) {
328
+ score += 5; // Partial match gets medium score
329
+ }
330
+ // Additional heuristics could be added here
331
+ }
332
+ if (score > 0) {
333
+ relatedTags.push({ tag, score });
334
+ }
335
+ }
336
+ // Sort by score and return top tags
337
+ relatedTags.sort((a, b) => b.score - a.score);
338
+ return relatedTags.slice(0, maxTags).map(item => item.tag);
339
+ }
340
+ catch (error) {
341
+ console.error('[Search] Error getting related tags:', error);
342
+ // Return empty array if there's an error
343
+ return [];
344
+ }
345
+ }
346
+ //# sourceMappingURL=query-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-parser.js","sourceRoot":"","sources":["../../../src/services/search/query-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Search Utilities Module — "The Tools"
3
+ *
4
+ * Types, interfaces, Hamming distance calculation, result formatting,
5
+ * and display helpers used across the search subsystem.
6
+ * Extracted from search.ts for clean separation of concerns.
7
+ */
8
+ import { SemanticCategory } from '../../types/taxonomy.js';
9
+ /**
10
+ * Coalesced Snippet - Merged atoms from same file within proximity threshold
11
+ */
12
+ export interface CoalescedSnippet {
13
+ source: string;
14
+ compoundId: string;
15
+ startByte: number;
16
+ endByte: number;
17
+ timestamp: number;
18
+ content: string;
19
+ sourceAtoms: SearchResult[];
20
+ relevanceScore: number;
21
+ provenance: string;
22
+ tags: string[];
23
+ }
24
+ export interface SearchResult {
25
+ id: string;
26
+ content: string;
27
+ source: string;
28
+ timestamp: number;
29
+ buckets: string[];
30
+ tags: string[];
31
+ epochs: string;
32
+ provenance: string;
33
+ score: number;
34
+ sequence?: number;
35
+ molecular_signature?: string;
36
+ frequency?: number;
37
+ temporal_state?: {
38
+ first_seen: number;
39
+ last_seen: number;
40
+ occurrence_count: number;
41
+ timestamps: number[];
42
+ };
43
+ compound_id?: string;
44
+ start_byte?: number;
45
+ end_byte?: number;
46
+ type?: string;
47
+ numeric_value?: number;
48
+ numeric_unit?: string;
49
+ is_inflated?: boolean;
50
+ semanticCategories?: SemanticCategory[];
51
+ relatedEntities?: string[];
52
+ temporal_weight?: number;
53
+ decay_factor?: number;
54
+ simhash_distance?: number;
55
+ structural_similarity?: number;
56
+ association_path?: string[];
57
+ retrieved_at?: number;
58
+ }
59
+ /**
60
+ * Helper: Calculate Hamming Distance between two hex strings
61
+ * Uses the native module or fallback if available
62
+ */
63
+ export declare function getHammingDistance(hashA: string, hashB: string): number;
64
+ /**
65
+ * Helper: safely extract array from possibly undefined input
66
+ */
67
+ export declare function getItems(input: string[] | undefined): string[];
68
+ /**
69
+ * Coalesce atoms by proximity - merges nearby atoms from same source file
70
+ * into coherent snippets for better LLM consumption
71
+ *
72
+ * @param results - Search results to coalesce
73
+ * @param proximityThreshold - Bytes within which to merge atoms (default 500)
74
+ * @returns Coalesced snippets with expanded content
75
+ */
76
+ export declare function coalesceByProximity(results: SearchResult[], proximityThreshold?: number, maxSnippets?: number): Promise<CoalescedSnippet[]>;
77
+ /**
78
+ * Format search results within character budget
79
+ * Uses molecular coordinates (start_byte/end_byte) for precise content slicing
80
+ *
81
+ * Features:
82
+ * - Coalesces nearby atoms into coherent snippets (500-1000 chars)
83
+ * - Adds metadata headers with file, range, timestamp, atom count
84
+ * - Sorts chronologically for causal narrative
85
+ * - Wraps in XML with relevance scores for LLM prioritization
86
+ */
87
+ export declare function formatResults(results: SearchResult[], maxChars: number, options?: {
88
+ enableCoalescing?: boolean;
89
+ proximityThreshold?: number;
90
+ }): Promise<{
91
+ context: string;
92
+ results: SearchResult[];
93
+ toAgentString: () => string;
94
+ metadata?: any;
95
+ }>;
96
+ /**
97
+ * Helper to filter tags for display (User Request: Hide Year Numbers)
98
+ */
99
+ export declare function filterDisplayTags(tags: string[]): string[];
100
+ //# sourceMappingURL=search-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-utils.d.ts","sourceRoot":"","sources":["../../../src/services/search/search-utils.ts"],"names":[],"mappings":"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"}