@lostgradient/cinder 0.9.0 → 0.11.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 (138) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/components.json +82 -4
  3. package/dist/components/access-gate/index.js +381 -239
  4. package/dist/components/chat/builders.d.ts +17 -8
  5. package/dist/components/chat/conversation-model.d.ts +1 -1
  6. package/dist/components/chat/index.d.ts +1 -1
  7. package/dist/components/chat/index.js +300 -17
  8. package/dist/components/chat/utilities/conversation.d.ts +6 -6
  9. package/dist/components/chat-conversation-header/index.js +19 -6
  10. package/dist/components/chat-conversation-list/index.js +19 -6
  11. package/dist/components/connection-indicator/connection-indicator.css +136 -0
  12. package/dist/components/connection-indicator/connection-indicator.css.d.ts +1 -0
  13. package/dist/components/connection-indicator/connection-indicator.schema.d.ts +3 -0
  14. package/dist/components/connection-indicator/connection-indicator.schema.js +89 -0
  15. package/dist/components/connection-indicator/connection-indicator.svelte.d.ts +21 -0
  16. package/dist/components/connection-indicator/connection-indicator.types.d.ts +46 -0
  17. package/dist/components/connection-indicator/connection-indicator.variables.d.ts +2 -0
  18. package/dist/components/connection-indicator/connection-indicator.variables.js +61 -0
  19. package/dist/components/connection-indicator/index.d.ts +5 -0
  20. package/dist/components/connection-indicator/index.js +409 -0
  21. package/dist/components/container/container.schema.js +4 -4
  22. package/dist/components/invocation-rule-builder/index.d.ts +1 -1
  23. package/dist/components/invocation-rule-builder/index.js +305 -150
  24. package/dist/components/invocation-rule-builder/invocation-rule-builder.css +28 -0
  25. package/dist/components/invocation-rule-builder/invocation-rule-builder.schema.js +89 -5
  26. package/dist/components/invocation-rule-builder/invocation-rule-builder.svelte.d.ts +2 -1
  27. package/dist/components/invocation-rule-builder/invocation-rule-builder.types.d.ts +114 -16
  28. package/dist/components/run-step-timeline/index.d.ts +1 -1
  29. package/dist/components/run-step-timeline/index.js +992 -559
  30. package/dist/components/run-step-timeline/run-step-branch-disclosure.svelte.d.ts +17 -0
  31. package/dist/components/run-step-timeline/run-step-timeline.css +124 -0
  32. package/dist/components/run-step-timeline/run-step-timeline.schema.js +873 -350
  33. package/dist/components/run-step-timeline/run-step-timeline.svelte.d.ts +1 -15
  34. package/dist/components/run-step-timeline/run-step-timeline.types.d.ts +182 -5
  35. package/dist/components/run-step-timeline/run-step-timeline.utilities.d.ts +52 -0
  36. package/dist/components/schedule-builder/index.d.ts +5 -0
  37. package/dist/components/schedule-builder/index.js +3176 -0
  38. package/dist/components/schedule-builder/schedule-builder.css +121 -0
  39. package/dist/components/schedule-builder/schedule-builder.css.d.ts +1 -0
  40. package/dist/components/schedule-builder/schedule-builder.schema.d.ts +3 -0
  41. package/dist/components/schedule-builder/schedule-builder.schema.js +141 -0
  42. package/dist/components/schedule-builder/schedule-builder.svelte.d.ts +22 -0
  43. package/dist/components/schedule-builder/schedule-builder.types.d.ts +130 -0
  44. package/dist/components/schedule-builder/schedule-builder.utilities.d.ts +78 -0
  45. package/dist/components/schedule-builder/schedule-builder.variables.d.ts +2 -0
  46. package/dist/components/schedule-builder/schedule-builder.variables.js +61 -0
  47. package/dist/components/tag-input/index.js +22 -4
  48. package/dist/components/tag-input/tag-input.schema.js +5 -1
  49. package/dist/components/tag-input/tag-input.types.d.ts +4 -0
  50. package/dist/index.d.ts +6 -2
  51. package/dist/index.js +22704 -20574
  52. package/dist/server/components/access-gate/index.js +2 -1
  53. package/dist/server/components/chat/index.js +4 -4
  54. package/dist/server/components/chat-conversation-header/index.js +5 -5
  55. package/dist/server/components/chat-conversation-list/index.js +3 -3
  56. package/dist/server/components/connection-indicator/index.js +16 -0
  57. package/dist/server/components/data-table/index.js +3 -3
  58. package/dist/server/components/diff-viewer/index.js +4 -3
  59. package/dist/server/components/invocation-rule-builder/index.js +1 -1
  60. package/dist/server/components/json-schema-editor/index.js +4 -3
  61. package/dist/server/components/review-editor/index.js +4 -3
  62. package/dist/server/components/run-step-timeline/index.js +1 -1
  63. package/dist/server/components/schedule-builder/index.js +30 -0
  64. package/dist/server/components/side-navigation/index.js +2 -2
  65. package/dist/server/components/table/index.js +3 -3
  66. package/dist/server/components/tag-input/index.js +1 -1
  67. package/dist/server/components/time-field/index.js +5 -3
  68. package/dist/server/index.js +100 -87
  69. package/dist/server/index.server-0sx92swg.js +9 -0
  70. package/dist/server/{index.server-mzzb7dnm.js → index.server-2bbwajb2.js} +1 -1
  71. package/dist/server/{index.server-q7w4jw89.js → index.server-2s5h1d05.js} +2 -2
  72. package/dist/server/{index.server-dg83ke3k.js → index.server-2zdbz3rj.js} +1 -1
  73. package/dist/server/{index.server-0jhra85x.js → index.server-3w72dxz7.js} +4 -4
  74. package/dist/server/{index.server-qh9qzd5t.js → index.server-4x4hgvqe.js} +283 -13
  75. package/dist/server/{index.server-c6pe4kaf.js → index.server-5gzyqv78.js} +1 -1
  76. package/dist/server/{index.server-mqt1ngqw.js → index.server-6hnfzc7f.js} +19 -6
  77. package/dist/server/index.server-be9bpqeh.js +93 -0
  78. package/dist/server/{index.server-f3z7tpxr.js → index.server-c42b462p.js} +2 -4
  79. package/dist/server/{index.server-7vyzen5x.js → index.server-c5qv3p61.js} +171 -63
  80. package/dist/server/index.server-cch0eed5.js +144 -0
  81. package/dist/server/index.server-gmh5ar16.js +2 -0
  82. package/dist/server/{index.server-0atyznp7.js → index.server-h89zk5ev.js} +7 -7
  83. package/dist/server/{index.server-jxg42jpz.js → index.server-jdcq5zza.js} +7 -7
  84. package/dist/server/{index.server-2dga5yzr.js → index.server-jfrssta6.js} +1 -1
  85. package/dist/server/{index.server-fy068yne.js → index.server-jj76374p.js} +1 -1
  86. package/dist/server/index.server-qbkxz7r2.js +750 -0
  87. package/dist/server/{index.server-marjz8ps.js → index.server-tcay903b.js} +3 -2
  88. package/dist/server/index.server-z38bxms8.js +734 -0
  89. package/dist/server/{index.server-yz4k36cw.js → index.server-z7hxtqs1.js} +1 -1
  90. package/package.json +66 -3
  91. package/src/components/chat/builders.ts +445 -14
  92. package/src/components/chat/conversation-model.ts +1 -0
  93. package/src/components/chat/index.ts +1 -0
  94. package/src/components/chat/utilities/conversation.ts +33 -15
  95. package/src/components/connection-indicator/connection-indicator.css +136 -0
  96. package/src/components/connection-indicator/connection-indicator.examples.json +31 -0
  97. package/src/components/connection-indicator/connection-indicator.schema.json +29 -0
  98. package/src/components/connection-indicator/connection-indicator.schema.ts +36 -0
  99. package/src/components/connection-indicator/connection-indicator.svelte +63 -0
  100. package/src/components/connection-indicator/connection-indicator.types.ts +58 -0
  101. package/src/components/connection-indicator/connection-indicator.variables.json +1 -0
  102. package/src/components/connection-indicator/connection-indicator.variables.ts +3 -0
  103. package/src/components/connection-indicator/index.ts +10 -0
  104. package/src/components/container/container.schema.json +3 -3
  105. package/src/components/container/container.schema.ts +3 -3
  106. package/src/components/invocation-rule-builder/index.ts +4 -0
  107. package/src/components/invocation-rule-builder/invocation-rule-builder.css +28 -0
  108. package/src/components/invocation-rule-builder/invocation-rule-builder.examples.json +6 -0
  109. package/src/components/invocation-rule-builder/invocation-rule-builder.schema.json +76 -3
  110. package/src/components/invocation-rule-builder/invocation-rule-builder.schema.ts +83 -3
  111. package/src/components/invocation-rule-builder/invocation-rule-builder.svelte +326 -113
  112. package/src/components/invocation-rule-builder/invocation-rule-builder.types.ts +157 -43
  113. package/src/components/run-step-timeline/index.ts +8 -0
  114. package/src/components/run-step-timeline/run-step-branch-disclosure.svelte +16 -0
  115. package/src/components/run-step-timeline/run-step-timeline.css +124 -0
  116. package/src/components/run-step-timeline/run-step-timeline.examples.json +18 -0
  117. package/src/components/run-step-timeline/run-step-timeline.schema.json +872 -349
  118. package/src/components/run-step-timeline/run-step-timeline.schema.ts +931 -349
  119. package/src/components/run-step-timeline/run-step-timeline.svelte +387 -268
  120. package/src/components/run-step-timeline/run-step-timeline.types.ts +192 -5
  121. package/src/components/run-step-timeline/run-step-timeline.utilities.ts +242 -0
  122. package/src/components/schedule-builder/index.ts +14 -0
  123. package/src/components/schedule-builder/schedule-builder.css +121 -0
  124. package/src/components/schedule-builder/schedule-builder.examples.json +31 -0
  125. package/src/components/schedule-builder/schedule-builder.schema.json +78 -0
  126. package/src/components/schedule-builder/schedule-builder.schema.ts +86 -0
  127. package/src/components/schedule-builder/schedule-builder.svelte +629 -0
  128. package/src/components/schedule-builder/schedule-builder.types.ts +137 -0
  129. package/src/components/schedule-builder/schedule-builder.utilities.ts +344 -0
  130. package/src/components/schedule-builder/schedule-builder.variables.json +1 -0
  131. package/src/components/schedule-builder/schedule-builder.variables.ts +3 -0
  132. package/src/components/tag-input/tag-input.schema.json +4 -0
  133. package/src/components/tag-input/tag-input.schema.ts +4 -0
  134. package/src/components/tag-input/tag-input.svelte +20 -3
  135. package/src/components/tag-input/tag-input.types.ts +4 -0
  136. package/src/index.ts +23 -0
  137. package/src/styles/components.css +2 -0
  138. package/dist/server/index.server-qk1h0n02.js +0 -393
@@ -15,412 +15,994 @@ const schema = {
15
15
  steps: {
16
16
  type: 'array',
17
17
  items: {
18
- type: 'object',
19
- properties: {
20
- id: {
21
- type: 'string',
22
- description: 'Stable identity; used as the keyed list identity.',
23
- },
24
- label: {
25
- type: 'string',
26
- description: 'Display label for this step.',
27
- },
28
- status: {
29
- enum: [
30
- 'pending',
31
- 'running',
32
- 'succeeded',
33
- 'failed',
34
- 'cancelled',
35
- 'skipped',
36
- 'retrying',
37
- 'waiting_approval',
38
- ],
39
- description: 'Generic execution state.',
40
- },
41
- startTime: {
42
- type: 'string',
43
- description: 'ISO datetime string for when this step started.',
44
- },
45
- endTime: {
46
- type: 'string',
47
- description: 'ISO datetime string for when this step ended.',
48
- },
49
- duration: {
50
- type: 'string',
51
- description: 'Human-readable duration string, e.g. "1m 23s".',
52
- },
53
- attemptCount: {
54
- type: 'number',
55
- description: 'Number of attempts made so far, including any retries.',
56
- },
57
- actionsCount: {
58
- type: 'number',
59
- description: 'Number of actions associated with this step.',
60
- },
61
- progress: {
62
- type: 'number',
63
- description: 'Optional determinate progress value between 0 and `progressMax`.',
64
- },
65
- progressMax: {
66
- type: 'number',
67
- description: 'Maximum value for the progress bar. Defaults to 100.',
68
- },
69
- details: {
70
- type: 'array',
71
- items: {
72
- type: 'object',
73
- properties: {
74
- id: {
75
- type: 'string',
76
- description: 'Stable identity for this detail panel.',
77
- },
78
- label: {
79
- type: 'string',
80
- description: 'Trigger label rendered on the Collapsible header.',
81
- },
82
- content: {
83
- type: 'string',
84
- description: 'Pre-formatted content shown inside the panel.',
85
- },
86
- },
87
- additionalProperties: false,
88
- required: ['content', 'id', 'label'],
89
- },
90
- description: 'Expandable detail panels (logs, payloads, errors) shown inline.',
91
- },
92
- link: {
18
+ anyOf: [
19
+ {
93
20
  type: 'object',
94
21
  properties: {
95
- href: {
22
+ id: {
96
23
  type: 'string',
97
- description: 'Destination URL for the step link.',
24
+ description: 'Stable identity; used as the keyed list identity.',
98
25
  },
99
26
  label: {
100
27
  type: 'string',
101
- description: 'Visible text for the step link.',
28
+ description: 'Display label for this step.',
102
29
  },
103
- },
104
- additionalProperties: false,
105
- required: ['href', 'label'],
106
- description: 'Optional link to logs, traces, or a step detail route.',
107
- },
108
- children: {
109
- type: 'array',
110
- items: {
111
- type: 'object',
112
- properties: {
113
- id: {
114
- type: 'string',
115
- description: 'Stable identity; used as the keyed list identity.',
116
- },
117
- label: {
118
- type: 'string',
119
- description: 'Display label for this step.',
120
- },
121
- status: {
122
- enum: [
123
- 'pending',
124
- 'running',
125
- 'succeeded',
126
- 'failed',
127
- 'cancelled',
128
- 'skipped',
129
- 'retrying',
130
- 'waiting_approval',
131
- ],
132
- description: 'Generic execution state.',
133
- },
134
- startTime: {
135
- type: 'string',
136
- description: 'ISO datetime string for when this step started.',
137
- },
138
- endTime: {
139
- type: 'string',
140
- description: 'ISO datetime string for when this step ended.',
141
- },
142
- duration: {
143
- type: 'string',
144
- description: 'Human-readable duration string, e.g. "1m 23s".',
145
- },
146
- attemptCount: {
147
- type: 'number',
148
- description: 'Number of attempts made so far, including any retries.',
149
- },
150
- actionsCount: {
151
- type: 'number',
152
- description: 'Number of actions associated with this step.',
153
- },
154
- progress: {
155
- type: 'number',
156
- description: 'Optional determinate progress value between 0 and `progressMax`.',
157
- },
158
- progressMax: {
159
- type: 'number',
160
- description: 'Maximum value for the progress bar. Defaults to 100.',
161
- },
162
- details: {
163
- type: 'array',
164
- items: {
165
- type: 'object',
166
- properties: {
167
- id: {
168
- type: 'string',
169
- description: 'Stable identity for this detail panel.',
170
- },
171
- label: {
172
- type: 'string',
173
- description: 'Trigger label rendered on the Collapsible header.',
174
- },
175
- content: {
176
- type: 'string',
177
- description: 'Pre-formatted content shown inside the panel.',
178
- },
179
- },
180
- additionalProperties: false,
181
- required: ['content', 'id', 'label'],
182
- },
183
- description: 'Expandable detail panels (logs, payloads, errors) shown inline.',
184
- },
185
- link: {
30
+ status: {
31
+ enum: [
32
+ 'pending',
33
+ 'running',
34
+ 'succeeded',
35
+ 'failed',
36
+ 'cancelled',
37
+ 'skipped',
38
+ 'retrying',
39
+ 'waiting_approval',
40
+ ],
41
+ description: 'Generic execution state.',
42
+ },
43
+ startTime: {
44
+ type: 'string',
45
+ description: 'ISO datetime string for when this step started.',
46
+ },
47
+ endTime: {
48
+ type: 'string',
49
+ description: 'ISO datetime string for when this step ended.',
50
+ },
51
+ duration: {
52
+ type: 'string',
53
+ description: 'Human-readable duration string, e.g. "1m 23s".',
54
+ },
55
+ attemptCount: {
56
+ type: 'number',
57
+ description: 'Number of attempts made so far, including any retries.',
58
+ },
59
+ actionsCount: {
60
+ type: 'number',
61
+ description: 'Number of actions associated with this step.',
62
+ },
63
+ progress: {
64
+ type: 'number',
65
+ description: 'Optional determinate progress value between 0 and `progressMax`.',
66
+ },
67
+ progressMax: {
68
+ type: 'number',
69
+ description: 'Maximum value for the progress bar. Defaults to 100.',
70
+ },
71
+ details: {
72
+ type: 'array',
73
+ items: {
186
74
  type: 'object',
187
75
  properties: {
188
- href: {
76
+ id: {
189
77
  type: 'string',
190
- description: 'Destination URL for the step link.',
78
+ description: 'Stable identity for this detail panel.',
191
79
  },
192
80
  label: {
193
81
  type: 'string',
194
- description: 'Visible text for the step link.',
82
+ description: 'Trigger label rendered on the Collapsible header.',
83
+ },
84
+ content: {
85
+ type: 'string',
86
+ description: 'Pre-formatted content shown inside the panel.',
195
87
  },
196
88
  },
197
89
  additionalProperties: false,
198
- required: ['href', 'label'],
199
- description: 'Optional link to logs, traces, or a step detail route.',
90
+ required: ['content', 'id', 'label'],
200
91
  },
201
- children: {
202
- type: 'array',
203
- items: {
204
- type: 'object',
205
- properties: {
206
- id: {
207
- type: 'string',
208
- description: 'Stable identity; used as the keyed list identity.',
209
- },
210
- label: {
211
- type: 'string',
212
- description: 'Display label for this step.',
213
- },
214
- status: {
215
- enum: [
216
- 'pending',
217
- 'running',
218
- 'succeeded',
219
- 'failed',
220
- 'cancelled',
221
- 'skipped',
222
- 'retrying',
223
- 'waiting_approval',
224
- ],
225
- description: 'Generic execution state.',
226
- },
227
- startTime: {
228
- type: 'string',
229
- description: 'ISO datetime string for when this step started.',
230
- },
231
- endTime: {
232
- type: 'string',
233
- description: 'ISO datetime string for when this step ended.',
234
- },
235
- duration: {
236
- type: 'string',
237
- description: 'Human-readable duration string, e.g. "1m 23s".',
238
- },
239
- attemptCount: {
240
- type: 'number',
241
- description: 'Number of attempts made so far, including any retries.',
242
- },
243
- actionsCount: {
244
- type: 'number',
245
- description: 'Number of actions associated with this step.',
246
- },
247
- progress: {
248
- type: 'number',
249
- description:
250
- 'Optional determinate progress value between 0 and `progressMax`.',
251
- },
252
- progressMax: {
253
- type: 'number',
254
- description: 'Maximum value for the progress bar. Defaults to 100.',
255
- },
256
- details: {
257
- type: 'array',
258
- items: {
259
- type: 'object',
260
- properties: {
261
- id: {
262
- type: 'string',
263
- description: 'Stable identity for this detail panel.',
264
- },
265
- label: {
266
- type: 'string',
267
- description: 'Trigger label rendered on the Collapsible header.',
268
- },
269
- content: {
270
- type: 'string',
271
- description: 'Pre-formatted content shown inside the panel.',
272
- },
273
- },
274
- additionalProperties: false,
275
- required: ['content', 'id', 'label'],
276
- },
277
- description:
278
- 'Expandable detail panels (logs, payloads, errors) shown inline.',
279
- },
280
- link: {
92
+ description: 'Expandable detail panels (logs, payloads, errors) shown inline.',
93
+ },
94
+ link: {
95
+ type: 'object',
96
+ properties: {
97
+ href: {
98
+ type: 'string',
99
+ description: 'Destination URL for the step link.',
100
+ },
101
+ label: {
102
+ type: 'string',
103
+ description: 'Visible text for the step link.',
104
+ },
105
+ },
106
+ additionalProperties: false,
107
+ required: ['href', 'label'],
108
+ description: 'Optional link to logs, traces, or a step detail route.',
109
+ },
110
+ rewound: {
111
+ type: 'boolean',
112
+ description:
113
+ 'Marks a step that was speculatively executed and then unwound (rolled back).',
114
+ },
115
+ compensates: {
116
+ type: 'string',
117
+ description: 'Id of the forward step that this step compensates (reverses).',
118
+ },
119
+ children: {
120
+ type: 'array',
121
+ items: {
122
+ type: 'object',
123
+ properties: {
124
+ id: {
125
+ type: 'string',
126
+ description: 'Stable identity; used as the keyed list identity.',
127
+ },
128
+ label: {
129
+ type: 'string',
130
+ description: 'Display label for this step.',
131
+ },
132
+ status: {
133
+ enum: [
134
+ 'pending',
135
+ 'running',
136
+ 'succeeded',
137
+ 'failed',
138
+ 'cancelled',
139
+ 'skipped',
140
+ 'retrying',
141
+ 'waiting_approval',
142
+ ],
143
+ description: 'Generic execution state.',
144
+ },
145
+ startTime: {
146
+ type: 'string',
147
+ description: 'ISO datetime string for when this step started.',
148
+ },
149
+ endTime: {
150
+ type: 'string',
151
+ description: 'ISO datetime string for when this step ended.',
152
+ },
153
+ duration: {
154
+ type: 'string',
155
+ description: 'Human-readable duration string, e.g. "1m 23s".',
156
+ },
157
+ attemptCount: {
158
+ type: 'number',
159
+ description: 'Number of attempts made so far, including any retries.',
160
+ },
161
+ actionsCount: {
162
+ type: 'number',
163
+ description: 'Number of actions associated with this step.',
164
+ },
165
+ progress: {
166
+ type: 'number',
167
+ description:
168
+ 'Optional determinate progress value between 0 and `progressMax`.',
169
+ },
170
+ progressMax: {
171
+ type: 'number',
172
+ description: 'Maximum value for the progress bar. Defaults to 100.',
173
+ },
174
+ details: {
175
+ type: 'array',
176
+ items: {
281
177
  type: 'object',
282
178
  properties: {
283
- href: {
179
+ id: {
284
180
  type: 'string',
285
- description: 'Destination URL for the step link.',
181
+ description: 'Stable identity for this detail panel.',
286
182
  },
287
183
  label: {
288
184
  type: 'string',
289
- description: 'Visible text for the step link.',
185
+ description: 'Trigger label rendered on the Collapsible header.',
186
+ },
187
+ content: {
188
+ type: 'string',
189
+ description: 'Pre-formatted content shown inside the panel.',
290
190
  },
291
191
  },
292
192
  additionalProperties: false,
293
- required: ['href', 'label'],
294
- description: 'Optional link to logs, traces, or a step detail route.',
193
+ required: ['content', 'id', 'label'],
295
194
  },
296
- children: {
297
- type: 'array',
298
- items: {
299
- type: 'object',
300
- properties: {
301
- id: {
302
- type: 'string',
303
- description: 'Stable identity; used as the keyed list identity.',
304
- },
305
- label: {
306
- type: 'string',
307
- description: 'Display label for this step.',
308
- },
309
- status: {
310
- enum: [
311
- 'pending',
312
- 'running',
313
- 'succeeded',
314
- 'failed',
315
- 'cancelled',
316
- 'skipped',
317
- 'retrying',
318
- 'waiting_approval',
319
- ],
320
- description: 'Generic execution state.',
321
- },
322
- startTime: {
323
- type: 'string',
324
- description: 'ISO datetime string for when this step started.',
325
- },
326
- endTime: {
327
- type: 'string',
328
- description: 'ISO datetime string for when this step ended.',
329
- },
330
- duration: {
331
- type: 'string',
332
- description: 'Human-readable duration string, e.g. "1m 23s".',
333
- },
334
- attemptCount: {
335
- type: 'number',
336
- description: 'Number of attempts made so far, including any retries.',
337
- },
338
- actionsCount: {
339
- type: 'number',
340
- description: 'Number of actions associated with this step.',
341
- },
342
- progress: {
343
- type: 'number',
344
- description:
345
- 'Optional determinate progress value between 0 and `progressMax`.',
195
+ description:
196
+ 'Expandable detail panels (logs, payloads, errors) shown inline.',
197
+ },
198
+ link: {
199
+ type: 'object',
200
+ properties: {
201
+ href: {
202
+ type: 'string',
203
+ description: 'Destination URL for the step link.',
204
+ },
205
+ label: {
206
+ type: 'string',
207
+ description: 'Visible text for the step link.',
208
+ },
209
+ },
210
+ additionalProperties: false,
211
+ required: ['href', 'label'],
212
+ description: 'Optional link to logs, traces, or a step detail route.',
213
+ },
214
+ rewound: {
215
+ type: 'boolean',
216
+ description:
217
+ 'Marks a step that was speculatively executed and then unwound (rolled back).',
218
+ },
219
+ compensates: {
220
+ type: 'string',
221
+ description: 'Id of the forward step that this step compensates (reverses).',
222
+ },
223
+ children: {
224
+ type: 'array',
225
+ items: {
226
+ type: 'object',
227
+ properties: {
228
+ id: {
229
+ type: 'string',
230
+ description: 'Stable identity; used as the keyed list identity.',
231
+ },
232
+ label: {
233
+ type: 'string',
234
+ description: 'Display label for this step.',
235
+ },
236
+ status: {
237
+ enum: [
238
+ 'pending',
239
+ 'running',
240
+ 'succeeded',
241
+ 'failed',
242
+ 'cancelled',
243
+ 'skipped',
244
+ 'retrying',
245
+ 'waiting_approval',
246
+ ],
247
+ description: 'Generic execution state.',
248
+ },
249
+ startTime: {
250
+ type: 'string',
251
+ description: 'ISO datetime string for when this step started.',
252
+ },
253
+ endTime: {
254
+ type: 'string',
255
+ description: 'ISO datetime string for when this step ended.',
256
+ },
257
+ duration: {
258
+ type: 'string',
259
+ description: 'Human-readable duration string, e.g. "1m 23s".',
260
+ },
261
+ attemptCount: {
262
+ type: 'number',
263
+ description: 'Number of attempts made so far, including any retries.',
264
+ },
265
+ actionsCount: {
266
+ type: 'number',
267
+ description: 'Number of actions associated with this step.',
268
+ },
269
+ progress: {
270
+ type: 'number',
271
+ description:
272
+ 'Optional determinate progress value between 0 and `progressMax`.',
273
+ },
274
+ progressMax: {
275
+ type: 'number',
276
+ description: 'Maximum value for the progress bar. Defaults to 100.',
277
+ },
278
+ details: {
279
+ type: 'array',
280
+ items: {
281
+ type: 'object',
282
+ properties: {
283
+ id: {
284
+ type: 'string',
285
+ description: 'Stable identity for this detail panel.',
286
+ },
287
+ label: {
288
+ type: 'string',
289
+ description: 'Trigger label rendered on the Collapsible header.',
290
+ },
291
+ content: {
292
+ type: 'string',
293
+ description: 'Pre-formatted content shown inside the panel.',
294
+ },
295
+ },
296
+ additionalProperties: false,
297
+ required: ['content', 'id', 'label'],
346
298
  },
347
- progressMax: {
348
- type: 'number',
349
- description: 'Maximum value for the progress bar. Defaults to 100.',
299
+ description:
300
+ 'Expandable detail panels (logs, payloads, errors) shown inline.',
301
+ },
302
+ link: {
303
+ type: 'object',
304
+ properties: {
305
+ href: {
306
+ type: 'string',
307
+ description: 'Destination URL for the step link.',
308
+ },
309
+ label: {
310
+ type: 'string',
311
+ description: 'Visible text for the step link.',
312
+ },
350
313
  },
351
- details: {
352
- type: 'array',
353
- items: {
354
- type: 'object',
355
- properties: {
356
- id: {
357
- type: 'string',
358
- description: 'Stable identity for this detail panel.',
314
+ additionalProperties: false,
315
+ required: ['href', 'label'],
316
+ description: 'Optional link to logs, traces, or a step detail route.',
317
+ },
318
+ rewound: {
319
+ type: 'boolean',
320
+ description:
321
+ 'Marks a step that was speculatively executed and then unwound (rolled back).',
322
+ },
323
+ compensates: {
324
+ type: 'string',
325
+ description:
326
+ 'Id of the forward step that this step compensates (reverses).',
327
+ },
328
+ children: {
329
+ type: 'array',
330
+ items: {
331
+ type: 'object',
332
+ properties: {
333
+ id: {
334
+ type: 'string',
335
+ description: 'Stable identity; used as the keyed list identity.',
336
+ },
337
+ label: {
338
+ type: 'string',
339
+ description: 'Display label for this step.',
340
+ },
341
+ status: {
342
+ enum: [
343
+ 'pending',
344
+ 'running',
345
+ 'succeeded',
346
+ 'failed',
347
+ 'cancelled',
348
+ 'skipped',
349
+ 'retrying',
350
+ 'waiting_approval',
351
+ ],
352
+ description: 'Generic execution state.',
353
+ },
354
+ startTime: {
355
+ type: 'string',
356
+ description: 'ISO datetime string for when this step started.',
357
+ },
358
+ endTime: {
359
+ type: 'string',
360
+ description: 'ISO datetime string for when this step ended.',
361
+ },
362
+ duration: {
363
+ type: 'string',
364
+ description: 'Human-readable duration string, e.g. "1m 23s".',
365
+ },
366
+ attemptCount: {
367
+ type: 'number',
368
+ description:
369
+ 'Number of attempts made so far, including any retries.',
370
+ },
371
+ actionsCount: {
372
+ type: 'number',
373
+ description: 'Number of actions associated with this step.',
374
+ },
375
+ progress: {
376
+ type: 'number',
377
+ description:
378
+ 'Optional determinate progress value between 0 and `progressMax`.',
379
+ },
380
+ progressMax: {
381
+ type: 'number',
382
+ description:
383
+ 'Maximum value for the progress bar. Defaults to 100.',
384
+ },
385
+ details: {
386
+ type: 'array',
387
+ items: {
388
+ type: 'object',
389
+ properties: {
390
+ id: {
391
+ type: 'string',
392
+ description: 'Stable identity for this detail panel.',
393
+ },
394
+ label: {
395
+ type: 'string',
396
+ description:
397
+ 'Trigger label rendered on the Collapsible header.',
398
+ },
399
+ content: {
400
+ type: 'string',
401
+ description:
402
+ 'Pre-formatted content shown inside the panel.',
403
+ },
404
+ },
405
+ additionalProperties: false,
406
+ required: ['content', 'id', 'label'],
359
407
  },
360
- label: {
361
- type: 'string',
362
- description:
363
- 'Trigger label rendered on the Collapsible header.',
408
+ description:
409
+ 'Expandable detail panels (logs, payloads, errors) shown inline.',
410
+ },
411
+ link: {
412
+ type: 'object',
413
+ properties: {
414
+ href: {
415
+ type: 'string',
416
+ description: 'Destination URL for the step link.',
417
+ },
418
+ label: {
419
+ type: 'string',
420
+ description: 'Visible text for the step link.',
421
+ },
364
422
  },
365
- content: {
366
- type: 'string',
367
- description: 'Pre-formatted content shown inside the panel.',
423
+ additionalProperties: false,
424
+ required: ['href', 'label'],
425
+ description:
426
+ 'Optional link to logs, traces, or a step detail route.',
427
+ },
428
+ rewound: {
429
+ type: 'boolean',
430
+ description:
431
+ 'Marks a step that was speculatively executed and then unwound (rolled back).',
432
+ },
433
+ compensates: {
434
+ type: 'string',
435
+ description:
436
+ 'Id of the forward step that this step compensates (reverses).',
437
+ },
438
+ children: {
439
+ type: 'array',
440
+ items: {
441
+ type: 'object',
442
+ additionalProperties: true,
368
443
  },
444
+ description:
445
+ 'Descendants beyond the rendered depth cap; summarized as a depth-limit row.',
369
446
  },
370
- additionalProperties: false,
371
- required: ['content', 'id', 'label'],
372
447
  },
373
- description:
374
- 'Expandable detail panels (logs, payloads, errors) shown inline.',
448
+ additionalProperties: false,
449
+ required: ['id', 'label', 'status'],
375
450
  },
376
- link: {
451
+ description: 'Nested child-workflow steps rendered at depth 3.',
452
+ },
453
+ },
454
+ additionalProperties: false,
455
+ required: ['id', 'label', 'status'],
456
+ },
457
+ description: 'Nested child-workflow steps rendered at depth 2.',
458
+ },
459
+ },
460
+ additionalProperties: false,
461
+ required: ['id', 'label', 'status'],
462
+ },
463
+ description: 'Schema-bounded nested child-workflow steps.',
464
+ },
465
+ },
466
+ additionalProperties: false,
467
+ required: ['id', 'label', 'status'],
468
+ },
469
+ {
470
+ type: 'object',
471
+ properties: {
472
+ kind: {
473
+ const: 'branch',
474
+ description: 'Discriminator identifying a branch-group entry.',
475
+ },
476
+ id: {
477
+ type: 'string',
478
+ description: 'Stable identity; used as the keyed list identity.',
479
+ },
480
+ label: {
481
+ type: 'string',
482
+ description: 'Display label for the branch group.',
483
+ },
484
+ lanes: {
485
+ type: 'array',
486
+ items: {
487
+ type: 'object',
488
+ properties: {
489
+ id: {
490
+ type: 'string',
491
+ description:
492
+ 'Stable identity; used as the keyed list identity within the group.',
493
+ },
494
+ label: {
495
+ type: 'string',
496
+ description: 'Optional display label for the lane.',
497
+ },
498
+ outcome: {
499
+ enum: ['won', 'lost', 'settled'],
500
+ description:
501
+ 'Competitive outcome for the lane. Omit while the branch is still racing.',
502
+ },
503
+ steps: {
504
+ type: 'array',
505
+ items: {
506
+ type: 'object',
507
+ properties: {
508
+ id: {
509
+ type: 'string',
510
+ description: 'Stable identity; used as the keyed list identity.',
511
+ },
512
+ label: {
513
+ type: 'string',
514
+ description: 'Display label for this step.',
515
+ },
516
+ status: {
517
+ enum: [
518
+ 'pending',
519
+ 'running',
520
+ 'succeeded',
521
+ 'failed',
522
+ 'cancelled',
523
+ 'skipped',
524
+ 'retrying',
525
+ 'waiting_approval',
526
+ ],
527
+ description: 'Generic execution state.',
528
+ },
529
+ startTime: {
530
+ type: 'string',
531
+ description: 'ISO datetime string for when this step started.',
532
+ },
533
+ endTime: {
534
+ type: 'string',
535
+ description: 'ISO datetime string for when this step ended.',
536
+ },
537
+ duration: {
538
+ type: 'string',
539
+ description: 'Human-readable duration string, e.g. "1m 23s".',
540
+ },
541
+ attemptCount: {
542
+ type: 'number',
543
+ description: 'Number of attempts made so far, including any retries.',
544
+ },
545
+ actionsCount: {
546
+ type: 'number',
547
+ description: 'Number of actions associated with this step.',
548
+ },
549
+ progress: {
550
+ type: 'number',
551
+ description:
552
+ 'Optional determinate progress value between 0 and `progressMax`.',
553
+ },
554
+ progressMax: {
555
+ type: 'number',
556
+ description: 'Maximum value for the progress bar. Defaults to 100.',
557
+ },
558
+ details: {
559
+ type: 'array',
560
+ items: {
377
561
  type: 'object',
378
562
  properties: {
379
- href: {
563
+ id: {
380
564
  type: 'string',
381
- description: 'Destination URL for the step link.',
565
+ description: 'Stable identity for this detail panel.',
382
566
  },
383
567
  label: {
384
568
  type: 'string',
385
- description: 'Visible text for the step link.',
569
+ description: 'Trigger label rendered on the Collapsible header.',
570
+ },
571
+ content: {
572
+ type: 'string',
573
+ description: 'Pre-formatted content shown inside the panel.',
386
574
  },
387
575
  },
388
576
  additionalProperties: false,
389
- required: ['href', 'label'],
390
- description: 'Optional link to logs, traces, or a step detail route.',
577
+ required: ['content', 'id', 'label'],
578
+ },
579
+ description:
580
+ 'Expandable detail panels (logs, payloads, errors) shown inline.',
581
+ },
582
+ link: {
583
+ type: 'object',
584
+ properties: {
585
+ href: {
586
+ type: 'string',
587
+ description: 'Destination URL for the step link.',
588
+ },
589
+ label: {
590
+ type: 'string',
591
+ description: 'Visible text for the step link.',
592
+ },
391
593
  },
392
- children: {
393
- type: 'array',
394
- items: {
395
- type: 'object',
396
- additionalProperties: true,
594
+ additionalProperties: false,
595
+ required: ['href', 'label'],
596
+ description: 'Optional link to logs, traces, or a step detail route.',
597
+ },
598
+ rewound: {
599
+ type: 'boolean',
600
+ description:
601
+ 'Marks a step that was speculatively executed and then unwound (rolled back).',
602
+ },
603
+ compensates: {
604
+ type: 'string',
605
+ description:
606
+ 'Id of the forward step that this step compensates (reverses).',
607
+ },
608
+ children: {
609
+ type: 'array',
610
+ items: {
611
+ type: 'object',
612
+ properties: {
613
+ id: {
614
+ type: 'string',
615
+ description: 'Stable identity; used as the keyed list identity.',
616
+ },
617
+ label: {
618
+ type: 'string',
619
+ description: 'Display label for this step.',
620
+ },
621
+ status: {
622
+ enum: [
623
+ 'pending',
624
+ 'running',
625
+ 'succeeded',
626
+ 'failed',
627
+ 'cancelled',
628
+ 'skipped',
629
+ 'retrying',
630
+ 'waiting_approval',
631
+ ],
632
+ description: 'Generic execution state.',
633
+ },
634
+ startTime: {
635
+ type: 'string',
636
+ description: 'ISO datetime string for when this step started.',
637
+ },
638
+ endTime: {
639
+ type: 'string',
640
+ description: 'ISO datetime string for when this step ended.',
641
+ },
642
+ duration: {
643
+ type: 'string',
644
+ description: 'Human-readable duration string, e.g. "1m 23s".',
645
+ },
646
+ attemptCount: {
647
+ type: 'number',
648
+ description:
649
+ 'Number of attempts made so far, including any retries.',
650
+ },
651
+ actionsCount: {
652
+ type: 'number',
653
+ description: 'Number of actions associated with this step.',
654
+ },
655
+ progress: {
656
+ type: 'number',
657
+ description:
658
+ 'Optional determinate progress value between 0 and `progressMax`.',
659
+ },
660
+ progressMax: {
661
+ type: 'number',
662
+ description:
663
+ 'Maximum value for the progress bar. Defaults to 100.',
664
+ },
665
+ details: {
666
+ type: 'array',
667
+ items: {
668
+ type: 'object',
669
+ properties: {
670
+ id: {
671
+ type: 'string',
672
+ description: 'Stable identity for this detail panel.',
673
+ },
674
+ label: {
675
+ type: 'string',
676
+ description:
677
+ 'Trigger label rendered on the Collapsible header.',
678
+ },
679
+ content: {
680
+ type: 'string',
681
+ description:
682
+ 'Pre-formatted content shown inside the panel.',
683
+ },
684
+ },
685
+ additionalProperties: false,
686
+ required: ['content', 'id', 'label'],
687
+ },
688
+ description:
689
+ 'Expandable detail panels (logs, payloads, errors) shown inline.',
690
+ },
691
+ link: {
692
+ type: 'object',
693
+ properties: {
694
+ href: {
695
+ type: 'string',
696
+ description: 'Destination URL for the step link.',
697
+ },
698
+ label: {
699
+ type: 'string',
700
+ description: 'Visible text for the step link.',
701
+ },
702
+ },
703
+ additionalProperties: false,
704
+ required: ['href', 'label'],
705
+ description:
706
+ 'Optional link to logs, traces, or a step detail route.',
707
+ },
708
+ rewound: {
709
+ type: 'boolean',
710
+ description:
711
+ 'Marks a step that was speculatively executed and then unwound (rolled back).',
712
+ },
713
+ compensates: {
714
+ type: 'string',
715
+ description:
716
+ 'Id of the forward step that this step compensates (reverses).',
717
+ },
718
+ children: {
719
+ type: 'array',
720
+ items: {
721
+ type: 'object',
722
+ properties: {
723
+ id: {
724
+ type: 'string',
725
+ description:
726
+ 'Stable identity; used as the keyed list identity.',
727
+ },
728
+ label: {
729
+ type: 'string',
730
+ description: 'Display label for this step.',
731
+ },
732
+ status: {
733
+ enum: [
734
+ 'pending',
735
+ 'running',
736
+ 'succeeded',
737
+ 'failed',
738
+ 'cancelled',
739
+ 'skipped',
740
+ 'retrying',
741
+ 'waiting_approval',
742
+ ],
743
+ description: 'Generic execution state.',
744
+ },
745
+ startTime: {
746
+ type: 'string',
747
+ description:
748
+ 'ISO datetime string for when this step started.',
749
+ },
750
+ endTime: {
751
+ type: 'string',
752
+ description:
753
+ 'ISO datetime string for when this step ended.',
754
+ },
755
+ duration: {
756
+ type: 'string',
757
+ description:
758
+ 'Human-readable duration string, e.g. "1m 23s".',
759
+ },
760
+ attemptCount: {
761
+ type: 'number',
762
+ description:
763
+ 'Number of attempts made so far, including any retries.',
764
+ },
765
+ actionsCount: {
766
+ type: 'number',
767
+ description: 'Number of actions associated with this step.',
768
+ },
769
+ progress: {
770
+ type: 'number',
771
+ description:
772
+ 'Optional determinate progress value between 0 and `progressMax`.',
773
+ },
774
+ progressMax: {
775
+ type: 'number',
776
+ description:
777
+ 'Maximum value for the progress bar. Defaults to 100.',
778
+ },
779
+ details: {
780
+ type: 'array',
781
+ items: {
782
+ type: 'object',
783
+ properties: {
784
+ id: {
785
+ type: 'string',
786
+ description: 'Stable identity for this detail panel.',
787
+ },
788
+ label: {
789
+ type: 'string',
790
+ description:
791
+ 'Trigger label rendered on the Collapsible header.',
792
+ },
793
+ content: {
794
+ type: 'string',
795
+ description:
796
+ 'Pre-formatted content shown inside the panel.',
797
+ },
798
+ },
799
+ additionalProperties: false,
800
+ required: ['content', 'id', 'label'],
801
+ },
802
+ description:
803
+ 'Expandable detail panels (logs, payloads, errors) shown inline.',
804
+ },
805
+ link: {
806
+ type: 'object',
807
+ properties: {
808
+ href: {
809
+ type: 'string',
810
+ description: 'Destination URL for the step link.',
811
+ },
812
+ label: {
813
+ type: 'string',
814
+ description: 'Visible text for the step link.',
815
+ },
816
+ },
817
+ additionalProperties: false,
818
+ required: ['href', 'label'],
819
+ description:
820
+ 'Optional link to logs, traces, or a step detail route.',
821
+ },
822
+ rewound: {
823
+ type: 'boolean',
824
+ description:
825
+ 'Marks a step that was speculatively executed and then unwound (rolled back).',
826
+ },
827
+ compensates: {
828
+ type: 'string',
829
+ description:
830
+ 'Id of the forward step that this step compensates (reverses).',
831
+ },
832
+ children: {
833
+ type: 'array',
834
+ items: {
835
+ type: 'object',
836
+ properties: {
837
+ id: {
838
+ type: 'string',
839
+ description:
840
+ 'Stable identity; used as the keyed list identity.',
841
+ },
842
+ label: {
843
+ type: 'string',
844
+ description: 'Display label for this step.',
845
+ },
846
+ status: {
847
+ enum: [
848
+ 'pending',
849
+ 'running',
850
+ 'succeeded',
851
+ 'failed',
852
+ 'cancelled',
853
+ 'skipped',
854
+ 'retrying',
855
+ 'waiting_approval',
856
+ ],
857
+ description: 'Generic execution state.',
858
+ },
859
+ startTime: {
860
+ type: 'string',
861
+ description:
862
+ 'ISO datetime string for when this step started.',
863
+ },
864
+ endTime: {
865
+ type: 'string',
866
+ description:
867
+ 'ISO datetime string for when this step ended.',
868
+ },
869
+ duration: {
870
+ type: 'string',
871
+ description:
872
+ 'Human-readable duration string, e.g. "1m 23s".',
873
+ },
874
+ attemptCount: {
875
+ type: 'number',
876
+ description:
877
+ 'Number of attempts made so far, including any retries.',
878
+ },
879
+ actionsCount: {
880
+ type: 'number',
881
+ description:
882
+ 'Number of actions associated with this step.',
883
+ },
884
+ progress: {
885
+ type: 'number',
886
+ description:
887
+ 'Optional determinate progress value between 0 and `progressMax`.',
888
+ },
889
+ progressMax: {
890
+ type: 'number',
891
+ description:
892
+ 'Maximum value for the progress bar. Defaults to 100.',
893
+ },
894
+ details: {
895
+ type: 'array',
896
+ items: {
897
+ type: 'object',
898
+ properties: {
899
+ id: {
900
+ type: 'string',
901
+ description:
902
+ 'Stable identity for this detail panel.',
903
+ },
904
+ label: {
905
+ type: 'string',
906
+ description:
907
+ 'Trigger label rendered on the Collapsible header.',
908
+ },
909
+ content: {
910
+ type: 'string',
911
+ description:
912
+ 'Pre-formatted content shown inside the panel.',
913
+ },
914
+ },
915
+ additionalProperties: false,
916
+ required: ['content', 'id', 'label'],
917
+ },
918
+ description:
919
+ 'Expandable detail panels (logs, payloads, errors) shown inline.',
920
+ },
921
+ link: {
922
+ type: 'object',
923
+ properties: {
924
+ href: {
925
+ type: 'string',
926
+ description: 'Destination URL for the step link.',
927
+ },
928
+ label: {
929
+ type: 'string',
930
+ description: 'Visible text for the step link.',
931
+ },
932
+ },
933
+ additionalProperties: false,
934
+ required: ['href', 'label'],
935
+ description:
936
+ 'Optional link to logs, traces, or a step detail route.',
937
+ },
938
+ rewound: {
939
+ type: 'boolean',
940
+ description:
941
+ 'Marks a step that was speculatively executed and then unwound (rolled back).',
942
+ },
943
+ compensates: {
944
+ type: 'string',
945
+ description:
946
+ 'Id of the forward step that this step compensates (reverses).',
947
+ },
948
+ children: {
949
+ type: 'array',
950
+ items: {
951
+ type: 'object',
952
+ additionalProperties: true,
953
+ },
954
+ description:
955
+ 'Descendants beyond the rendered depth cap; summarized as a depth-limit row.',
956
+ },
957
+ },
958
+ additionalProperties: false,
959
+ required: ['id', 'label', 'status'],
960
+ },
961
+ description:
962
+ 'Nested child-workflow steps rendered at depth 3.',
963
+ },
964
+ },
965
+ additionalProperties: false,
966
+ required: ['id', 'label', 'status'],
967
+ },
968
+ description: 'Nested child-workflow steps rendered at depth 2.',
969
+ },
397
970
  },
398
- description:
399
- 'Descendants beyond the rendered depth cap; summarized as a depth-limit row.',
971
+ additionalProperties: false,
972
+ required: ['id', 'label', 'status'],
400
973
  },
974
+ description: 'Schema-bounded nested child-workflow steps.',
401
975
  },
402
- additionalProperties: false,
403
- required: ['id', 'label', 'status'],
404
976
  },
405
- description: 'Nested child-workflow steps rendered at depth 3.',
977
+ additionalProperties: false,
978
+ required: ['id', 'label', 'status'],
406
979
  },
980
+ description: 'Ordered steps that ran within this lane.',
407
981
  },
408
- additionalProperties: false,
409
- required: ['id', 'label', 'status'],
410
982
  },
411
- description: 'Nested child-workflow steps rendered at depth 2.',
983
+ additionalProperties: false,
984
+ required: ['id', 'steps'],
412
985
  },
986
+ description: 'The parallel sub-lanes.',
987
+ },
988
+ collapseThreshold: {
989
+ type: 'integer',
990
+ minimum: 1,
991
+ description:
992
+ 'Collapse the group by default once the lane count reaches this threshold. Defaults to 3.',
993
+ },
994
+ collapsed: {
995
+ type: 'boolean',
996
+ description: 'Force the initial collapsed (`true`) or expanded (`false`) state.',
413
997
  },
414
- additionalProperties: false,
415
- required: ['id', 'label', 'status'],
416
998
  },
417
- description: 'Schema-bounded nested child-workflow steps.',
999
+ additionalProperties: false,
1000
+ required: ['id', 'kind', 'label', 'lanes'],
418
1001
  },
419
- },
420
- additionalProperties: false,
421
- required: ['id', 'label', 'status'],
1002
+ ],
422
1003
  },
423
- description: 'Ordered list of steps to render.',
1004
+ description:
1005
+ 'Ordered list of timeline entries to render — either steps or branch/coordination groups.',
424
1006
  },
425
1007
  },
426
1008
  additionalProperties: false,