@almadar/std 16.243.0 → 16.244.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/behaviors/behaviors-registry.json +72537 -31220
  2. package/behaviors/lolo/agent/atoms/std-agent-context.lolo +24 -4
  3. package/behaviors/lolo/agent/atoms/std-agent-memory.lolo +20 -5
  4. package/behaviors/lolo/agent/atoms/std-agent-proposal.lolo +550 -0
  5. package/behaviors/lolo/agent/atoms/std-agent-session.lolo +284 -25
  6. package/behaviors/lolo/agent/atoms/std-agent-suggestions.lolo +841 -0
  7. package/behaviors/lolo/agent/atoms/std-agent-tool-loop.lolo +58 -8
  8. package/behaviors/lolo/agent/organisms/std-agent-assistant.lolo +1 -0
  9. package/behaviors/lolo/infra/atoms/std-page-treat.lolo +28 -1
  10. package/behaviors/lolo/ui/avl/atoms/ui-avl-state-machine.lolo +22 -0
  11. package/behaviors/lolo/ui/avl/atoms/ui-avl-transition-explainer.lolo +175 -0
  12. package/behaviors/lolo/ui/avl/atoms/ui-module-card.lolo +22 -0
  13. package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +23 -4
  14. package/behaviors/lolo/ui/core/atoms/std-hero.lolo +72 -33
  15. package/behaviors/lolo/ui/core/molecules/ui-agent-chat-feed.lolo +1 -1
  16. package/behaviors/lolo/ui/core/molecules/ui-markdown-content.lolo +54 -0
  17. package/behaviors/lolo/ui/core/molecules/ui-upload-drop-zone.lolo +5 -0
  18. package/behaviors/lolo/ui/core/organisms/ui-segment-renderer.lolo +127 -3
  19. package/behaviors/lolo/ui/core/organisms/ui-state-machine-view.lolo +22 -0
  20. package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +2 -2
  21. package/behaviors/lolo/ui/learning/atoms/std-learn-arrangement.lolo +87 -17
  22. package/behaviors/lolo/ui/learning/atoms/std-learn-classify.lolo +172 -37
  23. package/behaviors/lolo/ui/learning/atoms/std-learn-coupled-sim.lolo +183 -70
  24. package/behaviors/lolo/ui/learning/atoms/std-learn-derivation.lolo +78 -13
  25. package/behaviors/lolo/ui/learning/atoms/std-learn-diagram.lolo +58 -2
  26. package/behaviors/lolo/ui/learning/atoms/std-learn-doser.lolo +107 -12
  27. package/behaviors/lolo/ui/learning/atoms/std-learn-estimate.lolo +83 -10
  28. package/behaviors/lolo/ui/learning/atoms/std-learn-goal-seek.lolo +130 -9
  29. package/behaviors/lolo/ui/learning/atoms/std-learn-grid-sim.lolo +143 -59
  30. package/behaviors/lolo/ui/learning/atoms/std-learn-hotspot.lolo +96 -22
  31. package/behaviors/lolo/ui/learning/atoms/std-learn-live-sim.lolo +66 -5
  32. package/behaviors/lolo/ui/learning/atoms/std-learn-predict.lolo +84 -6
  33. package/behaviors/lolo/ui/learning/atoms/std-learn-sandbox.lolo +80 -14
  34. package/behaviors/lolo/ui/learning/atoms/std-learn-scatter-fit.lolo +99 -5
  35. package/behaviors/lolo/ui/learning/atoms/std-learn-scenario.lolo +81 -7
  36. package/behaviors/lolo/ui/learning/atoms/std-learn-speed-drill.lolo +83 -7
  37. package/behaviors/lolo/ui/learning/atoms/std-learn-stepper.lolo +224 -99
  38. package/behaviors/lolo/ui/learning/atoms/std-learn-tour-3d.lolo +63 -2
  39. package/behaviors/lolo/ui/learning/atoms/std-learn-trace-player.lolo +99 -38
  40. package/behaviors/lolo/ui/learning/atoms/std-learn-transport.lolo +7 -7
  41. package/behaviors/lolo/ui/learning/atoms/std-learn-tree.lolo +69 -4
  42. package/behaviors/lolo-behavior-contracts.json +1 -1
  43. package/behaviors/registry/agent/atoms/std-agent-context.orb +205 -6
  44. package/behaviors/registry/agent/atoms/std-agent-memory.orb +146 -4
  45. package/behaviors/registry/agent/atoms/std-agent-proposal.orb +1972 -0
  46. package/behaviors/registry/agent/atoms/std-agent-session.orb +2021 -597
  47. package/behaviors/registry/agent/atoms/std-agent-suggestions.orb +5079 -0
  48. package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +287 -5
  49. package/behaviors/registry/agent/organisms/std-agent-assistant.orb +7 -0
  50. package/behaviors/registry/factory-signatures.json +1 -1
  51. package/behaviors/registry/infra/atoms/std-page-treat.orb +327 -2
  52. package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +134 -0
  53. package/behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb +678 -0
  54. package/behaviors/registry/ui/avl/atoms/ui-module-card.orb +122 -0
  55. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +73 -4
  56. package/behaviors/registry/ui/core/atoms/std-hero.orb +174 -97
  57. package/behaviors/registry/ui/core/molecules/ui-markdown-content.orb +204 -1
  58. package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +12 -0
  59. package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +683 -30
  60. package/behaviors/registry/ui/learning/atoms/std-learn-arrangement.orb +748 -21
  61. package/behaviors/registry/ui/learning/atoms/std-learn-classify.orb +1429 -41
  62. package/behaviors/registry/ui/learning/atoms/std-learn-coupled-sim.orb +1031 -185
  63. package/behaviors/registry/ui/learning/atoms/std-learn-derivation.orb +807 -132
  64. package/behaviors/registry/ui/learning/atoms/std-learn-diagram.orb +553 -6
  65. package/behaviors/registry/ui/learning/atoms/std-learn-doser.orb +987 -21
  66. package/behaviors/registry/ui/learning/atoms/std-learn-estimate.orb +582 -16
  67. package/behaviors/registry/ui/learning/atoms/std-learn-goal-seek.orb +954 -13
  68. package/behaviors/registry/ui/learning/atoms/std-learn-grid-sim.orb +828 -88
  69. package/behaviors/registry/ui/learning/atoms/std-learn-hotspot.orb +730 -28
  70. package/behaviors/registry/ui/learning/atoms/std-learn-live-sim.orb +479 -9
  71. package/behaviors/registry/ui/learning/atoms/std-learn-predict.orb +797 -46
  72. package/behaviors/registry/ui/learning/atoms/std-learn-sandbox.orb +757 -58
  73. package/behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb +1176 -164
  74. package/behaviors/registry/ui/learning/atoms/std-learn-scenario.orb +599 -12
  75. package/behaviors/registry/ui/learning/atoms/std-learn-speed-drill.orb +832 -150
  76. package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +1561 -127
  77. package/behaviors/registry/ui/learning/atoms/std-learn-tour-3d.orb +655 -6
  78. package/behaviors/registry/ui/learning/atoms/std-learn-trace-player.orb +634 -43
  79. package/behaviors/registry/ui/learning/atoms/std-learn-transport.orb +85 -31
  80. package/behaviors/registry/ui/learning/atoms/std-learn-tree.orb +425 -9
  81. package/canonical-operators.json +45 -2
  82. package/dist/behaviors/exports-reader.js +16667 -7868
  83. package/dist/behaviors/functions/index.d.ts +711 -32
  84. package/dist/behaviors/functions/index.js +16651 -7869
  85. package/dist/behaviors/index.d.ts +1 -1
  86. package/dist/behaviors/index.js +16668 -7869
  87. package/dist/behaviors/query.js +16667 -7868
  88. package/dist/behaviors-embeddings.hash.json +3 -3
  89. package/dist/behaviors-embeddings.json +77 -53
  90. package/dist/behaviors-registry.json +72537 -31220
  91. package/dist/index.d.ts +3 -3
  92. package/dist/index.js +16101 -7275
  93. package/dist/knob-embeddings.hash.json +3 -3
  94. package/dist/knob-embeddings.json +11617 -1225
  95. package/dist/modules/anim.d.ts +1 -1
  96. package/dist/modules/array.d.ts +1 -1
  97. package/dist/modules/async.d.ts +1 -1
  98. package/dist/modules/behavior.d.ts +1 -1
  99. package/dist/modules/browser.d.ts +1 -1
  100. package/dist/modules/composition.d.ts +1 -1
  101. package/dist/modules/contract.d.ts +1 -1
  102. package/dist/modules/core.d.ts +1 -1
  103. package/dist/modules/core.js +29 -2
  104. package/dist/modules/data.d.ts +1 -1
  105. package/dist/modules/ease.d.ts +1 -1
  106. package/dist/modules/format.d.ts +1 -1
  107. package/dist/modules/geo.d.ts +1 -1
  108. package/dist/modules/graph.d.ts +1 -1
  109. package/dist/modules/grid.d.ts +1 -1
  110. package/dist/modules/i18n.d.ts +1 -1
  111. package/dist/modules/index.d.ts +1 -1
  112. package/dist/modules/index.js +29 -2
  113. package/dist/modules/integration.d.ts +1 -1
  114. package/dist/modules/json.d.ts +1 -1
  115. package/dist/modules/llm.d.ts +1 -1
  116. package/dist/modules/math.d.ts +1 -1
  117. package/dist/modules/memory.d.ts +1 -1
  118. package/dist/modules/nn.d.ts +1 -1
  119. package/dist/modules/noise.d.ts +1 -1
  120. package/dist/modules/object.d.ts +1 -1
  121. package/dist/modules/os.d.ts +1 -1
  122. package/dist/modules/path.d.ts +1 -1
  123. package/dist/modules/prob.d.ts +1 -1
  124. package/dist/modules/session.d.ts +1 -1
  125. package/dist/modules/str.d.ts +1 -1
  126. package/dist/modules/tensor.d.ts +1 -1
  127. package/dist/modules/time.d.ts +1 -1
  128. package/dist/modules/trace.d.ts +1 -1
  129. package/dist/modules/train.d.ts +1 -1
  130. package/dist/modules/validate.d.ts +1 -1
  131. package/dist/modules/vector.d.ts +1 -1
  132. package/dist/modules/workspace.d.ts +1 -1
  133. package/dist/registry/factory-signatures.json +1 -1
  134. package/dist/registry.d.ts +2 -2
  135. package/dist/registry.js +29 -2
  136. package/dist/{types-Cdb321uM.d.ts → types-Y-yYWEOX.d.ts} +1 -1
  137. package/i18n/ar.json +3 -1
  138. package/i18n/en.json +2 -0
  139. package/i18n/sl.json +3 -1
  140. package/package.json +3 -3
@@ -64,6 +64,15 @@
64
64
  "parent": "trt_01M07581G7AY0MGAMJFPDR2Z8Z",
65
65
  "renames": []
66
66
  },
67
+ "evt_01M459WQST1QVEH3HQFBJCAQF7": {
68
+ "bakedName": "ROSTER_LOADED",
69
+ "curName": "ROSTER_LOADED",
70
+ "id": "evt_01M459WQST1QVEH3HQFBJCAQF7",
71
+ "kind": "event",
72
+ "owner": "workspace",
73
+ "parent": "trt_01M07581G7AY0MGAMJFPDR2Z8Z",
74
+ "renames": []
75
+ },
67
76
  "orb_01M07581G7P81XQJK08WFMYKGA": {
68
77
  "bakedName": "ScenarioOrbital",
69
78
  "curName": "ScenarioOrbital",
@@ -110,6 +119,64 @@
110
119
  "name": "title",
111
120
  "type": "string"
112
121
  },
122
+ {
123
+ "items": {
124
+ "properties": {
125
+ "choices": {
126
+ "items": {
127
+ "properties": {
128
+ "deltaA": {
129
+ "name": "deltaA",
130
+ "required": false,
131
+ "type": "number"
132
+ },
133
+ "deltaB": {
134
+ "name": "deltaB",
135
+ "required": false,
136
+ "type": "number"
137
+ },
138
+ "label": {
139
+ "name": "label",
140
+ "required": true,
141
+ "type": "string"
142
+ },
143
+ "next": {
144
+ "name": "next",
145
+ "required": true,
146
+ "type": "string"
147
+ },
148
+ "note": {
149
+ "name": "note",
150
+ "required": false,
151
+ "type": "string"
152
+ }
153
+ },
154
+ "type": "object"
155
+ },
156
+ "name": "choices",
157
+ "required": false,
158
+ "type": "array"
159
+ },
160
+ "id": {
161
+ "name": "id",
162
+ "required": true,
163
+ "type": "string"
164
+ },
165
+ "situation": {
166
+ "name": "situation",
167
+ "required": true,
168
+ "type": "string"
169
+ }
170
+ },
171
+ "type": "object"
172
+ },
173
+ "name": "nodes",
174
+ "type": "array"
175
+ },
176
+ {
177
+ "name": "startId",
178
+ "type": "string"
179
+ },
113
180
  {
114
181
  "name": "currentId",
115
182
  "type": "string"
@@ -216,7 +283,7 @@
216
283
  "config": {
217
284
  "matchMode": {
218
285
  "default": "",
219
- "description": "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT.",
286
+ "description": "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT, or on ROSTER_LOADED when rosterSource is event.",
220
287
  "label": "Match Mode",
221
288
  "tier": "presentation",
222
289
  "type": "string"
@@ -391,6 +458,17 @@
391
458
  "tier": "presentation",
392
459
  "type": "string"
393
460
  },
461
+ "rosterSource": {
462
+ "default": "config",
463
+ "description": "Where the roster comes from: config reads nodes and startId knobs at INIT; event waits for ROSTER_LOADED and takes the roster from its payload.",
464
+ "label": "Roster Source",
465
+ "tier": "domain",
466
+ "type": "string",
467
+ "values": [
468
+ "config",
469
+ "event"
470
+ ]
471
+ },
394
472
  "startId": {
395
473
  "default": "start",
396
474
  "description": "Id of the node the scenario opens on.",
@@ -454,6 +532,10 @@
454
532
  "kind": "set",
455
533
  "resource": "@entity.metricB"
456
534
  },
535
+ {
536
+ "kind": "set",
537
+ "resource": "@entity.nodes"
538
+ },
457
539
  {
458
540
  "kind": "set",
459
541
  "resource": "@entity.path"
@@ -462,6 +544,10 @@
462
544
  "kind": "set",
463
545
  "resource": "@entity.situation"
464
546
  },
547
+ {
548
+ "kind": "set",
549
+ "resource": "@entity.startId"
550
+ },
465
551
  {
466
552
  "kind": "set",
467
553
  "resource": "@entity.stepCount"
@@ -525,8 +611,10 @@
525
611
  "feedback",
526
612
  "metricA",
527
613
  "metricB",
614
+ "nodes",
528
615
  "path",
529
616
  "situation",
617
+ "startId",
530
618
  "stepCount",
531
619
  "title",
532
620
  "view"
@@ -562,6 +650,70 @@
562
650
  ],
563
651
  "tier": "domain"
564
652
  },
653
+ {
654
+ "description": "Runtime content feed, honoured only when rosterSource is event — mode names the instrument it is for (the matchMode it carries, blank when standalone) and nodes is the decision graph and startId the node it opens on; a matching instrument re-initialises from it exactly as INIT does from config, any other instrument hides.",
655
+ "id": "evt_01M459WQST1QVEH3HQFBJCAQF7",
656
+ "key": "ROSTER_LOADED",
657
+ "name": "Roster Loaded",
658
+ "payloadSchema": [
659
+ {
660
+ "name": "mode",
661
+ "required": true,
662
+ "type": "string"
663
+ },
664
+ {
665
+ "name": "nodes",
666
+ "properties": [
667
+ {
668
+ "name": "id",
669
+ "required": true,
670
+ "type": "string"
671
+ },
672
+ {
673
+ "name": "situation",
674
+ "required": true,
675
+ "type": "string"
676
+ },
677
+ {
678
+ "name": "choices",
679
+ "properties": [
680
+ {
681
+ "name": "label",
682
+ "required": true,
683
+ "type": "string"
684
+ },
685
+ {
686
+ "name": "next",
687
+ "required": true,
688
+ "type": "string"
689
+ },
690
+ {
691
+ "name": "deltaA",
692
+ "type": "number"
693
+ },
694
+ {
695
+ "name": "deltaB",
696
+ "type": "number"
697
+ },
698
+ {
699
+ "name": "note",
700
+ "type": "string"
701
+ }
702
+ ],
703
+ "type": "[object]"
704
+ }
705
+ ],
706
+ "required": true,
707
+ "type": "[object]"
708
+ },
709
+ {
710
+ "name": "startId",
711
+ "required": true,
712
+ "type": "string"
713
+ }
714
+ ],
715
+ "tier": "domain"
716
+ },
565
717
  {
566
718
  "description": "Learner picked one of the current node's choices — index selects it; its metric deltas apply, the decision log grows, and the story moves to the declared next node.",
567
719
  "id": "evt_01M07581GAXGCFP96CXPQ3WEKG",
@@ -631,6 +783,16 @@
631
783
  "transitions": [
632
784
  {
633
785
  "effects": [
786
+ [
787
+ "set",
788
+ "@entity.nodes",
789
+ "@config.nodes"
790
+ ],
791
+ [
792
+ "set",
793
+ "@entity.startId",
794
+ "@config.startId"
795
+ ],
634
796
  [
635
797
  "let",
636
798
  [
@@ -959,9 +1121,17 @@
959
1121
  "eventId": "evt_01M07581G765VPJBCN6TX03WE3",
960
1122
  "from": "idle",
961
1123
  "guard": [
962
- "==",
963
- "@config.matchMode",
964
- ""
1124
+ "and",
1125
+ [
1126
+ "==",
1127
+ "@config.matchMode",
1128
+ ""
1129
+ ],
1130
+ [
1131
+ "==",
1132
+ "@config.rosterSource",
1133
+ "config"
1134
+ ]
965
1135
  ],
966
1136
  "to": "idle"
967
1137
  },
@@ -1004,6 +1174,16 @@
1004
1174
  },
1005
1175
  {
1006
1176
  "effects": [
1177
+ [
1178
+ "set",
1179
+ "@entity.nodes",
1180
+ "@config.nodes"
1181
+ ],
1182
+ [
1183
+ "set",
1184
+ "@entity.startId",
1185
+ "@config.startId"
1186
+ ],
1007
1187
  [
1008
1188
  "let",
1009
1189
  [
@@ -1332,9 +1512,416 @@
1332
1512
  "eventId": "evt_01M07581GASKSPTBR0AKY9KB4B",
1333
1513
  "from": "idle",
1334
1514
  "guard": [
1335
- "==",
1336
- "@payload.mode",
1337
- "@config.matchMode"
1515
+ "and",
1516
+ [
1517
+ "==",
1518
+ "@payload.mode",
1519
+ "@config.matchMode"
1520
+ ],
1521
+ [
1522
+ "==",
1523
+ "@config.rosterSource",
1524
+ "config"
1525
+ ]
1526
+ ],
1527
+ "to": "idle"
1528
+ },
1529
+ {
1530
+ "effects": [
1531
+ [
1532
+ "set",
1533
+ "@entity.nodes",
1534
+ "@payload.nodes"
1535
+ ],
1536
+ [
1537
+ "set",
1538
+ "@entity.startId",
1539
+ "@payload.startId"
1540
+ ],
1541
+ [
1542
+ "let",
1543
+ [
1544
+ [
1545
+ "start",
1546
+ [
1547
+ "array/find",
1548
+ "@payload.nodes",
1549
+ [
1550
+ "fn",
1551
+ "n",
1552
+ [
1553
+ "==",
1554
+ [
1555
+ "object/get",
1556
+ "@n",
1557
+ "id"
1558
+ ],
1559
+ "@payload.startId"
1560
+ ]
1561
+ ]
1562
+ ]
1563
+ ]
1564
+ ],
1565
+ [
1566
+ "do",
1567
+ [
1568
+ "set",
1569
+ "@entity.active",
1570
+ true
1571
+ ],
1572
+ [
1573
+ "set",
1574
+ "@entity.title",
1575
+ "@config.title"
1576
+ ],
1577
+ [
1578
+ "set",
1579
+ "@entity.currentId",
1580
+ "@payload.startId"
1581
+ ],
1582
+ [
1583
+ "set",
1584
+ "@entity.situation",
1585
+ [
1586
+ "object/get",
1587
+ "@start",
1588
+ "situation"
1589
+ ]
1590
+ ],
1591
+ [
1592
+ "set",
1593
+ "@entity.choices",
1594
+ [
1595
+ "object/get",
1596
+ "@start",
1597
+ "choices",
1598
+ []
1599
+ ]
1600
+ ],
1601
+ [
1602
+ "set",
1603
+ "@entity.metricA",
1604
+ "@config.metricAStart"
1605
+ ],
1606
+ [
1607
+ "set",
1608
+ "@entity.metricB",
1609
+ "@config.metricBStart"
1610
+ ],
1611
+ [
1612
+ "set",
1613
+ "@entity.stepCount",
1614
+ 0.0
1615
+ ],
1616
+ [
1617
+ "set",
1618
+ "@entity.path",
1619
+ []
1620
+ ],
1621
+ [
1622
+ "set",
1623
+ "@entity.done",
1624
+ false
1625
+ ],
1626
+ [
1627
+ "set",
1628
+ "@entity.feedback",
1629
+ ""
1630
+ ],
1631
+ [
1632
+ "set",
1633
+ "@entity.view",
1634
+ [
1635
+ {
1636
+ "children": [
1637
+ {
1638
+ "content": "@entity.situation",
1639
+ "type": "typography",
1640
+ "variant": "body"
1641
+ }
1642
+ ],
1643
+ "padding": "md",
1644
+ "type": "card",
1645
+ "variant": "bordered"
1646
+ }
1647
+ ]
1648
+ ]
1649
+ ]
1650
+ ],
1651
+ [
1652
+ "render-ui",
1653
+ "main",
1654
+ {
1655
+ "children": [
1656
+ {
1657
+ "children": [
1658
+ {
1659
+ "align": "start",
1660
+ "children": [
1661
+ {
1662
+ "children": [
1663
+ {
1664
+ "content": "@entity.title",
1665
+ "type": "typography",
1666
+ "variant": "h4"
1667
+ },
1668
+ [
1669
+ "if",
1670
+ [
1671
+ "==",
1672
+ "@config.summary",
1673
+ ""
1674
+ ],
1675
+ null,
1676
+ {
1677
+ "color": "muted",
1678
+ "content": "@config.summary",
1679
+ "type": "typography",
1680
+ "variant": "body2"
1681
+ }
1682
+ ]
1683
+ ],
1684
+ "direction": "vertical",
1685
+ "gap": "xs",
1686
+ "type": "stack"
1687
+ },
1688
+ {
1689
+ "label": [
1690
+ "if",
1691
+ "@entity.done",
1692
+ "Ended",
1693
+ [
1694
+ "str/concat",
1695
+ "Decision ",
1696
+ [
1697
+ "+",
1698
+ "@entity.stepCount",
1699
+ 1.0
1700
+ ]
1701
+ ]
1702
+ ],
1703
+ "type": "badge",
1704
+ "variant": [
1705
+ "if",
1706
+ "@entity.done",
1707
+ "primary",
1708
+ "neutral"
1709
+ ]
1710
+ }
1711
+ ],
1712
+ "direction": "horizontal",
1713
+ "gap": "md",
1714
+ "justify": "between",
1715
+ "type": "stack"
1716
+ },
1717
+ {
1718
+ "align": "center",
1719
+ "children": [
1720
+ {
1721
+ "label": "@config.metricALabel",
1722
+ "type": "stat-display",
1723
+ "value": [
1724
+ "math/round",
1725
+ "@entity.metricA",
1726
+ 0.0
1727
+ ]
1728
+ },
1729
+ {
1730
+ "label": "@config.metricBLabel",
1731
+ "type": "stat-display",
1732
+ "value": [
1733
+ "math/round",
1734
+ "@entity.metricB",
1735
+ 0.0
1736
+ ]
1737
+ }
1738
+ ],
1739
+ "direction": "horizontal",
1740
+ "gap": "md",
1741
+ "type": "stack",
1742
+ "wrap": true
1743
+ },
1744
+ {
1745
+ "children": "@entity.view",
1746
+ "direction": "vertical",
1747
+ "gap": "md",
1748
+ "type": "stack"
1749
+ },
1750
+ {
1751
+ "children": [
1752
+ "array/map",
1753
+ [
1754
+ "array/range",
1755
+ 0.0,
1756
+ [
1757
+ "array/len",
1758
+ "@entity.choices"
1759
+ ]
1760
+ ],
1761
+ [
1762
+ "fn",
1763
+ [
1764
+ "i"
1765
+ ],
1766
+ {
1767
+ "action": "CHOOSE",
1768
+ "actionPayload": {
1769
+ "index": "@i"
1770
+ },
1771
+ "disabled": [
1772
+ "if",
1773
+ "@entity.done",
1774
+ true,
1775
+ false
1776
+ ],
1777
+ "label": [
1778
+ "object/get",
1779
+ [
1780
+ "array/nth",
1781
+ "@entity.choices",
1782
+ "@i"
1783
+ ],
1784
+ "label"
1785
+ ],
1786
+ "size": "lg",
1787
+ "type": "button",
1788
+ "variant": "secondary"
1789
+ }
1790
+ ]
1791
+ ],
1792
+ "direction": "vertical",
1793
+ "gap": "sm",
1794
+ "type": "stack"
1795
+ },
1796
+ {
1797
+ "content": "@entity.feedback",
1798
+ "type": "typography",
1799
+ "variant": "body"
1800
+ },
1801
+ {
1802
+ "children": [
1803
+ "array/map",
1804
+ "@entity.path",
1805
+ [
1806
+ "fn",
1807
+ [
1808
+ "line"
1809
+ ],
1810
+ {
1811
+ "color": "muted",
1812
+ "content": "@line",
1813
+ "type": "typography",
1814
+ "variant": "caption"
1815
+ }
1816
+ ]
1817
+ ],
1818
+ "direction": "vertical",
1819
+ "gap": "xs",
1820
+ "type": "stack"
1821
+ },
1822
+ {
1823
+ "align": "center",
1824
+ "children": [
1825
+ {
1826
+ "action": "RESTART",
1827
+ "disabled": [
1828
+ "if",
1829
+ "@entity.done",
1830
+ false,
1831
+ true
1832
+ ],
1833
+ "icon": "rotate-ccw",
1834
+ "label": "@config.restartLabel",
1835
+ "type": "button",
1836
+ "variant": "primary"
1837
+ },
1838
+ {
1839
+ "color": "muted",
1840
+ "content": [
1841
+ "str/concat",
1842
+ "Decisions ",
1843
+ "@entity.stepCount"
1844
+ ],
1845
+ "type": "typography",
1846
+ "variant": "caption"
1847
+ }
1848
+ ],
1849
+ "direction": "horizontal",
1850
+ "gap": "sm",
1851
+ "type": "stack",
1852
+ "wrap": true
1853
+ }
1854
+ ],
1855
+ "direction": "vertical",
1856
+ "gap": "md",
1857
+ "type": "stack"
1858
+ }
1859
+ ],
1860
+ "padding": "md",
1861
+ "type": "box"
1862
+ }
1863
+ ]
1864
+ ],
1865
+ "event": "ROSTER_LOADED",
1866
+ "eventId": "evt_01M459WQST1QVEH3HQFBJCAQF7",
1867
+ "from": "idle",
1868
+ "guard": [
1869
+ "and",
1870
+ [
1871
+ "==",
1872
+ "@config.rosterSource",
1873
+ "event"
1874
+ ],
1875
+ [
1876
+ "and",
1877
+ [
1878
+ "==",
1879
+ "@payload.mode",
1880
+ "@config.matchMode"
1881
+ ],
1882
+ [
1883
+ ">",
1884
+ [
1885
+ "array/len",
1886
+ "@payload.nodes"
1887
+ ],
1888
+ 0.0
1889
+ ]
1890
+ ]
1891
+ ],
1892
+ "to": "idle"
1893
+ },
1894
+ {
1895
+ "effects": [
1896
+ [
1897
+ "set",
1898
+ "@entity.active",
1899
+ false
1900
+ ],
1901
+ [
1902
+ "render-ui",
1903
+ "main",
1904
+ null
1905
+ ]
1906
+ ],
1907
+ "event": "ROSTER_LOADED",
1908
+ "eventId": "evt_01M459WQST1QVEH3HQFBJCAQF7",
1909
+ "from": "idle",
1910
+ "guard": [
1911
+ "and",
1912
+ [
1913
+ "==",
1914
+ "@config.rosterSource",
1915
+ "event"
1916
+ ],
1917
+ [
1918
+ "not",
1919
+ [
1920
+ "==",
1921
+ "@payload.mode",
1922
+ "@config.matchMode"
1923
+ ]
1924
+ ]
1338
1925
  ],
1339
1926
  "to": "idle"
1340
1927
  },
@@ -1363,7 +1950,7 @@
1363
1950
  "nextNode",
1364
1951
  [
1365
1952
  "array/find",
1366
- "@config.nodes",
1953
+ "@entity.nodes",
1367
1954
  [
1368
1955
  "fn",
1369
1956
  "n",
@@ -1859,7 +2446,7 @@
1859
2446
  "start",
1860
2447
  [
1861
2448
  "array/find",
1862
- "@config.nodes",
2449
+ "@entity.nodes",
1863
2450
  [
1864
2451
  "fn",
1865
2452
  "n",
@@ -1870,7 +2457,7 @@
1870
2457
  "@n",
1871
2458
  "id"
1872
2459
  ],
1873
- "@config.startId"
2460
+ "@entity.startId"
1874
2461
  ]
1875
2462
  ]
1876
2463
  ]
@@ -1891,7 +2478,7 @@
1891
2478
  [
1892
2479
  "set",
1893
2480
  "@entity.currentId",
1894
- "@config.startId"
2481
+ "@entity.startId"
1895
2482
  ],
1896
2483
  [
1897
2484
  "set",
@@ -2179,7 +2766,7 @@
2179
2766
  "emit",
2180
2767
  "SCENARIO_RESTARTED",
2181
2768
  {
2182
- "startId": "@config.startId"
2769
+ "startId": "@entity.startId"
2183
2770
  }
2184
2771
  ]
2185
2772
  ],