@mmerterden/multi-agent-pipeline 20.30.0 → 20.33.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/CHANGELOG.md +80 -0
- package/README.md +45 -0
- package/README.tr.md +59 -0
- package/docs/facts.json +3 -3
- package/install/_unattended-profile.mjs +61 -0
- package/install/catalog-history.json +1 -1
- package/install/claude.mjs +9 -2
- package/install/index.mjs +10 -1
- package/install/templates/claude-hooks.json +12 -1
- package/manifest.json +123 -82
- package/package.json +2 -1
- package/pipeline/commands/multi-agent/analysis/SKILL.md +4 -4
- package/pipeline/commands/multi-agent/office-on/SKILL.md +8 -7
- package/pipeline/commands/multi-agent/office-status/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/prune-logs/SKILL.md +4 -1
- package/pipeline/commands/multi-agent/review/SKILL.md +4 -3
- package/pipeline/commands/multi-agent/scenario-audit/SKILL.md +4 -2
- package/pipeline/commands/multi-agent/sync/SKILL.md +12 -0
- package/pipeline/commands/multi-agent/test-gen/SKILL.md +29 -3
- package/pipeline/contract/CHANGELOG.md +46 -0
- package/pipeline/contract/README.md +22 -8
- package/pipeline/contract/fixtures/error-invalid-request.json +1 -1
- package/pipeline/contract/fixtures/error-unauthorized.json +1 -1
- package/pipeline/contract/fixtures/error-unsigned.json +1 -1
- package/pipeline/contract/fixtures/launch-plan.json +1 -1
- package/pipeline/contract/fixtures/runs-awaiting-question.json +6 -1
- package/pipeline/contract/fixtures/runs-empty.json +1 -1
- package/pipeline/contract/fixtures/runs-failed.json +6 -1
- package/pipeline/contract/fixtures/runs-old-schema.json +6 -1
- package/pipeline/contract/fixtures/runs-pr-opened-redacted.json +5 -1
- package/pipeline/contract/fixtures/runs-pr-opened.json +6 -1
- package/pipeline/contract/fixtures/runs-running.json +6 -1
- package/pipeline/contract/manifest.json +153 -19
- package/pipeline/contract/types/index.d.ts +304 -6
- package/pipeline/lib/bg-launch.mjs +106 -0
- package/pipeline/lib/code-digest.mjs +49 -0
- package/pipeline/lib/credential-resolve.mjs +42 -2
- package/pipeline/multi-agent-refs/features/office-threat-model.md +24 -6
- package/pipeline/multi-agent-refs/features/unattended-security.md +1 -1
- package/pipeline/multi-agent-refs/help/en.md +2 -2
- package/pipeline/multi-agent-refs/help/tr.md +2 -2
- package/pipeline/multi-agent-refs/phases/modes.md +7 -7
- package/pipeline/multi-agent-refs/phases/phase-5-report.md +16 -10
- package/pipeline/multi-agent-refs/review-standalone-tracker.md +37 -0
- package/pipeline/multi-agent-refs/tracker-contract.md +8 -3
- package/pipeline/office/NOTICE.md +4 -1
- package/pipeline/office/assets/ARCHIVE_BOXES.png +0 -0
- package/pipeline/office/assets/COFFEE_MACHINE.png +0 -0
- package/pipeline/office/assets/COUNTER_SINK.png +0 -0
- package/pipeline/office/assets/DEVICE_STAND.png +0 -0
- package/pipeline/office/assets/FILING_CABINET.png +0 -0
- package/pipeline/office/assets/FRIDGE.png +0 -0
- package/pipeline/office/assets/MAILBOX.png +0 -0
- package/pipeline/office/assets/MOP_BUCKET.png +0 -0
- package/pipeline/office/assets/PRINTER.png +0 -0
- package/pipeline/office/assets/RECEPTION_DESK.png +0 -0
- package/pipeline/office/assets/SERVER_RACK.png +0 -0
- package/pipeline/office/assets/SERVER_RACK_2.png +0 -0
- package/pipeline/office/assets/TOILET_STALL.png +0 -0
- package/pipeline/office/assets/VENDING.png +0 -0
- package/pipeline/office/assets/WASHBASIN.png +0 -0
- package/pipeline/office/assets/WATER_COOLER.png +0 -0
- package/pipeline/office/index.html +3996 -884
- package/pipeline/office/toolkit.json +3 -0
- package/pipeline/schemas/activity.schema.json +188 -4
- package/pipeline/schemas/agent-state.schema.json +493 -115
- package/pipeline/schemas/contract-error.schema.json +12 -1
- package/pipeline/schemas/job-change.schema.json +72 -0
- package/pipeline/schemas/job-request.schema.json +38 -0
- package/pipeline/schemas/launch.json +4 -4
- package/pipeline/schemas/office-credentials.schema.json +71 -0
- package/pipeline/schemas/office-jobs.json +253 -0
- package/pipeline/schemas/office-jobs.schema.json +62 -0
- package/pipeline/schemas/office-memory.schema.json +105 -0
- package/pipeline/schemas/office-settings-request.schema.json +30 -0
- package/pipeline/schemas/office-settings.schema.json +67 -0
- package/pipeline/schemas/phases.json +10 -2
- package/pipeline/schemas/phases.schema.json +86 -19
- package/pipeline/schemas/prs.schema.json +5 -0
- package/pipeline/schemas/prune-logs-request.schema.json +26 -0
- package/pipeline/schemas/prune-logs.schema.json +52 -0
- package/pipeline/schemas/repo-change.schema.json +54 -0
- package/pipeline/schemas/repo-request.schema.json +29 -0
- package/pipeline/schemas/repos.schema.json +49 -1
- package/pipeline/schemas/runs-index.schema.json +257 -46
- package/pipeline/schemas/system-status.schema.json +111 -0
- package/pipeline/schemas/tools.schema.json +5 -0
- package/pipeline/schemas/unattended-profile.json +7 -2
- package/pipeline/scripts/_active-run.mjs +2 -1
- package/pipeline/scripts/_spawn-async.mjs +9 -5
- package/pipeline/scripts/activity-snapshot.mjs +219 -23
- package/pipeline/scripts/autopilot-runner.mjs +7 -5
- package/pipeline/scripts/contract-server.mjs +551 -25
- package/pipeline/scripts/gen-mode-dispatch.mjs +3 -1
- package/pipeline/scripts/job-launch.mjs +477 -0
- package/pipeline/scripts/launch-request.mjs +94 -9
- package/pipeline/scripts/office-build.mjs +148 -11
- package/pipeline/scripts/office-control.mjs +34 -7
- package/pipeline/scripts/office-credentials.mjs +106 -0
- package/pipeline/scripts/office-memory.mjs +200 -0
- package/pipeline/scripts/office-prune.mjs +125 -0
- package/pipeline/scripts/office-settings.mjs +145 -0
- package/pipeline/scripts/phase-tracker.sh +12 -5
- package/pipeline/scripts/prune-logs.sh +53 -2
- package/pipeline/scripts/runs-index.mjs +62 -2
- package/pipeline/scripts/system-status.mjs +196 -0
- package/pipeline/scripts/task-mirror.mjs +150 -0
- package/pipeline/scripts/task-mirror.sh +20 -0
- package/pipeline/scripts/toolkit-tools.mjs +33 -7
- package/pipeline/scripts/transcript-index.mjs +4 -1
- package/pipeline/scripts/work-items.mjs +191 -22
- package/pipeline/skills/.skill-manifest.json +6 -6
- package/pipeline/skills/.skills-index.json +1 -1
- package/pipeline/skills/shared/README.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-office-on/SKILL.md +3 -4
- package/pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md +4 -1
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +19 -0
- package/pipeline/skills/shared/core/multi-agent-scenario-audit/SKILL.md +4 -2
- package/pipeline/skills/shared/core/multi-agent-test-gen/SKILL.md +26 -3
- package/pipeline/skills/skills-index.md +1 -1
|
@@ -301,19 +301,30 @@
|
|
|
301
301
|
"required": ["contractVersion", "mode", "answered", "resolvedAt"],
|
|
302
302
|
"description": "Present only when Phase 0 Step 0.1 applied a launch request (launch-request.mjs resolve). Records which pickers the request answered, so a reader can tell a pre-filled answer from one the user gave in the session. Absent on every run started without MA_LAUNCH_REQUEST.",
|
|
303
303
|
"properties": {
|
|
304
|
-
"contractVersion": {
|
|
305
|
-
|
|
306
|
-
|
|
304
|
+
"contractVersion": {
|
|
305
|
+
"type": "string"
|
|
306
|
+
},
|
|
307
|
+
"mode": {
|
|
308
|
+
"enum": ["interactive", "autopilot", "background"]
|
|
309
|
+
},
|
|
310
|
+
"kind": {
|
|
311
|
+
"enum": ["analysis", "development"]
|
|
312
|
+
},
|
|
307
313
|
"input": {
|
|
308
314
|
"type": "string",
|
|
309
315
|
"description": "The request's input, kept so the runs index can title a run launched from free text."
|
|
310
316
|
},
|
|
311
317
|
"answered": {
|
|
312
318
|
"type": "array",
|
|
313
|
-
"items": {
|
|
319
|
+
"items": {
|
|
320
|
+
"type": "string"
|
|
321
|
+
},
|
|
314
322
|
"description": "Question ids from run-questions.json."
|
|
315
323
|
},
|
|
316
|
-
"resolvedAt": {
|
|
324
|
+
"resolvedAt": {
|
|
325
|
+
"type": "string",
|
|
326
|
+
"format": "date-time"
|
|
327
|
+
}
|
|
317
328
|
}
|
|
318
329
|
},
|
|
319
330
|
"pendingQuestion": {
|
|
@@ -338,7 +349,9 @@
|
|
|
338
349
|
"maxLength": 2000,
|
|
339
350
|
"description": "The question as the step would have asked it, in outputLanguage."
|
|
340
351
|
},
|
|
341
|
-
"kind": {
|
|
352
|
+
"kind": {
|
|
353
|
+
"enum": ["single-select", "multi-select"]
|
|
354
|
+
},
|
|
342
355
|
"options": {
|
|
343
356
|
"type": "array",
|
|
344
357
|
"minItems": 2,
|
|
@@ -347,12 +360,21 @@
|
|
|
347
360
|
"additionalProperties": false,
|
|
348
361
|
"required": ["id", "label"],
|
|
349
362
|
"properties": {
|
|
350
|
-
"id": {
|
|
351
|
-
|
|
363
|
+
"id": {
|
|
364
|
+
"type": "string",
|
|
365
|
+
"pattern": "^[a-z0-9][a-z0-9+_-]*$"
|
|
366
|
+
},
|
|
367
|
+
"label": {
|
|
368
|
+
"type": "string",
|
|
369
|
+
"minLength": 1
|
|
370
|
+
}
|
|
352
371
|
}
|
|
353
372
|
}
|
|
354
373
|
},
|
|
355
|
-
"askedAt": {
|
|
374
|
+
"askedAt": {
|
|
375
|
+
"type": "string",
|
|
376
|
+
"format": "date-time"
|
|
377
|
+
}
|
|
356
378
|
}
|
|
357
379
|
},
|
|
358
380
|
"research": {
|
|
@@ -366,10 +388,19 @@
|
|
|
366
388
|
"minimum": 1,
|
|
367
389
|
"description": "Passes applied to this run so far. The runner's own ceiling across runs of one item is autopilot config maxAskRounds, counted from attempted.jsonl."
|
|
368
390
|
},
|
|
369
|
-
"kind": {
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
"
|
|
391
|
+
"kind": {
|
|
392
|
+
"enum": ["maturity", "open-questions"]
|
|
393
|
+
},
|
|
394
|
+
"decision": {
|
|
395
|
+
"enum": ["proceed", "ask"]
|
|
396
|
+
},
|
|
397
|
+
"reason": {
|
|
398
|
+
"type": "string"
|
|
399
|
+
},
|
|
400
|
+
"dir": {
|
|
401
|
+
"type": "string",
|
|
402
|
+
"minLength": 1
|
|
403
|
+
},
|
|
373
404
|
"json": {
|
|
374
405
|
"type": "string",
|
|
375
406
|
"minLength": 1,
|
|
@@ -391,19 +422,47 @@
|
|
|
391
422
|
"additionalProperties": false,
|
|
392
423
|
"required": ["id", "category", "status"],
|
|
393
424
|
"properties": {
|
|
394
|
-
"id": {
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
"
|
|
425
|
+
"id": {
|
|
426
|
+
"type": "string"
|
|
427
|
+
},
|
|
428
|
+
"category": {
|
|
429
|
+
"type": "string"
|
|
430
|
+
},
|
|
431
|
+
"status": {
|
|
432
|
+
"enum": ["closed", "candidate", "open"]
|
|
433
|
+
},
|
|
434
|
+
"sources": {
|
|
435
|
+
"type": "array",
|
|
436
|
+
"items": {
|
|
437
|
+
"type": "object"
|
|
438
|
+
}
|
|
439
|
+
}
|
|
398
440
|
}
|
|
399
441
|
}
|
|
400
442
|
},
|
|
401
|
-
"closed": {
|
|
402
|
-
|
|
403
|
-
|
|
443
|
+
"closed": {
|
|
444
|
+
"type": "array",
|
|
445
|
+
"items": {
|
|
446
|
+
"type": "string"
|
|
447
|
+
}
|
|
448
|
+
},
|
|
449
|
+
"candidates": {
|
|
450
|
+
"type": "array",
|
|
451
|
+
"items": {
|
|
452
|
+
"type": "string"
|
|
453
|
+
}
|
|
454
|
+
},
|
|
455
|
+
"open": {
|
|
456
|
+
"type": "array",
|
|
457
|
+
"items": {
|
|
458
|
+
"type": "string"
|
|
459
|
+
}
|
|
460
|
+
},
|
|
404
461
|
"ignored": {
|
|
405
462
|
"type": "array",
|
|
406
|
-
"items": {
|
|
463
|
+
"items": {
|
|
464
|
+
"type": "string"
|
|
465
|
+
},
|
|
407
466
|
"description": "Finding gap ids the run does not have."
|
|
408
467
|
},
|
|
409
468
|
"resolved": {
|
|
@@ -414,16 +473,34 @@
|
|
|
414
473
|
"additionalProperties": false,
|
|
415
474
|
"required": ["id", "question", "answer", "sources"],
|
|
416
475
|
"properties": {
|
|
417
|
-
"id": {
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
"
|
|
476
|
+
"id": {
|
|
477
|
+
"type": "string"
|
|
478
|
+
},
|
|
479
|
+
"question": {
|
|
480
|
+
"type": "string"
|
|
481
|
+
},
|
|
482
|
+
"answer": {
|
|
483
|
+
"type": "string"
|
|
484
|
+
},
|
|
485
|
+
"sources": {
|
|
486
|
+
"type": "array",
|
|
487
|
+
"items": {
|
|
488
|
+
"type": "object"
|
|
489
|
+
}
|
|
490
|
+
}
|
|
421
491
|
}
|
|
422
492
|
}
|
|
423
493
|
},
|
|
424
|
-
"maturityBefore": {
|
|
425
|
-
|
|
426
|
-
|
|
494
|
+
"maturityBefore": {
|
|
495
|
+
"type": ["object", "null"]
|
|
496
|
+
},
|
|
497
|
+
"maturityAfter": {
|
|
498
|
+
"type": ["object", "null"]
|
|
499
|
+
},
|
|
500
|
+
"at": {
|
|
501
|
+
"type": "string",
|
|
502
|
+
"format": "date-time"
|
|
503
|
+
}
|
|
427
504
|
}
|
|
428
505
|
},
|
|
429
506
|
"lastAnswer": {
|
|
@@ -432,10 +509,23 @@
|
|
|
432
509
|
"required": ["questionId", "stepId", "optionIds", "answeredAt"],
|
|
433
510
|
"description": "The answer answer-question.mjs recorded when it cleared pendingQuestion. The re-entered step reads it instead of asking again, then leaves it as a trace; the next answer overwrites it.",
|
|
434
511
|
"properties": {
|
|
435
|
-
"questionId": {
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
"
|
|
512
|
+
"questionId": {
|
|
513
|
+
"type": "string"
|
|
514
|
+
},
|
|
515
|
+
"stepId": {
|
|
516
|
+
"type": "string"
|
|
517
|
+
},
|
|
518
|
+
"optionIds": {
|
|
519
|
+
"type": "array",
|
|
520
|
+
"minItems": 1,
|
|
521
|
+
"items": {
|
|
522
|
+
"type": "string"
|
|
523
|
+
}
|
|
524
|
+
},
|
|
525
|
+
"answeredAt": {
|
|
526
|
+
"type": "string",
|
|
527
|
+
"format": "date-time"
|
|
528
|
+
}
|
|
439
529
|
}
|
|
440
530
|
},
|
|
441
531
|
"remoteType": {
|
|
@@ -459,7 +549,9 @@
|
|
|
459
549
|
},
|
|
460
550
|
"instructionFiles": {
|
|
461
551
|
"type": "object",
|
|
462
|
-
"additionalProperties": {
|
|
552
|
+
"additionalProperties": {
|
|
553
|
+
"type": "string"
|
|
554
|
+
},
|
|
463
555
|
"description": "Instruction files steering an instruction-driven run, keyed by the step they replace (start, validate, dev, commit). Empty when instructionDriven is false."
|
|
464
556
|
},
|
|
465
557
|
"contextLinks": {
|
|
@@ -482,8 +574,12 @@
|
|
|
482
574
|
"generic-doc"
|
|
483
575
|
]
|
|
484
576
|
},
|
|
485
|
-
"url": {
|
|
486
|
-
|
|
577
|
+
"url": {
|
|
578
|
+
"type": ["string", "null"]
|
|
579
|
+
},
|
|
580
|
+
"metadata": {
|
|
581
|
+
"type": "object"
|
|
582
|
+
}
|
|
487
583
|
}
|
|
488
584
|
}
|
|
489
585
|
},
|
|
@@ -570,23 +666,45 @@
|
|
|
570
666
|
"type": "object",
|
|
571
667
|
"required": ["remote", "slug"],
|
|
572
668
|
"properties": {
|
|
573
|
-
"remote": {
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
"
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
"
|
|
669
|
+
"remote": {
|
|
670
|
+
"type": "string"
|
|
671
|
+
},
|
|
672
|
+
"slug": {
|
|
673
|
+
"type": "string"
|
|
674
|
+
},
|
|
675
|
+
"stack": {
|
|
676
|
+
"type": "string"
|
|
677
|
+
},
|
|
678
|
+
"branch": {
|
|
679
|
+
"type": "string"
|
|
680
|
+
},
|
|
681
|
+
"sha": {
|
|
682
|
+
"type": "string"
|
|
683
|
+
},
|
|
684
|
+
"stale": {
|
|
685
|
+
"type": "boolean"
|
|
686
|
+
},
|
|
687
|
+
"error": {
|
|
688
|
+
"type": "string"
|
|
689
|
+
},
|
|
580
690
|
"keys": {
|
|
581
691
|
"type": "array",
|
|
582
692
|
"items": {
|
|
583
693
|
"type": "object",
|
|
584
694
|
"required": ["key", "status"],
|
|
585
695
|
"properties": {
|
|
586
|
-
"key": {
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
"
|
|
696
|
+
"key": {
|
|
697
|
+
"type": "string"
|
|
698
|
+
},
|
|
699
|
+
"status": {
|
|
700
|
+
"enum": ["implemented", "not-yet-implemented", "diverges", "error"]
|
|
701
|
+
},
|
|
702
|
+
"hits": {
|
|
703
|
+
"type": "array"
|
|
704
|
+
},
|
|
705
|
+
"note": {
|
|
706
|
+
"type": "string"
|
|
707
|
+
}
|
|
590
708
|
}
|
|
591
709
|
}
|
|
592
710
|
}
|
|
@@ -698,22 +816,30 @@
|
|
|
698
816
|
},
|
|
699
817
|
"toolkits": {
|
|
700
818
|
"type": "array",
|
|
701
|
-
"items": {
|
|
819
|
+
"items": {
|
|
820
|
+
"type": "object"
|
|
821
|
+
},
|
|
702
822
|
"description": "Kept toolkits with name, version, source and reason."
|
|
703
823
|
},
|
|
704
824
|
"excluded": {
|
|
705
825
|
"type": "array",
|
|
706
|
-
"items": {
|
|
826
|
+
"items": {
|
|
827
|
+
"type": "object"
|
|
828
|
+
},
|
|
707
829
|
"description": "Inherited toolkits dropped for contradicting the detected stack, each with its reason."
|
|
708
830
|
},
|
|
709
831
|
"hints": {
|
|
710
832
|
"type": "array",
|
|
711
|
-
"items": {
|
|
833
|
+
"items": {
|
|
834
|
+
"type": "object"
|
|
835
|
+
},
|
|
712
836
|
"description": "Detected stacks with no enabled toolkit, each with the /multi-agent:stack line to enable one."
|
|
713
837
|
},
|
|
714
838
|
"fallbacks": {
|
|
715
839
|
"type": "array",
|
|
716
|
-
"items": {
|
|
840
|
+
"items": {
|
|
841
|
+
"type": "object"
|
|
842
|
+
},
|
|
717
843
|
"description": "Unattended and autopilot runs only: toolkits read read-only from a marketplace clone (with reportLine), or the recorded gap when no clone carries one."
|
|
718
844
|
}
|
|
719
845
|
}
|
|
@@ -822,7 +948,9 @@
|
|
|
822
948
|
"openQuestions": {
|
|
823
949
|
"type": "array",
|
|
824
950
|
"description": "Section 20 rows Phase 1 Step 5 deferred. open-questions-gate.mjs parks a gated run on a non-empty list and passes on an empty one; absent means no analysis recorded any.",
|
|
825
|
-
"items": {
|
|
951
|
+
"items": {
|
|
952
|
+
"type": ["string", "object"]
|
|
953
|
+
}
|
|
826
954
|
},
|
|
827
955
|
"assumptions": {
|
|
828
956
|
"type": "array",
|
|
@@ -832,9 +960,16 @@
|
|
|
832
960
|
"additionalProperties": false,
|
|
833
961
|
"required": ["question", "source", "assumedAt"],
|
|
834
962
|
"properties": {
|
|
835
|
-
"question": {
|
|
836
|
-
|
|
837
|
-
|
|
963
|
+
"question": {
|
|
964
|
+
"type": "string"
|
|
965
|
+
},
|
|
966
|
+
"source": {
|
|
967
|
+
"type": "string"
|
|
968
|
+
},
|
|
969
|
+
"assumedAt": {
|
|
970
|
+
"type": "string",
|
|
971
|
+
"format": "date-time"
|
|
972
|
+
}
|
|
838
973
|
}
|
|
839
974
|
}
|
|
840
975
|
}
|
|
@@ -883,18 +1018,34 @@
|
|
|
883
1018
|
"additionalProperties": false,
|
|
884
1019
|
"description": "Outcome of `repo-profile.mjs ensure` at Phase 1: where the per-repo profile lives and how this run treated it. The profile itself stays at the path, outside the repo (multi-agent-refs/features/repo-profile.md).",
|
|
885
1020
|
"properties": {
|
|
886
|
-
"path": {
|
|
887
|
-
|
|
888
|
-
|
|
1021
|
+
"path": {
|
|
1022
|
+
"type": "string"
|
|
1023
|
+
},
|
|
1024
|
+
"action": {
|
|
1025
|
+
"type": "string",
|
|
1026
|
+
"enum": ["loaded", "derived", "rederived"]
|
|
1027
|
+
},
|
|
1028
|
+
"mode": {
|
|
1029
|
+
"type": "string",
|
|
1030
|
+
"enum": ["attended", "unattended"]
|
|
1031
|
+
},
|
|
889
1032
|
"confirmed": {
|
|
890
1033
|
"type": "boolean",
|
|
891
1034
|
"description": "The profile carried confirmedAt when the run used it."
|
|
892
1035
|
},
|
|
893
|
-
"staleReasons": {
|
|
1036
|
+
"staleReasons": {
|
|
1037
|
+
"type": "array",
|
|
1038
|
+
"items": {
|
|
1039
|
+
"type": "string"
|
|
1040
|
+
}
|
|
1041
|
+
},
|
|
894
1042
|
"ignored": {
|
|
895
1043
|
"type": "array",
|
|
896
1044
|
"description": "Fields the run did not act on, with the confidence policy's reason.",
|
|
897
|
-
"items": {
|
|
1045
|
+
"items": {
|
|
1046
|
+
"type": "object",
|
|
1047
|
+
"additionalProperties": true
|
|
1048
|
+
}
|
|
898
1049
|
}
|
|
899
1050
|
}
|
|
900
1051
|
},
|
|
@@ -1263,12 +1414,25 @@
|
|
|
1263
1414
|
"required": ["escalate", "fromTier", "toTier", "trigger", "reason"],
|
|
1264
1415
|
"description": "Written by rework-escalation.mjs --state before the rework dispatch this review sent back: the rung it ran on and why, a refusal included (multi-agent-refs/features/rework-escalation.md).",
|
|
1265
1416
|
"properties": {
|
|
1266
|
-
"escalate": {
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
"
|
|
1270
|
-
|
|
1271
|
-
|
|
1417
|
+
"escalate": {
|
|
1418
|
+
"type": "boolean"
|
|
1419
|
+
},
|
|
1420
|
+
"fromTier": {
|
|
1421
|
+
"type": "string"
|
|
1422
|
+
},
|
|
1423
|
+
"toTier": {
|
|
1424
|
+
"type": "string"
|
|
1425
|
+
},
|
|
1426
|
+
"trigger": {
|
|
1427
|
+
"enum": ["last-round", "still-present", null]
|
|
1428
|
+
},
|
|
1429
|
+
"reason": {
|
|
1430
|
+
"type": "string"
|
|
1431
|
+
},
|
|
1432
|
+
"at": {
|
|
1433
|
+
"type": "string",
|
|
1434
|
+
"format": "date-time"
|
|
1435
|
+
}
|
|
1272
1436
|
}
|
|
1273
1437
|
},
|
|
1274
1438
|
"delta": {
|
|
@@ -1537,13 +1701,28 @@
|
|
|
1537
1701
|
"additionalProperties": true,
|
|
1538
1702
|
"description": "valven-rules delivery gate. Phase 2 Gate 6 sets splitRequired when a size or scope rule fails; Phase 4 Step 2.95 records the stacked PRs it opened.",
|
|
1539
1703
|
"properties": {
|
|
1540
|
-
"splitRequired": {
|
|
1704
|
+
"splitRequired": {
|
|
1705
|
+
"type": "boolean"
|
|
1706
|
+
},
|
|
1541
1707
|
"split": {
|
|
1542
1708
|
"type": "object",
|
|
1543
1709
|
"properties": {
|
|
1544
|
-
"sliceCount": {
|
|
1545
|
-
|
|
1546
|
-
|
|
1710
|
+
"sliceCount": {
|
|
1711
|
+
"type": "integer",
|
|
1712
|
+
"minimum": 1
|
|
1713
|
+
},
|
|
1714
|
+
"branches": {
|
|
1715
|
+
"type": "array",
|
|
1716
|
+
"items": {
|
|
1717
|
+
"type": "string"
|
|
1718
|
+
}
|
|
1719
|
+
},
|
|
1720
|
+
"prs": {
|
|
1721
|
+
"type": "array",
|
|
1722
|
+
"items": {
|
|
1723
|
+
"type": "string"
|
|
1724
|
+
}
|
|
1725
|
+
}
|
|
1547
1726
|
}
|
|
1548
1727
|
}
|
|
1549
1728
|
}
|
|
@@ -1881,7 +2060,10 @@
|
|
|
1881
2060
|
"flowRuns": {
|
|
1882
2061
|
"type": "array",
|
|
1883
2062
|
"description": "Flow-runner run ids (the runId in <RUN_ROOT>/history.jsonl) of the UI scenario runs that verify this task. Channels renders their Xray Test Execution in the 'Test Koşumu (Xray)' block; empty means channels discovers candidate runs instead.",
|
|
1884
|
-
"items": {
|
|
2063
|
+
"items": {
|
|
2064
|
+
"type": "string",
|
|
2065
|
+
"minLength": 1
|
|
2066
|
+
}
|
|
1885
2067
|
}
|
|
1886
2068
|
}
|
|
1887
2069
|
},
|
|
@@ -2025,8 +2207,12 @@
|
|
|
2025
2207
|
"type": "object",
|
|
2026
2208
|
"additionalProperties": true,
|
|
2027
2209
|
"properties": {
|
|
2028
|
-
"file": {
|
|
2029
|
-
|
|
2210
|
+
"file": {
|
|
2211
|
+
"type": "string"
|
|
2212
|
+
},
|
|
2213
|
+
"jiraFilename": {
|
|
2214
|
+
"type": "string"
|
|
2215
|
+
},
|
|
2030
2216
|
"url": {
|
|
2031
2217
|
"type": "string",
|
|
2032
2218
|
"description": "Jira attachment content URL, as jira-attach.sh printed it."
|
|
@@ -2037,8 +2223,12 @@
|
|
|
2037
2223
|
"type": "object",
|
|
2038
2224
|
"additionalProperties": true,
|
|
2039
2225
|
"properties": {
|
|
2040
|
-
"file": {
|
|
2041
|
-
|
|
2226
|
+
"file": {
|
|
2227
|
+
"type": "string"
|
|
2228
|
+
},
|
|
2229
|
+
"jiraFilename": {
|
|
2230
|
+
"type": "string"
|
|
2231
|
+
},
|
|
2042
2232
|
"url": {
|
|
2043
2233
|
"type": "string",
|
|
2044
2234
|
"description": "Jira attachment content URL, as jira-attach.sh printed it."
|
|
@@ -2110,12 +2300,28 @@
|
|
|
2110
2300
|
"required": ["round", "digest", "verdict", "at"],
|
|
2111
2301
|
"description": "The one plan-critique round of this run (refs/features/plan-critic.md), written by plan-critique-gate.mjs and by nothing else while the quality gates are active. digest is the sha256 of the judged critique with its replies; a later invocation with a different digest is refused as a second round. advisory is what Phase 1 carries into the plan and Phase 4 into the PR summary.",
|
|
2112
2302
|
"properties": {
|
|
2113
|
-
"round": {
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
"
|
|
2118
|
-
|
|
2303
|
+
"round": {
|
|
2304
|
+
"type": "integer",
|
|
2305
|
+
"const": 1
|
|
2306
|
+
},
|
|
2307
|
+
"path": {
|
|
2308
|
+
"type": "string"
|
|
2309
|
+
},
|
|
2310
|
+
"digest": {
|
|
2311
|
+
"type": "string",
|
|
2312
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
2313
|
+
},
|
|
2314
|
+
"objectionsDigest": {
|
|
2315
|
+
"type": "string",
|
|
2316
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
2317
|
+
},
|
|
2318
|
+
"verdict": {
|
|
2319
|
+
"enum": ["pass", "fail"]
|
|
2320
|
+
},
|
|
2321
|
+
"objections": {
|
|
2322
|
+
"type": "integer",
|
|
2323
|
+
"minimum": 0
|
|
2324
|
+
},
|
|
2119
2325
|
"blocking": {
|
|
2120
2326
|
"type": "array",
|
|
2121
2327
|
"items": {
|
|
@@ -2123,9 +2329,15 @@
|
|
|
2123
2329
|
"additionalProperties": false,
|
|
2124
2330
|
"required": ["objection", "rule", "reason"],
|
|
2125
2331
|
"properties": {
|
|
2126
|
-
"objection": {
|
|
2127
|
-
|
|
2128
|
-
|
|
2332
|
+
"objection": {
|
|
2333
|
+
"type": "string"
|
|
2334
|
+
},
|
|
2335
|
+
"rule": {
|
|
2336
|
+
"type": "string"
|
|
2337
|
+
},
|
|
2338
|
+
"reason": {
|
|
2339
|
+
"type": "string"
|
|
2340
|
+
}
|
|
2129
2341
|
}
|
|
2130
2342
|
}
|
|
2131
2343
|
},
|
|
@@ -2136,17 +2348,34 @@
|
|
|
2136
2348
|
"additionalProperties": false,
|
|
2137
2349
|
"required": ["objection", "lens", "claim", "label", "reply"],
|
|
2138
2350
|
"properties": {
|
|
2139
|
-
"objection": {
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
"
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
"
|
|
2351
|
+
"objection": {
|
|
2352
|
+
"type": "string"
|
|
2353
|
+
},
|
|
2354
|
+
"lens": {
|
|
2355
|
+
"enum": ["scope", "feasibility", "security", "alternative"]
|
|
2356
|
+
},
|
|
2357
|
+
"claim": {
|
|
2358
|
+
"type": "string"
|
|
2359
|
+
},
|
|
2360
|
+
"label": {
|
|
2361
|
+
"enum": ["anchored", "inference"]
|
|
2362
|
+
},
|
|
2363
|
+
"rule": {
|
|
2364
|
+
"type": "string"
|
|
2365
|
+
},
|
|
2366
|
+
"ruleStatus": {
|
|
2367
|
+
"enum": ["binding", "proposed", "unknown", "unchecked"]
|
|
2368
|
+
},
|
|
2369
|
+
"reply": {
|
|
2370
|
+
"enum": ["accept", "rebut", null]
|
|
2371
|
+
}
|
|
2146
2372
|
}
|
|
2147
2373
|
}
|
|
2148
2374
|
},
|
|
2149
|
-
"at": {
|
|
2375
|
+
"at": {
|
|
2376
|
+
"type": "string",
|
|
2377
|
+
"format": "date-time"
|
|
2378
|
+
}
|
|
2150
2379
|
}
|
|
2151
2380
|
},
|
|
2152
2381
|
"publish": {
|
|
@@ -2155,12 +2384,25 @@
|
|
|
2155
2384
|
"required": ["outcome", "at"],
|
|
2156
2385
|
"description": "Written by the autopilot runner's publish step (autopilot-publish.mjs) when it pushed a verified branch to a host with no draft PR. The runner reports it as pushed-awaiting-pr. A GitHub publish writes `pr` instead; a refused one writes `verificationFailed` with a `publish/<gate>` gate.",
|
|
2157
2386
|
"properties": {
|
|
2158
|
-
"outcome": {
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
"
|
|
2162
|
-
|
|
2163
|
-
|
|
2387
|
+
"outcome": {
|
|
2388
|
+
"const": "pushed-awaiting-pr"
|
|
2389
|
+
},
|
|
2390
|
+
"at": {
|
|
2391
|
+
"type": "string",
|
|
2392
|
+
"format": "date-time"
|
|
2393
|
+
},
|
|
2394
|
+
"host": {
|
|
2395
|
+
"type": "string"
|
|
2396
|
+
},
|
|
2397
|
+
"branch": {
|
|
2398
|
+
"type": "string"
|
|
2399
|
+
},
|
|
2400
|
+
"base": {
|
|
2401
|
+
"type": "string"
|
|
2402
|
+
},
|
|
2403
|
+
"sha": {
|
|
2404
|
+
"type": "string"
|
|
2405
|
+
}
|
|
2164
2406
|
}
|
|
2165
2407
|
},
|
|
2166
2408
|
"jiraFamily": {
|
|
@@ -2168,19 +2410,46 @@
|
|
|
2168
2410
|
"additionalProperties": false,
|
|
2169
2411
|
"description": "The issue family of a run that started from a Jira story or sub-task (multi-agent-refs/features/jira-family.md), written by Phase 0 from scripts/jira-family.mjs resolve and read by the channels Jira adapter. writes[] is the outcome of lib/jira-family-write.sh apply.",
|
|
2170
2412
|
"properties": {
|
|
2171
|
-
"inputKey": {
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
"
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
"
|
|
2413
|
+
"inputKey": {
|
|
2414
|
+
"type": ["string", "null"]
|
|
2415
|
+
},
|
|
2416
|
+
"inputRole": {
|
|
2417
|
+
"enum": ["subtask", "story"]
|
|
2418
|
+
},
|
|
2419
|
+
"storyKey": {
|
|
2420
|
+
"type": ["string", "null"]
|
|
2421
|
+
},
|
|
2422
|
+
"devTaskKey": {
|
|
2423
|
+
"type": ["string", "null"]
|
|
2424
|
+
},
|
|
2425
|
+
"devCandidates": {
|
|
2426
|
+
"type": "array",
|
|
2427
|
+
"items": {
|
|
2428
|
+
"type": "string"
|
|
2429
|
+
}
|
|
2430
|
+
},
|
|
2431
|
+
"testTaskKey": {
|
|
2432
|
+
"type": ["string", "null"]
|
|
2433
|
+
},
|
|
2434
|
+
"testCandidates": {
|
|
2435
|
+
"type": "array",
|
|
2436
|
+
"items": {
|
|
2437
|
+
"type": "string"
|
|
2438
|
+
}
|
|
2439
|
+
},
|
|
2178
2440
|
"storyFormat": {
|
|
2179
2441
|
"type": "object",
|
|
2180
2442
|
"additionalProperties": false,
|
|
2181
2443
|
"properties": {
|
|
2182
|
-
"status": {
|
|
2183
|
-
|
|
2444
|
+
"status": {
|
|
2445
|
+
"enum": ["conforms", "nonconforming", "empty", "unknown", "not-a-story"]
|
|
2446
|
+
},
|
|
2447
|
+
"reasons": {
|
|
2448
|
+
"type": "array",
|
|
2449
|
+
"items": {
|
|
2450
|
+
"type": "string"
|
|
2451
|
+
}
|
|
2452
|
+
}
|
|
2184
2453
|
}
|
|
2185
2454
|
},
|
|
2186
2455
|
"writes": {
|
|
@@ -2190,10 +2459,18 @@
|
|
|
2190
2459
|
"additionalProperties": false,
|
|
2191
2460
|
"required": ["id", "issue", "status"],
|
|
2192
2461
|
"properties": {
|
|
2193
|
-
"id": {
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
"
|
|
2462
|
+
"id": {
|
|
2463
|
+
"enum": ["story", "dev", "test", "story-tests"]
|
|
2464
|
+
},
|
|
2465
|
+
"issue": {
|
|
2466
|
+
"type": "string"
|
|
2467
|
+
},
|
|
2468
|
+
"status": {
|
|
2469
|
+
"enum": ["written", "exists", "skipped", "failed", "dry-run"]
|
|
2470
|
+
},
|
|
2471
|
+
"reason": {
|
|
2472
|
+
"type": "string"
|
|
2473
|
+
}
|
|
2197
2474
|
}
|
|
2198
2475
|
}
|
|
2199
2476
|
}
|
|
@@ -2207,11 +2484,30 @@
|
|
|
2207
2484
|
"additionalProperties": false,
|
|
2208
2485
|
"required": ["what", "why", "costIfWrong", "at", "phase"],
|
|
2209
2486
|
"properties": {
|
|
2210
|
-
"what": {
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
|
|
2214
|
-
|
|
2487
|
+
"what": {
|
|
2488
|
+
"type": "string",
|
|
2489
|
+
"minLength": 1,
|
|
2490
|
+
"maxLength": 200
|
|
2491
|
+
},
|
|
2492
|
+
"why": {
|
|
2493
|
+
"type": "string",
|
|
2494
|
+
"minLength": 1,
|
|
2495
|
+
"maxLength": 500
|
|
2496
|
+
},
|
|
2497
|
+
"costIfWrong": {
|
|
2498
|
+
"type": "string",
|
|
2499
|
+
"minLength": 1,
|
|
2500
|
+
"maxLength": 300
|
|
2501
|
+
},
|
|
2502
|
+
"at": {
|
|
2503
|
+
"type": "string",
|
|
2504
|
+
"format": "date-time"
|
|
2505
|
+
},
|
|
2506
|
+
"phase": {
|
|
2507
|
+
"type": "integer",
|
|
2508
|
+
"minimum": 0,
|
|
2509
|
+
"maximum": 5
|
|
2510
|
+
}
|
|
2215
2511
|
}
|
|
2216
2512
|
}
|
|
2217
2513
|
},
|
|
@@ -2330,6 +2626,88 @@
|
|
|
2330
2626
|
"type": ["object", "null"],
|
|
2331
2627
|
"additionalProperties": true,
|
|
2332
2628
|
"description": "Answers and progress of a /multi-agent:complaint-analysis run. Shape: complaint-analysis-spec.schema.json."
|
|
2629
|
+
},
|
|
2630
|
+
"channelResults": {
|
|
2631
|
+
"type": ["object", "null"],
|
|
2632
|
+
"additionalProperties": false,
|
|
2633
|
+
"description": "What Phase 5's channels dispatch did, per adapter: posted, skipped or failed, and the address of what was posted. Written once the dispatch returns, so readers outside the session (the office, status) can show where the report went.",
|
|
2634
|
+
"properties": {
|
|
2635
|
+
"pr": {
|
|
2636
|
+
"type": "object",
|
|
2637
|
+
"additionalProperties": false,
|
|
2638
|
+
"required": ["status"],
|
|
2639
|
+
"properties": {
|
|
2640
|
+
"status": {
|
|
2641
|
+
"enum": ["posted", "skipped", "failed"]
|
|
2642
|
+
},
|
|
2643
|
+
"url": {
|
|
2644
|
+
"type": "string",
|
|
2645
|
+
"format": "uri",
|
|
2646
|
+
"pattern": "^https://"
|
|
2647
|
+
}
|
|
2648
|
+
}
|
|
2649
|
+
},
|
|
2650
|
+
"jira": {
|
|
2651
|
+
"type": "object",
|
|
2652
|
+
"additionalProperties": false,
|
|
2653
|
+
"required": ["status"],
|
|
2654
|
+
"properties": {
|
|
2655
|
+
"status": {
|
|
2656
|
+
"enum": ["posted", "skipped", "failed"]
|
|
2657
|
+
},
|
|
2658
|
+
"url": {
|
|
2659
|
+
"type": "string",
|
|
2660
|
+
"format": "uri",
|
|
2661
|
+
"pattern": "^https://"
|
|
2662
|
+
}
|
|
2663
|
+
}
|
|
2664
|
+
},
|
|
2665
|
+
"confluence": {
|
|
2666
|
+
"type": "object",
|
|
2667
|
+
"additionalProperties": false,
|
|
2668
|
+
"required": ["status"],
|
|
2669
|
+
"properties": {
|
|
2670
|
+
"status": {
|
|
2671
|
+
"enum": ["posted", "skipped", "failed"]
|
|
2672
|
+
},
|
|
2673
|
+
"url": {
|
|
2674
|
+
"type": "string",
|
|
2675
|
+
"format": "uri",
|
|
2676
|
+
"pattern": "^https://"
|
|
2677
|
+
}
|
|
2678
|
+
}
|
|
2679
|
+
},
|
|
2680
|
+
"wiki": {
|
|
2681
|
+
"type": "object",
|
|
2682
|
+
"additionalProperties": false,
|
|
2683
|
+
"required": ["status"],
|
|
2684
|
+
"properties": {
|
|
2685
|
+
"status": {
|
|
2686
|
+
"enum": ["posted", "skipped", "failed"]
|
|
2687
|
+
},
|
|
2688
|
+
"url": {
|
|
2689
|
+
"type": "string",
|
|
2690
|
+
"format": "uri",
|
|
2691
|
+
"pattern": "^https://"
|
|
2692
|
+
}
|
|
2693
|
+
}
|
|
2694
|
+
},
|
|
2695
|
+
"issue": {
|
|
2696
|
+
"type": "object",
|
|
2697
|
+
"additionalProperties": false,
|
|
2698
|
+
"required": ["status"],
|
|
2699
|
+
"properties": {
|
|
2700
|
+
"status": {
|
|
2701
|
+
"enum": ["posted", "skipped", "failed"]
|
|
2702
|
+
},
|
|
2703
|
+
"url": {
|
|
2704
|
+
"type": "string",
|
|
2705
|
+
"format": "uri",
|
|
2706
|
+
"pattern": "^https://"
|
|
2707
|
+
}
|
|
2708
|
+
}
|
|
2709
|
+
}
|
|
2710
|
+
}
|
|
2333
2711
|
}
|
|
2334
2712
|
}
|
|
2335
2713
|
}
|