@nahisaho/musubix-pattern-mcp 1.0.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 (65) hide show
  1. package/dist/compression/index.d.ts +7 -0
  2. package/dist/compression/index.d.ts.map +1 -0
  3. package/dist/compression/index.js +7 -0
  4. package/dist/compression/index.js.map +1 -0
  5. package/dist/compression/pattern-compressor.d.ts +111 -0
  6. package/dist/compression/pattern-compressor.d.ts.map +1 -0
  7. package/dist/compression/pattern-compressor.js +307 -0
  8. package/dist/compression/pattern-compressor.js.map +1 -0
  9. package/dist/compression/quality-evaluator.d.ts +97 -0
  10. package/dist/compression/quality-evaluator.d.ts.map +1 -0
  11. package/dist/compression/quality-evaluator.js +210 -0
  12. package/dist/compression/quality-evaluator.js.map +1 -0
  13. package/dist/extractor/anti-unifier.d.ts +63 -0
  14. package/dist/extractor/anti-unifier.d.ts.map +1 -0
  15. package/dist/extractor/anti-unifier.js +167 -0
  16. package/dist/extractor/anti-unifier.js.map +1 -0
  17. package/dist/extractor/index.d.ts +9 -0
  18. package/dist/extractor/index.d.ts.map +1 -0
  19. package/dist/extractor/index.js +9 -0
  20. package/dist/extractor/index.js.map +1 -0
  21. package/dist/extractor/pattern-extractor.d.ts +58 -0
  22. package/dist/extractor/pattern-extractor.d.ts.map +1 -0
  23. package/dist/extractor/pattern-extractor.js +201 -0
  24. package/dist/extractor/pattern-extractor.js.map +1 -0
  25. package/dist/extractor/subtree-finder.d.ts +81 -0
  26. package/dist/extractor/subtree-finder.d.ts.map +1 -0
  27. package/dist/extractor/subtree-finder.js +155 -0
  28. package/dist/extractor/subtree-finder.js.map +1 -0
  29. package/dist/extractor/typescript-parser.d.ts +91 -0
  30. package/dist/extractor/typescript-parser.d.ts.map +1 -0
  31. package/dist/extractor/typescript-parser.js +219 -0
  32. package/dist/extractor/typescript-parser.js.map +1 -0
  33. package/dist/index.d.ts +13 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +19 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/learning/index.d.ts +6 -0
  38. package/dist/learning/index.d.ts.map +1 -0
  39. package/dist/learning/index.js +6 -0
  40. package/dist/learning/index.js.map +1 -0
  41. package/dist/learning/wake-sleep.d.ts +144 -0
  42. package/dist/learning/wake-sleep.d.ts.map +1 -0
  43. package/dist/learning/wake-sleep.js +312 -0
  44. package/dist/learning/wake-sleep.js.map +1 -0
  45. package/dist/library/index.d.ts +6 -0
  46. package/dist/library/index.d.ts.map +1 -0
  47. package/dist/library/index.js +6 -0
  48. package/dist/library/index.js.map +1 -0
  49. package/dist/library/pattern-library.d.ts +59 -0
  50. package/dist/library/pattern-library.d.ts.map +1 -0
  51. package/dist/library/pattern-library.js +139 -0
  52. package/dist/library/pattern-library.js.map +1 -0
  53. package/dist/privacy/index.d.ts +6 -0
  54. package/dist/privacy/index.d.ts.map +1 -0
  55. package/dist/privacy/index.js +6 -0
  56. package/dist/privacy/index.js.map +1 -0
  57. package/dist/privacy/privacy-filter.d.ts +46 -0
  58. package/dist/privacy/privacy-filter.d.ts.map +1 -0
  59. package/dist/privacy/privacy-filter.js +105 -0
  60. package/dist/privacy/privacy-filter.js.map +1 -0
  61. package/dist/types.d.ts +89 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/dist/types.js +6 -0
  64. package/dist/types.js.map +1 -0
  65. package/package.json +47 -0
@@ -0,0 +1,219 @@
1
+ /**
2
+ * @fileoverview TypeScript AST parser using TypeScript Compiler API
3
+ * @traceability TSK-PATTERN-001, REQ-PATTERN-001-F001
4
+ */
5
+ import ts from 'typescript';
6
+ /**
7
+ * TypeScript AST parser
8
+ *
9
+ * @description
10
+ * Parses TypeScript/JavaScript source code into a normalized AST
11
+ * using the TypeScript Compiler API.
12
+ */
13
+ export class TypeScriptParser {
14
+ options;
15
+ constructor(options = {}) {
16
+ this.options = {
17
+ includePositions: options.includePositions ?? true,
18
+ includeValues: options.includeValues ?? true,
19
+ maxDepth: options.maxDepth ?? 20,
20
+ };
21
+ }
22
+ /**
23
+ * Parse TypeScript/JavaScript source code to AST
24
+ */
25
+ parse(source, fileName = 'source.ts') {
26
+ const sourceFile = ts.createSourceFile(fileName, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
27
+ return this.convertNode(sourceFile, source, 0);
28
+ }
29
+ /**
30
+ * Convert TypeScript AST node to normalized ASTNode
31
+ */
32
+ convertNode(node, source, depth) {
33
+ const children = [];
34
+ if (depth < this.options.maxDepth) {
35
+ ts.forEachChild(node, (child) => {
36
+ children.push(this.convertNode(child, source, depth + 1));
37
+ });
38
+ }
39
+ const result = {
40
+ type: this.getNodeTypeName(node),
41
+ children,
42
+ startPosition: this.getPosition(node.getStart(), source),
43
+ endPosition: this.getPosition(node.getEnd(), source),
44
+ };
45
+ // Include values for identifiers and literals
46
+ if (this.options.includeValues) {
47
+ const value = this.extractValue(node, source);
48
+ if (value !== undefined) {
49
+ result.value = value;
50
+ }
51
+ }
52
+ return result;
53
+ }
54
+ /**
55
+ * Get human-readable node type name
56
+ */
57
+ getNodeTypeName(node) {
58
+ return ts.SyntaxKind[node.kind];
59
+ }
60
+ /**
61
+ * Extract value from node (for identifiers, literals)
62
+ */
63
+ extractValue(node, _source) {
64
+ if (ts.isIdentifier(node)) {
65
+ return node.text;
66
+ }
67
+ if (ts.isStringLiteral(node)) {
68
+ return node.text;
69
+ }
70
+ if (ts.isNumericLiteral(node)) {
71
+ return node.text;
72
+ }
73
+ if (ts.isTemplateHead(node) || ts.isTemplateMiddle(node) || ts.isTemplateTail(node)) {
74
+ return node.text;
75
+ }
76
+ return undefined;
77
+ }
78
+ /**
79
+ * Convert position offset to row/column
80
+ */
81
+ getPosition(offset, source) {
82
+ if (!this.options.includePositions) {
83
+ return { row: 0, column: 0 };
84
+ }
85
+ let row = 0;
86
+ let column = 0;
87
+ for (let i = 0; i < offset && i < source.length; i++) {
88
+ if (source[i] === '\n') {
89
+ row++;
90
+ column = 0;
91
+ }
92
+ else {
93
+ column++;
94
+ }
95
+ }
96
+ return { row, column };
97
+ }
98
+ /**
99
+ * Get all function declarations in source
100
+ */
101
+ getFunctions(source) {
102
+ const sourceFile = ts.createSourceFile('source.ts', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
103
+ const functions = [];
104
+ const visit = (node) => {
105
+ if (ts.isFunctionDeclaration(node) && node.name) {
106
+ functions.push({
107
+ name: node.name.text,
108
+ parameters: node.parameters.map(p => ({
109
+ name: p.name.getText(),
110
+ type: p.type?.getText() ?? 'any',
111
+ })),
112
+ returnType: node.type?.getText() ?? 'void',
113
+ startLine: sourceFile.getLineAndCharacterOfPosition(node.getStart()).line + 1,
114
+ endLine: sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line + 1,
115
+ });
116
+ }
117
+ if (ts.isMethodDeclaration(node) && node.name) {
118
+ functions.push({
119
+ name: node.name.getText(),
120
+ parameters: node.parameters.map(p => ({
121
+ name: p.name.getText(),
122
+ type: p.type?.getText() ?? 'any',
123
+ })),
124
+ returnType: node.type?.getText() ?? 'void',
125
+ startLine: sourceFile.getLineAndCharacterOfPosition(node.getStart()).line + 1,
126
+ endLine: sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line + 1,
127
+ });
128
+ }
129
+ if (ts.isArrowFunction(node) || ts.isFunctionExpression(node)) {
130
+ const parent = node.parent;
131
+ let name = '<anonymous>';
132
+ if (ts.isVariableDeclaration(parent) && ts.isIdentifier(parent.name)) {
133
+ name = parent.name.text;
134
+ }
135
+ functions.push({
136
+ name,
137
+ parameters: node.parameters.map(p => ({
138
+ name: p.name.getText(),
139
+ type: p.type?.getText() ?? 'any',
140
+ })),
141
+ returnType: node.type?.getText() ?? 'void',
142
+ startLine: sourceFile.getLineAndCharacterOfPosition(node.getStart()).line + 1,
143
+ endLine: sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line + 1,
144
+ });
145
+ }
146
+ ts.forEachChild(node, visit);
147
+ };
148
+ visit(sourceFile);
149
+ return functions;
150
+ }
151
+ /**
152
+ * Get all class declarations in source
153
+ */
154
+ getClasses(source) {
155
+ const sourceFile = ts.createSourceFile('source.ts', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
156
+ const classes = [];
157
+ const visit = (node) => {
158
+ if (ts.isClassDeclaration(node) && node.name) {
159
+ const methods = [];
160
+ const properties = [];
161
+ node.members.forEach(member => {
162
+ if (ts.isMethodDeclaration(member) && member.name) {
163
+ methods.push(member.name.getText());
164
+ }
165
+ if (ts.isPropertyDeclaration(member) && member.name) {
166
+ properties.push(member.name.getText());
167
+ }
168
+ });
169
+ classes.push({
170
+ name: node.name.text,
171
+ methods,
172
+ properties,
173
+ startLine: sourceFile.getLineAndCharacterOfPosition(node.getStart()).line + 1,
174
+ endLine: sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line + 1,
175
+ });
176
+ }
177
+ ts.forEachChild(node, visit);
178
+ };
179
+ visit(sourceFile);
180
+ return classes;
181
+ }
182
+ /**
183
+ * Get imports from source
184
+ */
185
+ getImports(source) {
186
+ const sourceFile = ts.createSourceFile('source.ts', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
187
+ const imports = [];
188
+ const visit = (node) => {
189
+ if (ts.isImportDeclaration(node)) {
190
+ const moduleSpecifier = node.moduleSpecifier;
191
+ if (ts.isStringLiteral(moduleSpecifier)) {
192
+ const namedImports = [];
193
+ let defaultImport;
194
+ if (node.importClause) {
195
+ if (node.importClause.name) {
196
+ defaultImport = node.importClause.name.text;
197
+ }
198
+ if (node.importClause.namedBindings) {
199
+ if (ts.isNamedImports(node.importClause.namedBindings)) {
200
+ node.importClause.namedBindings.elements.forEach(el => {
201
+ namedImports.push(el.name.text);
202
+ });
203
+ }
204
+ }
205
+ }
206
+ imports.push({
207
+ module: moduleSpecifier.text,
208
+ namedImports,
209
+ defaultImport,
210
+ });
211
+ }
212
+ }
213
+ ts.forEachChild(node, visit);
214
+ };
215
+ visit(sourceFile);
216
+ return imports;
217
+ }
218
+ }
219
+ //# sourceMappingURL=typescript-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-parser.js","sourceRoot":"","sources":["../../src/extractor/typescript-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @fileoverview MUSUBIX Pattern Library Learning MCP
3
+ * @module @nahisaho/musubix-pattern-mcp
4
+ * @version 1.0.0
5
+ * @traceability REQ-PATTERN-001
6
+ */
7
+ export * from './types.js';
8
+ export * from './extractor/index.js';
9
+ export * from './compression/index.js';
10
+ export * from './library/index.js';
11
+ export * from './privacy/index.js';
12
+ export * from './learning/index.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,sBAAsB,CAAC;AAGrC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,qBAAqB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @fileoverview MUSUBIX Pattern Library Learning MCP
3
+ * @module @nahisaho/musubix-pattern-mcp
4
+ * @version 1.0.0
5
+ * @traceability REQ-PATTERN-001
6
+ */
7
+ // Types
8
+ export * from './types.js';
9
+ // Pattern Extraction (TSK-PATTERN-001)
10
+ export * from './extractor/index.js';
11
+ // Pattern Compression (TSK-PATTERN-002)
12
+ export * from './compression/index.js';
13
+ // Pattern Library (TSK-PATTERN-005)
14
+ export * from './library/index.js';
15
+ // Privacy Protection (TSK-PATTERN-007)
16
+ export * from './privacy/index.js';
17
+ // Wake-Sleep Learning (TSK-WAKE-002)
18
+ export * from './learning/index.js';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,uCAAuC;AACvC,cAAc,sBAAsB,CAAC;AAErC,wCAAwC;AACxC,cAAc,wBAAwB,CAAC;AAEvC,oCAAoC;AACpC,cAAc,oBAAoB,CAAC;AAEnC,uCAAuC;AACvC,cAAc,oBAAoB,CAAC;AAEnC,qCAAqC;AACrC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Learning module exports
3
+ * @traceability TSK-WAKE-002
4
+ */
5
+ export { WakeSleepCycle, type WakeSleepConfig, type WakeObservation, type SleepResult, type LearningStats, } from './wake-sleep.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/learning/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Learning module exports
3
+ * @traceability TSK-WAKE-002
4
+ */
5
+ export { WakeSleepCycle, } from './wake-sleep.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/learning/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,cAAc,GAKf,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * @fileoverview Wake-Sleep Cycle Learning System
3
+ * @traceability TSK-WAKE-002, REQ-PATTERN-003
4
+ *
5
+ * Implements DreamCoder-style wake-sleep learning:
6
+ * - Wake Phase: Extract patterns from observed code
7
+ * - Sleep Phase: Compress and optimize pattern library
8
+ */
9
+ import type { Pattern, ASTNode } from '../types.js';
10
+ /**
11
+ * Configuration for wake-sleep cycle
12
+ */
13
+ export interface WakeSleepConfig {
14
+ /** Minimum quality score to keep pattern */
15
+ minQualityThreshold: number;
16
+ /** Maximum patterns in library */
17
+ maxLibrarySize: number;
18
+ /** Compression iterations per sleep cycle */
19
+ compressionIterations: number;
20
+ /** Whether to enable automatic cycling */
21
+ autoSleep: boolean;
22
+ /** Wake observations before triggering auto sleep */
23
+ wakeThreshold: number;
24
+ }
25
+ /**
26
+ * Wake phase observation
27
+ */
28
+ export interface WakeObservation {
29
+ ast: ASTNode;
30
+ source: string;
31
+ context: {
32
+ language: string;
33
+ filename?: string;
34
+ domain?: string;
35
+ };
36
+ timestamp: string;
37
+ }
38
+ /**
39
+ * Sleep cycle result
40
+ */
41
+ export interface SleepResult {
42
+ patternsConsolidated: number;
43
+ patternsRemoved: number;
44
+ compressionRatio: number;
45
+ mdlImprovement: number;
46
+ cycleTimeMs: number;
47
+ }
48
+ /**
49
+ * Wake-Sleep learning statistics
50
+ */
51
+ export interface LearningStats {
52
+ totalWakeObservations: number;
53
+ totalSleepCycles: number;
54
+ currentLibrarySize: number;
55
+ averagePatternQuality: number;
56
+ totalPatternsExtracted: number;
57
+ totalPatternsRemoved: number;
58
+ }
59
+ /**
60
+ * Wake-Sleep Cycle Learning System
61
+ *
62
+ * Implements alternating wake and sleep phases for continuous learning:
63
+ *
64
+ * Wake Phase:
65
+ * - Observe new code/patterns
66
+ * - Extract potential patterns
67
+ * - Add to candidate pool
68
+ *
69
+ * Sleep Phase:
70
+ * - Compress pattern library using MDL
71
+ * - Remove low-quality patterns
72
+ * - Merge similar patterns
73
+ * - Optimize for generality/utility balance
74
+ */
75
+ export declare class WakeSleepCycle {
76
+ private config;
77
+ private compressor;
78
+ private evaluator;
79
+ private library;
80
+ private wakeBuffer;
81
+ private stats;
82
+ constructor(config?: Partial<WakeSleepConfig>);
83
+ /**
84
+ * Wake Phase: Observe new code and extract patterns
85
+ */
86
+ wake(observation: WakeObservation): Pattern[];
87
+ /**
88
+ * Sleep Phase: Consolidate and optimize pattern library
89
+ */
90
+ sleep(): SleepResult;
91
+ /**
92
+ * Extract patterns from AST
93
+ */
94
+ private extractPatternsFromAST;
95
+ /**
96
+ * Add pattern to library (or update existing)
97
+ */
98
+ private addToLibrary;
99
+ /**
100
+ * Find similar pattern in library
101
+ */
102
+ private findSimilarPattern;
103
+ /**
104
+ * Generate key for pattern deduplication
105
+ */
106
+ private getPatternKey;
107
+ /**
108
+ * Estimate MDL for library without data
109
+ */
110
+ private estimateLibraryMDL;
111
+ /**
112
+ * Count nodes in AST
113
+ */
114
+ private countNodes;
115
+ /**
116
+ * Update average quality statistic
117
+ */
118
+ private updateAverageQuality;
119
+ /**
120
+ * Get current pattern library
121
+ */
122
+ getLibrary(): Pattern[];
123
+ /**
124
+ * Get learning statistics
125
+ */
126
+ getStats(): LearningStats;
127
+ /**
128
+ * Get pattern by ID
129
+ */
130
+ getPattern(id: string): Pattern | undefined;
131
+ /**
132
+ * Clear library and reset stats
133
+ */
134
+ reset(): void;
135
+ /**
136
+ * Export library to JSON
137
+ */
138
+ exportLibrary(): string;
139
+ /**
140
+ * Import library from JSON
141
+ */
142
+ importLibrary(json: string): number;
143
+ }
144
+ //# sourceMappingURL=wake-sleep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wake-sleep.d.ts","sourceRoot":"","sources":["../../src/learning/wake-sleep.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAIpD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kCAAkC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,qBAAqB,EAAE,MAAM,CAAC;IAC9B,0CAA0C;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAWD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,OAAO,CAA2C;IAC1D,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,KAAK,CAAgB;gBAEjB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IA6B7C;;OAEG;IACH,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,EAAE;IAoB7C;;OAEG;IACH,KAAK,IAAI,WAAW;IAuEpB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAsC9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,aAAa;IAmBrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;OAEG;IACH,UAAU,IAAI,OAAO,EAAE;IAIvB;;OAEG;IACH,QAAQ,IAAI,aAAa;IAIzB;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI3C;;OAEG;IACH,KAAK,IAAI,IAAI;IAab;;OAEG;IACH,aAAa,IAAI,MAAM;IAQvB;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAcpC"}