@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.
Files changed (264) hide show
  1. package/.claude-plugin/plugin.json +109 -25
  2. package/CHANGELOG.md +36 -0
  3. package/README.ko.md +9 -26
  4. package/README.md +10 -23
  5. package/cli/bin/design-ai.mjs +1 -0
  6. package/cli/commands/help.mjs +7 -4
  7. package/cli/commands/index.mjs +292 -0
  8. package/cli/commands/learn-help.mjs +149 -0
  9. package/cli/commands/learn-print-profile.mjs +373 -0
  10. package/cli/commands/learn-print-restore.mjs +349 -0
  11. package/cli/commands/learn-print-signals.mjs +453 -0
  12. package/cli/commands/learn.mjs +60 -1281
  13. package/cli/commands/pack.mjs +7 -3
  14. package/cli/commands/prompt.mjs +7 -3
  15. package/cli/commands/search.mjs +94 -1
  16. package/cli/lib/dispatch.mjs +3 -0
  17. package/cli/lib/embedding-index.mjs +199 -0
  18. package/cli/lib/embedding-provider.mjs +121 -0
  19. package/cli/lib/embedding-rerank.mjs +52 -0
  20. package/cli/lib/learn-args.mjs +490 -0
  21. package/cli/lib/learn-backup.mjs +748 -0
  22. package/cli/lib/learn-curation.mjs +612 -0
  23. package/cli/lib/learn-eval.mjs +459 -0
  24. package/cli/lib/learn-profile.mjs +763 -0
  25. package/cli/lib/learn-select.mjs +223 -0
  26. package/cli/lib/learn-shared.mjs +158 -0
  27. package/cli/lib/learn-test-support.mjs +218 -0
  28. package/cli/lib/learn-usage.mjs +360 -0
  29. package/cli/lib/learn.mjs +83 -3694
  30. package/cli/lib/lexical.mjs +137 -0
  31. package/cli/lib/local-config.mjs +110 -0
  32. package/cli/lib/mcp-server.mjs +13 -3
  33. package/cli/lib/pack.mjs +31 -4
  34. package/cli/lib/prompt.mjs +42 -4
  35. package/cli/lib/recall.mjs +193 -0
  36. package/cli/lib/retrieval-index.mjs +0 -0
  37. package/cli/lib/search-ranked.mjs +170 -0
  38. package/cli/lib/search.mjs +11 -1
  39. package/cli/lib/signals-backlog-commands.mjs +673 -0
  40. package/cli/lib/signals-backlog.mjs +361 -0
  41. package/cli/lib/signals-eval.mjs +176 -0
  42. package/cli/lib/signals-readiness.mjs +247 -0
  43. package/cli/lib/signals-registry.mjs +377 -0
  44. package/cli/lib/signals-render.mjs +478 -0
  45. package/cli/lib/signals-shared.mjs +75 -0
  46. package/cli/lib/signals.mjs +16 -2337
  47. package/cli/lib/site-bundle-handoff-expected.mjs +173 -0
  48. package/cli/lib/site-bundle-handoff-runbook-action-summary.mjs +332 -0
  49. package/cli/lib/site-bundle-handoff-runbook-human-lines.mjs +167 -0
  50. package/cli/lib/site-bundle-handoff-runbook-maps.mjs +238 -0
  51. package/cli/lib/site-bundle-handoff-runbook-next-step.mjs +278 -0
  52. package/cli/lib/site-bundle-handoff-runbook.mjs +44 -931
  53. package/cli/lib/site-test-support.mjs +68 -0
  54. package/cli/lib/skill-proposals-apply-commands.mjs +135 -0
  55. package/cli/lib/skill-proposals-apply-contract.mjs +750 -0
  56. package/cli/lib/skill-proposals-apply-plan.mjs +118 -0
  57. package/cli/lib/skill-proposals-generate.mjs +298 -0
  58. package/cli/lib/skill-proposals-render.mjs +532 -0
  59. package/cli/lib/skill-proposals-review.mjs +262 -0
  60. package/cli/lib/skill-proposals.mjs +15 -2046
  61. package/cli/lib/workspace-args.mjs +83 -0
  62. package/cli/lib/workspace-git.mjs +169 -0
  63. package/cli/lib/workspace-learning.mjs +483 -0
  64. package/cli/lib/workspace-repo.mjs +139 -0
  65. package/cli/lib/workspace-report.mjs +283 -0
  66. package/cli/lib/workspace-test-support.mjs +99 -0
  67. package/cli/lib/workspace.mjs +30 -1056
  68. package/docs/AI-LEARNING-PHASE2.md +215 -0
  69. package/docs/DISTRIBUTION.ko.md +2 -2
  70. package/docs/DISTRIBUTION.md +2 -2
  71. package/docs/NEXT-SURFACE-DECISION.md +125 -0
  72. package/docs/PRODUCT-READINESS.md +3 -3
  73. package/docs/RELEASE-GATES.ko.md +35 -0
  74. package/docs/RELEASE-GATES.md +234 -0
  75. package/docs/ROADMAP.md +53 -8
  76. package/docs/external-status.md +6 -8
  77. package/docs/inspection-20260630.md +169 -0
  78. package/docs/integrations/design-ai-mcp-server.md +4 -4
  79. package/docs/reference/ant-design.md +413 -0
  80. package/docs/reference/awesome-design-md.md +439 -0
  81. package/docs/reference/mui.md +783 -0
  82. package/docs/reference/shadcn-ui.md +298 -0
  83. package/examples/component-accordion-actions.md +5 -5
  84. package/examples/component-accordion-details.md +5 -5
  85. package/examples/component-accordion-summary.md +5 -5
  86. package/examples/component-accordion.md +3 -3
  87. package/examples/component-affix.md +1 -1
  88. package/examples/component-alert-dialog.md +1 -1
  89. package/examples/component-alert-title.md +1 -1
  90. package/examples/component-alert.md +3 -3
  91. package/examples/component-anchor.md +1 -1
  92. package/examples/component-app-bar.md +1 -1
  93. package/examples/component-aspect-ratio.md +1 -1
  94. package/examples/component-auto-complete.md +2 -2
  95. package/examples/component-avatar-group.md +5 -5
  96. package/examples/component-avatar.md +3 -3
  97. package/examples/component-back-top.md +1 -1
  98. package/examples/component-backdrop.md +1 -1
  99. package/examples/component-badge.md +3 -3
  100. package/examples/component-border-beam.md +3 -3
  101. package/examples/component-bottom-navigation.md +1 -1
  102. package/examples/component-box.md +1 -1
  103. package/examples/component-breadcrumb.md +3 -3
  104. package/examples/component-button-base.md +3 -3
  105. package/examples/component-button-group.md +2 -2
  106. package/examples/component-button.md +3 -3
  107. package/examples/component-calendar.md +2 -2
  108. package/examples/component-card-actions.md +1 -1
  109. package/examples/component-card-content.md +1 -1
  110. package/examples/component-card-header.md +1 -1
  111. package/examples/component-card-media.md +1 -1
  112. package/examples/component-card.md +3 -3
  113. package/examples/component-carousel.md +2 -2
  114. package/examples/component-cascader.md +1 -1
  115. package/examples/component-chart.md +1 -1
  116. package/examples/component-checkbox.md +3 -3
  117. package/examples/component-click-away-listener.md +1 -1
  118. package/examples/component-code.md +1 -1
  119. package/examples/component-collapsible.md +1 -1
  120. package/examples/component-color-picker.md +1 -1
  121. package/examples/component-combobox.md +1 -1
  122. package/examples/component-command.md +1 -1
  123. package/examples/component-config-provider.md +3 -3
  124. package/examples/component-context-menu.md +1 -1
  125. package/examples/component-css-baseline.md +3 -3
  126. package/examples/component-date-picker.md +2 -2
  127. package/examples/component-descriptions.md +1 -1
  128. package/examples/component-dialog-actions.md +1 -1
  129. package/examples/component-dialog-content-text.md +1 -1
  130. package/examples/component-dialog-content.md +1 -1
  131. package/examples/component-dialog-title.md +1 -1
  132. package/examples/component-dialog.md +2 -2
  133. package/examples/component-divider.md +3 -3
  134. package/examples/component-drawer.md +3 -3
  135. package/examples/component-dropdown.md +3 -3
  136. package/examples/component-empty.md +2 -2
  137. package/examples/component-fade.md +1 -1
  138. package/examples/component-field.md +1 -1
  139. package/examples/component-filled-input.md +1 -1
  140. package/examples/component-flex.md +1 -1
  141. package/examples/component-float-button.md +2 -2
  142. package/examples/component-form-control-label.md +1 -1
  143. package/examples/component-form-control.md +1 -1
  144. package/examples/component-form-controls.md +1 -1
  145. package/examples/component-form-group.md +1 -1
  146. package/examples/component-form-helper-text.md +1 -1
  147. package/examples/component-form-label.md +1 -1
  148. package/examples/component-form.md +2 -2
  149. package/examples/component-grid.md +2 -2
  150. package/examples/component-grow.md +1 -1
  151. package/examples/component-hover-card.md +1 -1
  152. package/examples/component-icon-button.md +1 -1
  153. package/examples/component-icon.md +1 -1
  154. package/examples/component-image-list.md +1 -1
  155. package/examples/component-image.md +1 -1
  156. package/examples/component-input-adornment.md +1 -1
  157. package/examples/component-input-base.md +1 -1
  158. package/examples/component-input-number.md +1 -1
  159. package/examples/component-input-otp.md +2 -2
  160. package/examples/component-input.md +3 -3
  161. package/examples/component-item.md +1 -1
  162. package/examples/component-label.md +1 -1
  163. package/examples/component-layout.md +1 -1
  164. package/examples/component-link.md +1 -1
  165. package/examples/component-list-item-avatar.md +1 -1
  166. package/examples/component-list-item-button.md +1 -1
  167. package/examples/component-list-item-icon.md +1 -1
  168. package/examples/component-list-item-text.md +1 -1
  169. package/examples/component-list-item.md +1 -1
  170. package/examples/component-list-subheader.md +1 -1
  171. package/examples/component-list.md +2 -2
  172. package/examples/component-masonry.md +1 -1
  173. package/examples/component-mentions.md +1 -1
  174. package/examples/component-menu-item.md +1 -1
  175. package/examples/component-menu-list.md +1 -1
  176. package/examples/component-menu.md +1 -1
  177. package/examples/component-menubar.md +1 -1
  178. package/examples/component-message.md +1 -1
  179. package/examples/component-mobile-stepper.md +1 -1
  180. package/examples/component-modal.md +5 -5
  181. package/examples/component-navigation-menu.md +1 -1
  182. package/examples/component-notification.md +1 -1
  183. package/examples/component-outlined-input.md +1 -1
  184. package/examples/component-pagination.md +3 -3
  185. package/examples/component-paper.md +1 -1
  186. package/examples/component-popconfirm.md +1 -1
  187. package/examples/component-popover.md +3 -3
  188. package/examples/component-popper.md +1 -1
  189. package/examples/component-progress.md +2 -2
  190. package/examples/component-qr-code.md +1 -1
  191. package/examples/component-radio.md +3 -3
  192. package/examples/component-rate.md +2 -2
  193. package/examples/component-resizable.md +1 -1
  194. package/examples/component-result.md +1 -1
  195. package/examples/component-scroll-area.md +1 -1
  196. package/examples/component-segmented.md +3 -3
  197. package/examples/component-select.md +3 -3
  198. package/examples/component-separator.md +1 -1
  199. package/examples/component-sheet.md +1 -1
  200. package/examples/component-sidebar.md +1 -1
  201. package/examples/component-skeleton.md +3 -3
  202. package/examples/component-slide.md +1 -1
  203. package/examples/component-slider.md +3 -3
  204. package/examples/component-snackbar-content.md +1 -1
  205. package/examples/component-snackbar.md +1 -1
  206. package/examples/component-sonner.md +1 -1
  207. package/examples/component-space.md +1 -1
  208. package/examples/component-speed-dial-action.md +1 -1
  209. package/examples/component-speed-dial.md +1 -1
  210. package/examples/component-spin.md +2 -2
  211. package/examples/component-spinner.md +1 -1
  212. package/examples/component-splitter.md +2 -2
  213. package/examples/component-stack.md +1 -1
  214. package/examples/component-statistic.md +1 -1
  215. package/examples/component-step-button.md +4 -4
  216. package/examples/component-step-connector.md +4 -4
  217. package/examples/component-step-content.md +1 -1
  218. package/examples/component-step-icon.md +1 -1
  219. package/examples/component-step-label.md +1 -1
  220. package/examples/component-step.md +2 -2
  221. package/examples/component-steps.md +2 -2
  222. package/examples/component-swipeable-drawer.md +1 -1
  223. package/examples/component-switch.md +3 -3
  224. package/examples/component-tab-scroll-button.md +5 -5
  225. package/examples/component-tab.md +1 -1
  226. package/examples/component-table-body.md +1 -1
  227. package/examples/component-table-cell.md +1 -1
  228. package/examples/component-table-container.md +1 -1
  229. package/examples/component-table-footer.md +1 -1
  230. package/examples/component-table-head.md +1 -1
  231. package/examples/component-table-pagination.md +1 -1
  232. package/examples/component-table-row.md +1 -1
  233. package/examples/component-table-sort-label.md +1 -1
  234. package/examples/component-table.md +2 -2
  235. package/examples/component-tabs.md +3 -3
  236. package/examples/component-tag-badge.md +2 -2
  237. package/examples/component-tag.md +1 -1
  238. package/examples/component-textarea-autosize.md +1 -1
  239. package/examples/component-textarea.md +1 -1
  240. package/examples/component-time-picker.md +1 -1
  241. package/examples/component-timeline.md +1 -1
  242. package/examples/component-toast.md +4 -4
  243. package/examples/component-toggle-button.md +1 -1
  244. package/examples/component-toggle.md +1 -1
  245. package/examples/component-toolbar.md +1 -1
  246. package/examples/component-tooltip.md +3 -3
  247. package/examples/component-tour.md +1 -1
  248. package/examples/component-transfer.md +1 -1
  249. package/examples/component-tree-select.md +1 -1
  250. package/examples/component-tree.md +1 -1
  251. package/examples/component-typography.md +2 -2
  252. package/examples/component-upload.md +1 -1
  253. package/examples/component-watermark.md +1 -1
  254. package/examples/component-zoom.md +1 -1
  255. package/knowledge/COVERAGE.md +4 -3
  256. package/knowledge/components/INDEX.md +202 -202
  257. package/knowledge/patterns/brand-references.md +72 -72
  258. package/package.json +1 -1
  259. package/tools/audit/local-ci.py +16 -1
  260. package/tools/audit/package-smoke.py +611 -9
  261. package/tools/audit/registry-smoke.py +534 -0
  262. package/tools/audit/release-metadata.py +47 -1
  263. package/tools/audit/smoke_assertions.py +915 -13
  264. package/tools/migrations/refs-links-to-reference-pages.py +179 -0
@@ -0,0 +1,278 @@
1
+ // Next-step stage/command/action summaries for the bundle-handoff operator runbook.
2
+
3
+ export function buildNextStepState({
4
+ stageByKey,
5
+ commandByKey,
6
+ stageActionRows,
7
+ stageHumanLineByKey,
8
+ stageHumanLineDisplayRowByKey,
9
+ }) {
10
+ const nextStageKey = "verifySourceBundle";
11
+ const nextCommandKey = "source.bundleCheck.strict";
12
+ const nextStage = stageByKey[nextStageKey] || null;
13
+ const nextStageActionRow = stageActionRows.find((stage) => stage.key === nextStageKey) || null;
14
+ const nextCommandEntry = commandByKey.get(nextCommandKey) || null;
15
+ const nextActionField = (field, fallback = "") => nextStageActionRow?.[field] || fallback;
16
+ const nextActionListField = (field) => nextActionField(field, []);
17
+ const nextActionObjectField = (field) => nextActionField(field, {});
18
+ const nextActionNumberField = (field) => nextActionField(field, 0);
19
+ const nextActionBooleanField = (field) => nextStageActionRow?.[field] === true;
20
+ const nextStageField = (field, fallback = "") => nextStage?.[field] || fallback;
21
+ const nextStageListField = (field) => nextStageField(field, []);
22
+ const nextStageBooleanField = (field) => nextStage?.[field] === true;
23
+ const nextStageCommandValues = (getValue) => nextStage?.commands?.map(getValue) || [];
24
+ const nextActionEvidenceProgressSummary = nextActionObjectField("actionEvidenceCaptureInitialValidationChecklistSummary");
25
+ const nextStageHumanLine = nextStage ? stageHumanLineByKey[nextStage.key] || "" : "";
26
+ const nextStageHumanLineDisplayRow = nextStage ? stageHumanLineDisplayRowByKey[nextStage.key] || {} : {};
27
+ const nextStageCommandCount = nextStageField("commandCount", 0);
28
+ const nextCommandField = (field, fallback = "") => nextCommandEntry?.[field] || fallback;
29
+ const nextCommandListField = (field) => nextCommandField(field, []);
30
+ const nextCommandSafety = nextCommandEntry?.safety || null;
31
+ const nextStageHumanLineSummary = nextStage ? {
32
+ stageKey: nextStage.key,
33
+ line: nextStageHumanLine,
34
+ hasEvidenceProgress: (nextActionEvidenceProgressSummary.itemCount || 0) > 0,
35
+ evidenceProgressStatus: nextActionEvidenceProgressSummary.status || "",
36
+ evidenceProgressLabel: nextActionEvidenceProgressSummary.progressLabel || "",
37
+ firstUncheckedEvidenceItemLabel: nextActionEvidenceProgressSummary.firstUncheckedItemLabel || "",
38
+ } : {};
39
+ const nextStageIdentity = {
40
+ nextStageLabel: nextStageField("label"),
41
+ nextStageSummary: nextStageField("reason"),
42
+ nextStageHumanLine,
43
+ nextStageHumanLineDisplayRow,
44
+ nextStageHumanLineSummary,
45
+ };
46
+ const nextStageActionStatus = {
47
+ nextStageActionType: nextActionField("actionType"),
48
+ nextStageActionLabel: nextActionField("actionLabel"),
49
+ nextStageActionInstruction: nextActionField("actionInstruction"),
50
+ nextStageActionButtonLabel: nextActionField("actionButtonLabel"),
51
+ nextStageActionAffordance: nextActionField("actionAffordance"),
52
+ nextStageActionEnabled: nextActionBooleanField("actionEnabled"),
53
+ nextStageActionStatus: nextActionField("actionStatus"),
54
+ nextStageActionStatusLabel: nextActionField("actionStatusLabel"),
55
+ nextStageActionStatusTone: nextActionField("actionStatusTone"),
56
+ nextStageActionDisabledReasonCode: nextActionField("actionDisabledReasonCode"),
57
+ nextStageActionDisabledReason: nextActionField("actionDisabledReason"),
58
+ };
59
+ const nextStageActionDependencies = {
60
+ nextStageActionPrerequisiteKeys: nextActionListField("actionPrerequisiteKeys"),
61
+ nextStageActionPrerequisiteLabels: nextActionListField("actionPrerequisiteLabels"),
62
+ nextStageActionPrerequisiteCount: nextActionNumberField("actionPrerequisiteCount"),
63
+ nextStageActionHasPrerequisites: nextActionBooleanField("actionHasPrerequisites"),
64
+ nextStageActionDependencyReasonCode: nextActionField("actionDependencyReasonCode"),
65
+ nextStageActionDependencyReason: nextActionField("actionDependencyReason"),
66
+ nextStageActionBlockedStageKeys: nextActionListField("actionBlockedStageKeys"),
67
+ nextStageActionBlockedStageLabels: nextActionListField("actionBlockedStageLabels"),
68
+ nextStageActionBlockedStageCount: nextActionNumberField("actionBlockedStageCount"),
69
+ nextStageActionBlocksStages: nextActionBooleanField("actionBlocksStages"),
70
+ nextStageActionCompletionCriteria: nextActionListField("actionCompletionCriteria"),
71
+ nextStageActionCompletionCriteriaCount: nextActionNumberField("actionCompletionCriteriaCount"),
72
+ nextStageActionHasCompletionCriteria: nextActionBooleanField("actionHasCompletionCriteria"),
73
+ };
74
+ const nextStageActionEvidence = {
75
+ nextStageActionEvidenceRequirements: nextActionListField("actionEvidenceRequirements"),
76
+ nextStageActionEvidenceRequirementCount: nextActionNumberField("actionEvidenceRequirementCount"),
77
+ nextStageActionRequiresEvidence: nextActionBooleanField("actionRequiresEvidence"),
78
+ nextStageActionEvidenceTarget: nextActionField("actionEvidenceTarget"),
79
+ nextStageActionEvidenceTargetLabel: nextActionField("actionEvidenceTargetLabel"),
80
+ };
81
+ const nextStageEvidenceCaptureFieldMetadata = {
82
+ nextStageActionEvidenceCaptureFields: nextActionListField("actionEvidenceCaptureFields"),
83
+ nextStageActionEvidenceCaptureFieldKeys: nextActionListField("actionEvidenceCaptureFieldKeys"),
84
+ nextStageActionEvidenceCaptureFieldLabels: nextActionListField("actionEvidenceCaptureFieldLabels"),
85
+ nextStageActionEvidenceCaptureFieldPlaceholders: nextActionListField("actionEvidenceCaptureFieldPlaceholders"),
86
+ nextStageActionEvidenceCaptureFieldRequirementLabels: nextActionListField("actionEvidenceCaptureFieldRequirementLabels"),
87
+ nextStageActionEvidenceCaptureFieldAriaLabels: nextActionListField("actionEvidenceCaptureFieldAriaLabels"),
88
+ nextStageActionEvidenceCaptureFieldHelpTexts: nextActionListField("actionEvidenceCaptureFieldHelpTexts"),
89
+ nextStageActionEvidenceCaptureFieldSectionKeys: nextActionListField("actionEvidenceCaptureFieldSectionKeys"),
90
+ nextStageActionEvidenceCaptureFieldSectionLabels: nextActionListField("actionEvidenceCaptureFieldSectionLabels"),
91
+ nextStageActionEvidenceCaptureSectionKeys: nextActionListField("actionEvidenceCaptureSectionKeys"),
92
+ nextStageActionEvidenceCaptureSectionLabels: nextActionListField("actionEvidenceCaptureSectionLabels"),
93
+ nextStageActionEvidenceCaptureSectionCount: nextActionNumberField("actionEvidenceCaptureSectionCount"),
94
+ };
95
+ const nextStageEvidenceCapturePayload = {
96
+ nextStageActionEvidenceCaptureFieldPayloadNamespaces: nextActionListField("actionEvidenceCaptureFieldPayloadNamespaces"),
97
+ nextStageActionEvidenceCaptureFieldPayloadPaths: nextActionListField("actionEvidenceCaptureFieldPayloadPaths"),
98
+ nextStageActionEvidenceCapturePayloadNamespaces: nextActionListField("actionEvidenceCapturePayloadNamespaces"),
99
+ nextStageActionEvidenceCapturePayloadNamespaceCount: nextActionNumberField("actionEvidenceCapturePayloadNamespaceCount"),
100
+ nextStageActionEvidenceCapturePayloadTemplate: nextActionObjectField("actionEvidenceCapturePayloadTemplate"),
101
+ nextStageActionEvidenceCapturePayloadFlatTemplate: nextActionObjectField("actionEvidenceCapturePayloadFlatTemplate"),
102
+ nextStageActionEvidenceCapturePayloadBindings: nextActionListField("actionEvidenceCapturePayloadBindings"),
103
+ };
104
+ const nextStageEvidenceCaptureValidation = {
105
+ nextStageActionEvidenceCaptureValidationSpecs: nextActionListField("actionEvidenceCaptureValidationSpecs"),
106
+ nextStageActionEvidenceCaptureInitialValidationStates: nextActionListField("actionEvidenceCaptureInitialValidationStates"),
107
+ nextStageActionEvidenceCaptureInitialValidationDisplayMetadata: nextActionListField("actionEvidenceCaptureInitialValidationDisplayMetadata"),
108
+ nextStageActionEvidenceCaptureInitialValidationChecklist: nextActionListField("actionEvidenceCaptureInitialValidationChecklist"),
109
+ nextStageActionEvidenceCaptureInitialValidationChecklistSummary: nextActionObjectField("actionEvidenceCaptureInitialValidationChecklistSummary"),
110
+ nextStageActionEvidenceCaptureInitialValidationSummary: nextActionObjectField("actionEvidenceCaptureInitialValidationSummary"),
111
+ };
112
+ const nextStageEvidenceCaptureFieldRules = {
113
+ nextStageActionEvidenceCaptureFieldInputTypes: nextActionListField("actionEvidenceCaptureFieldInputTypes"),
114
+ nextStageActionEvidenceCaptureFieldValueShapes: nextActionListField("actionEvidenceCaptureFieldValueShapes"),
115
+ nextStageActionEvidenceCaptureFieldAcceptsMultiple: nextActionListField("actionEvidenceCaptureFieldAcceptsMultiple"),
116
+ nextStageActionEvidenceCaptureFieldDefaultValues: nextActionListField("actionEvidenceCaptureFieldDefaultValues"),
117
+ nextStageActionEvidenceCaptureFieldEmptyValues: nextActionListField("actionEvidenceCaptureFieldEmptyValues"),
118
+ nextStageActionEvidenceCaptureFieldValidationRules: nextActionListField("actionEvidenceCaptureFieldValidationRules"),
119
+ nextStageActionEvidenceCaptureFieldMinLengths: nextActionListField("actionEvidenceCaptureFieldMinLengths"),
120
+ nextStageActionEvidenceCaptureFieldExamples: nextActionListField("actionEvidenceCaptureFieldExamples"),
121
+ nextStageActionEvidenceCaptureFieldValidationHints: nextActionListField("actionEvidenceCaptureFieldValidationHints"),
122
+ nextStageActionRequiredEvidenceCaptureFieldKeys: nextActionListField("actionRequiredEvidenceCaptureFieldKeys"),
123
+ nextStageActionOptionalEvidenceCaptureFieldKeys: nextActionListField("actionOptionalEvidenceCaptureFieldKeys"),
124
+ };
125
+ const nextStageEvidenceCaptureFieldCounts = {
126
+ nextStageActionEvidenceCaptureFieldCount: nextActionNumberField("actionEvidenceCaptureFieldCount"),
127
+ nextStageActionRequiredEvidenceCaptureFieldCount: nextActionNumberField("actionRequiredEvidenceCaptureFieldCount"),
128
+ nextStageActionOptionalEvidenceCaptureFieldCount: nextActionNumberField("actionOptionalEvidenceCaptureFieldCount"),
129
+ nextStageActionHasEvidenceCaptureFields: nextActionBooleanField("actionHasEvidenceCaptureFields"),
130
+ };
131
+ const nextStageEvidenceCapture = {
132
+ ...nextStageEvidenceCaptureFieldMetadata,
133
+ ...nextStageEvidenceCapturePayload,
134
+ ...nextStageEvidenceCaptureValidation,
135
+ ...nextStageEvidenceCaptureFieldRules,
136
+ ...nextStageEvidenceCaptureFieldCounts,
137
+ };
138
+ const nextStageClassification = {
139
+ nextStageKind: nextStageField("kind"),
140
+ nextStageRequired: nextStage?.required === true,
141
+ nextStageRunPolicy: nextStageField("runPolicy"),
142
+ nextStageSafetyLevel: nextStageField("safetyLevel"),
143
+ };
144
+ const nextStageCommandMetadata = {
145
+ nextStageCommandCount,
146
+ nextStageCommandLabels: nextStageCommandValues((command) => command.label),
147
+ nextStageCommands: nextStageCommandValues((command) => command.command),
148
+ nextStageCommandArgsList: nextStageCommandValues((command) => command.commandArgs),
149
+ nextStageCommandRunPolicies: nextStageCommandValues((command) => command.runPolicy),
150
+ nextStageCommandSafetyLevels: nextStageCommandValues((command) => command.safety?.safetyLevel || ""),
151
+ };
152
+ const nextStageExecutionContext = {
153
+ nextStageOutputFiles: nextStageListField("outputFiles"),
154
+ nextStageHasCommands: nextStageCommandCount > 0,
155
+ nextStageManual: nextStageCommandCount === 0,
156
+ nextStageWritesLocalFile: nextStageBooleanField("writesLocalFile"),
157
+ nextStageExternalCalls: nextStageBooleanField("externalCalls"),
158
+ nextStageTargetRepoMutation: nextStageBooleanField("targetRepoMutation"),
159
+ nextStageCommandKeys: nextStageListField("commandKeys"),
160
+ };
161
+ const nextStageCommandSummary = {
162
+ ...nextStageClassification,
163
+ ...nextStageCommandMetadata,
164
+ ...nextStageExecutionContext,
165
+ };
166
+ const nextCommandSummary = {
167
+ nextCommand: nextCommandField("command"),
168
+ nextCommandArgs: nextCommandListField("commandArgs"),
169
+ nextCommandRunPolicy: nextCommandField("runPolicy"),
170
+ nextCommandSafetyLevel: nextCommandSafety?.safetyLevel || "",
171
+ nextCommandSafety,
172
+ nextCommandEntry,
173
+ };
174
+ const nextActionCoreSummary = {
175
+ nextActionKey: nextStageKey,
176
+ nextActionType: nextActionField("actionType"),
177
+ nextActionLabel: nextActionField("actionLabel"),
178
+ nextActionEnabled: nextActionBooleanField("actionEnabled"),
179
+ nextActionStatus: nextActionField("actionStatus"),
180
+ nextActionStatusLabel: nextActionField("actionStatusLabel"),
181
+ nextActionStatusTone: nextActionField("actionStatusTone"),
182
+ nextActionDisabledReasonCode: nextActionField("actionDisabledReasonCode"),
183
+ nextActionPrerequisiteKeys: nextActionListField("actionPrerequisiteKeys"),
184
+ nextActionPrerequisiteLabels: nextActionListField("actionPrerequisiteLabels"),
185
+ nextActionPrerequisiteCount: nextActionNumberField("actionPrerequisiteCount"),
186
+ nextActionHasPrerequisites: nextActionBooleanField("actionHasPrerequisites"),
187
+ nextActionDependencyReasonCode: nextActionField("actionDependencyReasonCode"),
188
+ nextActionDependencyReason: nextActionField("actionDependencyReason"),
189
+ nextActionBlockedStageKeys: nextActionListField("actionBlockedStageKeys"),
190
+ nextActionBlockedStageLabels: nextActionListField("actionBlockedStageLabels"),
191
+ nextActionBlockedStageCount: nextActionNumberField("actionBlockedStageCount"),
192
+ nextActionBlocksStages: nextActionBooleanField("actionBlocksStages"),
193
+ nextActionCompletionCriteria: nextActionListField("actionCompletionCriteria"),
194
+ nextActionCompletionCriteriaCount: nextActionNumberField("actionCompletionCriteriaCount"),
195
+ nextActionHasCompletionCriteria: nextActionBooleanField("actionHasCompletionCriteria"),
196
+ nextActionEvidenceRequirements: nextActionListField("actionEvidenceRequirements"),
197
+ nextActionEvidenceRequirementCount: nextActionNumberField("actionEvidenceRequirementCount"),
198
+ nextActionRequiresEvidence: nextActionBooleanField("actionRequiresEvidence"),
199
+ nextActionEvidenceTarget: nextActionField("actionEvidenceTarget"),
200
+ nextActionEvidenceTargetLabel: nextActionField("actionEvidenceTargetLabel"),
201
+ };
202
+ const nextActionEvidenceCaptureFieldMetadata = {
203
+ nextActionEvidenceCaptureFields: nextActionListField("actionEvidenceCaptureFields"),
204
+ nextActionEvidenceCaptureFieldKeys: nextActionListField("actionEvidenceCaptureFieldKeys"),
205
+ nextActionEvidenceCaptureFieldLabels: nextActionListField("actionEvidenceCaptureFieldLabels"),
206
+ nextActionEvidenceCaptureFieldPlaceholders: nextActionListField("actionEvidenceCaptureFieldPlaceholders"),
207
+ nextActionEvidenceCaptureFieldRequirementLabels: nextActionListField("actionEvidenceCaptureFieldRequirementLabels"),
208
+ nextActionEvidenceCaptureFieldAriaLabels: nextActionListField("actionEvidenceCaptureFieldAriaLabels"),
209
+ nextActionEvidenceCaptureFieldHelpTexts: nextActionListField("actionEvidenceCaptureFieldHelpTexts"),
210
+ nextActionEvidenceCaptureFieldSectionKeys: nextActionListField("actionEvidenceCaptureFieldSectionKeys"),
211
+ nextActionEvidenceCaptureFieldSectionLabels: nextActionListField("actionEvidenceCaptureFieldSectionLabels"),
212
+ nextActionEvidenceCaptureSectionKeys: nextActionListField("actionEvidenceCaptureSectionKeys"),
213
+ nextActionEvidenceCaptureSectionLabels: nextActionListField("actionEvidenceCaptureSectionLabels"),
214
+ nextActionEvidenceCaptureSectionCount: nextActionNumberField("actionEvidenceCaptureSectionCount"),
215
+ };
216
+ const nextActionEvidenceCapturePayload = {
217
+ nextActionEvidenceCaptureFieldPayloadNamespaces: nextActionListField("actionEvidenceCaptureFieldPayloadNamespaces"),
218
+ nextActionEvidenceCaptureFieldPayloadPaths: nextActionListField("actionEvidenceCaptureFieldPayloadPaths"),
219
+ nextActionEvidenceCapturePayloadNamespaces: nextActionListField("actionEvidenceCapturePayloadNamespaces"),
220
+ nextActionEvidenceCapturePayloadNamespaceCount: nextActionNumberField("actionEvidenceCapturePayloadNamespaceCount"),
221
+ nextActionEvidenceCapturePayloadTemplate: nextActionObjectField("actionEvidenceCapturePayloadTemplate"),
222
+ nextActionEvidenceCapturePayloadFlatTemplate: nextActionObjectField("actionEvidenceCapturePayloadFlatTemplate"),
223
+ nextActionEvidenceCapturePayloadBindings: nextActionListField("actionEvidenceCapturePayloadBindings"),
224
+ };
225
+ const nextActionEvidenceCaptureValidation = {
226
+ nextActionEvidenceCaptureValidationSpecs: nextActionListField("actionEvidenceCaptureValidationSpecs"),
227
+ nextActionEvidenceCaptureInitialValidationStates: nextActionListField("actionEvidenceCaptureInitialValidationStates"),
228
+ nextActionEvidenceCaptureInitialValidationDisplayMetadata: nextActionListField("actionEvidenceCaptureInitialValidationDisplayMetadata"),
229
+ nextActionEvidenceCaptureInitialValidationChecklist: nextActionListField("actionEvidenceCaptureInitialValidationChecklist"),
230
+ nextActionEvidenceCaptureInitialValidationChecklistSummary: nextActionObjectField("actionEvidenceCaptureInitialValidationChecklistSummary"),
231
+ nextActionEvidenceCaptureInitialValidationSummary: nextActionObjectField("actionEvidenceCaptureInitialValidationSummary"),
232
+ };
233
+ const nextActionEvidenceCaptureFieldRules = {
234
+ nextActionEvidenceCaptureFieldInputTypes: nextActionListField("actionEvidenceCaptureFieldInputTypes"),
235
+ nextActionEvidenceCaptureFieldValueShapes: nextActionListField("actionEvidenceCaptureFieldValueShapes"),
236
+ nextActionEvidenceCaptureFieldAcceptsMultiple: nextActionListField("actionEvidenceCaptureFieldAcceptsMultiple"),
237
+ nextActionEvidenceCaptureFieldDefaultValues: nextActionListField("actionEvidenceCaptureFieldDefaultValues"),
238
+ nextActionEvidenceCaptureFieldEmptyValues: nextActionListField("actionEvidenceCaptureFieldEmptyValues"),
239
+ nextActionEvidenceCaptureFieldValidationRules: nextActionListField("actionEvidenceCaptureFieldValidationRules"),
240
+ nextActionEvidenceCaptureFieldMinLengths: nextActionListField("actionEvidenceCaptureFieldMinLengths"),
241
+ nextActionEvidenceCaptureFieldExamples: nextActionListField("actionEvidenceCaptureFieldExamples"),
242
+ nextActionEvidenceCaptureFieldValidationHints: nextActionListField("actionEvidenceCaptureFieldValidationHints"),
243
+ nextActionRequiredEvidenceCaptureFieldKeys: nextActionListField("actionRequiredEvidenceCaptureFieldKeys"),
244
+ nextActionOptionalEvidenceCaptureFieldKeys: nextActionListField("actionOptionalEvidenceCaptureFieldKeys"),
245
+ };
246
+ const nextActionEvidenceCaptureFieldCounts = {
247
+ nextActionEvidenceCaptureFieldCount: nextActionNumberField("actionEvidenceCaptureFieldCount"),
248
+ nextActionRequiredEvidenceCaptureFieldCount: nextActionNumberField("actionRequiredEvidenceCaptureFieldCount"),
249
+ nextActionOptionalEvidenceCaptureFieldCount: nextActionNumberField("actionOptionalEvidenceCaptureFieldCount"),
250
+ nextActionHasEvidenceCaptureFields: nextActionBooleanField("actionHasEvidenceCaptureFields"),
251
+ };
252
+ const nextActionRunContext = {
253
+ nextActionRunPolicy: nextStageField("runPolicy"),
254
+ nextActionSafetyLevel: nextStageField("safetyLevel"),
255
+ };
256
+ const nextActionSummary = {
257
+ ...nextActionCoreSummary,
258
+ ...nextActionEvidenceCaptureFieldMetadata,
259
+ ...nextActionEvidenceCapturePayload,
260
+ ...nextActionEvidenceCaptureValidation,
261
+ ...nextActionEvidenceCaptureFieldRules,
262
+ ...nextActionEvidenceCaptureFieldCounts,
263
+ ...nextActionRunContext,
264
+ };
265
+ const nextStepSummary = {
266
+ nextStageKey,
267
+ nextStage,
268
+ ...nextStageIdentity,
269
+ ...nextStageActionStatus,
270
+ ...nextStageActionDependencies,
271
+ ...nextStageActionEvidence,
272
+ ...nextStageEvidenceCapture,
273
+ ...nextStageCommandSummary,
274
+ nextCommandKey,
275
+ ...nextCommandSummary,
276
+ };
277
+ return { nextActionSummary, nextStepSummary };
278
+ }