@cueplusplus/ui 0.3.0 → 0.5.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/CHANGELOG.md +2229 -0
- package/dist/agent-runtime/_glyphs.js +43 -0
- package/dist/agent-runtime/branch-picker.d.ts +45 -0
- package/dist/agent-runtime/branch-picker.js +87 -0
- package/dist/agent-runtime/index.d.ts +4 -0
- package/dist/agent-runtime/index.js +4 -0
- package/dist/agent-runtime/tool-call-card.d.ts +69 -0
- package/dist/agent-runtime/tool-call-card.js +187 -0
- package/dist/agent-runtime/use-agent-thread.d.ts +164 -0
- package/dist/agent-runtime/use-agent-thread.js +251 -0
- package/dist/chat/index.d.ts +2 -2
- package/dist/chat/message-list.d.ts +6 -0
- package/dist/chat/message-list.js +35 -0
- package/dist/chrome/app-shell.d.ts +52 -2
- package/dist/chrome/app-shell.js +80 -8
- package/dist/chrome/index.d.ts +2 -2
- package/dist/configurator/_export.js +3 -2
- package/dist/configurator/_overrides.d.ts +1 -1
- package/dist/configurator/token-editor.js +4 -1
- package/dist/date/_segments.js +37 -2
- package/dist/elements/activity-graph.d.ts +40 -0
- package/dist/elements/activity-graph.js +81 -0
- package/dist/elements/agent-card.d.ts +49 -0
- package/dist/elements/agent-card.js +91 -0
- package/dist/elements/agent-handoff.d.ts +24 -0
- package/dist/elements/agent-handoff.js +53 -0
- package/dist/elements/agent-mode-badge.d.ts +72 -0
- package/dist/elements/agent-mode-badge.js +110 -0
- package/dist/elements/agent-plan.d.ts +24 -0
- package/dist/elements/agent-plan.js +74 -0
- package/dist/elements/agent-status.d.ts +29 -0
- package/dist/elements/agent-status.js +46 -0
- package/dist/elements/agent-surface.d.ts +65 -0
- package/dist/elements/agent-surface.js +68 -0
- package/dist/elements/animated-number.d.ts +86 -0
- package/dist/elements/animated-number.js +118 -0
- package/dist/elements/approval-card.d.ts +40 -0
- package/dist/elements/approval-card.js +78 -0
- package/dist/elements/artifact-card.d.ts +30 -0
- package/dist/elements/artifact-card.js +58 -0
- package/dist/elements/background-inbox.d.ts +39 -0
- package/dist/elements/background-inbox.js +60 -0
- package/dist/elements/canvas-split.d.ts +77 -0
- package/dist/elements/canvas-split.js +138 -0
- package/dist/elements/chart.d.ts +41 -0
- package/dist/elements/chart.js +117 -0
- package/dist/elements/chat-panel.d.ts +46 -0
- package/dist/elements/chat-panel.js +104 -0
- package/dist/elements/checkpoint-history.d.ts +31 -0
- package/dist/elements/checkpoint-history.js +65 -0
- package/dist/elements/clamp.d.ts +90 -0
- package/dist/elements/clamp.js +109 -0
- package/dist/elements/code-diff.d.ts +42 -0
- package/dist/elements/code-diff.js +69 -0
- package/dist/elements/code-runner.d.ts +38 -0
- package/dist/elements/code-runner.js +84 -0
- package/dist/elements/command-palette.d.ts +48 -0
- package/dist/elements/command-palette.js +129 -0
- package/dist/elements/compaction-row.d.ts +63 -0
- package/dist/elements/compaction-row.js +110 -0
- package/dist/elements/comparison-card.d.ts +47 -0
- package/dist/elements/comparison-card.js +69 -0
- package/dist/elements/composer.d.ts +274 -0
- package/dist/elements/composer.js +505 -0
- package/dist/elements/computer-use.d.ts +40 -0
- package/dist/elements/computer-use.js +92 -0
- package/dist/elements/confidence-marker.d.ts +39 -0
- package/dist/elements/confidence-marker.js +64 -0
- package/dist/elements/connection-state.d.ts +29 -0
- package/dist/elements/connection-state.js +66 -0
- package/dist/elements/context-breakdown.d.ts +30 -0
- package/dist/elements/context-breakdown.js +86 -0
- package/dist/elements/context-usage.d.ts +99 -0
- package/dist/elements/context-usage.js +225 -0
- package/dist/elements/conversation-search.d.ts +48 -0
- package/dist/elements/conversation-search.js +88 -0
- package/dist/elements/cost-meter.d.ts +33 -0
- package/dist/elements/cost-meter.js +75 -0
- package/dist/elements/data-table.d.ts +31 -0
- package/dist/elements/data-table.js +67 -0
- package/dist/elements/day-separator.d.ts +34 -0
- package/dist/elements/day-separator.js +50 -0
- package/dist/elements/diagram.d.ts +34 -0
- package/dist/elements/diagram.js +75 -0
- package/dist/elements/document-reference.d.ts +37 -0
- package/dist/elements/document-reference.js +66 -0
- package/dist/elements/draft-restore.d.ts +27 -0
- package/dist/elements/draft-restore.js +54 -0
- package/dist/elements/edit-message.d.ts +36 -0
- package/dist/elements/edit-message.js +77 -0
- package/dist/elements/elements.css +459 -0
- package/dist/elements/elicitation-form.d.ts +48 -0
- package/dist/elements/elicitation-form.js +106 -0
- package/dist/elements/empty-state.d.ts +52 -0
- package/dist/elements/empty-state.js +98 -0
- package/dist/elements/end-of-turn-summary.d.ts +60 -0
- package/dist/elements/end-of-turn-summary.js +75 -0
- package/dist/elements/error-state.d.ts +29 -0
- package/dist/elements/error-state.js +55 -0
- package/dist/elements/feedback-dialog.d.ts +36 -0
- package/dist/elements/feedback-dialog.js +81 -0
- package/dist/elements/file-tree.d.ts +45 -0
- package/dist/elements/file-tree.js +84 -0
- package/dist/elements/flow-graph.d.ts +45 -0
- package/dist/elements/flow-graph.js +78 -0
- package/dist/elements/generative/chart.js +200 -0
- package/dist/elements/generative/faults.js +111 -0
- package/dist/elements/generative/icons.d.ts +41 -0
- package/dist/elements/generative/icons.js +190 -0
- package/dist/elements/generative/intrinsics.js +483 -0
- package/dist/elements/generative/spec.d.ts +110 -0
- package/dist/elements/generative/spec.js +366 -0
- package/dist/elements/generative.css +1145 -0
- package/dist/elements/generative.d.ts +144 -0
- package/dist/elements/generative.js +126 -0
- package/dist/elements/guardrail-notice.d.ts +29 -0
- package/dist/elements/guardrail-notice.js +63 -0
- package/dist/elements/image-generation.d.ts +18 -0
- package/dist/elements/image-generation.js +64 -0
- package/dist/elements/index.d.ts +116 -0
- package/dist/elements/index.js +115 -0
- package/dist/elements/inline-citation.d.ts +43 -0
- package/dist/elements/inline-citation.js +93 -0
- package/dist/elements/job-progress.d.ts +49 -0
- package/dist/elements/job-progress.js +74 -0
- package/dist/elements/launcher-bubble.d.ts +34 -0
- package/dist/elements/launcher-bubble.js +72 -0
- package/dist/elements/live-region-announcer.d.ts +130 -0
- package/dist/elements/live-region-announcer.js +230 -0
- package/dist/elements/loading-state.d.ts +27 -0
- package/dist/elements/loading-state.js +36 -0
- package/dist/elements/map-answer.d.ts +38 -0
- package/dist/elements/map-answer.js +93 -0
- package/dist/elements/markdown.d.ts +131 -0
- package/dist/elements/markdown.js +528 -0
- package/dist/elements/math-block.d.ts +51 -0
- package/dist/elements/math-block.js +70 -0
- package/dist/elements/mcp-server-panel.d.ts +41 -0
- package/dist/elements/mcp-server-panel.js +115 -0
- package/dist/elements/memory-chips.d.ts +30 -0
- package/dist/elements/memory-chips.js +43 -0
- package/dist/elements/message-actions.d.ts +38 -0
- package/dist/elements/message-actions.js +71 -0
- package/dist/elements/message-attachment.d.ts +48 -0
- package/dist/elements/message-attachment.js +63 -0
- package/dist/elements/message-branches.d.ts +25 -0
- package/dist/elements/message-branches.js +65 -0
- package/dist/elements/message-pair.d.ts +33 -0
- package/dist/elements/message-pair.js +65 -0
- package/dist/elements/message-queue.d.ts +31 -0
- package/dist/elements/message-queue.js +80 -0
- package/dist/elements/message-timing.d.ts +33 -0
- package/dist/elements/message-timing.js +37 -0
- package/dist/elements/mobile-composer.d.ts +44 -0
- package/dist/elements/mobile-composer.js +88 -0
- package/dist/elements/model-picker.d.ts +38 -0
- package/dist/elements/model-picker.js +69 -0
- package/dist/elements/number-ticker.d.ts +18 -0
- package/dist/elements/number-ticker.js +47 -0
- package/dist/elements/onboarding.d.ts +30 -0
- package/dist/elements/onboarding.js +75 -0
- package/dist/elements/permission-grant.d.ts +35 -0
- package/dist/elements/permission-grant.js +86 -0
- package/dist/elements/permission-scopes.d.ts +215 -0
- package/dist/elements/permission-scopes.js +249 -0
- package/dist/elements/prompt-library.d.ts +43 -0
- package/dist/elements/prompt-library.js +117 -0
- package/dist/elements/queue-dock.d.ts +101 -0
- package/dist/elements/queue-dock.js +132 -0
- package/dist/elements/quota-banner.d.ts +26 -0
- package/dist/elements/quota-banner.js +66 -0
- package/dist/elements/quote-reply.d.ts +44 -0
- package/dist/elements/quote-reply.js +79 -0
- package/dist/elements/range.d.ts +29 -0
- package/dist/elements/range.js +45 -0
- package/dist/elements/read-aloud.d.ts +45 -0
- package/dist/elements/read-aloud.js +75 -0
- package/dist/elements/reasoning-effort.d.ts +36 -0
- package/dist/elements/reasoning-effort.js +67 -0
- package/dist/elements/reasoning-panel.d.ts +46 -0
- package/dist/elements/reasoning-panel.js +75 -0
- package/dist/elements/recommendation-card.d.ts +45 -0
- package/dist/elements/recommendation-card.js +83 -0
- package/dist/elements/regenerate-menu.d.ts +45 -0
- package/dist/elements/regenerate-menu.js +51 -0
- package/dist/elements/replay.d.ts +217 -0
- package/dist/elements/replay.js +498 -0
- package/dist/elements/research-report.d.ts +38 -0
- package/dist/elements/research-report.js +69 -0
- package/dist/elements/retrieval-chunks.d.ts +43 -0
- package/dist/elements/retrieval-chunks.js +81 -0
- package/dist/elements/revert-dock.d.ts +159 -0
- package/dist/elements/revert-dock.js +327 -0
- package/dist/elements/reviewable-diff.d.ts +45 -0
- package/dist/elements/reviewable-diff.js +110 -0
- package/dist/elements/risk-badge.d.ts +52 -0
- package/dist/elements/risk-badge.js +91 -0
- package/dist/elements/schedule-card.d.ts +42 -0
- package/dist/elements/schedule-card.js +90 -0
- package/dist/elements/score-breakdown.d.ts +47 -0
- package/dist/elements/score-breakdown.js +82 -0
- package/dist/elements/scroll-anchor.d.ts +32 -0
- package/dist/elements/scroll-anchor.js +121 -0
- package/dist/elements/settings-panel.d.ts +52 -0
- package/dist/elements/settings-panel.js +107 -0
- package/dist/elements/shared-conversation.d.ts +39 -0
- package/dist/elements/shared-conversation.js +68 -0
- package/dist/elements/sources.d.ts +33 -0
- package/dist/elements/sources.js +61 -0
- package/dist/elements/speaker-identity.d.ts +32 -0
- package/dist/elements/speaker-identity.js +51 -0
- package/dist/elements/spec-sheet.d.ts +31 -0
- package/dist/elements/spec-sheet.js +45 -0
- package/dist/elements/stopped-run.d.ts +22 -0
- package/dist/elements/stopped-run.js +50 -0
- package/dist/elements/streaming-text.d.ts +31 -0
- package/dist/elements/streaming-text.js +45 -0
- package/dist/elements/subagent-list.d.ts +37 -0
- package/dist/elements/subagent-list.js +79 -0
- package/dist/elements/suggestions.d.ts +30 -0
- package/dist/elements/suggestions.js +36 -0
- package/dist/elements/surfaces.d.ts +85 -0
- package/dist/elements/surfaces.js +107 -0
- package/dist/elements/tail-status.d.ts +131 -0
- package/dist/elements/tail-status.js +94 -0
- package/dist/elements/terminal-block.d.ts +29 -0
- package/dist/elements/terminal-block.js +54 -0
- package/dist/elements/thinking-indicator.d.ts +18 -0
- package/dist/elements/thinking-indicator.js +36 -0
- package/dist/elements/thread-list.d.ts +35 -0
- package/dist/elements/thread-list.js +68 -0
- package/dist/elements/thread-search.d.ts +42 -0
- package/dist/elements/thread-search.js +99 -0
- package/dist/elements/timeline.d.ts +37 -0
- package/dist/elements/timeline.js +46 -0
- package/dist/elements/todo-list.d.ts +42 -0
- package/dist/elements/todo-list.js +59 -0
- package/dist/elements/tool-call.d.ts +41 -0
- package/dist/elements/tool-call.js +85 -0
- package/dist/elements/tool-error.d.ts +39 -0
- package/dist/elements/tool-error.js +76 -0
- package/dist/elements/tool-group.d.ts +45 -0
- package/dist/elements/tool-group.js +71 -0
- package/dist/elements/tool-timeline.d.ts +65 -0
- package/dist/elements/tool-timeline.js +88 -0
- package/dist/elements/trace-waterfall.d.ts +37 -0
- package/dist/elements/trace-waterfall.js +69 -0
- package/dist/elements/transcript-rules.d.ts +67 -0
- package/dist/elements/transcript-rules.js +95 -0
- package/dist/elements/turn-footer.d.ts +74 -0
- package/dist/elements/turn-footer.js +101 -0
- package/dist/elements/typing-indicator.d.ts +16 -0
- package/dist/elements/typing-indicator.js +51 -0
- package/dist/elements/verdict-row.d.ts +89 -0
- package/dist/elements/verdict-row.js +150 -0
- package/dist/elements/vocabulary.d.ts +612 -0
- package/dist/elements/vocabulary.js +611 -0
- package/dist/elements/voice-conversation.d.ts +49 -0
- package/dist/elements/voice-conversation.js +123 -0
- package/dist/elements/web-preview.d.ts +32 -0
- package/dist/elements/web-preview.js +66 -0
- package/dist/elements/web-search.d.ts +37 -0
- package/dist/elements/web-search.js +66 -0
- package/dist/elements/work-collapse.d.ts +103 -0
- package/dist/elements/work-collapse.js +131 -0
- package/dist/icons/containers.d.ts +89 -0
- package/dist/icons/containers.js +295 -0
- package/dist/icons/index.d.ts +2 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.js +2 -1
- package/dist/instruments/two-step-button.js +25 -6
- package/dist/layout/sidebar.d.ts +19 -1
- package/dist/layout/sidebar.js +19 -1
- package/dist/primitives/button.js +11 -1
- package/dist/primitives/chip.d.ts +35 -9
- package/dist/primitives/chip.js +97 -11
- package/dist/system/agent-skin.d.ts +27 -0
- package/dist/system/agent-skin.js +20 -0
- package/dist/system/portal.d.ts +5 -3
- package/dist/system/portal.js +19 -5
- package/dist/system/theme-provider.js +54 -9
- package/dist/system/use-density.d.ts +9 -0
- package/dist/system/use-density.js +9 -0
- package/dist/system/use-isomorphic-layout-effect.js +19 -1
- package/dist/theming/_presets.d.ts +1 -1
- package/dist/theming/_presets.js +71 -8
- package/dist/theming/contrast.d.ts +16 -4
- package/dist/theming/contrast.js +33 -6
- package/dist/theming/create-theme.d.ts +6 -2
- package/dist/theming/create-theme.js +32 -5
- package/dist/theming/serialize.d.ts +10 -1
- package/dist/theming/serialize.js +62 -8
- package/manifest/components/activity-graph.json +88 -0
- package/manifest/components/agent-card.json +120 -0
- package/manifest/components/agent-handoff.json +87 -0
- package/manifest/components/agent-mode-badge.json +84 -0
- package/manifest/components/agent-plan.json +67 -0
- package/manifest/components/agent-status.json +73 -0
- package/manifest/components/agent-surface.json +78 -0
- package/manifest/components/alert-dialog.json +1 -1
- package/manifest/components/animated-number.json +67 -0
- package/manifest/components/app-shell.json +99 -7
- package/manifest/components/approval-card.json +106 -0
- package/manifest/components/artifact-card.json +81 -0
- package/manifest/components/audience-icon.json +52 -0
- package/manifest/components/background-inbox.json +71 -0
- package/manifest/components/branch-picker.json +124 -0
- package/manifest/components/button.json +1 -0
- package/manifest/components/canvas-split-body.json +62 -0
- package/manifest/components/canvas-split-document.json +54 -0
- package/manifest/components/canvas-split-header.json +83 -0
- package/manifest/components/canvas-split-line.json +62 -0
- package/manifest/components/canvas-split-message.json +62 -0
- package/manifest/components/canvas-split-thread.json +54 -0
- package/manifest/components/canvas-split.json +60 -0
- package/manifest/components/catalogue-icon.json +52 -0
- package/manifest/components/channel-beta-icon.json +52 -0
- package/manifest/components/channel-released-icon.json +52 -0
- package/manifest/components/chart.json +93 -0
- package/manifest/components/chat-empty-state.json +55 -0
- package/manifest/components/chat-panel-assistant-message.json +51 -0
- package/manifest/components/chat-panel-composer.json +66 -0
- package/manifest/components/chat-panel-messages.json +51 -0
- package/manifest/components/chat-panel-typing.json +51 -0
- package/manifest/components/chat-panel-user-message.json +51 -0
- package/manifest/components/chat-panel.json +57 -0
- package/manifest/components/checkpoint-history.json +80 -0
- package/manifest/components/chip.json +24 -12
- package/manifest/components/clamp.json +102 -0
- package/manifest/components/cli-tool-icon.json +52 -0
- package/manifest/components/code-diff.json +87 -0
- package/manifest/components/code-runner.json +97 -0
- package/manifest/components/compaction-row.json +100 -0
- package/manifest/components/comparison-card.json +83 -0
- package/manifest/components/composer-actions.json +65 -0
- package/manifest/components/composer-attach-button.json +65 -0
- package/manifest/components/composer-attachment-chip.json +75 -0
- package/manifest/components/composer-attachments.json +60 -0
- package/manifest/components/composer-bar.json +73 -0
- package/manifest/components/composer-command-item.json +79 -0
- package/manifest/components/composer-context.json +67 -0
- package/manifest/components/composer-input.json +73 -0
- package/manifest/components/composer-menu-item.json +72 -0
- package/manifest/components/composer-menu.json +79 -0
- package/manifest/components/composer-model-item.json +75 -0
- package/manifest/components/composer-model-trigger.json +75 -0
- package/manifest/components/composer-person-item.json +79 -0
- package/manifest/components/composer-send.json +80 -0
- package/manifest/components/composer-toolbar.json +65 -0
- package/manifest/components/composer-voice-button.json +68 -0
- package/manifest/components/composer-voice.json +75 -0
- package/manifest/components/computer-use.json +84 -0
- package/manifest/components/confidence-marker.json +74 -0
- package/manifest/components/connection-state.json +84 -0
- package/manifest/components/context-breakdown.json +65 -0
- package/manifest/components/context-usage.json +85 -0
- package/manifest/components/conversation-search.json +92 -0
- package/manifest/components/cost-meter.json +74 -0
- package/manifest/components/cue-portal-frame.json +1 -1
- package/manifest/components/day-separator.json +58 -0
- package/manifest/components/delegation-card.json +1 -1
- package/manifest/components/density.json +1 -1
- package/manifest/components/diagram.json +100 -0
- package/manifest/components/document-reference.json +90 -0
- package/manifest/components/draft-restore.json +82 -0
- package/manifest/components/drawer.json +1 -1
- package/manifest/components/dropdown-menu.json +1 -1
- package/manifest/components/edit-message.json +105 -0
- package/manifest/components/elements-command-palette.json +100 -0
- package/manifest/components/elements-composer.json +71 -0
- package/manifest/components/elements-data-table.json +68 -0
- package/manifest/components/elements-timeline.json +69 -0
- package/manifest/components/elicitation-form.json +103 -0
- package/manifest/components/empty-state-composer.json +64 -0
- package/manifest/components/empty-state-greeting.json +49 -0
- package/manifest/components/empty-state-suggestion.json +57 -0
- package/manifest/components/empty-state-suggestions.json +49 -0
- package/manifest/components/end-of-turn-summary.json +77 -0
- package/manifest/components/error-state.json +80 -0
- package/manifest/components/feedback-dialog.json +107 -0
- package/manifest/components/file-tree.json +83 -0
- package/manifest/components/flow-graph.json +75 -0
- package/manifest/components/folder-icon.json +52 -0
- package/manifest/components/frac.json +59 -0
- package/manifest/components/generation-loader.json +64 -0
- package/manifest/components/generative-ui.json +93 -0
- package/manifest/components/guardrail-notice.json +91 -0
- package/manifest/components/hover-card.json +1 -1
- package/manifest/components/image-generation.json +67 -0
- package/manifest/components/info-tip.json +1 -1
- package/manifest/components/inline-citation.json +77 -0
- package/manifest/components/job-progress.json +96 -0
- package/manifest/components/launcher-bubble.json +105 -0
- package/manifest/components/live-region-announcer.json +79 -0
- package/manifest/components/map-answer.json +83 -0
- package/manifest/components/markdown-text.json +94 -0
- package/manifest/components/math-block.json +74 -0
- package/manifest/components/mcp-server-icon.json +52 -0
- package/manifest/components/mcp-server-panel.json +87 -0
- package/manifest/components/memory-chips.json +65 -0
- package/manifest/components/message-actions.json +99 -0
- package/manifest/components/message-attachments.json +63 -0
- package/manifest/components/message-branches.json +71 -0
- package/manifest/components/message-list.json +1 -1
- package/manifest/components/message-pair.json +86 -0
- package/manifest/components/message-queue.json +74 -0
- package/manifest/components/message-timing.json +62 -0
- package/manifest/components/mobile-composer.json +126 -0
- package/manifest/components/model-picker.json +76 -0
- package/manifest/components/node-card.json +1 -1
- package/manifest/components/node-handle.json +1 -1
- package/manifest/components/number-ticker.json +61 -0
- package/manifest/components/onboarding.json +84 -0
- package/manifest/components/otp-field.json +7 -7
- package/manifest/components/permission-grant.json +92 -0
- package/manifest/components/permission-scopes.json +139 -0
- package/manifest/components/popover.json +1 -1
- package/manifest/components/prompt-library.json +99 -0
- package/manifest/components/queue-dock.json +110 -0
- package/manifest/components/quota-banner.json +94 -0
- package/manifest/components/quote-reply.json +105 -0
- package/manifest/components/read-aloud.json +111 -0
- package/manifest/components/reasoning-effort.json +81 -0
- package/manifest/components/reasoning-panel.json +108 -0
- package/manifest/components/recommendation-card.json +107 -0
- package/manifest/components/regenerate-menu.json +89 -0
- package/manifest/components/replay-player.json +102 -0
- package/manifest/components/research-report.json +76 -0
- package/manifest/components/retrieval-chunks.json +84 -0
- package/manifest/components/revert-dock.json +150 -0
- package/manifest/components/reviewable-diff.json +93 -0
- package/manifest/components/risk-badge.json +74 -0
- package/manifest/components/schedule-card.json +101 -0
- package/manifest/components/score-breakdown.json +91 -0
- package/manifest/components/scroll-anchor.json +72 -0
- package/manifest/components/scroll-area.json +7 -7
- package/manifest/components/search-input.json +7 -7
- package/manifest/components/segmented-control.json +21 -21
- package/manifest/components/settings-panel.json +118 -0
- package/manifest/components/shared-conversation.json +89 -0
- package/manifest/components/shimmer-label.json +59 -0
- package/manifest/components/skill-icon.json +52 -0
- package/manifest/components/sources.json +83 -0
- package/manifest/components/speaker-identity.json +61 -0
- package/manifest/components/spec-sheet.json +80 -0
- package/manifest/components/stack-icon.json +52 -0
- package/manifest/components/stacks-matrix-icon.json +52 -0
- package/manifest/components/stat.json +1 -1
- package/manifest/components/status-dot.json +1 -1
- package/manifest/components/stopped-run.json +81 -0
- package/manifest/components/streaming-text.json +71 -0
- package/manifest/components/sub.json +44 -0
- package/manifest/components/subagent-list.json +88 -0
- package/manifest/components/suggestions.json +84 -0
- package/manifest/components/sup.json +44 -0
- package/manifest/components/swap-label.json +71 -0
- package/manifest/components/tail-status.json +109 -0
- package/manifest/components/terminal-block.json +91 -0
- package/manifest/components/theme-provider.json +2 -2
- package/manifest/components/thinking-indicator.json +63 -0
- package/manifest/components/thread-list.json +76 -0
- package/manifest/components/thread-search.json +90 -0
- package/manifest/components/threshold-rail.json +2 -2
- package/manifest/components/time-boundary.json +62 -0
- package/manifest/components/timeline.json +1 -1
- package/manifest/components/todo-list.json +69 -0
- package/manifest/components/toggle-group.json +7 -7
- package/manifest/components/token-editor.json +1 -1
- package/manifest/components/tool-call-card.json +200 -0
- package/manifest/components/tool-call.json +119 -0
- package/manifest/components/tool-error.json +114 -0
- package/manifest/components/tool-group.json +83 -0
- package/manifest/components/tool-timeline.json +119 -0
- package/manifest/components/toolbar.json +7 -7
- package/manifest/components/tooltip.json +1 -1
- package/manifest/components/trace-waterfall.json +74 -0
- package/manifest/components/turn-footer.json +105 -0
- package/manifest/components/typing-indicator.json +53 -0
- package/manifest/components/unread-divider.json +55 -0
- package/manifest/components/usage-chart.json +1 -1
- package/manifest/components/verdict-row.json +91 -0
- package/manifest/components/voice-conversation.json +109 -0
- package/manifest/components/web-preview.json +87 -0
- package/manifest/components/web-search.json +92 -0
- package/manifest/components/work-collapse.json +102 -0
- package/manifest/manifest.json +2670 -33
- package/manifest/tokens.json +22 -1
- package/package.json +46 -4
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ToolCallCard",
|
|
3
|
+
"slug": "tool-call-card",
|
|
4
|
+
"group": "agent-runtime",
|
|
5
|
+
"importPath": "@cueplusplus/ui/agent-runtime",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "An LLM's own tool call, shown while it runs and after.\n\nThe two neighbours it is deliberately not: `AskBox` is a question put to a\nhuman and it waits for an answer; `DelegationCard` is another agent's work\nfolded into a lane. This is the model reaching for a tool by itself — nobody\nis being asked anything, and nothing downstream is another agent's turn. It\nborrows both their surfaces on purpose, so a transcript mixing all three\nreads as one family: the tool name and risk chip are `AskBox`'s, the status\nline and the disclosure are `DelegationCard`'s.\n\nArguments and results are rendered verbatim: there is no markdown or HTML\npath here on purpose. Both are untrusted text — half of it is the model's\nown output and the other half is whatever the tool returned — and a\ncomponent that quietly parsed them would make every consumer of this library\none prompt away from an injection. `args` is text you already formatted;\n`result` takes nodes, so a caller who wants rich output passes their own\nrenderer and owns that decision.\n\nThe body is mounted and unmounted rather than height-animated. A call's\nresult lands mid-render and its arguments grow while they stream, and\nanimating the height of something that changes size on its own is how a panel\nends up permanently mid-transition.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "tool",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"required": true,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "Name of the tool being called."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "args",
|
|
19
|
+
"type": "string",
|
|
20
|
+
"required": false,
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"description": "The call's arguments, rendered verbatim as preformatted text. Pass a string you already formatted — JSON, a command line. An empty string counts as absent."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "result",
|
|
26
|
+
"type": "ReactNode",
|
|
27
|
+
"required": false,
|
|
28
|
+
"defaultValue": null,
|
|
29
|
+
"description": "What the tool returned, rendered verbatim. A string is shown as text; pass your own renderer for rich output and own that decision. `null`, `false`, an empty string or an empty array count as absent."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "status",
|
|
33
|
+
"type": "\"done\" | \"working\" | \"failed\" | \"idle\"",
|
|
34
|
+
"required": false,
|
|
35
|
+
"defaultValue": null,
|
|
36
|
+
"description": "Where the call has got to. Omit to draw no status line at all."
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "activity",
|
|
40
|
+
"type": "ReactNode",
|
|
41
|
+
"required": false,
|
|
42
|
+
"defaultValue": null,
|
|
43
|
+
"description": "What the tool is doing right now. Shown beside the spinner while `working`, and as the text while `idle`."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "danger",
|
|
47
|
+
"type": "\"low\" | \"high\" | \"critical\"",
|
|
48
|
+
"required": false,
|
|
49
|
+
"defaultValue": null,
|
|
50
|
+
"description": "Risk rating for the call, chipped the way an AskBox approval is. Omit for a routine call."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "agent",
|
|
54
|
+
"type": "string",
|
|
55
|
+
"required": false,
|
|
56
|
+
"defaultValue": null,
|
|
57
|
+
"description": "Slug of the agent making the call, so the rail takes its colour. Named in assistive text as well as inked."
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "rootAgent",
|
|
61
|
+
"type": "string",
|
|
62
|
+
"required": false,
|
|
63
|
+
"defaultValue": null,
|
|
64
|
+
"description": "Slug of the orchestrator, so its calls take the theme accent."
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "open",
|
|
68
|
+
"type": "boolean",
|
|
69
|
+
"required": false,
|
|
70
|
+
"defaultValue": null,
|
|
71
|
+
"description": "Open state when controlled. Pass with `onOpenChange`."
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "defaultOpen",
|
|
75
|
+
"type": "boolean",
|
|
76
|
+
"required": false,
|
|
77
|
+
"defaultValue": null,
|
|
78
|
+
"description": "Initial open state. Defaults to `false`."
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"name": "onOpenChange",
|
|
82
|
+
"type": "((open: boolean) => void)",
|
|
83
|
+
"required": false,
|
|
84
|
+
"defaultValue": null,
|
|
85
|
+
"description": "Called with the state the card is asking to move to."
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "argsLabel",
|
|
89
|
+
"type": "ReactNode",
|
|
90
|
+
"required": false,
|
|
91
|
+
"defaultValue": "arguments",
|
|
92
|
+
"description": "Eyebrow over the arguments block. Defaults to `\"arguments\"`."
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"name": "resultLabel",
|
|
96
|
+
"type": "ReactNode",
|
|
97
|
+
"required": false,
|
|
98
|
+
"defaultValue": "result",
|
|
99
|
+
"description": "Eyebrow over the result block. Defaults to `\"result\"`."
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"name": "doneLabel",
|
|
103
|
+
"type": "ReactNode",
|
|
104
|
+
"required": false,
|
|
105
|
+
"defaultValue": "Completed",
|
|
106
|
+
"description": "What a finished call says. Defaults to `\"Completed\"`."
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"name": "failedLabel",
|
|
110
|
+
"type": "ReactNode",
|
|
111
|
+
"required": false,
|
|
112
|
+
"defaultValue": "Failed",
|
|
113
|
+
"description": "What a failed call says. Defaults to `\"Failed\"`."
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"name": "children",
|
|
117
|
+
"type": "ReactNode",
|
|
118
|
+
"required": false,
|
|
119
|
+
"defaultValue": null,
|
|
120
|
+
"description": "Extra detail under the result — an approval `AskBox`, a nested transcript."
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
"typeReferences": [
|
|
124
|
+
"Omit<React.ComponentPropsWithoutRef<\"div\">, \"title\">"
|
|
125
|
+
],
|
|
126
|
+
"subcomponents": [],
|
|
127
|
+
"parts": [],
|
|
128
|
+
"variants": {},
|
|
129
|
+
"defaultVariants": {},
|
|
130
|
+
"tokensUsed": [
|
|
131
|
+
"--cue-accent",
|
|
132
|
+
"--cue-border",
|
|
133
|
+
"--cue-danger",
|
|
134
|
+
"--cue-fg",
|
|
135
|
+
"--cue-fg-muted",
|
|
136
|
+
"--cue-fg-subtle",
|
|
137
|
+
"--cue-font-mono",
|
|
138
|
+
"--cue-icon-sm",
|
|
139
|
+
"--cue-ok",
|
|
140
|
+
"--cue-radius-control",
|
|
141
|
+
"--cue-space-2",
|
|
142
|
+
"--cue-space-3",
|
|
143
|
+
"--cue-space-4",
|
|
144
|
+
"--cue-space-5",
|
|
145
|
+
"--cue-text-micro",
|
|
146
|
+
"--cue-text-ui"
|
|
147
|
+
],
|
|
148
|
+
"summary": "The model's own tool call: name, risk chip, status in words, and the arguments and result behind a disclosure.",
|
|
149
|
+
"examples": [
|
|
150
|
+
{
|
|
151
|
+
"title": "Usage",
|
|
152
|
+
"code": "<ToolCallCard tool=\"read_file\" args={'{ \"path\": \"cue.json\" }'} status=\"working\" activity=\"reading 12 KB\" />",
|
|
153
|
+
"language": "tsx"
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
"status": "stable",
|
|
157
|
+
"url": "/docs/components/tool-call-card",
|
|
158
|
+
"mdUrl": "/docs/components/tool-call-card.md",
|
|
159
|
+
"jsonUrl": "/r/components/tool-call-card.json",
|
|
160
|
+
"whenToUse": [
|
|
161
|
+
"A model reaching for a tool mid-turn, inside the agent's `Message` or beside it.",
|
|
162
|
+
"A settled call in a replayed transcript, where the arguments and the result are the record.",
|
|
163
|
+
"Anywhere the reader needs the exact text a tool was sent and the exact text it returned."
|
|
164
|
+
],
|
|
165
|
+
"whenNotToUse": [
|
|
166
|
+
"A question put to a human that waits for an answer. Use `AskBox`.",
|
|
167
|
+
"Another agent's work folded into a lane. Use `DelegationCard`.",
|
|
168
|
+
"A call with nothing to show and no status. The card would be a name in a box."
|
|
169
|
+
],
|
|
170
|
+
"commonMistakes": [
|
|
171
|
+
"Parsing `args` or `result` as markdown. Both are untrusted text, and rendering them as markup is an injection.",
|
|
172
|
+
"Passing an empty string for `args` or `result` and expecting a disclosure. An empty string counts as absent, so the card draws no trigger.",
|
|
173
|
+
"Reaching for `status=\"idle\"` to mean nothing happened. It means the call is parked on a human.",
|
|
174
|
+
"Leaving `agent` off inside a multi-agent thread, which drops the rail back to the theme accent."
|
|
175
|
+
],
|
|
176
|
+
"specimens": [
|
|
177
|
+
{
|
|
178
|
+
"title": "useAgentThread / ToolCallCard / BranchPicker",
|
|
179
|
+
"group": "agent-runtime",
|
|
180
|
+
"components": [
|
|
181
|
+
"useAgentThread",
|
|
182
|
+
"ToolCallCard",
|
|
183
|
+
"BranchPicker"
|
|
184
|
+
],
|
|
185
|
+
"code": "<ScriptedThread />",
|
|
186
|
+
"note": "The hook reads an assistant-ui runtime and hands back the props the Chat group already takes: `busy`, `disabled`, `onSend` and `onStop` for the composer, `role`, `agent` and `pending` for each turn, `toolCalls` for the cards, `branch` and `switchBranch` for the stepper. No provider is mounted and no borrowed DOM is rendered, so every pixel here is this library's. The thread below plays a fixed script, because a docs page has no model behind it.",
|
|
187
|
+
"interaction": "the script streams once and stops on its own; Stop cancels it mid-sentence, Regenerate answers again under the same question, and the stepper that then appears walks the two answers."
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"title": "ToolCallCard",
|
|
191
|
+
"group": "agent-runtime",
|
|
192
|
+
"components": [
|
|
193
|
+
"ToolCallCard"
|
|
194
|
+
],
|
|
195
|
+
"code": "<Specimens>\n <Specimen label=\"working\">\n <ToolCallCard\n tool=\"dmx.patch\"\n status=\"working\"\n activity=\"resolving GDTF profiles\"\n agent=\"patcher\"\n className=\"w-[18rem]\"\n />\n </Specimen>\n <Specimen label=\"done\">\n <ToolCallCard\n tool=\"dmx.patch\"\n status=\"done\"\n agent=\"patcher\"\n args={'{\\n \"universe\": 3,\\n \"fixtures\": 6\\n}'}\n result={'{\\n \"patched\": 6,\\n \"channels\": \"1 to 48\"\\n}'}\n defaultOpen\n className=\"w-[18rem]\"\n />\n </Specimen>\n <Specimen label=\"failed\">\n <ToolCallCard\n tool=\"show.overwrite\"\n status=\"failed\"\n danger=\"critical\"\n agent=\"archivist\"\n className=\"w-[18rem]\"\n />\n </Specimen>\n <Specimen label=\"idle\">\n <ToolCallCard\n tool=\"rig.unpatch\"\n status=\"idle\"\n danger=\"high\"\n agent=\"patcher\"\n activity=\"waiting for an approval\"\n className=\"w-[18rem]\"\n >\n <span className=\"text-fg-subtle\">\n Nothing runs until somebody answers the AskBox above.\n </span>\n </ToolCallCard>\n </Specimen>\n</Specimens>",
|
|
196
|
+
"note": "The model's own tool call, shown while it runs and after. Not an `AskBox`, which is a question put to a human, and not a `DelegationCard`, which is another agent's work. Arguments and results are printed verbatim: both are untrusted text, and a card that parsed them would make every consumer one prompt away from an injection.",
|
|
197
|
+
"interaction": "the header is the disclosure when there is detail behind it, and a plain row when there is not; the status is spelled out as well as tinted."
|
|
198
|
+
}
|
|
199
|
+
]
|
|
200
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ToolCall",
|
|
3
|
+
"slug": "tool-call",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "One tool invocation with its request and result tucked behind a disclosure.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "label",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "Tool name shown on the collapsed trigger row."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "activeLabel",
|
|
21
|
+
"type": "string",
|
|
22
|
+
"required": true,
|
|
23
|
+
"defaultValue": null,
|
|
24
|
+
"description": "Verb shown with a shimmer while the tool is running, for example Searching the docs."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "query",
|
|
28
|
+
"type": "string",
|
|
29
|
+
"required": true,
|
|
30
|
+
"defaultValue": null,
|
|
31
|
+
"description": "Short chip next to the label summarizing the call target."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "request",
|
|
35
|
+
"type": "string",
|
|
36
|
+
"required": true,
|
|
37
|
+
"defaultValue": null,
|
|
38
|
+
"description": "Request payload shown inside the expanded disclosure."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "result",
|
|
42
|
+
"type": "string",
|
|
43
|
+
"required": true,
|
|
44
|
+
"defaultValue": null,
|
|
45
|
+
"description": "Result payload shown once the call is no longer running."
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "running",
|
|
49
|
+
"type": "boolean",
|
|
50
|
+
"required": true,
|
|
51
|
+
"defaultValue": null,
|
|
52
|
+
"description": "When true a spinner replaces the success check on the trigger."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"name": "open",
|
|
56
|
+
"type": "boolean",
|
|
57
|
+
"required": true,
|
|
58
|
+
"defaultValue": null,
|
|
59
|
+
"description": "Whether the request and result panel is expanded."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "onOpenChange",
|
|
63
|
+
"type": "(open: boolean) => void",
|
|
64
|
+
"required": true,
|
|
65
|
+
"defaultValue": null,
|
|
66
|
+
"description": "Called when the user expands or collapses the call."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "className",
|
|
70
|
+
"type": "string",
|
|
71
|
+
"required": false,
|
|
72
|
+
"defaultValue": null,
|
|
73
|
+
"description": "Extra classes merged onto the root."
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"typeReferences": [],
|
|
77
|
+
"subcomponents": [],
|
|
78
|
+
"parts": [],
|
|
79
|
+
"variants": {},
|
|
80
|
+
"defaultVariants": {},
|
|
81
|
+
"tokensUsed": [
|
|
82
|
+
"--cue-accent",
|
|
83
|
+
"--cue-fg",
|
|
84
|
+
"--cue-fg-muted",
|
|
85
|
+
"--cue-fg-subtle",
|
|
86
|
+
"--cue-font-mono",
|
|
87
|
+
"--cue-ok",
|
|
88
|
+
"--cue-radius-control",
|
|
89
|
+
"--cue-radius-overlay",
|
|
90
|
+
"--cue-surface-2",
|
|
91
|
+
"--cue-text-body",
|
|
92
|
+
"--cue-text-ui"
|
|
93
|
+
],
|
|
94
|
+
"summary": "One tool invocation with its request and result tucked behind a disclosure.",
|
|
95
|
+
"examples": [
|
|
96
|
+
{
|
|
97
|
+
"title": "Usage",
|
|
98
|
+
"code": "import { ToolCall } from \"@cueplusplus/ui/elements\";\n\n<ToolCall\n label=\"Searched\"\n activeLabel=\"Searching\"\n query=\"composer props\"\n request='{\"q\":\"composer\"}'\n result='{\"hits\":2}'\n running={false}\n open\n onOpenChange={setOpen}\n/>",
|
|
99
|
+
"language": "tsx"
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"status": "todo-docs",
|
|
103
|
+
"url": "/docs/components/tool-call",
|
|
104
|
+
"mdUrl": "/docs/components/tool-call.md",
|
|
105
|
+
"jsonUrl": "/r/components/tool-call.json",
|
|
106
|
+
"specimens": [
|
|
107
|
+
{
|
|
108
|
+
"title": "ToolCall",
|
|
109
|
+
"group": "elements",
|
|
110
|
+
"components": [
|
|
111
|
+
"ToolCall"
|
|
112
|
+
],
|
|
113
|
+
"code": "<Specimens>\n <Specimen label=\"running\" wide>\n <ToolCall\n label=\"Read the plot\"\n activeLabel=\"Reading the plot\"\n query=\"front-truss.gdtf\"\n request='{\"path\":\"plots/front-truss.gdtf\"}'\n result=\"\"\n running\n open={open[\"running\"] ?? false}\n onOpenChange={opener(\"running\")}\n />\n </Specimen>\n <Specimen label=\"settled, open\" wide>\n <ToolCall\n label=\"Read the plot\"\n activeLabel=\"Reading the plot\"\n query=\"front-truss.gdtf\"\n request='{\"path\":\"plots/front-truss.gdtf\"}'\n result=\"6 fixtures, Source Four 26°.\"\n running={false}\n open={open[\"settled\"] ?? false}\n onOpenChange={opener(\"settled\")}\n />\n </Specimen>\n <Specimen label=\"settled, collapsed\" wide>\n <ToolCall\n label=\"Wrote cue 1\"\n activeLabel=\"Writing cue 1\"\n query=\"house-to-half\"\n request='{\"cue\":1,\"fade\":3}'\n result=\"Cue 1 holds at 3.0s.\"\n running={false}\n open={open[\"collapsed\"] ?? false}\n onOpenChange={opener(\"collapsed\")}\n />\n </Specimen>\n</Specimens>",
|
|
114
|
+
"note": "One invocation, with the request and the result behind a disclosure. While it runs the verb shimmers and the row is wider; when it settles the label swaps, the box shrinks to fit and a check lands. Both payloads are printed as text, never parsed.",
|
|
115
|
+
"interaction": "the whole trigger row is the toggle, and it takes focus. The check fades in rather than appearing, so a settled call reads as having settled."
|
|
116
|
+
}
|
|
117
|
+
],
|
|
118
|
+
"todo": true
|
|
119
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ToolError",
|
|
3
|
+
"slug": "tool-error",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "One call failed. The error, the attempt count, and a retry that doesn't restart the\nturn.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "name",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "Tool that failed."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "target",
|
|
21
|
+
"type": "string",
|
|
22
|
+
"required": true,
|
|
23
|
+
"defaultValue": null,
|
|
24
|
+
"description": "What it was called against."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "message",
|
|
28
|
+
"type": "string",
|
|
29
|
+
"required": true,
|
|
30
|
+
"defaultValue": null,
|
|
31
|
+
"description": "The raw error, shown in mono rather than reworded."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "attempt",
|
|
35
|
+
"type": "number",
|
|
36
|
+
"required": true,
|
|
37
|
+
"defaultValue": null,
|
|
38
|
+
"description": "Which attempt this was."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "maxAttempts",
|
|
42
|
+
"type": "number",
|
|
43
|
+
"required": true,
|
|
44
|
+
"defaultValue": null,
|
|
45
|
+
"description": "How many the runtime will make."
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "retrying",
|
|
49
|
+
"type": "boolean",
|
|
50
|
+
"required": true,
|
|
51
|
+
"defaultValue": null,
|
|
52
|
+
"description": "Swaps the retry control for a spinner and disables it."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"name": "onRetry",
|
|
56
|
+
"type": "(() => void)",
|
|
57
|
+
"required": false,
|
|
58
|
+
"defaultValue": null,
|
|
59
|
+
"description": "Called to run the call again without restarting the turn."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "onSkip",
|
|
63
|
+
"type": "(() => void)",
|
|
64
|
+
"required": false,
|
|
65
|
+
"defaultValue": null,
|
|
66
|
+
"description": "Called to give up on this call and let the turn continue."
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"typeReferences": [
|
|
70
|
+
"Omit<\n ComponentProps<\"div\">,\n | \"children\"\n | \"name\"\n | \"target\"\n | \"message\"\n | \"attempt\"\n | \"maxAttempts\"\n | \"retrying\"\n | \"onRetry\"\n | \"onSkip\"\n> & {\n /** Tool that failed. */\n name: string;\n /** What it was called against. */\n target: string;\n /** The raw error, shown in mono rather than reworded. */\n message: string;\n /** Which attempt this was. */\n attempt: number;\n /** How many the runtime will make. */\n maxAttempts: number;\n /** Swaps the retry control for a spinner and disables it. */\n retrying: boolean;\n /** Called to run the call again without restarting the turn. */\n onRetry?: () => void;\n /** Called to give up on this call and let the turn continue. */\n onSkip?: () => void;\n}"
|
|
71
|
+
],
|
|
72
|
+
"subcomponents": [],
|
|
73
|
+
"parts": [],
|
|
74
|
+
"variants": {},
|
|
75
|
+
"defaultVariants": {},
|
|
76
|
+
"tokensUsed": [
|
|
77
|
+
"--cue-danger",
|
|
78
|
+
"--cue-fg",
|
|
79
|
+
"--cue-fg-muted",
|
|
80
|
+
"--cue-fg-subtle",
|
|
81
|
+
"--cue-font-mono",
|
|
82
|
+
"--cue-radius-overlay",
|
|
83
|
+
"--cue-radius-surface",
|
|
84
|
+
"--cue-surface-2",
|
|
85
|
+
"--cue-text-body",
|
|
86
|
+
"--cue-text-label",
|
|
87
|
+
"--cue-text-ui"
|
|
88
|
+
],
|
|
89
|
+
"summary": "One call failed.",
|
|
90
|
+
"examples": [
|
|
91
|
+
{
|
|
92
|
+
"title": "Usage",
|
|
93
|
+
"code": "import { ToolError } from \"@cueplusplus/ui/elements\";\n\n<ToolError\n name=\"fetch\"\n target=\"https://api.example.com/v1/issues\"\n message=\"ETIMEDOUT after 30000ms\"\n attempt={2}\n maxAttempts={3}\n retrying={false}\n onRetry={retry}\n/>",
|
|
94
|
+
"language": "tsx"
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
"status": "todo-docs",
|
|
98
|
+
"url": "/docs/components/tool-error",
|
|
99
|
+
"mdUrl": "/docs/components/tool-error.md",
|
|
100
|
+
"jsonUrl": "/r/components/tool-error.json",
|
|
101
|
+
"specimens": [
|
|
102
|
+
{
|
|
103
|
+
"title": "ToolError",
|
|
104
|
+
"group": "elements",
|
|
105
|
+
"components": [
|
|
106
|
+
"ToolError"
|
|
107
|
+
],
|
|
108
|
+
"code": "<Specimens>\n <Specimen label=\"failed\" wide>\n <ToolError\n name=\"artnet.probe\"\n target=\"10.0.0.255\"\n message=\"ETIMEDOUT after 30000ms\"\n attempt={attempt}\n maxAttempts={3}\n retrying={false}\n onRetry={() => setAttempt((count) => Math.min(3, count + 1))}\n onSkip={() => setAttempt(2)}\n />\n </Specimen>\n <Specimen label=\"retrying\" wide>\n <ToolError\n name=\"artnet.probe\"\n target=\"10.0.0.255\"\n message=\"ETIMEDOUT after 30000ms\"\n attempt={3}\n maxAttempts={3}\n retrying\n />\n </Specimen>\n <Specimen label=\"no skip offered\" wide>\n <ToolError\n name=\"cue.write\"\n target=\"show/main-stage.cue\"\n message=\"EACCES: show file is read-only\"\n attempt={1}\n maxAttempts={1}\n retrying={false}\n onRetry={() => {}}\n />\n </Specimen>\n</Specimens>",
|
|
109
|
+
"note": "One call failed, and the turn did not. The message is the raw error in mono rather than a reworded one, the attempt count is the runtime's, and Retry re-runs the call in place. Skip is disabled unless the host offers one, because a control that cannot do anything should say so.",
|
|
110
|
+
"interaction": "Retry raises the attempt count here; Skip puts it back. While retrying, the control is a spinner and takes no clicks."
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"todo": true
|
|
114
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ToolGroup",
|
|
3
|
+
"slug": "tool-group",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "Calls that went out together, collapsed to one row until you want the detail.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "label",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "What the group did, as one line."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "tools",
|
|
21
|
+
"type": "readonly GroupedTool[]",
|
|
22
|
+
"required": true,
|
|
23
|
+
"defaultValue": null,
|
|
24
|
+
"description": "Calls issued together. The header summarizes them: progress while any run,\nfailures if any failed, otherwise the count."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "open",
|
|
28
|
+
"type": "boolean",
|
|
29
|
+
"required": true,
|
|
30
|
+
"defaultValue": null,
|
|
31
|
+
"description": "Whether the per-call list is expanded."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "onOpenChange",
|
|
35
|
+
"type": "((open: boolean) => void)",
|
|
36
|
+
"required": false,
|
|
37
|
+
"defaultValue": null,
|
|
38
|
+
"description": "Called when the group is expanded or collapsed."
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"typeReferences": [
|
|
42
|
+
"Omit<\n ComponentProps<\"div\">,\n \"children\" | \"label\" | \"tools\" | \"open\" | \"onOpenChange\"\n> & {\n /** What the group did, as one line. */\n label: string;\n /**\n * Calls issued together. The header summarizes them: progress while any run,\n * failures if any failed, otherwise the count.\n */\n tools: readonly GroupedTool[];\n /** Whether the per-call list is expanded. */\n open: boolean;\n /** Called when the group is expanded or collapsed. */\n onOpenChange?: (open: boolean) => void;\n}"
|
|
43
|
+
],
|
|
44
|
+
"subcomponents": [],
|
|
45
|
+
"parts": [],
|
|
46
|
+
"variants": {},
|
|
47
|
+
"defaultVariants": {},
|
|
48
|
+
"tokensUsed": [
|
|
49
|
+
"--cue-border",
|
|
50
|
+
"--cue-danger",
|
|
51
|
+
"--cue-fg-muted",
|
|
52
|
+
"--cue-fg-subtle",
|
|
53
|
+
"--cue-ok",
|
|
54
|
+
"--cue-radius-overlay",
|
|
55
|
+
"--cue-surface-1",
|
|
56
|
+
"--cue-text-body"
|
|
57
|
+
],
|
|
58
|
+
"summary": "Calls that went out together, collapsed to one row until you want the detail.",
|
|
59
|
+
"examples": [
|
|
60
|
+
{
|
|
61
|
+
"title": "Usage",
|
|
62
|
+
"code": "import { ToolGroup } from \"@cueplusplus/ui/elements\";\n\n<ToolGroup\n label=\"Read 4 files in parallel\"\n tools={tools}\n open={open}\n onOpenChange={setOpen}\n/>",
|
|
63
|
+
"language": "tsx"
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
"status": "todo-docs",
|
|
67
|
+
"url": "/docs/components/tool-group",
|
|
68
|
+
"mdUrl": "/docs/components/tool-group.md",
|
|
69
|
+
"jsonUrl": "/r/components/tool-group.json",
|
|
70
|
+
"specimens": [
|
|
71
|
+
{
|
|
72
|
+
"title": "ToolGroup",
|
|
73
|
+
"group": "elements",
|
|
74
|
+
"components": [
|
|
75
|
+
"ToolGroup"
|
|
76
|
+
],
|
|
77
|
+
"code": "<Specimens>\n <Specimen label=\"3 of 4 back\" wide>\n <ToolGroup\n label=\"Probed the rig in parallel\"\n tools={PARALLEL}\n open={open[\"group-running\"] ?? false}\n onOpenChange={opener(\"group-running\")}\n />\n </Specimen>\n <Specimen label=\"all done, collapsed\" wide>\n <ToolGroup\n label=\"Probed the rig in parallel\"\n tools={SETTLED}\n open={open[\"group-done\"] ?? false}\n onOpenChange={opener(\"group-done\")}\n />\n </Specimen>\n <Specimen label=\"one failed\" wide>\n <ToolGroup\n label=\"Probed the rig in parallel\"\n tools={BROKEN}\n open={open[\"group-failed\"] ?? false}\n onOpenChange={opener(\"group-failed\")}\n />\n </Specimen>\n</Specimens>",
|
|
78
|
+
"note": "Calls that went out together, rolled up to one row. The summary counts rather than describes: progress while any are still out, the failure count if any failed, otherwise the total.",
|
|
79
|
+
"interaction": "the header is one button with aria-expanded; the rows underneath are a list, not a menu."
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"todo": true
|
|
83
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ToolTimeline",
|
|
3
|
+
"slug": "tool-timeline",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "A whole working session summarized as verbs, targets, and file stats.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "steps",
|
|
14
|
+
"type": "readonly TimelineStep[]",
|
|
15
|
+
"required": true,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "Working-session verbs, chips, and icons to reveal over time."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "visibleSteps",
|
|
21
|
+
"type": "number",
|
|
22
|
+
"required": true,
|
|
23
|
+
"defaultValue": null,
|
|
24
|
+
"description": "How many steps from the start are currently shown."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "streaming",
|
|
28
|
+
"type": "boolean",
|
|
29
|
+
"required": true,
|
|
30
|
+
"defaultValue": null,
|
|
31
|
+
"description": "When true the trigger shows Working with a shimmer and elapsed timer."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "open",
|
|
35
|
+
"type": "boolean",
|
|
36
|
+
"required": true,
|
|
37
|
+
"defaultValue": null,
|
|
38
|
+
"description": "Whether the collapsible timeline body is expanded."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "onOpenChange",
|
|
42
|
+
"type": "(open: boolean) => void",
|
|
43
|
+
"required": true,
|
|
44
|
+
"defaultValue": null,
|
|
45
|
+
"description": "Called when the user expands or collapses the timeline."
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "restingLabel",
|
|
49
|
+
"type": "string",
|
|
50
|
+
"required": true,
|
|
51
|
+
"defaultValue": null,
|
|
52
|
+
"description": "Trigger label once streaming finishes."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"name": "activeLabel",
|
|
56
|
+
"type": "string",
|
|
57
|
+
"required": true,
|
|
58
|
+
"defaultValue": null,
|
|
59
|
+
"description": "Full-size live label while streaming, for example Working for 12s."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "stats",
|
|
63
|
+
"type": "TimelineStat[]",
|
|
64
|
+
"required": true,
|
|
65
|
+
"defaultValue": null,
|
|
66
|
+
"description": "Per-file addition and removal counts listed under the steps."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "className",
|
|
70
|
+
"type": "string",
|
|
71
|
+
"required": false,
|
|
72
|
+
"defaultValue": null,
|
|
73
|
+
"description": "Extra classes merged onto the root."
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"typeReferences": [],
|
|
77
|
+
"subcomponents": [],
|
|
78
|
+
"parts": [],
|
|
79
|
+
"variants": {},
|
|
80
|
+
"defaultVariants": {},
|
|
81
|
+
"tokensUsed": [
|
|
82
|
+
"--cue-accent",
|
|
83
|
+
"--cue-danger",
|
|
84
|
+
"--cue-fg",
|
|
85
|
+
"--cue-fg-muted",
|
|
86
|
+
"--cue-fg-subtle",
|
|
87
|
+
"--cue-font-mono",
|
|
88
|
+
"--cue-ok",
|
|
89
|
+
"--cue-radius-control",
|
|
90
|
+
"--cue-surface-2",
|
|
91
|
+
"--cue-text-body",
|
|
92
|
+
"--cue-text-label"
|
|
93
|
+
],
|
|
94
|
+
"summary": "A whole working session summarized as verbs, targets, and file stats.",
|
|
95
|
+
"examples": [
|
|
96
|
+
{
|
|
97
|
+
"title": "Usage",
|
|
98
|
+
"code": "import { FileSearchIcon } from \"lucide-react\";\nimport { ToolTimeline } from \"@cueplusplus/ui/elements\";\n\n<ToolTimeline\n steps={[{ verb: \"Read\", chip: \"thread.tsx\", icon: FileSearchIcon }]}\n visibleSteps={1}\n streaming\n open\n onOpenChange={setOpen}\n restingLabel=\"Worked for 12s\"\n activeLabel=\"Working for 12s\"\n stats={[{ file: \"thread.tsx\", added: 4, removed: 1 }]}\n/>",
|
|
99
|
+
"language": "tsx"
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"status": "todo-docs",
|
|
103
|
+
"url": "/docs/components/tool-timeline",
|
|
104
|
+
"mdUrl": "/docs/components/tool-timeline.md",
|
|
105
|
+
"jsonUrl": "/r/components/tool-timeline.json",
|
|
106
|
+
"specimens": [
|
|
107
|
+
{
|
|
108
|
+
"title": "ToolTimeline",
|
|
109
|
+
"group": "elements-agents",
|
|
110
|
+
"components": [
|
|
111
|
+
"ToolTimeline"
|
|
112
|
+
],
|
|
113
|
+
"code": "<Specimens>\n <Specimen label=\"streaming, open\" wide>\n <ToolTimeline\n steps={STEPS}\n visibleSteps={3}\n streaming\n open={timelineOpen}\n onOpenChange={setTimelineOpen}\n restingLabel=\"Read 3 files, ran 1 command\"\n activeLabel=\"Working on the patch\"\n stats={[]}\n />\n </Specimen>\n <Specimen label=\"settled, collapsed\" wide>\n <ToolTimeline\n steps={STEPS}\n visibleSteps={STEPS.length}\n streaming={false}\n open={false}\n onOpenChange={() => undefined}\n restingLabel=\"Read 3 files, ran 1 command\"\n activeLabel=\"Working on the patch\"\n stats={STATS}\n />\n </Specimen>\n</Specimens>",
|
|
114
|
+
"note": "A whole working session folded into one line — `Read 4 files, ran 1 command` — that opens into the verbs, the things they were done to, and the files that ended up changed. It is the summary a transcript gets *after* the fact, where `ToolCall` is what it looks like during.",
|
|
115
|
+
"interaction": "the trigger is a labelled button taking cue's focus ring; the chevron turns with the panel, which animates its own height through Base UI. While streaming the label shimmers and the live step's verb shimmers with it."
|
|
116
|
+
}
|
|
117
|
+
],
|
|
118
|
+
"todo": true
|
|
119
|
+
}
|