@almadar/std 16.238.0 → 16.239.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 (511) hide show
  1. package/behaviors/behaviors-registry.json +31586 -26790
  2. package/behaviors/lolo/agent/atoms/std-agent-memory.lolo +2 -2
  3. package/behaviors/lolo/agent/atoms/std-agent-session.lolo +337 -167
  4. package/behaviors/lolo/agent/atoms/std-agent-tool-loop.lolo +48 -9
  5. package/behaviors/lolo/agent/atoms/std-agent-trace.lolo +45 -8
  6. package/behaviors/lolo/agent/organisms/std-agent-assistant.lolo +33 -9
  7. package/behaviors/lolo/ui/avl/atoms/ui-avl-glyph.lolo +6 -1
  8. package/behaviors/lolo/ui/avl/atoms/ui-avl-state-machine.lolo +5 -0
  9. package/behaviors/lolo/ui/core/.hand-authored.json +0 -4
  10. package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +23 -10
  11. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +30 -100
  12. package/behaviors/lolo/ui/core/atoms/std-graphs.lolo +2 -2
  13. package/behaviors/lolo/ui/core/atoms/std-panel-launcher.lolo +97 -0
  14. package/behaviors/lolo/ui/core/atoms/std-stats.lolo +1 -1
  15. package/behaviors/lolo/ui/core/atoms/ui-animated-graphic.lolo +5 -0
  16. package/behaviors/lolo/ui/core/atoms/ui-animated-reveal.lolo +5 -0
  17. package/behaviors/lolo/ui/core/atoms/ui-aside.lolo +5 -0
  18. package/behaviors/lolo/ui/core/atoms/ui-atlas-image.lolo +5 -0
  19. package/behaviors/lolo/ui/core/atoms/ui-atlas-panel.lolo +5 -0
  20. package/behaviors/lolo/ui/core/atoms/ui-avatar.lolo +5 -0
  21. package/behaviors/lolo/ui/core/atoms/ui-badge.lolo +5 -0
  22. package/behaviors/lolo/ui/core/atoms/ui-box.lolo +5 -0
  23. package/behaviors/lolo/ui/core/atoms/ui-button.lolo +5 -0
  24. package/behaviors/lolo/ui/core/atoms/ui-card.lolo +5 -0
  25. package/behaviors/lolo/ui/core/atoms/ui-center.lolo +5 -0
  26. package/behaviors/lolo/ui/core/atoms/ui-checkbox.lolo +6 -0
  27. package/behaviors/lolo/ui/core/atoms/ui-confetti-effect.lolo +5 -0
  28. package/behaviors/lolo/ui/core/atoms/ui-day-cell.lolo +5 -0
  29. package/behaviors/lolo/ui/core/atoms/ui-dialog.lolo +5 -0
  30. package/behaviors/lolo/ui/core/atoms/ui-divider.lolo +5 -0
  31. package/behaviors/lolo/ui/core/atoms/ui-filter-pill.lolo +5 -0
  32. package/behaviors/lolo/ui/core/atoms/ui-flip-container.lolo +5 -0
  33. package/behaviors/lolo/ui/core/atoms/ui-game-icon.lolo +5 -0
  34. package/behaviors/lolo/ui/core/atoms/ui-hstack.lolo +5 -0
  35. package/behaviors/lolo/ui/core/atoms/ui-icon.lolo +5 -0
  36. package/behaviors/lolo/ui/core/atoms/ui-image.lolo +5 -0
  37. package/behaviors/lolo/ui/core/atoms/ui-infinite-scroll-sentinel.lolo +5 -0
  38. package/behaviors/lolo/ui/core/atoms/ui-input.lolo +5 -0
  39. package/behaviors/lolo/ui/core/atoms/ui-label.lolo +5 -0
  40. package/behaviors/lolo/ui/core/atoms/ui-law-reference-tooltip.lolo +5 -0
  41. package/behaviors/lolo/ui/core/atoms/ui-overlay.lolo +5 -0
  42. package/behaviors/lolo/ui/core/atoms/ui-pattern-tile.lolo +5 -0
  43. package/behaviors/lolo/ui/core/atoms/ui-presence.lolo +6 -1
  44. package/behaviors/lolo/ui/core/atoms/ui-progress-bar.lolo +6 -1
  45. package/behaviors/lolo/ui/core/atoms/ui-radio.lolo +6 -0
  46. package/behaviors/lolo/ui/core/atoms/ui-range-slider.lolo +7 -0
  47. package/behaviors/lolo/ui/core/atoms/ui-section-header.lolo +5 -0
  48. package/behaviors/lolo/ui/core/atoms/ui-select.lolo +5 -0
  49. package/behaviors/lolo/ui/core/atoms/ui-spacer.lolo +5 -0
  50. package/behaviors/lolo/ui/core/atoms/ui-sparkline.lolo +5 -0
  51. package/behaviors/lolo/ui/core/atoms/ui-spinner.lolo +5 -0
  52. package/behaviors/lolo/ui/core/atoms/ui-stack.lolo +5 -0
  53. package/behaviors/lolo/ui/core/atoms/ui-status-dot.lolo +5 -0
  54. package/behaviors/lolo/ui/core/atoms/ui-svg-branch.lolo +5 -0
  55. package/behaviors/lolo/ui/core/atoms/ui-svg-connection.lolo +5 -0
  56. package/behaviors/lolo/ui/core/atoms/ui-svg-flow.lolo +5 -0
  57. package/behaviors/lolo/ui/core/atoms/ui-svg-grid.lolo +5 -0
  58. package/behaviors/lolo/ui/core/atoms/ui-svg-lobe.lolo +5 -0
  59. package/behaviors/lolo/ui/core/atoms/ui-svg-mesh.lolo +5 -0
  60. package/behaviors/lolo/ui/core/atoms/ui-svg-morph.lolo +5 -0
  61. package/behaviors/lolo/ui/core/atoms/ui-svg-node.lolo +5 -0
  62. package/behaviors/lolo/ui/core/atoms/ui-svg-pulse.lolo +5 -0
  63. package/behaviors/lolo/ui/core/atoms/ui-svg-ring.lolo +5 -0
  64. package/behaviors/lolo/ui/core/atoms/ui-svg-shield.lolo +5 -0
  65. package/behaviors/lolo/ui/core/atoms/ui-svg-stack.lolo +5 -0
  66. package/behaviors/lolo/ui/core/atoms/ui-switch.lolo +6 -0
  67. package/behaviors/lolo/ui/core/atoms/ui-text-highlight.lolo +7 -0
  68. package/behaviors/lolo/ui/core/atoms/ui-textarea.lolo +5 -0
  69. package/behaviors/lolo/ui/core/atoms/ui-theme-toggle.lolo +5 -0
  70. package/behaviors/lolo/ui/core/atoms/ui-time-slot-cell.lolo +6 -0
  71. package/behaviors/lolo/ui/core/atoms/ui-trend-indicator.lolo +5 -0
  72. package/behaviors/lolo/ui/core/atoms/ui-typewriter-text.lolo +5 -0
  73. package/behaviors/lolo/ui/core/atoms/ui-typography.lolo +5 -0
  74. package/behaviors/lolo/ui/core/atoms/ui-vstack.lolo +5 -0
  75. package/behaviors/lolo/ui/core/molecules/ui-accordion.lolo +10 -0
  76. package/behaviors/lolo/ui/core/molecules/ui-activation-block.lolo +5 -0
  77. package/behaviors/lolo/ui/core/molecules/ui-agent-activity-feed.lolo +249 -0
  78. package/behaviors/lolo/ui/core/molecules/ui-agent-activity-row.lolo +218 -0
  79. package/behaviors/lolo/ui/core/molecules/ui-agent-chat-feed.lolo +231 -0
  80. package/behaviors/lolo/ui/core/molecules/ui-alert.lolo +5 -0
  81. package/behaviors/lolo/ui/core/molecules/ui-animated-counter.lolo +5 -0
  82. package/behaviors/lolo/ui/core/molecules/ui-bloom-quiz-block.lolo +5 -0
  83. package/behaviors/lolo/ui/core/molecules/ui-branching-logic-builder.lolo +10 -0
  84. package/behaviors/lolo/ui/core/molecules/ui-breadcrumb.lolo +5 -0
  85. package/behaviors/lolo/ui/core/molecules/ui-calendar-grid.lolo +14 -0
  86. package/behaviors/lolo/ui/core/molecules/ui-carousel.lolo +5 -0
  87. package/behaviors/lolo/ui/core/molecules/ui-change-list.lolo +5 -0
  88. package/behaviors/lolo/ui/core/molecules/ui-chart-legend.lolo +5 -0
  89. package/behaviors/lolo/ui/core/molecules/ui-chart.lolo +10 -0
  90. package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +12 -0
  91. package/behaviors/lolo/ui/core/molecules/ui-command-palette.lolo +6 -0
  92. package/behaviors/lolo/ui/core/molecules/ui-commit-row.lolo +7 -0
  93. package/behaviors/lolo/ui/core/molecules/ui-confirm-dialog.lolo +5 -0
  94. package/behaviors/lolo/ui/core/molecules/ui-connection-block.lolo +5 -0
  95. package/behaviors/lolo/ui/core/molecules/ui-container.lolo +5 -0
  96. package/behaviors/lolo/ui/core/molecules/ui-content-renderer.lolo +5 -9
  97. package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +18 -4
  98. package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +18 -4
  99. package/behaviors/lolo/ui/core/molecules/ui-date-range-picker.lolo +6 -0
  100. package/behaviors/lolo/ui/core/molecules/ui-date-range-selector.lolo +5 -0
  101. package/behaviors/lolo/ui/core/molecules/ui-doc-breadcrumb.lolo +5 -0
  102. package/behaviors/lolo/ui/core/molecules/ui-doc-pagination.lolo +5 -0
  103. package/behaviors/lolo/ui/core/molecules/ui-doc-search.lolo +5 -0
  104. package/behaviors/lolo/ui/core/molecules/ui-doc-sidebar.lolo +5 -0
  105. package/behaviors/lolo/ui/core/molecules/ui-doc-toc.lolo +5 -0
  106. package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +8 -0
  107. package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +7 -0
  108. package/behaviors/lolo/ui/core/molecules/ui-document-viewer.lolo +10 -0
  109. package/behaviors/lolo/ui/core/molecules/ui-drawer.lolo +5 -0
  110. package/behaviors/lolo/ui/core/molecules/ui-edge-decoration.lolo +5 -0
  111. package/behaviors/lolo/ui/core/molecules/ui-emoji-picker.lolo +6 -1
  112. package/behaviors/lolo/ui/core/molecules/ui-empty-state.lolo +5 -0
  113. package/behaviors/lolo/ui/core/molecules/ui-error-boundary.lolo +5 -0
  114. package/behaviors/lolo/ui/core/molecules/ui-error-state.lolo +5 -0
  115. package/behaviors/lolo/ui/core/molecules/ui-feature-card.lolo +5 -0
  116. package/behaviors/lolo/ui/core/molecules/ui-feature-grid.lolo +5 -0
  117. package/behaviors/lolo/ui/core/molecules/ui-file-tree.lolo +5 -0
  118. package/behaviors/lolo/ui/core/molecules/ui-filter-group.lolo +7 -0
  119. package/behaviors/lolo/ui/core/molecules/ui-flex.lolo +5 -0
  120. package/behaviors/lolo/ui/core/molecules/ui-flip-card.lolo +5 -0
  121. package/behaviors/lolo/ui/core/molecules/ui-floating-action-button.lolo +5 -0
  122. package/behaviors/lolo/ui/core/molecules/ui-floating-toolbar.lolo +5 -0
  123. package/behaviors/lolo/ui/core/molecules/ui-form-actions.lolo +5 -0
  124. package/behaviors/lolo/ui/core/molecules/ui-form-field.lolo +5 -0
  125. package/behaviors/lolo/ui/core/molecules/ui-form-layout.lolo +5 -0
  126. package/behaviors/lolo/ui/core/molecules/ui-form-section-header.lolo +5 -0
  127. package/behaviors/lolo/ui/core/molecules/ui-fx-overlay.lolo +5 -0
  128. package/behaviors/lolo/ui/core/molecules/ui-gantt.lolo +14 -0
  129. package/behaviors/lolo/ui/core/molecules/ui-geometric-pattern.lolo +5 -0
  130. package/behaviors/lolo/ui/core/molecules/ui-gradient-divider.lolo +5 -0
  131. package/behaviors/lolo/ui/core/molecules/ui-graph-canvas.lolo +40 -5
  132. package/behaviors/lolo/ui/core/molecules/ui-graph-view.lolo +10 -0
  133. package/behaviors/lolo/ui/core/molecules/ui-grid.lolo +5 -0
  134. package/behaviors/lolo/ui/core/molecules/ui-header.lolo +5 -0
  135. package/behaviors/lolo/ui/core/molecules/ui-icon-button.lolo +5 -0
  136. package/behaviors/lolo/ui/core/molecules/ui-import-preview-tree.lolo +10 -0
  137. package/behaviors/lolo/ui/core/molecules/ui-import-progress.lolo +5 -0
  138. package/behaviors/lolo/ui/core/molecules/ui-import-source-picker.lolo +5 -0
  139. package/behaviors/lolo/ui/core/molecules/ui-input-group.lolo +5 -0
  140. package/behaviors/lolo/ui/core/molecules/ui-jazari-state-machine.lolo +5 -0
  141. package/behaviors/lolo/ui/core/molecules/ui-lightbox.lolo +5 -0
  142. package/behaviors/lolo/ui/core/molecules/ui-likert-scale.lolo +5 -0
  143. package/behaviors/lolo/ui/core/molecules/ui-line-chart.lolo +5 -0
  144. package/behaviors/lolo/ui/core/molecules/ui-loading-state.lolo +5 -0
  145. package/behaviors/lolo/ui/core/molecules/ui-map-view.lolo +10 -0
  146. package/behaviors/lolo/ui/core/molecules/ui-markdown-content.lolo +5 -0
  147. package/behaviors/lolo/ui/core/molecules/ui-matrix-question.lolo +5 -0
  148. package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +5 -0
  149. package/behaviors/lolo/ui/core/molecules/ui-meter.lolo +5 -0
  150. package/behaviors/lolo/ui/core/molecules/ui-modal.lolo +5 -0
  151. package/behaviors/lolo/ui/core/molecules/ui-navigation.lolo +5 -0
  152. package/behaviors/lolo/ui/core/molecules/ui-notification.lolo +5 -0
  153. package/behaviors/lolo/ui/core/molecules/ui-number-stepper.lolo +7 -0
  154. package/behaviors/lolo/ui/core/molecules/ui-option-constraint-group.lolo +20 -0
  155. package/behaviors/lolo/ui/core/molecules/ui-orbital-visualization.lolo +5 -0
  156. package/behaviors/lolo/ui/core/molecules/ui-page-header.lolo +5 -0
  157. package/behaviors/lolo/ui/core/molecules/ui-page-transition.lolo +5 -0
  158. package/behaviors/lolo/ui/core/molecules/ui-pagination.lolo +6 -0
  159. package/behaviors/lolo/ui/core/molecules/ui-popover.lolo +6 -0
  160. package/behaviors/lolo/ui/core/molecules/ui-positioned-canvas.lolo +7 -0
  161. package/behaviors/lolo/ui/core/molecules/ui-progress-dots.lolo +5 -0
  162. package/behaviors/lolo/ui/core/molecules/ui-pull-to-refresh.lolo +5 -0
  163. package/behaviors/lolo/ui/core/molecules/ui-qr-scanner.lolo +5 -0
  164. package/behaviors/lolo/ui/core/molecules/ui-quiz-block.lolo +5 -0
  165. package/behaviors/lolo/ui/core/molecules/ui-reflection-block.lolo +5 -0
  166. package/behaviors/lolo/ui/core/molecules/ui-relation-select.lolo +6 -0
  167. package/behaviors/lolo/ui/core/molecules/ui-repeatable-form-section.lolo +5 -0
  168. package/behaviors/lolo/ui/core/molecules/ui-reply-tree.lolo +7 -0
  169. package/behaviors/lolo/ui/core/molecules/ui-rich-text-editor.lolo +6 -0
  170. package/behaviors/lolo/ui/core/molecules/ui-scaled-diagram.lolo +5 -0
  171. package/behaviors/lolo/ui/core/molecules/ui-search-input.lolo +7 -1
  172. package/behaviors/lolo/ui/core/molecules/ui-section.lolo +5 -0
  173. package/behaviors/lolo/ui/core/molecules/ui-side-panel.lolo +5 -0
  174. package/behaviors/lolo/ui/core/molecules/ui-sidebar.lolo +6 -0
  175. package/behaviors/lolo/ui/core/molecules/ui-signature-pad.lolo +5 -0
  176. package/behaviors/lolo/ui/core/molecules/ui-simple-grid.lolo +5 -0
  177. package/behaviors/lolo/ui/core/molecules/ui-skeleton.lolo +10 -0
  178. package/behaviors/lolo/ui/core/molecules/ui-social-proof.lolo +5 -0
  179. package/behaviors/lolo/ui/core/molecules/ui-sortable-list.lolo +7 -0
  180. package/behaviors/lolo/ui/core/molecules/ui-split.lolo +5 -0
  181. package/behaviors/lolo/ui/core/molecules/ui-star-rating.lolo +7 -0
  182. package/behaviors/lolo/ui/core/molecules/ui-stat-display.lolo +10 -0
  183. package/behaviors/lolo/ui/core/molecules/ui-swipeable-row.lolo +8 -0
  184. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +14 -0
  185. package/behaviors/lolo/ui/core/molecules/ui-tabs.lolo +5 -0
  186. package/behaviors/lolo/ui/core/molecules/ui-tag-input.lolo +5 -0
  187. package/behaviors/lolo/ui/core/molecules/ui-tooltip.lolo +5 -0
  188. package/behaviors/lolo/ui/core/molecules/ui-top-nav-item.lolo +5 -0
  189. package/behaviors/lolo/ui/core/molecules/ui-upload-drop-zone.lolo +5 -0
  190. package/behaviors/lolo/ui/core/molecules/ui-version-diff.lolo +5 -0
  191. package/behaviors/lolo/ui/core/molecules/ui-violation-alert.lolo +5 -0
  192. package/behaviors/lolo/ui/core/molecules/ui-vote-stack.lolo +5 -0
  193. package/behaviors/lolo/ui/core/molecules/ui-wizard-container.lolo +5 -0
  194. package/behaviors/lolo/ui/core/molecules/ui-wizard-navigation.lolo +8 -0
  195. package/behaviors/lolo/ui/core/molecules/ui-wizard-progress.lolo +5 -0
  196. package/behaviors/lolo/ui/core/organisms/ui-chat-bar.lolo +16 -0
  197. package/behaviors/lolo/ui/core/organisms/ui-code-runner-panel.lolo +5 -0
  198. package/behaviors/lolo/ui/core/organisms/ui-dashboard-grid.lolo +10 -0
  199. package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +21 -5
  200. package/behaviors/lolo/ui/core/organisms/ui-dock-layout.lolo +8 -3
  201. package/behaviors/lolo/ui/core/organisms/ui-drawer-slot.lolo +5 -0
  202. package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +16 -0
  203. package/behaviors/lolo/ui/core/organisms/ui-form.lolo +16 -0
  204. package/behaviors/lolo/ui/core/organisms/ui-master-detail-layout.lolo +5 -0
  205. package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +14 -0
  206. package/behaviors/lolo/ui/core/organisms/ui-modal-slot.lolo +5 -0
  207. package/behaviors/lolo/ui/core/organisms/ui-runtime-debugger.lolo +5 -0
  208. package/behaviors/lolo/ui/core/organisms/ui-segment-renderer.lolo +9 -3
  209. package/behaviors/lolo/ui/core/organisms/ui-split-pane.lolo +6 -0
  210. package/behaviors/lolo/ui/core/organisms/ui-stat-card.lolo +14 -0
  211. package/behaviors/lolo/ui/core/organisms/ui-state-machine-view.lolo +8 -3
  212. package/behaviors/lolo/ui/core/organisms/ui-subagent-trace-panel.lolo +232 -0
  213. package/behaviors/lolo/ui/core/organisms/ui-tabbed-container.lolo +5 -0
  214. package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +14 -0
  215. package/behaviors/lolo/ui/core/organisms/ui-toast-slot.lolo +5 -0
  216. package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +5 -0
  217. package/behaviors/lolo/ui/core/templates/ui-generic-app-template.lolo +5 -0
  218. package/behaviors/lolo/ui/game/.hand-authored.json +2 -2
  219. package/behaviors/lolo/ui/game/atoms/ui-action-palette.lolo +5 -0
  220. package/behaviors/lolo/ui/game/atoms/ui-action-tile.lolo +5 -0
  221. package/behaviors/lolo/ui/game/atoms/ui-canvas-2d.lolo +5 -0
  222. package/behaviors/lolo/ui/game/atoms/ui-canvas.lolo +5 -0
  223. package/behaviors/lolo/ui/game/atoms/ui-choice-button.lolo +5 -0
  224. package/behaviors/lolo/ui/game/atoms/ui-control-button.lolo +5 -0
  225. package/behaviors/lolo/ui/game/atoms/ui-control-grid.lolo +5 -0
  226. package/behaviors/lolo/ui/game/atoms/ui-dialogue-bubble.lolo +5 -0
  227. package/behaviors/lolo/ui/game/atoms/ui-game-audio-toggle.lolo +5 -0
  228. package/behaviors/lolo/ui/game/atoms/ui-game-hud.lolo +5 -0
  229. package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +5 -0
  230. package/behaviors/lolo/ui/game/atoms/ui-health-bar.lolo +5 -0
  231. package/behaviors/lolo/ui/game/atoms/ui-score-display.lolo +5 -0
  232. package/behaviors/lolo/ui/game/atoms/ui-sequence-bar.lolo +5 -0
  233. package/behaviors/lolo/ui/game/atoms/ui-stat-badge.lolo +5 -0
  234. package/behaviors/lolo/ui/game/atoms/ui-state-graph.lolo +5 -0
  235. package/behaviors/lolo/ui/game/atoms/ui-state-json-view.lolo +5 -0
  236. package/behaviors/lolo/ui/game/atoms/ui-trait-slot.lolo +7 -0
  237. package/behaviors/lolo/ui/learning/atoms/ui-algo-graph-canvas.lolo +5 -0
  238. package/behaviors/lolo/ui/learning/atoms/ui-algorithm-canvas.lolo +6 -0
  239. package/behaviors/lolo/ui/learning/atoms/ui-biology-canvas.lolo +6 -0
  240. package/behaviors/lolo/ui/learning/atoms/ui-chemistry-canvas.lolo +6 -0
  241. package/behaviors/lolo/ui/learning/atoms/ui-learning-canvas.lolo +6 -0
  242. package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +6 -0
  243. package/behaviors/lolo/ui/learning/atoms/ui-physics-canvas.lolo +6 -0
  244. package/behaviors/lolo-behavior-contracts.json +1 -1
  245. package/behaviors/registry/agent/atoms/std-agent-memory.orb +30 -7
  246. package/behaviors/registry/agent/atoms/std-agent-session.orb +1509 -601
  247. package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +549 -116
  248. package/behaviors/registry/agent/atoms/std-agent-trace.orb +383 -87
  249. package/behaviors/registry/agent/organisms/std-agent-assistant.orb +116 -9
  250. package/behaviors/registry/factory-signatures.json +1 -1
  251. package/behaviors/registry/ui/avl/atoms/ui-avl-glyph.orb +20 -0
  252. package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +19 -0
  253. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +44 -21
  254. package/behaviors/registry/ui/core/atoms/std-browse.orb +117 -142
  255. package/behaviors/registry/ui/core/atoms/std-graphs.orb +14 -2
  256. package/behaviors/registry/ui/core/atoms/std-panel-launcher.orb +312 -0
  257. package/behaviors/registry/ui/core/atoms/std-stats.orb +1 -1
  258. package/behaviors/registry/ui/core/atoms/ui-animated-graphic.orb +19 -0
  259. package/behaviors/registry/ui/core/atoms/ui-animated-reveal.orb +19 -0
  260. package/behaviors/registry/ui/core/atoms/ui-aside.orb +19 -0
  261. package/behaviors/registry/ui/core/atoms/ui-atlas-image.orb +19 -0
  262. package/behaviors/registry/ui/core/atoms/ui-atlas-panel.orb +19 -0
  263. package/behaviors/registry/ui/core/atoms/ui-avatar.orb +19 -0
  264. package/behaviors/registry/ui/core/atoms/ui-badge.orb +19 -0
  265. package/behaviors/registry/ui/core/atoms/ui-box.orb +19 -0
  266. package/behaviors/registry/ui/core/atoms/ui-button.orb +19 -0
  267. package/behaviors/registry/ui/core/atoms/ui-card.orb +19 -0
  268. package/behaviors/registry/ui/core/atoms/ui-center.orb +19 -0
  269. package/behaviors/registry/ui/core/atoms/ui-checkbox.orb +20 -0
  270. package/behaviors/registry/ui/core/atoms/ui-confetti-effect.orb +19 -0
  271. package/behaviors/registry/ui/core/atoms/ui-day-cell.orb +19 -0
  272. package/behaviors/registry/ui/core/atoms/ui-dialog.orb +19 -0
  273. package/behaviors/registry/ui/core/atoms/ui-divider.orb +19 -0
  274. package/behaviors/registry/ui/core/atoms/ui-filter-pill.orb +19 -0
  275. package/behaviors/registry/ui/core/atoms/ui-flip-container.orb +19 -0
  276. package/behaviors/registry/ui/core/atoms/ui-game-icon.orb +19 -0
  277. package/behaviors/registry/ui/core/atoms/ui-hstack.orb +19 -0
  278. package/behaviors/registry/ui/core/atoms/ui-icon.orb +19 -0
  279. package/behaviors/registry/ui/core/atoms/ui-image.orb +19 -0
  280. package/behaviors/registry/ui/core/atoms/ui-infinite-scroll-sentinel.orb +19 -0
  281. package/behaviors/registry/ui/core/atoms/ui-input.orb +19 -0
  282. package/behaviors/registry/ui/core/atoms/ui-label.orb +19 -0
  283. package/behaviors/registry/ui/core/atoms/ui-law-reference-tooltip.orb +19 -0
  284. package/behaviors/registry/ui/core/atoms/ui-overlay.orb +19 -0
  285. package/behaviors/registry/ui/core/atoms/ui-pattern-tile.orb +19 -0
  286. package/behaviors/registry/ui/core/atoms/ui-presence.orb +20 -0
  287. package/behaviors/registry/ui/core/atoms/ui-progress-bar.orb +20 -1
  288. package/behaviors/registry/ui/core/atoms/ui-radio.orb +20 -0
  289. package/behaviors/registry/ui/core/atoms/ui-range-slider.orb +21 -0
  290. package/behaviors/registry/ui/core/atoms/ui-section-header.orb +19 -0
  291. package/behaviors/registry/ui/core/atoms/ui-select.orb +19 -0
  292. package/behaviors/registry/ui/core/atoms/ui-spacer.orb +19 -0
  293. package/behaviors/registry/ui/core/atoms/ui-sparkline.orb +19 -0
  294. package/behaviors/registry/ui/core/atoms/ui-spinner.orb +19 -0
  295. package/behaviors/registry/ui/core/atoms/ui-stack.orb +19 -0
  296. package/behaviors/registry/ui/core/atoms/ui-status-dot.orb +19 -0
  297. package/behaviors/registry/ui/core/atoms/ui-svg-branch.orb +19 -0
  298. package/behaviors/registry/ui/core/atoms/ui-svg-connection.orb +19 -0
  299. package/behaviors/registry/ui/core/atoms/ui-svg-flow.orb +19 -0
  300. package/behaviors/registry/ui/core/atoms/ui-svg-grid.orb +19 -0
  301. package/behaviors/registry/ui/core/atoms/ui-svg-lobe.orb +19 -0
  302. package/behaviors/registry/ui/core/atoms/ui-svg-mesh.orb +19 -0
  303. package/behaviors/registry/ui/core/atoms/ui-svg-morph.orb +19 -0
  304. package/behaviors/registry/ui/core/atoms/ui-svg-node.orb +19 -0
  305. package/behaviors/registry/ui/core/atoms/ui-svg-pulse.orb +19 -0
  306. package/behaviors/registry/ui/core/atoms/ui-svg-ring.orb +19 -0
  307. package/behaviors/registry/ui/core/atoms/ui-svg-shield.orb +19 -0
  308. package/behaviors/registry/ui/core/atoms/ui-svg-stack.orb +19 -0
  309. package/behaviors/registry/ui/core/atoms/ui-switch.orb +20 -0
  310. package/behaviors/registry/ui/core/atoms/ui-text-highlight.orb +21 -0
  311. package/behaviors/registry/ui/core/atoms/ui-textarea.orb +19 -0
  312. package/behaviors/registry/ui/core/atoms/ui-theme-toggle.orb +19 -0
  313. package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +20 -0
  314. package/behaviors/registry/ui/core/atoms/ui-trend-indicator.orb +19 -0
  315. package/behaviors/registry/ui/core/atoms/ui-typewriter-text.orb +19 -0
  316. package/behaviors/registry/ui/core/atoms/ui-typography.orb +19 -0
  317. package/behaviors/registry/ui/core/atoms/ui-vstack.orb +19 -0
  318. package/behaviors/registry/ui/core/molecules/ui-accordion.orb +31 -0
  319. package/behaviors/registry/ui/core/molecules/ui-activation-block.orb +19 -0
  320. package/behaviors/registry/ui/core/molecules/ui-agent-activity-feed.orb +1881 -0
  321. package/behaviors/registry/ui/core/molecules/ui-agent-activity-row.orb +1817 -0
  322. package/behaviors/registry/ui/core/molecules/ui-agent-chat-feed.orb +1792 -0
  323. package/behaviors/registry/ui/core/molecules/ui-alert.orb +19 -0
  324. package/behaviors/registry/ui/core/molecules/ui-animated-counter.orb +19 -0
  325. package/behaviors/registry/ui/core/molecules/ui-bloom-quiz-block.orb +19 -0
  326. package/behaviors/registry/ui/core/molecules/ui-branching-logic-builder.orb +31 -0
  327. package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +19 -0
  328. package/behaviors/registry/ui/core/molecules/ui-calendar-grid.orb +35 -0
  329. package/behaviors/registry/ui/core/molecules/ui-carousel.orb +19 -0
  330. package/behaviors/registry/ui/core/molecules/ui-change-list.orb +19 -0
  331. package/behaviors/registry/ui/core/molecules/ui-chart-legend.orb +19 -0
  332. package/behaviors/registry/ui/core/molecules/ui-chart.orb +32 -0
  333. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +26 -0
  334. package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +20 -0
  335. package/behaviors/registry/ui/core/molecules/ui-commit-row.orb +21 -0
  336. package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +19 -0
  337. package/behaviors/registry/ui/core/molecules/ui-connection-block.orb +19 -0
  338. package/behaviors/registry/ui/core/molecules/ui-container.orb +19 -0
  339. package/behaviors/registry/ui/core/molecules/ui-content-renderer.orb +19 -38
  340. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +42 -0
  341. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +42 -0
  342. package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +20 -0
  343. package/behaviors/registry/ui/core/molecules/ui-date-range-selector.orb +19 -0
  344. package/behaviors/registry/ui/core/molecules/ui-doc-breadcrumb.orb +19 -0
  345. package/behaviors/registry/ui/core/molecules/ui-doc-pagination.orb +19 -0
  346. package/behaviors/registry/ui/core/molecules/ui-doc-search.orb +19 -0
  347. package/behaviors/registry/ui/core/molecules/ui-doc-sidebar.orb +19 -0
  348. package/behaviors/registry/ui/core/molecules/ui-doc-toc.orb +19 -0
  349. package/behaviors/registry/ui/core/molecules/ui-document-details.orb +22 -0
  350. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +21 -0
  351. package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +31 -0
  352. package/behaviors/registry/ui/core/molecules/ui-drawer.orb +19 -0
  353. package/behaviors/registry/ui/core/molecules/ui-edge-decoration.orb +19 -0
  354. package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +20 -1
  355. package/behaviors/registry/ui/core/molecules/ui-empty-state.orb +19 -0
  356. package/behaviors/registry/ui/core/molecules/ui-error-boundary.orb +19 -0
  357. package/behaviors/registry/ui/core/molecules/ui-error-state.orb +19 -0
  358. package/behaviors/registry/ui/core/molecules/ui-feature-card.orb +19 -0
  359. package/behaviors/registry/ui/core/molecules/ui-feature-grid.orb +19 -0
  360. package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +19 -0
  361. package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +21 -0
  362. package/behaviors/registry/ui/core/molecules/ui-flex.orb +19 -0
  363. package/behaviors/registry/ui/core/molecules/ui-flip-card.orb +19 -0
  364. package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +19 -0
  365. package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +19 -0
  366. package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +19 -0
  367. package/behaviors/registry/ui/core/molecules/ui-form-field.orb +19 -0
  368. package/behaviors/registry/ui/core/molecules/ui-form-layout.orb +19 -0
  369. package/behaviors/registry/ui/core/molecules/ui-form-section-header.orb +19 -0
  370. package/behaviors/registry/ui/core/molecules/ui-fx-overlay.orb +19 -0
  371. package/behaviors/registry/ui/core/molecules/ui-gantt.orb +35 -0
  372. package/behaviors/registry/ui/core/molecules/ui-geometric-pattern.orb +19 -0
  373. package/behaviors/registry/ui/core/molecules/ui-gradient-divider.orb +19 -0
  374. package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +579 -108
  375. package/behaviors/registry/ui/core/molecules/ui-graph-view.orb +31 -0
  376. package/behaviors/registry/ui/core/molecules/ui-grid.orb +19 -0
  377. package/behaviors/registry/ui/core/molecules/ui-header.orb +19 -0
  378. package/behaviors/registry/ui/core/molecules/ui-icon-button.orb +19 -0
  379. package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +31 -0
  380. package/behaviors/registry/ui/core/molecules/ui-import-progress.orb +19 -0
  381. package/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +19 -0
  382. package/behaviors/registry/ui/core/molecules/ui-input-group.orb +19 -0
  383. package/behaviors/registry/ui/core/molecules/ui-jazari-state-machine.orb +19 -0
  384. package/behaviors/registry/ui/core/molecules/ui-lightbox.orb +19 -0
  385. package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +19 -0
  386. package/behaviors/registry/ui/core/molecules/ui-line-chart.orb +19 -0
  387. package/behaviors/registry/ui/core/molecules/ui-loading-state.orb +19 -0
  388. package/behaviors/registry/ui/core/molecules/ui-map-view.orb +31 -0
  389. package/behaviors/registry/ui/core/molecules/ui-markdown-content.orb +19 -0
  390. package/behaviors/registry/ui/core/molecules/ui-matrix-question.orb +19 -0
  391. package/behaviors/registry/ui/core/molecules/ui-menu.orb +19 -0
  392. package/behaviors/registry/ui/core/molecules/ui-meter.orb +19 -0
  393. package/behaviors/registry/ui/core/molecules/ui-modal.orb +19 -0
  394. package/behaviors/registry/ui/core/molecules/ui-navigation.orb +19 -0
  395. package/behaviors/registry/ui/core/molecules/ui-notification.orb +19 -0
  396. package/behaviors/registry/ui/core/molecules/ui-number-stepper.orb +21 -0
  397. package/behaviors/registry/ui/core/molecules/ui-option-constraint-group.orb +97 -0
  398. package/behaviors/registry/ui/core/molecules/ui-orbital-visualization.orb +19 -0
  399. package/behaviors/registry/ui/core/molecules/ui-page-header.orb +20 -0
  400. package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +19 -0
  401. package/behaviors/registry/ui/core/molecules/ui-pagination.orb +20 -0
  402. package/behaviors/registry/ui/core/molecules/ui-popover.orb +20 -0
  403. package/behaviors/registry/ui/core/molecules/ui-positioned-canvas.orb +21 -0
  404. package/behaviors/registry/ui/core/molecules/ui-progress-dots.orb +19 -0
  405. package/behaviors/registry/ui/core/molecules/ui-pull-to-refresh.orb +19 -0
  406. package/behaviors/registry/ui/core/molecules/ui-qr-scanner.orb +19 -0
  407. package/behaviors/registry/ui/core/molecules/ui-quiz-block.orb +19 -0
  408. package/behaviors/registry/ui/core/molecules/ui-reflection-block.orb +19 -0
  409. package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +20 -0
  410. package/behaviors/registry/ui/core/molecules/ui-repeatable-form-section.orb +19 -0
  411. package/behaviors/registry/ui/core/molecules/ui-reply-tree.orb +21 -0
  412. package/behaviors/registry/ui/core/molecules/ui-rich-text-editor.orb +20 -0
  413. package/behaviors/registry/ui/core/molecules/ui-scaled-diagram.orb +19 -0
  414. package/behaviors/registry/ui/core/molecules/ui-search-input.orb +21 -1
  415. package/behaviors/registry/ui/core/molecules/ui-section.orb +19 -0
  416. package/behaviors/registry/ui/core/molecules/ui-side-panel.orb +19 -0
  417. package/behaviors/registry/ui/core/molecules/ui-sidebar.orb +20 -0
  418. package/behaviors/registry/ui/core/molecules/ui-signature-pad.orb +19 -0
  419. package/behaviors/registry/ui/core/molecules/ui-simple-grid.orb +19 -0
  420. package/behaviors/registry/ui/core/molecules/ui-skeleton.orb +38 -0
  421. package/behaviors/registry/ui/core/molecules/ui-social-proof.orb +19 -0
  422. package/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +21 -0
  423. package/behaviors/registry/ui/core/molecules/ui-split.orb +19 -0
  424. package/behaviors/registry/ui/core/molecules/ui-star-rating.orb +21 -0
  425. package/behaviors/registry/ui/core/molecules/ui-stat-display.orb +31 -0
  426. package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +22 -0
  427. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +36 -0
  428. package/behaviors/registry/ui/core/molecules/ui-tabs.orb +19 -0
  429. package/behaviors/registry/ui/core/molecules/ui-tag-input.orb +19 -0
  430. package/behaviors/registry/ui/core/molecules/ui-tooltip.orb +19 -0
  431. package/behaviors/registry/ui/core/molecules/ui-top-nav-item.orb +19 -0
  432. package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +19 -0
  433. package/behaviors/registry/ui/core/molecules/ui-version-diff.orb +19 -0
  434. package/behaviors/registry/ui/core/molecules/ui-violation-alert.orb +19 -0
  435. package/behaviors/registry/ui/core/molecules/ui-vote-stack.orb +19 -0
  436. package/behaviors/registry/ui/core/molecules/ui-wizard-container.orb +19 -0
  437. package/behaviors/registry/ui/core/molecules/ui-wizard-navigation.orb +22 -0
  438. package/behaviors/registry/ui/core/molecules/ui-wizard-progress.orb +19 -0
  439. package/behaviors/registry/ui/core/organisms/ui-chat-bar.orb +53 -0
  440. package/behaviors/registry/ui/core/organisms/ui-code-runner-panel.orb +19 -0
  441. package/behaviors/registry/ui/core/organisms/ui-dashboard-grid.orb +31 -0
  442. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +45 -1
  443. package/behaviors/registry/ui/core/organisms/ui-dock-layout.orb +22 -3
  444. package/behaviors/registry/ui/core/organisms/ui-drawer-slot.orb +19 -0
  445. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +38 -0
  446. package/behaviors/registry/ui/core/organisms/ui-form.orb +38 -0
  447. package/behaviors/registry/ui/core/organisms/ui-master-detail-layout.orb +19 -0
  448. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +35 -0
  449. package/behaviors/registry/ui/core/organisms/ui-modal-slot.orb +19 -0
  450. package/behaviors/registry/ui/core/organisms/ui-runtime-debugger.orb +19 -0
  451. package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +39 -8
  452. package/behaviors/registry/ui/core/organisms/ui-split-pane.orb +20 -0
  453. package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +35 -0
  454. package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +22 -0
  455. package/behaviors/registry/ui/core/organisms/ui-subagent-trace-panel.orb +2222 -48
  456. package/behaviors/registry/ui/core/organisms/ui-tabbed-container.orb +19 -0
  457. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +36 -0
  458. package/behaviors/registry/ui/core/organisms/ui-toast-slot.orb +19 -0
  459. package/behaviors/registry/ui/core/templates/ui-counter-template.orb +19 -0
  460. package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +19 -0
  461. package/behaviors/registry/ui/game/atoms/ui-action-palette.orb +19 -0
  462. package/behaviors/registry/ui/game/atoms/ui-action-tile.orb +19 -0
  463. package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +19 -0
  464. package/behaviors/registry/ui/game/atoms/ui-canvas.orb +19 -0
  465. package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +19 -0
  466. package/behaviors/registry/ui/game/atoms/ui-control-button.orb +19 -0
  467. package/behaviors/registry/ui/game/atoms/ui-control-grid.orb +19 -0
  468. package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +19 -0
  469. package/behaviors/registry/ui/game/atoms/ui-game-audio-toggle.orb +19 -0
  470. package/behaviors/registry/ui/game/atoms/ui-game-hud.orb +19 -0
  471. package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +19 -0
  472. package/behaviors/registry/ui/game/atoms/ui-health-bar.orb +19 -0
  473. package/behaviors/registry/ui/game/atoms/ui-score-display.orb +19 -0
  474. package/behaviors/registry/ui/game/atoms/ui-sequence-bar.orb +19 -0
  475. package/behaviors/registry/ui/game/atoms/ui-stat-badge.orb +19 -0
  476. package/behaviors/registry/ui/game/atoms/ui-state-graph.orb +19 -0
  477. package/behaviors/registry/ui/game/atoms/ui-state-json-view.orb +19 -0
  478. package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +21 -0
  479. package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +19 -0
  480. package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +20 -0
  481. package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +20 -0
  482. package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +20 -0
  483. package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +20 -0
  484. package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +20 -0
  485. package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +20 -0
  486. package/behaviors/signatures.lolo +5306 -611
  487. package/dist/behaviors/exports-reader.js +10247 -13979
  488. package/dist/behaviors/functions/index.d.ts +655 -970
  489. package/dist/behaviors/functions/index.js +10234 -13951
  490. package/dist/behaviors/index.d.ts +1 -1
  491. package/dist/behaviors/index.js +10248 -13980
  492. package/dist/behaviors/query.js +10247 -13979
  493. package/dist/behaviors-embeddings.hash.json +3 -3
  494. package/dist/behaviors-embeddings.json +33 -33
  495. package/dist/behaviors-registry.json +31586 -26790
  496. package/dist/index.d.ts +1 -1
  497. package/dist/index.js +10248 -13980
  498. package/dist/knob-embeddings.hash.json +3 -3
  499. package/dist/knob-embeddings.json +1151 -815
  500. package/dist/registry/factory-signatures.json +1 -1
  501. package/package.json +3 -3
  502. package/behaviors/lolo/ui/core/atoms/std-list.lolo +0 -613
  503. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +0 -399
  504. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +0 -379
  505. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +0 -447
  506. package/behaviors/lolo/ui/core/organisms/ui-master-detail.lolo +0 -276
  507. package/behaviors/registry/ui/core/atoms/std-list.orb +0 -2135
  508. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +0 -1346
  509. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +0 -1248
  510. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +0 -1761
  511. package/behaviors/registry/ui/core/organisms/ui-master-detail.orb +0 -715
@@ -1,5 +1,5 @@
1
1
  app std-agent-tool-loop "2.0.0"
2
- "std-agent-tool-loop — answers a conversation by operating the running app as the caller, through `call-service llm call-tools`. The `tools` allowlist names declared external inputs (addressed like a listens source: `Trait.EVENT`, `Orbital.Trait.EVENT`) and entities to read; each input fires as the signed-in user through the ordinary dispatch (guards and entity policies apply) and each read returns only the rows the caller may read. Headless: the conversation UI (std-agent-session) shows the reply; a failure shows as a toast. CONVERSE carries the conversation (and optionally what std-agent-memory recalled); REPLIED carries the reply, every tool step and the token usage; REPLY_FAILED carries the error. Compose with std-agent-session (the conversation) and std-agent-trace (the step record)."
2
+ "std-agent-tool-loop — answers a conversation by operating the running app as the caller, through `call-service llm call-tools`. The `tools` allowlist names declared external inputs (addressed like a listens source: `Trait.EVENT`, `Orbital.Trait.EVENT`) and entities to read; each input fires as the signed-in user through the ordinary dispatch (guards and entity policies apply) and each read returns only the rows the caller may read. Headless: the conversation UI (std-agent-session) shows the reply; a failure shows as a toast. CONVERSE carries the conversation (and optionally what std-agent-memory recalled); STEP carries each step live while it works (a model call, a tool it used, what the app answered) to the asking tab; REPLIED carries the reply, every step and the token usage; REPLY_FAILED carries the error. Compose with std-agent-session (the conversation) and std-agent-trace (the step record)."
3
3
 
4
4
  type AgentTool = {
5
5
  event : event
@@ -9,13 +9,46 @@ type AgentChatMessage = {
9
9
  role : "user" | "assistant"
10
10
  content : string!
11
11
  }
12
- type AgentStep = {
13
- kind : "input" | "read" | "invalid"
14
- target : string!
15
- args : string!
16
- ok : boolean!
12
+ type AgentToolKind = "input" | "read" | "invalid"
13
+ type AgentToolCallActivity = {
14
+ type : "tool_call"!
15
+ tool : string!
16
+ kind : AgentToolKind
17
+ argsText : string!
18
+ timestamp : number!
19
+ isExecuting : boolean
20
+ }
21
+ type AgentToolResultActivity = {
22
+ type : "tool_result"!
23
+ tool : string!
24
+ kind : AgentToolKind
25
+ success : boolean!
17
26
  detail : string
27
+ rows : number
28
+ resultText : string!
29
+ timestamp : number!
30
+ }
31
+ type AgentLlmCall = {
32
+ service : string!
33
+ provider : string!
34
+ model : string!
35
+ systemPrompt : string!
36
+ userPrompt : string!
37
+ toolCallsJson : string
38
+ attempt : number
39
+ durationMs : number!
40
+ promptTokens : number
41
+ completionTokens : number
42
+ cachedPromptTokens : number
43
+ costUSD : number
44
+ }
45
+ type AgentLlmResponseActivity = {
46
+ type : "llm_response"!
47
+ content : string!
48
+ llm : AgentLlmCall
49
+ timestamp : number!
18
50
  }
51
+ type AgentActivity = AgentToolCallActivity | AgentToolResultActivity | AgentLlmResponseActivity
19
52
  type AgentUsage = {
20
53
  promptTokens : number!
21
54
  completionTokens : number!
@@ -61,7 +94,7 @@ orbital AgentToolLoopOrbital {
61
94
  instructions: (if ["=", (str/default ?context ""), ""] @config.instructions (str/concat @config.instructions "\n\nWhat you remember that may be relevant:\n" ?context))
62
95
  maxSteps: @config.maxSteps
63
96
  } {
64
- emit: { failure: ASK_FAILED, success: ANSWERED }
97
+ emit: { failure: ASK_FAILED, success: ANSWERED, onMessage: STEP }
65
98
  })
66
99
  }
67
100
 
@@ -82,9 +115,15 @@ orbital AgentToolLoopOrbital {
82
115
  }
83
116
 
84
117
  emits {
118
+ STEP -> external {
119
+ activity : AgentActivity!
120
+ }
121
+ @description "One thing the assistant just did, live while it works: a model call, a tool it used, or what the app answered. Delivered to the asking tab only."
122
+ @synonyms "progress, activity, trace step, working"
123
+ @tier "domain"
85
124
  REPLIED -> external {
86
125
  reply : string!
87
- steps : [AgentStep]!
126
+ steps : [AgentActivity]!
88
127
  usage : AgentUsage!
89
128
  }
90
129
  @description "The assistant answered; carries every tool step it took and the tokens it used."
@@ -98,7 +137,7 @@ orbital AgentToolLoopOrbital {
98
137
  @tier "domain"
99
138
  ANSWERED -> internal {
100
139
  reply : string!
101
- steps : [AgentStep]!
140
+ steps : [AgentActivity]!
102
141
  usage : AgentUsage!
103
142
  }
104
143
  @tier "internal"
@@ -1,13 +1,46 @@
1
1
  app std-agent-trace "2.0.0"
2
- "std-agent-trace — the persisted record of what an in-app assistant did. Each REPLIED (from std-agent-tool-loop) stores one AgentRun row: the reply, every tool step (which input or entity, the arguments, whether it took effect and why not), the tokens and the model calls; each REPLY_FAILED stores a failed run with its error. The record verification grades and later optimisation reads, in one format for tests and production. AgentTraceRecorder is headless; AgentRunBrowse is the run list. Rows carry ownerId (the real @user); the binding organism scopes @read."
2
+ "std-agent-trace — the persisted record of what an in-app assistant did. Each REPLIED (from std-agent-tool-loop) stores one AgentRun row: the reply, every step (each model call, each tool used with its arguments, whether it took effect and why not), the tokens and the model calls; each REPLY_FAILED stores a failed run with its error. The record verification grades and later optimisation reads, in one format for tests and production. AgentTraceRecorder is headless; AgentRunBrowse is the run list. Rows carry ownerId (the real @user); the binding organism scopes @read."
3
3
 
4
- type AgentStep = {
5
- kind : "input" | "read" | "invalid"
6
- target : string!
7
- args : string!
8
- ok : boolean!
4
+ type AgentToolKind = "input" | "read" | "invalid"
5
+ type AgentToolCallActivity = {
6
+ type : "tool_call"!
7
+ tool : string!
8
+ kind : AgentToolKind
9
+ argsText : string!
10
+ timestamp : number!
11
+ isExecuting : boolean
12
+ }
13
+ type AgentToolResultActivity = {
14
+ type : "tool_result"!
15
+ tool : string!
16
+ kind : AgentToolKind
17
+ success : boolean!
9
18
  detail : string
19
+ rows : number
20
+ resultText : string!
21
+ timestamp : number!
22
+ }
23
+ type AgentLlmCall = {
24
+ service : string!
25
+ provider : string!
26
+ model : string!
27
+ systemPrompt : string!
28
+ userPrompt : string!
29
+ toolCallsJson : string
30
+ attempt : number
31
+ durationMs : number!
32
+ promptTokens : number
33
+ completionTokens : number
34
+ cachedPromptTokens : number
35
+ costUSD : number
10
36
  }
37
+ type AgentLlmResponseActivity = {
38
+ type : "llm_response"!
39
+ content : string!
40
+ llm : AgentLlmCall
41
+ timestamp : number!
42
+ }
43
+ type AgentActivity = AgentToolCallActivity | AgentToolResultActivity | AgentLlmResponseActivity
11
44
  type AgentUsage = {
12
45
  promptTokens : number!
13
46
  completionTokens : number!
@@ -25,7 +58,7 @@ orbital AgentTraceOrbital {
25
58
  outcome : "answered" | "failed" @description "Whether the assistant answered." @synonyms "result, status" = answered
26
59
  reply : string @description "What the assistant said." @synonyms "answer, response" = ""
27
60
  error : string @description "Why the run failed." = ""
28
- steps : [AgentStep] @description "Every tool use, in order." @synonyms "actions, tool calls, trace" = []
61
+ steps : [AgentActivity] @description "Every step, in order: each model call, each tool used and what the app answered." @synonyms "actions, tool calls, trace" = []
29
62
  promptTokens : number @description "Tokens sent to the model." = 0
30
63
  completionTokens : number @description "Tokens the model produced." = 0
31
64
  totalTokens : number @description "All tokens for the run." = 0
@@ -76,7 +109,7 @@ orbital AgentTraceOrbital {
76
109
  listens {
77
110
  REPLIED {
78
111
  reply : string!
79
- steps : [AgentStep]!
112
+ steps : [AgentActivity]!
80
113
  usage : AgentUsage!
81
114
  }
82
115
  @description "Record an answered run."
@@ -116,6 +149,10 @@ orbital AgentTraceOrbital {
116
149
  content: (str/concat @item.modelCalls " model calls, " @item.totalTokens " tokens")
117
150
  type: typography
118
151
  variant: caption
152
+ }, {
153
+ activities: @item.steps
154
+ followLatest: false
155
+ type: agent-activity-feed
119
156
  }]
120
157
  direction: vertical
121
158
  gap: xs
@@ -1,5 +1,5 @@
1
- app std-agent-assistant "1.0.0"
2
- "std-agent-assistant — an in-app assistant that operates the running app for the signed-in user. One request flows down a chain of std agent atoms on the bus: the conversation (std-agent-session) SENDs → CONVERSE → std-agent-context bounds it → std-agent-memory adds what it recalls → std-agent-tool-loop answers it through `call-service llm call-tools`, firing only the inputs and reading only the entities the `tools` allowlist names, as the signed-in user → REPLIED goes back to the conversation, to memory (remembered) and to std-agent-trace (the run record). Import the orbital and supply the allowlist: `orbital Assistant = Agent.orbitals.AgentAssistantOrbital { config { tools: [{ event: TaskOrbital.TaskPersistor.DO_CREATE }, { read: Task }], instructions: \"…\" } }`. The conversation, memory and run records live in AgentRecordsOrbital; retarget them onto your own owner-scoped entities (`ownerId` a relation to your [identity] roster, with @read/@create) with `entities { AgentMessage: …, AgentMemory: …, AgentRun: … }`."
1
+ app std-agent-assistant "2.0.0"
2
+ "std-agent-assistant — an in-app assistant that operates the running app for the signed-in user. A floating button opens it in a side panel docked beside the page (std-panel-launcher; a side sheet on small screens), where the conversation shows every step the assistant takes live as it works. List AssistantDock with the assistant's traits on each page that should carry the button. One request flows down a chain of std agent atoms on the bus: the conversation (std-agent-session) SENDs → CONVERSE → std-agent-context bounds it → std-agent-memory adds what it recalls → std-agent-tool-loop answers it through `call-service llm call-tools`, firing only the inputs and reading only the entities the `tools` allowlist names, as the signed-in user → REPLIED goes back to the conversation, to memory (remembered) and to std-agent-trace (the run record). Import the orbital and supply the allowlist: `orbital Assistant = Agent.orbitals.AgentAssistantOrbital { config { tools: [{ event: TaskOrbital.TaskPersistor.DO_CREATE }, { read: Task }], instructions: \"…\" } }`. The conversation, memory and run records live in AgentRecordsOrbital; retarget them onto your own owner-scoped entities (`ownerId` a relation to your [identity] roster, with @read/@create) with `entities { AgentMessage: …, AgentMemory: …, AgentRun: … }`."
3
3
 
4
4
  type AgentTool = {
5
5
  event : event
@@ -16,6 +16,7 @@ orbital AgentAssistantOrbital {
16
16
  uses Memory from "std/behaviors/std-agent-memory"
17
17
  uses Loop from "std/behaviors/std-agent-tool-loop"
18
18
  uses Trace from "std/behaviors/std-agent-trace"
19
+ uses Launcher from "std/behaviors/std-panel-launcher"
19
20
 
20
21
  config {
21
22
  tools : [AgentTool] = []
@@ -41,6 +42,13 @@ orbital AgentAssistantOrbital {
41
42
  @label "Links above the conversation"
42
43
  @description "The pages showing the assistant's run history and memory."
43
44
  @tier "presentation"
45
+ title : string = "Assistant"
46
+ @label "Panel title"
47
+ @tier "presentation"
48
+ buttonLabel : string = "Open the assistant"
49
+ @label "Button label"
50
+ @description "What the floating button does, read to screen readers and shown as its tooltip."
51
+ @tier "presentation"
44
52
  }
45
53
 
46
54
  entity AgentAssistant [runtime] {
@@ -48,21 +56,37 @@ orbital AgentAssistantOrbital {
48
56
  }
49
57
 
50
58
  trait AssistantThread = Session.traits.AgentThread -> AgentMessage {
51
- config {
52
- links: @config.links
53
- }
54
59
  events {
55
60
  CONVERSE: REQUEST_CONTEXT
56
61
  }
57
62
  listens {
58
- SEND {
59
- message : string!
60
- }
63
+ AssistantConversation.SEND -> SEND
64
+ AssistantLoop.REPLIED -> REPLIED
65
+ }
66
+ }
67
+
68
+ trait AssistantConversation = Session.traits.AgentConversation {
69
+ config {
70
+ links: @config.links
71
+ }
72
+ listens {
73
+ AssistantThread.AgentMessagesLoaded -> THREAD_LOADED
74
+ AssistantThread.THREAD_FAILED -> REPLY_FAILED
75
+ AssistantLoop.STEP -> STEP
61
76
  AssistantLoop.REPLIED -> REPLIED
62
77
  AssistantLoop.REPLY_FAILED -> REPLY_FAILED
63
78
  }
64
79
  }
65
80
 
81
+ trait AssistantDock = Launcher.traits.PanelLauncher {
82
+ config {
83
+ contentTrait: @trait.AssistantConversation
84
+ title: @config.title
85
+ label: @config.buttonLabel
86
+ icon: message-circle
87
+ }
88
+ }
89
+
66
90
  trait AssistantContext = Context.traits.AgentContextCompactor {
67
91
  config {
68
92
  keepMessages: @config.keepMessages
@@ -100,7 +124,7 @@ orbital AgentAssistantOrbital {
100
124
  }
101
125
  }
102
126
 
103
- page "/assistant" as AssistantPage -> AssistantThread, AssistantContext, AssistantMemory, AssistantLoop, AssistantTrace
127
+ page "/assistant" as AssistantPage -> AssistantDock, AssistantThread, AssistantContext, AssistantMemory, AssistantLoop, AssistantTrace
104
128
  }
105
129
 
106
130
  ;; The assistant's records live outside AgentAssistantOrbital, so a consumer
@@ -20,6 +20,7 @@ orbital AvlGlyphOrbital {
20
20
  className: @config.className
21
21
  enter: @config.enter
22
22
  enterDelay: @config.enterDelay
23
+ skeleton: @config.skeleton
23
24
  aria-label: @config.ariaLabel
24
25
  aria-labelledby: @config.ariaLabelledby
25
26
  aria-describedby: @config.ariaDescribedby
@@ -47,7 +48,7 @@ orbital AvlGlyphOrbital {
47
48
  @label "Label"
48
49
  @description "Caption, and the drawn text for operator / literal / bindingRef symbols."
49
50
  @tier "presentation"
50
- effectType : string
51
+ effectType : string = set
51
52
  @label "Effect Type"
52
53
  @description "Effect symbol variant. @default 'set'"
53
54
  @tier "presentation"
@@ -71,6 +72,10 @@ orbital AvlGlyphOrbital {
71
72
  @label "Enter Delay"
72
73
  @description "Stagger step for the entry: waits this many `--motion-enter-stagger` steps before animating."
73
74
  @tier "presentation"
75
+ skeleton : "header" | "table" | "list" | "grid" | "detail" | "stats" | "form" | "card" | "text" | "none"
76
+ @label "Skeleton"
77
+ @description "Skeleton shown while this element's server render is in flight: a shape (`table`, `list`, …), `{ variant, rows?, columns?, fields? }`, or `none`."
78
+ @tier "presentation"
74
79
  ariaLabel : string
75
80
  @label "Aria-label"
76
81
  @description "Accessible name read by screen readers when the visible text is missing or not descriptive (e.g. an icon-only control)."
@@ -60,6 +60,7 @@ orbital AvlStateMachineOrbital {
60
60
  className: @config.className
61
61
  enter: @config.enter
62
62
  enterDelay: @config.enterDelay
63
+ skeleton: @config.skeleton
63
64
  aria-label: @config.ariaLabel
64
65
  aria-labelledby: @config.ariaLabelledby
65
66
  aria-describedby: @config.ariaDescribedby
@@ -161,6 +162,10 @@ orbital AvlStateMachineOrbital {
161
162
  @label "Enter Delay"
162
163
  @description "Stagger step for the entry: waits this many `--motion-enter-stagger` steps before animating."
163
164
  @tier "presentation"
165
+ skeleton : "header" | "table" | "list" | "grid" | "detail" | "stats" | "form" | "card" | "text" | "none"
166
+ @label "Skeleton"
167
+ @description "Skeleton shown while this element's server render is in flight: a shape (`table`, `list`, …), `{ variant, rows?, columns?, fields? }`, or `none`."
168
+ @tier "presentation"
164
169
  ariaLabel : string
165
170
  @label "Aria-label"
166
171
  @description "Accessible name read by screen readers when the visible text is missing or not descriptive (e.g. an icon-only control)."
@@ -79,10 +79,6 @@
79
79
  "signature": "b6d780174cc19310",
80
80
  "board": "packages/almadar-std/behaviors/lolo/ui/core/atoms/std-image-upload-multi.lolo"
81
81
  },
82
- "std-list": {
83
- "signature": "ece46e2df57db77d",
84
- "board": "packages/almadar-std/behaviors/lolo/ui/core/atoms/std-list.lolo"
85
- },
86
82
  "std-modal": {
87
83
  "signature": "e8718a24813236d8",
88
84
  "board": "packages/almadar-std/behaviors/lolo/ui/core/atoms/std-modal.lolo"
@@ -59,17 +59,26 @@ orbital BillableHourOrbital {
59
59
  })
60
60
  BillableHourLoaded -> browsing
61
61
  (render-ui main {
62
- children: [{
63
- align: center
64
- children: [{ name: clock, size: lg, type: icon }, {
65
- content: @config.title
66
- type: typography
67
- variant: h3
68
- }]
69
- direction: horizontal
70
- gap: sm
62
+ children: [(if @config.showHeader {
63
+ children: [{
64
+ align: center
65
+ children: [{ name: clock, size: lg, type: icon }, {
66
+ content: @config.title
67
+ type: typography
68
+ variant: h3
69
+ }]
70
+ direction: horizontal
71
+ gap: sm
72
+ type: stack
73
+ }, { type: divider }]
74
+ direction: vertical
75
+ gap: md
71
76
  type: stack
72
- }, { type: divider }, {
77
+ } {
78
+ children: []
79
+ gap: none
80
+ type: stack
81
+ }), {
73
82
  children: [@trait.DenseHoursTable]
74
83
  className: overflow-x-auto
75
84
  direction: vertical
@@ -367,6 +376,10 @@ orbital BillableHourOrbital {
367
376
  }
368
377
 
369
378
  config {
379
+ showHeader : boolean = true
380
+ @label "Show the list's own title row?"
381
+ @description "Off when the page already carries a page header naming the same thing, so the page shows one title."
382
+ @tier "presentation"
370
383
  title : string = "Time Entries"
371
384
  @label "Section title"
372
385
  @description "Heading shown above the time-entries list"
@@ -1,7 +1,7 @@
1
1
  app std-browse "2.5.0"
2
2
  "std-browse as a Function — single primitive: data-grid. Owns the fetch + REFETCH (query/filter/page) state machine. Consumers configure fields/imageField/itemActions/cols/gap/variant; the atom renders the grid. Each `fields[]` entry accepts `{ name, label, variant }` plus optional `referenceEntity` + `displayField` to render a foreign-key column as the joined entity's display value (data-grid resolves @list[referenceEntity] at render time when both keys are present). `browseLook` (table default / dense / feed / gallery / master-detail / triage) selects one of six render bodies; dense/feed/gallery were folded in from std-browse-dense/-feed/-gallery (Phase 5.B); master-detail (split record view driven by the guarded VIEW/CLOSE self-transitions) and triage (inbox rows) were folded in 2026-07-26. Consumers retarget by setting browseLook."
3
3
  type BadgeColor = "default" | "primary" | "secondary" | "success" | "warning" | "danger" | "error" | "info" | "neutral" | "destructive"
4
- type FieldSpec = { name : string!, label : string, variant : h3 | h4 | body | caption | badge | small | progress, icon : string, format : date | currency | number | boolean | percent, key : string, header : string, colorMap : Map string BadgeColor, labels : Map string string }
4
+ type FieldSpec = { name : string!, label : string, variant : h3 | h4 | overline | avatar | body | caption | badge | small | progress, icon : string, format : date | time | datetime | currency | number | boolean | percent, key : string, header : string, colorMap : Map string BadgeColor, labels : Map string string }
5
5
  type ItemAction = { label : string!, event : event, navigatesTo : string, variant : primary | secondary | ghost | danger, icon : string, roles : [string], when : SExpr }
6
6
  type ColumnSpec = { key : string!, field : string, header : string, width : string, align : left | center | right, className : string, weight : normal | medium | semibold, format : badge | date | currency | number | percent | boolean, icon : string, colorMap : Map string BadgeColor, labels : Map string string, variant : h3 | h4 }
7
7
  type FilterSpec = { field : string!, label : string, options : [string] }
@@ -48,8 +48,9 @@ orbital BrowseItemOrbital {
48
48
  itemActions: @config.itemActions
49
49
  viewerRole: @config.viewerRole
50
50
  itemClickEvent: @config.itemClickEvent
51
- maxInlineActions: @config.maxInlineActions
51
+ maxInlineActions: 0
52
52
  variant: compact
53
+ surface: none
53
54
  selfFetch: false
54
55
  }
55
56
 
@@ -283,30 +284,16 @@ orbital BrowseItemOrbital {
283
284
  @description "Entity field containing the thumbnail URL for each row."
284
285
  @synonyms "image field, thumbnail field, photo field, picture column"
285
286
  @tier "presentation"
286
- titleBinding : string = @item.name
287
- @label "Title field binding"
288
- @description "Binding path for the card title slot (e.g. @item.dishName)."
289
- @tier "internal"
290
- descriptionBinding : string = @item.description
291
- @label "Description field binding"
292
- @description "Binding path for the card body/subtitle slot."
293
- @tier "internal"
294
- badgeBinding : string = @item.status
295
- @label "Badge field binding"
296
- @description "Binding path for the status/badge slot."
297
- @tier "internal"
298
- metaBinding : string = @item.createdAt
299
- @label "Meta field binding"
300
- @description "Binding path for the secondary meta slot (timestamp / category). Hosts binding a count or other non-date value should label it in the binding itself (e.g. (str/concat \"Vehicles: \" @item.vehicleCount)) and set metaFormat: none."
301
- @tier "internal"
302
- metaFormat : "none" | "date" | "time" | "datetime" | "number" = date
303
- @label "Meta value format"
304
- @description "Typography format for the feed meta slot — date by default so the createdAt binding renders human-readable instead of raw ISO; set none for non-date bindings."
287
+ surface : "auto" | "none" = auto
288
+ @label "Paint a surface behind the list?"
289
+ @description "auto (default) draws the theme's content surface behind every look — on a patterned page background the list reads as one block; the theme decides how that surface looks. none places the list directly on the page (e.g. a list already inside a card or panel you composed)."
290
+ @synonyms "card background, panel, container, list background, no background, transparent, bare"
291
+ @tier "presentation"
292
+ feedSurface : "cards" | "divided" | "plain" = cards
293
+ @label "How are feed items separated?"
294
+ @description "browseLook = feed only. cards = each item its own raised card with space between (community posts, listings); divided = one surface with hairline rows (inboxes, answer lists, notes); plain = no chrome, items on the page background (editorial article lists, changelogs). What each item shows comes from `fields`: overline = eyebrow above the title, h3/h4 = title (its `icon` becomes a leading tile), caption = prose, small/body = meta line, badge = pill, avatar = leading initials."
295
+ @synonyms "feed style, item chrome, card per item, divided list, editorial list, rows or cards"
305
296
  @tier "presentation"
306
- categoryBinding : string = @item.category
307
- @label "Category field binding"
308
- @description "Binding path for the category/tag slot."
309
- @tier "internal"
310
297
  itemActions : [ItemAction] = []
311
298
  @label "What actions can users take on each row?"
312
299
  @description "Buttons rendered on each row (e.g. Edit, Delete, View)."
@@ -490,6 +477,7 @@ orbital BrowseItemOrbital {
490
477
  emptyDescription: @config.emptyDescription
491
478
  emptyIcon: @config.emptyIcon
492
479
  emptyTitle: @config.emptyTitle
480
+ surface: @config.surface
493
481
  type: data-grid
494
482
  }]
495
483
  direction: vertical
@@ -539,6 +527,7 @@ orbital BrowseItemOrbital {
539
527
  itemClickEvent: @config.itemClickEvent
540
528
  look: dense
541
529
  maxInlineActions: @config.maxInlineActions
530
+ surface: none
542
531
  pageSize: @config.displayPageSize
543
532
  selectable: @config.selectable
544
533
  emptyDescription: @config.emptyDescription
@@ -551,7 +540,7 @@ orbital BrowseItemOrbital {
551
540
  gap: none
552
541
  type: stack
553
542
  }]
554
- className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] shadow-sm overflow-hidden"
543
+ className: (if ["=", @config.surface, "auto"] "surface-content overflow-hidden" "")
555
544
  direction: vertical
556
545
  gap: none
557
546
  type: stack
@@ -595,82 +584,19 @@ orbital BrowseItemOrbital {
595
584
  type: stack
596
585
  }), {
597
586
  entity: ?data
598
- fields: []
599
- gap: md
587
+ fields: @config.fields
588
+ gap: none
600
589
  itemClickEvent: @config.itemClickEvent
601
590
  itemActions: (array/filter @config.itemActions (fn item (or (= (array/len (object/get @item roles [])) 0) (array/includes (object/get @item roles []) @config.viewerRole))))
602
- renderItem: (fn item {
603
- children: [{
604
- align: start
605
- children: [{
606
- className: "rounded-full flex-shrink-0"
607
- fallback: @config.titleBinding
608
- size: md
609
- type: avatar
610
- }, {
611
- children: [{
612
- align: center
613
- children: [{
614
- className: truncate
615
- content: @config.titleBinding
616
- type: typography
617
- variant: body
618
- weight: medium
619
- }, {
620
- label: @config.categoryBinding
621
- size: sm
622
- type: badge
623
- variant: neutral
624
- }]
625
- className: flex-wrap
626
- direction: horizontal
627
- gap: xs
628
- type: stack
629
- }, {
630
- className: "text-[var(--color-foreground)] whitespace-pre-wrap break-words leading-relaxed"
631
- content: @config.descriptionBinding
632
- type: typography
633
- variant: body
634
- }, {
635
- align: center
636
- children: [{
637
- color: muted
638
- content: @config.metaBinding
639
- format: @config.metaFormat
640
- type: typography
641
- variant: caption
642
- }, {
643
- label: @config.badgeBinding
644
- size: sm
645
- type: badge
646
- variant: default
647
- }]
648
- className: pt-1
649
- direction: horizontal
650
- gap: sm
651
- justify: between
652
- type: stack
653
- }]
654
- className: "flex-1 min-w-0"
655
- direction: vertical
656
- gap: xs
657
- type: stack
658
- }]
659
- className: p-card-md
660
- direction: horizontal
661
- gap: md
662
- type: stack
663
- }]
664
- className: "rounded-lg bg-[var(--color-card)] border border-[var(--color-border)] shadow-sm transition-all duration-normal hover:shadow-main hover:border-[var(--color-border-strong)] hover:-translate-y-px"
665
- look: flat-bordered
666
- padding: none
667
- type: card
668
- })
591
+ look: (if ["=", @config.feedSurface, "cards"] card-rows borderless)
592
+ maxInlineActions: @config.maxInlineActions
669
593
  emptyDescription: @config.emptyDescription
670
594
  emptyIcon: @config.emptyIcon
671
595
  emptyTitle: @config.emptyTitle
596
+ pageSize: @config.displayPageSize
597
+ surface: (if ["=", @config.feedSurface, "plain"] none @config.surface)
672
598
  type: data-list
673
- variant: card
599
+ variant: (if ["=", @config.feedSurface, "divided"] card default)
674
600
  }]
675
601
  className: w-full
676
602
  direction: vertical
@@ -678,7 +604,7 @@ orbital BrowseItemOrbital {
678
604
  type: stack
679
605
  }
680
606
  @label "Feed look body"
681
- @description "Render-ui SExpr rendered after rows load when browseLook = feed. Chronological card-per-item stream with avatar, title, meta, body, timestamp; composes titleBinding/descriptionBinding/categoryBinding/badgeBinding/metaBinding/searchPlaceholder/itemActions. Folded from std-browse-feed (Phase 5.B)."
607
+ @description "Render-ui SExpr rendered after rows load when browseLook = feed. Chronological item stream on the same `fields` contract every look reads (roles: overline, h3/h4, caption, small/body, badge, avatar), separated per feedSurface. Folded from std-browse-feed (Phase 5.B)."
682
608
  @tier "internal"
683
609
  galleryBodyContent : render-ui = {
684
610
  children: [(if @config.bodySearch {
@@ -727,6 +653,7 @@ orbital BrowseItemOrbital {
727
653
  emptyDescription: @config.emptyDescription
728
654
  emptyIcon: @config.emptyIcon
729
655
  emptyTitle: @config.emptyTitle
656
+ surface: @config.surface
730
657
  type: data-grid
731
658
  }]
732
659
  className: w-full
@@ -780,6 +707,8 @@ orbital BrowseItemOrbital {
780
707
  emptyDescription: @config.emptyDescription
781
708
  emptyIcon: @config.emptyIcon
782
709
  emptyTitle: @config.emptyTitle
710
+ pageSize: @config.displayPageSize
711
+ surface: none
783
712
  type: data-list
784
713
  variant: compact
785
714
  }]
@@ -788,7 +717,7 @@ orbital BrowseItemOrbital {
788
717
  gap: none
789
718
  type: stack
790
719
  }]
791
- className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] shadow-sm overflow-hidden"
720
+ className: (if ["=", @config.surface, "auto"] "surface-content overflow-hidden" "")
792
721
  direction: vertical
793
722
  gap: none
794
723
  type: stack
@@ -851,7 +780,7 @@ orbital BrowseItemOrbital {
851
780
  }
852
781
  type: master-detail-layout
853
782
  }]
854
- className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] shadow-sm overflow-hidden"
783
+ className: (if ["=", @config.surface, "auto"] "surface-content overflow-hidden" "")
855
784
  direction: vertical
856
785
  gap: none
857
786
  type: stack
@@ -899,6 +828,7 @@ orbital BrowseItemOrbital {
899
828
  closeEvent: @config.detailCloseEvent
900
829
  initialData: ?row
901
830
  showActions: true
831
+ surface: none
902
832
  type: detail-panel
903
833
  }
904
834
  hasSelection: true
@@ -911,7 +841,7 @@ orbital BrowseItemOrbital {
911
841
  }
912
842
  type: master-detail-layout
913
843
  }]
914
- className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] shadow-sm overflow-hidden"
844
+ className: (if ["=", @config.surface, "auto"] "surface-content overflow-hidden" "")
915
845
  direction: vertical
916
846
  gap: none
917
847
  type: stack
@@ -1,5 +1,5 @@
1
1
  app std-graphs "2.0.0"
2
- "std-graphs — embeddable chart atom. ITEMS_LOADED keeps the rows whose @config.filterField equals @config.filterValue (blank = all), groups them by @config.categoryField, or (timeAxis=true) by the @config.period bucket of @config.timeField — rows without a time value have no place on a time axis and are left out — and aggregates per bucket. Multi-series rendering via @config.series (preformatted ChartSeries shape). Histograms via chartType=histogram pass pre-binned @payload.data through unchanged. Stacked / 100% stacked bars via @config.stack. Post-process sort + limit. Clicking a data point emits UI:@config.drillEvent with { label, value, seriesLabel? }. Drop into a dashboard alongside std-stats / std-browse."
2
+ "std-graphs — embeddable chart atom. ITEMS_LOADED keeps the rows whose @config.filterField equals @config.filterValue (blank = all), groups them by @config.categoryField, or (timeAxis=true) by the @config.period bucket of @config.timeField — rows without a time value (or, by category, without a category value) have no bucket to land in and are left out — and aggregates per bucket. Multi-series rendering via @config.series (preformatted ChartSeries shape). Histograms via chartType=histogram pass pre-binned @payload.data through unchanged. Stacked / 100% stacked bars via @config.stack. Post-process sort + limit. Clicking a data point emits UI:@config.drillEvent with { label, value, seriesLabel? }. Drop into a dashboard alongside std-stats / std-browse."
3
3
  type ObjectSpec = { id : string, label : string, value : string }
4
4
  orbital GraphItemOrbital {
5
5
  type ChartPoint = { label : string!, value : number! }
@@ -38,7 +38,7 @@ orbital GraphItemOrbital {
38
38
  (set @entity.chartData (if ["=", @config.chartType, histogram] (array/map @rows (fn p {
39
39
  label: (object/get @p label)
40
40
  value: (object/get @p value)
41
- })) (array/map (object/entries (if @config.timeAxis (array/groupBy (array/map (array/filter @rows (fn row (object/get @row @config.timeField))) (fn row (object/set @row "periodStart" (time/startOf (time/parse (object/get @row @config.timeField)) @config.period)))) "periodStart") (array/groupBy @rows @config.categoryField))) (fn entry {
41
+ })) (array/map (object/entries (if @config.timeAxis (array/groupBy (array/map (array/filter @rows (fn row (object/get @row @config.timeField))) (fn row (object/set @row "periodStart" (time/startOf (time/parse (object/get @row @config.timeField)) @config.period)))) "periodStart") (array/groupBy (array/filter @rows (fn row (object/get @row @config.categoryField))) @config.categoryField))) (fn entry {
42
42
  label: (object/get @entry "0")
43
43
  value: (if ["=", @config.aggregation, sum] (array/sum (object/get @entry "1") @config.valueField) (if ["=", @config.aggregation, avg] (array/avg (object/get @entry "1") @config.valueField) (if ["=", @config.aggregation, min] (array/min (object/get @entry "1") @config.valueField) (if ["=", @config.aggregation, max] (array/max (object/get @entry "1") @config.valueField) (array/len (object/get @entry "1"))))))
44
44
  })))))