@plurnk/plurnk-contracts 1.9.2 → 1.10.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 (32) hide show
  1. package/SPEC.md +33 -6
  2. package/dist/conformance/agui-v1.json +32 -1
  3. package/dist/plurnk.gemma.gbnf +2 -1
  4. package/dist/plurnk.qwen.gbnf +2 -1
  5. package/dist/schema/PlurnkStatement.json +611 -161
  6. package/dist/src/ApplicationPort.d.ts +7 -0
  7. package/dist/src/ApplicationPort.d.ts.map +1 -1
  8. package/dist/src/AstBuilder.d.ts +2 -0
  9. package/dist/src/AstBuilder.d.ts.map +1 -1
  10. package/dist/src/AstBuilder.js +57 -13
  11. package/dist/src/AstBuilder.js.map +1 -1
  12. package/dist/src/PlurnkErrorStrategy.js +8 -8
  13. package/dist/src/PlurnkErrorStrategy.js.map +1 -1
  14. package/dist/src/PlurnkParser.d.ts.map +1 -1
  15. package/dist/src/PlurnkParser.js +18 -2
  16. package/dist/src/PlurnkParser.js.map +1 -1
  17. package/dist/src/generated/plurnkLexer.d.ts +12 -0
  18. package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
  19. package/dist/src/generated/plurnkLexer.js +429 -367
  20. package/dist/src/generated/plurnkLexer.js.map +1 -1
  21. package/dist/src/generated/plurnkParser.d.ts +19 -9
  22. package/dist/src/generated/plurnkParser.d.ts.map +1 -1
  23. package/dist/src/generated/plurnkParser.js +564 -659
  24. package/dist/src/generated/plurnkParser.js.map +1 -1
  25. package/dist/src/generated/plurnkParserVisitor.d.ts +7 -0
  26. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
  27. package/dist/src/generated/plurnkParserVisitor.js +6 -0
  28. package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
  29. package/dist/src/types.generated.d.ts +1 -0
  30. package/dist/src/types.generated.d.ts.map +1 -1
  31. package/package.json +1 -1
  32. package/plurnk.md +76 -141
@@ -4,30 +4,68 @@
4
4
  "title": "PlurnkStatement",
5
5
  "description": "The parsed AST union for one protocol statement, discriminated by `op`. Every variant has fixed signal, target, lineMarker, annotation, body, delimiter, and source-position fields; operation-specific schemas constrain their types. A null field records an omitted tolerated slot and does not satisfy runtime requirements by itself.",
6
6
  "oneOf": [
7
- { "$ref": "#/$defs/FindStatement" },
8
- { "$ref": "#/$defs/ReadStatement" },
9
- { "$ref": "#/$defs/OpenStatement" },
10
- { "$ref": "#/$defs/FoldStatement" },
11
- { "$ref": "#/$defs/EditStatement" },
12
- { "$ref": "#/$defs/CopyStatement" },
13
- { "$ref": "#/$defs/MoveStatement" },
14
- { "$ref": "#/$defs/SendStatement" },
15
- { "$ref": "#/$defs/ExecStatement" },
16
- { "$ref": "#/$defs/BareStatement" },
17
- { "$ref": "#/$defs/WorkStatement" },
18
- { "$ref": "#/$defs/ForkStatement" },
19
- { "$ref": "#/$defs/KillStatement" },
20
- { "$ref": "#/$defs/PlanStatement" }
7
+ {
8
+ "$ref": "#/$defs/FindStatement"
9
+ },
10
+ {
11
+ "$ref": "#/$defs/ReadStatement"
12
+ },
13
+ {
14
+ "$ref": "#/$defs/OpenStatement"
15
+ },
16
+ {
17
+ "$ref": "#/$defs/FoldStatement"
18
+ },
19
+ {
20
+ "$ref": "#/$defs/EditStatement"
21
+ },
22
+ {
23
+ "$ref": "#/$defs/CopyStatement"
24
+ },
25
+ {
26
+ "$ref": "#/$defs/MoveStatement"
27
+ },
28
+ {
29
+ "$ref": "#/$defs/SendStatement"
30
+ },
31
+ {
32
+ "$ref": "#/$defs/ExecStatement"
33
+ },
34
+ {
35
+ "$ref": "#/$defs/BareStatement"
36
+ },
37
+ {
38
+ "$ref": "#/$defs/WorkStatement"
39
+ },
40
+ {
41
+ "$ref": "#/$defs/ForkStatement"
42
+ },
43
+ {
44
+ "$ref": "#/$defs/KillStatement"
45
+ },
46
+ {
47
+ "$ref": "#/$defs/PlanStatement"
48
+ }
21
49
  ],
22
50
  "$defs": {
23
51
  "TagSignal": {
24
52
  "oneOf": [
25
- { "type": "array", "items": { "type": "string" } },
26
- { "type": "null" }
53
+ {
54
+ "type": "array",
55
+ "items": {
56
+ "type": "string"
57
+ }
58
+ },
59
+ {
60
+ "type": "null"
61
+ }
27
62
  ]
28
63
  },
29
64
  "AnnotationOrNull": {
30
- "type": ["string", "null"]
65
+ "type": [
66
+ "string",
67
+ "null"
68
+ ]
31
69
  },
32
70
  "AppliedTagSignal": {
33
71
  "oneOf": [
@@ -38,7 +76,9 @@
38
76
  "pattern": "^\\+?[^+\\-\\[\\],\\s\\u0000-\\u001F\\u007F-\\u009F][^\\[\\],\\s\\u0000-\\u001F\\u007F-\\u009F]*$"
39
77
  }
40
78
  },
41
- { "type": "null" }
79
+ {
80
+ "type": "null"
81
+ }
42
82
  ]
43
83
  },
44
84
  "CurationTagSignal": {
@@ -50,43 +90,69 @@
50
90
  "pattern": "^[+-]?[^+\\-\\[\\],\\s\\u0000-\\u001F\\u007F-\\u009F][^\\[\\],\\s\\u0000-\\u001F\\u007F-\\u009F]*$"
51
91
  }
52
92
  },
53
- { "type": "null" }
93
+ {
94
+ "type": "null"
95
+ }
54
96
  ]
55
97
  },
56
98
  "PathOrNull": {
57
99
  "oneOf": [
58
- { "$ref": "https://schemas.plurnk.xyz/v0/ParsedPath.json" },
59
- { "type": "null" }
100
+ {
101
+ "$ref": "https://schemas.plurnk.xyz/v0/ParsedPath.json"
102
+ },
103
+ {
104
+ "type": "null"
105
+ }
60
106
  ]
61
107
  },
62
108
  "LineMarkerOrNull": {
63
109
  "oneOf": [
64
- { "$ref": "https://schemas.plurnk.xyz/v0/LineMarker.json" },
65
- { "type": "null" }
110
+ {
111
+ "$ref": "https://schemas.plurnk.xyz/v0/LineMarker.json"
112
+ },
113
+ {
114
+ "type": "null"
115
+ }
66
116
  ]
67
117
  },
68
118
  "TextLineMarkerOrNull": {
69
119
  "oneOf": [
70
- { "$ref": "https://schemas.plurnk.xyz/v0/TextLineMarker.json" },
71
- { "type": "null" }
120
+ {
121
+ "$ref": "https://schemas.plurnk.xyz/v0/TextLineMarker.json"
122
+ },
123
+ {
124
+ "type": "null"
125
+ }
72
126
  ]
73
127
  },
74
128
  "MatcherBodyOrNull": {
75
129
  "oneOf": [
76
- { "$ref": "https://schemas.plurnk.xyz/v0/MatcherBody.json" },
77
- { "type": "null" }
130
+ {
131
+ "$ref": "https://schemas.plurnk.xyz/v0/MatcherBody.json"
132
+ },
133
+ {
134
+ "type": "null"
135
+ }
78
136
  ]
79
137
  },
80
138
  "SendBodyOrNull": {
81
139
  "oneOf": [
82
- { "$ref": "https://schemas.plurnk.xyz/v0/SendBody.json" },
83
- { "type": "null" }
140
+ {
141
+ "$ref": "https://schemas.plurnk.xyz/v0/SendBody.json"
142
+ },
143
+ {
144
+ "type": "null"
145
+ }
84
146
  ]
85
147
  },
86
148
  "ResourceSelectionOrNull": {
87
149
  "oneOf": [
88
- { "$ref": "https://schemas.plurnk.xyz/v0/ResourceSelection.json" },
89
- { "type": "null" }
150
+ {
151
+ "$ref": "https://schemas.plurnk.xyz/v0/ResourceSelection.json"
152
+ },
153
+ {
154
+ "type": "null"
155
+ }
90
156
  ]
91
157
  },
92
158
  "PositionRef": {
@@ -94,232 +160,616 @@
94
160
  },
95
161
  "FindStatement": {
96
162
  "type": "object",
97
- "required": ["op", "delimiter", "annotation", "signal", "target", "lineMarker", "body", "position"],
163
+ "required": [
164
+ "op",
165
+ "delimiter",
166
+ "annotation",
167
+ "signal",
168
+ "target",
169
+ "lineMarker",
170
+ "body",
171
+ "position"
172
+ ],
98
173
  "additionalProperties": false,
99
174
  "properties": {
100
- "op": { "const": "FIND" },
101
- "delimiter": { "type": "string" },
102
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
103
- "signal": { "$ref": "#/$defs/AppliedTagSignal" },
104
- "target": { "$ref": "#/$defs/PathOrNull" },
105
- "lineMarker": { "$ref": "#/$defs/LineMarkerOrNull" },
106
- "body": { "$ref": "#/$defs/MatcherBodyOrNull" },
107
- "position": { "$ref": "#/$defs/PositionRef" }
175
+ "op": {
176
+ "const": "FIND"
177
+ },
178
+ "delimiter": {
179
+ "type": "string"
180
+ },
181
+ "annotation": {
182
+ "$ref": "#/$defs/AnnotationOrNull"
183
+ },
184
+ "signal": {
185
+ "$ref": "#/$defs/AppliedTagSignal"
186
+ },
187
+ "target": {
188
+ "$ref": "#/$defs/PathOrNull"
189
+ },
190
+ "lineMarker": {
191
+ "$ref": "#/$defs/LineMarkerOrNull"
192
+ },
193
+ "body": {
194
+ "$ref": "#/$defs/MatcherBodyOrNull"
195
+ },
196
+ "position": {
197
+ "$ref": "#/$defs/PositionRef"
198
+ }
108
199
  }
109
200
  },
110
201
  "ReadStatement": {
111
202
  "type": "object",
112
- "required": ["op", "delimiter", "annotation", "signal", "target", "lineMarker", "body", "position"],
203
+ "required": [
204
+ "op",
205
+ "delimiter",
206
+ "annotation",
207
+ "signal",
208
+ "target",
209
+ "lineMarker",
210
+ "body",
211
+ "position"
212
+ ],
113
213
  "additionalProperties": false,
114
214
  "properties": {
115
- "op": { "const": "READ" },
116
- "delimiter": { "type": "string" },
117
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
118
- "signal": { "$ref": "#/$defs/AppliedTagSignal" },
119
- "target": { "$ref": "#/$defs/PathOrNull" },
120
- "lineMarker": { "$ref": "#/$defs/TextLineMarkerOrNull" },
121
- "body": { "type": "null" },
122
- "position": { "$ref": "#/$defs/PositionRef" }
215
+ "op": {
216
+ "const": "READ"
217
+ },
218
+ "delimiter": {
219
+ "type": "string"
220
+ },
221
+ "annotation": {
222
+ "$ref": "#/$defs/AnnotationOrNull"
223
+ },
224
+ "signal": {
225
+ "$ref": "#/$defs/AppliedTagSignal"
226
+ },
227
+ "target": {
228
+ "$ref": "#/$defs/PathOrNull"
229
+ },
230
+ "lineMarker": {
231
+ "$ref": "#/$defs/TextLineMarkerOrNull"
232
+ },
233
+ "body": {
234
+ "type": "null"
235
+ },
236
+ "position": {
237
+ "$ref": "#/$defs/PositionRef"
238
+ }
123
239
  }
124
240
  },
125
241
  "OpenStatement": {
126
242
  "type": "object",
127
- "required": ["op", "delimiter", "annotation", "signal", "target", "lineMarker", "body", "position"],
243
+ "required": [
244
+ "op",
245
+ "delimiter",
246
+ "annotation",
247
+ "signal",
248
+ "target",
249
+ "lineMarker",
250
+ "body",
251
+ "position"
252
+ ],
128
253
  "additionalProperties": false,
129
254
  "properties": {
130
- "op": { "const": "OPEN" },
131
- "delimiter": { "type": "string" },
132
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
133
- "signal": { "$ref": "#/$defs/CurationTagSignal" },
134
- "target": { "$ref": "#/$defs/PathOrNull" },
135
- "lineMarker": { "$ref": "#/$defs/TextLineMarkerOrNull" },
136
- "body": { "$ref": "#/$defs/MatcherBodyOrNull" },
137
- "position": { "$ref": "#/$defs/PositionRef" }
255
+ "op": {
256
+ "const": "OPEN"
257
+ },
258
+ "delimiter": {
259
+ "type": "string"
260
+ },
261
+ "annotation": {
262
+ "$ref": "#/$defs/AnnotationOrNull"
263
+ },
264
+ "signal": {
265
+ "$ref": "#/$defs/CurationTagSignal"
266
+ },
267
+ "target": {
268
+ "$ref": "#/$defs/PathOrNull"
269
+ },
270
+ "lineMarker": {
271
+ "$ref": "#/$defs/TextLineMarkerOrNull"
272
+ },
273
+ "body": {
274
+ "$ref": "#/$defs/MatcherBodyOrNull"
275
+ },
276
+ "position": {
277
+ "$ref": "#/$defs/PositionRef"
278
+ }
138
279
  }
139
280
  },
140
281
  "FoldStatement": {
141
282
  "type": "object",
142
- "required": ["op", "delimiter", "annotation", "signal", "target", "lineMarker", "body", "position"],
283
+ "required": [
284
+ "op",
285
+ "delimiter",
286
+ "annotation",
287
+ "signal",
288
+ "target",
289
+ "lineMarker",
290
+ "body",
291
+ "position"
292
+ ],
143
293
  "additionalProperties": false,
144
294
  "properties": {
145
- "op": { "const": "FOLD" },
146
- "delimiter": { "type": "string" },
147
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
148
- "signal": { "$ref": "#/$defs/CurationTagSignal" },
149
- "target": { "$ref": "#/$defs/PathOrNull" },
150
- "lineMarker": { "$ref": "#/$defs/TextLineMarkerOrNull" },
151
- "body": { "$ref": "#/$defs/MatcherBodyOrNull" },
152
- "position": { "$ref": "#/$defs/PositionRef" }
295
+ "op": {
296
+ "const": "FOLD"
297
+ },
298
+ "delimiter": {
299
+ "type": "string"
300
+ },
301
+ "annotation": {
302
+ "$ref": "#/$defs/AnnotationOrNull"
303
+ },
304
+ "signal": {
305
+ "$ref": "#/$defs/CurationTagSignal"
306
+ },
307
+ "target": {
308
+ "$ref": "#/$defs/PathOrNull"
309
+ },
310
+ "lineMarker": {
311
+ "$ref": "#/$defs/TextLineMarkerOrNull"
312
+ },
313
+ "body": {
314
+ "$ref": "#/$defs/MatcherBodyOrNull"
315
+ },
316
+ "position": {
317
+ "$ref": "#/$defs/PositionRef"
318
+ }
153
319
  }
154
320
  },
155
321
  "EditStatement": {
156
322
  "type": "object",
157
- "required": ["op", "delimiter", "annotation", "signal", "target", "lineMarker", "body", "position"],
323
+ "required": [
324
+ "op",
325
+ "delimiter",
326
+ "annotation",
327
+ "signal",
328
+ "target",
329
+ "lineMarker",
330
+ "body",
331
+ "position"
332
+ ],
158
333
  "additionalProperties": false,
159
334
  "properties": {
160
- "op": { "const": "EDIT" },
161
- "delimiter": { "type": "string" },
162
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
163
- "signal": { "$ref": "#/$defs/AppliedTagSignal" },
164
- "target": { "$ref": "#/$defs/PathOrNull" },
165
- "lineMarker": { "$ref": "#/$defs/TextLineMarkerOrNull" },
166
- "body": { "type": ["string", "null"] },
167
- "position": { "$ref": "#/$defs/PositionRef" }
335
+ "op": {
336
+ "const": "EDIT"
337
+ },
338
+ "delimiter": {
339
+ "type": "string"
340
+ },
341
+ "annotation": {
342
+ "$ref": "#/$defs/AnnotationOrNull"
343
+ },
344
+ "signal": {
345
+ "$ref": "#/$defs/AppliedTagSignal"
346
+ },
347
+ "target": {
348
+ "$ref": "#/$defs/PathOrNull"
349
+ },
350
+ "lineMarker": {
351
+ "$ref": "#/$defs/TextLineMarkerOrNull"
352
+ },
353
+ "body": {
354
+ "type": [
355
+ "string",
356
+ "null"
357
+ ]
358
+ },
359
+ "position": {
360
+ "$ref": "#/$defs/PositionRef"
361
+ }
168
362
  }
169
363
  },
170
364
  "CopyStatement": {
171
365
  "type": "object",
172
- "required": ["op", "delimiter", "annotation", "signal", "target", "lineMarker", "body", "position"],
366
+ "required": [
367
+ "op",
368
+ "delimiter",
369
+ "annotation",
370
+ "signal",
371
+ "target",
372
+ "lineMarker",
373
+ "body",
374
+ "position"
375
+ ],
173
376
  "additionalProperties": false,
174
377
  "properties": {
175
- "op": { "const": "COPY" },
176
- "delimiter": { "type": "string" },
177
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
178
- "signal": { "$ref": "#/$defs/AppliedTagSignal" },
179
- "target": { "$ref": "#/$defs/PathOrNull" },
180
- "lineMarker": { "$ref": "#/$defs/TextLineMarkerOrNull" },
181
- "body": { "$ref": "#/$defs/ResourceSelectionOrNull" },
182
- "position": { "$ref": "#/$defs/PositionRef" }
378
+ "op": {
379
+ "const": "COPY"
380
+ },
381
+ "delimiter": {
382
+ "type": "string"
383
+ },
384
+ "annotation": {
385
+ "$ref": "#/$defs/AnnotationOrNull"
386
+ },
387
+ "signal": {
388
+ "$ref": "#/$defs/AppliedTagSignal"
389
+ },
390
+ "target": {
391
+ "$ref": "#/$defs/PathOrNull"
392
+ },
393
+ "lineMarker": {
394
+ "$ref": "#/$defs/TextLineMarkerOrNull"
395
+ },
396
+ "body": {
397
+ "$ref": "#/$defs/ResourceSelectionOrNull"
398
+ },
399
+ "position": {
400
+ "$ref": "#/$defs/PositionRef"
401
+ }
183
402
  }
184
403
  },
185
404
  "MoveStatement": {
186
405
  "type": "object",
187
- "required": ["op", "delimiter", "annotation", "signal", "target", "lineMarker", "body", "position"],
406
+ "required": [
407
+ "op",
408
+ "delimiter",
409
+ "annotation",
410
+ "signal",
411
+ "target",
412
+ "lineMarker",
413
+ "body",
414
+ "position"
415
+ ],
188
416
  "additionalProperties": false,
189
417
  "properties": {
190
- "op": { "const": "MOVE" },
191
- "delimiter": { "type": "string" },
192
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
193
- "signal": { "$ref": "#/$defs/AppliedTagSignal" },
194
- "target": { "$ref": "#/$defs/PathOrNull" },
195
- "lineMarker": { "$ref": "#/$defs/TextLineMarkerOrNull" },
196
- "body": { "$ref": "#/$defs/ResourceSelectionOrNull" },
197
- "position": { "$ref": "#/$defs/PositionRef" }
418
+ "op": {
419
+ "const": "MOVE"
420
+ },
421
+ "delimiter": {
422
+ "type": "string"
423
+ },
424
+ "annotation": {
425
+ "$ref": "#/$defs/AnnotationOrNull"
426
+ },
427
+ "signal": {
428
+ "$ref": "#/$defs/AppliedTagSignal"
429
+ },
430
+ "target": {
431
+ "$ref": "#/$defs/PathOrNull"
432
+ },
433
+ "lineMarker": {
434
+ "$ref": "#/$defs/TextLineMarkerOrNull"
435
+ },
436
+ "body": {
437
+ "$ref": "#/$defs/ResourceSelectionOrNull"
438
+ },
439
+ "position": {
440
+ "$ref": "#/$defs/PositionRef"
441
+ }
198
442
  }
199
443
  },
200
444
  "SendStatement": {
201
445
  "type": "object",
202
- "required": ["op", "delimiter", "annotation", "signal", "target", "lineMarker", "body", "position"],
446
+ "required": [
447
+ "op",
448
+ "delimiter",
449
+ "annotation",
450
+ "signal",
451
+ "target",
452
+ "lineMarker",
453
+ "body",
454
+ "position"
455
+ ],
203
456
  "additionalProperties": false,
204
457
  "properties": {
205
- "op": { "const": "SEND" },
206
- "delimiter": { "type": "string" },
207
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
458
+ "op": {
459
+ "const": "SEND"
460
+ },
461
+ "delimiter": {
462
+ "type": "string"
463
+ },
464
+ "annotation": {
465
+ "$ref": "#/$defs/AnnotationOrNull"
466
+ },
208
467
  "signal": {
209
468
  "oneOf": [
210
- { "type": "number" },
211
- { "type": "null" }
469
+ {
470
+ "type": "number"
471
+ },
472
+ {
473
+ "type": "null"
474
+ }
212
475
  ]
213
476
  },
214
- "target": { "$ref": "#/$defs/PathOrNull" },
215
- "lineMarker": { "$ref": "#/$defs/LineMarkerOrNull" },
216
- "body": { "$ref": "#/$defs/SendBodyOrNull" },
217
- "position": { "$ref": "#/$defs/PositionRef" }
477
+ "target": {
478
+ "$ref": "#/$defs/PathOrNull"
479
+ },
480
+ "lineMarker": {
481
+ "$ref": "#/$defs/LineMarkerOrNull"
482
+ },
483
+ "body": {
484
+ "$ref": "#/$defs/SendBodyOrNull"
485
+ },
486
+ "position": {
487
+ "$ref": "#/$defs/PositionRef"
488
+ }
218
489
  }
219
490
  },
220
491
  "ExecStatement": {
221
492
  "type": "object",
222
- "required": ["op", "delimiter", "annotation", "signal", "target", "lineMarker", "body", "position"],
493
+ "required": [
494
+ "op",
495
+ "delimiter",
496
+ "annotation",
497
+ "signal",
498
+ "target",
499
+ "lineMarker",
500
+ "body",
501
+ "position"
502
+ ],
223
503
  "additionalProperties": false,
224
504
  "properties": {
225
- "op": { "const": "EXEC" },
226
- "delimiter": { "type": "string" },
227
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
228
- "signal": { "type": ["string", "null"] },
229
- "target": { "$ref": "#/$defs/PathOrNull" },
230
- "lineMarker": { "$ref": "#/$defs/LineMarkerOrNull" },
231
- "body": { "type": ["string", "null"] },
232
- "position": { "$ref": "#/$defs/PositionRef" }
505
+ "op": {
506
+ "const": "EXEC"
507
+ },
508
+ "delimiter": {
509
+ "type": "string"
510
+ },
511
+ "annotation": {
512
+ "$ref": "#/$defs/AnnotationOrNull"
513
+ },
514
+ "signal": {
515
+ "type": [
516
+ "string",
517
+ "null"
518
+ ]
519
+ },
520
+ "target": {
521
+ "$ref": "#/$defs/PathOrNull"
522
+ },
523
+ "lineMarker": {
524
+ "$ref": "#/$defs/LineMarkerOrNull"
525
+ },
526
+ "body": {
527
+ "type": [
528
+ "string",
529
+ "null"
530
+ ]
531
+ },
532
+ "position": {
533
+ "$ref": "#/$defs/PositionRef"
534
+ },
535
+ "tags": {
536
+ "type": [
537
+ "array",
538
+ "null"
539
+ ],
540
+ "items": {
541
+ "type": "string"
542
+ }
543
+ }
233
544
  }
234
545
  },
235
546
  "BareStatement": {
236
547
  "type": "object",
237
- "required": ["op", "delimiter", "annotation", "signal", "target", "lineMarker", "body", "position"],
548
+ "required": [
549
+ "op",
550
+ "delimiter",
551
+ "annotation",
552
+ "signal",
553
+ "target",
554
+ "lineMarker",
555
+ "body",
556
+ "position"
557
+ ],
238
558
  "additionalProperties": false,
239
559
  "properties": {
240
- "op": { "const": "BARE" },
241
- "delimiter": { "type": "string" },
242
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
243
- "signal": { "$ref": "#/$defs/AppliedTagSignal" },
244
- "target": { "type": "null" },
245
- "lineMarker": { "type": "null" },
246
- "body": { "type": "string", "minLength": 1 },
247
- "position": { "$ref": "#/$defs/PositionRef" }
560
+ "op": {
561
+ "const": "BARE"
562
+ },
563
+ "delimiter": {
564
+ "type": "string"
565
+ },
566
+ "annotation": {
567
+ "$ref": "#/$defs/AnnotationOrNull"
568
+ },
569
+ "signal": {
570
+ "$ref": "#/$defs/AppliedTagSignal"
571
+ },
572
+ "target": {
573
+ "type": "null"
574
+ },
575
+ "lineMarker": {
576
+ "type": "null"
577
+ },
578
+ "body": {
579
+ "type": "string",
580
+ "minLength": 1
581
+ },
582
+ "position": {
583
+ "$ref": "#/$defs/PositionRef"
584
+ }
248
585
  }
249
586
  },
250
587
  "PlanStatement": {
251
588
  "type": "object",
252
- "required": ["op", "delimiter", "annotation", "signal", "target", "lineMarker", "body", "position"],
589
+ "required": [
590
+ "op",
591
+ "delimiter",
592
+ "annotation",
593
+ "signal",
594
+ "target",
595
+ "lineMarker",
596
+ "body",
597
+ "position"
598
+ ],
253
599
  "additionalProperties": false,
254
600
  "properties": {
255
- "op": { "const": "PLAN" },
256
- "delimiter": { "type": "string" },
257
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
258
- "signal": { "$ref": "#/$defs/TagSignal" },
259
- "target": { "$ref": "#/$defs/PathOrNull" },
260
- "lineMarker": { "$ref": "#/$defs/LineMarkerOrNull" },
261
- "body": { "$ref": "https://schemas.plurnk.xyz/v0/Plan.json" },
262
- "position": { "$ref": "#/$defs/PositionRef" }
601
+ "op": {
602
+ "const": "PLAN"
603
+ },
604
+ "delimiter": {
605
+ "type": "string"
606
+ },
607
+ "annotation": {
608
+ "$ref": "#/$defs/AnnotationOrNull"
609
+ },
610
+ "signal": {
611
+ "$ref": "#/$defs/TagSignal"
612
+ },
613
+ "target": {
614
+ "$ref": "#/$defs/PathOrNull"
615
+ },
616
+ "lineMarker": {
617
+ "$ref": "#/$defs/LineMarkerOrNull"
618
+ },
619
+ "body": {
620
+ "$ref": "https://schemas.plurnk.xyz/v0/Plan.json"
621
+ },
622
+ "position": {
623
+ "$ref": "#/$defs/PositionRef"
624
+ }
263
625
  }
264
626
  },
265
627
  "KillStatement": {
266
628
  "type": "object",
267
- "required": ["op", "delimiter", "annotation", "signal", "target", "lineMarker", "body", "position"],
629
+ "required": [
630
+ "op",
631
+ "delimiter",
632
+ "annotation",
633
+ "signal",
634
+ "target",
635
+ "lineMarker",
636
+ "body",
637
+ "position"
638
+ ],
268
639
  "additionalProperties": false,
269
640
  "properties": {
270
- "op": { "const": "KILL" },
271
- "delimiter": { "type": "string" },
272
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
641
+ "op": {
642
+ "const": "KILL"
643
+ },
644
+ "delimiter": {
645
+ "type": "string"
646
+ },
647
+ "annotation": {
648
+ "$ref": "#/$defs/AnnotationOrNull"
649
+ },
273
650
  "signal": {
274
651
  "oneOf": [
275
- { "type": "number" },
276
- { "type": "null" }
652
+ {
653
+ "type": "number"
654
+ },
655
+ {
656
+ "type": "null"
657
+ }
658
+ ]
659
+ },
660
+ "target": {
661
+ "$ref": "#/$defs/PathOrNull"
662
+ },
663
+ "lineMarker": {
664
+ "type": "null"
665
+ },
666
+ "body": {
667
+ "type": [
668
+ "string",
669
+ "null"
277
670
  ]
278
671
  },
279
- "target": { "$ref": "#/$defs/PathOrNull" },
280
- "lineMarker": { "type": "null" },
281
- "body": { "type": ["string", "null"] },
282
- "position": { "$ref": "#/$defs/PositionRef" }
672
+ "position": {
673
+ "$ref": "#/$defs/PositionRef"
674
+ }
283
675
  }
284
676
  },
285
677
  "WorkStatement": {
286
678
  "type": "object",
287
- "required": ["op", "delimiter", "annotation", "signal", "target", "lineMarker", "body", "position"],
679
+ "required": [
680
+ "op",
681
+ "delimiter",
682
+ "annotation",
683
+ "signal",
684
+ "target",
685
+ "lineMarker",
686
+ "body",
687
+ "position"
688
+ ],
288
689
  "additionalProperties": false,
289
690
  "properties": {
290
- "op": { "const": "WORK" },
291
- "delimiter": { "type": "string" },
292
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
691
+ "op": {
692
+ "const": "WORK"
693
+ },
694
+ "delimiter": {
695
+ "type": "string"
696
+ },
697
+ "annotation": {
698
+ "$ref": "#/$defs/AnnotationOrNull"
699
+ },
293
700
  "signal": {
294
701
  "oneOf": [
295
- { "type": "string", "minLength": 1 },
296
- { "type": "null" }
702
+ {
703
+ "type": "string",
704
+ "minLength": 1
705
+ },
706
+ {
707
+ "type": "null"
708
+ }
297
709
  ]
298
710
  },
299
- "target": { "$ref": "#/$defs/PathOrNull" },
300
- "lineMarker": { "type": "null" },
301
- "body": { "type": "string", "minLength": 1 },
302
- "position": { "$ref": "#/$defs/PositionRef" }
711
+ "target": {
712
+ "$ref": "#/$defs/PathOrNull"
713
+ },
714
+ "lineMarker": {
715
+ "type": "null"
716
+ },
717
+ "body": {
718
+ "type": "string",
719
+ "minLength": 1
720
+ },
721
+ "position": {
722
+ "$ref": "#/$defs/PositionRef"
723
+ }
303
724
  }
304
725
  },
305
726
  "ForkStatement": {
306
727
  "type": "object",
307
- "required": ["op", "delimiter", "annotation", "signal", "target", "lineMarker", "body", "position"],
728
+ "required": [
729
+ "op",
730
+ "delimiter",
731
+ "annotation",
732
+ "signal",
733
+ "target",
734
+ "lineMarker",
735
+ "body",
736
+ "position"
737
+ ],
308
738
  "additionalProperties": false,
309
739
  "properties": {
310
- "op": { "const": "FORK" },
311
- "delimiter": { "type": "string" },
312
- "annotation": { "$ref": "#/$defs/AnnotationOrNull" },
740
+ "op": {
741
+ "const": "FORK"
742
+ },
743
+ "delimiter": {
744
+ "type": "string"
745
+ },
746
+ "annotation": {
747
+ "$ref": "#/$defs/AnnotationOrNull"
748
+ },
313
749
  "signal": {
314
750
  "oneOf": [
315
- { "type": "string", "minLength": 1 },
316
- { "type": "null" }
751
+ {
752
+ "type": "string",
753
+ "minLength": 1
754
+ },
755
+ {
756
+ "type": "null"
757
+ }
317
758
  ]
318
759
  },
319
- "target": { "$ref": "#/$defs/PathOrNull" },
320
- "lineMarker": { "type": "null" },
321
- "body": { "type": "string", "minLength": 1 },
322
- "position": { "$ref": "#/$defs/PositionRef" }
760
+ "target": {
761
+ "$ref": "#/$defs/PathOrNull"
762
+ },
763
+ "lineMarker": {
764
+ "type": "null"
765
+ },
766
+ "body": {
767
+ "type": "string",
768
+ "minLength": 1
769
+ },
770
+ "position": {
771
+ "$ref": "#/$defs/PositionRef"
772
+ }
323
773
  }
324
774
  }
325
775
  }