mcp-perplexity-pro 1.1.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.
- package/README.md +638 -0
- package/bin/mcp-perplexity-pro +8 -0
- package/bin/mcp-perplexity-pro-stdio +9 -0
- package/dist/claude-code-bridge.d.ts +3 -0
- package/dist/claude-code-bridge.d.ts.map +1 -0
- package/dist/claude-code-bridge.js +111 -0
- package/dist/claude-code-bridge.js.map +1 -0
- package/dist/http-index.d.ts +3 -0
- package/dist/http-index.d.ts.map +1 -0
- package/dist/http-index.js +38 -0
- package/dist/http-index.js.map +1 -0
- package/dist/http-server.d.ts +33 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +362 -0
- package/dist/http-server.js.map +1 -0
- package/dist/http-streaming-server.d.ts +4 -0
- package/dist/http-streaming-server.d.ts.map +1 -0
- package/dist/http-streaming-server.js +514 -0
- package/dist/http-streaming-server.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/launcher.d.ts +3 -0
- package/dist/launcher.d.ts.map +1 -0
- package/dist/launcher.js +209 -0
- package/dist/launcher.js.map +1 -0
- package/dist/mcp-server.d.ts +5 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +329 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/models.d.ts +45 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +284 -0
- package/dist/models.js.map +1 -0
- package/dist/perplexity-api.d.ts +59 -0
- package/dist/perplexity-api.d.ts.map +1 -0
- package/dist/perplexity-api.js +455 -0
- package/dist/perplexity-api.js.map +1 -0
- package/dist/port-utils.d.ts +31 -0
- package/dist/port-utils.d.ts.map +1 -0
- package/dist/port-utils.js +114 -0
- package/dist/port-utils.js.map +1 -0
- package/dist/project-manager.d.ts +91 -0
- package/dist/project-manager.d.ts.map +1 -0
- package/dist/project-manager.js +422 -0
- package/dist/project-manager.js.map +1 -0
- package/dist/simple-streaming.d.ts +26 -0
- package/dist/simple-streaming.d.ts.map +1 -0
- package/dist/simple-streaming.js +75 -0
- package/dist/simple-streaming.js.map +1 -0
- package/dist/sse-index.d.ts +3 -0
- package/dist/sse-index.d.ts.map +1 -0
- package/dist/sse-index.js +38 -0
- package/dist/sse-index.js.map +1 -0
- package/dist/sse-server.d.ts +4 -0
- package/dist/sse-server.d.ts.map +1 -0
- package/dist/sse-server.js +208 -0
- package/dist/sse-server.js.map +1 -0
- package/dist/stdio-bridge.d.ts +21 -0
- package/dist/stdio-bridge.d.ts.map +1 -0
- package/dist/stdio-bridge.js +157 -0
- package/dist/stdio-bridge.js.map +1 -0
- package/dist/stdio-server.d.ts +7 -0
- package/dist/stdio-server.d.ts.map +1 -0
- package/dist/stdio-server.js +396 -0
- package/dist/stdio-server.js.map +1 -0
- package/dist/storage.d.ts +65 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +328 -0
- package/dist/storage.js.map +1 -0
- package/dist/streaming-wrapper.d.ts +63 -0
- package/dist/streaming-wrapper.d.ts.map +1 -0
- package/dist/streaming-wrapper.js +452 -0
- package/dist/streaming-wrapper.js.map +1 -0
- package/dist/tools/async.d.ts +28 -0
- package/dist/tools/async.d.ts.map +1 -0
- package/dist/tools/async.js +167 -0
- package/dist/tools/async.js.map +1 -0
- package/dist/tools/chat.d.ts +29 -0
- package/dist/tools/chat.d.ts.map +1 -0
- package/dist/tools/chat.js +233 -0
- package/dist/tools/chat.js.map +1 -0
- package/dist/tools/projects.d.ts +19 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +219 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/query.d.ts +13 -0
- package/dist/tools/query.d.ts.map +1 -0
- package/dist/tools/query.js +178 -0
- package/dist/tools/query.js.map +1 -0
- package/dist/types.d.ts +330 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +90 -0
- package/dist/types.js.map +1 -0
- package/package.json +89 -0
package/dist/models.js
ADDED
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
// Comprehensive model registry with capabilities and use cases
|
|
2
|
+
export const MODEL_REGISTRY = {
|
|
3
|
+
sonar: {
|
|
4
|
+
type: 'search',
|
|
5
|
+
speed: 'fast',
|
|
6
|
+
cost: 'low',
|
|
7
|
+
bestFor: [
|
|
8
|
+
'quick facts',
|
|
9
|
+
'simple queries',
|
|
10
|
+
'basic summaries',
|
|
11
|
+
'current events',
|
|
12
|
+
'straightforward questions',
|
|
13
|
+
],
|
|
14
|
+
description: 'Lightweight, cost-effective search model with grounding. Best for quick factual queries and simple information retrieval.',
|
|
15
|
+
capabilities: {
|
|
16
|
+
search: true,
|
|
17
|
+
reasoning: false,
|
|
18
|
+
realTime: true,
|
|
19
|
+
research: false,
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
'sonar-pro': {
|
|
23
|
+
type: 'search',
|
|
24
|
+
speed: 'medium',
|
|
25
|
+
cost: 'medium',
|
|
26
|
+
bestFor: [
|
|
27
|
+
'complex queries',
|
|
28
|
+
'follow-up questions',
|
|
29
|
+
'detailed summaries',
|
|
30
|
+
'product comparisons',
|
|
31
|
+
'multi-part questions',
|
|
32
|
+
],
|
|
33
|
+
description: 'Advanced search offering with grounding, supporting complex queries and follow-ups. Ideal for detailed information synthesis.',
|
|
34
|
+
capabilities: {
|
|
35
|
+
search: true,
|
|
36
|
+
reasoning: false,
|
|
37
|
+
realTime: true,
|
|
38
|
+
research: false,
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
'sonar-reasoning': {
|
|
42
|
+
type: 'reasoning',
|
|
43
|
+
speed: 'fast',
|
|
44
|
+
cost: 'medium',
|
|
45
|
+
bestFor: [
|
|
46
|
+
'problem-solving',
|
|
47
|
+
'analysis',
|
|
48
|
+
'step-by-step thinking',
|
|
49
|
+
'logical deduction',
|
|
50
|
+
'quick reasoning tasks',
|
|
51
|
+
],
|
|
52
|
+
description: 'Fast, real-time reasoning model designed for problem-solving with search capabilities. Excellent for analytical tasks.',
|
|
53
|
+
capabilities: {
|
|
54
|
+
search: true,
|
|
55
|
+
reasoning: true,
|
|
56
|
+
realTime: true,
|
|
57
|
+
research: false,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
'sonar-reasoning-pro': {
|
|
61
|
+
type: 'reasoning',
|
|
62
|
+
speed: 'medium',
|
|
63
|
+
cost: 'high',
|
|
64
|
+
bestFor: [
|
|
65
|
+
'complex analysis',
|
|
66
|
+
'detailed reasoning',
|
|
67
|
+
'multi-step problems',
|
|
68
|
+
'chain of thought',
|
|
69
|
+
'informed recommendations',
|
|
70
|
+
],
|
|
71
|
+
description: 'Precise reasoning offering powered by DeepSeek-R1 with Chain of Thought (CoT). Best for complex analytical tasks requiring detailed thinking.',
|
|
72
|
+
capabilities: {
|
|
73
|
+
search: true,
|
|
74
|
+
reasoning: true,
|
|
75
|
+
realTime: true,
|
|
76
|
+
research: false,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
'sonar-deep-research': {
|
|
80
|
+
type: 'research',
|
|
81
|
+
speed: 'slow',
|
|
82
|
+
cost: 'high',
|
|
83
|
+
bestFor: [
|
|
84
|
+
'comprehensive reports',
|
|
85
|
+
'exhaustive research',
|
|
86
|
+
'literature reviews',
|
|
87
|
+
'market analysis',
|
|
88
|
+
'in-depth investigations',
|
|
89
|
+
],
|
|
90
|
+
description: 'Expert-level research model conducting exhaustive searches and generating comprehensive reports. Ideal for thorough research projects.',
|
|
91
|
+
capabilities: {
|
|
92
|
+
search: true,
|
|
93
|
+
reasoning: true,
|
|
94
|
+
realTime: false,
|
|
95
|
+
research: true,
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Intelligent model selection based on query characteristics
|
|
101
|
+
* Analyzes the query content and selects the most appropriate model
|
|
102
|
+
*/
|
|
103
|
+
export function selectOptimalModel(query, explicitModel, defaultModel = 'sonar-reasoning-pro') {
|
|
104
|
+
// If user explicitly specified a model, use it
|
|
105
|
+
if (explicitModel && isValidModel(explicitModel)) {
|
|
106
|
+
return explicitModel;
|
|
107
|
+
}
|
|
108
|
+
// Analyze query characteristics
|
|
109
|
+
const queryLower = query.toLowerCase();
|
|
110
|
+
const words = queryLower.split(/\s+/);
|
|
111
|
+
// Deep research indicators - high priority
|
|
112
|
+
const researchKeywords = [
|
|
113
|
+
'comprehensive',
|
|
114
|
+
'exhaustive',
|
|
115
|
+
'detailed report',
|
|
116
|
+
'research',
|
|
117
|
+
'analyze all',
|
|
118
|
+
'investigate',
|
|
119
|
+
'literature review',
|
|
120
|
+
'market analysis',
|
|
121
|
+
'in-depth',
|
|
122
|
+
'thorough',
|
|
123
|
+
'complete analysis',
|
|
124
|
+
];
|
|
125
|
+
if (researchKeywords.some(keyword => queryLower.includes(keyword))) {
|
|
126
|
+
return 'sonar-deep-research';
|
|
127
|
+
}
|
|
128
|
+
// Complex reasoning indicators
|
|
129
|
+
const complexReasoningKeywords = [
|
|
130
|
+
'step by step',
|
|
131
|
+
'step-by-step',
|
|
132
|
+
'analyze',
|
|
133
|
+
'explain how',
|
|
134
|
+
'reasoning',
|
|
135
|
+
'solve',
|
|
136
|
+
'complex',
|
|
137
|
+
'chain of thought',
|
|
138
|
+
'think through',
|
|
139
|
+
'break down',
|
|
140
|
+
'detailed explanation',
|
|
141
|
+
];
|
|
142
|
+
if (complexReasoningKeywords.some(keyword => queryLower.includes(keyword))) {
|
|
143
|
+
return 'sonar-reasoning-pro';
|
|
144
|
+
}
|
|
145
|
+
// Quick reasoning needs
|
|
146
|
+
const quickReasoningKeywords = [
|
|
147
|
+
'why',
|
|
148
|
+
'how does',
|
|
149
|
+
'explain',
|
|
150
|
+
'compare',
|
|
151
|
+
'analyze briefly',
|
|
152
|
+
'quick analysis',
|
|
153
|
+
'understand',
|
|
154
|
+
'logic',
|
|
155
|
+
];
|
|
156
|
+
if (quickReasoningKeywords.some(keyword => queryLower.includes(keyword))) {
|
|
157
|
+
return 'sonar-reasoning';
|
|
158
|
+
}
|
|
159
|
+
// Enhanced search needs
|
|
160
|
+
const enhancedSearchKeywords = [
|
|
161
|
+
'detailed',
|
|
162
|
+
'multiple',
|
|
163
|
+
'various',
|
|
164
|
+
'follow up',
|
|
165
|
+
'follow-up',
|
|
166
|
+
'comparison',
|
|
167
|
+
'pros and cons',
|
|
168
|
+
'alternatives',
|
|
169
|
+
'options',
|
|
170
|
+
];
|
|
171
|
+
if (enhancedSearchKeywords.some(keyword => queryLower.includes(keyword))) {
|
|
172
|
+
return 'sonar-pro';
|
|
173
|
+
}
|
|
174
|
+
// Simple factual queries
|
|
175
|
+
const simpleQueryIndicators = [
|
|
176
|
+
'what is',
|
|
177
|
+
'when',
|
|
178
|
+
'where',
|
|
179
|
+
'who',
|
|
180
|
+
'simple',
|
|
181
|
+
'quick',
|
|
182
|
+
'brief',
|
|
183
|
+
'fact',
|
|
184
|
+
'date',
|
|
185
|
+
'price',
|
|
186
|
+
'cost',
|
|
187
|
+
];
|
|
188
|
+
if (simpleQueryIndicators.some(indicator => queryLower.includes(indicator)) ||
|
|
189
|
+
words.length <= 5) {
|
|
190
|
+
return 'sonar';
|
|
191
|
+
}
|
|
192
|
+
// Default to balanced model for general queries
|
|
193
|
+
return defaultModel;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Validates if a model name is supported
|
|
197
|
+
*/
|
|
198
|
+
export function isValidModel(model) {
|
|
199
|
+
return Object.keys(MODEL_REGISTRY).includes(model);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Gets model information by name
|
|
203
|
+
*/
|
|
204
|
+
export function getModelInfo(model) {
|
|
205
|
+
return MODEL_REGISTRY[model];
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Gets model capabilities in boolean format for compatibility
|
|
209
|
+
*/
|
|
210
|
+
export function getModelCapabilities(model) {
|
|
211
|
+
if (!isValidModel(model)) {
|
|
212
|
+
return undefined;
|
|
213
|
+
}
|
|
214
|
+
const info = MODEL_REGISTRY[model];
|
|
215
|
+
return info.capabilities;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Suggests a fallback model based on the original model and context
|
|
219
|
+
*/
|
|
220
|
+
export function suggestFallbackModel(originalModel, errorType) {
|
|
221
|
+
const modelInfo = MODEL_REGISTRY[originalModel];
|
|
222
|
+
// If rate limited, suggest a faster/cheaper alternative
|
|
223
|
+
if (errorType === 'rate_limit') {
|
|
224
|
+
switch (originalModel) {
|
|
225
|
+
case 'sonar-deep-research':
|
|
226
|
+
return 'sonar-reasoning-pro';
|
|
227
|
+
case 'sonar-reasoning-pro':
|
|
228
|
+
return 'sonar-reasoning';
|
|
229
|
+
case 'sonar-pro':
|
|
230
|
+
return 'sonar';
|
|
231
|
+
default:
|
|
232
|
+
return 'sonar';
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
// For other errors, suggest a model of the same type but different tier
|
|
236
|
+
switch (modelInfo.type) {
|
|
237
|
+
case 'research':
|
|
238
|
+
return 'sonar-reasoning-pro';
|
|
239
|
+
case 'reasoning':
|
|
240
|
+
return originalModel === 'sonar-reasoning-pro' ? 'sonar-reasoning' : 'sonar-reasoning-pro';
|
|
241
|
+
case 'search':
|
|
242
|
+
return originalModel === 'sonar-pro' ? 'sonar' : 'sonar-pro';
|
|
243
|
+
default:
|
|
244
|
+
return 'sonar-reasoning-pro';
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Gets all models of a specific type
|
|
249
|
+
*/
|
|
250
|
+
export function getModelsByType(type) {
|
|
251
|
+
return Object.entries(MODEL_REGISTRY)
|
|
252
|
+
.filter(([, info]) => info.type === type)
|
|
253
|
+
.map(([model]) => model);
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Gets model recommendations based on use case
|
|
257
|
+
*/
|
|
258
|
+
export function getModelRecommendations(useCase) {
|
|
259
|
+
const useCaseLower = useCase.toLowerCase();
|
|
260
|
+
const recommendations = [];
|
|
261
|
+
Object.entries(MODEL_REGISTRY).forEach(([model, info]) => {
|
|
262
|
+
if (info.bestFor.some(use => useCaseLower.includes(use.toLowerCase()))) {
|
|
263
|
+
recommendations.push(model);
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
return recommendations.length > 0 ? recommendations : ['sonar-reasoning-pro'];
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Formats model information for display
|
|
270
|
+
*/
|
|
271
|
+
export function formatModelInfo(model) {
|
|
272
|
+
const info = MODEL_REGISTRY[model];
|
|
273
|
+
return `${model} (${info.type}, ${info.speed} speed, ${info.cost} cost): ${info.description}`;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Gets a summary of all available models
|
|
277
|
+
*/
|
|
278
|
+
export function getModelSummary() {
|
|
279
|
+
const summary = Object.entries(MODEL_REGISTRY)
|
|
280
|
+
.map(([model, info]) => `- ${model}: ${info.description}`)
|
|
281
|
+
.join('\n');
|
|
282
|
+
return `Available Perplexity Models:\n${summary}`;
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { PerplexityRequest, PerplexityResponse, StreamingCallbacks, AsyncJob, ErrorResponse, Config } from './types.js';
|
|
2
|
+
export declare class PerplexityApiError extends Error {
|
|
3
|
+
status?: number | undefined;
|
|
4
|
+
response?: any | undefined;
|
|
5
|
+
constructor(message: string, status?: number | undefined, response?: any | undefined);
|
|
6
|
+
}
|
|
7
|
+
export declare class PerplexityApiClient {
|
|
8
|
+
private apiKey;
|
|
9
|
+
private baseUrl;
|
|
10
|
+
constructor(config: Config);
|
|
11
|
+
/**
|
|
12
|
+
* Makes a request to the Perplexity API with proper error handling
|
|
13
|
+
*/
|
|
14
|
+
private makeRequest;
|
|
15
|
+
/**
|
|
16
|
+
* Sends a chat completion request to Perplexity
|
|
17
|
+
*/
|
|
18
|
+
chatCompletion(request: PerplexityRequest): Promise<PerplexityResponse>;
|
|
19
|
+
/**
|
|
20
|
+
* Sends a streaming chat completion request to Perplexity
|
|
21
|
+
*/
|
|
22
|
+
chatCompletionStream(request: PerplexityRequest, callbacks: StreamingCallbacks): Promise<PerplexityResponse>;
|
|
23
|
+
/**
|
|
24
|
+
* Processes Server-Sent Events from Perplexity's streaming API
|
|
25
|
+
*/
|
|
26
|
+
private processStreamingResponse;
|
|
27
|
+
/**
|
|
28
|
+
* Processes a single Server-Sent Event line
|
|
29
|
+
*/
|
|
30
|
+
private processSSELine;
|
|
31
|
+
/**
|
|
32
|
+
* Creates an async chat completion job
|
|
33
|
+
*/
|
|
34
|
+
createAsyncChatCompletion(request: PerplexityRequest): Promise<AsyncJob>;
|
|
35
|
+
/**
|
|
36
|
+
* Alias for backward compatibility
|
|
37
|
+
*/
|
|
38
|
+
createAsyncChat(request: PerplexityRequest): Promise<AsyncJob>;
|
|
39
|
+
/**
|
|
40
|
+
* Lists async chat completion jobs
|
|
41
|
+
*/
|
|
42
|
+
listAsyncJobs(limit?: number, nextToken?: string): Promise<{
|
|
43
|
+
jobs: AsyncJob[];
|
|
44
|
+
next_token?: string;
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Gets the status and result of an async job
|
|
48
|
+
*/
|
|
49
|
+
getAsyncJob(jobId: string): Promise<AsyncJob>;
|
|
50
|
+
/**
|
|
51
|
+
* Handles API errors and creates structured error responses
|
|
52
|
+
*/
|
|
53
|
+
static handleError(error: unknown, context?: {
|
|
54
|
+
model?: string;
|
|
55
|
+
query?: string;
|
|
56
|
+
}): ErrorResponse;
|
|
57
|
+
}
|
|
58
|
+
export { PerplexityApiClient as PerplexityAPI };
|
|
59
|
+
//# sourceMappingURL=perplexity-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perplexity-api.d.ts","sourceRoot":"","sources":["../src/perplexity-api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAElB,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,MAAM,EACP,MAAM,YAAY,CAAC;AAQpB,qBAAa,kBAAmB,SAAQ,KAAK;IAGlC,MAAM,CAAC,EAAE,MAAM;IACf,QAAQ,CAAC,EAAE,GAAG;gBAFrB,OAAO,EAAE,MAAM,EACR,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,QAAQ,CAAC,EAAE,GAAG,YAAA;CAKxB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,MAAM;IAK1B;;OAEG;YACW,WAAW;IAiDzB;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6C7E;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,kBAAkB,GAC5B,OAAO,CAAC,kBAAkB,CAAC;IAiF9B;;OAEG;YACW,wBAAwB;IA4FtC;;OAEG;IACH,OAAO,CAAC,cAAc;IAuBtB;;OAEG;IACG,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgD9E;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIpE;;OAEG;IACG,aAAa,CACjB,KAAK,SAAK,EACV,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAWrD;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKnD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,aAAa;CAuFhG;AAGD,OAAO,EAAE,mBAAmB,IAAI,aAAa,EAAE,CAAC"}
|