@almadar/std 16.242.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 (144) 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-search.lolo +3 -1
  10. package/behaviors/lolo/infra/atoms/std-page-treat.lolo +28 -1
  11. package/behaviors/lolo/infra/atoms/std-page-watch.lolo +3 -1
  12. package/behaviors/lolo/ui/avl/atoms/ui-avl-state-machine.lolo +22 -0
  13. package/behaviors/lolo/ui/avl/atoms/ui-avl-transition-explainer.lolo +175 -0
  14. package/behaviors/lolo/ui/avl/atoms/ui-module-card.lolo +22 -0
  15. package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +23 -4
  16. package/behaviors/lolo/ui/core/atoms/std-hero.lolo +72 -33
  17. package/behaviors/lolo/ui/core/molecules/ui-agent-chat-feed.lolo +1 -1
  18. package/behaviors/lolo/ui/core/molecules/ui-markdown-content.lolo +54 -0
  19. package/behaviors/lolo/ui/core/molecules/ui-upload-drop-zone.lolo +5 -0
  20. package/behaviors/lolo/ui/core/organisms/ui-segment-renderer.lolo +127 -3
  21. package/behaviors/lolo/ui/core/organisms/ui-state-machine-view.lolo +22 -0
  22. package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +2 -2
  23. package/behaviors/lolo/ui/learning/atoms/std-learn-arrangement.lolo +87 -17
  24. package/behaviors/lolo/ui/learning/atoms/std-learn-classify.lolo +172 -37
  25. package/behaviors/lolo/ui/learning/atoms/std-learn-coupled-sim.lolo +183 -70
  26. package/behaviors/lolo/ui/learning/atoms/std-learn-derivation.lolo +78 -13
  27. package/behaviors/lolo/ui/learning/atoms/std-learn-diagram.lolo +58 -2
  28. package/behaviors/lolo/ui/learning/atoms/std-learn-doser.lolo +107 -12
  29. package/behaviors/lolo/ui/learning/atoms/std-learn-estimate.lolo +83 -10
  30. package/behaviors/lolo/ui/learning/atoms/std-learn-goal-seek.lolo +130 -9
  31. package/behaviors/lolo/ui/learning/atoms/std-learn-grid-sim.lolo +143 -59
  32. package/behaviors/lolo/ui/learning/atoms/std-learn-hotspot.lolo +96 -22
  33. package/behaviors/lolo/ui/learning/atoms/std-learn-live-sim.lolo +66 -5
  34. package/behaviors/lolo/ui/learning/atoms/std-learn-predict.lolo +84 -6
  35. package/behaviors/lolo/ui/learning/atoms/std-learn-sandbox.lolo +80 -14
  36. package/behaviors/lolo/ui/learning/atoms/std-learn-scatter-fit.lolo +99 -5
  37. package/behaviors/lolo/ui/learning/atoms/std-learn-scenario.lolo +81 -7
  38. package/behaviors/lolo/ui/learning/atoms/std-learn-speed-drill.lolo +83 -7
  39. package/behaviors/lolo/ui/learning/atoms/std-learn-stepper.lolo +224 -99
  40. package/behaviors/lolo/ui/learning/atoms/std-learn-tour-3d.lolo +63 -2
  41. package/behaviors/lolo/ui/learning/atoms/std-learn-trace-player.lolo +99 -38
  42. package/behaviors/lolo/ui/learning/atoms/std-learn-transport.lolo +7 -7
  43. package/behaviors/lolo/ui/learning/atoms/std-learn-tree.lolo +69 -4
  44. package/behaviors/lolo-behavior-contracts.json +1 -1
  45. package/behaviors/registry/agent/atoms/std-agent-context.orb +205 -6
  46. package/behaviors/registry/agent/atoms/std-agent-memory.orb +146 -4
  47. package/behaviors/registry/agent/atoms/std-agent-proposal.orb +1972 -0
  48. package/behaviors/registry/agent/atoms/std-agent-session.orb +2021 -597
  49. package/behaviors/registry/agent/atoms/std-agent-suggestions.orb +5079 -0
  50. package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +287 -5
  51. package/behaviors/registry/agent/organisms/std-agent-assistant.orb +7 -0
  52. package/behaviors/registry/factory-signatures.json +1 -1
  53. package/behaviors/registry/infra/atoms/std-page-search.orb +19 -1
  54. package/behaviors/registry/infra/atoms/std-page-treat.orb +327 -2
  55. package/behaviors/registry/infra/atoms/std-page-watch.orb +19 -1
  56. package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +134 -0
  57. package/behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb +678 -0
  58. package/behaviors/registry/ui/avl/atoms/ui-module-card.orb +122 -0
  59. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +73 -4
  60. package/behaviors/registry/ui/core/atoms/std-hero.orb +174 -97
  61. package/behaviors/registry/ui/core/molecules/ui-markdown-content.orb +204 -1
  62. package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +12 -0
  63. package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +683 -30
  64. package/behaviors/registry/ui/learning/atoms/std-learn-arrangement.orb +748 -21
  65. package/behaviors/registry/ui/learning/atoms/std-learn-classify.orb +1429 -41
  66. package/behaviors/registry/ui/learning/atoms/std-learn-coupled-sim.orb +1031 -185
  67. package/behaviors/registry/ui/learning/atoms/std-learn-derivation.orb +807 -132
  68. package/behaviors/registry/ui/learning/atoms/std-learn-diagram.orb +553 -6
  69. package/behaviors/registry/ui/learning/atoms/std-learn-doser.orb +987 -21
  70. package/behaviors/registry/ui/learning/atoms/std-learn-estimate.orb +582 -16
  71. package/behaviors/registry/ui/learning/atoms/std-learn-goal-seek.orb +954 -13
  72. package/behaviors/registry/ui/learning/atoms/std-learn-grid-sim.orb +828 -88
  73. package/behaviors/registry/ui/learning/atoms/std-learn-hotspot.orb +730 -28
  74. package/behaviors/registry/ui/learning/atoms/std-learn-live-sim.orb +479 -9
  75. package/behaviors/registry/ui/learning/atoms/std-learn-predict.orb +797 -46
  76. package/behaviors/registry/ui/learning/atoms/std-learn-sandbox.orb +757 -58
  77. package/behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb +1176 -164
  78. package/behaviors/registry/ui/learning/atoms/std-learn-scenario.orb +599 -12
  79. package/behaviors/registry/ui/learning/atoms/std-learn-speed-drill.orb +832 -150
  80. package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +1561 -127
  81. package/behaviors/registry/ui/learning/atoms/std-learn-tour-3d.orb +655 -6
  82. package/behaviors/registry/ui/learning/atoms/std-learn-trace-player.orb +634 -43
  83. package/behaviors/registry/ui/learning/atoms/std-learn-transport.orb +85 -31
  84. package/behaviors/registry/ui/learning/atoms/std-learn-tree.orb +425 -9
  85. package/canonical-operators.json +45 -2
  86. package/dist/behaviors/exports-reader.js +16667 -7868
  87. package/dist/behaviors/functions/index.d.ts +711 -32
  88. package/dist/behaviors/functions/index.js +16651 -7869
  89. package/dist/behaviors/index.d.ts +1 -1
  90. package/dist/behaviors/index.js +16668 -7869
  91. package/dist/behaviors/query.js +16667 -7868
  92. package/dist/behaviors-embeddings.hash.json +3 -3
  93. package/dist/behaviors-embeddings.json +77 -53
  94. package/dist/behaviors-registry.json +4470 -513
  95. package/dist/index.d.ts +3 -3
  96. package/dist/index.js +16101 -7275
  97. package/dist/knob-embeddings.hash.json +3 -3
  98. package/dist/knob-embeddings.json +1309 -685
  99. package/dist/modules/anim.d.ts +1 -1
  100. package/dist/modules/array.d.ts +1 -1
  101. package/dist/modules/async.d.ts +1 -1
  102. package/dist/modules/behavior.d.ts +1 -1
  103. package/dist/modules/browser.d.ts +1 -1
  104. package/dist/modules/composition.d.ts +1 -1
  105. package/dist/modules/contract.d.ts +1 -1
  106. package/dist/modules/core.d.ts +1 -1
  107. package/dist/modules/core.js +29 -2
  108. package/dist/modules/data.d.ts +1 -1
  109. package/dist/modules/ease.d.ts +1 -1
  110. package/dist/modules/format.d.ts +1 -1
  111. package/dist/modules/geo.d.ts +1 -1
  112. package/dist/modules/graph.d.ts +1 -1
  113. package/dist/modules/grid.d.ts +1 -1
  114. package/dist/modules/i18n.d.ts +1 -1
  115. package/dist/modules/index.d.ts +1 -1
  116. package/dist/modules/index.js +29 -2
  117. package/dist/modules/integration.d.ts +1 -1
  118. package/dist/modules/json.d.ts +1 -1
  119. package/dist/modules/llm.d.ts +1 -1
  120. package/dist/modules/math.d.ts +1 -1
  121. package/dist/modules/memory.d.ts +1 -1
  122. package/dist/modules/nn.d.ts +1 -1
  123. package/dist/modules/noise.d.ts +1 -1
  124. package/dist/modules/object.d.ts +1 -1
  125. package/dist/modules/os.d.ts +1 -1
  126. package/dist/modules/path.d.ts +1 -1
  127. package/dist/modules/prob.d.ts +1 -1
  128. package/dist/modules/session.d.ts +1 -1
  129. package/dist/modules/str.d.ts +1 -1
  130. package/dist/modules/tensor.d.ts +1 -1
  131. package/dist/modules/time.d.ts +1 -1
  132. package/dist/modules/trace.d.ts +1 -1
  133. package/dist/modules/train.d.ts +1 -1
  134. package/dist/modules/validate.d.ts +1 -1
  135. package/dist/modules/vector.d.ts +1 -1
  136. package/dist/modules/workspace.d.ts +1 -1
  137. package/dist/registry/factory-signatures.json +1 -1
  138. package/dist/registry.d.ts +2 -2
  139. package/dist/registry.js +29 -2
  140. package/dist/{types-Cdb321uM.d.ts → types-Y-yYWEOX.d.ts} +1 -1
  141. package/i18n/ar.json +3 -1
  142. package/i18n/en.json +2 -0
  143. package/i18n/sl.json +3 -1
  144. package/package.json +3 -3
@@ -82,6 +82,15 @@
82
82
  "parent": "trt_01M07RCKW0YDADRTWKMBVKDWW3",
83
83
  "renames": []
84
84
  },
85
+ "evt_01M459X4HCG3DKD94CCJGYT5FQ": {
86
+ "bakedName": "ROSTER_LOADED",
87
+ "curName": "ROSTER_LOADED",
88
+ "id": "evt_01M459X4HCG3DKD94CCJGYT5FQ",
89
+ "kind": "event",
90
+ "owner": "workspace",
91
+ "parent": "trt_01M07RCKW0YDADRTWKMBVKDWW3",
92
+ "renames": []
93
+ },
85
94
  "orb_01M07RCKW09E3TNXAZ8BMJS742": {
86
95
  "bakedName": "LearnTour3DOrbital",
87
96
  "curName": "LearnTour3DOrbital",
@@ -651,6 +660,17 @@
651
660
  "tier": "presentation",
652
661
  "type": "string"
653
662
  },
663
+ "rosterSource": {
664
+ "default": "config",
665
+ "description": "Where the stations, edges and backdrop come from: config reads those knobs at INIT; event waits for ROSTER_LOADED and takes them from its payload.",
666
+ "label": "Roster Source",
667
+ "tier": "domain",
668
+ "type": "string",
669
+ "values": [
670
+ "config",
671
+ "event"
672
+ ]
673
+ },
654
674
  "stations": {
655
675
  "default": [
656
676
  {
@@ -939,6 +959,149 @@
939
959
  ],
940
960
  "tier": "domain"
941
961
  },
962
+ {
963
+ "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 stations, edges and backdrop are the scene roster; a matching instrument re-initialises from it exactly as INIT does from config, any other instrument hides.",
964
+ "id": "evt_01M459X4HCG3DKD94CCJGYT5FQ",
965
+ "key": "ROSTER_LOADED",
966
+ "name": "Roster Loaded",
967
+ "payloadSchema": [
968
+ {
969
+ "name": "mode",
970
+ "required": true,
971
+ "type": "string"
972
+ },
973
+ {
974
+ "name": "stations",
975
+ "properties": [
976
+ {
977
+ "name": "id",
978
+ "required": true,
979
+ "type": "string"
980
+ },
981
+ {
982
+ "name": "name",
983
+ "required": true,
984
+ "type": "string"
985
+ },
986
+ {
987
+ "name": "caption",
988
+ "type": "string"
989
+ },
990
+ {
991
+ "name": "x",
992
+ "required": true,
993
+ "type": "number"
994
+ },
995
+ {
996
+ "name": "y",
997
+ "required": true,
998
+ "type": "number"
999
+ },
1000
+ {
1001
+ "name": "z",
1002
+ "required": true,
1003
+ "type": "number"
1004
+ },
1005
+ {
1006
+ "name": "radius",
1007
+ "type": "number"
1008
+ },
1009
+ {
1010
+ "name": "color",
1011
+ "type": "string"
1012
+ },
1013
+ {
1014
+ "name": "shape",
1015
+ "type": "string"
1016
+ },
1017
+ {
1018
+ "name": "opacity",
1019
+ "type": "number"
1020
+ }
1021
+ ],
1022
+ "required": true,
1023
+ "type": "[object]"
1024
+ },
1025
+ {
1026
+ "name": "edges",
1027
+ "properties": [
1028
+ {
1029
+ "name": "from",
1030
+ "required": true,
1031
+ "type": "string"
1032
+ },
1033
+ {
1034
+ "name": "to",
1035
+ "required": true,
1036
+ "type": "string"
1037
+ },
1038
+ {
1039
+ "name": "color",
1040
+ "type": "string"
1041
+ },
1042
+ {
1043
+ "name": "label",
1044
+ "type": "string"
1045
+ }
1046
+ ],
1047
+ "required": true,
1048
+ "type": "[object]"
1049
+ },
1050
+ {
1051
+ "name": "backdrop",
1052
+ "properties": [
1053
+ {
1054
+ "name": "id",
1055
+ "required": true,
1056
+ "type": "string"
1057
+ },
1058
+ {
1059
+ "name": "name",
1060
+ "required": true,
1061
+ "type": "string"
1062
+ },
1063
+ {
1064
+ "name": "caption",
1065
+ "type": "string"
1066
+ },
1067
+ {
1068
+ "name": "x",
1069
+ "required": true,
1070
+ "type": "number"
1071
+ },
1072
+ {
1073
+ "name": "y",
1074
+ "required": true,
1075
+ "type": "number"
1076
+ },
1077
+ {
1078
+ "name": "z",
1079
+ "required": true,
1080
+ "type": "number"
1081
+ },
1082
+ {
1083
+ "name": "radius",
1084
+ "type": "number"
1085
+ },
1086
+ {
1087
+ "name": "color",
1088
+ "type": "string"
1089
+ },
1090
+ {
1091
+ "name": "shape",
1092
+ "type": "string"
1093
+ },
1094
+ {
1095
+ "name": "opacity",
1096
+ "type": "number"
1097
+ }
1098
+ ],
1099
+ "required": true,
1100
+ "type": "[object]"
1101
+ }
1102
+ ],
1103
+ "tier": "domain"
1104
+ },
942
1105
  {
943
1106
  "id": "evt_01M07RCKW2DSDNYZ59EYX7RSHP",
944
1107
  "key": "TOUR",
@@ -1583,9 +1746,17 @@
1583
1746
  "eventId": "evt_01M07RCKW0YARJ2BYJ1MZGFTRD",
1584
1747
  "from": "idle",
1585
1748
  "guard": [
1586
- "==",
1587
- "@config.matchMode",
1588
- ""
1749
+ "and",
1750
+ [
1751
+ "==",
1752
+ "@config.matchMode",
1753
+ ""
1754
+ ],
1755
+ [
1756
+ "==",
1757
+ "@config.rosterSource",
1758
+ "config"
1759
+ ]
1589
1760
  ],
1590
1761
  "to": "idle"
1591
1762
  },
@@ -2037,9 +2208,487 @@
2037
2208
  "eventId": "evt_01M07RCKW2FDQK2QD7WX4GTRMJ",
2038
2209
  "from": "idle",
2039
2210
  "guard": [
2040
- "==",
2041
- "@payload.mode",
2042
- "@config.matchMode"
2211
+ "and",
2212
+ [
2213
+ "==",
2214
+ "@payload.mode",
2215
+ "@config.matchMode"
2216
+ ],
2217
+ [
2218
+ "==",
2219
+ "@config.rosterSource",
2220
+ "config"
2221
+ ]
2222
+ ],
2223
+ "to": "idle"
2224
+ },
2225
+ {
2226
+ "effects": [
2227
+ [
2228
+ "set",
2229
+ "@entity.active",
2230
+ true
2231
+ ],
2232
+ [
2233
+ "set",
2234
+ "@entity.title",
2235
+ "@config.title"
2236
+ ],
2237
+ [
2238
+ "set",
2239
+ "@entity.stations",
2240
+ "@payload.stations"
2241
+ ],
2242
+ [
2243
+ "set",
2244
+ "@entity.backdrop",
2245
+ "@payload.backdrop"
2246
+ ],
2247
+ [
2248
+ "set",
2249
+ "@entity.edges",
2250
+ "@payload.edges"
2251
+ ],
2252
+ [
2253
+ "set",
2254
+ "@entity.selectedIndex",
2255
+ 0.0
2256
+ ],
2257
+ [
2258
+ "set",
2259
+ "@entity.selectedId",
2260
+ [
2261
+ "object/get",
2262
+ [
2263
+ "array/nth",
2264
+ "@entity.stations",
2265
+ 0.0
2266
+ ],
2267
+ "id"
2268
+ ]
2269
+ ],
2270
+ [
2271
+ "set",
2272
+ "@entity.visitedIds",
2273
+ [
2274
+ [
2275
+ "object/get",
2276
+ [
2277
+ "array/nth",
2278
+ "@entity.stations",
2279
+ 0.0
2280
+ ],
2281
+ "id"
2282
+ ]
2283
+ ]
2284
+ ],
2285
+ [
2286
+ "set",
2287
+ "@entity.tourComplete",
2288
+ false
2289
+ ],
2290
+ [
2291
+ "set",
2292
+ "@entity.narration",
2293
+ [
2294
+ "str/concat",
2295
+ [
2296
+ "object/get",
2297
+ [
2298
+ "array/nth",
2299
+ "@entity.stations",
2300
+ 0.0
2301
+ ],
2302
+ "name"
2303
+ ],
2304
+ " — ",
2305
+ [
2306
+ "object/get",
2307
+ [
2308
+ "array/nth",
2309
+ "@entity.stations",
2310
+ 0.0
2311
+ ],
2312
+ "caption"
2313
+ ]
2314
+ ]
2315
+ ],
2316
+ [
2317
+ "render-ui",
2318
+ "main",
2319
+ {
2320
+ "children": [
2321
+ {
2322
+ "children": [
2323
+ {
2324
+ "align": "start",
2325
+ "children": [
2326
+ {
2327
+ "children": [
2328
+ {
2329
+ "content": "@entity.title",
2330
+ "type": "typography",
2331
+ "variant": "h4"
2332
+ },
2333
+ [
2334
+ "if",
2335
+ [
2336
+ "==",
2337
+ "@config.summary",
2338
+ ""
2339
+ ],
2340
+ null,
2341
+ {
2342
+ "color": "muted",
2343
+ "content": "@config.summary",
2344
+ "type": "typography",
2345
+ "variant": "body2"
2346
+ }
2347
+ ]
2348
+ ],
2349
+ "direction": "vertical",
2350
+ "gap": "xs",
2351
+ "type": "stack"
2352
+ },
2353
+ {
2354
+ "label": [
2355
+ "if",
2356
+ "@entity.tourComplete",
2357
+ "Complete",
2358
+ [
2359
+ "str/concat",
2360
+ "Station ",
2361
+ [
2362
+ "str/concat",
2363
+ "",
2364
+ [
2365
+ "+",
2366
+ "@entity.selectedIndex",
2367
+ 1.0
2368
+ ]
2369
+ ],
2370
+ " of ",
2371
+ [
2372
+ "str/concat",
2373
+ "",
2374
+ [
2375
+ "array/len",
2376
+ "@entity.stations"
2377
+ ]
2378
+ ]
2379
+ ]
2380
+ ],
2381
+ "type": "badge",
2382
+ "variant": [
2383
+ "if",
2384
+ "@entity.tourComplete",
2385
+ "success",
2386
+ "neutral"
2387
+ ]
2388
+ }
2389
+ ],
2390
+ "direction": "horizontal",
2391
+ "gap": "md",
2392
+ "justify": "between",
2393
+ "type": "stack"
2394
+ },
2395
+ {
2396
+ "align": "center",
2397
+ "children": [
2398
+ {
2399
+ "action": "TOUR",
2400
+ "icon": "chevron-right",
2401
+ "label": "@config.tourLabel",
2402
+ "type": "button",
2403
+ "variant": "primary"
2404
+ },
2405
+ {
2406
+ "action": "RESET",
2407
+ "icon": "rotate-ccw",
2408
+ "label": "@config.resetLabel",
2409
+ "type": "button",
2410
+ "variant": "ghost"
2411
+ },
2412
+ {
2413
+ "color": "muted",
2414
+ "content": [
2415
+ "str/concat",
2416
+ "Explored ",
2417
+ [
2418
+ "str/concat",
2419
+ "",
2420
+ [
2421
+ "array/len",
2422
+ "@entity.visitedIds"
2423
+ ]
2424
+ ],
2425
+ " of ",
2426
+ [
2427
+ "str/concat",
2428
+ "",
2429
+ [
2430
+ "array/len",
2431
+ "@entity.stations"
2432
+ ]
2433
+ ],
2434
+ [
2435
+ "if",
2436
+ "@entity.tourComplete",
2437
+ " — tour complete!",
2438
+ ""
2439
+ ]
2440
+ ],
2441
+ "type": "typography",
2442
+ "variant": "caption"
2443
+ }
2444
+ ],
2445
+ "direction": "horizontal",
2446
+ "gap": "sm",
2447
+ "type": "stack",
2448
+ "wrap": true
2449
+ },
2450
+ {
2451
+ "backgroundColor": "@config.backgroundColor",
2452
+ "camera": {
2453
+ "azimuth": "@config.azimuth",
2454
+ "fov": "@config.fov",
2455
+ "mode": "perspective",
2456
+ "target": {
2457
+ "x": [
2458
+ "object/get",
2459
+ [
2460
+ "array/nth",
2461
+ "@entity.stations",
2462
+ "@entity.selectedIndex"
2463
+ ],
2464
+ "x"
2465
+ ],
2466
+ "y": [
2467
+ "object/get",
2468
+ [
2469
+ "array/nth",
2470
+ "@entity.stations",
2471
+ "@entity.selectedIndex"
2472
+ ],
2473
+ "y"
2474
+ ],
2475
+ "z": [
2476
+ "object/get",
2477
+ [
2478
+ "array/nth",
2479
+ "@entity.stations",
2480
+ "@entity.selectedIndex"
2481
+ ],
2482
+ "z"
2483
+ ]
2484
+ },
2485
+ "zoom": "@config.zoom"
2486
+ },
2487
+ "edges": "@entity.edges",
2488
+ "height": "@config.height",
2489
+ "interactive": true,
2490
+ "keyMap": {
2491
+ "ArrowRight": "TOUR",
2492
+ "KeyR": "RESET",
2493
+ "Space": "TOUR"
2494
+ },
2495
+ "lighting": "@config.lighting",
2496
+ "mode": "3d",
2497
+ "nodes": [
2498
+ "array/map",
2499
+ [
2500
+ "array/concat",
2501
+ "@entity.backdrop",
2502
+ "@entity.stations"
2503
+ ],
2504
+ [
2505
+ "fn",
2506
+ "n",
2507
+ {
2508
+ "color": [
2509
+ "object/get",
2510
+ "@n",
2511
+ "color"
2512
+ ],
2513
+ "id": [
2514
+ "object/get",
2515
+ "@n",
2516
+ "id"
2517
+ ],
2518
+ "label": [
2519
+ "object/get",
2520
+ "@n",
2521
+ "name"
2522
+ ],
2523
+ "opacity": [
2524
+ "object/get",
2525
+ "@n",
2526
+ "opacity"
2527
+ ],
2528
+ "radius": [
2529
+ "if",
2530
+ [
2531
+ "==",
2532
+ [
2533
+ "object/get",
2534
+ "@n",
2535
+ "id"
2536
+ ],
2537
+ "@entity.selectedId"
2538
+ ],
2539
+ [
2540
+ "*",
2541
+ [
2542
+ "object/get",
2543
+ "@n",
2544
+ "radius"
2545
+ ],
2546
+ 1.4
2547
+ ],
2548
+ [
2549
+ "object/get",
2550
+ "@n",
2551
+ "radius"
2552
+ ]
2553
+ ],
2554
+ "shape": [
2555
+ "object/get",
2556
+ "@n",
2557
+ "shape"
2558
+ ],
2559
+ "x": [
2560
+ "object/get",
2561
+ "@n",
2562
+ "x"
2563
+ ],
2564
+ "y": [
2565
+ "object/get",
2566
+ "@n",
2567
+ "y"
2568
+ ],
2569
+ "z": [
2570
+ "object/get",
2571
+ "@n",
2572
+ "z"
2573
+ ]
2574
+ }
2575
+ ]
2576
+ ],
2577
+ "onShapeClick": "SELECT_STATION",
2578
+ "post": "@config.post",
2579
+ "type": "biology-canvas",
2580
+ "width": "@config.width"
2581
+ },
2582
+ {
2583
+ "content": "@entity.narration",
2584
+ "type": "typography",
2585
+ "variant": "body"
2586
+ }
2587
+ ],
2588
+ "direction": "vertical",
2589
+ "gap": "md",
2590
+ "type": "stack"
2591
+ }
2592
+ ],
2593
+ "padding": "md",
2594
+ "type": "box"
2595
+ }
2596
+ ],
2597
+ [
2598
+ "emit",
2599
+ "TOUR_3D_UPDATED",
2600
+ {
2601
+ "caption": [
2602
+ "object/get",
2603
+ [
2604
+ "array/nth",
2605
+ "@entity.stations",
2606
+ 0.0
2607
+ ],
2608
+ "caption"
2609
+ ],
2610
+ "id": "@entity.selectedId",
2611
+ "name": [
2612
+ "object/get",
2613
+ [
2614
+ "array/nth",
2615
+ "@entity.stations",
2616
+ 0.0
2617
+ ],
2618
+ "name"
2619
+ ],
2620
+ "total": [
2621
+ "array/len",
2622
+ "@entity.stations"
2623
+ ],
2624
+ "tourComplete": false,
2625
+ "visited": [
2626
+ "array/len",
2627
+ "@entity.visitedIds"
2628
+ ]
2629
+ }
2630
+ ]
2631
+ ],
2632
+ "event": "ROSTER_LOADED",
2633
+ "eventId": "evt_01M459X4HCG3DKD94CCJGYT5FQ",
2634
+ "from": "idle",
2635
+ "guard": [
2636
+ "and",
2637
+ [
2638
+ "==",
2639
+ "@config.rosterSource",
2640
+ "event"
2641
+ ],
2642
+ [
2643
+ "and",
2644
+ [
2645
+ "==",
2646
+ "@payload.mode",
2647
+ "@config.matchMode"
2648
+ ],
2649
+ [
2650
+ ">",
2651
+ [
2652
+ "array/len",
2653
+ "@payload.stations"
2654
+ ],
2655
+ 0.0
2656
+ ]
2657
+ ]
2658
+ ],
2659
+ "to": "idle"
2660
+ },
2661
+ {
2662
+ "effects": [
2663
+ [
2664
+ "set",
2665
+ "@entity.active",
2666
+ false
2667
+ ],
2668
+ [
2669
+ "render-ui",
2670
+ "main",
2671
+ null
2672
+ ]
2673
+ ],
2674
+ "event": "ROSTER_LOADED",
2675
+ "eventId": "evt_01M459X4HCG3DKD94CCJGYT5FQ",
2676
+ "from": "idle",
2677
+ "guard": [
2678
+ "and",
2679
+ [
2680
+ "==",
2681
+ "@config.rosterSource",
2682
+ "event"
2683
+ ],
2684
+ [
2685
+ "not",
2686
+ [
2687
+ "==",
2688
+ "@payload.mode",
2689
+ "@config.matchMode"
2690
+ ]
2691
+ ]
2043
2692
  ],
2044
2693
  "to": "idle"
2045
2694
  },