@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.
- package/behaviors/behaviors-registry.json +31586 -26790
- package/behaviors/lolo/agent/atoms/std-agent-memory.lolo +2 -2
- package/behaviors/lolo/agent/atoms/std-agent-session.lolo +337 -167
- package/behaviors/lolo/agent/atoms/std-agent-tool-loop.lolo +48 -9
- package/behaviors/lolo/agent/atoms/std-agent-trace.lolo +45 -8
- package/behaviors/lolo/agent/organisms/std-agent-assistant.lolo +33 -9
- package/behaviors/lolo/ui/avl/atoms/ui-avl-glyph.lolo +6 -1
- package/behaviors/lolo/ui/avl/atoms/ui-avl-state-machine.lolo +5 -0
- package/behaviors/lolo/ui/core/.hand-authored.json +0 -4
- package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +23 -10
- package/behaviors/lolo/ui/core/atoms/std-browse.lolo +30 -100
- package/behaviors/lolo/ui/core/atoms/std-graphs.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/std-panel-launcher.lolo +97 -0
- package/behaviors/lolo/ui/core/atoms/std-stats.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-animated-graphic.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-animated-reveal.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-aside.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-atlas-image.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-atlas-panel.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-avatar.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-badge.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-box.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-button.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-card.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-center.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-checkbox.lolo +6 -0
- package/behaviors/lolo/ui/core/atoms/ui-confetti-effect.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-day-cell.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-dialog.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-divider.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-filter-pill.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-flip-container.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-game-icon.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-hstack.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-icon.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-image.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-infinite-scroll-sentinel.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-input.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-label.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-law-reference-tooltip.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-overlay.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-pattern-tile.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-presence.lolo +6 -1
- package/behaviors/lolo/ui/core/atoms/ui-progress-bar.lolo +6 -1
- package/behaviors/lolo/ui/core/atoms/ui-radio.lolo +6 -0
- package/behaviors/lolo/ui/core/atoms/ui-range-slider.lolo +7 -0
- package/behaviors/lolo/ui/core/atoms/ui-section-header.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-select.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-spacer.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-sparkline.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-spinner.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-stack.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-status-dot.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-svg-branch.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-svg-connection.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-svg-flow.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-svg-grid.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-svg-lobe.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-svg-mesh.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-svg-morph.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-svg-node.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-svg-pulse.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-svg-ring.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-svg-shield.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-svg-stack.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-switch.lolo +6 -0
- package/behaviors/lolo/ui/core/atoms/ui-text-highlight.lolo +7 -0
- package/behaviors/lolo/ui/core/atoms/ui-textarea.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-theme-toggle.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-time-slot-cell.lolo +6 -0
- package/behaviors/lolo/ui/core/atoms/ui-trend-indicator.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-typewriter-text.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-typography.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-vstack.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-accordion.lolo +10 -0
- package/behaviors/lolo/ui/core/molecules/ui-activation-block.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-agent-activity-feed.lolo +249 -0
- package/behaviors/lolo/ui/core/molecules/ui-agent-activity-row.lolo +218 -0
- package/behaviors/lolo/ui/core/molecules/ui-agent-chat-feed.lolo +231 -0
- package/behaviors/lolo/ui/core/molecules/ui-alert.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-animated-counter.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-bloom-quiz-block.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-branching-logic-builder.lolo +10 -0
- package/behaviors/lolo/ui/core/molecules/ui-breadcrumb.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-calendar-grid.lolo +14 -0
- package/behaviors/lolo/ui/core/molecules/ui-carousel.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-change-list.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-chart-legend.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-chart.lolo +10 -0
- package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +12 -0
- package/behaviors/lolo/ui/core/molecules/ui-command-palette.lolo +6 -0
- package/behaviors/lolo/ui/core/molecules/ui-commit-row.lolo +7 -0
- package/behaviors/lolo/ui/core/molecules/ui-confirm-dialog.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-connection-block.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-container.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-content-renderer.lolo +5 -9
- package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +18 -4
- package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +18 -4
- package/behaviors/lolo/ui/core/molecules/ui-date-range-picker.lolo +6 -0
- package/behaviors/lolo/ui/core/molecules/ui-date-range-selector.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-doc-breadcrumb.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-doc-pagination.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-doc-search.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-doc-sidebar.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-doc-toc.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +8 -0
- package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +7 -0
- package/behaviors/lolo/ui/core/molecules/ui-document-viewer.lolo +10 -0
- package/behaviors/lolo/ui/core/molecules/ui-drawer.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-edge-decoration.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-emoji-picker.lolo +6 -1
- package/behaviors/lolo/ui/core/molecules/ui-empty-state.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-error-boundary.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-error-state.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-feature-card.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-feature-grid.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-file-tree.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-filter-group.lolo +7 -0
- package/behaviors/lolo/ui/core/molecules/ui-flex.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-flip-card.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-floating-action-button.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-floating-toolbar.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-form-actions.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-form-field.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-form-layout.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-form-section-header.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-fx-overlay.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-gantt.lolo +14 -0
- package/behaviors/lolo/ui/core/molecules/ui-geometric-pattern.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-gradient-divider.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-graph-canvas.lolo +40 -5
- package/behaviors/lolo/ui/core/molecules/ui-graph-view.lolo +10 -0
- package/behaviors/lolo/ui/core/molecules/ui-grid.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-header.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-icon-button.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-import-preview-tree.lolo +10 -0
- package/behaviors/lolo/ui/core/molecules/ui-import-progress.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-import-source-picker.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-input-group.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-jazari-state-machine.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-lightbox.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-likert-scale.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-line-chart.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-loading-state.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-map-view.lolo +10 -0
- package/behaviors/lolo/ui/core/molecules/ui-markdown-content.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-matrix-question.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-meter.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-modal.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-navigation.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-notification.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-number-stepper.lolo +7 -0
- package/behaviors/lolo/ui/core/molecules/ui-option-constraint-group.lolo +20 -0
- package/behaviors/lolo/ui/core/molecules/ui-orbital-visualization.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-page-header.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-page-transition.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-pagination.lolo +6 -0
- package/behaviors/lolo/ui/core/molecules/ui-popover.lolo +6 -0
- package/behaviors/lolo/ui/core/molecules/ui-positioned-canvas.lolo +7 -0
- package/behaviors/lolo/ui/core/molecules/ui-progress-dots.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-pull-to-refresh.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-qr-scanner.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-quiz-block.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-reflection-block.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-relation-select.lolo +6 -0
- package/behaviors/lolo/ui/core/molecules/ui-repeatable-form-section.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-reply-tree.lolo +7 -0
- package/behaviors/lolo/ui/core/molecules/ui-rich-text-editor.lolo +6 -0
- package/behaviors/lolo/ui/core/molecules/ui-scaled-diagram.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-search-input.lolo +7 -1
- package/behaviors/lolo/ui/core/molecules/ui-section.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-side-panel.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-sidebar.lolo +6 -0
- package/behaviors/lolo/ui/core/molecules/ui-signature-pad.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-simple-grid.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-skeleton.lolo +10 -0
- package/behaviors/lolo/ui/core/molecules/ui-social-proof.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-sortable-list.lolo +7 -0
- package/behaviors/lolo/ui/core/molecules/ui-split.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-star-rating.lolo +7 -0
- package/behaviors/lolo/ui/core/molecules/ui-stat-display.lolo +10 -0
- package/behaviors/lolo/ui/core/molecules/ui-swipeable-row.lolo +8 -0
- package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +14 -0
- package/behaviors/lolo/ui/core/molecules/ui-tabs.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-tag-input.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-tooltip.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-top-nav-item.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-upload-drop-zone.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-version-diff.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-violation-alert.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-vote-stack.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-wizard-container.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-wizard-navigation.lolo +8 -0
- package/behaviors/lolo/ui/core/molecules/ui-wizard-progress.lolo +5 -0
- package/behaviors/lolo/ui/core/organisms/ui-chat-bar.lolo +16 -0
- package/behaviors/lolo/ui/core/organisms/ui-code-runner-panel.lolo +5 -0
- package/behaviors/lolo/ui/core/organisms/ui-dashboard-grid.lolo +10 -0
- package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +21 -5
- package/behaviors/lolo/ui/core/organisms/ui-dock-layout.lolo +8 -3
- package/behaviors/lolo/ui/core/organisms/ui-drawer-slot.lolo +5 -0
- package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +16 -0
- package/behaviors/lolo/ui/core/organisms/ui-form.lolo +16 -0
- package/behaviors/lolo/ui/core/organisms/ui-master-detail-layout.lolo +5 -0
- package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +14 -0
- package/behaviors/lolo/ui/core/organisms/ui-modal-slot.lolo +5 -0
- package/behaviors/lolo/ui/core/organisms/ui-runtime-debugger.lolo +5 -0
- package/behaviors/lolo/ui/core/organisms/ui-segment-renderer.lolo +9 -3
- package/behaviors/lolo/ui/core/organisms/ui-split-pane.lolo +6 -0
- package/behaviors/lolo/ui/core/organisms/ui-stat-card.lolo +14 -0
- package/behaviors/lolo/ui/core/organisms/ui-state-machine-view.lolo +8 -3
- package/behaviors/lolo/ui/core/organisms/ui-subagent-trace-panel.lolo +232 -0
- package/behaviors/lolo/ui/core/organisms/ui-tabbed-container.lolo +5 -0
- package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +14 -0
- package/behaviors/lolo/ui/core/organisms/ui-toast-slot.lolo +5 -0
- package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +5 -0
- package/behaviors/lolo/ui/core/templates/ui-generic-app-template.lolo +5 -0
- package/behaviors/lolo/ui/game/.hand-authored.json +2 -2
- package/behaviors/lolo/ui/game/atoms/ui-action-palette.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-action-tile.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-canvas-2d.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-canvas.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-choice-button.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-control-button.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-control-grid.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-dialogue-bubble.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-game-audio-toggle.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-game-hud.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-health-bar.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-score-display.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-sequence-bar.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-stat-badge.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-state-graph.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-state-json-view.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-trait-slot.lolo +7 -0
- package/behaviors/lolo/ui/learning/atoms/ui-algo-graph-canvas.lolo +5 -0
- package/behaviors/lolo/ui/learning/atoms/ui-algorithm-canvas.lolo +6 -0
- package/behaviors/lolo/ui/learning/atoms/ui-biology-canvas.lolo +6 -0
- package/behaviors/lolo/ui/learning/atoms/ui-chemistry-canvas.lolo +6 -0
- package/behaviors/lolo/ui/learning/atoms/ui-learning-canvas.lolo +6 -0
- package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +6 -0
- package/behaviors/lolo/ui/learning/atoms/ui-physics-canvas.lolo +6 -0
- package/behaviors/lolo-behavior-contracts.json +1 -1
- package/behaviors/registry/agent/atoms/std-agent-memory.orb +30 -7
- package/behaviors/registry/agent/atoms/std-agent-session.orb +1509 -601
- package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +549 -116
- package/behaviors/registry/agent/atoms/std-agent-trace.orb +383 -87
- package/behaviors/registry/agent/organisms/std-agent-assistant.orb +116 -9
- package/behaviors/registry/factory-signatures.json +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-avl-glyph.orb +20 -0
- package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +19 -0
- package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +44 -21
- package/behaviors/registry/ui/core/atoms/std-browse.orb +117 -142
- package/behaviors/registry/ui/core/atoms/std-graphs.orb +14 -2
- package/behaviors/registry/ui/core/atoms/std-panel-launcher.orb +312 -0
- package/behaviors/registry/ui/core/atoms/std-stats.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-animated-graphic.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-animated-reveal.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-aside.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-atlas-image.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-atlas-panel.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-avatar.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-badge.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-box.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-button.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-card.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-center.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-checkbox.orb +20 -0
- package/behaviors/registry/ui/core/atoms/ui-confetti-effect.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-day-cell.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-dialog.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-divider.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-filter-pill.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-flip-container.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-game-icon.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-hstack.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-icon.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-image.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-infinite-scroll-sentinel.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-input.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-label.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-law-reference-tooltip.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-overlay.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-pattern-tile.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-presence.orb +20 -0
- package/behaviors/registry/ui/core/atoms/ui-progress-bar.orb +20 -1
- package/behaviors/registry/ui/core/atoms/ui-radio.orb +20 -0
- package/behaviors/registry/ui/core/atoms/ui-range-slider.orb +21 -0
- package/behaviors/registry/ui/core/atoms/ui-section-header.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-select.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-spacer.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-sparkline.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-spinner.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-stack.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-status-dot.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-branch.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-connection.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-flow.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-grid.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-lobe.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-mesh.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-morph.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-node.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-pulse.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-ring.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-shield.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-stack.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-switch.orb +20 -0
- package/behaviors/registry/ui/core/atoms/ui-text-highlight.orb +21 -0
- package/behaviors/registry/ui/core/atoms/ui-textarea.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-theme-toggle.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +20 -0
- package/behaviors/registry/ui/core/atoms/ui-trend-indicator.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-typewriter-text.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-typography.orb +19 -0
- package/behaviors/registry/ui/core/atoms/ui-vstack.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-accordion.orb +31 -0
- package/behaviors/registry/ui/core/molecules/ui-activation-block.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-agent-activity-feed.orb +1881 -0
- package/behaviors/registry/ui/core/molecules/ui-agent-activity-row.orb +1817 -0
- package/behaviors/registry/ui/core/molecules/ui-agent-chat-feed.orb +1792 -0
- package/behaviors/registry/ui/core/molecules/ui-alert.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-animated-counter.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-bloom-quiz-block.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-branching-logic-builder.orb +31 -0
- package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-calendar-grid.orb +35 -0
- package/behaviors/registry/ui/core/molecules/ui-carousel.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-change-list.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-chart-legend.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-chart.orb +32 -0
- package/behaviors/registry/ui/core/molecules/ui-code-block.orb +26 -0
- package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +20 -0
- package/behaviors/registry/ui/core/molecules/ui-commit-row.orb +21 -0
- package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-connection-block.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-container.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-content-renderer.orb +19 -38
- package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +42 -0
- package/behaviors/registry/ui/core/molecules/ui-data-list.orb +42 -0
- package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +20 -0
- package/behaviors/registry/ui/core/molecules/ui-date-range-selector.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-doc-breadcrumb.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-doc-pagination.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-doc-search.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-doc-sidebar.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-doc-toc.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-document-details.orb +22 -0
- package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +21 -0
- package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +31 -0
- package/behaviors/registry/ui/core/molecules/ui-drawer.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-edge-decoration.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +20 -1
- package/behaviors/registry/ui/core/molecules/ui-empty-state.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-error-boundary.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-error-state.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-feature-card.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-feature-grid.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +21 -0
- package/behaviors/registry/ui/core/molecules/ui-flex.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-flip-card.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-form-field.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-form-layout.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-form-section-header.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-fx-overlay.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-gantt.orb +35 -0
- package/behaviors/registry/ui/core/molecules/ui-geometric-pattern.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-gradient-divider.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +579 -108
- package/behaviors/registry/ui/core/molecules/ui-graph-view.orb +31 -0
- package/behaviors/registry/ui/core/molecules/ui-grid.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-header.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-icon-button.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +31 -0
- package/behaviors/registry/ui/core/molecules/ui-import-progress.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-input-group.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-jazari-state-machine.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-lightbox.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-line-chart.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-loading-state.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-map-view.orb +31 -0
- package/behaviors/registry/ui/core/molecules/ui-markdown-content.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-matrix-question.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-menu.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-meter.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-modal.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-navigation.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-notification.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-number-stepper.orb +21 -0
- package/behaviors/registry/ui/core/molecules/ui-option-constraint-group.orb +97 -0
- package/behaviors/registry/ui/core/molecules/ui-orbital-visualization.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-page-header.orb +20 -0
- package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-pagination.orb +20 -0
- package/behaviors/registry/ui/core/molecules/ui-popover.orb +20 -0
- package/behaviors/registry/ui/core/molecules/ui-positioned-canvas.orb +21 -0
- package/behaviors/registry/ui/core/molecules/ui-progress-dots.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-pull-to-refresh.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-qr-scanner.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-quiz-block.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-reflection-block.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +20 -0
- package/behaviors/registry/ui/core/molecules/ui-repeatable-form-section.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-reply-tree.orb +21 -0
- package/behaviors/registry/ui/core/molecules/ui-rich-text-editor.orb +20 -0
- package/behaviors/registry/ui/core/molecules/ui-scaled-diagram.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-search-input.orb +21 -1
- package/behaviors/registry/ui/core/molecules/ui-section.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-side-panel.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-sidebar.orb +20 -0
- package/behaviors/registry/ui/core/molecules/ui-signature-pad.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-simple-grid.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-skeleton.orb +38 -0
- package/behaviors/registry/ui/core/molecules/ui-social-proof.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +21 -0
- package/behaviors/registry/ui/core/molecules/ui-split.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-star-rating.orb +21 -0
- package/behaviors/registry/ui/core/molecules/ui-stat-display.orb +31 -0
- package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +22 -0
- package/behaviors/registry/ui/core/molecules/ui-table-view.orb +36 -0
- package/behaviors/registry/ui/core/molecules/ui-tabs.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-tag-input.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-tooltip.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-top-nav-item.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-version-diff.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-violation-alert.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-vote-stack.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-wizard-container.orb +19 -0
- package/behaviors/registry/ui/core/molecules/ui-wizard-navigation.orb +22 -0
- package/behaviors/registry/ui/core/molecules/ui-wizard-progress.orb +19 -0
- package/behaviors/registry/ui/core/organisms/ui-chat-bar.orb +53 -0
- package/behaviors/registry/ui/core/organisms/ui-code-runner-panel.orb +19 -0
- package/behaviors/registry/ui/core/organisms/ui-dashboard-grid.orb +31 -0
- package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +45 -1
- package/behaviors/registry/ui/core/organisms/ui-dock-layout.orb +22 -3
- package/behaviors/registry/ui/core/organisms/ui-drawer-slot.orb +19 -0
- package/behaviors/registry/ui/core/organisms/ui-form-section.orb +38 -0
- package/behaviors/registry/ui/core/organisms/ui-form.orb +38 -0
- package/behaviors/registry/ui/core/organisms/ui-master-detail-layout.orb +19 -0
- package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +35 -0
- package/behaviors/registry/ui/core/organisms/ui-modal-slot.orb +19 -0
- package/behaviors/registry/ui/core/organisms/ui-runtime-debugger.orb +19 -0
- package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +39 -8
- package/behaviors/registry/ui/core/organisms/ui-split-pane.orb +20 -0
- package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +35 -0
- package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +22 -0
- package/behaviors/registry/ui/core/organisms/ui-subagent-trace-panel.orb +2222 -48
- package/behaviors/registry/ui/core/organisms/ui-tabbed-container.orb +19 -0
- package/behaviors/registry/ui/core/organisms/ui-timeline.orb +36 -0
- package/behaviors/registry/ui/core/organisms/ui-toast-slot.orb +19 -0
- package/behaviors/registry/ui/core/templates/ui-counter-template.orb +19 -0
- package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-action-palette.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-action-tile.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-canvas.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-control-button.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-control-grid.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-game-audio-toggle.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-game-hud.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-health-bar.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-score-display.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-sequence-bar.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-stat-badge.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-state-graph.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-state-json-view.orb +19 -0
- package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +21 -0
- package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +19 -0
- package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +20 -0
- package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +20 -0
- package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +20 -0
- package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +20 -0
- package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +20 -0
- package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +20 -0
- package/behaviors/signatures.lolo +5306 -611
- package/dist/behaviors/exports-reader.js +10247 -13979
- package/dist/behaviors/functions/index.d.ts +655 -970
- package/dist/behaviors/functions/index.js +10234 -13951
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +10248 -13980
- package/dist/behaviors/query.js +10247 -13979
- package/dist/behaviors-embeddings.hash.json +3 -3
- package/dist/behaviors-embeddings.json +33 -33
- package/dist/behaviors-registry.json +31586 -26790
- package/dist/index.d.ts +1 -1
- package/dist/index.js +10248 -13980
- package/dist/knob-embeddings.hash.json +3 -3
- package/dist/knob-embeddings.json +1151 -815
- package/dist/registry/factory-signatures.json +1 -1
- package/package.json +3 -3
- package/behaviors/lolo/ui/core/atoms/std-list.lolo +0 -613
- package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +0 -399
- package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +0 -379
- package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +0 -447
- package/behaviors/lolo/ui/core/organisms/ui-master-detail.lolo +0 -276
- package/behaviors/registry/ui/core/atoms/std-list.orb +0 -2135
- package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +0 -1346
- package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +0 -1248
- package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +0 -1761
- 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
|
|
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
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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 : [
|
|
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 : [
|
|
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
|
|
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
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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 : [
|
|
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 : [
|
|
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 "
|
|
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
|
-
|
|
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
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
}
|
|
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:
|
|
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
|
-
|
|
287
|
-
@label "
|
|
288
|
-
@description "
|
|
289
|
-
@
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
@
|
|
293
|
-
@
|
|
294
|
-
|
|
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: "
|
|
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:
|
|
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
|
-
|
|
603
|
-
|
|
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
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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
|
|
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
|
})))))
|