@brutalist/mcp 0.8.1 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +22 -1
  2. package/dist/brutalist-server.d.ts +46 -16
  3. package/dist/brutalist-server.d.ts.map +1 -1
  4. package/dist/brutalist-server.js +223 -611
  5. package/dist/brutalist-server.js.map +1 -1
  6. package/dist/cli-agents.d.ts +8 -6
  7. package/dist/cli-agents.d.ts.map +1 -1
  8. package/dist/cli-agents.js +236 -156
  9. package/dist/cli-agents.js.map +1 -1
  10. package/dist/domains/argument-space.d.ts +9 -0
  11. package/dist/domains/argument-space.d.ts.map +1 -1
  12. package/dist/domains/argument-space.js +27 -20
  13. package/dist/domains/argument-space.js.map +1 -1
  14. package/dist/formatting/response-formatter.d.ts +43 -0
  15. package/dist/formatting/response-formatter.d.ts.map +1 -0
  16. package/dist/formatting/response-formatter.js +277 -0
  17. package/dist/formatting/response-formatter.js.map +1 -0
  18. package/dist/generators/tool-generator.d.ts.map +1 -1
  19. package/dist/generators/tool-generator.js +3 -1
  20. package/dist/generators/tool-generator.js.map +1 -1
  21. package/dist/handlers/tool-handler.d.ts +33 -0
  22. package/dist/handlers/tool-handler.d.ts.map +1 -0
  23. package/dist/handlers/tool-handler.js +299 -0
  24. package/dist/handlers/tool-handler.js.map +1 -0
  25. package/dist/registry/argument-spaces.js +17 -17
  26. package/dist/registry/argument-spaces.js.map +1 -1
  27. package/dist/transport/http-transport.d.ts +40 -0
  28. package/dist/transport/http-transport.d.ts.map +1 -0
  29. package/dist/transport/http-transport.js +182 -0
  30. package/dist/transport/http-transport.js.map +1 -0
  31. package/dist/utils.d.ts +1 -1
  32. package/dist/utils.d.ts.map +1 -1
  33. package/dist/utils.js +13 -6
  34. package/dist/utils.js.map +1 -1
  35. package/package.json +1 -1
@@ -0,0 +1,277 @@
1
+ import { logger } from '../logger.js';
2
+ import { ResponseChunker, createPaginationMetadata, formatPaginationStatus, estimateTokenCount, PAGINATION_DEFAULTS } from '../utils/pagination.js';
3
+ /**
4
+ * ResponseFormatter - Handles all response formatting logic
5
+ * Extracted from BrutalistServer to follow Single Responsibility Principle
6
+ */
7
+ export class ResponseFormatter {
8
+ /**
9
+ * Format tool response with optional pagination
10
+ */
11
+ formatToolResponse(result, verbose = false, paginationParams, contextId, explicitPaginationRequested = false) {
12
+ logger.info(`🔧 DEBUG: formatToolResponse called with synthesis length: ${result.synthesis?.length || 0}`);
13
+ logger.info(`🔧 DEBUG: result.success=${result.success}, responses.length=${result.responses?.length || 0}`);
14
+ logger.info(`🔧 DEBUG: pagination params:`, paginationParams);
15
+ logger.info(`🔧 DEBUG: explicitPaginationRequested=${explicitPaginationRequested}`);
16
+ // Get the primary content to paginate
17
+ let primaryContent = '';
18
+ if (result.synthesis) {
19
+ primaryContent = result.synthesis;
20
+ logger.info(`🔧 DEBUG: Using synthesis content (${primaryContent.length} characters)`);
21
+ }
22
+ else if (result.responses) {
23
+ const successfulResponses = result.responses.filter(r => r.success);
24
+ if (successfulResponses.length > 0) {
25
+ primaryContent = successfulResponses.map(r => r.output).join('\n\n---\n\n');
26
+ logger.info(`🔧 DEBUG: Using raw CLI output (${primaryContent.length} characters)`);
27
+ }
28
+ }
29
+ // Estimate token count to determine if pagination is needed
30
+ const estimatedTokens = estimateTokenCount(primaryContent);
31
+ const maxTokensWithoutPagination = 25000;
32
+ const needsAutoPagination = estimatedTokens > maxTokensWithoutPagination;
33
+ // CRITICAL: Always apply pagination if content is too large, even if not explicitly requested
34
+ // This prevents MCP protocol errors when response exceeds client token limits
35
+ if (needsAutoPagination || explicitPaginationRequested) {
36
+ if (needsAutoPagination && !explicitPaginationRequested) {
37
+ logger.info(`🔧 AUTO-PAGINATING: ${estimatedTokens} tokens exceeds ${maxTokensWithoutPagination} limit - forcing first page`);
38
+ // Force pagination params to show first chunk (use token-based limit)
39
+ const forcedParams = {
40
+ offset: 0,
41
+ limit: PAGINATION_DEFAULTS.DEFAULT_LIMIT_TOKENS // Use token-based limit
42
+ };
43
+ return this.formatPaginatedResponse(primaryContent, forcedParams, result, verbose, contextId);
44
+ }
45
+ else if (paginationParams) {
46
+ logger.info(`🔧 DEBUG: Applying pagination (explicitly requested)`);
47
+ return this.formatPaginatedResponse(primaryContent, paginationParams, result, verbose, contextId);
48
+ }
49
+ }
50
+ // Non-paginated response (only for content that fits within token limit)
51
+ if (primaryContent) {
52
+ logger.info(`🔧 DEBUG: Returning full response (${estimatedTokens} tokens < ${maxTokensWithoutPagination} limit)`);
53
+ // Include context_id even for non-paginated responses (for future pagination/caching)
54
+ let responseText = '';
55
+ if (contextId) {
56
+ responseText += `# Brutalist Analysis Results\n\n`;
57
+ responseText += `**🔑 Context ID:** ${contextId}\n\n`;
58
+ responseText += `---\n\n`;
59
+ responseText += primaryContent;
60
+ }
61
+ else {
62
+ responseText = primaryContent;
63
+ }
64
+ return {
65
+ content: [{
66
+ type: "text",
67
+ text: responseText
68
+ }]
69
+ };
70
+ }
71
+ // Error handling - no successful content
72
+ return this.formatNoContentError(result);
73
+ }
74
+ /**
75
+ * Format paginated response with metadata and navigation
76
+ */
77
+ formatPaginatedResponse(content, paginationParams, result, verbose, contextId) {
78
+ const offset = paginationParams.offset || 0;
79
+ // Convert character-based limit to token-based limit (1 token ≈ 4 chars)
80
+ const limitChars = paginationParams.limit || PAGINATION_DEFAULTS.DEFAULT_LIMIT;
81
+ const limitTokens = Math.ceil(limitChars / 4); // Convert chars to tokens
82
+ logger.info(`🔧 DEBUG: Paginating content - offset: ${offset}, limitChars: ${limitChars}, limitTokens: ${limitTokens}, total: ${content.length} chars`);
83
+ // Use ResponseChunker for intelligent boundary detection (TOKEN-BASED)
84
+ const chunker = new ResponseChunker(limitTokens, PAGINATION_DEFAULTS.CHUNK_OVERLAP_TOKENS);
85
+ const chunks = chunker.chunkText(content);
86
+ // Find the appropriate chunk based on offset
87
+ let targetChunk = chunks[0]; // Default to first chunk
88
+ let targetChunkIndex = 0;
89
+ for (let i = 0; i < chunks.length; i++) {
90
+ const chunk = chunks[i];
91
+ if (offset >= chunk.startOffset && offset < chunk.endOffset) {
92
+ targetChunk = chunk;
93
+ targetChunkIndex = i;
94
+ break;
95
+ }
96
+ }
97
+ const chunkContent = targetChunk.content;
98
+ const actualOffset = targetChunk.startOffset;
99
+ const endOffset = targetChunk.endOffset;
100
+ // Create pagination metadata using actual chunk boundaries
101
+ const pagination = createPaginationMetadata(content.length, paginationParams, limitTokens, chunks, targetChunkIndex);
102
+ const statusLine = formatPaginationStatus(pagination);
103
+ // Estimate token usage for user awareness
104
+ const chunkTokens = estimateTokenCount(chunkContent);
105
+ const totalTokens = estimateTokenCount(content);
106
+ // Format response with pagination info
107
+ let paginatedText = this.buildPaginatedHeader(pagination, contextId, chunkTokens, totalTokens, offset, endOffset);
108
+ // Add the actual content chunk
109
+ paginatedText += chunkContent;
110
+ // Add footer
111
+ paginatedText += this.buildPaginatedFooter(pagination, contextId, endOffset, content.length);
112
+ // Add verbose execution details if requested
113
+ if (verbose && result.executionSummary) {
114
+ paginatedText += this.buildExecutionSummary(result.executionSummary);
115
+ }
116
+ logger.info(`🔧 DEBUG: Returning paginated chunk - ${chunkContent.length} chars (${chunkTokens} tokens)`);
117
+ return {
118
+ content: [{
119
+ type: "text",
120
+ text: paginatedText
121
+ }]
122
+ };
123
+ }
124
+ /**
125
+ * Format error response with sanitized message
126
+ */
127
+ formatErrorResponse(error) {
128
+ logger.error("Tool execution failed", error);
129
+ // Sanitize error message to prevent information leakage
130
+ let sanitizedMessage = "Analysis failed";
131
+ if (error instanceof Error) {
132
+ // Only expose safe, generic error types
133
+ if (error.message.includes('timeout') || error.message.includes('Timeout')) {
134
+ sanitizedMessage = "Analysis timed out - try reducing scope or increasing timeout";
135
+ }
136
+ else if (error.message.includes('ENOENT') || error.message.includes('no such file')) {
137
+ sanitizedMessage = "Target path not found - verify the path exists and is accessible";
138
+ }
139
+ else if (error.message.includes('EACCES') || error.message.includes('permission denied')) {
140
+ sanitizedMessage = "Permission denied - check file access";
141
+ }
142
+ else if (error.message.includes('No CLI agents available')) {
143
+ sanitizedMessage = "No CLI agents available for analysis";
144
+ }
145
+ else if (error.message.includes('resume') && error.message.includes('context_id')) {
146
+ // User-facing validation errors for resume/continuation feature
147
+ sanitizedMessage = error.message;
148
+ }
149
+ else if (error.message.includes('Context ID') && error.message.includes('not found')) {
150
+ // Context ID not found in cache
151
+ sanitizedMessage = error.message;
152
+ }
153
+ else if (error.message.includes('continuation') && error.message.includes('requires')) {
154
+ // Continuation validation errors
155
+ sanitizedMessage = error.message;
156
+ }
157
+ else {
158
+ // Generic message for other errors to prevent path/info leakage
159
+ sanitizedMessage = "Analysis failed due to internal error";
160
+ }
161
+ }
162
+ return {
163
+ content: [{
164
+ type: "text",
165
+ text: `Brutalist MCP Error: ${sanitizedMessage}`
166
+ }]
167
+ };
168
+ }
169
+ /**
170
+ * Extract full content from analysis result for caching
171
+ */
172
+ extractFullContent(result) {
173
+ if (result.synthesis) {
174
+ return result.synthesis;
175
+ }
176
+ else if (result.responses && result.responses.length > 0) {
177
+ const successfulResponses = result.responses.filter(r => r.success);
178
+ if (successfulResponses.length > 0) {
179
+ let output = `${successfulResponses.length} AI critics have systematically demolished your work.\n\n`;
180
+ successfulResponses.forEach((response, index) => {
181
+ output += `## Critic ${index + 1}: ${response.agent.toUpperCase()}\n`;
182
+ output += `*Execution time: ${response.executionTime}ms*\n\n`;
183
+ output += response.output;
184
+ // Only add separator between critics, not after the last one
185
+ if (index < successfulResponses.length - 1) {
186
+ output += '\n\n---\n\n';
187
+ }
188
+ });
189
+ return output;
190
+ }
191
+ }
192
+ return null;
193
+ }
194
+ // Private helper methods
195
+ formatNoContentError(result) {
196
+ let errorOutput = '';
197
+ if (result.responses) {
198
+ const failedResponses = result.responses.filter(r => !r.success);
199
+ if (failedResponses.length > 0) {
200
+ errorOutput = `❌ All CLI agents failed:\n` +
201
+ failedResponses.map(r => `- ${r.agent.toUpperCase()}: ${r.error}`).join('\n');
202
+ }
203
+ else {
204
+ errorOutput = '❌ No CLI responses available';
205
+ }
206
+ }
207
+ else {
208
+ errorOutput = '❌ No analysis results';
209
+ }
210
+ return {
211
+ content: [{
212
+ type: "text",
213
+ text: errorOutput
214
+ }]
215
+ };
216
+ }
217
+ buildPaginatedHeader(pagination, contextId, chunkTokens, totalTokens, offset, endOffset) {
218
+ let header = `# Brutalist Analysis Results\n\n`;
219
+ const needsPagination = pagination.totalChunks > 1 || pagination.hasMore;
220
+ const isFirstRequest = offset === 0;
221
+ const statusLine = formatPaginationStatus(pagination);
222
+ // Always show context_id on first request for future pagination
223
+ if (isFirstRequest && contextId) {
224
+ header += `**🔑 Context ID:** ${contextId}\n`;
225
+ header += `**🔢 Token Estimate:** ~${totalTokens.toLocaleString()} tokens (total)\n\n`;
226
+ }
227
+ if (needsPagination) {
228
+ header += `**📊 Pagination Status:** ${statusLine}\n`;
229
+ if (!isFirstRequest && contextId) {
230
+ header += `**🔑 Context ID:** ${contextId}\n`;
231
+ }
232
+ header += `**🔢 Token Estimate:** ~${chunkTokens.toLocaleString()} tokens (chunk) / ~${totalTokens.toLocaleString()} tokens (total)\n\n`;
233
+ if (pagination.hasMore) {
234
+ if (contextId) {
235
+ header += `**⏭️ Continue Reading:** Use \`context_id: "${contextId}", offset: ${endOffset}\`\n\n`;
236
+ }
237
+ else {
238
+ header += `**⏭️ Continue Reading:** Use \`offset: ${endOffset}\` for next chunk\n\n`;
239
+ }
240
+ }
241
+ }
242
+ header += `---\n\n`;
243
+ return header;
244
+ }
245
+ buildPaginatedFooter(pagination, contextId, endOffset, totalLength) {
246
+ const needsPagination = pagination.totalChunks > 1 || pagination.hasMore;
247
+ if (!needsPagination) {
248
+ return '';
249
+ }
250
+ let footer = `\n\n---\n\n`;
251
+ if (pagination.hasMore) {
252
+ footer += `📖 **End of chunk ${pagination.chunkIndex}/${pagination.totalChunks}**\n`;
253
+ if (contextId) {
254
+ footer += `🔄 To continue: Include \`context_id: "${contextId}"\` with \`offset: ${endOffset}\` in next request`;
255
+ }
256
+ else {
257
+ footer += `🔄 To continue: Use same tool with \`offset: ${endOffset}\``;
258
+ }
259
+ }
260
+ else {
261
+ footer += `✅ **Complete analysis shown** (${totalLength.toLocaleString()} characters total)`;
262
+ }
263
+ return footer;
264
+ }
265
+ buildExecutionSummary(summary) {
266
+ if (!summary)
267
+ return '';
268
+ let text = `\n\n### Execution Summary\n`;
269
+ text += `- **CLI Agents:** ${summary.successfulCLIs}/${summary.totalCLIs} successful\n`;
270
+ text += `- **Total Time:** ${summary.totalExecutionTime}ms\n`;
271
+ if (summary.selectedCLI) {
272
+ text += `- **Selected CLI:** ${summary.selectedCLI}\n`;
273
+ }
274
+ return text;
275
+ }
276
+ }
277
+ //# sourceMappingURL=response-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-formatter.js","sourceRoot":"","sources":["../../src/formatting/response-formatter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-generator.d.ts","sourceRoot":"","sources":["../../src/generators/tool-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAkB,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAuB,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,aAAa,EAAmC,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,qBAAa,sBAAsB;IACjC;;OAEG;IACH,YAAY,CACV,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,iBAAiB,GAC1B,UAAU;IA8Bb;;OAEG;IACH,oBAAoB,CAClB,OAAO,EAAE,cAAc,EAAE,EACzB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,iBAAiB,GAC1B,UAAU;IAQb;;OAEG;IACH,kBAAkB,CAChB,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,aAAa,EAAE,EACzB,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,iBAAiB,EAAE,GAC9B,UAAU,EAAE;IAcf,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,mBAAmB;IAmC3B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,uBAAuB;CAkBhC"}
1
+ {"version":3,"file":"tool-generator.d.ts","sourceRoot":"","sources":["../../src/generators/tool-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAkB,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAuB,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,aAAa,EAAmC,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,qBAAa,sBAAsB;IACjC;;OAEG;IACH,YAAY,CACV,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,iBAAiB,GAC1B,UAAU;IA8Bb;;OAEG;IACH,oBAAoB,CAClB,OAAO,EAAE,cAAc,EAAE,EACzB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,iBAAiB,GAC1B,UAAU;IAQb;;OAEG;IACH,kBAAkB,CAChB,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,aAAa,EAAE,EACzB,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,iBAAiB,EAAE,GAC9B,UAAU,EAAE;IAcf,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,mBAAmB;IAmC3B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,uBAAuB;CAkBhC"}
@@ -91,7 +91,8 @@ export class BrutalistToolGenerator {
91
91
  renderDescription(domain, persona, strategy) {
92
92
  const toneDesc = this.describeTone(persona.tone);
93
93
  const modeDesc = this.describeMode(strategy.mode);
94
- return `Deploy ${toneDesc} AI critics to ${modeDesc} your ${domain.name.toLowerCase()}. These agents will ${this.describeCapabilities(domain.capabilities)} and expose every issue in your ${domain.artifactTypes[0]}.`;
94
+ // Combine the flavorful intro with the domain's detailed description
95
+ return `Deploy ${toneDesc} AI critics to ${modeDesc} your ${domain.name.toLowerCase()}. ${domain.description}.`;
95
96
  }
96
97
  describeTone(tone) {
97
98
  switch (tone) {
@@ -111,6 +112,7 @@ export class BrutalistToolGenerator {
111
112
  default: return 'analyze';
112
113
  }
113
114
  }
115
+ // NOTE: This method is now unused, as domain.description is directly injected
114
116
  describeCapabilities(capabilities) {
115
117
  const first = capabilities[0] || 'analyze';
116
118
  return first.replace(/_/g, ' ');
@@ -1 +1 @@
1
- {"version":3,"file":"tool-generator.js","sourceRoot":"","sources":["../../src/generators/tool-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-generator.js","sourceRoot":"","sources":["../../src/generators/tool-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { CLIAgentOrchestrator } from '../cli-agents.js';
2
+ import { ToolConfig } from '../types/tool-config.js';
3
+ import { BrutalistServerConfig } from '../types/brutalist.js';
4
+ import { ResponseCache } from '../utils/response-cache.js';
5
+ import { ResponseFormatter } from '../formatting/response-formatter.js';
6
+ /**
7
+ * ToolHandler - Handles roast tool execution with caching and pagination
8
+ * Extracted from BrutalistServer to follow Single Responsibility Principle
9
+ */
10
+ export declare class ToolHandler {
11
+ private cliOrchestrator;
12
+ private responseCache;
13
+ private formatter;
14
+ private config;
15
+ private activeSessions;
16
+ private handleStreamingEvent;
17
+ private handleProgressUpdate;
18
+ private ensureSessionCapacity;
19
+ constructor(cliOrchestrator: CLIAgentOrchestrator, responseCache: ResponseCache, formatter: ResponseFormatter, config: BrutalistServerConfig, activeSessions: Map<string, {
20
+ startTime: number;
21
+ requestCount: number;
22
+ lastActivity: number;
23
+ }>, handleStreamingEvent: (event: any) => void, handleProgressUpdate: (progressToken: string | number, progress: number, total: number, message: string, sessionId?: string) => void, ensureSessionCapacity: () => void);
24
+ /**
25
+ * Unified handler for all roast tools - DRY principle
26
+ */
27
+ handleRoastTool(config: ToolConfig, args: any, extra: any): Promise<any>;
28
+ /**
29
+ * Execute brutalist analysis with CLI orchestrator
30
+ */
31
+ private executeBrutalistAnalysis;
32
+ }
33
+ //# sourceMappingURL=tool-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-handler.d.ts","sourceRoot":"","sources":["../../src/handlers/tool-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAIL,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE;;;GAGG;AACH,qBAAa,WAAW;IAEpB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,qBAAqB;gBAjBrB,eAAe,EAAE,oBAAoB,EACrC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,qBAAqB,EAC7B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE;QAClC,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC,EACM,oBAAoB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,EAC1C,oBAAoB,EAAE,CAC5B,aAAa,EAAE,MAAM,GAAG,MAAM,EAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,KACf,IAAI,EACD,qBAAqB,EAAE,MAAM,IAAI;IAG3C;;OAEG;IACU,eAAe,CAC1B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,GAAG,GACT,OAAO,CAAC,GAAG,CAAC;IAuQf;;OAEG;YACW,wBAAwB;CAwFvC"}