@exaudeus/workrail 3.13.0 → 3.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/manifest.json +10 -10
- package/dist/mcp/handlers/v2-workflow.d.ts +3 -0
- package/dist/mcp/handlers/v2-workflow.js +58 -0
- package/dist/mcp/output-schemas.d.ts +93 -0
- package/dist/mcp/output-schemas.js +8 -1
- package/dist/types/workflow-definition.d.ts +1 -0
- package/package.json +2 -1
- package/spec/authoring-spec.json +9 -2
- package/spec/workflow.schema.json +418 -96
- package/workflows/workflow-for-workflows.v2.json +58 -18
|
@@ -28,7 +28,11 @@
|
|
|
28
28
|
"type": "string",
|
|
29
29
|
"description": "Semantic version of the workflow (e.g., 0.0.1, 0.1.0)",
|
|
30
30
|
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
|
|
31
|
-
"examples": [
|
|
31
|
+
"examples": [
|
|
32
|
+
"0.0.1",
|
|
33
|
+
"0.1.0",
|
|
34
|
+
"0.0.1-alpha.1"
|
|
35
|
+
]
|
|
32
36
|
},
|
|
33
37
|
"preconditions": {
|
|
34
38
|
"type": "array",
|
|
@@ -99,11 +103,18 @@
|
|
|
99
103
|
},
|
|
100
104
|
"scope": {
|
|
101
105
|
"type": "string",
|
|
102
|
-
"enum": [
|
|
106
|
+
"enum": [
|
|
107
|
+
"workflow",
|
|
108
|
+
"loop",
|
|
109
|
+
"step"
|
|
110
|
+
],
|
|
103
111
|
"description": "Scope where this function is available"
|
|
104
112
|
}
|
|
105
113
|
},
|
|
106
|
-
"required": [
|
|
114
|
+
"required": [
|
|
115
|
+
"name",
|
|
116
|
+
"definition"
|
|
117
|
+
],
|
|
107
118
|
"additionalProperties": false
|
|
108
119
|
},
|
|
109
120
|
"uniqueItems": true
|
|
@@ -114,12 +125,20 @@
|
|
|
114
125
|
"properties": {
|
|
115
126
|
"recommendedAutonomy": {
|
|
116
127
|
"type": "string",
|
|
117
|
-
"enum": [
|
|
128
|
+
"enum": [
|
|
129
|
+
"guided",
|
|
130
|
+
"full_auto_stop_on_user_deps",
|
|
131
|
+
"full_auto_never_stop"
|
|
132
|
+
],
|
|
118
133
|
"description": "Recommended autonomy level for this workflow"
|
|
119
134
|
},
|
|
120
135
|
"recommendedRiskPolicy": {
|
|
121
136
|
"type": "string",
|
|
122
|
-
"enum": [
|
|
137
|
+
"enum": [
|
|
138
|
+
"conservative",
|
|
139
|
+
"balanced",
|
|
140
|
+
"aggressive"
|
|
141
|
+
],
|
|
123
142
|
"description": "Recommended risk policy for this workflow"
|
|
124
143
|
}
|
|
125
144
|
},
|
|
@@ -153,11 +172,16 @@
|
|
|
153
172
|
},
|
|
154
173
|
"references": {
|
|
155
174
|
"type": "array",
|
|
156
|
-
"description": "Workflow-declared references to external documents. Each reference is a pointer
|
|
175
|
+
"description": "Workflow-declared references to external documents. Each reference is a pointer \u2014 content is never inlined. Declarations participate in the workflow hash; referenced file content does not.",
|
|
157
176
|
"items": {
|
|
158
177
|
"$ref": "#/$defs/workflowReference"
|
|
159
178
|
},
|
|
160
179
|
"uniqueItems": true
|
|
180
|
+
},
|
|
181
|
+
"validatedAgainstSpecVersion": {
|
|
182
|
+
"type": "integer",
|
|
183
|
+
"minimum": 1,
|
|
184
|
+
"description": "The authoring spec version this workflow was last validated against."
|
|
161
185
|
}
|
|
162
186
|
},
|
|
163
187
|
"required": [
|
|
@@ -197,17 +221,24 @@
|
|
|
197
221
|
"description": "Allowed implementation kinds (informational in v1)",
|
|
198
222
|
"items": {
|
|
199
223
|
"type": "string",
|
|
200
|
-
"enum": [
|
|
224
|
+
"enum": [
|
|
225
|
+
"routine",
|
|
226
|
+
"workflow"
|
|
227
|
+
]
|
|
201
228
|
},
|
|
202
229
|
"uniqueItems": true
|
|
203
230
|
}
|
|
204
231
|
},
|
|
205
|
-
"required": [
|
|
232
|
+
"required": [
|
|
233
|
+
"slotId",
|
|
234
|
+
"purpose",
|
|
235
|
+
"default"
|
|
236
|
+
],
|
|
206
237
|
"additionalProperties": false
|
|
207
238
|
},
|
|
208
239
|
"workflowReference": {
|
|
209
240
|
"type": "object",
|
|
210
|
-
"description": "A pointer to an external document relevant to the workflow. Content is never inlined
|
|
241
|
+
"description": "A pointer to an external document relevant to the workflow. Content is never inlined \u2014 the agent reads the file itself if needed.",
|
|
211
242
|
"properties": {
|
|
212
243
|
"id": {
|
|
213
244
|
"type": "string",
|
|
@@ -240,12 +271,21 @@
|
|
|
240
271
|
},
|
|
241
272
|
"resolveFrom": {
|
|
242
273
|
"type": "string",
|
|
243
|
-
"enum": [
|
|
274
|
+
"enum": [
|
|
275
|
+
"workspace",
|
|
276
|
+
"package"
|
|
277
|
+
],
|
|
244
278
|
"description": "Resolution base for source path. 'workspace' (default) resolves against the user's project root. 'package' resolves against the workrail package root (for files shipped with the workflow).",
|
|
245
279
|
"default": "workspace"
|
|
246
280
|
}
|
|
247
281
|
},
|
|
248
|
-
"required": [
|
|
282
|
+
"required": [
|
|
283
|
+
"id",
|
|
284
|
+
"title",
|
|
285
|
+
"source",
|
|
286
|
+
"purpose",
|
|
287
|
+
"authoritative"
|
|
288
|
+
],
|
|
249
289
|
"additionalProperties": false
|
|
250
290
|
},
|
|
251
291
|
"stepId": {
|
|
@@ -258,53 +298,152 @@
|
|
|
258
298
|
"type": "object",
|
|
259
299
|
"description": "Specification for a single function parameter.",
|
|
260
300
|
"properties": {
|
|
261
|
-
"name": {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
301
|
+
"name": {
|
|
302
|
+
"type": "string",
|
|
303
|
+
"pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$"
|
|
304
|
+
},
|
|
305
|
+
"type": {
|
|
306
|
+
"type": "string",
|
|
307
|
+
"enum": [
|
|
308
|
+
"string",
|
|
309
|
+
"number",
|
|
310
|
+
"boolean",
|
|
311
|
+
"array",
|
|
312
|
+
"object"
|
|
313
|
+
]
|
|
314
|
+
},
|
|
315
|
+
"required": {
|
|
316
|
+
"type": "boolean"
|
|
317
|
+
},
|
|
318
|
+
"description": {
|
|
319
|
+
"type": "string"
|
|
320
|
+
},
|
|
265
321
|
"enum": {
|
|
266
322
|
"type": "array",
|
|
267
|
-
"items": {
|
|
323
|
+
"items": {
|
|
324
|
+
"oneOf": [
|
|
325
|
+
{
|
|
326
|
+
"type": "string"
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"type": "number"
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"type": "boolean"
|
|
333
|
+
}
|
|
334
|
+
]
|
|
335
|
+
},
|
|
268
336
|
"minItems": 1
|
|
269
337
|
},
|
|
270
338
|
"default": {}
|
|
271
339
|
},
|
|
272
|
-
"required": [
|
|
340
|
+
"required": [
|
|
341
|
+
"name",
|
|
342
|
+
"type"
|
|
343
|
+
],
|
|
273
344
|
"additionalProperties": false
|
|
274
345
|
},
|
|
275
346
|
"functionDefinition": {
|
|
276
347
|
"type": "object",
|
|
277
348
|
"properties": {
|
|
278
|
-
"name": {
|
|
279
|
-
|
|
349
|
+
"name": {
|
|
350
|
+
"type": "string",
|
|
351
|
+
"pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$"
|
|
352
|
+
},
|
|
353
|
+
"definition": {
|
|
354
|
+
"type": "string"
|
|
355
|
+
},
|
|
280
356
|
"parameters": {
|
|
281
357
|
"type": "array",
|
|
282
|
-
"items": {
|
|
358
|
+
"items": {
|
|
359
|
+
"$ref": "#/$defs/functionParameter"
|
|
360
|
+
}
|
|
283
361
|
},
|
|
284
|
-
"scope": {
|
|
362
|
+
"scope": {
|
|
363
|
+
"type": "string",
|
|
364
|
+
"enum": [
|
|
365
|
+
"workflow",
|
|
366
|
+
"loop",
|
|
367
|
+
"step"
|
|
368
|
+
]
|
|
369
|
+
}
|
|
285
370
|
},
|
|
286
|
-
"required": [
|
|
371
|
+
"required": [
|
|
372
|
+
"name",
|
|
373
|
+
"definition"
|
|
374
|
+
],
|
|
287
375
|
"additionalProperties": false
|
|
288
376
|
},
|
|
289
377
|
"standardStep": {
|
|
290
378
|
"type": "object",
|
|
291
379
|
"properties": {
|
|
292
|
-
"id": {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
"
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
"
|
|
302
|
-
|
|
303
|
-
|
|
380
|
+
"id": {
|
|
381
|
+
"$ref": "#/$defs/stepId",
|
|
382
|
+
"description": "Unique identifier for the step"
|
|
383
|
+
},
|
|
384
|
+
"title": {
|
|
385
|
+
"type": "string",
|
|
386
|
+
"minLength": 1,
|
|
387
|
+
"maxLength": 128
|
|
388
|
+
},
|
|
389
|
+
"prompt": {
|
|
390
|
+
"type": "string",
|
|
391
|
+
"minLength": 1,
|
|
392
|
+
"maxLength": 8192,
|
|
393
|
+
"description": "Traditional single-string prompt. Use when structure is simple; prefer promptBlocks when you need stronger quality bars without over-scripting cognition."
|
|
394
|
+
},
|
|
395
|
+
"promptBlocks": {
|
|
396
|
+
"$ref": "#/$defs/promptBlocks"
|
|
397
|
+
},
|
|
398
|
+
"agentRole": {
|
|
399
|
+
"type": "string",
|
|
400
|
+
"minLength": 10,
|
|
401
|
+
"maxLength": 1024
|
|
402
|
+
},
|
|
403
|
+
"guidance": {
|
|
404
|
+
"type": "array",
|
|
405
|
+
"items": {
|
|
406
|
+
"type": "string"
|
|
407
|
+
}
|
|
408
|
+
},
|
|
409
|
+
"askForFiles": {
|
|
410
|
+
"type": "boolean",
|
|
411
|
+
"default": false
|
|
412
|
+
},
|
|
413
|
+
"hasValidation": {
|
|
414
|
+
"type": "boolean",
|
|
415
|
+
"default": false
|
|
416
|
+
},
|
|
417
|
+
"requireConfirmation": {
|
|
418
|
+
"$ref": "#/$defs/confirmationRule"
|
|
419
|
+
},
|
|
420
|
+
"runCondition": {
|
|
421
|
+
"$ref": "#/$defs/condition"
|
|
422
|
+
},
|
|
423
|
+
"validationCriteria": {
|
|
424
|
+
"oneOf": [
|
|
425
|
+
{
|
|
426
|
+
"type": "array",
|
|
427
|
+
"items": {
|
|
428
|
+
"$ref": "#/$defs/validationRule"
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"$ref": "#/$defs/validationComposition"
|
|
433
|
+
}
|
|
434
|
+
]
|
|
435
|
+
},
|
|
436
|
+
"outputContract": {
|
|
437
|
+
"$ref": "#/$defs/outputContract"
|
|
438
|
+
},
|
|
304
439
|
"assessmentRefs": {
|
|
305
440
|
"type": "array",
|
|
306
441
|
"description": "References to workflow-level assessment definitions expected for this step. V1 supports exactly one assessmentRef per step.",
|
|
307
|
-
"items": {
|
|
442
|
+
"items": {
|
|
443
|
+
"type": "string",
|
|
444
|
+
"minLength": 1,
|
|
445
|
+
"maxLength": 64
|
|
446
|
+
},
|
|
308
447
|
"minItems": 1,
|
|
309
448
|
"maxItems": 1,
|
|
310
449
|
"uniqueItems": true
|
|
@@ -312,23 +451,51 @@
|
|
|
312
451
|
"assessmentConsequences": {
|
|
313
452
|
"type": "array",
|
|
314
453
|
"description": "Step-local assessment consequence declarations. V1 supports at most one exact-match follow-up consequence.",
|
|
315
|
-
"items": {
|
|
454
|
+
"items": {
|
|
455
|
+
"$ref": "#/$defs/assessmentConsequence"
|
|
456
|
+
},
|
|
316
457
|
"minItems": 1,
|
|
317
458
|
"maxItems": 1
|
|
318
459
|
},
|
|
319
|
-
"notesOptional": {
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
"
|
|
460
|
+
"notesOptional": {
|
|
461
|
+
"type": "boolean",
|
|
462
|
+
"description": "When true, output.notesMarkdown is not required for this step. Steps with outputContract are automatically exempt. Use sparingly for mechanical steps with no substantive work to document."
|
|
463
|
+
},
|
|
464
|
+
"functionDefinitions": {
|
|
465
|
+
"type": "array",
|
|
466
|
+
"items": {
|
|
467
|
+
"$ref": "#/$defs/functionDefinition"
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
"functionCalls": {
|
|
471
|
+
"type": "array",
|
|
472
|
+
"items": {
|
|
473
|
+
"$ref": "#/$defs/functionCall"
|
|
474
|
+
}
|
|
475
|
+
},
|
|
476
|
+
"functionReferences": {
|
|
477
|
+
"type": "array",
|
|
478
|
+
"items": {
|
|
479
|
+
"type": "string",
|
|
480
|
+
"pattern": "^[a-zA-Z_][a-zA-Z0-9_]*\\(\\)$"
|
|
481
|
+
}
|
|
482
|
+
},
|
|
483
|
+
"templateCall": {
|
|
484
|
+
"$ref": "#/$defs/templateCall"
|
|
485
|
+
},
|
|
324
486
|
"promptFragments": {
|
|
325
487
|
"type": "array",
|
|
326
488
|
"description": "Conditional prompt fragments appended to the step's base prompt at render time. Each fragment is appended in declaration order when its 'when' condition matches the session context.",
|
|
327
|
-
"items": {
|
|
489
|
+
"items": {
|
|
490
|
+
"$ref": "#/$defs/promptFragment"
|
|
491
|
+
},
|
|
328
492
|
"minItems": 1
|
|
329
493
|
}
|
|
330
494
|
},
|
|
331
|
-
"required": [
|
|
495
|
+
"required": [
|
|
496
|
+
"id",
|
|
497
|
+
"title"
|
|
498
|
+
],
|
|
332
499
|
"additionalProperties": false
|
|
333
500
|
},
|
|
334
501
|
"loopStep": {
|
|
@@ -399,7 +566,12 @@
|
|
|
399
566
|
"properties": {
|
|
400
567
|
"type": {
|
|
401
568
|
"type": "string",
|
|
402
|
-
"enum": [
|
|
569
|
+
"enum": [
|
|
570
|
+
"while",
|
|
571
|
+
"until",
|
|
572
|
+
"for",
|
|
573
|
+
"forEach"
|
|
574
|
+
],
|
|
403
575
|
"description": "The type of loop to execute"
|
|
404
576
|
},
|
|
405
577
|
"condition": {
|
|
@@ -452,53 +624,103 @@
|
|
|
452
624
|
{
|
|
453
625
|
"type": "object",
|
|
454
626
|
"properties": {
|
|
455
|
-
"kind": {
|
|
456
|
-
|
|
457
|
-
|
|
627
|
+
"kind": {
|
|
628
|
+
"const": "artifact_contract"
|
|
629
|
+
},
|
|
630
|
+
"contractRef": {
|
|
631
|
+
"type": "string",
|
|
632
|
+
"minLength": 1
|
|
633
|
+
},
|
|
634
|
+
"loopId": {
|
|
635
|
+
"type": "string",
|
|
636
|
+
"minLength": 1
|
|
637
|
+
}
|
|
458
638
|
},
|
|
459
|
-
"required": [
|
|
639
|
+
"required": [
|
|
640
|
+
"kind",
|
|
641
|
+
"contractRef"
|
|
642
|
+
],
|
|
460
643
|
"additionalProperties": false
|
|
461
644
|
},
|
|
462
645
|
{
|
|
463
646
|
"type": "object",
|
|
464
647
|
"properties": {
|
|
465
|
-
"kind": {
|
|
466
|
-
|
|
648
|
+
"kind": {
|
|
649
|
+
"const": "context_variable"
|
|
650
|
+
},
|
|
651
|
+
"condition": {
|
|
652
|
+
"$ref": "#/$defs/condition"
|
|
653
|
+
}
|
|
467
654
|
},
|
|
468
|
-
"required": [
|
|
655
|
+
"required": [
|
|
656
|
+
"kind",
|
|
657
|
+
"condition"
|
|
658
|
+
],
|
|
469
659
|
"additionalProperties": false
|
|
470
660
|
}
|
|
471
661
|
]
|
|
472
662
|
}
|
|
473
663
|
},
|
|
474
|
-
"required": [
|
|
664
|
+
"required": [
|
|
665
|
+
"type",
|
|
666
|
+
"maxIterations"
|
|
667
|
+
],
|
|
475
668
|
"allOf": [
|
|
476
669
|
{
|
|
477
670
|
"if": {
|
|
478
|
-
"properties": {
|
|
479
|
-
|
|
671
|
+
"properties": {
|
|
672
|
+
"type": {
|
|
673
|
+
"enum": [
|
|
674
|
+
"while",
|
|
675
|
+
"until"
|
|
676
|
+
]
|
|
677
|
+
}
|
|
678
|
+
},
|
|
679
|
+
"required": [
|
|
680
|
+
"type"
|
|
681
|
+
]
|
|
480
682
|
},
|
|
481
683
|
"then": {
|
|
482
684
|
"anyOf": [
|
|
483
|
-
{
|
|
484
|
-
|
|
685
|
+
{
|
|
686
|
+
"required": [
|
|
687
|
+
"condition"
|
|
688
|
+
]
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
"required": [
|
|
692
|
+
"conditionSource"
|
|
693
|
+
]
|
|
694
|
+
}
|
|
485
695
|
]
|
|
486
696
|
}
|
|
487
697
|
},
|
|
488
698
|
{
|
|
489
699
|
"if": {
|
|
490
|
-
"properties": {
|
|
700
|
+
"properties": {
|
|
701
|
+
"type": {
|
|
702
|
+
"const": "for"
|
|
703
|
+
}
|
|
704
|
+
}
|
|
491
705
|
},
|
|
492
706
|
"then": {
|
|
493
|
-
"required": [
|
|
707
|
+
"required": [
|
|
708
|
+
"count"
|
|
709
|
+
]
|
|
494
710
|
}
|
|
495
711
|
},
|
|
496
712
|
{
|
|
497
713
|
"if": {
|
|
498
|
-
"properties": {
|
|
714
|
+
"properties": {
|
|
715
|
+
"type": {
|
|
716
|
+
"const": "forEach"
|
|
717
|
+
}
|
|
718
|
+
}
|
|
499
719
|
},
|
|
500
720
|
"then": {
|
|
501
|
-
"required": [
|
|
721
|
+
"required": [
|
|
722
|
+
"items"
|
|
723
|
+
]
|
|
502
724
|
}
|
|
503
725
|
}
|
|
504
726
|
],
|
|
@@ -581,7 +803,10 @@
|
|
|
581
803
|
"maxLength": 4096
|
|
582
804
|
}
|
|
583
805
|
},
|
|
584
|
-
"required": [
|
|
806
|
+
"required": [
|
|
807
|
+
"id",
|
|
808
|
+
"text"
|
|
809
|
+
],
|
|
585
810
|
"additionalProperties": false
|
|
586
811
|
},
|
|
587
812
|
"confirmationRule": {
|
|
@@ -602,7 +827,12 @@
|
|
|
602
827
|
"properties": {
|
|
603
828
|
"type": {
|
|
604
829
|
"type": "string",
|
|
605
|
-
"enum": [
|
|
830
|
+
"enum": [
|
|
831
|
+
"contains",
|
|
832
|
+
"regex",
|
|
833
|
+
"length",
|
|
834
|
+
"schema"
|
|
835
|
+
],
|
|
606
836
|
"description": "Type of validation rule"
|
|
607
837
|
},
|
|
608
838
|
"value": {
|
|
@@ -686,7 +916,10 @@
|
|
|
686
916
|
"additionalProperties": false
|
|
687
917
|
}
|
|
688
918
|
},
|
|
689
|
-
"required": [
|
|
919
|
+
"required": [
|
|
920
|
+
"type",
|
|
921
|
+
"message"
|
|
922
|
+
],
|
|
690
923
|
"additionalProperties": false
|
|
691
924
|
},
|
|
692
925
|
"validationComposition": {
|
|
@@ -702,7 +935,7 @@
|
|
|
702
935
|
"minItems": 1
|
|
703
936
|
},
|
|
704
937
|
"or": {
|
|
705
|
-
"type": "array",
|
|
938
|
+
"type": "array",
|
|
706
939
|
"description": "Logical OR - at least one criteria must pass",
|
|
707
940
|
"items": {
|
|
708
941
|
"$ref": "#/$defs/validationCriteria"
|
|
@@ -716,9 +949,21 @@
|
|
|
716
949
|
},
|
|
717
950
|
"additionalProperties": false,
|
|
718
951
|
"oneOf": [
|
|
719
|
-
{
|
|
720
|
-
|
|
721
|
-
|
|
952
|
+
{
|
|
953
|
+
"required": [
|
|
954
|
+
"and"
|
|
955
|
+
]
|
|
956
|
+
},
|
|
957
|
+
{
|
|
958
|
+
"required": [
|
|
959
|
+
"or"
|
|
960
|
+
]
|
|
961
|
+
},
|
|
962
|
+
{
|
|
963
|
+
"required": [
|
|
964
|
+
"not"
|
|
965
|
+
]
|
|
966
|
+
}
|
|
722
967
|
]
|
|
723
968
|
},
|
|
724
969
|
"validationCriteria": {
|
|
@@ -747,7 +992,9 @@
|
|
|
747
992
|
"default": true
|
|
748
993
|
}
|
|
749
994
|
},
|
|
750
|
-
"required": [
|
|
995
|
+
"required": [
|
|
996
|
+
"contractRef"
|
|
997
|
+
],
|
|
751
998
|
"additionalProperties": false
|
|
752
999
|
},
|
|
753
1000
|
"assessmentDimension": {
|
|
@@ -779,7 +1026,11 @@
|
|
|
779
1026
|
"default": true
|
|
780
1027
|
}
|
|
781
1028
|
},
|
|
782
|
-
"required": [
|
|
1029
|
+
"required": [
|
|
1030
|
+
"id",
|
|
1031
|
+
"purpose",
|
|
1032
|
+
"levels"
|
|
1033
|
+
],
|
|
783
1034
|
"additionalProperties": false
|
|
784
1035
|
},
|
|
785
1036
|
"assessmentDefinition": {
|
|
@@ -804,69 +1055,119 @@
|
|
|
804
1055
|
"minItems": 1
|
|
805
1056
|
}
|
|
806
1057
|
},
|
|
807
|
-
"required": [
|
|
1058
|
+
"required": [
|
|
1059
|
+
"id",
|
|
1060
|
+
"purpose",
|
|
1061
|
+
"dimensions"
|
|
1062
|
+
],
|
|
808
1063
|
"additionalProperties": false
|
|
809
1064
|
},
|
|
810
1065
|
"assessmentConsequenceTrigger": {
|
|
811
1066
|
"type": "object",
|
|
812
1067
|
"description": "Exact-match trigger on one declared assessment dimension and one declared canonical level.",
|
|
813
1068
|
"properties": {
|
|
814
|
-
"dimensionId": {
|
|
815
|
-
|
|
1069
|
+
"dimensionId": {
|
|
1070
|
+
"type": "string",
|
|
1071
|
+
"minLength": 1,
|
|
1072
|
+
"maxLength": 64
|
|
1073
|
+
},
|
|
1074
|
+
"equalsLevel": {
|
|
1075
|
+
"type": "string",
|
|
1076
|
+
"minLength": 1,
|
|
1077
|
+
"maxLength": 64
|
|
1078
|
+
}
|
|
816
1079
|
},
|
|
817
|
-
"required": [
|
|
1080
|
+
"required": [
|
|
1081
|
+
"dimensionId",
|
|
1082
|
+
"equalsLevel"
|
|
1083
|
+
],
|
|
818
1084
|
"additionalProperties": false
|
|
819
1085
|
},
|
|
820
1086
|
"assessmentConsequenceEffect": {
|
|
821
1087
|
"type": "object",
|
|
822
1088
|
"description": "V1 assessment consequence effect. Keeps the same step pending and requires follow-up before retry.",
|
|
823
1089
|
"properties": {
|
|
824
|
-
"kind": {
|
|
825
|
-
|
|
1090
|
+
"kind": {
|
|
1091
|
+
"const": "require_followup"
|
|
1092
|
+
},
|
|
1093
|
+
"guidance": {
|
|
1094
|
+
"type": "string",
|
|
1095
|
+
"minLength": 1,
|
|
1096
|
+
"maxLength": 512
|
|
1097
|
+
}
|
|
826
1098
|
},
|
|
827
|
-
"required": [
|
|
1099
|
+
"required": [
|
|
1100
|
+
"kind",
|
|
1101
|
+
"guidance"
|
|
1102
|
+
],
|
|
828
1103
|
"additionalProperties": false
|
|
829
1104
|
},
|
|
830
1105
|
"assessmentConsequence": {
|
|
831
1106
|
"type": "object",
|
|
832
1107
|
"description": "Step-local assessment consequence declaration. V1 supports one exact-match follow-up consequence only.",
|
|
833
1108
|
"properties": {
|
|
834
|
-
"when": {
|
|
835
|
-
|
|
1109
|
+
"when": {
|
|
1110
|
+
"$ref": "#/$defs/assessmentConsequenceTrigger"
|
|
1111
|
+
},
|
|
1112
|
+
"effect": {
|
|
1113
|
+
"$ref": "#/$defs/assessmentConsequenceEffect"
|
|
1114
|
+
}
|
|
836
1115
|
},
|
|
837
|
-
"required": [
|
|
1116
|
+
"required": [
|
|
1117
|
+
"when",
|
|
1118
|
+
"effect"
|
|
1119
|
+
],
|
|
838
1120
|
"additionalProperties": false
|
|
839
1121
|
},
|
|
840
1122
|
"functionCall": {
|
|
841
1123
|
"type": "object",
|
|
842
1124
|
"properties": {
|
|
843
|
-
"name": {
|
|
844
|
-
|
|
1125
|
+
"name": {
|
|
1126
|
+
"type": "string",
|
|
1127
|
+
"pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$"
|
|
1128
|
+
},
|
|
1129
|
+
"args": {
|
|
1130
|
+
"type": "object",
|
|
1131
|
+
"additionalProperties": true
|
|
1132
|
+
}
|
|
845
1133
|
},
|
|
846
|
-
"required": [
|
|
1134
|
+
"required": [
|
|
1135
|
+
"name",
|
|
1136
|
+
"args"
|
|
1137
|
+
],
|
|
847
1138
|
"additionalProperties": false
|
|
848
1139
|
},
|
|
849
1140
|
"promptBlocks": {
|
|
850
1141
|
"type": "object",
|
|
851
1142
|
"description": "Structured prompt blocks. Alternative to raw prompt string. Rendered into prompt during compilation in deterministic order: goal, constraints, procedure, outputRequired, verify.",
|
|
852
1143
|
"properties": {
|
|
853
|
-
"goal": {
|
|
1144
|
+
"goal": {
|
|
1145
|
+
"$ref": "#/$defs/promptValue"
|
|
1146
|
+
},
|
|
854
1147
|
"constraints": {
|
|
855
1148
|
"type": "array",
|
|
856
|
-
"items": {
|
|
1149
|
+
"items": {
|
|
1150
|
+
"$ref": "#/$defs/promptValue"
|
|
1151
|
+
}
|
|
857
1152
|
},
|
|
858
1153
|
"procedure": {
|
|
859
1154
|
"type": "array",
|
|
860
|
-
"items": {
|
|
1155
|
+
"items": {
|
|
1156
|
+
"$ref": "#/$defs/promptValue"
|
|
1157
|
+
}
|
|
861
1158
|
},
|
|
862
1159
|
"outputRequired": {
|
|
863
1160
|
"type": "object",
|
|
864
1161
|
"description": "Key-value pairs describing required outputs",
|
|
865
|
-
"additionalProperties": {
|
|
1162
|
+
"additionalProperties": {
|
|
1163
|
+
"type": "string"
|
|
1164
|
+
}
|
|
866
1165
|
},
|
|
867
1166
|
"verify": {
|
|
868
1167
|
"type": "array",
|
|
869
|
-
"items": {
|
|
1168
|
+
"items": {
|
|
1169
|
+
"$ref": "#/$defs/promptValue"
|
|
1170
|
+
}
|
|
870
1171
|
}
|
|
871
1172
|
},
|
|
872
1173
|
"additionalProperties": false
|
|
@@ -874,10 +1175,14 @@
|
|
|
874
1175
|
"promptValue": {
|
|
875
1176
|
"description": "A prompt value: either a plain string or an array of prompt parts (text and refs).",
|
|
876
1177
|
"oneOf": [
|
|
877
|
-
{
|
|
1178
|
+
{
|
|
1179
|
+
"type": "string"
|
|
1180
|
+
},
|
|
878
1181
|
{
|
|
879
1182
|
"type": "array",
|
|
880
|
-
"items": {
|
|
1183
|
+
"items": {
|
|
1184
|
+
"$ref": "#/$defs/promptPart"
|
|
1185
|
+
}
|
|
881
1186
|
}
|
|
882
1187
|
]
|
|
883
1188
|
},
|
|
@@ -887,19 +1192,34 @@
|
|
|
887
1192
|
{
|
|
888
1193
|
"type": "object",
|
|
889
1194
|
"properties": {
|
|
890
|
-
"kind": {
|
|
891
|
-
|
|
1195
|
+
"kind": {
|
|
1196
|
+
"const": "text"
|
|
1197
|
+
},
|
|
1198
|
+
"text": {
|
|
1199
|
+
"type": "string"
|
|
1200
|
+
}
|
|
892
1201
|
},
|
|
893
|
-
"required": [
|
|
1202
|
+
"required": [
|
|
1203
|
+
"kind",
|
|
1204
|
+
"text"
|
|
1205
|
+
],
|
|
894
1206
|
"additionalProperties": false
|
|
895
1207
|
},
|
|
896
1208
|
{
|
|
897
1209
|
"type": "object",
|
|
898
1210
|
"properties": {
|
|
899
|
-
"kind": {
|
|
900
|
-
|
|
1211
|
+
"kind": {
|
|
1212
|
+
"const": "ref"
|
|
1213
|
+
},
|
|
1214
|
+
"refId": {
|
|
1215
|
+
"type": "string",
|
|
1216
|
+
"minLength": 1
|
|
1217
|
+
}
|
|
901
1218
|
},
|
|
902
|
-
"required": [
|
|
1219
|
+
"required": [
|
|
1220
|
+
"kind",
|
|
1221
|
+
"refId"
|
|
1222
|
+
],
|
|
903
1223
|
"additionalProperties": false
|
|
904
1224
|
}
|
|
905
1225
|
]
|
|
@@ -920,7 +1240,9 @@
|
|
|
920
1240
|
"additionalProperties": true
|
|
921
1241
|
}
|
|
922
1242
|
},
|
|
923
|
-
"required": [
|
|
1243
|
+
"required": [
|
|
1244
|
+
"templateId"
|
|
1245
|
+
],
|
|
924
1246
|
"additionalProperties": false
|
|
925
1247
|
}
|
|
926
1248
|
}
|