@robthepcguy/rag-vault 1.0.1 → 1.1.1
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 +441 -421
- package/dist/errors/index.d.ts +2 -6
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +8 -16
- package/dist/errors/index.js.map +1 -1
- package/dist/explainability/index.d.ts +2 -0
- package/dist/explainability/index.d.ts.map +1 -0
- package/dist/explainability/index.js +8 -0
- package/dist/explainability/index.js.map +1 -0
- package/dist/explainability/keywords.d.ts +18 -0
- package/dist/explainability/keywords.d.ts.map +1 -0
- package/dist/explainability/keywords.js +237 -0
- package/dist/explainability/keywords.js.map +1 -0
- package/dist/flywheel/feedback.d.ts +105 -0
- package/dist/flywheel/feedback.d.ts.map +1 -0
- package/dist/flywheel/feedback.js +219 -0
- package/dist/flywheel/feedback.js.map +1 -0
- package/dist/flywheel/index.d.ts +2 -0
- package/dist/flywheel/index.d.ts.map +1 -0
- package/dist/flywheel/index.js +9 -0
- package/dist/flywheel/index.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/server/index.d.ts +40 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +113 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/raw-data-utils.d.ts.map +1 -1
- package/dist/server/raw-data-utils.js.map +1 -1
- package/dist/utils/config.d.ts +15 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +84 -0
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/math.d.ts +0 -7
- package/dist/utils/math.d.ts.map +1 -1
- package/dist/utils/math.js +0 -14
- package/dist/utils/math.js.map +1 -1
- package/dist/vectordb/index.d.ts +57 -2
- package/dist/vectordb/index.d.ts.map +1 -1
- package/dist/vectordb/index.js +255 -33
- package/dist/vectordb/index.js.map +1 -1
- package/dist/web/api-routes.d.ts.map +1 -1
- package/dist/web/api-routes.js +120 -7
- package/dist/web/api-routes.js.map +1 -1
- package/dist/web/config-routes.d.ts.map +1 -1
- package/dist/web/config-routes.js +84 -2
- package/dist/web/config-routes.js.map +1 -1
- package/dist/web/database-manager.d.ts +119 -1
- package/dist/web/database-manager.d.ts.map +1 -1
- package/dist/web/database-manager.js +339 -51
- package/dist/web/database-manager.js.map +1 -1
- package/dist/web/http-server.d.ts.map +1 -1
- package/dist/web/http-server.js +12 -2
- package/dist/web/http-server.js.map +1 -1
- package/dist/web/index.js +4 -1
- package/dist/web/index.js.map +1 -1
- package/dist/web/middleware/error-handler.d.ts +0 -16
- package/dist/web/middleware/error-handler.d.ts.map +1 -1
- package/dist/web/middleware/error-handler.js +0 -18
- package/dist/web/middleware/error-handler.js.map +1 -1
- package/dist/web/middleware/request-logger.d.ts +2 -1
- package/dist/web/middleware/request-logger.d.ts.map +1 -1
- package/package.json +129 -136
- package/skills/rag-vault/SKILL.md +111 -111
- package/web-ui/dist/assets/index-BcRp9-z9.js +120 -0
- package/web-ui/dist/assets/index-ej8i4PGl.css +1 -0
- package/web-ui/dist/index.html +2 -2
- package/dist/utils/logger.d.ts +0 -36
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -64
- package/dist/utils/logger.js.map +0 -1
- package/web-ui/dist/assets/index-0kBxUnZc.css +0 -1
- package/web-ui/dist/assets/index-CaUT0xZD.js +0 -59
package/dist/utils/config.js
CHANGED
|
@@ -1,9 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Shared configuration builder for RAG servers
|
|
3
3
|
// Used by both MCP server (src/index.ts) and Web server (src/web/index.ts)
|
|
4
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6
|
+
};
|
|
4
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
8
|
exports.buildRAGConfig = buildRAGConfig;
|
|
9
|
+
exports.validateRAGConfig = validateRAGConfig;
|
|
10
|
+
exports.validateAllowedScanRoots = validateAllowedScanRoots;
|
|
11
|
+
const node_fs_1 = require("node:fs");
|
|
12
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
6
13
|
const config_parsers_js_1 = require("./config-parsers.js");
|
|
14
|
+
/**
|
|
15
|
+
* Configuration validation error (internal use only)
|
|
16
|
+
*/
|
|
17
|
+
class ConfigValidationError extends Error {
|
|
18
|
+
constructor(message, field) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.field = field;
|
|
21
|
+
this.name = 'ConfigValidationError';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
7
24
|
/**
|
|
8
25
|
* Default configuration values
|
|
9
26
|
*/
|
|
@@ -49,4 +66,71 @@ function buildRAGConfig(overrides) {
|
|
|
49
66
|
}
|
|
50
67
|
return config;
|
|
51
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Validate RAG configuration at startup
|
|
71
|
+
* Throws ConfigValidationError if configuration is invalid
|
|
72
|
+
*
|
|
73
|
+
* @param config - The configuration to validate
|
|
74
|
+
* @throws ConfigValidationError if validation fails
|
|
75
|
+
*/
|
|
76
|
+
function validateRAGConfig(config) {
|
|
77
|
+
// Validate dbPath - must be a valid path format
|
|
78
|
+
if (!config.dbPath || typeof config.dbPath !== 'string') {
|
|
79
|
+
throw new ConfigValidationError('dbPath must be a non-empty string', 'dbPath');
|
|
80
|
+
}
|
|
81
|
+
// Validate modelName - must be non-empty
|
|
82
|
+
if (!config.modelName || typeof config.modelName !== 'string') {
|
|
83
|
+
throw new ConfigValidationError('modelName must be a non-empty string', 'modelName');
|
|
84
|
+
}
|
|
85
|
+
// Validate cacheDir - must be a valid path format
|
|
86
|
+
if (!config.cacheDir || typeof config.cacheDir !== 'string') {
|
|
87
|
+
throw new ConfigValidationError('cacheDir must be a non-empty string', 'cacheDir');
|
|
88
|
+
}
|
|
89
|
+
// Validate baseDir - must be a non-empty string (directory will be created if needed)
|
|
90
|
+
if (!config.baseDir || typeof config.baseDir !== 'string') {
|
|
91
|
+
throw new ConfigValidationError('baseDir must be a non-empty string', 'baseDir');
|
|
92
|
+
}
|
|
93
|
+
// Validate maxFileSize - must be positive
|
|
94
|
+
if (config.maxFileSize <= 0) {
|
|
95
|
+
throw new ConfigValidationError(`maxFileSize must be a positive number, got: ${config.maxFileSize}`, 'maxFileSize');
|
|
96
|
+
}
|
|
97
|
+
// Validate maxDistance - must be positive if provided
|
|
98
|
+
if (config.maxDistance !== undefined && config.maxDistance <= 0) {
|
|
99
|
+
throw new ConfigValidationError(`maxDistance must be a positive number, got: ${config.maxDistance}`, 'maxDistance');
|
|
100
|
+
}
|
|
101
|
+
// Validate hybridWeight - must be between 0 and 1 if provided
|
|
102
|
+
if (config.hybridWeight !== undefined && (config.hybridWeight < 0 || config.hybridWeight > 1)) {
|
|
103
|
+
throw new ConfigValidationError(`hybridWeight must be between 0.0 and 1.0, got: ${config.hybridWeight}`, 'hybridWeight');
|
|
104
|
+
}
|
|
105
|
+
// Validate grouping - must be valid enum if provided
|
|
106
|
+
if (config.grouping !== undefined &&
|
|
107
|
+
config.grouping !== 'similar' &&
|
|
108
|
+
config.grouping !== 'related') {
|
|
109
|
+
throw new ConfigValidationError(`grouping must be 'similar' or 'related', got: ${config.grouping}`, 'grouping');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Validate ALLOWED_SCAN_ROOTS environment variable
|
|
114
|
+
* Logs warnings for non-existent paths but doesn't throw
|
|
115
|
+
*
|
|
116
|
+
* @returns Array of validated root paths
|
|
117
|
+
*/
|
|
118
|
+
function validateAllowedScanRoots() {
|
|
119
|
+
const envRoots = process.env['ALLOWED_SCAN_ROOTS'];
|
|
120
|
+
if (!envRoots) {
|
|
121
|
+
return [];
|
|
122
|
+
}
|
|
123
|
+
const roots = envRoots.split(',').map((p) => node_path_1.default.resolve(p.trim()));
|
|
124
|
+
const validRoots = [];
|
|
125
|
+
for (const root of roots) {
|
|
126
|
+
if (!root)
|
|
127
|
+
continue;
|
|
128
|
+
if (!(0, node_fs_1.existsSync)(root)) {
|
|
129
|
+
console.warn(`ALLOWED_SCAN_ROOTS: Path does not exist: ${root}`);
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
validRoots.push(root);
|
|
133
|
+
}
|
|
134
|
+
return validRoots;
|
|
135
|
+
}
|
|
52
136
|
//# sourceMappingURL=config.js.map
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,2EAA2E
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/math.d.ts
CHANGED
|
@@ -24,11 +24,4 @@ export declare function cosineSimilarity(vec1: number[], vec2: number[]): number
|
|
|
24
24
|
* @returns Dot product value, or 0 if vectors have different lengths
|
|
25
25
|
*/
|
|
26
26
|
export declare function dotProduct(vec1: number[], vec2: number[]): number;
|
|
27
|
-
/**
|
|
28
|
-
* Calculate the Euclidean norm (L2 norm) of a vector.
|
|
29
|
-
*
|
|
30
|
-
* @param vec - Input vector
|
|
31
|
-
* @returns Euclidean norm (magnitude) of the vector
|
|
32
|
-
*/
|
|
33
|
-
export declare function euclideanNorm(vec: number[]): number;
|
|
34
27
|
//# sourceMappingURL=math.d.ts.map
|
package/dist/utils/math.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBvE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAWjE
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBvE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAWjE"}
|
package/dist/utils/math.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.cosineSimilarity = cosineSimilarity;
|
|
5
5
|
exports.dotProduct = dotProduct;
|
|
6
|
-
exports.euclideanNorm = euclideanNorm;
|
|
7
6
|
/**
|
|
8
7
|
* Calculate cosine similarity between two vectors.
|
|
9
8
|
*
|
|
@@ -57,17 +56,4 @@ function dotProduct(vec1, vec2) {
|
|
|
57
56
|
}
|
|
58
57
|
return result;
|
|
59
58
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Calculate the Euclidean norm (L2 norm) of a vector.
|
|
62
|
-
*
|
|
63
|
-
* @param vec - Input vector
|
|
64
|
-
* @returns Euclidean norm (magnitude) of the vector
|
|
65
|
-
*/
|
|
66
|
-
function euclideanNorm(vec) {
|
|
67
|
-
let sum = 0;
|
|
68
|
-
for (const v of vec) {
|
|
69
|
-
sum += v * v;
|
|
70
|
-
}
|
|
71
|
-
return Math.sqrt(sum);
|
|
72
|
-
}
|
|
73
59
|
//# sourceMappingURL=math.js.map
|
package/dist/utils/math.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":";AAAA,uDAAuD;;AAmBvD,4CAqBC;AASD,gCAWC;
|
|
1
|
+
{"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":";AAAA,uDAAuD;;AAmBvD,4CAqBC;AASD,gCAWC;AA1DD;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,gBAAgB,CAAC,IAAc,EAAE,IAAc;IAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACvB,UAAU,IAAI,EAAE,GAAG,EAAE,CAAA;QACrB,KAAK,IAAI,EAAE,GAAG,EAAE,CAAA;QAChB,KAAK,IAAI,EAAE,GAAG,EAAE,CAAA;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACvD,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAE/B,OAAO,UAAU,GAAG,WAAW,CAAA;AACjC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,IAAc,EAAE,IAAc;IACvD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/vectordb/index.d.ts
CHANGED
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
export { DatabaseError } from '../errors/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Validate file path to prevent SQL injection and path traversal attacks.
|
|
4
|
+
* @param filePath - The file path to validate
|
|
5
|
+
* @returns true if path is safe for use in queries
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Validate file path to prevent SQL injection and path traversal attacks.
|
|
9
|
+
* @param filePath - The file path to validate
|
|
10
|
+
* @returns true if path is safe for use in queries
|
|
11
|
+
*/
|
|
12
|
+
export declare function isValidFilePath(filePath: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Generate a content-based fingerprint for a chunk.
|
|
15
|
+
* Uses SHA-256 hash of normalized text (first 16 hex chars for compactness).
|
|
16
|
+
* This enables stable chunk identification across re-indexing.
|
|
17
|
+
*/
|
|
18
|
+
export declare function generateChunkFingerprint(text: string): string;
|
|
2
19
|
/**
|
|
3
20
|
* Grouping mode for quality filtering
|
|
4
21
|
* - 'similar': Only return the most similar group (stops at first distance jump)
|
|
@@ -53,6 +70,8 @@ export interface VectorChunk {
|
|
|
53
70
|
metadata: DocumentMetadata;
|
|
54
71
|
/** Ingestion timestamp (ISO 8601 format) */
|
|
55
72
|
timestamp: string;
|
|
73
|
+
/** Content-based fingerprint for resilient linking (SHA-256 prefix) */
|
|
74
|
+
fingerprint?: string;
|
|
56
75
|
}
|
|
57
76
|
/**
|
|
58
77
|
* Search result
|
|
@@ -72,6 +91,8 @@ export interface SearchResult {
|
|
|
72
91
|
score: number;
|
|
73
92
|
/** Metadata */
|
|
74
93
|
metadata: DocumentMetadata;
|
|
94
|
+
/** Content-based fingerprint for resilient linking */
|
|
95
|
+
fingerprint?: string;
|
|
75
96
|
}
|
|
76
97
|
/**
|
|
77
98
|
* Vector storage class using LanceDB
|
|
@@ -95,7 +116,18 @@ export declare class VectorStore {
|
|
|
95
116
|
private ftsLastFailure;
|
|
96
117
|
/** Mutex to prevent race conditions in circuit breaker state transitions */
|
|
97
118
|
private circuitBreakerResetting;
|
|
119
|
+
/** Runtime override for hybrid weight (allows dynamic adjustment) */
|
|
120
|
+
private hybridWeightOverride;
|
|
98
121
|
constructor(config: VectorStoreConfig);
|
|
122
|
+
/**
|
|
123
|
+
* Get the current hybrid weight (runtime override or config default)
|
|
124
|
+
*/
|
|
125
|
+
getHybridWeight(): number;
|
|
126
|
+
/**
|
|
127
|
+
* Set the hybrid weight at runtime
|
|
128
|
+
* @param weight - Value between 0.0 (vector-only) and 1.0 (max keyword boost)
|
|
129
|
+
*/
|
|
130
|
+
setHybridWeight(weight: number): void;
|
|
99
131
|
/**
|
|
100
132
|
* Check if FTS should be attempted (circuit breaker logic)
|
|
101
133
|
* - Returns false if max failures reached and cooldown not elapsed
|
|
@@ -180,11 +212,17 @@ export declare class VectorStore {
|
|
|
180
212
|
*/
|
|
181
213
|
private applyKeywordBoost;
|
|
182
214
|
/**
|
|
183
|
-
* Get list of ingested files
|
|
215
|
+
* Get list of ingested files with optional pagination
|
|
184
216
|
*
|
|
217
|
+
* @param options - Optional pagination parameters
|
|
218
|
+
* @param options.limit - Maximum number of files to return (default: all)
|
|
219
|
+
* @param options.offset - Number of files to skip (default: 0)
|
|
185
220
|
* @returns Array of file information
|
|
186
221
|
*/
|
|
187
|
-
listFiles(
|
|
222
|
+
listFiles(options?: {
|
|
223
|
+
limit?: number;
|
|
224
|
+
offset?: number;
|
|
225
|
+
}): Promise<{
|
|
188
226
|
filePath: string;
|
|
189
227
|
chunkCount: number;
|
|
190
228
|
timestamp: string;
|
|
@@ -193,6 +231,23 @@ export declare class VectorStore {
|
|
|
193
231
|
* Close the database connection and release resources
|
|
194
232
|
*/
|
|
195
233
|
close(): Promise<void>;
|
|
234
|
+
/**
|
|
235
|
+
* Get all chunks for a document, ordered by chunkIndex
|
|
236
|
+
*
|
|
237
|
+
* @param filePath - File path (absolute)
|
|
238
|
+
* @returns Array of chunks ordered by chunkIndex
|
|
239
|
+
*/
|
|
240
|
+
getDocumentChunks(filePath: string): Promise<SearchResult[]>;
|
|
241
|
+
/**
|
|
242
|
+
* Find related chunks using a chunk's stored embedding
|
|
243
|
+
*
|
|
244
|
+
* @param filePath - File path of the source chunk
|
|
245
|
+
* @param chunkIndex - Index of the source chunk
|
|
246
|
+
* @param limit - Number of results to return (default 5)
|
|
247
|
+
* @param excludeSameDocument - Whether to exclude chunks from the same document (default true)
|
|
248
|
+
* @returns Array of related chunks with similarity scores
|
|
249
|
+
*/
|
|
250
|
+
findRelatedChunks(filePath: string, chunkIndex: number, limit?: number, excludeSameDocument?: boolean): Promise<SearchResult[]>;
|
|
196
251
|
/**
|
|
197
252
|
* Get system status
|
|
198
253
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vectordb/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vectordb/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAkFlD;;;;GAIG;AACH;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOzD;AAgBD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK7D;AAMD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,CAAA;AAEhD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,oDAAoD;IACpD,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,eAAe;IACf,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAA;IACjB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,eAAe;IACf,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AA2ED;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,cAAc,CAAsB;IAC5C,4EAA4E;IAC5E,OAAO,CAAC,uBAAuB,CAAQ;IACvC,qEAAqE;IACrE,OAAO,CAAC,oBAAoB,CAAsB;gBAEtC,MAAM,EAAE,iBAAiB;IAIrC;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOrC;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BjC;;;;OAIG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDnD;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CxD;;;;OAIG;YACW,cAAc;IAyC5B;;;;OAIG;YACW,eAAe;IAY7B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,aAAa;IA2CrB;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAqE5F;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,iBAAiB;IA0CzB;;;;;;;OAOG;IACG,SAAS,CAAC,OAAO,CAAC,EAAE;QACxB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IA2D1E;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;;;;OAKG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAqClE;;;;;;;;OAQG;IACG,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,SAAI,EACT,mBAAmB,UAAO,GACzB,OAAO,CAAC,YAAY,EAAE,CAAC;IA6E1B;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC;QACzB,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,EAAE,MAAM,CAAA;QAClB,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,MAAM,CAAA;QACd,eAAe,EAAE,OAAO,CAAA;QACxB,UAAU,EAAE,QAAQ,GAAG,aAAa,CAAA;KACrC,CAAC;CA2CH"}
|