@plurnk/plurnk-contracts 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +10 -6
  2. package/SPEC.md +368 -231
  3. package/dist/plurnk.gemma.gbnf +160 -0
  4. package/dist/plurnk.qwen.gbnf +149 -0
  5. package/dist/schema/ClientStatement.json +7 -1
  6. package/dist/schema/EntryReadResult.json +1 -9
  7. package/dist/schema/MatcherBody.json +1 -1
  8. package/dist/schema/OperationResult.json +3 -0
  9. package/dist/schema/PlurnkStatement.json +57 -12
  10. package/dist/schema/ProposalProjection.json +1 -1
  11. package/dist/schema/ProviderAccounting.json +30 -0
  12. package/dist/schema/ProviderCost.json +6 -15
  13. package/dist/schema/ProviderRequestAccounting.json +17 -0
  14. package/dist/schema/ProviderUsage.json +40 -0
  15. package/dist/schema/RangeExtent.json +47 -0
  16. package/dist/schema/ResourceSelection.json +1 -1
  17. package/dist/schema/TextLineMarker.json +21 -0
  18. package/dist/src/AstBuilder.d.ts.map +1 -1
  19. package/dist/src/AstBuilder.js +123 -22
  20. package/dist/src/AstBuilder.js.map +1 -1
  21. package/dist/src/JsonResult.d.ts +3 -0
  22. package/dist/src/JsonResult.d.ts.map +1 -0
  23. package/dist/src/JsonResult.js +37 -0
  24. package/dist/src/JsonResult.js.map +1 -0
  25. package/dist/src/PlurnkErrorStrategy.d.ts +1 -0
  26. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
  27. package/dist/src/PlurnkErrorStrategy.js +42 -19
  28. package/dist/src/PlurnkErrorStrategy.js.map +1 -1
  29. package/dist/src/PlurnkParser.d.ts.map +1 -1
  30. package/dist/src/PlurnkParser.js +22 -139
  31. package/dist/src/PlurnkParser.js.map +1 -1
  32. package/dist/src/TagSignal.d.ts +15 -0
  33. package/dist/src/TagSignal.d.ts.map +1 -0
  34. package/dist/src/TagSignal.js +48 -0
  35. package/dist/src/TagSignal.js.map +1 -0
  36. package/dist/src/Validator.d.ts +6 -1
  37. package/dist/src/Validator.d.ts.map +1 -1
  38. package/dist/src/Validator.js +36 -1
  39. package/dist/src/Validator.js.map +1 -1
  40. package/dist/src/generated/plurnkLexer.d.ts +99 -54
  41. package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
  42. package/dist/src/generated/plurnkLexer.js +889 -498
  43. package/dist/src/generated/plurnkLexer.js.map +1 -1
  44. package/dist/src/generated/plurnkParser.d.ts +99 -108
  45. package/dist/src/generated/plurnkParser.d.ts.map +1 -1
  46. package/dist/src/generated/plurnkParser.js +943 -1068
  47. package/dist/src/generated/plurnkParser.js.map +1 -1
  48. package/dist/src/generated/plurnkParserVisitor.d.ts +19 -5
  49. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
  50. package/dist/src/generated/plurnkParserVisitor.js +16 -4
  51. package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
  52. package/dist/src/index.d.ts +6 -2
  53. package/dist/src/index.d.ts.map +1 -1
  54. package/dist/src/index.js +4 -2
  55. package/dist/src/index.js.map +1 -1
  56. package/dist/src/types.d.ts +2 -1
  57. package/dist/src/types.d.ts.map +1 -1
  58. package/dist/src/types.generated.d.ts +98 -24
  59. package/dist/src/types.generated.d.ts.map +1 -1
  60. package/dist/src/types.js +4 -1
  61. package/dist/src/types.js.map +1 -1
  62. package/package.json +8 -8
  63. package/plurnk.md +143 -133
  64. package/dist/plurnk.gbnf +0 -394
@@ -1,5 +1,6 @@
1
1
  import { DefaultErrorStrategy, type Parser, type RecognitionException } from "antlr4ng";
2
2
  import { plurnkLexer } from "./generated/plurnkLexer.ts";
3
+ export declare const COMBINED_ANCHOR_LINE_DIAGNOSTIC = "a scope position accepts one line coordinate; use the `@hash` anchor without its displayed line number";
3
4
  export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
4
5
  #private;
5
6
  static translateLexerMessage(lexer: plurnkLexer, originalMsg: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"PlurnkErrorStrategy.d.ts","sourceRoot":"","sources":["../../src/PlurnkErrorStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EAIpB,KAAK,MAAM,EACX,KAAK,oBAAoB,EAC5B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,oBAAoB;;IAyCjE,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAgB5E;IAoCe,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAe7E;IAEe,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAiB3D;IAEe,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAmB5D;CACJ"}
1
+ {"version":3,"file":"PlurnkErrorStrategy.d.ts","sourceRoot":"","sources":["../../src/PlurnkErrorStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EAIpB,KAAK,MAAM,EACX,KAAK,oBAAoB,EAC5B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,eAAO,MAAM,+BAA+B,2GACgE,CAAC;AAE7G,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,oBAAoB;;IA8CjE,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAgB5E;IA2Ce,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAqB7E;IAEe,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAiB3D;IAEe,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAwB5D;CACJ"}
@@ -1,10 +1,11 @@
1
1
  import { DefaultErrorStrategy, InputMismatchException, NoViableAltException, Token, } from "antlr4ng";
2
2
  import { plurnkParser } from "./generated/plurnkParser.js";
3
+ export const COMBINED_ANCHOR_LINE_DIAGNOSTIC = "a scope position accepts one line coordinate; use the `@hash` anchor without its displayed line number";
3
4
  export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
4
5
  static #OFFENDING_CHAR_RE = /at: '([^']*)'$/;
5
6
  static #LEXER_MODE_CONTEXT = {
6
- DEFAULT_MODE: "between statements",
7
- SLOTS: "in slot region - expected `[signal]`, `(target)`, `<L>`, or `:body:` (any order)",
7
+ DEFAULT_MODE: "before the PLAN heading",
8
+ SLOTS: "in operation heading - expected a space before `[signal]`, `(target)`, or `<scope>`, or a line ending",
8
9
  SIGNAL_TAGS: "in tag signal - expected tag, `,`, or `]`",
9
10
  SIGNAL_INT: "in signal - expected integer for SEND/KILL, then `]`",
10
11
  SIGNAL_IDENT: "in signal - expected executor for EXEC, then `]`",
@@ -12,31 +13,36 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
12
13
  BODY: "in body",
13
14
  };
14
15
  static #SLOT_BY_TOKEN = {
15
- [plurnkParser.OPEN_FIND]: "open tag `<<OPsuffix`",
16
- [plurnkParser.OPEN_READ]: "open tag `<<OPsuffix`",
17
- [plurnkParser.OPEN_EDIT]: "open tag `<<OPsuffix`",
18
- [plurnkParser.OPEN_COPY]: "open tag `<<OPsuffix`",
19
- [plurnkParser.OPEN_MOVE]: "open tag `<<OPsuffix`",
20
- [plurnkParser.OPEN_OPEN]: "open tag `<<OPsuffix`",
21
- [plurnkParser.OPEN_FOLD]: "open tag `<<OPsuffix`",
22
- [plurnkParser.OPEN_SEND]: "open tag `<<OPsuffix`",
23
- [plurnkParser.OPEN_EXEC]: "open tag `<<OPsuffix`",
24
- [plurnkParser.OPEN_KILL]: "open tag `<<OPsuffix`",
25
- [plurnkParser.OPEN_PLAN]: "open tag `<<OPsuffix`",
16
+ [plurnkParser.OPEN_FIND]: "H2 operation heading `## OPsuffix`",
17
+ [plurnkParser.OPEN_READ]: "H2 operation heading `## OPsuffix`",
18
+ [plurnkParser.OPEN_EDIT]: "H2 operation heading `## OPsuffix`",
19
+ [plurnkParser.OPEN_COPY]: "H2 operation heading `## OPsuffix`",
20
+ [plurnkParser.OPEN_MOVE]: "H2 operation heading `## OPsuffix`",
21
+ [plurnkParser.OPEN_OPEN]: "H2 operation heading `## OPsuffix`",
22
+ [plurnkParser.OPEN_FOLD]: "H2 operation heading `## OPsuffix`",
23
+ [plurnkParser.OPEN_SEND]: "H2 operation heading `## OPsuffix`",
24
+ [plurnkParser.OPEN_EXEC]: "H2 operation heading `## OPsuffix`",
25
+ [plurnkParser.OPEN_BARE]: "H2 operation heading `## OPsuffix`",
26
+ [plurnkParser.OPEN_WORK]: "H2 operation heading `## OPsuffix`",
27
+ [plurnkParser.OPEN_FORK]: "H2 operation heading `## OPsuffix`",
28
+ [plurnkParser.OPEN_KILL]: "H2 operation heading `## OPsuffix`",
29
+ [plurnkParser.OPEN_PLAN]: "PLAN heading `# PLANsuffix`",
30
+ [plurnkParser.OPEN_LOOK]: "H2 client heading `## OPsuffix`",
31
+ [plurnkParser.OPEN_BUFF]: "H2 client heading `## OPsuffix`",
26
32
  [plurnkParser.LBRACKET]: "`[` (signal slot opener)",
27
33
  [plurnkParser.RBRACKET]: "`]` (signal slot closer)",
28
34
  [plurnkParser.LPAREN]: "`(` (target slot opener)",
29
35
  [plurnkParser.RPAREN]: "`)` (target slot closer)",
30
36
  [plurnkParser.L_MARKER]: "`<L>` line marker",
31
- [plurnkParser.COLON]: "`:` (body fence)",
37
+ [plurnkParser.BODY_OPEN]: "operation-heading line ending",
38
+ [plurnkParser.SECTION_END]: "next same-lane heading",
32
39
  [plurnkParser.COMMA]: "`,`",
33
40
  [plurnkParser.INT]: "integer (SEND/KILL signal)",
34
41
  [plurnkParser.IDENT]: "executor (EXEC signal)",
35
42
  [plurnkParser.TAG]: "tag",
36
43
  [plurnkParser.TARGET_TEXT]: "target content",
37
44
  [plurnkParser.BODY_TEXT]: "body content",
38
- [plurnkParser.CLOSE_TAG]: "close tag `:OPsuffix`",
39
- [plurnkParser.TEXT]: "text between statements",
45
+ [plurnkParser.TEXT]: "text before PLAN",
40
46
  };
41
47
  static translateLexerMessage(lexer, originalMsg) {
42
48
  const modeName = lexer.modeNames[lexer.mode] ?? "DEFAULT_MODE";
@@ -45,13 +51,13 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
45
51
  // EXEC's identifier cannot start with a digit or `-`, making a leading numeric
46
52
  // value an unambiguous misplaced timing scope. {§signal-scope-redirect}
47
53
  if (modeName === "SIGNAL_IDENT" && /^'[-\d]'$/.test(ch)) {
48
- return `unrecognized character ${ch} in signal - timeout/poll ride the \`<scope>\` slot; try \`EXEC<-1,300>\``;
54
+ return `unrecognized character ${ch} in signal - timeout/poll ride the \`<scope>\` slot; try \`## EXEC0 <-1,300>\``;
49
55
  }
50
56
  // Redirect an unambiguous matcher prefix in the slot region into the body. Slash-led
51
57
  // regex and XPath are excluded because `/` may instead be a target whose `(...)` wrap
52
58
  // was omitted.
53
59
  if (modeName === "SLOTS" && /^'[$~@]'$/.test(ch)) {
54
- return `unrecognized character ${ch} in slot region - a matcher rides the \`:body:\` slot; put it between the body fences`;
60
+ return `unrecognized character ${ch} in operation heading - a matcher belongs on the first body line`;
55
61
  }
56
62
  return `unrecognized character ${ch} ${context}`;
57
63
  }
@@ -78,7 +84,7 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
78
84
  const types = expected.toArray();
79
85
  if (types.length === 0)
80
86
  return null;
81
- // Every OPEN_<OP> token maps to the same canon name (`open tag <<OPsuffix`), so a
87
+ // Every OPEN_<OP> token maps to the same canonical heading class, so a
82
88
  // statement-position expected-set yields that phrase 10+ times. Dedup to one entry -
83
89
  // the model needs the distinct options, not the alternation count.
84
90
  const names = [...new Set(types
@@ -92,10 +98,22 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
92
98
  return `${names[0]} or ${names[1]}`;
93
99
  return `${names.slice(0, -1).join(", ")}, or ${names[names.length - 1]}`;
94
100
  }
101
+ // {§combined-anchor-line-redirect} The rejected token is a complete bounded
102
+ // scope, so its one canonical correction is known without interpreting intent.
103
+ static #targetedMessage(tok) {
104
+ if (tok?.type !== plurnkParser.COMBINED_L_MARKER)
105
+ return null;
106
+ return COMBINED_ANCHOR_LINE_DIAGNOSTIC;
107
+ }
95
108
  reportError(recognizer, e) {
96
109
  if (this.inErrorRecoveryMode(recognizer))
97
110
  return;
98
111
  this.beginErrorCondition(recognizer);
112
+ const targeted = PlurnkErrorStrategy.#targetedMessage(e.offendingToken);
113
+ if (targeted !== null) {
114
+ recognizer.notifyErrorListeners(targeted, e.offendingToken, e);
115
+ return;
116
+ }
99
117
  const got = PlurnkErrorStrategy.#describeToken(e.offendingToken);
100
118
  const expected = PlurnkErrorStrategy.#describeExpected(e);
101
119
  let msg;
@@ -129,6 +147,11 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
129
147
  return;
130
148
  this.beginErrorCondition(recognizer);
131
149
  const tok = recognizer.getCurrentToken();
150
+ const targeted = PlurnkErrorStrategy.#targetedMessage(tok);
151
+ if (targeted !== null) {
152
+ recognizer.notifyErrorListeners(targeted, tok, null);
153
+ return;
154
+ }
132
155
  const got = PlurnkErrorStrategy.#describeToken(tok);
133
156
  const expectedTokens = this.getExpectedTokens(recognizer);
134
157
  const expectedNames = [...new Set(expectedTokens
@@ -1 +1 @@
1
- {"version":3,"file":"PlurnkErrorStrategy.js","sourceRoot":"","sources":["../../src/PlurnkErrorStrategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlurnkErrorStrategy.js","sourceRoot":"","sources":["../../src/PlurnkErrorStrategy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlurnkParser.d.ts","sourceRoot":"","sources":["../../src/PlurnkParser.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAa,WAAW,EAA6B,MAAM,YAAY,CAAC;AAsBrG,MAAM,CAAC,OAAO,OAAO,YAAY;;IAG7B,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAavC;IAgJD,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAEjD;IAMD,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAE1C;IAKD,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,eAAe,CAAC,CAM9D;CAgOJ"}
1
+ {"version":3,"file":"PlurnkParser.d.ts","sourceRoot":"","sources":["../../src/PlurnkParser.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAa,WAAW,EAA6B,MAAM,YAAY,CAAC;AAsBrG,MAAM,CAAC,OAAO,OAAO,YAAY;;IAG7B,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAUvC;IA6FD,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAEjD;IAMD,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAE1C;IAKD,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,eAAe,CAAC,CAM9D;CA2JJ"}
@@ -5,7 +5,7 @@ import AstBuilder from "./AstBuilder.js";
5
5
  import PlurnkParseError from "./PlurnkParseError.js";
6
6
  import PlurnkErrorStrategy from "./PlurnkErrorStrategy.js";
7
7
  import RecordingListener from "./RecordingListener.js";
8
- import { PLURNK_OPS } from "./types.js";
8
+ import TagSignal from "./TagSignal.js";
9
9
  // Statement-bearing contexts the extraction builds into items. `statement` (statementSeq) and
10
10
  // `midStatement` (mid-turn ops) each wrap one op; PLAN and the terminal SEND attach as direct
11
11
  // `planStatement`/`sendStatement` children of a turn; `clientStatement` wraps one op in the
@@ -17,23 +17,20 @@ const STATEMENT_RULES = new Set([
17
17
  plurnkParser.RULE_sendStatement,
18
18
  plurnkParser.RULE_clientStatement,
19
19
  ]);
20
- // Container rules whose children hold the statements - extraction recurses through these.
21
- // `turnStatement` is the `<<TURN…:…:TURN` wrapper (log); `turnContent` is the sandwich inside
22
- // it (and document's single turn). Recursing both flattens a wrapped log to its ops in order.
20
+ // Container rules whose children hold one turn's statements. `turnContent`
21
+ // carries tolerated preamble text; `turn` is also the direct child of a fenced
22
+ // document. parseLog contains multiple turnContent siblings, flattened in order.
23
23
  const CONTAINER_RULES = new Set([
24
24
  plurnkParser.RULE_turnContent,
25
- plurnkParser.RULE_turnStatement,
25
+ plurnkParser.RULE_turn,
26
26
  ]);
27
27
  export default class PlurnkParser {
28
28
  // Parse one PLAN-anchored model turn ending in a disposition SEND. Tolerated
29
29
  // interstatement TEXT remains an ordered item without language semantics. {§turn-shape}
30
30
  static parse(input) {
31
31
  const result = PlurnkParser.#run(input, (parser) => parser.document());
32
- // Value-adds layered on ANTLR's own diagnostics (we own syntax errors end to end):
33
- // near-miss op advisories on swallowed prose, then turn-shape imperatives while the
34
- // document boundary remains trustworthy. Neither changes what parsed.
35
- PlurnkParser.#flagNearMissOps(result.items);
36
- PlurnkParser.#flagOpsInPlanBody(result.items);
32
+ // Value-adds layered on ANTLR's diagnostics while the document boundary
33
+ // remains trustworthy. Neither changes what parsed.
37
34
  PlurnkParser.#flagMisplacedTarget(result.items);
38
35
  if (result.unparsedTail === undefined) {
39
36
  PlurnkParser.#imperativeTurnShape(result.items);
@@ -43,53 +40,6 @@ export default class PlurnkParser {
43
40
  }
44
41
  // Terminal disposition alphabet. {§waitpid-dispositions} {§wait-obligation-matrix}
45
42
  static #DISPOSITIONS = new Set([102, 200, 202, 300, 499]);
46
- // Curated op-name confusions (semantic + dead-verb), NOT edit-distance - a full
47
- // `<<Word…:Word` heredoc carrying one of these is unambiguously an intended op, so the
48
- // false-positive rate is ~0. Bodies are never scanned (only DEFAULT-mode text items), so
49
- // the model's legitimate suffixed/embedded code is immune by construction.
50
- static #OP_CONFUSABLES = {
51
- CLOSE: "`<<FOLD`", HIDE: "`<<FOLD`", COLLAPSE: "`<<FOLD`",
52
- SHOW: "`<<OPEN`", EXPAND: "`<<OPEN`",
53
- DELETE: "`<<KILL`", REMOVE: "`<<KILL`", DROP: "`<<KILL`",
54
- GET: "`<<READ`", FETCH: "`<<READ`", CAT: "`<<READ`",
55
- WRITE: "`<<EDIT`", CREATE: "`<<EDIT`", UPDATE: "`<<EDIT`", SET: "`<<EDIT`",
56
- LIST: "`<<FIND`", SEARCH: "`<<FIND`", GREP: "`<<FIND`", QUERY: "`<<FIND`",
57
- RUN: "`<<EXEC`", SHELL: "`<<EXEC`",
58
- SPAWN: "`<<WORK(worker://name)` to spawn a worker", DELEGATE: "`<<WORK(worker://name)` to spawn a worker",
59
- };
60
- // Surface near-miss ops that the forgiving parser swallowed as prose: a `<<Word…:Word`
61
- // heredoc whose keyword is a known confusion (`<<CLOSE`, `<<DELETE`, …). Emits a WARNING
62
- // (never an error - the input parsed), so a silent swallow becomes a steer toward canon.
63
- static #flagNearMissOps(items) {
64
- const additions = [];
65
- items.forEach((item, idx) => {
66
- if (item.kind !== "text")
67
- return;
68
- const text = item.text;
69
- const opener = /<<([A-Za-z]+)/g;
70
- let m;
71
- while ((m = opener.exec(text)) !== null) {
72
- const suggestion = PlurnkParser.#OP_CONFUSABLES[m[1].toUpperCase()];
73
- if (!suggestion)
74
- continue;
75
- // Op-shape gate: require a matching close `:Word` in the same run, so a bare
76
- // prose mention without a heredoc close is never flagged.
77
- if (!new RegExp(":" + m[1] + "\\b").test(text))
78
- continue;
79
- const position = PlurnkParser.#advancePosition(item.position, text.slice(0, m.index));
80
- additions.push({
81
- at: idx,
82
- item: {
83
- kind: "error",
84
- error: new PlurnkParseError(position.line, position.column, "parser", `\`<<${m[1]}\` is not a Plurnk operation, so it was read as text; did you mean ${suggestion}?`, "warning"),
85
- },
86
- });
87
- }
88
- });
89
- // Insert each advisory right after its text item (reverse order keeps indices valid).
90
- for (const { at, item } of additions.reverse())
91
- items.splice(at + 1, 0, item);
92
- }
93
43
  // Replace ANTLR's generic structure errors with the turn-shape imperative when the
94
44
  // PLAN-anchored sandwich is broken. PLAN-first takes precedence: with no PLAN we cannot
95
45
  // judge the terminal SEND (it never reached statement position), so we only direct the
@@ -118,8 +68,8 @@ export default class PlurnkParser {
118
68
  if (hasSpecificError)
119
69
  return;
120
70
  const fix = !hasPlan
121
- ? "a turn must begin with `<<PLAN:…:PLAN` (the required first operation)"
122
- : "a turn must end with a terminal `<<SEND[code]:…:SEND`";
71
+ ? "a turn must begin with `# PLAN0`"
72
+ : "a turn must end with a terminal `## SEND0 [code]` section";
123
73
  items.push({ kind: "error", error: new PlurnkParseError(anchor.line, anchor.column, "parser", fix) });
124
74
  }
125
75
  // Lift the mid-turn-termination error. A disposition-coded SEND
@@ -201,7 +151,7 @@ export default class PlurnkParser {
201
151
  parser.errorHandler = new PlurnkErrorStrategy();
202
152
  const tree = parseFn(parser);
203
153
  PlurnkParser.#dedupeLexerCascade(errors);
204
- const unparsedTail = PlurnkParser.#unparsedTail(lexer, input);
154
+ const unparsedTail = PlurnkParser.#unparsedTail(lexer);
205
155
  const items = [];
206
156
  const consumedErrors = new Set();
207
157
  PlurnkParser.#collect(tree, errors, consumedErrors, items, buildFn, unparsedTail?.from);
@@ -216,51 +166,25 @@ export default class PlurnkParser {
216
166
  // Determine the public trust boundary before visiting recovered contexts. The parser may
217
167
  // synthesize tree nodes after an unfinished lexer mode, but those nodes have no public AST
218
168
  // meaning and can violate AstBuilder's complete-statement precondition. {§unparsed-tail-boundary}
219
- static #unparsedTail(lexer, input) {
220
- if (lexer.mode === 0)
169
+ static #unparsedTail(lexer) {
170
+ // EOF concludes a section body and may directly conclude a bodyless
171
+ // heading. Only a partially open modifier destroys the later boundary.
172
+ const modeName = lexer.modeNames[lexer.mode] ?? "";
173
+ if (lexer.mode === 0 || modeName === "BODY" || modeName === "SLOTS")
221
174
  return undefined;
222
175
  const openTag = lexer.getOpenTag();
223
176
  const from = { line: lexer.getOpenTagLine(), column: lexer.getOpenTagColumn() };
224
- const modeName = lexer.modeNames[lexer.mode] ?? "";
225
- const reason = modeName === "BODY"
226
- ? `body of \`<<${openTag}\` opened at line ${from.line} but never closed - add \`:${openTag}\` to terminate${PlurnkParser.#inventedCloser(input, lexer.getBodyStart(), openTag)}`
227
- : modeName === "SIGNAL_TAGS" || modeName === "SIGNAL_INT" || modeName === "SIGNAL_IDENT"
228
- ? `signal slot of \`<<${openTag}\` opened at line ${from.line} but never closed - add \`]\` to terminate the signal`
229
- : modeName === "TARGET"
230
- ? `target slot of \`<<${openTag}\` opened at line ${from.line} but never closed - add \`)\` to terminate the target`
231
- : `statement \`<<${openTag}\` opened at line ${from.line} but never reached its close tag - add \`:${openTag}\` to terminate`;
177
+ const heading = lexer.getOpenHeading() || `## ${openTag}`;
178
+ const reason = modeName === "SIGNAL_TAGS" || modeName === "SIGNAL_INT" || modeName === "SIGNAL_IDENT"
179
+ ? `signal slot of \`${heading}\` opened at line ${from.line} but never closed - add \`]\``
180
+ : `target slot of \`${heading}\` opened at line ${from.line} but never closed - add \`)\``;
232
181
  return { from, reason };
233
182
  }
234
- // Warn when an unsuffixed PLAN body contains op-shaped text; a suffix deliberately
235
- // invokes the universal quoting contract. {§plan-body-op-advisory}
236
- static #flagOpsInPlanBody(items) {
237
- const additions = [];
238
- const opener = new RegExp(`<<(${PLURNK_OPS.join("|")})\\b`);
239
- items.forEach((item, idx) => {
240
- if (item.kind !== "statement" || item.statement.op !== "PLAN")
241
- return;
242
- if (item.statement.suffix.length > 0)
243
- return;
244
- const body = item.statement.body ?? "";
245
- const m = opener.exec(body);
246
- if (!m)
247
- return;
248
- additions.push({
249
- at: idx,
250
- item: {
251
- kind: "error",
252
- error: new PlurnkParseError(item.statement.position.line, item.statement.position.column, "parser", `PLAN body contains op-shaped text (\`<<${m[1]}\`) - ops belong after the plan closes; did you omit \`:PLAN\`?`, "warning"),
253
- },
254
- });
255
- });
256
- for (const { at, item } of additions.reverse())
257
- items.splice(at + 1, 0, item);
258
- }
259
183
  // Mutating ops that require a `(target)` and carry a `[tags]` string-array signal. A null target
260
184
  // on one of these is unambiguously wrong - there is nothing to edit/copy/move.
261
185
  static #MUTATING_OPS = new Set(["EDIT", "COPY", "MOVE"]);
262
186
  // A null mutation target plus a path-shaped tag is the narrow advisory gate; an
263
- // ordinary tags-only omission is not redirected. {§misplaced-target-advisory}
187
+ // ordinary additive-tag use is not redirected. {§misplaced-target-advisory}
264
188
  static #flagMisplacedTarget(items) {
265
189
  const pathShaped = (s) => s.includes("/") || /[^/]\.[a-zA-Z][a-zA-Z0-9]*$/.test(s);
266
190
  const additions = [];
@@ -272,61 +196,20 @@ export default class PlurnkParser {
272
196
  return;
273
197
  if (!Array.isArray(st.signal))
274
198
  return;
275
- const path = st.signal.find(pathShaped);
199
+ const path = TagSignal.applied(st.signal).add.find(pathShaped);
276
200
  if (!path)
277
201
  return;
278
202
  additions.push({
279
203
  at: idx,
280
204
  item: {
281
205
  kind: "error",
282
- error: new PlurnkParseError(st.position.line, st.position.column, "parser", `\`<<${st.op}\` has no \`(target)\` - that path sits in the \`[…]\` tag slot; a target goes in \`(…)\`. Try \`${st.op}(${path}):…\``, "warning"),
206
+ error: new PlurnkParseError(st.position.line, st.position.column, "parser", `\`## ${st.op}${st.suffix}\` has no \`(target)\` - that path sits in the \`[…]\` tag slot; a target goes in \`(…)\`. Try \`## ${st.op}${st.suffix || "0"} (${path})\``, "warning"),
283
207
  },
284
208
  });
285
209
  });
286
210
  for (const { at, item } of additions.reverse())
287
211
  items.splice(at + 1, 0, item);
288
212
  }
289
- // Name an ALLCAPS close lookalike only inside a never-closed body; healthy
290
- // bodies are never scanned by this path. {§invented-closer-advisory}
291
- static #inventedCloser(input, bodyStart, openTag) {
292
- const offset = PlurnkParser.#offsetAtPosition(input, bodyStart);
293
- const body = input.slice(offset);
294
- const m = /:([A-Z][A-Z0-9_]{2,})\b/.exec(body);
295
- if (!m || m[1] === openTag.toUpperCase())
296
- return "";
297
- return ` (found \`:${m[1]}\`, which is body text - the closer echoes the op's name)`;
298
- }
299
- // JavaScript offsets count UTF-16 code units; parser source points count Unicode code
300
- // points and advance only at LF. Keep that translation inside the parser. {§parser-position}
301
- static #advancePosition(from, text) {
302
- let { line, column } = from;
303
- for (const character of text) {
304
- if (character === "\n") {
305
- line++;
306
- column = 0;
307
- }
308
- else {
309
- column++;
310
- }
311
- }
312
- return { line, column };
313
- }
314
- static #offsetAtPosition(input, target) {
315
- if (target.line < 1 || target.column < 0) {
316
- throw new RangeError(`cannot resolve degraded parser position ${target.line}:${target.column}`);
317
- }
318
- let position = { line: 1, column: 0 };
319
- let offset = 0;
320
- for (const character of input) {
321
- if (position.line === target.line && position.column === target.column)
322
- return offset;
323
- position = PlurnkParser.#advancePosition(position, character);
324
- offset += character.length;
325
- }
326
- if (position.line === target.line && position.column === target.column)
327
- return offset;
328
- throw new RangeError(`parser position ${target.line}:${target.column} is outside its source`);
329
- }
330
213
  // Walk a parse tree, appending statement/error/text items in source order. Statement rules
331
214
  // are leaves (built directly); container rules (turnContent) are recursed into; TEXT tokens
332
215
  // surface as text items. So `document` (one turnContent) and `log` (turnContent+) both
@@ -1 +1 @@
1
- {"version":3,"file":"PlurnkParser.js","sourceRoot":"","sources":["../../src/PlurnkParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlurnkParser.js","sourceRoot":"","sources":["../../src/PlurnkParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare class InvalidTagSignalError extends TypeError {
2
+ }
3
+ export type AppliedTagSignal = Readonly<{
4
+ add: readonly string[];
5
+ }>;
6
+ export type CurationTagSignal = Readonly<{
7
+ filter: readonly string[];
8
+ add: readonly string[];
9
+ remove: readonly string[];
10
+ }>;
11
+ export default class TagSignal {
12
+ static applied(terms: readonly string[] | null): AppliedTagSignal;
13
+ static curation(terms: readonly string[] | null): CurationTagSignal;
14
+ }
15
+ //# sourceMappingURL=TagSignal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagSignal.d.ts","sourceRoot":"","sources":["../../src/TagSignal.ts"],"names":[],"mappings":"AAAA,qBAAa,qBAAsB,SAAQ,SAAS;CAAG;AAEvD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACpC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACrC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC,CAAC;AAiBH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC1B,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,gBAAgB,CAUhE;IAED,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,iBAAiB,CAmBlE;CACJ"}
@@ -0,0 +1,48 @@
1
+ export class InvalidTagSignalError extends TypeError {
2
+ }
3
+ const canonicalName = (term, prefix) => {
4
+ const name = prefix === "" ? term : term.slice(1);
5
+ if (name.length === 0
6
+ || name.startsWith("+")
7
+ || name.startsWith("-")
8
+ || /[\[\],\s\p{Cc}]/u.test(name)) {
9
+ throw new InvalidTagSignalError(`invalid log tag term '${term}'`);
10
+ }
11
+ return name;
12
+ };
13
+ const unique = (values) => [...new Set(values)];
14
+ export default class TagSignal {
15
+ static applied(terms) {
16
+ const add = (terms ?? []).map((term) => {
17
+ if (term.startsWith("-")) {
18
+ throw new InvalidTagSignalError(`classifying operations cannot remove tags; '${term}' is a removal`);
19
+ }
20
+ return canonicalName(term, term.startsWith("+") ? "+" : "");
21
+ });
22
+ return { add: unique(add) };
23
+ }
24
+ static curation(terms) {
25
+ const filter = [];
26
+ const add = [];
27
+ const remove = [];
28
+ for (const term of terms ?? []) {
29
+ if (term.startsWith("+"))
30
+ add.push(canonicalName(term, "+"));
31
+ else if (term.startsWith("-"))
32
+ remove.push(canonicalName(term, "-"));
33
+ else
34
+ filter.push(canonicalName(term, ""));
35
+ }
36
+ const result = {
37
+ filter: unique(filter),
38
+ add: unique(add),
39
+ remove: unique(remove),
40
+ };
41
+ const conflict = result.add.find((tag) => result.remove.includes(tag));
42
+ if (conflict !== undefined) {
43
+ throw new InvalidTagSignalError(`a curation signal cannot both add and remove tag '${conflict}'`);
44
+ }
45
+ return result;
46
+ }
47
+ }
48
+ //# sourceMappingURL=TagSignal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagSignal.js","sourceRoot":"","sources":["../../src/TagSignal.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,qBAAsB,SAAQ,SAAS;CAAG;AAYvD,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,MAAsB,EAAU,EAAE;IACnE,MAAM,IAAI,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClD,IACI,IAAI,CAAC,MAAM,KAAK,CAAC;WACd,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;WACpB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;WACpB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAClC,CAAC;QACC,MAAM,IAAI,qBAAqB,CAAC,yBAAyB,IAAI,GAAG,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,MAAyB,EAAY,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAE7E,MAAM,CAAC,OAAO,OAAO,SAAS;IAC1B,MAAM,CAAC,OAAO,CAAC,KAA+B;QAC1C,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACnC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,qBAAqB,CAC3B,+CAA+C,IAAI,gBAAgB,CACtE,CAAC;YACN,CAAC;YACD,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAA+B;QAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;iBACxD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;;gBAChE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,MAAM,GAAG;YACX,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YACtB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;SACzB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACvE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,qBAAqB,CAAC,qDAAqD,QAAQ,GAAG,CAAC,CAAC;QACtG,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
@@ -1,5 +1,5 @@
1
1
  import { type OutputUnit } from "@cfworker/json-schema";
2
- import type { ClientDisplayCapabilities, EntryReadResult, LoopFlags, Notice, OperationResult, ProblemDetails, ProposalProjection, TextRegion } from "./types.generated.ts";
2
+ import type { ClientDisplayCapabilities, EntryReadResult, LoopFlags, Notice, OperationResult, ProblemDetails, ProposalProjection, RangeExtent, TextRegion } from "./types.generated.ts";
3
3
  export type ValidationResult = {
4
4
  valid: boolean;
5
5
  errors: OutputUnit[];
@@ -14,6 +14,8 @@ export declare class InvalidEntryReadResultError extends TypeError {
14
14
  }
15
15
  export declare class InvalidTextRegionError extends TypeError {
16
16
  }
17
+ export declare class InvalidRangeExtentError extends TypeError {
18
+ }
17
19
  export declare class InvalidLoopFlagsError extends TypeError {
18
20
  }
19
21
  export declare class InvalidProposalProjectionError extends TypeError {
@@ -24,6 +26,7 @@ export default class Validator {
24
26
  #private;
25
27
  static validatePosition(value: unknown): ValidationResult;
26
28
  static validateLineMarker(value: unknown): ValidationResult;
29
+ static validateTextLineMarker(value: unknown): ValidationResult;
27
30
  static validateParsedPath(value: unknown): ValidationResult;
28
31
  static validateMatcherBody(value: unknown): ValidationResult;
29
32
  static validateSendBody(value: unknown): ValidationResult;
@@ -34,6 +37,7 @@ export default class Validator {
34
37
  static validateOperationResult(value: unknown): ValidationResult;
35
38
  static validateEntryReadResult(value: unknown): ValidationResult;
36
39
  static validateTextRegion(value: unknown): ValidationResult;
40
+ static validateRangeExtent(value: unknown): ValidationResult;
37
41
  static validateLoopFlags(value: unknown): ValidationResult;
38
42
  static validateProposalProjection(value: unknown): ValidationResult;
39
43
  static validateClientDisplayCapabilities(value: unknown): ValidationResult;
@@ -42,6 +46,7 @@ export default class Validator {
42
46
  static assertOperationResult<T extends OperationResult>(value: T): T;
43
47
  static assertEntryReadResult<T extends EntryReadResult>(value: T): T;
44
48
  static assertTextRegion<T extends TextRegion>(value: T): T;
49
+ static assertRangeExtent<T extends RangeExtent>(value: T): T;
45
50
  static assertLoopFlags<T extends LoopFlags>(value: T): T;
46
51
  static assertProposalProjection<T extends ProposalProjection>(value: T): T;
47
52
  static assertClientDisplayCapabilities<T extends ClientDisplayCapabilities>(value: T): T;
@@ -1 +1 @@
1
- {"version":3,"file":"Validator.d.ts","sourceRoot":"","sources":["../../src/Validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,UAAU,EAAe,MAAM,uBAAuB,CAAC;AAkB/F,OAAO,KAAK,EAAE,yBAAyB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE3K,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC;AAExE,qBAAa,kBAAmB,SAAQ,SAAS;CAAG;AACpD,qBAAa,0BAA2B,SAAQ,SAAS;CAAG;AAC5D,qBAAa,2BAA4B,SAAQ,SAAS;CAAG;AAC7D,qBAAa,2BAA4B,SAAQ,SAAS;CAAG;AAC7D,qBAAa,sBAAuB,SAAQ,SAAS;CAAG;AACxD,qBAAa,qBAAsB,SAAQ,SAAS;CAAG;AACvD,qBAAa,8BAA+B,SAAQ,SAAS;CAAG;AAChE,qBAAa,qCAAsC,SAAQ,SAAS;CAAG;AAEvE,MAAM,CAAC,OAAO,OAAO,SAAS;;IAsD1B,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAExD;IAED,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAE1D;IAED,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAE1D;IAED,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAE3D;IAED,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAExD;IAED,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAE/D;IAED,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAE/D;IAED,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAEtD;IAED,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAE9D;IAED,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAE/D;IAED,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAoB/D;IAED,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAE1D;IAED,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAEzD;IAED,MAAM,CAAC,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAElE;IAED,MAAM,CAAC,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAEzE;IAED,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAIjD;IAED,MAAM,CAAC,oBAAoB,CAAC,CAAC,SAAS,cAAc,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAMjE;IAED,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAWnE;IAED,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAanE;IAED,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAYzD;IAED,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAMvD;IAED,MAAM,CAAC,wBAAwB,CAAC,CAAC,SAAS,kBAAkB,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQzE;IAED,MAAM,CAAC,+BAA+B,CAAC,CAAC,SAAS,yBAAyB,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQvF;CAMJ"}
1
+ {"version":3,"file":"Validator.d.ts","sourceRoot":"","sources":["../../src/Validator.ts"],"names":[],"mappings":"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"}