acpus 0.0.1 → 0.0.2

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.
@@ -18,89 +18,59 @@
18
18
  "type": "string",
19
19
  "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
20
20
  },
21
- "inputs": {
22
- "default": {},
21
+ "input": {
23
22
  "type": "object",
24
- "propertyNames": {
25
- "type": "string"
26
- },
27
- "additionalProperties": {
28
- "type": "object",
29
- "properties": {
30
- "type": {
31
- "type": "string",
32
- "enum": [
33
- "string",
34
- "number",
35
- "boolean",
36
- "path",
37
- "glob",
38
- "json",
39
- "array<string>",
40
- "array<path>",
41
- "array<json>"
42
- ]
43
- },
44
- "default": {},
45
- "description": {
46
- "type": "string"
47
- }
23
+ "properties": {
24
+ "schema": {
25
+ "type": "string",
26
+ "minLength": 1
48
27
  },
49
- "required": [
50
- "type"
51
- ],
52
- "additionalProperties": false
53
- }
54
- },
55
- "roles": {
56
- "type": "object",
57
- "propertyNames": {
58
- "type": "string"
59
- },
60
- "additionalProperties": {
61
- "type": "object",
62
- "properties": {
63
- "category": {
64
- "type": "string",
65
- "enum": [
66
- "planning",
67
- "implementation",
68
- "validation",
69
- "review",
70
- "research",
71
- "summarization",
72
- "coordination"
73
- ]
74
- },
75
- "agent": {
76
- "type": "string",
77
- "minLength": 1
28
+ "default": {
29
+ "type": "object",
30
+ "propertyNames": {
31
+ "type": "string"
78
32
  },
79
- "mode": {
80
- "type": "string",
81
- "enum": [
82
- "denyAll",
83
- "readOnly",
84
- "edit"
85
- ]
86
- }
33
+ "additionalProperties": {}
87
34
  },
88
- "required": [
89
- "category",
90
- "agent",
91
- "mode"
92
- ],
93
- "additionalProperties": false
94
- }
35
+ "description": {
36
+ "type": "string"
37
+ }
38
+ },
39
+ "required": [
40
+ "schema"
41
+ ],
42
+ "additionalProperties": false
95
43
  },
96
44
  "limits": {
97
45
  "default": {},
98
46
  "type": "object",
99
47
  "properties": {
100
48
  "stageTimeoutMinutes": {
101
- "type": "integer",
102
- "exclusiveMinimum": 0,
103
- "maximum": 9007199254740991
49
+ "anyOf": [
50
+ {
51
+ "type": "integer",
52
+ "exclusiveMinimum": 0,
53
+ "maximum": 9007199254740991
54
+ },
55
+ {
56
+ "type": "object",
57
+ "properties": {
58
+ "source": {
59
+ "type": "string",
60
+ "minLength": 1
61
+ },
62
+ "default": {
63
+ "type": "integer",
64
+ "exclusiveMinimum": 0,
65
+ "maximum": 9007199254740991
66
+ }
67
+ },
68
+ "required": [
69
+ "source"
70
+ ],
71
+ "additionalProperties": false
72
+ }
73
+ ]
104
74
  }
105
75
  },
106
76
  "additionalProperties": false
@@ -111,114 +81,317 @@
111
81
  "items": {
112
82
  "oneOf": [
113
83
  {
114
- "type": "object",
115
- "properties": {
116
- "id": {
117
- "type": "string",
118
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
119
- },
120
- "dependsOn": {
121
- "type": "array",
122
- "items": {
123
- "type": "string",
124
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
125
- }
126
- },
127
- "variables": {
128
- "type": "array",
129
- "items": {
130
- "type": "object",
131
- "properties": {
132
- "name": {
133
- "type": "string",
134
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
135
- },
136
- "source": {
84
+ "oneOf": [
85
+ {
86
+ "type": "object",
87
+ "properties": {
88
+ "id": {
89
+ "type": "string",
90
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
91
+ },
92
+ "dependsOn": {
93
+ "type": "array",
94
+ "items": {
137
95
  "type": "string",
138
- "minLength": 1
139
- },
140
- "transform": {
141
- "type": "array",
142
- "items": {
143
- "type": "object",
144
- "properties": {
145
- "fn": {
146
- "type": "string",
147
- "enum": [
148
- "compact",
149
- "tail",
150
- "json",
151
- "quoteBlock",
152
- "pathList",
153
- "filterSeverity",
154
- "severitySummary",
155
- "join",
156
- "default"
157
- ]
96
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
97
+ }
98
+ },
99
+ "variables": {
100
+ "type": "array",
101
+ "items": {
102
+ "type": "object",
103
+ "properties": {
104
+ "name": {
105
+ "type": "string",
106
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
107
+ },
108
+ "source": {
109
+ "type": "string",
110
+ "minLength": 1
111
+ },
112
+ "transform": {
113
+ "type": "array",
114
+ "items": {
115
+ "type": "object",
116
+ "properties": {
117
+ "fn": {
118
+ "type": "string",
119
+ "enum": [
120
+ "compact",
121
+ "tail",
122
+ "json",
123
+ "quoteBlock",
124
+ "pathList",
125
+ "filterSeverity",
126
+ "severitySummary",
127
+ "join",
128
+ "default"
129
+ ]
130
+ },
131
+ "args": {
132
+ "type": "object",
133
+ "propertyNames": {
134
+ "type": "string"
135
+ },
136
+ "additionalProperties": {}
137
+ }
138
+ },
139
+ "required": [
140
+ "fn"
141
+ ],
142
+ "additionalProperties": false
143
+ }
144
+ }
145
+ },
146
+ "required": [
147
+ "name",
148
+ "source"
149
+ ],
150
+ "additionalProperties": false
151
+ }
152
+ },
153
+ "limits": {
154
+ "type": "object",
155
+ "properties": {
156
+ "stageTimeoutMinutes": {
157
+ "anyOf": [
158
+ {
159
+ "type": "integer",
160
+ "exclusiveMinimum": 0,
161
+ "maximum": 9007199254740991
158
162
  },
159
- "args": {
163
+ {
160
164
  "type": "object",
161
- "propertyNames": {
162
- "type": "string"
165
+ "properties": {
166
+ "source": {
167
+ "type": "string",
168
+ "minLength": 1
169
+ },
170
+ "default": {
171
+ "type": "integer",
172
+ "exclusiveMinimum": 0,
173
+ "maximum": 9007199254740991
174
+ }
163
175
  },
164
- "additionalProperties": {}
176
+ "required": [
177
+ "source"
178
+ ],
179
+ "additionalProperties": false
165
180
  }
166
- },
167
- "required": [
168
- "fn"
169
- ],
170
- "additionalProperties": false
181
+ ]
171
182
  }
172
- }
183
+ },
184
+ "additionalProperties": false
173
185
  },
174
- "required": [
175
- "name",
176
- "source"
177
- ],
178
- "additionalProperties": false
179
- }
180
- },
181
- "prompt": {
182
- "type": "string",
183
- "minLength": 1
186
+ "kind": {
187
+ "type": "string",
188
+ "const": "task"
189
+ },
190
+ "mode": {
191
+ "type": "string",
192
+ "const": "agent"
193
+ },
194
+ "actor": {
195
+ "type": "object",
196
+ "properties": {
197
+ "agent": {
198
+ "type": "string",
199
+ "minLength": 1
200
+ },
201
+ "mode": {
202
+ "type": "string",
203
+ "enum": [
204
+ "denyAll",
205
+ "readOnly",
206
+ "edit"
207
+ ]
208
+ },
209
+ "label": {
210
+ "type": "string",
211
+ "minLength": 1
212
+ }
213
+ },
214
+ "required": [
215
+ "agent",
216
+ "mode"
217
+ ],
218
+ "additionalProperties": false
219
+ },
220
+ "prompt": {
221
+ "type": "string",
222
+ "minLength": 1
223
+ },
224
+ "output": {
225
+ "type": "object",
226
+ "properties": {
227
+ "schema": {
228
+ "type": "string",
229
+ "minLength": 1
230
+ }
231
+ },
232
+ "required": [
233
+ "schema"
234
+ ],
235
+ "additionalProperties": false
236
+ }
237
+ },
238
+ "required": [
239
+ "id",
240
+ "kind",
241
+ "mode",
242
+ "actor",
243
+ "prompt"
244
+ ],
245
+ "additionalProperties": false
184
246
  },
185
- "limits": {
247
+ {
186
248
  "type": "object",
187
249
  "properties": {
188
- "maxConcurrency": {
189
- "type": "integer",
190
- "exclusiveMinimum": 0,
191
- "maximum": 9007199254740991
250
+ "id": {
251
+ "type": "string",
252
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
192
253
  },
193
- "maxFanoutItems": {
194
- "type": "integer",
195
- "exclusiveMinimum": 0,
196
- "maximum": 9007199254740991
254
+ "dependsOn": {
255
+ "type": "array",
256
+ "items": {
257
+ "type": "string",
258
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
259
+ }
197
260
  },
198
- "stageTimeoutMinutes": {
261
+ "variables": {
262
+ "type": "array",
263
+ "items": {
264
+ "type": "object",
265
+ "properties": {
266
+ "name": {
267
+ "type": "string",
268
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
269
+ },
270
+ "source": {
271
+ "type": "string",
272
+ "minLength": 1
273
+ },
274
+ "transform": {
275
+ "type": "array",
276
+ "items": {
277
+ "type": "object",
278
+ "properties": {
279
+ "fn": {
280
+ "type": "string",
281
+ "enum": [
282
+ "compact",
283
+ "tail",
284
+ "json",
285
+ "quoteBlock",
286
+ "pathList",
287
+ "filterSeverity",
288
+ "severitySummary",
289
+ "join",
290
+ "default"
291
+ ]
292
+ },
293
+ "args": {
294
+ "type": "object",
295
+ "propertyNames": {
296
+ "type": "string"
297
+ },
298
+ "additionalProperties": {}
299
+ }
300
+ },
301
+ "required": [
302
+ "fn"
303
+ ],
304
+ "additionalProperties": false
305
+ }
306
+ }
307
+ },
308
+ "required": [
309
+ "name",
310
+ "source"
311
+ ],
312
+ "additionalProperties": false
313
+ }
314
+ },
315
+ "limits": {
316
+ "type": "object",
317
+ "properties": {
318
+ "stageTimeoutMinutes": {
319
+ "anyOf": [
320
+ {
321
+ "type": "integer",
322
+ "exclusiveMinimum": 0,
323
+ "maximum": 9007199254740991
324
+ },
325
+ {
326
+ "type": "object",
327
+ "properties": {
328
+ "source": {
329
+ "type": "string",
330
+ "minLength": 1
331
+ },
332
+ "default": {
333
+ "type": "integer",
334
+ "exclusiveMinimum": 0,
335
+ "maximum": 9007199254740991
336
+ }
337
+ },
338
+ "required": [
339
+ "source"
340
+ ],
341
+ "additionalProperties": false
342
+ }
343
+ ]
344
+ }
345
+ },
346
+ "additionalProperties": false
347
+ },
348
+ "kind": {
349
+ "type": "string",
350
+ "const": "task"
351
+ },
352
+ "mode": {
353
+ "type": "string",
354
+ "const": "program"
355
+ },
356
+ "operation": {
357
+ "type": "string",
358
+ "const": "command"
359
+ },
360
+ "command": {
361
+ "type": "string",
362
+ "minLength": 1
363
+ },
364
+ "args": {
365
+ "default": [],
366
+ "type": "array",
367
+ "items": {
368
+ "type": "string"
369
+ }
370
+ },
371
+ "cwd": {
372
+ "type": "string"
373
+ },
374
+ "timeoutSeconds": {
375
+ "default": 60,
199
376
  "type": "integer",
200
377
  "exclusiveMinimum": 0,
201
- "maximum": 9007199254740991
378
+ "maximum": 300
379
+ },
380
+ "allowMutation": {
381
+ "default": false,
382
+ "type": "boolean"
202
383
  }
203
384
  },
385
+ "required": [
386
+ "id",
387
+ "kind",
388
+ "mode",
389
+ "operation",
390
+ "command"
391
+ ],
204
392
  "additionalProperties": false
205
- },
206
- "kind": {
207
- "type": "string",
208
- "const": "agentTask"
209
- },
210
- "role": {
211
- "type": "string",
212
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
213
393
  }
214
- },
215
- "required": [
216
- "id",
217
- "prompt",
218
- "kind",
219
- "role"
220
- ],
221
- "additionalProperties": false
394
+ ]
222
395
  },
223
396
  {
224
397
  "type": "object",
@@ -288,154 +461,89 @@
288
461
  "additionalProperties": false
289
462
  }
290
463
  },
291
- "prompt": {
292
- "type": "string"
293
- },
294
464
  "limits": {
295
465
  "type": "object",
296
466
  "properties": {
297
467
  "maxConcurrency": {
298
- "type": "integer",
299
- "exclusiveMinimum": 0,
300
- "maximum": 9007199254740991
468
+ "anyOf": [
469
+ {
470
+ "type": "integer",
471
+ "exclusiveMinimum": 0,
472
+ "maximum": 9007199254740991
473
+ },
474
+ {
475
+ "type": "object",
476
+ "properties": {
477
+ "source": {
478
+ "type": "string",
479
+ "minLength": 1
480
+ },
481
+ "default": {
482
+ "type": "integer",
483
+ "exclusiveMinimum": 0,
484
+ "maximum": 9007199254740991
485
+ }
486
+ },
487
+ "required": [
488
+ "source"
489
+ ],
490
+ "additionalProperties": false
491
+ }
492
+ ]
301
493
  },
302
494
  "maxFanoutItems": {
303
- "type": "integer",
304
- "exclusiveMinimum": 0,
305
- "maximum": 9007199254740991
495
+ "anyOf": [
496
+ {
497
+ "type": "integer",
498
+ "exclusiveMinimum": 0,
499
+ "maximum": 9007199254740991
500
+ },
501
+ {
502
+ "type": "object",
503
+ "properties": {
504
+ "source": {
505
+ "type": "string",
506
+ "minLength": 1
507
+ },
508
+ "default": {
509
+ "type": "integer",
510
+ "exclusiveMinimum": 0,
511
+ "maximum": 9007199254740991
512
+ }
513
+ },
514
+ "required": [
515
+ "source"
516
+ ],
517
+ "additionalProperties": false
518
+ }
519
+ ]
306
520
  },
307
521
  "stageTimeoutMinutes": {
308
- "type": "integer",
309
- "exclusiveMinimum": 0,
310
- "maximum": 9007199254740991
311
- }
312
- },
313
- "additionalProperties": false
314
- },
315
- "kind": {
316
- "type": "string",
317
- "const": "discover"
318
- },
319
- "method": {
320
- "type": "string",
321
- "enum": [
322
- "gitChangedFiles",
323
- "glob",
324
- "agent"
325
- ]
326
- },
327
- "args": {
328
- "type": "object",
329
- "propertyNames": {
330
- "type": "string"
331
- },
332
- "additionalProperties": {}
333
- },
334
- "output": {
335
- "default": "items",
336
- "type": "string"
337
- },
338
- "role": {
339
- "type": "string",
340
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
341
- }
342
- },
343
- "required": [
344
- "id",
345
- "kind",
346
- "method"
347
- ],
348
- "additionalProperties": false
349
- },
350
- {
351
- "type": "object",
352
- "properties": {
353
- "id": {
354
- "type": "string",
355
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
356
- },
357
- "dependsOn": {
358
- "type": "array",
359
- "items": {
360
- "type": "string",
361
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
362
- }
363
- },
364
- "variables": {
365
- "type": "array",
366
- "items": {
367
- "type": "object",
368
- "properties": {
369
- "name": {
370
- "type": "string",
371
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
372
- },
373
- "source": {
374
- "type": "string",
375
- "minLength": 1
376
- },
377
- "transform": {
378
- "type": "array",
379
- "items": {
522
+ "anyOf": [
523
+ {
524
+ "type": "integer",
525
+ "exclusiveMinimum": 0,
526
+ "maximum": 9007199254740991
527
+ },
528
+ {
380
529
  "type": "object",
381
530
  "properties": {
382
- "fn": {
531
+ "source": {
383
532
  "type": "string",
384
- "enum": [
385
- "compact",
386
- "tail",
387
- "json",
388
- "quoteBlock",
389
- "pathList",
390
- "filterSeverity",
391
- "severitySummary",
392
- "join",
393
- "default"
394
- ]
533
+ "minLength": 1
395
534
  },
396
- "args": {
397
- "type": "object",
398
- "propertyNames": {
399
- "type": "string"
400
- },
401
- "additionalProperties": {}
535
+ "default": {
536
+ "type": "integer",
537
+ "exclusiveMinimum": 0,
538
+ "maximum": 9007199254740991
402
539
  }
403
540
  },
404
541
  "required": [
405
- "fn"
542
+ "source"
406
543
  ],
407
544
  "additionalProperties": false
408
545
  }
409
- }
410
- },
411
- "required": [
412
- "name",
413
- "source"
414
- ],
415
- "additionalProperties": false
416
- }
417
- },
418
- "prompt": {
419
- "type": "string",
420
- "minLength": 1
421
- },
422
- "limits": {
423
- "type": "object",
424
- "properties": {
425
- "maxConcurrency": {
426
- "type": "integer",
427
- "exclusiveMinimum": 0,
428
- "maximum": 9007199254740991
429
- },
430
- "maxFanoutItems": {
431
- "type": "integer",
432
- "exclusiveMinimum": 0,
433
- "maximum": 9007199254740991
434
- },
435
- "stageTimeoutMinutes": {
436
- "type": "integer",
437
- "exclusiveMinimum": 0,
438
- "maximum": 9007199254740991
546
+ ]
439
547
  }
440
548
  },
441
549
  "additionalProperties": false
@@ -457,7 +565,11 @@
457
565
  ],
458
566
  "additionalProperties": false
459
567
  },
460
- "laneGroups": {
568
+ "prompt": {
569
+ "type": "string",
570
+ "minLength": 1
571
+ },
572
+ "lanes": {
461
573
  "minItems": 1,
462
574
  "type": "array",
463
575
  "items": {
@@ -467,53 +579,139 @@
467
579
  "type": "string",
468
580
  "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
469
581
  },
470
- "mode": {
582
+ "actor": {
583
+ "type": "object",
584
+ "properties": {
585
+ "agent": {
586
+ "type": "string",
587
+ "minLength": 1
588
+ },
589
+ "mode": {
590
+ "type": "string",
591
+ "enum": [
592
+ "denyAll",
593
+ "readOnly",
594
+ "edit"
595
+ ]
596
+ },
597
+ "label": {
598
+ "type": "string",
599
+ "minLength": 1
600
+ }
601
+ },
602
+ "required": [
603
+ "agent",
604
+ "mode"
605
+ ],
606
+ "additionalProperties": false
607
+ },
608
+ "prompt": {
471
609
  "type": "string",
472
- "enum": [
473
- "all",
474
- "oneOf"
475
- ]
610
+ "minLength": 1
476
611
  },
477
- "lanes": {
478
- "minItems": 1,
479
- "type": "array",
480
- "items": {
612
+ "when": {
613
+ "$ref": "#/$defs/__schema0"
614
+ },
615
+ "output": {
616
+ "type": "object",
617
+ "properties": {
618
+ "schema": {
619
+ "type": "string",
620
+ "minLength": 1
621
+ }
622
+ },
623
+ "required": [
624
+ "schema"
625
+ ],
626
+ "additionalProperties": false
627
+ }
628
+ },
629
+ "required": [
630
+ "id",
631
+ "actor"
632
+ ],
633
+ "additionalProperties": false
634
+ }
635
+ },
636
+ "fanin": {
637
+ "oneOf": [
638
+ {
639
+ "type": "object",
640
+ "properties": {
641
+ "mode": {
642
+ "type": "string",
643
+ "const": "agent"
644
+ },
645
+ "actor": {
481
646
  "type": "object",
482
647
  "properties": {
483
- "id": {
648
+ "agent": {
484
649
  "type": "string",
485
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
650
+ "minLength": 1
486
651
  },
487
- "role": {
652
+ "mode": {
488
653
  "type": "string",
489
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
654
+ "enum": [
655
+ "denyAll",
656
+ "readOnly",
657
+ "edit"
658
+ ]
490
659
  },
491
- "prompt": {
660
+ "label": {
661
+ "type": "string",
662
+ "minLength": 1
663
+ }
664
+ },
665
+ "required": [
666
+ "agent",
667
+ "mode"
668
+ ],
669
+ "additionalProperties": false
670
+ },
671
+ "prompt": {
672
+ "type": "string",
673
+ "minLength": 1
674
+ },
675
+ "output": {
676
+ "type": "object",
677
+ "properties": {
678
+ "schema": {
492
679
  "type": "string",
493
680
  "minLength": 1
494
- },
495
- "when": {
496
- "$ref": "#/$defs/__schema0"
497
- },
498
- "default": {
499
- "type": "boolean"
500
681
  }
501
682
  },
502
683
  "required": [
503
- "id",
504
- "role"
684
+ "schema"
505
685
  ],
506
686
  "additionalProperties": false
507
687
  }
508
- }
688
+ },
689
+ "required": [
690
+ "mode",
691
+ "actor",
692
+ "prompt"
693
+ ],
694
+ "additionalProperties": false
509
695
  },
510
- "required": [
511
- "id",
512
- "mode",
513
- "lanes"
514
- ],
515
- "additionalProperties": false
516
- }
696
+ {
697
+ "type": "object",
698
+ "properties": {
699
+ "mode": {
700
+ "type": "string",
701
+ "const": "program"
702
+ },
703
+ "operation": {
704
+ "type": "string",
705
+ "const": "mergeArrays"
706
+ }
707
+ },
708
+ "required": [
709
+ "mode",
710
+ "operation"
711
+ ],
712
+ "additionalProperties": false
713
+ }
714
+ ]
517
715
  },
518
716
  "fanoutPolicy": {
519
717
  "type": "object",
@@ -540,7 +738,8 @@
540
738
  "id",
541
739
  "kind",
542
740
  "items",
543
- "laneGroups"
741
+ "lanes",
742
+ "fanin"
544
743
  ],
545
744
  "additionalProperties": false
546
745
  },
@@ -612,162 +811,42 @@
612
811
  "additionalProperties": false
613
812
  }
614
813
  },
615
- "prompt": {
616
- "type": "string"
617
- },
618
814
  "limits": {
619
815
  "type": "object",
620
816
  "properties": {
621
- "maxConcurrency": {
622
- "type": "integer",
623
- "exclusiveMinimum": 0,
624
- "maximum": 9007199254740991
625
- },
626
- "maxFanoutItems": {
627
- "type": "integer",
628
- "exclusiveMinimum": 0,
629
- "maximum": 9007199254740991
630
- },
631
817
  "stageTimeoutMinutes": {
632
- "type": "integer",
633
- "exclusiveMinimum": 0,
634
- "maximum": 9007199254740991
635
- }
636
- },
637
- "additionalProperties": false
638
- },
639
- "kind": {
640
- "type": "string",
641
- "const": "reduce"
642
- },
643
- "mode": {
644
- "default": "agent",
645
- "type": "string",
646
- "enum": [
647
- "agent",
648
- "program"
649
- ]
650
- },
651
- "from": {
652
- "type": "string",
653
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
654
- },
655
- "role": {
656
- "type": "string",
657
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
658
- },
659
- "operation": {
660
- "type": "string",
661
- "enum": [
662
- "mergeArrays",
663
- "severitySummary",
664
- "dedupeFindings",
665
- "sortBySeverity"
666
- ]
667
- }
668
- },
669
- "required": [
670
- "id",
671
- "kind",
672
- "from"
673
- ],
674
- "additionalProperties": false
675
- },
676
- {
677
- "type": "object",
678
- "properties": {
679
- "id": {
680
- "type": "string",
681
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
682
- },
683
- "dependsOn": {
684
- "type": "array",
685
- "items": {
686
- "type": "string",
687
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
688
- }
689
- },
690
- "variables": {
691
- "type": "array",
692
- "items": {
693
- "type": "object",
694
- "properties": {
695
- "name": {
696
- "type": "string",
697
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
698
- },
699
- "source": {
700
- "type": "string",
701
- "minLength": 1
702
- },
703
- "transform": {
704
- "type": "array",
705
- "items": {
818
+ "anyOf": [
819
+ {
820
+ "type": "integer",
821
+ "exclusiveMinimum": 0,
822
+ "maximum": 9007199254740991
823
+ },
824
+ {
706
825
  "type": "object",
707
826
  "properties": {
708
- "fn": {
827
+ "source": {
709
828
  "type": "string",
710
- "enum": [
711
- "compact",
712
- "tail",
713
- "json",
714
- "quoteBlock",
715
- "pathList",
716
- "filterSeverity",
717
- "severitySummary",
718
- "join",
719
- "default"
720
- ]
829
+ "minLength": 1
721
830
  },
722
- "args": {
723
- "type": "object",
724
- "propertyNames": {
725
- "type": "string"
726
- },
727
- "additionalProperties": {}
831
+ "default": {
832
+ "type": "integer",
833
+ "exclusiveMinimum": 0,
834
+ "maximum": 9007199254740991
728
835
  }
729
836
  },
730
837
  "required": [
731
- "fn"
838
+ "source"
732
839
  ],
733
840
  "additionalProperties": false
734
841
  }
735
- }
736
- },
737
- "required": [
738
- "name",
739
- "source"
740
- ],
741
- "additionalProperties": false
742
- }
842
+ ]
843
+ }
844
+ },
845
+ "additionalProperties": false
743
846
  },
744
- "prompt": {
745
- "type": "string"
746
- },
747
- "limits": {
748
- "type": "object",
749
- "properties": {
750
- "maxConcurrency": {
751
- "type": "integer",
752
- "exclusiveMinimum": 0,
753
- "maximum": 9007199254740991
754
- },
755
- "maxFanoutItems": {
756
- "type": "integer",
757
- "exclusiveMinimum": 0,
758
- "maximum": 9007199254740991
759
- },
760
- "stageTimeoutMinutes": {
761
- "type": "integer",
762
- "exclusiveMinimum": 0,
763
- "maximum": 9007199254740991
764
- }
765
- },
766
- "additionalProperties": false
767
- },
768
- "kind": {
769
- "type": "string",
770
- "const": "loop"
847
+ "kind": {
848
+ "type": "string",
849
+ "const": "loop"
771
850
  },
772
851
  "maxRounds": {
773
852
  "type": "integer",
@@ -791,114 +870,317 @@
791
870
  "items": {
792
871
  "oneOf": [
793
872
  {
794
- "type": "object",
795
- "properties": {
796
- "id": {
797
- "type": "string",
798
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
799
- },
800
- "dependsOn": {
801
- "type": "array",
802
- "items": {
803
- "type": "string",
804
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
805
- }
806
- },
807
- "variables": {
808
- "type": "array",
809
- "items": {
810
- "type": "object",
811
- "properties": {
812
- "name": {
813
- "type": "string",
814
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
815
- },
816
- "source": {
873
+ "oneOf": [
874
+ {
875
+ "type": "object",
876
+ "properties": {
877
+ "id": {
878
+ "type": "string",
879
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
880
+ },
881
+ "dependsOn": {
882
+ "type": "array",
883
+ "items": {
817
884
  "type": "string",
818
- "minLength": 1
819
- },
820
- "transform": {
821
- "type": "array",
822
- "items": {
823
- "type": "object",
824
- "properties": {
825
- "fn": {
826
- "type": "string",
827
- "enum": [
828
- "compact",
829
- "tail",
830
- "json",
831
- "quoteBlock",
832
- "pathList",
833
- "filterSeverity",
834
- "severitySummary",
835
- "join",
836
- "default"
837
- ]
885
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
886
+ }
887
+ },
888
+ "variables": {
889
+ "type": "array",
890
+ "items": {
891
+ "type": "object",
892
+ "properties": {
893
+ "name": {
894
+ "type": "string",
895
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
896
+ },
897
+ "source": {
898
+ "type": "string",
899
+ "minLength": 1
900
+ },
901
+ "transform": {
902
+ "type": "array",
903
+ "items": {
904
+ "type": "object",
905
+ "properties": {
906
+ "fn": {
907
+ "type": "string",
908
+ "enum": [
909
+ "compact",
910
+ "tail",
911
+ "json",
912
+ "quoteBlock",
913
+ "pathList",
914
+ "filterSeverity",
915
+ "severitySummary",
916
+ "join",
917
+ "default"
918
+ ]
919
+ },
920
+ "args": {
921
+ "type": "object",
922
+ "propertyNames": {
923
+ "type": "string"
924
+ },
925
+ "additionalProperties": {}
926
+ }
927
+ },
928
+ "required": [
929
+ "fn"
930
+ ],
931
+ "additionalProperties": false
932
+ }
933
+ }
934
+ },
935
+ "required": [
936
+ "name",
937
+ "source"
938
+ ],
939
+ "additionalProperties": false
940
+ }
941
+ },
942
+ "limits": {
943
+ "type": "object",
944
+ "properties": {
945
+ "stageTimeoutMinutes": {
946
+ "anyOf": [
947
+ {
948
+ "type": "integer",
949
+ "exclusiveMinimum": 0,
950
+ "maximum": 9007199254740991
838
951
  },
839
- "args": {
952
+ {
840
953
  "type": "object",
841
- "propertyNames": {
842
- "type": "string"
954
+ "properties": {
955
+ "source": {
956
+ "type": "string",
957
+ "minLength": 1
958
+ },
959
+ "default": {
960
+ "type": "integer",
961
+ "exclusiveMinimum": 0,
962
+ "maximum": 9007199254740991
963
+ }
843
964
  },
844
- "additionalProperties": {}
965
+ "required": [
966
+ "source"
967
+ ],
968
+ "additionalProperties": false
845
969
  }
846
- },
847
- "required": [
848
- "fn"
849
- ],
850
- "additionalProperties": false
970
+ ]
851
971
  }
852
- }
972
+ },
973
+ "additionalProperties": false
853
974
  },
854
- "required": [
855
- "name",
856
- "source"
857
- ],
858
- "additionalProperties": false
859
- }
860
- },
861
- "prompt": {
862
- "type": "string",
863
- "minLength": 1
975
+ "kind": {
976
+ "type": "string",
977
+ "const": "task"
978
+ },
979
+ "mode": {
980
+ "type": "string",
981
+ "const": "agent"
982
+ },
983
+ "actor": {
984
+ "type": "object",
985
+ "properties": {
986
+ "agent": {
987
+ "type": "string",
988
+ "minLength": 1
989
+ },
990
+ "mode": {
991
+ "type": "string",
992
+ "enum": [
993
+ "denyAll",
994
+ "readOnly",
995
+ "edit"
996
+ ]
997
+ },
998
+ "label": {
999
+ "type": "string",
1000
+ "minLength": 1
1001
+ }
1002
+ },
1003
+ "required": [
1004
+ "agent",
1005
+ "mode"
1006
+ ],
1007
+ "additionalProperties": false
1008
+ },
1009
+ "prompt": {
1010
+ "type": "string",
1011
+ "minLength": 1
1012
+ },
1013
+ "output": {
1014
+ "type": "object",
1015
+ "properties": {
1016
+ "schema": {
1017
+ "type": "string",
1018
+ "minLength": 1
1019
+ }
1020
+ },
1021
+ "required": [
1022
+ "schema"
1023
+ ],
1024
+ "additionalProperties": false
1025
+ }
1026
+ },
1027
+ "required": [
1028
+ "id",
1029
+ "kind",
1030
+ "mode",
1031
+ "actor",
1032
+ "prompt"
1033
+ ],
1034
+ "additionalProperties": false
864
1035
  },
865
- "limits": {
1036
+ {
866
1037
  "type": "object",
867
1038
  "properties": {
868
- "maxConcurrency": {
869
- "type": "integer",
870
- "exclusiveMinimum": 0,
871
- "maximum": 9007199254740991
1039
+ "id": {
1040
+ "type": "string",
1041
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
872
1042
  },
873
- "maxFanoutItems": {
874
- "type": "integer",
875
- "exclusiveMinimum": 0,
876
- "maximum": 9007199254740991
1043
+ "dependsOn": {
1044
+ "type": "array",
1045
+ "items": {
1046
+ "type": "string",
1047
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1048
+ }
877
1049
  },
878
- "stageTimeoutMinutes": {
1050
+ "variables": {
1051
+ "type": "array",
1052
+ "items": {
1053
+ "type": "object",
1054
+ "properties": {
1055
+ "name": {
1056
+ "type": "string",
1057
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
1058
+ },
1059
+ "source": {
1060
+ "type": "string",
1061
+ "minLength": 1
1062
+ },
1063
+ "transform": {
1064
+ "type": "array",
1065
+ "items": {
1066
+ "type": "object",
1067
+ "properties": {
1068
+ "fn": {
1069
+ "type": "string",
1070
+ "enum": [
1071
+ "compact",
1072
+ "tail",
1073
+ "json",
1074
+ "quoteBlock",
1075
+ "pathList",
1076
+ "filterSeverity",
1077
+ "severitySummary",
1078
+ "join",
1079
+ "default"
1080
+ ]
1081
+ },
1082
+ "args": {
1083
+ "type": "object",
1084
+ "propertyNames": {
1085
+ "type": "string"
1086
+ },
1087
+ "additionalProperties": {}
1088
+ }
1089
+ },
1090
+ "required": [
1091
+ "fn"
1092
+ ],
1093
+ "additionalProperties": false
1094
+ }
1095
+ }
1096
+ },
1097
+ "required": [
1098
+ "name",
1099
+ "source"
1100
+ ],
1101
+ "additionalProperties": false
1102
+ }
1103
+ },
1104
+ "limits": {
1105
+ "type": "object",
1106
+ "properties": {
1107
+ "stageTimeoutMinutes": {
1108
+ "anyOf": [
1109
+ {
1110
+ "type": "integer",
1111
+ "exclusiveMinimum": 0,
1112
+ "maximum": 9007199254740991
1113
+ },
1114
+ {
1115
+ "type": "object",
1116
+ "properties": {
1117
+ "source": {
1118
+ "type": "string",
1119
+ "minLength": 1
1120
+ },
1121
+ "default": {
1122
+ "type": "integer",
1123
+ "exclusiveMinimum": 0,
1124
+ "maximum": 9007199254740991
1125
+ }
1126
+ },
1127
+ "required": [
1128
+ "source"
1129
+ ],
1130
+ "additionalProperties": false
1131
+ }
1132
+ ]
1133
+ }
1134
+ },
1135
+ "additionalProperties": false
1136
+ },
1137
+ "kind": {
1138
+ "type": "string",
1139
+ "const": "task"
1140
+ },
1141
+ "mode": {
1142
+ "type": "string",
1143
+ "const": "program"
1144
+ },
1145
+ "operation": {
1146
+ "type": "string",
1147
+ "const": "command"
1148
+ },
1149
+ "command": {
1150
+ "type": "string",
1151
+ "minLength": 1
1152
+ },
1153
+ "args": {
1154
+ "default": [],
1155
+ "type": "array",
1156
+ "items": {
1157
+ "type": "string"
1158
+ }
1159
+ },
1160
+ "cwd": {
1161
+ "type": "string"
1162
+ },
1163
+ "timeoutSeconds": {
1164
+ "default": 60,
879
1165
  "type": "integer",
880
1166
  "exclusiveMinimum": 0,
881
- "maximum": 9007199254740991
1167
+ "maximum": 300
1168
+ },
1169
+ "allowMutation": {
1170
+ "default": false,
1171
+ "type": "boolean"
882
1172
  }
883
1173
  },
1174
+ "required": [
1175
+ "id",
1176
+ "kind",
1177
+ "mode",
1178
+ "operation",
1179
+ "command"
1180
+ ],
884
1181
  "additionalProperties": false
885
- },
886
- "kind": {
887
- "type": "string",
888
- "const": "agentTask"
889
- },
890
- "role": {
891
- "type": "string",
892
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
893
1182
  }
894
- },
895
- "required": [
896
- "id",
897
- "prompt",
898
- "kind",
899
- "role"
900
- ],
901
- "additionalProperties": false
1183
+ ]
902
1184
  },
903
1185
  {
904
1186
  "type": "object",
@@ -968,232 +1250,257 @@
968
1250
  "additionalProperties": false
969
1251
  }
970
1252
  },
971
- "prompt": {
972
- "type": "string"
973
- },
974
1253
  "limits": {
975
1254
  "type": "object",
976
1255
  "properties": {
977
1256
  "maxConcurrency": {
978
- "type": "integer",
979
- "exclusiveMinimum": 0,
980
- "maximum": 9007199254740991
1257
+ "anyOf": [
1258
+ {
1259
+ "type": "integer",
1260
+ "exclusiveMinimum": 0,
1261
+ "maximum": 9007199254740991
1262
+ },
1263
+ {
1264
+ "type": "object",
1265
+ "properties": {
1266
+ "source": {
1267
+ "type": "string",
1268
+ "minLength": 1
1269
+ },
1270
+ "default": {
1271
+ "type": "integer",
1272
+ "exclusiveMinimum": 0,
1273
+ "maximum": 9007199254740991
1274
+ }
1275
+ },
1276
+ "required": [
1277
+ "source"
1278
+ ],
1279
+ "additionalProperties": false
1280
+ }
1281
+ ]
981
1282
  },
982
1283
  "maxFanoutItems": {
983
- "type": "integer",
984
- "exclusiveMinimum": 0,
985
- "maximum": 9007199254740991
1284
+ "anyOf": [
1285
+ {
1286
+ "type": "integer",
1287
+ "exclusiveMinimum": 0,
1288
+ "maximum": 9007199254740991
1289
+ },
1290
+ {
1291
+ "type": "object",
1292
+ "properties": {
1293
+ "source": {
1294
+ "type": "string",
1295
+ "minLength": 1
1296
+ },
1297
+ "default": {
1298
+ "type": "integer",
1299
+ "exclusiveMinimum": 0,
1300
+ "maximum": 9007199254740991
1301
+ }
1302
+ },
1303
+ "required": [
1304
+ "source"
1305
+ ],
1306
+ "additionalProperties": false
1307
+ }
1308
+ ]
986
1309
  },
987
1310
  "stageTimeoutMinutes": {
988
- "type": "integer",
989
- "exclusiveMinimum": 0,
990
- "maximum": 9007199254740991
1311
+ "anyOf": [
1312
+ {
1313
+ "type": "integer",
1314
+ "exclusiveMinimum": 0,
1315
+ "maximum": 9007199254740991
1316
+ },
1317
+ {
1318
+ "type": "object",
1319
+ "properties": {
1320
+ "source": {
1321
+ "type": "string",
1322
+ "minLength": 1
1323
+ },
1324
+ "default": {
1325
+ "type": "integer",
1326
+ "exclusiveMinimum": 0,
1327
+ "maximum": 9007199254740991
1328
+ }
1329
+ },
1330
+ "required": [
1331
+ "source"
1332
+ ],
1333
+ "additionalProperties": false
1334
+ }
1335
+ ]
991
1336
  }
992
1337
  },
993
1338
  "additionalProperties": false
994
1339
  },
995
1340
  "kind": {
996
1341
  "type": "string",
997
- "const": "discover"
998
- },
999
- "method": {
1000
- "type": "string",
1001
- "enum": [
1002
- "gitChangedFiles",
1003
- "glob",
1004
- "agent"
1005
- ]
1342
+ "const": "fanout"
1006
1343
  },
1007
- "args": {
1344
+ "items": {
1008
1345
  "type": "object",
1009
- "propertyNames": {
1010
- "type": "string"
1346
+ "properties": {
1347
+ "source": {
1348
+ "type": "string",
1349
+ "minLength": 1
1350
+ }
1011
1351
  },
1012
- "additionalProperties": {}
1013
- },
1014
- "output": {
1015
- "default": "items",
1016
- "type": "string"
1352
+ "required": [
1353
+ "source"
1354
+ ],
1355
+ "additionalProperties": false
1017
1356
  },
1018
- "role": {
1019
- "type": "string",
1020
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1021
- }
1022
- },
1023
- "required": [
1024
- "id",
1025
- "kind",
1026
- "method"
1027
- ],
1028
- "additionalProperties": false
1029
- },
1030
- {
1031
- "type": "object",
1032
- "properties": {
1033
- "id": {
1357
+ "prompt": {
1034
1358
  "type": "string",
1035
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1359
+ "minLength": 1
1036
1360
  },
1037
- "dependsOn": {
1038
- "type": "array",
1039
- "items": {
1040
- "type": "string",
1041
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1042
- }
1043
- },
1044
- "variables": {
1361
+ "lanes": {
1362
+ "minItems": 1,
1045
1363
  "type": "array",
1046
1364
  "items": {
1047
1365
  "type": "object",
1048
1366
  "properties": {
1049
- "name": {
1367
+ "id": {
1050
1368
  "type": "string",
1051
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
1369
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1052
1370
  },
1053
- "source": {
1371
+ "actor": {
1372
+ "type": "object",
1373
+ "properties": {
1374
+ "agent": {
1375
+ "type": "string",
1376
+ "minLength": 1
1377
+ },
1378
+ "mode": {
1379
+ "type": "string",
1380
+ "enum": [
1381
+ "denyAll",
1382
+ "readOnly",
1383
+ "edit"
1384
+ ]
1385
+ },
1386
+ "label": {
1387
+ "type": "string",
1388
+ "minLength": 1
1389
+ }
1390
+ },
1391
+ "required": [
1392
+ "agent",
1393
+ "mode"
1394
+ ],
1395
+ "additionalProperties": false
1396
+ },
1397
+ "prompt": {
1054
1398
  "type": "string",
1055
1399
  "minLength": 1
1056
1400
  },
1057
- "transform": {
1058
- "type": "array",
1059
- "items": {
1060
- "type": "object",
1061
- "properties": {
1062
- "fn": {
1063
- "type": "string",
1064
- "enum": [
1065
- "compact",
1066
- "tail",
1067
- "json",
1068
- "quoteBlock",
1069
- "pathList",
1070
- "filterSeverity",
1071
- "severitySummary",
1072
- "join",
1073
- "default"
1074
- ]
1075
- },
1076
- "args": {
1077
- "type": "object",
1078
- "propertyNames": {
1079
- "type": "string"
1080
- },
1081
- "additionalProperties": {}
1082
- }
1083
- },
1084
- "required": [
1085
- "fn"
1086
- ],
1087
- "additionalProperties": false
1088
- }
1401
+ "when": {
1402
+ "$ref": "#/$defs/__schema0"
1403
+ },
1404
+ "output": {
1405
+ "type": "object",
1406
+ "properties": {
1407
+ "schema": {
1408
+ "type": "string",
1409
+ "minLength": 1
1410
+ }
1411
+ },
1412
+ "required": [
1413
+ "schema"
1414
+ ],
1415
+ "additionalProperties": false
1089
1416
  }
1090
1417
  },
1091
1418
  "required": [
1092
- "name",
1093
- "source"
1419
+ "id",
1420
+ "actor"
1094
1421
  ],
1095
1422
  "additionalProperties": false
1096
1423
  }
1097
1424
  },
1098
- "prompt": {
1099
- "type": "string",
1100
- "minLength": 1
1101
- },
1102
- "limits": {
1103
- "type": "object",
1104
- "properties": {
1105
- "maxConcurrency": {
1106
- "type": "integer",
1107
- "exclusiveMinimum": 0,
1108
- "maximum": 9007199254740991
1109
- },
1110
- "maxFanoutItems": {
1111
- "type": "integer",
1112
- "exclusiveMinimum": 0,
1113
- "maximum": 9007199254740991
1114
- },
1115
- "stageTimeoutMinutes": {
1116
- "type": "integer",
1117
- "exclusiveMinimum": 0,
1118
- "maximum": 9007199254740991
1119
- }
1120
- },
1121
- "additionalProperties": false
1122
- },
1123
- "kind": {
1124
- "type": "string",
1125
- "const": "fanout"
1126
- },
1127
- "items": {
1128
- "type": "object",
1129
- "properties": {
1130
- "source": {
1131
- "type": "string",
1132
- "minLength": 1
1133
- }
1134
- },
1135
- "required": [
1136
- "source"
1137
- ],
1138
- "additionalProperties": false
1139
- },
1140
- "laneGroups": {
1141
- "minItems": 1,
1142
- "type": "array",
1143
- "items": {
1144
- "type": "object",
1145
- "properties": {
1146
- "id": {
1147
- "type": "string",
1148
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1149
- },
1150
- "mode": {
1151
- "type": "string",
1152
- "enum": [
1153
- "all",
1154
- "oneOf"
1155
- ]
1156
- },
1157
- "lanes": {
1158
- "minItems": 1,
1159
- "type": "array",
1160
- "items": {
1425
+ "fanin": {
1426
+ "oneOf": [
1427
+ {
1428
+ "type": "object",
1429
+ "properties": {
1430
+ "mode": {
1431
+ "type": "string",
1432
+ "const": "agent"
1433
+ },
1434
+ "actor": {
1161
1435
  "type": "object",
1162
1436
  "properties": {
1163
- "id": {
1437
+ "agent": {
1164
1438
  "type": "string",
1165
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1439
+ "minLength": 1
1166
1440
  },
1167
- "role": {
1441
+ "mode": {
1168
1442
  "type": "string",
1169
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1443
+ "enum": [
1444
+ "denyAll",
1445
+ "readOnly",
1446
+ "edit"
1447
+ ]
1170
1448
  },
1171
- "prompt": {
1449
+ "label": {
1450
+ "type": "string",
1451
+ "minLength": 1
1452
+ }
1453
+ },
1454
+ "required": [
1455
+ "agent",
1456
+ "mode"
1457
+ ],
1458
+ "additionalProperties": false
1459
+ },
1460
+ "prompt": {
1461
+ "type": "string",
1462
+ "minLength": 1
1463
+ },
1464
+ "output": {
1465
+ "type": "object",
1466
+ "properties": {
1467
+ "schema": {
1172
1468
  "type": "string",
1173
1469
  "minLength": 1
1174
- },
1175
- "when": {
1176
- "$ref": "#/$defs/__schema0"
1177
- },
1178
- "default": {
1179
- "type": "boolean"
1180
1470
  }
1181
1471
  },
1182
1472
  "required": [
1183
- "id",
1184
- "role"
1473
+ "schema"
1185
1474
  ],
1186
1475
  "additionalProperties": false
1187
1476
  }
1188
- }
1477
+ },
1478
+ "required": [
1479
+ "mode",
1480
+ "actor",
1481
+ "prompt"
1482
+ ],
1483
+ "additionalProperties": false
1189
1484
  },
1190
- "required": [
1191
- "id",
1192
- "mode",
1193
- "lanes"
1194
- ],
1195
- "additionalProperties": false
1196
- }
1485
+ {
1486
+ "type": "object",
1487
+ "properties": {
1488
+ "mode": {
1489
+ "type": "string",
1490
+ "const": "program"
1491
+ },
1492
+ "operation": {
1493
+ "type": "string",
1494
+ "const": "mergeArrays"
1495
+ }
1496
+ },
1497
+ "required": [
1498
+ "mode",
1499
+ "operation"
1500
+ ],
1501
+ "additionalProperties": false
1502
+ }
1503
+ ]
1197
1504
  },
1198
1505
  "fanoutPolicy": {
1199
1506
  "type": "object",
@@ -1220,286 +1527,342 @@
1220
1527
  "id",
1221
1528
  "kind",
1222
1529
  "items",
1223
- "laneGroups"
1530
+ "lanes",
1531
+ "fanin"
1224
1532
  ],
1225
1533
  "additionalProperties": false
1226
1534
  },
1227
1535
  {
1228
- "type": "object",
1229
- "properties": {
1230
- "id": {
1231
- "type": "string",
1232
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1233
- },
1234
- "dependsOn": {
1235
- "type": "array",
1236
- "items": {
1237
- "type": "string",
1238
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1239
- }
1240
- },
1241
- "variables": {
1242
- "type": "array",
1243
- "items": {
1244
- "type": "object",
1245
- "properties": {
1246
- "name": {
1247
- "type": "string",
1248
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
1249
- },
1250
- "source": {
1536
+ "oneOf": [
1537
+ {
1538
+ "type": "object",
1539
+ "properties": {
1540
+ "id": {
1541
+ "type": "string",
1542
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1543
+ },
1544
+ "dependsOn": {
1545
+ "type": "array",
1546
+ "items": {
1251
1547
  "type": "string",
1252
- "minLength": 1
1253
- },
1254
- "transform": {
1255
- "type": "array",
1256
- "items": {
1257
- "type": "object",
1258
- "properties": {
1259
- "fn": {
1260
- "type": "string",
1261
- "enum": [
1262
- "compact",
1263
- "tail",
1264
- "json",
1265
- "quoteBlock",
1266
- "pathList",
1267
- "filterSeverity",
1268
- "severitySummary",
1269
- "join",
1270
- "default"
1271
- ]
1548
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1549
+ }
1550
+ },
1551
+ "variables": {
1552
+ "type": "array",
1553
+ "items": {
1554
+ "type": "object",
1555
+ "properties": {
1556
+ "name": {
1557
+ "type": "string",
1558
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
1559
+ },
1560
+ "source": {
1561
+ "type": "string",
1562
+ "minLength": 1
1563
+ },
1564
+ "transform": {
1565
+ "type": "array",
1566
+ "items": {
1567
+ "type": "object",
1568
+ "properties": {
1569
+ "fn": {
1570
+ "type": "string",
1571
+ "enum": [
1572
+ "compact",
1573
+ "tail",
1574
+ "json",
1575
+ "quoteBlock",
1576
+ "pathList",
1577
+ "filterSeverity",
1578
+ "severitySummary",
1579
+ "join",
1580
+ "default"
1581
+ ]
1582
+ },
1583
+ "args": {
1584
+ "type": "object",
1585
+ "propertyNames": {
1586
+ "type": "string"
1587
+ },
1588
+ "additionalProperties": {}
1589
+ }
1590
+ },
1591
+ "required": [
1592
+ "fn"
1593
+ ],
1594
+ "additionalProperties": false
1595
+ }
1596
+ }
1597
+ },
1598
+ "required": [
1599
+ "name",
1600
+ "source"
1601
+ ],
1602
+ "additionalProperties": false
1603
+ }
1604
+ },
1605
+ "limits": {
1606
+ "type": "object",
1607
+ "properties": {
1608
+ "stageTimeoutMinutes": {
1609
+ "anyOf": [
1610
+ {
1611
+ "type": "integer",
1612
+ "exclusiveMinimum": 0,
1613
+ "maximum": 9007199254740991
1272
1614
  },
1273
- "args": {
1615
+ {
1274
1616
  "type": "object",
1275
- "propertyNames": {
1276
- "type": "string"
1617
+ "properties": {
1618
+ "source": {
1619
+ "type": "string",
1620
+ "minLength": 1
1621
+ },
1622
+ "default": {
1623
+ "type": "integer",
1624
+ "exclusiveMinimum": 0,
1625
+ "maximum": 9007199254740991
1626
+ }
1277
1627
  },
1278
- "additionalProperties": {}
1628
+ "required": [
1629
+ "source"
1630
+ ],
1631
+ "additionalProperties": false
1279
1632
  }
1280
- },
1281
- "required": [
1282
- "fn"
1283
- ],
1284
- "additionalProperties": false
1633
+ ]
1285
1634
  }
1286
- }
1635
+ },
1636
+ "additionalProperties": false
1287
1637
  },
1288
- "required": [
1289
- "name",
1290
- "source"
1291
- ],
1292
- "additionalProperties": false
1293
- }
1294
- },
1295
- "prompt": {
1296
- "type": "string"
1297
- },
1298
- "limits": {
1299
- "type": "object",
1300
- "properties": {
1301
- "maxConcurrency": {
1302
- "type": "integer",
1303
- "exclusiveMinimum": 0,
1304
- "maximum": 9007199254740991
1638
+ "kind": {
1639
+ "type": "string",
1640
+ "const": "route"
1305
1641
  },
1306
- "maxFanoutItems": {
1307
- "type": "integer",
1308
- "exclusiveMinimum": 0,
1309
- "maximum": 9007199254740991
1642
+ "mode": {
1643
+ "type": "string",
1644
+ "const": "program"
1310
1645
  },
1311
- "stageTimeoutMinutes": {
1312
- "type": "integer",
1313
- "exclusiveMinimum": 0,
1314
- "maximum": 9007199254740991
1646
+ "rules": {
1647
+ "minItems": 1,
1648
+ "type": "array",
1649
+ "items": {
1650
+ "type": "object",
1651
+ "properties": {
1652
+ "when": {
1653
+ "$ref": "#/$defs/__schema0"
1654
+ },
1655
+ "to": {
1656
+ "type": "string",
1657
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1658
+ }
1659
+ },
1660
+ "required": [
1661
+ "when",
1662
+ "to"
1663
+ ],
1664
+ "additionalProperties": false
1665
+ }
1666
+ },
1667
+ "routes": {
1668
+ "minItems": 1,
1669
+ "type": "array",
1670
+ "items": {
1671
+ "type": "string",
1672
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1673
+ }
1315
1674
  }
1316
1675
  },
1676
+ "required": [
1677
+ "id",
1678
+ "kind",
1679
+ "mode",
1680
+ "rules",
1681
+ "routes"
1682
+ ],
1317
1683
  "additionalProperties": false
1318
1684
  },
1319
- "kind": {
1320
- "type": "string",
1321
- "const": "reduce"
1322
- },
1323
- "mode": {
1324
- "default": "agent",
1325
- "type": "string",
1326
- "enum": [
1327
- "agent",
1328
- "program"
1329
- ]
1330
- },
1331
- "from": {
1332
- "type": "string",
1333
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1334
- },
1335
- "role": {
1336
- "type": "string",
1337
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1338
- },
1339
- "operation": {
1340
- "type": "string",
1341
- "enum": [
1342
- "mergeArrays",
1343
- "severitySummary",
1344
- "dedupeFindings",
1345
- "sortBySeverity"
1346
- ]
1347
- }
1348
- },
1349
- "required": [
1350
- "id",
1351
- "kind",
1352
- "from"
1353
- ],
1354
- "additionalProperties": false
1355
- },
1356
- {
1357
- "type": "object",
1358
- "properties": {
1359
- "id": {
1360
- "type": "string",
1361
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1362
- },
1363
- "dependsOn": {
1364
- "type": "array",
1365
- "items": {
1366
- "type": "string",
1367
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1368
- }
1369
- },
1370
- "variables": {
1371
- "type": "array",
1372
- "items": {
1373
- "type": "object",
1374
- "properties": {
1375
- "name": {
1376
- "type": "string",
1377
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
1378
- },
1379
- "source": {
1685
+ {
1686
+ "type": "object",
1687
+ "properties": {
1688
+ "id": {
1689
+ "type": "string",
1690
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1691
+ },
1692
+ "dependsOn": {
1693
+ "type": "array",
1694
+ "items": {
1380
1695
  "type": "string",
1381
- "minLength": 1
1382
- },
1383
- "transform": {
1384
- "type": "array",
1385
- "items": {
1386
- "type": "object",
1387
- "properties": {
1388
- "fn": {
1389
- "type": "string",
1390
- "enum": [
1391
- "compact",
1392
- "tail",
1393
- "json",
1394
- "quoteBlock",
1395
- "pathList",
1396
- "filterSeverity",
1397
- "severitySummary",
1398
- "join",
1399
- "default"
1400
- ]
1696
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1697
+ }
1698
+ },
1699
+ "variables": {
1700
+ "type": "array",
1701
+ "items": {
1702
+ "type": "object",
1703
+ "properties": {
1704
+ "name": {
1705
+ "type": "string",
1706
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
1707
+ },
1708
+ "source": {
1709
+ "type": "string",
1710
+ "minLength": 1
1711
+ },
1712
+ "transform": {
1713
+ "type": "array",
1714
+ "items": {
1715
+ "type": "object",
1716
+ "properties": {
1717
+ "fn": {
1718
+ "type": "string",
1719
+ "enum": [
1720
+ "compact",
1721
+ "tail",
1722
+ "json",
1723
+ "quoteBlock",
1724
+ "pathList",
1725
+ "filterSeverity",
1726
+ "severitySummary",
1727
+ "join",
1728
+ "default"
1729
+ ]
1730
+ },
1731
+ "args": {
1732
+ "type": "object",
1733
+ "propertyNames": {
1734
+ "type": "string"
1735
+ },
1736
+ "additionalProperties": {}
1737
+ }
1738
+ },
1739
+ "required": [
1740
+ "fn"
1741
+ ],
1742
+ "additionalProperties": false
1743
+ }
1744
+ }
1745
+ },
1746
+ "required": [
1747
+ "name",
1748
+ "source"
1749
+ ],
1750
+ "additionalProperties": false
1751
+ }
1752
+ },
1753
+ "limits": {
1754
+ "type": "object",
1755
+ "properties": {
1756
+ "stageTimeoutMinutes": {
1757
+ "anyOf": [
1758
+ {
1759
+ "type": "integer",
1760
+ "exclusiveMinimum": 0,
1761
+ "maximum": 9007199254740991
1401
1762
  },
1402
- "args": {
1763
+ {
1403
1764
  "type": "object",
1404
- "propertyNames": {
1405
- "type": "string"
1765
+ "properties": {
1766
+ "source": {
1767
+ "type": "string",
1768
+ "minLength": 1
1769
+ },
1770
+ "default": {
1771
+ "type": "integer",
1772
+ "exclusiveMinimum": 0,
1773
+ "maximum": 9007199254740991
1774
+ }
1406
1775
  },
1407
- "additionalProperties": {}
1776
+ "required": [
1777
+ "source"
1778
+ ],
1779
+ "additionalProperties": false
1408
1780
  }
1409
- },
1410
- "required": [
1411
- "fn"
1412
- ],
1413
- "additionalProperties": false
1781
+ ]
1414
1782
  }
1783
+ },
1784
+ "additionalProperties": false
1785
+ },
1786
+ "kind": {
1787
+ "type": "string",
1788
+ "const": "route"
1789
+ },
1790
+ "mode": {
1791
+ "type": "string",
1792
+ "const": "agent"
1793
+ },
1794
+ "rules": {
1795
+ "minItems": 1,
1796
+ "type": "array",
1797
+ "items": {
1798
+ "type": "object",
1799
+ "properties": {
1800
+ "when": {
1801
+ "$ref": "#/$defs/__schema0"
1802
+ },
1803
+ "to": {
1804
+ "type": "string",
1805
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1806
+ }
1807
+ },
1808
+ "required": [
1809
+ "when",
1810
+ "to"
1811
+ ],
1812
+ "additionalProperties": false
1415
1813
  }
1416
1814
  },
1417
- "required": [
1418
- "name",
1419
- "source"
1420
- ],
1421
- "additionalProperties": false
1422
- }
1423
- },
1424
- "prompt": {
1425
- "type": "string"
1426
- },
1427
- "limits": {
1428
- "type": "object",
1429
- "properties": {
1430
- "maxConcurrency": {
1431
- "type": "integer",
1432
- "exclusiveMinimum": 0,
1433
- "maximum": 9007199254740991
1815
+ "routes": {
1816
+ "minItems": 1,
1817
+ "type": "array",
1818
+ "items": {
1819
+ "type": "string",
1820
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1821
+ }
1434
1822
  },
1435
- "maxFanoutItems": {
1436
- "type": "integer",
1437
- "exclusiveMinimum": 0,
1438
- "maximum": 9007199254740991
1823
+ "actor": {
1824
+ "type": "object",
1825
+ "properties": {
1826
+ "agent": {
1827
+ "type": "string",
1828
+ "minLength": 1
1829
+ },
1830
+ "mode": {
1831
+ "type": "string",
1832
+ "enum": [
1833
+ "denyAll",
1834
+ "readOnly",
1835
+ "edit"
1836
+ ]
1837
+ },
1838
+ "label": {
1839
+ "type": "string",
1840
+ "minLength": 1
1841
+ }
1842
+ },
1843
+ "required": [
1844
+ "agent",
1845
+ "mode"
1846
+ ],
1847
+ "additionalProperties": false
1439
1848
  },
1440
- "stageTimeoutMinutes": {
1441
- "type": "integer",
1442
- "exclusiveMinimum": 0,
1443
- "maximum": 9007199254740991
1849
+ "prompt": {
1850
+ "type": "string",
1851
+ "minLength": 1
1444
1852
  }
1445
1853
  },
1854
+ "required": [
1855
+ "id",
1856
+ "kind",
1857
+ "mode",
1858
+ "rules",
1859
+ "routes",
1860
+ "actor",
1861
+ "prompt"
1862
+ ],
1446
1863
  "additionalProperties": false
1447
- },
1448
- "kind": {
1449
- "type": "string",
1450
- "const": "decisionGate"
1451
- },
1452
- "mode": {
1453
- "default": "program",
1454
- "type": "string",
1455
- "enum": [
1456
- "program",
1457
- "agent"
1458
- ]
1459
- },
1460
- "rules": {
1461
- "minItems": 1,
1462
- "type": "array",
1463
- "items": {
1464
- "type": "object",
1465
- "properties": {
1466
- "when": {
1467
- "$ref": "#/$defs/__schema0"
1468
- },
1469
- "to": {
1470
- "type": "string",
1471
- "minLength": 1
1472
- }
1473
- },
1474
- "required": [
1475
- "when",
1476
- "to"
1477
- ],
1478
- "additionalProperties": false
1479
- }
1480
- },
1481
- "default": {
1482
- "type": "string",
1483
- "minLength": 1
1484
- },
1485
- "role": {
1486
- "type": "string",
1487
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1488
- },
1489
- "routes": {
1490
- "type": "array",
1491
- "items": {
1492
- "type": "string"
1493
- }
1494
1864
  }
1495
- },
1496
- "required": [
1497
- "id",
1498
- "kind",
1499
- "rules",
1500
- "default"
1501
- ],
1502
- "additionalProperties": false
1865
+ ]
1503
1866
  }
1504
1867
  ]
1505
1868
  }
@@ -1531,380 +1894,625 @@
1531
1894
  "additionalProperties": false
1532
1895
  },
1533
1896
  {
1534
- "type": "object",
1535
- "properties": {
1536
- "id": {
1537
- "type": "string",
1538
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1539
- },
1540
- "dependsOn": {
1541
- "type": "array",
1542
- "items": {
1543
- "type": "string",
1544
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1545
- }
1546
- },
1547
- "variables": {
1548
- "type": "array",
1549
- "items": {
1550
- "type": "object",
1551
- "properties": {
1552
- "name": {
1553
- "type": "string",
1554
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
1555
- },
1556
- "source": {
1897
+ "oneOf": [
1898
+ {
1899
+ "type": "object",
1900
+ "properties": {
1901
+ "id": {
1902
+ "type": "string",
1903
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1904
+ },
1905
+ "dependsOn": {
1906
+ "type": "array",
1907
+ "items": {
1557
1908
  "type": "string",
1558
- "minLength": 1
1559
- },
1560
- "transform": {
1561
- "type": "array",
1562
- "items": {
1563
- "type": "object",
1564
- "properties": {
1565
- "fn": {
1566
- "type": "string",
1567
- "enum": [
1568
- "compact",
1569
- "tail",
1570
- "json",
1571
- "quoteBlock",
1572
- "pathList",
1573
- "filterSeverity",
1574
- "severitySummary",
1575
- "join",
1576
- "default"
1577
- ]
1909
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1910
+ }
1911
+ },
1912
+ "variables": {
1913
+ "type": "array",
1914
+ "items": {
1915
+ "type": "object",
1916
+ "properties": {
1917
+ "name": {
1918
+ "type": "string",
1919
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
1920
+ },
1921
+ "source": {
1922
+ "type": "string",
1923
+ "minLength": 1
1924
+ },
1925
+ "transform": {
1926
+ "type": "array",
1927
+ "items": {
1928
+ "type": "object",
1929
+ "properties": {
1930
+ "fn": {
1931
+ "type": "string",
1932
+ "enum": [
1933
+ "compact",
1934
+ "tail",
1935
+ "json",
1936
+ "quoteBlock",
1937
+ "pathList",
1938
+ "filterSeverity",
1939
+ "severitySummary",
1940
+ "join",
1941
+ "default"
1942
+ ]
1943
+ },
1944
+ "args": {
1945
+ "type": "object",
1946
+ "propertyNames": {
1947
+ "type": "string"
1948
+ },
1949
+ "additionalProperties": {}
1950
+ }
1951
+ },
1952
+ "required": [
1953
+ "fn"
1954
+ ],
1955
+ "additionalProperties": false
1956
+ }
1957
+ }
1958
+ },
1959
+ "required": [
1960
+ "name",
1961
+ "source"
1962
+ ],
1963
+ "additionalProperties": false
1964
+ }
1965
+ },
1966
+ "limits": {
1967
+ "type": "object",
1968
+ "properties": {
1969
+ "stageTimeoutMinutes": {
1970
+ "anyOf": [
1971
+ {
1972
+ "type": "integer",
1973
+ "exclusiveMinimum": 0,
1974
+ "maximum": 9007199254740991
1578
1975
  },
1579
- "args": {
1976
+ {
1580
1977
  "type": "object",
1581
- "propertyNames": {
1582
- "type": "string"
1978
+ "properties": {
1979
+ "source": {
1980
+ "type": "string",
1981
+ "minLength": 1
1982
+ },
1983
+ "default": {
1984
+ "type": "integer",
1985
+ "exclusiveMinimum": 0,
1986
+ "maximum": 9007199254740991
1987
+ }
1583
1988
  },
1584
- "additionalProperties": {}
1989
+ "required": [
1990
+ "source"
1991
+ ],
1992
+ "additionalProperties": false
1585
1993
  }
1586
- },
1587
- "required": [
1588
- "fn"
1589
- ],
1590
- "additionalProperties": false
1994
+ ]
1591
1995
  }
1592
- }
1996
+ },
1997
+ "additionalProperties": false
1593
1998
  },
1594
- "required": [
1595
- "name",
1596
- "source"
1597
- ],
1598
- "additionalProperties": false
1599
- }
1600
- },
1601
- "prompt": {
1602
- "type": "string"
1603
- },
1604
- "limits": {
1605
- "type": "object",
1606
- "properties": {
1607
- "maxConcurrency": {
1608
- "type": "integer",
1609
- "exclusiveMinimum": 0,
1610
- "maximum": 9007199254740991
1999
+ "kind": {
2000
+ "type": "string",
2001
+ "const": "route"
1611
2002
  },
1612
- "maxFanoutItems": {
1613
- "type": "integer",
1614
- "exclusiveMinimum": 0,
1615
- "maximum": 9007199254740991
2003
+ "mode": {
2004
+ "type": "string",
2005
+ "const": "program"
1616
2006
  },
1617
- "stageTimeoutMinutes": {
1618
- "type": "integer",
1619
- "exclusiveMinimum": 0,
1620
- "maximum": 9007199254740991
2007
+ "rules": {
2008
+ "minItems": 1,
2009
+ "type": "array",
2010
+ "items": {
2011
+ "type": "object",
2012
+ "properties": {
2013
+ "when": {
2014
+ "$ref": "#/$defs/__schema0"
2015
+ },
2016
+ "to": {
2017
+ "type": "string",
2018
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
2019
+ }
2020
+ },
2021
+ "required": [
2022
+ "when",
2023
+ "to"
2024
+ ],
2025
+ "additionalProperties": false
2026
+ }
2027
+ },
2028
+ "routes": {
2029
+ "minItems": 1,
2030
+ "type": "array",
2031
+ "items": {
2032
+ "type": "string",
2033
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
2034
+ }
1621
2035
  }
1622
2036
  },
2037
+ "required": [
2038
+ "id",
2039
+ "kind",
2040
+ "mode",
2041
+ "rules",
2042
+ "routes"
2043
+ ],
1623
2044
  "additionalProperties": false
1624
2045
  },
1625
- "kind": {
1626
- "type": "string",
1627
- "const": "decisionGate"
1628
- },
1629
- "mode": {
1630
- "default": "program",
1631
- "type": "string",
1632
- "enum": [
1633
- "program",
1634
- "agent"
1635
- ]
1636
- },
1637
- "rules": {
1638
- "minItems": 1,
1639
- "type": "array",
1640
- "items": {
1641
- "type": "object",
1642
- "properties": {
1643
- "when": {
1644
- "$ref": "#/$defs/__schema0"
1645
- },
1646
- "to": {
2046
+ {
2047
+ "type": "object",
2048
+ "properties": {
2049
+ "id": {
2050
+ "type": "string",
2051
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
2052
+ },
2053
+ "dependsOn": {
2054
+ "type": "array",
2055
+ "items": {
1647
2056
  "type": "string",
1648
- "minLength": 1
2057
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1649
2058
  }
1650
2059
  },
1651
- "required": [
1652
- "when",
1653
- "to"
1654
- ],
1655
- "additionalProperties": false
1656
- }
1657
- },
1658
- "default": {
1659
- "type": "string",
1660
- "minLength": 1
1661
- },
1662
- "role": {
1663
- "type": "string",
1664
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1665
- },
1666
- "routes": {
1667
- "type": "array",
1668
- "items": {
1669
- "type": "string"
1670
- }
1671
- }
1672
- },
1673
- "required": [
1674
- "id",
1675
- "kind",
1676
- "rules",
1677
- "default"
1678
- ],
1679
- "additionalProperties": false
1680
- },
1681
- {
1682
- "type": "object",
1683
- "properties": {
1684
- "id": {
1685
- "type": "string",
1686
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1687
- },
1688
- "dependsOn": {
1689
- "type": "array",
1690
- "items": {
1691
- "type": "string",
1692
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1693
- }
1694
- },
1695
- "variables": {
1696
- "type": "array",
1697
- "items": {
1698
- "type": "object",
1699
- "properties": {
1700
- "name": {
1701
- "type": "string",
1702
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
1703
- },
1704
- "source": {
1705
- "type": "string",
1706
- "minLength": 1
1707
- },
1708
- "transform": {
1709
- "type": "array",
1710
- "items": {
1711
- "type": "object",
1712
- "properties": {
1713
- "fn": {
1714
- "type": "string",
1715
- "enum": [
1716
- "compact",
1717
- "tail",
1718
- "json",
1719
- "quoteBlock",
1720
- "pathList",
1721
- "filterSeverity",
1722
- "severitySummary",
1723
- "join",
1724
- "default"
1725
- ]
2060
+ "variables": {
2061
+ "type": "array",
2062
+ "items": {
2063
+ "type": "object",
2064
+ "properties": {
2065
+ "name": {
2066
+ "type": "string",
2067
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
2068
+ },
2069
+ "source": {
2070
+ "type": "string",
2071
+ "minLength": 1
2072
+ },
2073
+ "transform": {
2074
+ "type": "array",
2075
+ "items": {
2076
+ "type": "object",
2077
+ "properties": {
2078
+ "fn": {
2079
+ "type": "string",
2080
+ "enum": [
2081
+ "compact",
2082
+ "tail",
2083
+ "json",
2084
+ "quoteBlock",
2085
+ "pathList",
2086
+ "filterSeverity",
2087
+ "severitySummary",
2088
+ "join",
2089
+ "default"
2090
+ ]
2091
+ },
2092
+ "args": {
2093
+ "type": "object",
2094
+ "propertyNames": {
2095
+ "type": "string"
2096
+ },
2097
+ "additionalProperties": {}
2098
+ }
2099
+ },
2100
+ "required": [
2101
+ "fn"
2102
+ ],
2103
+ "additionalProperties": false
2104
+ }
2105
+ }
2106
+ },
2107
+ "required": [
2108
+ "name",
2109
+ "source"
2110
+ ],
2111
+ "additionalProperties": false
2112
+ }
2113
+ },
2114
+ "limits": {
2115
+ "type": "object",
2116
+ "properties": {
2117
+ "stageTimeoutMinutes": {
2118
+ "anyOf": [
2119
+ {
2120
+ "type": "integer",
2121
+ "exclusiveMinimum": 0,
2122
+ "maximum": 9007199254740991
1726
2123
  },
1727
- "args": {
2124
+ {
1728
2125
  "type": "object",
1729
- "propertyNames": {
1730
- "type": "string"
2126
+ "properties": {
2127
+ "source": {
2128
+ "type": "string",
2129
+ "minLength": 1
2130
+ },
2131
+ "default": {
2132
+ "type": "integer",
2133
+ "exclusiveMinimum": 0,
2134
+ "maximum": 9007199254740991
2135
+ }
1731
2136
  },
1732
- "additionalProperties": {}
2137
+ "required": [
2138
+ "source"
2139
+ ],
2140
+ "additionalProperties": false
1733
2141
  }
1734
- },
1735
- "required": [
1736
- "fn"
1737
- ],
1738
- "additionalProperties": false
2142
+ ]
1739
2143
  }
2144
+ },
2145
+ "additionalProperties": false
2146
+ },
2147
+ "kind": {
2148
+ "type": "string",
2149
+ "const": "route"
2150
+ },
2151
+ "mode": {
2152
+ "type": "string",
2153
+ "const": "agent"
2154
+ },
2155
+ "rules": {
2156
+ "minItems": 1,
2157
+ "type": "array",
2158
+ "items": {
2159
+ "type": "object",
2160
+ "properties": {
2161
+ "when": {
2162
+ "$ref": "#/$defs/__schema0"
2163
+ },
2164
+ "to": {
2165
+ "type": "string",
2166
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
2167
+ }
2168
+ },
2169
+ "required": [
2170
+ "when",
2171
+ "to"
2172
+ ],
2173
+ "additionalProperties": false
1740
2174
  }
1741
2175
  },
1742
- "required": [
1743
- "name",
1744
- "source"
1745
- ],
1746
- "additionalProperties": false
1747
- }
1748
- },
1749
- "prompt": {
1750
- "type": "string"
1751
- },
1752
- "limits": {
1753
- "type": "object",
1754
- "properties": {
1755
- "maxConcurrency": {
1756
- "type": "integer",
1757
- "exclusiveMinimum": 0,
1758
- "maximum": 9007199254740991
2176
+ "routes": {
2177
+ "minItems": 1,
2178
+ "type": "array",
2179
+ "items": {
2180
+ "type": "string",
2181
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
2182
+ }
1759
2183
  },
1760
- "maxFanoutItems": {
1761
- "type": "integer",
1762
- "exclusiveMinimum": 0,
1763
- "maximum": 9007199254740991
2184
+ "actor": {
2185
+ "type": "object",
2186
+ "properties": {
2187
+ "agent": {
2188
+ "type": "string",
2189
+ "minLength": 1
2190
+ },
2191
+ "mode": {
2192
+ "type": "string",
2193
+ "enum": [
2194
+ "denyAll",
2195
+ "readOnly",
2196
+ "edit"
2197
+ ]
2198
+ },
2199
+ "label": {
2200
+ "type": "string",
2201
+ "minLength": 1
2202
+ }
2203
+ },
2204
+ "required": [
2205
+ "agent",
2206
+ "mode"
2207
+ ],
2208
+ "additionalProperties": false
1764
2209
  },
1765
- "stageTimeoutMinutes": {
1766
- "type": "integer",
1767
- "exclusiveMinimum": 0,
1768
- "maximum": 9007199254740991
2210
+ "prompt": {
2211
+ "type": "string",
2212
+ "minLength": 1
1769
2213
  }
1770
2214
  },
2215
+ "required": [
2216
+ "id",
2217
+ "kind",
2218
+ "mode",
2219
+ "rules",
2220
+ "routes",
2221
+ "actor",
2222
+ "prompt"
2223
+ ],
1771
2224
  "additionalProperties": false
1772
- },
1773
- "kind": {
1774
- "type": "string",
1775
- "const": "gate"
1776
- },
1777
- "mode": {
1778
- "default": "program",
1779
- "type": "string",
1780
- "enum": [
1781
- "program",
1782
- "agent"
1783
- ]
1784
- },
1785
- "condition": {
1786
- "$ref": "#/$defs/__schema0"
1787
- },
1788
- "role": {
1789
- "type": "string",
1790
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1791
2225
  }
1792
- },
1793
- "required": [
1794
- "id",
1795
- "kind"
1796
- ],
1797
- "additionalProperties": false
2226
+ ]
1798
2227
  },
1799
2228
  {
1800
- "type": "object",
1801
- "properties": {
1802
- "id": {
1803
- "type": "string",
1804
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1805
- },
1806
- "dependsOn": {
1807
- "type": "array",
1808
- "items": {
1809
- "type": "string",
1810
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1811
- }
1812
- },
1813
- "variables": {
1814
- "type": "array",
1815
- "items": {
1816
- "type": "object",
1817
- "properties": {
1818
- "name": {
1819
- "type": "string",
1820
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
1821
- },
1822
- "source": {
2229
+ "oneOf": [
2230
+ {
2231
+ "type": "object",
2232
+ "properties": {
2233
+ "id": {
2234
+ "type": "string",
2235
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
2236
+ },
2237
+ "dependsOn": {
2238
+ "type": "array",
2239
+ "items": {
1823
2240
  "type": "string",
1824
- "minLength": 1
1825
- },
1826
- "transform": {
1827
- "type": "array",
1828
- "items": {
1829
- "type": "object",
1830
- "properties": {
1831
- "fn": {
1832
- "type": "string",
1833
- "enum": [
1834
- "compact",
1835
- "tail",
1836
- "json",
1837
- "quoteBlock",
1838
- "pathList",
1839
- "filterSeverity",
1840
- "severitySummary",
1841
- "join",
1842
- "default"
1843
- ]
2241
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
2242
+ }
2243
+ },
2244
+ "variables": {
2245
+ "type": "array",
2246
+ "items": {
2247
+ "type": "object",
2248
+ "properties": {
2249
+ "name": {
2250
+ "type": "string",
2251
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
2252
+ },
2253
+ "source": {
2254
+ "type": "string",
2255
+ "minLength": 1
2256
+ },
2257
+ "transform": {
2258
+ "type": "array",
2259
+ "items": {
2260
+ "type": "object",
2261
+ "properties": {
2262
+ "fn": {
2263
+ "type": "string",
2264
+ "enum": [
2265
+ "compact",
2266
+ "tail",
2267
+ "json",
2268
+ "quoteBlock",
2269
+ "pathList",
2270
+ "filterSeverity",
2271
+ "severitySummary",
2272
+ "join",
2273
+ "default"
2274
+ ]
2275
+ },
2276
+ "args": {
2277
+ "type": "object",
2278
+ "propertyNames": {
2279
+ "type": "string"
2280
+ },
2281
+ "additionalProperties": {}
2282
+ }
2283
+ },
2284
+ "required": [
2285
+ "fn"
2286
+ ],
2287
+ "additionalProperties": false
2288
+ }
2289
+ }
2290
+ },
2291
+ "required": [
2292
+ "name",
2293
+ "source"
2294
+ ],
2295
+ "additionalProperties": false
2296
+ }
2297
+ },
2298
+ "limits": {
2299
+ "type": "object",
2300
+ "properties": {
2301
+ "stageTimeoutMinutes": {
2302
+ "anyOf": [
2303
+ {
2304
+ "type": "integer",
2305
+ "exclusiveMinimum": 0,
2306
+ "maximum": 9007199254740991
1844
2307
  },
1845
- "args": {
2308
+ {
1846
2309
  "type": "object",
1847
- "propertyNames": {
1848
- "type": "string"
2310
+ "properties": {
2311
+ "source": {
2312
+ "type": "string",
2313
+ "minLength": 1
2314
+ },
2315
+ "default": {
2316
+ "type": "integer",
2317
+ "exclusiveMinimum": 0,
2318
+ "maximum": 9007199254740991
2319
+ }
1849
2320
  },
1850
- "additionalProperties": {}
2321
+ "required": [
2322
+ "source"
2323
+ ],
2324
+ "additionalProperties": false
1851
2325
  }
1852
- },
1853
- "required": [
1854
- "fn"
1855
- ],
1856
- "additionalProperties": false
2326
+ ]
1857
2327
  }
1858
- }
2328
+ },
2329
+ "additionalProperties": false
1859
2330
  },
1860
- "required": [
1861
- "name",
1862
- "source"
1863
- ],
1864
- "additionalProperties": false
1865
- }
1866
- },
1867
- "prompt": {
1868
- "type": "string",
1869
- "minLength": 1
2331
+ "kind": {
2332
+ "type": "string",
2333
+ "const": "gate"
2334
+ },
2335
+ "mode": {
2336
+ "type": "string",
2337
+ "const": "agent"
2338
+ },
2339
+ "condition": {
2340
+ "$ref": "#/$defs/__schema0"
2341
+ },
2342
+ "actor": {
2343
+ "type": "object",
2344
+ "properties": {
2345
+ "agent": {
2346
+ "type": "string",
2347
+ "minLength": 1
2348
+ },
2349
+ "mode": {
2350
+ "type": "string",
2351
+ "enum": [
2352
+ "denyAll",
2353
+ "readOnly",
2354
+ "edit"
2355
+ ]
2356
+ },
2357
+ "label": {
2358
+ "type": "string",
2359
+ "minLength": 1
2360
+ }
2361
+ },
2362
+ "required": [
2363
+ "agent",
2364
+ "mode"
2365
+ ],
2366
+ "additionalProperties": false
2367
+ },
2368
+ "prompt": {
2369
+ "type": "string",
2370
+ "minLength": 1
2371
+ },
2372
+ "output": {
2373
+ "type": "object",
2374
+ "properties": {
2375
+ "schema": {
2376
+ "type": "string",
2377
+ "minLength": 1
2378
+ }
2379
+ },
2380
+ "required": [
2381
+ "schema"
2382
+ ],
2383
+ "additionalProperties": false
2384
+ }
2385
+ },
2386
+ "required": [
2387
+ "id",
2388
+ "kind",
2389
+ "mode",
2390
+ "actor",
2391
+ "prompt"
2392
+ ],
2393
+ "additionalProperties": false
1870
2394
  },
1871
- "limits": {
2395
+ {
1872
2396
  "type": "object",
1873
2397
  "properties": {
1874
- "maxConcurrency": {
1875
- "type": "integer",
1876
- "exclusiveMinimum": 0,
1877
- "maximum": 9007199254740991
2398
+ "id": {
2399
+ "type": "string",
2400
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
1878
2401
  },
1879
- "maxFanoutItems": {
1880
- "type": "integer",
1881
- "exclusiveMinimum": 0,
1882
- "maximum": 9007199254740991
2402
+ "dependsOn": {
2403
+ "type": "array",
2404
+ "items": {
2405
+ "type": "string",
2406
+ "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$"
2407
+ }
1883
2408
  },
1884
- "stageTimeoutMinutes": {
1885
- "type": "integer",
1886
- "exclusiveMinimum": 0,
1887
- "maximum": 9007199254740991
2409
+ "variables": {
2410
+ "type": "array",
2411
+ "items": {
2412
+ "type": "object",
2413
+ "properties": {
2414
+ "name": {
2415
+ "type": "string",
2416
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
2417
+ },
2418
+ "source": {
2419
+ "type": "string",
2420
+ "minLength": 1
2421
+ },
2422
+ "transform": {
2423
+ "type": "array",
2424
+ "items": {
2425
+ "type": "object",
2426
+ "properties": {
2427
+ "fn": {
2428
+ "type": "string",
2429
+ "enum": [
2430
+ "compact",
2431
+ "tail",
2432
+ "json",
2433
+ "quoteBlock",
2434
+ "pathList",
2435
+ "filterSeverity",
2436
+ "severitySummary",
2437
+ "join",
2438
+ "default"
2439
+ ]
2440
+ },
2441
+ "args": {
2442
+ "type": "object",
2443
+ "propertyNames": {
2444
+ "type": "string"
2445
+ },
2446
+ "additionalProperties": {}
2447
+ }
2448
+ },
2449
+ "required": [
2450
+ "fn"
2451
+ ],
2452
+ "additionalProperties": false
2453
+ }
2454
+ }
2455
+ },
2456
+ "required": [
2457
+ "name",
2458
+ "source"
2459
+ ],
2460
+ "additionalProperties": false
2461
+ }
2462
+ },
2463
+ "limits": {
2464
+ "type": "object",
2465
+ "properties": {
2466
+ "stageTimeoutMinutes": {
2467
+ "anyOf": [
2468
+ {
2469
+ "type": "integer",
2470
+ "exclusiveMinimum": 0,
2471
+ "maximum": 9007199254740991
2472
+ },
2473
+ {
2474
+ "type": "object",
2475
+ "properties": {
2476
+ "source": {
2477
+ "type": "string",
2478
+ "minLength": 1
2479
+ },
2480
+ "default": {
2481
+ "type": "integer",
2482
+ "exclusiveMinimum": 0,
2483
+ "maximum": 9007199254740991
2484
+ }
2485
+ },
2486
+ "required": [
2487
+ "source"
2488
+ ],
2489
+ "additionalProperties": false
2490
+ }
2491
+ ]
2492
+ }
2493
+ },
2494
+ "additionalProperties": false
2495
+ },
2496
+ "kind": {
2497
+ "type": "string",
2498
+ "const": "gate"
2499
+ },
2500
+ "mode": {
2501
+ "default": "program",
2502
+ "type": "string",
2503
+ "const": "program"
2504
+ },
2505
+ "condition": {
2506
+ "$ref": "#/$defs/__schema0"
1888
2507
  }
1889
2508
  },
2509
+ "required": [
2510
+ "id",
2511
+ "kind"
2512
+ ],
1890
2513
  "additionalProperties": false
1891
- },
1892
- "kind": {
1893
- "type": "string",
1894
- "const": "summarize"
1895
- },
1896
- "role": {
1897
- "type": "string",
1898
- "const": "summarizer"
1899
2514
  }
1900
- },
1901
- "required": [
1902
- "id",
1903
- "prompt",
1904
- "kind",
1905
- "role"
1906
- ],
1907
- "additionalProperties": false
2515
+ ]
1908
2516
  }
1909
2517
  ]
1910
2518
  }
@@ -1914,7 +2522,6 @@
1914
2522
  "schemaVersion",
1915
2523
  "name",
1916
2524
  "root",
1917
- "roles",
1918
2525
  "stages"
1919
2526
  ],
1920
2527
  "additionalProperties": false,