@almadar/std 16.243.0 → 16.244.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 (140) hide show
  1. package/behaviors/behaviors-registry.json +4470 -513
  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 +4470 -513
  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 +1309 -685
  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
@@ -100,6 +100,15 @@
100
100
  "parent": "trt_01M055GQ2YKEPWZ35KVYNSCRGC",
101
101
  "renames": []
102
102
  },
103
+ "evt_01M459VBBQNQQF6RSEWE131H3E": {
104
+ "bakedName": "ROSTER_LOADED",
105
+ "curName": "ROSTER_LOADED",
106
+ "id": "evt_01M459VBBQNQQF6RSEWE131H3E",
107
+ "kind": "event",
108
+ "owner": "workspace",
109
+ "parent": "trt_01M055GQ2YKEPWZ35KVYNSCRGC",
110
+ "renames": []
111
+ },
103
112
  "orb_01M055GQ2Y935GEHYW54KNWCS4": {
104
113
  "bakedName": "LearnLiveSimOrbital",
105
114
  "curName": "LearnLiveSimOrbital",
@@ -190,6 +199,50 @@
190
199
  "name": "bodies",
191
200
  "type": "array"
192
201
  },
202
+ {
203
+ "items": {
204
+ "properties": {
205
+ "color": {
206
+ "name": "color",
207
+ "required": false,
208
+ "type": "string"
209
+ },
210
+ "id": {
211
+ "name": "id",
212
+ "required": false,
213
+ "type": "string"
214
+ },
215
+ "radius": {
216
+ "name": "radius",
217
+ "required": false,
218
+ "type": "number"
219
+ },
220
+ "vx": {
221
+ "name": "vx",
222
+ "required": false,
223
+ "type": "number"
224
+ },
225
+ "vy": {
226
+ "name": "vy",
227
+ "required": false,
228
+ "type": "number"
229
+ },
230
+ "x": {
231
+ "name": "x",
232
+ "required": true,
233
+ "type": "number"
234
+ },
235
+ "y": {
236
+ "name": "y",
237
+ "required": true,
238
+ "type": "number"
239
+ }
240
+ },
241
+ "type": "object"
242
+ },
243
+ "name": "loadedBodies",
244
+ "type": "array"
245
+ },
193
246
  {
194
247
  "default": false,
195
248
  "name": "running",
@@ -276,7 +329,7 @@
276
329
  "y": 40.0
277
330
  }
278
331
  ],
279
- "description": "Initial bodies; each carries position (x,y), radius, color, and velocity (vx,vy). Restored on Reset.",
332
+ "description": "Initial bodies; each carries position (x,y), radius, color, and velocity (vx,vy). Restored on Reset. Used when rosterSource is config.",
280
333
  "items": {
281
334
  "properties": {
282
335
  "color": {
@@ -344,7 +397,7 @@
344
397
  },
345
398
  "matchMode": {
346
399
  "default": "",
347
- "description": "When composed behind a lab router, the MODE_SELECTED mode value this instrument responds to. Empty string means standalone — render immediately on INIT.",
400
+ "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).",
348
401
  "label": "Match Mode",
349
402
  "tier": "presentation",
350
403
  "type": "string"
@@ -356,6 +409,17 @@
356
409
  "tier": "domain",
357
410
  "type": "number"
358
411
  },
412
+ "rosterSource": {
413
+ "default": "config",
414
+ "description": "Where the body roster comes from: config reads the bodies knob at INIT; event waits for ROSTER_LOADED and takes the bodies from its payload.",
415
+ "label": "Roster Source",
416
+ "tier": "domain",
417
+ "type": "string",
418
+ "values": [
419
+ "config",
420
+ "event"
421
+ ]
422
+ },
359
423
  "running": {
360
424
  "default": false,
361
425
  "description": "Whether the simulation starts already running on INIT.",
@@ -438,6 +502,10 @@
438
502
  "kind": "set",
439
503
  "resource": "@entity.gravity"
440
504
  },
505
+ {
506
+ "kind": "set",
507
+ "resource": "@entity.loadedBodies"
508
+ },
441
509
  {
442
510
  "kind": "set",
443
511
  "resource": "@entity.running"
@@ -505,6 +573,7 @@
505
573
  "bodies",
506
574
  "damping",
507
575
  "gravity",
576
+ "loadedBodies",
508
577
  "running",
509
578
  "sampleSpeed",
510
579
  "tickCount",
@@ -541,6 +610,57 @@
541
610
  ],
542
611
  "tier": "domain"
543
612
  },
613
+ {
614
+ "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 bodies is the initial body list; a matching instrument re-initialises from it exactly as INIT does from config, any other instrument hides.",
615
+ "id": "evt_01M459VBBQNQQF6RSEWE131H3E",
616
+ "key": "ROSTER_LOADED",
617
+ "name": "Roster Loaded",
618
+ "payloadSchema": [
619
+ {
620
+ "name": "mode",
621
+ "required": true,
622
+ "type": "string"
623
+ },
624
+ {
625
+ "name": "bodies",
626
+ "properties": [
627
+ {
628
+ "name": "id",
629
+ "type": "string"
630
+ },
631
+ {
632
+ "name": "x",
633
+ "required": true,
634
+ "type": "number"
635
+ },
636
+ {
637
+ "name": "y",
638
+ "required": true,
639
+ "type": "number"
640
+ },
641
+ {
642
+ "name": "radius",
643
+ "type": "number"
644
+ },
645
+ {
646
+ "name": "color",
647
+ "type": "string"
648
+ },
649
+ {
650
+ "name": "vx",
651
+ "type": "number"
652
+ },
653
+ {
654
+ "name": "vy",
655
+ "type": "number"
656
+ }
657
+ ],
658
+ "required": true,
659
+ "type": "[object]"
660
+ }
661
+ ],
662
+ "tier": "domain"
663
+ },
544
664
  {
545
665
  "description": "Learner pressed the Play/Pause toggle — flips the running flag.",
546
666
  "id": "evt_01M41KVGQQZA8MVJB3B34CH9FH",
@@ -643,6 +763,11 @@
643
763
  "@entity.title",
644
764
  "@config.title"
645
765
  ],
766
+ [
767
+ "set",
768
+ "@entity.loadedBodies",
769
+ "@config.bodies"
770
+ ],
646
771
  [
647
772
  "set",
648
773
  "@entity.bodies",
@@ -886,9 +1011,17 @@
886
1011
  "eventId": "evt_01M055GQ2Y9A0FGVJ8PVC52HY1",
887
1012
  "from": "idle",
888
1013
  "guard": [
889
- "==",
890
- "@config.matchMode",
891
- ""
1014
+ "and",
1015
+ [
1016
+ "==",
1017
+ "@config.matchMode",
1018
+ ""
1019
+ ],
1020
+ [
1021
+ "==",
1022
+ "@config.rosterSource",
1023
+ "config"
1024
+ ]
892
1025
  ],
893
1026
  "to": "idle"
894
1027
  },
@@ -946,6 +1079,11 @@
946
1079
  "@entity.title",
947
1080
  "@config.title"
948
1081
  ],
1082
+ [
1083
+ "set",
1084
+ "@entity.loadedBodies",
1085
+ "@config.bodies"
1086
+ ],
949
1087
  [
950
1088
  "set",
951
1089
  "@entity.bodies",
@@ -1189,9 +1327,341 @@
1189
1327
  "eventId": "evt_01M055GQ31CXPPY57H8M8MZEZ1",
1190
1328
  "from": "idle",
1191
1329
  "guard": [
1192
- "==",
1193
- "@payload.mode",
1194
- "@config.matchMode"
1330
+ "and",
1331
+ [
1332
+ "==",
1333
+ "@payload.mode",
1334
+ "@config.matchMode"
1335
+ ],
1336
+ [
1337
+ "==",
1338
+ "@config.rosterSource",
1339
+ "config"
1340
+ ]
1341
+ ],
1342
+ "to": "idle"
1343
+ },
1344
+ {
1345
+ "effects": [
1346
+ [
1347
+ "set",
1348
+ "@entity.active",
1349
+ true
1350
+ ],
1351
+ [
1352
+ "set",
1353
+ "@entity.title",
1354
+ "@config.title"
1355
+ ],
1356
+ [
1357
+ "set",
1358
+ "@entity.loadedBodies",
1359
+ "@payload.bodies"
1360
+ ],
1361
+ [
1362
+ "set",
1363
+ "@entity.bodies",
1364
+ "@payload.bodies"
1365
+ ],
1366
+ [
1367
+ "set",
1368
+ "@entity.running",
1369
+ "@config.running"
1370
+ ],
1371
+ [
1372
+ "set",
1373
+ "@entity.gravity",
1374
+ "@config.gravity"
1375
+ ],
1376
+ [
1377
+ "set",
1378
+ "@entity.damping",
1379
+ "@config.damping"
1380
+ ],
1381
+ [
1382
+ "set",
1383
+ "@entity.tickCount",
1384
+ 0.0
1385
+ ],
1386
+ [
1387
+ "set",
1388
+ "@entity.sampleSpeed",
1389
+ 0.0
1390
+ ],
1391
+ [
1392
+ "render-ui",
1393
+ "main",
1394
+ {
1395
+ "children": [
1396
+ {
1397
+ "children": [
1398
+ {
1399
+ "align": "start",
1400
+ "children": [
1401
+ {
1402
+ "children": [
1403
+ {
1404
+ "content": "@entity.title",
1405
+ "type": "typography",
1406
+ "variant": "h4"
1407
+ },
1408
+ [
1409
+ "if",
1410
+ [
1411
+ "==",
1412
+ "@config.summary",
1413
+ ""
1414
+ ],
1415
+ null,
1416
+ {
1417
+ "color": "muted",
1418
+ "content": "@config.summary",
1419
+ "type": "typography",
1420
+ "variant": "body2"
1421
+ }
1422
+ ]
1423
+ ],
1424
+ "direction": "vertical",
1425
+ "gap": "xs",
1426
+ "type": "stack"
1427
+ },
1428
+ {
1429
+ "label": [
1430
+ "if",
1431
+ "@entity.running",
1432
+ "Running",
1433
+ "Paused"
1434
+ ],
1435
+ "type": "badge",
1436
+ "variant": [
1437
+ "if",
1438
+ "@entity.running",
1439
+ "primary",
1440
+ "neutral"
1441
+ ]
1442
+ }
1443
+ ],
1444
+ "direction": "horizontal",
1445
+ "gap": "md",
1446
+ "justify": "between",
1447
+ "type": "stack"
1448
+ },
1449
+ {
1450
+ "align": "center",
1451
+ "children": [
1452
+ [
1453
+ "if",
1454
+ "@entity.running",
1455
+ {
1456
+ "action": "TOGGLE_RUN",
1457
+ "aria-pressed": "true",
1458
+ "icon": "pause",
1459
+ "label": "Pause",
1460
+ "type": "button",
1461
+ "variant": "primary"
1462
+ },
1463
+ {
1464
+ "action": "TOGGLE_RUN",
1465
+ "aria-pressed": "false",
1466
+ "icon": "play",
1467
+ "label": "Play",
1468
+ "type": "button",
1469
+ "variant": "primary"
1470
+ }
1471
+ ],
1472
+ {
1473
+ "action": "RESET",
1474
+ "icon": "rotate-ccw",
1475
+ "label": "Reset",
1476
+ "type": "button",
1477
+ "variant": "ghost"
1478
+ },
1479
+ {
1480
+ "color": "muted",
1481
+ "content": [
1482
+ "str/concat",
1483
+ "Tick ",
1484
+ "@entity.tickCount"
1485
+ ],
1486
+ "type": "typography",
1487
+ "variant": "caption"
1488
+ }
1489
+ ],
1490
+ "direction": "horizontal",
1491
+ "gap": "sm",
1492
+ "type": "stack",
1493
+ "wrap": true
1494
+ },
1495
+ {
1496
+ "backgroundColor": "@config.backgroundColor",
1497
+ "bodies": "@entity.bodies",
1498
+ "height": "@config.height",
1499
+ "keyMap": {
1500
+ "KeyR": "RESET",
1501
+ "Space": "TOGGLE_RUN"
1502
+ },
1503
+ "showForces": false,
1504
+ "showVelocity": "@config.showVelocity",
1505
+ "type": "physics-canvas",
1506
+ "velocityScale": "@config.velocityScale",
1507
+ "width": "@config.width"
1508
+ },
1509
+ {
1510
+ "children": [
1511
+ {
1512
+ "children": [
1513
+ {
1514
+ "color": "muted",
1515
+ "content": [
1516
+ "str/concat",
1517
+ "Gravity: ",
1518
+ [
1519
+ "math/round",
1520
+ "@entity.gravity",
1521
+ 2.0
1522
+ ]
1523
+ ],
1524
+ "type": "typography",
1525
+ "variant": "caption"
1526
+ },
1527
+ {
1528
+ "action": "SET_GRAVITY",
1529
+ "max": 1.5,
1530
+ "min": -1.0,
1531
+ "showTooltip": true,
1532
+ "step": 0.05,
1533
+ "type": "range-slider",
1534
+ "value": "@entity.gravity"
1535
+ }
1536
+ ],
1537
+ "direction": "vertical",
1538
+ "gap": "xs",
1539
+ "type": "stack"
1540
+ },
1541
+ {
1542
+ "children": [
1543
+ {
1544
+ "color": "muted",
1545
+ "content": [
1546
+ "str/concat",
1547
+ "Damping: ",
1548
+ [
1549
+ "math/round",
1550
+ "@entity.damping",
1551
+ 3.0
1552
+ ]
1553
+ ],
1554
+ "type": "typography",
1555
+ "variant": "caption"
1556
+ },
1557
+ {
1558
+ "action": "SET_DAMPING",
1559
+ "max": 1.0,
1560
+ "min": 0.9,
1561
+ "showTooltip": true,
1562
+ "step": 0.005,
1563
+ "type": "range-slider",
1564
+ "value": "@entity.damping"
1565
+ }
1566
+ ],
1567
+ "direction": "vertical",
1568
+ "gap": "xs",
1569
+ "type": "stack"
1570
+ }
1571
+ ],
1572
+ "direction": "vertical",
1573
+ "gap": "sm",
1574
+ "type": "stack"
1575
+ },
1576
+ {
1577
+ "content": [
1578
+ "str/concat",
1579
+ "Sample body speed ",
1580
+ [
1581
+ "math/round",
1582
+ "@entity.sampleSpeed",
1583
+ 2.0
1584
+ ]
1585
+ ],
1586
+ "type": "typography",
1587
+ "variant": "body"
1588
+ }
1589
+ ],
1590
+ "direction": "vertical",
1591
+ "gap": "md",
1592
+ "type": "stack"
1593
+ }
1594
+ ],
1595
+ "padding": "md",
1596
+ "type": "box"
1597
+ }
1598
+ ]
1599
+ ],
1600
+ "event": "ROSTER_LOADED",
1601
+ "eventId": "evt_01M459VBBQNQQF6RSEWE131H3E",
1602
+ "from": "idle",
1603
+ "guard": [
1604
+ "and",
1605
+ [
1606
+ "==",
1607
+ "@config.rosterSource",
1608
+ "event"
1609
+ ],
1610
+ [
1611
+ "and",
1612
+ [
1613
+ "==",
1614
+ "@payload.mode",
1615
+ "@config.matchMode"
1616
+ ],
1617
+ [
1618
+ ">",
1619
+ [
1620
+ "array/len",
1621
+ "@payload.bodies"
1622
+ ],
1623
+ 0.0
1624
+ ]
1625
+ ]
1626
+ ],
1627
+ "to": "idle"
1628
+ },
1629
+ {
1630
+ "effects": [
1631
+ [
1632
+ "set",
1633
+ "@entity.active",
1634
+ false
1635
+ ],
1636
+ [
1637
+ "set",
1638
+ "@entity.running",
1639
+ false
1640
+ ],
1641
+ [
1642
+ "render-ui",
1643
+ "main",
1644
+ null
1645
+ ]
1646
+ ],
1647
+ "event": "ROSTER_LOADED",
1648
+ "eventId": "evt_01M459VBBQNQQF6RSEWE131H3E",
1649
+ "from": "idle",
1650
+ "guard": [
1651
+ "and",
1652
+ [
1653
+ "==",
1654
+ "@config.rosterSource",
1655
+ "event"
1656
+ ],
1657
+ [
1658
+ "not",
1659
+ [
1660
+ "==",
1661
+ "@payload.mode",
1662
+ "@config.matchMode"
1663
+ ]
1664
+ ]
1195
1665
  ],
1196
1666
  "to": "idle"
1197
1667
  },
@@ -1902,7 +2372,7 @@
1902
2372
  [
1903
2373
  "set",
1904
2374
  "@entity.bodies",
1905
- "@config.bodies"
2375
+ "@entity.loadedBodies"
1906
2376
  ],
1907
2377
  [
1908
2378
  "set",