@sharpee/parser-en-us 3.0.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.
@@ -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,kBAAkB,CAAC;AACpG,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,iBAAiB,CAAC;AAExE;;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;IAyCjB;;OAEG;IACH,OAAO,CAAC,YAAY;IAuKpB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAgN/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"}
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 english_pattern_compiler_1 = require("./english-pattern-compiler");
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 slot_consumers_1 = require("./slot-consumers");
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 english_pattern_compiler_1.EnglishPatternCompiler());
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, slot_consumers_1.createDefaultRegistry)();
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
- // Sort by confidence descending, then by priority descending
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
- // If confidence is equal, sort by rule priority
64
- return b.rule.priority - a.rule.priority;
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":"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"}
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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"}
@@ -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
@@ -110,6 +123,26 @@ export declare class EnglishParser implements Parser {
110
123
  * giving stories full access to all PatternBuilder methods.
111
124
  */
112
125
  getStoryGrammar(): GrammarBuilder;
126
+ /**
127
+ * Action ids reachable from this parser's registered grammar rules.
128
+ *
129
+ * On a freshly constructed parser this is exactly the core-grammar surface;
130
+ * after story grammar registration it includes story-added ids too. Consumed
131
+ * by the stdlib reachability gate (ADR-230 D1), which asserts every wired
132
+ * action is player-reachable.
133
+ *
134
+ * @returns set of action ids some grammar pattern maps to
135
+ */
136
+ getReachableActionIds(): Set<string>;
137
+ /**
138
+ * Source pattern strings of this parser's registered grammar rules
139
+ * (e.g. `"lock :target with|using :key"`). Consumed by the stdlib
140
+ * verb-reachability gate (ADR-230 D4 — PIN 1 amendment, 2026-07-17)
141
+ * to assert every lang-declared verb phrase leads some pattern.
142
+ *
143
+ * @returns pattern strings, one per rule
144
+ */
145
+ getGrammarPatterns(): string[];
113
146
  /**
114
147
  * Get candidate interpretations for a token
115
148
  */
@@ -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":"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"}
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 english_grammar_engine_1 = require("./english-grammar-engine");
13
- const grammar_1 = require("./grammar");
14
- const direction_mappings_1 = require("./direction-mappings");
15
- const parse_failure_1 = require("./parse-failure");
16
- const pronoun_context_1 = require("./pronoun-context");
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 english_grammar_engine_1.EnglishGrammarEngine();
67
+ this.grammarEngine = new english_grammar_engine_js_1.EnglishGrammarEngine();
68
68
  const grammar = this.grammarEngine.createBuilder();
69
- (0, grammar_1.defineGrammar)(grammar);
69
+ (0, grammar_js_1.defineGrammar)(grammar);
70
70
  // Initialize pronoun context (ADR-089)
71
- this.pronounContext = new pronoun_context_1.PronounContextManager();
72
- (0, pronoun_context_1.setPronounContextManager)(this.pronounContext);
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, parse_failure_1.analyzeBestFailure)(failures, input, hadVerb);
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
- // Sort by confidence and take the best
292
- candidates.sort((a, b) => b.confidence - a.confidence);
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, direction_mappings_1.parseDirection)(best.direction);
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, direction_mappings_1.parseDirection)(extras.direction);
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, direction_mappings_1.parseDirection)(directionText);
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: slotData.text,
694
- head: slotTokens[slotTokens.length - 1]?.normalized || slotData.text,
722
+ text: np.text,
723
+ head: np.head,
695
724
  modifiers: [],
696
- articles: [],
725
+ articles: np.articles,
697
726
  determiners: [],
698
- candidates: [slotData.text]
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
- tokens: item.tokens,
707
- text: item.text,
708
- head: item.text.split(' ').pop() || item.text,
709
- modifiers: [],
710
- articles: [],
711
- determiners: [],
712
- candidates: [item.text]
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
- tokens: item.tokens,
720
- text: item.text,
721
- head: item.text.split(' ').pop() || item.text,
722
- modifiers: [],
723
- articles: [],
724
- determiners: [],
725
- candidates: [item.text],
726
- entityId: item.entityId // ADR-089: preserve pre-resolved entity ID
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) {
@@ -739,12 +774,13 @@ class EnglishParser {
739
774
  instrument = phrase;
740
775
  continue; // Don't also add to direct/indirect objects
741
776
  }
742
- // Determine where this slot should go based on the pattern
743
- if (rule.pattern.includes(' with :' + slotName)) {
744
- // This slot comes after 'with', put it in extras
745
- extras[slotName] = phrase;
746
- }
747
- else if (rule.pattern.includes('give :recipient :item')) {
777
+ // Determine where this slot should go based on the pattern.
778
+ // (Deleted 2026-07-16, David's ruling during ADR-229 R3: the legacy
779
+ // "slot after literal 'with' extras" shunt is superseded by
780
+ // ADR-080's `.instrument()` slot typing — handled above — and had no
781
+ // remaining consumer. With-slots now follow positional assignment
782
+ // like any other slot.)
783
+ if (rule.pattern.includes('give :recipient :item')) {
748
784
  // Special case for give patterns
749
785
  if (slotName === 'item') {
750
786
  directObject = phrase;
@@ -831,6 +867,8 @@ class EnglishParser {
831
867
  verb: verbPhrase,
832
868
  pattern: 'DIRECTION_ONLY',
833
869
  confidence: match.confidence,
870
+ priority: rule.priority,
871
+ literalSpecificity: match.literalSpecificity ?? 0,
834
872
  action: rule.action,
835
873
  direction: directionToken.normalized
836
874
  };
@@ -857,11 +895,15 @@ class EnglishParser {
857
895
  indirectObject,
858
896
  pattern,
859
897
  confidence: match.confidence,
898
+ priority: rule.priority,
899
+ literalSpecificity: match.literalSpecificity ?? 0,
860
900
  action: rule.action,
861
901
  // ADR-080 additions
862
902
  textSlots,
863
903
  instrument,
864
904
  excluded,
905
+ // ADR-231 D4 addition
906
+ topic,
865
907
  // ADR-082 additions
866
908
  vocabularySlots,
867
909
  manner
@@ -881,6 +923,51 @@ class EnglishParser {
881
923
  }
882
924
  return candidate;
883
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
+ }
884
971
  /**
885
972
  * Register story-specific grammar rules
886
973
  * @deprecated Use getStoryGrammar() for full API
@@ -906,6 +993,30 @@ class EnglishParser {
906
993
  getStoryGrammar() {
907
994
  return this.grammarEngine.createBuilder();
908
995
  }
996
+ /**
997
+ * Action ids reachable from this parser's registered grammar rules.
998
+ *
999
+ * On a freshly constructed parser this is exactly the core-grammar surface;
1000
+ * after story grammar registration it includes story-added ids too. Consumed
1001
+ * by the stdlib reachability gate (ADR-230 D1), which asserts every wired
1002
+ * action is player-reachable.
1003
+ *
1004
+ * @returns set of action ids some grammar pattern maps to
1005
+ */
1006
+ getReachableActionIds() {
1007
+ return new Set(this.grammarEngine.getRules().map((rule) => rule.action));
1008
+ }
1009
+ /**
1010
+ * Source pattern strings of this parser's registered grammar rules
1011
+ * (e.g. `"lock :target with|using :key"`). Consumed by the stdlib
1012
+ * verb-reachability gate (ADR-230 D4 — PIN 1 amendment, 2026-07-17)
1013
+ * to assert every lang-declared verb phrase leads some pattern.
1014
+ *
1015
+ * @returns pattern strings, one per rule
1016
+ */
1017
+ getGrammarPatterns() {
1018
+ return this.grammarEngine.getRules().map((rule) => rule.pattern);
1019
+ }
909
1020
  /**
910
1021
  * Get candidate interpretations for a token
911
1022
  */