adaptive-memory-multi-model-router 1.2.2

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 (95) hide show
  1. package/README.md +114 -0
  2. package/demo/research-demo.js +266 -0
  3. package/dist/cache/prefixCache.d.ts +114 -0
  4. package/dist/cache/prefixCache.d.ts.map +1 -0
  5. package/dist/cache/prefixCache.js +285 -0
  6. package/dist/cache/prefixCache.js.map +1 -0
  7. package/dist/cache/responseCache.d.ts +58 -0
  8. package/dist/cache/responseCache.d.ts.map +1 -0
  9. package/dist/cache/responseCache.js +153 -0
  10. package/dist/cache/responseCache.js.map +1 -0
  11. package/dist/cli.js +59 -0
  12. package/dist/cost/costTracker.d.ts +95 -0
  13. package/dist/cost/costTracker.d.ts.map +1 -0
  14. package/dist/cost/costTracker.js +240 -0
  15. package/dist/cost/costTracker.js.map +1 -0
  16. package/dist/index.d.ts +723 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +239 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/memory/episodicMemory.d.ts +82 -0
  21. package/dist/memory/episodicMemory.d.ts.map +1 -0
  22. package/dist/memory/episodicMemory.js +145 -0
  23. package/dist/memory/episodicMemory.js.map +1 -0
  24. package/dist/orchestration/haloOrchestrator.d.ts +102 -0
  25. package/dist/orchestration/haloOrchestrator.d.ts.map +1 -0
  26. package/dist/orchestration/haloOrchestrator.js +207 -0
  27. package/dist/orchestration/haloOrchestrator.js.map +1 -0
  28. package/dist/orchestration/mctsWorkflow.d.ts +85 -0
  29. package/dist/orchestration/mctsWorkflow.d.ts.map +1 -0
  30. package/dist/orchestration/mctsWorkflow.js +210 -0
  31. package/dist/orchestration/mctsWorkflow.js.map +1 -0
  32. package/dist/providers/localProvider.d.ts +102 -0
  33. package/dist/providers/localProvider.d.ts.map +1 -0
  34. package/dist/providers/localProvider.js +338 -0
  35. package/dist/providers/localProvider.js.map +1 -0
  36. package/dist/providers/registry.d.ts +55 -0
  37. package/dist/providers/registry.d.ts.map +1 -0
  38. package/dist/providers/registry.js +138 -0
  39. package/dist/providers/registry.js.map +1 -0
  40. package/dist/routing/advancedRouter.d.ts +68 -0
  41. package/dist/routing/advancedRouter.d.ts.map +1 -0
  42. package/dist/routing/advancedRouter.js +332 -0
  43. package/dist/routing/advancedRouter.js.map +1 -0
  44. package/dist/tools/tmlpdTools.d.ts +101 -0
  45. package/dist/tools/tmlpdTools.d.ts.map +1 -0
  46. package/dist/tools/tmlpdTools.js +368 -0
  47. package/dist/tools/tmlpdTools.js.map +1 -0
  48. package/dist/utils/batchProcessor.d.ts +96 -0
  49. package/dist/utils/batchProcessor.d.ts.map +1 -0
  50. package/dist/utils/batchProcessor.js +170 -0
  51. package/dist/utils/batchProcessor.js.map +1 -0
  52. package/dist/utils/compression.d.ts +61 -0
  53. package/dist/utils/compression.d.ts.map +1 -0
  54. package/dist/utils/compression.js +281 -0
  55. package/dist/utils/compression.js.map +1 -0
  56. package/dist/utils/reliability.d.ts +74 -0
  57. package/dist/utils/reliability.d.ts.map +1 -0
  58. package/dist/utils/reliability.js +177 -0
  59. package/dist/utils/reliability.js.map +1 -0
  60. package/dist/utils/speculativeDecoding.d.ts +117 -0
  61. package/dist/utils/speculativeDecoding.d.ts.map +1 -0
  62. package/dist/utils/speculativeDecoding.js +246 -0
  63. package/dist/utils/speculativeDecoding.js.map +1 -0
  64. package/dist/utils/tokenUtils.d.ts +50 -0
  65. package/dist/utils/tokenUtils.d.ts.map +1 -0
  66. package/dist/utils/tokenUtils.js +124 -0
  67. package/dist/utils/tokenUtils.js.map +1 -0
  68. package/examples/QUICKSTART.md +183 -0
  69. package/notebooks/quickstart.ipynb +157 -0
  70. package/package.json +83 -0
  71. package/python/examples.py +53 -0
  72. package/python/integrations.py +330 -0
  73. package/python/setup.py +28 -0
  74. package/python/tmlpd.py +369 -0
  75. package/qna/REDDIT_GAP_ANALYSIS.md +299 -0
  76. package/qna/TMLPD_QNA.md +751 -0
  77. package/rust/tmlpd.h +268 -0
  78. package/skill/SKILL.md +238 -0
  79. package/src/cache/prefixCache.ts +365 -0
  80. package/src/cache/responseCache.ts +147 -0
  81. package/src/cost/costTracker.ts +302 -0
  82. package/src/index.ts +224 -0
  83. package/src/memory/episodicMemory.ts +185 -0
  84. package/src/orchestration/haloOrchestrator.ts +266 -0
  85. package/src/orchestration/mctsWorkflow.ts +262 -0
  86. package/src/providers/localProvider.ts +406 -0
  87. package/src/providers/registry.ts +164 -0
  88. package/src/routing/advancedRouter.ts +406 -0
  89. package/src/tools/tmlpdTools.ts +433 -0
  90. package/src/utils/batchProcessor.ts +232 -0
  91. package/src/utils/compression.ts +325 -0
  92. package/src/utils/reliability.ts +221 -0
  93. package/src/utils/speculativeDecoding.ts +344 -0
  94. package/src/utils/tokenUtils.ts +145 -0
  95. package/tsconfig.json +18 -0
@@ -0,0 +1,332 @@
1
+ "use strict";
2
+ /**
3
+ * TMLPD Advanced Routing - RouteLLM Style
4
+ *
5
+ * Learned routing based on arXiv:2404.06035 (RouteLLM)
6
+ * Balances cost-quality tradeoff with confidence-based model selection
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MODEL_PROFILES = void 0;
10
+ exports.extractQueryFeatures = extractQueryFeatures;
11
+ exports.routeQuery = routeQuery;
12
+ exports.routeBatch = routeBatch;
13
+ exports.recommendForTask = recommendForTask;
14
+ exports.updateModelProfile = updateModelProfile;
15
+ const tokenUtils_1 = require("../utils/tokenUtils");
16
+ // Pre-configured model profiles
17
+ exports.MODEL_PROFILES = {
18
+ "openai/gpt-4o": {
19
+ name: "openai/gpt-4o",
20
+ provider: "openai",
21
+ cost_per_1k_input: 2.50,
22
+ cost_per_1k_output: 10.00,
23
+ latency_ms: 2000,
24
+ quality_score: 0.95,
25
+ strengths: ["reasoning", "coding", "analysis"],
26
+ context_window: 128000
27
+ },
28
+ "openai/gpt-4o-mini": {
29
+ name: "openai/gpt-4o-mini",
30
+ provider: "openai",
31
+ cost_per_1k_input: 0.15,
32
+ cost_per_1k_output: 0.60,
33
+ latency_ms: 500,
34
+ quality_score: 0.85,
35
+ strengths: ["fast", "coding"],
36
+ context_window: 128000
37
+ },
38
+ "anthropic/claude-3.5-sonnet": {
39
+ name: "anthropic/claude-3.5-sonnet",
40
+ provider: "anthropic",
41
+ cost_per_1k_input: 3.00,
42
+ cost_per_1k_output: 15.00,
43
+ latency_ms: 2500,
44
+ quality_score: 0.96,
45
+ strengths: ["reasoning", "creative", "analysis"],
46
+ context_window: 200000
47
+ },
48
+ "anthropic/claude-3-haiku": {
49
+ name: "anthropic/claude-3-haiku",
50
+ provider: "anthropic",
51
+ cost_per_1k_input: 0.25,
52
+ cost_per_1k_output: 1.25,
53
+ latency_ms: 500,
54
+ quality_score: 0.80,
55
+ strengths: ["fast", "simple"],
56
+ context_window: 200000
57
+ },
58
+ "google/gemini-2.0-flash": {
59
+ name: "google/gemini-2.0-flash",
60
+ provider: "google",
61
+ cost_per_1k_input: 0.00, // Free
62
+ cost_per_1k_output: 0.00,
63
+ latency_ms: 800,
64
+ quality_score: 0.88,
65
+ strengths: ["fast", "multilingual"],
66
+ context_window: 1000000
67
+ },
68
+ "google/gemini-1.5-pro": {
69
+ name: "google/gemini-1.5-pro",
70
+ provider: "google",
71
+ cost_per_1k_input: 1.25,
72
+ cost_per_1k_output: 5.00,
73
+ latency_ms: 1500,
74
+ quality_score: 0.92,
75
+ strengths: ["reasoning", "long-context"],
76
+ context_window: 2000000
77
+ },
78
+ "groq/llama-3.3-70b": {
79
+ name: "groq/llama-3.3-70b",
80
+ provider: "groq",
81
+ cost_per_1k_input: 0.59,
82
+ cost_per_1k_output: 0.79,
83
+ latency_ms: 400,
84
+ quality_score: 0.82,
85
+ strengths: ["fast", "coding"],
86
+ context_window: 128000
87
+ },
88
+ "cerebras/llama-3.3-70b": {
89
+ name: "cerebras/llama-3.3-70b",
90
+ provider: "cerebras",
91
+ cost_per_1k_input: 0.60,
92
+ cost_per_1k_output: 0.60,
93
+ latency_ms: 350,
94
+ quality_score: 0.82,
95
+ strengths: ["fast", "budget"],
96
+ context_window: 128000
97
+ },
98
+ "local/llama-3.3-70b": {
99
+ name: "local/llama-3.3-70b",
100
+ provider: "ollama",
101
+ cost_per_1k_input: 0.00,
102
+ cost_per_1k_output: 0.00,
103
+ latency_ms: 100,
104
+ quality_score: 0.75,
105
+ strengths: ["privacy", "free"],
106
+ context_window: 128000
107
+ }
108
+ };
109
+ /**
110
+ * Extract features from prompt for routing decision
111
+ */
112
+ function extractQueryFeatures(prompt) {
113
+ const lower = prompt.toLowerCase();
114
+ // Code patterns
115
+ const code_indicators = [
116
+ "function", "class ", "def ", "import ", "const ", "let ",
117
+ "python", "javascript", "typescript", "java", "cpp", "rust",
118
+ "```", "=>", "->", "async", "await"
119
+ ];
120
+ const has_code = code_indicators.some(pattern => lower.includes(pattern));
121
+ // Math patterns (expanded for unicode and common notation)
122
+ const math_indicators = [
123
+ "equation", "formula", "calculate", "sqrt", "^", "log",
124
+ "sin", "cos", "tan", "integral", "derivative", "$", "math",
125
+ "∫", "∂", "∑", "∏", "√", "∞", "π", "θ", "β",
126
+ "dx", "dy", "dz", "=", "solver", "compute"
127
+ ];
128
+ const has_math = math_indicators.some(pattern => prompt.includes(pattern));
129
+ // Multilingual
130
+ const lang_patterns = [
131
+ /[\u4e00-\u9fff]/, // Chinese
132
+ /[\u3040-\u309f\u30a0-\u30ff]/, // Japanese
133
+ /[\uac00-\ud7af]/, // Korean
134
+ /[а-яА-Я]/, // Russian
135
+ /[áéíóúñ]/ // Spanish accented
136
+ ];
137
+ const is_multilingual = lang_patterns.some(pattern => pattern.test(prompt));
138
+ // Creative writing
139
+ const creative_indicators = [
140
+ "write a", "story", "poem", "creative", "imagine",
141
+ "describe", "explain in", "tell me", "narrative"
142
+ ];
143
+ const is_creative = creative_indicators.some(pattern => lower.includes(pattern));
144
+ // Reasoning
145
+ const reasoning_indicators = [
146
+ "explain", "why", "because", "therefore", "thus",
147
+ "analyze", "think", "consider", "reason", "logic"
148
+ ];
149
+ const requires_reasoning = reasoning_indicators.some(pattern => lower.includes(pattern));
150
+ // Complexity estimation based on length and patterns
151
+ const tokens = (0, tokenUtils_1.countTokens)(prompt, "gpt-4o");
152
+ let complexity = 0.3;
153
+ if (tokens > 1000)
154
+ complexity += 0.2;
155
+ if (has_code)
156
+ complexity += 0.15;
157
+ if (has_math)
158
+ complexity += 0.2;
159
+ if (requires_reasoning)
160
+ complexity += 0.15;
161
+ if (is_creative)
162
+ complexity += 0.1;
163
+ complexity = Math.min(1.0, complexity);
164
+ return {
165
+ complexity,
166
+ length: tokens,
167
+ has_code,
168
+ has_math,
169
+ is_multilingual,
170
+ is_creative,
171
+ requires_reasoning
172
+ };
173
+ }
174
+ /**
175
+ * Score model fit for query
176
+ */
177
+ function scoreModelFit(model, features) {
178
+ let score = model.quality_score * 0.4; // Base quality
179
+ // Strengths matching
180
+ if (features.has_code && model.strengths.includes("coding")) {
181
+ score += 0.2;
182
+ }
183
+ if (features.requires_reasoning && model.strengths.includes("reasoning")) {
184
+ score += 0.2;
185
+ }
186
+ if (features.is_creative && model.strengths.includes("creative")) {
187
+ score += 0.15;
188
+ }
189
+ if (features.is_multilingual && model.strengths.includes("multilingual")) {
190
+ score += 0.15;
191
+ }
192
+ if (features.has_math && model.strengths.includes("analysis")) {
193
+ score += 0.15;
194
+ }
195
+ // Speed bonus for simple tasks
196
+ if (features.complexity < 0.4 && model.latency_ms < 1000) {
197
+ score += 0.1;
198
+ }
199
+ return score;
200
+ }
201
+ /**
202
+ * Cost efficiency score (inverse of normalized cost)
203
+ */
204
+ function costEfficiency(model, features) {
205
+ const avg_cost = (model.cost_per_1k_input + model.cost_per_1k_output) / 2;
206
+ // For simple tasks, prioritize cost efficiency
207
+ if (features.complexity < 0.5) {
208
+ return (1 - Math.min(avg_cost / 10, 1)) * 0.6;
209
+ }
210
+ // For complex tasks, deprioritize cost
211
+ return (1 - Math.min(avg_cost / 10, 1)) * 0.2;
212
+ }
213
+ /**
214
+ * RouteLLM-style learned routing decision
215
+ */
216
+ function routeQuery(prompt, available_models, budget_multiplier = 1.0) {
217
+ const features = extractQueryFeatures(prompt);
218
+ const candidate_names = available_models || Object.keys(exports.MODEL_PROFILES);
219
+ const candidates = candidate_names
220
+ .filter(name => exports.MODEL_PROFILES[name])
221
+ .map(name => {
222
+ const profile = exports.MODEL_PROFILES[name];
223
+ const quality = scoreModelFit(profile, features);
224
+ const cost = costEfficiency(profile, features);
225
+ return {
226
+ name,
227
+ profile,
228
+ quality_score: quality,
229
+ cost_score: cost,
230
+ total_score: quality + cost
231
+ };
232
+ });
233
+ // Sort by total score (quality vs cost tradeoff based on complexity)
234
+ const complexity_bias = features.complexity > 0.6 ? 0.7 : 0.3; // High complexity = quality bias
235
+ candidates.sort((a, b) => {
236
+ const score_a = a.quality_score * complexity_bias + a.cost_score * (1 - complexity_bias);
237
+ const score_b = b.quality_score * complexity_bias + b.cost_score * (1 - complexity_bias);
238
+ return score_b - score_a;
239
+ });
240
+ const primary = candidates[0];
241
+ const secondary = candidates.slice(1, 3);
242
+ // Calculate confidence based on score gap
243
+ let confidence = 0.5;
244
+ if (candidates.length > 1) {
245
+ const gap = primary.total_score - candidates[1].total_score;
246
+ confidence = Math.min(0.95, 0.5 + gap * 2);
247
+ }
248
+ // Build reasoning
249
+ const reasons = [];
250
+ if (features.has_code)
251
+ reasons.push("code detected");
252
+ if (features.requires_reasoning)
253
+ reasons.push("reasoning needed");
254
+ if (features.complexity > 0.6)
255
+ reasons.push("high complexity");
256
+ if (features.is_multilingual)
257
+ reasons.push("multilingual");
258
+ const estimated_tokens = features.length * 1.5; // rough completion estimate
259
+ const estimated_cost = (0, tokenUtils_1.estimateCost)(features.length, estimated_tokens, primary.name);
260
+ return {
261
+ primary_model: primary.name,
262
+ fallback_models: secondary.map(c => c.name),
263
+ confidence,
264
+ reasoning: `Selected ${primary.profile.provider}/${primary.name.split("/")[1]} for ${reasons.join(", ") || "general query"}`,
265
+ estimated_cost: estimated_cost * budget_multiplier,
266
+ estimated_latency_ms: primary.profile.latency_ms
267
+ };
268
+ }
269
+ /**
270
+ * Batch routing for multiple prompts
271
+ */
272
+ function routeBatch(prompts, options) {
273
+ const decisions = prompts.map(p => routeQuery(p));
274
+ if (options?.same_model && decisions.length > 0) {
275
+ // Use first decision's model for all (for batch consistency)
276
+ const primary_model = decisions[0].primary_model;
277
+ decisions.forEach(d => {
278
+ d.primary_model = primary_model;
279
+ d.fallback_models = decisions[0].fallback_models;
280
+ });
281
+ }
282
+ if (options?.max_cost_per_prompt) {
283
+ decisions.forEach(d => {
284
+ if (d.estimated_cost > options.max_cost_per_prompt) {
285
+ // Route to cheaper alternative
286
+ const cheap = Object.entries(exports.MODEL_PROFILES)
287
+ .find(([name, p]) => p.cost_per_1k_input < 0.5);
288
+ if (cheap) {
289
+ d.primary_model = cheap[0];
290
+ d.reasoning = `Budget-limited routing to ${cheap[1].provider}`;
291
+ }
292
+ }
293
+ });
294
+ }
295
+ return decisions;
296
+ }
297
+ /**
298
+ * Get model recommendation for task type
299
+ */
300
+ function recommendForTask(task) {
301
+ const features = extractQueryFeatures(task);
302
+ const decision = routeQuery(task);
303
+ // Return primary + fallbacks
304
+ return [decision.primary_model, ...decision.fallback_models];
305
+ }
306
+ /**
307
+ * Update model profile from execution feedback (online learning)
308
+ */
309
+ function updateModelProfile(model_name, actual_latency_ms, actual_cost, quality_rating // 0-1
310
+ ) {
311
+ const profile = exports.MODEL_PROFILES[model_name];
312
+ if (!profile)
313
+ return;
314
+ // Exponential moving average update
315
+ const alpha = 0.2; // Learning rate
316
+ profile.latency_ms = profile.latency_ms * (1 - alpha) + actual_latency_ms * alpha;
317
+ profile.quality_score = profile.quality_score * (1 - alpha) + quality_rating * alpha;
318
+ // Adjust cost perception
319
+ const actual_cost_per_1k = actual_cost * 1000;
320
+ const current_avg_cost = (profile.cost_per_1k_input + profile.cost_per_1k_output) / 2;
321
+ // Keep stored costs as reference, but note actual in profile
322
+ console.log(`[RouteLLM] Updated ${model_name}: latency=${profile.latency_ms.toFixed(0)}ms, quality=${profile.quality_score.toFixed(2)}`);
323
+ }
324
+ exports.default = {
325
+ extractQueryFeatures,
326
+ routeQuery,
327
+ routeBatch,
328
+ recommendForTask,
329
+ updateModelProfile,
330
+ MODEL_PROFILES: exports.MODEL_PROFILES
331
+ };
332
+ //# sourceMappingURL=advancedRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advancedRouter.js","sourceRoot":"","sources":["../../src/routing/advancedRouter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * TMLPD PI Tools
3
+ *
4
+ * Main tools exposed to the PI agent via the MCP bridge.
5
+ * Features: streaming, caching, cost tracking, reliability.
6
+ */
7
+ import { CacheConfig } from "../cache/responseCache";
8
+ import { BudgetConfig, CostSummary } from "../cost/costTracker";
9
+ import { RetryConfig } from "../utils/reliability";
10
+ export interface TMLPDConfig {
11
+ cache?: Partial<CacheConfig>;
12
+ budget?: BudgetConfig;
13
+ retry?: Partial<RetryConfig>;
14
+ maxConcurrent?: number;
15
+ }
16
+ export interface ExecuteResult {
17
+ success: boolean;
18
+ content?: string;
19
+ error?: string;
20
+ model: string;
21
+ provider: string;
22
+ tokens?: number;
23
+ cost?: number;
24
+ cached?: boolean;
25
+ duration_ms?: number;
26
+ attempts?: number;
27
+ }
28
+ export interface ParallelResult {
29
+ responses: ExecuteResult[];
30
+ total_models: number;
31
+ successful_models: number;
32
+ total_cost: number;
33
+ duration_ms: number;
34
+ }
35
+ export interface StreamingConfig {
36
+ enabled: boolean;
37
+ chunk_size?: number;
38
+ on_chunk?: (chunk: string) => void;
39
+ }
40
+ export declare class TMLPDTools {
41
+ private cache;
42
+ private costTracker;
43
+ private registry;
44
+ private circuitBreakers;
45
+ private retryConfig;
46
+ private maxConcurrent;
47
+ constructor(config?: TMLPDConfig);
48
+ /**
49
+ * Get cost summary
50
+ */
51
+ getCostSummary(): CostSummary;
52
+ /**
53
+ * Get remaining budget
54
+ */
55
+ getRemainingBudget(): {
56
+ daily: number | null;
57
+ monthly: number | null;
58
+ per_model: Record<string, number>;
59
+ };
60
+ /**
61
+ * Get cache stats
62
+ */
63
+ getCacheStats(): {
64
+ hits: number;
65
+ misses: number;
66
+ size: number;
67
+ hit_rate: number;
68
+ };
69
+ /**
70
+ * Get provider status
71
+ */
72
+ getProviderStatus(): Record<string, any>;
73
+ /**
74
+ * Execute single prompt with optional streaming
75
+ */
76
+ execute(prompt: string, model?: string, streaming?: StreamingConfig): Promise<ExecuteResult>;
77
+ /**
78
+ * Execute parallel across multiple models
79
+ */
80
+ executeParallel(prompt: string, models?: string[], streaming?: StreamingConfig): Promise<ParallelResult>;
81
+ /**
82
+ * Get circuit breaker for provider
83
+ */
84
+ private getCircuitBreaker;
85
+ /**
86
+ * Execute HTTP request to provider
87
+ */
88
+ private executeRequest;
89
+ private executeOpenAI;
90
+ private executeAnthropic;
91
+ private executeGemini;
92
+ }
93
+ /**
94
+ * Create a TMLPD instance
95
+ */
96
+ export declare function createTMLPD(config?: TMLPDConfig): TMLPDTools;
97
+ /**
98
+ * Get default singleton instance
99
+ */
100
+ export declare function getDefault(): TMLPDTools;
101
+ //# sourceMappingURL=tmlpdTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tmlpdTools.d.ts","sourceRoot":"","sources":["../../src/tools/tmlpdTools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAiB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAe,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,EAA6B,WAAW,EAAwB,MAAM,sBAAsB,CAAC;AAIpG,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAS;gBAElB,MAAM,GAAE,WAAgB;IAQpC;;OAEG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,kBAAkB,IAAI;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAIzG;;OAEG;IACH,aAAa,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAIjF;;OAEG;IACH,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIxC;;OAEG;IACG,OAAO,CACX,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,eAAe,GAC1B,OAAO,CAAC,aAAa,CAAC;IAiFzB;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,SAAS,CAAC,EAAE,eAAe,GAC1B,OAAO,CAAC,cAAc,CAAC;IAiC1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;YACW,cAAc;YAqBd,aAAa;YAqDb,gBAAgB;YAqDhB,aAAa;CAkD5B;AAOD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,UAAU,CAE5D;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,UAAU,CAKvC"}