@plurnk/plurnk-contracts 1.16.4 → 1.17.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 (88) hide show
  1. package/README.md +13 -29
  2. package/SPEC.md +605 -518
  3. package/dist/conformance/agui-v1.json +3 -3
  4. package/dist/schema/CapabilityProjection.json +2 -4
  5. package/dist/schema/ClientStatement.json +5 -52
  6. package/dist/schema/FunctionalityDefinitionState.json +2 -2
  7. package/dist/schema/LineMarker.json +1 -1
  8. package/dist/schema/LoopPolicy.json +2 -3
  9. package/dist/schema/MatcherBody.json +6 -6
  10. package/dist/schema/McpServerDefinition.json +17 -0
  11. package/dist/schema/ModelCatalogPage.json +10 -1
  12. package/dist/schema/ModelRoute.json +9 -0
  13. package/dist/schema/Notice.json +1 -1
  14. package/dist/schema/ParsedPath.json +3 -2
  15. package/dist/schema/Plan.json +9 -5
  16. package/dist/schema/PlurnkStatement.json +86 -134
  17. package/dist/schema/ProposalProjection.json +2 -1
  18. package/dist/schema/ResourceSelection.json +51 -27
  19. package/dist/schema/SkillDefinition.json +3 -3
  20. package/dist/src/AcpPlanValue.d.ts +0 -1
  21. package/dist/src/AcpPlanValue.d.ts.map +1 -1
  22. package/dist/src/AcpPlanValue.js +14 -13
  23. package/dist/src/AcpPlanValue.js.map +1 -1
  24. package/dist/src/ApplicationPort.d.ts +16 -14
  25. package/dist/src/ApplicationPort.d.ts.map +1 -1
  26. package/dist/src/AstBuilder.d.ts +3 -2
  27. package/dist/src/AstBuilder.d.ts.map +1 -1
  28. package/dist/src/AstBuilder.js +340 -187
  29. package/dist/src/AstBuilder.js.map +1 -1
  30. package/dist/src/JsonDocument.d.ts +2 -0
  31. package/dist/src/JsonDocument.d.ts.map +1 -0
  32. package/dist/src/JsonDocument.js +14 -0
  33. package/dist/src/JsonDocument.js.map +1 -0
  34. package/dist/src/LoopLifecycle.d.ts +3 -0
  35. package/dist/src/LoopLifecycle.d.ts.map +1 -0
  36. package/dist/src/LoopLifecycle.js +14 -0
  37. package/dist/src/LoopLifecycle.js.map +1 -0
  38. package/dist/src/PlanValue.d.ts +1 -1
  39. package/dist/src/PlanValue.d.ts.map +1 -1
  40. package/dist/src/PlanValue.js +10 -6
  41. package/dist/src/PlanValue.js.map +1 -1
  42. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
  43. package/dist/src/PlurnkErrorStrategy.js +58 -139
  44. package/dist/src/PlurnkErrorStrategy.js.map +1 -1
  45. package/dist/src/PlurnkParseError.d.ts +3 -1
  46. package/dist/src/PlurnkParseError.d.ts.map +1 -1
  47. package/dist/src/PlurnkParseError.js +4 -1
  48. package/dist/src/PlurnkParseError.js.map +1 -1
  49. package/dist/src/PlurnkParser.d.ts +9 -5
  50. package/dist/src/PlurnkParser.d.ts.map +1 -1
  51. package/dist/src/PlurnkParser.js +175 -180
  52. package/dist/src/PlurnkParser.js.map +1 -1
  53. package/dist/src/RecordingListener.d.ts +1 -1
  54. package/dist/src/RecordingListener.d.ts.map +1 -1
  55. package/dist/src/RecordingListener.js +24 -6
  56. package/dist/src/RecordingListener.js.map +1 -1
  57. package/dist/src/TurnDisposition.d.ts +11 -0
  58. package/dist/src/TurnDisposition.d.ts.map +1 -0
  59. package/dist/src/TurnDisposition.js +32 -0
  60. package/dist/src/TurnDisposition.js.map +1 -0
  61. package/dist/src/Validator.js +1 -1
  62. package/dist/src/Validator.js.map +1 -1
  63. package/dist/src/generated/plurnkLexer.d.ts +95 -106
  64. package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
  65. package/dist/src/generated/plurnkLexer.js +674 -828
  66. package/dist/src/generated/plurnkLexer.js.map +1 -1
  67. package/dist/src/generated/plurnkParser.d.ts +111 -152
  68. package/dist/src/generated/plurnkParser.d.ts.map +1 -1
  69. package/dist/src/generated/plurnkParser.js +756 -1082
  70. package/dist/src/generated/plurnkParser.js.map +1 -1
  71. package/dist/src/generated/plurnkParserVisitor.d.ts +15 -36
  72. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
  73. package/dist/src/generated/plurnkParserVisitor.js +12 -30
  74. package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
  75. package/dist/src/index.d.ts +5 -1
  76. package/dist/src/index.d.ts.map +1 -1
  77. package/dist/src/index.js +4 -1
  78. package/dist/src/index.js.map +1 -1
  79. package/dist/src/types.d.ts +3 -7
  80. package/dist/src/types.d.ts.map +1 -1
  81. package/dist/src/types.generated.d.ts +147 -80
  82. package/dist/src/types.generated.d.ts.map +1 -1
  83. package/dist/src/types.js +3 -3
  84. package/dist/src/types.js.map +1 -1
  85. package/package.json +4 -8
  86. package/plurnk.md +103 -119
  87. package/dist/plurnk.gemma.gbnf +0 -141
  88. package/dist/plurnk.qwen.gbnf +0 -130
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://schemas.plurnk.xyz/v0/PlurnkStatement.json",
4
4
  "title": "PlurnkStatement",
5
- "description": "The parsed AST union for one protocol statement, discriminated by `op`. Every variant has fixed signal, target, metadata, 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.",
5
+ "description": "The parsed AST union for one protocol statement, discriminated by `op`. Every variant has fixed signal, target, metadata, lineMarker, aside, body, and source-position fields, and the text and log operations add a matcher lifted from the `pattern` option; 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
7
  {
8
8
  "$ref": "#/$defs/FindStatement"
@@ -38,11 +38,11 @@
38
38
  "$ref": "#/$defs/KillStatement"
39
39
  },
40
40
  {
41
- "$ref": "#/$defs/PlanStatement"
41
+ "$ref": "#/$defs/DispositionStatement"
42
42
  }
43
43
  ],
44
44
  "$defs": {
45
- "AnnotationOrNull": {
45
+ "AsideOrNull": {
46
46
  "type": [
47
47
  "string",
48
48
  "null"
@@ -147,11 +147,11 @@
147
147
  "type": "object",
148
148
  "required": [
149
149
  "op",
150
- "delimiter",
151
- "annotation",
150
+ "aside",
152
151
  "metadata",
153
152
  "target",
154
153
  "lineMarker",
154
+ "matcher",
155
155
  "body",
156
156
  "position"
157
157
  ],
@@ -160,11 +160,8 @@
160
160
  "op": {
161
161
  "const": "FIND"
162
162
  },
163
- "delimiter": {
164
- "type": "string"
165
- },
166
- "annotation": {
167
- "$ref": "#/$defs/AnnotationOrNull"
163
+ "aside": {
164
+ "$ref": "#/$defs/AsideOrNull"
168
165
  },
169
166
  "metadata": {
170
167
  "$ref": "#/$defs/SchemeMetadataOrNull"
@@ -175,8 +172,13 @@
175
172
  "lineMarker": {
176
173
  "$ref": "#/$defs/LineMarkerOrNull"
177
174
  },
175
+ "matcher": {
176
+ "$ref": "#/$defs/MatcherBodyOrNull",
177
+ "description": "The selection matcher lifted from the heading's `[{\"pattern\": …}]` option ({§matcher-option}); null when the heading carries none."
178
+ },
178
179
  "body": {
179
- "$ref": "#/$defs/MatcherBodyOrNull"
180
+ "type": "null",
181
+ "description": "FIND takes no body; its matcher is the `pattern` option."
180
182
  },
181
183
  "position": {
182
184
  "$ref": "#/$defs/PositionRef"
@@ -187,11 +189,11 @@
187
189
  "type": "object",
188
190
  "required": [
189
191
  "op",
190
- "delimiter",
191
- "annotation",
192
+ "aside",
192
193
  "metadata",
193
194
  "target",
194
195
  "lineMarker",
196
+ "matcher",
195
197
  "body",
196
198
  "position"
197
199
  ],
@@ -200,11 +202,8 @@
200
202
  "op": {
201
203
  "const": "READ"
202
204
  },
203
- "delimiter": {
204
- "type": "string"
205
- },
206
- "annotation": {
207
- "$ref": "#/$defs/AnnotationOrNull"
205
+ "aside": {
206
+ "$ref": "#/$defs/AsideOrNull"
208
207
  },
209
208
  "metadata": {
210
209
  "$ref": "#/$defs/SchemeMetadataOrNull"
@@ -215,6 +214,10 @@
215
214
  "lineMarker": {
216
215
  "$ref": "#/$defs/TextLineMarkerOrNull"
217
216
  },
217
+ "matcher": {
218
+ "$ref": "#/$defs/MatcherBodyOrNull",
219
+ "description": "The selection matcher lifted from the heading's `[{\"pattern\": …}]` option ({§matcher-option}); null when the heading carries none."
220
+ },
218
221
  "body": {
219
222
  "type": "null"
220
223
  },
@@ -227,11 +230,11 @@
227
230
  "type": "object",
228
231
  "required": [
229
232
  "op",
230
- "delimiter",
231
- "annotation",
233
+ "aside",
232
234
  "metadata",
233
235
  "target",
234
236
  "lineMarker",
237
+ "matcher",
235
238
  "body",
236
239
  "position"
237
240
  ],
@@ -240,11 +243,8 @@
240
243
  "op": {
241
244
  "const": "EDIT"
242
245
  },
243
- "delimiter": {
244
- "type": "string"
245
- },
246
- "annotation": {
247
- "$ref": "#/$defs/AnnotationOrNull"
246
+ "aside": {
247
+ "$ref": "#/$defs/AsideOrNull"
248
248
  },
249
249
  "metadata": {
250
250
  "$ref": "#/$defs/SchemeMetadataOrNull"
@@ -255,6 +255,10 @@
255
255
  "lineMarker": {
256
256
  "$ref": "#/$defs/TextLineMarkerOrNull"
257
257
  },
258
+ "matcher": {
259
+ "$ref": "#/$defs/MatcherBodyOrNull",
260
+ "description": "The selection matcher lifted from the heading's `[{\"pattern\": …}]` option ({§matcher-option}); null when the heading carries none."
261
+ },
258
262
  "body": {
259
263
  "type": [
260
264
  "string",
@@ -270,8 +274,7 @@
270
274
  "type": "object",
271
275
  "required": [
272
276
  "op",
273
- "delimiter",
274
- "annotation",
277
+ "aside",
275
278
  "source",
276
279
  "destination",
277
280
  "position"
@@ -281,11 +284,8 @@
281
284
  "op": {
282
285
  "const": "COPY"
283
286
  },
284
- "delimiter": {
285
- "type": "string"
286
- },
287
- "annotation": {
288
- "$ref": "#/$defs/AnnotationOrNull"
287
+ "aside": {
288
+ "$ref": "#/$defs/AsideOrNull"
289
289
  },
290
290
  "source": {
291
291
  "$ref": "https://schemas.plurnk.xyz/v0/ResourceSelection.json"
@@ -302,8 +302,7 @@
302
302
  "type": "object",
303
303
  "required": [
304
304
  "op",
305
- "delimiter",
306
- "annotation",
305
+ "aside",
307
306
  "source",
308
307
  "destination",
309
308
  "position"
@@ -313,11 +312,8 @@
313
312
  "op": {
314
313
  "const": "MOVE"
315
314
  },
316
- "delimiter": {
317
- "type": "string"
318
- },
319
- "annotation": {
320
- "$ref": "#/$defs/AnnotationOrNull"
315
+ "aside": {
316
+ "$ref": "#/$defs/AsideOrNull"
321
317
  },
322
318
  "source": {
323
319
  "$ref": "https://schemas.plurnk.xyz/v0/ResourceSelection.json"
@@ -334,25 +330,20 @@
334
330
  "type": "object",
335
331
  "required": [
336
332
  "op",
337
- "delimiter",
338
- "annotation",
333
+ "aside",
339
334
  "metadata",
340
335
  "target",
341
336
  "lineMarker",
342
337
  "body",
343
- "position",
344
- "status"
338
+ "position"
345
339
  ],
346
340
  "additionalProperties": false,
347
341
  "properties": {
348
342
  "op": {
349
343
  "const": "SEND"
350
344
  },
351
- "delimiter": {
352
- "type": "string"
353
- },
354
- "annotation": {
355
- "$ref": "#/$defs/AnnotationOrNull"
345
+ "aside": {
346
+ "$ref": "#/$defs/AsideOrNull"
356
347
  },
357
348
  "metadata": {
358
349
  "$ref": "#/$defs/SchemeMetadataOrNull"
@@ -368,23 +359,6 @@
368
359
  },
369
360
  "position": {
370
361
  "$ref": "#/$defs/PositionRef"
371
- },
372
- "status": {
373
- "description": "The turn disposition the label names ({§send-label}): NEXT 102, WAIT 202, TERM 200, FAIL 499; null for a mid-turn message to a recipient.",
374
- "oneOf": [
375
- {
376
- "type": "integer",
377
- "enum": [
378
- 102,
379
- 200,
380
- 202,
381
- 499
382
- ]
383
- },
384
- {
385
- "type": "null"
386
- }
387
- ]
388
362
  }
389
363
  }
390
364
  },
@@ -392,8 +366,7 @@
392
366
  "type": "object",
393
367
  "required": [
394
368
  "op",
395
- "delimiter",
396
- "annotation",
369
+ "aside",
397
370
  "metadata",
398
371
  "executor",
399
372
  "target",
@@ -406,17 +379,14 @@
406
379
  "op": {
407
380
  "const": "EXEC"
408
381
  },
409
- "delimiter": {
410
- "type": "string"
411
- },
412
- "annotation": {
413
- "$ref": "#/$defs/AnnotationOrNull"
382
+ "aside": {
383
+ "$ref": "#/$defs/AsideOrNull"
414
384
  },
415
385
  "metadata": {
416
386
  "$ref": "#/$defs/SchemeMetadataOrNull"
417
387
  },
418
388
  "executor": {
419
- "description": "The `[executor]` slot: the registered executor that runs the program; null is the default shell.",
389
+ "description": "The registered executor selected by the fence name; null is the default shell for native EXEC.",
420
390
  "type": [
421
391
  "string",
422
392
  "null"
@@ -443,8 +413,7 @@
443
413
  "type": "object",
444
414
  "required": [
445
415
  "op",
446
- "delimiter",
447
- "annotation",
416
+ "aside",
448
417
  "metadata",
449
418
  "target",
450
419
  "lineMarker",
@@ -456,76 +425,74 @@
456
425
  "op": {
457
426
  "const": "BARE"
458
427
  },
459
- "delimiter": {
460
- "type": "string"
461
- },
462
- "annotation": {
463
- "$ref": "#/$defs/AnnotationOrNull"
428
+ "aside": {
429
+ "$ref": "#/$defs/AsideOrNull"
464
430
  },
465
431
  "metadata": {
466
432
  "$ref": "#/$defs/SchemeMetadataOrNull"
467
433
  },
468
434
  "target": {
469
- "type": "null"
435
+ "$ref": "#/$defs/PathOrNull"
470
436
  },
471
437
  "lineMarker": {
472
438
  "type": "null"
473
439
  },
474
440
  "body": {
475
- "type": "string",
476
- "minLength": 1
441
+ "type": "string"
477
442
  },
478
443
  "position": {
479
444
  "$ref": "#/$defs/PositionRef"
480
445
  }
481
446
  }
482
447
  },
483
- "PlanStatement": {
448
+ "KillStatement": {
484
449
  "type": "object",
485
450
  "required": [
486
451
  "op",
487
- "delimiter",
488
- "annotation",
452
+ "aside",
489
453
  "metadata",
490
454
  "target",
491
455
  "lineMarker",
456
+ "matcher",
492
457
  "body",
493
458
  "position"
494
459
  ],
495
460
  "additionalProperties": false,
496
461
  "properties": {
497
462
  "op": {
498
- "const": "PLAN"
499
- },
500
- "delimiter": {
501
- "type": "string"
463
+ "const": "KILL"
502
464
  },
503
- "annotation": {
504
- "$ref": "#/$defs/AnnotationOrNull"
465
+ "aside": {
466
+ "$ref": "#/$defs/AsideOrNull"
505
467
  },
506
468
  "metadata": {
507
- "type": "null"
469
+ "$ref": "#/$defs/SchemeMetadataOrNull"
508
470
  },
509
471
  "target": {
510
- "type": "null"
472
+ "$ref": "#/$defs/PathOrNull"
511
473
  },
512
474
  "lineMarker": {
513
- "type": "null"
475
+ "$ref": "#/$defs/TextLineMarkerOrNull",
476
+ "description": "Scope of the kill: lines of a log body or of an entry ({§kill-scope}); null kills the whole target."
477
+ },
478
+ "matcher": {
479
+ "$ref": "#/$defs/MatcherBodyOrNull",
480
+ "description": "The selection matcher lifted from the heading's `[{\"pattern\": …}]` option ({§matcher-option}); null when the heading carries none."
514
481
  },
515
482
  "body": {
516
- "$ref": "https://schemas.plurnk.xyz/v0/Plan.json"
483
+ "type": "null",
484
+ "description": "KILL takes no body; its matcher is the `pattern` option."
517
485
  },
518
486
  "position": {
519
487
  "$ref": "#/$defs/PositionRef"
520
488
  }
521
489
  }
522
490
  },
523
- "KillStatement": {
491
+ "WorkStatement": {
524
492
  "type": "object",
525
493
  "required": [
526
494
  "op",
527
- "delimiter",
528
- "annotation",
495
+ "aside",
529
496
  "metadata",
530
497
  "target",
531
498
  "lineMarker",
@@ -535,13 +502,10 @@
535
502
  "additionalProperties": false,
536
503
  "properties": {
537
504
  "op": {
538
- "const": "KILL"
539
- },
540
- "delimiter": {
541
- "type": "string"
505
+ "const": "WORK"
542
506
  },
543
- "annotation": {
544
- "$ref": "#/$defs/AnnotationOrNull"
507
+ "aside": {
508
+ "$ref": "#/$defs/AsideOrNull"
545
509
  },
546
510
  "metadata": {
547
511
  "$ref": "#/$defs/SchemeMetadataOrNull"
@@ -550,24 +514,21 @@
550
514
  "$ref": "#/$defs/PathOrNull"
551
515
  },
552
516
  "lineMarker": {
553
- "$ref": "#/$defs/TextLineMarkerOrNull",
554
- "description": "Scope of the kill: lines of a log body or of an entry ({§kill-scope}); null kills the whole target."
517
+ "type": "null"
555
518
  },
556
519
  "body": {
557
- "$ref": "#/$defs/MatcherBodyOrNull",
558
- "description": "A body pattern selects log items for a scoped KILL, as a FIND body does ({§kill-scope}); null otherwise."
520
+ "type": "string"
559
521
  },
560
522
  "position": {
561
523
  "$ref": "#/$defs/PositionRef"
562
524
  }
563
525
  }
564
526
  },
565
- "WorkStatement": {
527
+ "ForkStatement": {
566
528
  "type": "object",
567
529
  "required": [
568
530
  "op",
569
- "delimiter",
570
- "annotation",
531
+ "aside",
571
532
  "metadata",
572
533
  "target",
573
534
  "lineMarker",
@@ -577,13 +538,10 @@
577
538
  "additionalProperties": false,
578
539
  "properties": {
579
540
  "op": {
580
- "const": "WORK"
581
- },
582
- "delimiter": {
583
- "type": "string"
541
+ "const": "FORK"
584
542
  },
585
- "annotation": {
586
- "$ref": "#/$defs/AnnotationOrNull"
543
+ "aside": {
544
+ "$ref": "#/$defs/AsideOrNull"
587
545
  },
588
546
  "metadata": {
589
547
  "$ref": "#/$defs/SchemeMetadataOrNull"
@@ -595,20 +553,18 @@
595
553
  "type": "null"
596
554
  },
597
555
  "body": {
598
- "type": "string",
599
- "minLength": 1
556
+ "type": "string"
600
557
  },
601
558
  "position": {
602
559
  "$ref": "#/$defs/PositionRef"
603
560
  }
604
561
  }
605
562
  },
606
- "ForkStatement": {
563
+ "DispositionStatement": {
607
564
  "type": "object",
608
565
  "required": [
609
566
  "op",
610
- "delimiter",
611
- "annotation",
567
+ "aside",
612
568
  "metadata",
613
569
  "target",
614
570
  "lineMarker",
@@ -618,26 +574,22 @@
618
574
  "additionalProperties": false,
619
575
  "properties": {
620
576
  "op": {
621
- "const": "FORK"
577
+ "const": "TASK"
622
578
  },
623
- "delimiter": {
624
- "type": "string"
625
- },
626
- "annotation": {
627
- "$ref": "#/$defs/AnnotationOrNull"
579
+ "aside": {
580
+ "$ref": "#/$defs/AsideOrNull"
628
581
  },
629
582
  "metadata": {
630
- "$ref": "#/$defs/SchemeMetadataOrNull"
583
+ "type": "null"
631
584
  },
632
585
  "target": {
633
- "$ref": "#/$defs/PathOrNull"
586
+ "type": "null"
634
587
  },
635
588
  "lineMarker": {
636
- "type": "null"
589
+ "$ref": "#/$defs/LineMarkerOrNull"
637
590
  },
638
591
  "body": {
639
- "type": "string",
640
- "minLength": 1
592
+ "$ref": "https://schemas.plurnk.xyz/v0/Plan.json"
641
593
  },
642
594
  "position": {
643
595
  "$ref": "#/$defs/PositionRef"
@@ -23,7 +23,8 @@
23
23
  "loopId": { "type": "integer", "minimum": 1 },
24
24
  "turnId": { "type": "integer", "minimum": 1 },
25
25
  "op": {
26
- "enum": ["FIND", "READ", "EDIT", "COPY", "MOVE", "SEND", "EXEC", "BARE", "WORK", "FORK", "KILL", "PLAN"]
26
+ "enum": ["FIND", "READ", "EDIT", "COPY", "MOVE", "SEND", "EXEC", "BARE", "WORK", "FORK", "KILL",
27
+ "TASK"]
27
28
  },
28
29
  "target": {
29
30
  "type": "object",
@@ -1,30 +1,54 @@
1
1
  {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.xyz/v0/ResourceSelection.json",
4
- "title": "ResourceSelection",
5
- "description": "One COPY/MOVE resource operand. A target without a fragment selects the scheme's default channel; a fragment selects a named channel; metadata belongs to the selected scheme endpoint; lineMarker scopes the selected textual content.",
6
- "type": "object",
7
- "required": ["target", "metadata", "lineMarker"],
8
- "additionalProperties": false,
9
- "properties": {
10
- "target": {
11
- "$ref": "https://schemas.plurnk.xyz/v0/ParsedPath.json"
12
- },
13
- "metadata": {
14
- "description": "Opaque ordered scheme-metadata modifier blocks owned by this operand's addressed scheme.",
15
- "oneOf": [
16
- {
17
- "type": "array",
18
- "items": { "type": "string" }
19
- },
20
- { "type": "null" }
21
- ]
22
- },
23
- "lineMarker": {
24
- "oneOf": [
25
- { "$ref": "https://schemas.plurnk.xyz/v0/TextLineMarker.json" },
26
- { "type": "null" }
27
- ]
28
- }
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/ResourceSelection.json",
4
+ "title": "ResourceSelection",
5
+ "description": "One COPY/MOVE resource operand. A target without a fragment selects the scheme's default channel; a fragment selects a named channel; metadata belongs to the selected scheme endpoint; lineMarker scopes the selected textual content.",
6
+ "type": "object",
7
+ "required": [
8
+ "target",
9
+ "metadata",
10
+ "lineMarker",
11
+ "matcher"
12
+ ],
13
+ "additionalProperties": false,
14
+ "properties": {
15
+ "target": {
16
+ "$ref": "https://schemas.plurnk.xyz/v0/ParsedPath.json"
17
+ },
18
+ "metadata": {
19
+ "description": "Opaque ordered scheme-metadata modifier blocks owned by this operand's addressed scheme.",
20
+ "oneOf": [
21
+ {
22
+ "type": "array",
23
+ "items": {
24
+ "type": "string"
25
+ }
26
+ },
27
+ {
28
+ "type": "null"
29
29
  }
30
+ ]
31
+ },
32
+ "lineMarker": {
33
+ "oneOf": [
34
+ {
35
+ "$ref": "https://schemas.plurnk.xyz/v0/TextLineMarker.json"
36
+ },
37
+ {
38
+ "type": "null"
39
+ }
40
+ ]
41
+ },
42
+ "matcher": {
43
+ "description": "The selection matcher lifted from the operand's `[{\"pattern\": …}]` option; meaningful on the source operand, refused by the owner on a destination.",
44
+ "oneOf": [
45
+ {
46
+ "$ref": "https://schemas.plurnk.xyz/v0/MatcherBody.json"
47
+ },
48
+ {
49
+ "type": "null"
50
+ }
51
+ ]
52
+ }
53
+ }
30
54
  }
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://schemas.plurnk.xyz/v0/SkillDefinition.json",
4
4
  "title": "SkillDefinition",
5
- "description": "One standard Agent Skill as the Worker Functionality coordinator persists it: the skill's standard name, the universal root that holds (or will hold) its directory, and — for a Worker-installed skill — the standard installer package reference it came from.",
5
+ "description": "One standard Agent Skill: its name, source scope, and — for a Worker-installed skill — the standard installer package reference.",
6
6
  "type": "object",
7
7
  "additionalProperties": false,
8
8
  "required": ["name", "scope"],
@@ -14,8 +14,8 @@
14
14
  "maxLength": 64
15
15
  },
16
16
  "scope": {
17
- "description": "The universal Agent Skills root: the project's `.agents/skills` or the user's `~/.agents/skills`.",
18
- "enum": ["project", "global"]
17
+ "description": "Source: project `.agents/skills`, global `~/.agents/skills`, or a service-provided resource tree. Service sources are not installer targets.",
18
+ "enum": ["project", "global", "service"]
19
19
  },
20
20
  "source": {
21
21
  "description": "The standard installer package reference (`owner/repo`, a git URL, or a local path) that provides the skill; required to add a skill that is not yet installed.",
@@ -1,5 +1,4 @@
1
1
  import type { AcpPlan } from "./types.ts";
2
- export declare const ACP_MEMORY_PREFIX = "Memory: ";
3
2
  export default class AcpPlanValue {
4
3
  static project(value: unknown): AcpPlan;
5
4
  static assertCanonical(value: unknown): AcpPlan;
@@ -1 +1 @@
1
- {"version":3,"file":"AcpPlanValue.d.ts","sourceRoot":"","sources":["../../src/AcpPlanValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,YAAY,CAAC;AAIxD,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAI5C,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAmBtC;IAED,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK9C;CAEJ"}
1
+ {"version":3,"file":"AcpPlanValue.d.ts","sourceRoot":"","sources":["../../src/AcpPlanValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAK1C,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAsBtC;IAED,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK9C;CAEJ"}