rehydra 0.11.1 → 0.13.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/dist/cli/commands/anonymize.js +0 -2
- package/dist/cli/commands/anonymize.js.map +1 -1
- package/dist/cli/commands/proxy.d.ts.map +1 -1
- package/dist/cli/commands/proxy.js +39 -3
- package/dist/cli/commands/proxy.js.map +1 -1
- package/dist/cli/main.js +1 -1
- package/dist/cli/utils/format.d.ts +1 -1
- package/dist/cli/utils/format.d.ts.map +1 -1
- package/dist/cli/utils/format.js.map +1 -1
- package/dist/core/anonymizer.d.ts +26 -0
- package/dist/core/anonymizer.d.ts.map +1 -1
- package/dist/core/anonymizer.js +8 -0
- package/dist/core/anonymizer.js.map +1 -1
- package/dist/ner/inference-server-ner-model.d.ts.map +1 -1
- package/dist/ner/inference-server-ner-model.js +4 -0
- package/dist/ner/inference-server-ner-model.js.map +1 -1
- package/dist/ner/ner-model.d.ts +38 -2
- package/dist/ner/ner-model.d.ts.map +1 -1
- package/dist/ner/ner-model.js +64 -54
- package/dist/ner/ner-model.js.map +1 -1
- package/dist/ner/token-window.d.ts +19 -0
- package/dist/ner/token-window.d.ts.map +1 -0
- package/dist/ner/token-window.js +101 -0
- package/dist/ner/token-window.js.map +1 -0
- package/dist/ner/tokenizer.d.ts +20 -41
- package/dist/ner/tokenizer.d.ts.map +1 -1
- package/dist/ner/tokenizer.js +43 -110
- package/dist/ner/tokenizer.js.map +1 -1
- package/dist/proxy/index.d.ts +1 -1
- package/dist/proxy/index.d.ts.map +1 -1
- package/dist/proxy/index.js.map +1 -1
- package/dist/proxy/rehydra-proxy.d.ts.map +1 -1
- package/dist/proxy/rehydra-proxy.js +46 -0
- package/dist/proxy/rehydra-proxy.js.map +1 -1
- package/dist/proxy/types.d.ts +14 -0
- package/dist/proxy/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
package/dist/ner/ner-model.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { loadRuntime, getRuntimeType, } from "#onnx-runtime";
|
|
7
7
|
import { WordPieceTokenizer, loadVocabFromFile, } from "./tokenizer.js";
|
|
8
8
|
import { decodeBIOTags, convertToSpanMatches, cleanupSpanBoundaries, mergeAdjacentSpans, } from "./bio-decoder.js";
|
|
9
|
+
import { createTokenWindows, mergeWindowSpans, validateWindowConfig, windowTokenBudget, } from "./token-window.js";
|
|
9
10
|
import { getStorageProvider, isBrowser } from "#storage";
|
|
10
11
|
/**
|
|
11
12
|
* Default label map for common NER models (CoNLL-style)
|
|
@@ -88,35 +89,52 @@ export class NERModel {
|
|
|
88
89
|
this.isLoaded = true;
|
|
89
90
|
}
|
|
90
91
|
/**
|
|
91
|
-
* Runs a
|
|
92
|
-
* window, decode BIO tags, and reconcile window results.
|
|
92
|
+
* Runs a single NER pass: tokenize, infer, decode BIO tags.
|
|
93
93
|
* @param inputText - Text to tokenize and feed to the model
|
|
94
94
|
* @param originalText - Original text used for extracting entity text (may differ in casing)
|
|
95
95
|
*/
|
|
96
96
|
async runNERPass(inputText, originalText, minConfidence) {
|
|
97
|
-
// Tokenize
|
|
98
|
-
//
|
|
99
|
-
|
|
97
|
+
// Tokenize without per-model truncation so windows retain global
|
|
98
|
+
// character offsets. Bound the token count to what maxWindowsPerInput
|
|
99
|
+
// windows can consume: only the leading windows are ever scanned, so
|
|
100
|
+
// materializing a multi-million-token array for a multi-MB value would
|
|
101
|
+
// be pure waste (and a memory hazard). maxTokens undefined = unbounded.
|
|
102
|
+
const maxTokens = this.config.maxWindowsPerInput === undefined
|
|
103
|
+
? undefined
|
|
104
|
+
: windowTokenBudget(this.config.maxLength, this.config.windowOverlapTokens, this.config.maxWindowsPerInput);
|
|
105
|
+
const tokenization = this.tokenizer.tokenize(inputText, { truncate: false, maxTokens });
|
|
106
|
+
const windows = createTokenWindows(tokenization, this.config.maxLength, this.config.windowOverlapTokens);
|
|
107
|
+
if (tokenization.truncated) {
|
|
108
|
+
const info = { scannedWindows: windows.length, inputLength: inputText.length };
|
|
109
|
+
if (this.config.onWindowCap) {
|
|
110
|
+
this.config.onWindowCap(info);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
console.warn(`[rehydra] NER input (${info.inputLength} chars) exceeds the window budget; scanning only the first ${info.scannedWindows} windows (maxWindowsPerInput)`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
100
116
|
const spans = [];
|
|
101
117
|
for (const window of windows) {
|
|
102
|
-
// Run inference
|
|
103
118
|
const { labels, confidences } = await this.runInference(window);
|
|
104
|
-
// Decode BIO tags using original text for entity text extraction
|
|
105
|
-
// (offsets are identical since casing doesn't change string length)
|
|
106
119
|
const rawEntities = decodeBIOTags(window.tokens, labels, confidences, originalText);
|
|
107
|
-
|
|
108
|
-
// (rather than strict start-anchoring) tolerates adjacent windows
|
|
109
|
-
// decoding slightly different boundaries for the same entity near a
|
|
110
|
-
// core boundary — otherwise both windows could reject it and the
|
|
111
|
-
// entity would be dropped entirely
|
|
112
|
-
const anchored = rawEntities.filter((e) => e.end > window.coreCharStart && e.start < window.coreCharEnd);
|
|
113
|
-
// Convert to SpanMatch format with confidence filtering
|
|
114
|
-
spans.push(...convertToSpanMatches(anchored, minConfidence));
|
|
120
|
+
spans.push(...convertToSpanMatches(rawEntities, minConfidence));
|
|
115
121
|
}
|
|
116
|
-
//
|
|
117
|
-
//
|
|
118
|
-
//
|
|
119
|
-
|
|
122
|
+
// Chars of input actually scanned = end of the last content token (the
|
|
123
|
+
// token before the trailing SEP). When there is no content token, coverage
|
|
124
|
+
// is 0 if we truncated (nothing was scanned — a caller must not treat this
|
|
125
|
+
// as "all covered") and the full length otherwise (empty/whitespace input).
|
|
126
|
+
const lastContentToken = tokenization.tokens[tokenization.tokens.length - 2];
|
|
127
|
+
const hasContentToken = lastContentToken !== undefined && !lastContentToken.isSpecial;
|
|
128
|
+
const coverageChars = hasContentToken
|
|
129
|
+
? lastContentToken.end
|
|
130
|
+
: tokenization.truncated
|
|
131
|
+
? 0
|
|
132
|
+
: inputText.length;
|
|
133
|
+
return {
|
|
134
|
+
spans: mergeWindowSpans(spans, originalText),
|
|
135
|
+
truncated: tokenization.truncated,
|
|
136
|
+
coverageChars,
|
|
137
|
+
};
|
|
120
138
|
}
|
|
121
139
|
/**
|
|
122
140
|
* Predicts entities in text
|
|
@@ -128,21 +146,29 @@ export class NERModel {
|
|
|
128
146
|
}
|
|
129
147
|
const minConfidence = this.getMinConfidence(policy);
|
|
130
148
|
// Primary NER pass on original text
|
|
131
|
-
|
|
149
|
+
const primary = await this.runNERPass(text, text, minConfidence);
|
|
150
|
+
let spans = primary.spans;
|
|
151
|
+
let truncated = primary.truncated;
|
|
152
|
+
// A caller cutting at coverageChars must stay within what BOTH passes
|
|
153
|
+
// scanned, so take the smaller offset. (Title-casing preserves length but
|
|
154
|
+
// changes tokenization, so the fallback pass can cap at a different point.)
|
|
155
|
+
let coverageChars = primary.coverageChars;
|
|
132
156
|
// Case fallback: run a second pass on title-cased text to catch lowercase names
|
|
133
157
|
const caseFallback = this.config.caseFallback ?? false;
|
|
134
158
|
if (caseFallback) {
|
|
135
159
|
const titleCased = titleCaseWords(text);
|
|
136
160
|
if (titleCased !== text) {
|
|
137
161
|
const penalty = this.config.caseFallbackPenalty ?? 0.85;
|
|
138
|
-
const
|
|
162
|
+
const fallback = await this.runNERPass(titleCased, text, minConfidence);
|
|
163
|
+
truncated = truncated || fallback.truncated;
|
|
164
|
+
coverageChars = Math.min(coverageChars, fallback.coverageChars);
|
|
139
165
|
// Merge only non-overlapping fallback detections with a confidence penalty
|
|
140
|
-
for (const
|
|
141
|
-
const overlaps = spans.some((
|
|
166
|
+
for (const span of fallback.spans) {
|
|
167
|
+
const overlaps = spans.some((existing) => existing.start < span.end && span.start < existing.end);
|
|
142
168
|
if (!overlaps) {
|
|
143
169
|
spans.push({
|
|
144
|
-
...
|
|
145
|
-
confidence:
|
|
170
|
+
...span,
|
|
171
|
+
confidence: span.confidence * penalty,
|
|
146
172
|
});
|
|
147
173
|
}
|
|
148
174
|
}
|
|
@@ -161,6 +187,8 @@ export class NERModel {
|
|
|
161
187
|
spans,
|
|
162
188
|
processingTimeMs: endTime - startTime,
|
|
163
189
|
modelVersion: this.config.modelVersion,
|
|
190
|
+
truncated,
|
|
191
|
+
coverageChars,
|
|
164
192
|
};
|
|
165
193
|
}
|
|
166
194
|
/**
|
|
@@ -268,33 +296,6 @@ export class NERModel {
|
|
|
268
296
|
return Promise.resolve();
|
|
269
297
|
}
|
|
270
298
|
}
|
|
271
|
-
/**
|
|
272
|
-
* Merges overlapping same-type spans collected from adjacent windows into
|
|
273
|
-
* their union. Windows can disagree on the exact boundaries of an entity
|
|
274
|
-
* near a core boundary; keeping the union guarantees no part of a detected
|
|
275
|
-
* entity is left unmasked.
|
|
276
|
-
*/
|
|
277
|
-
function mergeOverlappingWindowSpans(spans, originalText) {
|
|
278
|
-
if (spans.length <= 1)
|
|
279
|
-
return spans;
|
|
280
|
-
const sorted = [...spans].sort((a, b) => a.start - b.start || b.end - a.end);
|
|
281
|
-
const merged = [{ ...sorted[0] }];
|
|
282
|
-
for (let i = 1; i < sorted.length; i++) {
|
|
283
|
-
const span = sorted[i];
|
|
284
|
-
const last = merged[merged.length - 1];
|
|
285
|
-
if (span.type === last.type && span.start < last.end) {
|
|
286
|
-
if (span.end > last.end) {
|
|
287
|
-
last.end = span.end;
|
|
288
|
-
last.text = originalText.slice(last.start, last.end);
|
|
289
|
-
}
|
|
290
|
-
last.confidence = Math.max(last.confidence, span.confidence);
|
|
291
|
-
}
|
|
292
|
-
else {
|
|
293
|
-
merged.push({ ...span });
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
return merged;
|
|
297
|
-
}
|
|
298
299
|
/**
|
|
299
300
|
* Common function words / stopwords that should stay lowercase during case
|
|
300
301
|
* fallback so the NER model can still use contrastive casing as a signal.
|
|
@@ -460,17 +461,24 @@ function softmax(logits) {
|
|
|
460
461
|
* Creates a NER model instance with configuration
|
|
461
462
|
*/
|
|
462
463
|
export function createNERModel(config) {
|
|
464
|
+
const maxLength = config.maxLength ?? 512;
|
|
463
465
|
const fullConfig = {
|
|
464
466
|
modelPath: config.modelPath,
|
|
465
467
|
vocabPath: config.vocabPath,
|
|
466
468
|
labelMap: config.labelMap ?? DEFAULT_LABEL_MAP,
|
|
467
|
-
maxLength
|
|
469
|
+
maxLength,
|
|
470
|
+
windowOverlapTokens: config.windowOverlapTokens
|
|
471
|
+
?? Math.min(64, Math.max(0, Math.floor((maxLength - 2) / 4))),
|
|
472
|
+
maxWindowsPerInput: config.maxWindowsPerInput,
|
|
473
|
+
onWindowCap: config.onWindowCap,
|
|
468
474
|
doLowerCase: config.doLowerCase ?? false, // XLM-RoBERTa is cased
|
|
469
475
|
modelVersion: config.modelVersion ?? "1.0.0",
|
|
470
476
|
sessionOptions: config.sessionOptions,
|
|
471
477
|
caseFallback: config.caseFallback,
|
|
472
478
|
caseFallbackPenalty: config.caseFallbackPenalty,
|
|
473
479
|
};
|
|
480
|
+
// Fail fast on bad windowing config instead of on the first predict().
|
|
481
|
+
validateWindowConfig(fullConfig.maxLength, fullConfig.windowOverlapTokens, fullConfig.maxWindowsPerInput);
|
|
474
482
|
return new NERModel(fullConfig);
|
|
475
483
|
}
|
|
476
484
|
/**
|
|
@@ -488,6 +496,8 @@ export class NERModelStub {
|
|
|
488
496
|
spans: [],
|
|
489
497
|
processingTimeMs: 0,
|
|
490
498
|
modelVersion: this.version,
|
|
499
|
+
truncated: false,
|
|
500
|
+
coverageChars: _text.length,
|
|
491
501
|
});
|
|
492
502
|
}
|
|
493
503
|
dispose() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ner-model.js","sourceRoot":"","sources":["../../src/ner/ner-model.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,WAAW,EACX,cAAc,GAGf,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAElB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AA8CzD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,GAAG;IACH,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;CACT,CAAC;AAEF;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,WAAkC,EAClC,aAAiC;IAEjC,MAAM,QAAQ,GAAsB;QAClC,sBAAsB,EAAE,KAAK;QAC7B,iBAAiB,EAAE,IAAI;QACvB,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,CAAC;QACpB,iBAAiB,EAAE,CAAC;KACrB,CAAC;IAEF,+CAA+C;IAC/C,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,wDAAwD;QACxD,QAAQ,CAAC,kBAAkB,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,wEAAwE;IAExE,+DAA+D;IAC/D,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,QAAQ;IACX,GAAG,GAAsB,IAAI,CAAC;IAC9B,OAAO,GAAY,IAAI,CAAC;IACxB,SAAS,GAA8B,IAAI,CAAC;IAC5C,MAAM,CAAiB;IACvB,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,gEAAgE;QAChE,IAAI,CAAC,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;QAE/B,mEAAmE;QACnE,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,MAAM,cAAc,GAAG,mBAAmB,CACxC,WAAW,EACX,IAAI,CAAC,MAAM,CAAC,cAAc,CAC3B,CAAC;QAEF,kBAAkB;QAClB,oFAAoF;QACpF,4FAA4F;QAC5F,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChE,8CAA8C;YAC9C,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CACnD,SAAS,EACT,cAAc,CACf,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,gDAAgD;YAChD,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CACnD,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,cAAc,CACf,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,CAAC,KAAK,EAAE;YAC7C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;SACrC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,UAAU,CACtB,SAAiB,EACjB,YAAoB,EACpB,aAAqB;QAErB,sEAAsE;QACtE,qEAAqE;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAE3D,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,gBAAgB;YAChB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAEhE,iEAAiE;YACjE,oEAAoE;YACpE,MAAM,WAAW,GAAG,aAAa,CAC/B,MAAM,CAAC,MAAM,EACb,MAAM,EACN,WAAW,EACX,YAAY,CACb,CAAC;YAEF,+DAA+D;YAC/D,kEAAkE;YAClE,oEAAoE;YACpE,iEAAiE;YACjE,mCAAmC;YACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CACpE,CAAC;YAEF,wDAAwD;YACxD,KAAK,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,oEAAoE;QACpE,oEAAoE;QACpE,gCAAgC;QAChC,OAAO,2BAA2B,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,IAAY,EACZ,MAA4B;QAE5B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEpD,oCAAoC;QACpC,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAE7D,gFAAgF;QAChF,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC;QACvD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC;gBACxD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;gBAE7E,2EAA2E;gBAC3E,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;oBACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CACzB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAC1E,CAAC;oBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,KAAK,CAAC,IAAI,CAAC;4BACT,GAAG,QAAQ;4BACX,UAAU,EAAE,QAAQ,CAAC,UAAU,GAAG,OAAO;yBAC1C,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,KAAK,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAExC,oCAAoC;QACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,CAAC,IAAI,EAAE,EAAE,CACP,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAClC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CACxC,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAElC,OAAO;YACL,KAAK;YACL,gBAAgB,EAAE,OAAO,GAAG,SAAS;YACrC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SACvC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,YAAgC;QAEhC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAMpB,CAAC;QAEF,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE/C,iBAAiB;QACjB,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CACxC,OAAO,EACP,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EACrD,CAAC,CAAC,EAAE,SAAS,CAAC,CACf,CAAC;QAEF,MAAM,mBAAmB,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAC7C,OAAO,EACP,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAC1D,CAAC,CAAC,EAAE,SAAS,CAAC,CACf,CAAC;QAEF,MAAM,kBAAkB,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAC5C,OAAO,EACP,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EACzD,CAAC,CAAC,EAAE,SAAS,CAAC,CACf,CAAC;QAEF,gBAAgB;QAChB,MAAM,KAAK,GAA4B;YACrC,SAAS,EAAE,cAAc;YACzB,cAAc,EAAE,mBAAmB;SACpC,CAAC;QAEF,uCAAuC;QACvC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,IAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,gBAAgB,CAAC,GAAG,kBAAkB,CAAC;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEzC,oBAAoB;QACpB,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,+CAA+C;QAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACK,aAAa,CACnB,MAA8B,EAC9B,SAAiB;QAEjB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE9C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,4BAA4B;YAC5B,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,gBAAgB;YAChB,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YAEnC,aAAa;YACb,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC;oBAC9B,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACxB,MAAM,GAAG,CAAC,CAAC;gBACb,CAAC;YACH,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;YACjD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,MAA4B;QACnD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC;QAErC,yCAAyC;QACzC,IAAI,YAAY,GAAG,GAAG,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;YAC/D,IAAI,SAAS,GAAG,YAAY,EAAE,CAAC;gBAC7B,YAAY,GAAG,SAAS,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,+EAA+E;QAC/E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,2BAA2B,CAClC,KAAkB,EAClB,YAAoB;IAEpB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEpC,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAgB,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;IAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QAExC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrD,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBACpB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,WAAW;IACX,GAAG,EAAE,IAAI,EAAE,KAAK;IAChB,WAAW;IACX,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ;IACjC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;IAClC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS;IAC7B,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS;IAC/B,IAAI,EAAE,KAAK,EAAE,QAAQ;IACrB,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW;IACtC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY;IAC/C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAChC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IACvC,eAAe;IACf,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IACzD,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC7D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAC1D,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;IAC1D,eAAe;IACf,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ;IACxD,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM;IACvD,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC3D,6BAA6B;IAC7B,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO;IACvD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ;IAC9B,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAC5B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IAClC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;IACtC,MAAM,EAAE,MAAM,EAAE,OAAO;IACvB,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS;IAC/B,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;IAC5B,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IACrC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;IACjC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;IACjC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IAC1C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IAC1C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS;IAClC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS;IAC3C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU;IACxC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ;IACtC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IACpC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IACpC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAC9B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;IACnC,KAAK,EAAE,MAAM,EAAE,SAAS;IACxB,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IACjC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IAChC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IACpC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IACpC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS;IAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS;IACpC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IACpC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS;IAClC,KAAK,EAAE,MAAM,EAAE,SAAS;IACxB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;IAC7C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IACpC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IAClC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IACpC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS;IAC/B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS;IAClC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU;IACxC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW;IAC5C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;IAChD,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS;IAC/B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU;IACtC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;IACjC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ;IAC/B,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS;IACjC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS;IAClC,MAAM,EAAE,OAAO,EAAE,SAAS;IAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU;IACtC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS;IAC3C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IACpC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IACpC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS;IAC/B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU;IACxC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IACjC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU;IAChD,iBAAiB;IACjB,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;IAC1D,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;IAC3D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;IAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO;IACvD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IAClD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ;IACxC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IAC1D,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAC/C,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU;IACnD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;IAChD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;IACvD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;IACrD,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACxC,2BAA2B;IAC3B,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS;IAClD,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IACzD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9B,qDAAqD;IACrD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO;IAC3C,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACrC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IAC5C,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IACjC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IACnC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;IACpD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IAClC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;IAC5C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IACvC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO;IAC3C,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK;IACtD,KAAK,EAAE,KAAK,EAAE,KAAK;IACnB,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IACrD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI;IACpD,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI;IAC3C,IAAI,EAAE,MAAM,EAAE,MAAM;IACpB,mBAAmB;IACnB,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;IACrC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;IACjC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IACxD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IAC7C,IAAI,EAAE,OAAO,EAAE,KAAK;IACpB,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;IACrC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IACjC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IACrD,IAAI,EAAE,KAAK,EAAE,IAAI;IACjB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IACrC,oBAAoB;IACpB,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;IAChD,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK;IAClD,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IAChC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC7C,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO;IACjC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;CAC3C,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;QAC/C,IAAI,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,MAAgB;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA0E;IAE1E,MAAM,UAAU,GAAmB;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,iBAAiB;QAC9C,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,GAAG;QAClC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK,EAAE,uBAAuB;QACjE,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,OAAO;QAC5C,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;KAChD,CAAC;IAEF,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,YAAY;IACd,OAAO,GAAG,YAAY,CAAC;IACvB,MAAM,GAAG,IAAI,CAAC;IAEvB,KAAK,CAAC,IAAI;QACR,QAAQ;IACV,CAAC;IAED,OAAO,CACL,KAAa,EACb,OAA6B;QAE7B,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,KAAK,EAAE,EAAE;YACT,gBAAgB,EAAE,CAAC;YACnB,YAAY,EAAE,IAAI,CAAC,OAAO;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,QAAQ;QACR,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,YAAY,EAAE,CAAC;AAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"ner-model.js","sourceRoot":"","sources":["../../src/ner/ner-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { SpanMatch } from "../types/index.js";
|
|
2
|
+
import type { TokenizationResult } from "./tokenizer.js";
|
|
3
|
+
/**
|
|
4
|
+
* Total token count (including the two special tokens) that `maxWindows`
|
|
5
|
+
* windows can consume. Used to bound tokenization up front so huge inputs
|
|
6
|
+
* are not fully tokenized just to discard everything past the cap.
|
|
7
|
+
*/
|
|
8
|
+
export declare function windowTokenBudget(maxLength: number, overlapTokens: number, maxWindows: number): number;
|
|
9
|
+
export declare function validateWindowConfig(maxLength: number, overlapTokens: number, maxWindows?: number): void;
|
|
10
|
+
/**
|
|
11
|
+
* Splits an already-tokenized input into overlapping model-sized windows.
|
|
12
|
+
* The window count is bounded by the caller pre-bounding tokenization via
|
|
13
|
+
* `tokenize`'s `maxTokens` (see `runNERPass`) — this just slices whatever it
|
|
14
|
+
* is handed, so a truncated tokenization yields a truncated set of windows,
|
|
15
|
+
* and the truncation signal lives on the parent `TokenizationResult`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createTokenWindows(tokenization: TokenizationResult, maxLength: number, overlapTokens: number): TokenizationResult[];
|
|
18
|
+
export declare function mergeWindowSpans(spans: SpanMatch[], originalText: string): SpanMatch[];
|
|
19
|
+
//# sourceMappingURL=token-window.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-window.d.ts","sourceRoot":"","sources":["../../src/ner/token-window.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAS,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAiBhE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM,CAKR;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAUN;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,kBAAkB,EAChC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,kBAAkB,EAAE,CA+BtB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAAE,EAClB,YAAY,EAAE,MAAM,GACnB,SAAS,EAAE,CAwCb"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
function buildTokenization(tokens) {
|
|
2
|
+
return {
|
|
3
|
+
tokens,
|
|
4
|
+
inputIds: tokens.map((token) => token.id),
|
|
5
|
+
attentionMask: tokens.map(() => 1),
|
|
6
|
+
tokenTypeIds: tokens.map(() => 0),
|
|
7
|
+
tokenToCharSpan: tokens.map((token) => token.isSpecial ? null : [token.start, token.end]),
|
|
8
|
+
// A window is a complete slice of an already-tokenized input; the
|
|
9
|
+
// truncated signal lives on the parent tokenization, not each window.
|
|
10
|
+
truncated: false,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Total token count (including the two special tokens) that `maxWindows`
|
|
15
|
+
* windows can consume. Used to bound tokenization up front so huge inputs
|
|
16
|
+
* are not fully tokenized just to discard everything past the cap.
|
|
17
|
+
*/
|
|
18
|
+
export function windowTokenBudget(maxLength, overlapTokens, maxWindows) {
|
|
19
|
+
validateWindowConfig(maxLength, overlapTokens, maxWindows);
|
|
20
|
+
const contentCapacity = maxLength - 2;
|
|
21
|
+
const stride = contentCapacity - overlapTokens;
|
|
22
|
+
return 2 + contentCapacity + (maxWindows - 1) * stride;
|
|
23
|
+
}
|
|
24
|
+
export function validateWindowConfig(maxLength, overlapTokens, maxWindows) {
|
|
25
|
+
if (maxLength - 2 < 1) {
|
|
26
|
+
throw new Error("NER maxLength must leave room for content and two special tokens");
|
|
27
|
+
}
|
|
28
|
+
if (overlapTokens < 0 || overlapTokens >= maxLength - 2) {
|
|
29
|
+
throw new Error("NER window overlap must be smaller than the content capacity");
|
|
30
|
+
}
|
|
31
|
+
if (maxWindows !== undefined && maxWindows < 1) {
|
|
32
|
+
throw new Error("NER maxWindowsPerInput must be at least 1");
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Splits an already-tokenized input into overlapping model-sized windows.
|
|
37
|
+
* The window count is bounded by the caller pre-bounding tokenization via
|
|
38
|
+
* `tokenize`'s `maxTokens` (see `runNERPass`) — this just slices whatever it
|
|
39
|
+
* is handed, so a truncated tokenization yields a truncated set of windows,
|
|
40
|
+
* and the truncation signal lives on the parent `TokenizationResult`.
|
|
41
|
+
*/
|
|
42
|
+
export function createTokenWindows(tokenization, maxLength, overlapTokens) {
|
|
43
|
+
validateWindowConfig(maxLength, overlapTokens);
|
|
44
|
+
const contentCapacity = maxLength - 2;
|
|
45
|
+
if (tokenization.tokens.length <= maxLength) {
|
|
46
|
+
return [tokenization];
|
|
47
|
+
}
|
|
48
|
+
const firstToken = tokenization.tokens[0];
|
|
49
|
+
const lastToken = tokenization.tokens[tokenization.tokens.length - 1];
|
|
50
|
+
if (firstToken === undefined ||
|
|
51
|
+
firstToken.isSpecial !== true ||
|
|
52
|
+
lastToken === undefined ||
|
|
53
|
+
lastToken.isSpecial !== true) {
|
|
54
|
+
throw new Error("NER tokenization must include leading and trailing special tokens");
|
|
55
|
+
}
|
|
56
|
+
const contentTokens = tokenization.tokens.slice(1, -1);
|
|
57
|
+
const stride = contentCapacity - overlapTokens;
|
|
58
|
+
const windows = [];
|
|
59
|
+
for (let start = 0; start < contentTokens.length; start += stride) {
|
|
60
|
+
const end = Math.min(start + contentCapacity, contentTokens.length);
|
|
61
|
+
windows.push(buildTokenization([firstToken, ...contentTokens.slice(start, end), lastToken]));
|
|
62
|
+
if (end === contentTokens.length)
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
return windows;
|
|
66
|
+
}
|
|
67
|
+
export function mergeWindowSpans(spans, originalText) {
|
|
68
|
+
const sorted = [...spans].sort((a, b) => a.start - b.start || b.end - a.end || b.confidence - a.confidence);
|
|
69
|
+
const merged = [];
|
|
70
|
+
for (const span of sorted) {
|
|
71
|
+
let combined = span;
|
|
72
|
+
for (let index = merged.length - 1; index >= 0; index--) {
|
|
73
|
+
const existing = merged[index];
|
|
74
|
+
// Only stitch spans that actually overlap (touching end-to-start is not
|
|
75
|
+
// an overlap). This relies on the window overlap being at least as long
|
|
76
|
+
// as the longest expected entity — otherwise an entity split across a
|
|
77
|
+
// window boundary produces two abutting fragments that never merge.
|
|
78
|
+
// The default overlap (64 tokens) is far longer than any name/entity.
|
|
79
|
+
if (existing.type !== combined.type ||
|
|
80
|
+
existing.start >= combined.end ||
|
|
81
|
+
combined.start >= existing.end) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
const preferred = combined.confidence > existing.confidence
|
|
85
|
+
? combined
|
|
86
|
+
: existing;
|
|
87
|
+
const start = Math.min(existing.start, combined.start);
|
|
88
|
+
const end = Math.max(existing.end, combined.end);
|
|
89
|
+
combined = {
|
|
90
|
+
...preferred,
|
|
91
|
+
start,
|
|
92
|
+
end,
|
|
93
|
+
text: originalText.slice(start, end),
|
|
94
|
+
};
|
|
95
|
+
merged.splice(index, 1);
|
|
96
|
+
}
|
|
97
|
+
merged.push(combined);
|
|
98
|
+
}
|
|
99
|
+
return merged.sort((a, b) => a.start - b.start || b.end - a.end);
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=token-window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-window.js","sourceRoot":"","sources":["../../src/ner/token-window.ts"],"names":[],"mappings":"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"}
|
package/dist/ner/tokenizer.d.ts
CHANGED
|
@@ -34,27 +34,13 @@ export interface TokenizationResult {
|
|
|
34
34
|
tokenTypeIds: number[];
|
|
35
35
|
/** Mapping from token index to character span [start, end] */
|
|
36
36
|
tokenToCharSpan: Array<[number, number] | null>;
|
|
37
|
+
/**
|
|
38
|
+
* True when tokenization stopped before consuming all input — either
|
|
39
|
+
* because `truncate` capped it at maxLength or because `maxTokens` bounded
|
|
40
|
+
* it. Lets callers know detection coverage is partial.
|
|
41
|
+
*/
|
|
42
|
+
truncated: boolean;
|
|
37
43
|
}
|
|
38
|
-
/**
|
|
39
|
-
* A model-sized window over the full token stream of a long input.
|
|
40
|
-
* Consecutive windows overlap so entities near a window boundary are seen
|
|
41
|
-
* with full context by at least one window. The core range delimits the
|
|
42
|
-
* characters this window is authoritative for: cores tile the input exactly,
|
|
43
|
-
* so an entity anchored (by start offset) in a core belongs to exactly one
|
|
44
|
-
* window and cross-window duplicates cannot occur.
|
|
45
|
-
*/
|
|
46
|
-
export interface TokenizationWindow extends TokenizationResult {
|
|
47
|
-
/** Start character offset (inclusive) of this window's core range */
|
|
48
|
-
coreCharStart: number;
|
|
49
|
-
/** End character offset (exclusive) of this window's core range */
|
|
50
|
-
coreCharEnd: number;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Default token overlap between consecutive windows.
|
|
54
|
-
* Entities up to half this length are guaranteed to fit entirely inside
|
|
55
|
-
* the window that owns them.
|
|
56
|
-
*/
|
|
57
|
-
export declare const DEFAULT_WINDOW_OVERLAP = 128;
|
|
58
44
|
/**
|
|
59
45
|
* Tokenizer configuration
|
|
60
46
|
*/
|
|
@@ -64,6 +50,18 @@ export interface TokenizerConfig {
|
|
|
64
50
|
/** Whether to lowercase input */
|
|
65
51
|
doLowerCase: boolean;
|
|
66
52
|
}
|
|
53
|
+
export interface TokenizeOptions {
|
|
54
|
+
/** Whether to truncate to the configured maximum sequence length. */
|
|
55
|
+
truncate?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Stop after producing this many tokens (including the CLS/SEP special
|
|
58
|
+
* tokens). Bounds memory and CPU on very large inputs: the caller only
|
|
59
|
+
* needs enough tokens to build its windows, so there is no point
|
|
60
|
+
* materializing a multi-million-token array for a multi-MB value.
|
|
61
|
+
* Takes precedence over `truncate` when set.
|
|
62
|
+
*/
|
|
63
|
+
maxTokens?: number;
|
|
64
|
+
}
|
|
67
65
|
/**
|
|
68
66
|
* Default tokenizer configuration
|
|
69
67
|
*/
|
|
@@ -95,28 +93,9 @@ export declare class WordPieceTokenizer {
|
|
|
95
93
|
*/
|
|
96
94
|
private detectSpecialTokens;
|
|
97
95
|
/**
|
|
98
|
-
* Tokenizes text into tokens with offset tracking
|
|
99
|
-
* Truncates to maxLength tokens — use tokenizeWindows() for inputs that
|
|
100
|
-
* may exceed the model's sequence length.
|
|
101
|
-
*/
|
|
102
|
-
tokenize(text: string): TokenizationResult;
|
|
103
|
-
/**
|
|
104
|
-
* Tokenizes text into overlapping model-sized windows covering the full
|
|
105
|
-
* input, so no tokens are silently dropped for long texts.
|
|
106
|
-
* Each window carries a core character range; together the cores tile the
|
|
107
|
-
* input exactly. Callers should keep an entity only from the window whose
|
|
108
|
-
* core contains the entity's start offset.
|
|
109
|
-
*/
|
|
110
|
-
tokenizeWindows(text: string, overlap?: number): TokenizationWindow[];
|
|
111
|
-
/**
|
|
112
|
-
* Tokenizes text into content tokens (no special tokens, no truncation)
|
|
113
|
-
* using greedy longest-match with character offset tracking
|
|
114
|
-
*/
|
|
115
|
-
private tokenizeContent;
|
|
116
|
-
/**
|
|
117
|
-
* Wraps content tokens with CLS/SEP and builds the model input arrays
|
|
96
|
+
* Tokenizes text into tokens with offset tracking
|
|
118
97
|
*/
|
|
119
|
-
|
|
98
|
+
tokenize(text: string, options?: TokenizeOptions): TokenizationResult;
|
|
120
99
|
/**
|
|
121
100
|
* Find the best matching token using trie-based greedy longest-match
|
|
122
101
|
* O(max_token_length) instead of O(vocab_size)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../src/ner/tokenizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,sCAAsC;IACtC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,qBAAqB;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,8DAA8D;IAC9D,eAAe,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../src/ner/tokenizer.ts"],"names":[],"mappings":"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"}
|