@substrate-ai/factory 0.20.1 → 0.20.3

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 (486) hide show
  1. package/README.md +39 -0
  2. package/package.json +6 -3
  3. package/dist/__tests__/config.test.d.ts +0 -11
  4. package/dist/__tests__/config.test.d.ts.map +0 -1
  5. package/dist/__tests__/config.test.js +0 -215
  6. package/dist/__tests__/config.test.js.map +0 -1
  7. package/dist/__tests__/factory-run-command.test.d.ts +0 -12
  8. package/dist/__tests__/factory-run-command.test.d.ts.map +0 -1
  9. package/dist/__tests__/factory-run-command.test.js +0 -454
  10. package/dist/__tests__/factory-run-command.test.js.map +0 -1
  11. package/dist/__tests__/factory-validate-command.test.d.ts +0 -15
  12. package/dist/__tests__/factory-validate-command.test.d.ts.map +0 -1
  13. package/dist/__tests__/factory-validate-command.test.js +0 -339
  14. package/dist/__tests__/factory-validate-command.test.js.map +0 -1
  15. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.d.ts +0 -72
  16. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.d.ts.map +0 -1
  17. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.js +0 -121
  18. package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.js.map +0 -1
  19. package/dist/__tests__/fixtures/llm-edge-routing.dot.d.ts +0 -28
  20. package/dist/__tests__/fixtures/llm-edge-routing.dot.d.ts.map +0 -1
  21. package/dist/__tests__/fixtures/llm-edge-routing.dot.js +0 -55
  22. package/dist/__tests__/fixtures/llm-edge-routing.dot.js.map +0 -1
  23. package/dist/__tests__/fixtures/manager-loop.dot.d.ts +0 -34
  24. package/dist/__tests__/fixtures/manager-loop.dot.d.ts.map +0 -1
  25. package/dist/__tests__/fixtures/manager-loop.dot.js +0 -61
  26. package/dist/__tests__/fixtures/manager-loop.dot.js.map +0 -1
  27. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.d.ts +0 -42
  28. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.d.ts.map +0 -1
  29. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.js +0 -118
  30. package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.js.map +0 -1
  31. package/dist/__tests__/fixtures/subgraph-parent.dot.d.ts +0 -35
  32. package/dist/__tests__/fixtures/subgraph-parent.dot.d.ts.map +0 -1
  33. package/dist/__tests__/fixtures/subgraph-parent.dot.js +0 -69
  34. package/dist/__tests__/fixtures/subgraph-parent.dot.js.map +0 -1
  35. package/dist/__tests__/integration/advanced-graph-events.test.d.ts +0 -19
  36. package/dist/__tests__/integration/advanced-graph-events.test.d.ts.map +0 -1
  37. package/dist/__tests__/integration/advanced-graph-events.test.js +0 -288
  38. package/dist/__tests__/integration/advanced-graph-events.test.js.map +0 -1
  39. package/dist/__tests__/integration/checkpoint-resume.test.d.ts +0 -10
  40. package/dist/__tests__/integration/checkpoint-resume.test.d.ts.map +0 -1
  41. package/dist/__tests__/integration/checkpoint-resume.test.js +0 -125
  42. package/dist/__tests__/integration/checkpoint-resume.test.js.map +0 -1
  43. package/dist/__tests__/integration/conditional-pipeline.test.d.ts +0 -10
  44. package/dist/__tests__/integration/conditional-pipeline.test.d.ts.map +0 -1
  45. package/dist/__tests__/integration/conditional-pipeline.test.js +0 -106
  46. package/dist/__tests__/integration/conditional-pipeline.test.js.map +0 -1
  47. package/dist/__tests__/integration/convergence-validation.test.d.ts +0 -14
  48. package/dist/__tests__/integration/convergence-validation.test.d.ts.map +0 -1
  49. package/dist/__tests__/integration/convergence-validation.test.js +0 -449
  50. package/dist/__tests__/integration/convergence-validation.test.js.map +0 -1
  51. package/dist/__tests__/integration/epic44-coverage-gate.test.d.ts +0 -12
  52. package/dist/__tests__/integration/epic44-coverage-gate.test.d.ts.map +0 -1
  53. package/dist/__tests__/integration/epic44-coverage-gate.test.js +0 -58
  54. package/dist/__tests__/integration/epic44-coverage-gate.test.js.map +0 -1
  55. package/dist/__tests__/integration/epic45-coverage-gate.test.d.ts +0 -11
  56. package/dist/__tests__/integration/epic45-coverage-gate.test.d.ts.map +0 -1
  57. package/dist/__tests__/integration/epic45-coverage-gate.test.js +0 -64
  58. package/dist/__tests__/integration/epic45-coverage-gate.test.js.map +0 -1
  59. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.d.ts +0 -2
  60. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.d.ts.map +0 -1
  61. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.js +0 -285
  62. package/dist/__tests__/integration/epic46-scenario-primary-executor.test.js.map +0 -1
  63. package/dist/__tests__/integration/events.test.d.ts +0 -8
  64. package/dist/__tests__/integration/events.test.d.ts.map +0 -1
  65. package/dist/__tests__/integration/events.test.js +0 -194
  66. package/dist/__tests__/integration/events.test.js.map +0 -1
  67. package/dist/__tests__/integration/graphs.d.ts +0 -59
  68. package/dist/__tests__/integration/graphs.d.ts.map +0 -1
  69. package/dist/__tests__/integration/graphs.js +0 -164
  70. package/dist/__tests__/integration/graphs.js.map +0 -1
  71. package/dist/__tests__/integration/helpers.d.ts +0 -127
  72. package/dist/__tests__/integration/helpers.d.ts.map +0 -1
  73. package/dist/__tests__/integration/helpers.js +0 -167
  74. package/dist/__tests__/integration/helpers.js.map +0 -1
  75. package/dist/__tests__/integration/integrity.test.d.ts +0 -8
  76. package/dist/__tests__/integration/integrity.test.d.ts.map +0 -1
  77. package/dist/__tests__/integration/integrity.test.js +0 -198
  78. package/dist/__tests__/integration/integrity.test.js.map +0 -1
  79. package/dist/__tests__/integration/llm-edge-routing.test.d.ts +0 -21
  80. package/dist/__tests__/integration/llm-edge-routing.test.d.ts.map +0 -1
  81. package/dist/__tests__/integration/llm-edge-routing.test.js +0 -341
  82. package/dist/__tests__/integration/llm-edge-routing.test.js.map +0 -1
  83. package/dist/__tests__/integration/manager-loop.test.d.ts +0 -24
  84. package/dist/__tests__/integration/manager-loop.test.d.ts.map +0 -1
  85. package/dist/__tests__/integration/manager-loop.test.js +0 -276
  86. package/dist/__tests__/integration/manager-loop.test.js.map +0 -1
  87. package/dist/__tests__/integration/multi-type-graph.test.d.ts +0 -10
  88. package/dist/__tests__/integration/multi-type-graph.test.d.ts.map +0 -1
  89. package/dist/__tests__/integration/multi-type-graph.test.js +0 -100
  90. package/dist/__tests__/integration/multi-type-graph.test.js.map +0 -1
  91. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.d.ts +0 -22
  92. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.d.ts.map +0 -1
  93. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.js +0 -515
  94. package/dist/__tests__/integration/parallel-fan-out-fan-in.test.js.map +0 -1
  95. package/dist/__tests__/integration/persistence.test.d.ts +0 -8
  96. package/dist/__tests__/integration/persistence.test.d.ts.map +0 -1
  97. package/dist/__tests__/integration/persistence.test.js +0 -129
  98. package/dist/__tests__/integration/persistence.test.js.map +0 -1
  99. package/dist/__tests__/integration/pipeline-templates-integration.test.d.ts +0 -16
  100. package/dist/__tests__/integration/pipeline-templates-integration.test.d.ts.map +0 -1
  101. package/dist/__tests__/integration/pipeline-templates-integration.test.js +0 -171
  102. package/dist/__tests__/integration/pipeline-templates-integration.test.js.map +0 -1
  103. package/dist/__tests__/integration/scenario-pipeline.test.d.ts +0 -11
  104. package/dist/__tests__/integration/scenario-pipeline.test.d.ts.map +0 -1
  105. package/dist/__tests__/integration/scenario-pipeline.test.js +0 -243
  106. package/dist/__tests__/integration/scenario-pipeline.test.js.map +0 -1
  107. package/dist/__tests__/integration/stylesheet-application.test.d.ts +0 -12
  108. package/dist/__tests__/integration/stylesheet-application.test.d.ts.map +0 -1
  109. package/dist/__tests__/integration/stylesheet-application.test.js +0 -119
  110. package/dist/__tests__/integration/stylesheet-application.test.js.map +0 -1
  111. package/dist/__tests__/integration/subgraph-execution.test.d.ts +0 -24
  112. package/dist/__tests__/integration/subgraph-execution.test.d.ts.map +0 -1
  113. package/dist/__tests__/integration/subgraph-execution.test.js +0 -291
  114. package/dist/__tests__/integration/subgraph-execution.test.js.map +0 -1
  115. package/dist/__tests__/integration/validation-errors.test.d.ts +0 -8
  116. package/dist/__tests__/integration/validation-errors.test.d.ts.map +0 -1
  117. package/dist/__tests__/integration/validation-errors.test.js +0 -150
  118. package/dist/__tests__/integration/validation-errors.test.js.map +0 -1
  119. package/dist/agent/__tests__/loop-detection.test.d.ts +0 -2
  120. package/dist/agent/__tests__/loop-detection.test.d.ts.map +0 -1
  121. package/dist/agent/__tests__/loop-detection.test.js +0 -236
  122. package/dist/agent/__tests__/loop-detection.test.js.map +0 -1
  123. package/dist/agent/__tests__/loop.test.d.ts +0 -2
  124. package/dist/agent/__tests__/loop.test.d.ts.map +0 -1
  125. package/dist/agent/__tests__/loop.test.js +0 -868
  126. package/dist/agent/__tests__/loop.test.js.map +0 -1
  127. package/dist/agent/__tests__/truncation.test.d.ts +0 -2
  128. package/dist/agent/__tests__/truncation.test.d.ts.map +0 -1
  129. package/dist/agent/__tests__/truncation.test.js +0 -276
  130. package/dist/agent/__tests__/truncation.test.js.map +0 -1
  131. package/dist/agent/tools/__tests__/anthropic-tools.test.d.ts +0 -6
  132. package/dist/agent/tools/__tests__/anthropic-tools.test.d.ts.map +0 -1
  133. package/dist/agent/tools/__tests__/anthropic-tools.test.js +0 -49
  134. package/dist/agent/tools/__tests__/anthropic-tools.test.js.map +0 -1
  135. package/dist/agent/tools/__tests__/environment.test.d.ts +0 -6
  136. package/dist/agent/tools/__tests__/environment.test.d.ts.map +0 -1
  137. package/dist/agent/tools/__tests__/environment.test.js +0 -33
  138. package/dist/agent/tools/__tests__/environment.test.js.map +0 -1
  139. package/dist/agent/tools/__tests__/gemini-tools.test.d.ts +0 -6
  140. package/dist/agent/tools/__tests__/gemini-tools.test.d.ts.map +0 -1
  141. package/dist/agent/tools/__tests__/gemini-tools.test.js +0 -98
  142. package/dist/agent/tools/__tests__/gemini-tools.test.js.map +0 -1
  143. package/dist/agent/tools/__tests__/openai-tools.test.d.ts +0 -6
  144. package/dist/agent/tools/__tests__/openai-tools.test.d.ts.map +0 -1
  145. package/dist/agent/tools/__tests__/openai-tools.test.js +0 -53
  146. package/dist/agent/tools/__tests__/openai-tools.test.js.map +0 -1
  147. package/dist/agent/tools/__tests__/patch.test.d.ts +0 -6
  148. package/dist/agent/tools/__tests__/patch.test.d.ts.map +0 -1
  149. package/dist/agent/tools/__tests__/patch.test.js +0 -116
  150. package/dist/agent/tools/__tests__/patch.test.js.map +0 -1
  151. package/dist/agent/tools/__tests__/profiles.test.d.ts +0 -6
  152. package/dist/agent/tools/__tests__/profiles.test.d.ts.map +0 -1
  153. package/dist/agent/tools/__tests__/profiles.test.js +0 -125
  154. package/dist/agent/tools/__tests__/profiles.test.js.map +0 -1
  155. package/dist/agent/tools/__tests__/registry.test.d.ts +0 -6
  156. package/dist/agent/tools/__tests__/registry.test.d.ts.map +0 -1
  157. package/dist/agent/tools/__tests__/registry.test.js +0 -94
  158. package/dist/agent/tools/__tests__/registry.test.js.map +0 -1
  159. package/dist/agent/tools/__tests__/shared.test.d.ts +0 -6
  160. package/dist/agent/tools/__tests__/shared.test.d.ts.map +0 -1
  161. package/dist/agent/tools/__tests__/shared.test.js +0 -131
  162. package/dist/agent/tools/__tests__/shared.test.js.map +0 -1
  163. package/dist/backend/__tests__/direct-backend.test.d.ts +0 -14
  164. package/dist/backend/__tests__/direct-backend.test.d.ts.map +0 -1
  165. package/dist/backend/__tests__/direct-backend.test.js +0 -393
  166. package/dist/backend/__tests__/direct-backend.test.js.map +0 -1
  167. package/dist/backend/__tests__/direct-bootstrap.test.d.ts +0 -7
  168. package/dist/backend/__tests__/direct-bootstrap.test.d.ts.map +0 -1
  169. package/dist/backend/__tests__/direct-bootstrap.test.js +0 -177
  170. package/dist/backend/__tests__/direct-bootstrap.test.js.map +0 -1
  171. package/dist/backend/__tests__/mock-backend.test.d.ts +0 -7
  172. package/dist/backend/__tests__/mock-backend.test.d.ts.map +0 -1
  173. package/dist/backend/__tests__/mock-backend.test.js +0 -273
  174. package/dist/backend/__tests__/mock-backend.test.js.map +0 -1
  175. package/dist/backend/__tests__/parity.test.d.ts +0 -17
  176. package/dist/backend/__tests__/parity.test.d.ts.map +0 -1
  177. package/dist/backend/__tests__/parity.test.js +0 -411
  178. package/dist/backend/__tests__/parity.test.js.map +0 -1
  179. package/dist/context/__tests__/auto-summarizer.test.d.ts +0 -14
  180. package/dist/context/__tests__/auto-summarizer.test.d.ts.map +0 -1
  181. package/dist/context/__tests__/auto-summarizer.test.js +0 -189
  182. package/dist/context/__tests__/auto-summarizer.test.js.map +0 -1
  183. package/dist/context/__tests__/context-cli-command.test.d.ts +0 -7
  184. package/dist/context/__tests__/context-cli-command.test.d.ts.map +0 -1
  185. package/dist/context/__tests__/context-cli-command.test.js +0 -331
  186. package/dist/context/__tests__/context-cli-command.test.js.map +0 -1
  187. package/dist/context/__tests__/pyramid-summary-integration.test.d.ts +0 -2
  188. package/dist/context/__tests__/pyramid-summary-integration.test.d.ts.map +0 -1
  189. package/dist/context/__tests__/pyramid-summary-integration.test.js +0 -533
  190. package/dist/context/__tests__/pyramid-summary-integration.test.js.map +0 -1
  191. package/dist/context/__tests__/summarizer.test.d.ts +0 -2
  192. package/dist/context/__tests__/summarizer.test.d.ts.map +0 -1
  193. package/dist/context/__tests__/summarizer.test.js +0 -189
  194. package/dist/context/__tests__/summarizer.test.js.map +0 -1
  195. package/dist/context/__tests__/summary-cache.test.d.ts +0 -2
  196. package/dist/context/__tests__/summary-cache.test.d.ts.map +0 -1
  197. package/dist/context/__tests__/summary-cache.test.js +0 -214
  198. package/dist/context/__tests__/summary-cache.test.js.map +0 -1
  199. package/dist/context/__tests__/summary-metrics.test.d.ts +0 -2
  200. package/dist/context/__tests__/summary-metrics.test.d.ts.map +0 -1
  201. package/dist/context/__tests__/summary-metrics.test.js +0 -172
  202. package/dist/context/__tests__/summary-metrics.test.js.map +0 -1
  203. package/dist/context/__tests__/summary-types.test.d.ts +0 -2
  204. package/dist/context/__tests__/summary-types.test.d.ts.map +0 -1
  205. package/dist/context/__tests__/summary-types.test.js +0 -130
  206. package/dist/context/__tests__/summary-types.test.js.map +0 -1
  207. package/dist/convergence/__tests__/budget.test.d.ts +0 -6
  208. package/dist/convergence/__tests__/budget.test.d.ts.map +0 -1
  209. package/dist/convergence/__tests__/budget.test.js +0 -187
  210. package/dist/convergence/__tests__/budget.test.js.map +0 -1
  211. package/dist/convergence/__tests__/controller.test.d.ts +0 -9
  212. package/dist/convergence/__tests__/controller.test.d.ts.map +0 -1
  213. package/dist/convergence/__tests__/controller.test.js +0 -585
  214. package/dist/convergence/__tests__/controller.test.js.map +0 -1
  215. package/dist/convergence/__tests__/dual-signal.test.d.ts +0 -14
  216. package/dist/convergence/__tests__/dual-signal.test.d.ts.map +0 -1
  217. package/dist/convergence/__tests__/dual-signal.test.js +0 -123
  218. package/dist/convergence/__tests__/dual-signal.test.js.map +0 -1
  219. package/dist/convergence/__tests__/epic46-integration.test.d.ts +0 -15
  220. package/dist/convergence/__tests__/epic46-integration.test.d.ts.map +0 -1
  221. package/dist/convergence/__tests__/epic46-integration.test.js +0 -522
  222. package/dist/convergence/__tests__/epic46-integration.test.js.map +0 -1
  223. package/dist/convergence/__tests__/plateau.test.d.ts +0 -6
  224. package/dist/convergence/__tests__/plateau.test.d.ts.map +0 -1
  225. package/dist/convergence/__tests__/plateau.test.js +0 -163
  226. package/dist/convergence/__tests__/plateau.test.js.map +0 -1
  227. package/dist/convergence/__tests__/remediation.test.d.ts +0 -11
  228. package/dist/convergence/__tests__/remediation.test.d.ts.map +0 -1
  229. package/dist/convergence/__tests__/remediation.test.js +0 -209
  230. package/dist/convergence/__tests__/remediation.test.js.map +0 -1
  231. package/dist/convergence/__tests__/scenario-primary.test.d.ts +0 -13
  232. package/dist/convergence/__tests__/scenario-primary.test.d.ts.map +0 -1
  233. package/dist/convergence/__tests__/scenario-primary.test.js +0 -183
  234. package/dist/convergence/__tests__/scenario-primary.test.js.map +0 -1
  235. package/dist/factory-command.test.d.ts +0 -8
  236. package/dist/factory-command.test.d.ts.map +0 -1
  237. package/dist/factory-command.test.js +0 -304
  238. package/dist/factory-command.test.js.map +0 -1
  239. package/dist/graph/__tests__/attractor-compliance.test.d.ts +0 -10
  240. package/dist/graph/__tests__/attractor-compliance.test.d.ts.map +0 -1
  241. package/dist/graph/__tests__/attractor-compliance.test.js +0 -766
  242. package/dist/graph/__tests__/attractor-compliance.test.js.map +0 -1
  243. package/dist/graph/__tests__/checkpoint.test.d.ts +0 -8
  244. package/dist/graph/__tests__/checkpoint.test.d.ts.map +0 -1
  245. package/dist/graph/__tests__/checkpoint.test.js +0 -329
  246. package/dist/graph/__tests__/checkpoint.test.js.map +0 -1
  247. package/dist/graph/__tests__/condition-parser.test.d.ts +0 -14
  248. package/dist/graph/__tests__/condition-parser.test.d.ts.map +0 -1
  249. package/dist/graph/__tests__/condition-parser.test.js +0 -406
  250. package/dist/graph/__tests__/condition-parser.test.js.map +0 -1
  251. package/dist/graph/__tests__/context.test.d.ts +0 -14
  252. package/dist/graph/__tests__/context.test.d.ts.map +0 -1
  253. package/dist/graph/__tests__/context.test.js +0 -276
  254. package/dist/graph/__tests__/context.test.js.map +0 -1
  255. package/dist/graph/__tests__/edge-selector-events.test.d.ts +0 -11
  256. package/dist/graph/__tests__/edge-selector-events.test.d.ts.map +0 -1
  257. package/dist/graph/__tests__/edge-selector-events.test.js +0 -184
  258. package/dist/graph/__tests__/edge-selector-events.test.js.map +0 -1
  259. package/dist/graph/__tests__/edge-selector.test.d.ts +0 -6
  260. package/dist/graph/__tests__/edge-selector.test.d.ts.map +0 -1
  261. package/dist/graph/__tests__/edge-selector.test.js +0 -452
  262. package/dist/graph/__tests__/edge-selector.test.js.map +0 -1
  263. package/dist/graph/__tests__/executor-convergence.test.d.ts +0 -12
  264. package/dist/graph/__tests__/executor-convergence.test.d.ts.map +0 -1
  265. package/dist/graph/__tests__/executor-convergence.test.js +0 -432
  266. package/dist/graph/__tests__/executor-convergence.test.js.map +0 -1
  267. package/dist/graph/__tests__/executor-fidelity.test.d.ts +0 -13
  268. package/dist/graph/__tests__/executor-fidelity.test.d.ts.map +0 -1
  269. package/dist/graph/__tests__/executor-fidelity.test.js +0 -335
  270. package/dist/graph/__tests__/executor-fidelity.test.js.map +0 -1
  271. package/dist/graph/__tests__/executor.test.d.ts +0 -14
  272. package/dist/graph/__tests__/executor.test.d.ts.map +0 -1
  273. package/dist/graph/__tests__/executor.test.js +0 -901
  274. package/dist/graph/__tests__/executor.test.js.map +0 -1
  275. package/dist/graph/__tests__/fidelity.test.d.ts +0 -8
  276. package/dist/graph/__tests__/fidelity.test.d.ts.map +0 -1
  277. package/dist/graph/__tests__/fidelity.test.js +0 -135
  278. package/dist/graph/__tests__/fidelity.test.js.map +0 -1
  279. package/dist/graph/__tests__/llm-evaluator.test.d.ts +0 -7
  280. package/dist/graph/__tests__/llm-evaluator.test.d.ts.map +0 -1
  281. package/dist/graph/__tests__/llm-evaluator.test.js +0 -106
  282. package/dist/graph/__tests__/llm-evaluator.test.js.map +0 -1
  283. package/dist/graph/__tests__/parser-chaining.test.d.ts +0 -13
  284. package/dist/graph/__tests__/parser-chaining.test.d.ts.map +0 -1
  285. package/dist/graph/__tests__/parser-chaining.test.js +0 -215
  286. package/dist/graph/__tests__/parser-chaining.test.js.map +0 -1
  287. package/dist/graph/__tests__/parser.test.d.ts +0 -22
  288. package/dist/graph/__tests__/parser.test.d.ts.map +0 -1
  289. package/dist/graph/__tests__/parser.test.js +0 -452
  290. package/dist/graph/__tests__/parser.test.js.map +0 -1
  291. package/dist/graph/__tests__/run-state.test.d.ts +0 -13
  292. package/dist/graph/__tests__/run-state.test.d.ts.map +0 -1
  293. package/dist/graph/__tests__/run-state.test.js +0 -189
  294. package/dist/graph/__tests__/run-state.test.js.map +0 -1
  295. package/dist/graph/__tests__/transformer.test.d.ts +0 -16
  296. package/dist/graph/__tests__/transformer.test.d.ts.map +0 -1
  297. package/dist/graph/__tests__/transformer.test.js +0 -350
  298. package/dist/graph/__tests__/transformer.test.js.map +0 -1
  299. package/dist/graph/__tests__/validator-errors.test.d.ts +0 -15
  300. package/dist/graph/__tests__/validator-errors.test.d.ts.map +0 -1
  301. package/dist/graph/__tests__/validator-errors.test.js +0 -572
  302. package/dist/graph/__tests__/validator-errors.test.js.map +0 -1
  303. package/dist/graph/__tests__/validator-warnings.test.d.ts +0 -15
  304. package/dist/graph/__tests__/validator-warnings.test.d.ts.map +0 -1
  305. package/dist/graph/__tests__/validator-warnings.test.js +0 -363
  306. package/dist/graph/__tests__/validator-warnings.test.js.map +0 -1
  307. package/dist/handlers/__tests__/codergen-handler.test.d.ts +0 -14
  308. package/dist/handlers/__tests__/codergen-handler.test.d.ts.map +0 -1
  309. package/dist/handlers/__tests__/codergen-handler.test.js +0 -442
  310. package/dist/handlers/__tests__/codergen-handler.test.js.map +0 -1
  311. package/dist/handlers/__tests__/fan-in.test.d.ts +0 -14
  312. package/dist/handlers/__tests__/fan-in.test.d.ts.map +0 -1
  313. package/dist/handlers/__tests__/fan-in.test.js +0 -399
  314. package/dist/handlers/__tests__/fan-in.test.js.map +0 -1
  315. package/dist/handlers/__tests__/join-policy.test.d.ts +0 -9
  316. package/dist/handlers/__tests__/join-policy.test.d.ts.map +0 -1
  317. package/dist/handlers/__tests__/join-policy.test.js +0 -201
  318. package/dist/handlers/__tests__/join-policy.test.js.map +0 -1
  319. package/dist/handlers/__tests__/manager-loop.test.d.ts +0 -14
  320. package/dist/handlers/__tests__/manager-loop.test.d.ts.map +0 -1
  321. package/dist/handlers/__tests__/manager-loop.test.js +0 -322
  322. package/dist/handlers/__tests__/manager-loop.test.js.map +0 -1
  323. package/dist/handlers/__tests__/parallel-events.test.d.ts +0 -12
  324. package/dist/handlers/__tests__/parallel-events.test.d.ts.map +0 -1
  325. package/dist/handlers/__tests__/parallel-events.test.js +0 -252
  326. package/dist/handlers/__tests__/parallel-events.test.js.map +0 -1
  327. package/dist/handlers/__tests__/parallel-handler.test.d.ts +0 -14
  328. package/dist/handlers/__tests__/parallel-handler.test.d.ts.map +0 -1
  329. package/dist/handlers/__tests__/parallel-handler.test.js +0 -337
  330. package/dist/handlers/__tests__/parallel-handler.test.js.map +0 -1
  331. package/dist/handlers/__tests__/parallel-join.test.d.ts +0 -9
  332. package/dist/handlers/__tests__/parallel-join.test.d.ts.map +0 -1
  333. package/dist/handlers/__tests__/parallel-join.test.js +0 -267
  334. package/dist/handlers/__tests__/parallel-join.test.js.map +0 -1
  335. package/dist/handlers/__tests__/registry.test.d.ts +0 -14
  336. package/dist/handlers/__tests__/registry.test.d.ts.map +0 -1
  337. package/dist/handlers/__tests__/registry.test.js +0 -315
  338. package/dist/handlers/__tests__/registry.test.js.map +0 -1
  339. package/dist/handlers/__tests__/subgraph-events.test.d.ts +0 -10
  340. package/dist/handlers/__tests__/subgraph-events.test.d.ts.map +0 -1
  341. package/dist/handlers/__tests__/subgraph-events.test.js +0 -189
  342. package/dist/handlers/__tests__/subgraph-events.test.js.map +0 -1
  343. package/dist/handlers/__tests__/subgraph-inheritance.test.d.ts +0 -14
  344. package/dist/handlers/__tests__/subgraph-inheritance.test.d.ts.map +0 -1
  345. package/dist/handlers/__tests__/subgraph-inheritance.test.js +0 -267
  346. package/dist/handlers/__tests__/subgraph-inheritance.test.js.map +0 -1
  347. package/dist/handlers/__tests__/subgraph.test.d.ts +0 -14
  348. package/dist/handlers/__tests__/subgraph.test.d.ts.map +0 -1
  349. package/dist/handlers/__tests__/subgraph.test.js +0 -369
  350. package/dist/handlers/__tests__/subgraph.test.js.map +0 -1
  351. package/dist/handlers/__tests__/tool-handler.test.d.ts +0 -11
  352. package/dist/handlers/__tests__/tool-handler.test.d.ts.map +0 -1
  353. package/dist/handlers/__tests__/tool-handler.test.js +0 -184
  354. package/dist/handlers/__tests__/tool-handler.test.js.map +0 -1
  355. package/dist/handlers/__tests__/tool-scenario.test.d.ts +0 -12
  356. package/dist/handlers/__tests__/tool-scenario.test.d.ts.map +0 -1
  357. package/dist/handlers/__tests__/tool-scenario.test.js +0 -222
  358. package/dist/handlers/__tests__/tool-scenario.test.js.map +0 -1
  359. package/dist/handlers/__tests__/wait-human-handler.test.d.ts +0 -11
  360. package/dist/handlers/__tests__/wait-human-handler.test.d.ts.map +0 -1
  361. package/dist/handlers/__tests__/wait-human-handler.test.js +0 -251
  362. package/dist/handlers/__tests__/wait-human-handler.test.js.map +0 -1
  363. package/dist/llm/__tests__/client.test.d.ts +0 -2
  364. package/dist/llm/__tests__/client.test.d.ts.map +0 -1
  365. package/dist/llm/__tests__/client.test.js +0 -198
  366. package/dist/llm/__tests__/client.test.js.map +0 -1
  367. package/dist/llm/__tests__/types.test.d.ts +0 -2
  368. package/dist/llm/__tests__/types.test.d.ts.map +0 -1
  369. package/dist/llm/__tests__/types.test.js +0 -289
  370. package/dist/llm/__tests__/types.test.js.map +0 -1
  371. package/dist/llm/middleware/__tests__/cost-tracking.test.d.ts +0 -2
  372. package/dist/llm/middleware/__tests__/cost-tracking.test.d.ts.map +0 -1
  373. package/dist/llm/middleware/__tests__/cost-tracking.test.js +0 -73
  374. package/dist/llm/middleware/__tests__/cost-tracking.test.js.map +0 -1
  375. package/dist/llm/middleware/__tests__/logging.test.d.ts +0 -2
  376. package/dist/llm/middleware/__tests__/logging.test.d.ts.map +0 -1
  377. package/dist/llm/middleware/__tests__/logging.test.js +0 -127
  378. package/dist/llm/middleware/__tests__/logging.test.js.map +0 -1
  379. package/dist/llm/middleware/__tests__/retry.test.d.ts +0 -2
  380. package/dist/llm/middleware/__tests__/retry.test.d.ts.map +0 -1
  381. package/dist/llm/middleware/__tests__/retry.test.js +0 -126
  382. package/dist/llm/middleware/__tests__/retry.test.js.map +0 -1
  383. package/dist/llm/providers/__tests__/anthropic.test.d.ts +0 -2
  384. package/dist/llm/providers/__tests__/anthropic.test.d.ts.map +0 -1
  385. package/dist/llm/providers/__tests__/anthropic.test.js +0 -412
  386. package/dist/llm/providers/__tests__/anthropic.test.js.map +0 -1
  387. package/dist/llm/providers/__tests__/gemini.test.d.ts +0 -2
  388. package/dist/llm/providers/__tests__/gemini.test.d.ts.map +0 -1
  389. package/dist/llm/providers/__tests__/gemini.test.js +0 -591
  390. package/dist/llm/providers/__tests__/gemini.test.js.map +0 -1
  391. package/dist/llm/providers/__tests__/openai.test.d.ts +0 -2
  392. package/dist/llm/providers/__tests__/openai.test.d.ts.map +0 -1
  393. package/dist/llm/providers/__tests__/openai.test.js +0 -546
  394. package/dist/llm/providers/__tests__/openai.test.js.map +0 -1
  395. package/dist/persistence/__tests__/factory-queries.test.d.ts +0 -9
  396. package/dist/persistence/__tests__/factory-queries.test.d.ts.map +0 -1
  397. package/dist/persistence/__tests__/factory-queries.test.js +0 -372
  398. package/dist/persistence/__tests__/factory-queries.test.js.map +0 -1
  399. package/dist/persistence/__tests__/factory-schema.test.d.ts +0 -6
  400. package/dist/persistence/__tests__/factory-schema.test.d.ts.map +0 -1
  401. package/dist/persistence/__tests__/factory-schema.test.js +0 -105
  402. package/dist/persistence/__tests__/factory-schema.test.js.map +0 -1
  403. package/dist/scenarios/__tests__/cli-command-list.test.d.ts +0 -7
  404. package/dist/scenarios/__tests__/cli-command-list.test.d.ts.map +0 -1
  405. package/dist/scenarios/__tests__/cli-command-list.test.js +0 -237
  406. package/dist/scenarios/__tests__/cli-command-list.test.js.map +0 -1
  407. package/dist/scenarios/__tests__/cli-command.test.d.ts +0 -11
  408. package/dist/scenarios/__tests__/cli-command.test.d.ts.map +0 -1
  409. package/dist/scenarios/__tests__/cli-command.test.js +0 -275
  410. package/dist/scenarios/__tests__/cli-command.test.js.map +0 -1
  411. package/dist/scenarios/__tests__/integrity-pipeline.test.d.ts +0 -15
  412. package/dist/scenarios/__tests__/integrity-pipeline.test.d.ts.map +0 -1
  413. package/dist/scenarios/__tests__/integrity-pipeline.test.js +0 -318
  414. package/dist/scenarios/__tests__/integrity-pipeline.test.js.map +0 -1
  415. package/dist/scenarios/__tests__/runner-twins.test.d.ts +0 -13
  416. package/dist/scenarios/__tests__/runner-twins.test.d.ts.map +0 -1
  417. package/dist/scenarios/__tests__/runner-twins.test.js +0 -205
  418. package/dist/scenarios/__tests__/runner-twins.test.js.map +0 -1
  419. package/dist/scenarios/__tests__/scorer.test.d.ts +0 -11
  420. package/dist/scenarios/__tests__/scorer.test.d.ts.map +0 -1
  421. package/dist/scenarios/__tests__/scorer.test.js +0 -225
  422. package/dist/scenarios/__tests__/scorer.test.js.map +0 -1
  423. package/dist/scenarios/__tests__/scoring-integration.test.d.ts +0 -8
  424. package/dist/scenarios/__tests__/scoring-integration.test.d.ts.map +0 -1
  425. package/dist/scenarios/__tests__/scoring-integration.test.js +0 -178
  426. package/dist/scenarios/__tests__/scoring-integration.test.js.map +0 -1
  427. package/dist/scenarios/__tests__/store.test.d.ts +0 -5
  428. package/dist/scenarios/__tests__/store.test.d.ts.map +0 -1
  429. package/dist/scenarios/__tests__/store.test.js +0 -169
  430. package/dist/scenarios/__tests__/store.test.js.map +0 -1
  431. package/dist/stylesheet/__tests__/stylesheet.test.d.ts +0 -17
  432. package/dist/stylesheet/__tests__/stylesheet.test.d.ts.map +0 -1
  433. package/dist/stylesheet/__tests__/stylesheet.test.js +0 -368
  434. package/dist/stylesheet/__tests__/stylesheet.test.js.map +0 -1
  435. package/dist/templates/__tests__/templates.test.d.ts +0 -7
  436. package/dist/templates/__tests__/templates.test.d.ts.map +0 -1
  437. package/dist/templates/__tests__/templates.test.js +0 -92
  438. package/dist/templates/__tests__/templates.test.js.map +0 -1
  439. package/dist/twins/__tests__/docker-compose.test.d.ts +0 -13
  440. package/dist/twins/__tests__/docker-compose.test.d.ts.map +0 -1
  441. package/dist/twins/__tests__/docker-compose.test.js +0 -247
  442. package/dist/twins/__tests__/docker-compose.test.js.map +0 -1
  443. package/dist/twins/__tests__/health-monitor.test.d.ts +0 -19
  444. package/dist/twins/__tests__/health-monitor.test.d.ts.map +0 -1
  445. package/dist/twins/__tests__/health-monitor.test.js +0 -301
  446. package/dist/twins/__tests__/health-monitor.test.js.map +0 -1
  447. package/dist/twins/__tests__/integration/e2e.test.d.ts +0 -18
  448. package/dist/twins/__tests__/integration/e2e.test.d.ts.map +0 -1
  449. package/dist/twins/__tests__/integration/e2e.test.js +0 -146
  450. package/dist/twins/__tests__/integration/e2e.test.js.map +0 -1
  451. package/dist/twins/__tests__/integration/helpers.d.ts +0 -32
  452. package/dist/twins/__tests__/integration/helpers.d.ts.map +0 -1
  453. package/dist/twins/__tests__/integration/helpers.js +0 -67
  454. package/dist/twins/__tests__/integration/helpers.js.map +0 -1
  455. package/dist/twins/__tests__/integration/lifecycle.test.d.ts +0 -14
  456. package/dist/twins/__tests__/integration/lifecycle.test.d.ts.map +0 -1
  457. package/dist/twins/__tests__/integration/lifecycle.test.js +0 -127
  458. package/dist/twins/__tests__/integration/lifecycle.test.js.map +0 -1
  459. package/dist/twins/__tests__/integration/persistence-integration.test.d.ts +0 -14
  460. package/dist/twins/__tests__/integration/persistence-integration.test.d.ts.map +0 -1
  461. package/dist/twins/__tests__/integration/persistence-integration.test.js +0 -132
  462. package/dist/twins/__tests__/integration/persistence-integration.test.js.map +0 -1
  463. package/dist/twins/__tests__/persistence.test.d.ts +0 -10
  464. package/dist/twins/__tests__/persistence.test.d.ts.map +0 -1
  465. package/dist/twins/__tests__/persistence.test.js +0 -300
  466. package/dist/twins/__tests__/persistence.test.js.map +0 -1
  467. package/dist/twins/__tests__/registry.test.d.ts +0 -7
  468. package/dist/twins/__tests__/registry.test.d.ts.map +0 -1
  469. package/dist/twins/__tests__/registry.test.js +0 -282
  470. package/dist/twins/__tests__/registry.test.js.map +0 -1
  471. package/dist/twins/__tests__/run-state.test.d.ts +0 -9
  472. package/dist/twins/__tests__/run-state.test.d.ts.map +0 -1
  473. package/dist/twins/__tests__/run-state.test.js +0 -112
  474. package/dist/twins/__tests__/run-state.test.js.map +0 -1
  475. package/dist/twins/__tests__/templates-cli.test.d.ts +0 -10
  476. package/dist/twins/__tests__/templates-cli.test.d.ts.map +0 -1
  477. package/dist/twins/__tests__/templates-cli.test.js +0 -187
  478. package/dist/twins/__tests__/templates-cli.test.js.map +0 -1
  479. package/dist/twins/__tests__/templates.test.d.ts +0 -7
  480. package/dist/twins/__tests__/templates.test.d.ts.map +0 -1
  481. package/dist/twins/__tests__/templates.test.js +0 -87
  482. package/dist/twins/__tests__/templates.test.js.map +0 -1
  483. package/dist/twins/__tests__/twins-cli.test.d.ts +0 -11
  484. package/dist/twins/__tests__/twins-cli.test.d.ts.map +0 -1
  485. package/dist/twins/__tests__/twins-cli.test.js +0 -365
  486. package/dist/twins/__tests__/twins-cli.test.js.map +0 -1
@@ -1,533 +0,0 @@
1
- /**
2
- * Integration tests for the pyramid summarization system (Story 49-8).
3
- *
4
- * Covers cross-component flows between LLMSummaryEngine, AutoSummarizer,
5
- * and ConvergenceController.
6
- */
7
- import { describe, it, expect, vi } from 'vitest';
8
- import { createHash } from 'node:crypto';
9
- import { LLMSummaryEngine } from '../summarizer.js';
10
- import { AutoSummarizer, estimateTokens, } from '../auto-summarizer.js';
11
- import { SUMMARY_BUDGET, } from '../summary-types.js';
12
- import { createConvergenceController } from '../../convergence/controller.js';
13
- // ---------------------------------------------------------------------------
14
- // Mock helpers
15
- // ---------------------------------------------------------------------------
16
- function createMockLLMClient(defaultResponse = 'mock summary content') {
17
- let callCount = 0;
18
- let responseContent = defaultResponse;
19
- const client = {
20
- complete: vi.fn(async (_req) => {
21
- callCount++;
22
- return {
23
- content: responseContent,
24
- toolCalls: [],
25
- usage: { inputTokens: 100, outputTokens: 30, totalTokens: 130 },
26
- model: 'mock-model',
27
- stopReason: 'stop',
28
- providerMetadata: {},
29
- };
30
- }),
31
- };
32
- return {
33
- client,
34
- get callCount() {
35
- return callCount;
36
- },
37
- setResponse(content) {
38
- responseContent = content;
39
- },
40
- };
41
- }
42
- class MockSummaryEngine {
43
- name = 'mock';
44
- callCount = 0;
45
- async summarize(content, targetLevel, _opts) {
46
- this.callCount++;
47
- return {
48
- level: targetLevel,
49
- content: content.slice(0, 20),
50
- originalHash: 'mock-hash-' + this.callCount,
51
- createdAt: new Date().toISOString(),
52
- originalTokenCount: 100,
53
- summaryTokenCount: 20,
54
- };
55
- }
56
- async expand(summary, _targetLevel, opts) {
57
- return opts?.originalContent ?? summary.content;
58
- }
59
- }
60
- // Type narrowing helper
61
- function isCompressed(ctx) {
62
- return 'compressed' in ctx;
63
- }
64
- // ---------------------------------------------------------------------------
65
- // AC1: Full 12-iteration pipeline simulation
66
- // ---------------------------------------------------------------------------
67
- describe('Full 12-iteration pipeline simulation', () => {
68
- // AutoSummarizer: limit=1000, threshold=0.8 → trigger at > 800
69
- const mockEngine = new MockSummaryEngine();
70
- const summarizer = new AutoSummarizer(mockEngine, 1000, { threshold: 0.8 });
71
- // Build 12 IterationContext objects, each with tokenEstimate=90
72
- const iterations = Array.from({ length: 12 }, (_, i) => ({
73
- index: i,
74
- content: `iteration ${i} content`,
75
- tokenEstimate: 90,
76
- }));
77
- it('shouldTrigger returns false for 8 iterations (total 720 < 800)', () => {
78
- expect(summarizer.shouldTrigger(iterations.slice(0, 8))).toBe(false);
79
- });
80
- it('shouldTrigger returns true for 9 iterations (total 810 > 800)', () => {
81
- expect(summarizer.shouldTrigger(iterations.slice(0, 9))).toBe(true);
82
- });
83
- it('compress(iterations[0..8], 8) returns CompressionResult with iterations.length === 9', async () => {
84
- const result = await summarizer.compress(iterations.slice(0, 9), 8);
85
- expect(result.iterations).toHaveLength(9);
86
- });
87
- it('all entries at indices 0–7 have compressed: true discriminant', async () => {
88
- const result = await summarizer.compress(iterations.slice(0, 9), 8);
89
- for (let i = 0; i < 8; i++) {
90
- const entry = result.iterations.find((c) => c.index === i);
91
- expect(entry).toBeDefined();
92
- expect('compressed' in entry).toBe(true);
93
- expect(entry.compressed).toBe(true);
94
- }
95
- });
96
- it('entry at index 8 does not have compressed property (is plain IterationContext)', async () => {
97
- const result = await summarizer.compress(iterations.slice(0, 9), 8);
98
- const entry8 = result.iterations.find((c) => c.index === 8);
99
- expect(entry8).toBeDefined();
100
- expect('compressed' in entry8).toBe(false);
101
- expect(entry8.content).toBe('iteration 8 content');
102
- });
103
- it('compressedIndices equals [0, 1, 2, 3, 4, 5, 6, 7]', async () => {
104
- const result = await summarizer.compress(iterations.slice(0, 9), 8);
105
- expect(result.compressedIndices).toEqual([0, 1, 2, 3, 4, 5, 6, 7]);
106
- });
107
- });
108
- // ---------------------------------------------------------------------------
109
- // AC2: Lossless round-trip across all summary levels
110
- // ---------------------------------------------------------------------------
111
- describe('Lossless round-trip — all summary levels', () => {
112
- const originalContent = 'This is the full original content with important details that must be preserved exactly.';
113
- it('expand at "full" level with originalContent returns exact original content', async () => {
114
- const mock = createMockLLMClient();
115
- const engine = new LLMSummaryEngine(mock.client);
116
- const summary = await engine.summarize(originalContent, 'full');
117
- const expanded = await engine.expand(summary, 'full', { originalContent });
118
- expect(expanded).toBe(originalContent);
119
- });
120
- it('expand at "high" level with originalContent returns exact original content', async () => {
121
- const mock = createMockLLMClient();
122
- const engine = new LLMSummaryEngine(mock.client);
123
- const summary = await engine.summarize(originalContent, 'high');
124
- const expanded = await engine.expand(summary, 'full', { originalContent });
125
- expect(expanded).toBe(originalContent);
126
- });
127
- it('expand at "medium" level with originalContent returns exact original content', async () => {
128
- const mock = createMockLLMClient();
129
- const engine = new LLMSummaryEngine(mock.client);
130
- const summary = await engine.summarize(originalContent, 'medium');
131
- const expanded = await engine.expand(summary, 'full', { originalContent });
132
- expect(expanded).toBe(originalContent);
133
- });
134
- it('expand at "low" level with originalContent returns exact original content', async () => {
135
- const mock = createMockLLMClient();
136
- const engine = new LLMSummaryEngine(mock.client);
137
- const summary = await engine.summarize(originalContent, 'low');
138
- const expanded = await engine.expand(summary, 'full', { originalContent });
139
- expect(expanded).toBe(originalContent);
140
- });
141
- it('MockLLMClient.complete is not called during any expand with originalContent (callCount stays at 4)', async () => {
142
- const mock = createMockLLMClient();
143
- const engine = new LLMSummaryEngine(mock.client);
144
- const levels = ['full', 'high', 'medium', 'low'];
145
- // Summarize at all 4 levels
146
- const summaries = [];
147
- for (const level of levels) {
148
- summaries.push(await engine.summarize(originalContent, level));
149
- }
150
- const afterSummarize = mock.callCount;
151
- // Expand all 4 with originalContent — no LLM calls expected
152
- for (const summary of summaries) {
153
- await engine.expand(summary, 'full', { originalContent });
154
- }
155
- expect(mock.callCount).toBe(afterSummarize);
156
- expect(mock.callCount).toBe(4);
157
- });
158
- it('summary.originalHash for "high" level equals SHA-256 of original content', async () => {
159
- const mock = createMockLLMClient();
160
- const engine = new LLMSummaryEngine(mock.client);
161
- const summary = await engine.summarize(originalContent, 'high');
162
- const expectedHash = createHash('sha256').update(originalContent).digest('hex');
163
- expect(summary.originalHash).toBe(expectedHash);
164
- });
165
- it('summary.createdAt for "low" level is a valid ISO-8601 string parseable by new Date()', async () => {
166
- const mock = createMockLLMClient();
167
- const engine = new LLMSummaryEngine(mock.client);
168
- const summary = await engine.summarize(originalContent, 'low');
169
- const parsed = new Date(summary.createdAt);
170
- expect(Number.isNaN(parsed.getTime())).toBe(false);
171
- expect(parsed.getTime()).toBeGreaterThan(0);
172
- });
173
- });
174
- // ---------------------------------------------------------------------------
175
- // AC3: LLM expansion path — no originalContent
176
- // ---------------------------------------------------------------------------
177
- describe('LLM expansion path — no originalContent', () => {
178
- it('MockLLMClient.callCount is 1 after summarize and 2 after expand (no originalContent)', async () => {
179
- const mock = createMockLLMClient('summary text');
180
- const engine = new LLMSummaryEngine(mock.client);
181
- const content = 'Some original content to summarize';
182
- const summary = await engine.summarize(content, 'medium');
183
- expect(mock.callCount).toBe(1);
184
- mock.setResponse('expanded content from LLM');
185
- await engine.expand(summary, 'full');
186
- expect(mock.callCount).toBe(2);
187
- });
188
- it('expand without originalContent returns the mock LLM response content', async () => {
189
- const mock = createMockLLMClient('summary text');
190
- const engine = new LLMSummaryEngine(mock.client);
191
- const content = 'Some original content to summarize';
192
- const summary = await engine.summarize(content, 'medium');
193
- mock.setResponse('expand result content');
194
- const expanded = await engine.expand(summary, 'full');
195
- expect(expanded).toBe('expand result content');
196
- });
197
- it('summary.summaryTokenCount is a positive integer set from LLM response outputTokens (30)', async () => {
198
- const mock = createMockLLMClient();
199
- const engine = new LLMSummaryEngine(mock.client);
200
- const summary = await engine.summarize('content', 'medium');
201
- expect(summary.summaryTokenCount).toBeDefined();
202
- expect(typeof summary.summaryTokenCount).toBe('number');
203
- expect(summary.summaryTokenCount).toBeGreaterThan(0);
204
- expect(summary.summaryTokenCount).toBe(30);
205
- });
206
- it('summary.originalTokenCount is a positive integer set from LLM response inputTokens (100)', async () => {
207
- const mock = createMockLLMClient();
208
- const engine = new LLMSummaryEngine(mock.client);
209
- const summary = await engine.summarize('content', 'medium');
210
- expect(summary.originalTokenCount).toBeDefined();
211
- expect(typeof summary.originalTokenCount).toBe('number');
212
- expect(summary.originalTokenCount).toBeGreaterThan(0);
213
- expect(summary.originalTokenCount).toBe(100);
214
- });
215
- });
216
- // ---------------------------------------------------------------------------
217
- // AC4: ConvergenceController integration with AutoSummarizer
218
- // ---------------------------------------------------------------------------
219
- describe('ConvergenceController with AutoSummarizer integration', () => {
220
- it('recordIterationContext appends to getStoredContexts — length 3 after 3 calls', () => {
221
- const controller = createConvergenceController();
222
- controller.recordIterationContext({ index: 0, content: 'ctx 0', tokenEstimate: 10 });
223
- controller.recordIterationContext({ index: 1, content: 'ctx 1', tokenEstimate: 10 });
224
- controller.recordIterationContext({ index: 2, content: 'ctx 2', tokenEstimate: 10 });
225
- expect(controller.getStoredContexts()).toHaveLength(3);
226
- });
227
- it('prepareForIteration without autoSummarizer returns stored contexts unchanged', async () => {
228
- const controller = createConvergenceController();
229
- controller.recordIterationContext({ index: 0, content: 'ctx 0', tokenEstimate: 50 });
230
- controller.recordIterationContext({ index: 1, content: 'ctx 1', tokenEstimate: 50 });
231
- const result = await controller.prepareForIteration(2);
232
- expect(result).toHaveLength(2);
233
- expect(isCompressed(result[0])).toBe(false);
234
- expect(isCompressed(result[1])).toBe(false);
235
- });
236
- it('after 6 contexts at 40 tokens each (total 240 > 160), prepareForIteration(5) returns 6 entries', async () => {
237
- const mockEngine = new MockSummaryEngine();
238
- const autoSummarizer = new AutoSummarizer(mockEngine, 200, {
239
- threshold: 0.8,
240
- targetLevel: 'medium',
241
- });
242
- const controller = createConvergenceController({ autoSummarizer });
243
- for (let i = 0; i < 6; i++) {
244
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 40 });
245
- }
246
- const result = await controller.prepareForIteration(5);
247
- expect(result).toHaveLength(6);
248
- });
249
- it('all returned entries with index < 5 have compressed: true after prepareForIteration(5)', async () => {
250
- const mockEngine = new MockSummaryEngine();
251
- const autoSummarizer = new AutoSummarizer(mockEngine, 200, {
252
- threshold: 0.8,
253
- targetLevel: 'medium',
254
- });
255
- const controller = createConvergenceController({ autoSummarizer });
256
- for (let i = 0; i < 6; i++) {
257
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 40 });
258
- }
259
- const result = await controller.prepareForIteration(5);
260
- const compressedEntries = result.filter((c) => c.index < 5);
261
- expect(compressedEntries.every(isCompressed)).toBe(true);
262
- });
263
- it('entry at index 5 lacks "compressed" key (is plain IterationContext)', async () => {
264
- const mockEngine = new MockSummaryEngine();
265
- const autoSummarizer = new AutoSummarizer(mockEngine, 200, {
266
- threshold: 0.8,
267
- targetLevel: 'medium',
268
- });
269
- const controller = createConvergenceController({ autoSummarizer });
270
- for (let i = 0; i < 6; i++) {
271
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 40 });
272
- }
273
- const result = await controller.prepareForIteration(5);
274
- const entry5 = result.find((c) => c.index === 5);
275
- expect(entry5).toBeDefined();
276
- expect(isCompressed(entry5)).toBe(false);
277
- });
278
- it('each compressed entry has summary.level === "medium" (the configured targetLevel)', async () => {
279
- const mockEngine = new MockSummaryEngine();
280
- const autoSummarizer = new AutoSummarizer(mockEngine, 200, {
281
- threshold: 0.8,
282
- targetLevel: 'medium',
283
- });
284
- const controller = createConvergenceController({ autoSummarizer });
285
- for (let i = 0; i < 6; i++) {
286
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 40 });
287
- }
288
- const result = await controller.prepareForIteration(5);
289
- const compressedEntries = result.filter(isCompressed);
290
- for (const entry of compressedEntries) {
291
- expect(entry.summary.level).toBe('medium');
292
- }
293
- });
294
- it('getStoredContexts().length === 6 after compression', async () => {
295
- const mockEngine = new MockSummaryEngine();
296
- const autoSummarizer = new AutoSummarizer(mockEngine, 200, {
297
- threshold: 0.8,
298
- targetLevel: 'medium',
299
- });
300
- const controller = createConvergenceController({ autoSummarizer });
301
- for (let i = 0; i < 6; i++) {
302
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 40 });
303
- }
304
- await controller.prepareForIteration(5);
305
- expect(controller.getStoredContexts()).toHaveLength(6);
306
- });
307
- it('MockSummaryEngine.callCount === 5 after compressing indices 0–4', async () => {
308
- const mockEngine = new MockSummaryEngine();
309
- const autoSummarizer = new AutoSummarizer(mockEngine, 200, {
310
- threshold: 0.8,
311
- targetLevel: 'medium',
312
- });
313
- const controller = createConvergenceController({ autoSummarizer });
314
- for (let i = 0; i < 6; i++) {
315
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 40 });
316
- }
317
- await controller.prepareForIteration(5);
318
- expect(mockEngine.callCount).toBe(5);
319
- });
320
- });
321
- // ---------------------------------------------------------------------------
322
- // AC5: Hash and metadata integrity
323
- // ---------------------------------------------------------------------------
324
- describe('Hash and metadata integrity', () => {
325
- const content = `\`\`\`js\nconst x = 1\n\`\`\`\n\nFile: src/foo/bar.ts\n\nError: ENOENT: file not found`;
326
- it('summary.originalHash is a 64-character lowercase hex string', async () => {
327
- const mock = createMockLLMClient();
328
- const engine = new LLMSummaryEngine(mock.client);
329
- const summary = await engine.summarize(content, 'medium');
330
- expect(summary.originalHash).toHaveLength(64);
331
- expect(summary.originalHash).toMatch(/^[0-9a-f]{64}$/);
332
- });
333
- it('summary.originalHash matches SHA-256 of the input content', async () => {
334
- const mock = createMockLLMClient();
335
- const engine = new LLMSummaryEngine(mock.client);
336
- const summary = await engine.summarize(content, 'medium');
337
- const expectedHash = createHash('sha256').update(content).digest('hex');
338
- expect(summary.originalHash).toBe(expectedHash);
339
- });
340
- it('summary.createdAt yields a valid non-NaN date when parsed by new Date()', async () => {
341
- const mock = createMockLLMClient();
342
- const engine = new LLMSummaryEngine(mock.client);
343
- const summary = await engine.summarize(content, 'medium');
344
- const parsed = new Date(summary.createdAt);
345
- expect(Number.isNaN(parsed.getTime())).toBe(false);
346
- expect(parsed.getTime()).toBeGreaterThan(0);
347
- });
348
- it('summary.summaryTokenCount is a positive integer', async () => {
349
- const mock = createMockLLMClient();
350
- const engine = new LLMSummaryEngine(mock.client);
351
- const summary = await engine.summarize(content, 'medium');
352
- expect(summary.summaryTokenCount).toBeDefined();
353
- expect(summary.summaryTokenCount).toBeGreaterThan(0);
354
- expect(Number.isInteger(summary.summaryTokenCount)).toBe(true);
355
- });
356
- it('summary.originalTokenCount is a positive integer', async () => {
357
- const mock = createMockLLMClient();
358
- const engine = new LLMSummaryEngine(mock.client);
359
- const summary = await engine.summarize(content, 'medium');
360
- expect(summary.originalTokenCount).toBeDefined();
361
- expect(summary.originalTokenCount).toBeGreaterThan(0);
362
- expect(Number.isInteger(summary.originalTokenCount)).toBe(true);
363
- });
364
- });
365
- // ---------------------------------------------------------------------------
366
- // AC6: Boundary conditions for shouldTrigger and estimateTokens
367
- // ---------------------------------------------------------------------------
368
- describe('shouldTrigger boundary conditions', () => {
369
- // Model limit = 100, threshold = 0.8 → trigger at total strictly > 80
370
- const mockEngine = new MockSummaryEngine();
371
- it('total === 80 (exactly at threshold) returns false', () => {
372
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.8 });
373
- const iterations = [
374
- { index: 0, content: '', tokenEstimate: 40 },
375
- { index: 1, content: '', tokenEstimate: 40 },
376
- ];
377
- expect(summarizer.shouldTrigger(iterations)).toBe(false);
378
- });
379
- it('total === 81 (one above threshold) returns true', () => {
380
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.8 });
381
- const iterations = [
382
- { index: 0, content: '', tokenEstimate: 40 },
383
- { index: 1, content: '', tokenEstimate: 41 },
384
- ];
385
- expect(summarizer.shouldTrigger(iterations)).toBe(true);
386
- });
387
- it('total === 40 (well below threshold) returns false', () => {
388
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.8 });
389
- const iterations = [
390
- { index: 0, content: '', tokenEstimate: 40 },
391
- ];
392
- expect(summarizer.shouldTrigger(iterations)).toBe(false);
393
- });
394
- it('iteration with no tokenEstimate and 40-char content uses estimateTokens → 10 tokens → false', () => {
395
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.8 });
396
- // 40 chars / 4 = 10 tokens; 10 > 80? → false
397
- const content40 = 'a'.repeat(40);
398
- expect(estimateTokens(content40)).toBe(10);
399
- const iterations = [{ index: 0, content: content40 }];
400
- // Manually computed: 10 tokens, trigger at >80 → false
401
- expect(summarizer.shouldTrigger(iterations)).toBe(false);
402
- });
403
- it('explicit tokenEstimate=90 overrides content-based estimate and triggers (90 > 80)', () => {
404
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.8 });
405
- // content is 'a' (1 char → estimateTokens=1), but tokenEstimate=90 overrides
406
- const iterations = [
407
- { index: 0, content: 'a', tokenEstimate: 90 },
408
- ];
409
- expect(summarizer.shouldTrigger(iterations)).toBe(true);
410
- });
411
- it('threshold=0.5: trigger fires at total > 50 (51 tokens → true)', () => {
412
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.5 });
413
- const iterations = [
414
- { index: 0, content: '', tokenEstimate: 51 },
415
- ];
416
- expect(summarizer.shouldTrigger(iterations)).toBe(true);
417
- });
418
- it('threshold=0.5: does not fire at exactly 50 tokens', () => {
419
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.5 });
420
- const iterations = [
421
- { index: 0, content: '', tokenEstimate: 50 },
422
- ];
423
- expect(summarizer.shouldTrigger(iterations)).toBe(false);
424
- });
425
- it('threshold=0.95: does not fire at 94 tokens (94 is not > 95)', () => {
426
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.95 });
427
- const iterations = [
428
- { index: 0, content: '', tokenEstimate: 94 },
429
- ];
430
- expect(summarizer.shouldTrigger(iterations)).toBe(false);
431
- });
432
- it('threshold=0.95: fires at 96 tokens (96 > 95)', () => {
433
- const summarizer = new AutoSummarizer(mockEngine, 100, { threshold: 0.95 });
434
- const iterations = [
435
- { index: 0, content: '', tokenEstimate: 96 },
436
- ];
437
- expect(summarizer.shouldTrigger(iterations)).toBe(true);
438
- });
439
- });
440
- // ---------------------------------------------------------------------------
441
- // AC7: Multi-round compression through ConvergenceController
442
- // ---------------------------------------------------------------------------
443
- describe('Multi-round compression via ConvergenceController', () => {
444
- // limit=100, threshold=0.8 → trigger at > 80
445
- function setupController() {
446
- const mockEngine = new MockSummaryEngine();
447
- const autoSummarizer = new AutoSummarizer(mockEngine, 100, {
448
- threshold: 0.8,
449
- targetLevel: 'medium',
450
- });
451
- const controller = createConvergenceController({ autoSummarizer });
452
- return { mockEngine, autoSummarizer, controller };
453
- }
454
- it('after first prepareForIteration(4), getStoredContexts() has 5 entries with indices 0–3 compressed', async () => {
455
- const { controller } = setupController();
456
- // Record 5 contexts (0-4), each with 25 tokens → total=125 > 80 → triggers
457
- for (let i = 0; i < 5; i++) {
458
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 25 });
459
- }
460
- await controller.prepareForIteration(4);
461
- const stored = controller.getStoredContexts();
462
- expect(stored).toHaveLength(5);
463
- // Indices 0-3 should be compressed, index 4 should be plain
464
- for (let i = 0; i < 4; i++) {
465
- const entry = stored.find((c) => c.index === i);
466
- expect(entry).toBeDefined();
467
- expect(isCompressed(entry)).toBe(true);
468
- }
469
- const entry4 = stored.find((c) => c.index === 4);
470
- expect(entry4).toBeDefined();
471
- expect(isCompressed(entry4)).toBe(false);
472
- });
473
- it('callCount increases by only 1 after second round (already-compressed 0–3 not re-summarized)', async () => {
474
- const { mockEngine, controller } = setupController();
475
- // First round: record 5 contexts (0-4) at 25 tokens each
476
- for (let i = 0; i < 5; i++) {
477
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 25 });
478
- }
479
- await controller.prepareForIteration(4);
480
- const callCountAfterFirst = mockEngine.callCount; // should be 4
481
- // Record context index=5 with tokenEstimate=90 → uncompressed=[iter4_25, iter5_90]=115>80 → triggers
482
- controller.recordIterationContext({ index: 5, content: 'ctx 5', tokenEstimate: 90 });
483
- await controller.prepareForIteration(5);
484
- expect(mockEngine.callCount).toBe(callCountAfterFirst + 1);
485
- });
486
- it('getStoredContexts() after second round has length 6', async () => {
487
- const { controller } = setupController();
488
- for (let i = 0; i < 5; i++) {
489
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 25 });
490
- }
491
- await controller.prepareForIteration(4);
492
- controller.recordIterationContext({ index: 5, content: 'ctx 5', tokenEstimate: 90 });
493
- await controller.prepareForIteration(5);
494
- expect(controller.getStoredContexts()).toHaveLength(6);
495
- });
496
- it('indices 0–4 all compressed: true, index 5 is plain IterationContext after second round', async () => {
497
- const { controller } = setupController();
498
- for (let i = 0; i < 5; i++) {
499
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 25 });
500
- }
501
- await controller.prepareForIteration(4);
502
- controller.recordIterationContext({ index: 5, content: 'ctx 5', tokenEstimate: 90 });
503
- await controller.prepareForIteration(5);
504
- const stored = controller.getStoredContexts();
505
- for (let i = 0; i < 5; i++) {
506
- const entry = stored.find((c) => c.index === i);
507
- expect(entry).toBeDefined();
508
- expect(isCompressed(entry)).toBe(true);
509
- }
510
- const entry5 = stored.find((c) => c.index === 5);
511
- expect(entry5).toBeDefined();
512
- expect(isCompressed(entry5)).toBe(false);
513
- });
514
- it('merged array is sorted by index (index 0 first, index 5 last) after second round', async () => {
515
- const { controller } = setupController();
516
- for (let i = 0; i < 5; i++) {
517
- controller.recordIterationContext({ index: i, content: `ctx ${i}`, tokenEstimate: 25 });
518
- }
519
- await controller.prepareForIteration(4);
520
- controller.recordIterationContext({ index: 5, content: 'ctx 5', tokenEstimate: 90 });
521
- await controller.prepareForIteration(5);
522
- const stored = controller.getStoredContexts();
523
- expect(stored[0]?.index).toBe(0);
524
- expect(stored[stored.length - 1]?.index).toBe(5);
525
- // Verify fully sorted
526
- for (let i = 1; i < stored.length; i++) {
527
- expect(stored[i].index).toBeGreaterThan(stored[i - 1].index);
528
- }
529
- });
530
- });
531
- // Ensure SUMMARY_BUDGET is referenced to avoid import being flagged as unused
532
- void SUMMARY_BUDGET;
533
- //# sourceMappingURL=pyramid-summary-integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pyramid-summary-integration.test.js","sourceRoot":"","sources":["../../../src/context/__tests__/pyramid-summary-integration.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EACL,cAAc,EACd,cAAc,GAGf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,cAAc,GAKf,MAAM,qBAAqB,CAAA;AAI5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAA;AAE7E,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,SAAS,mBAAmB,CAAC,eAAe,GAAG,sBAAsB;IACnE,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,eAAe,GAAG,eAAe,CAAA;IAErC,MAAM,MAAM,GAAG;QACb,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,IAAgB,EAAE,EAAE;YACzC,SAAS,EAAE,CAAA;YACX,OAAO;gBACL,OAAO,EAAE,eAAe;gBACxB,SAAS,EAAE,EAAE;gBACb,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE;gBAC/D,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,MAAe;gBAC3B,gBAAgB,EAAE,EAAE;aACrB,CAAA;QACH,CAAC,CAAC;KACqB,CAAA;IAEzB,OAAO;QACL,MAAM;QACN,IAAI,SAAS;YACX,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,WAAW,CAAC,OAAe;YACzB,eAAe,GAAG,OAAO,CAAA;QAC3B,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,iBAAiB;IACZ,IAAI,GAAG,MAAM,CAAA;IACtB,SAAS,GAAG,CAAC,CAAA;IAEb,KAAK,CAAC,SAAS,CACb,OAAe,EACf,WAAyB,EACzB,KAAwB;QAExB,IAAI,CAAC,SAAS,EAAE,CAAA;QAChB,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAC7B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC,SAAS;YAC3C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,kBAAkB,EAAE,GAAG;YACvB,iBAAiB,EAAE,EAAE;SACtB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACV,OAAgB,EAChB,YAA0B,EAC1B,IAAoB;QAEpB,OAAO,IAAI,EAAE,eAAe,IAAI,OAAO,CAAC,OAAO,CAAA;IACjD,CAAC;CACF;AAED,wBAAwB;AACxB,SAAS,YAAY,CACnB,GAAkD;IAElD,OAAO,YAAY,IAAI,GAAG,CAAA;AAC5B,CAAC;AAED,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAE9E,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,+DAA+D;IAC/D,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAE,CAAA;IAC1C,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;IAE3E,gEAAgE;IAChE,MAAM,UAAU,GAAuB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3E,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,aAAa,CAAC,UAAU;QACjC,aAAa,EAAE,EAAE;KAClB,CAAC,CAAC,CAAA;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;QACpG,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACnE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAA;YAC1D,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;YAC3B,MAAM,CAAC,YAAY,IAAK,KAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpD,MAAM,CAAE,KAAoC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrE,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACnE,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAA;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;QAC5B,MAAM,CAAC,YAAY,IAAK,MAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACtD,MAAM,CAAE,MAA2B,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IAC1E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACnE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAE9E,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,MAAM,eAAe,GACnB,0FAA0F,CAAA;IAE5F,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,CAAC,CAAA;QAC1E,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,CAAC,CAAA;QAC1E,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;QACjE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,CAAC,CAAA;QAC1E,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QAC9D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,CAAC,CAAA;QAC1E,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oGAAoG,EAAE,KAAK,IAAI,EAAE;QAClH,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,MAAM,GAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;QAChE,4BAA4B;QAC5B,MAAM,SAAS,GAAc,EAAE,CAAA;QAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAA;QAChE,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAA;QACrC,4DAA4D;QAC5D,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,CAAC,CAAA;QAC3D,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;QAC/D,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC/E,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;QACpG,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QAC9D,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAE9E,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;QACpG,MAAM,IAAI,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,oCAAoC,CAAA;QACpD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACzD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAA;QAC7C,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACpC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,IAAI,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,oCAAoC,CAAA;QACpD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACzD,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAA;QACzC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACrD,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACvG,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAC3D,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAA;QAC/C,MAAM,CAAC,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACvD,MAAM,CAAC,OAAO,CAAC,iBAAkB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0FAA0F,EAAE,KAAK,IAAI,EAAE;QACxG,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAC3D,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAA;QAChD,MAAM,CAAC,OAAO,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACxD,MAAM,CAAC,OAAO,CAAC,kBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACtD,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E,QAAQ,CAAC,uDAAuD,EAAE,GAAG,EAAE;IACrE,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACtF,MAAM,UAAU,GAAG,2BAA2B,EAAE,CAAA;QAChD,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACpF,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACpF,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACpF,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,UAAU,GAAG,2BAA2B,EAAE,CAAA;QAChD,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACpF,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACpF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5C,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gGAAgG,EAAE,KAAK,IAAI,EAAE;QAC9G,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAE,CAAA;QAC1C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE;YACzD,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,2BAA2B,CAAC,EAAE,cAAc,EAAE,CAAC,CAAA;QAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACzF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;QACtG,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAE,CAAA;QAC1C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE;YACzD,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,2BAA2B,CAAC,EAAE,cAAc,EAAE,CAAC,CAAA;QAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACzF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACtD,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAC3D,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAE,CAAA;QAC1C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE;YACzD,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,2BAA2B,CAAC,EAAE,cAAc,EAAE,CAAC,CAAA;QAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACzF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAA;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;QAC5B,MAAM,CAAC,YAAY,CAAC,MAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QACjG,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAE,CAAA;QAC1C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE;YACzD,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,2BAA2B,CAAC,EAAE,cAAc,EAAE,CAAC,CAAA;QAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACzF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACtD,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACrD,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAE,CAAA;QAC1C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE;YACzD,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,2BAA2B,CAAC,EAAE,cAAc,EAAE,CAAC,CAAA;QAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACzF,CAAC;QAED,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAE,CAAA;QAC1C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE;YACzD,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,2BAA2B,CAAC,EAAE,cAAc,EAAE,CAAC,CAAA;QAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACzF,CAAC;QAED,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,MAAM,OAAO,GAAG,wFAAwF,CAAA;IAExG,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACzD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAC7C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACzD,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACvE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACzD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACzD,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAA;QAC/C,MAAM,CAAC,OAAO,CAAC,iBAAkB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACzD,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAA;QAChD,MAAM,CAAC,OAAO,CAAC,kBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACtD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,sEAAsE;IACtE,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAE,CAAA;IAE1C,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1E,MAAM,UAAU,GAAuB;YACrC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;YAC5C,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;SAC7C,CAAA;QACD,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1E,MAAM,UAAU,GAAuB;YACrC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;YAC5C,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;SAC7C,CAAA;QACD,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1E,MAAM,UAAU,GAAuB;YACrC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;SAC7C,CAAA;QACD,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6FAA6F,EAAE,GAAG,EAAE;QACrG,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1E,6CAA6C;QAC7C,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAChC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC1C,MAAM,UAAU,GAAuB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;QACzE,uDAAuD;QACvD,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;QAC3F,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1E,6EAA6E;QAC7E,MAAM,UAAU,GAAuB;YACrC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE;SAC9C,CAAA;QACD,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1E,MAAM,UAAU,GAAuB;YACrC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;SAC7C,CAAA;QACD,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1E,MAAM,UAAU,GAAuB;YACrC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;SAC7C,CAAA;QACD,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3E,MAAM,UAAU,GAAuB;YACrC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;SAC7C,CAAA;QACD,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3E,MAAM,UAAU,GAAuB;YACrC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;SAC7C,CAAA;QACD,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E,QAAQ,CAAC,mDAAmD,EAAE,GAAG,EAAE;IACjE,6CAA6C;IAE7C,SAAS,eAAe;QACtB,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAE,CAAA;QAC1C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE;YACzD,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,2BAA2B,CAAC,EAAE,cAAc,EAAE,CAAC,CAAA;QAClE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,CAAA;IACnD,CAAC;IAED,EAAE,CAAC,mGAAmG,EAAE,KAAK,IAAI,EAAE;QACjH,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAA;QACxC,2EAA2E;QAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACzF,CAAC;QACD,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAA;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC9B,4DAA4D;QAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAA;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;YAC3B,MAAM,CAAC,YAAY,CAAC,KAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAA;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;QAC5B,MAAM,CAAC,YAAY,CAAC,MAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6FAA6F,EAAE,KAAK,IAAI,EAAE;QAC3G,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAA;QACpD,yDAAyD;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACzF,CAAC;QACD,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,mBAAmB,GAAG,UAAU,CAAC,SAAS,CAAA,CAAC,cAAc;QAE/D,qGAAqG;QACrG,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACpF,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QAEvC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAA;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACzF,CAAC;QACD,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACvC,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACpF,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;QACtG,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAA;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACzF,CAAC;QACD,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACvC,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACpF,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QAEvC,MAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAA;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAA;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;YAC3B,MAAM,CAAC,YAAY,CAAC,KAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAA;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;QAC5B,MAAM,CAAC,YAAY,CAAC,MAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAA;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACzF,CAAC;QACD,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACvC,UAAU,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;QACpF,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QAEvC,MAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAA;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChD,sBAAsB;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,KAAK,CAAC,CAAA;QAChE,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,KAAK,cAAc,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=summarizer.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"summarizer.test.d.ts","sourceRoot":"","sources":["../../../src/context/__tests__/summarizer.test.ts"],"names":[],"mappings":""}