@almadar/std 16.181.0 → 16.183.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 (90) hide show
  1. package/behaviors/lolo/infra/atoms/std-calendar-sync.lolo +290 -0
  2. package/behaviors/lolo/infra/atoms/std-migration-job.lolo +2 -2
  3. package/behaviors/lolo/infra/atoms/std-notification-center.lolo +290 -0
  4. package/behaviors/lolo/infra/atoms/std-notify-on-event.lolo +238 -40
  5. package/behaviors/lolo/ui/core/atoms/std-esign-flow.lolo +180 -3
  6. package/behaviors/lolo/ui/core/molecules/ui-calendar-grid.lolo +6 -0
  7. package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +4 -4
  8. package/behaviors/lolo/ui/game/.hand-authored.json +1 -1
  9. package/behaviors/lolo/ui/game/atoms/std-fx-trail.lolo +63 -0
  10. package/behaviors/lolo/ui/game/atoms/std-gate-lock.lolo +96 -0
  11. package/behaviors/lolo/ui/game/atoms/std-lives.lolo +121 -0
  12. package/behaviors/lolo/ui/game/atoms/std-patrol-hazard.lolo +96 -0
  13. package/behaviors/lolo/ui/game/atoms/std-tutorial-overlay.lolo +164 -0
  14. package/behaviors/lolo/ui/game/atoms/ui-control-grid.lolo +5 -0
  15. package/behaviors/lolo/ui/game/atoms/ui-game-hud.lolo +5 -0
  16. package/behaviors/lolo/ui/game/templates/ui-game-shell.lolo +5 -5
  17. package/behaviors/lolo/ui/learning/atoms/std-learn-slope-probe.lolo +117 -0
  18. package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +18 -0
  19. package/behaviors/registry/infra/atoms/std-calendar-sync.orb +1643 -0
  20. package/behaviors/registry/infra/atoms/std-migration-job.orb +2 -2
  21. package/behaviors/registry/infra/atoms/std-notification-center.orb +1621 -0
  22. package/behaviors/registry/infra/atoms/std-notify-on-event.orb +1734 -169
  23. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +846 -2
  24. package/behaviors/registry/ui/core/molecules/ui-calendar-grid.orb +9 -0
  25. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +4 -2
  26. package/behaviors/registry/ui/game/atoms/std-fx-trail.orb +376 -0
  27. package/behaviors/registry/ui/game/atoms/std-gate-lock.orb +852 -0
  28. package/behaviors/registry/ui/game/atoms/std-lives.orb +739 -0
  29. package/behaviors/registry/ui/game/atoms/std-patrol-hazard.orb +768 -0
  30. package/behaviors/registry/ui/game/atoms/std-tutorial-overlay.orb +1060 -0
  31. package/behaviors/registry/ui/game/atoms/ui-control-grid.orb +13 -1
  32. package/behaviors/registry/ui/game/atoms/ui-game-hud.orb +13 -1
  33. package/behaviors/registry/ui/game/templates/ui-game-shell.orb +5 -5
  34. package/behaviors/registry/ui/learning/atoms/std-learn-slope-probe.orb +908 -0
  35. package/canonical-operators.json +21 -1
  36. package/dist/behaviors/exports-reader.js +9021 -3497
  37. package/dist/behaviors/functions/index.d.ts +1001 -10
  38. package/dist/behaviors/functions/index.js +18568 -13079
  39. package/dist/behaviors/index.d.ts +1 -1
  40. package/dist/behaviors/index.js +9022 -3498
  41. package/dist/behaviors/query.js +9021 -3497
  42. package/dist/behaviors-embeddings.hash.json +3 -3
  43. package/dist/behaviors-embeddings.json +347 -315
  44. package/dist/behaviors-registry.json +2694 -56
  45. package/dist/index.d.ts +3 -3
  46. package/dist/index.js +8502 -2941
  47. package/dist/knob-embeddings.hash.json +3 -3
  48. package/dist/knob-embeddings.json +1 -1
  49. package/dist/modules/anim.d.ts +1 -1
  50. package/dist/modules/array.d.ts +1 -1
  51. package/dist/modules/async.d.ts +1 -1
  52. package/dist/modules/behavior.d.ts +1 -1
  53. package/dist/modules/browser.d.ts +1 -1
  54. package/dist/modules/browser.js +21 -0
  55. package/dist/modules/composition.d.ts +1 -1
  56. package/dist/modules/contract.d.ts +1 -1
  57. package/dist/modules/core.d.ts +1 -1
  58. package/dist/modules/core.js +18 -2
  59. package/dist/modules/data.d.ts +1 -1
  60. package/dist/modules/ease.d.ts +1 -1
  61. package/dist/modules/format.d.ts +1 -1
  62. package/dist/modules/geo.d.ts +1 -1
  63. package/dist/modules/graph.d.ts +1 -1
  64. package/dist/modules/grid.d.ts +1 -1
  65. package/dist/modules/index.d.ts +1 -1
  66. package/dist/modules/index.js +39 -2
  67. package/dist/modules/integration.d.ts +1 -1
  68. package/dist/modules/llm.d.ts +1 -1
  69. package/dist/modules/math.d.ts +1 -1
  70. package/dist/modules/memory.d.ts +1 -1
  71. package/dist/modules/nn.d.ts +1 -1
  72. package/dist/modules/noise.d.ts +1 -1
  73. package/dist/modules/object.d.ts +1 -1
  74. package/dist/modules/os.d.ts +1 -1
  75. package/dist/modules/path.d.ts +1 -1
  76. package/dist/modules/prob.d.ts +1 -1
  77. package/dist/modules/session.d.ts +1 -1
  78. package/dist/modules/str.d.ts +1 -1
  79. package/dist/modules/tensor.d.ts +1 -1
  80. package/dist/modules/time.d.ts +1 -1
  81. package/dist/modules/trace.d.ts +1 -1
  82. package/dist/modules/train.d.ts +1 -1
  83. package/dist/modules/validate.d.ts +1 -1
  84. package/dist/modules/vector.d.ts +1 -1
  85. package/dist/modules/workspace.d.ts +1 -1
  86. package/dist/registry/factory-signatures.json +1 -1
  87. package/dist/registry.d.ts +1 -1
  88. package/dist/registry.js +39 -2
  89. package/dist/{types-DGJ6Y6nW.d.ts → types-BXWzEjFm.d.ts} +1 -1
  90. package/package.json +3 -3
@@ -0,0 +1,908 @@
1
+ {
2
+ "description": "Headless derivative probe for graph-riding learning boards: while the body authority's BODY_MOVED reports its `skating` flag (body riding the curve), it brackets the configured curve around the body's x and derives the local calculus readout — the slope dy/dx, a tangent-line segment of half-width `window` centered on the contact point, a rise-over-run triangle (run `triRun`, rise slope·run), and the glow window of curve samples around the contact — all written to a [runtime, shared] entity so the board renders the math the player is physically riding. Emits the sparse SLOPE_CHANGED signal only when the slope crosses a 0.5 bucket boundary, so fx and HUD meters react to *changes* in steepness without paying a per-tick event. The curve is the same sample table the body skates and the canvas draws — one source, three views. Renders nothing.",
3
+ "ledger": {
4
+ "entries": {
5
+ "ent_01M0PCKHE11KYZX94KWC57GXV6": {
6
+ "bakedName": "SlopeProbeState",
7
+ "curName": "SlopeProbeState",
8
+ "id": "ent_01M0PCKHE11KYZX94KWC57GXV6",
9
+ "kind": "entity",
10
+ "owner": "workspace",
11
+ "renames": []
12
+ },
13
+ "evt_01M0PCKHE128V5KDZKW5641SC0": {
14
+ "bakedName": "INIT",
15
+ "curName": "INIT",
16
+ "id": "evt_01M0PCKHE128V5KDZKW5641SC0",
17
+ "kind": "event",
18
+ "owner": "workspace",
19
+ "parent": "trt_01M0PCKHE1M92GK1XB3S6AJ740",
20
+ "renames": []
21
+ },
22
+ "evt_01M0PCKHE12DGVT5B7T3TPJ62C": {
23
+ "bakedName": "SLOPE_CHANGED",
24
+ "curName": "SLOPE_CHANGED",
25
+ "id": "evt_01M0PCKHE12DGVT5B7T3TPJ62C",
26
+ "kind": "event",
27
+ "owner": "workspace",
28
+ "parent": "trt_01M0PCKHE1M92GK1XB3S6AJ740",
29
+ "renames": []
30
+ },
31
+ "evt_01M0PCKHE13WYBS0FD96E41N8P": {
32
+ "bakedName": "BODY_MOVED",
33
+ "curName": "BODY_MOVED",
34
+ "id": "evt_01M0PCKHE13WYBS0FD96E41N8P",
35
+ "kind": "event",
36
+ "owner": "workspace",
37
+ "parent": "trt_01M0PCKHE1M92GK1XB3S6AJ740",
38
+ "renames": []
39
+ },
40
+ "evt_01M0PCKHE1NS3DMPSXV27AB9PC": {
41
+ "bakedName": "RESTART",
42
+ "curName": "RESTART",
43
+ "id": "evt_01M0PCKHE1NS3DMPSXV27AB9PC",
44
+ "kind": "event",
45
+ "owner": "workspace",
46
+ "parent": "trt_01M0PCKHE1M92GK1XB3S6AJ740",
47
+ "renames": []
48
+ },
49
+ "orb_01M0PCKHE1NHAQJX69K4B0BDYN": {
50
+ "bakedName": "LearnSlopeProbeOrbital",
51
+ "curName": "LearnSlopeProbeOrbital",
52
+ "id": "orb_01M0PCKHE1NHAQJX69K4B0BDYN",
53
+ "kind": "orbital",
54
+ "owner": "workspace",
55
+ "renames": []
56
+ },
57
+ "pag_01M0PCKHE1E5THPAXQSJ3SX27B": {
58
+ "bakedName": "LearnSlopeProbePage",
59
+ "curName": "LearnSlopeProbePage",
60
+ "id": "pag_01M0PCKHE1E5THPAXQSJ3SX27B",
61
+ "kind": "page",
62
+ "owner": "workspace",
63
+ "renames": []
64
+ },
65
+ "trt_01M0PCKHE1M92GK1XB3S6AJ740": {
66
+ "bakedName": "LearnSlopeProbe",
67
+ "curName": "LearnSlopeProbe",
68
+ "id": "trt_01M0PCKHE1M92GK1XB3S6AJ740",
69
+ "kind": "trait",
70
+ "owner": "workspace",
71
+ "renames": []
72
+ }
73
+ },
74
+ "schemaVersion": 1
75
+ },
76
+ "name": "std-learn-slope-probe",
77
+ "orbitals": [
78
+ {
79
+ "entity": {
80
+ "fields": [
81
+ {
82
+ "name": "id",
83
+ "required": true,
84
+ "type": "string"
85
+ },
86
+ {
87
+ "default": false,
88
+ "name": "probing",
89
+ "type": "boolean"
90
+ },
91
+ {
92
+ "default": 0.0,
93
+ "name": "x",
94
+ "type": "number"
95
+ },
96
+ {
97
+ "default": 0.0,
98
+ "name": "y",
99
+ "type": "number"
100
+ },
101
+ {
102
+ "default": 0.0,
103
+ "name": "slope",
104
+ "type": "number"
105
+ },
106
+ {
107
+ "default": 0.0,
108
+ "name": "tax",
109
+ "type": "number"
110
+ },
111
+ {
112
+ "default": 0.0,
113
+ "name": "tay",
114
+ "type": "number"
115
+ },
116
+ {
117
+ "default": 0.0,
118
+ "name": "tbx",
119
+ "type": "number"
120
+ },
121
+ {
122
+ "default": 0.0,
123
+ "name": "tby",
124
+ "type": "number"
125
+ },
126
+ {
127
+ "default": 0.0,
128
+ "name": "triAx",
129
+ "type": "number"
130
+ },
131
+ {
132
+ "default": 0.0,
133
+ "name": "triAy",
134
+ "type": "number"
135
+ },
136
+ {
137
+ "default": 0.0,
138
+ "name": "triBx",
139
+ "type": "number"
140
+ },
141
+ {
142
+ "default": 0.0,
143
+ "name": "triBy",
144
+ "type": "number"
145
+ },
146
+ {
147
+ "default": 0.0,
148
+ "name": "triCx",
149
+ "type": "number"
150
+ },
151
+ {
152
+ "default": 0.0,
153
+ "name": "triCy",
154
+ "type": "number"
155
+ },
156
+ {
157
+ "default": [],
158
+ "items": {
159
+ "properties": {
160
+ "x": {
161
+ "name": "x",
162
+ "required": true,
163
+ "type": "number"
164
+ },
165
+ "y": {
166
+ "name": "y",
167
+ "required": true,
168
+ "type": "number"
169
+ }
170
+ },
171
+ "type": "object"
172
+ },
173
+ "name": "segment",
174
+ "type": "array"
175
+ },
176
+ {
177
+ "default": 9999.0,
178
+ "name": "bucket",
179
+ "type": "number"
180
+ }
181
+ ],
182
+ "id": "ent_01M0PCKHE11KYZX94KWC57GXV6",
183
+ "name": "SlopeProbeState",
184
+ "persistence": "runtime",
185
+ "shared": true
186
+ },
187
+ "id": "orb_01M0PCKHE1NHAQJX69K4B0BDYN",
188
+ "name": "LearnSlopeProbeOrbital",
189
+ "pages": [
190
+ {
191
+ "id": "pag_01M0PCKHE1E5THPAXQSJ3SX27B",
192
+ "name": "LearnSlopeProbePage",
193
+ "path": "/learn-slope-probe",
194
+ "traits": [
195
+ {
196
+ "ref": "LearnSlopeProbe",
197
+ "refId": "trt_01M0PCKHE1M92GK1XB3S6AJ740"
198
+ }
199
+ ]
200
+ }
201
+ ],
202
+ "traits": [
203
+ {
204
+ "category": "lifecycle",
205
+ "config": {
206
+ "curve": {
207
+ "default": [],
208
+ "description": "Surface samples (x strictly increasing) of the graph being ridden — the same table the body skates and the canvas draws, so the readout matches what is underfoot.",
209
+ "items": {
210
+ "properties": {
211
+ "x": {
212
+ "name": "x",
213
+ "required": true,
214
+ "type": "number"
215
+ },
216
+ "y": {
217
+ "name": "y",
218
+ "required": true,
219
+ "type": "number"
220
+ }
221
+ },
222
+ "type": "object"
223
+ },
224
+ "label": "Curve",
225
+ "tier": "domain",
226
+ "type": "[ProbeSample]"
227
+ },
228
+ "running": {
229
+ "default": true,
230
+ "description": "When true the probe derives the readout off BODY_MOVED; toggle to freeze it (the board hides the tangent overlays when probing goes stale).",
231
+ "label": "Running",
232
+ "tier": "domain",
233
+ "type": "boolean"
234
+ },
235
+ "triRun": {
236
+ "default": 1.0,
237
+ "description": "Horizontal leg of the rise-over-run triangle; the vertical leg is slope × triRun, so triRun = 1 reads the slope directly.",
238
+ "label": "Triangle Run",
239
+ "tier": "presentation",
240
+ "type": "number"
241
+ },
242
+ "window": {
243
+ "default": 1.5,
244
+ "description": "Half-length (world units along the tangent) of the tangent segment and of the glow sample window around the contact point.",
245
+ "label": "Tangent Window",
246
+ "tier": "presentation",
247
+ "type": "number"
248
+ }
249
+ },
250
+ "emits": [
251
+ {
252
+ "description": "The local dy/dx crossed a 0.5 bucket boundary while the probe was active; slope is exact, bucket is the rounded step — fx/HUD scale with steepness without paying per-tick events.",
253
+ "event": "SLOPE_CHANGED",
254
+ "eventId": "evt_01M0PCKHE12DGVT5B7T3TPJ62C",
255
+ "payloadSchema": [
256
+ {
257
+ "name": "slope",
258
+ "required": true,
259
+ "type": "number"
260
+ },
261
+ {
262
+ "name": "bucket",
263
+ "required": true,
264
+ "type": "number"
265
+ }
266
+ ],
267
+ "scope": "external",
268
+ "tier": "domain"
269
+ }
270
+ ],
271
+ "entityContract": {
272
+ "provides": [
273
+ "bucket",
274
+ "probing",
275
+ "segment",
276
+ "slope",
277
+ "tax",
278
+ "tay",
279
+ "tbx",
280
+ "tby",
281
+ "triAx",
282
+ "triAy",
283
+ "triBx",
284
+ "triBy",
285
+ "triCx",
286
+ "triCy",
287
+ "x",
288
+ "y"
289
+ ],
290
+ "requires": []
291
+ },
292
+ "entityRebindable": true,
293
+ "entityRefIds": {
294
+ "SlopeProbeState": "ent_01M0PCKHE11KYZX94KWC57GXV6"
295
+ },
296
+ "id": "trt_01M0PCKHE1M92GK1XB3S6AJ740",
297
+ "linkedEntity": "SlopeProbeState",
298
+ "linkedEntityId": "ent_01M0PCKHE11KYZX94KWC57GXV6",
299
+ "name": "LearnSlopeProbe",
300
+ "scope": "instance",
301
+ "stateMachine": {
302
+ "events": [
303
+ {
304
+ "id": "evt_01M0PCKHE128V5KDZKW5641SC0",
305
+ "key": "INIT",
306
+ "name": "Initialize"
307
+ },
308
+ {
309
+ "id": "evt_01M0PCKHE13WYBS0FD96E41N8P",
310
+ "key": "BODY_MOVED",
311
+ "name": "Body Moved",
312
+ "payloadSchema": [
313
+ {
314
+ "name": "x",
315
+ "required": true,
316
+ "type": "number"
317
+ },
318
+ {
319
+ "name": "y",
320
+ "required": true,
321
+ "type": "number"
322
+ },
323
+ {
324
+ "name": "vx",
325
+ "required": true,
326
+ "type": "number"
327
+ },
328
+ {
329
+ "name": "vy",
330
+ "required": true,
331
+ "type": "number"
332
+ },
333
+ {
334
+ "name": "grounded",
335
+ "required": true,
336
+ "type": "boolean"
337
+ },
338
+ {
339
+ "name": "skating",
340
+ "required": true,
341
+ "type": "boolean"
342
+ },
343
+ {
344
+ "name": "speed",
345
+ "required": true,
346
+ "type": "number"
347
+ }
348
+ ]
349
+ },
350
+ {
351
+ "id": "evt_01M0PCKHE1NS3DMPSXV27AB9PC",
352
+ "key": "RESTART",
353
+ "name": "Restart",
354
+ "payloadSchema": [
355
+ {
356
+ "name": "id",
357
+ "type": "string"
358
+ }
359
+ ]
360
+ },
361
+ {
362
+ "description": "The local dy/dx crossed a 0.5 bucket boundary while the probe was active; slope is exact, bucket is the rounded step — fx/HUD scale with steepness without paying per-tick events.",
363
+ "id": "evt_01M0PCKHE12DGVT5B7T3TPJ62C",
364
+ "key": "SLOPE_CHANGED",
365
+ "name": "Slope Changed",
366
+ "payloadSchema": [
367
+ {
368
+ "name": "slope",
369
+ "required": true,
370
+ "type": "number"
371
+ },
372
+ {
373
+ "name": "bucket",
374
+ "required": true,
375
+ "type": "number"
376
+ }
377
+ ],
378
+ "tier": "domain"
379
+ }
380
+ ],
381
+ "states": [
382
+ {
383
+ "isInitial": true,
384
+ "name": "idle"
385
+ }
386
+ ],
387
+ "transitions": [
388
+ {
389
+ "effects": [
390
+ [
391
+ "set",
392
+ "@entity.probing",
393
+ false
394
+ ],
395
+ [
396
+ "set",
397
+ "@entity.segment",
398
+ []
399
+ ],
400
+ [
401
+ "set",
402
+ "@entity.bucket",
403
+ 9999.0
404
+ ]
405
+ ],
406
+ "event": "INIT",
407
+ "eventId": "evt_01M0PCKHE128V5KDZKW5641SC0",
408
+ "from": "idle",
409
+ "to": "idle"
410
+ },
411
+ {
412
+ "effects": [
413
+ [
414
+ "let",
415
+ [
416
+ [
417
+ "on",
418
+ [
419
+ "and",
420
+ "@payload.skating",
421
+ [
422
+ ">",
423
+ [
424
+ "array/len",
425
+ "@config.curve"
426
+ ],
427
+ 1.0
428
+ ]
429
+ ]
430
+ ]
431
+ ],
432
+ [
433
+ "let",
434
+ [
435
+ [
436
+ "inRange",
437
+ [
438
+ "and",
439
+ "@on",
440
+ [
441
+ "and",
442
+ [
443
+ ">=",
444
+ "@payload.x",
445
+ [
446
+ "object/get",
447
+ [
448
+ "array/first",
449
+ "@config.curve"
450
+ ],
451
+ "x"
452
+ ]
453
+ ],
454
+ [
455
+ "<=",
456
+ "@payload.x",
457
+ [
458
+ "object/get",
459
+ [
460
+ "array/last",
461
+ "@config.curve"
462
+ ],
463
+ "x"
464
+ ]
465
+ ]
466
+ ]
467
+ ]
468
+ ]
469
+ ],
470
+ [
471
+ "if",
472
+ "@inRange",
473
+ [
474
+ "let",
475
+ [
476
+ [
477
+ "leftSamp",
478
+ [
479
+ "array/last",
480
+ [
481
+ "array/filter",
482
+ "@config.curve",
483
+ [
484
+ "fn",
485
+ "s",
486
+ [
487
+ "<=",
488
+ [
489
+ "object/get",
490
+ "@s",
491
+ "x"
492
+ ],
493
+ "@payload.x"
494
+ ]
495
+ ]
496
+ ]
497
+ ]
498
+ ],
499
+ [
500
+ "rightSamp",
501
+ [
502
+ "array/first",
503
+ [
504
+ "array/filter",
505
+ "@config.curve",
506
+ [
507
+ "fn",
508
+ "s",
509
+ [
510
+ ">",
511
+ [
512
+ "object/get",
513
+ "@s",
514
+ "x"
515
+ ],
516
+ "@payload.x"
517
+ ]
518
+ ]
519
+ ]
520
+ ]
521
+ ]
522
+ ],
523
+ [
524
+ "let",
525
+ [
526
+ [
527
+ "slope",
528
+ [
529
+ "if",
530
+ [
531
+ "==",
532
+ "@rightSamp",
533
+ null
534
+ ],
535
+ 0.0,
536
+ [
537
+ "/",
538
+ [
539
+ "-",
540
+ [
541
+ "object/get",
542
+ "@rightSamp",
543
+ "y"
544
+ ],
545
+ [
546
+ "object/get",
547
+ "@leftSamp",
548
+ "y"
549
+ ]
550
+ ],
551
+ [
552
+ "-",
553
+ [
554
+ "object/get",
555
+ "@rightSamp",
556
+ "x"
557
+ ],
558
+ [
559
+ "object/get",
560
+ "@leftSamp",
561
+ "x"
562
+ ]
563
+ ]
564
+ ]
565
+ ]
566
+ ]
567
+ ],
568
+ [
569
+ "let",
570
+ [
571
+ [
572
+ "curveY",
573
+ [
574
+ "if",
575
+ [
576
+ "==",
577
+ "@rightSamp",
578
+ null
579
+ ],
580
+ [
581
+ "object/get",
582
+ "@leftSamp",
583
+ "y"
584
+ ],
585
+ [
586
+ "+",
587
+ [
588
+ "object/get",
589
+ "@leftSamp",
590
+ "y"
591
+ ],
592
+ [
593
+ "*",
594
+ "@slope",
595
+ [
596
+ "-",
597
+ "@payload.x",
598
+ [
599
+ "object/get",
600
+ "@leftSamp",
601
+ "x"
602
+ ]
603
+ ]
604
+ ]
605
+ ]
606
+ ]
607
+ ]
608
+ ],
609
+ [
610
+ "let",
611
+ [
612
+ [
613
+ "norm",
614
+ [
615
+ "math/sqrt",
616
+ [
617
+ "+",
618
+ 1.0,
619
+ [
620
+ "*",
621
+ "@slope",
622
+ "@slope"
623
+ ]
624
+ ]
625
+ ]
626
+ ]
627
+ ],
628
+ [
629
+ "let",
630
+ [
631
+ [
632
+ "dx",
633
+ [
634
+ "/",
635
+ "@config.window",
636
+ "@norm"
637
+ ]
638
+ ],
639
+ [
640
+ "dy",
641
+ [
642
+ "/",
643
+ [
644
+ "*",
645
+ "@slope",
646
+ "@config.window"
647
+ ],
648
+ "@norm"
649
+ ]
650
+ ]
651
+ ],
652
+ [
653
+ "let",
654
+ [
655
+ [
656
+ "newBucket",
657
+ [
658
+ "*",
659
+ [
660
+ "math/round",
661
+ [
662
+ "*",
663
+ "@slope",
664
+ 2.0
665
+ ],
666
+ 0.0
667
+ ],
668
+ 0.5
669
+ ]
670
+ ]
671
+ ],
672
+ [
673
+ "do",
674
+ [
675
+ "set",
676
+ "@entity.probing",
677
+ true
678
+ ],
679
+ [
680
+ "set",
681
+ "@entity.x",
682
+ "@payload.x"
683
+ ],
684
+ [
685
+ "set",
686
+ "@entity.y",
687
+ "@curveY"
688
+ ],
689
+ [
690
+ "set",
691
+ "@entity.slope",
692
+ "@slope"
693
+ ],
694
+ [
695
+ "set",
696
+ "@entity.tax",
697
+ [
698
+ "-",
699
+ "@payload.x",
700
+ "@dx"
701
+ ]
702
+ ],
703
+ [
704
+ "set",
705
+ "@entity.tay",
706
+ [
707
+ "-",
708
+ "@curveY",
709
+ "@dy"
710
+ ]
711
+ ],
712
+ [
713
+ "set",
714
+ "@entity.tbx",
715
+ [
716
+ "+",
717
+ "@payload.x",
718
+ "@dx"
719
+ ]
720
+ ],
721
+ [
722
+ "set",
723
+ "@entity.tby",
724
+ [
725
+ "+",
726
+ "@curveY",
727
+ "@dy"
728
+ ]
729
+ ],
730
+ [
731
+ "set",
732
+ "@entity.triAx",
733
+ "@payload.x"
734
+ ],
735
+ [
736
+ "set",
737
+ "@entity.triAy",
738
+ "@curveY"
739
+ ],
740
+ [
741
+ "set",
742
+ "@entity.triBx",
743
+ [
744
+ "+",
745
+ "@payload.x",
746
+ "@config.triRun"
747
+ ]
748
+ ],
749
+ [
750
+ "set",
751
+ "@entity.triBy",
752
+ "@curveY"
753
+ ],
754
+ [
755
+ "set",
756
+ "@entity.triCx",
757
+ [
758
+ "+",
759
+ "@payload.x",
760
+ "@config.triRun"
761
+ ]
762
+ ],
763
+ [
764
+ "set",
765
+ "@entity.triCy",
766
+ [
767
+ "+",
768
+ "@curveY",
769
+ [
770
+ "*",
771
+ "@slope",
772
+ "@config.triRun"
773
+ ]
774
+ ]
775
+ ],
776
+ [
777
+ "set",
778
+ "@entity.segment",
779
+ [
780
+ "array/filter",
781
+ "@config.curve",
782
+ [
783
+ "fn",
784
+ "s",
785
+ [
786
+ "and",
787
+ [
788
+ ">=",
789
+ [
790
+ "object/get",
791
+ "@s",
792
+ "x"
793
+ ],
794
+ [
795
+ "-",
796
+ "@payload.x",
797
+ "@config.window"
798
+ ]
799
+ ],
800
+ [
801
+ "<=",
802
+ [
803
+ "object/get",
804
+ "@s",
805
+ "x"
806
+ ],
807
+ [
808
+ "+",
809
+ "@payload.x",
810
+ "@config.window"
811
+ ]
812
+ ]
813
+ ]
814
+ ]
815
+ ]
816
+ ],
817
+ [
818
+ "if",
819
+ [
820
+ "!=",
821
+ "@newBucket",
822
+ "@entity.bucket"
823
+ ],
824
+ [
825
+ "do",
826
+ [
827
+ "set",
828
+ "@entity.bucket",
829
+ "@newBucket"
830
+ ],
831
+ [
832
+ "emit",
833
+ "SLOPE_CHANGED",
834
+ {
835
+ "bucket": "@newBucket",
836
+ "slope": "@slope"
837
+ }
838
+ ]
839
+ ],
840
+ null
841
+ ]
842
+ ]
843
+ ]
844
+ ]
845
+ ]
846
+ ]
847
+ ]
848
+ ],
849
+ [
850
+ "if",
851
+ "@entity.probing",
852
+ [
853
+ "do",
854
+ [
855
+ "set",
856
+ "@entity.probing",
857
+ false
858
+ ],
859
+ [
860
+ "set",
861
+ "@entity.segment",
862
+ []
863
+ ]
864
+ ],
865
+ null
866
+ ]
867
+ ]
868
+ ]
869
+ ]
870
+ ],
871
+ "event": "BODY_MOVED",
872
+ "eventId": "evt_01M0PCKHE13WYBS0FD96E41N8P",
873
+ "from": "idle",
874
+ "guard": "@config.running",
875
+ "to": "idle"
876
+ },
877
+ {
878
+ "effects": [
879
+ [
880
+ "set",
881
+ "@entity.probing",
882
+ false
883
+ ],
884
+ [
885
+ "set",
886
+ "@entity.segment",
887
+ []
888
+ ],
889
+ [
890
+ "set",
891
+ "@entity.bucket",
892
+ 9999.0
893
+ ]
894
+ ],
895
+ "event": "RESTART",
896
+ "eventId": "evt_01M0PCKHE1NS3DMPSXV27AB9PC",
897
+ "from": "idle",
898
+ "to": "idle"
899
+ }
900
+ ]
901
+ }
902
+ }
903
+ ]
904
+ }
905
+ ],
906
+ "schemaVersion": 1,
907
+ "version": "1.0.0"
908
+ }