@plurnk/plurnk-grammar 0.74.57 → 0.75.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/README.md CHANGED
@@ -201,7 +201,7 @@ Errors are JSON-serializable. Shape: `{ line, column, source, message }` where `
201
201
 
202
202
  One generated [GBNF](https://github.com/ggml-org/llama.cpp/blob/master/grammars/README.md) grammar ships for llama.cpp constrained sampling, calibrated for the Fireworks/DeepSeek backend:
203
203
 
204
- - **`plurnk.gbnf` (PLAN-anchored turn)** — `root ::= preplan plan sep batch-step* send-final-any sep`. A Plurnk turn is a `*:PLAN:OPS:SEND[N]` sandwich: a FREE **op-free** reasoning preamble, then a MANDATORY `<<PLAN` anchoring a strict ops-only batch (bounded `WS{0,7}` separators, no free prose between), closed by exactly one terminal `SEND[102|200|202|300|499]` — structural termination (forced EOS), not an optional stop a near-greedy decoder can sail past.
204
+ - **`plurnk.gbnf` (PLAN-anchored turn)** — `root ::= preplan plan sep batch-step* send-final-any sep`. A Plurnk turn is a `*:PLAN:OPS:SEND[N]` sandwich: a FREE **op-free** reasoning preamble, then a MANDATORY `<<PLAN` anchoring a strict ops-only batch (bounded `WS{0,7}` separators, no free prose between), closed by exactly one terminal `SEND[102|200|300|499]` — structural termination (forced EOS), not an optional stop a near-greedy decoder can sail past.
205
205
 
206
206
  The preamble names **no reasoning delimiter** — it admits any text completing no `<<OP` opener. That keeps it format-agnostic across models and never masks a model's native reasoning token: the model reasons freely (a reasoning model's CoT separates into `reasoning_content`; a non-reasoning model reasons in the `<<PLAN` body, the public statement of intent), then `<<PLAN` anchors the strict turn. The **ANTLR grammar enforces the same sandwich**: `PlurnkParser.parse(input)` parses a turn — free text before PLAN, a required PLAN, nothing but whitespace between/after ops, and a required terminal SEND; a packet without a PLAN *and* a terminal SEND is invalid. A Plurnk packet IS a turn — there is no permissive fallback. `PlurnkParser.parseStatements(input)` parses a bare statement sequence (teaching-example collections, single ops); it is not for model output.
207
207
 
package/dist/plurnk.gbnf CHANGED
@@ -276,36 +276,22 @@ rz-chan-b9 ::= ("<" rz-chan-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<>] rz-chan-b0
276
276
  think-block ::= "<think>" rz-think-b0 "</think>"
277
277
  channel-block ::= "<|channel>" rz-chan-b0 "<channel|>"
278
278
  reasoning ::= think-block | channel-block
279
- tail-clean-0 ::= send-mid-any sep tail-clean-1 | op-statement sep tail-clean-1 | retrieval-op sep tail-dirty-1 | send-final-any sep
280
- tail-clean-1 ::= send-mid-any sep tail-clean-2 | op-statement sep tail-clean-2 | retrieval-op sep tail-dirty-2 | send-final-any sep
281
- tail-dirty-1 ::= send-mid-any sep tail-dirty-2 | op-statement sep tail-dirty-2 | retrieval-op sep tail-dirty-2 | send-final-nodone sep
282
- tail-clean-2 ::= send-mid-any sep tail-clean-3 | op-statement sep tail-clean-3 | retrieval-op sep tail-dirty-3 | send-final-any sep
283
- tail-dirty-2 ::= send-mid-any sep tail-dirty-3 | op-statement sep tail-dirty-3 | retrieval-op sep tail-dirty-3 | send-final-nodone sep
284
- tail-clean-3 ::= send-mid-any sep tail-clean-4 | op-statement sep tail-clean-4 | retrieval-op sep tail-dirty-4 | send-final-any sep
285
- tail-dirty-3 ::= send-mid-any sep tail-dirty-4 | op-statement sep tail-dirty-4 | retrieval-op sep tail-dirty-4 | send-final-nodone sep
286
- tail-clean-4 ::= send-mid-any sep tail-clean-5 | op-statement sep tail-clean-5 | retrieval-op sep tail-dirty-5 | send-final-any sep
287
- tail-dirty-4 ::= send-mid-any sep tail-dirty-5 | op-statement sep tail-dirty-5 | retrieval-op sep tail-dirty-5 | send-final-nodone sep
288
- tail-clean-5 ::= send-mid-any sep tail-clean-6 | op-statement sep tail-clean-6 | retrieval-op sep tail-dirty-6 | send-final-any sep
289
- tail-dirty-5 ::= send-mid-any sep tail-dirty-6 | op-statement sep tail-dirty-6 | retrieval-op sep tail-dirty-6 | send-final-nodone sep
290
- tail-clean-6 ::= send-mid-any sep tail-clean-7 | op-statement sep tail-clean-7 | retrieval-op sep tail-dirty-7 | send-final-any sep
291
- tail-dirty-6 ::= send-mid-any sep tail-dirty-7 | op-statement sep tail-dirty-7 | retrieval-op sep tail-dirty-7 | send-final-nodone sep
292
- tail-clean-7 ::= send-mid-any sep tail-clean-8 | op-statement sep tail-clean-8 | retrieval-op sep tail-dirty-8 | send-final-any sep
293
- tail-dirty-7 ::= send-mid-any sep tail-dirty-8 | op-statement sep tail-dirty-8 | retrieval-op sep tail-dirty-8 | send-final-nodone sep
294
- tail-clean-8 ::= send-mid-any sep tail-clean-9 | op-statement sep tail-clean-9 | retrieval-op sep tail-dirty-9 | send-final-any sep
295
- tail-dirty-8 ::= send-mid-any sep tail-dirty-9 | op-statement sep tail-dirty-9 | retrieval-op sep tail-dirty-9 | send-final-nodone sep
296
- tail-clean-9 ::= send-mid-any sep tail-clean-10 | op-statement sep tail-clean-10 | retrieval-op sep tail-dirty-10 | send-final-any sep
297
- tail-dirty-9 ::= send-mid-any sep tail-dirty-10 | op-statement sep tail-dirty-10 | retrieval-op sep tail-dirty-10 | send-final-nodone sep
298
- tail-clean-10 ::= send-mid-any sep tail-clean-11 | op-statement sep tail-clean-11 | retrieval-op sep tail-dirty-11 | send-final-any sep
299
- tail-dirty-10 ::= send-mid-any sep tail-dirty-11 | op-statement sep tail-dirty-11 | retrieval-op sep tail-dirty-11 | send-final-nodone sep
300
- tail-clean-11 ::= send-mid-any sep tail-clean-12 | op-statement sep tail-clean-12 | retrieval-op sep tail-dirty-12 | send-final-any sep
301
- tail-dirty-11 ::= send-mid-any sep tail-dirty-12 | op-statement sep tail-dirty-12 | retrieval-op sep tail-dirty-12 | send-final-nodone sep
302
- tail-clean-12 ::= send-mid-any sep tail-clean-13 | op-statement sep tail-clean-13 | retrieval-op sep tail-dirty-13 | send-final-any sep
303
- tail-dirty-12 ::= send-mid-any sep tail-dirty-13 | op-statement sep tail-dirty-13 | retrieval-op sep tail-dirty-13 | send-final-nodone sep
304
- tail-clean-13 ::= send-mid-any sep tail-clean-14 | op-statement sep tail-clean-14 | retrieval-op sep tail-dirty-14 | send-final-any sep
305
- tail-dirty-13 ::= send-mid-any sep tail-dirty-14 | op-statement sep tail-dirty-14 | retrieval-op sep tail-dirty-14 | send-final-nodone sep
306
- tail-clean-14 ::= send-final-any sep
307
- tail-dirty-14 ::= send-final-nodone sep
308
- root-turn ::= reasoning? preplan plan sep tail-clean-0
279
+ tail-0 ::= send-mid-any sep tail-1 | op-statement sep tail-1 | send-final-any sep
280
+ tail-1 ::= send-mid-any sep tail-2 | op-statement sep tail-2 | send-final-any sep
281
+ tail-2 ::= send-mid-any sep tail-3 | op-statement sep tail-3 | send-final-any sep
282
+ tail-3 ::= send-mid-any sep tail-4 | op-statement sep tail-4 | send-final-any sep
283
+ tail-4 ::= send-mid-any sep tail-5 | op-statement sep tail-5 | send-final-any sep
284
+ tail-5 ::= send-mid-any sep tail-6 | op-statement sep tail-6 | send-final-any sep
285
+ tail-6 ::= send-mid-any sep tail-7 | op-statement sep tail-7 | send-final-any sep
286
+ tail-7 ::= send-mid-any sep tail-8 | op-statement sep tail-8 | send-final-any sep
287
+ tail-8 ::= send-mid-any sep tail-9 | op-statement sep tail-9 | send-final-any sep
288
+ tail-9 ::= send-mid-any sep tail-10 | op-statement sep tail-10 | send-final-any sep
289
+ tail-10 ::= send-mid-any sep tail-11 | op-statement sep tail-11 | send-final-any sep
290
+ tail-11 ::= send-mid-any sep tail-12 | op-statement sep tail-12 | send-final-any sep
291
+ tail-12 ::= send-mid-any sep tail-13 | op-statement sep tail-13 | send-final-any sep
292
+ tail-13 ::= send-mid-any sep tail-14 | op-statement sep tail-14 | send-final-any sep
293
+ tail-14 ::= send-final-any sep
294
+ root-turn ::= reasoning? preplan plan sep tail-0
309
295
  op-statement-6 ::= tags? target line? ":" copy-1-b0 ":COPY1"
310
296
  op-statement-7 ::= tags? target line? ":" copy-2-b0 ":COPY2"
311
297
  op-statement-5 ::= tags? target line? ":" copy-b0 ":COPY" | "1" op-statement-6 | "2" op-statement-7
@@ -323,58 +309,54 @@ op-statement-16 ::= exec-sig? target? line? ":" exec-b0 ":EXEC" | "1" op-stateme
323
309
  op-statement-15 ::= "C" op-statement-16
324
310
  op-statement-14 ::= "E" op-statement-15
325
311
  op-statement-8 ::= "D" op-statement-9 | "X" op-statement-14
326
- op-statement-23 ::= tags? target line? ":" fold-1-b0 ":FOLD1"
327
- op-statement-24 ::= tags? target line? ":" fold-2-b0 ":FOLD2"
328
- op-statement-22 ::= tags? target line? ":" fold-b0 ":FOLD" | "1" op-statement-23 | "2" op-statement-24
312
+ op-statement-23 ::= tags? target line? ":" find-1-b0 ":FIND1"
313
+ op-statement-24 ::= tags? target line? ":" find-2-b0 ":FIND2"
314
+ op-statement-22 ::= tags? target line? ":" find-b0 ":FIND" | "1" op-statement-23 | "2" op-statement-24
329
315
  op-statement-21 ::= "D" op-statement-22
330
- op-statement-27 ::= target ":" fork-1-b0 ":FORK1"
331
- op-statement-28 ::= target ":" fork-2-b0 ":FORK2"
332
- op-statement-26 ::= target ":" fork-b0 ":FORK" | "1" op-statement-27 | "2" op-statement-28
333
- op-statement-25 ::= "K" op-statement-26
334
- op-statement-20 ::= "L" op-statement-21 | "R" op-statement-25
335
- op-statement-19 ::= "O" op-statement-20
336
- op-statement-33 ::= kill-sig? target ":" kill-1-b0 ":KILL1"
337
- op-statement-34 ::= kill-sig? target ":" kill-2-b0 ":KILL2"
338
- op-statement-32 ::= kill-sig? target ":" kill-b0 ":KILL" | "1" op-statement-33 | "2" op-statement-34
339
- op-statement-31 ::= "L" op-statement-32
340
- op-statement-30 ::= "L" op-statement-31
341
- op-statement-29 ::= "I" op-statement-30
342
- op-statement-39 ::= tags? target line? ":" move-1-b0 ":MOVE1"
343
- op-statement-40 ::= tags? target line? ":" move-2-b0 ":MOVE2"
344
- op-statement-38 ::= tags? target line? ":" move-b0 ":MOVE" | "1" op-statement-39 | "2" op-statement-40
345
- op-statement-37 ::= "E" op-statement-38
346
- op-statement-36 ::= "V" op-statement-37
347
- op-statement-35 ::= "O" op-statement-36
348
- op-statement-45 ::= tags? target line? ":" open-1-b0 ":OPEN1"
349
- op-statement-46 ::= tags? target line? ":" open-2-b0 ":OPEN2"
350
- op-statement-44 ::= tags? target line? ":" open-b0 ":OPEN" | "1" op-statement-45 | "2" op-statement-46
351
- op-statement-43 ::= "N" op-statement-44
316
+ op-statement-20 ::= "N" op-statement-21
317
+ op-statement-28 ::= tags? target line? ":" fold-1-b0 ":FOLD1"
318
+ op-statement-29 ::= tags? target line? ":" fold-2-b0 ":FOLD2"
319
+ op-statement-27 ::= tags? target line? ":" fold-b0 ":FOLD" | "1" op-statement-28 | "2" op-statement-29
320
+ op-statement-26 ::= "D" op-statement-27
321
+ op-statement-32 ::= target ":" fork-1-b0 ":FORK1"
322
+ op-statement-33 ::= target ":" fork-2-b0 ":FORK2"
323
+ op-statement-31 ::= target ":" fork-b0 ":FORK" | "1" op-statement-32 | "2" op-statement-33
324
+ op-statement-30 ::= "K" op-statement-31
325
+ op-statement-25 ::= "L" op-statement-26 | "R" op-statement-30
326
+ op-statement-19 ::= "I" op-statement-20 | "O" op-statement-25
327
+ op-statement-38 ::= kill-sig? target ":" kill-1-b0 ":KILL1"
328
+ op-statement-39 ::= kill-sig? target ":" kill-2-b0 ":KILL2"
329
+ op-statement-37 ::= kill-sig? target ":" kill-b0 ":KILL" | "1" op-statement-38 | "2" op-statement-39
330
+ op-statement-36 ::= "L" op-statement-37
331
+ op-statement-35 ::= "L" op-statement-36
332
+ op-statement-34 ::= "I" op-statement-35
333
+ op-statement-44 ::= tags? target line? ":" move-1-b0 ":MOVE1"
334
+ op-statement-45 ::= tags? target line? ":" move-2-b0 ":MOVE2"
335
+ op-statement-43 ::= tags? target line? ":" move-b0 ":MOVE" | "1" op-statement-44 | "2" op-statement-45
352
336
  op-statement-42 ::= "E" op-statement-43
353
- op-statement-41 ::= "P" op-statement-42
354
- op-statement-51 ::= target ":" work-1-b0 ":WORK1"
355
- op-statement-52 ::= target ":" work-2-b0 ":WORK2"
356
- op-statement-50 ::= target ":" work-b0 ":WORK" | "1" op-statement-51 | "2" op-statement-52
357
- op-statement-49 ::= "K" op-statement-50
358
- op-statement-48 ::= "R" op-statement-49
359
- op-statement-47 ::= "O" op-statement-48
360
- op-statement-1 ::= "C" op-statement-2 | "E" op-statement-8 | "F" op-statement-19 | "K" op-statement-29 | "M" op-statement-35 | "O" op-statement-41 | "W" op-statement-47
337
+ op-statement-41 ::= "V" op-statement-42
338
+ op-statement-40 ::= "O" op-statement-41
339
+ op-statement-50 ::= tags? target line? ":" open-1-b0 ":OPEN1"
340
+ op-statement-51 ::= tags? target line? ":" open-2-b0 ":OPEN2"
341
+ op-statement-49 ::= tags? target line? ":" open-b0 ":OPEN" | "1" op-statement-50 | "2" op-statement-51
342
+ op-statement-48 ::= "N" op-statement-49
343
+ op-statement-47 ::= "E" op-statement-48
344
+ op-statement-46 ::= "P" op-statement-47
345
+ op-statement-56 ::= tags? target line? ":" read-1-b0 ":READ1"
346
+ op-statement-57 ::= tags? target line? ":" read-2-b0 ":READ2"
347
+ op-statement-55 ::= tags? target line? ":" read-b0 ":READ" | "1" op-statement-56 | "2" op-statement-57
348
+ op-statement-54 ::= "D" op-statement-55
349
+ op-statement-53 ::= "A" op-statement-54
350
+ op-statement-52 ::= "E" op-statement-53
351
+ op-statement-62 ::= target ":" work-1-b0 ":WORK1"
352
+ op-statement-63 ::= target ":" work-2-b0 ":WORK2"
353
+ op-statement-61 ::= target ":" work-b0 ":WORK" | "1" op-statement-62 | "2" op-statement-63
354
+ op-statement-60 ::= "K" op-statement-61
355
+ op-statement-59 ::= "R" op-statement-60
356
+ op-statement-58 ::= "O" op-statement-59
357
+ op-statement-1 ::= "C" op-statement-2 | "E" op-statement-8 | "F" op-statement-19 | "K" op-statement-34 | "M" op-statement-40 | "O" op-statement-46 | "R" op-statement-52 | "W" op-statement-58
361
358
  op-statement-0 ::= "<" op-statement-1
362
359
  op-statement ::= "<" op-statement-0
363
- retrieval-op-6 ::= tags? target line? ":" find-1-b0 ":FIND1"
364
- retrieval-op-7 ::= tags? target line? ":" find-2-b0 ":FIND2"
365
- retrieval-op-5 ::= tags? target line? ":" find-b0 ":FIND" | "1" retrieval-op-6 | "2" retrieval-op-7
366
- retrieval-op-4 ::= "D" retrieval-op-5
367
- retrieval-op-3 ::= "N" retrieval-op-4
368
- retrieval-op-2 ::= "I" retrieval-op-3
369
- retrieval-op-12 ::= tags? target line? ":" read-1-b0 ":READ1"
370
- retrieval-op-13 ::= tags? target line? ":" read-2-b0 ":READ2"
371
- retrieval-op-11 ::= tags? target line? ":" read-b0 ":READ" | "1" retrieval-op-12 | "2" retrieval-op-13
372
- retrieval-op-10 ::= "D" retrieval-op-11
373
- retrieval-op-9 ::= "A" retrieval-op-10
374
- retrieval-op-8 ::= "E" retrieval-op-9
375
- retrieval-op-1 ::= "F" retrieval-op-2 | "R" retrieval-op-8
376
- retrieval-op-0 ::= "<" retrieval-op-1
377
- retrieval-op ::= "<" retrieval-op-0
378
360
  send-mid-any-6 ::= "[" status-mid "]" target ":" send-1-b0 ":SEND1" | target ":" send-1-b0 ":SEND1" | "[" status-mid "]" ":" send-1-b0 ":SEND1" | ":" send-1-b0 ":SEND1"
379
361
  send-mid-any-7 ::= "[" status-mid "]" target ":" send-2-b0 ":SEND2" | target ":" send-2-b0 ":SEND2" | "[" status-mid "]" ":" send-2-b0 ":SEND2" | ":" send-2-b0 ":SEND2"
380
362
  send-mid-any-5 ::= "[" status-mid "]" target ":" send-b0 ":SEND" | target ":" send-b0 ":SEND" | "[" status-mid "]" ":" send-b0 ":SEND" | ":" send-b0 ":SEND" | "1" send-mid-any-6 | "2" send-mid-any-7
@@ -384,29 +366,21 @@ send-mid-any-2 ::= "E" send-mid-any-3
384
366
  send-mid-any-1 ::= "S" send-mid-any-2
385
367
  send-mid-any-0 ::= "<" send-mid-any-1
386
368
  send-mid-any ::= "<" send-mid-any-0
387
- send-final-any-6 ::= "[" status-final "]" target? ":" send-1-b0ne ":SEND1"
388
- send-final-any-7 ::= "[" status-final "]" target? ":" send-2-b0ne ":SEND2"
389
- send-final-any-5 ::= "[" status-final "]" target? ":" send-b0ne ":SEND" | "1" send-final-any-6 | "2" send-final-any-7
369
+ send-final-any-6 ::= "[102]" target? park? ":" send-1-b0ne ":SEND1" | "[" status-final-rest "]" target? ":" send-1-b0ne ":SEND1"
370
+ send-final-any-7 ::= "[102]" target? park? ":" send-2-b0ne ":SEND2" | "[" status-final-rest "]" target? ":" send-2-b0ne ":SEND2"
371
+ send-final-any-5 ::= "[102]" target? park? ":" send-b0ne ":SEND" | "[" status-final-rest "]" target? ":" send-b0ne ":SEND" | "1" send-final-any-6 | "2" send-final-any-7
390
372
  send-final-any-4 ::= "D" send-final-any-5
391
373
  send-final-any-3 ::= "N" send-final-any-4
392
374
  send-final-any-2 ::= "E" send-final-any-3
393
375
  send-final-any-1 ::= "S" send-final-any-2
394
376
  send-final-any-0 ::= "<" send-final-any-1
395
377
  send-final-any ::= "<" send-final-any-0
396
- send-final-nodone-6 ::= "[" status-final-nodone "]" target? ":" send-1-b0ne ":SEND1"
397
- send-final-nodone-7 ::= "[" status-final-nodone "]" target? ":" send-2-b0ne ":SEND2"
398
- send-final-nodone-5 ::= "[" status-final-nodone "]" target? ":" send-b0ne ":SEND" | "1" send-final-nodone-6 | "2" send-final-nodone-7
399
- send-final-nodone-4 ::= "D" send-final-nodone-5
400
- send-final-nodone-3 ::= "N" send-final-nodone-4
401
- send-final-nodone-2 ::= "E" send-final-nodone-3
402
- send-final-nodone-1 ::= "S" send-final-nodone-2
403
- send-final-nodone-0 ::= "<" send-final-nodone-1
404
- send-final-nodone ::= "<" send-final-nodone-0
405
- status-final ::= "102" | "200" | "202" | "300" | "499"
406
- status-final-nodone ::= "102" | "202" | "300" | "499"
378
+ status-final-rest ::= "200" | "300" | "499"
379
+ park ::= "<" park-t ">"
380
+ park-t ::= "-1" | [0-9]+
407
381
  status-mid ::= [05-9] [0-9] [0-9] | "1" status-mid-1 | "2" status-mid-2 | "3" status-mid-3 | "4" status-mid-4
408
382
  status-mid-1 ::= "0" [0-13-9] | [1-9] [0-9]
409
- status-mid-2 ::= "0" [13-9] | [1-9] [0-9]
383
+ status-mid-2 ::= "0" [1-9] | [1-9] [0-9]
410
384
  status-mid-3 ::= "0" [1-9] | [1-9] [0-9]
411
385
  status-mid-4 ::= "9" [0-8] | [0-8] [0-9]
412
386
  tags ::= "[" tag tag-rest* "]"
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://schemas.plurnk.dev/v0/PlurnkStatement.json",
4
4
  "title": "PlurnkStatement",
5
- "description": "The parsed AST of one plurnk statement. Discriminated on `op`. SEND, KILL, WORK, and FORK have no `<L>` slot (`lineMarker` is always null for those); WORK and FORK also carry no signal (always null); EXEC's `<L>` slot carries an optional `<timeout,poll>`. `target` is the URI of the operand (parsed into ParsedPath structure); null when the operand slot was omitted. Body shape varies per op: matcher dialect for FIND/READ/OPEN/FOLD, raw string for EDIT/EXEC, ParsedPath for MOVE (destination URI), opaque raw string for COPY (a destination URI for entry copies, a prompt for run forks — the scheme handler interprets it), SendBody for SEND, opaque annotation string for KILL (no assigned runtime meaning; lands in the log), reasoning text for PLAN (recorded to the log; no other effect), and an opaque task string for WORK (spawn a fresh named worker) and FORK (branch the current run into a named child) — the `run://<name>` in target names the child.",
5
+ "description": "The parsed AST of one plurnk statement. Discriminated on `op`. KILL, WORK, and FORK have no `<L>` slot (`lineMarker` is always null for those); WORK and FORK also carry no signal (always null); SEND's `<L>` slot is the `<T>` park on a terminal [102] (wait up to T seconds, -1 = indefinite; null on mid-comms SENDs and other terminals); EXEC's `<L>` slot carries an optional `<timeout,poll>`. `target` is the URI of the operand (parsed into ParsedPath structure); null when the operand slot was omitted. Body shape varies per op: matcher dialect for FIND/READ/OPEN/FOLD, raw string for EDIT/EXEC, ParsedPath for MOVE (destination URI), opaque raw string for COPY (a destination URI for entry copies, a prompt for run forks — the scheme handler interprets it), SendBody for SEND, opaque annotation string for KILL (no assigned runtime meaning; lands in the log), reasoning text for PLAN (recorded to the log; no other effect), and an opaque task string for WORK (spawn a fresh named worker) and FORK (branch the current run into a named child) — the `run://<name>` in target names the child.",
6
6
  "oneOf": [
7
7
  { "$ref": "#/$defs/FindStatement" },
8
8
  { "$ref": "#/$defs/ReadStatement" },
@@ -164,7 +164,7 @@
164
164
  ]
165
165
  },
166
166
  "target": { "$ref": "#/$defs/PathOrNull" },
167
- "lineMarker": { "type": "null" },
167
+ "lineMarker": { "$ref": "#/$defs/LineMarkerOrNull" },
168
168
  "body": { "$ref": "#/$defs/SendBodyOrNull" },
169
169
  "position": { "$ref": "#/$defs/PositionRef" }
170
170
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AstBuilder.d.ts","sourceRoot":"","sources":["../../src/AstBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGR,eAAe,EAaf,UAAU,EAGV,eAAe,EACf,QAAQ,EAMX,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAER,sBAAsB,EActB,gBAAgB,EAChB,mBAAmB,EAGtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGH,oBAAoB,EACpB,oBAAoB,EAGvB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,QAAQ,OAAO,CAAC;IACnB,SAAgB,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;CACtD;AAQD,MAAM,CAAC,OAAO,OAAO,UAAU;;IAG3B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,eAAe;IA+CxH,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,sBAAsB,GAAG,eAAe;IAgUhE;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,QAAiC,GAAG,UAAU,GAAG,IAAI;CAgJ3F"}
1
+ {"version":3,"file":"AstBuilder.d.ts","sourceRoot":"","sources":["../../src/AstBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGR,eAAe,EAaf,UAAU,EAGV,eAAe,EACf,QAAQ,EAMX,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAER,sBAAsB,EActB,gBAAgB,EAChB,mBAAmB,EAGtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGH,oBAAoB,EACpB,oBAAoB,EAGvB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,QAAQ,OAAO,CAAC;IACnB,SAAgB,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;CACtD;AAQD,MAAM,CAAC,OAAO,OAAO,UAAU;;IAG3B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,eAAe;IA+CxH,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,sBAAsB,GAAG,eAAe;IAkUhE;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,QAAiC,GAAG,UAAU,GAAG,IAAI;CAgJ3F"}
@@ -201,7 +201,9 @@ export default class AstBuilder {
201
201
  op: "SEND",
202
202
  suffix: AstBuilder.#splitSuffix(ctx.OPEN_SEND().getText(), "SEND"),
203
203
  ...slots,
204
- lineMarker: null,
204
+ // The `<T>` park on a terminal [102] (#54): wait up to T seconds, -1 = indefinite.
205
+ // Only the terminal rule carries a marker (midSend has none -> null).
206
+ lineMarker: AstBuilder.#lineMarkerFromCtx(AstBuilder.#findFirst(ctx, LineMarkerContext)),
205
207
  body: raw !== null ? AstBuilder.#parseSendBody(raw) : null,
206
208
  position,
207
209
  };
@@ -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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"}
@@ -4,11 +4,11 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
4
4
  static #OFFENDING_CHAR_RE = /at: '([^']*)'$/;
5
5
  static #LEXER_MODE_CONTEXT = {
6
6
  DEFAULT_MODE: "between statements",
7
- SLOTS: "in slot region expected `[signal]`, `(target)`, `<L>`, or `:body:` (any order)",
8
- SIGNAL_TAGS: "in tag signal expected tag, `,`, or `]`",
9
- SIGNAL_INT: "in signal expected integer for SEND/KILL, then `]`",
10
- SIGNAL_IDENT: "in signal expected executor for EXEC, then `]`",
11
- TARGET: "in target slot expected URI characters or `)`",
7
+ SLOTS: "in slot region - expected `[signal]`, `(target)`, `<L>`, or `:body:` (any order)",
8
+ SIGNAL_TAGS: "in tag signal - expected tag, `,`, or `]`",
9
+ SIGNAL_INT: "in signal - expected integer for SEND/KILL, then `]`",
10
+ SIGNAL_IDENT: "in signal - expected executor for EXEC, then `]`",
11
+ TARGET: "in target slot - expected URI characters or `)`",
12
12
  BODY: "in body",
13
13
  };
14
14
  static #SLOT_BY_TOKEN = {
@@ -68,7 +68,7 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
68
68
  if (types.length === 0)
69
69
  return null;
70
70
  // Every OPEN_<OP> token maps to the same canon name (`open tag <<OPsuffix`), so a
71
- // statement-position expected-set yields that phrase 10+ times. Dedup to one entry
71
+ // statement-position expected-set yields that phrase 10+ times. Dedup to one entry -
72
72
  // the model needs the distinct options, not the alternation count.
73
73
  const names = [...new Set(types
74
74
  .map((t) => PlurnkErrorStrategy.#SLOT_BY_TOKEN[t])
@@ -1 +1 @@
1
- {"version":3,"file":"PlurnkParser.d.ts","sourceRoot":"","sources":["../../src/PlurnkParser.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAa,WAAW,EAA6B,MAAM,YAAY,CAAC;AAsBrG,MAAM,CAAC,OAAO,OAAO,YAAY;;IAO7B,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAmGxC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAQlD,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAO3C,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,eAAe,CAAC;CAmHlE"}
1
+ {"version":3,"file":"PlurnkParser.d.ts","sourceRoot":"","sources":["../../src/PlurnkParser.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAa,WAAW,EAA6B,MAAM,YAAY,CAAC;AAsBrG,MAAM,CAAC,OAAO,OAAO,YAAY;;IAO7B,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IA+JxC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAQlD,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAO3C,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,eAAe,CAAC;CAoHlE"}
@@ -16,7 +16,7 @@ const STATEMENT_RULES = new Set([
16
16
  plurnkParser.RULE_sendStatement,
17
17
  plurnkParser.RULE_clientStatement,
18
18
  ]);
19
- // Container rules whose children hold the statements extraction recurses through these.
19
+ // Container rules whose children hold the statements - extraction recurses through these.
20
20
  // `turnStatement` is the `<<TURN…:…:TURN` wrapper (log); `turnContent` is the sandwich inside
21
21
  // it (and document's single turn). Recursing both flattens a wrapped log to its ops in order.
22
22
  const CONTAINER_RULES = new Set([
@@ -27,7 +27,7 @@ export default class PlurnkParser {
27
27
  // Parse a model TURN. Two hard requirements: a PLAN anchor (first op, only free-text
28
28
  // preamble may precede it) and a terminal SEND (carries the loop status code). A PLAN-less
29
29
  // or SEND-less packet does NOT parse and surfaces as error items. Prose is tolerated
30
- // anywhere else (preamble, between ops, trailing) and surfaces as text items in Plurnk
30
+ // anywhere else (preamble, between ops, trailing) and surfaces as text items - in Plurnk
31
31
  // Script that prose is the comment mechanism. The GBNF rail already requires PLAN, so the
32
32
  // rail and the parser agree (prose tolerance is the only place the parser stays lenient).
33
33
  static parse(input) {
@@ -37,9 +37,13 @@ export default class PlurnkParser {
37
37
  // refine the model-facing message set; neither changes what parsed.
38
38
  PlurnkParser.#flagNearMissOps(result.items);
39
39
  PlurnkParser.#imperativeTurnShape(result.items);
40
+ PlurnkParser.#imperativeMidTermination(result.items);
40
41
  return result;
41
42
  }
42
- // Curated op-name confusions (semantic + dead-verb), NOT edit-distance — a full
43
+ // The terminal disposition set (#54): 102 continue (optionally parked), 200 done,
44
+ // 300 stop-the-world question, 499 abandon. 202 retired.
45
+ static #DISPOSITIONS = new Set([102, 200, 300, 499]);
46
+ // Curated op-name confusions (semantic + dead-verb), NOT edit-distance - a full
43
47
  // `<<Word…:Word` heredoc carrying one of these is unambiguously an intended op, so the
44
48
  // false-positive rate is ~0. Bodies are never scanned (only DEFAULT-mode text items), so
45
49
  // the model's legitimate suffixed/embedded code is immune by construction.
@@ -51,11 +55,11 @@ export default class PlurnkParser {
51
55
  WRITE: "`<<EDIT`", CREATE: "`<<EDIT`", UPDATE: "`<<EDIT`", SET: "`<<EDIT`",
52
56
  LIST: "`<<FIND`", SEARCH: "`<<FIND`", GREP: "`<<FIND`", QUERY: "`<<FIND`",
53
57
  RUN: "`<<EXEC`", SHELL: "`<<EXEC`",
54
- SPAWN: "`<<EDIT(run://name)` to spawn a run", FORK: "`<<COPY(run://self)` to fork the run",
58
+ SPAWN: "`<<WORK(run://name)` to spawn a worker run", DELEGATE: "`<<WORK(run://name)` to spawn a worker run",
55
59
  };
56
60
  // Surface near-miss ops that the forgiving parser swallowed as prose: a `<<Word…:Word`
57
61
  // heredoc whose keyword is a known confusion (`<<CLOSE`, `<<DELETE`, …). Emits a WARNING
58
- // (never an error the input parsed), so a silent swallow becomes a steer toward canon.
62
+ // (never an error - the input parsed), so a silent swallow becomes a steer toward canon.
59
63
  static #flagNearMissOps(items) {
60
64
  const additions = [];
61
65
  items.forEach((item, idx) => {
@@ -94,9 +98,11 @@ export default class PlurnkParser {
94
98
  // judge the terminal SEND (it never reached statement position), so we only direct the
95
99
  // model to the anchor; a present-PLAN, absent-SEND turn gets the terminator imperative.
96
100
  static #imperativeTurnShape(items) {
97
- const ops = items.filter((i) => i.kind === "statement").map((i) => i.statement.op);
98
- const hasPlan = ops.includes("PLAN");
99
- const hasSend = ops.includes("SEND");
101
+ const hasPlan = items.some((i) => i.kind === "statement" && i.statement.op === "PLAN");
102
+ // A turn terminates on a DISPOSITION-coded SEND only — a mid-comms SEND (e.g. the
103
+ // retired 202, now an ordinary code) does not satisfy the terminal requirement, so a
104
+ // turn ending on one still gets the end-with-terminal imperative (the migration steer).
105
+ const hasSend = items.some((i) => i.kind === "statement" && i.statement.op === "SEND" && PlurnkParser.#DISPOSITIONS.has(i.statement.signal));
100
106
  if (hasPlan && hasSend)
101
107
  return;
102
108
  const isStructErr = (i) => i.kind === "error" && i.error.source === "parser" && i.error.severity === "error";
@@ -111,30 +117,78 @@ export default class PlurnkParser {
111
117
  items.push(...kept);
112
118
  // Only add the anchor imperative when the shape is CLEANLY incomplete. If a lexer or
113
119
  // visitor error is present, the turn derailed mid-op (e.g. an unclosed target), so the
114
- // missing PLAN/SEND is a parse artifact, not the real fix that specific error plus the
120
+ // missing PLAN/SEND is a parse artifact, not the real fix - that specific error plus the
115
121
  // unparsedTail is the actionable guidance, and an imperative would mislead.
116
122
  const hasSpecificError = items.some((i) => i.kind === "error" && i.error.severity === "error" && i.error.source !== "parser");
117
123
  if (hasSpecificError)
118
124
  return;
119
125
  const fix = !hasPlan
120
126
  ? "a turn must begin with `<<PLAN:…:PLAN` (the required first operation)"
121
- : "a turn must end with a terminal `<<SEND[code]:…:SEND` carrying the loop status";
127
+ : "a turn must end with a terminal `<<SEND[102|200|300|499]:…:SEND` carrying the loop status";
122
128
  items.push({ kind: "error", error: new PlurnkParseError(anchor.line, anchor.column, "parser", fix) });
123
129
  }
124
- // Parse a bare sequence of statements teaching-example collections, single ops,
130
+ // Lift the mid-turn-termination error. A disposition-coded SEND (102/200/300/499) IS the
131
+ // turn terminal (grammar 0.74.52/0.74.53), so an op or second SEND after one is a genuine
132
+ // error - but the parser reports only a generic "unexpected open tag". Rewrite it to the rule.
133
+ // Runs after the begin/end imperative (which handles the incomplete-shape case and, for a
134
+ // complete-but-trailing turn, returns early leaving this error in place to rewrite).
135
+ static #imperativeMidTermination(items) {
136
+ // If the turn derailed mid-op (a lexer/visitor error - e.g. an unclosed signal), a partial
137
+ // disposition SEND may have been recovered; that derailment is the real issue, so don't
138
+ // mislabel its fallout as a mid-termination. Mirrors #imperativeTurnShape's guard.
139
+ if (items.some((i) => i.kind === "error" && i.error.severity === "error" && i.error.source !== "parser"))
140
+ return;
141
+ const terminal = items.find((i) => i.kind === "statement" && i.statement.op === "SEND" && PlurnkParser.#DISPOSITIONS.has(i.statement.signal));
142
+ if (!terminal)
143
+ return;
144
+ const t = terminal.statement.position;
145
+ for (const i of items) {
146
+ if (i.kind !== "error" || i.error.source !== "parser" || i.error.severity !== "error")
147
+ continue;
148
+ const after = i.error.line > t.line || (i.error.line === t.line && i.error.column > t.column);
149
+ if (!after)
150
+ continue;
151
+ i.error = new PlurnkParseError(i.error.line, i.error.column, "parser", "a disposition SEND (code 102/200/300/499) ends the turn - nothing may follow it");
152
+ }
153
+ }
154
+ // Collapse a lexer per-character cascade: the SIGNAL/TARGET modes emit one 'unrecognized
155
+ // character' error PER bad char, so a single malformed `[signal]` floods 10+ near-identical
156
+ // rows. Keep the first of each consecutive same-context run (adjacent columns, same mode
157
+ // context) - the model needs one steer to the fix, not a per-character wall. Mutates in place.
158
+ static #dedupeLexerCascade(errors) {
159
+ for (let i = errors.length - 1; i >= 1; i--) {
160
+ const cur = errors[i];
161
+ const prev = errors[i - 1];
162
+ if (cur.source !== "lexer" || prev.source !== "lexer")
163
+ continue;
164
+ if (cur.line !== prev.line || cur.column !== prev.column + 1)
165
+ continue;
166
+ if (PlurnkParser.#lexerContext(cur.message) !== PlurnkParser.#lexerContext(prev.message))
167
+ continue;
168
+ errors.splice(i, 1);
169
+ }
170
+ }
171
+ // The mode-context tail of a lexer message (the part after `unrecognized character <ch> `),
172
+ // e.g. `in signal - expected integer for SEND/KILL, then \`]\``. Two adjacent chars sharing
173
+ // it belong to the same cascade.
174
+ static #lexerContext(message) {
175
+ const m = /unrecognized character (?:'[^']*'|end of input) (.+)$/.exec(message);
176
+ return m ? m[1] : message;
177
+ }
178
+ // Parse a bare sequence of statements - teaching-example collections, single ops,
125
179
  // documentation snippets. Strict: statements only (whitespace is hidden), no prose,
126
180
  // no turn shape. Not for model output; use `parse` for that.
127
181
  static parseStatements(input) {
128
182
  return PlurnkParser.#run(input, (parser) => parser.statementSeq());
129
183
  }
130
- // Parse a multi-turn LOG a saved sequence of turns, each a full PLAN-anchored sandwich
184
+ // Parse a multi-turn LOG - a saved sequence of turns, each a full PLAN-anchored sandwich
131
185
  // (the v1 Plurnk Script substrate). Items are flat across turns, in source order; turn
132
186
  // boundaries are recoverable from the terminal SENDs. A log is valid (no error items, no
133
187
  // unparsedTail) iff every turn in it is a valid turn.
134
188
  static parseLog(input) {
135
189
  return PlurnkParser.#run(input, (parser) => parser.log());
136
190
  }
137
- // Parse the CLIENT tier a bare sequence of protocol statements plus the client-only utility
191
+ // Parse the CLIENT tier - a bare sequence of protocol statements plus the client-only utility
138
192
  // ops LOOK and BUFF. The topmost subset (one above Script); never used for model output. The
139
193
  // protocol entry points reject LOOK/BUFF, so a client op only parses here.
140
194
  static parseClient(input) {
@@ -151,6 +205,7 @@ export default class PlurnkParser {
151
205
  parser.addErrorListener(new RecordingListener("parser", errors));
152
206
  parser.errorHandler = new PlurnkErrorStrategy();
153
207
  const tree = parseFn(parser);
208
+ PlurnkParser.#dedupeLexerCascade(errors);
154
209
  const items = [];
155
210
  const consumedErrors = new Set();
156
211
  PlurnkParser.#collect(tree, errors, consumedErrors, items, buildFn);
@@ -165,12 +220,12 @@ export default class PlurnkParser {
165
220
  const from = { line: lexer.getOpenTagLine(), column: lexer.getOpenTagColumn() };
166
221
  const modeName = lexer.modeNames[lexer.mode] ?? "";
167
222
  const reason = modeName === "BODY"
168
- ? `body of \`<<${openTag}\` opened at line ${from.line} but never closed add \`:${openTag}\` to terminate`
223
+ ? `body of \`<<${openTag}\` opened at line ${from.line} but never closed - add \`:${openTag}\` to terminate`
169
224
  : modeName === "SIGNAL_TAGS" || modeName === "SIGNAL_INT" || modeName === "SIGNAL_IDENT"
170
- ? `signal slot of \`<<${openTag}\` opened at line ${from.line} but never closed add \`]\` to terminate the signal`
225
+ ? `signal slot of \`<<${openTag}\` opened at line ${from.line} but never closed - add \`]\` to terminate the signal`
171
226
  : modeName === "TARGET"
172
- ? `target slot of \`<<${openTag}\` opened at line ${from.line} but never closed add \`)\` to terminate the target`
173
- : `statement \`<<${openTag}\` opened at line ${from.line} but never reached its close tag add \`:${openTag}\` to terminate`;
227
+ ? `target slot of \`<<${openTag}\` opened at line ${from.line} but never closed - add \`)\` to terminate the target`
228
+ : `statement \`<<${openTag}\` opened at line ${from.line} but never reached its close tag - add \`:${openTag}\` to terminate`;
174
229
  unparsedTail = { from, reason };
175
230
  }
176
231
  return { items, unparsedTail };
@@ -205,7 +260,7 @@ export default class PlurnkParser {
205
260
  }
206
261
  catch (e) {
207
262
  // A genuine visitor contract violation (e.g. a malformed URI) is a
208
- // PlurnkParseError surface it as an error item. Anything else is an
263
+ // PlurnkParseError - surface it as an error item. Anything else is an
209
264
  // internal bug, not a parse error: let it crash rather than masquerade
210
265
  // as a model-facing parse-error item (#45).
211
266
  if (!(e instanceof PlurnkParseError))