@mcp-abap-adt/llm-agent 2.9.2 → 2.10.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 (134) hide show
  1. package/dist/index.d.ts +11 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +7 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/smart-agent/agent.d.ts +18 -1
  6. package/dist/smart-agent/agent.d.ts.map +1 -1
  7. package/dist/smart-agent/agent.js +176 -21
  8. package/dist/smart-agent/agent.js.map +1 -1
  9. package/dist/smart-agent/builder.d.ts +114 -51
  10. package/dist/smart-agent/builder.d.ts.map +1 -1
  11. package/dist/smart-agent/builder.js +234 -110
  12. package/dist/smart-agent/builder.js.map +1 -1
  13. package/dist/smart-agent/cli.d.ts +1 -0
  14. package/dist/smart-agent/cli.d.ts.map +1 -1
  15. package/dist/smart-agent/cli.js +2 -0
  16. package/dist/smart-agent/cli.js.map +1 -1
  17. package/dist/smart-agent/config/config-watcher.d.ts +4 -0
  18. package/dist/smart-agent/config/config-watcher.d.ts.map +1 -1
  19. package/dist/smart-agent/config/config-watcher.js +8 -0
  20. package/dist/smart-agent/config/config-watcher.js.map +1 -1
  21. package/dist/smart-agent/config.d.ts +2 -1
  22. package/dist/smart-agent/config.d.ts.map +1 -1
  23. package/dist/smart-agent/config.js +46 -4
  24. package/dist/smart-agent/config.js.map +1 -1
  25. package/dist/smart-agent/interfaces/index.d.ts +1 -1
  26. package/dist/smart-agent/interfaces/index.d.ts.map +1 -1
  27. package/dist/smart-agent/interfaces/index.js.map +1 -1
  28. package/dist/smart-agent/interfaces/rag.d.ts +16 -0
  29. package/dist/smart-agent/interfaces/rag.d.ts.map +1 -1
  30. package/dist/smart-agent/pipeline/condition-evaluator.d.ts +35 -0
  31. package/dist/smart-agent/pipeline/condition-evaluator.d.ts.map +1 -0
  32. package/dist/smart-agent/pipeline/condition-evaluator.js +143 -0
  33. package/dist/smart-agent/pipeline/condition-evaluator.js.map +1 -0
  34. package/dist/smart-agent/pipeline/context.d.ts +104 -0
  35. package/dist/smart-agent/pipeline/context.d.ts.map +1 -0
  36. package/dist/smart-agent/pipeline/context.js +19 -0
  37. package/dist/smart-agent/pipeline/context.js.map +1 -0
  38. package/dist/smart-agent/pipeline/default-pipeline.d.ts +45 -0
  39. package/dist/smart-agent/pipeline/default-pipeline.d.ts.map +1 -0
  40. package/dist/smart-agent/pipeline/default-pipeline.js +118 -0
  41. package/dist/smart-agent/pipeline/default-pipeline.js.map +1 -0
  42. package/dist/smart-agent/pipeline/executor.d.ts +54 -0
  43. package/dist/smart-agent/pipeline/executor.d.ts.map +1 -0
  44. package/dist/smart-agent/pipeline/executor.js +133 -0
  45. package/dist/smart-agent/pipeline/executor.js.map +1 -0
  46. package/dist/smart-agent/pipeline/handlers/assemble.d.ts +16 -0
  47. package/dist/smart-agent/pipeline/handlers/assemble.d.ts.map +1 -0
  48. package/dist/smart-agent/pipeline/handlers/assemble.js +57 -0
  49. package/dist/smart-agent/pipeline/handlers/assemble.js.map +1 -0
  50. package/dist/smart-agent/pipeline/handlers/classify.d.ts +21 -0
  51. package/dist/smart-agent/pipeline/handlers/classify.d.ts.map +1 -0
  52. package/dist/smart-agent/pipeline/handlers/classify.js +53 -0
  53. package/dist/smart-agent/pipeline/handlers/classify.js.map +1 -0
  54. package/dist/smart-agent/pipeline/handlers/expand.d.ts +16 -0
  55. package/dist/smart-agent/pipeline/handlers/expand.d.ts.map +1 -0
  56. package/dist/smart-agent/pipeline/handlers/expand.js +24 -0
  57. package/dist/smart-agent/pipeline/handlers/expand.js.map +1 -0
  58. package/dist/smart-agent/pipeline/handlers/index.d.ts +28 -0
  59. package/dist/smart-agent/pipeline/handlers/index.d.ts.map +1 -0
  60. package/dist/smart-agent/pipeline/handlers/index.js +39 -0
  61. package/dist/smart-agent/pipeline/handlers/index.js.map +1 -0
  62. package/dist/smart-agent/pipeline/handlers/rag-query.d.ts +25 -0
  63. package/dist/smart-agent/pipeline/handlers/rag-query.d.ts.map +1 -0
  64. package/dist/smart-agent/pipeline/handlers/rag-query.js +53 -0
  65. package/dist/smart-agent/pipeline/handlers/rag-query.js.map +1 -0
  66. package/dist/smart-agent/pipeline/handlers/rag-upsert.d.ts +17 -0
  67. package/dist/smart-agent/pipeline/handlers/rag-upsert.d.ts.map +1 -0
  68. package/dist/smart-agent/pipeline/handlers/rag-upsert.js +47 -0
  69. package/dist/smart-agent/pipeline/handlers/rag-upsert.js.map +1 -0
  70. package/dist/smart-agent/pipeline/handlers/rerank.d.ts +16 -0
  71. package/dist/smart-agent/pipeline/handlers/rerank.d.ts.map +1 -0
  72. package/dist/smart-agent/pipeline/handlers/rerank.js +38 -0
  73. package/dist/smart-agent/pipeline/handlers/rerank.js.map +1 -0
  74. package/dist/smart-agent/pipeline/handlers/summarize.d.ts +17 -0
  75. package/dist/smart-agent/pipeline/handlers/summarize.d.ts.map +1 -0
  76. package/dist/smart-agent/pipeline/handlers/summarize.js +47 -0
  77. package/dist/smart-agent/pipeline/handlers/summarize.js.map +1 -0
  78. package/dist/smart-agent/pipeline/handlers/tool-loop.d.ts +32 -0
  79. package/dist/smart-agent/pipeline/handlers/tool-loop.d.ts.map +1 -0
  80. package/dist/smart-agent/pipeline/handlers/tool-loop.js +416 -0
  81. package/dist/smart-agent/pipeline/handlers/tool-loop.js.map +1 -0
  82. package/dist/smart-agent/pipeline/handlers/tool-select.d.ts +21 -0
  83. package/dist/smart-agent/pipeline/handlers/tool-select.d.ts.map +1 -0
  84. package/dist/smart-agent/pipeline/handlers/tool-select.js +95 -0
  85. package/dist/smart-agent/pipeline/handlers/tool-select.js.map +1 -0
  86. package/dist/smart-agent/pipeline/handlers/translate.d.ts +18 -0
  87. package/dist/smart-agent/pipeline/handlers/translate.d.ts.map +1 -0
  88. package/dist/smart-agent/pipeline/handlers/translate.js +39 -0
  89. package/dist/smart-agent/pipeline/handlers/translate.js.map +1 -0
  90. package/dist/smart-agent/pipeline/index.d.ts +14 -0
  91. package/dist/smart-agent/pipeline/index.d.ts.map +1 -0
  92. package/dist/smart-agent/pipeline/index.js +16 -0
  93. package/dist/smart-agent/pipeline/index.js.map +1 -0
  94. package/dist/smart-agent/pipeline/stage-handler.d.ts +36 -0
  95. package/dist/smart-agent/pipeline/stage-handler.d.ts.map +1 -0
  96. package/dist/smart-agent/pipeline/stage-handler.js +24 -0
  97. package/dist/smart-agent/pipeline/stage-handler.js.map +1 -0
  98. package/dist/smart-agent/pipeline/types.d.ts +129 -0
  99. package/dist/smart-agent/pipeline/types.d.ts.map +1 -0
  100. package/dist/smart-agent/pipeline/types.js +54 -0
  101. package/dist/smart-agent/pipeline/types.js.map +1 -0
  102. package/dist/smart-agent/pipeline.d.ts +22 -6
  103. package/dist/smart-agent/pipeline.d.ts.map +1 -1
  104. package/dist/smart-agent/pipeline.js +5 -142
  105. package/dist/smart-agent/pipeline.js.map +1 -1
  106. package/dist/smart-agent/plugins/index.d.ts +4 -0
  107. package/dist/smart-agent/plugins/index.d.ts.map +1 -0
  108. package/dist/smart-agent/plugins/index.js +3 -0
  109. package/dist/smart-agent/plugins/index.js.map +1 -0
  110. package/dist/smart-agent/plugins/loader.d.ts +67 -0
  111. package/dist/smart-agent/plugins/loader.d.ts.map +1 -0
  112. package/dist/smart-agent/plugins/loader.js +114 -0
  113. package/dist/smart-agent/plugins/loader.js.map +1 -0
  114. package/dist/smart-agent/plugins/types.d.ts +149 -0
  115. package/dist/smart-agent/plugins/types.d.ts.map +1 -0
  116. package/dist/smart-agent/plugins/types.js +111 -0
  117. package/dist/smart-agent/plugins/types.js.map +1 -0
  118. package/dist/smart-agent/providers.d.ts +76 -0
  119. package/dist/smart-agent/providers.d.ts.map +1 -0
  120. package/dist/smart-agent/providers.js +173 -0
  121. package/dist/smart-agent/providers.js.map +1 -0
  122. package/dist/smart-agent/rag/embedder-factories.d.ts +9 -0
  123. package/dist/smart-agent/rag/embedder-factories.d.ts.map +1 -0
  124. package/dist/smart-agent/rag/embedder-factories.js +27 -0
  125. package/dist/smart-agent/rag/embedder-factories.js.map +1 -0
  126. package/dist/smart-agent/rag/index.d.ts +7 -0
  127. package/dist/smart-agent/rag/index.d.ts.map +1 -1
  128. package/dist/smart-agent/rag/index.js +4 -0
  129. package/dist/smart-agent/rag/index.js.map +1 -1
  130. package/dist/smart-agent/smart-server.d.ts +25 -1
  131. package/dist/smart-agent/smart-server.d.ts.map +1 -1
  132. package/dist/smart-agent/smart-server.js +122 -27
  133. package/dist/smart-agent/smart-server.js.map +1 -1
  134. package/package.json +2 -1
package/dist/index.d.ts CHANGED
@@ -20,11 +20,22 @@ export type { IToolCache } from './smart-agent/cache/types.js';
20
20
  export { ConfigWatcher, type ConfigWatcherOptions, type HotReloadableConfig, } from './smart-agent/config/config-watcher.js';
21
21
  export { HealthChecker, type HealthCheckerDeps, } from './smart-agent/health/health-checker.js';
22
22
  export type { CircuitBreakerStatus, HealthComponentStatus, HealthStatus, } from './smart-agent/health/types.js';
23
+ export type { EmbedderFactory, EmbedderFactoryConfig, IEmbedder, IRag, } from './smart-agent/interfaces/rag.js';
24
+ export type { CallOptions, LlmTool, RagError, RagResult, Result, } from './smart-agent/interfaces/types.js';
23
25
  export { type CounterSnapshot, type HistogramSnapshot, InMemoryMetrics, type MetricsSnapshot, } from './smart-agent/metrics/in-memory-metrics.js';
24
26
  export { NoopMetrics } from './smart-agent/metrics/noop-metrics.js';
25
27
  export type { ICounter, IHistogram, IMetrics, } from './smart-agent/metrics/types.js';
28
+ export type { BuiltInStageType, ControlFlowType, IStageHandler, PipelineContext, StageDefinition, StageType, StructuredPipelineDefinition, } from './smart-agent/pipeline/index.js';
29
+ export { buildDefaultHandlerRegistry, evaluateCondition, getDefaultPipelineDefinition, getDefaultStages, PipelineExecutor, } from './smart-agent/pipeline/index.js';
30
+ export type { IPluginLoader, LoadedPlugins, PluginExports, } from './smart-agent/plugins/index.js';
31
+ export { emptyLoadedPlugins, FileSystemPluginLoader, type FileSystemPluginLoaderConfig, getDefaultPluginDirs, loadPlugins, mergePluginExports, } from './smart-agent/plugins/index.js';
32
+ export { builtInEmbedderFactories } from './smart-agent/rag/embedder-factories.js';
33
+ export { InMemoryRag } from './smart-agent/rag/in-memory-rag.js';
34
+ export { OllamaEmbedder, type OllamaEmbedderConfig, OllamaRag, } from './smart-agent/rag/ollama-rag.js';
35
+ export { OpenAiEmbedder, type OpenAiEmbedderConfig, } from './smart-agent/rag/openai-embedder.js';
26
36
  export { QdrantRag, type QdrantRagConfig, } from './smart-agent/rag/qdrant-rag.js';
27
37
  export { type IQueryExpander, LlmQueryExpander, NoopQueryExpander, } from './smart-agent/rag/query-expander.js';
38
+ export { VectorRag, type VectorRagConfig, } from './smart-agent/rag/vector-rag.js';
28
39
  export { LlmReranker } from './smart-agent/reranker/llm-reranker.js';
29
40
  export { NoopReranker } from './smart-agent/reranker/noop-reranker.js';
30
41
  export type { IReranker } from './smart-agent/reranker/types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -28,10 +28,17 @@ export { ConfigWatcher, } from './smart-agent/config/config-watcher.js';
28
28
  export { HealthChecker, } from './smart-agent/health/health-checker.js';
29
29
  export { InMemoryMetrics, } from './smart-agent/metrics/in-memory-metrics.js';
30
30
  export { NoopMetrics } from './smart-agent/metrics/noop-metrics.js';
31
+ export { buildDefaultHandlerRegistry, evaluateCondition, getDefaultPipelineDefinition, getDefaultStages, PipelineExecutor, } from './smart-agent/pipeline/index.js';
32
+ export { emptyLoadedPlugins, FileSystemPluginLoader, getDefaultPluginDirs, loadPlugins, mergePluginExports, } from './smart-agent/plugins/index.js';
33
+ export { builtInEmbedderFactories } from './smart-agent/rag/embedder-factories.js';
34
+ export { InMemoryRag } from './smart-agent/rag/in-memory-rag.js';
35
+ export { OllamaEmbedder, OllamaRag, } from './smart-agent/rag/ollama-rag.js';
36
+ export { OpenAiEmbedder, } from './smart-agent/rag/openai-embedder.js';
31
37
  // Qdrant RAG
32
38
  export { QdrantRag, } from './smart-agent/rag/qdrant-rag.js';
33
39
  // Query Expander
34
40
  export { LlmQueryExpander, NoopQueryExpander, } from './smart-agent/rag/query-expander.js';
41
+ export { VectorRag, } from './smart-agent/rag/vector-rag.js';
35
42
  // Reranker
36
43
  export { LlmReranker } from './smart-agent/reranker/llm-reranker.js';
37
44
  export { NoopReranker } from './smart-agent/reranker/noop-reranker.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iEAAiE;AACjE,OAAO,EAAE,KAAK,EAAoB,MAAM,YAAY,CAAC;AACrD,OAAO,EACL,cAAc,GAEf,MAAM,6BAA6B,CAAC;AACrC,0CAA0C;AAC1C,OAAO,EAAE,SAAS,EAAwB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,aAAa,GAEd,MAAM,4BAA4B,CAAC;AACpC,8DAA8D;AAC9D,mFAAmF;AACnF,OAAO,EAAE,WAAW,EAA0B,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EACL,gBAAgB,GAEjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,cAAc,GAEf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAoB,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAEL,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAqB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC9E,gBAAgB;AAChB,2DAA2D;AAC3D,OAAO,EAGL,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AAExC,aAAa;AACb,OAAO,EAEL,gBAAgB,GAEjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAG9D,SAAS;AACT,OAAO,EACL,aAAa,GAGd,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,aAAa,GAEd,MAAM,wCAAwC,CAAC;AAOhD,OAAO,EAGL,eAAe,GAEhB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAOpE,aAAa;AACb,OAAO,EACL,SAAS,GAEV,MAAM,iCAAiC,CAAC;AACzC,iBAAiB;AACjB,OAAO,EAEL,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qCAAqC,CAAC;AAC7C,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAEvE,aAAa;AACb,OAAO,EACL,cAAc,GAGf,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAG1E,SAAS;AACT,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAOjE,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iEAAiE;AACjE,OAAO,EAAE,KAAK,EAAoB,MAAM,YAAY,CAAC;AACrD,OAAO,EACL,cAAc,GAEf,MAAM,6BAA6B,CAAC;AACrC,0CAA0C;AAC1C,OAAO,EAAE,SAAS,EAAwB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,aAAa,GAEd,MAAM,4BAA4B,CAAC;AACpC,8DAA8D;AAC9D,mFAAmF;AACnF,OAAO,EAAE,WAAW,EAA0B,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EACL,gBAAgB,GAEjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,cAAc,GAEf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAoB,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAEL,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAqB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC9E,gBAAgB;AAChB,2DAA2D;AAC3D,OAAO,EAGL,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AAExC,aAAa;AACb,OAAO,EAEL,gBAAgB,GAEjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAG9D,SAAS;AACT,OAAO,EACL,aAAa,GAGd,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,aAAa,GAEd,MAAM,wCAAwC,CAAC;AAsBhD,OAAO,EAGL,eAAe,GAEhB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAiBpE,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,4BAA4B,EAC5B,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AAOzC,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EAEtB,oBAAoB,EACpB,WAAW,EACX,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EACL,cAAc,EAEd,SAAS,GACV,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,cAAc,GAEf,MAAM,sCAAsC,CAAC;AAC9C,aAAa;AACb,OAAO,EACL,SAAS,GAEV,MAAM,iCAAiC,CAAC;AACzC,iBAAiB;AACjB,OAAO,EAEL,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,SAAS,GAEV,MAAM,iCAAiC,CAAC;AACzC,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAEvE,aAAa;AACb,OAAO,EACL,cAAc,GAGf,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAG1E,SAAS;AACT,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAOjE,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC"}
@@ -8,6 +8,8 @@ import type { IRag } from './interfaces/rag.js';
8
8
  import { type CallOptions, type LlmStreamChunk, type Result, SmartAgentError } from './interfaces/types.js';
9
9
  import type { ILogger } from './logger/index.js';
10
10
  import type { IMetrics } from './metrics/types.js';
11
+ import type { PipelineExecutor } from './pipeline/executor.js';
12
+ import type { StageDefinition } from './pipeline/types.js';
11
13
  import type { IPromptInjectionDetector, IToolPolicy, SessionPolicy } from './policy/types.js';
12
14
  import { type IQueryExpander } from './rag/query-expander.js';
13
15
  import type { IReranker } from './reranker/types.js';
@@ -59,6 +61,14 @@ export interface SmartAgentConfig {
59
61
  sessionTokenBudget?: number;
60
62
  /** Interval (ms) for SSE heartbeat comments during MCP tool execution. Default: 5000. */
61
63
  heartbeatIntervalMs?: number;
64
+ /** Whether classification stage runs. Default: true. When false, input is treated as a single action. */
65
+ classificationEnabled?: boolean;
66
+ /** RAG retrieval behavior. 'auto': based on SAP context detection (default), 'always': force retrieval, 'never': skip. */
67
+ ragRetrievalMode?: 'auto' | 'always' | 'never';
68
+ /** Whether to translate non-ASCII RAG queries to English. Default: true. */
69
+ ragTranslationEnabled?: boolean;
70
+ /** Whether to upsert classified subprompts to RAG stores. Default: true. */
71
+ ragUpsertEnabled?: boolean;
62
72
  }
63
73
  export type StopReason = 'stop' | 'iteration_limit' | 'tool_call_limit';
64
74
  export interface SmartAgentResponse {
@@ -75,6 +85,8 @@ export interface SmartAgentResponse {
75
85
  export declare class SmartAgent {
76
86
  private readonly deps;
77
87
  private config;
88
+ private readonly pipelineExecutor?;
89
+ private readonly pipelineStages?;
78
90
  private readonly toolAvailabilityRegistry;
79
91
  private readonly tracer;
80
92
  private readonly metrics;
@@ -83,7 +95,7 @@ export declare class SmartAgent {
83
95
  private readonly toolCache;
84
96
  private readonly outputValidator;
85
97
  private readonly sessionManager;
86
- constructor(deps: SmartAgentDeps, config: SmartAgentConfig);
98
+ constructor(deps: SmartAgentDeps, config: SmartAgentConfig, pipelineExecutor?: PipelineExecutor | undefined, pipelineStages?: StageDefinition[] | undefined);
87
99
  /** Apply a partial config update at runtime (hot-reload). */
88
100
  applyConfigUpdate(update: Partial<SmartAgentConfig>): void;
89
101
  healthCheck(options?: CallOptions): Promise<Result<{
@@ -105,5 +117,10 @@ export declare class SmartAgent {
105
117
  private _toEnglishForRag;
106
118
  private _summarizeHistory;
107
119
  private _buildRagMetadata;
120
+ /**
121
+ * Execute the structured pipeline — delegates stage execution to
122
+ * the PipelineExecutor instead of running the hardcoded flow.
123
+ */
124
+ private _runStructuredPipeline;
108
125
  }
109
126
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/smart-agent/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/smart-agent/agent.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,8 @@ function createTimeoutSignal(ms) {
37
37
  export class SmartAgent {
38
38
  deps;
39
39
  config;
40
+ pipelineExecutor;
41
+ pipelineStages;
40
42
  toolAvailabilityRegistry;
41
43
  tracer;
42
44
  metrics;
@@ -45,9 +47,11 @@ export class SmartAgent {
45
47
  toolCache;
46
48
  outputValidator;
47
49
  sessionManager;
48
- constructor(deps, config) {
50
+ constructor(deps, config, pipelineExecutor, pipelineStages) {
49
51
  this.deps = deps;
50
52
  this.config = config;
53
+ this.pipelineExecutor = pipelineExecutor;
54
+ this.pipelineStages = pipelineStages;
51
55
  this.toolAvailabilityRegistry = new ToolAvailabilityRegistry(this.config.toolUnavailableTtlMs);
52
56
  this.tracer = deps.tracer ?? new NoopTracer();
53
57
  this.metrics = deps.metrics ?? new NoopMetrics();
@@ -161,7 +165,16 @@ export class SmartAgent {
161
165
  rootSpan.end();
162
166
  return;
163
167
  }
164
- // 1. Unified Preparation
168
+ // Structured pipeline path (when configured via Builder.withPipeline)
169
+ if (this.pipelineExecutor && this.pipelineStages) {
170
+ const stream = this._runStructuredPipeline(textOrMessages, externalTools, opts, rootSpan, sessionId);
171
+ for await (const chunk of stream)
172
+ yield chunk;
173
+ rootSpan.setStatus('ok');
174
+ rootSpan.end();
175
+ return;
176
+ }
177
+ // 1. Unified Preparation (default hardcoded flow)
165
178
  const initResult = await this._preparePipeline(textOrMessages, opts, rootSpan);
166
179
  if (!initResult.ok) {
167
180
  rootSpan.setStatus('error', initResult.error.message);
@@ -180,7 +193,9 @@ export class SmartAgent {
180
193
  }
181
194
  // 2. Decide context and tools for the WHOLE request
182
195
  const actions = subprompts.filter((sp) => sp.type === 'action');
196
+ const ragMode = this.config.ragRetrievalMode ?? 'auto';
183
197
  const isSapRequired = actions.some((a) => a.context === 'sap-abap') || mode === 'hard';
198
+ const shouldRetrieve = ragMode === 'always' || (ragMode === 'auto' && isSapRequired);
184
199
  let finalTools = [];
185
200
  let retrieved = {
186
201
  facts: [],
@@ -188,10 +203,12 @@ export class SmartAgent {
188
203
  state: [],
189
204
  tools: [],
190
205
  };
191
- if (isSapRequired) {
206
+ if (shouldRetrieve) {
192
207
  // Collect all action texts for RAG
193
208
  const combinedActionText = actions.map((a) => a.text).join(' ');
194
- let ragText = await this._toEnglishForRag(combinedActionText, opts);
209
+ let ragText = this.config.ragTranslationEnabled !== false
210
+ ? await this._toEnglishForRag(combinedActionText, opts)
211
+ : combinedActionText;
195
212
  if (this.config.queryExpansionEnabled) {
196
213
  const expandResult = await this.queryExpander.expand(ragText, opts);
197
214
  if (expandResult.ok)
@@ -234,6 +251,17 @@ export class SmartAgent {
234
251
  ]);
235
252
  const { tools: mcpTools } = await this._listAllTools(opts);
236
253
  const facts = rerankedFacts.ok ? rerankedFacts.value : [];
254
+ // Log RAG results with scores for diagnostics
255
+ opts?.sessionLogger?.logStep('rag_query_facts', {
256
+ query: ragText.slice(0, 200),
257
+ k,
258
+ resultCount: facts.length,
259
+ results: facts.map((r) => ({
260
+ id: r.metadata.id,
261
+ score: r.score,
262
+ text: r.text.slice(0, 120),
263
+ })),
264
+ });
237
265
  const ragToolNames = new Set(facts
238
266
  .map((r) => r.metadata.id)
239
267
  .filter((id) => id?.startsWith('tool:'))
@@ -243,6 +271,16 @@ export class SmartAgent {
243
271
  : mode === 'hard'
244
272
  ? mcpTools
245
273
  : [];
274
+ // Log tool selection diagnostics
275
+ opts?.sessionLogger?.logStep('tools_selected', {
276
+ totalMcp: mcpTools.length,
277
+ ragMatchedTools: [...ragToolNames],
278
+ selectedCount: selectedMcpTools.length + externalTools.length,
279
+ selectedNames: [
280
+ ...selectedMcpTools.map((t) => t.name),
281
+ ...externalTools.map((t) => t.name),
282
+ ],
283
+ });
246
284
  retrieved = {
247
285
  facts,
248
286
  feedback: rerankedFeedback.ok ? rerankedFeedback.value : [],
@@ -332,28 +370,42 @@ export class SmartAgent {
332
370
  if (res.ok)
333
371
  processedHistory = res.value;
334
372
  }
335
- const classifySpan = this.tracer.startSpan('smart_agent.classify', {
336
- parent: parentSpan,
337
- });
338
- const classifyResult = await this.deps.classifier.classify(text, opts);
339
- if (!classifyResult.ok) {
340
- classifySpan.setStatus('error', classifyResult.error.message);
373
+ let subprompts;
374
+ if (this.config.classificationEnabled === false) {
375
+ // Skip classification — treat entire input as a single action
376
+ subprompts = [
377
+ { type: 'action', text, dependency: 'independent' },
378
+ ];
379
+ opts?.sessionLogger?.logStep('classification_skipped', { text });
380
+ }
381
+ else {
382
+ const classifySpan = this.tracer.startSpan('smart_agent.classify', {
383
+ parent: parentSpan,
384
+ });
385
+ const classifyResult = await this.deps.classifier.classify(text, opts);
386
+ if (!classifyResult.ok) {
387
+ classifySpan.setStatus('error', classifyResult.error.message);
388
+ classifySpan.end();
389
+ return {
390
+ ok: false,
391
+ error: new OrchestratorError(classifyResult.error.message, 'CLASSIFIER_ERROR'),
392
+ };
393
+ }
394
+ classifySpan.setStatus('ok');
341
395
  classifySpan.end();
342
- return {
343
- ok: false,
344
- error: new OrchestratorError(classifyResult.error.message, 'CLASSIFIER_ERROR'),
345
- };
396
+ opts?.sessionLogger?.logStep('classifier_response', {
397
+ subprompts: classifyResult.value,
398
+ });
399
+ subprompts = classifyResult.value;
346
400
  }
347
- classifySpan.setStatus('ok');
348
- classifySpan.end();
349
- opts?.sessionLogger?.logStep('classifier_response', {
350
- subprompts: classifyResult.value,
351
- });
352
- const subprompts = classifyResult.value;
353
401
  for (const sp of subprompts) {
354
402
  this.metrics.classifierIntentCount.add(1, { intent: sp.type });
355
403
  }
356
- const others = subprompts.filter((sp) => sp.type === 'fact' || sp.type === 'state' || sp.type === 'feedback');
404
+ const others = this.config.ragUpsertEnabled !== false
405
+ ? subprompts.filter((sp) => sp.type === 'fact' ||
406
+ sp.type === 'state' ||
407
+ sp.type === 'feedback')
408
+ : [];
357
409
  const ragStoreMap = new Map([
358
410
  ['fact', this.deps.ragStores.facts],
359
411
  ['feedback', this.deps.ragStores.feedback],
@@ -838,5 +890,108 @@ export class SmartAgent {
838
890
  m.ttl = Math.floor((Date.now() + p.maxSessionAgeMs) / 1000);
839
891
  return m;
840
892
  }
893
+ /**
894
+ * Execute the structured pipeline — delegates stage execution to
895
+ * the PipelineExecutor instead of running the hardcoded flow.
896
+ */
897
+ async *_runStructuredPipeline(textOrMessages, externalTools, opts, parentSpan, sessionId) {
898
+ if (!this.pipelineExecutor || !this.pipelineStages)
899
+ return;
900
+ const text = typeof textOrMessages === 'string'
901
+ ? textOrMessages
902
+ : (textOrMessages.filter((m) => m.role === 'user').slice(-1)[0]
903
+ ?.content ?? '');
904
+ const history = typeof textOrMessages === 'string' ? [] : textOrMessages;
905
+ // Collect yielded chunks via a queue
906
+ const chunkQueue = [];
907
+ let resolveWait = null;
908
+ let done = false;
909
+ const ctx = {
910
+ // Immutable input
911
+ textOrMessages,
912
+ options: opts,
913
+ config: this.config,
914
+ sessionId,
915
+ // Dependencies
916
+ mainLlm: this.deps.mainLlm,
917
+ helperLlm: this.deps.helperLlm,
918
+ classifierLlm: this.deps.mainLlm,
919
+ classifier: this.deps.classifier,
920
+ assembler: this.deps.assembler,
921
+ ragStores: this.deps.ragStores,
922
+ mcpClients: this.deps.mcpClients,
923
+ reranker: this.reranker,
924
+ queryExpander: this.queryExpander,
925
+ toolCache: this.toolCache,
926
+ outputValidator: this.outputValidator,
927
+ sessionManager: this.sessionManager,
928
+ tracer: this.tracer,
929
+ metrics: this.metrics,
930
+ logger: this.deps.logger,
931
+ toolPolicy: this.deps.toolPolicy,
932
+ injectionDetector: this.deps.injectionDetector,
933
+ toolAvailabilityRegistry: this.toolAvailabilityRegistry,
934
+ // Mutable state
935
+ inputText: text,
936
+ history: [...history],
937
+ subprompts: [],
938
+ toolClientMap: new Map(),
939
+ ragText: '',
940
+ ragResults: { facts: [], feedback: [], state: [] },
941
+ mcpTools: [],
942
+ selectedTools: [],
943
+ externalTools,
944
+ assembledMessages: [],
945
+ activeTools: [],
946
+ // Control flags
947
+ shouldRetrieve: false,
948
+ isAscii: true,
949
+ isSapRequired: false,
950
+ // Output
951
+ timing: [],
952
+ // Streaming yield
953
+ yield: (chunk) => {
954
+ chunkQueue.push(chunk);
955
+ if (resolveWait) {
956
+ resolveWait();
957
+ resolveWait = null;
958
+ }
959
+ },
960
+ };
961
+ // Run executor in background, yield chunks as they arrive
962
+ const executorPromise = this.pipelineExecutor
963
+ .executeStages(this.pipelineStages, ctx, parentSpan)
964
+ .then(() => {
965
+ done = true;
966
+ if (resolveWait) {
967
+ resolveWait();
968
+ resolveWait = null;
969
+ }
970
+ })
971
+ .catch((err) => {
972
+ chunkQueue.push({
973
+ ok: false,
974
+ error: new OrchestratorError(String(err), 'PIPELINE_ERROR'),
975
+ });
976
+ done = true;
977
+ if (resolveWait) {
978
+ resolveWait();
979
+ resolveWait = null;
980
+ }
981
+ });
982
+ while (!done || chunkQueue.length > 0) {
983
+ if (chunkQueue.length > 0) {
984
+ const chunk = chunkQueue.shift();
985
+ if (chunk !== undefined)
986
+ yield chunk;
987
+ }
988
+ else if (!done) {
989
+ await new Promise((r) => {
990
+ resolveWait = r;
991
+ });
992
+ }
993
+ }
994
+ await executorPromise;
995
+ }
841
996
  }
842
997
  //# sourceMappingURL=agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/smart-agent/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAO3D,OAAO,EASL,eAAe,GAGhB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,wCAAwC,CAAC;AAMhD,OAAO,EAEL,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EACL,qBAAqB,EACrB,eAAe,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAG9D,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACpD,YAAY,OAAe,EAAE,IAAI,GAAG,oBAAoB;QACtD,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AA0DD,SAAS,YAAY,CACnB,GAAG,OAAoC;IAEvC,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAU;IAIrC,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;IACnC,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,OAAO,UAAU;IAWF;IACT;IAXO,wBAAwB,CAA2B;IACnD,MAAM,CAAU;IAChB,OAAO,CAAW;IAClB,QAAQ,CAAY;IACpB,aAAa,CAAiB;IAC9B,SAAS,CAAa;IACtB,eAAe,CAAmB;IAClC,cAAc,CAAkB;IAEjD,YACmB,IAAoB,EAC7B,MAAwB;QADf,SAAI,GAAJ,IAAI,CAAgB;QAC7B,WAAM,GAAN,MAAM,CAAkB;QAEhC,IAAI,CAAC,wBAAwB,GAAG,IAAI,wBAAwB,CAC1D,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACjC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,WAAW,EAAE,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,YAAY,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACnE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,aAAa,EAAE,CAAC;QACvD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,aAAa,EAAE,CAAC;QACnE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,kBAAkB,EAAE,CAAC;IACxE,CAAC;IAED,6DAA6D;IAC7D,iBAAiB,CAAC,MAAiC;QACjD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAqB;QAUrC,MAAM,OAAO,GAAG;YACd,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,EAAqD;SAC3D,CAAC;QACF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CACzC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAC5C,EAAE,EACF,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,CAC7B,CAAC;YACF,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC;QACtB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC9C,OAAO;gBACL,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,KAAK,EACH,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;oBACtB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK;wBAC5B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO;wBACrB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;aAC5B,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QACF,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,OAAO,CACX,cAAkC,EAClC,OAAqB;QAErB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAC5E,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,KAAK,CAAC,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC5B,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO;gBAAE,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;YACxD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACtB,UAAU,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC1D,UAAU,CAAC,gBAAgB,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC;gBAClE,UAAU,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;YAC1D,CAAC;QACH,CAAC;QACD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,KAAK,EAAE;gBACL,OAAO;gBACP,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,CAAC;gBAChB,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,UAAU;aAClB;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,aAAa,CAClB,cAAkC,EAClC,OAAqD;QAErD,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;YAC5C,MAAM;gBACJ,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,UAAU,CAAC;aACnE,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,qBAAqB,EAAE;YAC5D,OAAO;YACP,UAAU,EAAE,EAAE,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,EAAE;SAChE,CAAC,CAAC;QACH,IAAI,cAAwC,CAAC;QAC7C,IAAI,IAAI,GAA4B,OAAO,CAAC;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACrE,cAAc,GAAG,KAAK,CAAC;YACvB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACrD,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC/C,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,SAAS,CAAC;QAClD,MAAM,uBAAuB,GAAG,sBAAsB,CACpD,OAAO,EAAE,aAAa,CACvB,CAAC;QACF,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAC7D,IAAI,CAAC,wBAAwB,CAAC,WAAW,CACvC,SAAS,EACT,uBAAuB,CACxB,CAAC;QACJ,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,qCAAqC,EAAE;gBAClE,OAAO,EAAE,oBAAoB;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAEzE,IAAI,CAAC;YACH,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,QAAQ,GACZ,OAAO,cAAc,KAAK,QAAQ;oBAChC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;oBACtD,CAAC,CAAC,cAAc,CAAC;gBACrB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CACzC,QAAQ,EACR,aAAa,EACb,IAAI,CACL,CAAC;gBACF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM;oBAAE,MAAM,KAAK,CAAC;gBAC9C,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACzB,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;YAED,yBAAyB;YACzB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC5C,cAAc,EACd,IAAI,EACJ,QAAQ,CACT,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACnB,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtD,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACf,MAAM,UAAU,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,IAAI,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC;YAC5C,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC;YAEvD,gDAAgD;YAChD,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC;gBACvC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;gBACvE,IAAI,SAAS,CAAC,EAAE;oBAAE,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC;gBACrD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC9B,CAAC;YAED,oDAAoD;YACpD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YAChE,MAAM,aAAa,GACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC;YAEnE,IAAI,UAAU,GAAc,EAAE,CAAC;YAC/B,IAAI,SAAS,GAAG;gBACd,KAAK,EAAE,EAAiB;gBACxB,QAAQ,EAAE,EAAiB;gBAC3B,KAAK,EAAE,EAAiB;gBACxB,KAAK,EAAE,EAAe;aACvB,CAAC;YAEF,IAAI,aAAa,EAAE,CAAC;gBAClB,mCAAmC;gBACnC,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChE,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;gBACpE,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;oBACtC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBACpE,IAAI,YAAY,CAAC,EAAE;wBAAE,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC;gBACpD,CAAC;gBACD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,uBAAuB,EAAE;oBAC7D,MAAM,EAAE,QAAQ;oBAChB,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;iBAC3B,CAAC,CAAC;gBACH,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBACtC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC;oBACjD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC;oBACpD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC;iBAClD,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;oBAChC,KAAK,EAAE,OAAO;oBACd,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;iBAC1C,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;oBAChC,KAAK,EAAE,UAAU;oBACjB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;iBAC5C,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;oBAChC,KAAK,EAAE,OAAO;oBACd,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;iBAC1C,CAAC,CAAC;gBAEH,iBAAiB;gBACjB,MAAM,CAAC,aAAa,EAAE,gBAAgB,EAAE,aAAa,CAAC,GACpD,MAAM,OAAO,CAAC,GAAG,CAAC;oBAChB,EAAE,CAAC,EAAE;wBACH,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;wBAC/C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACvB,GAAG,CAAC,EAAE;wBACJ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;wBAChD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;oBACxB,EAAE,CAAC,EAAE;wBACH,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;wBAC/C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;iBACxB,CAAC,CAAC;gBAEL,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,KAAK;qBACF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAY,CAAC;qBACnC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;qBACvC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC5B,CAAC;gBACF,MAAM,gBAAgB,GACpB,YAAY,CAAC,IAAI,GAAG,CAAC;oBACnB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAClD,CAAC,CAAC,IAAI,KAAK,MAAM;wBACf,CAAC,CAAC,QAAQ;wBACV,CAAC,CAAC,EAAE,CAAC;gBAEX,SAAS,GAAG;oBACV,KAAK;oBACL,QAAQ,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBAC3D,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBAClD,KAAK,EAAE,gBAAgB;iBACxB,CAAC;gBACF,UAAU;oBACR,IAAI,KAAK,MAAM;wBACb,CAAC,CAAE,gBAA8B;wBACjC,CAAC,CAAC,CAAC,GAAI,gBAA8B,EAAE,GAAG,aAAa,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,mEAAmE;gBACnE,UAAU,GAAG,aAAa,CAAC;YAC7B,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAC7D,SAAS,EACT,UAAU,CACX,CAAC;YACF,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC;YACnC,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,mCAAmC,EAAE;oBAChE,OAAO,EAAE,aAAa,CAAC,OAAO;iBAC/B,CAAC,CAAC;YACL,CAAC;YAED,2BAA2B;YAC3B,MAAM,UAAU,GACd,OAAO,CAAC,MAAM,GAAG,CAAC;gBAChB,CAAC,CAAC;oBACE,IAAI,EAAE,QAAiB;oBACvB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC3C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO;oBAChD,UAAU,EAAE,aAAsB;iBACnC;gBACH,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;oBACpB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;oBACZ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAErE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,gBAAgB,EAAE;oBAC7C,KAAK,EAAE,OAAO,CAAC,MAAM;oBACrB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,UAAU,EAAE,CAAC,CAAC,UAAU;qBACzB,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,sBAAsB,EAAE;gBACjE,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CACvD,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,IAAI,CACL,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;gBACvB,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC9D,YAAY,CAAC,GAAG,EAAE,CAAC;gBACnB,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC1D,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACf,MAAM;oBACJ,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,IAAI,iBAAiB,CAC1B,cAAc,CAAC,KAAK,CAAC,OAAO,EAC5B,iBAAiB,CAClB;iBACF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC7B,YAAY,CAAC,GAAG,EAAE,CAAC;YAEnB,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,yBAAyB,EAAE;gBACtD,QAAQ,EAAE,cAAc,CAAC,KAAK;gBAC9B,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACrC,CAAC,CAAC;YAEH,2BAA2B;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CACvC,UAAU,EACV,SAAS,EACT,cAAc,CAAC,KAAK,EACpB,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EACpC,UAAU,CACX,CAAC;YACF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM;gBAAE,MAAM,KAAK,CAAC;YAC9C,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,QAAQ,CAAC,GAAG,EAAE,CAAC;YACf,cAAc,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,cAAkC,EAClC,IAA6B,EAC7B,UAAiB;QAWjB,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,gBAAgB,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QACnE,MAAM,IAAI,GACR,OAAO,cAAc,KAAK,QAAQ;YAChC,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3D,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;QACzE,IAAI,gBAAgB,GAAG,OAAO,CAAC;QAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,IAAI,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;YAC3D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,GAAG,CAAC,EAAE;gBAAE,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC;QAC3C,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,sBAAsB,EAAE;YACjE,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;YACvB,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9D,YAAY,CAAC,GAAG,EAAE,CAAC;YACnB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,IAAI,iBAAiB,CAC1B,cAAc,CAAC,KAAK,CAAC,OAAO,EAC5B,kBAAkB,CACnB;aACF,CAAC;QACJ,CAAC;QACD,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,YAAY,CAAC,GAAG,EAAE,CAAC;QACnB,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,qBAAqB,EAAE;YAClD,UAAU,EAAE,cAAc,CAAC,KAAK;SACjC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC;QACxC,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAC9B,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,CACtE,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAe;YACxC,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACnC,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAC1C,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SACrC,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,wBAAwB,EAAE;gBACjE,MAAM,EAAE,UAAU;gBAClB,UAAU,EAAE,EAAE,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE;aAClD,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,UAAU,CACtB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;gBACtB,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,CAAC;YACjE,CAAC,CAAC,CACH,CAAC;YACF,UAAU,CAAC,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,EAAE,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,CAAC,qBAAqB,CAClC,OAAkB,EAClB,UAKC,EACD,eAA0B,EAC1B,aAAsC,EACtC,IAA6B,EAC7B,UAAiB,EACjB,SAAiB,EACjB,aAAwB,EACxB,WAAsB;QAEtB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,uBAAuB,EAAE;YAClE,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QACH,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,QAAQ,GAAG,eAAe,CAAC;QAC/B,MAAM,KAAK,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QACvE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,MAAM,SAAS,GAAkB,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,YAAY,GAAG,WAAW,CAAC;QAC/B,KAAK,IAAI,SAAS,GAAG,CAAC,GAAI,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;gBAC1B,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC3C,YAAY,CAAC,GAAG,EAAE,CAAC;gBACnB,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;gBACxE,OAAO;YACT,CAAC;YACD,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC3C,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;gBACrE,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;gBACjD,YAAY,CAAC,GAAG,EAAE,CAAC;gBACnB,MAAM;oBACJ,EAAE,EAAE,IAAI;oBACR,KAAK,EAAE;wBACL,OAAO,EAAE,EAAE;wBACX,YAAY,EAAE,QAAQ;wBACtB,KAAK;wBACL,MAAM,EAAE,SAAS;qBAClB;iBACF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,oBAAoB,GAAG,IAAI,CAAC,wBAAwB,CAAC,WAAW,CACpE,SAAS,EACT,YAAY,CACb,CAAC;YACF,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC;YAC5C,IAAI,oBAAoB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,oCAAoC,EAAE;oBACjE,SAAS,EAAE,SAAS,GAAG,CAAC;oBACxB,OAAO,EAAE,oBAAoB,CAAC,OAAO;iBACtC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,oBAAoB,SAAS,GAAG,CAAC,EAAE,EAAE;gBAChE,QAAQ;gBACR,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,sBAAsB,EAAE;gBAC5D,MAAM,EAAE,YAAY;gBACpB,UAAU,EAAE,EAAE,eAAe,EAAE,SAAS,GAAG,CAAC,EAAE;aAC/C,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YAC1E,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,YAAyC,CAAC;YAC9C,MAAM,YAAY,GAAG,IAAI,GAAG,EAGzB,CAAC;YACJ,IAAI,KAAK,EAAE,MAAM,WAAW,IAAI,MAAM,EAAE,CAAC;gBACvC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;oBACpB,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACtD,OAAO,CAAC,GAAG,EAAE,CAAC;oBACd,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC3D,YAAY,CAAC,GAAG,EAAE,CAAC;oBACnB,MAAM;wBACJ,EAAE,EAAE,KAAK;wBACT,KAAK,EAAE,IAAI,iBAAiB,CAC1B,WAAW,CAAC,KAAK,CAAC,OAAO,EACzB,WAAW,CACZ;qBACF,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;gBAChC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;oBACzB,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACxD,CAAC;gBACD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBACpB,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CACnD,iBAAiB,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CACvD,CAAC;oBACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9B,MAAM;4BACJ,EAAE,EAAE,IAAI;4BACR,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;yBAClD,CAAC;oBACJ,CAAC;oBACD,KAAK,MAAM,CACT,aAAa,EACb,WAAW,EACZ,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;wBAC/B,MAAM,EAAE,GAAG,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;wBACvD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;4BAChC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE;gCACzB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;gCACf,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE;gCACnB,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE;6BAC9B,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;4BACtC,IAAI,EAAE,EAAE,CAAC;gCACP,IAAI,EAAE,CAAC,EAAE;oCAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gCACzB,IAAI,EAAE,CAAC,IAAI;oCAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gCAC/B,IAAI,EAAE,CAAC,SAAS;oCAAE,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC;4BACjD,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,KAAK,CAAC,YAAY;oBAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;gBAC1D,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;oBAC/C,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC;oBACvD,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;oBAC7C,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YACD,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YACpD,SAAS,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,YAAY,SAAS,GAAG,CAAC,EAAE;gBAClC,QAAQ,EAAE,eAAe;aAC1B,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC7D,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBAClC,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,GAAG,EAAE,CAAC;gBACZ,CAAC;gBACD,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YACvD,CAAC,CAAC,CAAC;YACH,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,qBAAqB,SAAS,GAAG,CAAC,EAAE,EAAE;gBACjE,OAAO;gBACP,SAAS;gBACT,YAAY;aACb,CAAC,CAAC;YACH,IAAI,YAAY,KAAK,YAAY,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5D,oBAAoB;gBACpB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CACnD,OAAO,EACP,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,EACjC,IAAI,CACL,CAAC;gBACF,IAAI,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC3C,MAAM,UAAU,GACd,SAAS,CAAC,KAAK,CAAC,gBAAgB,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC7D,QAAQ,GAAG;wBACT,GAAG,QAAQ;wBACX,EAAE,IAAI,EAAE,WAAoB,EAAE,OAAO,EAAE;wBACvC;4BACE,IAAI,EAAE,MAAe;4BACrB,OAAO,EAAE,sDAAsD,UAAU,qBAAqB;yBAC/F;qBACF,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBACnE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;gBACrE,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC7B,YAAY,CAAC,GAAG,EAAE,CAAC;gBACnB,MAAM;oBACJ,EAAE,EAAE,IAAI;oBACR,KAAK,EAAE;wBACL,OAAO,EAAE,EAAE;wBACX,YAAY,EAAE,YAAY,IAAI,MAAM;wBACpC,KAAK;wBACL,MAAM,EAAE,SAAS;qBAClB;iBACF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5C,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAC3B,CAAC;YACF,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CACjD,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAC/B,CAAC;YACF,MAAM,gBAAgB,GACpB,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC/D,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC3C,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAC9B,CAAC;YACF,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CACrC,CAAC,EAAE,EAAE,EAAE,CACL,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;gBAC9B,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;gBAC3B,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAClC,CAAC;YACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,QAAQ,GAAG;oBACT,GAAG,QAAQ;oBACX;wBACE,IAAI,EAAE,WAAoB;wBAC1B,OAAO,EAAE,OAAO,IAAI,IAAI;wBACxB,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;4BACpC,EAAE,EAAE,EAAE,CAAC,EAAE;4BACT,IAAI,EAAE,UAAmB;4BACzB,QAAQ,EAAE;gCACR,IAAI,EAAE,EAAE,CAAC,IAAI;gCACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC;6BACxC;yBACF,CAAC,CAAC;qBACJ;iBACF,CAAC;gBACF,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;oBACnC,QAAQ,GAAG;wBACT,GAAG,QAAQ;wBACX;4BACE,IAAI,EAAE,MAAe;4BACrB,OAAO,EAAE,gBAAgB,OAAO,CAAC,IAAI,+CAA+C;4BACpF,YAAY,EAAE,OAAO,CAAC,EAAE;yBACzB;qBACF,CAAC;gBACJ,CAAC;gBACD,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,gCAAgC,EAAE;oBAC7D,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;iBAC7C,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,QAAQ,GAAG;oBACT,GAAG,QAAQ;oBACX;wBACE,IAAI,EAAE,WAAoB;wBAC1B,OAAO,EAAE,OAAO,IAAI,IAAI;wBACxB,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;4BACjC,EAAE,EAAE,EAAE,CAAC,EAAE;4BACT,IAAI,EAAE,UAAmB;4BACzB,QAAQ,EAAE;gCACR,IAAI,EAAE,EAAE,CAAC,IAAI;gCACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC;6BACxC;yBACF,CAAC,CAAC;qBACJ;iBACF,CAAC;gBACF,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;oBAC/B,QAAQ,GAAG;wBACT,GAAG,QAAQ;wBACX;4BACE,IAAI,EAAE,MAAe;4BACrB,OAAO,EAAE,gBAAgB,CAAC,CAAC,IAAI,cAAc;4BAC7C,YAAY,EAAE,CAAC,CAAC,EAAE;yBACnB;qBACF,CAAC;gBACJ,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;gBACrE,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC7B,YAAY,CAAC,GAAG,EAAE,CAAC;gBACnB,MAAM;oBACJ,EAAE,EAAE,IAAI;oBACR,KAAK,EAAE;wBACL,OAAO,EAAE,EAAE;wBACX,YAAY,EAAE,YAAY;wBAC1B,KAAK;wBACL,MAAM,EAAE,SAAS;qBAClB;iBACF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,IAAI,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;gBACrC,QAAQ,GAAG;oBACT,GAAG,QAAQ;oBACX;wBACE,IAAI,EAAE,WAAoB;wBAC1B,OAAO,EAAE,OAAO,IAAI,IAAI;wBACxB,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;4BACrC,EAAE,EAAE,EAAE,CAAC,EAAE;4BACT,IAAI,EAAE,UAAmB;4BACzB,QAAQ,EAAE;gCACR,IAAI,EAAE,EAAE,CAAC,IAAI;gCACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC;6BACxC;yBACF,CAAC,CAAC;qBACJ;iBACF,CAAC;YACJ,qCAAqC;YACrC,MAAM,SAAS,GACb,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS;gBACpC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,aAAa;gBAC1C,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;YAC3B,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACnB,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;gBACrE,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;gBACjD,YAAY,CAAC,GAAG,EAAE,CAAC;gBACnB,MAAM;oBACJ,EAAE,EAAE,IAAI;oBACR,KAAK,EAAE;wBACL,OAAO,EAAE,EAAE;wBACX,YAAY,EAAE,QAAQ;wBACtB,KAAK;wBACL,MAAM,EAAE,SAAS;qBAClB;iBACF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC;YAE5D,+CAA+C;YAC/C,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM;oBACJ,EAAE,EAAE,IAAI;oBACR,KAAK,EAAE,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,IAAI,QAAQ,EAAE;iBAClE,CAAC;YACJ,CAAC;YAaD,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAChC,KAAK,EAAE,EAAE,EAA2B,EAAE;gBACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;oBAClD,SAAS,EAAE,EAAE,CAAC,SAAS;iBACxB,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,CAAC,MAAM;oBAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,uBAAuB,EAAE;oBAC9D,MAAM,EAAE,YAAY;oBACpB,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE;iBACrC,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;gBACzD,MAAM,GAAG,GAAG,MAAM;oBAChB,CAAC,CAAC,CAAC,GAAG,EAAE;wBACJ,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;wBACrC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;wBACtC,OAAO,EAAE,EAAE,EAAE,IAAa,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;oBAC9C,CAAC,CAAC,EAAE;oBACN,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;wBAChB,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;wBAC7D,IAAI,CAAC,CAAC,EAAE;4BAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC7D,OAAO,CAAC,CAAC;oBACX,CAAC,CAAC,EAAE,CAAC;gBACT,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;oBAClB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;oBACnB,CAAC,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ;wBACrC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;wBACnB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACxC,QAAQ,CAAC,SAAS,CAChB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EACvB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAC1B,CAAC;gBACF,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACf,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;YAC7D,CAAC,CACF,CAAC;YAEF,6CAA6C;YAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC9C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACjC,IAAI,OAAO,GAAqB,EAAE,CAAC;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,kDAAkD;YAClD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC;YAED,OAAO,CAAC,OAAO,EAAE,CAAC;gBAChB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;oBAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC3D,IAAI,OAAO,CAAkB,CAAC,OAAO,EAAE,EAAE,CACvC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC,CACxD;iBACF,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;oBAC1B,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;oBACzB,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,8CAA8C;oBAC9C,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;wBAChC,MAAM;4BACJ,EAAE,EAAE,IAAI;4BACR,KAAK,EAAE;gCACL,OAAO,EAAE,EAAE;gCACX,SAAS,EAAE;oCACT,IAAI;oCACJ,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa;iCACpC;6BACF;yBACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,qDAAqD;YACrD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC;oBACb,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE;oBAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;iBACrB,CAAC,CAAC;YACL,CAAC;YAED,0DAA0D;YAC1D,MAAM,YAAY,GAAc,EAAE,CAAC;YACnC,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,OAAO,EAAE,CAAC;gBACxC,IAAI,CAAC,GAAG;oBAAE,SAAS;gBACnB,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnD,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAC/C,SAAS,EACT,EAAE,CAAC,IAAI,EACP,IAAI,CACL,CAAC;oBACF,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC9D,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;wBAC1D,MAAM,EAAE,IAAI;wBACZ,YAAY,EAAE,KAAK,CAAC,YAAY;qBACjC,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;oBACpD,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;gBACH,aAAa,EAAE,CAAC;gBAChB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;gBACjC,YAAY,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE,IAAI;oBACb,YAAY,EAAE,EAAE,CAAC,EAAE;iBACpB,CAAC,CAAC;YACL,CAAC;YACD,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,YAAY,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,IAA6B;QAE7B,MAAM,KAAK,GAAc,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAsB,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC1C,MAAM;YACN,MAAM,EAAE,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;SACrC,CAAC,CAAC,CACJ,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBAClD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACd,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,IAAY,EACZ,IAA6B;QAE7B,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;YAAE,OAAO,IAAI,CAAC;QAClE,MAAM,EAAE,GACN,6JAA6J,CAAC;QAChK,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACrD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CACxB;YACE;gBACE,IAAI,EAAE,QAAiB;gBACvB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE;aAC9C;YACD,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,IAAI,EAAE;SACzC,EACD,EAAE,EACF,IAAI,CACL,CAAC;QACF,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,CAAY,EACZ,IAAkB;QAElB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACpD,MAAM,EAAE,GACN,iJAAiJ,CAAC;QACpJ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CACxC;YACE,GAAG,GAAG;YACN;gBACE,IAAI,EAAE,QAAiB;gBACvB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,EAAE;aAChD;SACF,EACD,EAAE,EACF,IAAI,CACL,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC3C,OAAO;YACL,EAAE,EAAE,IAAI;YACR,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,QAAiB;oBACvB,OAAO,EAAE,qCAAqC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE;iBAClE;gBACD,GAAG,GAAG;aACP;SACF,CAAC;IACJ,CAAC;IAEO,iBAAiB;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QACpC,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAClB,MAAM,CAAC,GAAgB,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;YAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;QACzD,IAAI,CAAC,CAAC,eAAe,KAAK,SAAS;YACjC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC;IACX,CAAC;CACF"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/smart-agent/agent.ts"],"names":[],"mappings":"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"}