@plurnk/plurnk-contracts 1.10.1 → 1.12.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 (72) hide show
  1. package/README.md +2 -3
  2. package/SPEC.md +190 -85
  3. package/dist/conformance/agui-v1.json +5 -5
  4. package/dist/plurnk.gemma.gbnf +4 -3
  5. package/dist/plurnk.qwen.gbnf +4 -3
  6. package/dist/schema/CapabilityDescriptor.json +23 -0
  7. package/dist/schema/CapabilityPolicy.json +18 -0
  8. package/dist/schema/CapabilityProjection.json +16 -0
  9. package/dist/schema/CapabilitySelector.json +24 -0
  10. package/dist/schema/ClientStatement.json +10 -2
  11. package/dist/schema/LoopPolicy.json +13 -0
  12. package/dist/schema/MatcherBody.json +8 -8
  13. package/dist/schema/ParsedPath.json +1 -11
  14. package/dist/schema/PlurnkStatement.json +76 -34
  15. package/dist/schema/ProblemProjection.json +38 -0
  16. package/dist/schema/ProposalProjection.json +2 -2
  17. package/dist/schema/ProviderUsage.json +1 -1
  18. package/dist/schema/ResourceSelection.json +12 -2
  19. package/dist/src/ApplicationPort.d.ts +9 -40
  20. package/dist/src/ApplicationPort.d.ts.map +1 -1
  21. package/dist/src/AstBuilder.d.ts +1 -7
  22. package/dist/src/AstBuilder.d.ts.map +1 -1
  23. package/dist/src/AstBuilder.js +127 -102
  24. package/dist/src/AstBuilder.js.map +1 -1
  25. package/dist/src/CapabilityAdmission.d.ts +9 -0
  26. package/dist/src/CapabilityAdmission.d.ts.map +1 -0
  27. package/dist/src/CapabilityAdmission.js +96 -0
  28. package/dist/src/CapabilityAdmission.js.map +1 -0
  29. package/dist/src/PlurnkErrorStrategy.d.ts +1 -0
  30. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
  31. package/dist/src/PlurnkErrorStrategy.js +140 -1
  32. package/dist/src/PlurnkErrorStrategy.js.map +1 -1
  33. package/dist/src/PlurnkParser.d.ts +4 -1
  34. package/dist/src/PlurnkParser.d.ts.map +1 -1
  35. package/dist/src/PlurnkParser.js +151 -22
  36. package/dist/src/PlurnkParser.js.map +1 -1
  37. package/dist/src/Problems.d.ts +6 -1
  38. package/dist/src/Problems.d.ts.map +1 -1
  39. package/dist/src/Problems.js +34 -0
  40. package/dist/src/Problems.js.map +1 -1
  41. package/dist/src/TagSignal.d.ts.map +1 -1
  42. package/dist/src/TagSignal.js +5 -0
  43. package/dist/src/TagSignal.js.map +1 -1
  44. package/dist/src/Validator.d.ts +18 -4
  45. package/dist/src/Validator.d.ts.map +1 -1
  46. package/dist/src/Validator.js +69 -10
  47. package/dist/src/Validator.js.map +1 -1
  48. package/dist/src/generated/plurnkLexer.d.ts +52 -40
  49. package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
  50. package/dist/src/generated/plurnkLexer.js +519 -431
  51. package/dist/src/generated/plurnkLexer.js.map +1 -1
  52. package/dist/src/generated/plurnkParser.d.ts +165 -92
  53. package/dist/src/generated/plurnkParser.d.ts.map +1 -1
  54. package/dist/src/generated/plurnkParser.js +1336 -722
  55. package/dist/src/generated/plurnkParser.js.map +1 -1
  56. package/dist/src/generated/plurnkParserVisitor.d.ts +49 -0
  57. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
  58. package/dist/src/generated/plurnkParserVisitor.js +42 -0
  59. package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
  60. package/dist/src/index.d.ts +4 -4
  61. package/dist/src/index.d.ts.map +1 -1
  62. package/dist/src/index.js +3 -3
  63. package/dist/src/index.js.map +1 -1
  64. package/dist/src/types.d.ts +9 -2
  65. package/dist/src/types.d.ts.map +1 -1
  66. package/dist/src/types.generated.d.ts +142 -36
  67. package/dist/src/types.generated.d.ts.map +1 -1
  68. package/dist/src/types.js +4 -6
  69. package/dist/src/types.js.map +1 -1
  70. package/package.json +2 -2
  71. package/plurnk.md +68 -61
  72. package/dist/schema/LoopFlags.json +0 -16
@@ -2,8 +2,7 @@
2
2
  import { ParserRuleContext, TerminalNode } from "antlr4ng";
3
3
  import * as xpath from "xpath";
4
4
  import { JSONPathEnvironment } from "json-p3/dist/json-p3.esm.js";
5
- import { COMBINED_ANCHOR_LINE_DIAGNOSTIC } from "./PlurnkErrorStrategy.js";
6
- import { BodyContext, IdentSignalContext, LineMarkerContext, PlanStatementContext, SendStatementContext, TargetContext, TagSignalContext, BranchSignalContext, } from "./generated/plurnkParser.js";
5
+ import { BodyContext, IdentSignalContext, LineMarkerContext, MetadataContext, PlanStatementContext, SendStatementContext, TargetContext, TagSignalContext, BranchSignalContext, } from "./generated/plurnkParser.js";
7
6
  import { plurnkLexer } from "./generated/plurnkLexer.js";
8
7
  import PlurnkParseError from "./PlurnkParseError.js";
9
8
  import PathSyntax from "./PathSyntax.js";
@@ -18,25 +17,21 @@ export default class AstBuilder {
18
17
  AstBuilder.#advisories = [];
19
18
  return taken;
20
19
  }
21
- // A body that is solely an HTML comment can never be a matcher: it is the annotation the
22
- // model put on the wrong line. Take it as the annotation and say so.
20
+ // A body that is solely an HTML comment can never be a matcher. Preserve it
21
+ // as the operation annotation and report only that deterministic normalization.
23
22
  static #annotationBody(op, delimiter, annotation, raw, position) {
24
23
  if (raw === null)
25
24
  return { annotation, raw };
26
25
  const comment = /^\s*<!--([\s\S]*?)-->\s*$/u.exec(raw);
27
26
  if (comment === null)
28
27
  return { annotation, raw };
29
- AstBuilder.#advisories.push(new PlurnkParseError(position.line, position.column, "parser", `\`## ${op}${delimiter}\` body was only an annotation; it was taken as the annotation and the ${op} ran. An annotation goes on the OP line (\`## ${op}${delimiter} (…) <!-- … -->\`); a ${op} body is a matcher.`, "warning"));
28
+ AstBuilder.#advisories.push(new PlurnkParseError(position.line, position.column, "parser", `The ${op} body contained only an HTML comment; it was applied as the operation annotation.`, "warning"));
30
29
  return { annotation: annotation ?? (comment[1] ?? "").trim(), raw: null };
31
30
  }
32
31
  static #SCHEME_PATTERN = /^[a-z][a-z0-9+.-]*:\/\//i;
33
- static #RESOURCE_SELECTION_TAIL = /(<-?\d+(?:\.\d+)?(?:(?:-|, ?)-?\d+(?:\.\d+)?)*>)(:*)$/;
34
- static #ANCHORED_RESOURCE_SELECTION_TAIL = new RegExp(String.raw `(<(?:-?\d+(?:\.\d+)?|@[0-9A-Za-z]{5})(?:, ?(?:-?\d+(?:\.\d+)?|@[0-9A-Za-z]{5}))*>)` + String.raw `(:*)$`);
35
- static #COMBINED_RESOURCE_SELECTION_TAIL = new RegExp(String.raw `(<(?:-?\d+(?:\.\d+)?|@[0-9A-Za-z]{5}|@[0-9A-Za-z]{5}(?::| )[1-9]\d*)`
36
- + String.raw `(?:, ?(?:-?\d+(?:\.\d+)?|@[0-9A-Za-z]{5}|@[0-9A-Za-z]{5}(?::| )[1-9]\d*))*>)$`);
37
- static #COMBINED_LINE_COORD = /@[0-9A-Za-z]{5}(?::| )[1-9]\d*/;
38
32
  // Compile-only RFC 9535 admission using the runtime's JSONPath engine. {§matcher-prefix-claims}
39
33
  static #JSONPATH = new JSONPathEnvironment();
34
+ static #GRAPH_MATCHER = /^&[<>]?[^\s<>]\S*$/u;
40
35
  static build(ctx) {
41
36
  // The strict turn root attaches the leading PLAN and the terminal SEND as direct
42
37
  // children (not wrapped in `statement`), so dispatch those by type first.
@@ -245,29 +240,37 @@ export default class AstBuilder {
245
240
  }
246
241
  static #buildCopy(ctx) {
247
242
  const position = AstBuilder.#positionOf(ctx);
248
- const slots = AstBuilder.#extractTextTagSlots(ctx.tagOpModifiers(), position);
249
- AstBuilder.#assertAppliedTags(slots.signal, position);
250
- const raw = AstBuilder.#bodyTextOf(ctx);
243
+ const modifier = ctx.transferModifiers();
244
+ const signal = AstBuilder.#tagsFromSignal(AstBuilder.#findFirst(modifier, TagSignalContext));
245
+ AstBuilder.#assertAppliedTags(signal, position);
246
+ const selections = modifier.resourceSelection();
247
+ if (selections.length !== 2)
248
+ throw new Error("COPY grammar did not produce two resource selections");
251
249
  return {
252
250
  op: "COPY",
253
251
  delimiter: AstBuilder.#splitDelimiter(ctx.OPEN_COPY().getText(), "COPY"),
254
252
  annotation: AstBuilder.#annotationOf(ctx),
255
- ...slots,
256
- body: raw === null ? null : AstBuilder.parseResourceSelection(raw, position),
253
+ signal,
254
+ source: AstBuilder.#resourceSelectionFromCtx(selections[0], position),
255
+ destination: AstBuilder.#resourceSelectionFromCtx(selections[1], position),
257
256
  position,
258
257
  };
259
258
  }
260
259
  static #buildMove(ctx) {
261
260
  const position = AstBuilder.#positionOf(ctx);
262
- const slots = AstBuilder.#extractTextTagSlots(ctx.tagOpModifiers(), position);
263
- AstBuilder.#assertAppliedTags(slots.signal, position);
264
- const raw = AstBuilder.#bodyTextOf(ctx);
261
+ const modifier = ctx.transferModifiers();
262
+ const signal = AstBuilder.#tagsFromSignal(AstBuilder.#findFirst(modifier, TagSignalContext));
263
+ AstBuilder.#assertAppliedTags(signal, position);
264
+ const selections = modifier.resourceSelection();
265
+ if (selections.length !== 2)
266
+ throw new Error("MOVE grammar did not produce two resource selections");
265
267
  return {
266
268
  op: "MOVE",
267
269
  delimiter: AstBuilder.#splitDelimiter(ctx.OPEN_MOVE().getText(), "MOVE"),
268
270
  annotation: AstBuilder.#annotationOf(ctx),
269
- ...slots,
270
- body: raw !== null ? AstBuilder.parseResourceSelection(raw, position) : null,
271
+ signal,
272
+ source: AstBuilder.#resourceSelectionFromCtx(selections[0], position),
273
+ destination: AstBuilder.#resourceSelectionFromCtx(selections[1], position),
271
274
  position,
272
275
  };
273
276
  }
@@ -310,6 +313,7 @@ export default class AstBuilder {
310
313
  annotation: AstBuilder.#annotationOf(ctx),
311
314
  signal,
312
315
  target: null,
316
+ metadata: null,
313
317
  lineMarker: null,
314
318
  body: AstBuilder.#requiredBodyTextOf(ctx),
315
319
  position,
@@ -318,15 +322,34 @@ export default class AstBuilder {
318
322
  static #buildPlan(ctx) {
319
323
  const position = AstBuilder.#positionOf(ctx);
320
324
  const slots = AstBuilder.#extractTagSlots(ctx.tagOpModifiers(), position);
325
+ const rejected = [
326
+ slots.signal !== null ? "[signal]" : null,
327
+ slots.target !== null ? "(path)" : null,
328
+ slots.metadata !== null ? "{metadata}" : null,
329
+ slots.lineMarker !== null ? "<scope>" : null,
330
+ ].filter((slot) => slot !== null);
331
+ if (rejected.length > 0) {
332
+ throw new PlurnkParseError(position.line, position.column, "visitor", `PLAN does not accept ${AstBuilder.#joinTerms(rejected)}.`);
333
+ }
321
334
  return {
322
335
  op: "PLAN",
323
336
  delimiter: AstBuilder.#splitDelimiter(ctx.OPEN_PLAN().getText(), "PLAN"),
324
337
  annotation: AstBuilder.#annotationOf(ctx),
325
- ...slots,
338
+ signal: null,
339
+ target: null,
340
+ metadata: null,
341
+ lineMarker: null,
326
342
  body: PlanValue.admit(AstBuilder.#requiredBodyTextOf(ctx)),
327
343
  position,
328
344
  };
329
345
  }
346
+ static #joinTerms(terms) {
347
+ if (terms.length < 2)
348
+ return terms[0] ?? "";
349
+ if (terms.length === 2)
350
+ return `${terms[0]} and ${terms[1]}`;
351
+ return `${terms.slice(0, -1).join(", ")}, and ${terms.at(-1)}`;
352
+ }
330
353
  static #buildKill(ctx) {
331
354
  const position = AstBuilder.#positionOf(ctx);
332
355
  const slots = AstBuilder.#extractIntSlots(ctx, position);
@@ -371,12 +394,14 @@ export default class AstBuilder {
371
394
  return {
372
395
  signal,
373
396
  target: AstBuilder.#targetFromCtx(AstBuilder.#findFirst(ctx, TargetContext), pos),
397
+ metadata: AstBuilder.#metadataFromCtx(ctx),
374
398
  };
375
399
  }
376
400
  static #extractTagSlots(modCtx, pos) {
377
401
  return {
378
402
  signal: AstBuilder.#tagsFromSignal(AstBuilder.#findFirst(modCtx, TagSignalContext)),
379
403
  target: AstBuilder.#targetFromCtx(AstBuilder.#findFirst(modCtx, TargetContext), pos),
404
+ metadata: AstBuilder.#metadataFromCtx(modCtx),
380
405
  lineMarker: AstBuilder.#lineMarkerFromCtx(AstBuilder.#findFirst(modCtx, LineMarkerContext)),
381
406
  };
382
407
  }
@@ -384,6 +409,7 @@ export default class AstBuilder {
384
409
  return {
385
410
  signal: AstBuilder.#tagsFromSignal(AstBuilder.#findFirst(modCtx, TagSignalContext)),
386
411
  target: AstBuilder.#targetFromCtx(AstBuilder.#findFirst(modCtx, TargetContext), pos),
412
+ metadata: AstBuilder.#metadataFromCtx(modCtx),
387
413
  lineMarker: AstBuilder.#textLineMarkerFromCtx(AstBuilder.#findFirst(modCtx, LineMarkerContext)),
388
414
  };
389
415
  }
@@ -391,6 +417,7 @@ export default class AstBuilder {
391
417
  return {
392
418
  signal: AstBuilder.#tagsFromSignal(AstBuilder.#findFirst(modCtx, TagSignalContext)),
393
419
  target: AstBuilder.#targetFromCtx(AstBuilder.#findFirst(modCtx, TargetContext), pos),
420
+ metadata: AstBuilder.#metadataFromCtx(modCtx),
394
421
  lineMarker: AstBuilder.#textLineMarkerFromCtx(AstBuilder.#findFirst(modCtx, LineMarkerContext)),
395
422
  };
396
423
  }
@@ -403,6 +430,7 @@ export default class AstBuilder {
403
430
  return {
404
431
  signal: sig !== null ? Number.parseInt(sig, 10) : null,
405
432
  target: AstBuilder.#targetFromCtx(AstBuilder.#findFirst(ctx, TargetContext), pos),
433
+ metadata: AstBuilder.#metadataFromCtx(ctx),
406
434
  };
407
435
  }
408
436
  // Depth-first search for the first terminal of `tokenType`; returns its text or null.
@@ -437,6 +465,7 @@ export default class AstBuilder {
437
465
  signal: identNode !== null ? identNode.getText() : null,
438
466
  tags,
439
467
  target: AstBuilder.#targetFromCtx(once(TargetContext, "one `(target)`"), pos),
468
+ metadata: AstBuilder.#metadataFromCtx(modCtx),
440
469
  lineMarker: AstBuilder.#lineMarkerFromCtx(once(LineMarkerContext, "one `<scope>`")),
441
470
  };
442
471
  }
@@ -496,6 +525,22 @@ export default class AstBuilder {
496
525
  const text = ctx.TARGET_TEXT().map((token) => token.getText()).join("");
497
526
  return AstBuilder.parsePath(text, pos);
498
527
  }
528
+ static #metadataFromCtx(ctx) {
529
+ const blocks = AstBuilder.#findAll(ctx, MetadataContext);
530
+ return blocks.length === 0
531
+ ? null
532
+ : blocks.map((block) => block.METADATA_TEXT().map((token) => token.getText()).join(""));
533
+ }
534
+ static #resourceSelectionFromCtx(ctx, pos) {
535
+ const target = AstBuilder.#targetFromCtx(AstBuilder.#findFirst(ctx, TargetContext), pos);
536
+ if (target === null)
537
+ throw new Error("resource selection grammar did not produce a target");
538
+ return {
539
+ target,
540
+ metadata: AstBuilder.#metadataFromCtx(ctx),
541
+ lineMarker: AstBuilder.#textLineMarkerFromCtx(AstBuilder.#findFirst(ctx, LineMarkerContext)),
542
+ };
543
+ }
499
544
  static #lineMarkerFromCtx(ctx) {
500
545
  if (ctx === null)
501
546
  return null;
@@ -570,33 +615,6 @@ export default class AstBuilder {
570
615
  // L_MARKER always matches at least one number, so marks is non-empty.
571
616
  return { marks: marks };
572
617
  }
573
- /**
574
- * Parse a COPY/MOVE body into its destination target and optional trailing
575
- * scope. The scope is adjacent to the destination it selects:
576
- * `destination.txt<12,5,12,5>`.
577
- */
578
- static parseResourceSelection(raw, pos = { line: 0, column: 0 }) {
579
- if (raw.length === 0)
580
- return null;
581
- const combinedMarker = AstBuilder.#COMBINED_RESOURCE_SELECTION_TAIL.exec(raw)?.[1];
582
- if (combinedMarker !== undefined && AstBuilder.#COMBINED_LINE_COORD.test(combinedMarker)) {
583
- throw new PlurnkParseError(pos.line, pos.column, "visitor", COMBINED_ANCHOR_LINE_DIAGNOSTIC);
584
- }
585
- const markerMatch = AstBuilder.#ANCHORED_RESOURCE_SELECTION_TAIL.exec(raw)
586
- ?? AstBuilder.#RESOURCE_SELECTION_TAIL.exec(raw);
587
- const markerText = markerMatch?.[1] ?? null;
588
- if ((markerMatch?.[2].length ?? 0) > 0) {
589
- throw new PlurnkParseError(pos.line, pos.column, "visitor", "COPY/MOVE destination scope must end the destination selection; remove the extra `:` after the scope");
590
- }
591
- const pathText = (markerText === null ? raw : raw.slice(0, -markerText.length)).trimEnd();
592
- const target = AstBuilder.parsePath(pathText, pos);
593
- if (target === null)
594
- return null;
595
- return {
596
- target,
597
- lineMarker: markerText === null ? null : AstBuilder.#parseTextLineMarker(markerText),
598
- };
599
- }
600
618
  /**
601
619
  * Apply target-slot decomposition without round-tripping through a statement.
602
620
  * Returns null for empty input and throws PlurnkParseError when a scheme URL
@@ -609,14 +627,10 @@ export default class AstBuilder {
609
627
  if (!AstBuilder.#SCHEME_PATTERN.test(target)) {
610
628
  return { kind: "local", raw: target };
611
629
  }
612
- // Split trailing request metadata before WHATWG decomposition; the addressed
613
- // scheme interprets the preserved ordered pairs. {§path-request-metadata}
614
- const braceIdx = target.indexOf("{");
615
- const urlPart = braceIdx === -1 ? target : target.slice(0, braceIdx);
616
- const headers = braceIdx === -1 ? null : AstBuilder.#splitHeaders(target.slice(braceIdx), pos);
630
+ const protectedTarget = AstBuilder.#protectPathBraces(target);
617
631
  let url;
618
632
  try {
619
- url = new URL(urlPart);
633
+ url = new URL(protectedTarget.value);
620
634
  }
621
635
  catch {
622
636
  throw new PlurnkParseError(pos.line, pos.column, "visitor", "invalid URI in path");
@@ -634,44 +648,40 @@ export default class AstBuilder {
634
648
  password: url.password || null,
635
649
  hostname: url.hostname || null,
636
650
  port: url.port ? Number.parseInt(url.port, 10) : null,
637
- pathname: url.pathname,
651
+ pathname: protectedTarget.restore(url.pathname),
638
652
  query: AstBuilder.#queryFrom(url),
639
653
  fragment: url.hash ? url.hash.slice(1) : null,
640
654
  };
641
- if (headers)
642
- parsed.headers = headers;
643
655
  return parsed;
644
656
  }
645
- // Split a target's trailing `{key: value}` request-metadata region into ordered pairs.
646
- // Each block is one header (the value ends at `}`, so commas inside a value are
647
- // fine); the key is the text before the first `:`, the value the trimmed rest
648
- // (internal colons kept). Fail-hard on a malformed region (stray text, unclosed
649
- // `{`, or a keyless block) — a header slot the scheme can't read is a contract
650
- // violation, not something to swallow.
651
- static #splitHeaders(meta, pos) {
652
- const headers = [];
653
- let i = 0;
654
- while (i < meta.length) {
655
- if (meta[i] !== "{") {
656
- throw new PlurnkParseError(pos.line, pos.column, "visitor", "invalid request metadata: expected a `{name: value}` block");
657
- }
658
- const end = meta.indexOf("}", i + 1);
659
- if (end === -1) {
660
- throw new PlurnkParseError(pos.line, pos.column, "visitor", "invalid request metadata: unclosed `{name: value}` block");
661
- }
662
- const inner = meta.slice(i + 1, end);
663
- const colon = inner.indexOf(":");
664
- if (colon === -1) {
665
- throw new PlurnkParseError(pos.line, pos.column, "visitor", "invalid request metadata: missing `:` separator");
666
- }
667
- const key = inner.slice(0, colon).trim();
668
- if (key.length === 0) {
669
- throw new PlurnkParseError(pos.line, pos.column, "visitor", "invalid request metadata: empty name");
670
- }
671
- headers.push([key, inner.slice(colon + 1).trim()]);
672
- i = end + 1;
657
+ // WHATWG percent-encodes raw braces. Protect only authored path braces while
658
+ // decomposing so brace globs remain distinguishable from authored `%7B`/`%7D`
659
+ // literal path data. Query and fragment spelling remain untouched.
660
+ static #protectPathBraces(target) {
661
+ const authorityStart = target.indexOf("://") + 3;
662
+ const pathStart = target.indexOf("/", authorityStart);
663
+ if (pathStart < 0)
664
+ return { value: target, restore: (pathname) => pathname };
665
+ const queryStart = target.indexOf("?", pathStart);
666
+ const fragmentStart = target.indexOf("#", pathStart);
667
+ const endings = [queryStart, fragmentStart].filter((index) => index >= 0);
668
+ const pathEnd = endings.length === 0 ? target.length : Math.min(...endings);
669
+ const rawPath = target.slice(pathStart, pathEnd);
670
+ if (!/[{}]/u.test(rawPath))
671
+ return { value: target, restore: (pathname) => pathname };
672
+ const sentinels = [];
673
+ for (let codePoint = 0xF0000; sentinels.length < 2; codePoint += 1) {
674
+ const character = String.fromCodePoint(codePoint);
675
+ const encoded = encodeURIComponent(character);
676
+ if (!target.includes(character) && !target.toUpperCase().includes(encoded))
677
+ sentinels.push(encoded);
673
678
  }
674
- return headers;
679
+ const [open, close] = sentinels;
680
+ const protectedPath = rawPath.replaceAll("{", open).replaceAll("}", close);
681
+ return {
682
+ value: target.slice(0, pathStart) + protectedPath + target.slice(pathEnd),
683
+ restore: (pathname) => pathname.replaceAll(open, "{").replaceAll(close, "}"),
684
+ };
675
685
  }
676
686
  static #queryFrom(url) {
677
687
  const queryStart = url.href.indexOf("?");
@@ -683,19 +693,30 @@ export default class AstBuilder {
683
693
  // The leading prefix claims its dialect; failed claimed syntax never falls back
684
694
  // to glob. XPath's `//` is classified before regex `/`. {§matcher-prefix-claims}
685
695
  static #parseMatcherBody(body, pos) {
686
- if (body.startsWith("//")) {
696
+ // At statement EOF ANTLR retains one ordinary terminating line ending in
697
+ // BODY_TEXT; before a following heading the lexer consumes that same EOL as
698
+ // SECTION_END. Normalize the equivalent surfaces before enforcing one line.
699
+ const raw = body.replace(/(?:\r\n|\r|\n)$/u, "");
700
+ const lineCount = raw.split(/\r\n|\r|\n/u).length;
701
+ if (lineCount !== 1) {
702
+ throw new PlurnkParseError(pos.line, pos.column, "visitor", `Matcher body has ${lineCount} lines; expected 1.`);
703
+ }
704
+ if (raw.startsWith("//")) {
687
705
  try {
688
- xpath.parse(body);
706
+ xpath.parse(raw);
689
707
  }
690
708
  catch (e) {
691
709
  throw new PlurnkParseError(pos.line, pos.column, "visitor", `pattern leads with \`//\` but is not a valid xpath selector - ${AstBuilder.#detail(e)}`);
692
710
  }
693
- return { dialect: "xpath", raw: body };
711
+ return { dialect: "xpath", raw };
694
712
  }
695
- if (body.startsWith("/")) {
696
- const regex = AstBuilder.#tryParseSlashRegex(body);
713
+ if (raw.startsWith("/")) {
714
+ const regex = AstBuilder.#tryParseSlashRegex(raw);
697
715
  if (regex.ok)
698
- return { dialect: "regex", raw: body, pattern: regex.pattern, flags: regex.flags };
716
+ return { dialect: "regex", raw, pattern: regex.pattern, flags: regex.flags };
717
+ if (regex.reason === "invalid" && /^[\t ]/u.test(regex.flags)) {
718
+ throw new PlurnkParseError(pos.line, pos.column, "visitor", "Regex matcher has trailing text after its closing `/`; operation modifiers precede the line ending, and the matcher occupies the next line.");
719
+ }
699
720
  const slashRecovery = regex.reason === "invalid"
700
721
  && regex.detail.includes("Invalid flags supplied")
701
722
  ? " - use only ECMAScript flags after the closing `/`; escape a literal `/` inside the pattern as `\\/`"
@@ -703,26 +724,30 @@ export default class AstBuilder {
703
724
  // Quote the offending matcher so a multi-op emission's failure is
704
725
  // unambiguous about WHICH body failed (a correct sibling regex must
705
726
  // not take the blame for a broken one).
706
- const excerpt = body.length > 80 ? `${body.slice(0, 80)}…` : body;
727
+ const excerpt = raw.length > 80 ? `${raw.slice(0, 80)}…` : raw;
707
728
  throw new PlurnkParseError(pos.line, pos.column, "visitor", regex.reason === "unclosed"
708
729
  ? `regex matcher must use \`/pattern/flags\`; this matcher has no closing \`/\`: \`${excerpt}\``
709
730
  : `pattern leads with \`/\` but is not a valid \`/pattern/flags\` regex - ${regex.detail}${slashRecovery}: \`${excerpt}\``);
710
731
  }
711
- if (body.startsWith("$")) {
732
+ if (raw.startsWith("$")) {
712
733
  // Compile-only RFC 9535 admission through the shared json-p3 engine.
713
734
  try {
714
- AstBuilder.#JSONPATH.compile(body);
735
+ AstBuilder.#JSONPATH.compile(raw);
715
736
  }
716
737
  catch (e) {
717
738
  throw new PlurnkParseError(pos.line, pos.column, "visitor", `pattern leads with \`$\` but is not a valid jsonpath - ${AstBuilder.#detail(e)}`);
718
739
  }
719
- return { dialect: "jsonpath", raw: body };
740
+ return { dialect: "jsonpath", raw };
741
+ }
742
+ if (raw.startsWith("~"))
743
+ return { dialect: "semantic", raw };
744
+ if (raw.startsWith("&")) {
745
+ if (!AstBuilder.#GRAPH_MATCHER.test(raw)) {
746
+ throw new PlurnkParseError(pos.line, pos.column, "visitor", "Malformed graph matcher; expected `&symbol`, `&<symbol`, or `&>symbol`.");
747
+ }
748
+ return { dialect: "graph", raw };
720
749
  }
721
- if (body.startsWith("~"))
722
- return { dialect: "semantic", raw: body };
723
- if (body.startsWith("@"))
724
- return { dialect: "graph", raw: body };
725
- return { dialect: "glob", raw: body };
750
+ return { dialect: "glob", raw };
726
751
  }
727
752
  static #detail(e) {
728
753
  return e instanceof Error ? e.message : String(e);
@@ -760,7 +785,7 @@ export default class AstBuilder {
760
785
  new RegExp(pattern, flags);
761
786
  }
762
787
  catch (e) {
763
- return { ok: false, reason: "invalid", detail: AstBuilder.#detail(e) };
788
+ return { ok: false, reason: "invalid", detail: AstBuilder.#detail(e), flags };
764
789
  }
765
790
  return { ok: true, pattern, flags };
766
791
  }
@@ -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,9 @@
1
+ import type { CapabilityDescriptor, CapabilityPolicy, CapabilitySelector } from "./types.generated.ts";
2
+ export default class CapabilityAdmission {
3
+ #private;
4
+ static matches(selector: CapabilitySelector, descriptor: CapabilityDescriptor): boolean;
5
+ static allows(policy: CapabilityPolicy, descriptor: CapabilityDescriptor): boolean;
6
+ static allowsAcross(policies: readonly CapabilityPolicy[], descriptor: CapabilityDescriptor): boolean;
7
+ static intersect(policies: readonly CapabilityPolicy[]): CapabilityPolicy;
8
+ }
9
+ //# sourceMappingURL=CapabilityAdmission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CapabilityAdmission.d.ts","sourceRoot":"","sources":["../../src/CapabilityAdmission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,sBAAsB,CAAC;AAK9B,MAAM,CAAC,OAAO,OAAO,mBAAmB;;IACpC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAStF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAIjF;IAED,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EAAE,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAEpG;IAKD,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GAAG,gBAAgB,CAiBxE;CA2CJ"}