@plurnk/plurnk-parser 1.18.0 → 1.19.1

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 (37) hide show
  1. package/README.md +1 -2
  2. package/SPEC.md +2 -10
  3. package/dist/AstBuilder.d.ts +5 -1
  4. package/dist/AstBuilder.d.ts.map +1 -1
  5. package/dist/AstBuilder.js +74 -44
  6. package/dist/AstBuilder.js.map +1 -1
  7. package/dist/HeadingTokens.d.ts +6 -0
  8. package/dist/HeadingTokens.d.ts.map +1 -0
  9. package/dist/HeadingTokens.js +60 -0
  10. package/dist/HeadingTokens.js.map +1 -0
  11. package/dist/NativeToolCalls.d.ts +6 -0
  12. package/dist/NativeToolCalls.d.ts.map +1 -0
  13. package/dist/NativeToolCalls.js +153 -0
  14. package/dist/NativeToolCalls.js.map +1 -0
  15. package/dist/PlurnkErrorStrategy.d.ts.map +1 -1
  16. package/dist/PlurnkErrorStrategy.js +10 -33
  17. package/dist/PlurnkErrorStrategy.js.map +1 -1
  18. package/dist/PlurnkParser.d.ts +4 -2
  19. package/dist/PlurnkParser.d.ts.map +1 -1
  20. package/dist/PlurnkParser.js +132 -29
  21. package/dist/PlurnkParser.js.map +1 -1
  22. package/dist/RecordingListener.d.ts.map +1 -1
  23. package/dist/RecordingListener.js +5 -23
  24. package/dist/RecordingListener.js.map +1 -1
  25. package/dist/generated/plurnkLexer.d.ts +70 -34
  26. package/dist/generated/plurnkLexer.d.ts.map +1 -1
  27. package/dist/generated/plurnkLexer.js +817 -437
  28. package/dist/generated/plurnkLexer.js.map +1 -1
  29. package/dist/generated/plurnkParser.d.ts +81 -84
  30. package/dist/generated/plurnkParser.d.ts.map +1 -1
  31. package/dist/generated/plurnkParser.js +621 -672
  32. package/dist/generated/plurnkParser.js.map +1 -1
  33. package/dist/generated/plurnkParserVisitor.d.ts +7 -14
  34. package/dist/generated/plurnkParserVisitor.d.ts.map +1 -1
  35. package/dist/generated/plurnkParserVisitor.js +6 -12
  36. package/dist/generated/plurnkParserVisitor.js.map +1 -1
  37. package/package.json +3 -3
package/README.md CHANGED
@@ -35,9 +35,8 @@ The parser entry points deliberately accept different document tiers:
35
35
 
36
36
  | Entry point | Accepted input |
37
37
  |--------------------------------|-------------------------------------------------------|
38
- | `PlurnkParser.parse` | One operation-bearing model turn; omitted TASK continues silently |
38
+ | `PlurnkParser.parse` | One operation-bearing model turn; omitted lifecycle declaration continues silently |
39
39
  | `PlurnkParser.parseStatements` | A sequence of protocol statements |
40
- | `PlurnkParser.parseLog` | Consecutive disposition-ended turns |
41
40
  | `PlurnkParser.parseClient` | Protocol statements plus the client-only LOOK |
42
41
  | `parsePath` | One path or URI using parser-equivalent decomposition |
43
42
 
package/SPEC.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @plurnk/plurnk-parser — SPEC
2
2
 
3
- ## §parser-package 1. What this package is
3
+ ## 1. What this package is
4
4
 
5
5
  `@plurnk/plurnk-parser` implements the PLURNK language that
6
6
  `@plurnk/plurnk-contracts` specifies. It owns the ANTLR grammars
@@ -8,17 +8,9 @@
8
8
  `AstBuilder`, the error strategy and the recording listener, the `PlurnkParser`
9
9
  tier entry points, `parsePath`, and the `plurnk-parser` command line. It depends
10
10
  on contracts for the AST and wire types, the schemas, `PathSyntax`,
11
- `PlurnkParseError`, `PlanValue`, `TurnDisposition`, and the constants. Contracts
11
+ `PlurnkParseError`, `TurnDisposition`, and the constants. Contracts
12
12
  depends on nothing here.
13
13
 
14
- §parser-boundary **The contract lives in contracts; the implementation lives here.**
15
- Accepted syntax, document tiers, recovery, whitespace, framing, and diagnostics
16
- are specified by `plurnk-contracts/SPEC.md` ({§contract-layers},
17
- {§path-syntax}, {§parser-architecture}, {§turn-shape}, {§tier-entrypoints}) and
18
- taught by `plurnk-contracts/plurnk.md`. This package's tests are the evidence for
19
- those anchors and cite them. Nothing that only validates, presents, or transports
20
- the wire needs this package.
21
-
22
14
  §parser-consumers **Who imports the parser.** The service's execution path (core,
23
15
  agui, execs) imports `PlurnkParser` and `parsePath` from this package.
24
16
  `@plurnk/plurnk-contracts` exports neither and declares no parser dependency, so a
@@ -7,7 +7,11 @@ declare module "xpath" {
7
7
  }
8
8
  export default class AstBuilder {
9
9
  #private;
10
- static takeAdvisories(): PlurnkParseError[];
10
+ static collectAdvisories<T>(build: () => T): {
11
+ value: T;
12
+ advisories: PlurnkParseError[];
13
+ };
14
+ static metadataOptions(metadata: readonly string[] | null | undefined): Record<string, unknown> | null;
11
15
  static build(ctx: StatementContext | MidStatementContext | DispositionStatementContext | SendStatementContext): PlurnkStatement;
12
16
  static buildClient(ctx: ClientStatementContext): ClientStatement;
13
17
  static executorSpellings: ReadonlyMap<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"AstBuilder.d.ts","sourceRoot":"","sources":["../src/AstBuilder.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAER,eAAe,EAcf,UAAU,EACV,eAAe,EACf,QAAQ,EAOX,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAER,sBAAsB,EActB,gBAAgB,EAChB,mBAAmB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAIH,2BAA2B,EAC3B,oBAAoB,EAGvB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAyB,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAGpG,OAAO,QAAQ,OAAO,CAAC;IACnB,SAAgB,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;CACtD;AAQD,MAAM,CAAC,OAAO,OAAO,UAAU;;IAK3B,MAAM,CAAC,cAAc,IAAI,gBAAgB,EAAE,CAI1C;IAwJD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,2BAA2B,GAAG,oBAAoB,GAAG,eAAe,CAmB9H;IA8BD,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,sBAAsB,GAAG,eAAe,CAI/D;IA4ID,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IA+RlE;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,QAAiC,GAAG,UAAU,GAAG,IAAI,CAmCvF;CAiLJ"}
1
+ {"version":3,"file":"AstBuilder.d.ts","sourceRoot":"","sources":["../src/AstBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAER,eAAe,EAef,UAAU,EACV,eAAe,EACf,QAAQ,EAOX,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAER,sBAAsB,EAetB,gBAAgB,EAChB,mBAAmB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAIH,2BAA2B,EAC3B,oBAAoB,EAGvB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAc,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAGzF,OAAO,QAAQ,OAAO,CAAC;IACnB,SAAgB,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;CACtD;AAQD,MAAM,CAAC,OAAO,OAAO,UAAU;;IAI3B,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,UAAU,EAAE,gBAAgB,EAAE,CAAA;KAAE,CASxF;IAqFD,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAUrG;IA2DD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,2BAA2B,GAAG,oBAAoB,GAAG,eAAe,CAoB9H;IA8BD,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,sBAAsB,GAAG,eAAe,CAI/D;IA2ID,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAmTlE;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,QAAiC,GAAG,UAAU,GAAG,IAAI,CAmCvF;CAmLJ"}
@@ -1,18 +1,22 @@
1
- /// <reference path="./json-p3-esm.d.ts" />
2
1
  import { ParserRuleContext, TerminalNode } from "antlr4ng";
3
2
  import * as xpath from "xpath";
4
- import { JSONPathEnvironment } from "json-p3/dist/json-p3.esm.js";
3
+ import { JSONPathEnvironment } from "json-p3";
5
4
  import { BodyContext, LineMarkerContext, MetadataContext, DispositionStatementContext, SendStatementContext, TargetContext, } from "./generated/plurnkParser.js";
6
5
  import { plurnkLexer } from "./generated/plurnkLexer.js";
7
- import { PathSyntax, PlanValue, PlurnkParseError, TurnDisposition } from "@plurnk/plurnk-contracts";
6
+ import { PathSyntax, PlurnkParseError, TurnDisposition } from "@plurnk/plurnk-contracts";
8
7
  export default class AstBuilder {
9
- // {§misplaced-aside-advisory} advisories raised while building one statement; the
10
- // parser drains them right after the statement so the model sees WHAT it did on the first try.
8
+ // {§error-shape}: advisories belong only to the statement that was built successfully.
11
9
  static #advisories = [];
12
- static takeAdvisories() {
13
- const taken = AstBuilder.#advisories;
10
+ static collectAdvisories(build) {
11
+ const previous = AstBuilder.#advisories;
14
12
  AstBuilder.#advisories = [];
15
- return taken;
13
+ try {
14
+ const value = build();
15
+ return { value, advisories: AstBuilder.#advisories };
16
+ }
17
+ finally {
18
+ AstBuilder.#advisories = previous;
19
+ }
16
20
  }
17
21
  // A body that is solely an HTML comment can never be a matcher. Preserve it
18
22
  // as the operation aside and report only that deterministic normalization.
@@ -77,6 +81,10 @@ export default class AstBuilder {
77
81
  }
78
82
  if (text === "")
79
83
  return null;
84
+ // {§heading-slot-order} — a sigil pattern quoted in single backticks is that pattern (#758).
85
+ const ticked = /^`([^`]+)`$/u.exec(text);
86
+ if (ticked !== null && AstBuilder.#SIGIL.test(ticked[1]))
87
+ text = ticked[1];
80
88
  if (AstBuilder.#SIGIL.test(text))
81
89
  return { text, aside, scope, metadata };
82
90
  if (!inline || (op !== "FIND" && op !== "READ" && op !== "KILL"))
@@ -89,13 +97,24 @@ export default class AstBuilder {
89
97
  AstBuilder.#advisories.push(new PlurnkParseError(position.line, position.column, "parser", message, "warning"));
90
98
  }
91
99
  static #isJsonArrayOfObjects(inner) {
100
+ return AstBuilder.metadataOptions([inner]) !== null;
101
+ }
102
+ // {§matcher-option} — shared by admission and rendering; invalid blocks remain owner input.
103
+ static metadataOptions(metadata) {
104
+ if (metadata?.length !== 1)
105
+ return null;
106
+ let parsed;
92
107
  try {
93
- const parsed = JSON.parse(`[${inner}]`);
94
- return Array.isArray(parsed) && parsed.every((element) => typeof element === "object" && element !== null && !Array.isArray(element));
108
+ parsed = JSON.parse(`[${metadata[0]}]`);
95
109
  }
96
- catch {
97
- return false;
110
+ catch (cause) {
111
+ if (!(cause instanceof SyntaxError))
112
+ throw cause;
113
+ return null;
98
114
  }
115
+ if (!Array.isArray(parsed) || parsed.some((element) => typeof element !== "object" || element === null || Array.isArray(element)))
116
+ return null;
117
+ return Object.assign({}, ...parsed);
99
118
  }
100
119
  static #SIGIL = /^(\/|\$|~|&|\^)/u;
101
120
  // The scope shapes the lexer admits, matched at the right end of the heading text.
@@ -116,7 +135,8 @@ export default class AstBuilder {
116
135
  return { inline: text.slice(0, eol), below: below === "" ? null : below };
117
136
  }
118
137
  static #liftMatcher(op, metadata, position, raw = null, inline = false, carriedScope = false) {
119
- if (metadata === null || metadata.length !== 1) {
138
+ const options = AstBuilder.metadataOptions(metadata);
139
+ if (options === null || !Object.hasOwn(options, "pattern")) {
120
140
  const bare = AstBuilder.#bareMatcher(raw, op, inline, position, { scope: carriedScope, metadata: metadata !== null });
121
141
  return bare === null
122
142
  ? { matcher: null, metadata, aside: null, scope: null }
@@ -127,22 +147,6 @@ export default class AstBuilder {
127
147
  scope: bare.scope,
128
148
  };
129
149
  }
130
- let parsed;
131
- try {
132
- parsed = JSON.parse(`[${metadata[0]}]`);
133
- }
134
- catch (cause) {
135
- if (!(cause instanceof SyntaxError))
136
- throw cause;
137
- return { matcher: null, metadata, aside: null, scope: null };
138
- }
139
- const elements = parsed;
140
- if (elements.some((element) => typeof element !== "object" || element === null || Array.isArray(element))) {
141
- return { matcher: null, metadata, aside: null, scope: null };
142
- }
143
- const options = Object.assign({}, ...elements);
144
- if (!Object.hasOwn(options, "pattern"))
145
- return { matcher: null, metadata, aside: null, scope: null };
146
150
  const pattern = options.pattern;
147
151
  if (typeof pattern !== "string") {
148
152
  throw new PlurnkParseError(position.line, position.column, "visitor", `${op} "pattern" must be a string matcher, e.g. [{"pattern": "/needle/i"}].`);
@@ -204,6 +208,9 @@ export default class AstBuilder {
204
208
  const kill = ctx.killStatement();
205
209
  if (kill)
206
210
  return AstBuilder.#buildKill(kill);
211
+ const note = ctx.noteStatement();
212
+ if (note)
213
+ return AstBuilder.#buildNote(note);
207
214
  if ("dispositionStatement" in ctx) {
208
215
  const disposition = ctx.dispositionStatement();
209
216
  if (disposition)
@@ -332,24 +339,24 @@ export default class AstBuilder {
332
339
  const op = (ctx.start?.text ?? "").replace(/^`+[0-9]*/, "");
333
340
  if (!TurnDisposition.isOp(op))
334
341
  throw new Error(`Unknown disposition operation: ${op}`);
335
- // {§one-line-turn} an inventory written as a block on the heading line is the body when
336
- // nothing sits beneath the heading, with one advisory naming where it belongs.
337
- const below = AstBuilder.#bodyTextOf(ctx);
338
- const inline = ctx.metadata()?.getText() ?? null;
339
- if (inline !== null && (below === null || below.trim() === "")) {
340
- AstBuilder.#advisories.push(new PlurnkParseError(position.line, position.column, "parser", `${op}'s inventory was read from the heading line; it belongs in the body.`, "warning"));
341
- }
342
- const raw = below !== null && below.trim() !== "" ? below : inline;
342
+ const target = AstBuilder.#targetFromCtx(AstBuilder.#findFirst(ctx, TargetContext), position);
343
343
  return {
344
344
  op,
345
345
  aside: AstBuilder.#asideOf(ctx),
346
- target: null,
346
+ target,
347
347
  metadata: null,
348
- lineMarker: AstBuilder.#lineMarkerFromCtx(ctx.lineMarker()),
349
- body: PlanValue.admit(raw ?? "", (message) => AstBuilder.#advisories.push(new PlurnkParseError(position.line, position.column, "visitor", message, "warning"))),
348
+ // {§send-wait-scope} Scope and metadata do not schedule wakes.
349
+ lineMarker: null,
350
+ body: AstBuilder.#bodyTextOf(ctx),
350
351
  position,
351
352
  };
352
353
  }
354
+ static #buildNote(ctx) {
355
+ return {
356
+ op: "NOTE", aside: AstBuilder.#asideOf(ctx), target: null, metadata: null, lineMarker: null,
357
+ body: AstBuilder.#bodyTextOf(ctx), position: AstBuilder.#positionOf(ctx),
358
+ };
359
+ }
353
360
  // A mid-turn SEND is a message to its recipient path, or to the user when it names none.
354
361
  static #buildSend(ctx) {
355
362
  const position = AstBuilder.#positionOf(ctx);
@@ -359,6 +366,7 @@ export default class AstBuilder {
359
366
  op: "SEND",
360
367
  aside: AstBuilder.#asideOf(ctx),
361
368
  ...slots,
369
+ metadata: AstBuilder.#metadataFromCtx(ctx),
362
370
  body: raw !== null ? AstBuilder.#parseSendBody(raw) : null,
363
371
  position,
364
372
  };
@@ -558,8 +566,13 @@ export default class AstBuilder {
558
566
  return AstBuilder.#parseTextLineMarker(text, AstBuilder.#positionOf(ctx));
559
567
  }
560
568
  static #parseTextLineMarker(text, position) {
561
- if (!text.includes("@"))
569
+ if (!text.includes("@")) {
570
+ // {§anchor-offset} — a bare `+N` counts only from an anchor (#749).
571
+ if (/[<,] ?\+/u.test(text)) {
572
+ throw new PlurnkParseError(position?.line ?? 0, position?.column ?? 0, "visitor", `invalid scope ${JSON.stringify(text)}; use numeric coordinates or \`@hash\` line anchors`);
573
+ }
562
574
  return AstBuilder.#parseLineMarker(text);
575
+ }
563
576
  const marks = text.slice(1, -1).split(/, ?/).map((component) => {
564
577
  // {§anchor-digits} — `@210` is the line number 210 with the anchor's sigil, not a hash.
565
578
  if (/^@[0-9]{1,4}$/u.test(component)) {
@@ -579,6 +592,19 @@ export default class AstBuilder {
579
592
  }
580
593
  return component.startsWith("@") ? component : Number.parseFloat(component);
581
594
  });
595
+ // {§anchor-offset} — a bare `+N` counts from the anchor before it (`<@abcde,+1>`); anywhere
596
+ // else it names no line, so the scope is refused as before (#749).
597
+ const components = text.slice(1, -1).split(/, ?/);
598
+ for (const [index, component] of components.entries()) {
599
+ if (!component.startsWith("+"))
600
+ continue;
601
+ const base = /^(@[0-9A-Za-z]{5})([+-][0-9]+)?$/u.exec(String(marks[index - 1] ?? ""));
602
+ if (base === null) {
603
+ throw new PlurnkParseError(position?.line ?? 0, position?.column ?? 0, "visitor", `invalid scope ${JSON.stringify(text)}; use numeric coordinates or \`@hash\` line anchors`);
604
+ }
605
+ const offset = Number(base[2] ?? 0) + Number(component.slice(1));
606
+ marks[index] = offset === 0 ? base[1] : `${base[1]}${offset > 0 ? "+" : ""}${offset}`;
607
+ }
582
608
  return { marks: marks };
583
609
  }
584
610
  static #positionOf(ctx) {
@@ -705,10 +731,12 @@ export default class AstBuilder {
705
731
  const pathStart = target.indexOf("/", authorityStart);
706
732
  if (pathStart < 0)
707
733
  return { value: target, restore: (pathname) => pathname };
708
- const queryStart = target.indexOf("?", pathStart);
709
- const fragmentStart = target.indexOf("#", pathStart);
734
+ const queryStart = target.indexOf("?", authorityStart);
735
+ const fragmentStart = target.indexOf("#", authorityStart);
710
736
  const endings = [queryStart, fragmentStart].filter((index) => index >= 0);
711
737
  const pathEnd = endings.length === 0 ? target.length : Math.min(...endings);
738
+ if (pathStart >= pathEnd)
739
+ return { value: target, restore: (pathname) => pathname };
712
740
  const rawPath = target.slice(pathStart, pathEnd);
713
741
  if (!/[{}]/u.test(rawPath))
714
742
  return { value: target, restore: (pathname) => pathname };
@@ -730,7 +758,9 @@ export default class AstBuilder {
730
758
  const queryStart = url.href.indexOf("?");
731
759
  if (queryStart === -1)
732
760
  return null;
733
- const fragmentStart = url.href.indexOf("#", queryStart);
761
+ const fragmentStart = url.href.indexOf("#");
762
+ if (fragmentStart !== -1 && fragmentStart < queryStart)
763
+ return null;
734
764
  return url.href.slice(queryStart + 1, fragmentStart === -1 ? undefined : fragmentStart);
735
765
  }
736
766
  // The leading prefix claims its dialect; failed claimed syntax never falls back
@@ -1 +1 @@
1
- {"version":3,"file":"AstBuilder.js","sourceRoot":"","sources":["../src/AstBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AstBuilder.js","sourceRoot":"","sources":["../src/AstBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Token } from "antlr4ng";
2
+ export default class HeadingTokens {
3
+ #private;
4
+ static normalize(tokens: readonly Token[]): Token[];
5
+ }
6
+ //# sourceMappingURL=HeadingTokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadingTokens.d.ts","sourceRoot":"","sources":["../src/HeadingTokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAQtC,MAAM,CAAC,OAAO,OAAO,aAAa;;IAY9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,KAAK,EAAE,CAUlD;CAsBJ"}
@@ -0,0 +1,60 @@
1
+ import { plurnkLexer } from "./generated/plurnkLexer.js";
2
+ // {§heading-slot-order} — a heading near-miss with exactly one reading is read, never refused and
3
+ // never taught (#758). Tokens keep their source positions; only their order in the stream changes.
4
+ // An aside written before the heading's remaining scope or JSON option block
5
+ // (`READ (a.md) <!-- why --> <1,-1>`) is moved after them, where the grammar reads it. An aside
6
+ // followed by a target, or by an option block that is not JSON objects, keeps its place.
7
+ export default class HeadingTokens {
8
+ static #OPENERS = new Set([
9
+ plurnkLexer.OPEN_FIND, plurnkLexer.OPEN_READ, plurnkLexer.OPEN_EDIT, plurnkLexer.OPEN_COPY,
10
+ plurnkLexer.OPEN_MOVE, plurnkLexer.OPEN_SEND, plurnkLexer.OPEN_NOTE, plurnkLexer.OPEN_WAIT,
11
+ plurnkLexer.OPEN_EXEC, plurnkLexer.OPEN_BARE, plurnkLexer.OPEN_WORK, plurnkLexer.OPEN_FORK,
12
+ plurnkLexer.OPEN_KILL, plurnkLexer.OPEN_LOOK,
13
+ ]);
14
+ static #SLOTS = new Set([
15
+ plurnkLexer.LPAREN, plurnkLexer.TARGET_TEXT, plurnkLexer.RPAREN, plurnkLexer.L_MARKER,
16
+ plurnkLexer.LBRACKET, plurnkLexer.METADATA_TEXT, plurnkLexer.RBRACKET,
17
+ ]);
18
+ static normalize(tokens) {
19
+ const out = [];
20
+ for (let i = 0; i < tokens.length; i++) {
21
+ if (!HeadingTokens.#OPENERS.has(tokens[i].type)) {
22
+ out.push(tokens[i]);
23
+ continue;
24
+ }
25
+ let end = i + 1;
26
+ while (end < tokens.length && (HeadingTokens.#SLOTS.has(tokens[end].type) || tokens[end].type === plurnkLexer.ASIDE))
27
+ end++;
28
+ out.push(tokens[i], ...HeadingTokens.#heading(tokens.slice(i + 1, end)));
29
+ i = end - 1;
30
+ }
31
+ return out;
32
+ }
33
+ static #heading(slots) {
34
+ const at = slots.findIndex((token) => token.type === plurnkLexer.ASIDE);
35
+ if (at === -1 || slots.filter((token) => token.type === plurnkLexer.ASIDE).length !== 1)
36
+ return slots;
37
+ const after = slots.slice(at + 1);
38
+ if (after.length === 0 || !HeadingTokens.#scopeOrOptions(after))
39
+ return slots;
40
+ return [...slots.slice(0, at), ...after, slots[at]];
41
+ }
42
+ // Only line markers and `[{…}]` option blocks may follow the aside for it to move.
43
+ static #scopeOrOptions(tokens) {
44
+ for (let i = 0; i < tokens.length; i++) {
45
+ const token = tokens[i];
46
+ if (token.type === plurnkLexer.L_MARKER)
47
+ continue;
48
+ if (token.type !== plurnkLexer.LBRACKET)
49
+ return false;
50
+ if (tokens[i + 1]?.type !== plurnkLexer.METADATA_TEXT || !tokens[i + 1].text?.trimStart().startsWith("{"))
51
+ return false;
52
+ while (i < tokens.length && tokens[i].type !== plurnkLexer.RBRACKET)
53
+ i++;
54
+ if (i === tokens.length)
55
+ return false;
56
+ }
57
+ return true;
58
+ }
59
+ }
60
+ //# sourceMappingURL=HeadingTokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadingTokens.js","sourceRoot":"","sources":["../src/HeadingTokens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export default class NativeToolCalls {
2
+ #private;
3
+ static markupLines(input: string): Set<number>;
4
+ static rewrite(input: string, executors: readonly string[], quotedLines?: ReadonlySet<number>): string | null;
5
+ }
6
+ //# sourceMappingURL=NativeToolCalls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeToolCalls.d.ts","sourceRoot":"","sources":["../src/NativeToolCalls.ts"],"names":[],"mappings":"AA0BA,MAAM,CAAC,OAAO,OAAO,eAAe;;IAKhC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAU7C;IAID,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,GAAE,WAAW,CAAC,MAAM,CAAa,GAAG,MAAM,GAAG,IAAI,CA4DvH;CA+BJ"}