@h9-foundry/agentforge-schemas 0.6.0 → 0.7.1
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/.tsbuildinfo +1 -1
- package/dist/index.d.ts +44471 -16574
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +657 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -15,13 +15,29 @@ export const lifecycleArtifactKindSchema = z.enum([
|
|
|
15
15
|
"planning-brief",
|
|
16
16
|
"design-record",
|
|
17
17
|
"implementation-proposal",
|
|
18
|
+
"incident-brief",
|
|
19
|
+
"qa-report",
|
|
20
|
+
"security-report",
|
|
18
21
|
"review-report",
|
|
19
22
|
"release-report",
|
|
20
23
|
"maintenance-report"
|
|
21
24
|
]);
|
|
22
|
-
export const lifecycleDomainSchema = z.enum(["plan", "design", "build", "review", "release", "maintain"]);
|
|
25
|
+
export const lifecycleDomainSchema = z.enum(["plan", "design", "build", "test", "security", "review", "release", "operate", "maintain"]);
|
|
23
26
|
export const lifecycleArtifactSourceTypeSchema = z.enum(["workflow-run", "manual-input", "imported"]);
|
|
24
27
|
export const lifecycleArtifactStatusSchema = z.enum(["draft", "complete", "superseded", "cancelled"]);
|
|
28
|
+
export const githubReferenceKindSchema = z.enum(["issue", "pull_request"]);
|
|
29
|
+
export const githubWorkflowStatusSchema = z.enum(["planned", "in_progress", "blocked", "completed", "failed"]);
|
|
30
|
+
export const githubActionsRunStatusSchema = z.enum(["queued", "in_progress", "completed"]);
|
|
31
|
+
export const githubActionsConclusionSchema = z.enum([
|
|
32
|
+
"success",
|
|
33
|
+
"failure",
|
|
34
|
+
"neutral",
|
|
35
|
+
"cancelled",
|
|
36
|
+
"skipped",
|
|
37
|
+
"timed_out",
|
|
38
|
+
"action_required",
|
|
39
|
+
"stale"
|
|
40
|
+
]);
|
|
25
41
|
export const catalogDomainSchema = z.enum([
|
|
26
42
|
"foundation",
|
|
27
43
|
"plan",
|
|
@@ -295,6 +311,13 @@ export const qaRequestSchema = z.object({
|
|
|
295
311
|
constraints: z.array(z.string().min(1)).default([]),
|
|
296
312
|
releaseContext: z.enum(["none", "candidate", "blocking"]).default("none")
|
|
297
313
|
});
|
|
314
|
+
export const securityRequestSchema = z.object({
|
|
315
|
+
targetRef: z.string().min(1),
|
|
316
|
+
evidenceSources: z.array(z.string().min(1)).default([]),
|
|
317
|
+
focusAreas: z.array(z.string().min(1)).default([]),
|
|
318
|
+
constraints: z.array(z.string().min(1)).default([]),
|
|
319
|
+
releaseContext: z.enum(["none", "candidate", "blocking"]).default("none")
|
|
320
|
+
});
|
|
298
321
|
export const normalizedValidationCommandSchema = z.object({
|
|
299
322
|
command: z.string().min(1),
|
|
300
323
|
source: z.enum(["request", "package-script", "workspace-script"]),
|
|
@@ -310,6 +333,96 @@ export const implementationInventorySchema = z.object({
|
|
|
310
333
|
policySurfaces: z.array(z.string().min(1)).default([]),
|
|
311
334
|
discoveredValidationCommands: z.array(normalizedValidationCommandSchema).default([])
|
|
312
335
|
});
|
|
336
|
+
export const githubActionsJobEvidenceSchema = z.object({
|
|
337
|
+
name: z.string().min(1),
|
|
338
|
+
status: githubActionsRunStatusSchema,
|
|
339
|
+
conclusion: githubActionsConclusionSchema.optional(),
|
|
340
|
+
htmlUrl: z.string().url().optional(),
|
|
341
|
+
startedAt: z.string().datetime().optional(),
|
|
342
|
+
completedAt: z.string().datetime().optional()
|
|
343
|
+
});
|
|
344
|
+
export const githubActionsCheckRunEvidenceSchema = z.object({
|
|
345
|
+
name: z.string().min(1),
|
|
346
|
+
status: githubActionsRunStatusSchema,
|
|
347
|
+
conclusion: githubActionsConclusionSchema.optional(),
|
|
348
|
+
detailsUrl: z.string().url().optional()
|
|
349
|
+
});
|
|
350
|
+
export const githubActionsEvidenceSchema = z.object({
|
|
351
|
+
sourcePath: z.string().min(1).optional(),
|
|
352
|
+
repository: z.string().min(1),
|
|
353
|
+
workflowName: z.string().min(1),
|
|
354
|
+
workflowRunId: z.number().int().positive(),
|
|
355
|
+
runAttempt: z.number().int().positive().default(1),
|
|
356
|
+
event: z.string().min(1).optional(),
|
|
357
|
+
headBranch: z.string().min(1).optional(),
|
|
358
|
+
headSha: z.string().min(1).optional(),
|
|
359
|
+
status: githubActionsRunStatusSchema,
|
|
360
|
+
conclusion: githubActionsConclusionSchema.optional(),
|
|
361
|
+
htmlUrl: z.string().url(),
|
|
362
|
+
jobs: z.array(githubActionsJobEvidenceSchema).default([]),
|
|
363
|
+
checkRuns: z.array(githubActionsCheckRunEvidenceSchema).default([])
|
|
364
|
+
});
|
|
365
|
+
export const githubActionsEvidenceNormalizationSchema = z.object({
|
|
366
|
+
evidence: z.array(githubActionsEvidenceSchema).default([]),
|
|
367
|
+
workflowNames: z.array(z.string().min(1)).default([]),
|
|
368
|
+
failingChecks: z.array(z.string().min(1)).default([]),
|
|
369
|
+
provenanceRefs: z.array(z.string().min(1)).default([])
|
|
370
|
+
});
|
|
371
|
+
export const qaEvidenceNormalizationSchema = z.object({
|
|
372
|
+
targetRef: z.string().min(1),
|
|
373
|
+
targetType: z.enum(["artifact-bundle", "validation-output", "local-reference"]),
|
|
374
|
+
referencedArtifactKinds: z.array(z.string().min(1)).default([]),
|
|
375
|
+
normalizedEvidenceSources: z.array(z.string().min(1)).default([]),
|
|
376
|
+
missingEvidenceSources: z.array(z.string().min(1)).default([]),
|
|
377
|
+
normalizedExecutedChecks: z.array(z.string().min(1)).default([]),
|
|
378
|
+
unrecognizedExecutedChecks: z.array(z.string().min(1)).default([]),
|
|
379
|
+
affectedPackages: z.array(z.string().min(1)).default([]),
|
|
380
|
+
allowedValidationCommands: z.array(normalizedValidationCommandSchema).default([]),
|
|
381
|
+
githubActions: githubActionsEvidenceNormalizationSchema.default({
|
|
382
|
+
evidence: [],
|
|
383
|
+
workflowNames: [],
|
|
384
|
+
failingChecks: [],
|
|
385
|
+
provenanceRefs: []
|
|
386
|
+
})
|
|
387
|
+
});
|
|
388
|
+
export const securityEvidenceNormalizationSchema = z.object({
|
|
389
|
+
targetRef: z.string().min(1),
|
|
390
|
+
targetType: z.enum(["artifact-bundle", "local-reference"]),
|
|
391
|
+
referencedArtifactKinds: z.array(z.string().min(1)).default([]),
|
|
392
|
+
normalizedEvidenceSources: z.array(z.string().min(1)).default([]),
|
|
393
|
+
missingEvidenceSources: z.array(z.string().min(1)).default([]),
|
|
394
|
+
normalizedFocusAreas: z.array(z.string().min(1)).default([]),
|
|
395
|
+
securitySignals: z.array(z.string().min(1)).default([]),
|
|
396
|
+
provenanceRefs: z.array(z.string().min(1)).default([]),
|
|
397
|
+
affectedPackages: z.array(z.string().min(1)).default([])
|
|
398
|
+
});
|
|
399
|
+
export const incidentEvidenceNormalizationSchema = z.object({
|
|
400
|
+
incidentSummary: z.string().min(1),
|
|
401
|
+
severityHint: z.enum(["unknown", "low", "medium", "high", "critical"]),
|
|
402
|
+
normalizedEvidenceSources: z.array(z.string().min(1)).default([]),
|
|
403
|
+
missingEvidenceSources: z.array(z.string().min(1)).default([]),
|
|
404
|
+
releaseReportRefs: z.array(z.string().min(1)).default([]),
|
|
405
|
+
timelineSummary: z.array(z.string().min(1)).default([]),
|
|
406
|
+
likelyImpactedAreas: z.array(z.string().min(1)).default([]),
|
|
407
|
+
followUpWorkflowRefs: z.array(z.string().min(1)).default([]),
|
|
408
|
+
provenanceRefs: z.array(z.string().min(1)).default([]),
|
|
409
|
+
redactionCategories: z.array(z.string().min(1)).default([]),
|
|
410
|
+
referencedArtifactKinds: z.array(z.string().min(1)).default([])
|
|
411
|
+
});
|
|
412
|
+
export const maintenanceEvidenceNormalizationSchema = z.object({
|
|
413
|
+
maintenanceGoal: z.string().min(1),
|
|
414
|
+
dependencyAlertRefs: z.array(z.string().min(1)).default([]),
|
|
415
|
+
docsTaskRefs: z.array(z.string().min(1)).default([]),
|
|
416
|
+
releaseReportRefs: z.array(z.string().min(1)).default([]),
|
|
417
|
+
normalizedEvidenceSources: z.array(z.string().min(1)).default([]),
|
|
418
|
+
missingEvidenceSources: z.array(z.string().min(1)).default([]),
|
|
419
|
+
referencedArtifactKinds: z.array(z.string().min(1)).default([]),
|
|
420
|
+
affectedPackagesOrDocs: z.array(z.string().min(1)).default([]),
|
|
421
|
+
maintenanceSignals: z.array(z.string().min(1)).default([]),
|
|
422
|
+
followUpWorkflowRefs: z.array(z.string().min(1)).default([]),
|
|
423
|
+
routingRecommendation: z.string().min(1),
|
|
424
|
+
provenanceRefs: z.array(z.string().min(1)).default([])
|
|
425
|
+
});
|
|
313
426
|
export const repoMetadataSchema = z.object({
|
|
314
427
|
root: z.string().min(1),
|
|
315
428
|
name: z.string().min(1),
|
|
@@ -384,11 +497,46 @@ export const lifecycleArtifactWorkflowReferenceSchema = z.object({
|
|
|
384
497
|
name: z.string().min(1),
|
|
385
498
|
displayName: z.string().min(1).optional()
|
|
386
499
|
});
|
|
500
|
+
export const githubReferenceSchema = z.object({
|
|
501
|
+
platform: z.literal("github"),
|
|
502
|
+
host: z.string().min(1).default("github.com"),
|
|
503
|
+
owner: z.string().min(1),
|
|
504
|
+
repo: z.string().min(1),
|
|
505
|
+
kind: githubReferenceKindSchema,
|
|
506
|
+
number: z.number().int().positive(),
|
|
507
|
+
canonical: z.string().min(1),
|
|
508
|
+
url: z.string().url(),
|
|
509
|
+
source: z.string().min(1)
|
|
510
|
+
});
|
|
511
|
+
export const githubWorkflowStatusMappingSchema = z.object({
|
|
512
|
+
workflow: z.string().min(1),
|
|
513
|
+
localRunStatus: runStatusSchema,
|
|
514
|
+
githubStatus: githubWorkflowStatusSchema,
|
|
515
|
+
reason: z.string().min(1)
|
|
516
|
+
});
|
|
517
|
+
export const githubHandoffArtifactKindSchema = z.enum(["planning-brief", "design-record", "incident-brief", "qa-report", "release-report"]);
|
|
518
|
+
export const githubHandoffSectionSchema = z.object({
|
|
519
|
+
heading: z.string().min(1),
|
|
520
|
+
lines: z.array(z.string().min(1)).default([])
|
|
521
|
+
});
|
|
522
|
+
export const githubHandoffSummarySchema = z.object({
|
|
523
|
+
artifactKind: githubHandoffArtifactKindSchema,
|
|
524
|
+
workflow: z.string().min(1),
|
|
525
|
+
githubStatus: githubWorkflowStatusSchema,
|
|
526
|
+
title: z.string().min(1),
|
|
527
|
+
summary: z.string().min(1),
|
|
528
|
+
body: z.string().min(1),
|
|
529
|
+
issueRefs: z.array(githubReferenceSchema).default([]),
|
|
530
|
+
pullRequestRefs: z.array(githubReferenceSchema).default([]),
|
|
531
|
+
provenanceRefs: z.array(z.string().min(1)).default([]),
|
|
532
|
+
sections: z.array(githubHandoffSectionSchema).default([])
|
|
533
|
+
});
|
|
387
534
|
export const lifecycleArtifactSourceReferenceSchema = z.object({
|
|
388
535
|
sourceType: lifecycleArtifactSourceTypeSchema,
|
|
389
536
|
runId: z.string().min(1).optional(),
|
|
390
537
|
inputRefs: z.array(z.string()).default([]),
|
|
391
|
-
issueRefs: z.array(z.string()).default([])
|
|
538
|
+
issueRefs: z.array(z.string()).default([]),
|
|
539
|
+
githubRefs: z.array(githubReferenceSchema).default([])
|
|
392
540
|
});
|
|
393
541
|
export const lifecycleArtifactRepoReferenceSchema = z.object({
|
|
394
542
|
root: z.string().min(1),
|
|
@@ -460,6 +608,24 @@ export const reviewArtifactPayloadSchema = z.object({
|
|
|
460
608
|
securityConcerns: z.array(z.string().min(1)).default([]),
|
|
461
609
|
approvalRecommendations: z.array(z.string().min(1)).default([])
|
|
462
610
|
});
|
|
611
|
+
export const qaArtifactPayloadSchema = z.object({
|
|
612
|
+
targetRef: z.string().min(1),
|
|
613
|
+
evidenceSources: z.array(z.string().min(1)).default([]),
|
|
614
|
+
executedChecks: z.array(z.string().min(1)).default([]),
|
|
615
|
+
findings: z.array(findingSchema).default([]),
|
|
616
|
+
coverageGaps: z.array(z.string().min(1)).default([]),
|
|
617
|
+
recommendedNextChecks: z.array(z.string().min(1)).default([]),
|
|
618
|
+
releaseImpact: z.string().min(1)
|
|
619
|
+
});
|
|
620
|
+
export const securityArtifactPayloadSchema = z.object({
|
|
621
|
+
targetRef: z.string().min(1),
|
|
622
|
+
evidenceSources: z.array(z.string().min(1)).default([]),
|
|
623
|
+
findings: z.array(findingSchema).default([]),
|
|
624
|
+
severitySummary: z.string().min(1),
|
|
625
|
+
mitigations: z.array(z.string().min(1)).default([]),
|
|
626
|
+
releaseImpact: z.string().min(1),
|
|
627
|
+
followUpWork: z.array(z.string().min(1)).default([])
|
|
628
|
+
});
|
|
463
629
|
export const implementationArtifactPayloadSchema = z.object({
|
|
464
630
|
designRecordRef: z.string().min(1),
|
|
465
631
|
implementationGoal: z.string().min(1),
|
|
@@ -470,6 +636,14 @@ export const implementationArtifactPayloadSchema = z.object({
|
|
|
470
636
|
risks: z.array(z.string().min(1)).default([]),
|
|
471
637
|
openQuestions: z.array(z.string().min(1)).default([])
|
|
472
638
|
});
|
|
639
|
+
export const incidentArtifactPayloadSchema = z.object({
|
|
640
|
+
incidentSummary: z.string().min(1),
|
|
641
|
+
evidenceSources: z.array(z.string().min(1)).default([]),
|
|
642
|
+
timelineSummary: z.array(z.string().min(1)).default([]),
|
|
643
|
+
likelyImpactedAreas: z.array(z.string().min(1)).default([]),
|
|
644
|
+
followUpWorkflowRefs: z.array(z.string().min(1)).default([]),
|
|
645
|
+
openQuestions: z.array(z.string().min(1)).default([])
|
|
646
|
+
});
|
|
473
647
|
export const releaseVerificationCheckSchema = z.object({
|
|
474
648
|
name: z.string().min(1),
|
|
475
649
|
status: z.enum(["passed", "failed", "skipped"]),
|
|
@@ -479,11 +653,59 @@ export const releaseVersionTargetSchema = z.object({
|
|
|
479
653
|
name: z.string().min(1),
|
|
480
654
|
version: z.string().min(1)
|
|
481
655
|
});
|
|
656
|
+
export const releaseVersionResolutionSchema = z.object({
|
|
657
|
+
name: z.string().min(1),
|
|
658
|
+
targetVersion: z.string().min(1),
|
|
659
|
+
currentVersion: z.string().min(1).optional(),
|
|
660
|
+
status: z.enum(["matches-target", "pending-version-bump", "package-missing"])
|
|
661
|
+
});
|
|
662
|
+
export const releaseApprovalRecommendationSchema = z.object({
|
|
663
|
+
action: z.string().min(1),
|
|
664
|
+
classification: z.enum(["allow", "approval_required", "deny"]),
|
|
665
|
+
reason: z.string().min(1)
|
|
666
|
+
});
|
|
667
|
+
export const releaseRequestSchema = z.object({
|
|
668
|
+
releaseScope: z.string().min(1),
|
|
669
|
+
versionTargets: z.array(releaseVersionTargetSchema).min(1),
|
|
670
|
+
qaReportRefs: z.array(z.string().min(1)).default([]),
|
|
671
|
+
securityReportRefs: z.array(z.string().min(1)).default([]),
|
|
672
|
+
evidenceSources: z.array(z.string().min(1)).default([]),
|
|
673
|
+
constraints: z.array(z.string().min(1)).default([])
|
|
674
|
+
});
|
|
675
|
+
export const incidentRequestSchema = z.object({
|
|
676
|
+
incidentSummary: z.string().min(1),
|
|
677
|
+
severityHint: z.enum(["unknown", "low", "medium", "high", "critical"]).default("unknown"),
|
|
678
|
+
evidenceSources: z.array(z.string().min(1)).default([]),
|
|
679
|
+
releaseReportRefs: z.array(z.string().min(1)).default([]),
|
|
680
|
+
issueRefs: z.array(z.string().min(1)).default([]),
|
|
681
|
+
constraints: z.array(z.string().min(1)).default([])
|
|
682
|
+
});
|
|
683
|
+
export const maintenanceRequestSchema = z.object({
|
|
684
|
+
maintenanceGoal: z.string().min(1),
|
|
685
|
+
dependencyAlertRefs: z.array(z.string().min(1)).default([]),
|
|
686
|
+
docsTaskRefs: z.array(z.string().min(1)).default([]),
|
|
687
|
+
releaseReportRefs: z.array(z.string().min(1)).default([]),
|
|
688
|
+
issueRefs: z.array(z.string().min(1)).default([]),
|
|
689
|
+
constraints: z.array(z.string().min(1)).default([])
|
|
690
|
+
});
|
|
691
|
+
export const releaseEvidenceNormalizationSchema = z.object({
|
|
692
|
+
qaReportRefs: z.array(z.string().min(1)).default([]),
|
|
693
|
+
securityReportRefs: z.array(z.string().min(1)).default([]),
|
|
694
|
+
normalizedEvidenceSources: z.array(z.string().min(1)).default([]),
|
|
695
|
+
missingEvidenceSources: z.array(z.string().min(1)).default([]),
|
|
696
|
+
versionResolutions: z.array(releaseVersionResolutionSchema).default([]),
|
|
697
|
+
localReadinessChecks: z.array(releaseVerificationCheckSchema).default([]),
|
|
698
|
+
readinessStatus: z.enum(["ready", "blocked", "partial"]),
|
|
699
|
+
approvalRecommendations: z.array(releaseApprovalRecommendationSchema).default([]),
|
|
700
|
+
provenanceRefs: z.array(z.string().min(1)).default([])
|
|
701
|
+
});
|
|
482
702
|
export const releaseArtifactPayloadSchema = z.object({
|
|
483
703
|
releaseScope: z.string().min(1),
|
|
484
704
|
versionTargets: z.array(releaseVersionTargetSchema).min(1),
|
|
485
705
|
readinessStatus: z.enum(["ready", "blocked", "partial"]),
|
|
486
706
|
verificationChecks: z.array(releaseVerificationCheckSchema).default([]),
|
|
707
|
+
versionResolutions: z.array(releaseVersionResolutionSchema).default([]),
|
|
708
|
+
approvalRecommendations: z.array(releaseApprovalRecommendationSchema).default([]),
|
|
487
709
|
publishingPlan: z.array(z.string().min(1)).default([]),
|
|
488
710
|
trustStatus: z.string().min(1),
|
|
489
711
|
publishedPackages: z.array(z.string().min(1)).default([]),
|
|
@@ -494,8 +716,13 @@ export const releaseArtifactPayloadSchema = z.object({
|
|
|
494
716
|
});
|
|
495
717
|
export const maintenanceArtifactPayloadSchema = z.object({
|
|
496
718
|
maintenanceScope: z.string().min(1),
|
|
719
|
+
evidenceSources: z.array(z.string().min(1)).default([]),
|
|
720
|
+
affectedPackagesOrDocs: z.array(z.string().min(1)).default([]),
|
|
497
721
|
currentFindings: z.array(z.string().min(1)).default([]),
|
|
498
722
|
recommendedActions: z.array(z.string().min(1)).default([]),
|
|
723
|
+
routingRecommendation: z.string().min(1),
|
|
724
|
+
followUpWorkflowRefs: z.array(z.string().min(1)).default([]),
|
|
725
|
+
risks: z.array(z.string().min(1)).default([]),
|
|
499
726
|
priorityAssessment: z.string().min(1),
|
|
500
727
|
dependencyUpdates: z.array(z.string().min(1)).default([]),
|
|
501
728
|
docsUpdates: z.array(z.string().min(1)).default([]),
|
|
@@ -517,6 +744,21 @@ export const implementationArtifactSchema = lifecycleArtifactEnvelopeSchema.exte
|
|
|
517
744
|
lifecycleDomain: z.literal("build"),
|
|
518
745
|
payload: implementationArtifactPayloadSchema
|
|
519
746
|
});
|
|
747
|
+
export const incidentArtifactSchema = lifecycleArtifactEnvelopeSchema.extend({
|
|
748
|
+
artifactKind: z.literal("incident-brief"),
|
|
749
|
+
lifecycleDomain: z.literal("operate"),
|
|
750
|
+
payload: incidentArtifactPayloadSchema
|
|
751
|
+
});
|
|
752
|
+
export const qaArtifactSchema = lifecycleArtifactEnvelopeSchema.extend({
|
|
753
|
+
artifactKind: z.literal("qa-report"),
|
|
754
|
+
lifecycleDomain: z.literal("test"),
|
|
755
|
+
payload: qaArtifactPayloadSchema
|
|
756
|
+
});
|
|
757
|
+
export const securityArtifactSchema = lifecycleArtifactEnvelopeSchema.extend({
|
|
758
|
+
artifactKind: z.literal("security-report"),
|
|
759
|
+
lifecycleDomain: z.literal("security"),
|
|
760
|
+
payload: securityArtifactPayloadSchema
|
|
761
|
+
});
|
|
520
762
|
export const reviewArtifactSchema = lifecycleArtifactEnvelopeSchema.extend({
|
|
521
763
|
artifactKind: z.literal("review-report"),
|
|
522
764
|
lifecycleDomain: z.literal("review"),
|
|
@@ -536,6 +778,9 @@ export const lifecycleArtifactSchema = z.discriminatedUnion("artifactKind", [
|
|
|
536
778
|
planningArtifactSchema,
|
|
537
779
|
designArtifactSchema,
|
|
538
780
|
implementationArtifactSchema,
|
|
781
|
+
incidentArtifactSchema,
|
|
782
|
+
qaArtifactSchema,
|
|
783
|
+
securityArtifactSchema,
|
|
539
784
|
reviewArtifactSchema,
|
|
540
785
|
releaseArtifactSchema,
|
|
541
786
|
maintenanceArtifactSchema
|
|
@@ -572,6 +817,14 @@ export const schemaRegistry = {
|
|
|
572
817
|
auditComponent: auditComponentSchema,
|
|
573
818
|
auditProvenance: auditProvenanceSchema,
|
|
574
819
|
auditRedaction: auditRedactionSchema,
|
|
820
|
+
githubReference: githubReferenceSchema,
|
|
821
|
+
githubActionsJobEvidence: githubActionsJobEvidenceSchema,
|
|
822
|
+
githubActionsCheckRunEvidence: githubActionsCheckRunEvidenceSchema,
|
|
823
|
+
githubActionsEvidence: githubActionsEvidenceSchema,
|
|
824
|
+
githubActionsEvidenceNormalization: githubActionsEvidenceNormalizationSchema,
|
|
825
|
+
githubHandoffSection: githubHandoffSectionSchema,
|
|
826
|
+
githubHandoffSummary: githubHandoffSummarySchema,
|
|
827
|
+
githubWorkflowStatusMapping: githubWorkflowStatusMappingSchema,
|
|
575
828
|
lifecycleArtifactWorkflowReference: lifecycleArtifactWorkflowReferenceSchema,
|
|
576
829
|
lifecycleArtifactSourceReference: lifecycleArtifactSourceReferenceSchema,
|
|
577
830
|
lifecycleArtifactRepoReference: lifecycleArtifactRepoReferenceSchema,
|
|
@@ -582,14 +835,23 @@ export const schemaRegistry = {
|
|
|
582
835
|
designArtifactOption: designArtifactOptionSchema,
|
|
583
836
|
designArtifactPayload: designArtifactPayloadSchema,
|
|
584
837
|
implementationArtifactPayload: implementationArtifactPayloadSchema,
|
|
838
|
+
incidentArtifactPayload: incidentArtifactPayloadSchema,
|
|
839
|
+
qaArtifactPayload: qaArtifactPayloadSchema,
|
|
840
|
+
securityArtifactPayload: securityArtifactPayloadSchema,
|
|
585
841
|
reviewArtifactPayload: reviewArtifactPayloadSchema,
|
|
586
842
|
releaseVerificationCheck: releaseVerificationCheckSchema,
|
|
587
843
|
releaseVersionTarget: releaseVersionTargetSchema,
|
|
844
|
+
releaseVersionResolution: releaseVersionResolutionSchema,
|
|
845
|
+
releaseApprovalRecommendation: releaseApprovalRecommendationSchema,
|
|
846
|
+
releaseEvidenceNormalization: releaseEvidenceNormalizationSchema,
|
|
588
847
|
releaseArtifactPayload: releaseArtifactPayloadSchema,
|
|
589
848
|
maintenanceArtifactPayload: maintenanceArtifactPayloadSchema,
|
|
590
849
|
planningArtifact: planningArtifactSchema,
|
|
591
850
|
designArtifact: designArtifactSchema,
|
|
592
851
|
implementationArtifact: implementationArtifactSchema,
|
|
852
|
+
incidentArtifact: incidentArtifactSchema,
|
|
853
|
+
qaArtifact: qaArtifactSchema,
|
|
854
|
+
securityArtifact: securityArtifactSchema,
|
|
593
855
|
reviewArtifact: reviewArtifactSchema,
|
|
594
856
|
releaseArtifact: releaseArtifactSchema,
|
|
595
857
|
maintenanceArtifact: maintenanceArtifactSchema,
|
|
@@ -602,8 +864,16 @@ export const schemaRegistry = {
|
|
|
602
864
|
designRequest: designRequestSchema,
|
|
603
865
|
implementationRequest: implementationRequestSchema,
|
|
604
866
|
qaRequest: qaRequestSchema,
|
|
867
|
+
securityRequest: securityRequestSchema,
|
|
868
|
+
releaseRequest: releaseRequestSchema,
|
|
869
|
+
incidentRequest: incidentRequestSchema,
|
|
870
|
+
maintenanceRequest: maintenanceRequestSchema,
|
|
605
871
|
normalizedValidationCommand: normalizedValidationCommandSchema,
|
|
606
872
|
implementationInventory: implementationInventorySchema,
|
|
873
|
+
qaEvidenceNormalization: qaEvidenceNormalizationSchema,
|
|
874
|
+
securityEvidenceNormalization: securityEvidenceNormalizationSchema,
|
|
875
|
+
incidentEvidenceNormalization: incidentEvidenceNormalizationSchema,
|
|
876
|
+
maintenanceEvidenceNormalization: maintenanceEvidenceNormalizationSchema,
|
|
607
877
|
policyDocument: policyDocumentSchema,
|
|
608
878
|
effectivePolicySnapshot: effectivePolicySnapshotSchema,
|
|
609
879
|
workflowDefinition: workflowDefinitionSchema,
|
|
@@ -626,7 +896,20 @@ const lifecycleArtifactFixtureBase = {
|
|
|
626
896
|
sourceType: "workflow-run",
|
|
627
897
|
runId: "run-123",
|
|
628
898
|
inputRefs: ["docs/ROADMAP.md"],
|
|
629
|
-
issueRefs: ["#78"]
|
|
899
|
+
issueRefs: ["#78"],
|
|
900
|
+
githubRefs: [
|
|
901
|
+
{
|
|
902
|
+
platform: "github",
|
|
903
|
+
host: "github.com",
|
|
904
|
+
owner: "H9-Foundry",
|
|
905
|
+
repo: "AgentForge",
|
|
906
|
+
kind: "issue",
|
|
907
|
+
number: 78,
|
|
908
|
+
canonical: "H9-Foundry/AgentForge#78",
|
|
909
|
+
url: "https://github.com/H9-Foundry/AgentForge/issues/78",
|
|
910
|
+
source: "#78"
|
|
911
|
+
}
|
|
912
|
+
]
|
|
630
913
|
},
|
|
631
914
|
status: "complete",
|
|
632
915
|
generatedAt: "2026-03-17T12:00:00.000Z",
|
|
@@ -711,6 +994,79 @@ const implementationArtifactFixture = {
|
|
|
711
994
|
openQuestions: ["Which validation commands should become allowlisted in the next slice?"]
|
|
712
995
|
}
|
|
713
996
|
};
|
|
997
|
+
const incidentArtifactFixture = {
|
|
998
|
+
...lifecycleArtifactFixtureBase,
|
|
999
|
+
artifactKind: "incident-brief",
|
|
1000
|
+
lifecycleDomain: "operate",
|
|
1001
|
+
summary: "Incident brief prepared for elevated 500s after the latest release candidate.",
|
|
1002
|
+
payload: {
|
|
1003
|
+
incidentSummary: "Customers saw elevated 500s after the latest release candidate.",
|
|
1004
|
+
evidenceSources: [
|
|
1005
|
+
".agentops/evidence/incident-summary.md",
|
|
1006
|
+
".agentops/evidence/alerts.json",
|
|
1007
|
+
".agentops/runs/run-release/bundle.json"
|
|
1008
|
+
],
|
|
1009
|
+
timelineSummary: [
|
|
1010
|
+
"Severity hint: high.",
|
|
1011
|
+
"Two staged evidence sources and one release-report reference were validated before reasoning."
|
|
1012
|
+
],
|
|
1013
|
+
likelyImpactedAreas: ["release-readiness", "maintenance-triage", "packages/cli"],
|
|
1014
|
+
followUpWorkflowRefs: ["maintenance-triage", "security-review"],
|
|
1015
|
+
openQuestions: ["Which release candidate introduced the first reproducible 500 response?"]
|
|
1016
|
+
}
|
|
1017
|
+
};
|
|
1018
|
+
const qaArtifactFixture = {
|
|
1019
|
+
...lifecycleArtifactFixtureBase,
|
|
1020
|
+
artifactKind: "qa-report",
|
|
1021
|
+
lifecycleDomain: "test",
|
|
1022
|
+
summary: "QA report for the bounded implementation proposal handoff.",
|
|
1023
|
+
payload: {
|
|
1024
|
+
targetRef: ".agentops/runs/run-789/bundle.json",
|
|
1025
|
+
evidenceSources: [".agentops/runs/run-789/summary.md"],
|
|
1026
|
+
executedChecks: ["pnpm test"],
|
|
1027
|
+
findings: [
|
|
1028
|
+
{
|
|
1029
|
+
id: "qa-finding-1",
|
|
1030
|
+
title: "Coverage evidence still needs review",
|
|
1031
|
+
summary: "The bounded QA handoff references validation output, but coverage evidence still needs interpretation.",
|
|
1032
|
+
severity: "medium",
|
|
1033
|
+
rationale: "The MVP QA workflow is read-only and request-driven, so it cannot infer full coverage status without normalized evidence.",
|
|
1034
|
+
confidence: 0.82,
|
|
1035
|
+
location: ".agentops/requests/qa.yaml",
|
|
1036
|
+
tags: ["qa", "coverage"]
|
|
1037
|
+
}
|
|
1038
|
+
],
|
|
1039
|
+
coverageGaps: ["Coverage evidence was referenced but not normalized into a deterministic summary."],
|
|
1040
|
+
recommendedNextChecks: ["Review the referenced validation output before promotion.", "Confirm release-risk expectations with the owning maintainer."],
|
|
1041
|
+
releaseImpact: "candidate release requires QA follow-up before promotion."
|
|
1042
|
+
}
|
|
1043
|
+
};
|
|
1044
|
+
const securityArtifactFixture = {
|
|
1045
|
+
...lifecycleArtifactFixtureBase,
|
|
1046
|
+
artifactKind: "security-report",
|
|
1047
|
+
lifecycleDomain: "security",
|
|
1048
|
+
summary: "Security report for the bounded implementation proposal handoff.",
|
|
1049
|
+
payload: {
|
|
1050
|
+
targetRef: ".agentops/runs/run-790/bundle.json",
|
|
1051
|
+
evidenceSources: [".agentops/runs/run-790/summary.md"],
|
|
1052
|
+
findings: [
|
|
1053
|
+
{
|
|
1054
|
+
id: "security-finding-1",
|
|
1055
|
+
title: "Dependency risk still needs bounded interpretation",
|
|
1056
|
+
summary: "The security workflow synthesized a dependency-risk concern from validated references.",
|
|
1057
|
+
severity: "medium",
|
|
1058
|
+
rationale: "This slice emits a structured security report from validated evidence references before deterministic evidence normalization lands.",
|
|
1059
|
+
confidence: 0.78,
|
|
1060
|
+
location: ".agentops/requests/security.yaml",
|
|
1061
|
+
tags: ["security", "dependency-risk"]
|
|
1062
|
+
}
|
|
1063
|
+
],
|
|
1064
|
+
severitySummary: "highest severity: medium; 1 synthesized security finding.",
|
|
1065
|
+
mitigations: ["Review dependency-risk evidence before release promotion."],
|
|
1066
|
+
releaseImpact: "candidate release requires explicit security review before promotion.",
|
|
1067
|
+
followUpWork: ["Use deterministic security evidence normalization outputs before broader promotion."]
|
|
1068
|
+
}
|
|
1069
|
+
};
|
|
714
1070
|
const reviewArtifactFixture = {
|
|
715
1071
|
...lifecycleArtifactFixtureBase,
|
|
716
1072
|
artifactKind: "review-report",
|
|
@@ -744,8 +1100,28 @@ const releaseArtifactFixture = {
|
|
|
744
1100
|
versionTargets: [{ name: "@h9-foundry/agentforge-schemas", version: "0.4.1" }],
|
|
745
1101
|
readinessStatus: "ready",
|
|
746
1102
|
verificationChecks: [{ name: "release-verify", status: "passed" }],
|
|
1103
|
+
versionResolutions: [
|
|
1104
|
+
{
|
|
1105
|
+
name: "@h9-foundry/agentforge-schemas",
|
|
1106
|
+
targetVersion: "0.4.1",
|
|
1107
|
+
currentVersion: "0.4.0",
|
|
1108
|
+
status: "pending-version-bump"
|
|
1109
|
+
}
|
|
1110
|
+
],
|
|
1111
|
+
approvalRecommendations: [
|
|
1112
|
+
{
|
|
1113
|
+
action: "publish-packages",
|
|
1114
|
+
classification: "approval_required",
|
|
1115
|
+
reason: "Package publication remains outside the default read-only workflow path."
|
|
1116
|
+
}
|
|
1117
|
+
],
|
|
747
1118
|
publishingPlan: ["Merge version PR", "Let GitHub Actions publish"],
|
|
748
|
-
trustStatus: "trusted-publishing-configured"
|
|
1119
|
+
trustStatus: "trusted-publishing-configured",
|
|
1120
|
+
publishedPackages: [],
|
|
1121
|
+
tagRefs: [],
|
|
1122
|
+
provenanceRefs: [".agentops/runs/run-321/bundle.json"],
|
|
1123
|
+
rollbackNotes: ["Pause the release if the verification set changes before publish."],
|
|
1124
|
+
externalDependencies: ["Trusted publishing remains configured in GitHub Actions."]
|
|
749
1125
|
}
|
|
750
1126
|
};
|
|
751
1127
|
const maintenanceArtifactFixture = {
|
|
@@ -755,8 +1131,20 @@ const maintenanceArtifactFixture = {
|
|
|
755
1131
|
summary: "Maintenance report for documentation and dependency hygiene.",
|
|
756
1132
|
payload: {
|
|
757
1133
|
maintenanceScope: "Docs and dependency hygiene",
|
|
1134
|
+
evidenceSources: [
|
|
1135
|
+
".agentops/evidence/dependency-alerts.json",
|
|
1136
|
+
".agentops/evidence/docs-task.md",
|
|
1137
|
+
".agentops/runs/run-release/bundle.json"
|
|
1138
|
+
],
|
|
1139
|
+
affectedPackagesOrDocs: ["docs/quickstart.md", "packages/cli"],
|
|
758
1140
|
currentFindings: ["README needs clearer first-run guidance"],
|
|
759
1141
|
recommendedActions: ["Rewrite quickstart", "Refresh sample repo docs"],
|
|
1142
|
+
routingRecommendation: "implementation-proposal",
|
|
1143
|
+
followUpWorkflowRefs: ["implementation-proposal", "release-readiness"],
|
|
1144
|
+
risks: [
|
|
1145
|
+
"Release-linked maintenance follow-up may drift if the latest release report is not revisited.",
|
|
1146
|
+
"Docs debt can diverge from implemented behavior if maintenance triage is deferred."
|
|
1147
|
+
],
|
|
760
1148
|
priorityAssessment: "high",
|
|
761
1149
|
dependencyUpdates: ["vitest@4.1.0"],
|
|
762
1150
|
docsUpdates: ["docs/quickstart.md"],
|
|
@@ -795,12 +1183,117 @@ const qaRequestFixture = {
|
|
|
795
1183
|
constraints: ["Keep QA evidence collection read-only"],
|
|
796
1184
|
releaseContext: "candidate"
|
|
797
1185
|
};
|
|
1186
|
+
const securityRequestFixture = {
|
|
1187
|
+
targetRef: ".agentops/runs/run-790/bundle.json",
|
|
1188
|
+
evidenceSources: [".agentops/runs/run-790/summary.md"],
|
|
1189
|
+
focusAreas: ["dependency-risk", "release-readiness"],
|
|
1190
|
+
constraints: ["Keep security evidence collection read-only"],
|
|
1191
|
+
releaseContext: "candidate"
|
|
1192
|
+
};
|
|
1193
|
+
const releaseRequestFixture = {
|
|
1194
|
+
releaseScope: "Prepare the 0.7.0 candidate for maintainer review",
|
|
1195
|
+
versionTargets: [{ name: "@h9-foundry/agentforge-cli", version: "0.7.0" }],
|
|
1196
|
+
qaReportRefs: [".agentops/runs/run-789/bundle.json"],
|
|
1197
|
+
securityReportRefs: [".agentops/runs/run-790/bundle.json"],
|
|
1198
|
+
evidenceSources: [".agentops/runs/run-790/summary.md"],
|
|
1199
|
+
constraints: ["Keep release readiness read-only by default"]
|
|
1200
|
+
};
|
|
1201
|
+
const incidentRequestFixture = {
|
|
1202
|
+
incidentSummary: "Customers saw elevated 500s after the last release candidate.",
|
|
1203
|
+
severityHint: "high",
|
|
1204
|
+
evidenceSources: [".agentops/evidence/incident-summary.md", ".agentops/evidence/alerts.json"],
|
|
1205
|
+
releaseReportRefs: [".agentops/runs/run-release/bundle.json"],
|
|
1206
|
+
issueRefs: ["#144"],
|
|
1207
|
+
constraints: ["Keep staged incident evidence read-only"]
|
|
1208
|
+
};
|
|
1209
|
+
const maintenanceRequestFixture = {
|
|
1210
|
+
maintenanceGoal: "Triage dependency and docs hygiene follow-up after the latest release.",
|
|
1211
|
+
dependencyAlertRefs: [".agentops/evidence/dependency-alerts.json"],
|
|
1212
|
+
docsTaskRefs: [".agentops/evidence/docs-task.md"],
|
|
1213
|
+
releaseReportRefs: [".agentops/runs/run-release/bundle.json"],
|
|
1214
|
+
issueRefs: ["#145"],
|
|
1215
|
+
constraints: ["Keep maintenance triage read-only"]
|
|
1216
|
+
};
|
|
798
1217
|
const normalizedValidationCommandFixture = {
|
|
799
1218
|
command: "pnpm test",
|
|
800
1219
|
source: "request",
|
|
801
1220
|
classification: "approval_required",
|
|
802
1221
|
reason: "Requested command matches a discovered allowlisted validation script."
|
|
803
1222
|
};
|
|
1223
|
+
const githubReferenceFixture = {
|
|
1224
|
+
platform: "github",
|
|
1225
|
+
host: "github.com",
|
|
1226
|
+
owner: "H9-Foundry",
|
|
1227
|
+
repo: "AgentForge",
|
|
1228
|
+
kind: "issue",
|
|
1229
|
+
number: 142,
|
|
1230
|
+
canonical: "H9-Foundry/AgentForge#142",
|
|
1231
|
+
url: "https://github.com/H9-Foundry/AgentForge/issues/142",
|
|
1232
|
+
source: "#142"
|
|
1233
|
+
};
|
|
1234
|
+
const githubWorkflowStatusMappingFixture = {
|
|
1235
|
+
workflow: "planning-discovery",
|
|
1236
|
+
localRunStatus: "success",
|
|
1237
|
+
githubStatus: "completed",
|
|
1238
|
+
reason: "Successful local workflow runs map to completed GitHub handoff status."
|
|
1239
|
+
};
|
|
1240
|
+
const githubActionsEvidenceFixture = {
|
|
1241
|
+
sourcePath: ".agentops/evidence/github-actions-ci.json",
|
|
1242
|
+
repository: "H9-Foundry/AgentForge",
|
|
1243
|
+
workflowName: "CI",
|
|
1244
|
+
workflowRunId: 123456789,
|
|
1245
|
+
runAttempt: 1,
|
|
1246
|
+
event: "pull_request",
|
|
1247
|
+
headBranch: "main",
|
|
1248
|
+
headSha: "caf36447a49fc6e9fc308c34b98424958237aa1e",
|
|
1249
|
+
status: "completed",
|
|
1250
|
+
conclusion: "failure",
|
|
1251
|
+
htmlUrl: "https://github.com/H9-Foundry/AgentForge/actions/runs/123456789",
|
|
1252
|
+
jobs: [
|
|
1253
|
+
{
|
|
1254
|
+
name: "test",
|
|
1255
|
+
status: "completed",
|
|
1256
|
+
conclusion: "success",
|
|
1257
|
+
htmlUrl: "https://github.com/H9-Foundry/AgentForge/actions/runs/123456789/job/1"
|
|
1258
|
+
},
|
|
1259
|
+
{
|
|
1260
|
+
name: "lint",
|
|
1261
|
+
status: "completed",
|
|
1262
|
+
conclusion: "failure",
|
|
1263
|
+
htmlUrl: "https://github.com/H9-Foundry/AgentForge/actions/runs/123456789/job/2"
|
|
1264
|
+
}
|
|
1265
|
+
],
|
|
1266
|
+
checkRuns: [
|
|
1267
|
+
{
|
|
1268
|
+
name: "validate-public-packages",
|
|
1269
|
+
status: "completed",
|
|
1270
|
+
conclusion: "success",
|
|
1271
|
+
detailsUrl: "https://github.com/H9-Foundry/AgentForge/actions/runs/123456789/job/3"
|
|
1272
|
+
}
|
|
1273
|
+
]
|
|
1274
|
+
};
|
|
1275
|
+
const githubHandoffSummaryFixture = {
|
|
1276
|
+
artifactKind: "planning-brief",
|
|
1277
|
+
workflow: "planning-discovery",
|
|
1278
|
+
githubStatus: "completed",
|
|
1279
|
+
title: "Planning handoff for H9-Foundry/AgentForge#78",
|
|
1280
|
+
summary: "Planning brief scoped the next bounded workflow slice.",
|
|
1281
|
+
body: [
|
|
1282
|
+
"Planning handoff for `planning-discovery`.",
|
|
1283
|
+
"",
|
|
1284
|
+
"Summary:",
|
|
1285
|
+
"- Planning brief scoped the next bounded workflow slice."
|
|
1286
|
+
].join("\n"),
|
|
1287
|
+
issueRefs: [githubReferenceFixture],
|
|
1288
|
+
pullRequestRefs: [],
|
|
1289
|
+
provenanceRefs: [".agentops/runs/run-123/bundle.json", "docs/ROADMAP.md"],
|
|
1290
|
+
sections: [
|
|
1291
|
+
{
|
|
1292
|
+
heading: "Summary",
|
|
1293
|
+
lines: ["Planning brief scoped the next bounded workflow slice."]
|
|
1294
|
+
}
|
|
1295
|
+
]
|
|
1296
|
+
};
|
|
804
1297
|
const implementationInventoryFixture = {
|
|
805
1298
|
requestedTargetPaths: ["packages/cli", "packages/runtime"],
|
|
806
1299
|
resolvedAffectedPaths: ["packages/cli/src/index.ts", "packages/runtime/src/index.ts"],
|
|
@@ -818,6 +1311,150 @@ const implementationInventoryFixture = {
|
|
|
818
1311
|
}
|
|
819
1312
|
]
|
|
820
1313
|
};
|
|
1314
|
+
const qaEvidenceNormalizationFixture = {
|
|
1315
|
+
targetRef: ".agentops/runs/run-789/bundle.json",
|
|
1316
|
+
targetType: "artifact-bundle",
|
|
1317
|
+
referencedArtifactKinds: ["implementation-proposal"],
|
|
1318
|
+
normalizedEvidenceSources: [".agentops/runs/run-789/bundle.json", ".agentops/runs/run-789/summary.md"],
|
|
1319
|
+
missingEvidenceSources: [],
|
|
1320
|
+
normalizedExecutedChecks: ["pnpm test"],
|
|
1321
|
+
unrecognizedExecutedChecks: [],
|
|
1322
|
+
affectedPackages: ["packages/cli"],
|
|
1323
|
+
allowedValidationCommands: [
|
|
1324
|
+
normalizedValidationCommandFixture,
|
|
1325
|
+
{
|
|
1326
|
+
command: "pnpm build",
|
|
1327
|
+
source: "package-script",
|
|
1328
|
+
classification: "approval_required",
|
|
1329
|
+
reason: "Discovered from a bounded repository script; execution would still require approval."
|
|
1330
|
+
}
|
|
1331
|
+
],
|
|
1332
|
+
githubActions: {
|
|
1333
|
+
evidence: [githubActionsEvidenceFixture],
|
|
1334
|
+
workflowNames: ["CI"],
|
|
1335
|
+
failingChecks: ["CI / lint"],
|
|
1336
|
+
provenanceRefs: [
|
|
1337
|
+
".agentops/evidence/github-actions-ci.json",
|
|
1338
|
+
"https://github.com/H9-Foundry/AgentForge/actions/runs/123456789",
|
|
1339
|
+
"https://github.com/H9-Foundry/AgentForge/actions/runs/123456789/job/1",
|
|
1340
|
+
"https://github.com/H9-Foundry/AgentForge/actions/runs/123456789/job/2",
|
|
1341
|
+
"https://github.com/H9-Foundry/AgentForge/actions/runs/123456789/job/3"
|
|
1342
|
+
]
|
|
1343
|
+
}
|
|
1344
|
+
};
|
|
1345
|
+
const securityEvidenceNormalizationFixture = {
|
|
1346
|
+
targetRef: ".agentops/runs/run-790/bundle.json",
|
|
1347
|
+
targetType: "artifact-bundle",
|
|
1348
|
+
referencedArtifactKinds: ["implementation-proposal"],
|
|
1349
|
+
normalizedEvidenceSources: [".agentops/runs/run-790/bundle.json", ".agentops/runs/run-790/summary.md"],
|
|
1350
|
+
missingEvidenceSources: [],
|
|
1351
|
+
normalizedFocusAreas: ["dependency-risk", "release-readiness"],
|
|
1352
|
+
securitySignals: [
|
|
1353
|
+
"Referenced artifact kinds: implementation-proposal",
|
|
1354
|
+
"Affected packages inferred from bounded artifact payloads: packages/cli, packages/runtime"
|
|
1355
|
+
],
|
|
1356
|
+
provenanceRefs: [
|
|
1357
|
+
".agentops/runs/run-790/bundle.json#implementation-proposal",
|
|
1358
|
+
".agentops/runs/run-790/summary.md"
|
|
1359
|
+
],
|
|
1360
|
+
affectedPackages: ["packages/cli", "packages/runtime"]
|
|
1361
|
+
};
|
|
1362
|
+
const incidentEvidenceNormalizationFixture = {
|
|
1363
|
+
incidentSummary: "Customers saw elevated 500s after the last release candidate.",
|
|
1364
|
+
severityHint: "high",
|
|
1365
|
+
normalizedEvidenceSources: [
|
|
1366
|
+
".agentops/evidence/incident-summary.md",
|
|
1367
|
+
".agentops/evidence/alerts.json",
|
|
1368
|
+
".agentops/runs/run-release/bundle.json"
|
|
1369
|
+
],
|
|
1370
|
+
missingEvidenceSources: [],
|
|
1371
|
+
releaseReportRefs: [".agentops/runs/run-release/bundle.json"],
|
|
1372
|
+
timelineSummary: [
|
|
1373
|
+
"Severity hint: high.",
|
|
1374
|
+
"Normalized staged incident evidence and release-report references before reasoning.",
|
|
1375
|
+
"Observed source .agentops/evidence/incident-summary.md during deterministic intake.",
|
|
1376
|
+
"Observed source .agentops/evidence/alerts.json during deterministic intake.",
|
|
1377
|
+
"Observed source .agentops/runs/run-release/bundle.json during deterministic intake."
|
|
1378
|
+
],
|
|
1379
|
+
likelyImpactedAreas: ["release-readiness", "staged-operational-evidence", "security-follow-up"],
|
|
1380
|
+
followUpWorkflowRefs: ["maintenance-triage", "release-readiness", "security-review"],
|
|
1381
|
+
provenanceRefs: [
|
|
1382
|
+
".agentops/evidence/incident-summary.md",
|
|
1383
|
+
".agentops/evidence/alerts.json",
|
|
1384
|
+
".agentops/runs/run-release/bundle.json#release-report"
|
|
1385
|
+
],
|
|
1386
|
+
redactionCategories: ["github-token", "api-key", "aws-key", "bearer-token", "password", "private-key", "operational-sensitive"],
|
|
1387
|
+
referencedArtifactKinds: ["release-report"]
|
|
1388
|
+
};
|
|
1389
|
+
const maintenanceEvidenceNormalizationFixture = {
|
|
1390
|
+
maintenanceGoal: "Triage dependency and docs hygiene follow-up after the latest release.",
|
|
1391
|
+
dependencyAlertRefs: [".agentops/evidence/dependency-alerts.json"],
|
|
1392
|
+
docsTaskRefs: [".agentops/evidence/docs-task.md"],
|
|
1393
|
+
releaseReportRefs: [".agentops/runs/run-release/bundle.json"],
|
|
1394
|
+
normalizedEvidenceSources: [
|
|
1395
|
+
".agentops/evidence/dependency-alerts.json",
|
|
1396
|
+
".agentops/evidence/docs-task.md",
|
|
1397
|
+
".agentops/runs/run-release/bundle.json"
|
|
1398
|
+
],
|
|
1399
|
+
missingEvidenceSources: [],
|
|
1400
|
+
referencedArtifactKinds: ["release-report"],
|
|
1401
|
+
affectedPackagesOrDocs: ["docs/quickstart.md", "packages/cli"],
|
|
1402
|
+
maintenanceSignals: [
|
|
1403
|
+
"Observed source .agentops/evidence/dependency-alerts.json during deterministic intake.",
|
|
1404
|
+
"Observed source .agentops/evidence/docs-task.md during deterministic intake.",
|
|
1405
|
+
"Observed source .agentops/runs/run-release/bundle.json during deterministic intake.",
|
|
1406
|
+
"Release report references contribute bounded maintenance follow-up context."
|
|
1407
|
+
],
|
|
1408
|
+
followUpWorkflowRefs: ["implementation-proposal", "release-readiness"],
|
|
1409
|
+
routingRecommendation: "implementation-proposal",
|
|
1410
|
+
provenanceRefs: [
|
|
1411
|
+
".agentops/evidence/dependency-alerts.json",
|
|
1412
|
+
".agentops/evidence/docs-task.md",
|
|
1413
|
+
".agentops/runs/run-release/bundle.json#release-report"
|
|
1414
|
+
]
|
|
1415
|
+
};
|
|
1416
|
+
const releaseEvidenceNormalizationFixture = {
|
|
1417
|
+
qaReportRefs: [".agentops/runs/run-789/bundle.json"],
|
|
1418
|
+
securityReportRefs: [".agentops/runs/run-790/bundle.json"],
|
|
1419
|
+
normalizedEvidenceSources: [
|
|
1420
|
+
".agentops/runs/run-789/bundle.json",
|
|
1421
|
+
".agentops/runs/run-790/bundle.json",
|
|
1422
|
+
".agentops/runs/run-790/summary.md"
|
|
1423
|
+
],
|
|
1424
|
+
missingEvidenceSources: [],
|
|
1425
|
+
versionResolutions: [
|
|
1426
|
+
{
|
|
1427
|
+
name: "@h9-foundry/agentforge-cli",
|
|
1428
|
+
targetVersion: "0.7.0",
|
|
1429
|
+
currentVersion: "0.6.0",
|
|
1430
|
+
status: "pending-version-bump"
|
|
1431
|
+
}
|
|
1432
|
+
],
|
|
1433
|
+
localReadinessChecks: [
|
|
1434
|
+
{ name: "qa-report-refs", status: "passed", detail: "Using one validated QA report reference." },
|
|
1435
|
+
{ name: "security-report-refs", status: "passed", detail: "Using one validated security report reference." },
|
|
1436
|
+
{ name: "workspace-version-targets", status: "passed", detail: "Resolved one workspace version target." }
|
|
1437
|
+
],
|
|
1438
|
+
readinessStatus: "ready",
|
|
1439
|
+
approvalRecommendations: [
|
|
1440
|
+
{
|
|
1441
|
+
action: "publish-packages",
|
|
1442
|
+
classification: "approval_required",
|
|
1443
|
+
reason: "Package publication remains outside the default read-only workflow path."
|
|
1444
|
+
},
|
|
1445
|
+
{
|
|
1446
|
+
action: "promote-release",
|
|
1447
|
+
classification: "approval_required",
|
|
1448
|
+
reason: "Promotion remains a release-significant side effect and requires explicit maintainer approval."
|
|
1449
|
+
}
|
|
1450
|
+
],
|
|
1451
|
+
provenanceRefs: [
|
|
1452
|
+
".agentops/runs/run-789/bundle.json",
|
|
1453
|
+
".agentops/runs/run-790/bundle.json",
|
|
1454
|
+
".agentops/runs/run-790/summary.md",
|
|
1455
|
+
"packages/cli/package.json"
|
|
1456
|
+
]
|
|
1457
|
+
};
|
|
821
1458
|
export const schemaFixtures = {
|
|
822
1459
|
finding: {
|
|
823
1460
|
id: "finding-1",
|
|
@@ -924,12 +1561,28 @@ export const schemaFixtures = {
|
|
|
924
1561
|
},
|
|
925
1562
|
implementationRequest: implementationRequestFixture,
|
|
926
1563
|
qaRequest: qaRequestFixture,
|
|
1564
|
+
securityRequest: securityRequestFixture,
|
|
1565
|
+
releaseRequest: releaseRequestFixture,
|
|
1566
|
+
incidentRequest: incidentRequestFixture,
|
|
1567
|
+
maintenanceRequest: maintenanceRequestFixture,
|
|
1568
|
+
githubReference: githubReferenceFixture,
|
|
1569
|
+
githubActionsEvidence: githubActionsEvidenceFixture,
|
|
1570
|
+
githubHandoffSummary: githubHandoffSummaryFixture,
|
|
1571
|
+
githubWorkflowStatusMapping: githubWorkflowStatusMappingFixture,
|
|
927
1572
|
normalizedValidationCommand: normalizedValidationCommandFixture,
|
|
928
1573
|
implementationInventory: implementationInventoryFixture,
|
|
1574
|
+
qaEvidenceNormalization: qaEvidenceNormalizationFixture,
|
|
1575
|
+
securityEvidenceNormalization: securityEvidenceNormalizationFixture,
|
|
1576
|
+
incidentEvidenceNormalization: incidentEvidenceNormalizationFixture,
|
|
1577
|
+
maintenanceEvidenceNormalization: maintenanceEvidenceNormalizationFixture,
|
|
1578
|
+
releaseEvidenceNormalization: releaseEvidenceNormalizationFixture,
|
|
929
1579
|
lifecycleArtifactEnvelope: planningArtifactFixture,
|
|
930
1580
|
planningArtifact: planningArtifactFixture,
|
|
931
1581
|
designArtifact: designArtifactFixture,
|
|
932
1582
|
implementationArtifact: implementationArtifactFixture,
|
|
1583
|
+
incidentArtifact: incidentArtifactFixture,
|
|
1584
|
+
qaArtifact: qaArtifactFixture,
|
|
1585
|
+
securityArtifact: securityArtifactFixture,
|
|
933
1586
|
reviewArtifact: reviewArtifactFixture,
|
|
934
1587
|
releaseArtifact: releaseArtifactFixture,
|
|
935
1588
|
maintenanceArtifact: maintenanceArtifactFixture,
|