mcp-local-rag 0.1.4 → 0.2.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 (41) hide show
  1. package/README.md +26 -6
  2. package/dist/embedder/index.d.ts +6 -0
  3. package/dist/embedder/index.d.ts.map +1 -1
  4. package/dist/embedder/index.js +34 -7
  5. package/dist/embedder/index.js.map +1 -1
  6. package/dist/index.js +0 -0
  7. package/dist/server/index.d.ts +16 -0
  8. package/dist/server/index.d.ts.map +1 -1
  9. package/dist/server/index.js +49 -1
  10. package/dist/server/index.js.map +1 -1
  11. package/dist/vectordb/index.js +2 -2
  12. package/dist/vectordb/index.js.map +1 -1
  13. package/package.json +2 -4
  14. package/dist/chunker.d.ts +0 -42
  15. package/dist/chunker.d.ts.map +0 -1
  16. package/dist/chunker.js +0 -68
  17. package/dist/chunker.js.map +0 -1
  18. package/dist/embedder.d.ts +0 -48
  19. package/dist/embedder.d.ts.map +0 -1
  20. package/dist/embedder.js +0 -108
  21. package/dist/embedder.js.map +0 -1
  22. package/dist/parser.d.ts +0 -92
  23. package/dist/parser.d.ts.map +0 -1
  24. package/dist/parser.js +0 -186
  25. package/dist/parser.js.map +0 -1
  26. package/dist/server.d.ts +0 -125
  27. package/dist/server.d.ts.map +0 -1
  28. package/dist/server.js +0 -300
  29. package/dist/server.js.map +0 -1
  30. package/dist/test-helpers/test-data.d.ts +0 -31
  31. package/dist/test-helpers/test-data.d.ts.map +0 -1
  32. package/dist/test-helpers/test-data.js +0 -53
  33. package/dist/test-helpers/test-data.js.map +0 -1
  34. package/dist/test-helpers/test-utils.d.ts +0 -21
  35. package/dist/test-helpers/test-utils.d.ts.map +0 -1
  36. package/dist/test-helpers/test-utils.js +0 -35
  37. package/dist/test-helpers/test-utils.js.map +0 -1
  38. package/dist/vectordb.d.ts +0 -121
  39. package/dist/vectordb.d.ts.map +0 -1
  40. package/dist/vectordb.js +0 -243
  41. package/dist/vectordb.js.map +0 -1
package/dist/embedder.js DELETED
@@ -1,108 +0,0 @@
1
- "use strict";
2
- // src/embedder.ts - Embedder implementation with Transformers.js
3
- // Design Doc: rag-mcp-server-design.md (v1.1)
4
- // ADR-0002: Transformers.js選定とエンベディング戦略
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Embedder = exports.EmbeddingError = void 0;
7
- const transformers_1 = require("@xenova/transformers");
8
- // ============================================
9
- // エラークラス
10
- // ============================================
11
- /**
12
- * 埋め込み生成エラー
13
- */
14
- class EmbeddingError extends Error {
15
- constructor(message, cause) {
16
- super(message);
17
- this.cause = cause;
18
- this.name = 'EmbeddingError';
19
- }
20
- }
21
- exports.EmbeddingError = EmbeddingError;
22
- // ============================================
23
- // Embedderクラス
24
- // ============================================
25
- /**
26
- * Transformers.jsを活用した埋め込み生成クラス
27
- *
28
- * 責務:
29
- * - 埋め込みベクトル生成(384次元)
30
- * - Transformers.jsラッパー
31
- * - バッチ処理(サイズ8)
32
- */
33
- class Embedder {
34
- constructor(config) {
35
- this.model = null;
36
- this.config = config;
37
- }
38
- /**
39
- * Transformers.jsモデルを初期化する
40
- */
41
- async initialize() {
42
- try {
43
- console.log(`Embedder: モデル "${this.config.modelPath}" をロード中...`);
44
- this.model = await (0, transformers_1.pipeline)('feature-extraction', this.config.modelPath);
45
- console.log('Embedder: モデルのロードが完了しました');
46
- }
47
- catch (error) {
48
- throw new EmbeddingError(`Failed to initialize Embedder: ${error.message}`, error);
49
- }
50
- }
51
- /**
52
- * 単一のテキストを埋め込みベクトルに変換する
53
- *
54
- * @param text - テキスト
55
- * @returns 384次元のベクトル
56
- */
57
- async embed(text) {
58
- if (!this.model) {
59
- throw new EmbeddingError('Embedder is not initialized. Call initialize() first.');
60
- }
61
- try {
62
- // 空文字列の場合、ゼロベクトルを返す
63
- if (text.length === 0) {
64
- return new Array(384).fill(0);
65
- }
66
- // Transformers.jsの複雑な型定義を回避するため、型アサーションを使用
67
- // これは外部ライブラリの型定義の制約によるものであり、実行時の動作は保証されている
68
- const options = { pooling: 'mean', normalize: true };
69
- const modelCall = this.model;
70
- const output = await modelCall(text, options);
71
- // .data プロパティで生データにアクセス
72
- const embedding = Array.from(output.data);
73
- return embedding;
74
- }
75
- catch (error) {
76
- throw new EmbeddingError(`Failed to generate embedding: ${error.message}`, error);
77
- }
78
- }
79
- /**
80
- * 複数のテキストをバッチ処理で埋め込みベクトルに変換する
81
- *
82
- * @param texts - テキストの配列
83
- * @returns 384次元のベクトルの配列
84
- */
85
- async embedBatch(texts) {
86
- if (!this.model) {
87
- throw new EmbeddingError('Embedder is not initialized. Call initialize() first.');
88
- }
89
- if (texts.length === 0) {
90
- return [];
91
- }
92
- try {
93
- const embeddings = [];
94
- // バッチサイズごとに分割して処理
95
- for (let i = 0; i < texts.length; i += this.config.batchSize) {
96
- const batch = texts.slice(i, i + this.config.batchSize);
97
- const batchEmbeddings = await Promise.all(batch.map((text) => this.embed(text)));
98
- embeddings.push(...batchEmbeddings);
99
- }
100
- return embeddings;
101
- }
102
- catch (error) {
103
- throw new EmbeddingError(`Failed to generate batch embeddings: ${error.message}`, error);
104
- }
105
- }
106
- }
107
- exports.Embedder = Embedder;
108
- //# sourceMappingURL=embedder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embedder.js","sourceRoot":"","sources":["../src/embedder.ts"],"names":[],"mappings":"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"}
package/dist/parser.d.ts DELETED
@@ -1,92 +0,0 @@
1
- /**
2
- * DocumentParser設定
3
- */
4
- export interface ParserConfig {
5
- /** セキュリティ: 許可されたベースディレクトリ */
6
- baseDir: string;
7
- /** 最大ファイルサイズ(100MB) */
8
- maxFileSize: number;
9
- }
10
- /**
11
- * バリデーションエラー(400相当)
12
- */
13
- export declare class ValidationError extends Error {
14
- readonly cause?: Error | undefined;
15
- constructor(message: string, cause?: Error | undefined);
16
- }
17
- /**
18
- * ファイル操作エラー(500相当)
19
- */
20
- export declare class FileOperationError extends Error {
21
- readonly cause?: Error | undefined;
22
- constructor(message: string, cause?: Error | undefined);
23
- }
24
- /**
25
- * ドキュメントパーサークラス(PDF/DOCX/TXT/MD対応)
26
- *
27
- * 責務:
28
- * - ファイルパス検証(パストラバーサル防止)
29
- * - ファイルサイズ検証(100MB制限)
30
- * - 4形式パース(PDF/DOCX/TXT/MD)
31
- */
32
- export declare class DocumentParser {
33
- private readonly config;
34
- constructor(config: ParserConfig);
35
- /**
36
- * ファイルパス検証(パストラバーサル防止)
37
- *
38
- * @param filePath - 検証対象のファイルパス
39
- * @throws ValidationError - パストラバーサル攻撃検出時
40
- */
41
- validateFilePath(filePath: string): void;
42
- /**
43
- * ファイルサイズ検証(100MB制限)
44
- *
45
- * @param filePath - 検証対象のファイルパス
46
- * @throws ValidationError - ファイルサイズ超過時
47
- * @throws FileOperationError - ファイル読み込み失敗時
48
- */
49
- validateFileSize(filePath: string): void;
50
- /**
51
- * ファイルパース(フォーマット自動判定)
52
- *
53
- * @param filePath - パース対象のファイルパス
54
- * @returns パースされたテキスト
55
- * @throws ValidationError - パストラバーサル、サイズ超過、未対応フォーマット
56
- * @throws FileOperationError - ファイル読み込み失敗、パース失敗
57
- */
58
- parseFile(filePath: string): Promise<string>;
59
- /**
60
- * PDFパース(pdf-parse v2使用)
61
- *
62
- * @param filePath - PDFファイルパス
63
- * @returns パースされたテキスト
64
- * @throws FileOperationError - ファイル読み込み失敗、パース失敗
65
- */
66
- private parsePdf;
67
- /**
68
- * DOCXパース(mammoth使用)
69
- *
70
- * @param filePath - DOCXファイルパス
71
- * @returns パースされたテキスト
72
- * @throws FileOperationError - ファイル読み込み失敗、パース失敗
73
- */
74
- private parseDocx;
75
- /**
76
- * TXTパース(fs.readFile使用)
77
- *
78
- * @param filePath - TXTファイルパス
79
- * @returns パースされたテキスト
80
- * @throws FileOperationError - ファイル読み込み失敗
81
- */
82
- private parseTxt;
83
- /**
84
- * MDパース(fs.readFile使用)
85
- *
86
- * @param filePath - MDファイルパス
87
- * @returns パースされたテキスト
88
- * @throws FileOperationError - ファイル読み込み失敗
89
- */
90
- private parseMd;
91
- }
92
- //# sourceMappingURL=parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAMD;;;;;;;GAOG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,MAAM,EAAE,YAAY;IAIhC;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IASxC;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgBxC;;;;;;;OAOG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBlD;;;;;;OAMG;YACW,QAAQ;IAYtB;;;;;;OAMG;YACW,SAAS;IAUvB;;;;;;OAMG;YACW,QAAQ;IAUtB;;;;;;OAMG;YACW,OAAO;CAStB"}
package/dist/parser.js DELETED
@@ -1,186 +0,0 @@
1
- "use strict";
2
- // src/parser.ts - DocumentParser implementation with PDF/DOCX/TXT/MD support
3
- // Design Doc: rag-mcp-server-design.md (v1.1)
4
- // Task: TASK-005, TASK-008
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.DocumentParser = exports.FileOperationError = exports.ValidationError = void 0;
10
- const node_fs_1 = require("node:fs");
11
- const promises_1 = require("node:fs/promises");
12
- const node_path_1 = require("node:path");
13
- const pdf_parse_1 = require("pdf-parse");
14
- const mammoth_1 = __importDefault(require("mammoth"));
15
- /**
16
- * バリデーションエラー(400相当)
17
- */
18
- class ValidationError extends Error {
19
- constructor(message, cause) {
20
- super(message);
21
- this.cause = cause;
22
- this.name = 'ValidationError';
23
- }
24
- }
25
- exports.ValidationError = ValidationError;
26
- /**
27
- * ファイル操作エラー(500相当)
28
- */
29
- class FileOperationError extends Error {
30
- constructor(message, cause) {
31
- super(message);
32
- this.cause = cause;
33
- this.name = 'FileOperationError';
34
- }
35
- }
36
- exports.FileOperationError = FileOperationError;
37
- // ============================================
38
- // DocumentParserクラス
39
- // ============================================
40
- /**
41
- * ドキュメントパーサークラス(PDF/DOCX/TXT/MD対応)
42
- *
43
- * 責務:
44
- * - ファイルパス検証(パストラバーサル防止)
45
- * - ファイルサイズ検証(100MB制限)
46
- * - 4形式パース(PDF/DOCX/TXT/MD)
47
- */
48
- class DocumentParser {
49
- constructor(config) {
50
- this.config = config;
51
- }
52
- /**
53
- * ファイルパス検証(パストラバーサル防止)
54
- *
55
- * @param filePath - 検証対象のファイルパス
56
- * @throws ValidationError - パストラバーサル攻撃検出時
57
- */
58
- validateFilePath(filePath) {
59
- const resolvedPath = (0, node_path_1.resolve)(this.config.baseDir, filePath);
60
- const baseDir = (0, node_path_1.resolve)(this.config.baseDir);
61
- if (!resolvedPath.startsWith(baseDir)) {
62
- throw new ValidationError(`Path traversal detected: ${filePath}`);
63
- }
64
- }
65
- /**
66
- * ファイルサイズ検証(100MB制限)
67
- *
68
- * @param filePath - 検証対象のファイルパス
69
- * @throws ValidationError - ファイルサイズ超過時
70
- * @throws FileOperationError - ファイル読み込み失敗時
71
- */
72
- validateFileSize(filePath) {
73
- try {
74
- const stats = (0, node_fs_1.statSync)(filePath);
75
- if (stats.size > this.config.maxFileSize) {
76
- throw new ValidationError(`File size exceeds limit: ${stats.size} > ${this.config.maxFileSize}`);
77
- }
78
- }
79
- catch (error) {
80
- if (error instanceof ValidationError) {
81
- throw error;
82
- }
83
- throw new FileOperationError(`Failed to check file size: ${filePath}`, error);
84
- }
85
- }
86
- /**
87
- * ファイルパース(フォーマット自動判定)
88
- *
89
- * @param filePath - パース対象のファイルパス
90
- * @returns パースされたテキスト
91
- * @throws ValidationError - パストラバーサル、サイズ超過、未対応フォーマット
92
- * @throws FileOperationError - ファイル読み込み失敗、パース失敗
93
- */
94
- async parseFile(filePath) {
95
- // バリデーション
96
- this.validateFilePath(filePath);
97
- const resolvedPath = (0, node_path_1.resolve)(this.config.baseDir, filePath);
98
- this.validateFileSize(resolvedPath);
99
- // フォーマット判定
100
- const ext = (0, node_path_1.extname)(resolvedPath).toLowerCase();
101
- switch (ext) {
102
- case '.pdf':
103
- return await this.parsePdf(resolvedPath);
104
- case '.docx':
105
- return await this.parseDocx(resolvedPath);
106
- case '.txt':
107
- return await this.parseTxt(resolvedPath);
108
- case '.md':
109
- return await this.parseMd(resolvedPath);
110
- default:
111
- throw new ValidationError(`Unsupported file format: ${ext}`);
112
- }
113
- }
114
- /**
115
- * PDFパース(pdf-parse v2使用)
116
- *
117
- * @param filePath - PDFファイルパス
118
- * @returns パースされたテキスト
119
- * @throws FileOperationError - ファイル読み込み失敗、パース失敗
120
- */
121
- async parsePdf(filePath) {
122
- try {
123
- const buffer = await (0, promises_1.readFile)(filePath);
124
- const parser = new pdf_parse_1.PDFParse({ data: buffer });
125
- const result = await parser.getText();
126
- console.log(`Parsed PDF: ${filePath} (${result.text.length} characters)`);
127
- return result.text;
128
- }
129
- catch (error) {
130
- throw new FileOperationError(`Failed to parse PDF: ${filePath}`, error);
131
- }
132
- }
133
- /**
134
- * DOCXパース(mammoth使用)
135
- *
136
- * @param filePath - DOCXファイルパス
137
- * @returns パースされたテキスト
138
- * @throws FileOperationError - ファイル読み込み失敗、パース失敗
139
- */
140
- async parseDocx(filePath) {
141
- try {
142
- const result = await mammoth_1.default.extractRawText({ path: filePath });
143
- console.log(`Parsed DOCX: ${filePath} (${result.value.length} characters)`);
144
- return result.value;
145
- }
146
- catch (error) {
147
- throw new FileOperationError(`Failed to parse DOCX: ${filePath}`, error);
148
- }
149
- }
150
- /**
151
- * TXTパース(fs.readFile使用)
152
- *
153
- * @param filePath - TXTファイルパス
154
- * @returns パースされたテキスト
155
- * @throws FileOperationError - ファイル読み込み失敗
156
- */
157
- async parseTxt(filePath) {
158
- try {
159
- const text = await (0, promises_1.readFile)(filePath, 'utf-8');
160
- console.log(`Parsed TXT: ${filePath} (${text.length} characters)`);
161
- return text;
162
- }
163
- catch (error) {
164
- throw new FileOperationError(`Failed to parse TXT: ${filePath}`, error);
165
- }
166
- }
167
- /**
168
- * MDパース(fs.readFile使用)
169
- *
170
- * @param filePath - MDファイルパス
171
- * @returns パースされたテキスト
172
- * @throws FileOperationError - ファイル読み込み失敗
173
- */
174
- async parseMd(filePath) {
175
- try {
176
- const text = await (0, promises_1.readFile)(filePath, 'utf-8');
177
- console.log(`Parsed MD: ${filePath} (${text.length} characters)`);
178
- return text;
179
- }
180
- catch (error) {
181
- throw new FileOperationError(`Failed to parse MD: ${filePath}`, error);
182
- }
183
- }
184
- }
185
- exports.DocumentParser = DocumentParser;
186
- //# sourceMappingURL=parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts DELETED
@@ -1,125 +0,0 @@
1
- /**
2
- * RAGServer設定
3
- */
4
- export interface RAGServerConfig {
5
- /** LanceDBデータベースパス */
6
- dbPath: string;
7
- /** Transformers.jsモデルパス */
8
- modelName: string;
9
- /** モデルキャッシュディレクトリ */
10
- cacheDir: string;
11
- /** ドキュメントベースディレクトリ */
12
- baseDir: string;
13
- /** 最大ファイルサイズ(100MB) */
14
- maxFileSize: number;
15
- /** チャンクサイズ */
16
- chunkSize: number;
17
- /** チャンクオーバーラップ */
18
- chunkOverlap: number;
19
- }
20
- /**
21
- * query_documentsツール入力
22
- */
23
- export interface QueryDocumentsInput {
24
- /** 自然言語クエリ */
25
- query: string;
26
- /** 取得件数(デフォルト5) */
27
- limit?: number;
28
- }
29
- /**
30
- * ingest_fileツール入力
31
- */
32
- export interface IngestFileInput {
33
- /** ファイルパス */
34
- filePath: string;
35
- }
36
- /**
37
- * ingest_fileツール出力
38
- */
39
- export interface IngestResult {
40
- /** ファイルパス */
41
- filePath: string;
42
- /** チャンク数 */
43
- chunkCount: number;
44
- /** タイムスタンプ */
45
- timestamp: string;
46
- }
47
- /**
48
- * query_documentsツール出力
49
- */
50
- export interface QueryResult {
51
- /** ファイルパス */
52
- filePath: string;
53
- /** チャンクインデックス */
54
- chunkIndex: number;
55
- /** テキスト */
56
- text: string;
57
- /** 類似度スコア */
58
- score: number;
59
- }
60
- /**
61
- * MCP Protocol準拠のRAGサーバー
62
- *
63
- * 責務:
64
- * - MCPツール統合(4つのツール)
65
- * - ツールハンドラ実装
66
- * - エラーハンドリング
67
- * - 初期化処理(LanceDB、Transformers.js)
68
- */
69
- export declare class RAGServer {
70
- private readonly server;
71
- private readonly vectorStore;
72
- private readonly embedder;
73
- private readonly chunker;
74
- private readonly parser;
75
- constructor(config: RAGServerConfig);
76
- /**
77
- * MCPハンドラをセットアップする
78
- */
79
- private setupHandlers;
80
- /**
81
- * 初期化処理
82
- */
83
- initialize(): Promise<void>;
84
- /**
85
- * query_documentsツールハンドラ
86
- */
87
- handleQueryDocuments(args: QueryDocumentsInput): Promise<{
88
- content: [{
89
- type: 'text';
90
- text: string;
91
- }];
92
- }>;
93
- /**
94
- * ingest_fileツールハンドラ(ファイル再取り込み対応、トランザクション処理、ロールバック機能)
95
- */
96
- handleIngestFile(args: IngestFileInput): Promise<{
97
- content: [{
98
- type: 'text';
99
- text: string;
100
- }];
101
- }>;
102
- /**
103
- * list_filesツールハンドラ(Phase 1: 基本実装)
104
- */
105
- handleListFiles(): Promise<{
106
- content: [{
107
- type: 'text';
108
- text: string;
109
- }];
110
- }>;
111
- /**
112
- * statusツールハンドラ(Phase 1: 基本実装)
113
- */
114
- handleStatus(): Promise<{
115
- content: [{
116
- type: 'text';
117
- text: string;
118
- }];
119
- }>;
120
- /**
121
- * サーバーを起動する
122
- */
123
- run(): Promise<void>;
124
- }
125
- //# sourceMappingURL=server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAiBA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,kBAAkB;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc;IACd,KAAK,EAAE,MAAM,CAAA;IACb,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,aAAa;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,aAAa;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc;IACd,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,aAAa;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAMD;;;;;;;;GAQG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,MAAM,EAAE,eAAe;IAqBnC;;OAEG;IACH,OAAO,CAAC,aAAa;IAgErB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;IACG,oBAAoB,CACxB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IA8BzD;;OAEG;IACG,gBAAgB,CACpB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAuHzD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAiB/E;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAiB5E;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAK3B"}