capman 0.5.4 → 0.6.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/CHANGELOG.md +46 -0
- package/CODEBASE.md +111 -66
- package/README.md +45 -4
- package/bin/lib/cmd-generate.js +200 -40
- package/bin/lib/cmd-help.js +3 -0
- package/dist/cjs/cache.d.ts.map +1 -1
- package/dist/cjs/cache.js +22 -5
- package/dist/cjs/cache.js.map +1 -1
- package/dist/cjs/engine.d.ts +53 -1
- package/dist/cjs/engine.d.ts.map +1 -1
- package/dist/cjs/engine.js +252 -17
- package/dist/cjs/engine.js.map +1 -1
- package/dist/cjs/generator.d.ts.map +1 -1
- package/dist/cjs/generator.js +7 -1
- package/dist/cjs/generator.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/learning.d.ts.map +1 -1
- package/dist/cjs/learning.js +51 -30
- package/dist/cjs/learning.js.map +1 -1
- package/dist/cjs/matcher.d.ts +69 -9
- package/dist/cjs/matcher.d.ts.map +1 -1
- package/dist/cjs/matcher.js +328 -43
- package/dist/cjs/matcher.js.map +1 -1
- package/dist/cjs/parser.d.ts.map +1 -1
- package/dist/cjs/parser.js +15 -8
- package/dist/cjs/parser.js.map +1 -1
- package/dist/cjs/resolver.d.ts +1 -0
- package/dist/cjs/resolver.d.ts.map +1 -1
- package/dist/cjs/resolver.js +16 -5
- package/dist/cjs/resolver.js.map +1 -1
- package/dist/cjs/schema.d.ts +64 -46
- package/dist/cjs/schema.d.ts.map +1 -1
- package/dist/cjs/schema.js +2 -1
- package/dist/cjs/schema.js.map +1 -1
- package/dist/cjs/types.d.ts +8 -2
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/cache.js +22 -5
- package/dist/esm/engine.d.ts +53 -1
- package/dist/esm/engine.js +255 -20
- package/dist/esm/generator.js +7 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/learning.js +52 -31
- package/dist/esm/matcher.d.ts +69 -9
- package/dist/esm/matcher.js +321 -42
- package/dist/esm/parser.js +15 -8
- package/dist/esm/resolver.d.ts +1 -0
- package/dist/esm/resolver.js +16 -6
- package/dist/esm/schema.d.ts +64 -46
- package/dist/esm/schema.js +2 -1
- package/dist/esm/types.d.ts +8 -2
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +1 -1
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAmGA,kBAoBC;AAvHD,mCAAsC;AAA7B,qGAAA,WAAW,OAAA;AA0BpB,yCAOoB;AANlB,qGAAA,QAAQ,OAAA;AACR,uGAAA,UAAU,OAAA;AACV,0GAAA,aAAa,OAAA;AACb,yGAAA,YAAY,OAAA;AACZ,qGAAA,QAAQ,OAAA;AACR,kHAAA,qBAAqB,OAAA;AAGvB,qCAIkB;AAHhB,gGAAA,KAAK,OAAA;AACL,uGAAA,YAAY,OAAA;AACZ,wGAAA,aAAa,OAAA;AAEf,qCAAyC;AAAhC,wGAAA,aAAa,OAAA;AAEtB,qCAAyC;AAAhC,wGAAA,aAAa,OAAA;AAEtB,uCAAoC;AAA3B,mGAAA,OAAO,OAAA;AAGhB,iFAAiF;AACjF,mCAAuC;AAA9B,sGAAA,YAAY,OAAA;AAGrB,iFAAiF;AACjF,iCAA2F;AAAlF,oGAAA,WAAW,OAAA;AAAE,kGAAA,SAAS,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,sGAAA,aAAa,OAAA;AAAE,uGAAA,cAAc,OAAA;AAG1E,iFAAiF;AACjF,uCAAmE;AAA1D,6GAAA,iBAAiB,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAG/C,mCAAuC;AAA9B,sGAAA,YAAY,OAAA;AAGrB,iFAAiF;AAEjF,qCAAuC;AAwBvC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,GAAG,CACvB,KAAa,EACb,QAAkB,EAClB,UAAsB,EAAE;IAExB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,CAAA;IAEhD,MAAM,MAAM,GAAG,IAAI,qBAAY,CAAC;QAC9B,QAAQ;QACR,GAAG;QACH,IAAI;QACJ,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,OAAO,EAAE,cAAc,CAAC,OAAO;KAChC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;IACtD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAA;AAC/D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learning.d.ts","sourceRoot":"","sources":["../../src/learning.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"learning.d.ts","sourceRoot":"","sources":["../../src/learning.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/learning.js
CHANGED
|
@@ -42,12 +42,38 @@ const matcher_1 = require("./matcher");
|
|
|
42
42
|
// Module-level registry — tracks all active FileLearningStore instances
|
|
43
43
|
// for process exit flushing. Handlers registered once to avoid accumulation.
|
|
44
44
|
const activeStores = new Set();
|
|
45
|
-
|
|
45
|
+
// Module-level handler references — stored so they can be removed
|
|
46
|
+
// when all stores are destroyed. Never call process.exit() in a library.
|
|
47
|
+
let exitHandler = null;
|
|
48
|
+
let sigTermHandler = null;
|
|
49
|
+
let sigIntHandler = null;
|
|
46
50
|
function flushAllStores() {
|
|
47
51
|
for (const store of activeStores) {
|
|
48
52
|
store.flushSync();
|
|
49
53
|
}
|
|
50
54
|
}
|
|
55
|
+
function registerExitHandlers() {
|
|
56
|
+
if (exitHandler)
|
|
57
|
+
return; // already registered
|
|
58
|
+
exitHandler = flushAllStores;
|
|
59
|
+
sigTermHandler = flushAllStores;
|
|
60
|
+
sigIntHandler = flushAllStores;
|
|
61
|
+
process.on('exit', exitHandler);
|
|
62
|
+
process.on('SIGTERM', sigTermHandler);
|
|
63
|
+
process.on('SIGINT', sigIntHandler);
|
|
64
|
+
}
|
|
65
|
+
function unregisterExitHandlers() {
|
|
66
|
+
if (!exitHandler)
|
|
67
|
+
return; // nothing registered
|
|
68
|
+
if (activeStores.size > 0)
|
|
69
|
+
return; // other stores still active
|
|
70
|
+
process.off('exit', exitHandler);
|
|
71
|
+
process.off('SIGTERM', sigTermHandler);
|
|
72
|
+
process.off('SIGINT', sigIntHandler);
|
|
73
|
+
exitHandler = null;
|
|
74
|
+
sigTermHandler = null;
|
|
75
|
+
sigIntHandler = null;
|
|
76
|
+
}
|
|
51
77
|
// ─── Shared computation helpers ───────────────────────────────────────────────
|
|
52
78
|
function computeTopCapabilities(entries, limit) {
|
|
53
79
|
const counts = {};
|
|
@@ -81,13 +107,15 @@ class LearningIndex {
|
|
|
81
107
|
if (!entry.capabilityId)
|
|
82
108
|
this.statsCounter.outOfScope++;
|
|
83
109
|
if (entry.capabilityId) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
110
|
+
// Confidence-weighted contribution — a 95% match contributes 9.5×
|
|
111
|
+
// more signal than a 51% borderline match. Floor of 0.1 ensures
|
|
112
|
+
// borderline matches still contribute, just proportionally less.
|
|
113
|
+
const weight = Math.max(0.1, entry.confidence / 100);
|
|
114
|
+
const words = (0, matcher_1.tokenize)(entry.query);
|
|
87
115
|
for (const word of words) {
|
|
88
116
|
this.index[word] ??= {};
|
|
89
117
|
this.index[word][entry.capabilityId] =
|
|
90
|
-
(this.index[word][entry.capabilityId] ?? 0) +
|
|
118
|
+
(this.index[word][entry.capabilityId] ?? 0) + weight;
|
|
91
119
|
}
|
|
92
120
|
}
|
|
93
121
|
}
|
|
@@ -103,14 +131,14 @@ class LearningIndex {
|
|
|
103
131
|
return;
|
|
104
132
|
}
|
|
105
133
|
// Keyword index cleanup
|
|
106
|
-
const words = entry.query
|
|
107
|
-
.split(/\W+/)
|
|
108
|
-
.filter(w => w.length > 2 && !matcher_1.STOPWORDS.has(w));
|
|
134
|
+
const words = (0, matcher_1.tokenize)(entry.query);
|
|
109
135
|
for (const word of words) {
|
|
110
136
|
if (!this.index[word])
|
|
111
137
|
continue;
|
|
138
|
+
// Subtract estimated weight (0.5 average) — exact weight not stored.
|
|
139
|
+
// Minor drift on prune is acceptable; index is rebuilt when drift matters.
|
|
112
140
|
this.index[word][entry.capabilityId] =
|
|
113
|
-
(this.index[word][entry.capabilityId] ??
|
|
141
|
+
(this.index[word][entry.capabilityId] ?? 0.5) - 0.5;
|
|
114
142
|
if (this.index[word][entry.capabilityId] <= 0) {
|
|
115
143
|
delete this.index[word][entry.capabilityId];
|
|
116
144
|
}
|
|
@@ -156,12 +184,7 @@ class FileLearningStore {
|
|
|
156
184
|
this.filePath = resolved;
|
|
157
185
|
logger_1.logger.info(`FileLearningStore initialized — writing to: ${this.filePath}`);
|
|
158
186
|
activeStores.add(this);
|
|
159
|
-
|
|
160
|
-
exitHandlersRegistered = true;
|
|
161
|
-
process.on('exit', flushAllStores);
|
|
162
|
-
process.on('SIGTERM', () => { flushAllStores(); process.exit(0); });
|
|
163
|
-
process.on('SIGINT', () => { flushAllStores(); process.exit(0); });
|
|
164
|
-
}
|
|
187
|
+
registerExitHandlers();
|
|
165
188
|
}
|
|
166
189
|
flushSync() {
|
|
167
190
|
// Cancel pending timer — prevents scheduleSave firing after sync write
|
|
@@ -196,15 +219,17 @@ class FileLearningStore {
|
|
|
196
219
|
}
|
|
197
220
|
if (this.dirty) {
|
|
198
221
|
this.dirty = false;
|
|
199
|
-
// Await final flush before removing from registry —
|
|
200
|
-
// ensures data is written before the store becomes unreachable
|
|
201
222
|
await this.save();
|
|
202
223
|
}
|
|
203
224
|
activeStores.delete(this);
|
|
225
|
+
unregisterExitHandlers(); // remove handlers if no stores remain
|
|
204
226
|
}
|
|
205
227
|
load() {
|
|
206
228
|
if (!this.loadPromise) {
|
|
207
|
-
this.loadPromise = this._doLoad()
|
|
229
|
+
this.loadPromise = this._doLoad().catch(err => {
|
|
230
|
+
this.loadPromise = null; // allow retry on next call
|
|
231
|
+
throw err;
|
|
232
|
+
});
|
|
208
233
|
}
|
|
209
234
|
return this.loadPromise;
|
|
210
235
|
}
|
|
@@ -221,8 +246,12 @@ class FileLearningStore {
|
|
|
221
246
|
logger_1.logger.warn(`Learning store at ${this.filePath} contained unexpected format — starting fresh`);
|
|
222
247
|
}
|
|
223
248
|
}
|
|
224
|
-
catch {
|
|
225
|
-
|
|
249
|
+
catch (err) {
|
|
250
|
+
const code = err.code;
|
|
251
|
+
if (code !== 'ENOENT') {
|
|
252
|
+
logger_1.logger.warn(`Failed to load learning store from ${this.filePath} (${code ?? 'unknown error'}) — starting fresh`);
|
|
253
|
+
}
|
|
254
|
+
// ENOENT = file doesn't exist yet — expected on first run, no warning needed
|
|
226
255
|
}
|
|
227
256
|
}
|
|
228
257
|
scheduleSave(urgencyMs = 5_000) {
|
|
@@ -264,11 +293,7 @@ class FileLearningStore {
|
|
|
264
293
|
// not be persisted to disk under GDPR/CCPA data retention requirements.
|
|
265
294
|
const sanitized = {
|
|
266
295
|
...entry,
|
|
267
|
-
query: entry.query
|
|
268
|
-
.toLowerCase()
|
|
269
|
-
.split(/\W+/)
|
|
270
|
-
.filter(w => w.length > 2 && !matcher_1.STOPWORDS.has(w))
|
|
271
|
-
.join(' '),
|
|
296
|
+
query: (0, matcher_1.tokenize)(entry.query).join(' '),
|
|
272
297
|
};
|
|
273
298
|
this.entries.push(sanitized);
|
|
274
299
|
this.learningIndex.update(sanitized);
|
|
@@ -318,11 +343,7 @@ class MemoryLearningStore {
|
|
|
318
343
|
async record(entry) {
|
|
319
344
|
const sanitized = {
|
|
320
345
|
...entry,
|
|
321
|
-
query: entry.query
|
|
322
|
-
.toLowerCase()
|
|
323
|
-
.split(/\W+/)
|
|
324
|
-
.filter(w => w.length > 2 && !matcher_1.STOPWORDS.has(w))
|
|
325
|
-
.join(' '),
|
|
346
|
+
query: (0, matcher_1.tokenize)(entry.query).join(' '),
|
|
326
347
|
};
|
|
327
348
|
this.entries.push(sanitized);
|
|
328
349
|
this.learningIndex.update(sanitized);
|
package/dist/cjs/learning.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learning.js","sourceRoot":"","sources":["../../src/learning.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"learning.js","sourceRoot":"","sources":["../../src/learning.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/matcher.d.ts
CHANGED
|
@@ -3,20 +3,80 @@ export declare class LLMParseError extends Error {
|
|
|
3
3
|
constructor(message: string);
|
|
4
4
|
}
|
|
5
5
|
export declare const STOPWORDS: Set<string>;
|
|
6
|
+
/**
|
|
7
|
+
* Regex patterns for common param types.
|
|
8
|
+
* Used when a CapabilityParam has `pattern` set to a named type.
|
|
9
|
+
*/
|
|
10
|
+
export declare const TYPE_PATTERNS: Record<string, RegExp>;
|
|
11
|
+
/**
|
|
12
|
+
* Simplified suffix-stripping stemmer — 10 most common English morphological
|
|
13
|
+
* patterns covering ~80% of benefit at ~25% the complexity of Porter stemmer.
|
|
14
|
+
* Applied symmetrically to both query words and capability index words.
|
|
15
|
+
*/
|
|
16
|
+
export declare function stem(word: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Shared tokenizer — used by scorer, learning index, and boost system.
|
|
19
|
+
* Applies stopword filtering AND stemming symmetrically.
|
|
20
|
+
* Any site that tokenizes text for matching MUST use this function
|
|
21
|
+
* to avoid silent mismatches between query and index tokens.
|
|
22
|
+
*/
|
|
23
|
+
export declare function tokenize(text: string): string[];
|
|
24
|
+
export interface BM25Index {
|
|
25
|
+
/** Document frequency — how many capabilities contain each term */
|
|
26
|
+
df: Record<string, number>;
|
|
27
|
+
/** Average field length per field type */
|
|
28
|
+
avgdl: {
|
|
29
|
+
examples: number;
|
|
30
|
+
description: number;
|
|
31
|
+
name: number;
|
|
32
|
+
};
|
|
33
|
+
/** Total number of capabilities */
|
|
34
|
+
N: number;
|
|
35
|
+
/** Bigram sets per capability — post-stopword, post-stem, examples only */
|
|
36
|
+
bigrams: Record<string, Set<string>>;
|
|
37
|
+
}
|
|
38
|
+
/** Build a BM25 index over all capabilities. Call once at manifest load. */
|
|
39
|
+
export declare function buildBM25Index(capabilities: Capability[]): BM25Index;
|
|
40
|
+
/**
|
|
41
|
+
* BM25 scoring with field weights.
|
|
42
|
+
* k1 = 1.5 (TF saturation), b = 0.75 (length normalization)
|
|
43
|
+
* Field weights: examples 0.6, description 0.3, name 0.1
|
|
44
|
+
*/
|
|
45
|
+
export declare function scoreCapability(qWordSet: Set<string>, cap: Capability, index: BM25Index, k1?: number, b?: number): number;
|
|
46
|
+
/**
|
|
47
|
+
* Extracts bigrams from a token array as "token1__token2" strings.
|
|
48
|
+
* Input must already be post-stopword and post-stem (use tokenize() first).
|
|
49
|
+
*/
|
|
50
|
+
export declare function extractBigrams(tokens: string[]): Set<string>;
|
|
6
51
|
export declare function resolverToIntent(cap: Capability): MatchResult['intent'];
|
|
52
|
+
/**
|
|
53
|
+
* Strips characters that could break LLM prompt structure from
|
|
54
|
+
* capability field values before injection into the system prompt.
|
|
55
|
+
* Removes control characters, newlines, and delimiter-like sequences.
|
|
56
|
+
*/
|
|
57
|
+
export declare function sanitizeForPrompt(value: string, maxLen: number): string;
|
|
7
58
|
/**
|
|
8
59
|
* Extracts parameter values from a user query using keyword heuristics.
|
|
60
|
+
*
|
|
9
61
|
* Known limits:
|
|
10
62
|
* - Extracts single tokens only — "jane smith" would extract "jane"
|
|
11
63
|
* - Keyword matching is positional — "articles from authors I follow"
|
|
12
64
|
* may extract "authors" instead of nothing, since "from" is a keyword
|
|
13
|
-
* -
|
|
14
|
-
*
|
|
65
|
+
* - Required param fallback grabs the last meaningful word — "list all
|
|
66
|
+
* recent orders" may extract "orders" even with the denylist extended.
|
|
67
|
+
* For precise extraction of complex queries, use matchWithLLM() which
|
|
68
|
+
* handles param extraction via structured LLM prompt.
|
|
69
|
+
* - To support richer extraction patterns, add a `pattern` field to
|
|
70
|
+
* CapabilityParam in a future version.
|
|
15
71
|
*/
|
|
16
72
|
export declare function extractParams(query: string, cap: Capability): Record<string, string | null>;
|
|
17
73
|
export interface MatchOptions {
|
|
18
74
|
fuzzyMatch?: boolean;
|
|
19
75
|
fuzzyThreshold?: number;
|
|
76
|
+
bm25Index?: BM25Index;
|
|
77
|
+
bm25K1?: number;
|
|
78
|
+
bm25B?: number;
|
|
79
|
+
bm25Ceiling?: number;
|
|
20
80
|
}
|
|
21
81
|
export declare function match(query: string, manifest: Manifest, options?: MatchOptions): MatchResult;
|
|
22
82
|
export interface LLMMatcherOptions {
|
|
@@ -25,13 +85,13 @@ export interface LLMMatcherOptions {
|
|
|
25
85
|
/**
|
|
26
86
|
* Matches a query to a capability using an LLM.
|
|
27
87
|
*
|
|
28
|
-
* ⚠️ SECURITY NOTE: Capability
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
88
|
+
* ⚠️ SECURITY NOTE: Capability fields are sanitized before injection into
|
|
89
|
+
* the LLM prompt (newlines stripped, delimiters neutralized, length capped).
|
|
90
|
+
* However, the current interface passes a single prompt string — it cannot
|
|
91
|
+
* provide true system/user message separation that some LLM APIs support.
|
|
92
|
+
* For maximum injection resistance in high-security deployments, use an LLM
|
|
93
|
+
* wrapper that maps the prompt to a proper system message, keeping user query
|
|
94
|
+
* data in the user turn only.
|
|
35
95
|
*/
|
|
36
96
|
export declare function matchWithLLM(query: string, manifest: Manifest, options: LLMMatcherOptions): Promise<MatchResult>;
|
|
37
97
|
//# sourceMappingURL=matcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAkB,MAAM,SAAS,CAAA;AAMhF,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,eAAO,MAAM,SAAS,aAUpB,CAAA;
|
|
1
|
+
{"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAkB,MAAM,SAAS,CAAA;AAMhF,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,eAAO,MAAM,SAAS,aAUpB,CAAA;AAIF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKhD,CAAA;AA4DD;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBzC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAM/C;AAID,MAAM,WAAW,SAAS;IACxB,mEAAmE;IACnE,EAAE,EAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,0CAA0C;IAC1C,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9D,mCAAmC;IACnC,CAAC,EAAM,MAAM,CAAA;IACb,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;CACrC;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,SAAS,CA8CpE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EACrB,GAAG,EAAO,UAAU,EACpB,KAAK,EAAK,SAAS,EACnB,EAAE,SAAM,EACR,CAAC,SAAQ,GACR,MAAM,CAQR;AAmCD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAM5D;AAgBD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAMvE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQvE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAuG3F;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAM,OAAO,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAO,SAAS,CAAA;IAC1B,MAAM,CAAC,EAAU,MAAM,CAAA;IACvB,KAAK,CAAC,EAAW,MAAM,CAAA;IACvB,WAAW,CAAC,EAAK,MAAM,CAAA;CACxB;AAED,wBAAgB,KAAK,CACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,YAAiB,GACzB,WAAW,CAiJb;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACzC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CA+GpB"}
|