@almadar/std 3.1.0 → 3.1.2

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 (256) hide show
  1. package/behaviors/exports/atoms/std-async.orb +2 -1
  2. package/behaviors/exports/atoms/std-browse.orb +2 -1
  3. package/behaviors/exports/atoms/std-cache-aside.orb +2 -1
  4. package/behaviors/exports/atoms/std-circuit-breaker.orb +2 -1
  5. package/behaviors/exports/atoms/std-collision.orb +2 -1
  6. package/behaviors/exports/atoms/std-combat-log.orb +2 -1
  7. package/behaviors/exports/atoms/std-combat.orb +2 -1
  8. package/behaviors/exports/atoms/std-confirmation.orb +2 -1
  9. package/behaviors/exports/atoms/std-dialogue-box.orb +2 -1
  10. package/behaviors/exports/atoms/std-display.orb +2 -1
  11. package/behaviors/exports/atoms/std-drawer.orb +2 -1
  12. package/behaviors/exports/atoms/std-filter.orb +2 -1
  13. package/behaviors/exports/atoms/std-game-audio.orb +2 -1
  14. package/behaviors/exports/atoms/std-game-hud.orb +2 -1
  15. package/behaviors/exports/atoms/std-game-menu.orb +2 -1
  16. package/behaviors/exports/atoms/std-game-over-screen.orb +2 -1
  17. package/behaviors/exports/atoms/std-gameflow.orb +2 -1
  18. package/behaviors/exports/atoms/std-input.orb +2 -1
  19. package/behaviors/exports/atoms/std-inventory-panel.orb +2 -1
  20. package/behaviors/exports/atoms/std-isometric-canvas.orb +2 -1
  21. package/behaviors/exports/atoms/std-loading.orb +2 -1
  22. package/behaviors/exports/atoms/std-modal.orb +2 -1
  23. package/behaviors/exports/atoms/std-movement.orb +2 -1
  24. package/behaviors/exports/atoms/std-notification.orb +2 -1
  25. package/behaviors/exports/atoms/std-overworld.orb +2 -1
  26. package/behaviors/exports/atoms/std-pagination.orb +2 -1
  27. package/behaviors/exports/atoms/std-physics2d.orb +2 -1
  28. package/behaviors/exports/atoms/std-platformer-canvas.orb +2 -1
  29. package/behaviors/exports/atoms/std-quest.orb +2 -1
  30. package/behaviors/exports/atoms/std-rate-limiter.orb +2 -1
  31. package/behaviors/exports/atoms/std-score-board.orb +2 -1
  32. package/behaviors/exports/atoms/std-score.orb +2 -1
  33. package/behaviors/exports/atoms/std-search.orb +2 -1
  34. package/behaviors/exports/atoms/std-selection.orb +2 -1
  35. package/behaviors/exports/atoms/std-simulation-canvas.orb +2 -1
  36. package/behaviors/exports/atoms/std-sort.orb +2 -1
  37. package/behaviors/exports/atoms/std-sprite.orb +2 -1
  38. package/behaviors/exports/atoms/std-tabs.orb +2 -1
  39. package/behaviors/exports/atoms/std-timer.orb +2 -1
  40. package/behaviors/exports/atoms/std-undo.orb +2 -1
  41. package/behaviors/exports/atoms/std-wizard.orb +2 -1
  42. package/behaviors/exports/molecules/std-builder-game.orb +2 -1
  43. package/behaviors/exports/molecules/std-cart.orb +2 -1
  44. package/behaviors/exports/molecules/std-classifier-game.orb +2 -1
  45. package/behaviors/exports/molecules/std-debugger-game.orb +2 -1
  46. package/behaviors/exports/molecules/std-detail.orb +2 -1
  47. package/behaviors/exports/molecules/std-event-handler-game.orb +2 -1
  48. package/behaviors/exports/molecules/std-geospatial.orb +2 -1
  49. package/behaviors/exports/molecules/std-inventory.orb +2 -1
  50. package/behaviors/exports/molecules/std-list.orb +2 -1
  51. package/behaviors/exports/molecules/std-messaging.orb +2 -1
  52. package/behaviors/exports/molecules/std-negotiator-game.orb +2 -1
  53. package/behaviors/exports/molecules/std-platformer-game.orb +2 -1
  54. package/behaviors/exports/molecules/std-puzzle-game.orb +2 -1
  55. package/behaviors/exports/molecules/std-sequencer-game.orb +2 -1
  56. package/behaviors/exports/molecules/std-simulator-game.orb +2 -1
  57. package/behaviors/exports/molecules/std-turn-based-battle.orb +2 -1
  58. package/behaviors/exports/organisms/std-api-gateway.orb +2 -1
  59. package/behaviors/exports/organisms/std-arcade-game.orb +2 -1
  60. package/behaviors/exports/organisms/std-booking-system.orb +2 -1
  61. package/behaviors/exports/organisms/std-cicd-pipeline.orb +2 -1
  62. package/behaviors/exports/organisms/std-cms.orb +2 -1
  63. package/behaviors/exports/organisms/std-coding-academy.orb +2 -1
  64. package/behaviors/exports/organisms/std-crm.orb +2 -1
  65. package/behaviors/exports/organisms/std-devops-dashboard.orb +2 -1
  66. package/behaviors/exports/organisms/std-ecommerce.orb +2 -1
  67. package/behaviors/exports/organisms/std-finance-tracker.orb +2 -1
  68. package/behaviors/exports/organisms/std-healthcare.orb +2 -1
  69. package/behaviors/exports/organisms/std-helpdesk.orb +2 -1
  70. package/behaviors/exports/organisms/std-hr-portal.orb +2 -1
  71. package/behaviors/exports/organisms/std-iot-dashboard.orb +2 -1
  72. package/behaviors/exports/organisms/std-lms.orb +2 -1
  73. package/behaviors/exports/organisms/std-logic-training.orb +2 -1
  74. package/behaviors/exports/organisms/std-platformer-app.orb +2 -1
  75. package/behaviors/exports/organisms/std-project-manager.orb +2 -1
  76. package/behaviors/exports/organisms/std-puzzle-app.orb +2 -1
  77. package/behaviors/exports/organisms/std-realtime-chat.orb +2 -1
  78. package/behaviors/exports/organisms/std-rpg-game.orb +2 -1
  79. package/behaviors/exports/organisms/std-social-feed.orb +2 -1
  80. package/behaviors/exports/organisms/std-stem-lab.orb +2 -1
  81. package/behaviors/exports/organisms/std-strategy-game.orb +2 -1
  82. package/behaviors/exports/organisms/std-trading-dashboard.orb +2 -1
  83. package/dist/behaviors/exports/atoms/std-async.orb +421 -0
  84. package/dist/behaviors/exports/atoms/std-browse.orb +174 -0
  85. package/dist/behaviors/exports/atoms/std-cache-aside.orb +882 -0
  86. package/dist/behaviors/exports/atoms/std-circuit-breaker.orb +502 -0
  87. package/dist/behaviors/exports/atoms/std-collision.orb +617 -0
  88. package/dist/behaviors/exports/atoms/std-combat-log.orb +146 -0
  89. package/dist/behaviors/exports/atoms/std-combat.orb +411 -0
  90. package/dist/behaviors/exports/atoms/std-confirmation.orb +283 -0
  91. package/dist/behaviors/exports/atoms/std-dialogue-box.orb +239 -0
  92. package/dist/behaviors/exports/atoms/std-display.orb +843 -0
  93. package/dist/behaviors/exports/atoms/std-drawer.orb +317 -0
  94. package/dist/behaviors/exports/atoms/std-filter.orb +443 -0
  95. package/dist/behaviors/exports/atoms/std-game-audio.orb +114 -0
  96. package/dist/behaviors/exports/atoms/std-game-hud.orb +152 -0
  97. package/dist/behaviors/exports/atoms/std-game-menu.orb +212 -0
  98. package/dist/behaviors/exports/atoms/std-game-over-screen.orb +196 -0
  99. package/dist/behaviors/exports/atoms/std-gameflow.orb +319 -0
  100. package/dist/behaviors/exports/atoms/std-input.orb +630 -0
  101. package/dist/behaviors/exports/atoms/std-inventory-panel.orb +256 -0
  102. package/dist/behaviors/exports/atoms/std-isometric-canvas.orb +632 -0
  103. package/dist/behaviors/exports/atoms/std-loading.orb +512 -0
  104. package/dist/behaviors/exports/atoms/std-modal.orb +271 -0
  105. package/dist/behaviors/exports/atoms/std-movement.orb +1038 -0
  106. package/dist/behaviors/exports/atoms/std-notification.orb +419 -0
  107. package/dist/behaviors/exports/atoms/std-overworld.orb +484 -0
  108. package/dist/behaviors/exports/atoms/std-pagination.orb +332 -0
  109. package/dist/behaviors/exports/atoms/std-physics2d.orb +420 -0
  110. package/dist/behaviors/exports/atoms/std-platformer-canvas.orb +258 -0
  111. package/dist/behaviors/exports/atoms/std-quest.orb +981 -0
  112. package/dist/behaviors/exports/atoms/std-rate-limiter.orb +639 -0
  113. package/dist/behaviors/exports/atoms/std-score-board.orb +239 -0
  114. package/dist/behaviors/exports/atoms/std-score.orb +467 -0
  115. package/dist/behaviors/exports/atoms/std-search.orb +374 -0
  116. package/dist/behaviors/exports/atoms/std-selection.orb +760 -0
  117. package/dist/behaviors/exports/atoms/std-simulation-canvas.orb +184 -0
  118. package/dist/behaviors/exports/atoms/std-sort.orb +579 -0
  119. package/dist/behaviors/exports/atoms/std-sprite.orb +157 -0
  120. package/dist/behaviors/exports/atoms/std-tabs.orb +275 -0
  121. package/dist/behaviors/exports/atoms/std-timer.orb +1031 -0
  122. package/dist/behaviors/exports/atoms/std-undo.orb +695 -0
  123. package/dist/behaviors/exports/atoms/std-wizard.orb +667 -0
  124. package/dist/behaviors/exports/molecules/std-builder-game.orb +184 -0
  125. package/dist/behaviors/exports/molecules/std-cart.orb +592 -0
  126. package/dist/behaviors/exports/molecules/std-classifier-game.orb +184 -0
  127. package/dist/behaviors/exports/molecules/std-debugger-game.orb +184 -0
  128. package/dist/behaviors/exports/molecules/std-detail.orb +590 -0
  129. package/dist/behaviors/exports/molecules/std-event-handler-game.orb +184 -0
  130. package/dist/behaviors/exports/molecules/std-geospatial.orb +650 -0
  131. package/dist/behaviors/exports/molecules/std-inventory.orb +854 -0
  132. package/dist/behaviors/exports/molecules/std-list.orb +955 -0
  133. package/dist/behaviors/exports/molecules/std-messaging.orb +586 -0
  134. package/dist/behaviors/exports/molecules/std-negotiator-game.orb +184 -0
  135. package/dist/behaviors/exports/molecules/std-platformer-game.orb +497 -0
  136. package/dist/behaviors/exports/molecules/std-puzzle-game.orb +528 -0
  137. package/dist/behaviors/exports/molecules/std-sequencer-game.orb +184 -0
  138. package/dist/behaviors/exports/molecules/std-simulator-game.orb +184 -0
  139. package/dist/behaviors/exports/molecules/std-turn-based-battle.orb +444 -0
  140. package/dist/behaviors/exports/organisms/std-api-gateway.orb +2297 -0
  141. package/dist/behaviors/exports/organisms/std-arcade-game.orb +834 -0
  142. package/dist/behaviors/exports/organisms/std-booking-system.orb +3978 -0
  143. package/dist/behaviors/exports/organisms/std-cicd-pipeline.orb +2215 -0
  144. package/dist/behaviors/exports/organisms/std-cms.orb +2645 -0
  145. package/dist/behaviors/exports/organisms/std-coding-academy.orb +1395 -0
  146. package/dist/behaviors/exports/organisms/std-crm.orb +3542 -0
  147. package/dist/behaviors/exports/organisms/std-devops-dashboard.orb +3135 -0
  148. package/dist/behaviors/exports/organisms/std-ecommerce.orb +3744 -0
  149. package/dist/behaviors/exports/organisms/std-finance-tracker.orb +2386 -0
  150. package/dist/behaviors/exports/organisms/std-healthcare.orb +4680 -0
  151. package/dist/behaviors/exports/organisms/std-helpdesk.orb +2565 -0
  152. package/dist/behaviors/exports/organisms/std-hr-portal.orb +4030 -0
  153. package/dist/behaviors/exports/organisms/std-iot-dashboard.orb +2298 -0
  154. package/dist/behaviors/exports/organisms/std-lms.orb +2855 -0
  155. package/dist/behaviors/exports/organisms/std-logic-training.orb +599 -0
  156. package/dist/behaviors/exports/organisms/std-platformer-app.orb +1570 -0
  157. package/dist/behaviors/exports/organisms/std-project-manager.orb +3022 -0
  158. package/dist/behaviors/exports/organisms/std-puzzle-app.orb +744 -0
  159. package/dist/behaviors/exports/organisms/std-realtime-chat.orb +2381 -0
  160. package/dist/behaviors/exports/organisms/std-rpg-game.orb +2805 -0
  161. package/dist/behaviors/exports/organisms/std-social-feed.orb +1222 -0
  162. package/dist/behaviors/exports/organisms/std-stem-lab.orb +1211 -0
  163. package/dist/behaviors/exports/organisms/std-strategy-game.orb +1762 -0
  164. package/dist/behaviors/exports/organisms/std-trading-dashboard.orb +2218 -0
  165. package/dist/behaviors/exports-reader.d.ts +2 -0
  166. package/dist/behaviors/exports-reader.js +5 -3
  167. package/dist/behaviors/exports-reader.js.map +1 -1
  168. package/dist/behaviors/index.js +5 -3
  169. package/dist/behaviors/index.js.map +1 -1
  170. package/dist/exports/atoms/std-async.orb +421 -0
  171. package/dist/exports/atoms/std-browse.orb +174 -0
  172. package/dist/exports/atoms/std-cache-aside.orb +882 -0
  173. package/dist/exports/atoms/std-circuit-breaker.orb +502 -0
  174. package/dist/exports/atoms/std-collision.orb +617 -0
  175. package/dist/exports/atoms/std-combat-log.orb +146 -0
  176. package/dist/exports/atoms/std-combat.orb +411 -0
  177. package/dist/exports/atoms/std-confirmation.orb +283 -0
  178. package/dist/exports/atoms/std-dialogue-box.orb +239 -0
  179. package/dist/exports/atoms/std-display.orb +843 -0
  180. package/dist/exports/atoms/std-drawer.orb +317 -0
  181. package/dist/exports/atoms/std-filter.orb +443 -0
  182. package/dist/exports/atoms/std-game-audio.orb +114 -0
  183. package/dist/exports/atoms/std-game-hud.orb +152 -0
  184. package/dist/exports/atoms/std-game-menu.orb +212 -0
  185. package/dist/exports/atoms/std-game-over-screen.orb +196 -0
  186. package/dist/exports/atoms/std-gameflow.orb +319 -0
  187. package/dist/exports/atoms/std-input.orb +630 -0
  188. package/dist/exports/atoms/std-inventory-panel.orb +256 -0
  189. package/dist/exports/atoms/std-isometric-canvas.orb +632 -0
  190. package/dist/exports/atoms/std-loading.orb +512 -0
  191. package/dist/exports/atoms/std-modal.orb +271 -0
  192. package/dist/exports/atoms/std-movement.orb +1038 -0
  193. package/dist/exports/atoms/std-notification.orb +419 -0
  194. package/dist/exports/atoms/std-overworld.orb +484 -0
  195. package/dist/exports/atoms/std-pagination.orb +332 -0
  196. package/dist/exports/atoms/std-physics2d.orb +420 -0
  197. package/dist/exports/atoms/std-platformer-canvas.orb +258 -0
  198. package/dist/exports/atoms/std-quest.orb +981 -0
  199. package/dist/exports/atoms/std-rate-limiter.orb +639 -0
  200. package/dist/exports/atoms/std-score-board.orb +239 -0
  201. package/dist/exports/atoms/std-score.orb +467 -0
  202. package/dist/exports/atoms/std-search.orb +374 -0
  203. package/dist/exports/atoms/std-selection.orb +760 -0
  204. package/dist/exports/atoms/std-simulation-canvas.orb +184 -0
  205. package/dist/exports/atoms/std-sort.orb +579 -0
  206. package/dist/exports/atoms/std-sprite.orb +157 -0
  207. package/dist/exports/atoms/std-tabs.orb +275 -0
  208. package/dist/exports/atoms/std-timer.orb +1031 -0
  209. package/dist/exports/atoms/std-undo.orb +695 -0
  210. package/dist/exports/atoms/std-wizard.orb +667 -0
  211. package/dist/exports/molecules/std-builder-game.orb +184 -0
  212. package/dist/exports/molecules/std-cart.orb +592 -0
  213. package/dist/exports/molecules/std-classifier-game.orb +184 -0
  214. package/dist/exports/molecules/std-debugger-game.orb +184 -0
  215. package/dist/exports/molecules/std-detail.orb +590 -0
  216. package/dist/exports/molecules/std-event-handler-game.orb +184 -0
  217. package/dist/exports/molecules/std-geospatial.orb +650 -0
  218. package/dist/exports/molecules/std-inventory.orb +854 -0
  219. package/dist/exports/molecules/std-list.orb +955 -0
  220. package/dist/exports/molecules/std-messaging.orb +586 -0
  221. package/dist/exports/molecules/std-negotiator-game.orb +184 -0
  222. package/dist/exports/molecules/std-platformer-game.orb +497 -0
  223. package/dist/exports/molecules/std-puzzle-game.orb +528 -0
  224. package/dist/exports/molecules/std-sequencer-game.orb +184 -0
  225. package/dist/exports/molecules/std-simulator-game.orb +184 -0
  226. package/dist/exports/molecules/std-turn-based-battle.orb +444 -0
  227. package/dist/exports/organisms/std-api-gateway.orb +2297 -0
  228. package/dist/exports/organisms/std-arcade-game.orb +834 -0
  229. package/dist/exports/organisms/std-booking-system.orb +3978 -0
  230. package/dist/exports/organisms/std-cicd-pipeline.orb +2215 -0
  231. package/dist/exports/organisms/std-cms.orb +2645 -0
  232. package/dist/exports/organisms/std-coding-academy.orb +1395 -0
  233. package/dist/exports/organisms/std-crm.orb +3542 -0
  234. package/dist/exports/organisms/std-devops-dashboard.orb +3135 -0
  235. package/dist/exports/organisms/std-ecommerce.orb +3744 -0
  236. package/dist/exports/organisms/std-finance-tracker.orb +2386 -0
  237. package/dist/exports/organisms/std-healthcare.orb +4680 -0
  238. package/dist/exports/organisms/std-helpdesk.orb +2565 -0
  239. package/dist/exports/organisms/std-hr-portal.orb +4030 -0
  240. package/dist/exports/organisms/std-iot-dashboard.orb +2298 -0
  241. package/dist/exports/organisms/std-lms.orb +2855 -0
  242. package/dist/exports/organisms/std-logic-training.orb +599 -0
  243. package/dist/exports/organisms/std-platformer-app.orb +1570 -0
  244. package/dist/exports/organisms/std-project-manager.orb +3022 -0
  245. package/dist/exports/organisms/std-puzzle-app.orb +744 -0
  246. package/dist/exports/organisms/std-realtime-chat.orb +2381 -0
  247. package/dist/exports/organisms/std-rpg-game.orb +2805 -0
  248. package/dist/exports/organisms/std-social-feed.orb +1222 -0
  249. package/dist/exports/organisms/std-stem-lab.orb +1211 -0
  250. package/dist/exports/organisms/std-strategy-game.orb +1762 -0
  251. package/dist/exports/organisms/std-trading-dashboard.orb +2218 -0
  252. package/dist/index.js +5 -3
  253. package/dist/index.js.map +1 -1
  254. package/package.json +1 -1
  255. package/behaviors/exports/atoms/std-game-canvas-2d.orb +0 -135
  256. package/behaviors/exports/atoms/std-game-canvas-3d.orb +0 -224
@@ -0,0 +1,2215 @@
1
+ {
2
+ "name": "CI/CD Pipeline",
3
+ "version": "1.0.0",
4
+ "orbitals": [
5
+ {
6
+ "name": "BuildOrbital",
7
+ "entity": {
8
+ "name": "Build",
9
+ "persistence": "runtime",
10
+ "fields": [
11
+ {
12
+ "name": "id",
13
+ "type": "string",
14
+ "required": true
15
+ },
16
+ {
17
+ "name": "branch",
18
+ "type": "string",
19
+ "required": true
20
+ },
21
+ {
22
+ "name": "status",
23
+ "type": "string",
24
+ "required": true
25
+ },
26
+ {
27
+ "name": "commit",
28
+ "type": "string"
29
+ },
30
+ {
31
+ "name": "triggeredBy",
32
+ "type": "string"
33
+ }
34
+ ]
35
+ },
36
+ "traits": [
37
+ {
38
+ "name": "BuildBrowse",
39
+ "linkedEntity": "Build",
40
+ "category": "interaction",
41
+ "listens": [
42
+ {
43
+ "event": "BUILD_CREATED",
44
+ "triggers": "BUILD_CREATED"
45
+ },
46
+ {
47
+ "event": "BUILD_UPDATED",
48
+ "triggers": "BUILD_UPDATED"
49
+ }
50
+ ],
51
+ "stateMachine": {
52
+ "states": [
53
+ {
54
+ "name": "browsing",
55
+ "isInitial": true
56
+ },
57
+ {
58
+ "name": "deleting"
59
+ }
60
+ ],
61
+ "events": [
62
+ {
63
+ "key": "INIT",
64
+ "name": "Initialize"
65
+ },
66
+ {
67
+ "key": "CREATE",
68
+ "name": "CREATE"
69
+ },
70
+ {
71
+ "key": "VIEW",
72
+ "name": "VIEW",
73
+ "payload": [
74
+ {
75
+ "name": "id",
76
+ "type": "string",
77
+ "required": true
78
+ }
79
+ ]
80
+ },
81
+ {
82
+ "key": "EDIT",
83
+ "name": "EDIT",
84
+ "payload": [
85
+ {
86
+ "name": "id",
87
+ "type": "string",
88
+ "required": true
89
+ }
90
+ ]
91
+ },
92
+ {
93
+ "key": "DELETE",
94
+ "name": "DELETE",
95
+ "payload": [
96
+ {
97
+ "name": "id",
98
+ "type": "string",
99
+ "required": true
100
+ }
101
+ ]
102
+ },
103
+ {
104
+ "key": "BUILD_CREATED",
105
+ "name": "BUILD_CREATED",
106
+ "payload": [
107
+ {
108
+ "name": "data",
109
+ "type": "object",
110
+ "required": true
111
+ }
112
+ ]
113
+ },
114
+ {
115
+ "key": "BUILD_UPDATED",
116
+ "name": "BUILD_UPDATED",
117
+ "payload": [
118
+ {
119
+ "name": "data",
120
+ "type": "object",
121
+ "required": true
122
+ }
123
+ ]
124
+ },
125
+ {
126
+ "key": "CONFIRM_DELETE",
127
+ "name": "Confirm Delete"
128
+ },
129
+ {
130
+ "key": "CANCEL",
131
+ "name": "Cancel"
132
+ },
133
+ {
134
+ "key": "CLOSE",
135
+ "name": "Close"
136
+ }
137
+ ],
138
+ "transitions": [
139
+ {
140
+ "from": "browsing",
141
+ "to": "browsing",
142
+ "event": "INIT",
143
+ "effects": [
144
+ [
145
+ "fetch",
146
+ "Build"
147
+ ],
148
+ [
149
+ "render-ui",
150
+ "main",
151
+ {
152
+ "type": "stack",
153
+ "direction": "vertical",
154
+ "gap": "lg",
155
+ "children": [
156
+ {
157
+ "type": "stack",
158
+ "direction": "horizontal",
159
+ "gap": "md",
160
+ "justify": "space-between",
161
+ "children": [
162
+ {
163
+ "type": "stack",
164
+ "direction": "horizontal",
165
+ "gap": "sm",
166
+ "align": "center",
167
+ "children": [
168
+ {
169
+ "type": "icon",
170
+ "name": "package",
171
+ "size": "lg"
172
+ },
173
+ {
174
+ "type": "typography",
175
+ "content": "Builds",
176
+ "variant": "h2"
177
+ }
178
+ ]
179
+ },
180
+ {
181
+ "type": "stack",
182
+ "direction": "horizontal",
183
+ "gap": "sm",
184
+ "children": [
185
+ {
186
+ "type": "button",
187
+ "label": "Create Build",
188
+ "event": "CREATE",
189
+ "variant": "primary",
190
+ "icon": "plus"
191
+ }
192
+ ]
193
+ }
194
+ ]
195
+ },
196
+ {
197
+ "type": "divider"
198
+ },
199
+ {
200
+ "type": "data-grid",
201
+ "entity": "Build",
202
+ "emptyIcon": "inbox",
203
+ "emptyTitle": "No builds yet",
204
+ "emptyDescription": "Create your first build to get started.",
205
+ "itemActions": [
206
+ {
207
+ "label": "View",
208
+ "event": "VIEW"
209
+ },
210
+ {
211
+ "label": "Edit",
212
+ "event": "EDIT"
213
+ },
214
+ {
215
+ "label": "Delete",
216
+ "event": "DELETE",
217
+ "variant": "danger"
218
+ }
219
+ ],
220
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
221
+ "children": [
222
+ {
223
+ "type": "stack",
224
+ "direction": "vertical",
225
+ "gap": "sm",
226
+ "children": [
227
+ {
228
+ "type": "stack",
229
+ "direction": "horizontal",
230
+ "justify": "space-between",
231
+ "align": "center",
232
+ "children": [
233
+ {
234
+ "type": "stack",
235
+ "direction": "horizontal",
236
+ "gap": "sm",
237
+ "align": "center",
238
+ "children": [
239
+ {
240
+ "type": "icon",
241
+ "name": "package",
242
+ "size": "sm"
243
+ },
244
+ {
245
+ "type": "typography",
246
+ "variant": "h4",
247
+ "content": "@entity.branch"
248
+ }
249
+ ]
250
+ },
251
+ {
252
+ "type": "badge",
253
+ "label": "@entity.status"
254
+ }
255
+ ]
256
+ },
257
+ {
258
+ "type": "typography",
259
+ "variant": "caption",
260
+ "color": "muted",
261
+ "content": "@entity.commit"
262
+ }
263
+ ]
264
+ }
265
+ ]
266
+ }
267
+ ]
268
+ }
269
+ ]
270
+ ]
271
+ },
272
+ {
273
+ "from": "browsing",
274
+ "to": "browsing",
275
+ "event": "BUILD_CREATED",
276
+ "effects": [
277
+ [
278
+ "fetch",
279
+ "Build"
280
+ ]
281
+ ]
282
+ },
283
+ {
284
+ "from": "browsing",
285
+ "to": "browsing",
286
+ "event": "BUILD_UPDATED",
287
+ "effects": [
288
+ [
289
+ "fetch",
290
+ "Build"
291
+ ]
292
+ ]
293
+ },
294
+ {
295
+ "from": "browsing",
296
+ "to": "deleting",
297
+ "event": "DELETE",
298
+ "effects": [
299
+ [
300
+ "fetch",
301
+ "Build",
302
+ "@payload.id"
303
+ ],
304
+ [
305
+ "render-ui",
306
+ "modal",
307
+ {
308
+ "type": "stack",
309
+ "direction": "vertical",
310
+ "gap": "md",
311
+ "children": [
312
+ {
313
+ "type": "stack",
314
+ "direction": "horizontal",
315
+ "gap": "sm",
316
+ "children": [
317
+ {
318
+ "type": "icon",
319
+ "name": "trash-2",
320
+ "size": "md"
321
+ },
322
+ {
323
+ "type": "typography",
324
+ "content": "Delete Build",
325
+ "variant": "h3"
326
+ }
327
+ ]
328
+ },
329
+ {
330
+ "type": "divider"
331
+ },
332
+ {
333
+ "type": "typography",
334
+ "content": "Are you sure you want to delete this build?",
335
+ "variant": "body"
336
+ },
337
+ {
338
+ "type": "stack",
339
+ "direction": "horizontal",
340
+ "gap": "sm",
341
+ "justify": "end",
342
+ "children": [
343
+ {
344
+ "type": "button",
345
+ "label": "Cancel",
346
+ "event": "CANCEL",
347
+ "variant": "ghost"
348
+ },
349
+ {
350
+ "type": "button",
351
+ "label": "Delete",
352
+ "event": "CONFIRM_DELETE",
353
+ "variant": "danger",
354
+ "icon": "trash"
355
+ }
356
+ ]
357
+ }
358
+ ]
359
+ }
360
+ ]
361
+ ]
362
+ },
363
+ {
364
+ "from": "deleting",
365
+ "to": "browsing",
366
+ "event": "CONFIRM_DELETE",
367
+ "effects": [
368
+ [
369
+ "persist",
370
+ "delete",
371
+ "Build",
372
+ "@entity.id"
373
+ ],
374
+ [
375
+ "render-ui",
376
+ "modal",
377
+ null
378
+ ],
379
+ [
380
+ "fetch",
381
+ "Build"
382
+ ],
383
+ [
384
+ "notify",
385
+ "Build deleted successfully"
386
+ ]
387
+ ]
388
+ },
389
+ {
390
+ "from": "deleting",
391
+ "to": "browsing",
392
+ "event": "CANCEL",
393
+ "effects": [
394
+ [
395
+ "render-ui",
396
+ "modal",
397
+ null
398
+ ]
399
+ ]
400
+ },
401
+ {
402
+ "from": "deleting",
403
+ "to": "browsing",
404
+ "event": "CLOSE",
405
+ "effects": [
406
+ [
407
+ "render-ui",
408
+ "modal",
409
+ null
410
+ ]
411
+ ]
412
+ }
413
+ ]
414
+ }
415
+ },
416
+ {
417
+ "name": "BuildCreate",
418
+ "linkedEntity": "Build",
419
+ "category": "interaction",
420
+ "emits": [
421
+ {
422
+ "event": "BUILD_CREATED"
423
+ }
424
+ ],
425
+ "stateMachine": {
426
+ "states": [
427
+ {
428
+ "name": "closed",
429
+ "isInitial": true
430
+ },
431
+ {
432
+ "name": "open"
433
+ }
434
+ ],
435
+ "events": [
436
+ {
437
+ "key": "INIT",
438
+ "name": "Initialize"
439
+ },
440
+ {
441
+ "key": "CREATE",
442
+ "name": "Open"
443
+ },
444
+ {
445
+ "key": "CLOSE",
446
+ "name": "Close"
447
+ },
448
+ {
449
+ "key": "SAVE",
450
+ "name": "Save",
451
+ "payload": [
452
+ {
453
+ "name": "data",
454
+ "type": "object",
455
+ "required": true
456
+ }
457
+ ]
458
+ }
459
+ ],
460
+ "transitions": [
461
+ {
462
+ "from": "closed",
463
+ "to": "closed",
464
+ "event": "INIT",
465
+ "effects": [
466
+ [
467
+ "fetch",
468
+ "Build"
469
+ ]
470
+ ]
471
+ },
472
+ {
473
+ "from": "closed",
474
+ "to": "open",
475
+ "event": "CREATE",
476
+ "effects": [
477
+ [
478
+ "fetch",
479
+ "Build"
480
+ ],
481
+ [
482
+ "render-ui",
483
+ "modal",
484
+ {
485
+ "type": "stack",
486
+ "direction": "vertical",
487
+ "gap": "md",
488
+ "children": [
489
+ {
490
+ "type": "stack",
491
+ "direction": "horizontal",
492
+ "gap": "sm",
493
+ "children": [
494
+ {
495
+ "type": "icon",
496
+ "name": "plus-circle",
497
+ "size": "md"
498
+ },
499
+ {
500
+ "type": "typography",
501
+ "content": "Create Build",
502
+ "variant": "h3"
503
+ }
504
+ ]
505
+ },
506
+ {
507
+ "type": "divider"
508
+ },
509
+ {
510
+ "type": "form-section",
511
+ "entity": "Build",
512
+ "mode": "create",
513
+ "submitEvent": "SAVE",
514
+ "cancelEvent": "CLOSE",
515
+ "fields": [
516
+ "branch",
517
+ "status",
518
+ "commit",
519
+ "triggeredBy"
520
+ ]
521
+ }
522
+ ]
523
+ }
524
+ ]
525
+ ]
526
+ },
527
+ {
528
+ "from": "open",
529
+ "to": "closed",
530
+ "event": "CLOSE",
531
+ "effects": [
532
+ [
533
+ "render-ui",
534
+ "modal",
535
+ null
536
+ ]
537
+ ]
538
+ },
539
+ {
540
+ "from": "open",
541
+ "to": "closed",
542
+ "event": "SAVE",
543
+ "effects": [
544
+ [
545
+ "persist",
546
+ "create",
547
+ "Build",
548
+ "@payload.data"
549
+ ],
550
+ [
551
+ "fetch",
552
+ "Build"
553
+ ],
554
+ [
555
+ "render-ui",
556
+ "modal",
557
+ null
558
+ ],
559
+ [
560
+ "emit",
561
+ "BUILD_CREATED"
562
+ ],
563
+ [
564
+ "notify",
565
+ "Build created successfully"
566
+ ]
567
+ ]
568
+ }
569
+ ]
570
+ }
571
+ },
572
+ {
573
+ "name": "BuildEdit",
574
+ "linkedEntity": "Build",
575
+ "category": "interaction",
576
+ "emits": [
577
+ {
578
+ "event": "BUILD_UPDATED"
579
+ }
580
+ ],
581
+ "stateMachine": {
582
+ "states": [
583
+ {
584
+ "name": "closed",
585
+ "isInitial": true
586
+ },
587
+ {
588
+ "name": "open"
589
+ }
590
+ ],
591
+ "events": [
592
+ {
593
+ "key": "INIT",
594
+ "name": "Initialize"
595
+ },
596
+ {
597
+ "key": "EDIT",
598
+ "name": "Open",
599
+ "payload": [
600
+ {
601
+ "name": "id",
602
+ "type": "string",
603
+ "required": true
604
+ }
605
+ ]
606
+ },
607
+ {
608
+ "key": "CLOSE",
609
+ "name": "Close"
610
+ },
611
+ {
612
+ "key": "SAVE",
613
+ "name": "Save",
614
+ "payload": [
615
+ {
616
+ "name": "data",
617
+ "type": "object",
618
+ "required": true
619
+ }
620
+ ]
621
+ }
622
+ ],
623
+ "transitions": [
624
+ {
625
+ "from": "closed",
626
+ "to": "closed",
627
+ "event": "INIT",
628
+ "effects": [
629
+ [
630
+ "fetch",
631
+ "Build"
632
+ ]
633
+ ]
634
+ },
635
+ {
636
+ "from": "closed",
637
+ "to": "open",
638
+ "event": "EDIT",
639
+ "effects": [
640
+ [
641
+ "fetch",
642
+ "Build",
643
+ "@payload.id"
644
+ ],
645
+ [
646
+ "render-ui",
647
+ "modal",
648
+ {
649
+ "type": "stack",
650
+ "direction": "vertical",
651
+ "gap": "md",
652
+ "children": [
653
+ {
654
+ "type": "stack",
655
+ "direction": "horizontal",
656
+ "gap": "sm",
657
+ "children": [
658
+ {
659
+ "type": "icon",
660
+ "name": "edit",
661
+ "size": "md"
662
+ },
663
+ {
664
+ "type": "typography",
665
+ "content": "Edit Build",
666
+ "variant": "h3"
667
+ }
668
+ ]
669
+ },
670
+ {
671
+ "type": "divider"
672
+ },
673
+ {
674
+ "type": "form-section",
675
+ "entity": "Build",
676
+ "mode": "edit",
677
+ "submitEvent": "SAVE",
678
+ "cancelEvent": "CLOSE",
679
+ "fields": [
680
+ "branch",
681
+ "status",
682
+ "commit",
683
+ "triggeredBy"
684
+ ]
685
+ }
686
+ ]
687
+ }
688
+ ]
689
+ ]
690
+ },
691
+ {
692
+ "from": "open",
693
+ "to": "closed",
694
+ "event": "CLOSE",
695
+ "effects": [
696
+ [
697
+ "render-ui",
698
+ "modal",
699
+ null
700
+ ]
701
+ ]
702
+ },
703
+ {
704
+ "from": "open",
705
+ "to": "closed",
706
+ "event": "SAVE",
707
+ "effects": [
708
+ [
709
+ "persist",
710
+ "update",
711
+ "Build",
712
+ "@payload.data"
713
+ ],
714
+ [
715
+ "fetch",
716
+ "Build"
717
+ ],
718
+ [
719
+ "render-ui",
720
+ "modal",
721
+ null
722
+ ],
723
+ [
724
+ "emit",
725
+ "BUILD_UPDATED"
726
+ ],
727
+ [
728
+ "notify",
729
+ "Build updated successfully"
730
+ ]
731
+ ]
732
+ }
733
+ ]
734
+ }
735
+ },
736
+ {
737
+ "name": "BuildView",
738
+ "linkedEntity": "Build",
739
+ "category": "interaction",
740
+ "stateMachine": {
741
+ "states": [
742
+ {
743
+ "name": "closed",
744
+ "isInitial": true
745
+ },
746
+ {
747
+ "name": "open"
748
+ }
749
+ ],
750
+ "events": [
751
+ {
752
+ "key": "INIT",
753
+ "name": "Initialize"
754
+ },
755
+ {
756
+ "key": "VIEW",
757
+ "name": "Open",
758
+ "payload": [
759
+ {
760
+ "name": "id",
761
+ "type": "string",
762
+ "required": true
763
+ }
764
+ ]
765
+ },
766
+ {
767
+ "key": "CLOSE",
768
+ "name": "Close"
769
+ }
770
+ ],
771
+ "transitions": [
772
+ {
773
+ "from": "closed",
774
+ "to": "closed",
775
+ "event": "INIT",
776
+ "effects": [
777
+ [
778
+ "fetch",
779
+ "Build"
780
+ ]
781
+ ]
782
+ },
783
+ {
784
+ "from": "closed",
785
+ "to": "open",
786
+ "event": "VIEW",
787
+ "effects": [
788
+ [
789
+ "fetch",
790
+ "Build",
791
+ "@payload.id"
792
+ ],
793
+ [
794
+ "render-ui",
795
+ "modal",
796
+ {
797
+ "type": "stack",
798
+ "direction": "vertical",
799
+ "gap": "md",
800
+ "children": [
801
+ {
802
+ "type": "stack",
803
+ "direction": "horizontal",
804
+ "gap": "sm",
805
+ "align": "center",
806
+ "children": [
807
+ {
808
+ "type": "icon",
809
+ "name": "eye",
810
+ "size": "md"
811
+ },
812
+ {
813
+ "type": "typography",
814
+ "variant": "h3",
815
+ "content": "@entity.branch"
816
+ }
817
+ ]
818
+ },
819
+ {
820
+ "type": "divider"
821
+ },
822
+ {
823
+ "type": "stack",
824
+ "direction": "horizontal",
825
+ "gap": "md",
826
+ "children": [
827
+ {
828
+ "type": "typography",
829
+ "variant": "caption",
830
+ "content": "Branch"
831
+ },
832
+ {
833
+ "type": "typography",
834
+ "variant": "body",
835
+ "content": "@entity.branch"
836
+ }
837
+ ]
838
+ },
839
+ {
840
+ "type": "stack",
841
+ "direction": "horizontal",
842
+ "gap": "md",
843
+ "children": [
844
+ {
845
+ "type": "typography",
846
+ "variant": "caption",
847
+ "content": "Status"
848
+ },
849
+ {
850
+ "type": "typography",
851
+ "variant": "body",
852
+ "content": "@entity.status"
853
+ }
854
+ ]
855
+ },
856
+ {
857
+ "type": "stack",
858
+ "direction": "horizontal",
859
+ "gap": "md",
860
+ "children": [
861
+ {
862
+ "type": "typography",
863
+ "variant": "caption",
864
+ "content": "Commit"
865
+ },
866
+ {
867
+ "type": "typography",
868
+ "variant": "body",
869
+ "content": "@entity.commit"
870
+ }
871
+ ]
872
+ },
873
+ {
874
+ "type": "stack",
875
+ "direction": "horizontal",
876
+ "gap": "md",
877
+ "children": [
878
+ {
879
+ "type": "typography",
880
+ "variant": "caption",
881
+ "content": "TriggeredBy"
882
+ },
883
+ {
884
+ "type": "typography",
885
+ "variant": "body",
886
+ "content": "@entity.triggeredBy"
887
+ }
888
+ ]
889
+ },
890
+ {
891
+ "type": "divider"
892
+ },
893
+ {
894
+ "type": "stack",
895
+ "direction": "horizontal",
896
+ "gap": "sm",
897
+ "justify": "end",
898
+ "children": [
899
+ {
900
+ "type": "button",
901
+ "label": "Edit",
902
+ "event": "EDIT",
903
+ "variant": "primary",
904
+ "icon": "edit"
905
+ },
906
+ {
907
+ "type": "button",
908
+ "label": "Close",
909
+ "event": "CLOSE",
910
+ "variant": "ghost"
911
+ }
912
+ ]
913
+ }
914
+ ]
915
+ }
916
+ ]
917
+ ]
918
+ },
919
+ {
920
+ "from": "open",
921
+ "to": "closed",
922
+ "event": "CLOSE",
923
+ "effects": [
924
+ [
925
+ "render-ui",
926
+ "modal",
927
+ null
928
+ ]
929
+ ]
930
+ }
931
+ ]
932
+ }
933
+ }
934
+ ],
935
+ "pages": [
936
+ {
937
+ "name": "BuildsPage",
938
+ "path": "/builds",
939
+ "isInitial": true,
940
+ "traits": [
941
+ {
942
+ "ref": "BuildBrowse"
943
+ },
944
+ {
945
+ "ref": "BuildCreate"
946
+ },
947
+ {
948
+ "ref": "BuildEdit"
949
+ },
950
+ {
951
+ "ref": "BuildView"
952
+ }
953
+ ]
954
+ }
955
+ ]
956
+ },
957
+ {
958
+ "name": "StageOrbital",
959
+ "entity": {
960
+ "name": "Stage",
961
+ "persistence": "runtime",
962
+ "fields": [
963
+ {
964
+ "name": "id",
965
+ "type": "string",
966
+ "required": true
967
+ },
968
+ {
969
+ "name": "name",
970
+ "type": "string",
971
+ "required": true
972
+ },
973
+ {
974
+ "name": "status",
975
+ "type": "string",
976
+ "required": true
977
+ },
978
+ {
979
+ "name": "duration",
980
+ "type": "string"
981
+ },
982
+ {
983
+ "name": "output",
984
+ "type": "string"
985
+ }
986
+ ]
987
+ },
988
+ "traits": [
989
+ {
990
+ "name": "StageDisplay",
991
+ "linkedEntity": "Stage",
992
+ "category": "interaction",
993
+ "stateMachine": {
994
+ "states": [
995
+ {
996
+ "name": "loading",
997
+ "isInitial": true
998
+ },
999
+ {
1000
+ "name": "displaying"
1001
+ },
1002
+ {
1003
+ "name": "refreshing"
1004
+ }
1005
+ ],
1006
+ "events": [
1007
+ {
1008
+ "key": "INIT",
1009
+ "name": "Initialize"
1010
+ },
1011
+ {
1012
+ "key": "LOADED",
1013
+ "name": "Loaded"
1014
+ },
1015
+ {
1016
+ "key": "REFRESH",
1017
+ "name": "Refresh"
1018
+ },
1019
+ {
1020
+ "key": "REFRESHED",
1021
+ "name": "Refreshed"
1022
+ }
1023
+ ],
1024
+ "transitions": [
1025
+ {
1026
+ "from": "loading",
1027
+ "to": "displaying",
1028
+ "event": "INIT",
1029
+ "effects": [
1030
+ [
1031
+ "fetch",
1032
+ "Stage"
1033
+ ],
1034
+ [
1035
+ "render-ui",
1036
+ "main",
1037
+ {
1038
+ "type": "stack",
1039
+ "direction": "vertical",
1040
+ "gap": "lg",
1041
+ "children": [
1042
+ {
1043
+ "type": "stack",
1044
+ "direction": "horizontal",
1045
+ "gap": "md",
1046
+ "justify": "space-between",
1047
+ "children": [
1048
+ {
1049
+ "type": "stack",
1050
+ "direction": "horizontal",
1051
+ "gap": "md",
1052
+ "children": [
1053
+ {
1054
+ "type": "icon",
1055
+ "name": "layers",
1056
+ "size": "lg"
1057
+ },
1058
+ {
1059
+ "type": "typography",
1060
+ "content": "Stages",
1061
+ "variant": "h2"
1062
+ }
1063
+ ]
1064
+ },
1065
+ {
1066
+ "type": "button",
1067
+ "label": "Refresh",
1068
+ "event": "REFRESH",
1069
+ "variant": "secondary",
1070
+ "icon": "refresh-cw"
1071
+ }
1072
+ ]
1073
+ },
1074
+ {
1075
+ "type": "divider"
1076
+ },
1077
+ {
1078
+ "type": "simple-grid",
1079
+ "columns": 3,
1080
+ "children": [
1081
+ {
1082
+ "type": "card",
1083
+ "children": [
1084
+ {
1085
+ "type": "stack",
1086
+ "direction": "vertical",
1087
+ "gap": "sm",
1088
+ "children": [
1089
+ {
1090
+ "type": "typography",
1091
+ "variant": "caption",
1092
+ "content": "Name"
1093
+ },
1094
+ {
1095
+ "type": "typography",
1096
+ "variant": "h3",
1097
+ "content": "@entity.name"
1098
+ }
1099
+ ]
1100
+ }
1101
+ ]
1102
+ },
1103
+ {
1104
+ "type": "card",
1105
+ "children": [
1106
+ {
1107
+ "type": "stack",
1108
+ "direction": "vertical",
1109
+ "gap": "sm",
1110
+ "children": [
1111
+ {
1112
+ "type": "typography",
1113
+ "variant": "caption",
1114
+ "content": "Status"
1115
+ },
1116
+ {
1117
+ "type": "typography",
1118
+ "variant": "h3",
1119
+ "content": "@entity.status"
1120
+ }
1121
+ ]
1122
+ }
1123
+ ]
1124
+ },
1125
+ {
1126
+ "type": "card",
1127
+ "children": [
1128
+ {
1129
+ "type": "stack",
1130
+ "direction": "vertical",
1131
+ "gap": "sm",
1132
+ "children": [
1133
+ {
1134
+ "type": "typography",
1135
+ "variant": "caption",
1136
+ "content": "Duration"
1137
+ },
1138
+ {
1139
+ "type": "typography",
1140
+ "variant": "h3",
1141
+ "content": "@entity.duration"
1142
+ }
1143
+ ]
1144
+ }
1145
+ ]
1146
+ },
1147
+ {
1148
+ "type": "card",
1149
+ "children": [
1150
+ {
1151
+ "type": "stack",
1152
+ "direction": "vertical",
1153
+ "gap": "sm",
1154
+ "children": [
1155
+ {
1156
+ "type": "typography",
1157
+ "variant": "caption",
1158
+ "content": "Output"
1159
+ },
1160
+ {
1161
+ "type": "typography",
1162
+ "variant": "h3",
1163
+ "content": "@entity.output"
1164
+ }
1165
+ ]
1166
+ }
1167
+ ]
1168
+ }
1169
+ ]
1170
+ }
1171
+ ]
1172
+ }
1173
+ ]
1174
+ ]
1175
+ },
1176
+ {
1177
+ "from": "loading",
1178
+ "to": "displaying",
1179
+ "event": "LOADED",
1180
+ "effects": [
1181
+ [
1182
+ "fetch",
1183
+ "Stage"
1184
+ ],
1185
+ [
1186
+ "render-ui",
1187
+ "main",
1188
+ {
1189
+ "type": "stack",
1190
+ "direction": "vertical",
1191
+ "gap": "lg",
1192
+ "children": [
1193
+ {
1194
+ "type": "stack",
1195
+ "direction": "horizontal",
1196
+ "gap": "md",
1197
+ "justify": "space-between",
1198
+ "children": [
1199
+ {
1200
+ "type": "stack",
1201
+ "direction": "horizontal",
1202
+ "gap": "md",
1203
+ "children": [
1204
+ {
1205
+ "type": "icon",
1206
+ "name": "layers",
1207
+ "size": "lg"
1208
+ },
1209
+ {
1210
+ "type": "typography",
1211
+ "content": "Stages",
1212
+ "variant": "h2"
1213
+ }
1214
+ ]
1215
+ },
1216
+ {
1217
+ "type": "button",
1218
+ "label": "Refresh",
1219
+ "event": "REFRESH",
1220
+ "variant": "secondary",
1221
+ "icon": "refresh-cw"
1222
+ }
1223
+ ]
1224
+ },
1225
+ {
1226
+ "type": "divider"
1227
+ },
1228
+ {
1229
+ "type": "simple-grid",
1230
+ "columns": 3,
1231
+ "children": [
1232
+ {
1233
+ "type": "card",
1234
+ "children": [
1235
+ {
1236
+ "type": "stack",
1237
+ "direction": "vertical",
1238
+ "gap": "sm",
1239
+ "children": [
1240
+ {
1241
+ "type": "typography",
1242
+ "variant": "caption",
1243
+ "content": "Name"
1244
+ },
1245
+ {
1246
+ "type": "typography",
1247
+ "variant": "h3",
1248
+ "content": "@entity.name"
1249
+ }
1250
+ ]
1251
+ }
1252
+ ]
1253
+ },
1254
+ {
1255
+ "type": "card",
1256
+ "children": [
1257
+ {
1258
+ "type": "stack",
1259
+ "direction": "vertical",
1260
+ "gap": "sm",
1261
+ "children": [
1262
+ {
1263
+ "type": "typography",
1264
+ "variant": "caption",
1265
+ "content": "Status"
1266
+ },
1267
+ {
1268
+ "type": "typography",
1269
+ "variant": "h3",
1270
+ "content": "@entity.status"
1271
+ }
1272
+ ]
1273
+ }
1274
+ ]
1275
+ },
1276
+ {
1277
+ "type": "card",
1278
+ "children": [
1279
+ {
1280
+ "type": "stack",
1281
+ "direction": "vertical",
1282
+ "gap": "sm",
1283
+ "children": [
1284
+ {
1285
+ "type": "typography",
1286
+ "variant": "caption",
1287
+ "content": "Duration"
1288
+ },
1289
+ {
1290
+ "type": "typography",
1291
+ "variant": "h3",
1292
+ "content": "@entity.duration"
1293
+ }
1294
+ ]
1295
+ }
1296
+ ]
1297
+ },
1298
+ {
1299
+ "type": "card",
1300
+ "children": [
1301
+ {
1302
+ "type": "stack",
1303
+ "direction": "vertical",
1304
+ "gap": "sm",
1305
+ "children": [
1306
+ {
1307
+ "type": "typography",
1308
+ "variant": "caption",
1309
+ "content": "Output"
1310
+ },
1311
+ {
1312
+ "type": "typography",
1313
+ "variant": "h3",
1314
+ "content": "@entity.output"
1315
+ }
1316
+ ]
1317
+ }
1318
+ ]
1319
+ }
1320
+ ]
1321
+ }
1322
+ ]
1323
+ }
1324
+ ]
1325
+ ]
1326
+ },
1327
+ {
1328
+ "from": "displaying",
1329
+ "to": "displaying",
1330
+ "event": "INIT",
1331
+ "effects": [
1332
+ [
1333
+ "fetch",
1334
+ "Stage"
1335
+ ],
1336
+ [
1337
+ "render-ui",
1338
+ "main",
1339
+ {
1340
+ "type": "stack",
1341
+ "direction": "vertical",
1342
+ "gap": "lg",
1343
+ "children": [
1344
+ {
1345
+ "type": "stack",
1346
+ "direction": "horizontal",
1347
+ "gap": "md",
1348
+ "justify": "space-between",
1349
+ "children": [
1350
+ {
1351
+ "type": "stack",
1352
+ "direction": "horizontal",
1353
+ "gap": "md",
1354
+ "children": [
1355
+ {
1356
+ "type": "icon",
1357
+ "name": "layers",
1358
+ "size": "lg"
1359
+ },
1360
+ {
1361
+ "type": "typography",
1362
+ "content": "Stages",
1363
+ "variant": "h2"
1364
+ }
1365
+ ]
1366
+ },
1367
+ {
1368
+ "type": "button",
1369
+ "label": "Refresh",
1370
+ "event": "REFRESH",
1371
+ "variant": "secondary",
1372
+ "icon": "refresh-cw"
1373
+ }
1374
+ ]
1375
+ },
1376
+ {
1377
+ "type": "divider"
1378
+ },
1379
+ {
1380
+ "type": "simple-grid",
1381
+ "columns": 3,
1382
+ "children": [
1383
+ {
1384
+ "type": "card",
1385
+ "children": [
1386
+ {
1387
+ "type": "stack",
1388
+ "direction": "vertical",
1389
+ "gap": "sm",
1390
+ "children": [
1391
+ {
1392
+ "type": "typography",
1393
+ "variant": "caption",
1394
+ "content": "Name"
1395
+ },
1396
+ {
1397
+ "type": "typography",
1398
+ "variant": "h3",
1399
+ "content": "@entity.name"
1400
+ }
1401
+ ]
1402
+ }
1403
+ ]
1404
+ },
1405
+ {
1406
+ "type": "card",
1407
+ "children": [
1408
+ {
1409
+ "type": "stack",
1410
+ "direction": "vertical",
1411
+ "gap": "sm",
1412
+ "children": [
1413
+ {
1414
+ "type": "typography",
1415
+ "variant": "caption",
1416
+ "content": "Status"
1417
+ },
1418
+ {
1419
+ "type": "typography",
1420
+ "variant": "h3",
1421
+ "content": "@entity.status"
1422
+ }
1423
+ ]
1424
+ }
1425
+ ]
1426
+ },
1427
+ {
1428
+ "type": "card",
1429
+ "children": [
1430
+ {
1431
+ "type": "stack",
1432
+ "direction": "vertical",
1433
+ "gap": "sm",
1434
+ "children": [
1435
+ {
1436
+ "type": "typography",
1437
+ "variant": "caption",
1438
+ "content": "Duration"
1439
+ },
1440
+ {
1441
+ "type": "typography",
1442
+ "variant": "h3",
1443
+ "content": "@entity.duration"
1444
+ }
1445
+ ]
1446
+ }
1447
+ ]
1448
+ },
1449
+ {
1450
+ "type": "card",
1451
+ "children": [
1452
+ {
1453
+ "type": "stack",
1454
+ "direction": "vertical",
1455
+ "gap": "sm",
1456
+ "children": [
1457
+ {
1458
+ "type": "typography",
1459
+ "variant": "caption",
1460
+ "content": "Output"
1461
+ },
1462
+ {
1463
+ "type": "typography",
1464
+ "variant": "h3",
1465
+ "content": "@entity.output"
1466
+ }
1467
+ ]
1468
+ }
1469
+ ]
1470
+ }
1471
+ ]
1472
+ }
1473
+ ]
1474
+ }
1475
+ ]
1476
+ ]
1477
+ },
1478
+ {
1479
+ "from": "displaying",
1480
+ "to": "refreshing",
1481
+ "event": "REFRESH",
1482
+ "effects": [
1483
+ [
1484
+ "fetch",
1485
+ "Stage"
1486
+ ],
1487
+ [
1488
+ "render-ui",
1489
+ "main",
1490
+ {
1491
+ "type": "stack",
1492
+ "direction": "vertical",
1493
+ "gap": "lg",
1494
+ "children": [
1495
+ {
1496
+ "type": "stack",
1497
+ "direction": "horizontal",
1498
+ "gap": "md",
1499
+ "justify": "space-between",
1500
+ "children": [
1501
+ {
1502
+ "type": "stack",
1503
+ "direction": "horizontal",
1504
+ "gap": "md",
1505
+ "children": [
1506
+ {
1507
+ "type": "icon",
1508
+ "name": "layers",
1509
+ "size": "lg"
1510
+ },
1511
+ {
1512
+ "type": "typography",
1513
+ "content": "Stages",
1514
+ "variant": "h2"
1515
+ }
1516
+ ]
1517
+ },
1518
+ {
1519
+ "type": "button",
1520
+ "label": "Refresh",
1521
+ "event": "REFRESH",
1522
+ "variant": "secondary",
1523
+ "icon": "refresh-cw"
1524
+ }
1525
+ ]
1526
+ },
1527
+ {
1528
+ "type": "divider"
1529
+ },
1530
+ {
1531
+ "type": "simple-grid",
1532
+ "columns": 3,
1533
+ "children": [
1534
+ {
1535
+ "type": "card",
1536
+ "children": [
1537
+ {
1538
+ "type": "stack",
1539
+ "direction": "vertical",
1540
+ "gap": "sm",
1541
+ "children": [
1542
+ {
1543
+ "type": "typography",
1544
+ "variant": "caption",
1545
+ "content": "Name"
1546
+ },
1547
+ {
1548
+ "type": "typography",
1549
+ "variant": "h3",
1550
+ "content": "@entity.name"
1551
+ }
1552
+ ]
1553
+ }
1554
+ ]
1555
+ },
1556
+ {
1557
+ "type": "card",
1558
+ "children": [
1559
+ {
1560
+ "type": "stack",
1561
+ "direction": "vertical",
1562
+ "gap": "sm",
1563
+ "children": [
1564
+ {
1565
+ "type": "typography",
1566
+ "variant": "caption",
1567
+ "content": "Status"
1568
+ },
1569
+ {
1570
+ "type": "typography",
1571
+ "variant": "h3",
1572
+ "content": "@entity.status"
1573
+ }
1574
+ ]
1575
+ }
1576
+ ]
1577
+ },
1578
+ {
1579
+ "type": "card",
1580
+ "children": [
1581
+ {
1582
+ "type": "stack",
1583
+ "direction": "vertical",
1584
+ "gap": "sm",
1585
+ "children": [
1586
+ {
1587
+ "type": "typography",
1588
+ "variant": "caption",
1589
+ "content": "Duration"
1590
+ },
1591
+ {
1592
+ "type": "typography",
1593
+ "variant": "h3",
1594
+ "content": "@entity.duration"
1595
+ }
1596
+ ]
1597
+ }
1598
+ ]
1599
+ },
1600
+ {
1601
+ "type": "card",
1602
+ "children": [
1603
+ {
1604
+ "type": "stack",
1605
+ "direction": "vertical",
1606
+ "gap": "sm",
1607
+ "children": [
1608
+ {
1609
+ "type": "typography",
1610
+ "variant": "caption",
1611
+ "content": "Output"
1612
+ },
1613
+ {
1614
+ "type": "typography",
1615
+ "variant": "h3",
1616
+ "content": "@entity.output"
1617
+ }
1618
+ ]
1619
+ }
1620
+ ]
1621
+ }
1622
+ ]
1623
+ }
1624
+ ]
1625
+ }
1626
+ ]
1627
+ ]
1628
+ },
1629
+ {
1630
+ "from": "refreshing",
1631
+ "to": "displaying",
1632
+ "event": "REFRESHED",
1633
+ "effects": [
1634
+ [
1635
+ "fetch",
1636
+ "Stage"
1637
+ ],
1638
+ [
1639
+ "render-ui",
1640
+ "main",
1641
+ {
1642
+ "type": "stack",
1643
+ "direction": "vertical",
1644
+ "gap": "lg",
1645
+ "children": [
1646
+ {
1647
+ "type": "stack",
1648
+ "direction": "horizontal",
1649
+ "gap": "md",
1650
+ "justify": "space-between",
1651
+ "children": [
1652
+ {
1653
+ "type": "stack",
1654
+ "direction": "horizontal",
1655
+ "gap": "md",
1656
+ "children": [
1657
+ {
1658
+ "type": "icon",
1659
+ "name": "layers",
1660
+ "size": "lg"
1661
+ },
1662
+ {
1663
+ "type": "typography",
1664
+ "content": "Stages",
1665
+ "variant": "h2"
1666
+ }
1667
+ ]
1668
+ },
1669
+ {
1670
+ "type": "button",
1671
+ "label": "Refresh",
1672
+ "event": "REFRESH",
1673
+ "variant": "secondary",
1674
+ "icon": "refresh-cw"
1675
+ }
1676
+ ]
1677
+ },
1678
+ {
1679
+ "type": "divider"
1680
+ },
1681
+ {
1682
+ "type": "simple-grid",
1683
+ "columns": 3,
1684
+ "children": [
1685
+ {
1686
+ "type": "card",
1687
+ "children": [
1688
+ {
1689
+ "type": "stack",
1690
+ "direction": "vertical",
1691
+ "gap": "sm",
1692
+ "children": [
1693
+ {
1694
+ "type": "typography",
1695
+ "variant": "caption",
1696
+ "content": "Name"
1697
+ },
1698
+ {
1699
+ "type": "typography",
1700
+ "variant": "h3",
1701
+ "content": "@entity.name"
1702
+ }
1703
+ ]
1704
+ }
1705
+ ]
1706
+ },
1707
+ {
1708
+ "type": "card",
1709
+ "children": [
1710
+ {
1711
+ "type": "stack",
1712
+ "direction": "vertical",
1713
+ "gap": "sm",
1714
+ "children": [
1715
+ {
1716
+ "type": "typography",
1717
+ "variant": "caption",
1718
+ "content": "Status"
1719
+ },
1720
+ {
1721
+ "type": "typography",
1722
+ "variant": "h3",
1723
+ "content": "@entity.status"
1724
+ }
1725
+ ]
1726
+ }
1727
+ ]
1728
+ },
1729
+ {
1730
+ "type": "card",
1731
+ "children": [
1732
+ {
1733
+ "type": "stack",
1734
+ "direction": "vertical",
1735
+ "gap": "sm",
1736
+ "children": [
1737
+ {
1738
+ "type": "typography",
1739
+ "variant": "caption",
1740
+ "content": "Duration"
1741
+ },
1742
+ {
1743
+ "type": "typography",
1744
+ "variant": "h3",
1745
+ "content": "@entity.duration"
1746
+ }
1747
+ ]
1748
+ }
1749
+ ]
1750
+ },
1751
+ {
1752
+ "type": "card",
1753
+ "children": [
1754
+ {
1755
+ "type": "stack",
1756
+ "direction": "vertical",
1757
+ "gap": "sm",
1758
+ "children": [
1759
+ {
1760
+ "type": "typography",
1761
+ "variant": "caption",
1762
+ "content": "Output"
1763
+ },
1764
+ {
1765
+ "type": "typography",
1766
+ "variant": "h3",
1767
+ "content": "@entity.output"
1768
+ }
1769
+ ]
1770
+ }
1771
+ ]
1772
+ }
1773
+ ]
1774
+ }
1775
+ ]
1776
+ }
1777
+ ]
1778
+ ]
1779
+ }
1780
+ ]
1781
+ }
1782
+ }
1783
+ ],
1784
+ "pages": [
1785
+ {
1786
+ "name": "StagesPage",
1787
+ "path": "/stages",
1788
+ "traits": [
1789
+ {
1790
+ "ref": "StageDisplay"
1791
+ }
1792
+ ]
1793
+ }
1794
+ ]
1795
+ },
1796
+ {
1797
+ "name": "DeploymentOrbital",
1798
+ "entity": {
1799
+ "name": "Deployment",
1800
+ "persistence": "runtime",
1801
+ "fields": [
1802
+ {
1803
+ "name": "id",
1804
+ "type": "string",
1805
+ "required": true
1806
+ },
1807
+ {
1808
+ "name": "environment",
1809
+ "type": "string",
1810
+ "required": true
1811
+ },
1812
+ {
1813
+ "name": "version",
1814
+ "type": "string",
1815
+ "required": true
1816
+ },
1817
+ {
1818
+ "name": "status",
1819
+ "type": "string"
1820
+ },
1821
+ {
1822
+ "name": "deployedAt",
1823
+ "type": "string"
1824
+ }
1825
+ ]
1826
+ },
1827
+ "traits": [
1828
+ {
1829
+ "name": "DeploymentAsync",
1830
+ "linkedEntity": "Deployment",
1831
+ "category": "interaction",
1832
+ "stateMachine": {
1833
+ "states": [
1834
+ {
1835
+ "name": "idle",
1836
+ "isInitial": true
1837
+ },
1838
+ {
1839
+ "name": "loading"
1840
+ },
1841
+ {
1842
+ "name": "success"
1843
+ },
1844
+ {
1845
+ "name": "error"
1846
+ }
1847
+ ],
1848
+ "events": [
1849
+ {
1850
+ "key": "INIT",
1851
+ "name": "Initialize"
1852
+ },
1853
+ {
1854
+ "key": "START",
1855
+ "name": "Start"
1856
+ },
1857
+ {
1858
+ "key": "LOADED",
1859
+ "name": "Loaded",
1860
+ "payload": [
1861
+ {
1862
+ "name": "data",
1863
+ "type": "object",
1864
+ "required": true
1865
+ }
1866
+ ]
1867
+ },
1868
+ {
1869
+ "key": "FAILED",
1870
+ "name": "Failed",
1871
+ "payload": [
1872
+ {
1873
+ "name": "error",
1874
+ "type": "string",
1875
+ "required": true
1876
+ }
1877
+ ]
1878
+ },
1879
+ {
1880
+ "key": "RETRY",
1881
+ "name": "Retry"
1882
+ },
1883
+ {
1884
+ "key": "RESET",
1885
+ "name": "Reset"
1886
+ }
1887
+ ],
1888
+ "transitions": [
1889
+ {
1890
+ "from": "idle",
1891
+ "to": "idle",
1892
+ "event": "INIT",
1893
+ "effects": [
1894
+ [
1895
+ "fetch",
1896
+ "Deployment"
1897
+ ],
1898
+ [
1899
+ "render-ui",
1900
+ "main",
1901
+ {
1902
+ "type": "stack",
1903
+ "direction": "vertical",
1904
+ "gap": "lg",
1905
+ "align": "center",
1906
+ "children": [
1907
+ {
1908
+ "type": "stack",
1909
+ "direction": "horizontal",
1910
+ "gap": "md",
1911
+ "align": "center",
1912
+ "children": [
1913
+ {
1914
+ "type": "icon",
1915
+ "name": "upload-cloud",
1916
+ "size": "lg"
1917
+ },
1918
+ {
1919
+ "type": "typography",
1920
+ "content": "Deployment",
1921
+ "variant": "h2"
1922
+ }
1923
+ ]
1924
+ },
1925
+ {
1926
+ "type": "divider"
1927
+ },
1928
+ {
1929
+ "type": "button",
1930
+ "label": "Start",
1931
+ "event": "START",
1932
+ "variant": "primary",
1933
+ "icon": "play"
1934
+ }
1935
+ ]
1936
+ }
1937
+ ]
1938
+ ]
1939
+ },
1940
+ {
1941
+ "from": "idle",
1942
+ "to": "loading",
1943
+ "event": "START",
1944
+ "effects": [
1945
+ [
1946
+ "render-ui",
1947
+ "main",
1948
+ {
1949
+ "type": "stack",
1950
+ "direction": "vertical",
1951
+ "gap": "lg",
1952
+ "align": "center",
1953
+ "children": [
1954
+ {
1955
+ "type": "icon",
1956
+ "name": "loader",
1957
+ "size": "lg"
1958
+ },
1959
+ {
1960
+ "type": "typography",
1961
+ "content": "Deploying...",
1962
+ "variant": "h3"
1963
+ }
1964
+ ]
1965
+ }
1966
+ ]
1967
+ ]
1968
+ },
1969
+ {
1970
+ "from": "loading",
1971
+ "to": "success",
1972
+ "event": "LOADED",
1973
+ "effects": [
1974
+ [
1975
+ "persist",
1976
+ "create",
1977
+ "Deployment",
1978
+ "@payload.data"
1979
+ ],
1980
+ [
1981
+ "render-ui",
1982
+ "main",
1983
+ {
1984
+ "type": "stack",
1985
+ "direction": "vertical",
1986
+ "gap": "lg",
1987
+ "align": "center",
1988
+ "children": [
1989
+ {
1990
+ "type": "icon",
1991
+ "name": "check-circle",
1992
+ "size": "lg"
1993
+ },
1994
+ {
1995
+ "type": "typography",
1996
+ "content": "Deployment successful.",
1997
+ "variant": "h3"
1998
+ },
1999
+ {
2000
+ "type": "stack",
2001
+ "direction": "horizontal",
2002
+ "gap": "sm",
2003
+ "justify": "center",
2004
+ "children": [
2005
+ {
2006
+ "type": "button",
2007
+ "label": "Reset",
2008
+ "event": "RESET",
2009
+ "variant": "ghost",
2010
+ "icon": "rotate-ccw"
2011
+ }
2012
+ ]
2013
+ }
2014
+ ]
2015
+ }
2016
+ ],
2017
+ [
2018
+ "notify",
2019
+ "Deployment created successfully"
2020
+ ]
2021
+ ]
2022
+ },
2023
+ {
2024
+ "from": "loading",
2025
+ "to": "error",
2026
+ "event": "FAILED",
2027
+ "effects": [
2028
+ [
2029
+ "render-ui",
2030
+ "main",
2031
+ {
2032
+ "type": "stack",
2033
+ "direction": "vertical",
2034
+ "gap": "lg",
2035
+ "align": "center",
2036
+ "children": [
2037
+ {
2038
+ "type": "icon",
2039
+ "name": "alert-circle",
2040
+ "size": "lg"
2041
+ },
2042
+ {
2043
+ "type": "typography",
2044
+ "content": "Deployment failed.",
2045
+ "variant": "h3"
2046
+ },
2047
+ {
2048
+ "type": "stack",
2049
+ "direction": "horizontal",
2050
+ "gap": "sm",
2051
+ "justify": "center",
2052
+ "children": [
2053
+ {
2054
+ "type": "button",
2055
+ "label": "Retry",
2056
+ "event": "RETRY",
2057
+ "variant": "primary",
2058
+ "icon": "refresh-cw"
2059
+ },
2060
+ {
2061
+ "type": "button",
2062
+ "label": "Reset",
2063
+ "event": "RESET",
2064
+ "variant": "ghost",
2065
+ "icon": "rotate-ccw"
2066
+ }
2067
+ ]
2068
+ }
2069
+ ]
2070
+ }
2071
+ ]
2072
+ ]
2073
+ },
2074
+ {
2075
+ "from": "success",
2076
+ "to": "idle",
2077
+ "event": "RESET",
2078
+ "effects": [
2079
+ [
2080
+ "render-ui",
2081
+ "main",
2082
+ {
2083
+ "type": "stack",
2084
+ "direction": "vertical",
2085
+ "gap": "lg",
2086
+ "align": "center",
2087
+ "children": [
2088
+ {
2089
+ "type": "stack",
2090
+ "direction": "horizontal",
2091
+ "gap": "md",
2092
+ "align": "center",
2093
+ "children": [
2094
+ {
2095
+ "type": "icon",
2096
+ "name": "upload-cloud",
2097
+ "size": "lg"
2098
+ },
2099
+ {
2100
+ "type": "typography",
2101
+ "content": "Deployment",
2102
+ "variant": "h2"
2103
+ }
2104
+ ]
2105
+ },
2106
+ {
2107
+ "type": "divider"
2108
+ },
2109
+ {
2110
+ "type": "button",
2111
+ "label": "Start",
2112
+ "event": "START",
2113
+ "variant": "primary",
2114
+ "icon": "play"
2115
+ }
2116
+ ]
2117
+ }
2118
+ ]
2119
+ ]
2120
+ },
2121
+ {
2122
+ "from": "error",
2123
+ "to": "idle",
2124
+ "event": "RESET",
2125
+ "effects": [
2126
+ [
2127
+ "render-ui",
2128
+ "main",
2129
+ {
2130
+ "type": "stack",
2131
+ "direction": "vertical",
2132
+ "gap": "lg",
2133
+ "align": "center",
2134
+ "children": [
2135
+ {
2136
+ "type": "stack",
2137
+ "direction": "horizontal",
2138
+ "gap": "md",
2139
+ "align": "center",
2140
+ "children": [
2141
+ {
2142
+ "type": "icon",
2143
+ "name": "upload-cloud",
2144
+ "size": "lg"
2145
+ },
2146
+ {
2147
+ "type": "typography",
2148
+ "content": "Deployment",
2149
+ "variant": "h2"
2150
+ }
2151
+ ]
2152
+ },
2153
+ {
2154
+ "type": "divider"
2155
+ },
2156
+ {
2157
+ "type": "button",
2158
+ "label": "Start",
2159
+ "event": "START",
2160
+ "variant": "primary",
2161
+ "icon": "play"
2162
+ }
2163
+ ]
2164
+ }
2165
+ ]
2166
+ ]
2167
+ },
2168
+ {
2169
+ "from": "error",
2170
+ "to": "loading",
2171
+ "event": "RETRY",
2172
+ "effects": [
2173
+ [
2174
+ "render-ui",
2175
+ "main",
2176
+ {
2177
+ "type": "stack",
2178
+ "direction": "vertical",
2179
+ "gap": "lg",
2180
+ "align": "center",
2181
+ "children": [
2182
+ {
2183
+ "type": "icon",
2184
+ "name": "loader",
2185
+ "size": "lg"
2186
+ },
2187
+ {
2188
+ "type": "typography",
2189
+ "content": "Deploying...",
2190
+ "variant": "h3"
2191
+ }
2192
+ ]
2193
+ }
2194
+ ]
2195
+ ]
2196
+ }
2197
+ ]
2198
+ }
2199
+ }
2200
+ ],
2201
+ "pages": [
2202
+ {
2203
+ "name": "DeployPage",
2204
+ "path": "/deploy",
2205
+ "traits": [
2206
+ {
2207
+ "ref": "DeploymentAsync"
2208
+ }
2209
+ ]
2210
+ }
2211
+ ]
2212
+ }
2213
+ ],
2214
+ "description": "CI/CD pipeline organism. Composes: stdList(Build) + stdDisplay(Stage) + stdAsync(Deployment) Pages: /builds (initial), /stages, /deploy"
2215
+ }