@plurnk/plurnk-contracts 1.14.2 → 1.15.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 (46) hide show
  1. package/SPEC.md +90 -106
  2. package/dist/plurnk.gemma.gbnf +41 -67
  3. package/dist/plurnk.qwen.gbnf +41 -67
  4. package/dist/schema/ClientStatement.json +114 -40
  5. package/dist/schema/PlurnkStatement.json +29 -199
  6. package/dist/schema/RangeExtent.json +1 -1
  7. package/dist/src/AstBuilder.d.ts +2 -2
  8. package/dist/src/AstBuilder.d.ts.map +1 -1
  9. package/dist/src/AstBuilder.js +56 -144
  10. package/dist/src/AstBuilder.js.map +1 -1
  11. package/dist/src/PlurnkErrorStrategy.d.ts +0 -1
  12. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
  13. package/dist/src/PlurnkErrorStrategy.js +57 -46
  14. package/dist/src/PlurnkErrorStrategy.js.map +1 -1
  15. package/dist/src/PlurnkParser.d.ts +1 -2
  16. package/dist/src/PlurnkParser.d.ts.map +1 -1
  17. package/dist/src/PlurnkParser.js +13 -102
  18. package/dist/src/PlurnkParser.js.map +1 -1
  19. package/dist/src/generated/plurnkLexer.d.ts +42 -69
  20. package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
  21. package/dist/src/generated/plurnkLexer.js +485 -642
  22. package/dist/src/generated/plurnkLexer.js.map +1 -1
  23. package/dist/src/generated/plurnkParser.d.ts +75 -215
  24. package/dist/src/generated/plurnkParser.d.ts.map +1 -1
  25. package/dist/src/generated/plurnkParser.js +631 -1833
  26. package/dist/src/generated/plurnkParser.js.map +1 -1
  27. package/dist/src/generated/plurnkParserVisitor.d.ts +3 -87
  28. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
  29. package/dist/src/generated/plurnkParserVisitor.js +2 -74
  30. package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
  31. package/dist/src/index.d.ts +0 -2
  32. package/dist/src/index.d.ts.map +1 -1
  33. package/dist/src/index.js +0 -1
  34. package/dist/src/index.js.map +1 -1
  35. package/dist/src/types.d.ts +1 -1
  36. package/dist/src/types.d.ts.map +1 -1
  37. package/dist/src/types.generated.d.ts +18 -50
  38. package/dist/src/types.generated.d.ts.map +1 -1
  39. package/dist/src/types.js +1 -1
  40. package/dist/src/types.js.map +1 -1
  41. package/package.json +1 -1
  42. package/plurnk.md +51 -57
  43. package/dist/src/TagSignal.d.ts +0 -15
  44. package/dist/src/TagSignal.d.ts.map +0 -1
  45. package/dist/src/TagSignal.js +0 -53
  46. package/dist/src/TagSignal.js.map +0 -1
@@ -8,14 +8,14 @@ section-body-b3 ::= ("#" section-body-b1 | [ PANFIDRETCOYMVSXBWK] section-body-b
8
8
  section-body-b4 ::= ("#" section-body-b1 | [ PLNFIDRETCOYMVSXBWK] section-body-b0 | "A" section-body-b5 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
9
9
  section-body-b5 ::= ("#" section-body-b1 | [ PLAFIDRETCOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
10
10
  section-body-b6 ::= ("#" section-body-b6 | " " section-body-b7 | [PLANFIDRETCOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
11
- section-body-b7 ::= ("#" section-body-b1 | [ LANIDTYVX] section-body-b0 | "P" section-body-b3 | "F" section-body-b8 | "R" section-body-b11 | "E" section-body-b14 | "C" section-body-b17 | "O" section-body-b23 | "M" section-body-b20 | "S" section-body-b28 | "B" section-body-b33 | "W" section-body-b36 | "K" section-body-b40 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
12
- section-body-b8 ::= ("#" section-body-b1 | [ PLANFDRETCYMVSXBWK] section-body-b0 | "I" section-body-b9 | "O" section-body-b26 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
11
+ section-body-b7 ::= ("#" section-body-b1 | [ LANIDTOYVX] section-body-b0 | "P" section-body-b3 | "F" section-body-b8 | "R" section-body-b11 | "E" section-body-b14 | "C" section-body-b17 | "M" section-body-b20 | "S" section-body-b23 | "B" section-body-b28 | "W" section-body-b31 | "K" section-body-b36 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
12
+ section-body-b8 ::= ("#" section-body-b1 | [ PLANFDRETCYMVSXBWK] section-body-b0 | "I" section-body-b9 | "O" section-body-b34 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
13
13
  section-body-b9 ::= ("#" section-body-b1 | [ PLAFIDRETCOYMVSXBWK] section-body-b0 | "N" section-body-b10 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
14
14
  section-body-b10 ::= ("#" section-body-b1 | [ PLANFIRETCOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
15
15
  section-body-b11 ::= ("#" section-body-b1 | [ PLANFIDRTCOYMVSXBWK] section-body-b0 | "E" section-body-b12 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
16
16
  section-body-b12 ::= ("#" section-body-b1 | [ PLNFIDRETCOYMVSXBWK] section-body-b0 | "A" section-body-b13 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
17
17
  section-body-b13 ::= ("#" section-body-b1 | [ PLANFIRETCOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
18
- section-body-b14 ::= ("#" section-body-b1 | [ PLANFIRETCOYMVSBWK] section-body-b0 | "D" section-body-b15 | "X" section-body-b31 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
18
+ section-body-b14 ::= ("#" section-body-b1 | [ PLANFIRETCOYMVSBWK] section-body-b0 | "D" section-body-b15 | "X" section-body-b26 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
19
19
  section-body-b15 ::= ("#" section-body-b1 | [ PLANFDRETCOYMVSXBWK] section-body-b0 | "I" section-body-b16 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
20
20
  section-body-b16 ::= ("#" section-body-b1 | [ PLANFIDRECOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
21
21
  section-body-b17 ::= ("#" section-body-b1 | [ PLANFIDRETCYMVSXBWK] section-body-b0 | "O" section-body-b18 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
@@ -24,54 +24,47 @@ section-body-b19 ::= ("#" section-body-b1 | [ PLANFIDRETCOMVSXBWK] section-body-
24
24
  section-body-b20 ::= ("#" section-body-b1 | [ PLANFIDRETCYMVSXBWK] section-body-b0 | "O" section-body-b21 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
25
25
  section-body-b21 ::= ("#" section-body-b1 | [ PLANFIDRETCOYMSXBWK] section-body-b0 | "V" section-body-b22 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
26
26
  section-body-b22 ::= ("#" section-body-b1 | [ PLANFIDRTCOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
27
- section-body-b23 ::= ("#" section-body-b1 | [ LANFIDRETCOYMVSXBWK] section-body-b0 | "P" section-body-b24 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
28
- section-body-b24 ::= ("#" section-body-b1 | [ PLANFIDRTCOYMVSXBWK] section-body-b0 | "E" section-body-b25 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
29
- section-body-b25 ::= ("#" section-body-b1 | [ PLAFIDRETCOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
30
- section-body-b26 ::= ("#" section-body-b1 | [ PANFIDETCOYMVSXBWK] section-body-b0 | "L" section-body-b27 | "R" section-body-b39 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
31
- section-body-b27 ::= ("#" section-body-b1 | [ PLANFIRETCOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
32
- section-body-b28 ::= ("#" section-body-b1 | [ PLANFIDRTCOYMVSXBWK] section-body-b0 | "E" section-body-b29 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
33
- section-body-b29 ::= ("#" section-body-b1 | [ PLAFIDRETCOYMVSXBWK] section-body-b0 | "N" section-body-b30 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
34
- section-body-b30 ::= ("#" section-body-b1 | [ PLANFIRETCOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
35
- section-body-b31 ::= ("#" section-body-b1 | [ PLANFIDRTCOYMVSXBWK] section-body-b0 | "E" section-body-b32 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
36
- section-body-b32 ::= ("#" section-body-b1 | [ PLANFIDRETOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
37
- section-body-b33 ::= ("#" section-body-b1 | [ PLNFIDRETCOYMVSXBWK] section-body-b0 | "A" section-body-b34 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
27
+ section-body-b23 ::= ("#" section-body-b1 | [ PLANFIDRTCOYMVSXBWK] section-body-b0 | "E" section-body-b24 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
28
+ section-body-b24 ::= ("#" section-body-b1 | [ PLAFIDRETCOYMVSXBWK] section-body-b0 | "N" section-body-b25 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
29
+ section-body-b25 ::= ("#" section-body-b1 | [ PLANFIRETCOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
30
+ section-body-b26 ::= ("#" section-body-b1 | [ PLANFIDRTCOYMVSXBWK] section-body-b0 | "E" section-body-b27 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
31
+ section-body-b27 ::= ("#" section-body-b1 | [ PLANFIDRETOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
32
+ section-body-b28 ::= ("#" section-body-b1 | [ PLNFIDRETCOYMVSXBWK] section-body-b0 | "A" section-body-b29 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
33
+ section-body-b29 ::= ("#" section-body-b1 | [ PLANFIDETCOYMVSXBWK] section-body-b0 | "R" section-body-b30 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
34
+ section-body-b30 ::= ("#" section-body-b1 | [ PLANFIDRTCOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
35
+ section-body-b31 ::= ("#" section-body-b1 | [ PLANFIDRETCYMVSXBWK] section-body-b0 | "O" section-body-b32 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
36
+ section-body-b32 ::= ("#" section-body-b1 | [ PLANFIDETCOYMVSXBWK] section-body-b0 | "R" section-body-b33 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
37
+ section-body-b33 ::= ("#" section-body-b1 | [ PLANFIDRETCOYMVSXBW] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
38
38
  section-body-b34 ::= ("#" section-body-b1 | [ PLANFIDETCOYMVSXBWK] section-body-b0 | "R" section-body-b35 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
39
- section-body-b35 ::= ("#" section-body-b1 | [ PLANFIDRTCOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
40
- section-body-b36 ::= ("#" section-body-b1 | [ PLANFIDRETCYMVSXBWK] section-body-b0 | "O" section-body-b37 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
41
- section-body-b37 ::= ("#" section-body-b1 | [ PLANFIDETCOYMVSXBWK] section-body-b0 | "R" section-body-b38 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
42
- section-body-b38 ::= ("#" section-body-b1 | [ PLANFIDRETCOYMVSXBW] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
43
- section-body-b39 ::= ("#" section-body-b1 | [ PLANFIDRETCOYMVSXBW] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
44
- section-body-b40 ::= ("#" section-body-b1 | [ PLANFDRETCOYMVSXBWK] section-body-b0 | "I" section-body-b41 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
45
- section-body-b41 ::= ("#" section-body-b1 | [ PANFIDRETCOYMVSXBWK] section-body-b0 | "L" section-body-b42 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
46
- section-body-b42 ::= ("#" section-body-b1 | [ PANFIDRETCOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
39
+ section-body-b35 ::= ("#" section-body-b1 | [ PLANFIDRETCOYMVSXBW] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
40
+ section-body-b36 ::= ("#" section-body-b1 | [ PLANFDRETCOYMVSXBWK] section-body-b0 | "I" section-body-b37 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
41
+ section-body-b37 ::= ("#" section-body-b1 | [ PANFIDRETCOYMVSXBWK] section-body-b0 | "L" section-body-b38 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
42
+ section-body-b38 ::= ("#" section-body-b1 | [ PANFIDRETCOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0)?
47
43
  section-body-ne ::= "#" section-body-b1 | [ PLANFIDRETCOYMVSXBWK] section-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F# PLANFIDRETCOYMVSXBWK] section-body-b0
48
44
  annotation-body-b0 ::= ("-" annotation-body-b1 | ">" annotation-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r>-] annotation-body-b0)?
49
45
  annotation-body-b1 ::= ("-" annotation-body-b2 | ">" annotation-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r>-] annotation-body-b0)?
50
46
  annotation-body-b2 ::= ("-" annotation-body-b2 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r>-] annotation-body-b0)?
51
47
  annotation-body-ne ::= "-" annotation-body-b1 | ">" annotation-body-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r>-] annotation-body-b0
52
48
  pattern-body-ne ::= [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:#] [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r]*
53
- log-selection ::= (curation-tags-slot log-target-slot? | log-target-slot)?
54
49
  plan ::= "# PLAN0" annotation-slot? "\n" section-body-ne "\n"
55
- find ::= "## FIND0" add-tags-slot? target-slot line-slot? annotation-slot? "\n" | "## FIND0" add-tags-slot? target-slot line-slot? annotation-slot? "\n" pattern-body-ne "\n"
56
- read ::= "## READ0" add-tags-slot? target-slot text-line-slot? annotation-slot? "\n" | "## READ0" add-tags-slot? target-slot text-line-slot? annotation-slot? "\n" pattern-body-ne "\n"
57
- edit ::= "## EDIT0" add-tags-slot? target-slot text-line-slot? annotation-slot? "\n" | "## EDIT0" add-tags-slot? target-slot text-line-slot? annotation-slot? "\n" section-body-ne "\n"
58
- copy ::= "## COPY0" add-tags-slot? target-slot text-line-slot? target-slot text-line-slot? annotation-slot? "\n"
59
- move ::= "## MOVE0" add-tags-slot? target-slot text-line-slot? target-slot text-line-slot? annotation-slot? "\n"
60
- open ::= "## OPEN0" log-selection text-line-slot? annotation-slot? "\n" | "## OPEN0" log-selection text-line-slot? annotation-slot? "\n" pattern-body-ne "\n"
61
- fold ::= "## FOLD0" log-selection text-line-slot? annotation-slot? "\n" | "## FOLD0" log-selection text-line-slot? annotation-slot? "\n" pattern-body-ne "\n"
62
- exec ::= "## EXEC0" exec-slot? target-slot? line-slot? annotation-slot? "\n" | "## EXEC0" exec-slot? target-slot? line-slot? annotation-slot? "\n" section-body-ne "\n"
63
- bare ::= "## BARE0" add-tags-slot? annotation-slot? "\n" section-body-ne "\n"
64
- work ::= "## WORK0" branch-slot? target-slot annotation-slot? "\n" section-body-ne "\n"
65
- fork ::= "## FORK0" branch-slot? target-slot annotation-slot? "\n" section-body-ne "\n"
66
- kill ::= "## KILL0" kill-slot? target-slot annotation-slot? "\n"
67
- send-mid ::= "## SEND0" status-mid-slot target-slot? annotation-slot? "\n" | "## SEND0" status-mid-slot target-slot? annotation-slot? "\n" section-body-ne "\n" | "## SEND0" target-slot? annotation-slot? "\n" | "## SEND0" target-slot? annotation-slot? "\n" section-body-ne "\n"
68
- send-102 ::= "## SEND0 [102]" target-slot? annotation-slot? "\n" section-body-ne
69
- send-200 ::= "## SEND0 [200]" target-slot? annotation-slot? "\n" section-body-ne
70
- send-202 ::= "## SEND0 [202]" target-slot? park-slot? annotation-slot? "\n" section-body-ne
71
- send-499 ::= "## SEND0 [499]" target-slot? annotation-slot? "\n" section-body-ne
50
+ find ::= "## FIND0" target-slot line-slot? annotation-slot? "\n" | "## FIND0" target-slot line-slot? annotation-slot? "\n" pattern-body-ne "\n"
51
+ read ::= "## READ0" target-slot text-line-slot? annotation-slot? "\n" | "## READ0" target-slot text-line-slot? annotation-slot? "\n" pattern-body-ne "\n"
52
+ edit ::= "## EDIT0" target-slot text-line-slot? annotation-slot? "\n" | "## EDIT0" target-slot text-line-slot? annotation-slot? "\n" section-body-ne "\n"
53
+ copy ::= "## COPY0" target-slot text-line-slot? target-slot text-line-slot? annotation-slot? "\n"
54
+ move ::= "## MOVE0" target-slot text-line-slot? target-slot text-line-slot? annotation-slot? "\n"
55
+ exec ::= "## EXEC0" executor-slot? exec-program? line-slot? annotation-slot? "\n" | "## EXEC0" executor-slot? exec-program? line-slot? annotation-slot? "\n" section-body-ne "\n"
56
+ bare ::= "## BARE0" annotation-slot? "\n" section-body-ne "\n"
57
+ work ::= "## WORK0" target-slot annotation-slot? "\n" section-body-ne "\n"
58
+ fork ::= "## FORK0" target-slot annotation-slot? "\n" section-body-ne "\n"
59
+ kill ::= "## KILL0" target-slot text-line-slot? annotation-slot? "\n" | "## KILL0" target-slot text-line-slot? annotation-slot? "\n" pattern-body-ne "\n"
60
+ send-mid ::= "## SEND0" recipient-slot annotation-slot? "\n" | "## SEND0" recipient-slot annotation-slot? "\n" section-body-ne "\n" | "## SEND0" annotation-slot? "\n" | "## SEND0" annotation-slot? "\n" section-body-ne "\n"
61
+ send-102 ::= "## SEND0 (NEXT)" annotation-slot? "\n" section-body-ne
62
+ send-200 ::= "## SEND0 (TERM)" annotation-slot? "\n" section-body-ne
63
+ send-202 ::= "## SEND0 (WAIT)" park-slot? annotation-slot? "\n" section-body-ne
64
+ send-499 ::= "## SEND0 (FAIL)" annotation-slot? "\n" section-body-ne
72
65
  send-final-any ::= send-102 | send-200 | send-202 | send-499
73
66
  send-final-first ::= send-200 | send-202 | send-499
74
- op-statement ::= find | read | edit | copy | move | open | fold | exec | bare | work | fork | kill
67
+ op-statement ::= find | read | edit | copy | move | exec | bare | work | fork | kill
75
68
  tail-0 ::= send-mid tail-1 | op-statement tail-1 | send-final-first
76
69
  tail-1 ::= send-mid tail-2 | op-statement tail-2 | send-final-any
77
70
  tail-2 ::= send-mid tail-3 | op-statement tail-3 | send-final-any
@@ -104,38 +97,21 @@ rz-think-b12 ::= ("<" rz-think-b1 | [thin>\n/] rz-think-b0 | "k" rz-think-b13 |
104
97
  rz-think-b13 ::= ("<" rz-think-b1 | [think\n/] rz-think-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<think>\n/] rz-think-b0)?
105
98
  rz-think-first ::= [0-9A-Za-z]
106
99
  qwen-tail ::= rz-think-first rz-think-b0 "</think>"
107
- turn ::= plan tail-0
108
- framed-turn ::= turn | "```plurnk\n" turn "\n```"
100
+ turn ::= plan tail-0 | tail-0
101
+ framed-turn ::= turn | "```example\n" turn "\n```" | "```plurnk\n" turn "\n```"
109
102
  root-qwen ::= qwen-tail sep framed-turn
110
103
  root-qwen-response ::= "<think>\n" root-qwen
111
- add-tags-slot ::= " " add-tags
112
- curation-tags-slot ::= " " curation-tags
113
- log-target-slot ::= " (log:" target-atom+ ")"
114
104
  target-slot ::= " " target metadata-slot*
105
+ recipient-slot ::= " (" scheme "://" target-inner ")" metadata-slot*
106
+ scheme ::= [a-z] [a-z0-9+.-]*
107
+ executor-name ::= [0-9A-Za-z_.+-] [0-9A-Za-z_.+-]*
108
+ executor-slot ::= " [" executor-name "]"
109
+ exec-program ::= target-slot | metadata-slot metadata-slot*
115
110
  metadata-slot ::= " {" [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r{}]* "}"
116
111
  line-slot ::= " " line
117
112
  text-line-slot ::= " " text-line
118
- exec-slot ::= " " exec-sig
119
- branch-slot ::= " " branch
120
- kill-slot ::= " " kill-sig
121
- status-mid-slot ::= " [" status-mid "]"
122
113
  park-slot ::= " " park
123
114
  annotation-slot ::= " <!-- " annotation-body-ne " -->"
124
- status-mid ::= [05-9] [0-9] [0-9] | "1" status-mid-1 | "2" status-mid-2 | "3" status-mid-3 | "4" status-mid-4
125
- status-mid-1 ::= "0" [0-13-9] | [1-9] [0-9]
126
- status-mid-2 ::= "0" [13-9] | [1-9] [0-9]
127
- status-mid-3 ::= "0" [0-9] | [1-9] [0-9]
128
- status-mid-4 ::= "9" [0-8] | [0-8] [0-9]
129
- add-tags ::= "[" add-tag add-tag-rest* "]"
130
- curation-tags ::= "[" curation-term curation-term-rest* "]"
131
- branch ::= "[" [A-Za-z0-9_./-]+ "]"
132
- tag ::= [A-Za-z0-9_.] [A-Za-z0-9_.+-]*
133
- add-tag ::= "+" tag
134
- remove-tag ::= "-" tag
135
- signed-tag ::= add-tag | remove-tag
136
- curation-term ::= tag | signed-tag
137
- add-tag-rest ::= "," add-tag
138
- curation-term-rest ::= "," curation-term
139
115
  target ::= "(" target-inner ")"
140
116
  target-inner ::= target-atom+
141
117
  target-atom ::= [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\\()<\r\n] | target-escape
@@ -151,5 +127,3 @@ frac ::= "." [0-9]+
151
127
  park ::= "<" park-t park-poll? ">"
152
128
  park-t ::= "-1" | [0-9]+
153
129
  park-poll ::= "," [0-9]+
154
- exec-sig ::= "[" [a-z] [a-z0-9_-]* "]"
155
- kill-sig ::= "[" [0-9] [0-9]? "]"
@@ -4,48 +4,74 @@
4
4
  "title": "ClientStatement",
5
5
  "description": "The client-tier AST returned by PlurnkParser.parseClient: the closed protocol PlurnkStatement union plus read-shaped LOOK and BUFF utility statements.",
6
6
  "oneOf": [
7
- { "$ref": "https://schemas.plurnk.xyz/v0/PlurnkStatement.json" },
8
- { "$ref": "#/$defs/LookStatement" },
9
- { "$ref": "#/$defs/BuffStatement" }
7
+ {
8
+ "$ref": "https://schemas.plurnk.xyz/v0/PlurnkStatement.json"
9
+ },
10
+ {
11
+ "$ref": "#/$defs/LookStatement"
12
+ },
13
+ {
14
+ "$ref": "#/$defs/BuffStatement"
15
+ }
10
16
  ],
11
17
  "$defs": {
12
- "TagSignal": {
13
- "oneOf": [
14
- { "type": "array", "items": { "type": "string" } },
15
- { "type": "null" }
16
- ]
17
- },
18
18
  "AnnotationOrNull": {
19
- "type": ["string", "null"]
19
+ "type": [
20
+ "string",
21
+ "null"
22
+ ]
20
23
  },
21
24
  "SchemeMetadataOrNull": {
22
25
  "oneOf": [
23
- { "type": "array", "items": { "type": "string" } },
24
- { "type": "null" }
26
+ {
27
+ "type": "array",
28
+ "items": {
29
+ "type": "string"
30
+ }
31
+ },
32
+ {
33
+ "type": "null"
34
+ }
25
35
  ]
26
36
  },
27
37
  "PathOrNull": {
28
38
  "oneOf": [
29
- { "$ref": "https://schemas.plurnk.xyz/v0/ParsedPath.json" },
30
- { "type": "null" }
39
+ {
40
+ "$ref": "https://schemas.plurnk.xyz/v0/ParsedPath.json"
41
+ },
42
+ {
43
+ "type": "null"
44
+ }
31
45
  ]
32
46
  },
33
47
  "LineMarkerOrNull": {
34
48
  "oneOf": [
35
- { "$ref": "https://schemas.plurnk.xyz/v0/LineMarker.json" },
36
- { "type": "null" }
49
+ {
50
+ "$ref": "https://schemas.plurnk.xyz/v0/LineMarker.json"
51
+ },
52
+ {
53
+ "type": "null"
54
+ }
37
55
  ]
38
56
  },
39
57
  "TextLineMarkerOrNull": {
40
58
  "oneOf": [
41
- { "$ref": "https://schemas.plurnk.xyz/v0/TextLineMarker.json" },
42
- { "type": "null" }
59
+ {
60
+ "$ref": "https://schemas.plurnk.xyz/v0/TextLineMarker.json"
61
+ },
62
+ {
63
+ "type": "null"
64
+ }
43
65
  ]
44
66
  },
45
67
  "MatcherBodyOrNull": {
46
68
  "oneOf": [
47
- { "$ref": "https://schemas.plurnk.xyz/v0/MatcherBody.json" },
48
- { "type": "null" }
69
+ {
70
+ "$ref": "https://schemas.plurnk.xyz/v0/MatcherBody.json"
71
+ },
72
+ {
73
+ "type": "null"
74
+ }
49
75
  ]
50
76
  },
51
77
  "PositionRef": {
@@ -53,34 +79,82 @@
53
79
  },
54
80
  "LookStatement": {
55
81
  "type": "object",
56
- "required": ["op", "delimiter", "annotation", "metadata", "signal", "target", "lineMarker", "body", "position"],
82
+ "required": [
83
+ "op",
84
+ "delimiter",
85
+ "annotation",
86
+ "metadata",
87
+ "target",
88
+ "lineMarker",
89
+ "body",
90
+ "position"
91
+ ],
57
92
  "additionalProperties": false,
58
93
  "properties": {
59
- "op": { "const": "LOOK" },
60
- "delimiter": { "type": "string" },
61
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
62
- "metadata": { "$ref": "#/$defs/SchemeMetadataOrNull" },
63
- "signal": { "$ref": "#/$defs/TagSignal" },
64
- "target": { "$ref": "#/$defs/PathOrNull" },
65
- "lineMarker": { "$ref": "#/$defs/TextLineMarkerOrNull" },
66
- "body": { "$ref": "#/$defs/MatcherBodyOrNull" },
67
- "position": { "$ref": "#/$defs/PositionRef" }
94
+ "op": {
95
+ "const": "LOOK"
96
+ },
97
+ "delimiter": {
98
+ "type": "string"
99
+ },
100
+ "annotation": {
101
+ "$ref": "#/$defs/AnnotationOrNull"
102
+ },
103
+ "metadata": {
104
+ "$ref": "#/$defs/SchemeMetadataOrNull"
105
+ },
106
+ "target": {
107
+ "$ref": "#/$defs/PathOrNull"
108
+ },
109
+ "lineMarker": {
110
+ "$ref": "#/$defs/TextLineMarkerOrNull"
111
+ },
112
+ "body": {
113
+ "$ref": "#/$defs/MatcherBodyOrNull"
114
+ },
115
+ "position": {
116
+ "$ref": "#/$defs/PositionRef"
117
+ }
68
118
  }
69
119
  },
70
120
  "BuffStatement": {
71
121
  "type": "object",
72
- "required": ["op", "delimiter", "annotation", "metadata", "signal", "target", "lineMarker", "body", "position"],
122
+ "required": [
123
+ "op",
124
+ "delimiter",
125
+ "annotation",
126
+ "metadata",
127
+ "target",
128
+ "lineMarker",
129
+ "body",
130
+ "position"
131
+ ],
73
132
  "additionalProperties": false,
74
133
  "properties": {
75
- "op": { "const": "BUFF" },
76
- "delimiter": { "type": "string" },
77
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
78
- "metadata": { "$ref": "#/$defs/SchemeMetadataOrNull" },
79
- "signal": { "$ref": "#/$defs/TagSignal" },
80
- "target": { "$ref": "#/$defs/PathOrNull" },
81
- "lineMarker": { "$ref": "#/$defs/LineMarkerOrNull" },
82
- "body": { "$ref": "#/$defs/MatcherBodyOrNull" },
83
- "position": { "$ref": "#/$defs/PositionRef" }
134
+ "op": {
135
+ "const": "BUFF"
136
+ },
137
+ "delimiter": {
138
+ "type": "string"
139
+ },
140
+ "annotation": {
141
+ "$ref": "#/$defs/AnnotationOrNull"
142
+ },
143
+ "metadata": {
144
+ "$ref": "#/$defs/SchemeMetadataOrNull"
145
+ },
146
+ "target": {
147
+ "$ref": "#/$defs/PathOrNull"
148
+ },
149
+ "lineMarker": {
150
+ "$ref": "#/$defs/LineMarkerOrNull"
151
+ },
152
+ "body": {
153
+ "$ref": "#/$defs/MatcherBodyOrNull"
154
+ },
155
+ "position": {
156
+ "$ref": "#/$defs/PositionRef"
157
+ }
84
158
  }
85
159
  }
86
160
  }