@plurnk/plurnk-grammar 0.71.0 → 0.73.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.
package/dist/plurnk.gbnf CHANGED
@@ -124,18 +124,21 @@ send-b1 ::= ("S" send-b2 | ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] se
124
124
  send-b2 ::= ("E" send-b3 | ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-b0)?
125
125
  send-b3 ::= ("N" send-b4 | ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-b0)?
126
126
  send-b4 ::= (":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-b0)?
127
+ send-b0ne ::= ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-b0
127
128
  send-1-b0 ::= (":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-1-b0)?
128
129
  send-1-b1 ::= ("S" send-1-b2 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-1-b0)?
129
130
  send-1-b2 ::= ("E" send-1-b3 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-1-b0)?
130
131
  send-1-b3 ::= ("N" send-1-b4 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-1-b0)?
131
132
  send-1-b4 ::= ("D" send-1-b5 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-1-b0)?
132
133
  send-1-b5 ::= (":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] send-1-b0)?
134
+ send-1-b0ne ::= ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-1-b0
133
135
  send-2-b0 ::= (":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-2-b0)?
134
136
  send-2-b1 ::= ("S" send-2-b2 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-2-b0)?
135
137
  send-2-b2 ::= ("E" send-2-b3 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-2-b0)?
136
138
  send-2-b3 ::= ("N" send-2-b4 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-2-b0)?
137
139
  send-2-b4 ::= ("D" send-2-b5 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-2-b0)?
138
140
  send-2-b5 ::= (":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] send-2-b0)?
141
+ send-2-b0ne ::= ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-2-b0
139
142
  exec-b0 ::= (":" exec-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] exec-b0)?
140
143
  exec-b1 ::= ("E" exec-b2 | ":" exec-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] exec-b0)?
141
144
  exec-b2 ::= ("X" exec-b3 | ":" exec-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:X] exec-b0)?
@@ -175,7 +178,8 @@ plan-b1 ::= ("P" plan-b2 | ":" plan-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] pl
175
178
  plan-b2 ::= ("L" plan-b3 | ":" plan-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] plan-b0)?
176
179
  plan-b3 ::= ("A" plan-b4 | ":" plan-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:A] plan-b0)?
177
180
  plan-b4 ::= (":" plan-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] plan-b0)?
178
- plan ::= "<<PLAN" ":" plan-b0 ":PLAN"
181
+ plan-b0ne ::= ":" plan-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] plan-b0
182
+ plan ::= "<<PLAN" ":" plan-b0ne ":PLAN"
179
183
  sep ::= [ \t\r\n]? [ \t\r\n]? [ \t\r\n]? [ \t\r\n]? [ \t\r\n]? [ \t\r\n]? [ \t\r\n]?
180
184
  batch-step ::= mid-statement sep
181
185
  mid-statement ::= op-statement | send-mid-any
@@ -262,7 +266,7 @@ op-statement-45 ::= tags? target line? ":" open-b0 ":OPEN" | "1" op-statement-46
262
266
  op-statement-44 ::= "N" op-statement-45
263
267
  op-statement-43 ::= "E" op-statement-44
264
268
  op-statement-42 ::= "P" op-statement-43
265
- op-statement-51 ::= ":" plan-b0 ":PLAN"
269
+ op-statement-51 ::= ":" plan-b0ne ":PLAN"
266
270
  op-statement-50 ::= "N" op-statement-51
267
271
  op-statement-49 ::= "A" op-statement-50
268
272
  op-statement-48 ::= "L" op-statement-49
@@ -284,9 +288,9 @@ send-mid-any-2 ::= "E" send-mid-any-3
284
288
  send-mid-any-1 ::= "S" send-mid-any-2
285
289
  send-mid-any-0 ::= "<" send-mid-any-1
286
290
  send-mid-any ::= "<" send-mid-any-0
287
- send-final-any-6 ::= "[" status-final "]" target? ":" send-1-b0 ":SEND1"
288
- send-final-any-7 ::= "[" status-final "]" target? ":" send-2-b0 ":SEND2"
289
- send-final-any-5 ::= "[" status-final "]" target? ":" send-b0 ":SEND" | "1" send-final-any-6 | "2" send-final-any-7
291
+ send-final-any-6 ::= "[" status-final "]" target? ":" send-1-b0ne ":SEND1"
292
+ send-final-any-7 ::= "[" status-final "]" target? ":" send-2-b0ne ":SEND2"
293
+ send-final-any-5 ::= "[" status-final "]" target? ":" send-b0ne ":SEND" | "1" send-final-any-6 | "2" send-final-any-7
290
294
  send-final-any-4 ::= "D" send-final-any-5
291
295
  send-final-any-3 ::= "N" send-final-any-4
292
296
  send-final-any-2 ::= "E" send-final-any-3
@@ -298,7 +302,10 @@ status-mid ::= "10" [0-13-9] | "1" [1-9] [0-9] | "20" [13-9] | "2" [1-9] [0-9] |
298
302
  tags ::= "[" tag tag-rest* "]"
299
303
  tag ::= [A-Za-z0-9_.-]+
300
304
  tag-rest ::= "," tag
301
- target ::= "(" [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F)<\r\n]+ ")"
305
+ target ::= "(" target-inner ")" | "(" target-regex ")"
306
+ target-inner ::= [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F)<\r\n]+
307
+ target-regex ::= "#" target-rx-char* "#" [a-zA-Z]*
308
+ target-rx-char ::= "\\" [^\r\n] | [^#\r\n]
302
309
  line ::= "<" int line-rest* ">"
303
310
  line-rest ::= "," " "? int
304
311
  int ::= "-"? [0-9]+ frac?
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-grammar",
3
- "version": "0.71.0",
3
+ "version": "0.73.0",
4
4
  "description": "ANTLR4 grammar for the Plurnk LLM agent protocol",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/plurnk.md CHANGED
@@ -26,7 +26,7 @@ Slots between `<<OPsuffix` and `:body:` are all optional. `:body:` fences are re
26
26
 
27
27
  Operations emit their status and/or results on the subsequent turn.
28
28
  READ output prefixes every line with line numbers and a hard tab, `N: `. The prefix is not part of the source.
29
- EDIT is only for entries. Do not attempt to edit log items.
29
+ EDIT is only for adding or modifying entries. Do not attempt to edit log items.
30
30
  EXEC defaults to `sh`; override with an optional executor (`sqlite`, `node`, etc.).
31
31
 
32
32
  ## Context
@@ -77,12 +77,12 @@ URI-shaped: `[scheme://]rest`.
77
77
  * Bare paths (no scheme) default to local relative project file paths.
78
78
  * Glob metacharacters match within path segments; a standalone `#pattern#flags` matches the whole target by regex.
79
79
  * Path suffix (`.json`, `.md`, `.txt`, etc.) declares mimetype.
80
- * A literal `)` closes the target — percent-encode parens in a path (`%28`/`%29`).
80
+ * Percent-encode reserved characters in paths: `)`→`%29`, `<`→`%3C`.
81
81
  * Append `#channel` to select a channel (e.g. `#stdout`, `#stderr`); absent, the scheme's default channel is used.
82
82
 
83
83
  ## Suffix
84
84
 
85
- When quoting plurnk operations in a body, YOU MUST use a matching single-digit suffix (`1`–`9`) on the opening and closing tags.
85
+ When quoting plurnk operations in a body, YOU MUST use a matching single-digit suffix (`1`–`9`) or label (`[a-z]+`) on the opening and closing tags.
86
86
 
87
87
  <<EDIT1(known:///demo):
88
88
  quoted: <<EDIT(known:///inner):hello:EDIT