@almadar/std 16.235.0 → 16.237.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 (283) hide show
  1. package/behaviors/behaviors-registry.json +5621 -1993
  2. package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +32 -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-migration-job.lolo +2 -2
  12. package/behaviors/lolo/infra/atoms/std-mod-queue.lolo +40 -18
  13. package/behaviors/lolo/infra/atoms/std-notification-preferences.lolo +25 -11
  14. package/behaviors/lolo/infra/atoms/std-notify-on-event.lolo +0 -5
  15. package/behaviors/lolo/infra/atoms/std-permission-matrix.lolo +28 -11
  16. package/behaviors/lolo/infra/atoms/std-rate-limiter.lolo +84 -22
  17. package/behaviors/lolo/infra/atoms/std-status-lifecycle.lolo +1 -6
  18. package/behaviors/lolo/ml/atoms/std-graph-builder.lolo +3 -1
  19. package/behaviors/lolo/ml/atoms/std-ml-classify.lolo +0 -4
  20. package/behaviors/lolo/ml/atoms/std-ml-similarity.lolo +0 -4
  21. package/behaviors/lolo/ui/avl/atoms/ui-avl-state-machine.lolo +12 -0
  22. package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +55 -9
  23. package/behaviors/lolo/ui/core/atoms/std-app-search.lolo +6 -2
  24. package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +19 -14
  25. package/behaviors/lolo/ui/core/atoms/std-board.lolo +77 -27
  26. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +76 -33
  27. package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +7 -3
  28. package/behaviors/lolo/ui/core/atoms/std-esign-flow.lolo +25 -13
  29. package/behaviors/lolo/ui/core/atoms/std-esign-request.lolo +5 -0
  30. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +32 -5
  31. package/behaviors/lolo/ui/core/atoms/std-export.lolo +0 -10
  32. package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +15 -4
  33. package/behaviors/lolo/ui/core/atoms/std-form-advanced.lolo +1 -6
  34. package/behaviors/lolo/ui/core/atoms/std-gantt-schedule.lolo +8 -1
  35. package/behaviors/lolo/ui/core/atoms/std-geosearch.lolo +1 -0
  36. package/behaviors/lolo/ui/core/atoms/std-graphs.lolo +20 -4
  37. package/behaviors/lolo/ui/core/atoms/std-image-upload-multi.lolo +2 -2
  38. package/behaviors/lolo/ui/core/atoms/std-import.lolo +0 -5
  39. package/behaviors/lolo/ui/core/atoms/std-list.lolo +53 -32
  40. package/behaviors/lolo/ui/core/atoms/std-modal-editor.lolo +2 -2
  41. package/behaviors/lolo/ui/core/atoms/std-multi-party-flow.lolo +24 -0
  42. package/behaviors/lolo/ui/core/atoms/std-rating-review.lolo +12 -13
  43. package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +29 -13
  44. package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +14 -1
  45. package/behaviors/lolo/ui/core/atoms/std-role-gate.lolo +39 -0
  46. package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +84 -16
  47. package/behaviors/lolo/ui/core/atoms/std-selection.lolo +22 -10
  48. package/behaviors/lolo/ui/core/atoms/std-stats.lolo +5 -5
  49. package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +3 -0
  50. package/behaviors/lolo/ui/core/atoms/std-thread.lolo +41 -73
  51. package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +27 -12
  52. package/behaviors/lolo/ui/core/atoms/std-vote.lolo +0 -4
  53. package/behaviors/lolo/ui/core/atoms/std-wizard.lolo +3 -3
  54. package/behaviors/lolo/ui/core/atoms/ui-presence.lolo +21 -0
  55. package/behaviors/lolo/ui/core/atoms/ui-time-slot-cell.lolo +36 -0
  56. package/behaviors/lolo/ui/core/atoms/ui-typography.lolo +5 -0
  57. package/behaviors/lolo/ui/core/molecules/ui-alert.lolo +5 -0
  58. package/behaviors/lolo/ui/core/molecules/ui-animated-counter.lolo +1 -1
  59. package/behaviors/lolo/ui/core/molecules/ui-breadcrumb.lolo +6 -1
  60. package/behaviors/lolo/ui/core/molecules/ui-chart.lolo +11 -1
  61. package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +13 -8
  62. package/behaviors/lolo/ui/core/molecules/ui-command-palette.lolo +11 -6
  63. package/behaviors/lolo/ui/core/molecules/ui-commit-row.lolo +2 -2
  64. package/behaviors/lolo/ui/core/molecules/ui-confirm-dialog.lolo +8 -0
  65. package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +60 -5
  66. package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +47 -3
  67. package/behaviors/lolo/ui/core/molecules/ui-date-range-picker.lolo +3 -3
  68. package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +31 -9
  69. package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +8 -3
  70. package/behaviors/lolo/ui/core/molecules/ui-document-viewer.lolo +6 -1
  71. package/behaviors/lolo/ui/core/molecules/ui-drawer.lolo +13 -0
  72. package/behaviors/lolo/ui/core/molecules/ui-emoji-picker.lolo +1 -1
  73. package/behaviors/lolo/ui/core/molecules/ui-feature-card.lolo +1 -1
  74. package/behaviors/lolo/ui/core/molecules/ui-floating-action-button.lolo +6 -1
  75. package/behaviors/lolo/ui/core/molecules/ui-floating-toolbar.lolo +6 -1
  76. package/behaviors/lolo/ui/core/molecules/ui-form-actions.lolo +6 -1
  77. package/behaviors/lolo/ui/core/molecules/ui-gantt.lolo +9 -1
  78. package/behaviors/lolo/ui/core/molecules/ui-graph-canvas.lolo +6 -1
  79. package/behaviors/lolo/ui/core/molecules/ui-import-preview-tree.lolo +3 -2
  80. package/behaviors/lolo/ui/core/molecules/ui-likert-scale.lolo +1 -1
  81. package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +7 -1
  82. package/behaviors/lolo/ui/core/molecules/ui-meter.lolo +6 -1
  83. package/behaviors/lolo/ui/core/molecules/ui-modal.lolo +5 -0
  84. package/behaviors/lolo/ui/core/molecules/ui-page-header.lolo +11 -1
  85. package/behaviors/lolo/ui/core/molecules/ui-page-transition.lolo +1 -1
  86. package/behaviors/lolo/ui/core/molecules/ui-swipeable-row.lolo +44 -15
  87. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +57 -5
  88. package/behaviors/lolo/ui/core/molecules/ui-tabs.lolo +8 -2
  89. package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +87 -16
  90. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +37 -10
  91. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +46 -8
  92. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +36 -10
  93. package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +57 -10
  94. package/behaviors/lolo/ui/core/organisms/ui-form.lolo +57 -10
  95. package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +22 -3
  96. package/behaviors/lolo/ui/core/organisms/ui-stat-card.lolo +6 -0
  97. package/behaviors/lolo/ui/core/organisms/ui-state-machine-view.lolo +12 -0
  98. package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +38 -5
  99. package/behaviors/lolo/ui/core/templates/ui-auth-layout.lolo +1 -1
  100. package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +3 -45
  101. package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +7 -2
  102. package/behaviors/lolo/ui/core/templates/ui-generic-app-template.lolo +2 -37
  103. package/behaviors/lolo/ui/game/.hand-authored.json +2 -2
  104. package/behaviors/lolo/ui/game/atoms/ui-choice-button.lolo +1 -1
  105. package/behaviors/lolo/ui/game/atoms/ui-dialogue-bubble.lolo +2 -2
  106. package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +9 -3
  107. package/behaviors/lolo/ui/game/atoms/ui-score-display.lolo +1 -1
  108. package/behaviors/lolo/ui/game/organisms/std-arcade-board-3d.lolo +2 -2
  109. package/behaviors/lolo/ui/game/organisms/std-crew-board-2d.lolo +0 -4
  110. package/behaviors/lolo/ui/game/organisms/std-platformer-puzzle.lolo +2 -66
  111. package/behaviors/lolo/ui/game/organisms/std-tactics-board-2d.lolo +0 -4
  112. package/behaviors/lolo/ui/game/organisms/std-worldmap-board-2d.lolo +0 -4
  113. package/behaviors/lolo/ui/learning/atoms/std-learn-stepper.lolo +6 -6
  114. package/behaviors/lolo-behavior-contracts.json +1 -1
  115. package/behaviors/registry/factory-signatures.json +1 -1
  116. package/behaviors/registry/infra/atoms/std-approval-gate.orb +194 -67
  117. package/behaviors/registry/infra/atoms/std-audit-capture.orb +0 -8
  118. package/behaviors/registry/infra/atoms/std-cache-aside.orb +0 -84
  119. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +1 -44
  120. package/behaviors/registry/infra/atoms/std-data-erasure.orb +124 -55
  121. package/behaviors/registry/infra/atoms/std-data-import.orb +12 -11
  122. package/behaviors/registry/infra/atoms/std-game-clock.orb +31 -0
  123. package/behaviors/registry/infra/atoms/std-knowledge-loop.orb +0 -57
  124. package/behaviors/registry/infra/atoms/std-lifecycle.orb +43 -0
  125. package/behaviors/registry/infra/atoms/std-migration-job.orb +26 -1
  126. package/behaviors/registry/infra/atoms/std-mod-queue.orb +379 -103
  127. package/behaviors/registry/infra/atoms/std-notification-preferences.orb +135 -12
  128. package/behaviors/registry/infra/atoms/std-notify-on-event.orb +0 -11
  129. package/behaviors/registry/infra/atoms/std-permission-matrix.orb +137 -12
  130. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +287 -72
  131. package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +5 -8
  132. package/behaviors/registry/ml/atoms/std-graph-builder.orb +11 -0
  133. package/behaviors/registry/ml/atoms/std-ml-classify.orb +0 -7
  134. package/behaviors/registry/ml/atoms/std-ml-similarity.orb +0 -7
  135. package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +82 -0
  136. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +417 -9
  137. package/behaviors/registry/ui/core/atoms/std-app-search.orb +53 -1
  138. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +209 -19
  139. package/behaviors/registry/ui/core/atoms/std-board.orb +242 -61
  140. package/behaviors/registry/ui/core/atoms/std-browse.orb +499 -49
  141. package/behaviors/registry/ui/core/atoms/std-calendar.orb +96 -2
  142. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +122 -15
  143. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +11 -0
  144. package/behaviors/registry/ui/core/atoms/std-event-log.orb +42 -6
  145. package/behaviors/registry/ui/core/atoms/std-export.orb +0 -16
  146. package/behaviors/registry/ui/core/atoms/std-file-store.orb +121 -3
  147. package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +1 -43
  148. package/behaviors/registry/ui/core/atoms/std-gantt-schedule.orb +25 -1
  149. package/behaviors/registry/ui/core/atoms/std-geosearch.orb +5 -0
  150. package/behaviors/registry/ui/core/atoms/std-graphs.orb +173 -66
  151. package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +4 -0
  152. package/behaviors/registry/ui/core/atoms/std-import.orb +0 -8
  153. package/behaviors/registry/ui/core/atoms/std-list.orb +237 -34
  154. package/behaviors/registry/ui/core/atoms/std-modal-editor.orb +10 -1
  155. package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +24 -0
  156. package/behaviors/registry/ui/core/atoms/std-rating-review.orb +37 -19
  157. package/behaviors/registry/ui/core/atoms/std-record-detail.orb +275 -14
  158. package/behaviors/registry/ui/core/atoms/std-recurrence.orb +93 -4
  159. package/behaviors/registry/ui/core/atoms/std-role-gate.orb +217 -0
  160. package/behaviors/registry/ui/core/atoms/std-saved-search.orb +473 -19
  161. package/behaviors/registry/ui/core/atoms/std-selection.orb +179 -10
  162. package/behaviors/registry/ui/core/atoms/std-stats.orb +73 -1
  163. package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +3 -0
  164. package/behaviors/registry/ui/core/atoms/std-thread.orb +190 -115
  165. package/behaviors/registry/ui/core/atoms/std-version-history.orb +138 -14
  166. package/behaviors/registry/ui/core/atoms/std-vote.orb +0 -9
  167. package/behaviors/registry/ui/core/atoms/std-wizard.orb +33 -3
  168. package/behaviors/registry/ui/core/atoms/ui-presence.orb +59 -0
  169. package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +132 -0
  170. package/behaviors/registry/ui/core/atoms/ui-typography.orb +7 -0
  171. package/behaviors/registry/ui/core/molecules/ui-alert.orb +7 -0
  172. package/behaviors/registry/ui/core/molecules/ui-animated-counter.orb +1 -1
  173. package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +53 -1
  174. package/behaviors/registry/ui/core/molecules/ui-chart.orb +68 -1
  175. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +291 -8
  176. package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +89 -6
  177. package/behaviors/registry/ui/core/molecules/ui-commit-row.orb +3 -2
  178. package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +32 -0
  179. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +297 -5
  180. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +261 -3
  181. package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +1 -3
  182. package/behaviors/registry/ui/core/molecules/ui-document-details.orb +93 -24
  183. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +121 -3
  184. package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +53 -1
  185. package/behaviors/registry/ui/core/molecules/ui-drawer.orb +40 -0
  186. package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +0 -1
  187. package/behaviors/registry/ui/core/molecules/ui-feature-card.orb +0 -1
  188. package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +53 -1
  189. package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +53 -1
  190. package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +53 -1
  191. package/behaviors/registry/ui/core/molecules/ui-gantt.orb +28 -1
  192. package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +53 -1
  193. package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +9 -2
  194. package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +1 -1
  195. package/behaviors/registry/ui/core/molecules/ui-menu.orb +74 -1
  196. package/behaviors/registry/ui/core/molecules/ui-meter.orb +53 -1
  197. package/behaviors/registry/ui/core/molecules/ui-modal.orb +8 -0
  198. package/behaviors/registry/ui/core/molecules/ui-page-header.orb +60 -1
  199. package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +1 -1
  200. package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +393 -23
  201. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +337 -5
  202. package/behaviors/registry/ui/core/molecules/ui-tabs.orb +99 -2
  203. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +415 -33
  204. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +340 -29
  205. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +296 -20
  206. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +489 -9
  207. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +132 -13
  208. package/behaviors/registry/ui/core/organisms/ui-form.orb +132 -13
  209. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +141 -3
  210. package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +58 -0
  211. package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +82 -0
  212. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +159 -8
  213. package/behaviors/registry/ui/core/templates/ui-auth-layout.orb +0 -1
  214. package/behaviors/registry/ui/core/templates/ui-counter-template.orb +1 -173
  215. package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +53 -2
  216. package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +1 -116
  217. package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +1 -1
  218. package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +1 -2
  219. package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +100 -3
  220. package/behaviors/registry/ui/game/atoms/ui-score-display.orb +0 -1
  221. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +10 -0
  222. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +0 -7
  223. package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +1 -807
  224. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +0 -7
  225. package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +0 -7
  226. package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +6 -0
  227. package/canonical-operators.json +18 -1
  228. package/dist/behaviors/exports-reader.js +8942 -3946
  229. package/dist/behaviors/functions/index.d.ts +419 -132
  230. package/dist/behaviors/functions/index.js +8931 -3946
  231. package/dist/behaviors/index.d.ts +1 -1
  232. package/dist/behaviors/index.js +8943 -3947
  233. package/dist/behaviors/query.js +8942 -3946
  234. package/dist/behaviors-embeddings.hash.json +3 -3
  235. package/dist/behaviors-embeddings.json +49 -41
  236. package/dist/behaviors-registry.json +5621 -1993
  237. package/dist/index.d.ts +3 -3
  238. package/dist/index.js +8960 -3947
  239. package/dist/knob-embeddings.hash.json +3 -3
  240. package/dist/knob-embeddings.json +774 -374
  241. package/dist/modules/anim.d.ts +1 -1
  242. package/dist/modules/array.d.ts +1 -1
  243. package/dist/modules/array.js +15 -0
  244. package/dist/modules/async.d.ts +1 -1
  245. package/dist/modules/behavior.d.ts +1 -1
  246. package/dist/modules/browser.d.ts +1 -1
  247. package/dist/modules/composition.d.ts +1 -1
  248. package/dist/modules/contract.d.ts +1 -1
  249. package/dist/modules/core.d.ts +1 -1
  250. package/dist/modules/core.js +2 -0
  251. package/dist/modules/data.d.ts +1 -1
  252. package/dist/modules/ease.d.ts +1 -1
  253. package/dist/modules/format.d.ts +1 -1
  254. package/dist/modules/geo.d.ts +1 -1
  255. package/dist/modules/graph.d.ts +1 -1
  256. package/dist/modules/grid.d.ts +1 -1
  257. package/dist/modules/index.d.ts +1 -1
  258. package/dist/modules/index.js +17 -0
  259. package/dist/modules/integration.d.ts +1 -1
  260. package/dist/modules/json.d.ts +1 -1
  261. package/dist/modules/llm.d.ts +1 -1
  262. package/dist/modules/math.d.ts +1 -1
  263. package/dist/modules/memory.d.ts +1 -1
  264. package/dist/modules/nn.d.ts +1 -1
  265. package/dist/modules/noise.d.ts +1 -1
  266. package/dist/modules/object.d.ts +1 -1
  267. package/dist/modules/os.d.ts +1 -1
  268. package/dist/modules/path.d.ts +1 -1
  269. package/dist/modules/prob.d.ts +1 -1
  270. package/dist/modules/session.d.ts +1 -1
  271. package/dist/modules/str.d.ts +1 -1
  272. package/dist/modules/tensor.d.ts +1 -1
  273. package/dist/modules/time.d.ts +1 -1
  274. package/dist/modules/trace.d.ts +1 -1
  275. package/dist/modules/train.d.ts +1 -1
  276. package/dist/modules/validate.d.ts +1 -1
  277. package/dist/modules/vector.d.ts +1 -1
  278. package/dist/modules/workspace.d.ts +1 -1
  279. package/dist/registry/factory-signatures.json +1 -1
  280. package/dist/registry.d.ts +2 -2
  281. package/dist/registry.js +17 -0
  282. package/dist/{types-Ggla7OK7.d.ts → types-DLx38UFZ.d.ts} +23 -3
  283. package/package.json +3 -3
@@ -430,18 +430,6 @@
430
430
  ],
431
431
  "category": "interaction",
432
432
  "config": {
433
- "anonymizeVsDelete": {
434
- "default": "anonymize",
435
- "description": "anonymize = scrub PII fields and keep row for audit; delete = remove the row entirely.",
436
- "label": "Anonymize or fully delete the record?",
437
- "synonyms": "deletion mode, anonymize, delete, scrub or remove, retention mode",
438
- "tier": "policy",
439
- "type": "string",
440
- "values": [
441
- "anonymize",
442
- "delete"
443
- ]
444
- },
445
433
  "enabled": {
446
434
  "default": false,
447
435
  "description": "Let people request that their data be permanently removed. Off by default.",
@@ -450,24 +438,52 @@
450
438
  "tier": "policy",
451
439
  "type": "boolean"
452
440
  },
453
- "gracePeriodDays": {
454
- "default": 30.0,
455
- "description": "Days between request submission and execution. The subject can cancel during this window.",
456
- "label": "How many days before deletion is carried out?",
457
- "synonyms": "grace period, cancellation window, deletion delay, days before delete",
458
- "tier": "policy",
459
- "type": "number"
460
- },
461
- "piiFields": {
462
- "default": [],
463
- "description": "Fields the target atom nulls when anonymizing (e.g. email, name, phone).",
441
+ "itemActions": {
442
+ "default": [
443
+ {
444
+ "event": "CANCEL_ERASURE",
445
+ "icon": "x",
446
+ "label": "Cancel",
447
+ "variant": "secondary"
448
+ }
449
+ ],
450
+ "description": "Actions offered on each row; give an item `roles` to show it only to those viewer roles.",
464
451
  "items": {
465
- "type": "string"
452
+ "properties": {
453
+ "event": {
454
+ "name": "event",
455
+ "required": false,
456
+ "type": "event"
457
+ },
458
+ "icon": {
459
+ "name": "icon",
460
+ "required": false,
461
+ "type": "string"
462
+ },
463
+ "label": {
464
+ "name": "label",
465
+ "required": true,
466
+ "type": "string"
467
+ },
468
+ "roles": {
469
+ "items": {
470
+ "type": "string"
471
+ },
472
+ "name": "roles",
473
+ "required": false,
474
+ "type": "array"
475
+ },
476
+ "variant": {
477
+ "name": "variant",
478
+ "required": false,
479
+ "type": "string"
480
+ }
481
+ },
482
+ "type": "object"
466
483
  },
467
- "label": "Which fields contain personal data to scrub?",
468
- "synonyms": "PII fields, personal data fields, sensitive fields, fields to scrub",
469
- "tier": "policy",
470
- "type": "[string]"
484
+ "label": "Row actions",
485
+ "tier": "presentation",
486
+ "type": "[ItemAction]"
471
487
  },
472
488
  "reviewSlot": {
473
489
  "default": "modal",
@@ -497,6 +513,13 @@
497
513
  "label": "Target entity",
498
514
  "tier": "internal",
499
515
  "type": "string"
516
+ },
517
+ "viewerRole": {
518
+ "default": "",
519
+ "description": "The signed-in viewer's role that each action's `roles` is checked against. Bind it explicitly at the call site (e.g. `viewerRole: @user.role`) in an app whose identity carries a role; left empty, only actions with no `roles` show.",
520
+ "label": "Viewer's role",
521
+ "tier": "policy",
522
+ "type": "string"
500
523
  }
501
524
  },
502
525
  "effectRow": [
@@ -860,19 +883,6 @@
860
883
  "id": "trt_01KXG04FAWMAHG21RA4ACWNW6M",
861
884
  "linkedEntity": "ErasureRequest",
862
885
  "linkedEntityId": "ent_01KXG04FAW4SF8DY2X8EECV9VA",
863
- "listens": [
864
- {
865
- "event": "CLOSE",
866
- "eventId": "evt_01KXG04FAZYDMK8PB921PY4G9M",
867
- "source": {
868
- "kind": "trait",
869
- "trait": "CloseButton",
870
- "traitId": "trt_01KY21K6VWQNK3V47V9KX0HNQP"
871
- },
872
- "triggers": "CLOSE",
873
- "triggersId": "evt_01KXG04FAZYDMK8PB921PY4G9M"
874
- }
875
- ],
876
886
  "name": "ErasureWorkflow",
877
887
  "scope": "collection",
878
888
  "stateMachine": {
@@ -1321,12 +1331,16 @@
1321
1331
  "set",
1322
1332
  "@entity.targetEntity",
1323
1333
  [
1324
- "object/get",
1334
+ "str/default",
1325
1335
  [
1326
- "array/first",
1327
- "@payload.data"
1336
+ "object/get",
1337
+ [
1338
+ "array/first",
1339
+ "@payload.data"
1340
+ ],
1341
+ "targetEntity"
1328
1342
  ],
1329
- "targetEntity"
1343
+ "@config.targetEntity"
1330
1344
  ]
1331
1345
  ],
1332
1346
  [
@@ -1477,12 +1491,16 @@
1477
1491
  "set",
1478
1492
  "@entity.targetEntity",
1479
1493
  [
1480
- "object/get",
1494
+ "str/default",
1481
1495
  [
1482
- "array/first",
1483
- "@payload.data"
1496
+ "object/get",
1497
+ [
1498
+ "array/first",
1499
+ "@payload.data"
1500
+ ],
1501
+ "targetEntity"
1484
1502
  ],
1485
- "targetEntity"
1503
+ "@config.targetEntity"
1486
1504
  ]
1487
1505
  ],
1488
1506
  [
@@ -1622,12 +1640,38 @@
1622
1640
  ],
1623
1641
  "gap": "sm",
1624
1642
  "itemActions": [
1625
- {
1626
- "event": "CANCEL_ERASURE",
1627
- "icon": "x",
1628
- "label": "Cancel",
1629
- "variant": "secondary"
1630
- }
1643
+ "array/filter",
1644
+ "@config.itemActions",
1645
+ [
1646
+ "fn",
1647
+ "action",
1648
+ [
1649
+ "or",
1650
+ [
1651
+ "=",
1652
+ [
1653
+ "array/len",
1654
+ [
1655
+ "object/get",
1656
+ "@action",
1657
+ "roles",
1658
+ []
1659
+ ]
1660
+ ],
1661
+ 0.0
1662
+ ],
1663
+ [
1664
+ "array/includes",
1665
+ [
1666
+ "object/get",
1667
+ "@action",
1668
+ "roles",
1669
+ []
1670
+ ],
1671
+ "@config.viewerRole"
1672
+ ]
1673
+ ]
1674
+ ]
1631
1675
  ],
1632
1676
  "look": "@config.tableLook",
1633
1677
  "type": "data-grid"
@@ -1849,6 +1893,31 @@
1849
1893
  }
1850
1894
  }
1851
1895
  ],
1896
+ "types": {
1897
+ "ItemAction": [
1898
+ {
1899
+ "name": "label",
1900
+ "required": true,
1901
+ "type": "string"
1902
+ },
1903
+ {
1904
+ "name": "event",
1905
+ "type": "event"
1906
+ },
1907
+ {
1908
+ "name": "variant",
1909
+ "type": "string"
1910
+ },
1911
+ {
1912
+ "name": "icon",
1913
+ "type": "string"
1914
+ },
1915
+ {
1916
+ "name": "roles",
1917
+ "type": "[string]"
1918
+ }
1919
+ ]
1920
+ },
1852
1921
  "uses": [
1853
1922
  {
1854
1923
  "as": "Spinner",
@@ -1,5 +1,5 @@
1
1
  {
2
- "description": "std-data-import — staged CSV import run, source-agnostic: upload → staged review → confirm → parse+map → handoff. UPLOAD_CSV opens a run and persists an ImportBatch row (status uploaded, fieldMappingJson recorded verbatim for provenance); the host's file UI parses the CSV and answers with STAGE_ROWS, one JSON string per raw row, which the atom bulk-persists into import_rows against the batch id and presents as a staged review (row/error counts + Confirm/Discard). CONFIRM_IMPORT marks the batch confirmed, emits IMPORT_CONFIRMED { batchId, sourceName, rowCount }, and fetches the batch's staged rows; on fetch success the atom parses each rowJson via json/parse, remaps keys through the batch's mappingJson, and emits IMPORT_ROWS_PARSED { batchId, rows, failed } — the persist half is the CONSUMER organism's: it listens for IMPORT_ROWS_PARSED and persists the mapped rows into its own target entity (cross-atom persist into a consumer's entity is not expressible from here). This is deliberately the CSV-file path: the atom never calls a source service — sourceName/fieldMappingJson/targetEntity/historyWindowDays are declarative consumer configs, and any persist failure marks the batch row failed and fires IMPORT_FAILED, never a silent swallow. Compose with std-import for the file-picker menu.",
2
+ "description": "std-data-import — staged CSV import run, source-agnostic: upload → staged review → confirm → parse+map → handoff. UPLOAD_CSV opens a run and persists an ImportBatch row (status uploaded, fieldMappingJson recorded verbatim for provenance); the host's file UI parses the CSV and answers with STAGE_ROWS, one JSON string per raw row, which the atom bulk-persists into import_rows against the batch id and presents as a staged review (row/error counts + Confirm/Discard). CONFIRM_IMPORT marks the batch confirmed, emits IMPORT_CONFIRMED { batchId, sourceName, rowCount }, and fetches the batch's staged rows; on fetch success the atom parses each rowJson via json/parse, remaps keys through the batch's mappingJson, and emits IMPORT_ROWS_PARSED { batchId, rows, failed } — the persist half is the CONSUMER organism's: it listens for IMPORT_ROWS_PARSED and persists the mapped rows into its own target entity (cross-atom persist into a consumer's entity is not expressible from here). This is deliberately the CSV-file path: the atom never calls a source service — sourceName/fieldMappingJson/targetEntity are consumer configs, and any persist failure marks the batch row failed and fires IMPORT_FAILED, never a silent swallow. Compose with std-import for the file-picker menu.",
3
3
  "ledger": {
4
4
  "entries": {
5
5
  "ent_01M2HEYJ1VH5AKFRTFBSJVKWA9": {
@@ -294,14 +294,6 @@
294
294
  "tier": "domain",
295
295
  "type": "string"
296
296
  },
297
- "historyWindowDays": {
298
- "default": 0.0,
299
- "description": "How many days back an import may reach (0 = unbounded). A declared import-config knob for the consumer's staging/mapping layer — the atom stages whatever rows it is handed and never filters by date.",
300
- "label": "Historical data range (days)",
301
- "synonyms": "history window, historical range, import range, days back, lookback period",
302
- "tier": "policy",
303
- "type": "number"
304
- },
305
297
  "sourceName": {
306
298
  "default": "",
307
299
  "description": "Free-form name of the upstream source this import pulls from — whatever tool or file export the user names. Recorded on the batch row for provenance and echoed on IMPORT_CONFIRMED.",
@@ -312,7 +304,7 @@
312
304
  },
313
305
  "targetEntity": {
314
306
  "default": "",
315
- "description": "Name of the consumer organism's entity the staged rows land in after confirm. Declarative contract only — the atom never writes the target entity; the consumer persists on IMPORT_CONFIRMED.",
307
+ "description": "Name of the consumer organism's entity the staged rows land in after confirm. Carried on IMPORT_ROWS_PARSED so the consumer's persist half knows where the mapped rows belong — the atom never writes the target entity itself.",
316
308
  "label": "Target entity",
317
309
  "synonyms": "destination, import into, target type",
318
310
  "tier": "domain",
@@ -482,6 +474,10 @@
482
474
  {
483
475
  "name": "rows",
484
476
  "type": "[Map<string,scalar>]"
477
+ },
478
+ {
479
+ "name": "targetEntity",
480
+ "type": "string"
485
481
  }
486
482
  ],
487
483
  "scope": "external",
@@ -726,6 +722,10 @@
726
722
  {
727
723
  "name": "rows",
728
724
  "type": "[Map<string,scalar>]"
725
+ },
726
+ {
727
+ "name": "targetEntity",
728
+ "type": "string"
729
729
  }
730
730
  ],
731
731
  "synonyms": "rows parsed, rows mapped, import rows ready",
@@ -1415,7 +1415,8 @@
1415
1415
  ]
1416
1416
  ]
1417
1417
  ]
1418
- ]
1418
+ ],
1419
+ "targetEntity": "@config.targetEntity"
1419
1420
  }
1420
1421
  ]
1421
1422
  ],
@@ -37,6 +37,15 @@
37
37
  "parent": "trt_01KXG04FBQ4HX99S2FX3YJY6KK",
38
38
  "renames": []
39
39
  },
40
+ "evt_01M3RRVYFR2TF0EP90718CHP9X": {
41
+ "bakedName": "INIT",
42
+ "curName": "INIT",
43
+ "id": "evt_01M3RRVYFR2TF0EP90718CHP9X",
44
+ "kind": "event",
45
+ "owner": "workspace",
46
+ "parent": "trt_01KXG04FBQ4HX99S2FX3YJY6KK",
47
+ "renames": []
48
+ },
40
49
  "orb_01KXG04FBQV351H0MNMBN12VGE": {
41
50
  "bakedName": "GameClockOrbital",
42
51
  "curName": "GameClockOrbital",
@@ -167,6 +176,11 @@
167
176
  "scope": "instance",
168
177
  "stateMachine": {
169
178
  "events": [
179
+ {
180
+ "id": "evt_01M3RRVYFR2TF0EP90718CHP9X",
181
+ "key": "INIT",
182
+ "name": "Initialize"
183
+ },
170
184
  {
171
185
  "id": "evt_01KXG04FBQ461DD7FHZBCSK5GK",
172
186
  "key": "PAUSE",
@@ -202,6 +216,23 @@
202
216
  }
203
217
  ],
204
218
  "transitions": [
219
+ {
220
+ "effects": [
221
+ [
222
+ "set",
223
+ "@entity.running",
224
+ false
225
+ ]
226
+ ],
227
+ "event": "INIT",
228
+ "eventId": "evt_01M3RRVYFR2TF0EP90718CHP9X",
229
+ "from": "running",
230
+ "guard": [
231
+ "not",
232
+ "@config.autoStart"
233
+ ],
234
+ "to": "paused"
235
+ },
205
236
  {
206
237
  "effects": [
207
238
  [
@@ -709,63 +709,6 @@
709
709
  "id": "trt_01M2ZQ92PZ773BRYAEG9TVTXEJ",
710
710
  "linkedEntity": "KnowledgeClaim",
711
711
  "linkedEntityId": "ent_01M2ZQ92PY7RP350PAWV761Z6F",
712
- "listens": [
713
- {
714
- "event": "SURVIVED",
715
- "eventId": "evt_01M2ZQ92PZ12JQB821TTV5H2VF",
716
- "source": {
717
- "kind": "trait",
718
- "trait": "SurvivedButton",
719
- "traitId": "trt_01M2ZQ92PZX45ENT52Z1JDT5C1"
720
- },
721
- "triggers": "SURVIVED",
722
- "triggersId": "evt_01M2ZQ92PZ12JQB821TTV5H2VF"
723
- },
724
- {
725
- "event": "FAILED",
726
- "eventId": "evt_01M2ZQ92PZHVV5XQH33875VFZW",
727
- "source": {
728
- "kind": "trait",
729
- "trait": "FailedButton",
730
- "traitId": "trt_01M2ZQ92PZ4RF8SPKHEZR0EX4G"
731
- },
732
- "triggers": "FAILED",
733
- "triggersId": "evt_01M2ZQ92PZHVV5XQH33875VFZW"
734
- },
735
- {
736
- "event": "CHECKS_AGREE",
737
- "eventId": "evt_01M2ZQ92PZHVA4XQZ651A241EH",
738
- "source": {
739
- "kind": "trait",
740
- "trait": "ChecksAgreeButton",
741
- "traitId": "trt_01M2ZQ92PZB3E4VZ30YBV9H52Z"
742
- },
743
- "triggers": "CHECKS_AGREE",
744
- "triggersId": "evt_01M2ZQ92PZHVA4XQZ651A241EH"
745
- },
746
- {
747
- "event": "CHECKS_DISAGREE",
748
- "eventId": "evt_01M2ZQ92PZEGZ40SRSAMR97HF0",
749
- "source": {
750
- "kind": "trait",
751
- "trait": "ChecksDisagreeButton",
752
- "traitId": "trt_01M2ZQ92PZP0KZMYSEWBRES7FY"
753
- },
754
- "triggers": "CHECKS_DISAGREE",
755
- "triggersId": "evt_01M2ZQ92PZEGZ40SRSAMR97HF0"
756
- },
757
- {
758
- "event": "CHOOSE_NEXT_TARGET",
759
- "eventId": "evt_01M2ZQ92PZP010YXNSHVVBCMYS",
760
- "source": {
761
- "kind": "trait",
762
- "trait": "ChooseNextTargetButton",
763
- "traitId": "trt_01M2ZQ92PZVFQ6B2EG2TWEQYHC"
764
- },
765
- "triggers": "CHOOSE_NEXT_TARGET",
766
- "triggersId": "evt_01M2ZQ92PZP010YXNSHVVBCMYS"
767
- }
768
- ],
769
712
  "name": "KnowledgeLoop",
770
713
  "scope": "collection",
771
714
  "stateMachine": {
@@ -403,6 +403,45 @@
403
403
  "from": "idle",
404
404
  "to": "idle"
405
405
  },
406
+ {
407
+ "effects": [
408
+ [
409
+ "render-ui",
410
+ "toast",
411
+ {
412
+ "dismissible": true,
413
+ "message": [
414
+ "str/concat",
415
+ "Dry run — ",
416
+ [
417
+ "array/len",
418
+ "@payload.data"
419
+ ],
420
+ " record(s) would transition, nothing was written."
421
+ ],
422
+ "type": "alert",
423
+ "variant": "info"
424
+ }
425
+ ]
426
+ ],
427
+ "event": "ScanRecordsLoaded",
428
+ "eventId": "evt_01KXG04FCCM9PAS36JGRFE7M0Z",
429
+ "from": "idle",
430
+ "guard": [
431
+ "and",
432
+ "@config.enabled",
433
+ "@config.dryRun",
434
+ [
435
+ ">",
436
+ [
437
+ "array/len",
438
+ "@payload.data"
439
+ ],
440
+ 0.0
441
+ ]
442
+ ],
443
+ "to": "idle"
444
+ },
406
445
  {
407
446
  "effects": [
408
447
  [
@@ -452,6 +491,10 @@
452
491
  "guard": [
453
492
  "and",
454
493
  "@config.enabled",
494
+ [
495
+ "not",
496
+ "@config.dryRun"
497
+ ],
455
498
  [
456
499
  ">",
457
500
  [
@@ -346,7 +346,7 @@
346
346
  },
347
347
  {
348
348
  "default": [],
349
- "description": "Staged ImportUnits ready for review (ref/targetEntity/fields/parentRef), when the host stages the full rows rather than aggregate stats only.",
349
+ "description": "Staged ImportUnits ready for review (ref/targetEntity/title/fields/parentRef), when the host stages the full rows rather than aggregate stats only.",
350
350
  "items": {
351
351
  "properties": {
352
352
  "fields": {
@@ -371,6 +371,11 @@
371
371
  "name": "targetEntity",
372
372
  "required": true,
373
373
  "type": "string"
374
+ },
375
+ "title": {
376
+ "name": "title",
377
+ "required": false,
378
+ "type": "string"
374
379
  }
375
380
  },
376
381
  "type": "object"
@@ -692,6 +697,10 @@
692
697
  "required": true,
693
698
  "type": "string"
694
699
  },
700
+ {
701
+ "name": "title",
702
+ "type": "string"
703
+ },
695
704
  {
696
705
  "name": "fields",
697
706
  "type": "Map<string,scalar>"
@@ -980,6 +989,10 @@
980
989
  "required": true,
981
990
  "type": "string"
982
991
  },
992
+ {
993
+ "name": "title",
994
+ "type": "string"
995
+ },
983
996
  {
984
997
  "name": "fields",
985
998
  "type": "Map<string,scalar>"
@@ -1040,6 +1053,10 @@
1040
1053
  "required": true,
1041
1054
  "type": "string"
1042
1055
  },
1056
+ {
1057
+ "name": "title",
1058
+ "type": "string"
1059
+ },
1043
1060
  {
1044
1061
  "name": "fields",
1045
1062
  "type": "Map<string,scalar>"
@@ -1097,6 +1114,10 @@
1097
1114
  "required": true,
1098
1115
  "type": "string"
1099
1116
  },
1117
+ {
1118
+ "name": "title",
1119
+ "type": "string"
1120
+ },
1100
1121
  {
1101
1122
  "name": "fields",
1102
1123
  "type": "Map<string,scalar>"
@@ -2078,6 +2099,10 @@
2078
2099
  "required": true,
2079
2100
  "type": "string"
2080
2101
  },
2102
+ {
2103
+ "name": "title",
2104
+ "type": "string"
2105
+ },
2081
2106
  {
2082
2107
  "name": "fields",
2083
2108
  "type": "Map<string,scalar>"