@almadar/std 16.253.0 → 16.255.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/lolo/agent/atoms/std-agent-pool.lolo +355 -0
- package/behaviors/lolo/agent/evals/eval-agent-builder.lolo +159 -0
- package/behaviors/lolo/agent/organisms/std-agent-builder.lolo +321 -26
- package/behaviors/lolo-behavior-contracts.json +1 -1
- package/behaviors/registry/agent/atoms/std-agent-context.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-memory.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-planner.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-pool.orb +1 -0
- package/behaviors/registry/agent/atoms/std-agent-proposal.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-session.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-suggestions.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-tool-call.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-trace.orb +1 -1
- package/behaviors/registry/agent/evals/eval-agent-builder.orb +1 -0
- package/behaviors/registry/agent/organisms/std-agent-assistant.orb +1 -1
- package/behaviors/registry/agent/organisms/std-agent-builder.orb +1 -1
- package/behaviors/registry/infra/atoms/std-analytics.orb +1 -1
- package/behaviors/registry/infra/atoms/std-approval-gate.orb +1 -1
- package/behaviors/registry/infra/atoms/std-audit-capture.orb +1 -1
- package/behaviors/registry/infra/atoms/std-cache-aside.orb +1 -1
- package/behaviors/registry/infra/atoms/std-calendar-sync.orb +1 -1
- package/behaviors/registry/infra/atoms/std-cascade-on-delete.orb +1 -1
- package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +1 -1
- package/behaviors/registry/infra/atoms/std-cross-reference.orb +1 -1
- package/behaviors/registry/infra/atoms/std-data-erasure.orb +1 -1
- package/behaviors/registry/infra/atoms/std-data-import.orb +1 -1
- package/behaviors/registry/infra/atoms/std-global-search.orb +1 -1
- package/behaviors/registry/infra/atoms/std-knowledge-loop.orb +1 -1
- package/behaviors/registry/infra/atoms/std-lifecycle.orb +1 -1
- package/behaviors/registry/infra/atoms/std-migration-job.orb +1 -1
- package/behaviors/registry/infra/atoms/std-mod-queue.orb +1 -1
- package/behaviors/registry/infra/atoms/std-notification-center.orb +1 -1
- package/behaviors/registry/infra/atoms/std-notification-preferences.orb +1 -1
- package/behaviors/registry/infra/atoms/std-notify-on-event.orb +1 -1
- package/behaviors/registry/infra/atoms/std-page-search.orb +1 -1
- package/behaviors/registry/infra/atoms/std-page-watch.orb +1 -1
- package/behaviors/registry/infra/atoms/std-permission-matrix.orb +1 -1
- package/behaviors/registry/infra/atoms/std-rate-limiter.orb +1 -1
- package/behaviors/registry/infra/atoms/std-reminder-scheduler.orb +1 -1
- package/behaviors/registry/infra/atoms/std-review-cycle.orb +1 -1
- package/behaviors/registry/infra/atoms/std-row-access-control.orb +1 -1
- package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +1 -1
- package/behaviors/registry/infra/organisms/std-status-lifecycle-control.orb +1 -1
- package/behaviors/registry/ml/atoms/std-data-collector.orb +1 -1
- package/behaviors/registry/ml/atoms/std-graph-builder.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-classify.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-exact-check.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-infer.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-label-capture.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-lookup.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-posterior.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-similarity.orb +1 -1
- package/behaviors/registry/ml/atoms/std-tokenizer.orb +1 -1
- package/behaviors/registry/ml/atoms/std-weight-validator.orb +1 -1
- package/behaviors/registry/ml/organisms/std-escalating-decision.orb +1 -1
- package/behaviors/registry/ml/organisms/std-knowledge-tracing.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/std-avl-cosmic-zoom.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-avl-glyph.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-avl-transition-detail.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-behavior-view.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-module-card.orb +1 -1
- package/behaviors/registry/ui/avl/organisms/ui-flow-canvas.orb +1 -1
- package/behaviors/registry/ui/avl/organisms/ui-layers-panel.orb +1 -1
- package/behaviors/registry/ui/avl/organisms/ui-orb-inspector.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-app-layout.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-app-search.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-behavior-catalog.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-behavior-tour.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-board.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-book-reader.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-browse.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-calendar.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-card-grid.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-confirmation.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-date-range.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-doc-page.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-esign-request.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-event-log.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-export.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-file-store.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-filter.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-gallery.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-gantt-schedule.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-geosearch.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-graphs.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-hero.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-home.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-import.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-language-picker.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-media-section.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-modal-editor.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-modal.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-notification-panel.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-panel-launcher.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-pricing.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-proof.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-prose.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-rating-review.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-record-detail.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-recurrence.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-related.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-role-gate.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-saved-search.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-scatter.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-scoped-list.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-search.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-selection.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-site-footer.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-site-header.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-slide-deck.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-stat-band.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-stats.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-step-flow.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-steps.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-tabs.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-tag-strip.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-thread.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-tree.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-version-history.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-wizard.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-workspace-layout.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-animated-graphic.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-animated-reveal.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-aside.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-atlas-image.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-atlas-panel.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-avatar.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-badge.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-box.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-button.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-card.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-center.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-checkbox.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-conditional-wrapper.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-confetti-effect.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-day-cell.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-dialog.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-divider.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-filter-pill.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-flip-container.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-game-icon.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-hstack.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-icon.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-image.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-infinite-scroll-sentinel.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-input.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-label.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-law-reference-tooltip.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-overlay.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-pattern-tile.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-presence.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-progress-bar.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-radio.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-range-slider.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-section-header.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-select.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-spacer.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-sparkline.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-spinner.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-stack.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-status-dot.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-branch.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-connection.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-flow.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-grid.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-lobe.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-mesh.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-morph.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-node.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-pulse.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-ring.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-shield.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-stack.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-switch.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-text-highlight.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-textarea.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-theme-toggle.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-trend-indicator.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-typewriter-text.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-typography.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-video-embed.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-vstack.orb +1 -1
- package/behaviors/registry/ui/core/molecules/std-stat-rows.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-accordion.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-activation-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-activity-rail.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-agent-activity-feed.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-agent-activity-row.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-agent-chat-feed.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-alert.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-animated-counter.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-bloom-quiz-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-branching-logic-builder.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-calendar-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-carousel.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-change-list.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-chart-legend.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-chart.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-code-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-commit-row.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-connection-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-container.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-content-renderer.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-data-list.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-date-range-selector.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-breadcrumb.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-pagination.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-search.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-sidebar.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-toc.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-document-details.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-drawer.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-edge-decoration.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-empty-state.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-error-boundary.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-error-state.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-feature-card.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-feature-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-flex.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-flip-card.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-form-field.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-form-layout.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-form-section-header.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-fx-overlay.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-gantt.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-geometric-pattern.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-gradient-divider.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-graph-view.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-header.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-icon-button.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-import-progress.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-input-group.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-jazari-state-machine.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-lightbox.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-line-chart.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-loading-state.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-map-view.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-markdown-content.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-matrix-question.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-menu.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-meter.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-modal.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-navigation.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-notification.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-number-stepper.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-option-constraint-group.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-orbital-visualization.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-page-header.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-pagination.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-popover.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-positioned-canvas.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-progress-dots.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-pull-to-refresh.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-qr-scanner.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-quiz-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-reflection-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-repeatable-form-section.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-reply-tree.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-rich-text-editor.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-scaled-diagram.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-search-input.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-section.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-side-panel.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-sidebar.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-signature-pad.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-simple-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-skeleton.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-social-proof.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-split.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-star-rating.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-stat-display.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-table-view.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-tabs.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-tag-input.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-tooltip.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-top-nav-item.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-version-diff.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-violation-alert.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-vote-stack.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-wizard-container.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-wizard-navigation.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-wizard-progress.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-chat-bar.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-code-runner-panel.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-dashboard-grid.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-dock-layout.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-drawer-slot.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-form-section.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-form.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-master-detail-layout.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-modal-slot.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-runtime-debugger.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-split-pane.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-subagent-trace-panel.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-tabbed-container.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-timeline.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-toast-slot.orb +1 -1
- package/behaviors/registry/ui/core/templates/ui-auth-layout.orb +1 -1
- package/behaviors/registry/ui/core/templates/ui-counter-template.orb +1 -1
- package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +1 -1
- package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-arcade-play.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-area-fill.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-audio-cue.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-camera-rig.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-chase-ai.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-choice-gate.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-coef-pad.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-curve-fog.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-fx-narrative.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-fx-trail.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-gate-lock.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-gather.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-gold.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-grid-tactics.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-hero-nav.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-lives.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-loop-lock.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-motion-body.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-objective-reach.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-pad-lock.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-patience.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-patrol-hazard.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-pickup.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-platformer-body.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-production.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-score.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-tutorial-autodemo.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-tutorial-overlay.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-velocity-gate.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-xp.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-zone-card.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-action-palette.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-action-tile.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-canvas.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-control-button.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-control-grid.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-fx-layer.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-group.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-mesh.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-shape-layer.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-shape.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-skinned-mesh.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-sprite-layer.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-text-layer.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-text.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-game-audio-cue.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-game-audio-toggle.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-game-hud.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-health-bar.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-score-display.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-sequence-bar.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-stat-badge.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-state-graph.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-state-json-view.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-timer-display.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-platformer-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/templates/ui-game-shell.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-arrangement.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-classify.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-compare.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-coupled-sim.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-derivation.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-diagram.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-doser.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-estimate.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-fx-cues.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-generate.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-goal-seek.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-grid-sim.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-hotspot.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-live-sim.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-measure.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-param-explorer.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-perturb.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-predict.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-sample-accumulator.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-sandbox.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-scenario.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-sim-3d.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-slope-probe.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-speed-drill.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-tour-3d.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-trace-player.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-transport.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-tree.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +1 -1
- package/dist/behaviors-embeddings.hash.json +2 -2
- package/dist/behaviors-embeddings.json +1 -1
- package/dist/knob-embeddings.hash.json +2 -2
- package/package.json +2 -2
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
app std-agent-pool [
|
|
2
|
+
version: "1.0.0",
|
|
3
|
+
description: "std-agent-pool — a shared pool of generated behaviors that every user of the app draws from. WRITE { value, name, kind, topic, fields, description } takes a behavior already built and validated (a `program/eval` result), keeps its source durably (`behavior/source` → `program/print` → the `storage` service; the provider is the deployment's), embeds its description (`llm embed`) and records a PoolEntry; any failure on the way leaves no entry (WRITE_FAILED). SEARCH { vector, kinds, exclude, take } ranks the live entries of this pool by cosine similarity to the vector, nudged by their quality, and answers POOL_FOUND with the best ones, no model call. SIGNAL { id, signal } counts a play, like, hide, right or wrong answer on an entry and retires it once it has been played enough and most of its outcomes are hides or wrong answers. The pool name, kinds, bucket and key prefix and the quality knobs are config, so the same mechanism serves any app that pools generated behaviors."
|
|
4
|
+
]
|
|
5
|
+
;; @capabilities "behavior pool, shared generated content, retrieve by meaning, reuse generated behaviors, quality signals, retire bad content"
|
|
6
|
+
|
|
7
|
+
type PoolHit = {
|
|
8
|
+
id : string!
|
|
9
|
+
behavior : string!
|
|
10
|
+
value : behavior!
|
|
11
|
+
name : string
|
|
12
|
+
kind : string
|
|
13
|
+
topic : string
|
|
14
|
+
fields : Map string string
|
|
15
|
+
description : string
|
|
16
|
+
score : number!
|
|
17
|
+
}
|
|
18
|
+
type PoolUploaded = {
|
|
19
|
+
key : string!
|
|
20
|
+
}
|
|
21
|
+
type PoolWrite = {
|
|
22
|
+
name : string
|
|
23
|
+
kind : string
|
|
24
|
+
topic : string
|
|
25
|
+
fields : Map string string
|
|
26
|
+
description : string
|
|
27
|
+
key : string
|
|
28
|
+
value : behavior
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
orbital AgentPoolOrbital {
|
|
32
|
+
config {
|
|
33
|
+
pool : string = "default"
|
|
34
|
+
@label "Pool name"
|
|
35
|
+
@description "The pool this orbital writes to and searches; entries of other pools are never served."
|
|
36
|
+
@tier "domain"
|
|
37
|
+
kinds : [string] = []
|
|
38
|
+
@label "Kinds of behavior pooled"
|
|
39
|
+
@description "When listed, a write of any other kind is refused. Empty accepts any kind."
|
|
40
|
+
@tier "domain"
|
|
41
|
+
bucket : string = ""
|
|
42
|
+
@label "Storage bucket"
|
|
43
|
+
@description "The `storage` service bucket that keeps each pooled behavior's source. Empty uses the deployment's default bucket."
|
|
44
|
+
@tier "domain"
|
|
45
|
+
keyPrefix : string = "pool/"
|
|
46
|
+
@label "Storage key prefix"
|
|
47
|
+
@description "Every source is stored under `<keyPrefix><pool>/<name>.lolo`."
|
|
48
|
+
@tier "domain"
|
|
49
|
+
qualityWeight : number = 0.1
|
|
50
|
+
@label "Quality weight"
|
|
51
|
+
@description "How much an entry's track record moves its search score: score = similarity + weight × (likes + right − hides − wrong) / (1 + plays)."
|
|
52
|
+
@tier "policy"
|
|
53
|
+
retireAfter : number = 20
|
|
54
|
+
@label "Plays before an entry can be retired"
|
|
55
|
+
@tier "policy"
|
|
56
|
+
retireRatio : number = 0.6
|
|
57
|
+
@label "Share of hides and wrong answers that retires an entry"
|
|
58
|
+
@tier "policy"
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
entity AgentPoolHost [runtime] {
|
|
62
|
+
id : string!
|
|
63
|
+
pending : PoolWrite = { name: "", kind: "", topic: "", fields: {}, description: "", key: "", value: none }
|
|
64
|
+
signalOf : string = ""
|
|
65
|
+
queryVector : [number] = []
|
|
66
|
+
queryKinds : [string] = []
|
|
67
|
+
queryExclude : [string] = []
|
|
68
|
+
queryTake : number = 10
|
|
69
|
+
error : string = ""
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
entity PoolEntry [persistent: poolEntries] {
|
|
73
|
+
id : string!
|
|
74
|
+
pool : string @description "The pool the entry belongs to." = ""
|
|
75
|
+
behavior : string @description "The pooled behavior's specifier, as `program/eval` wrote it." @synonyms "specifier, program" = ""
|
|
76
|
+
value : behavior @description "The pooled behavior as a value, ready to embed." = none
|
|
77
|
+
name : string @description "The pooled program's name." = ""
|
|
78
|
+
storageKey : string @description "Where its source is kept in the storage bucket." = ""
|
|
79
|
+
kind : string @description "The app's own kind of content (a game, a simulation…)." @synonyms "type, category" = ""
|
|
80
|
+
topic : string @description "What it is about." @synonyms "subject" = ""
|
|
81
|
+
fields : Map string string @description "The extra fields its build wrote (e.g. a one-line hint), served with it." = {}
|
|
82
|
+
description : string @description "The text its vector embeds." = ""
|
|
83
|
+
vector : [number] @description "The description's embedding." = []
|
|
84
|
+
plays : number = 0
|
|
85
|
+
likes : number = 0
|
|
86
|
+
hides : number = 0
|
|
87
|
+
right : number = 0
|
|
88
|
+
wrong : number = 0
|
|
89
|
+
retired : boolean @description "Retired entries are never served." = false
|
|
90
|
+
createdAt : number = 0
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
trait AgentPoolWriter -> AgentPoolHost [lifecycle, instance] {
|
|
94
|
+
initial: ready
|
|
95
|
+
|
|
96
|
+
state ready {
|
|
97
|
+
INIT -> ready
|
|
98
|
+
WRITE -> ready when (and (> (array/len @config.allowedKinds) 0) (not (array/includes @config.allowedKinds ?kind)))
|
|
99
|
+
(emit WRITE_FAILED { name: ?name, error: (str/concat "Unknown kind \"" ?kind "\". Allowed kinds: " (str/join @config.allowedKinds ", ")) })
|
|
100
|
+
WRITE -> sourcing when (or (= (array/len @config.allowedKinds) 0) (array/includes @config.allowedKinds ?kind))
|
|
101
|
+
(set @entity.pending { name: ?name, kind: ?kind, topic: (str/default ?topic ""), fields: (if (== ?fields null) {} ?fields), description: ?description, key: (str/concat @config.prefix @config.poolName "/" ?name ".lolo"), value: ?value })
|
|
102
|
+
(behavior/source ?value {
|
|
103
|
+
emit: { failure: STEP_FAILED, success: SOURCED }
|
|
104
|
+
})
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
state sourcing {
|
|
108
|
+
INIT -> ready
|
|
109
|
+
SOURCED -> keeping
|
|
110
|
+
(program/print ?result {
|
|
111
|
+
emit: { failure: STEP_FAILED, success: PRINTED }
|
|
112
|
+
})
|
|
113
|
+
STEP_FAILED -> ready
|
|
114
|
+
(emit WRITE_FAILED { name: @entity.pending.name, error: ?error })
|
|
115
|
+
(render-ui toast { message: ?error, type: alert, variant: warning })
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
state keeping {
|
|
119
|
+
INIT -> ready
|
|
120
|
+
PRINTED -> keeping
|
|
121
|
+
(call-service storage upload { bucket: @config.bucketName, key: @entity.pending.key, content: ?result, contentType: "text/plain" } {
|
|
122
|
+
emit: { failure: STEP_FAILED, success: UPLOADED }
|
|
123
|
+
})
|
|
124
|
+
UPLOADED -> indexing
|
|
125
|
+
(call-service llm embed { texts: [@entity.pending.description] } {
|
|
126
|
+
emit: { failure: STEP_FAILED, success: EMBEDDED }
|
|
127
|
+
})
|
|
128
|
+
STEP_FAILED -> ready
|
|
129
|
+
(emit WRITE_FAILED { name: @entity.pending.name, error: ?error })
|
|
130
|
+
(render-ui toast { message: ?error, type: alert, variant: warning })
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
state indexing {
|
|
134
|
+
INIT -> ready
|
|
135
|
+
EMBEDDED -> indexing when (> (array/len ?embeddings) 0)
|
|
136
|
+
(persist create PoolEntry {
|
|
137
|
+
pool: @config.poolName
|
|
138
|
+
behavior: (object/get @entity.pending.value behavior)
|
|
139
|
+
value: @entity.pending.value
|
|
140
|
+
name: @entity.pending.name
|
|
141
|
+
storageKey: @entity.pending.key
|
|
142
|
+
kind: @entity.pending.kind
|
|
143
|
+
topic: @entity.pending.topic
|
|
144
|
+
fields: @entity.pending.fields
|
|
145
|
+
description: @entity.pending.description
|
|
146
|
+
vector: (array/first ?embeddings)
|
|
147
|
+
createdAt: @now
|
|
148
|
+
} {
|
|
149
|
+
emit: { failure: STEP_FAILED, success: POOL_WRITTEN }
|
|
150
|
+
})
|
|
151
|
+
EMBEDDED -> ready when (= (array/len ?embeddings) 0)
|
|
152
|
+
(emit WRITE_FAILED { name: @entity.pending.name, error: "The model returned no embedding" })
|
|
153
|
+
(render-ui toast { message: "The model returned no embedding", type: alert, variant: warning })
|
|
154
|
+
POOL_WRITTEN -> ready
|
|
155
|
+
STEP_FAILED -> ready
|
|
156
|
+
(emit WRITE_FAILED { name: @entity.pending.name, error: ?error })
|
|
157
|
+
(render-ui toast { message: ?error, type: alert, variant: warning })
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
config {
|
|
161
|
+
poolName : string = @config.pool
|
|
162
|
+
@label "Pool name"
|
|
163
|
+
@tier "domain"
|
|
164
|
+
allowedKinds : [string] = @config.kinds
|
|
165
|
+
@label "Kinds of behavior pooled"
|
|
166
|
+
@tier "domain"
|
|
167
|
+
bucketName : string = @config.bucket
|
|
168
|
+
@label "Storage bucket"
|
|
169
|
+
@tier "domain"
|
|
170
|
+
prefix : string = @config.keyPrefix
|
|
171
|
+
@label "Storage key prefix"
|
|
172
|
+
@tier "domain"
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
emits {
|
|
176
|
+
POOL_WRITTEN -> external
|
|
177
|
+
@description "The behavior was validated, kept and indexed — payload is the created PoolEntry row."
|
|
178
|
+
@tier "domain"
|
|
179
|
+
WRITE_FAILED -> external {
|
|
180
|
+
name : string
|
|
181
|
+
error : string!
|
|
182
|
+
}
|
|
183
|
+
@description "The behavior was not pooled (invalid program, unknown kind, storage or embedding failure); no entry was recorded."
|
|
184
|
+
@tier "domain"
|
|
185
|
+
SOURCED {
|
|
186
|
+
result : SExpr!
|
|
187
|
+
}
|
|
188
|
+
@tier "internal"
|
|
189
|
+
PRINTED {
|
|
190
|
+
result : string!
|
|
191
|
+
}
|
|
192
|
+
@tier "internal"
|
|
193
|
+
UPLOADED {
|
|
194
|
+
key : string
|
|
195
|
+
}
|
|
196
|
+
@tier "internal"
|
|
197
|
+
EMBEDDED {
|
|
198
|
+
embeddings : [[number]]!
|
|
199
|
+
}
|
|
200
|
+
@tier "internal"
|
|
201
|
+
STEP_FAILED {
|
|
202
|
+
error : string!
|
|
203
|
+
}
|
|
204
|
+
@tier "internal"
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
listens {
|
|
208
|
+
WRITE -> external {
|
|
209
|
+
value : behavior!
|
|
210
|
+
name : string!
|
|
211
|
+
kind : string!
|
|
212
|
+
topic : string
|
|
213
|
+
fields : Map string string
|
|
214
|
+
description : string!
|
|
215
|
+
}
|
|
216
|
+
@description "Pool a behavior that was just built and validated: its value, its name, its kind, what it is about, the extra fields its build wrote and the description its vector embeds."
|
|
217
|
+
@synonyms "pool, save generated, keep behavior"
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
trait AgentPoolSearch -> AgentPoolHost [lifecycle, instance] {
|
|
222
|
+
initial: ready
|
|
223
|
+
|
|
224
|
+
state ready {
|
|
225
|
+
INIT -> ready
|
|
226
|
+
SEARCH -> searching
|
|
227
|
+
(fetch PoolEntry {
|
|
228
|
+
filter: ["and", ["=", (object/get @entity pool), @config.poolName], ["=", (object/get @entity retired), false]]
|
|
229
|
+
emit: { failure: SEARCH_FAILED, success: ENTRIES_LOADED }
|
|
230
|
+
})
|
|
231
|
+
(set @entity.queryVector ?vector)
|
|
232
|
+
(set @entity.queryKinds (if (== ?kinds null) [] ?kinds))
|
|
233
|
+
(set @entity.queryExclude (if (== ?exclude null) [] ?exclude))
|
|
234
|
+
(set @entity.queryTake (if (== ?take null) 10 ?take))
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
state searching {
|
|
238
|
+
INIT -> ready
|
|
239
|
+
ENTRIES_LOADED -> ready
|
|
240
|
+
(emit POOL_FOUND { hits: (array/take (array/sort (array/map (array/filter ?data (fn e (and (or (= (array/len @entity.queryKinds) 0) (array/includes @entity.queryKinds (object/get @e kind ""))) (not (array/includes @entity.queryExclude (object/get @e behavior "")))))) (fn e { id: (object/get @e id), behavior: (object/get @e behavior ""), value: (object/get @e value), name: (object/get @e name ""), kind: (object/get @e kind ""), topic: (object/get @e topic ""), fields: (object/get @e fields {}), description: (object/get @e description ""), score: (+ (array/cosine (object/get @e vector []) @entity.queryVector) (* @config.weight (/ (- (+ (object/get @e likes 0) (object/get @e right 0)) (+ (object/get @e hides 0) (object/get @e wrong 0))) (+ 1 (object/get @e plays 0))))) })) score desc) @entity.queryTake) })
|
|
241
|
+
SEARCH_FAILED -> ready
|
|
242
|
+
(emit POOL_FOUND { hits: [] })
|
|
243
|
+
(render-ui toast { message: ?error, type: alert, variant: warning })
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
config {
|
|
247
|
+
poolName : string = @config.pool
|
|
248
|
+
@label "Pool name"
|
|
249
|
+
@tier "domain"
|
|
250
|
+
weight : number = @config.qualityWeight
|
|
251
|
+
@label "Quality weight"
|
|
252
|
+
@tier "policy"
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
emits {
|
|
256
|
+
POOL_FOUND -> external {
|
|
257
|
+
hits : [PoolHit]!
|
|
258
|
+
}
|
|
259
|
+
@description "The pool's best entries for the search, best first; empty when nothing fits or the pool could not be read."
|
|
260
|
+
@tier "domain"
|
|
261
|
+
ENTRIES_LOADED {
|
|
262
|
+
data : [PoolEntry]!
|
|
263
|
+
}
|
|
264
|
+
@tier "internal"
|
|
265
|
+
SEARCH_FAILED {
|
|
266
|
+
error : string!
|
|
267
|
+
}
|
|
268
|
+
@tier "internal"
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
listens {
|
|
272
|
+
SEARCH -> external {
|
|
273
|
+
vector : [number]!
|
|
274
|
+
kinds : [string]
|
|
275
|
+
exclude : [string]
|
|
276
|
+
take : number
|
|
277
|
+
}
|
|
278
|
+
@description "Rank this pool's live entries by meaning against the vector (an embedding of what is wanted): kinds narrows the kinds served, exclude lists behaviors already used, take caps the hits."
|
|
279
|
+
@synonyms "find in pool, retrieve, search pool"
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
trait AgentPoolSignal -> AgentPoolHost [lifecycle, instance] {
|
|
284
|
+
initial: ready
|
|
285
|
+
|
|
286
|
+
state ready {
|
|
287
|
+
INIT -> ready
|
|
288
|
+
SIGNAL -> counting when (array/includes ["play", "like", "hide", "right", "wrong"] ?signal)
|
|
289
|
+
(set @entity.signalOf ?signal)
|
|
290
|
+
(fetch PoolEntry {
|
|
291
|
+
id: ?id
|
|
292
|
+
emit: { failure: SIGNAL_FAILED, success: ENTRY_LOADED }
|
|
293
|
+
})
|
|
294
|
+
SIGNAL -> ready when (not (array/includes ["play", "like", "hide", "right", "wrong"] ?signal))
|
|
295
|
+
(emit SIGNAL_REFUSED { reason: (str/concat "Unknown signal \"" ?signal "\"") })
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
state counting {
|
|
299
|
+
INIT -> ready
|
|
300
|
+
ENTRY_LOADED -> ready when (!= ?data null)
|
|
301
|
+
(let ((e ?data))
|
|
302
|
+
(let ((plays (+ (object/get @e plays 0) (if (= @entity.signalOf "play") 1 0))) (bad (+ (+ (object/get @e hides 0) (object/get @e wrong 0)) (if (or (= @entity.signalOf "hide") (= @entity.signalOf "wrong")) 1 0))))
|
|
303
|
+
(persist update PoolEntry {
|
|
304
|
+
id: (object/get @e id)
|
|
305
|
+
plays: @plays
|
|
306
|
+
likes: (+ (object/get @e likes 0) (if (= @entity.signalOf "like") 1 0))
|
|
307
|
+
hides: (+ (object/get @e hides 0) (if (= @entity.signalOf "hide") 1 0))
|
|
308
|
+
right: (+ (object/get @e right 0) (if (= @entity.signalOf "right") 1 0))
|
|
309
|
+
wrong: (+ (object/get @e wrong 0) (if (= @entity.signalOf "wrong") 1 0))
|
|
310
|
+
retired: (and (>= @plays @config.minPlays) (>= (/ @bad (math/max @plays 1)) @config.ratio))
|
|
311
|
+
})))
|
|
312
|
+
ENTRY_LOADED -> ready when (== ?data null)
|
|
313
|
+
(emit SIGNAL_REFUSED { reason: "No such pool entry" })
|
|
314
|
+
SIGNAL_FAILED -> ready
|
|
315
|
+
(emit SIGNAL_REFUSED { reason: ?error })
|
|
316
|
+
(render-ui toast { message: ?error, type: alert, variant: warning })
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
config {
|
|
320
|
+
minPlays : number = @config.retireAfter
|
|
321
|
+
@label "Plays before an entry can be retired"
|
|
322
|
+
@tier "policy"
|
|
323
|
+
ratio : number = @config.retireRatio
|
|
324
|
+
@label "Share of hides and wrong answers that retires an entry"
|
|
325
|
+
@tier "policy"
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
emits {
|
|
329
|
+
SIGNAL_REFUSED -> external {
|
|
330
|
+
reason : string!
|
|
331
|
+
}
|
|
332
|
+
@description "The signal was not counted (unknown signal, unknown entry, or the pool could not be read)."
|
|
333
|
+
@tier "domain"
|
|
334
|
+
ENTRY_LOADED {
|
|
335
|
+
data : PoolEntry
|
|
336
|
+
}
|
|
337
|
+
@tier "internal"
|
|
338
|
+
SIGNAL_FAILED {
|
|
339
|
+
error : string!
|
|
340
|
+
}
|
|
341
|
+
@tier "internal"
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
listens {
|
|
345
|
+
SIGNAL -> external {
|
|
346
|
+
id : string!
|
|
347
|
+
signal : string!
|
|
348
|
+
}
|
|
349
|
+
@description "Count one outcome on a pool entry: play (it was shown and used), like, hide, right or wrong (an answer it graded)."
|
|
350
|
+
@synonyms "record outcome, rate, feedback"
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
page "/agent-pool" as AgentPoolPage -> AgentPoolWriter, AgentPoolSearch, AgentPoolSignal
|
|
355
|
+
}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
app eval-agent-builder [
|
|
2
|
+
version: "1.0.0",
|
|
3
|
+
description: "Eval of std-agent-builder's ladder over std-agent-pool. RUN_CASE { index } builds the case's request through the ladder (the pool first, adopted at or above its threshold; otherwise a std learning instrument filled by the model with its knobs and a one-line hint), pools what was built, and records an EvalCase: the tier that served it, the behavior, the hint, the latency and the verdict: the tier the case expects, with a hint. Driven from outside, one case at a time."
|
|
4
|
+
]
|
|
5
|
+
;; @exposure internal
|
|
6
|
+
|
|
7
|
+
type EvalCaseSpec = { id : string!, request : string!, expectTier : string! }
|
|
8
|
+
|
|
9
|
+
uses Builder from "std/behaviors/std-agent-builder"
|
|
10
|
+
uses Pool from "std/behaviors/std-agent-pool"
|
|
11
|
+
|
|
12
|
+
orbital EvalPool = Pool.orbitals.AgentPoolOrbital {
|
|
13
|
+
config {
|
|
14
|
+
pool: "eval-agent-builder"
|
|
15
|
+
}
|
|
16
|
+
listens {
|
|
17
|
+
EvalBuilder.BuilderPipeline.POOL_SEARCH -> AgentPoolSearch.SEARCH
|
|
18
|
+
EvalRun.EvalDriver.POOL_WRITE -> AgentPoolWriter.WRITE
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
orbital EvalBuilder = Builder.orbitals.AgentBuilderOrbital {
|
|
23
|
+
traits {
|
|
24
|
+
BuilderPipeline {
|
|
25
|
+
config {
|
|
26
|
+
ladder: [
|
|
27
|
+
{ name: "pool", source: "pool", scope: [], threshold: 0.8, action: "adopt", take: 5 },
|
|
28
|
+
{ name: "instrument", source: "catalog", scope: ["almadar-std/ui/learning/atoms"], threshold: 0, action: "fill", take: 1 }
|
|
29
|
+
]
|
|
30
|
+
fillFields: [{ name: "hint", type: "string", required: true, description: "One short sentence, at most 12 words, telling the learner what to do with it." }]
|
|
31
|
+
fillEvent: EvalBuilder.EvalBuilderBuilderPipeline.FILL
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
listens {
|
|
36
|
+
EvalRun.EvalDriver.START_BUILD -> BuilderPipeline.START
|
|
37
|
+
EvalPool.AgentPoolSearch.POOL_FOUND -> BuilderPipeline.POOL_FOUND
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
orbital EvalRun {
|
|
42
|
+
entity EvalRunView [runtime] {
|
|
43
|
+
id : string!
|
|
44
|
+
index : number = 0
|
|
45
|
+
startedAt : number = 0
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
entity EvalCase [persistent: evalCases] {
|
|
49
|
+
id : string!
|
|
50
|
+
caseId : string = ""
|
|
51
|
+
request : string = ""
|
|
52
|
+
expectTier : string = ""
|
|
53
|
+
tier : string = ""
|
|
54
|
+
behavior : string = ""
|
|
55
|
+
hint : string = ""
|
|
56
|
+
latencyMs : number = 0
|
|
57
|
+
verdict : "pass" | "fail" = fail
|
|
58
|
+
error : string = ""
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
trait EvalDriver -> EvalRunView [lifecycle, instance] {
|
|
62
|
+
initial: idle
|
|
63
|
+
|
|
64
|
+
state idle {
|
|
65
|
+
INIT -> idle
|
|
66
|
+
(render-ui main { type: stack, direction: horizontal, gap: sm, children: [{ type: button, variant: ghost, label: "Cases", href: "/" }, { type: button, variant: ghost, label: "Builder", href: "/agent-builder" }, { type: button, variant: ghost, label: "Pool", href: "/agent-pool" }] })
|
|
67
|
+
RUN_CASE -> running when (< ?index (array/len @config.cases))
|
|
68
|
+
(set @entity.index ?index)
|
|
69
|
+
(set @entity.startedAt @now)
|
|
70
|
+
(emit START_BUILD { request: (object/get (array/nth @config.cases ?index) request), orbitalName: (str/concat "EvalCard" (object/get (array/nth @config.cases ?index) id)) })
|
|
71
|
+
RUN_CASE -> idle when (>= ?index (array/len @config.cases))
|
|
72
|
+
READ_CASES -> idle
|
|
73
|
+
(fetch EvalCase {
|
|
74
|
+
emit: { failure: CASES_FAILED, success: CASES_READ }
|
|
75
|
+
})
|
|
76
|
+
CASES_READ -> idle
|
|
77
|
+
CASES_FAILED -> idle
|
|
78
|
+
(render-ui toast { message: ?error, type: alert, variant: warning })
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
state running {
|
|
82
|
+
INIT -> idle
|
|
83
|
+
BUILD_DONE -> idle when (= ?tier "pool")
|
|
84
|
+
(persist create EvalCase { caseId: (object/get (array/nth @config.cases @entity.index) id), request: (object/get (array/nth @config.cases @entity.index) request), expectTier: (object/get (array/nth @config.cases @entity.index) expectTier), tier: ?tier, behavior: ?behavior, hint: (object/get ?fields hint ""), latencyMs: (- @now @entity.startedAt), verdict: (if (and (= ?tier (object/get (array/nth @config.cases @entity.index) expectTier)) (!= (object/get ?fields hint "") "")) pass fail) })
|
|
85
|
+
BUILD_DONE -> idle when (!= ?tier "pool")
|
|
86
|
+
(persist create EvalCase { caseId: (object/get (array/nth @config.cases @entity.index) id), request: (object/get (array/nth @config.cases @entity.index) request), expectTier: (object/get (array/nth @config.cases @entity.index) expectTier), tier: ?tier, behavior: ?behavior, hint: (object/get ?fields hint ""), latencyMs: (- @now @entity.startedAt), verdict: (if (and (= ?tier (object/get (array/nth @config.cases @entity.index) expectTier)) (!= (object/get ?fields hint "") "")) pass fail) })
|
|
87
|
+
(emit POOL_WRITE { value: ?value, name: ?orbitalName, kind: "instrument", topic: "", fields: ?fields, description: (object/get (array/nth @config.cases @entity.index) request) })
|
|
88
|
+
BUILD_FAILED_CASE -> idle
|
|
89
|
+
(persist create EvalCase { caseId: (object/get (array/nth @config.cases @entity.index) id), request: (object/get (array/nth @config.cases @entity.index) request), expectTier: (object/get (array/nth @config.cases @entity.index) expectTier), latencyMs: (- @now @entity.startedAt), verdict: fail, error: ?error })
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
config {
|
|
93
|
+
cases : [EvalCaseSpec] = [
|
|
94
|
+
{ id: "sort-animals", request: "A quick game sorting animals into mammals, birds and reptiles", expectTier: "instrument" },
|
|
95
|
+
{ id: "sort-animals-again", request: "Sort some animals into mammals, birds and reptiles", expectTier: "pool" },
|
|
96
|
+
{ id: "water-cycle", request: "Put the stages of the water cycle in order", expectTier: "instrument" },
|
|
97
|
+
{ id: "planets-order", request: "Line up the planets from the closest to the Sun to the farthest", expectTier: "instrument" },
|
|
98
|
+
{ id: "planets-again", request: "Order the planets by their distance from the Sun", expectTier: "pool" },
|
|
99
|
+
{ id: "fractions-compare", request: "Which fraction is bigger? Compare pairs of fractions", expectTier: "instrument" },
|
|
100
|
+
{ id: "plant-light", request: "Explore how light and water change how fast a plant grows", expectTier: "instrument" },
|
|
101
|
+
{ id: "times-tables", request: "Quick-fire times tables practice against the clock", expectTier: "instrument" },
|
|
102
|
+
{ id: "moon-distance", request: "Guess how far away the Moon is from Earth", expectTier: "instrument" },
|
|
103
|
+
{ id: "sort-foods", request: "Sort foods into fruits and vegetables", expectTier: "instrument" }
|
|
104
|
+
]
|
|
105
|
+
@label "Cases"
|
|
106
|
+
@tier "domain"
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
emits {
|
|
110
|
+
CASES_READ -> external {
|
|
111
|
+
data : [EvalCase]!
|
|
112
|
+
}
|
|
113
|
+
@description "Every case recorded so far."
|
|
114
|
+
@tier "domain"
|
|
115
|
+
CASES_FAILED {
|
|
116
|
+
error : string!
|
|
117
|
+
}
|
|
118
|
+
@tier "internal"
|
|
119
|
+
START_BUILD -> external {
|
|
120
|
+
request : string!
|
|
121
|
+
orbitalName : string!
|
|
122
|
+
}
|
|
123
|
+
@tier "internal"
|
|
124
|
+
POOL_WRITE -> external {
|
|
125
|
+
value : behavior!
|
|
126
|
+
name : string!
|
|
127
|
+
kind : string!
|
|
128
|
+
topic : string
|
|
129
|
+
fields : Map string string
|
|
130
|
+
description : string!
|
|
131
|
+
}
|
|
132
|
+
@tier "internal"
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
listens {
|
|
136
|
+
RUN_CASE -> external {
|
|
137
|
+
index : number!
|
|
138
|
+
}
|
|
139
|
+
@description "Run one case of the eval."
|
|
140
|
+
READ_CASES -> external {
|
|
141
|
+
}
|
|
142
|
+
@description "Read back every case recorded so far."
|
|
143
|
+
EvalBuilder.BuilderPipeline.BUILD_COMPLETE -> BUILD_DONE
|
|
144
|
+
BUILD_DONE {
|
|
145
|
+
orbitalName : string!
|
|
146
|
+
behavior : string!
|
|
147
|
+
value : behavior!
|
|
148
|
+
tier : string!
|
|
149
|
+
fields : Map string string
|
|
150
|
+
}
|
|
151
|
+
EvalBuilder.BuilderPipeline.BUILD_REJECTED -> BUILD_FAILED_CASE
|
|
152
|
+
BUILD_FAILED_CASE {
|
|
153
|
+
error : string!
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
page "/" as EvalAgentBuilderPage -> EvalDriver, EvalBuilderBuilderPipeline, EvalBuilderBuilderTools, EvalPoolAgentPoolWriter, EvalPoolAgentPoolSearch, EvalPoolAgentPoolSignal [initial]
|
|
159
|
+
}
|