@design-ai/cli 4.56.0 → 4.57.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/.claude-plugin/plugin.json +109 -25
- package/CHANGELOG.md +36 -0
- package/README.ko.md +9 -26
- package/README.md +10 -23
- package/cli/bin/design-ai.mjs +1 -0
- package/cli/commands/help.mjs +7 -4
- package/cli/commands/index.mjs +292 -0
- package/cli/commands/learn-help.mjs +149 -0
- package/cli/commands/learn-print-profile.mjs +373 -0
- package/cli/commands/learn-print-restore.mjs +349 -0
- package/cli/commands/learn-print-signals.mjs +453 -0
- package/cli/commands/learn.mjs +60 -1281
- package/cli/commands/pack.mjs +7 -3
- package/cli/commands/prompt.mjs +7 -3
- package/cli/commands/search.mjs +94 -1
- package/cli/lib/dispatch.mjs +3 -0
- package/cli/lib/embedding-index.mjs +199 -0
- package/cli/lib/embedding-provider.mjs +121 -0
- package/cli/lib/embedding-rerank.mjs +52 -0
- package/cli/lib/learn-args.mjs +490 -0
- package/cli/lib/learn-backup.mjs +748 -0
- package/cli/lib/learn-curation.mjs +612 -0
- package/cli/lib/learn-eval.mjs +459 -0
- package/cli/lib/learn-profile.mjs +763 -0
- package/cli/lib/learn-select.mjs +223 -0
- package/cli/lib/learn-shared.mjs +158 -0
- package/cli/lib/learn-test-support.mjs +218 -0
- package/cli/lib/learn-usage.mjs +360 -0
- package/cli/lib/learn.mjs +83 -3694
- package/cli/lib/lexical.mjs +137 -0
- package/cli/lib/local-config.mjs +110 -0
- package/cli/lib/mcp-server.mjs +13 -3
- package/cli/lib/pack.mjs +31 -4
- package/cli/lib/prompt.mjs +42 -4
- package/cli/lib/recall.mjs +193 -0
- package/cli/lib/retrieval-index.mjs +0 -0
- package/cli/lib/search-ranked.mjs +170 -0
- package/cli/lib/search.mjs +11 -1
- package/cli/lib/signals-backlog-commands.mjs +673 -0
- package/cli/lib/signals-backlog.mjs +361 -0
- package/cli/lib/signals-eval.mjs +176 -0
- package/cli/lib/signals-readiness.mjs +247 -0
- package/cli/lib/signals-registry.mjs +377 -0
- package/cli/lib/signals-render.mjs +478 -0
- package/cli/lib/signals-shared.mjs +75 -0
- package/cli/lib/signals.mjs +16 -2337
- package/cli/lib/site-bundle-handoff-expected.mjs +173 -0
- package/cli/lib/site-bundle-handoff-runbook-action-summary.mjs +332 -0
- package/cli/lib/site-bundle-handoff-runbook-human-lines.mjs +167 -0
- package/cli/lib/site-bundle-handoff-runbook-maps.mjs +238 -0
- package/cli/lib/site-bundle-handoff-runbook-next-step.mjs +278 -0
- package/cli/lib/site-bundle-handoff-runbook.mjs +44 -931
- package/cli/lib/site-test-support.mjs +68 -0
- package/cli/lib/skill-proposals-apply-commands.mjs +135 -0
- package/cli/lib/skill-proposals-apply-contract.mjs +750 -0
- package/cli/lib/skill-proposals-apply-plan.mjs +118 -0
- package/cli/lib/skill-proposals-generate.mjs +298 -0
- package/cli/lib/skill-proposals-render.mjs +532 -0
- package/cli/lib/skill-proposals-review.mjs +262 -0
- package/cli/lib/skill-proposals.mjs +15 -2046
- package/cli/lib/workspace-args.mjs +83 -0
- package/cli/lib/workspace-git.mjs +169 -0
- package/cli/lib/workspace-learning.mjs +483 -0
- package/cli/lib/workspace-repo.mjs +139 -0
- package/cli/lib/workspace-report.mjs +283 -0
- package/cli/lib/workspace-test-support.mjs +99 -0
- package/cli/lib/workspace.mjs +30 -1056
- package/docs/AI-LEARNING-PHASE2.md +215 -0
- package/docs/DISTRIBUTION.ko.md +2 -2
- package/docs/DISTRIBUTION.md +2 -2
- package/docs/NEXT-SURFACE-DECISION.md +125 -0
- package/docs/PRODUCT-READINESS.md +3 -3
- package/docs/RELEASE-GATES.ko.md +35 -0
- package/docs/RELEASE-GATES.md +234 -0
- package/docs/ROADMAP.md +53 -8
- package/docs/external-status.md +6 -8
- package/docs/inspection-20260630.md +169 -0
- package/docs/integrations/design-ai-mcp-server.md +4 -4
- package/docs/reference/ant-design.md +413 -0
- package/docs/reference/awesome-design-md.md +439 -0
- package/docs/reference/mui.md +783 -0
- package/docs/reference/shadcn-ui.md +298 -0
- package/examples/component-accordion-actions.md +5 -5
- package/examples/component-accordion-details.md +5 -5
- package/examples/component-accordion-summary.md +5 -5
- package/examples/component-accordion.md +3 -3
- package/examples/component-affix.md +1 -1
- package/examples/component-alert-dialog.md +1 -1
- package/examples/component-alert-title.md +1 -1
- package/examples/component-alert.md +3 -3
- package/examples/component-anchor.md +1 -1
- package/examples/component-app-bar.md +1 -1
- package/examples/component-aspect-ratio.md +1 -1
- package/examples/component-auto-complete.md +2 -2
- package/examples/component-avatar-group.md +5 -5
- package/examples/component-avatar.md +3 -3
- package/examples/component-back-top.md +1 -1
- package/examples/component-backdrop.md +1 -1
- package/examples/component-badge.md +3 -3
- package/examples/component-border-beam.md +3 -3
- package/examples/component-bottom-navigation.md +1 -1
- package/examples/component-box.md +1 -1
- package/examples/component-breadcrumb.md +3 -3
- package/examples/component-button-base.md +3 -3
- package/examples/component-button-group.md +2 -2
- package/examples/component-button.md +3 -3
- package/examples/component-calendar.md +2 -2
- package/examples/component-card-actions.md +1 -1
- package/examples/component-card-content.md +1 -1
- package/examples/component-card-header.md +1 -1
- package/examples/component-card-media.md +1 -1
- package/examples/component-card.md +3 -3
- package/examples/component-carousel.md +2 -2
- package/examples/component-cascader.md +1 -1
- package/examples/component-chart.md +1 -1
- package/examples/component-checkbox.md +3 -3
- package/examples/component-click-away-listener.md +1 -1
- package/examples/component-code.md +1 -1
- package/examples/component-collapsible.md +1 -1
- package/examples/component-color-picker.md +1 -1
- package/examples/component-combobox.md +1 -1
- package/examples/component-command.md +1 -1
- package/examples/component-config-provider.md +3 -3
- package/examples/component-context-menu.md +1 -1
- package/examples/component-css-baseline.md +3 -3
- package/examples/component-date-picker.md +2 -2
- package/examples/component-descriptions.md +1 -1
- package/examples/component-dialog-actions.md +1 -1
- package/examples/component-dialog-content-text.md +1 -1
- package/examples/component-dialog-content.md +1 -1
- package/examples/component-dialog-title.md +1 -1
- package/examples/component-dialog.md +2 -2
- package/examples/component-divider.md +3 -3
- package/examples/component-drawer.md +3 -3
- package/examples/component-dropdown.md +3 -3
- package/examples/component-empty.md +2 -2
- package/examples/component-fade.md +1 -1
- package/examples/component-field.md +1 -1
- package/examples/component-filled-input.md +1 -1
- package/examples/component-flex.md +1 -1
- package/examples/component-float-button.md +2 -2
- package/examples/component-form-control-label.md +1 -1
- package/examples/component-form-control.md +1 -1
- package/examples/component-form-controls.md +1 -1
- package/examples/component-form-group.md +1 -1
- package/examples/component-form-helper-text.md +1 -1
- package/examples/component-form-label.md +1 -1
- package/examples/component-form.md +2 -2
- package/examples/component-grid.md +2 -2
- package/examples/component-grow.md +1 -1
- package/examples/component-hover-card.md +1 -1
- package/examples/component-icon-button.md +1 -1
- package/examples/component-icon.md +1 -1
- package/examples/component-image-list.md +1 -1
- package/examples/component-image.md +1 -1
- package/examples/component-input-adornment.md +1 -1
- package/examples/component-input-base.md +1 -1
- package/examples/component-input-number.md +1 -1
- package/examples/component-input-otp.md +2 -2
- package/examples/component-input.md +3 -3
- package/examples/component-item.md +1 -1
- package/examples/component-label.md +1 -1
- package/examples/component-layout.md +1 -1
- package/examples/component-link.md +1 -1
- package/examples/component-list-item-avatar.md +1 -1
- package/examples/component-list-item-button.md +1 -1
- package/examples/component-list-item-icon.md +1 -1
- package/examples/component-list-item-text.md +1 -1
- package/examples/component-list-item.md +1 -1
- package/examples/component-list-subheader.md +1 -1
- package/examples/component-list.md +2 -2
- package/examples/component-masonry.md +1 -1
- package/examples/component-mentions.md +1 -1
- package/examples/component-menu-item.md +1 -1
- package/examples/component-menu-list.md +1 -1
- package/examples/component-menu.md +1 -1
- package/examples/component-menubar.md +1 -1
- package/examples/component-message.md +1 -1
- package/examples/component-mobile-stepper.md +1 -1
- package/examples/component-modal.md +5 -5
- package/examples/component-navigation-menu.md +1 -1
- package/examples/component-notification.md +1 -1
- package/examples/component-outlined-input.md +1 -1
- package/examples/component-pagination.md +3 -3
- package/examples/component-paper.md +1 -1
- package/examples/component-popconfirm.md +1 -1
- package/examples/component-popover.md +3 -3
- package/examples/component-popper.md +1 -1
- package/examples/component-progress.md +2 -2
- package/examples/component-qr-code.md +1 -1
- package/examples/component-radio.md +3 -3
- package/examples/component-rate.md +2 -2
- package/examples/component-resizable.md +1 -1
- package/examples/component-result.md +1 -1
- package/examples/component-scroll-area.md +1 -1
- package/examples/component-segmented.md +3 -3
- package/examples/component-select.md +3 -3
- package/examples/component-separator.md +1 -1
- package/examples/component-sheet.md +1 -1
- package/examples/component-sidebar.md +1 -1
- package/examples/component-skeleton.md +3 -3
- package/examples/component-slide.md +1 -1
- package/examples/component-slider.md +3 -3
- package/examples/component-snackbar-content.md +1 -1
- package/examples/component-snackbar.md +1 -1
- package/examples/component-sonner.md +1 -1
- package/examples/component-space.md +1 -1
- package/examples/component-speed-dial-action.md +1 -1
- package/examples/component-speed-dial.md +1 -1
- package/examples/component-spin.md +2 -2
- package/examples/component-spinner.md +1 -1
- package/examples/component-splitter.md +2 -2
- package/examples/component-stack.md +1 -1
- package/examples/component-statistic.md +1 -1
- package/examples/component-step-button.md +4 -4
- package/examples/component-step-connector.md +4 -4
- package/examples/component-step-content.md +1 -1
- package/examples/component-step-icon.md +1 -1
- package/examples/component-step-label.md +1 -1
- package/examples/component-step.md +2 -2
- package/examples/component-steps.md +2 -2
- package/examples/component-swipeable-drawer.md +1 -1
- package/examples/component-switch.md +3 -3
- package/examples/component-tab-scroll-button.md +5 -5
- package/examples/component-tab.md +1 -1
- package/examples/component-table-body.md +1 -1
- package/examples/component-table-cell.md +1 -1
- package/examples/component-table-container.md +1 -1
- package/examples/component-table-footer.md +1 -1
- package/examples/component-table-head.md +1 -1
- package/examples/component-table-pagination.md +1 -1
- package/examples/component-table-row.md +1 -1
- package/examples/component-table-sort-label.md +1 -1
- package/examples/component-table.md +2 -2
- package/examples/component-tabs.md +3 -3
- package/examples/component-tag-badge.md +2 -2
- package/examples/component-tag.md +1 -1
- package/examples/component-textarea-autosize.md +1 -1
- package/examples/component-textarea.md +1 -1
- package/examples/component-time-picker.md +1 -1
- package/examples/component-timeline.md +1 -1
- package/examples/component-toast.md +4 -4
- package/examples/component-toggle-button.md +1 -1
- package/examples/component-toggle.md +1 -1
- package/examples/component-toolbar.md +1 -1
- package/examples/component-tooltip.md +3 -3
- package/examples/component-tour.md +1 -1
- package/examples/component-transfer.md +1 -1
- package/examples/component-tree-select.md +1 -1
- package/examples/component-tree.md +1 -1
- package/examples/component-typography.md +2 -2
- package/examples/component-upload.md +1 -1
- package/examples/component-watermark.md +1 -1
- package/examples/component-zoom.md +1 -1
- package/knowledge/COVERAGE.md +4 -3
- package/knowledge/components/INDEX.md +202 -202
- package/knowledge/patterns/brand-references.md +72 -72
- package/package.json +1 -1
- package/tools/audit/local-ci.py +16 -1
- package/tools/audit/package-smoke.py +611 -9
- package/tools/audit/registry-smoke.py +534 -0
- package/tools/audit/release-metadata.py +47 -1
- package/tools/audit/smoke_assertions.py +915 -13
- package/tools/migrations/refs-links-to-reference-pages.py +179 -0
|
@@ -42,6 +42,26 @@ import {
|
|
|
42
42
|
getStageLabel,
|
|
43
43
|
} from "./site-bundle-handoff-runbook-stage-metadata.mjs";
|
|
44
44
|
|
|
45
|
+
import { buildActionSummary } from "./site-bundle-handoff-runbook-action-summary.mjs";
|
|
46
|
+
import { buildStageHumanLineMaps } from "./site-bundle-handoff-runbook-human-lines.mjs";
|
|
47
|
+
import {
|
|
48
|
+
buildStageActionDependencyMaps,
|
|
49
|
+
buildStageActionEvidenceCaptureMaps,
|
|
50
|
+
buildStageActionEvidenceMaps,
|
|
51
|
+
buildStageActionStatusMaps,
|
|
52
|
+
buildStageExecutionMaps,
|
|
53
|
+
buildStageIdentityMaps,
|
|
54
|
+
callsExternalSystem,
|
|
55
|
+
hasCommands,
|
|
56
|
+
isManualStage,
|
|
57
|
+
isOptionalStage,
|
|
58
|
+
isRequiredStage,
|
|
59
|
+
mutatesTargetRepo,
|
|
60
|
+
usesLocalOutputRunPolicy,
|
|
61
|
+
usesReadOnlyRunPolicy,
|
|
62
|
+
} from "./site-bundle-handoff-runbook-maps.mjs";
|
|
63
|
+
import { buildNextStepState } from "./site-bundle-handoff-runbook-next-step.mjs";
|
|
64
|
+
|
|
45
65
|
export function buildBundleHandoffCommandManifest({
|
|
46
66
|
sourceBundle,
|
|
47
67
|
taskCatalog,
|
|
@@ -246,15 +266,6 @@ export function buildBundleHandoffOperatorRunbook(commandManifest) {
|
|
|
246
266
|
reason: "Return changed files, verification commands, browser/viewport checks, remaining risks, and the bundle digest.",
|
|
247
267
|
}),
|
|
248
268
|
];
|
|
249
|
-
const hasCommands = (stage) => stage.commandCount > 0;
|
|
250
|
-
const isManualStage = (stage) => !hasCommands(stage);
|
|
251
|
-
const isRequiredStage = (stage) => stage.required;
|
|
252
|
-
const isOptionalStage = (stage) => !stage.required;
|
|
253
|
-
const usesReadOnlyRunPolicy = (stage) => stage.runPolicy === "read-only";
|
|
254
|
-
const usesLocalOutputRunPolicy = (stage) => stage.runPolicy === "writes-local-file";
|
|
255
|
-
const hasOutputFile = (stage) => stage.outputFiles.length > 0;
|
|
256
|
-
const callsExternalSystem = (stage) => stage.externalCalls;
|
|
257
|
-
const mutatesTargetRepo = (stage) => stage.targetRepoMutation;
|
|
258
269
|
const commandStages = stages.filter(hasCommands);
|
|
259
270
|
const stageActionRows = stages.map((stage) => {
|
|
260
271
|
const prerequisiteKeys = getStageActionPrerequisiteKeys(stage);
|
|
@@ -372,803 +383,32 @@ export function buildBundleHandoffOperatorRunbook(commandManifest) {
|
|
|
372
383
|
...actionExecutionSummary,
|
|
373
384
|
};
|
|
374
385
|
});
|
|
375
|
-
const
|
|
376
|
-
|
|
386
|
+
const stageIdentityMaps = buildStageIdentityMaps(stages);
|
|
387
|
+
const stageActionStatusMaps = buildStageActionStatusMaps(stageActionRows);
|
|
388
|
+
const stageActionDependencyMaps = buildStageActionDependencyMaps(stageActionRows);
|
|
389
|
+
const stageActionEvidenceMaps = buildStageActionEvidenceMaps(stageActionRows);
|
|
390
|
+
const stageActionEvidenceCaptureMaps = buildStageActionEvidenceCaptureMaps(stageActionRows);
|
|
391
|
+
const stageHumanLineMaps = buildStageHumanLineMaps(
|
|
392
|
+
stages,
|
|
393
|
+
stageActionRows,
|
|
394
|
+
stageActionEvidenceCaptureMaps.stageActionEvidenceCaptureInitialValidationChecklistSummaryByKey,
|
|
377
395
|
);
|
|
378
|
-
const
|
|
379
|
-
const
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
const
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
const stageActionStatusByKey = actionFieldByKey("actionStatus");
|
|
393
|
-
const stageActionStatusLabelsByKey = actionFieldByKey("actionStatusLabel");
|
|
394
|
-
const stageActionStatusToneByKey = actionFieldByKey("actionStatusTone");
|
|
395
|
-
const stageActionDisabledReasonCodeByKey = actionFieldByKey("actionDisabledReasonCode");
|
|
396
|
-
const stageActionDisabledReasonByKey = actionFieldByKey("actionDisabledReason");
|
|
397
|
-
const stageActionPrerequisiteKeysByKey = actionFieldByKey("actionPrerequisiteKeys");
|
|
398
|
-
const stageActionPrerequisiteLabelsByKey = actionFieldByKey("actionPrerequisiteLabels");
|
|
399
|
-
const stageActionPrerequisiteCountByKey = actionFieldByKey("actionPrerequisiteCount");
|
|
400
|
-
const stageActionHasPrerequisitesByKey = actionFieldByKey("actionHasPrerequisites");
|
|
401
|
-
const stageActionDependencyReasonCodeByKey = actionFieldByKey("actionDependencyReasonCode");
|
|
402
|
-
const stageActionDependencyReasonByKey = actionFieldByKey("actionDependencyReason");
|
|
403
|
-
const stageActionBlockedStageKeysByKey = actionFieldByKey("actionBlockedStageKeys");
|
|
404
|
-
const stageActionBlockedStageLabelsByKey = actionFieldByKey("actionBlockedStageLabels");
|
|
405
|
-
const stageActionBlockedStageCountByKey = actionFieldByKey("actionBlockedStageCount");
|
|
406
|
-
const stageActionBlocksStagesByKey = actionFieldByKey("actionBlocksStages");
|
|
407
|
-
const stageActionCompletionCriteriaByKey = actionFieldByKey("actionCompletionCriteria");
|
|
408
|
-
const stageActionCompletionCriteriaCountByKey = actionFieldByKey("actionCompletionCriteriaCount");
|
|
409
|
-
const stageActionHasCompletionCriteriaByKey = actionFieldByKey("actionHasCompletionCriteria");
|
|
410
|
-
const stageActionEvidenceRequirementsByKey = actionFieldByKey("actionEvidenceRequirements");
|
|
411
|
-
const stageActionEvidenceRequirementCountByKey = actionFieldByKey("actionEvidenceRequirementCount");
|
|
412
|
-
const stageActionRequiresEvidenceByKey = actionFieldByKey("actionRequiresEvidence");
|
|
413
|
-
const stageActionEvidenceTargetByKey = actionFieldByKey("actionEvidenceTarget");
|
|
414
|
-
const stageActionEvidenceTargetLabelByKey = actionFieldByKey("actionEvidenceTargetLabel");
|
|
415
|
-
const stageActionEvidenceCaptureFieldsByKey = actionFieldByKey("actionEvidenceCaptureFields");
|
|
416
|
-
const stageActionEvidenceCaptureFieldKeysByKey = actionFieldByKey("actionEvidenceCaptureFieldKeys");
|
|
417
|
-
const stageActionEvidenceCaptureFieldLabelsByKey = actionFieldByKey("actionEvidenceCaptureFieldLabels");
|
|
418
|
-
const stageActionEvidenceCaptureFieldPlaceholdersByKey = actionFieldByKey("actionEvidenceCaptureFieldPlaceholders");
|
|
419
|
-
const stageActionEvidenceCaptureFieldRequirementLabelsByKey = actionFieldByKey("actionEvidenceCaptureFieldRequirementLabels");
|
|
420
|
-
const stageActionEvidenceCaptureFieldAriaLabelsByKey = actionFieldByKey("actionEvidenceCaptureFieldAriaLabels");
|
|
421
|
-
const stageActionEvidenceCaptureFieldHelpTextsByKey = actionFieldByKey("actionEvidenceCaptureFieldHelpTexts");
|
|
422
|
-
const stageActionEvidenceCaptureFieldSectionKeysByKey = actionFieldByKey("actionEvidenceCaptureFieldSectionKeys");
|
|
423
|
-
const stageActionEvidenceCaptureFieldSectionLabelsByKey = actionFieldByKey("actionEvidenceCaptureFieldSectionLabels");
|
|
424
|
-
const stageActionEvidenceCaptureSectionKeysByKey = actionFieldByKey("actionEvidenceCaptureSectionKeys");
|
|
425
|
-
const stageActionEvidenceCaptureSectionLabelsByKey = actionFieldByKey("actionEvidenceCaptureSectionLabels");
|
|
426
|
-
const stageActionEvidenceCaptureSectionCountByKey = actionFieldByKey("actionEvidenceCaptureSectionCount");
|
|
427
|
-
const stageActionEvidenceCaptureFieldPayloadNamespacesByKey = actionFieldByKey("actionEvidenceCaptureFieldPayloadNamespaces");
|
|
428
|
-
const stageActionEvidenceCaptureFieldPayloadPathsByKey = actionFieldByKey("actionEvidenceCaptureFieldPayloadPaths");
|
|
429
|
-
const stageActionEvidenceCapturePayloadNamespacesByKey = actionFieldByKey("actionEvidenceCapturePayloadNamespaces");
|
|
430
|
-
const stageActionEvidenceCapturePayloadNamespaceCountByKey = actionFieldByKey("actionEvidenceCapturePayloadNamespaceCount");
|
|
431
|
-
const stageActionEvidenceCapturePayloadTemplateByKey = actionFieldByKey("actionEvidenceCapturePayloadTemplate");
|
|
432
|
-
const stageActionEvidenceCapturePayloadFlatTemplateByKey = actionFieldByKey("actionEvidenceCapturePayloadFlatTemplate");
|
|
433
|
-
const stageActionEvidenceCapturePayloadBindingsByKey = actionFieldByKey("actionEvidenceCapturePayloadBindings");
|
|
434
|
-
const stageActionEvidenceCaptureValidationSpecsByKey = actionFieldByKey("actionEvidenceCaptureValidationSpecs");
|
|
435
|
-
const stageActionEvidenceCaptureInitialValidationStatesByKey = actionFieldByKey("actionEvidenceCaptureInitialValidationStates");
|
|
436
|
-
const stageActionEvidenceCaptureInitialValidationDisplayMetadataByKey = actionFieldByKey("actionEvidenceCaptureInitialValidationDisplayMetadata");
|
|
437
|
-
const stageActionEvidenceCaptureInitialValidationChecklistByKey = actionFieldByKey("actionEvidenceCaptureInitialValidationChecklist");
|
|
438
|
-
const stageActionEvidenceCaptureInitialValidationChecklistSummaryByKey = actionFieldByKey("actionEvidenceCaptureInitialValidationChecklistSummary");
|
|
439
|
-
const stageActionEvidenceCaptureInitialValidationSummaryByKey = actionFieldByKey("actionEvidenceCaptureInitialValidationSummary");
|
|
440
|
-
const stageHumanLines = stages.map((stage) => formatBundleHandoffOperatorRunbookStageLine(
|
|
441
|
-
stage,
|
|
442
|
-
stageActionEvidenceCaptureInitialValidationChecklistSummaryByKey[stage.key],
|
|
443
|
-
));
|
|
444
|
-
const stageHumanLineByKey = byKey(stages, (_stage, index) => stageHumanLines[index]);
|
|
445
|
-
const stageHumanLineDisplayRows = stages.map((stage, index) => {
|
|
446
|
-
const actionRow = stageActionRows[index];
|
|
447
|
-
const evidenceProgress = actionRow.actionEvidenceCaptureInitialValidationChecklistSummary;
|
|
448
|
-
const displayRowIdentity = {
|
|
449
|
-
step: stage.step,
|
|
450
|
-
key: stage.key,
|
|
451
|
-
label: stage.label,
|
|
452
|
-
line: stageHumanLines[index],
|
|
453
|
-
};
|
|
454
|
-
const displayRowExecutionContext = {
|
|
455
|
-
required: stage.required,
|
|
456
|
-
manual: isManualStage(stage),
|
|
457
|
-
commandCount: stage.commandCount,
|
|
458
|
-
};
|
|
459
|
-
const displayRowActionStatus = {
|
|
460
|
-
actionType: actionRow.actionType,
|
|
461
|
-
actionLabel: actionRow.actionLabel,
|
|
462
|
-
actionStatus: actionRow.actionStatus,
|
|
463
|
-
actionStatusLabel: actionRow.actionStatusLabel,
|
|
464
|
-
actionStatusTone: actionRow.actionStatusTone,
|
|
465
|
-
};
|
|
466
|
-
const displayRowEvidenceProgress = {
|
|
467
|
-
hasEvidenceProgress: evidenceProgress.itemCount > 0,
|
|
468
|
-
evidenceProgressStatus: evidenceProgress.status || "",
|
|
469
|
-
evidenceProgressStatusLabel: evidenceProgress.statusLabel || "",
|
|
470
|
-
evidenceProgressStatusTone: evidenceProgress.statusTone || "",
|
|
471
|
-
evidenceProgressIconName: evidenceProgress.iconName || "",
|
|
472
|
-
evidenceProgressLabel: evidenceProgress.progressLabel || "",
|
|
473
|
-
evidenceCompletionPercent: evidenceProgress.completionPercent ?? 0,
|
|
474
|
-
firstUncheckedEvidenceItemLabel: evidenceProgress.firstUncheckedItemLabel || "",
|
|
475
|
-
};
|
|
476
|
-
return {
|
|
477
|
-
...displayRowIdentity,
|
|
478
|
-
...displayRowExecutionContext,
|
|
479
|
-
...displayRowActionStatus,
|
|
480
|
-
...displayRowEvidenceProgress,
|
|
481
|
-
};
|
|
396
|
+
const stageExecutionMaps = buildStageExecutionMaps(stages);
|
|
397
|
+
const { nextActionSummary, nextStepSummary } = buildNextStepState({
|
|
398
|
+
stageByKey: stageIdentityMaps.stageByKey,
|
|
399
|
+
commandByKey,
|
|
400
|
+
stageActionRows,
|
|
401
|
+
stageHumanLineByKey: stageHumanLineMaps.stageHumanLineByKey,
|
|
402
|
+
stageHumanLineDisplayRowByKey: stageHumanLineMaps.stageHumanLineDisplayRowByKey,
|
|
403
|
+
});
|
|
404
|
+
const actionSummary = buildActionSummary({
|
|
405
|
+
stages,
|
|
406
|
+
commandStages,
|
|
407
|
+
stageActionRows,
|
|
408
|
+
stageHumanLineMaps,
|
|
409
|
+
nextActionSummary,
|
|
482
410
|
});
|
|
483
|
-
const stageHumanLineDisplayRowByKey = byKey(stageHumanLineDisplayRows, (row) => row);
|
|
484
411
|
const countBy = (predicate) => stages.filter(predicate).length;
|
|
485
|
-
const stageKeysBy = (predicate) => stages.filter(predicate).map((stage) => stage.key);
|
|
486
|
-
const countActions = (predicate) => stageActionRows.filter(predicate).length;
|
|
487
|
-
const firstActionKey = (predicate) => stageActionRows.find(predicate)?.key || "";
|
|
488
|
-
const displayRowKeysBy = (predicate) => stageHumanLineDisplayRows.filter(predicate).map((row) => row.key);
|
|
489
|
-
const countDisplayRows = (predicate) => stageHumanLineDisplayRows.filter(predicate).length;
|
|
490
|
-
const firstDisplayRowKey = (predicate) => stageHumanLineDisplayRows.find(predicate)?.key || "";
|
|
491
|
-
const isRequiredDisplayRow = (row) => row.required;
|
|
492
|
-
const isOptionalDisplayRow = (row) => !row.required;
|
|
493
|
-
const hasCommandDisplayRow = (row) => row.commandCount > 0;
|
|
494
|
-
const isManualDisplayRow = (row) => row.manual;
|
|
495
|
-
const hasReadyActionStatus = (row) => row.actionStatus === "ready";
|
|
496
|
-
const hasOptionalActionStatus = (row) => row.actionStatus === "optional";
|
|
497
|
-
const hasManualActionStatus = (row) => row.actionStatus === "manual";
|
|
498
|
-
const hasBlockedActionStatus = (row) => row.actionStatus === "blocked";
|
|
499
|
-
const hasDisplayRowEvidenceProgress = (row) => row.hasEvidenceProgress;
|
|
500
|
-
const hasBlockedDisplayRowEvidenceProgress = (row) => row.evidenceProgressStatus === "blocked";
|
|
501
|
-
const hasReadyDisplayRowEvidenceProgress = (row) => row.evidenceProgressStatus === "ready";
|
|
502
|
-
const hasEvidenceProgress = (stage) => (
|
|
503
|
-
stage.actionEvidenceCaptureInitialValidationChecklistSummary.itemCount > 0
|
|
504
|
-
);
|
|
505
|
-
const hasBlockedEvidenceProgress = (stage) => (
|
|
506
|
-
stage.actionEvidenceCaptureInitialValidationChecklistSummary.status === "blocked"
|
|
507
|
-
);
|
|
508
|
-
const hasReadyEvidenceProgress = (stage) => (
|
|
509
|
-
stage.actionEvidenceCaptureInitialValidationChecklistSummary.status === "ready"
|
|
510
|
-
);
|
|
511
|
-
const stageHumanLineDisplayRowKeysByActionStatus = {
|
|
512
|
-
ready: displayRowKeysBy(hasReadyActionStatus),
|
|
513
|
-
optional: displayRowKeysBy(hasOptionalActionStatus),
|
|
514
|
-
manual: displayRowKeysBy(hasManualActionStatus),
|
|
515
|
-
blocked: displayRowKeysBy(hasBlockedActionStatus),
|
|
516
|
-
};
|
|
517
|
-
const stageHumanLineDisplayRowKeysByEvidenceProgressStatus = {
|
|
518
|
-
blocked: displayRowKeysBy(hasBlockedDisplayRowEvidenceProgress),
|
|
519
|
-
ready: displayRowKeysBy(hasReadyDisplayRowEvidenceProgress),
|
|
520
|
-
};
|
|
521
|
-
const stageHumanLineDisplayRowCountSummary = {
|
|
522
|
-
count: stageHumanLineDisplayRows.length,
|
|
523
|
-
byKeyCount: Object.keys(stageHumanLineDisplayRowByKey).length,
|
|
524
|
-
requiredCount: countDisplayRows(isRequiredDisplayRow),
|
|
525
|
-
optionalCount: countDisplayRows(isOptionalDisplayRow),
|
|
526
|
-
commandCount: countDisplayRows(hasCommandDisplayRow),
|
|
527
|
-
manualCount: countDisplayRows(isManualDisplayRow),
|
|
528
|
-
};
|
|
529
|
-
const stageHumanLineDisplayRowActionStatusSummary = {
|
|
530
|
-
readyActionStatusCount: countDisplayRows(hasReadyActionStatus),
|
|
531
|
-
optionalActionStatusCount: countDisplayRows(hasOptionalActionStatus),
|
|
532
|
-
manualActionStatusCount: countDisplayRows(hasManualActionStatus),
|
|
533
|
-
blockedActionStatusCount: countDisplayRows(hasBlockedActionStatus),
|
|
534
|
-
};
|
|
535
|
-
const stageHumanLineDisplayRowEvidenceProgressSummary = {
|
|
536
|
-
evidenceProgressCount: countDisplayRows(hasDisplayRowEvidenceProgress),
|
|
537
|
-
blockedEvidenceProgressCount: countDisplayRows(hasBlockedDisplayRowEvidenceProgress),
|
|
538
|
-
readyEvidenceProgressCount: countDisplayRows(hasReadyDisplayRowEvidenceProgress),
|
|
539
|
-
};
|
|
540
|
-
const stageHumanLineDisplayRowFirstKeySummary = {
|
|
541
|
-
firstRowKey: stageHumanLineDisplayRows[0]?.key || "",
|
|
542
|
-
firstReadyActionRowKey: firstDisplayRowKey(hasReadyActionStatus),
|
|
543
|
-
firstOptionalActionRowKey: firstDisplayRowKey(hasOptionalActionStatus),
|
|
544
|
-
firstManualActionRowKey: firstDisplayRowKey(hasManualActionStatus),
|
|
545
|
-
firstBlockedEvidenceProgressRowKey: firstDisplayRowKey(hasBlockedDisplayRowEvidenceProgress),
|
|
546
|
-
firstReadyEvidenceProgressRowKey: firstDisplayRowKey(hasReadyDisplayRowEvidenceProgress),
|
|
547
|
-
};
|
|
548
|
-
const stageHumanLineDisplayRowSummary = {
|
|
549
|
-
...stageHumanLineDisplayRowCountSummary,
|
|
550
|
-
...stageHumanLineDisplayRowActionStatusSummary,
|
|
551
|
-
...stageHumanLineDisplayRowEvidenceProgressSummary,
|
|
552
|
-
...stageHumanLineDisplayRowFirstKeySummary,
|
|
553
|
-
};
|
|
554
|
-
const stageHumanLineCountSummary = {
|
|
555
|
-
count: stageHumanLines.length,
|
|
556
|
-
byKeyCount: Object.keys(stageHumanLineByKey).length,
|
|
557
|
-
requiredCount: countBy(isRequiredStage),
|
|
558
|
-
optionalCount: countBy(isOptionalStage),
|
|
559
|
-
commandCount: countBy(hasCommands),
|
|
560
|
-
manualCount: countBy(isManualStage),
|
|
561
|
-
};
|
|
562
|
-
const stageHumanLineEvidenceProgressSummary = {
|
|
563
|
-
evidenceProgressCount: countActions(hasEvidenceProgress),
|
|
564
|
-
blockedEvidenceProgressCount: countActions(hasBlockedEvidenceProgress),
|
|
565
|
-
readyEvidenceProgressCount: countActions(hasReadyEvidenceProgress),
|
|
566
|
-
};
|
|
567
|
-
const stageHumanLineFirstValueSummary = {
|
|
568
|
-
firstStageKey: stages[0]?.key || "",
|
|
569
|
-
firstLine: stageHumanLines[0] || "",
|
|
570
|
-
firstEvidenceProgressStageKey: firstActionKey(hasEvidenceProgress),
|
|
571
|
-
firstBlockedEvidenceProgressStageKey: firstActionKey(hasBlockedEvidenceProgress),
|
|
572
|
-
};
|
|
573
|
-
const stageHumanLineSummary = {
|
|
574
|
-
...stageHumanLineCountSummary,
|
|
575
|
-
...stageHumanLineEvidenceProgressSummary,
|
|
576
|
-
...stageHumanLineFirstValueSummary,
|
|
577
|
-
};
|
|
578
|
-
const stageActionEvidenceCaptureFieldInputTypesByKey = actionFieldByKey("actionEvidenceCaptureFieldInputTypes");
|
|
579
|
-
const stageActionEvidenceCaptureFieldValueShapesByKey = actionFieldByKey("actionEvidenceCaptureFieldValueShapes");
|
|
580
|
-
const stageActionEvidenceCaptureFieldAcceptsMultipleByKey = actionFieldByKey("actionEvidenceCaptureFieldAcceptsMultiple");
|
|
581
|
-
const stageActionEvidenceCaptureFieldDefaultValuesByKey = actionFieldByKey("actionEvidenceCaptureFieldDefaultValues");
|
|
582
|
-
const stageActionEvidenceCaptureFieldEmptyValuesByKey = actionFieldByKey("actionEvidenceCaptureFieldEmptyValues");
|
|
583
|
-
const stageActionEvidenceCaptureFieldValidationRulesByKey = actionFieldByKey("actionEvidenceCaptureFieldValidationRules");
|
|
584
|
-
const stageActionEvidenceCaptureFieldMinLengthsByKey = actionFieldByKey("actionEvidenceCaptureFieldMinLengths");
|
|
585
|
-
const stageActionEvidenceCaptureFieldExamplesByKey = actionFieldByKey("actionEvidenceCaptureFieldExamples");
|
|
586
|
-
const stageActionEvidenceCaptureFieldValidationHintsByKey = actionFieldByKey("actionEvidenceCaptureFieldValidationHints");
|
|
587
|
-
const stageActionRequiredEvidenceCaptureFieldKeysByKey = actionFieldByKey("actionRequiredEvidenceCaptureFieldKeys");
|
|
588
|
-
const stageActionOptionalEvidenceCaptureFieldKeysByKey = actionFieldByKey("actionOptionalEvidenceCaptureFieldKeys");
|
|
589
|
-
const stageActionEvidenceCaptureFieldCountByKey = actionFieldByKey("actionEvidenceCaptureFieldCount");
|
|
590
|
-
const stageActionRequiredEvidenceCaptureFieldCountByKey = actionFieldByKey("actionRequiredEvidenceCaptureFieldCount");
|
|
591
|
-
const stageActionOptionalEvidenceCaptureFieldCountByKey = actionFieldByKey("actionOptionalEvidenceCaptureFieldCount");
|
|
592
|
-
const stageActionHasEvidenceCaptureFieldsByKey = actionFieldByKey("actionHasEvidenceCaptureFields");
|
|
593
|
-
const stageKindByKey = stageFieldByKey("kind");
|
|
594
|
-
const stageRequiredByKey = stageFieldByKey("required");
|
|
595
|
-
const stageRunPolicyByKey = stageFieldByKey("runPolicy");
|
|
596
|
-
const stageSafetyLevelByKey = stageFieldByKey("safetyLevel");
|
|
597
|
-
const stageCommandCountByKey = stageFieldByKey("commandCount");
|
|
598
|
-
const stageCommandKeysByKey = stageFieldByKey("commandKeys");
|
|
599
|
-
const stageCommandLabelsByKey = commandListByKey((command) => command.label);
|
|
600
|
-
const stageCommandStringsByKey = commandListByKey((command) => command.command);
|
|
601
|
-
const stageCommandArgsByKey = commandListByKey((command) => command.commandArgs);
|
|
602
|
-
const stageCommandRunPoliciesByKey = commandListByKey((command) => command.runPolicy);
|
|
603
|
-
const stageCommandSafetyLevelsByKey = commandListByKey((command) => command.safety?.safetyLevel || "");
|
|
604
|
-
const stageOutputFilesByKey = stageFieldByKey("outputFiles");
|
|
605
|
-
const stageHasCommandsByKey = byKey(stages, hasCommands);
|
|
606
|
-
const stageManualByKey = byKey(stages, isManualStage);
|
|
607
|
-
const stageWritesLocalFileByKey = stageFieldByKey("writesLocalFile");
|
|
608
|
-
const stageExternalCallsByKey = stageFieldByKey("externalCalls");
|
|
609
|
-
const stageTargetRepoMutationByKey = stageFieldByKey("targetRepoMutation");
|
|
610
|
-
const commandStageKeys = stageKeysBy(hasCommands);
|
|
611
|
-
const manualStageKeys = stageKeysBy(isManualStage);
|
|
612
|
-
const nextStageKey = "verifySourceBundle";
|
|
613
|
-
const nextCommandKey = "source.bundleCheck.strict";
|
|
614
|
-
const nextStage = stageByKey[nextStageKey] || null;
|
|
615
|
-
const nextStageActionRow = stageActionRows.find((stage) => stage.key === nextStageKey) || null;
|
|
616
|
-
const nextCommandEntry = commandByKey.get(nextCommandKey) || null;
|
|
617
|
-
const nextActionField = (field, fallback = "") => nextStageActionRow?.[field] || fallback;
|
|
618
|
-
const nextActionListField = (field) => nextActionField(field, []);
|
|
619
|
-
const nextActionObjectField = (field) => nextActionField(field, {});
|
|
620
|
-
const nextActionNumberField = (field) => nextActionField(field, 0);
|
|
621
|
-
const nextActionBooleanField = (field) => nextStageActionRow?.[field] === true;
|
|
622
|
-
const nextStageField = (field, fallback = "") => nextStage?.[field] || fallback;
|
|
623
|
-
const nextStageListField = (field) => nextStageField(field, []);
|
|
624
|
-
const nextStageBooleanField = (field) => nextStage?.[field] === true;
|
|
625
|
-
const nextStageCommandValues = (getValue) => nextStage?.commands?.map(getValue) || [];
|
|
626
|
-
const nextActionEvidenceProgressSummary = nextActionObjectField("actionEvidenceCaptureInitialValidationChecklistSummary");
|
|
627
|
-
const nextStageHumanLine = nextStage ? stageHumanLineByKey[nextStage.key] || "" : "";
|
|
628
|
-
const nextStageHumanLineDisplayRow = nextStage ? stageHumanLineDisplayRowByKey[nextStage.key] || {} : {};
|
|
629
|
-
const nextStageCommandCount = nextStageField("commandCount", 0);
|
|
630
|
-
const nextCommandField = (field, fallback = "") => nextCommandEntry?.[field] || fallback;
|
|
631
|
-
const nextCommandListField = (field) => nextCommandField(field, []);
|
|
632
|
-
const nextCommandSafety = nextCommandEntry?.safety || null;
|
|
633
|
-
const nextStageHumanLineSummary = nextStage ? {
|
|
634
|
-
stageKey: nextStage.key,
|
|
635
|
-
line: nextStageHumanLine,
|
|
636
|
-
hasEvidenceProgress: (nextActionEvidenceProgressSummary.itemCount || 0) > 0,
|
|
637
|
-
evidenceProgressStatus: nextActionEvidenceProgressSummary.status || "",
|
|
638
|
-
evidenceProgressLabel: nextActionEvidenceProgressSummary.progressLabel || "",
|
|
639
|
-
firstUncheckedEvidenceItemLabel: nextActionEvidenceProgressSummary.firstUncheckedItemLabel || "",
|
|
640
|
-
} : {};
|
|
641
|
-
const nextStageIdentity = {
|
|
642
|
-
nextStageLabel: nextStageField("label"),
|
|
643
|
-
nextStageSummary: nextStageField("reason"),
|
|
644
|
-
nextStageHumanLine,
|
|
645
|
-
nextStageHumanLineDisplayRow,
|
|
646
|
-
nextStageHumanLineSummary,
|
|
647
|
-
};
|
|
648
|
-
const nextStageActionStatus = {
|
|
649
|
-
nextStageActionType: nextActionField("actionType"),
|
|
650
|
-
nextStageActionLabel: nextActionField("actionLabel"),
|
|
651
|
-
nextStageActionInstruction: nextActionField("actionInstruction"),
|
|
652
|
-
nextStageActionButtonLabel: nextActionField("actionButtonLabel"),
|
|
653
|
-
nextStageActionAffordance: nextActionField("actionAffordance"),
|
|
654
|
-
nextStageActionEnabled: nextActionBooleanField("actionEnabled"),
|
|
655
|
-
nextStageActionStatus: nextActionField("actionStatus"),
|
|
656
|
-
nextStageActionStatusLabel: nextActionField("actionStatusLabel"),
|
|
657
|
-
nextStageActionStatusTone: nextActionField("actionStatusTone"),
|
|
658
|
-
nextStageActionDisabledReasonCode: nextActionField("actionDisabledReasonCode"),
|
|
659
|
-
nextStageActionDisabledReason: nextActionField("actionDisabledReason"),
|
|
660
|
-
};
|
|
661
|
-
const nextStageActionDependencies = {
|
|
662
|
-
nextStageActionPrerequisiteKeys: nextActionListField("actionPrerequisiteKeys"),
|
|
663
|
-
nextStageActionPrerequisiteLabels: nextActionListField("actionPrerequisiteLabels"),
|
|
664
|
-
nextStageActionPrerequisiteCount: nextActionNumberField("actionPrerequisiteCount"),
|
|
665
|
-
nextStageActionHasPrerequisites: nextActionBooleanField("actionHasPrerequisites"),
|
|
666
|
-
nextStageActionDependencyReasonCode: nextActionField("actionDependencyReasonCode"),
|
|
667
|
-
nextStageActionDependencyReason: nextActionField("actionDependencyReason"),
|
|
668
|
-
nextStageActionBlockedStageKeys: nextActionListField("actionBlockedStageKeys"),
|
|
669
|
-
nextStageActionBlockedStageLabels: nextActionListField("actionBlockedStageLabels"),
|
|
670
|
-
nextStageActionBlockedStageCount: nextActionNumberField("actionBlockedStageCount"),
|
|
671
|
-
nextStageActionBlocksStages: nextActionBooleanField("actionBlocksStages"),
|
|
672
|
-
nextStageActionCompletionCriteria: nextActionListField("actionCompletionCriteria"),
|
|
673
|
-
nextStageActionCompletionCriteriaCount: nextActionNumberField("actionCompletionCriteriaCount"),
|
|
674
|
-
nextStageActionHasCompletionCriteria: nextActionBooleanField("actionHasCompletionCriteria"),
|
|
675
|
-
};
|
|
676
|
-
const nextStageActionEvidence = {
|
|
677
|
-
nextStageActionEvidenceRequirements: nextActionListField("actionEvidenceRequirements"),
|
|
678
|
-
nextStageActionEvidenceRequirementCount: nextActionNumberField("actionEvidenceRequirementCount"),
|
|
679
|
-
nextStageActionRequiresEvidence: nextActionBooleanField("actionRequiresEvidence"),
|
|
680
|
-
nextStageActionEvidenceTarget: nextActionField("actionEvidenceTarget"),
|
|
681
|
-
nextStageActionEvidenceTargetLabel: nextActionField("actionEvidenceTargetLabel"),
|
|
682
|
-
};
|
|
683
|
-
const nextStageEvidenceCaptureFieldMetadata = {
|
|
684
|
-
nextStageActionEvidenceCaptureFields: nextActionListField("actionEvidenceCaptureFields"),
|
|
685
|
-
nextStageActionEvidenceCaptureFieldKeys: nextActionListField("actionEvidenceCaptureFieldKeys"),
|
|
686
|
-
nextStageActionEvidenceCaptureFieldLabels: nextActionListField("actionEvidenceCaptureFieldLabels"),
|
|
687
|
-
nextStageActionEvidenceCaptureFieldPlaceholders: nextActionListField("actionEvidenceCaptureFieldPlaceholders"),
|
|
688
|
-
nextStageActionEvidenceCaptureFieldRequirementLabels: nextActionListField("actionEvidenceCaptureFieldRequirementLabels"),
|
|
689
|
-
nextStageActionEvidenceCaptureFieldAriaLabels: nextActionListField("actionEvidenceCaptureFieldAriaLabels"),
|
|
690
|
-
nextStageActionEvidenceCaptureFieldHelpTexts: nextActionListField("actionEvidenceCaptureFieldHelpTexts"),
|
|
691
|
-
nextStageActionEvidenceCaptureFieldSectionKeys: nextActionListField("actionEvidenceCaptureFieldSectionKeys"),
|
|
692
|
-
nextStageActionEvidenceCaptureFieldSectionLabels: nextActionListField("actionEvidenceCaptureFieldSectionLabels"),
|
|
693
|
-
nextStageActionEvidenceCaptureSectionKeys: nextActionListField("actionEvidenceCaptureSectionKeys"),
|
|
694
|
-
nextStageActionEvidenceCaptureSectionLabels: nextActionListField("actionEvidenceCaptureSectionLabels"),
|
|
695
|
-
nextStageActionEvidenceCaptureSectionCount: nextActionNumberField("actionEvidenceCaptureSectionCount"),
|
|
696
|
-
};
|
|
697
|
-
const nextStageEvidenceCapturePayload = {
|
|
698
|
-
nextStageActionEvidenceCaptureFieldPayloadNamespaces: nextActionListField("actionEvidenceCaptureFieldPayloadNamespaces"),
|
|
699
|
-
nextStageActionEvidenceCaptureFieldPayloadPaths: nextActionListField("actionEvidenceCaptureFieldPayloadPaths"),
|
|
700
|
-
nextStageActionEvidenceCapturePayloadNamespaces: nextActionListField("actionEvidenceCapturePayloadNamespaces"),
|
|
701
|
-
nextStageActionEvidenceCapturePayloadNamespaceCount: nextActionNumberField("actionEvidenceCapturePayloadNamespaceCount"),
|
|
702
|
-
nextStageActionEvidenceCapturePayloadTemplate: nextActionObjectField("actionEvidenceCapturePayloadTemplate"),
|
|
703
|
-
nextStageActionEvidenceCapturePayloadFlatTemplate: nextActionObjectField("actionEvidenceCapturePayloadFlatTemplate"),
|
|
704
|
-
nextStageActionEvidenceCapturePayloadBindings: nextActionListField("actionEvidenceCapturePayloadBindings"),
|
|
705
|
-
};
|
|
706
|
-
const nextStageEvidenceCaptureValidation = {
|
|
707
|
-
nextStageActionEvidenceCaptureValidationSpecs: nextActionListField("actionEvidenceCaptureValidationSpecs"),
|
|
708
|
-
nextStageActionEvidenceCaptureInitialValidationStates: nextActionListField("actionEvidenceCaptureInitialValidationStates"),
|
|
709
|
-
nextStageActionEvidenceCaptureInitialValidationDisplayMetadata: nextActionListField("actionEvidenceCaptureInitialValidationDisplayMetadata"),
|
|
710
|
-
nextStageActionEvidenceCaptureInitialValidationChecklist: nextActionListField("actionEvidenceCaptureInitialValidationChecklist"),
|
|
711
|
-
nextStageActionEvidenceCaptureInitialValidationChecklistSummary: nextActionObjectField("actionEvidenceCaptureInitialValidationChecklistSummary"),
|
|
712
|
-
nextStageActionEvidenceCaptureInitialValidationSummary: nextActionObjectField("actionEvidenceCaptureInitialValidationSummary"),
|
|
713
|
-
};
|
|
714
|
-
const nextStageEvidenceCaptureFieldRules = {
|
|
715
|
-
nextStageActionEvidenceCaptureFieldInputTypes: nextActionListField("actionEvidenceCaptureFieldInputTypes"),
|
|
716
|
-
nextStageActionEvidenceCaptureFieldValueShapes: nextActionListField("actionEvidenceCaptureFieldValueShapes"),
|
|
717
|
-
nextStageActionEvidenceCaptureFieldAcceptsMultiple: nextActionListField("actionEvidenceCaptureFieldAcceptsMultiple"),
|
|
718
|
-
nextStageActionEvidenceCaptureFieldDefaultValues: nextActionListField("actionEvidenceCaptureFieldDefaultValues"),
|
|
719
|
-
nextStageActionEvidenceCaptureFieldEmptyValues: nextActionListField("actionEvidenceCaptureFieldEmptyValues"),
|
|
720
|
-
nextStageActionEvidenceCaptureFieldValidationRules: nextActionListField("actionEvidenceCaptureFieldValidationRules"),
|
|
721
|
-
nextStageActionEvidenceCaptureFieldMinLengths: nextActionListField("actionEvidenceCaptureFieldMinLengths"),
|
|
722
|
-
nextStageActionEvidenceCaptureFieldExamples: nextActionListField("actionEvidenceCaptureFieldExamples"),
|
|
723
|
-
nextStageActionEvidenceCaptureFieldValidationHints: nextActionListField("actionEvidenceCaptureFieldValidationHints"),
|
|
724
|
-
nextStageActionRequiredEvidenceCaptureFieldKeys: nextActionListField("actionRequiredEvidenceCaptureFieldKeys"),
|
|
725
|
-
nextStageActionOptionalEvidenceCaptureFieldKeys: nextActionListField("actionOptionalEvidenceCaptureFieldKeys"),
|
|
726
|
-
};
|
|
727
|
-
const nextStageEvidenceCaptureFieldCounts = {
|
|
728
|
-
nextStageActionEvidenceCaptureFieldCount: nextActionNumberField("actionEvidenceCaptureFieldCount"),
|
|
729
|
-
nextStageActionRequiredEvidenceCaptureFieldCount: nextActionNumberField("actionRequiredEvidenceCaptureFieldCount"),
|
|
730
|
-
nextStageActionOptionalEvidenceCaptureFieldCount: nextActionNumberField("actionOptionalEvidenceCaptureFieldCount"),
|
|
731
|
-
nextStageActionHasEvidenceCaptureFields: nextActionBooleanField("actionHasEvidenceCaptureFields"),
|
|
732
|
-
};
|
|
733
|
-
const nextStageEvidenceCapture = {
|
|
734
|
-
...nextStageEvidenceCaptureFieldMetadata,
|
|
735
|
-
...nextStageEvidenceCapturePayload,
|
|
736
|
-
...nextStageEvidenceCaptureValidation,
|
|
737
|
-
...nextStageEvidenceCaptureFieldRules,
|
|
738
|
-
...nextStageEvidenceCaptureFieldCounts,
|
|
739
|
-
};
|
|
740
|
-
const nextStageClassification = {
|
|
741
|
-
nextStageKind: nextStageField("kind"),
|
|
742
|
-
nextStageRequired: nextStage?.required === true,
|
|
743
|
-
nextStageRunPolicy: nextStageField("runPolicy"),
|
|
744
|
-
nextStageSafetyLevel: nextStageField("safetyLevel"),
|
|
745
|
-
};
|
|
746
|
-
const nextStageCommandMetadata = {
|
|
747
|
-
nextStageCommandCount,
|
|
748
|
-
nextStageCommandLabels: nextStageCommandValues((command) => command.label),
|
|
749
|
-
nextStageCommands: nextStageCommandValues((command) => command.command),
|
|
750
|
-
nextStageCommandArgsList: nextStageCommandValues((command) => command.commandArgs),
|
|
751
|
-
nextStageCommandRunPolicies: nextStageCommandValues((command) => command.runPolicy),
|
|
752
|
-
nextStageCommandSafetyLevels: nextStageCommandValues((command) => command.safety?.safetyLevel || ""),
|
|
753
|
-
};
|
|
754
|
-
const nextStageExecutionContext = {
|
|
755
|
-
nextStageOutputFiles: nextStageListField("outputFiles"),
|
|
756
|
-
nextStageHasCommands: nextStageCommandCount > 0,
|
|
757
|
-
nextStageManual: nextStageCommandCount === 0,
|
|
758
|
-
nextStageWritesLocalFile: nextStageBooleanField("writesLocalFile"),
|
|
759
|
-
nextStageExternalCalls: nextStageBooleanField("externalCalls"),
|
|
760
|
-
nextStageTargetRepoMutation: nextStageBooleanField("targetRepoMutation"),
|
|
761
|
-
nextStageCommandKeys: nextStageListField("commandKeys"),
|
|
762
|
-
};
|
|
763
|
-
const nextStageCommandSummary = {
|
|
764
|
-
...nextStageClassification,
|
|
765
|
-
...nextStageCommandMetadata,
|
|
766
|
-
...nextStageExecutionContext,
|
|
767
|
-
};
|
|
768
|
-
const nextCommandSummary = {
|
|
769
|
-
nextCommand: nextCommandField("command"),
|
|
770
|
-
nextCommandArgs: nextCommandListField("commandArgs"),
|
|
771
|
-
nextCommandRunPolicy: nextCommandField("runPolicy"),
|
|
772
|
-
nextCommandSafetyLevel: nextCommandSafety?.safetyLevel || "",
|
|
773
|
-
nextCommandSafety,
|
|
774
|
-
nextCommandEntry,
|
|
775
|
-
};
|
|
776
|
-
const nextActionCoreSummary = {
|
|
777
|
-
nextActionKey: nextStageKey,
|
|
778
|
-
nextActionType: nextActionField("actionType"),
|
|
779
|
-
nextActionLabel: nextActionField("actionLabel"),
|
|
780
|
-
nextActionEnabled: nextActionBooleanField("actionEnabled"),
|
|
781
|
-
nextActionStatus: nextActionField("actionStatus"),
|
|
782
|
-
nextActionStatusLabel: nextActionField("actionStatusLabel"),
|
|
783
|
-
nextActionStatusTone: nextActionField("actionStatusTone"),
|
|
784
|
-
nextActionDisabledReasonCode: nextActionField("actionDisabledReasonCode"),
|
|
785
|
-
nextActionPrerequisiteKeys: nextActionListField("actionPrerequisiteKeys"),
|
|
786
|
-
nextActionPrerequisiteLabels: nextActionListField("actionPrerequisiteLabels"),
|
|
787
|
-
nextActionPrerequisiteCount: nextActionNumberField("actionPrerequisiteCount"),
|
|
788
|
-
nextActionHasPrerequisites: nextActionBooleanField("actionHasPrerequisites"),
|
|
789
|
-
nextActionDependencyReasonCode: nextActionField("actionDependencyReasonCode"),
|
|
790
|
-
nextActionDependencyReason: nextActionField("actionDependencyReason"),
|
|
791
|
-
nextActionBlockedStageKeys: nextActionListField("actionBlockedStageKeys"),
|
|
792
|
-
nextActionBlockedStageLabels: nextActionListField("actionBlockedStageLabels"),
|
|
793
|
-
nextActionBlockedStageCount: nextActionNumberField("actionBlockedStageCount"),
|
|
794
|
-
nextActionBlocksStages: nextActionBooleanField("actionBlocksStages"),
|
|
795
|
-
nextActionCompletionCriteria: nextActionListField("actionCompletionCriteria"),
|
|
796
|
-
nextActionCompletionCriteriaCount: nextActionNumberField("actionCompletionCriteriaCount"),
|
|
797
|
-
nextActionHasCompletionCriteria: nextActionBooleanField("actionHasCompletionCriteria"),
|
|
798
|
-
nextActionEvidenceRequirements: nextActionListField("actionEvidenceRequirements"),
|
|
799
|
-
nextActionEvidenceRequirementCount: nextActionNumberField("actionEvidenceRequirementCount"),
|
|
800
|
-
nextActionRequiresEvidence: nextActionBooleanField("actionRequiresEvidence"),
|
|
801
|
-
nextActionEvidenceTarget: nextActionField("actionEvidenceTarget"),
|
|
802
|
-
nextActionEvidenceTargetLabel: nextActionField("actionEvidenceTargetLabel"),
|
|
803
|
-
};
|
|
804
|
-
const nextActionEvidenceCaptureFieldMetadata = {
|
|
805
|
-
nextActionEvidenceCaptureFields: nextActionListField("actionEvidenceCaptureFields"),
|
|
806
|
-
nextActionEvidenceCaptureFieldKeys: nextActionListField("actionEvidenceCaptureFieldKeys"),
|
|
807
|
-
nextActionEvidenceCaptureFieldLabels: nextActionListField("actionEvidenceCaptureFieldLabels"),
|
|
808
|
-
nextActionEvidenceCaptureFieldPlaceholders: nextActionListField("actionEvidenceCaptureFieldPlaceholders"),
|
|
809
|
-
nextActionEvidenceCaptureFieldRequirementLabels: nextActionListField("actionEvidenceCaptureFieldRequirementLabels"),
|
|
810
|
-
nextActionEvidenceCaptureFieldAriaLabels: nextActionListField("actionEvidenceCaptureFieldAriaLabels"),
|
|
811
|
-
nextActionEvidenceCaptureFieldHelpTexts: nextActionListField("actionEvidenceCaptureFieldHelpTexts"),
|
|
812
|
-
nextActionEvidenceCaptureFieldSectionKeys: nextActionListField("actionEvidenceCaptureFieldSectionKeys"),
|
|
813
|
-
nextActionEvidenceCaptureFieldSectionLabels: nextActionListField("actionEvidenceCaptureFieldSectionLabels"),
|
|
814
|
-
nextActionEvidenceCaptureSectionKeys: nextActionListField("actionEvidenceCaptureSectionKeys"),
|
|
815
|
-
nextActionEvidenceCaptureSectionLabels: nextActionListField("actionEvidenceCaptureSectionLabels"),
|
|
816
|
-
nextActionEvidenceCaptureSectionCount: nextActionNumberField("actionEvidenceCaptureSectionCount"),
|
|
817
|
-
};
|
|
818
|
-
const nextActionEvidenceCapturePayload = {
|
|
819
|
-
nextActionEvidenceCaptureFieldPayloadNamespaces: nextActionListField("actionEvidenceCaptureFieldPayloadNamespaces"),
|
|
820
|
-
nextActionEvidenceCaptureFieldPayloadPaths: nextActionListField("actionEvidenceCaptureFieldPayloadPaths"),
|
|
821
|
-
nextActionEvidenceCapturePayloadNamespaces: nextActionListField("actionEvidenceCapturePayloadNamespaces"),
|
|
822
|
-
nextActionEvidenceCapturePayloadNamespaceCount: nextActionNumberField("actionEvidenceCapturePayloadNamespaceCount"),
|
|
823
|
-
nextActionEvidenceCapturePayloadTemplate: nextActionObjectField("actionEvidenceCapturePayloadTemplate"),
|
|
824
|
-
nextActionEvidenceCapturePayloadFlatTemplate: nextActionObjectField("actionEvidenceCapturePayloadFlatTemplate"),
|
|
825
|
-
nextActionEvidenceCapturePayloadBindings: nextActionListField("actionEvidenceCapturePayloadBindings"),
|
|
826
|
-
};
|
|
827
|
-
const nextActionEvidenceCaptureValidation = {
|
|
828
|
-
nextActionEvidenceCaptureValidationSpecs: nextActionListField("actionEvidenceCaptureValidationSpecs"),
|
|
829
|
-
nextActionEvidenceCaptureInitialValidationStates: nextActionListField("actionEvidenceCaptureInitialValidationStates"),
|
|
830
|
-
nextActionEvidenceCaptureInitialValidationDisplayMetadata: nextActionListField("actionEvidenceCaptureInitialValidationDisplayMetadata"),
|
|
831
|
-
nextActionEvidenceCaptureInitialValidationChecklist: nextActionListField("actionEvidenceCaptureInitialValidationChecklist"),
|
|
832
|
-
nextActionEvidenceCaptureInitialValidationChecklistSummary: nextActionObjectField("actionEvidenceCaptureInitialValidationChecklistSummary"),
|
|
833
|
-
nextActionEvidenceCaptureInitialValidationSummary: nextActionObjectField("actionEvidenceCaptureInitialValidationSummary"),
|
|
834
|
-
};
|
|
835
|
-
const nextActionEvidenceCaptureFieldRules = {
|
|
836
|
-
nextActionEvidenceCaptureFieldInputTypes: nextActionListField("actionEvidenceCaptureFieldInputTypes"),
|
|
837
|
-
nextActionEvidenceCaptureFieldValueShapes: nextActionListField("actionEvidenceCaptureFieldValueShapes"),
|
|
838
|
-
nextActionEvidenceCaptureFieldAcceptsMultiple: nextActionListField("actionEvidenceCaptureFieldAcceptsMultiple"),
|
|
839
|
-
nextActionEvidenceCaptureFieldDefaultValues: nextActionListField("actionEvidenceCaptureFieldDefaultValues"),
|
|
840
|
-
nextActionEvidenceCaptureFieldEmptyValues: nextActionListField("actionEvidenceCaptureFieldEmptyValues"),
|
|
841
|
-
nextActionEvidenceCaptureFieldValidationRules: nextActionListField("actionEvidenceCaptureFieldValidationRules"),
|
|
842
|
-
nextActionEvidenceCaptureFieldMinLengths: nextActionListField("actionEvidenceCaptureFieldMinLengths"),
|
|
843
|
-
nextActionEvidenceCaptureFieldExamples: nextActionListField("actionEvidenceCaptureFieldExamples"),
|
|
844
|
-
nextActionEvidenceCaptureFieldValidationHints: nextActionListField("actionEvidenceCaptureFieldValidationHints"),
|
|
845
|
-
nextActionRequiredEvidenceCaptureFieldKeys: nextActionListField("actionRequiredEvidenceCaptureFieldKeys"),
|
|
846
|
-
nextActionOptionalEvidenceCaptureFieldKeys: nextActionListField("actionOptionalEvidenceCaptureFieldKeys"),
|
|
847
|
-
};
|
|
848
|
-
const nextActionEvidenceCaptureFieldCounts = {
|
|
849
|
-
nextActionEvidenceCaptureFieldCount: nextActionNumberField("actionEvidenceCaptureFieldCount"),
|
|
850
|
-
nextActionRequiredEvidenceCaptureFieldCount: nextActionNumberField("actionRequiredEvidenceCaptureFieldCount"),
|
|
851
|
-
nextActionOptionalEvidenceCaptureFieldCount: nextActionNumberField("actionOptionalEvidenceCaptureFieldCount"),
|
|
852
|
-
nextActionHasEvidenceCaptureFields: nextActionBooleanField("actionHasEvidenceCaptureFields"),
|
|
853
|
-
};
|
|
854
|
-
const nextActionRunContext = {
|
|
855
|
-
nextActionRunPolicy: nextStageField("runPolicy"),
|
|
856
|
-
nextActionSafetyLevel: nextStageField("safetyLevel"),
|
|
857
|
-
};
|
|
858
|
-
const nextActionSummary = {
|
|
859
|
-
...nextActionCoreSummary,
|
|
860
|
-
...nextActionEvidenceCaptureFieldMetadata,
|
|
861
|
-
...nextActionEvidenceCapturePayload,
|
|
862
|
-
...nextActionEvidenceCaptureValidation,
|
|
863
|
-
...nextActionEvidenceCaptureFieldRules,
|
|
864
|
-
...nextActionEvidenceCaptureFieldCounts,
|
|
865
|
-
...nextActionRunContext,
|
|
866
|
-
};
|
|
867
|
-
const sumActions = (getValue) => stageActionRows.reduce((sum, stage) => sum + getValue(stage), 0);
|
|
868
|
-
const maxActionValue = (getValue) => Math.max(0, ...stageActionRows.map(getValue));
|
|
869
|
-
const countActionsWithItems = (field) => countActions((stage) => stage[field].length > 0);
|
|
870
|
-
const sumActionItems = (field) => sumActions((stage) => stage[field].length);
|
|
871
|
-
const sumActionItemValues = (field, getValue) => sumActions(
|
|
872
|
-
(stage) => stage[field].reduce((sum, item) => sum + getValue(item), 0),
|
|
873
|
-
);
|
|
874
|
-
const countActionItems = (field, predicate) => sumActions(
|
|
875
|
-
(stage) => stage[field].filter(predicate).length,
|
|
876
|
-
);
|
|
877
|
-
const countEvidenceCaptureFields = (predicate) => countActionItems("actionEvidenceCaptureFields", predicate);
|
|
878
|
-
const countPayloadBindings = (predicate) => countActionItems("actionEvidenceCapturePayloadBindings", predicate);
|
|
879
|
-
const countValidationSpecs = (predicate) => countActionItems("actionEvidenceCaptureValidationSpecs", predicate);
|
|
880
|
-
const countInitialValidationStates = (predicate) => countActionItems("actionEvidenceCaptureInitialValidationStates", predicate);
|
|
881
|
-
const countInitialDisplayRows = (predicate) => countActionItems("actionEvidenceCaptureInitialValidationDisplayMetadata", predicate);
|
|
882
|
-
const countInitialChecklistItems = (predicate) => countActionItems("actionEvidenceCaptureInitialValidationChecklist", predicate);
|
|
883
|
-
const countActionsBySummary = (field, predicate) => countActions((stage) => predicate(stage[field]));
|
|
884
|
-
const sumSummaryValues = (field, getValue) => sumActions((stage) => getValue(stage[field]));
|
|
885
|
-
const countInitialValidationSummaries = (predicate) => (
|
|
886
|
-
countActionsBySummary("actionEvidenceCaptureInitialValidationSummary", predicate)
|
|
887
|
-
);
|
|
888
|
-
const sumInitialValidationSummaryValues = (getValue) => (
|
|
889
|
-
sumSummaryValues("actionEvidenceCaptureInitialValidationSummary", getValue)
|
|
890
|
-
);
|
|
891
|
-
const countInitialChecklistSummaries = (predicate) => (
|
|
892
|
-
countActionsBySummary("actionEvidenceCaptureInitialValidationChecklistSummary", predicate)
|
|
893
|
-
);
|
|
894
|
-
const sumInitialChecklistSummaryValues = (getValue) => (
|
|
895
|
-
sumSummaryValues("actionEvidenceCaptureInitialValidationChecklistSummary", getValue)
|
|
896
|
-
);
|
|
897
|
-
const uniqueActionListValueCount = (field) => uniqueValues(stageActionRows.flatMap((stage) => stage[field])).length;
|
|
898
|
-
const payloadTemplatePathCount = (stage) => Object.keys(stage.actionEvidenceCapturePayloadFlatTemplate).length;
|
|
899
|
-
const maxActionItemValue = (field, getValue) => Math.max(
|
|
900
|
-
0,
|
|
901
|
-
...stageActionRows.flatMap((stage) => stage[field].map(getValue)),
|
|
902
|
-
);
|
|
903
|
-
const maxEvidenceCaptureFieldValue = (getValue) => maxActionItemValue("actionEvidenceCaptureFields", getValue);
|
|
904
|
-
const firstActionWithEvidenceCaptureField = (predicate) => (
|
|
905
|
-
firstActionKey((stage) => stage.actionEvidenceCaptureFields.some(predicate))
|
|
906
|
-
);
|
|
907
|
-
const firstStageKey = (predicate) => stages.find(predicate)?.key || "";
|
|
908
|
-
const isActionEnabled = (action) => action.actionEnabled;
|
|
909
|
-
const isActionDisabled = (action) => !action.actionEnabled;
|
|
910
|
-
const isManualDisabledAction = (action) => isActionDisabled(action) && action.manual;
|
|
911
|
-
const hasActionPrerequisites = (action) => action.actionHasPrerequisites;
|
|
912
|
-
const hasActionDependencyReason = (action) => action.actionDependencyReasonCode;
|
|
913
|
-
const blocksOtherActions = (action) => action.actionBlocksStages;
|
|
914
|
-
const hasActionCompletionCriteria = (action) => action.actionHasCompletionCriteria;
|
|
915
|
-
const requiresActionEvidence = (action) => action.actionRequiresEvidence;
|
|
916
|
-
const targetsLocalCommandEvidence = (action) => action.actionEvidenceTarget === "local-command-output";
|
|
917
|
-
const targetsLocalOutputEvidence = (action) => action.actionEvidenceTarget === "local-output-file";
|
|
918
|
-
const targetsTargetRepoEvidence = (action) => action.actionEvidenceTarget === "target-repo-working-tree";
|
|
919
|
-
const targetsHandoffRecordEvidence = (action) => action.actionEvidenceTarget === "handoff-evidence-record";
|
|
920
|
-
const hasActionEvidenceCaptureFields = (action) => action.actionHasEvidenceCaptureFields;
|
|
921
|
-
const hasRequiredActionEvidenceCaptureFields = (action) => action.actionRequiredEvidenceCaptureFieldCount > 0;
|
|
922
|
-
const hasOptionalActionEvidenceCaptureFields = (action) => action.actionOptionalEvidenceCaptureFieldCount > 0;
|
|
923
|
-
const hasMultipleEvidenceCaptureSections = (action) => action.actionEvidenceCaptureSectionCount > 1;
|
|
924
|
-
const hasMultipleEvidenceCapturePayloadNamespaces = (action) => action.actionEvidenceCapturePayloadNamespaceCount > 1;
|
|
925
|
-
const hasEvidenceCapturePayloadTemplate = (action) => payloadTemplatePathCount(action) > 0;
|
|
926
|
-
const isManualAction = (action) => action.manual;
|
|
927
|
-
const isManualEvidenceAction = (action) => action.actionType === "manual-evidence";
|
|
928
|
-
const usesTextareaInput = (field) => field.inputType === "textarea";
|
|
929
|
-
const usesTextInput = (field) => field.inputType === "text";
|
|
930
|
-
const usesFilePathInput = (field) => field.inputType === "file-path";
|
|
931
|
-
const usesListInput = (field) => field.inputType === "list";
|
|
932
|
-
const capturesLongText = (field) => field.valueShape === "long-text";
|
|
933
|
-
const capturesShortText = (field) => field.valueShape === "short-text";
|
|
934
|
-
const capturesFilePathValue = (field) => field.valueShape === "file-path";
|
|
935
|
-
const capturesStringList = (field) => field.valueShape === "string-list";
|
|
936
|
-
const acceptsMultipleValues = (item) => item.acceptsMultiple;
|
|
937
|
-
const acceptsSingleValue = (item) => !item.acceptsMultiple;
|
|
938
|
-
const hasEmptyStringValue = (field) => field.emptyValue === "";
|
|
939
|
-
const hasEmptyListValue = (field) => Array.isArray(field.emptyValue);
|
|
940
|
-
const hasPlaceholder = (field) => Boolean(field.placeholder);
|
|
941
|
-
const hasAriaLabel = (field) => Boolean(field.ariaLabel);
|
|
942
|
-
const hasHelpText = (field) => Boolean(field.helpText);
|
|
943
|
-
const belongsToEvidenceCaptureSection = (field) => Boolean(field.sectionKey);
|
|
944
|
-
const mapsToPayloadPath = (field) => Boolean(field.payloadPath);
|
|
945
|
-
const isRequiredItem = (item) => item.required;
|
|
946
|
-
const isOptionalItem = (item) => !item.required;
|
|
947
|
-
const hasValidationRule = (item) => Boolean(item.validationRule);
|
|
948
|
-
const isRequiredValidatedField = (field) => isRequiredItem(field) && hasValidationRule(field);
|
|
949
|
-
const isOptionalValidatedField = (field) => isOptionalItem(field) && hasValidationRule(field);
|
|
950
|
-
const isErrorValidationSpec = (spec) => spec.severity === "error";
|
|
951
|
-
const isInfoValidationSpec = (spec) => spec.severity === "info";
|
|
952
|
-
const isValidInitialState = (state) => state.valid;
|
|
953
|
-
const isInvalidInitialState = (state) => !state.valid;
|
|
954
|
-
const isBlockingInitialState = (state) => state.blocking;
|
|
955
|
-
const isOptionalEmptyInitialState = (state) => state.status === "optional-empty";
|
|
956
|
-
const isMissingRequiredInitialState = (state) => state.status === "missing-required";
|
|
957
|
-
const isPristineInitialState = (state) => !state.dirty && !state.touched;
|
|
958
|
-
const isDangerInitialDisplayRow = (display) => display.statusTone === "danger";
|
|
959
|
-
const isInfoInitialDisplayRow = (display) => display.statusTone === "info";
|
|
960
|
-
const isBlockingInitialDisplayRow = (display) => display.blocking;
|
|
961
|
-
const isNonBlockingInitialDisplayRow = (display) => !display.blocking;
|
|
962
|
-
const isInitiallyCheckedChecklistItem = (item) => item.checkedInitially;
|
|
963
|
-
const isInitiallyUncheckedChecklistItem = (item) => !item.checkedInitially;
|
|
964
|
-
const blocksChecklistCompletion = (item) => item.completionBlocking;
|
|
965
|
-
const doesNotBlockChecklistCompletion = (item) => !item.completionBlocking;
|
|
966
|
-
const actionCountSummary = {
|
|
967
|
-
totalActionCount: stages.length,
|
|
968
|
-
commandActionCount: commandStages.length,
|
|
969
|
-
manualActionCount: countBy(isManualStage),
|
|
970
|
-
enabledActionCount: countActions(isActionEnabled),
|
|
971
|
-
disabledActionCount: countActions(isActionDisabled),
|
|
972
|
-
manualDisabledActionCount: countActions(isManualDisabledAction),
|
|
973
|
-
};
|
|
974
|
-
const actionDependencySummary = {
|
|
975
|
-
actionWithPrerequisiteCount: countActions(hasActionPrerequisites),
|
|
976
|
-
maxActionPrerequisiteCount: maxActionValue((stage) => stage.actionPrerequisiteCount),
|
|
977
|
-
actionWithDependencyReasonCount: countActions(hasActionDependencyReason),
|
|
978
|
-
actionBlockingOtherActionCount: countActions(blocksOtherActions),
|
|
979
|
-
maxActionBlockedStageCount: maxActionValue((stage) => stage.actionBlockedStageCount),
|
|
980
|
-
actionWithCompletionCriteriaCount: countActions(hasActionCompletionCriteria),
|
|
981
|
-
totalActionCompletionCriteriaCount: sumActions((stage) => stage.actionCompletionCriteriaCount),
|
|
982
|
-
maxActionCompletionCriteriaCount: maxActionValue((stage) => stage.actionCompletionCriteriaCount),
|
|
983
|
-
};
|
|
984
|
-
const actionEvidenceSummary = {
|
|
985
|
-
actionRequiringEvidenceCount: countActions(requiresActionEvidence),
|
|
986
|
-
totalActionEvidenceRequirementCount: sumActions((stage) => stage.actionEvidenceRequirementCount),
|
|
987
|
-
maxActionEvidenceRequirementCount: maxActionValue((stage) => stage.actionEvidenceRequirementCount),
|
|
988
|
-
localCommandEvidenceActionCount: countActions(targetsLocalCommandEvidence),
|
|
989
|
-
localOutputEvidenceActionCount: countActions(targetsLocalOutputEvidence),
|
|
990
|
-
targetRepoEvidenceActionCount: countActions(targetsTargetRepoEvidence),
|
|
991
|
-
handoffRecordEvidenceActionCount: countActions(targetsHandoffRecordEvidence),
|
|
992
|
-
};
|
|
993
|
-
const actionEvidenceCaptureFieldSummary = {
|
|
994
|
-
actionWithEvidenceCaptureFieldCount: countActions(hasActionEvidenceCaptureFields),
|
|
995
|
-
actionWithRequiredEvidenceCaptureFieldCount: countActions(hasRequiredActionEvidenceCaptureFields),
|
|
996
|
-
actionWithOptionalEvidenceCaptureFieldCount: countActions(hasOptionalActionEvidenceCaptureFields),
|
|
997
|
-
totalActionEvidenceCaptureFieldCount: sumActions((stage) => stage.actionEvidenceCaptureFieldCount),
|
|
998
|
-
totalRequiredActionEvidenceCaptureFieldCount: sumActions((stage) => stage.actionRequiredEvidenceCaptureFieldCount),
|
|
999
|
-
totalOptionalActionEvidenceCaptureFieldCount: sumActions((stage) => stage.actionOptionalEvidenceCaptureFieldCount),
|
|
1000
|
-
maxActionEvidenceCaptureFieldCount: maxActionValue((stage) => stage.actionEvidenceCaptureFieldCount),
|
|
1001
|
-
textareaEvidenceCaptureFieldCount: countEvidenceCaptureFields(usesTextareaInput),
|
|
1002
|
-
textEvidenceCaptureFieldCount: countEvidenceCaptureFields(usesTextInput),
|
|
1003
|
-
filePathEvidenceCaptureFieldCount: countEvidenceCaptureFields(usesFilePathInput),
|
|
1004
|
-
listEvidenceCaptureFieldCount: countEvidenceCaptureFields(usesListInput),
|
|
1005
|
-
longTextEvidenceCaptureFieldCount: countEvidenceCaptureFields(capturesLongText),
|
|
1006
|
-
shortTextEvidenceCaptureFieldCount: countEvidenceCaptureFields(capturesShortText),
|
|
1007
|
-
filePathValueEvidenceCaptureFieldCount: countEvidenceCaptureFields(capturesFilePathValue),
|
|
1008
|
-
stringListEvidenceCaptureFieldCount: countEvidenceCaptureFields(capturesStringList),
|
|
1009
|
-
multiValueEvidenceCaptureFieldCount: countEvidenceCaptureFields(acceptsMultipleValues),
|
|
1010
|
-
singleValueEvidenceCaptureFieldCount: countEvidenceCaptureFields(acceptsSingleValue),
|
|
1011
|
-
emptyStringEvidenceCaptureFieldCount: countEvidenceCaptureFields(hasEmptyStringValue),
|
|
1012
|
-
emptyListEvidenceCaptureFieldCount: countEvidenceCaptureFields(hasEmptyListValue),
|
|
1013
|
-
placeholderEvidenceCaptureFieldCount: countEvidenceCaptureFields(hasPlaceholder),
|
|
1014
|
-
ariaLabelEvidenceCaptureFieldCount: countEvidenceCaptureFields(hasAriaLabel),
|
|
1015
|
-
helpTextEvidenceCaptureFieldCount: countEvidenceCaptureFields(hasHelpText),
|
|
1016
|
-
sectionedEvidenceCaptureFieldCount: countEvidenceCaptureFields(belongsToEvidenceCaptureSection),
|
|
1017
|
-
uniqueEvidenceCaptureSectionCount: uniqueActionListValueCount("actionEvidenceCaptureSectionKeys"),
|
|
1018
|
-
actionWithMultipleEvidenceCaptureSectionCount: countActions(hasMultipleEvidenceCaptureSections),
|
|
1019
|
-
maxActionEvidenceCaptureSectionCount: maxActionValue((stage) => stage.actionEvidenceCaptureSectionCount),
|
|
1020
|
-
payloadMappedEvidenceCaptureFieldCount: countEvidenceCaptureFields(mapsToPayloadPath),
|
|
1021
|
-
};
|
|
1022
|
-
const actionEvidenceCapturePayloadSummary = {
|
|
1023
|
-
uniqueEvidenceCapturePayloadNamespaceCount: uniqueActionListValueCount("actionEvidenceCapturePayloadNamespaces"),
|
|
1024
|
-
actionWithMultipleEvidenceCapturePayloadNamespaceCount: countActions(hasMultipleEvidenceCapturePayloadNamespaces),
|
|
1025
|
-
maxActionEvidenceCapturePayloadNamespaceCount: maxActionValue((stage) => stage.actionEvidenceCapturePayloadNamespaceCount),
|
|
1026
|
-
actionWithEvidenceCapturePayloadTemplateCount: countActions(hasEvidenceCapturePayloadTemplate),
|
|
1027
|
-
evidenceCapturePayloadTemplatePathCount: sumActions(payloadTemplatePathCount),
|
|
1028
|
-
maxActionEvidenceCapturePayloadTemplatePathCount: maxActionValue(payloadTemplatePathCount),
|
|
1029
|
-
actionWithEvidenceCapturePayloadBindingCount: countActionsWithItems("actionEvidenceCapturePayloadBindings"),
|
|
1030
|
-
evidenceCapturePayloadBindingCount: sumActionItems("actionEvidenceCapturePayloadBindings"),
|
|
1031
|
-
requiredEvidenceCapturePayloadBindingCount: countPayloadBindings(isRequiredItem),
|
|
1032
|
-
optionalEvidenceCapturePayloadBindingCount: countPayloadBindings(isOptionalItem),
|
|
1033
|
-
multiValueEvidenceCapturePayloadBindingCount: countPayloadBindings(acceptsMultipleValues),
|
|
1034
|
-
};
|
|
1035
|
-
const actionEvidenceCaptureValidationSummary = {
|
|
1036
|
-
actionWithEvidenceCaptureValidationSpecCount: countActionsWithItems("actionEvidenceCaptureValidationSpecs"),
|
|
1037
|
-
evidenceCaptureValidationSpecCount: sumActionItems("actionEvidenceCaptureValidationSpecs"),
|
|
1038
|
-
requiredEvidenceCaptureValidationSpecCount: countValidationSpecs(isRequiredItem),
|
|
1039
|
-
optionalEvidenceCaptureValidationSpecCount: countValidationSpecs(isOptionalItem),
|
|
1040
|
-
errorEvidenceCaptureValidationSpecCount: countValidationSpecs(isErrorValidationSpec),
|
|
1041
|
-
infoEvidenceCaptureValidationSpecCount: countValidationSpecs(isInfoValidationSpec),
|
|
1042
|
-
multiValueEvidenceCaptureValidationSpecCount: countValidationSpecs(acceptsMultipleValues),
|
|
1043
|
-
};
|
|
1044
|
-
const actionEvidenceCaptureInitialStateSummary = {
|
|
1045
|
-
actionWithEvidenceCaptureInitialValidationStateCount: countActionsWithItems("actionEvidenceCaptureInitialValidationStates"),
|
|
1046
|
-
evidenceCaptureInitialValidationStateCount: sumActionItems("actionEvidenceCaptureInitialValidationStates"),
|
|
1047
|
-
validInitialEvidenceCaptureStateCount: countInitialValidationStates(isValidInitialState),
|
|
1048
|
-
invalidInitialEvidenceCaptureStateCount: countInitialValidationStates(isInvalidInitialState),
|
|
1049
|
-
blockingInitialEvidenceCaptureStateCount: countInitialValidationStates(isBlockingInitialState),
|
|
1050
|
-
optionalEmptyInitialEvidenceCaptureStateCount: countInitialValidationStates(isOptionalEmptyInitialState),
|
|
1051
|
-
missingRequiredInitialEvidenceCaptureStateCount: countInitialValidationStates(isMissingRequiredInitialState),
|
|
1052
|
-
pristineInitialEvidenceCaptureStateCount: countInitialValidationStates(isPristineInitialState),
|
|
1053
|
-
};
|
|
1054
|
-
const actionEvidenceCaptureInitialDisplaySummary = {
|
|
1055
|
-
actionWithEvidenceCaptureInitialValidationDisplayMetadataCount: countActionsWithItems("actionEvidenceCaptureInitialValidationDisplayMetadata"),
|
|
1056
|
-
evidenceCaptureInitialValidationDisplayMetadataCount: sumActionItems("actionEvidenceCaptureInitialValidationDisplayMetadata"),
|
|
1057
|
-
dangerInitialEvidenceCaptureDisplayMetadataCount: countInitialDisplayRows(isDangerInitialDisplayRow),
|
|
1058
|
-
infoInitialEvidenceCaptureDisplayMetadataCount: countInitialDisplayRows(isInfoInitialDisplayRow),
|
|
1059
|
-
blockingInitialEvidenceCaptureDisplayMetadataCount: countInitialDisplayRows(isBlockingInitialDisplayRow),
|
|
1060
|
-
nonBlockingInitialEvidenceCaptureDisplayMetadataCount: countInitialDisplayRows(isNonBlockingInitialDisplayRow),
|
|
1061
|
-
};
|
|
1062
|
-
const actionEvidenceCaptureInitialValidationSummary = {
|
|
1063
|
-
actionWithEvidenceCaptureInitialValidationSummaryCount: countInitialValidationSummaries((summary) => summary.fieldCount > 0),
|
|
1064
|
-
blockedInitialEvidenceCaptureSummaryActionCount: countInitialValidationSummaries((summary) => summary.status === "blocked"),
|
|
1065
|
-
readyInitialEvidenceCaptureSummaryActionCount: countInitialValidationSummaries((summary) => summary.status === "ready"),
|
|
1066
|
-
completableInitialEvidenceCaptureSummaryActionCount: countInitialValidationSummaries((summary) => summary.canCompleteInitially),
|
|
1067
|
-
nonCompletableInitialEvidenceCaptureSummaryActionCount: countInitialValidationSummaries((summary) => !summary.canCompleteInitially),
|
|
1068
|
-
initialEvidenceCaptureSummaryBlockingFieldCount: sumInitialValidationSummaryValues((summary) => summary.blockingCount),
|
|
1069
|
-
initialEvidenceCaptureSummaryMissingRequiredFieldCount: sumInitialValidationSummaryValues((summary) => summary.missingRequiredCount),
|
|
1070
|
-
initialEvidenceCaptureSummaryOptionalEmptyFieldCount: sumInitialValidationSummaryValues((summary) => summary.optionalEmptyCount),
|
|
1071
|
-
};
|
|
1072
|
-
const actionEvidenceCaptureInitialChecklistSummary = {
|
|
1073
|
-
actionWithEvidenceCaptureInitialValidationChecklistCount: countActionsWithItems("actionEvidenceCaptureInitialValidationChecklist"),
|
|
1074
|
-
evidenceCaptureInitialValidationChecklistItemCount: sumActionItems("actionEvidenceCaptureInitialValidationChecklist"),
|
|
1075
|
-
checkedInitialEvidenceCaptureChecklistItemCount: countInitialChecklistItems(isInitiallyCheckedChecklistItem),
|
|
1076
|
-
uncheckedInitialEvidenceCaptureChecklistItemCount: countInitialChecklistItems(isInitiallyUncheckedChecklistItem),
|
|
1077
|
-
blockingInitialEvidenceCaptureChecklistItemCount: countInitialChecklistItems(blocksChecklistCompletion),
|
|
1078
|
-
nonBlockingInitialEvidenceCaptureChecklistItemCount: countInitialChecklistItems(doesNotBlockChecklistCompletion),
|
|
1079
|
-
requiredInitialEvidenceCaptureChecklistItemCount: countInitialChecklistItems(isRequiredItem),
|
|
1080
|
-
optionalInitialEvidenceCaptureChecklistItemCount: countInitialChecklistItems(isOptionalItem),
|
|
1081
|
-
actionWithEvidenceCaptureInitialValidationChecklistSummaryCount: countInitialChecklistSummaries((summary) => summary.itemCount > 0),
|
|
1082
|
-
blockedInitialEvidenceCaptureChecklistSummaryActionCount: countInitialChecklistSummaries((summary) => summary.status === "blocked"),
|
|
1083
|
-
readyInitialEvidenceCaptureChecklistSummaryActionCount: countInitialChecklistSummaries((summary) => summary.status === "ready"),
|
|
1084
|
-
completeInitialEvidenceCaptureChecklistSummaryActionCount: countInitialChecklistSummaries((summary) => summary.allCheckedInitially),
|
|
1085
|
-
incompleteInitialEvidenceCaptureChecklistSummaryActionCount: countInitialChecklistSummaries((summary) => !summary.allCheckedInitially),
|
|
1086
|
-
initialEvidenceCaptureChecklistSummaryCheckedItemCount: sumInitialChecklistSummaryValues((summary) => summary.checkedCount),
|
|
1087
|
-
initialEvidenceCaptureChecklistSummaryUncheckedItemCount: sumInitialChecklistSummaryValues((summary) => summary.uncheckedCount),
|
|
1088
|
-
initialEvidenceCaptureChecklistSummaryBlockingUncheckedItemCount: sumInitialChecklistSummaryValues((summary) => summary.blockingUncheckedCount),
|
|
1089
|
-
};
|
|
1090
|
-
const humanLineActionSummary = {
|
|
1091
|
-
humanLineCount: stageHumanLineSummary.count,
|
|
1092
|
-
humanLineByKeyCount: stageHumanLineSummary.byKeyCount,
|
|
1093
|
-
humanLineWithEvidenceProgressCount: stageHumanLineSummary.evidenceProgressCount,
|
|
1094
|
-
humanLineWithBlockedEvidenceProgressCount: stageHumanLineSummary.blockedEvidenceProgressCount,
|
|
1095
|
-
humanLineWithReadyEvidenceProgressCount: stageHumanLineSummary.readyEvidenceProgressCount,
|
|
1096
|
-
humanLineDisplayRowCount: stageHumanLineDisplayRowSummary.count,
|
|
1097
|
-
humanLineDisplayRowByKeyCount: stageHumanLineDisplayRowSummary.byKeyCount,
|
|
1098
|
-
humanLineDisplayRowWithEvidenceProgressCount: stageHumanLineDisplayRowSummary.evidenceProgressCount,
|
|
1099
|
-
humanLineDisplayRowWithBlockedEvidenceProgressCount: stageHumanLineDisplayRowSummary.blockedEvidenceProgressCount,
|
|
1100
|
-
humanLineDisplayRowWithReadyEvidenceProgressCount: stageHumanLineDisplayRowSummary.readyEvidenceProgressCount,
|
|
1101
|
-
humanLineDisplayRowReadyActionCount: stageHumanLineDisplayRowSummary.readyActionStatusCount,
|
|
1102
|
-
humanLineDisplayRowManualActionCount: stageHumanLineDisplayRowSummary.manualActionStatusCount,
|
|
1103
|
-
};
|
|
1104
|
-
const evidenceCaptureValidatedFieldSummary = {
|
|
1105
|
-
validatedEvidenceCaptureFieldCount: countEvidenceCaptureFields(hasValidationRule),
|
|
1106
|
-
requiredValidatedEvidenceCaptureFieldCount: countEvidenceCaptureFields(isRequiredValidatedField),
|
|
1107
|
-
optionalValidatedEvidenceCaptureFieldCount: countEvidenceCaptureFields(isOptionalValidatedField),
|
|
1108
|
-
minEvidenceCaptureFieldLengthTotal: sumActionItemValues(
|
|
1109
|
-
"actionEvidenceCaptureFields",
|
|
1110
|
-
(field) => field.minLength,
|
|
1111
|
-
),
|
|
1112
|
-
maxEvidenceCaptureFieldMinLength: maxEvidenceCaptureFieldValue((field) => field.minLength),
|
|
1113
|
-
};
|
|
1114
|
-
const actionRunPolicySummary = {
|
|
1115
|
-
requiredActionCount: countBy(isRequiredStage),
|
|
1116
|
-
optionalActionCount: countBy(isOptionalStage),
|
|
1117
|
-
readOnlyActionCount: countBy(usesReadOnlyRunPolicy),
|
|
1118
|
-
localOutputActionCount: countBy(usesLocalOutputRunPolicy),
|
|
1119
|
-
outputFileActionCount: countBy(hasOutputFile),
|
|
1120
|
-
externalCallActionCount: countBy(callsExternalSystem),
|
|
1121
|
-
targetRepoMutationActionCount: countBy(mutatesTargetRepo),
|
|
1122
|
-
};
|
|
1123
|
-
const firstActionLookupSummary = {
|
|
1124
|
-
firstRequiredCommandStageKey: firstStageKey((stage) => isRequiredStage(stage) && hasCommands(stage)),
|
|
1125
|
-
firstLocalOutputStageKey: firstStageKey((stage) => stage.writesLocalFile),
|
|
1126
|
-
firstManualStageKey: firstStageKey(isManualStage),
|
|
1127
|
-
firstRequiredManualStageKey: firstStageKey((stage) => isRequiredStage(stage) && isManualStage(stage)),
|
|
1128
|
-
firstEvidenceStageKey: firstStageKey((stage) => stage.kind === "manual-reporting"),
|
|
1129
|
-
firstActionWithPrerequisiteKey: firstActionKey(hasActionPrerequisites),
|
|
1130
|
-
firstManualActionWithPrerequisiteKey: firstActionKey((action) => isManualAction(action) && hasActionPrerequisites(action)),
|
|
1131
|
-
firstEvidenceActionWithPrerequisiteKey: firstActionKey((action) => isManualEvidenceAction(action) && hasActionPrerequisites(action)),
|
|
1132
|
-
firstActionWithDependencyReasonKey: firstActionKey(hasActionDependencyReason),
|
|
1133
|
-
firstActionBlockingOtherActionKey: firstActionKey(blocksOtherActions),
|
|
1134
|
-
firstActionWithCompletionCriteriaKey: firstActionKey(hasActionCompletionCriteria),
|
|
1135
|
-
firstManualActionWithCompletionCriteriaKey: firstActionKey((action) => isManualAction(action) && hasActionCompletionCriteria(action)),
|
|
1136
|
-
firstActionRequiringEvidenceKey: firstActionKey(requiresActionEvidence),
|
|
1137
|
-
firstManualActionRequiringEvidenceKey: firstActionKey((action) => isManualAction(action) && requiresActionEvidence(action)),
|
|
1138
|
-
firstEvidenceRecordingActionKey: firstActionKey((action) => isManualEvidenceAction(action) && requiresActionEvidence(action)),
|
|
1139
|
-
firstTargetRepoEvidenceActionKey: firstActionKey(targetsTargetRepoEvidence),
|
|
1140
|
-
firstLocalOutputEvidenceActionKey: firstActionKey(targetsLocalOutputEvidence),
|
|
1141
|
-
firstActionWithEvidenceCaptureFieldKey: firstActionKey(hasActionEvidenceCaptureFields),
|
|
1142
|
-
firstActionWithOptionalEvidenceCaptureFieldKey: firstActionKey(hasOptionalActionEvidenceCaptureFields),
|
|
1143
|
-
firstManualActionWithEvidenceCaptureFieldKey: firstActionKey((action) => isManualAction(action) && hasActionEvidenceCaptureFields(action)),
|
|
1144
|
-
firstTextareaEvidenceCaptureActionKey: firstActionWithEvidenceCaptureField(usesTextareaInput),
|
|
1145
|
-
firstMultiValueEvidenceCaptureActionKey: firstActionWithEvidenceCaptureField(acceptsMultipleValues),
|
|
1146
|
-
firstValidationRuleEvidenceCaptureActionKey: firstActionWithEvidenceCaptureField(hasValidationRule),
|
|
1147
|
-
};
|
|
1148
|
-
const actionBoundarySummary = {
|
|
1149
|
-
requiresTargetRepoWork: stages.some((stage) => stage.kind === "manual-target-repo"),
|
|
1150
|
-
requiresEvidenceReturn: stages.some((stage) => stage.kind === "manual-reporting"),
|
|
1151
|
-
externalCalls: stages.some(callsExternalSystem),
|
|
1152
|
-
targetRepoMutation: stages.some(mutatesTargetRepo),
|
|
1153
|
-
};
|
|
1154
|
-
const actionSummary = {
|
|
1155
|
-
...actionCountSummary,
|
|
1156
|
-
...actionDependencySummary,
|
|
1157
|
-
...actionEvidenceSummary,
|
|
1158
|
-
...actionEvidenceCaptureFieldSummary,
|
|
1159
|
-
...actionEvidenceCapturePayloadSummary,
|
|
1160
|
-
...actionEvidenceCaptureValidationSummary,
|
|
1161
|
-
...actionEvidenceCaptureInitialStateSummary,
|
|
1162
|
-
...actionEvidenceCaptureInitialDisplaySummary,
|
|
1163
|
-
...actionEvidenceCaptureInitialValidationSummary,
|
|
1164
|
-
...actionEvidenceCaptureInitialChecklistSummary,
|
|
1165
|
-
...humanLineActionSummary,
|
|
1166
|
-
...evidenceCaptureValidatedFieldSummary,
|
|
1167
|
-
...actionRunPolicySummary,
|
|
1168
|
-
...nextActionSummary,
|
|
1169
|
-
...firstActionLookupSummary,
|
|
1170
|
-
...actionBoundarySummary,
|
|
1171
|
-
};
|
|
1172
412
|
const runbookCountSummary = {
|
|
1173
413
|
stageCount: stages.length,
|
|
1174
414
|
commandStageCount: commandStages.length,
|
|
@@ -1182,133 +422,6 @@ export function buildBundleHandoffOperatorRunbook(commandManifest) {
|
|
|
1182
422
|
effectiveTaskId: commandManifest?.effectiveTaskId || "",
|
|
1183
423
|
effectiveStrictTaskCommandKey,
|
|
1184
424
|
};
|
|
1185
|
-
const stageIdentityMaps = {
|
|
1186
|
-
stageKeys,
|
|
1187
|
-
stageByKey,
|
|
1188
|
-
stageLabelByKey,
|
|
1189
|
-
stageSummaryByKey,
|
|
1190
|
-
};
|
|
1191
|
-
const stageHumanLineMaps = {
|
|
1192
|
-
stageHumanLines,
|
|
1193
|
-
stageHumanLineByKey,
|
|
1194
|
-
stageHumanLineDisplayRows,
|
|
1195
|
-
stageHumanLineDisplayRowByKey,
|
|
1196
|
-
stageHumanLineDisplayRowKeysByActionStatus,
|
|
1197
|
-
stageHumanLineDisplayRowKeysByEvidenceProgressStatus,
|
|
1198
|
-
stageHumanLineDisplayRowSummary,
|
|
1199
|
-
stageHumanLineSummary,
|
|
1200
|
-
};
|
|
1201
|
-
const stageActionStatusMaps = {
|
|
1202
|
-
stageActionRows,
|
|
1203
|
-
stageActionTypeByKey,
|
|
1204
|
-
stageActionLabelByKey,
|
|
1205
|
-
stageActionInstructionsByKey,
|
|
1206
|
-
stageActionButtonLabelsByKey,
|
|
1207
|
-
stageActionAffordanceByKey,
|
|
1208
|
-
stageActionEnabledByKey,
|
|
1209
|
-
stageActionStatusByKey,
|
|
1210
|
-
stageActionStatusLabelsByKey,
|
|
1211
|
-
stageActionStatusToneByKey,
|
|
1212
|
-
stageActionDisabledReasonCodeByKey,
|
|
1213
|
-
stageActionDisabledReasonByKey,
|
|
1214
|
-
};
|
|
1215
|
-
const stageActionDependencyMaps = {
|
|
1216
|
-
stageActionPrerequisiteKeysByKey,
|
|
1217
|
-
stageActionPrerequisiteLabelsByKey,
|
|
1218
|
-
stageActionPrerequisiteCountByKey,
|
|
1219
|
-
stageActionHasPrerequisitesByKey,
|
|
1220
|
-
stageActionDependencyReasonCodeByKey,
|
|
1221
|
-
stageActionDependencyReasonByKey,
|
|
1222
|
-
stageActionBlockedStageKeysByKey,
|
|
1223
|
-
stageActionBlockedStageLabelsByKey,
|
|
1224
|
-
stageActionBlockedStageCountByKey,
|
|
1225
|
-
stageActionBlocksStagesByKey,
|
|
1226
|
-
stageActionCompletionCriteriaByKey,
|
|
1227
|
-
stageActionCompletionCriteriaCountByKey,
|
|
1228
|
-
stageActionHasCompletionCriteriaByKey,
|
|
1229
|
-
};
|
|
1230
|
-
const stageActionEvidenceMaps = {
|
|
1231
|
-
stageActionEvidenceRequirementsByKey,
|
|
1232
|
-
stageActionEvidenceRequirementCountByKey,
|
|
1233
|
-
stageActionRequiresEvidenceByKey,
|
|
1234
|
-
stageActionEvidenceTargetByKey,
|
|
1235
|
-
stageActionEvidenceTargetLabelByKey,
|
|
1236
|
-
};
|
|
1237
|
-
const stageActionEvidenceCaptureMaps = {
|
|
1238
|
-
stageActionEvidenceCaptureFieldsByKey,
|
|
1239
|
-
stageActionEvidenceCaptureFieldKeysByKey,
|
|
1240
|
-
stageActionEvidenceCaptureFieldLabelsByKey,
|
|
1241
|
-
stageActionEvidenceCaptureFieldPlaceholdersByKey,
|
|
1242
|
-
stageActionEvidenceCaptureFieldRequirementLabelsByKey,
|
|
1243
|
-
stageActionEvidenceCaptureFieldAriaLabelsByKey,
|
|
1244
|
-
stageActionEvidenceCaptureFieldHelpTextsByKey,
|
|
1245
|
-
stageActionEvidenceCaptureFieldSectionKeysByKey,
|
|
1246
|
-
stageActionEvidenceCaptureFieldSectionLabelsByKey,
|
|
1247
|
-
stageActionEvidenceCaptureSectionKeysByKey,
|
|
1248
|
-
stageActionEvidenceCaptureSectionLabelsByKey,
|
|
1249
|
-
stageActionEvidenceCaptureSectionCountByKey,
|
|
1250
|
-
stageActionEvidenceCaptureFieldPayloadNamespacesByKey,
|
|
1251
|
-
stageActionEvidenceCaptureFieldPayloadPathsByKey,
|
|
1252
|
-
stageActionEvidenceCapturePayloadNamespacesByKey,
|
|
1253
|
-
stageActionEvidenceCapturePayloadNamespaceCountByKey,
|
|
1254
|
-
stageActionEvidenceCapturePayloadTemplateByKey,
|
|
1255
|
-
stageActionEvidenceCapturePayloadFlatTemplateByKey,
|
|
1256
|
-
stageActionEvidenceCapturePayloadBindingsByKey,
|
|
1257
|
-
stageActionEvidenceCaptureValidationSpecsByKey,
|
|
1258
|
-
stageActionEvidenceCaptureInitialValidationStatesByKey,
|
|
1259
|
-
stageActionEvidenceCaptureInitialValidationDisplayMetadataByKey,
|
|
1260
|
-
stageActionEvidenceCaptureInitialValidationChecklistByKey,
|
|
1261
|
-
stageActionEvidenceCaptureInitialValidationChecklistSummaryByKey,
|
|
1262
|
-
stageActionEvidenceCaptureInitialValidationSummaryByKey,
|
|
1263
|
-
stageActionEvidenceCaptureFieldInputTypesByKey,
|
|
1264
|
-
stageActionEvidenceCaptureFieldValueShapesByKey,
|
|
1265
|
-
stageActionEvidenceCaptureFieldAcceptsMultipleByKey,
|
|
1266
|
-
stageActionEvidenceCaptureFieldDefaultValuesByKey,
|
|
1267
|
-
stageActionEvidenceCaptureFieldEmptyValuesByKey,
|
|
1268
|
-
stageActionEvidenceCaptureFieldValidationRulesByKey,
|
|
1269
|
-
stageActionEvidenceCaptureFieldMinLengthsByKey,
|
|
1270
|
-
stageActionEvidenceCaptureFieldExamplesByKey,
|
|
1271
|
-
stageActionEvidenceCaptureFieldValidationHintsByKey,
|
|
1272
|
-
stageActionRequiredEvidenceCaptureFieldKeysByKey,
|
|
1273
|
-
stageActionOptionalEvidenceCaptureFieldKeysByKey,
|
|
1274
|
-
stageActionEvidenceCaptureFieldCountByKey,
|
|
1275
|
-
stageActionRequiredEvidenceCaptureFieldCountByKey,
|
|
1276
|
-
stageActionOptionalEvidenceCaptureFieldCountByKey,
|
|
1277
|
-
stageActionHasEvidenceCaptureFieldsByKey,
|
|
1278
|
-
};
|
|
1279
|
-
const stageExecutionMaps = {
|
|
1280
|
-
stageKindByKey,
|
|
1281
|
-
stageRequiredByKey,
|
|
1282
|
-
stageRunPolicyByKey,
|
|
1283
|
-
stageSafetyLevelByKey,
|
|
1284
|
-
stageCommandCountByKey,
|
|
1285
|
-
stageCommandKeysByKey,
|
|
1286
|
-
stageCommandLabelsByKey,
|
|
1287
|
-
stageCommandStringsByKey,
|
|
1288
|
-
stageCommandArgsByKey,
|
|
1289
|
-
stageCommandRunPoliciesByKey,
|
|
1290
|
-
stageCommandSafetyLevelsByKey,
|
|
1291
|
-
stageOutputFilesByKey,
|
|
1292
|
-
stageHasCommandsByKey,
|
|
1293
|
-
stageManualByKey,
|
|
1294
|
-
stageWritesLocalFileByKey,
|
|
1295
|
-
stageExternalCallsByKey,
|
|
1296
|
-
stageTargetRepoMutationByKey,
|
|
1297
|
-
commandStageKeys,
|
|
1298
|
-
manualStageKeys,
|
|
1299
|
-
};
|
|
1300
|
-
const nextStepSummary = {
|
|
1301
|
-
nextStageKey,
|
|
1302
|
-
nextStage,
|
|
1303
|
-
...nextStageIdentity,
|
|
1304
|
-
...nextStageActionStatus,
|
|
1305
|
-
...nextStageActionDependencies,
|
|
1306
|
-
...nextStageActionEvidence,
|
|
1307
|
-
...nextStageEvidenceCapture,
|
|
1308
|
-
...nextStageCommandSummary,
|
|
1309
|
-
nextCommandKey,
|
|
1310
|
-
...nextCommandSummary,
|
|
1311
|
-
};
|
|
1312
425
|
return {
|
|
1313
426
|
version: 1,
|
|
1314
427
|
source: "bundle-handoff",
|
|
@@ -1328,4 +441,4 @@ export function buildBundleHandoffOperatorRunbook(commandManifest) {
|
|
|
1328
441
|
|
|
1329
442
|
export {
|
|
1330
443
|
formatBundleHandoffOperatorRunbookLines,
|
|
1331
|
-
} from "./site-bundle-handoff-runbook-format.mjs";
|
|
444
|
+
} from "./site-bundle-handoff-runbook-format.mjs";
|