@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,266 @@
1
+ /**
2
+ * Adaptive Concurrency Utility
3
+ *
4
+ * Automatically switches between sequential and parallel processing
5
+ * based on available system memory. Optimized for:
6
+ * - Low-memory environments (Termux/Android): Sequential processing
7
+ * - High-memory systems (64GB laptops): Parallel processing
8
+ *
9
+ * Standards: 132 - Adaptive Concurrency Control
10
+ */
11
+ import os from 'os';
12
+ import * as fs from 'fs';
13
+ import * as path from 'path';
14
+ import { fileURLToPath } from 'url';
15
+ const __filename = fileURLToPath(import.meta.url);
16
+ const __dirname = path.dirname(__filename);
17
+ const USER_SETTINGS_PATH = path.join(__dirname, '..', '..', 'user_settings.json');
18
+ // In-memory cache for settings
19
+ let cachedSettings = null;
20
+ let settingsLastRead = 0;
21
+ const SETTINGS_CACHE_MS = 5000; // Cache for 5 seconds
22
+ /**
23
+ * Load adaptive concurrency settings from user_settings.json
24
+ * Falls back to environment variables, then defaults
25
+ */
26
+ function loadUserSettings() {
27
+ const now = Date.now();
28
+ // Return cached settings if still valid
29
+ if (cachedSettings && (now - settingsLastRead) < SETTINGS_CACHE_MS) {
30
+ return cachedSettings;
31
+ }
32
+ try {
33
+ if (fs.existsSync(USER_SETTINGS_PATH)) {
34
+ const content = fs.readFileSync(USER_SETTINGS_PATH, 'utf-8');
35
+ const settings = JSON.parse(content);
36
+ cachedSettings = settings.adaptive_concurrency || {};
37
+ settingsLastRead = now;
38
+ return cachedSettings;
39
+ }
40
+ }
41
+ catch (error) {
42
+ console.warn('[AdaptiveConcurrency] Failed to load user_settings.json:', error);
43
+ }
44
+ return {};
45
+ }
46
+ /**
47
+ * Get environment setting from user_settings.json
48
+ * 'auto' | 'low_memory' | 'high_memory'
49
+ */
50
+ function getEnvironmentMode() {
51
+ const settings = loadUserSettings();
52
+ const mode = settings.environment || process.env.ANCHOR_CONCURRENCY_ENV;
53
+ if (mode === 'low_memory' || mode === 'high_memory' || mode === 'auto') {
54
+ return mode;
55
+ }
56
+ return 'auto';
57
+ }
58
+ /**
59
+ * Get current system memory information
60
+ */
61
+ export function getSystemMemoryInfo(config) {
62
+ const totalBytes = os.totalmem();
63
+ const freeBytes = os.freemem();
64
+ const usedBytes = totalBytes - freeBytes;
65
+ const totalMB = Math.floor(totalBytes / 1024 / 1024);
66
+ const freeMB = Math.floor(freeBytes / 1024 / 1024);
67
+ const usedMB = Math.floor(usedBytes / 1024 / 1024);
68
+ const usagePercent = Math.round((usedBytes / totalBytes) * 100);
69
+ const thresholds = getThresholds(config);
70
+ return {
71
+ totalMB,
72
+ freeMB,
73
+ usedMB,
74
+ usagePercent,
75
+ isLowMemory: freeMB < thresholds.sequentialThresholdMB,
76
+ isHighMemory: freeMB > thresholds.parallelThresholdMB
77
+ };
78
+ }
79
+ /**
80
+ * Get configured thresholds with user_settings.json and environment overrides
81
+ * Priority: config param > user_settings.json > environment variables > defaults
82
+ */
83
+ function getThresholds(config) {
84
+ const userSettings = loadUserSettings();
85
+ const environmentMode = getEnvironmentMode();
86
+ // Environment variable overrides (highest priority after config param)
87
+ const envSequential = process.env.ANCHOR_SEQUENTIAL_THRESHOLD_MB;
88
+ const envParallel = process.env.ANCHOR_PARALLEL_THRESHOLD_MB;
89
+ const envMaxConcurrency = process.env.ANCHOR_MAX_CONCURRENCY;
90
+ const envForceSequential = process.env.ANCHOR_FORCE_SEQUENTIAL;
91
+ const envForceParallel = process.env.ANCHOR_FORCE_PARALLEL;
92
+ // Determine force flags based on environment mode from user_settings.json
93
+ let forceSequential = config?.forceSequential ?? false;
94
+ let forceParallel = config?.forceParallel ?? false;
95
+ if (environmentMode === 'low_memory') {
96
+ forceSequential = true;
97
+ forceParallel = false;
98
+ }
99
+ else if (environmentMode === 'high_memory') {
100
+ forceSequential = false;
101
+ forceParallel = true;
102
+ }
103
+ // Environment variables can override user_settings.json
104
+ if (envForceSequential === 'true')
105
+ forceSequential = true;
106
+ if (envForceParallel === 'true')
107
+ forceParallel = true;
108
+ return {
109
+ sequentialThresholdMB: config?.sequentialThresholdMB ??
110
+ (envSequential ? parseInt(envSequential, 10) :
111
+ (userSettings.sequential_threshold_mb ?? 2048)),
112
+ parallelThresholdMB: config?.parallelThresholdMB ??
113
+ (envParallel ? parseInt(envParallel, 10) :
114
+ (userSettings.parallel_threshold_mb ?? 8192)),
115
+ maxConcurrency: config?.maxConcurrency ??
116
+ (envMaxConcurrency ? parseInt(envMaxConcurrency, 10) :
117
+ (userSettings.max_concurrency ?? 5)),
118
+ lowMemoryBatchSize: config?.lowMemoryBatchSize ??
119
+ (userSettings.low_memory_batch_size ?? 1),
120
+ highMemoryBatchSize: config?.highMemoryBatchSize ??
121
+ (userSettings.high_memory_batch_size ?? 20),
122
+ forceSequential,
123
+ forceParallel,
124
+ environmentMode
125
+ };
126
+ }
127
+ /**
128
+ * Determine if we should use sequential processing
129
+ */
130
+ export function shouldUseSequential(config) {
131
+ const thresholds = getThresholds(config);
132
+ // Force flags take precedence
133
+ if (thresholds.forceSequential)
134
+ return true;
135
+ if (thresholds.forceParallel)
136
+ return false;
137
+ // Auto-detect based on memory
138
+ const memory = getSystemMemoryInfo(config);
139
+ return memory.isLowMemory;
140
+ }
141
+ /**
142
+ * Get the optimal batch size for current memory conditions
143
+ */
144
+ export function getOptimalBatchSize(config) {
145
+ const thresholds = getThresholds(config);
146
+ const memory = getSystemMemoryInfo(config);
147
+ if (thresholds.forceSequential || memory.isLowMemory) {
148
+ return config?.lowMemoryBatchSize ?? thresholds.lowMemoryBatchSize ?? 1;
149
+ }
150
+ if (memory.isHighMemory) {
151
+ return config?.highMemoryBatchSize ?? thresholds.highMemoryBatchSize ?? 20;
152
+ }
153
+ // Adaptive: scale between low and high based on available memory
154
+ const ratio = (memory.freeMB - thresholds.sequentialThresholdMB) /
155
+ (thresholds.parallelThresholdMB - thresholds.sequentialThresholdMB);
156
+ const lowSize = config?.lowMemoryBatchSize ?? thresholds.lowMemoryBatchSize ?? 1;
157
+ const highSize = config?.highMemoryBatchSize ?? thresholds.highMemoryBatchSize ?? 20;
158
+ return Math.floor(lowSize + (highSize - lowSize) * Math.min(ratio, 1));
159
+ }
160
+ /**
161
+ * Get the optimal concurrency level for current memory conditions
162
+ */
163
+ export function getOptimalConcurrency(config) {
164
+ const thresholds = getThresholds(config);
165
+ const memory = getSystemMemoryInfo(config);
166
+ if (thresholds.forceSequential || memory.isLowMemory) {
167
+ return 1; // Sequential
168
+ }
169
+ if (memory.isHighMemory) {
170
+ // Use CPU count for high-memory systems, but cap at 16
171
+ return Math.min(os.cpus().length, 16);
172
+ }
173
+ // Adaptive: use configured max concurrency for mid-range systems
174
+ return thresholds.maxConcurrency;
175
+ }
176
+ /**
177
+ * Process an array of items with adaptive concurrency
178
+ * Automatically switches between sequential and parallel based on memory
179
+ */
180
+ export async function processWithAdaptiveConcurrency(items, processor, config) {
181
+ const results = [];
182
+ const concurrency = getOptimalConcurrency(config);
183
+ const batchSize = getOptimalBatchSize(config);
184
+ // Log mode for debugging
185
+ const memory = getSystemMemoryInfo(config);
186
+ console.log(`[AdaptiveConcurrency] Mode: ${concurrency === 1 ? 'SEQUENTIAL' : `PARALLEL(${concurrency})`}, ` +
187
+ `Batch: ${batchSize}, FreeMem: ${memory.freeMB}MB`);
188
+ if (concurrency === 1) {
189
+ // Sequential processing - memory safe
190
+ for (let i = 0; i < items.length; i++) {
191
+ const result = await processor(items[i], i);
192
+ results.push(result);
193
+ // Periodic GC hint for low-memory environments
194
+ if ((i + 1) % batchSize === 0 && global.gc) {
195
+ global.gc();
196
+ }
197
+ }
198
+ }
199
+ else {
200
+ // Parallel processing with controlled concurrency
201
+ for (let i = 0; i < items.length; i += batchSize) {
202
+ const batch = items.slice(i, i + batchSize);
203
+ const batchPromises = batch.map((item, batchIndex) => processor(item, i + batchIndex));
204
+ const batchResults = await Promise.all(batchPromises);
205
+ results.push(...batchResults);
206
+ // Optional GC between batches on mid-range systems
207
+ if (global.gc && !memory.isHighMemory) {
208
+ global.gc();
209
+ }
210
+ }
211
+ }
212
+ return results;
213
+ }
214
+ /**
215
+ * Process items in batches with automatic memory management
216
+ * Always uses sequential processing within batches for memory safety
217
+ */
218
+ export async function processInBatches(items, processor, batchSize = getOptimalBatchSize()) {
219
+ const results = [];
220
+ for (let i = 0; i < items.length; i += batchSize) {
221
+ const batch = items.slice(i, i + batchSize);
222
+ // Process batch sequentially for memory safety
223
+ for (let j = 0; j < batch.length; j++) {
224
+ const result = await processor(batch[j], i + j);
225
+ results.push(result);
226
+ }
227
+ // GC hint after each batch
228
+ if (global.gc) {
229
+ global.gc();
230
+ }
231
+ }
232
+ return results;
233
+ }
234
+ /**
235
+ * Get a summary of current concurrency settings for logging
236
+ */
237
+ export function getConcurrencySummary(config) {
238
+ const memory = getSystemMemoryInfo(config);
239
+ const concurrency = getOptimalConcurrency(config);
240
+ const batchSize = getOptimalBatchSize(config);
241
+ const thresholds = getThresholds(config);
242
+ const mode = concurrency === 1 ? 'SEQUENTIAL' : 'PARALLEL';
243
+ const envMode = thresholds.environmentMode;
244
+ return `[AdaptiveConcurrency] ${mode} mode (env=${envMode}): concurrency=${concurrency}, batch=${batchSize}, ` +
245
+ `freeMem=${memory.freeMB}MB/${memory.totalMB}MB (${memory.usagePercent}% used)`;
246
+ }
247
+ /**
248
+ * Get current environment mode setting
249
+ * Useful for UI display
250
+ */
251
+ export function getCurrentEnvironmentMode() {
252
+ return getEnvironmentMode();
253
+ }
254
+ // Export default configuration for easy importing
255
+ export const AdaptiveConcurrency = {
256
+ getSystemMemoryInfo,
257
+ shouldUseSequential,
258
+ getOptimalBatchSize,
259
+ getOptimalConcurrency,
260
+ processWithAdaptiveConcurrency,
261
+ processInBatches,
262
+ getConcurrencySummary,
263
+ getCurrentEnvironmentMode
264
+ };
265
+ export default AdaptiveConcurrency;
266
+ //# sourceMappingURL=adaptive-concurrency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adaptive-concurrency.js","sourceRoot":"","sources":["../../src/utils/adaptive-concurrency.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function extractDateFromContent(text: string): number | null;
2
+ //# sourceMappingURL=date_extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date_extractor.d.ts","sourceRoot":"","sources":["../../src/utils/date_extractor.ts"],"names":[],"mappings":"AAMA,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA2BlE"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Date Extraction Utility
3
+ * Extracts timestamps from text content or filenames using regex patterns.
4
+ */
5
+ import { config } from '../config/index.js';
6
+ export function extractDateFromContent(text) {
7
+ // Limit scope to header for performance (first chars based on config)
8
+ const scanText = text.length > config.LIMITS.DATE_EXTRACTOR_SCAN_LIMIT ? text.substring(0, config.LIMITS.DATE_EXTRACTOR_SCAN_LIMIT) : text;
9
+ // Patterns
10
+ const patterns = [
11
+ // ISO 8601: 2025-01-24 or 2025/01/24
12
+ /\b(\d{4})[-/](\d{1,2})[-/](\d{1,2})\b/,
13
+ // US: 01/24/2025
14
+ /\b(\d{1,2})[-/](\d{1,2})[-/](\d{4})\b/,
15
+ // Text: Jan 24, 2025 or January 24th, 2025
16
+ /\b(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[a-z]*\s+(\d{1,2})(?:st|nd|rd|th)?,\s+(\d{4})\b/i
17
+ ];
18
+ for (const pattern of patterns) {
19
+ const match = scanText.match(pattern);
20
+ if (match) {
21
+ // Validate date
22
+ // Remove ordinal suffixes (st, nd, rd, th) before parsing to support "January 1st, 2025"
23
+ const cleanDateStr = match[0].replace(/(\d+)(st|nd|rd|th)/i, '$1');
24
+ const parsed = Date.parse(cleanDateStr);
25
+ if (!isNaN(parsed)) {
26
+ return parsed;
27
+ }
28
+ }
29
+ }
30
+ return null;
31
+ }
32
+ //# sourceMappingURL=date_extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date_extractor.js","sourceRoot":"","sources":["../../src/utils/date_extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,UAAU,sBAAsB,CAAC,IAAY;IAC/C,sEAAsE;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3I,WAAW;IACX,MAAM,QAAQ,GAAG;QACb,qCAAqC;QACrC,uCAAuC;QACvC,iBAAiB;QACjB,uCAAuC;QACvC,2CAA2C;QAC3C,qGAAqG;KACxG,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE,CAAC;YACR,gBAAgB;YAChB,yFAAyF;YACzF,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjB,OAAO,MAAM,CAAC;YAClB,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Enhanced Native Module Manager for ECE
3
+ *
4
+ * Implements improved error handling and fallback mechanisms for native modules
5
+ * following Standard 074: Native Module Acceleration guidelines
6
+ */
7
+ export interface NativeModuleStatus {
8
+ loaded: boolean;
9
+ moduleName: string;
10
+ platform: string;
11
+ architecture: string;
12
+ error?: string;
13
+ fallbackActive: boolean;
14
+ }
15
+ export declare class NativeModuleManager {
16
+ private static instance;
17
+ private modules;
18
+ private status;
19
+ private constructor();
20
+ static getInstance(): NativeModuleManager;
21
+ /**
22
+ * Load a native module with comprehensive error handling and fallbacks
23
+ */
24
+ loadNativeModule(moduleName: string, binaryName: string): any;
25
+ /**
26
+ * Determine if we should use fallback only for a particular module
27
+ * This could be based on previous crashes or configuration
28
+ */
29
+ private shouldUseFallbackOnly;
30
+ /**
31
+ * Create a fallback implementation for when native modules fail
32
+ */
33
+ private createFallbackModule;
34
+ /**
35
+ * Get the status of a loaded native module
36
+ */
37
+ getStatus(moduleName: string): NativeModuleStatus | undefined;
38
+ /**
39
+ * Check if a module is using fallback implementation
40
+ */
41
+ isUsingFallback(moduleName: string): boolean;
42
+ /**
43
+ * Get all loaded modules status
44
+ */
45
+ getAllStatus(): Map<string, NativeModuleStatus>;
46
+ }
47
+ export declare const nativeModuleManager: NativeModuleManager;
48
+ //# sourceMappingURL=native-module-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-module-manager.d.ts","sourceRoot":"","sources":["../../src/utils/native-module-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,MAAM,CAA8C;IAE5D,OAAO;WAEO,WAAW,IAAI,mBAAmB;IAOhD;;OAEG;IACI,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG;IAmGpE;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4H5B;;OAEG;IACI,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIpE;;OAEG;IACI,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAKnD;;OAEG;IACI,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;CAGvD;AAGD,eAAO,MAAM,mBAAmB,qBAAoC,CAAC"}
@@ -0,0 +1,265 @@
1
+ /**
2
+ * Enhanced Native Module Manager for ECE
3
+ *
4
+ * Implements improved error handling and fallback mechanisms for native modules
5
+ * following Standard 074: Native Module Acceleration guidelines
6
+ */
7
+ import { pathManager } from './path-manager.js';
8
+ import { createRequire } from 'module';
9
+ import * as path from 'path';
10
+ import { fileURLToPath } from 'url';
11
+ const __filename = fileURLToPath(import.meta.url);
12
+ const __dirname = path.dirname(__filename);
13
+ const require = createRequire(import.meta.url);
14
+ export class NativeModuleManager {
15
+ static instance;
16
+ modules = new Map();
17
+ status = new Map();
18
+ constructor() { }
19
+ static getInstance() {
20
+ if (!NativeModuleManager.instance) {
21
+ NativeModuleManager.instance = new NativeModuleManager();
22
+ }
23
+ return NativeModuleManager.instance;
24
+ }
25
+ /**
26
+ * Load a native module with comprehensive error handling and fallbacks
27
+ */
28
+ loadNativeModule(moduleName, binaryName) {
29
+ if (this.modules.has(moduleName)) {
30
+ const existingModule = this.modules.get(moduleName);
31
+ // Check if we previously marked this module as problematic
32
+ const status = this.status.get(moduleName);
33
+ if (status && status.fallbackActive) {
34
+ console.log(`[NativeModuleManager] Returning cached fallback for ${moduleName}`);
35
+ return existingModule;
36
+ }
37
+ return existingModule;
38
+ }
39
+ let nativeModule = null;
40
+ let fallbackActive = false;
41
+ let errorMessage;
42
+ // Check if we should skip native module loading entirely for safety
43
+ // This could be based on a config or previous crash detection
44
+ const shouldUseFallbackOnly = this.shouldUseFallbackOnly(moduleName);
45
+ if (shouldUseFallbackOnly) {
46
+ console.log(`[NativeModuleManager] Skipping native module ${moduleName} due to safety mode`);
47
+ fallbackActive = true;
48
+ nativeModule = this.createFallbackModule(moduleName);
49
+ }
50
+ else {
51
+ try {
52
+ // 1. Try standard path resolution
53
+ const nativePath = pathManager.getNativePath(binaryName);
54
+ if (require && typeof require === 'function') {
55
+ nativeModule = require(nativePath);
56
+ console.log(`[NativeModuleManager] Successfully loaded ${moduleName} from: ${nativePath}`);
57
+ // Perform a quick safety test to make sure the module doesn't crash
58
+ if (moduleName === 'ece_native' && nativeModule && typeof nativeModule.distance === 'function') {
59
+ try {
60
+ // Quick test with safe values
61
+ const testResult = nativeModule.distance(BigInt(1), BigInt(2));
62
+ if (typeof testResult !== 'number') {
63
+ throw new Error('Native distance function returned unexpected type');
64
+ }
65
+ console.log(`[NativeModuleManager] Native module ${moduleName} passed safety test`);
66
+ }
67
+ catch (testError) {
68
+ console.error(`[NativeModuleManager] Native module ${moduleName} failed safety test:`, testError);
69
+ fallbackActive = true;
70
+ nativeModule = this.createFallbackModule(moduleName);
71
+ }
72
+ }
73
+ }
74
+ else {
75
+ throw new Error('Require function not available');
76
+ }
77
+ }
78
+ catch (e1) {
79
+ console.warn(`[NativeModuleManager] Standard load failed for ${moduleName}:`, e1.message);
80
+ // 2. Try alternative paths (debug builds, etc.)
81
+ try {
82
+ const debugPath = pathManager.getNativePath(binaryName).replace('Release', 'Debug');
83
+ nativeModule = require(debugPath);
84
+ console.log(`[NativeModuleManager] Loaded ${moduleName} from debug build: ${debugPath}`);
85
+ }
86
+ catch (e2) {
87
+ console.warn(`[NativeModuleManager] Debug load failed for ${moduleName}:`, e2.message);
88
+ // 3. Try development fallback path
89
+ try {
90
+ const devPath = path.resolve(__dirname, `../../build/Release/${binaryName}`);
91
+ nativeModule = require(devPath);
92
+ console.log(`[NativeModuleManager] Loaded ${moduleName} from dev path: ${devPath}`);
93
+ }
94
+ catch (e3) {
95
+ console.warn(`[NativeModuleManager] Dev path load failed for ${moduleName}:`, e3.message);
96
+ // 4. Activate fallback implementation
97
+ fallbackActive = true;
98
+ errorMessage = `Native module ${moduleName} failed to load: ${e3.message}`;
99
+ console.warn(`[NativeModuleManager] Activating fallback for ${moduleName}`);
100
+ // Return a fallback object with the same interface as the native module
101
+ nativeModule = this.createFallbackModule(moduleName);
102
+ }
103
+ }
104
+ }
105
+ }
106
+ // Store module and status
107
+ this.modules.set(moduleName, nativeModule);
108
+ const status = {
109
+ loaded: nativeModule !== null,
110
+ moduleName,
111
+ platform: process.platform,
112
+ architecture: process.arch,
113
+ fallbackActive,
114
+ error: errorMessage
115
+ };
116
+ this.status.set(moduleName, status);
117
+ return nativeModule;
118
+ }
119
+ /**
120
+ * Determine if we should use fallback only for a particular module
121
+ * This could be based on previous crashes or configuration
122
+ */
123
+ shouldUseFallbackOnly(moduleName) {
124
+ // For stability, force fallback for ece_native to prevent crashes
125
+ // This addresses the ECONNRESET issue caused by native module segfaults
126
+ if (moduleName === 'ece_native') {
127
+ console.log(`[NativeModuleManager] Forcing fallback for ${moduleName} to prevent crashes`);
128
+ return true;
129
+ }
130
+ // For now, we'll return false for other modules, but this could be enhanced to check
131
+ // for crash history or user configuration
132
+ return false;
133
+ }
134
+ /**
135
+ * Create a fallback implementation for when native modules fail
136
+ */
137
+ createFallbackModule(moduleName) {
138
+ switch (moduleName) {
139
+ case 'ece_native':
140
+ return {
141
+ // Fallback implementations for native functions
142
+ cleanse: (input) => {
143
+ // Simple fallback for Key Assassin functionality
144
+ let clean = input;
145
+ // Recursive un-escape (JS fallback)
146
+ let pass = 0;
147
+ while (clean.includes('\\') && pass < 3) {
148
+ pass++;
149
+ clean = clean.replace(/\\"/g, '"');
150
+ clean = clean.replace(/\\n/g, '\n');
151
+ clean = clean.replace(/\\t/g, '\t');
152
+ }
153
+ // Remove common metadata keys
154
+ clean = clean.replace(/"type"\s*:\s*"[^"]*",?/g, '');
155
+ clean = clean.replace(/"timestamp"\s*:\s*"[^"]*",?/g, '');
156
+ clean = clean.replace(/"source"\s*:\s*"[^"]*",?/g, '');
157
+ clean = clean.replace(/"response_content"\s*:\s*/g, '');
158
+ clean = clean.replace(/"thinking_content"\s*:\s*/g, '');
159
+ // Slash compression
160
+ clean = clean.replace(/\\{2,}/g, '/');
161
+ return clean;
162
+ },
163
+ atomize: (input, strategy) => {
164
+ // Simple fallback for atomization
165
+ if (strategy === 'code') {
166
+ // Split by top-level code blocks
167
+ return input.split(/(?=^\s*[a-z_][^{]*\{)/m).filter(s => s.trim().length > 0);
168
+ }
169
+ else {
170
+ // Split by paragraphs for prose
171
+ return input.split(/\n\s*\n/).filter(s => s.trim().length > 0);
172
+ }
173
+ },
174
+ fingerprint: (input) => {
175
+ // Robust JS Fallback for SimHash (Standard 074)
176
+ // Implementation: 2-gram Shingling + Jenkins Hash + 64-bit Vector
177
+ const tokens = input.toLowerCase().split(/\s+/);
178
+ const shingles = [];
179
+ // Generate 2-shingles (overlapping pairs)
180
+ if (tokens.length < 2) {
181
+ shingles.push(tokens[0] || "");
182
+ }
183
+ else {
184
+ for (let i = 0; i < tokens.length - 1; i++) {
185
+ shingles.push(`${tokens[i]} ${tokens[i + 1]}`);
186
+ }
187
+ }
188
+ const v = new Int32Array(64).fill(0);
189
+ for (const shingle of shingles) {
190
+ // Jenkins One-at-a-Time Hash for the shingle
191
+ let hash = 0;
192
+ for (let i = 0; i < shingle.length; i++) {
193
+ hash += shingle.charCodeAt(i);
194
+ hash += (hash << 10);
195
+ hash ^= (hash >>> 6);
196
+ }
197
+ hash += (hash << 3);
198
+ hash ^= (hash >>> 11);
199
+ hash += (hash << 15);
200
+ // Update vector
201
+ // We use the 32-bit hash twice to simulate 64 bits or just map 32 bits?
202
+ // For valid similarity with C++ implementation (usually MD5 or similar), we should try to match.
203
+ // But for fallback within JS-only scope, self-consistency is enough.
204
+ // Let's stick to 64-bit mapping of the 32-bit hash for simplicity or mix it.
205
+ // Simple expansion to 64 positions
206
+ for (let i = 0; i < 64; i++) {
207
+ const bit = (i < 32) ? ((hash >> i) & 1) : ((hash >> (i - 32)) & 1); // Mirror
208
+ v[i] += bit ? 1 : -1;
209
+ }
210
+ }
211
+ // Collapse to 64-bit integer
212
+ let fingerprint = 0n;
213
+ for (let i = 0; i < 64; i++) {
214
+ if (v[i] > 0) {
215
+ fingerprint |= (1n << BigInt(i));
216
+ }
217
+ }
218
+ return fingerprint;
219
+ },
220
+ distance: (a, b) => {
221
+ // Hamming Distance
222
+ const xor = a ^ b;
223
+ let count = 0;
224
+ // Kernighan's Algorithm for bit counting with safety limit
225
+ let n = xor;
226
+ const MAX_BITS = 64; // Maximum possible bits for our fingerprint
227
+ while (n > 0n && count < MAX_BITS) {
228
+ n &= (n - 1n);
229
+ count++;
230
+ }
231
+ // Safety check in case of unexpected behavior
232
+ if (count >= MAX_BITS) {
233
+ console.warn('[NativeModuleManager] Hamming distance reached maximum bit count, returning 64');
234
+ return 64;
235
+ }
236
+ return count;
237
+ }
238
+ };
239
+ default:
240
+ return null;
241
+ }
242
+ }
243
+ /**
244
+ * Get the status of a loaded native module
245
+ */
246
+ getStatus(moduleName) {
247
+ return this.status.get(moduleName);
248
+ }
249
+ /**
250
+ * Check if a module is using fallback implementation
251
+ */
252
+ isUsingFallback(moduleName) {
253
+ const status = this.getStatus(moduleName);
254
+ return status ? status.fallbackActive : false;
255
+ }
256
+ /**
257
+ * Get all loaded modules status
258
+ */
259
+ getAllStatus() {
260
+ return new Map(this.status);
261
+ }
262
+ }
263
+ // Export singleton instance
264
+ export const nativeModuleManager = NativeModuleManager.getInstance();
265
+ //# sourceMappingURL=native-module-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-module-manager.js","sourceRoot":"","sources":["../../src/utils/native-module-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAW/C,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAC,QAAQ,CAAsB;IACrC,OAAO,GAAqB,IAAI,GAAG,EAAE,CAAC;IACtC,MAAM,GAAoC,IAAI,GAAG,EAAE,CAAC;IAE5D,gBAAwB,CAAC;IAElB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YAClC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3D,CAAC;QACD,OAAO,mBAAmB,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,UAAkB,EAAE,UAAkB;QAC5D,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACpD,2DAA2D;YAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,uDAAuD,UAAU,EAAE,CAAC,CAAC;gBACjF,OAAO,cAAc,CAAC;YACxB,CAAC;YACD,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,IAAI,YAAY,GAAQ,IAAI,CAAC;QAC7B,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,YAAgC,CAAC;QAErC,oEAAoE;QACpE,8DAA8D;QAC9D,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAErE,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,gDAAgD,UAAU,qBAAqB,CAAC,CAAC;YAC7F,cAAc,GAAG,IAAI,CAAC;YACtB,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,kCAAkC;gBAClC,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAEzD,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;oBAC7C,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,6CAA6C,UAAU,UAAU,UAAU,EAAE,CAAC,CAAC;oBAE3F,oEAAoE;oBACpE,IAAI,UAAU,KAAK,YAAY,IAAI,YAAY,IAAI,OAAO,YAAY,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;wBAC/F,IAAI,CAAC;4BACH,8BAA8B;4BAC9B,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC/D,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;gCACnC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;4BACvE,CAAC;4BACD,OAAO,CAAC,GAAG,CAAC,uCAAuC,UAAU,qBAAqB,CAAC,CAAC;wBACtF,CAAC;wBAAC,OAAO,SAAS,EAAE,CAAC;4BACnB,OAAO,CAAC,KAAK,CAAC,uCAAuC,UAAU,sBAAsB,EAAE,SAAS,CAAC,CAAC;4BAClG,cAAc,GAAG,IAAI,CAAC;4BACtB,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;wBACvD,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAAC,OAAO,EAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,kDAAkD,UAAU,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;gBAE1F,gDAAgD;gBAChD,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBACpF,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;oBAClC,OAAO,CAAC,GAAG,CAAC,gCAAgC,UAAU,sBAAsB,SAAS,EAAE,CAAC,CAAC;gBAC3F,CAAC;gBAAC,OAAO,EAAO,EAAE,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,+CAA+C,UAAU,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;oBAEvF,mCAAmC;oBACnC,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,uBAAuB,UAAU,EAAE,CAAC,CAAC;wBAC7E,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;wBAChC,OAAO,CAAC,GAAG,CAAC,gCAAgC,UAAU,mBAAmB,OAAO,EAAE,CAAC,CAAC;oBACtF,CAAC;oBAAC,OAAO,EAAO,EAAE,CAAC;wBACjB,OAAO,CAAC,IAAI,CAAC,kDAAkD,UAAU,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;wBAE1F,sCAAsC;wBACtC,cAAc,GAAG,IAAI,CAAC;wBACtB,YAAY,GAAG,iBAAiB,UAAU,oBAAoB,EAAE,CAAC,OAAO,EAAE,CAAC;wBAC3E,OAAO,CAAC,IAAI,CAAC,iDAAiD,UAAU,EAAE,CAAC,CAAC;wBAE5E,wEAAwE;wBACxE,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAuB;YACjC,MAAM,EAAE,YAAY,KAAK,IAAI;YAC7B,UAAU;YACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,IAAI;YAC1B,cAAc;YACd,KAAK,EAAE,YAAY;SACpB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAEpC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;OAGG;IACK,qBAAqB,CAAC,UAAkB;QAC9C,kEAAkE;QAClE,wEAAwE;QACxE,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,8CAA8C,UAAU,qBAAqB,CAAC,CAAC;YAC3F,OAAO,IAAI,CAAC;QACd,CAAC;QACD,qFAAqF;QACrF,0CAA0C;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,UAAkB;QAC7C,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,YAAY;gBACf,OAAO;oBACL,gDAAgD;oBAChD,OAAO,EAAE,CAAC,KAAa,EAAU,EAAE;wBACjC,iDAAiD;wBACjD,IAAI,KAAK,GAAG,KAAK,CAAC;wBAElB,oCAAoC;wBACpC,IAAI,IAAI,GAAG,CAAC,CAAC;wBACb,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;4BACxC,IAAI,EAAE,CAAC;4BACP,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;4BACnC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;4BACpC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;wBACtC,CAAC;wBAED,8BAA8B;wBAC9B,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;wBACrD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;wBAC1D,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;wBACvD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;wBACxD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;wBAExD,oBAAoB;wBACpB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;wBAEtC,OAAO,KAAK,CAAC;oBACf,CAAC;oBAED,OAAO,EAAE,CAAC,KAAa,EAAE,QAAgB,EAAY,EAAE;wBACrD,kCAAkC;wBAClC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;4BACxB,iCAAiC;4BACjC,OAAO,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAChF,CAAC;6BAAM,CAAC;4BACN,gCAAgC;4BAChC,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACjE,CAAC;oBACH,CAAC;oBAED,WAAW,EAAE,CAAC,KAAa,EAAU,EAAE;wBACrC,gDAAgD;wBAChD,kEAAkE;wBAElE,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAChD,MAAM,QAAQ,GAAa,EAAE,CAAC;wBAE9B,0CAA0C;wBAC1C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACtB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;wBACjC,CAAC;6BAAM,CAAC;4BACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC3C,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;4BACjD,CAAC;wBACH,CAAC;wBAED,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAErC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;4BAC/B,6CAA6C;4BAC7C,IAAI,IAAI,GAAG,CAAC,CAAC;4BACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCACxC,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gCACrB,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;4BACvB,CAAC;4BACD,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;4BACpB,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;4BACtB,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;4BAErB,gBAAgB;4BAChB,wEAAwE;4BACxE,iGAAiG;4BACjG,qEAAqE;4BACrE,6EAA6E;4BAE7E,mCAAmC;4BACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;gCAC9E,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvB,CAAC;wBACH,CAAC;wBAED,6BAA6B;wBAC7B,IAAI,WAAW,GAAG,EAAE,CAAC;wBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gCACb,WAAW,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;4BACnC,CAAC;wBACH,CAAC;wBAED,OAAO,WAAW,CAAC;oBACrB,CAAC;oBAED,QAAQ,EAAE,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE;wBACzC,mBAAmB;wBACnB,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;wBAClB,IAAI,KAAK,GAAG,CAAC,CAAC;wBACd,2DAA2D;wBAC3D,IAAI,CAAC,GAAG,GAAG,CAAC;wBACZ,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,4CAA4C;wBAEjE,OAAO,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;4BAClC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;4BACd,KAAK,EAAE,CAAC;wBACV,CAAC;wBAED,8CAA8C;wBAC9C,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;4BACtB,OAAO,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;4BAC/F,OAAO,EAAE,CAAC;wBACZ,CAAC;wBAED,OAAO,KAAK,CAAC;oBACf,CAAC;iBACF,CAAC;YAEJ;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,UAAkB;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,UAAkB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACF;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,WAAW,EAAE,CAAC"}