@almadar/std 16.234.0 → 16.236.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 (245) hide show
  1. package/behaviors/behaviors-registry.json +4402 -1898
  2. package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +25 -41
  3. package/behaviors/lolo/infra/atoms/std-audit-capture.lolo +0 -5
  4. package/behaviors/lolo/infra/atoms/std-cache-aside.lolo +0 -24
  5. package/behaviors/lolo/infra/atoms/std-circuit-breaker.lolo +1 -17
  6. package/behaviors/lolo/infra/atoms/std-data-erasure.lolo +17 -24
  7. package/behaviors/lolo/infra/atoms/std-data-import.lolo +8 -11
  8. package/behaviors/lolo/infra/atoms/std-game-clock.lolo +2 -0
  9. package/behaviors/lolo/infra/atoms/std-knowledge-loop.lolo +0 -5
  10. package/behaviors/lolo/infra/atoms/std-lifecycle.lolo +3 -1
  11. package/behaviors/lolo/infra/atoms/std-mod-queue.lolo +40 -18
  12. package/behaviors/lolo/infra/atoms/std-notification-preferences.lolo +20 -11
  13. package/behaviors/lolo/infra/atoms/std-notify-on-event.lolo +0 -5
  14. package/behaviors/lolo/infra/atoms/std-permission-matrix.lolo +23 -11
  15. package/behaviors/lolo/infra/atoms/std-rate-limiter.lolo +84 -22
  16. package/behaviors/lolo/infra/atoms/std-status-lifecycle.lolo +1 -6
  17. package/behaviors/lolo/ml/atoms/std-graph-builder.lolo +3 -1
  18. package/behaviors/lolo/ml/atoms/std-ml-classify.lolo +0 -4
  19. package/behaviors/lolo/ml/atoms/std-ml-similarity.lolo +0 -4
  20. package/behaviors/lolo/ui/avl/atoms/ui-avl-state-machine.lolo +12 -0
  21. package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +55 -9
  22. package/behaviors/lolo/ui/core/atoms/std-app-search.lolo +6 -2
  23. package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +19 -14
  24. package/behaviors/lolo/ui/core/atoms/std-board.lolo +77 -27
  25. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +44 -28
  26. package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +7 -3
  27. package/behaviors/lolo/ui/core/atoms/std-esign-flow.lolo +25 -13
  28. package/behaviors/lolo/ui/core/atoms/std-esign-request.lolo +5 -0
  29. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +0 -5
  30. package/behaviors/lolo/ui/core/atoms/std-export.lolo +0 -10
  31. package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +7 -3
  32. package/behaviors/lolo/ui/core/atoms/std-form-advanced.lolo +1 -6
  33. package/behaviors/lolo/ui/core/atoms/std-geosearch.lolo +1 -0
  34. package/behaviors/lolo/ui/core/atoms/std-graphs.lolo +20 -4
  35. package/behaviors/lolo/ui/core/atoms/std-import.lolo +0 -5
  36. package/behaviors/lolo/ui/core/atoms/std-list.lolo +46 -32
  37. package/behaviors/lolo/ui/core/atoms/std-modal-editor.lolo +2 -2
  38. package/behaviors/lolo/ui/core/atoms/std-rating-review.lolo +12 -13
  39. package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +16 -12
  40. package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +10 -1
  41. package/behaviors/lolo/ui/core/atoms/std-role-gate.lolo +39 -0
  42. package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +78 -16
  43. package/behaviors/lolo/ui/core/atoms/std-selection.lolo +15 -10
  44. package/behaviors/lolo/ui/core/atoms/std-stats.lolo +5 -5
  45. package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +3 -0
  46. package/behaviors/lolo/ui/core/atoms/std-thread.lolo +41 -73
  47. package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +20 -11
  48. package/behaviors/lolo/ui/core/atoms/std-vote.lolo +0 -4
  49. package/behaviors/lolo/ui/core/atoms/std-wizard.lolo +3 -3
  50. package/behaviors/lolo/ui/core/atoms/ui-presence.lolo +21 -0
  51. package/behaviors/lolo/ui/core/molecules/ui-breadcrumb.lolo +6 -1
  52. package/behaviors/lolo/ui/core/molecules/ui-chart.lolo +11 -1
  53. package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +13 -8
  54. package/behaviors/lolo/ui/core/molecules/ui-command-palette.lolo +7 -2
  55. package/behaviors/lolo/ui/core/molecules/ui-commit-row.lolo +2 -2
  56. package/behaviors/lolo/ui/core/molecules/ui-confirm-dialog.lolo +8 -0
  57. package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +41 -3
  58. package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +41 -3
  59. package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +30 -9
  60. package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +8 -3
  61. package/behaviors/lolo/ui/core/molecules/ui-document-viewer.lolo +6 -1
  62. package/behaviors/lolo/ui/core/molecules/ui-drawer.lolo +13 -0
  63. package/behaviors/lolo/ui/core/molecules/ui-floating-action-button.lolo +6 -1
  64. package/behaviors/lolo/ui/core/molecules/ui-floating-toolbar.lolo +6 -1
  65. package/behaviors/lolo/ui/core/molecules/ui-form-actions.lolo +6 -1
  66. package/behaviors/lolo/ui/core/molecules/ui-graph-canvas.lolo +6 -1
  67. package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +6 -1
  68. package/behaviors/lolo/ui/core/molecules/ui-meter.lolo +6 -1
  69. package/behaviors/lolo/ui/core/molecules/ui-modal.lolo +5 -0
  70. package/behaviors/lolo/ui/core/molecules/ui-page-header.lolo +11 -1
  71. package/behaviors/lolo/ui/core/molecules/ui-page-transition.lolo +1 -1
  72. package/behaviors/lolo/ui/core/molecules/ui-swipeable-row.lolo +44 -15
  73. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +41 -3
  74. package/behaviors/lolo/ui/core/molecules/ui-tabs.lolo +8 -2
  75. package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +66 -12
  76. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +9 -3
  77. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +9 -3
  78. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +18 -9
  79. package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +55 -10
  80. package/behaviors/lolo/ui/core/organisms/ui-form.lolo +55 -10
  81. package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +8 -3
  82. package/behaviors/lolo/ui/core/organisms/ui-state-machine-view.lolo +12 -0
  83. package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +8 -3
  84. package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +2 -44
  85. package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +6 -1
  86. package/behaviors/lolo/ui/core/templates/ui-generic-app-template.lolo +2 -37
  87. package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +8 -2
  88. package/behaviors/lolo/ui/game/organisms/std-arcade-board-3d.lolo +2 -2
  89. package/behaviors/lolo/ui/game/organisms/std-crew-board-2d.lolo +0 -4
  90. package/behaviors/lolo/ui/game/organisms/std-platformer-puzzle.lolo +2 -66
  91. package/behaviors/lolo/ui/game/organisms/std-tactics-board-2d.lolo +0 -4
  92. package/behaviors/lolo/ui/game/organisms/std-worldmap-board-2d.lolo +0 -4
  93. package/behaviors/lolo/ui/learning/atoms/std-learn-stepper.lolo +6 -6
  94. package/behaviors/lolo-behavior-contracts.json +1 -1
  95. package/behaviors/registry/factory-signatures.json +1 -1
  96. package/behaviors/registry/infra/atoms/std-approval-gate.orb +124 -67
  97. package/behaviors/registry/infra/atoms/std-audit-capture.orb +0 -8
  98. package/behaviors/registry/infra/atoms/std-cache-aside.orb +0 -84
  99. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +1 -44
  100. package/behaviors/registry/infra/atoms/std-data-erasure.orb +124 -55
  101. package/behaviors/registry/infra/atoms/std-data-import.orb +12 -11
  102. package/behaviors/registry/infra/atoms/std-game-clock.orb +31 -0
  103. package/behaviors/registry/infra/atoms/std-knowledge-loop.orb +0 -57
  104. package/behaviors/registry/infra/atoms/std-lifecycle.orb +43 -0
  105. package/behaviors/registry/infra/atoms/std-mod-queue.orb +379 -103
  106. package/behaviors/registry/infra/atoms/std-notification-preferences.orb +126 -12
  107. package/behaviors/registry/infra/atoms/std-notify-on-event.orb +0 -11
  108. package/behaviors/registry/infra/atoms/std-permission-matrix.orb +128 -12
  109. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +287 -72
  110. package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +5 -8
  111. package/behaviors/registry/ml/atoms/std-graph-builder.orb +11 -0
  112. package/behaviors/registry/ml/atoms/std-ml-classify.orb +0 -7
  113. package/behaviors/registry/ml/atoms/std-ml-similarity.orb +0 -7
  114. package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +82 -0
  115. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +417 -9
  116. package/behaviors/registry/ui/core/atoms/std-app-search.orb +53 -1
  117. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +209 -19
  118. package/behaviors/registry/ui/core/atoms/std-board.orb +242 -61
  119. package/behaviors/registry/ui/core/atoms/std-browse.orb +295 -41
  120. package/behaviors/registry/ui/core/atoms/std-calendar.orb +96 -2
  121. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +122 -15
  122. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +11 -0
  123. package/behaviors/registry/ui/core/atoms/std-event-log.orb +0 -8
  124. package/behaviors/registry/ui/core/atoms/std-export.orb +0 -16
  125. package/behaviors/registry/ui/core/atoms/std-file-store.orb +109 -2
  126. package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +1 -43
  127. package/behaviors/registry/ui/core/atoms/std-geosearch.orb +5 -0
  128. package/behaviors/registry/ui/core/atoms/std-graphs.orb +173 -66
  129. package/behaviors/registry/ui/core/atoms/std-import.orb +0 -8
  130. package/behaviors/registry/ui/core/atoms/std-list.orb +226 -34
  131. package/behaviors/registry/ui/core/atoms/std-modal-editor.orb +10 -1
  132. package/behaviors/registry/ui/core/atoms/std-rating-review.orb +37 -19
  133. package/behaviors/registry/ui/core/atoms/std-record-detail.orb +204 -11
  134. package/behaviors/registry/ui/core/atoms/std-recurrence.orb +89 -4
  135. package/behaviors/registry/ui/core/atoms/std-role-gate.orb +217 -0
  136. package/behaviors/registry/ui/core/atoms/std-saved-search.orb +419 -19
  137. package/behaviors/registry/ui/core/atoms/std-selection.orb +140 -10
  138. package/behaviors/registry/ui/core/atoms/std-stats.orb +73 -1
  139. package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +3 -0
  140. package/behaviors/registry/ui/core/atoms/std-thread.orb +190 -115
  141. package/behaviors/registry/ui/core/atoms/std-version-history.orb +127 -13
  142. package/behaviors/registry/ui/core/atoms/std-vote.orb +0 -9
  143. package/behaviors/registry/ui/core/atoms/std-wizard.orb +33 -3
  144. package/behaviors/registry/ui/core/atoms/ui-presence.orb +59 -0
  145. package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +53 -1
  146. package/behaviors/registry/ui/core/molecules/ui-chart.orb +68 -1
  147. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +291 -8
  148. package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +87 -2
  149. package/behaviors/registry/ui/core/molecules/ui-commit-row.orb +3 -2
  150. package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +32 -0
  151. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +189 -3
  152. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +189 -3
  153. package/behaviors/registry/ui/core/molecules/ui-document-details.orb +81 -24
  154. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +121 -3
  155. package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +53 -1
  156. package/behaviors/registry/ui/core/molecules/ui-drawer.orb +40 -0
  157. package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +53 -1
  158. package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +53 -1
  159. package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +53 -1
  160. package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +53 -1
  161. package/behaviors/registry/ui/core/molecules/ui-menu.orb +57 -1
  162. package/behaviors/registry/ui/core/molecules/ui-meter.orb +53 -1
  163. package/behaviors/registry/ui/core/molecules/ui-modal.orb +8 -0
  164. package/behaviors/registry/ui/core/molecules/ui-page-header.orb +60 -1
  165. package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +1 -1
  166. package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +393 -23
  167. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +189 -3
  168. package/behaviors/registry/ui/core/molecules/ui-tabs.orb +99 -2
  169. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +282 -20
  170. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +130 -3
  171. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +130 -3
  172. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +367 -9
  173. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +104 -13
  174. package/behaviors/registry/ui/core/organisms/ui-form.orb +104 -13
  175. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +121 -3
  176. package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +82 -0
  177. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +121 -3
  178. package/behaviors/registry/ui/core/templates/ui-counter-template.orb +1 -172
  179. package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +53 -1
  180. package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +1 -116
  181. package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +99 -2
  182. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +10 -0
  183. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +0 -7
  184. package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +1 -807
  185. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +0 -7
  186. package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +0 -7
  187. package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +6 -0
  188. package/canonical-operators.json +18 -1
  189. package/dist/behaviors/exports-reader.js +7662 -3762
  190. package/dist/behaviors/functions/index.d.ts +309 -104
  191. package/dist/behaviors/functions/index.js +7651 -3762
  192. package/dist/behaviors/index.d.ts +1 -1
  193. package/dist/behaviors/index.js +7663 -3763
  194. package/dist/behaviors/query.js +7662 -3762
  195. package/dist/behaviors-embeddings.hash.json +3 -3
  196. package/dist/behaviors-embeddings.json +35 -27
  197. package/dist/behaviors-registry.json +4402 -1898
  198. package/dist/index.d.ts +3 -3
  199. package/dist/index.js +7697 -3763
  200. package/dist/knob-embeddings.hash.json +3 -3
  201. package/dist/knob-embeddings.json +612 -352
  202. package/dist/modules/anim.d.ts +1 -1
  203. package/dist/modules/array.d.ts +1 -1
  204. package/dist/modules/array.js +15 -0
  205. package/dist/modules/async.d.ts +1 -1
  206. package/dist/modules/async.js +9 -0
  207. package/dist/modules/behavior.d.ts +1 -1
  208. package/dist/modules/browser.d.ts +1 -1
  209. package/dist/modules/composition.d.ts +1 -1
  210. package/dist/modules/contract.d.ts +1 -1
  211. package/dist/modules/core.d.ts +1 -1
  212. package/dist/modules/core.js +10 -0
  213. package/dist/modules/data.d.ts +1 -1
  214. package/dist/modules/ease.d.ts +1 -1
  215. package/dist/modules/format.d.ts +1 -1
  216. package/dist/modules/geo.d.ts +1 -1
  217. package/dist/modules/graph.d.ts +1 -1
  218. package/dist/modules/grid.d.ts +1 -1
  219. package/dist/modules/index.d.ts +1 -1
  220. package/dist/modules/index.js +34 -0
  221. package/dist/modules/integration.d.ts +1 -1
  222. package/dist/modules/json.d.ts +1 -1
  223. package/dist/modules/llm.d.ts +1 -1
  224. package/dist/modules/math.d.ts +1 -1
  225. package/dist/modules/memory.d.ts +1 -1
  226. package/dist/modules/nn.d.ts +1 -1
  227. package/dist/modules/noise.d.ts +1 -1
  228. package/dist/modules/object.d.ts +1 -1
  229. package/dist/modules/os.d.ts +1 -1
  230. package/dist/modules/path.d.ts +1 -1
  231. package/dist/modules/prob.d.ts +1 -1
  232. package/dist/modules/session.d.ts +1 -1
  233. package/dist/modules/str.d.ts +1 -1
  234. package/dist/modules/tensor.d.ts +1 -1
  235. package/dist/modules/time.d.ts +1 -1
  236. package/dist/modules/trace.d.ts +1 -1
  237. package/dist/modules/train.d.ts +1 -1
  238. package/dist/modules/validate.d.ts +1 -1
  239. package/dist/modules/vector.d.ts +1 -1
  240. package/dist/modules/workspace.d.ts +1 -1
  241. package/dist/registry/factory-signatures.json +1 -1
  242. package/dist/registry.d.ts +5 -2
  243. package/dist/registry.js +55 -1
  244. package/dist/{types-DwAW4Nni.d.ts → types-DLx38UFZ.d.ts} +31 -4
  245. package/package.json +2 -2
@@ -46,6 +46,24 @@
46
46
  "parent": "trt_01KXG04FG0Z6SKFKJ8FG00CD2Y",
47
47
  "renames": []
48
48
  },
49
+ "evt_01M3RWG8DSSY9YMYT1VKYANSFG": {
50
+ "bakedName": "WINDOW_ELAPSED",
51
+ "curName": "WINDOW_ELAPSED",
52
+ "id": "evt_01M3RWG8DSSY9YMYT1VKYANSFG",
53
+ "kind": "event",
54
+ "owner": "workspace",
55
+ "parent": "trt_01KXG04FG0Z6SKFKJ8FG00CD2Y",
56
+ "renames": []
57
+ },
58
+ "evt_01M3RWZEZRFJBDSH3PTSQ5MZRW": {
59
+ "bakedName": "CONFIGURE",
60
+ "curName": "CONFIGURE",
61
+ "id": "evt_01M3RWZEZRFJBDSH3PTSQ5MZRW",
62
+ "kind": "event",
63
+ "owner": "workspace",
64
+ "parent": "trt_01KXG04FG0Z6SKFKJ8FG00CD2Y",
65
+ "renames": []
66
+ },
49
67
  "orb_01KXG04FG004GQAWQ22CK81TAQ": {
50
68
  "bakedName": "RateBucketOrbital",
51
69
  "curName": "RateBucketOrbital",
@@ -242,6 +260,13 @@
242
260
  "name": "limiterStatus",
243
261
  "synonyms": "state, condition, mode",
244
262
  "type": "string"
263
+ },
264
+ {
265
+ "default": 60.0,
266
+ "description": "Requests this bucket admits per window before it throttles; set from requestsPerMinute when the limiter mounts.",
267
+ "name": "limit",
268
+ "synonyms": "cap, quota, ceiling, maximum requests",
269
+ "type": "number"
245
270
  }
246
271
  ],
247
272
  "id": "ent_01KXG04FG0R4NF2MX692M3D599",
@@ -398,7 +423,7 @@
398
423
  {
399
424
  "config": {
400
425
  "max": {
401
- "default": 100.0,
426
+ "default": "@entity.limit",
402
427
  "type": "unknown"
403
428
  },
404
429
  "min": {
@@ -419,7 +444,7 @@
419
444
  {
420
445
  "config": {
421
446
  "max": {
422
- "default": 100.0,
447
+ "default": "@entity.limit",
423
448
  "type": "unknown"
424
449
  },
425
450
  "showPercentage": {
@@ -545,14 +570,6 @@
545
570
  ],
546
571
  "category": "interaction",
547
572
  "config": {
548
- "burstSize": {
549
- "default": 10.0,
550
- "description": "Requests allowed to burst above the per-minute rate before steady-state throttling kicks in. Lower burst = strict/no-spikes; higher burst = forgiving/allow-spikes.",
551
- "label": "Burst size",
552
- "synonyms": "burst capacity, allowance, spike allowance, no-spike (low) vs allow-bursts (high)",
553
- "tier": "domain",
554
- "type": "number"
555
- },
556
573
  "enabled": {
557
574
  "default": false,
558
575
  "description": "Whether rate limiting is active for the host orbital. Off by default; turn on to throttle requests.",
@@ -561,34 +578,9 @@
561
578
  "tier": "domain",
562
579
  "type": "boolean"
563
580
  },
564
- "keyStrategy": {
565
- "default": "user",
566
- "description": "What identifier the per-bucket counter is keyed on: source IP, authenticated user, API key, or one global bucket.",
567
- "label": "Rate-limit key strategy",
568
- "synonyms": "limiter key, bucket key",
569
- "tier": "domain",
570
- "type": "string",
571
- "values": [
572
- "ip",
573
- "user",
574
- "api-key",
575
- "global"
576
- ]
577
- },
578
- "overrideRoles": {
579
- "default": [],
580
- "description": "Roles exempt from rate limiting (e.g. internal services, admin override). Empty = no exemptions.",
581
- "items": {
582
- "type": "string"
583
- },
584
- "label": "Override roles",
585
- "synonyms": "exempt roles, bypass list",
586
- "tier": "domain",
587
- "type": "[string]"
588
- },
589
581
  "requestsPerMinute": {
590
582
  "default": 60.0,
591
- "description": "Maximum number of requests allowed per minute before throttling begins.",
583
+ "description": "Requests a bucket admits per one-minute window; the next request throttles it, and each elapsed minute (or RESET) reopens it.",
592
584
  "label": "Requests per minute",
593
585
  "synonyms": "rate limit, request cap, RPS, throttle threshold",
594
586
  "tier": "domain",
@@ -610,6 +602,11 @@
610
602
  }
611
603
  },
612
604
  "effectRow": [
605
+ {
606
+ "kind": "emit",
607
+ "resource": "WINDOW_ELAPSED",
608
+ "site": "tick"
609
+ },
613
610
  {
614
611
  "kind": "render-ui",
615
612
  "resource": "main"
@@ -618,6 +615,10 @@
618
615
  "kind": "set",
619
616
  "resource": "@entity.count"
620
617
  },
618
+ {
619
+ "kind": "set",
620
+ "resource": "@entity.limit"
621
+ },
621
622
  {
622
623
  "kind": "set",
623
624
  "resource": "@entity.limiterStatus"
@@ -625,6 +626,18 @@
625
626
  {
626
627
  "kind": "set",
627
628
  "resource": "@entity.window"
629
+ },
630
+ {
631
+ "kind": "ticks",
632
+ "site": "tick"
633
+ }
634
+ ],
635
+ "emits": [
636
+ {
637
+ "description": "One rate-limit window (a minute) has elapsed; the request count starts over.",
638
+ "event": "WINDOW_ELAPSED",
639
+ "eventId": "evt_01M3RWG8DSSY9YMYT1VKYANSFG",
640
+ "scope": "internal"
628
641
  }
629
642
  ],
630
643
  "entityRefIds": {
@@ -633,41 +646,6 @@
633
646
  "id": "trt_01KXG04FG0Z6SKFKJ8FG00CD2Y",
634
647
  "linkedEntity": "RateBucket",
635
648
  "linkedEntityId": "ent_01KXG04FG0R4NF2MX692M3D599",
636
- "listens": [
637
- {
638
- "event": "REQUEST",
639
- "eventId": "evt_01KXG04FG0VC7PYC8M4YHN135D",
640
- "source": {
641
- "kind": "trait",
642
- "trait": "RequestButton",
643
- "traitId": "trt_01KXZ44Y74BVWRJJSS79FFTHAG"
644
- },
645
- "triggers": "REQUEST",
646
- "triggersId": "evt_01KXG04FG0VC7PYC8M4YHN135D"
647
- },
648
- {
649
- "event": "RESET",
650
- "eventId": "evt_01KXG04FG0VTPGS05M6XYYTKW0",
651
- "source": {
652
- "kind": "trait",
653
- "trait": "ResetButton",
654
- "traitId": "trt_01KXZ44Y74WN9F55NWDE7BQRJN"
655
- },
656
- "triggers": "RESET",
657
- "triggersId": "evt_01KXG04FG0VTPGS05M6XYYTKW0"
658
- },
659
- {
660
- "event": "RESET",
661
- "eventId": "evt_01KXG04FG0VTPGS05M6XYYTKW0",
662
- "source": {
663
- "kind": "trait",
664
- "trait": "ResetPrimaryButton",
665
- "traitId": "trt_01KXZ44Y74CNCGXS8AAK4QWSRT"
666
- },
667
- "triggers": "RESET",
668
- "triggersId": "evt_01KXG04FG0VTPGS05M6XYYTKW0"
669
- }
670
- ],
671
649
  "name": "RateBucketRateLimiter",
672
650
  "scope": "collection",
673
651
  "stateMachine": {
@@ -691,6 +669,24 @@
691
669
  "id": "evt_01KXG04FG0VTPGS05M6XYYTKW0",
692
670
  "key": "RESET",
693
671
  "name": "Reset"
672
+ },
673
+ {
674
+ "description": "One rate-limit window (a minute) has elapsed; the request count starts over.",
675
+ "id": "evt_01M3RWG8DSSY9YMYT1VKYANSFG",
676
+ "key": "WINDOW_ELAPSED",
677
+ "name": "Window Elapsed"
678
+ },
679
+ {
680
+ "description": "Sets this bucket's limit (requests per window), e.g. from the host row's own rate limit.",
681
+ "id": "evt_01M3RWZEZRFJBDSH3PTSQ5MZRW",
682
+ "key": "CONFIGURE",
683
+ "name": "Configure",
684
+ "payloadSchema": [
685
+ {
686
+ "name": "limit",
687
+ "type": "number"
688
+ }
689
+ ]
694
690
  }
695
691
  ],
696
692
  "states": [
@@ -715,6 +711,11 @@
715
711
  "@entity.window",
716
712
  60.0
717
713
  ],
714
+ [
715
+ "set",
716
+ "@entity.limit",
717
+ "@config.requestsPerMinute"
718
+ ],
718
719
  [
719
720
  "set",
720
721
  "@entity.limiterStatus",
@@ -773,6 +774,94 @@
773
774
  },
774
775
  {
775
776
  "effects": [
777
+ [
778
+ "set",
779
+ "@entity.count",
780
+ [
781
+ "+",
782
+ "@entity.count",
783
+ 1.0
784
+ ]
785
+ ],
786
+ [
787
+ "set",
788
+ "@entity.limiterStatus",
789
+ "throttled"
790
+ ],
791
+ [
792
+ "render-ui",
793
+ "main",
794
+ {
795
+ "children": [
796
+ {
797
+ "align": "center",
798
+ "children": [
799
+ {
800
+ "align": "center",
801
+ "children": [
802
+ "@trait.ShieldIcon",
803
+ "@trait.RateBucketTitle"
804
+ ],
805
+ "direction": "horizontal",
806
+ "gap": "md",
807
+ "type": "stack"
808
+ },
809
+ "@trait.ThrottledStatusDot"
810
+ ],
811
+ "direction": "horizontal",
812
+ "gap": "md",
813
+ "justify": "between",
814
+ "type": "stack"
815
+ },
816
+ "@trait.RateBucketDivider",
817
+ "@trait.RateLimitAlert",
818
+ "@trait.StatsGrid",
819
+ "@trait.CountMeter",
820
+ {
821
+ "children": [
822
+ "@trait.ResetPrimaryButton"
823
+ ],
824
+ "direction": "horizontal",
825
+ "gap": "sm",
826
+ "justify": "center",
827
+ "type": "stack"
828
+ }
829
+ ],
830
+ "direction": "vertical",
831
+ "gap": "lg",
832
+ "type": "stack"
833
+ }
834
+ ]
835
+ ],
836
+ "event": "REQUEST",
837
+ "eventId": "evt_01KXG04FG0VC7PYC8M4YHN135D",
838
+ "from": "open",
839
+ "guard": [
840
+ "and",
841
+ "@config.enabled",
842
+ [
843
+ ">=",
844
+ [
845
+ "+",
846
+ "@entity.count",
847
+ 1.0
848
+ ],
849
+ "@entity.limit"
850
+ ]
851
+ ],
852
+ "to": "throttled"
853
+ },
854
+ {
855
+ "effects": [
856
+ [
857
+ "set",
858
+ "@entity.count",
859
+ [
860
+ "+",
861
+ "@entity.count",
862
+ 1.0
863
+ ]
864
+ ],
776
865
  [
777
866
  "render-ui",
778
867
  "main",
@@ -822,7 +911,19 @@
822
911
  "event": "REQUEST",
823
912
  "eventId": "evt_01KXG04FG0VC7PYC8M4YHN135D",
824
913
  "from": "open",
825
- "guard": "@config.enabled",
914
+ "guard": [
915
+ "and",
916
+ "@config.enabled",
917
+ [
918
+ "<",
919
+ [
920
+ "+",
921
+ "@entity.count",
922
+ 1.0
923
+ ],
924
+ "@entity.limit"
925
+ ]
926
+ ],
826
927
  "to": "open"
827
928
  },
828
929
  {
@@ -945,6 +1046,108 @@
945
1046
  "from": "open",
946
1047
  "to": "open"
947
1048
  },
1049
+ {
1050
+ "effects": [
1051
+ [
1052
+ "set",
1053
+ "@entity.count",
1054
+ 0.0
1055
+ ]
1056
+ ],
1057
+ "event": "WINDOW_ELAPSED",
1058
+ "eventId": "evt_01M3RWG8DSSY9YMYT1VKYANSFG",
1059
+ "from": "open",
1060
+ "to": "open"
1061
+ },
1062
+ {
1063
+ "effects": [
1064
+ [
1065
+ "set",
1066
+ "@entity.limit",
1067
+ "@payload.limit"
1068
+ ]
1069
+ ],
1070
+ "event": "CONFIGURE",
1071
+ "eventId": "evt_01M3RWZEZRFJBDSH3PTSQ5MZRW",
1072
+ "from": "open",
1073
+ "to": "open"
1074
+ },
1075
+ {
1076
+ "effects": [
1077
+ [
1078
+ "set",
1079
+ "@entity.limit",
1080
+ "@payload.limit"
1081
+ ]
1082
+ ],
1083
+ "event": "CONFIGURE",
1084
+ "eventId": "evt_01M3RWZEZRFJBDSH3PTSQ5MZRW",
1085
+ "from": "throttled",
1086
+ "to": "throttled"
1087
+ },
1088
+ {
1089
+ "effects": [
1090
+ [
1091
+ "set",
1092
+ "@entity.limiterStatus",
1093
+ "open"
1094
+ ],
1095
+ [
1096
+ "set",
1097
+ "@entity.count",
1098
+ 0.0
1099
+ ],
1100
+ [
1101
+ "render-ui",
1102
+ "main",
1103
+ {
1104
+ "children": [
1105
+ {
1106
+ "align": "center",
1107
+ "children": [
1108
+ {
1109
+ "align": "center",
1110
+ "children": [
1111
+ "@trait.ShieldIcon",
1112
+ "@trait.RateBucketTitle"
1113
+ ],
1114
+ "direction": "horizontal",
1115
+ "gap": "md",
1116
+ "type": "stack"
1117
+ },
1118
+ "@trait.OpenStatusDot"
1119
+ ],
1120
+ "direction": "horizontal",
1121
+ "gap": "md",
1122
+ "justify": "between",
1123
+ "type": "stack"
1124
+ },
1125
+ "@trait.RateBucketDivider",
1126
+ "@trait.StatsGrid",
1127
+ "@trait.CountMeter",
1128
+ "@trait.CountProgressBar",
1129
+ {
1130
+ "children": [
1131
+ "@trait.RequestButton",
1132
+ "@trait.ResetButton"
1133
+ ],
1134
+ "direction": "horizontal",
1135
+ "gap": "sm",
1136
+ "justify": "center",
1137
+ "type": "stack"
1138
+ }
1139
+ ],
1140
+ "direction": "vertical",
1141
+ "gap": "lg",
1142
+ "type": "stack"
1143
+ }
1144
+ ]
1145
+ ],
1146
+ "event": "WINDOW_ELAPSED",
1147
+ "eventId": "evt_01M3RWG8DSSY9YMYT1VKYANSFG",
1148
+ "from": "throttled",
1149
+ "to": "open"
1150
+ },
948
1151
  {
949
1152
  "effects": [
950
1153
  [
@@ -1062,6 +1265,18 @@
1062
1265
  }
1063
1266
  ]
1064
1267
  },
1268
+ "ticks": [
1269
+ {
1270
+ "effects": [
1271
+ [
1272
+ "emit",
1273
+ "WINDOW_ELAPSED"
1274
+ ]
1275
+ ],
1276
+ "interval": 60000.0,
1277
+ "name": "windowElapsed"
1278
+ }
1279
+ ],
1065
1280
  "traitEmbedIds": {
1066
1281
  "CountMeter": "trt_01KXZ44Y74H7C0JKXEVTDA5ZZB",
1067
1282
  "CountProgressBar": "trt_01KXZ44Y74HS8AQBFB2VWAF5WY",
@@ -123,14 +123,6 @@
123
123
  "tier": "infra",
124
124
  "type": "boolean"
125
125
  },
126
- "initialStatus": {
127
- "default": "draft",
128
- "description": "The status assigned when a record is first created.",
129
- "label": "What status do new records start in?",
130
- "synonyms": "starting state, default status, first stage, initial state",
131
- "tier": "domain",
132
- "type": "string"
133
- },
134
126
  "states": {
135
127
  "default": [
136
128
  "draft",
@@ -391,6 +383,11 @@
391
383
  "guard": [
392
384
  "and",
393
385
  "@config.enabled",
386
+ [
387
+ "array/includes",
388
+ "@config.states",
389
+ "@payload.to"
390
+ ],
394
391
  [
395
392
  "array/some",
396
393
  "@config.transitions",
@@ -241,6 +241,11 @@
241
241
  "name": "edgeCount",
242
242
  "required": true,
243
243
  "type": "int"
244
+ },
245
+ {
246
+ "name": "directed",
247
+ "required": true,
248
+ "type": "boolean"
244
249
  }
245
250
  ],
246
251
  "scope": "external",
@@ -317,6 +322,11 @@
317
322
  "name": "edgeCount",
318
323
  "required": true,
319
324
  "type": "int"
325
+ },
326
+ {
327
+ "name": "directed",
328
+ "required": true,
329
+ "type": "boolean"
320
330
  }
321
331
  ],
322
332
  "tier": "primary"
@@ -470,6 +480,7 @@
470
480
  "emit",
471
481
  "GRAPH_READY",
472
482
  {
483
+ "directed": "@config.directed",
473
484
  "edgeCount": [
474
485
  "array/len",
475
486
  "@edges"
@@ -213,13 +213,6 @@
213
213
  "label": "Model",
214
214
  "tier": "infra",
215
215
  "type": "string"
216
- },
217
- "provider": {
218
- "default": "",
219
- "description": "Reserved for provider selection; LLMServiceActions.classify (packages/almadar-llm/src/contracts.ts) takes no provider param today, so this knob is not forwarded to the call",
220
- "label": "Provider",
221
- "tier": "infra",
222
- "type": "string"
223
216
  }
224
217
  },
225
218
  "effectRow": [
@@ -235,13 +235,6 @@
235
235
  {
236
236
  "category": "lifecycle",
237
237
  "config": {
238
- "embedModel": {
239
- "default": "",
240
- "description": "Reserved for embedding-model selection; llm/embed takes only a texts array today, so this knob is not yet wired into the call",
241
- "label": "Embedding model",
242
- "tier": "infra",
243
- "type": "string"
244
- },
245
238
  "floor": {
246
239
  "default": 0.82,
247
240
  "description": "Minimum cosine score for a confident match",
@@ -148,6 +148,13 @@
148
148
  "gear"
149
149
  ]
150
150
  },
151
+ "onTransitionClick": {
152
+ "default": "TRANSITION_CLICK",
153
+ "description": "Direct transition-click callback, for React hosts (e.g. a canvas node).",
154
+ "label": "On Transition Click",
155
+ "tier": "presentation",
156
+ "type": "event"
157
+ },
151
158
  "pendingSourceState": {
152
159
  "description": "Source of a transition being drawn — the next state click picks its target.",
153
160
  "label": "Pending Source State",
@@ -483,6 +490,32 @@
483
490
  "name": "to",
484
491
  "required": true,
485
492
  "type": "string"
493
+ },
494
+ {
495
+ "name": "transition",
496
+ "properties": [
497
+ {
498
+ "name": "index",
499
+ "required": true,
500
+ "type": "number"
501
+ },
502
+ {
503
+ "name": "event",
504
+ "required": true,
505
+ "type": "string"
506
+ },
507
+ {
508
+ "name": "from",
509
+ "required": true,
510
+ "type": "string"
511
+ },
512
+ {
513
+ "name": "to",
514
+ "required": true,
515
+ "type": "string"
516
+ }
517
+ ],
518
+ "type": "object"
486
519
  }
487
520
  ],
488
521
  "scope": "external",
@@ -548,6 +581,32 @@
548
581
  "name": "to",
549
582
  "required": true,
550
583
  "type": "string"
584
+ },
585
+ {
586
+ "name": "transition",
587
+ "properties": [
588
+ {
589
+ "name": "index",
590
+ "required": true,
591
+ "type": "number"
592
+ },
593
+ {
594
+ "name": "event",
595
+ "required": true,
596
+ "type": "string"
597
+ },
598
+ {
599
+ "name": "from",
600
+ "required": true,
601
+ "type": "string"
602
+ },
603
+ {
604
+ "name": "to",
605
+ "required": true,
606
+ "type": "string"
607
+ }
608
+ ],
609
+ "type": "object"
551
610
  }
552
611
  ],
553
612
  "tier": "essential"
@@ -572,6 +631,7 @@
572
631
  "direction": "@config.direction",
573
632
  "entityFields": "@config.entityFields",
574
633
  "nodeShape": "@config.nodeShape",
634
+ "onTransitionClick": "@config.onTransitionClick",
575
635
  "pendingSourceState": "@config.pendingSourceState",
576
636
  "selectedState": "@config.selectedState",
577
637
  "showHeader": "@config.showHeader",
@@ -593,6 +653,28 @@
593
653
  }
594
654
  ],
595
655
  "types": {
656
+ "AvlStateMachineTRANSITIONCLICKTransition": [
657
+ {
658
+ "name": "index",
659
+ "required": true,
660
+ "type": "number"
661
+ },
662
+ {
663
+ "name": "event",
664
+ "required": true,
665
+ "type": "string"
666
+ },
667
+ {
668
+ "name": "from",
669
+ "required": true,
670
+ "type": "string"
671
+ },
672
+ {
673
+ "name": "to",
674
+ "required": true,
675
+ "type": "string"
676
+ }
677
+ ],
596
678
  "AvlStateMachineTrait": [
597
679
  {
598
680
  "name": "name",