@sharpee/parser-en-us 3.1.0 → 3.3.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/english-grammar-engine.d.ts +2 -2
- package/english-grammar-engine.d.ts.map +1 -1
- package/english-grammar-engine.js +27 -7
- package/english-grammar-engine.js.map +1 -1
- package/english-parser.d.ts +14 -1
- package/english-parser.d.ts.map +1 -1
- package/english-parser.js +126 -40
- package/english-parser.js.map +1 -1
- package/grammar.d.ts +6 -2
- package/grammar.d.ts.map +1 -1
- package/grammar.js +98 -73
- package/grammar.js.map +1 -1
- package/index.d.ts +6 -6
- package/index.d.ts.map +1 -1
- package/index.js +12 -12
- package/index.js.map +1 -1
- package/package.json +5 -5
- package/slot-consumers/entity-slot-consumer.d.ts +1 -1
- package/slot-consumers/entity-slot-consumer.d.ts.map +1 -1
- package/slot-consumers/entity-slot-consumer.js +8 -8
- package/slot-consumers/entity-slot-consumer.js.map +1 -1
- package/slot-consumers/index.d.ts +6 -6
- package/slot-consumers/index.d.ts.map +1 -1
- package/slot-consumers/index.js +19 -19
- package/slot-consumers/index.js.map +1 -1
- package/slot-consumers/text-slot-consumer.d.ts +1 -1
- package/slot-consumers/text-slot-consumer.d.ts.map +1 -1
- package/slot-consumers/text-slot-consumer.js +5 -5
- package/slot-consumers/text-slot-consumer.js.map +1 -1
- package/slot-consumers/typed-slot-consumer.d.ts +1 -1
- package/slot-consumers/typed-slot-consumer.d.ts.map +1 -1
- package/slot-consumers/vocabulary-slot-consumer.d.ts +1 -1
- package/slot-consumers/vocabulary-slot-consumer.d.ts.map +1 -1
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { GrammarEngine, GrammarContext, PatternMatch, GrammarMatchOptions, SlotMatch } from '@sharpee/if-domain';
|
|
6
6
|
import { Token } from '@sharpee/if-domain';
|
|
7
|
-
import { SlotConsumerRegistry } from './slot-consumers';
|
|
8
|
-
import type { PartialMatchFailure } from './parse-failure';
|
|
7
|
+
import { SlotConsumerRegistry } from './slot-consumers/index.js';
|
|
8
|
+
import type { PartialMatchFailure } from './parse-failure.js';
|
|
9
9
|
/**
|
|
10
10
|
* Result of attempting to match a rule - either success or failure with info
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"english-grammar-engine.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/parser-en-us/src/english-grammar-engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,EACb,cAAc,EACd,YAAY,EACZ,mBAAmB,EAInB,SAAS,EACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,oBAAoB,EAA8C,MAAM,
|
|
1
|
+
{"version":3,"file":"english-grammar-engine.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/parser-en-us/src/english-grammar-engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,EACb,cAAc,EACd,YAAY,EACZ,mBAAmB,EAInB,SAAS,EACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,oBAAoB,EAA8C,MAAM,2BAA2B,CAAC;AAC7G,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,oBAAoB,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACtC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAO,CAAC,oBAAoB,CAAuB;IAEnD,+DAA+D;IAC/D,OAAO,CAAC,YAAY,CAA6B;gBAErC,oBAAoB,CAAC,EAAE,oBAAoB;IAMvD;;OAEG;IACH,eAAe,IAAI,mBAAmB,EAAE;IAIxC;;OAEG;IACH,WAAW,CACT,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,mBAAwB,GAChC,YAAY,EAAE;IAmDjB;;OAEG;IACH,OAAO,CAAC,YAAY;IA4KpB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqN/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAwDtB;;OAEG;IACH,OAAO,CAAC,WAAW;IA6DnB;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI;IAkB1D;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI;IAmB3D;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI;IAO7D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAarF"}
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.EnglishGrammarEngine = void 0;
|
|
8
8
|
const if_domain_1 = require("@sharpee/if-domain");
|
|
9
|
-
const
|
|
9
|
+
const english_pattern_compiler_js_1 = require("./english-pattern-compiler.js");
|
|
10
10
|
const lang_en_us_1 = require("@sharpee/lang-en-us");
|
|
11
|
-
const
|
|
11
|
+
const index_js_1 = require("./slot-consumers/index.js");
|
|
12
12
|
/**
|
|
13
13
|
* English-specific grammar matching engine
|
|
14
14
|
*/
|
|
@@ -17,9 +17,9 @@ class EnglishGrammarEngine extends if_domain_1.GrammarEngine {
|
|
|
17
17
|
/** Last set of partial match failures (for error reporting) */
|
|
18
18
|
lastFailures = [];
|
|
19
19
|
constructor(slotConsumerRegistry) {
|
|
20
|
-
super(new
|
|
20
|
+
super(new english_pattern_compiler_js_1.EnglishPatternCompiler());
|
|
21
21
|
// Use provided registry or create default with all consumers
|
|
22
|
-
this.slotConsumerRegistry = slotConsumerRegistry || (0,
|
|
22
|
+
this.slotConsumerRegistry = slotConsumerRegistry || (0, index_js_1.createDefaultRegistry)();
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* Get the last set of partial match failures (for error reporting)
|
|
@@ -55,13 +55,23 @@ class EnglishGrammarEngine extends if_domain_1.GrammarEngine {
|
|
|
55
55
|
}
|
|
56
56
|
// Store failures for later retrieval
|
|
57
57
|
this.lastFailures = failures;
|
|
58
|
-
//
|
|
58
|
+
// Full match ordering (ADR-231 D2b):
|
|
59
|
+
// confidence desc → rule priority desc → literal specificity desc →
|
|
60
|
+
// stable registration order (rules are iterated priority-first with
|
|
61
|
+
// stable insertion order, and Array.prototype.sort is stable).
|
|
62
|
+
// Explicit .withPriority() remains the override on top of specificity;
|
|
63
|
+
// specificity replaces registration order as the tiebreak within equal
|
|
64
|
+
// confidence AND equal priority.
|
|
59
65
|
matches.sort((a, b) => {
|
|
60
66
|
if (b.confidence !== a.confidence) {
|
|
61
67
|
return b.confidence - a.confidence;
|
|
62
68
|
}
|
|
63
|
-
|
|
64
|
-
|
|
69
|
+
if (b.rule.priority !== a.rule.priority) {
|
|
70
|
+
return b.rule.priority - a.rule.priority;
|
|
71
|
+
}
|
|
72
|
+
// Literal-before-slot: literal tokens consuming words outrank an
|
|
73
|
+
// unconstrained slot swallowing the same words.
|
|
74
|
+
return (b.literalSpecificity ?? 0) - (a.literalSpecificity ?? 0);
|
|
65
75
|
});
|
|
66
76
|
return matches;
|
|
67
77
|
}
|
|
@@ -84,6 +94,8 @@ class EnglishGrammarEngine extends if_domain_1.GrammarEngine {
|
|
|
84
94
|
let tokenIndex = 0;
|
|
85
95
|
let confidence = 1.0;
|
|
86
96
|
let skippedOptionals = 0;
|
|
97
|
+
// ADR-231 D2b: words consumed by literal/alternate pattern tokens
|
|
98
|
+
let literalSpecificity = 0;
|
|
87
99
|
const matchedTokens = {}; // Track which tokens matched which parts
|
|
88
100
|
// Try to match each pattern token
|
|
89
101
|
for (const patternToken of pattern.tokens) {
|
|
@@ -106,6 +118,7 @@ class EnglishGrammarEngine extends if_domain_1.GrammarEngine {
|
|
|
106
118
|
matchedTokens.verb = token.normalized;
|
|
107
119
|
}
|
|
108
120
|
tokenIndex++;
|
|
121
|
+
literalSpecificity++;
|
|
109
122
|
}
|
|
110
123
|
else if (patternToken.optional) {
|
|
111
124
|
// Optional literal doesn't match, skip it
|
|
@@ -132,6 +145,7 @@ class EnglishGrammarEngine extends if_domain_1.GrammarEngine {
|
|
|
132
145
|
console.log(`Alternates match: token '${token.normalized}' matches alternates [${patternToken.alternates.join(', ')}]`);
|
|
133
146
|
}
|
|
134
147
|
tokenIndex++;
|
|
148
|
+
literalSpecificity++;
|
|
135
149
|
// Don't reduce confidence for alternate matches - they're equally valid
|
|
136
150
|
}
|
|
137
151
|
else if (patternToken.optional) {
|
|
@@ -208,6 +222,7 @@ class EnglishGrammarEngine extends if_domain_1.GrammarEngine {
|
|
|
208
222
|
confidence,
|
|
209
223
|
slots,
|
|
210
224
|
consumed: tokenIndex,
|
|
225
|
+
literalSpecificity,
|
|
211
226
|
semantics,
|
|
212
227
|
matchedTokens
|
|
213
228
|
};
|
|
@@ -239,6 +254,8 @@ class EnglishGrammarEngine extends if_domain_1.GrammarEngine {
|
|
|
239
254
|
let patternIndex = 0;
|
|
240
255
|
let confidence = 1.0;
|
|
241
256
|
let skippedOptionals = 0;
|
|
257
|
+
// ADR-231 D2b: words consumed by literal/alternate pattern tokens
|
|
258
|
+
let literalSpecificity = 0;
|
|
242
259
|
const matchedTokens = {};
|
|
243
260
|
let matchedVerb;
|
|
244
261
|
// Try to match each pattern token
|
|
@@ -272,6 +289,7 @@ class EnglishGrammarEngine extends if_domain_1.GrammarEngine {
|
|
|
272
289
|
matchedVerb = token.normalized;
|
|
273
290
|
}
|
|
274
291
|
tokenIndex++;
|
|
292
|
+
literalSpecificity++;
|
|
275
293
|
}
|
|
276
294
|
else if (patternToken.optional) {
|
|
277
295
|
skippedOptionals++;
|
|
@@ -302,6 +320,7 @@ class EnglishGrammarEngine extends if_domain_1.GrammarEngine {
|
|
|
302
320
|
matchedVerb = token.normalized;
|
|
303
321
|
}
|
|
304
322
|
tokenIndex++;
|
|
323
|
+
literalSpecificity++;
|
|
305
324
|
}
|
|
306
325
|
else if (patternToken.optional) {
|
|
307
326
|
skippedOptionals++;
|
|
@@ -394,6 +413,7 @@ class EnglishGrammarEngine extends if_domain_1.GrammarEngine {
|
|
|
394
413
|
confidence,
|
|
395
414
|
slots,
|
|
396
415
|
consumed: tokenIndex,
|
|
416
|
+
literalSpecificity,
|
|
397
417
|
semantics,
|
|
398
418
|
matchedTokens
|
|
399
419
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"english-grammar-engine.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/parser-en-us/src/english-grammar-engine.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kDAS4B;AAE5B,yEAAoE;AACpE,oDAAoF;AACpF,qDAAoG;AA0BpG;;GAEG;AACH,MAAa,oBAAqB,SAAQ,yBAAa;IAC7C,oBAAoB,CAAuB;IAEnD,+DAA+D;IACvD,YAAY,GAA0B,EAAE,CAAC;IAEjD,YAAY,oBAA2C;QACrD,KAAK,CAAC,IAAI,iDAAsB,EAAE,CAAC,CAAC;QACpC,6DAA6D;QAC7D,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,IAAI,IAAA,sCAAqB,GAAE,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,WAAW,CACT,MAAe,EACf,OAAuB,EACvB,UAA+B,EAAE;QAEjC,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,QAAQ,GAA0B,EAAE,CAAC;QAC3C,MAAM,EAAE,aAAa,GAAG,GAAG,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAEzD,gBAAgB;QAChB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,SAAS;YAEpC,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAEnE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,aAAa,EAAE,CAAC;oBAC7C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAE3B,iCAAiC;oBACjC,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;wBACjC,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,uCAAuC;gBACvC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAE7B,6DAA6D;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpB,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;gBAClC,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;YACrC,CAAC;YACD,gDAAgD;YAChD,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,YAAY,CAClB,IAAS,EAAE,cAAc;IACzB,MAAe,EACf,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAgB,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,oCAAoC;QAEvF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,yCAAyC;QACzC,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC3C,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,UAAU,GAAG,GAAG,CAAC;QACrB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,MAAM,aAAa,GAAQ,EAAE,CAAC,CAAC,yCAAyC;QAExE,kCAAkC;QAClC,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1C,oCAAoC;YACpC,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,oDAAoD;gBACpD,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;oBAC1B,SAAS;gBACX,CAAC;gBACD,iDAAiD;gBACjD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;YAEjC,QAAQ,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC1B,KAAK,SAAS;oBACZ,sBAAsB;oBACtB,IAAI,KAAK,CAAC,UAAU,KAAK,YAAY,CAAC,KAAK,EAAE,CAAC;wBAC5C,uEAAuE;wBACvE,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;4BACrB,aAAa,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;wBACxC,CAAC;wBACD,UAAU,EAAE,CAAC;oBACf,CAAC;yBAAM,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;wBACjC,0CAA0C;wBAC1C,gBAAgB,EAAE,CAAC;wBACnB,SAAS;oBACX,CAAC;yBAAM,CAAC;wBACN,iCAAiC;wBACjC,IAAI,KAAK,EAAE,CAAC;4BACV,OAAO,CAAC,GAAG,CAAC,6BAA6B,UAAU,eAAe,YAAY,CAAC,KAAK,WAAW,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;wBACtH,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,MAAM;gBAER,KAAK,YAAY;oBACf,4CAA4C;oBAC5C,IAAI,YAAY,CAAC,UAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;wBACxD,uEAAuE;wBACvE,+EAA+E;wBAC/E,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;4BACrB,aAAa,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;wBACxC,CAAC;wBACD,IAAI,KAAK,EAAE,CAAC;4BACV,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,CAAC,UAAU,yBAAyB,YAAY,CAAC,UAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAC3H,CAAC;wBACD,UAAU,EAAE,CAAC;wBACb,wEAAwE;oBAC1E,CAAC;yBAAM,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;wBACjC,wCAAwC;wBACxC,gBAAgB,EAAE,CAAC;wBACnB,SAAS;oBACX,CAAC;yBAAM,CAAC;wBACN,kCAAkC;wBAClC,IAAI,KAAK,EAAE,CAAC;4BACV,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,CAAC,UAAU,wBAAwB,YAAY,CAAC,UAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAC7H,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,MAAM;gBAER,KAAK,MAAM;oBACT,sCAAsC;oBACtC,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,CAAC,GAAG,CAAC,mBAAmB,YAAY,CAAC,KAAK,uBAAuB,UAAU,EAAE,CAAC,CAAC;oBACxF,CAAC;oBACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CACjC,YAAY,CAAC,KAAK,EAClB,MAAM,EACN,UAAU,EACV,OAAO,EACP,IAAI,EACJ,OAAO,CACR,CAAC;oBAEF,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;4BAC1B,4CAA4C;4BAC5C,gBAAgB,EAAE,CAAC;4BACnB,SAAS;wBACX,CAAC;6BAAM,CAAC;4BACN,mCAAmC;4BACnC,IAAI,KAAK,EAAE,CAAC;gCACV,OAAO,CAAC,GAAG,CAAC,2BAA2B,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC;4BAChE,CAAC;4BACD,OAAO,IAAI,CAAC;wBACd,CAAC;oBACH,CAAC;oBAED,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,CAAC,GAAG,CAAC,kBAAkB,YAAY,CAAC,KAAK,OAAO,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;oBAC7E,CAAC;oBACD,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;oBAE1C,iDAAiD;oBACjD,IAAI,YAAY,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;wBACvC,aAAa,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;oBAC5C,CAAC;yBAAM,IAAI,YAAY,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;wBAChD,aAAa,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;oBAC9C,CAAC;oBAED,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBACjE,UAAU,IAAI,UAAU,CAAC,UAAU,IAAI,GAAG,CAAC;oBAC3C,MAAM;YACV,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,IAAI,UAAU,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YACjC,kBAAkB;YAClB,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,kCAAkC,UAAU,oBAAoB,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC;YACrG,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sDAAsD;QACtD,+EAA+E;QAC/E,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAE9C,uCAAuC;QACvC,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC;QAC5C,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,yCAAyC,gBAAgB,oBAAoB,CAAC,CAAC;QAC7F,CAAC;QAED,mDAAmD;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAE3D,OAAO;YACL,IAAI;YACJ,UAAU;YACV,KAAK;YACL,QAAQ,EAAE,UAAU;YACpB,SAAS;YACT,aAAa;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC7B,IAAS,EAAE,cAAc;IACzB,MAAe,EACf,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAgB,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM,CAAC;QAClD,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAEjD,yCAAyC;QACzC,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YACtC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE;oBACP,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,CAAC;oBACX,cAAc,EAAE,CAAC;oBACjB,MAAM,EAAE,mBAAmB;oBAC3B,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK;iBACnC;aACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC3C,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,UAAU,GAAG,GAAG,CAAC;QACrB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,MAAM,aAAa,GAAQ,EAAE,CAAC;QAC9B,IAAI,WAA+B,CAAC;QAEpC,kCAAkC;QAClC,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1C,YAAY,EAAE,CAAC;YAEf,oCAAoC;YACpC,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;oBAC1B,SAAS;gBACX,CAAC;gBACD,iDAAiD;gBACjD,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE;wBACP,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,QAAQ,EAAE,YAAY,GAAG,kBAAkB;wBAC3C,cAAc,EAAE,UAAU;wBAC1B,MAAM,EAAE,mBAAmB;wBAC3B,WAAW;wBACX,QAAQ,EAAE,YAAY,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK;qBACvF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;YAEjC,QAAQ,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC1B,KAAK,SAAS;oBACZ,IAAI,KAAK,CAAC,UAAU,KAAK,YAAY,CAAC,KAAK,EAAE,CAAC;wBAC5C,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;4BACrB,aAAa,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;4BACtC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;wBACjC,CAAC;wBACD,UAAU,EAAE,CAAC;oBACf,CAAC;yBAAM,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;wBACjC,gBAAgB,EAAE,CAAC;wBACnB,SAAS;oBACX,CAAC;yBAAM,CAAC;wBACN,kDAAkD;wBAClD,MAAM,MAAM,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC;wBACvE,OAAO;4BACL,OAAO,EAAE,KAAK;4BACd,OAAO,EAAE;gCACP,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gCACnB,QAAQ,EAAE,YAAY,GAAG,kBAAkB;gCAC3C,cAAc,EAAE,UAAU;gCAC1B,MAAM;gCACN,WAAW;gCACX,aAAa,EAAE,KAAK,CAAC,UAAU;gCAC/B,QAAQ,EAAE,YAAY,CAAC,KAAK;6BAC7B;yBACF,CAAC;oBACJ,CAAC;oBACD,MAAM;gBAER,KAAK,YAAY;oBACf,IAAI,YAAY,CAAC,UAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;wBACxD,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;4BACrB,aAAa,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;4BACtC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;wBACjC,CAAC;wBACD,UAAU,EAAE,CAAC;oBACf,CAAC;yBAAM,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;wBACjC,gBAAgB,EAAE,CAAC;wBACnB,SAAS;oBACX,CAAC;yBAAM,CAAC;wBACN,MAAM,MAAM,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC;wBACvE,OAAO;4BACL,OAAO,EAAE,KAAK;4BACd,OAAO,EAAE;gCACP,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gCACnB,QAAQ,EAAE,YAAY,GAAG,kBAAkB;gCAC3C,cAAc,EAAE,UAAU;gCAC1B,MAAM;gCACN,WAAW;gCACX,aAAa,EAAE,KAAK,CAAC,UAAU;gCAC/B,QAAQ,EAAE,YAAY,CAAC,UAAW,CAAC,IAAI,CAAC,GAAG,CAAC;6BAC7C;yBACF,CAAC;oBACJ,CAAC;oBACD,MAAM;gBAER,KAAK,MAAM;oBACT,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CACjC,YAAY,CAAC,KAAK,EAClB,MAAM,EACN,UAAU,EACV,OAAO,EACP,IAAI,EACJ,OAAO,CACR,CAAC;oBAEF,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;4BAC1B,gBAAgB,EAAE,CAAC;4BACnB,SAAS;wBACX,CAAC;wBACD,gEAAgE;wBAChE,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBACjD,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAEjE,OAAO;4BACL,OAAO,EAAE,KAAK;4BACd,OAAO,EAAE;gCACP,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gCACnB,QAAQ,EAAE,YAAY,GAAG,kBAAkB;gCAC3C,cAAc,EAAE,UAAU;gCAC1B,MAAM,EAAE,aAAa;gCACrB,WAAW;gCACX,WAAW,EAAE;oCACX,QAAQ,EAAE,YAAY,CAAC,KAAK;oCAC5B,aAAa,EAAE,aAAa,IAAI,WAAW;oCAC3C,MAAM,EAAE,UAAU;oCAClB,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI;iCACtC;6BACF;yBACF,CAAC;oBACJ,CAAC;oBAED,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;oBAE1C,IAAI,YAAY,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;wBACvC,aAAa,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;oBAC5C,CAAC;yBAAM,IAAI,YAAY,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;wBAChD,aAAa,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;oBAC9C,CAAC;oBAED,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBACjE,UAAU,IAAI,UAAU,CAAC,UAAU,IAAI,GAAG,CAAC;oBAC3C,MAAM;YACV,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,IAAI,UAAU,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE;oBACP,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,GAAG,EAAE,sCAAsC;oBACrD,cAAc,EAAE,UAAU;oBAC1B,MAAM,EAAE,iBAAiB;oBACzB,WAAW;oBACX,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI;iBACxC;aACF,CAAC;QACJ,CAAC;QAED,sDAAsD;QACtD,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAE9C,uCAAuC;QACvC,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC;QAC5C,CAAC;QAED,mDAAmD;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAE3D,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE;gBACL,IAAI;gBACJ,UAAU;gBACV,KAAK;gBACL,QAAQ,EAAE,UAAU;gBACpB,SAAS;gBACT,aAAa;aACd;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,IAAS,EAAE,cAAc;IACzB,aAAkB;QAElB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM,CAAC;QAClD,IAAI,SAAS,GAAQ,EAAE,CAAC;QAExB,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChE,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3C,CAAC;QAED,uCAAuC;QACvC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,uBAAuB;YACvB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC/D,IAAI,aAAa,EAAE,CAAC;oBAClB,SAAS,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,aAAa,EAAE,CAAC;oBAC/C,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,CAAC,GAAG,CAAC,+BAA+B,aAAa,CAAC,IAAI,IAAI,EAAE,aAAa,CAAC,CAAC;oBACpF,CAAC;gBACH,CAAC;YACH,CAAC;YAED,4BAA4B;YAC5B,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;gBACzD,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC/E,IAAI,mBAAmB,EAAE,CAAC;oBACxB,SAAS,CAAC,SAAS,GAAG,mBAAmB,CAAC;gBAC5C,CAAC;YACH,CAAC;YAED,8BAA8B;YAC9B,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;gBAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC/E,IAAI,eAAe,EAAE,CAAC;oBACpB,SAAS,CAAC,eAAe,GAAG,eAAe,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,CAAC;IAED;;OAEG;IACK,WAAW,CACjB,QAAgB,EAChB,MAAe,EACf,UAAkB,EAClB,OAAwB,EACxB,IAAS,EAAE,cAAc;IACzB,OAAuB;QAEvB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM,CAAC;QAElD,8CAA8C;QAC9C,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC;QACxB,IAAI,gBAA0C,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACtD,cAAc,GAAG,CAAC,CAAC;gBACnB,gBAAgB,GAAG,KAAK,CAAC;gBACzB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,6DAA6D;QAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,eAAe,EAAE,QAAQ,IAAI,gBAAgB,EAAE,QAAQ,IAAI,oBAAQ,CAAC,MAAM,CAAC;QAE5F,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,eAAe,QAAQ,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,0DAA0D;QAC1D,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,MAAM,eAAe,GAAwB;gBAC3C,QAAQ;gBACR,MAAM;gBACN,UAAU;gBACV,OAAO;gBACP,cAAc;gBACd,IAAI;gBACJ,OAAO;gBACP,QAAQ;gBACR,eAAe;gBACf,YAAY,EAAE,gBAAgB;gBAC9B,KAAK;aACN,CAAC;YACF,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC5D,CAAC;QAED,mEAAmE;QACnE,8CAA8C;QAC9C,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,6EAA6E;IAC7E,kDAAkD;IAClD,6EAA6E;IAE7E;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAgB;QACxC,IAAI,KAAK,CAAC,QAAQ,KAAK,oBAAQ,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEpD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAE5C,wDAAwD;QACxD,IAAI,UAAU,IAAI,4BAAe,EAAE,CAAC;YAClC,OAAO,4BAAe,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;QAED,aAAa;QACb,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAgB;QACzC,IAAI,KAAK,CAAC,QAAQ,KAAK,oBAAQ,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAErD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAE5C,wDAAwD;QACxD,IAAI,UAAU,IAAI,2BAAc,EAAE,CAAC;YACjC,OAAO,2BAAc,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QAED,uBAAuB;QACvB,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC9D,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAgB;QAC3C,IAAI,KAAK,CAAC,QAAQ,KAAK,oBAAQ,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAEvD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,yBAAY,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAgB;QACtC,IAAI,KAAK,CAAC,QAAQ,KAAK,oBAAQ,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAElD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC1D,IAAI,SAAS,EAAE,CAAC;YACd,OAAO;gBACL,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACjC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aACpC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAhoBD,oDAgoBC"}
|
|
1
|
+
{"version":3,"file":"english-grammar-engine.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/parser-en-us/src/english-grammar-engine.ts"],"names":[],"mappings":"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"}
|
package/english-parser.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { Parser, ParserOptions, Token as InternalToken, InternalParseResult, Par
|
|
|
8
8
|
import type { IParsedCommand, IValidatedCommand, IParseError as CoreParseError } from '@sharpee/world-model';
|
|
9
9
|
import type { ISystemEvent, Result } from '@sharpee/core';
|
|
10
10
|
import { GrammarBuilder } from '@sharpee/if-domain';
|
|
11
|
-
import { PronounContextManager } from './pronoun-context';
|
|
11
|
+
import { PronounContextManager } from './pronoun-context.js';
|
|
12
12
|
type CommandResult<T, E> = Result<T, E>;
|
|
13
13
|
/**
|
|
14
14
|
* English parser with rich information preservation
|
|
@@ -97,6 +97,19 @@ export declare class EnglishParser implements Parser {
|
|
|
97
97
|
* Convert a grammar match to a RichCandidate
|
|
98
98
|
*/
|
|
99
99
|
private convertGrammarMatch;
|
|
100
|
+
/**
|
|
101
|
+
* Split leading ARTICLE-tagged tokens off a consumed noun-phrase span
|
|
102
|
+
* (ADR-231 D3 defect fix — `INounPhrase.articles` was hardcoded `[]`).
|
|
103
|
+
*
|
|
104
|
+
* @param tokenIndices Indices of the consumed span into `tokens`.
|
|
105
|
+
* @param tokens The full rich-token array for the input.
|
|
106
|
+
* @param originalText The slot's consumed text (used verbatim when the
|
|
107
|
+
* span does not textually reconstruct it, e.g. pronoun-resolved text).
|
|
108
|
+
* @returns The leading articles, the article-stripped text, and the head
|
|
109
|
+
* (last word of the stripped text, normalized). When every token is an
|
|
110
|
+
* article, nothing is stripped (the phrase keeps at least one word).
|
|
111
|
+
*/
|
|
112
|
+
private splitLeadingArticles;
|
|
100
113
|
/**
|
|
101
114
|
* Register story-specific grammar rules
|
|
102
115
|
* @deprecated Use getStoryGrammar() for full API
|
package/english-parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"english-parser.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/parser-en-us/src/english-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,MAAM,EACN,aAAa,EACb,KAAK,IAAI,aAAa,EAGtB,mBAAmB,EAMnB,sBAAsB,EAItB,cAAc,EACd,eAAe,EAEf,UAAU,EAEX,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,WAAW,IAAI,cAAc,EAO9B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG1D,OAAO,EAAS,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,qBAAqB,EAA4B,MAAM,
|
|
1
|
+
{"version":3,"file":"english-parser.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/parser-en-us/src/english-parser.ts"],"names":[],"mappings":"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"}
|
package/english-parser.js
CHANGED
|
@@ -9,11 +9,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.EnglishParser = void 0;
|
|
10
10
|
const if_domain_1 = require("@sharpee/if-domain");
|
|
11
11
|
const world_model_1 = require("@sharpee/world-model");
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
12
|
+
const english_grammar_engine_js_1 = require("./english-grammar-engine.js");
|
|
13
|
+
const grammar_js_1 = require("./grammar.js");
|
|
14
|
+
const direction_mappings_js_1 = require("./direction-mappings.js");
|
|
15
|
+
const parse_failure_js_1 = require("./parse-failure.js");
|
|
16
|
+
const pronoun_context_js_1 = require("./pronoun-context.js");
|
|
17
17
|
/**
|
|
18
18
|
* Default parser options
|
|
19
19
|
*/
|
|
@@ -64,12 +64,12 @@ class EnglishParser {
|
|
|
64
64
|
this.language = language;
|
|
65
65
|
this.options = { ...DEFAULT_OPTIONS, ...options };
|
|
66
66
|
// Initialize grammar engine
|
|
67
|
-
this.grammarEngine = new
|
|
67
|
+
this.grammarEngine = new english_grammar_engine_js_1.EnglishGrammarEngine();
|
|
68
68
|
const grammar = this.grammarEngine.createBuilder();
|
|
69
|
-
(0,
|
|
69
|
+
(0, grammar_js_1.defineGrammar)(grammar);
|
|
70
70
|
// Initialize pronoun context (ADR-089)
|
|
71
|
-
this.pronounContext = new
|
|
72
|
-
(0,
|
|
71
|
+
this.pronounContext = new pronoun_context_js_1.PronounContextManager();
|
|
72
|
+
(0, pronoun_context_js_1.setPronounContextManager)(this.pronounContext);
|
|
73
73
|
this.initializeVocabulary();
|
|
74
74
|
}
|
|
75
75
|
/**
|
|
@@ -251,7 +251,7 @@ class EnglishParser {
|
|
|
251
251
|
// Analyze failures to determine the best error message
|
|
252
252
|
const failures = this.grammarEngine.getLastFailures();
|
|
253
253
|
const hadVerb = tokens.some(t => t.partOfSpeech.includes(world_model_1.PartOfSpeech.VERB));
|
|
254
|
-
const errorAnalysis = (0,
|
|
254
|
+
const errorAnalysis = (0, parse_failure_js_1.analyzeBestFailure)(failures, input, hadVerb);
|
|
255
255
|
// Emit parse error platform event
|
|
256
256
|
this.emitPlatformEvent('parse_failed', {
|
|
257
257
|
input,
|
|
@@ -288,8 +288,20 @@ class EnglishParser {
|
|
|
288
288
|
error
|
|
289
289
|
};
|
|
290
290
|
}
|
|
291
|
-
//
|
|
292
|
-
|
|
291
|
+
// Full candidate ordering (ADR-231 D2b): confidence desc → rule priority
|
|
292
|
+
// desc → literal specificity desc → stable registration order (candidates
|
|
293
|
+
// arrive in engine order; Array.prototype.sort is stable). This mirrors
|
|
294
|
+
// EnglishGrammarEngine.findMatches — a confidence-only re-sort here would
|
|
295
|
+
// silently drop the priority and specificity tiebreaks.
|
|
296
|
+
candidates.sort((a, b) => {
|
|
297
|
+
if (b.confidence !== a.confidence) {
|
|
298
|
+
return b.confidence - a.confidence;
|
|
299
|
+
}
|
|
300
|
+
if (b.priority !== a.priority) {
|
|
301
|
+
return b.priority - a.priority;
|
|
302
|
+
}
|
|
303
|
+
return b.literalSpecificity - a.literalSpecificity;
|
|
304
|
+
});
|
|
293
305
|
const best = candidates[0];
|
|
294
306
|
// Emit candidate selection debug event
|
|
295
307
|
if (this.onDebugEvent) {
|
|
@@ -327,6 +339,8 @@ class EnglishParser {
|
|
|
327
339
|
textSlots: best.textSlots,
|
|
328
340
|
instrument: best.instrument,
|
|
329
341
|
excluded: best.excluded,
|
|
342
|
+
// ADR-231 D4 addition
|
|
343
|
+
topic: best.topic,
|
|
330
344
|
// ADR-082 additions
|
|
331
345
|
vocabularySlots: best.vocabularySlots,
|
|
332
346
|
manner: best.manner
|
|
@@ -334,7 +348,7 @@ class EnglishParser {
|
|
|
334
348
|
// Add extras if present
|
|
335
349
|
if (best.direction) {
|
|
336
350
|
// Convert direction string to Direction constant
|
|
337
|
-
const directionConstant = (0,
|
|
351
|
+
const directionConstant = (0, direction_mappings_js_1.parseDirection)(best.direction);
|
|
338
352
|
parsed.extras = {
|
|
339
353
|
direction: directionConstant || best.direction
|
|
340
354
|
};
|
|
@@ -343,7 +357,7 @@ class EnglishParser {
|
|
|
343
357
|
// Check if extras contains a direction and convert it
|
|
344
358
|
const extras = { ...best.extras };
|
|
345
359
|
if (extras.direction && typeof extras.direction === 'string') {
|
|
346
|
-
const directionConstant = (0,
|
|
360
|
+
const directionConstant = (0, direction_mappings_js_1.parseDirection)(extras.direction);
|
|
347
361
|
if (directionConstant) {
|
|
348
362
|
extras.direction = directionConstant;
|
|
349
363
|
}
|
|
@@ -648,12 +662,13 @@ class EnglishParser {
|
|
|
648
662
|
let textSlots;
|
|
649
663
|
let instrument;
|
|
650
664
|
let excluded;
|
|
665
|
+
// ADR-231 D4: Track the conversation topic
|
|
666
|
+
let topic;
|
|
651
667
|
// ADR-082: Track vocabulary slots and manner
|
|
652
668
|
let vocabularySlots;
|
|
653
669
|
let manner;
|
|
654
670
|
// Process slots based on the pattern structure
|
|
655
671
|
for (const [slotName, slotData] of slotEntries) {
|
|
656
|
-
const slotTokens = slotData.tokens.map((idx) => tokens[idx]);
|
|
657
672
|
// Check slot type from the match data (set by grammar engine)
|
|
658
673
|
const slotType = slotData.slotType;
|
|
659
674
|
// Handle text slots (TEXT or TEXT_GREEDY)
|
|
@@ -664,6 +679,14 @@ class EnglishParser {
|
|
|
664
679
|
textSlots.set(slotName, slotData.text);
|
|
665
680
|
continue; // Don't also add to direct/indirect objects
|
|
666
681
|
}
|
|
682
|
+
// ADR-231 D4: Handle topic slots — first-class conversation topic.
|
|
683
|
+
// Verbatim free text (TextSlotConsumer, multi-word, articles kept);
|
|
684
|
+
// NOT a positional noun phrase, so it never becomes indirectObject
|
|
685
|
+
// and never enters entity resolution as a scope-rejectable slot.
|
|
686
|
+
if (slotType === if_domain_1.SlotType.TOPIC) {
|
|
687
|
+
topic = { text: slotData.text };
|
|
688
|
+
continue; // Don't also add to direct/indirect objects
|
|
689
|
+
}
|
|
667
690
|
// ADR-082: Handle vocabulary slots
|
|
668
691
|
if (slotType === if_domain_1.SlotType.VOCABULARY) {
|
|
669
692
|
if (!vocabularySlots) {
|
|
@@ -683,48 +706,60 @@ class EnglishParser {
|
|
|
683
706
|
// ADR-084: Handle direction slots - put in extras.direction
|
|
684
707
|
if (slotType === if_domain_1.SlotType.DIRECTION) {
|
|
685
708
|
const directionText = slotData.text.toLowerCase();
|
|
686
|
-
const directionConstant = (0,
|
|
709
|
+
const directionConstant = (0, direction_mappings_js_1.parseDirection)(directionText);
|
|
687
710
|
extras.direction = directionConstant || directionText;
|
|
688
711
|
continue; // Don't also add to direct/indirect objects
|
|
689
712
|
}
|
|
690
|
-
// Build base noun phrase
|
|
713
|
+
// Build base noun phrase.
|
|
714
|
+
// ADR-231 D3: leading ARTICLE-tagged tokens are split into the
|
|
715
|
+
// `articles` field and stripped from text/head/candidates. The
|
|
716
|
+
// validator restores the full text (articles + text) first when
|
|
717
|
+
// matching, so proper names beginning with an article-like word
|
|
718
|
+
// survive.
|
|
719
|
+
const np = this.splitLeadingArticles(slotData.tokens, tokens, slotData.text);
|
|
691
720
|
const phrase = {
|
|
692
721
|
tokens: slotData.tokens,
|
|
693
|
-
text:
|
|
694
|
-
head:
|
|
722
|
+
text: np.text,
|
|
723
|
+
head: np.head,
|
|
695
724
|
modifiers: [],
|
|
696
|
-
articles:
|
|
725
|
+
articles: np.articles,
|
|
697
726
|
determiners: [],
|
|
698
|
-
candidates: [
|
|
727
|
+
candidates: [np.text]
|
|
699
728
|
};
|
|
700
729
|
// ADR-080 Phase 2: Add multi-object support
|
|
701
730
|
if (slotData.isAll) {
|
|
702
731
|
phrase.isAll = true;
|
|
703
732
|
// Extract excluded items for "all but X" patterns
|
|
704
733
|
if (slotData.excluded && slotData.excluded.length > 0) {
|
|
705
|
-
excluded = slotData.excluded.map((item) =>
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
734
|
+
excluded = slotData.excluded.map((item) => {
|
|
735
|
+
const itemNp = this.splitLeadingArticles(item.tokens, tokens, item.text);
|
|
736
|
+
return {
|
|
737
|
+
tokens: item.tokens,
|
|
738
|
+
text: itemNp.text,
|
|
739
|
+
head: itemNp.head,
|
|
740
|
+
modifiers: [],
|
|
741
|
+
articles: itemNp.articles,
|
|
742
|
+
determiners: [],
|
|
743
|
+
candidates: [itemNp.text]
|
|
744
|
+
};
|
|
745
|
+
});
|
|
714
746
|
}
|
|
715
747
|
}
|
|
716
748
|
if (slotData.isList && slotData.items) {
|
|
717
749
|
phrase.isList = true;
|
|
718
|
-
phrase.items = slotData.items.map((item) =>
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
750
|
+
phrase.items = slotData.items.map((item) => {
|
|
751
|
+
const itemNp = this.splitLeadingArticles(item.tokens, tokens, item.text);
|
|
752
|
+
return {
|
|
753
|
+
tokens: item.tokens,
|
|
754
|
+
text: itemNp.text,
|
|
755
|
+
head: itemNp.head,
|
|
756
|
+
modifiers: [],
|
|
757
|
+
articles: itemNp.articles,
|
|
758
|
+
determiners: [],
|
|
759
|
+
candidates: [itemNp.text],
|
|
760
|
+
entityId: item.entityId // ADR-089: preserve pre-resolved entity ID
|
|
761
|
+
};
|
|
762
|
+
});
|
|
728
763
|
}
|
|
729
764
|
// ADR-089: Copy pre-resolved entity ID from pronoun resolution
|
|
730
765
|
if (slotData.entityId) {
|
|
@@ -832,6 +867,8 @@ class EnglishParser {
|
|
|
832
867
|
verb: verbPhrase,
|
|
833
868
|
pattern: 'DIRECTION_ONLY',
|
|
834
869
|
confidence: match.confidence,
|
|
870
|
+
priority: rule.priority,
|
|
871
|
+
literalSpecificity: match.literalSpecificity ?? 0,
|
|
835
872
|
action: rule.action,
|
|
836
873
|
direction: directionToken.normalized
|
|
837
874
|
};
|
|
@@ -858,11 +895,15 @@ class EnglishParser {
|
|
|
858
895
|
indirectObject,
|
|
859
896
|
pattern,
|
|
860
897
|
confidence: match.confidence,
|
|
898
|
+
priority: rule.priority,
|
|
899
|
+
literalSpecificity: match.literalSpecificity ?? 0,
|
|
861
900
|
action: rule.action,
|
|
862
901
|
// ADR-080 additions
|
|
863
902
|
textSlots,
|
|
864
903
|
instrument,
|
|
865
904
|
excluded,
|
|
905
|
+
// ADR-231 D4 addition
|
|
906
|
+
topic,
|
|
866
907
|
// ADR-082 additions
|
|
867
908
|
vocabularySlots,
|
|
868
909
|
manner
|
|
@@ -882,6 +923,51 @@ class EnglishParser {
|
|
|
882
923
|
}
|
|
883
924
|
return candidate;
|
|
884
925
|
}
|
|
926
|
+
/**
|
|
927
|
+
* Split leading ARTICLE-tagged tokens off a consumed noun-phrase span
|
|
928
|
+
* (ADR-231 D3 defect fix — `INounPhrase.articles` was hardcoded `[]`).
|
|
929
|
+
*
|
|
930
|
+
* @param tokenIndices Indices of the consumed span into `tokens`.
|
|
931
|
+
* @param tokens The full rich-token array for the input.
|
|
932
|
+
* @param originalText The slot's consumed text (used verbatim when the
|
|
933
|
+
* span does not textually reconstruct it, e.g. pronoun-resolved text).
|
|
934
|
+
* @returns The leading articles, the article-stripped text, and the head
|
|
935
|
+
* (last word of the stripped text, normalized). When every token is an
|
|
936
|
+
* article, nothing is stripped (the phrase keeps at least one word).
|
|
937
|
+
*/
|
|
938
|
+
splitLeadingArticles(tokenIndices, tokens, originalText) {
|
|
939
|
+
const spanTokens = tokenIndices.map(i => tokens[i]);
|
|
940
|
+
const fallback = {
|
|
941
|
+
articles: [],
|
|
942
|
+
text: originalText,
|
|
943
|
+
head: originalText.split(' ').pop() || originalText
|
|
944
|
+
};
|
|
945
|
+
// Only strip when the span textually reconstructs the slot text —
|
|
946
|
+
// pronoun-resolved slots carry substituted text ("them" → "brass
|
|
947
|
+
// lantern") whose tokens don't correspond word-for-word.
|
|
948
|
+
if (spanTokens.some(t => !t) ||
|
|
949
|
+
spanTokens.map(t => t.word).join(' ') !== originalText) {
|
|
950
|
+
return fallback;
|
|
951
|
+
}
|
|
952
|
+
let start = 0;
|
|
953
|
+
while (start < spanTokens.length - 1 &&
|
|
954
|
+
spanTokens[start].partOfSpeech.includes(world_model_1.PartOfSpeech.ARTICLE)) {
|
|
955
|
+
start++;
|
|
956
|
+
}
|
|
957
|
+
if (start === 0) {
|
|
958
|
+
return {
|
|
959
|
+
articles: [],
|
|
960
|
+
text: originalText,
|
|
961
|
+
head: spanTokens[spanTokens.length - 1].normalized
|
|
962
|
+
};
|
|
963
|
+
}
|
|
964
|
+
const rest = spanTokens.slice(start);
|
|
965
|
+
return {
|
|
966
|
+
articles: spanTokens.slice(0, start).map(t => t.normalized),
|
|
967
|
+
text: rest.map(t => t.word).join(' '),
|
|
968
|
+
head: rest[rest.length - 1].normalized
|
|
969
|
+
};
|
|
970
|
+
}
|
|
885
971
|
/**
|
|
886
972
|
* Register story-specific grammar rules
|
|
887
973
|
* @deprecated Use getStoryGrammar() for full API
|