@schlessera/brain-ui-react 0.35.0 → 0.37.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/README.md +82 -4
- package/dist/components/activity/activity-page.d.ts +17 -5
- package/dist/components/activity/activity-page.d.ts.map +1 -1
- package/dist/components/activity/activity-page.js +148 -50
- package/dist/components/activity/activity-page.js.map +1 -1
- package/dist/components/activity/activity-run-detail.d.ts +16 -1
- package/dist/components/activity/activity-run-detail.d.ts.map +1 -1
- package/dist/components/activity/activity-run-detail.js +47 -4
- package/dist/components/activity/activity-run-detail.js.map +1 -1
- package/dist/components/activity/activity-run-list.d.ts +7 -1
- package/dist/components/activity/activity-run-list.d.ts.map +1 -1
- package/dist/components/activity/activity-run-list.js +16 -8
- package/dist/components/activity/activity-run-list.js.map +1 -1
- package/dist/components/activity/activity-views.d.ts +63 -0
- package/dist/components/activity/activity-views.d.ts.map +1 -0
- package/dist/components/activity/activity-views.js +52 -0
- package/dist/components/activity/activity-views.js.map +1 -0
- package/dist/components/activity/approval-card.d.ts +29 -0
- package/dist/components/activity/approval-card.d.ts.map +1 -0
- package/dist/components/activity/approval-card.js +73 -0
- package/dist/components/activity/approval-card.js.map +1 -0
- package/dist/components/activity/digest-card.d.ts +3 -0
- package/dist/components/activity/digest-card.d.ts.map +1 -1
- package/dist/components/activity/digest-card.js +20 -16
- package/dist/components/activity/digest-card.js.map +1 -1
- package/dist/components/activity/digest-summary.d.ts +19 -0
- package/dist/components/activity/digest-summary.d.ts.map +1 -0
- package/dist/components/activity/digest-summary.js +20 -0
- package/dist/components/activity/digest-summary.js.map +1 -0
- package/dist/components/activity/push-switch.d.ts +25 -0
- package/dist/components/activity/push-switch.d.ts.map +1 -0
- package/dist/components/activity/push-switch.js +14 -0
- package/dist/components/activity/push-switch.js.map +1 -0
- package/dist/components/activity/push-toggle.d.ts +7 -0
- package/dist/components/activity/push-toggle.d.ts.map +1 -1
- package/dist/components/activity/push-toggle.js +72 -47
- package/dist/components/activity/push-toggle.js.map +1 -1
- package/dist/components/activity/span-bits.d.ts +11 -0
- package/dist/components/activity/span-bits.d.ts.map +1 -1
- package/dist/components/activity/span-bits.js +50 -7
- package/dist/components/activity/span-bits.js.map +1 -1
- package/dist/components/chat/ask-user-card.d.ts +76 -3
- package/dist/components/chat/ask-user-card.d.ts.map +1 -1
- package/dist/components/chat/ask-user-card.js +208 -149
- package/dist/components/chat/ask-user-card.js.map +1 -1
- package/dist/components/chat/ask-user-typed.d.ts +42 -0
- package/dist/components/chat/ask-user-typed.d.ts.map +1 -0
- package/dist/components/chat/ask-user-typed.js +60 -0
- package/dist/components/chat/ask-user-typed.js.map +1 -0
- package/dist/components/chat/brain-markdown-links.d.ts +2 -1
- package/dist/components/chat/brain-markdown-links.d.ts.map +1 -1
- package/dist/components/chat/brain-markdown-links.js +3 -4
- package/dist/components/chat/brain-markdown-links.js.map +1 -1
- package/dist/components/chat/brain-markdown.d.ts.map +1 -1
- package/dist/components/chat/brain-markdown.js +4 -2
- package/dist/components/chat/brain-markdown.js.map +1 -1
- package/dist/components/chat/chat-page.d.ts.map +1 -1
- package/dist/components/chat/chat-page.js +27 -11
- package/dist/components/chat/chat-page.js.map +1 -1
- package/dist/components/chat/composer-view.d.ts +75 -0
- package/dist/components/chat/composer-view.d.ts.map +1 -0
- package/dist/components/chat/composer-view.js +31 -0
- package/dist/components/chat/composer-view.js.map +1 -0
- package/dist/components/chat/composer.d.ts +4 -0
- package/dist/components/chat/composer.d.ts.map +1 -1
- package/dist/components/chat/composer.js +76 -59
- package/dist/components/chat/composer.js.map +1 -1
- package/dist/components/chat/markdown-content.d.ts +16 -1
- package/dist/components/chat/markdown-content.d.ts.map +1 -1
- package/dist/components/chat/markdown-content.js +47 -3
- package/dist/components/chat/markdown-content.js.map +1 -1
- package/dist/components/chat/mermaid-block.d.ts +4 -0
- package/dist/components/chat/mermaid-block.d.ts.map +1 -1
- package/dist/components/chat/mermaid-block.js +13 -5
- package/dist/components/chat/mermaid-block.js.map +1 -1
- package/dist/components/chat/mermaid-share.d.ts +2 -1
- package/dist/components/chat/mermaid-share.d.ts.map +1 -1
- package/dist/components/chat/mermaid-share.js +7 -8
- package/dist/components/chat/mermaid-share.js.map +1 -1
- package/dist/components/chat/mermaid-viewer.d.ts.map +1 -1
- package/dist/components/chat/mermaid-viewer.js +3 -1
- package/dist/components/chat/mermaid-viewer.js.map +1 -1
- package/dist/components/chat/message-bubble.d.ts +8 -1
- package/dist/components/chat/message-bubble.d.ts.map +1 -1
- package/dist/components/chat/message-bubble.js +53 -24
- package/dist/components/chat/message-bubble.js.map +1 -1
- package/dist/components/chat/message-share.d.ts +2 -1
- package/dist/components/chat/message-share.d.ts.map +1 -1
- package/dist/components/chat/message-share.js +6 -7
- package/dist/components/chat/message-share.js.map +1 -1
- package/dist/components/chat/renderers/bind.d.ts +39 -0
- package/dist/components/chat/renderers/bind.d.ts.map +1 -0
- package/dist/components/chat/renderers/bind.js +43 -0
- package/dist/components/chat/renderers/bind.js.map +1 -0
- package/dist/components/chat/renderers/brain-ui-tools.d.ts +3 -0
- package/dist/components/chat/renderers/brain-ui-tools.d.ts.map +1 -0
- package/dist/components/chat/renderers/brain-ui-tools.js +41 -0
- package/dist/components/chat/renderers/brain-ui-tools.js.map +1 -0
- package/dist/components/chat/renderers/claude-tools.d.ts.map +1 -1
- package/dist/components/chat/renderers/claude-tools.js +3 -2
- package/dist/components/chat/renderers/claude-tools.js.map +1 -1
- package/dist/components/chat/renderers/index.d.ts +10 -2
- package/dist/components/chat/renderers/index.d.ts.map +1 -1
- package/dist/components/chat/renderers/index.js +15 -10
- package/dist/components/chat/renderers/index.js.map +1 -1
- package/dist/components/chat/session-drawer.d.ts +4 -0
- package/dist/components/chat/session-drawer.d.ts.map +1 -1
- package/dist/components/chat/session-drawer.js +32 -32
- package/dist/components/chat/session-drawer.js.map +1 -1
- package/dist/components/chat/session-list.d.ts +41 -0
- package/dist/components/chat/session-list.d.ts.map +1 -0
- package/dist/components/chat/session-list.js +10 -0
- package/dist/components/chat/session-list.js.map +1 -0
- package/dist/components/chat/share-block.d.ts.map +1 -1
- package/dist/components/chat/share-block.js +12 -11
- package/dist/components/chat/share-block.js.map +1 -1
- package/dist/components/chat/share-card.js +2 -2
- package/dist/components/chat/share-card.js.map +1 -1
- package/dist/components/chat/subagent-view.js +1 -1
- package/dist/components/chat/subagent-view.js.map +1 -1
- package/dist/components/chat/tool-call-timeline.d.ts.map +1 -1
- package/dist/components/chat/tool-call-timeline.js +45 -14
- package/dist/components/chat/tool-call-timeline.js.map +1 -1
- package/dist/components/chat/tool-cards/block-card.d.ts +28 -0
- package/dist/components/chat/tool-cards/block-card.d.ts.map +1 -0
- package/dist/components/chat/tool-cards/block-card.js +103 -0
- package/dist/components/chat/tool-cards/block-card.js.map +1 -0
- package/dist/components/chat/tool-cards/image-mask-card.d.ts +70 -0
- package/dist/components/chat/tool-cards/image-mask-card.d.ts.map +1 -0
- package/dist/components/chat/tool-cards/image-mask-card.js +142 -0
- package/dist/components/chat/tool-cards/image-mask-card.js.map +1 -0
- package/dist/components/chat/tool-cards/location-card.d.ts +45 -0
- package/dist/components/chat/tool-cards/location-card.d.ts.map +1 -0
- package/dist/components/chat/tool-cards/location-card.js +128 -0
- package/dist/components/chat/tool-cards/location-card.js.map +1 -0
- package/dist/components/chat/tool-views.d.ts +19 -2
- package/dist/components/chat/tool-views.d.ts.map +1 -1
- package/dist/components/chat/tool-views.js +28 -22
- package/dist/components/chat/tool-views.js.map +1 -1
- package/dist/components/chat/transcript-turn.d.ts +45 -0
- package/dist/components/chat/transcript-turn.d.ts.map +1 -0
- package/dist/components/chat/transcript-turn.js +25 -0
- package/dist/components/chat/transcript-turn.js.map +1 -0
- package/dist/components/chat/use-chat-commands.d.ts.map +1 -1
- package/dist/components/chat/use-chat-commands.js +13 -16
- package/dist/components/chat/use-chat-commands.js.map +1 -1
- package/dist/components/chat/welcome-state.d.ts +7 -0
- package/dist/components/chat/welcome-state.d.ts.map +1 -1
- package/dist/components/chat/welcome-state.js +13 -5
- package/dist/components/chat/welcome-state.js.map +1 -1
- package/dist/components/connectivity/connection-gate.d.ts.map +1 -1
- package/dist/components/connectivity/connection-gate.js +27 -21
- package/dist/components/connectivity/connection-gate.js.map +1 -1
- package/dist/components/connectivity/login-form.d.ts +31 -0
- package/dist/components/connectivity/login-form.d.ts.map +1 -0
- package/dist/components/connectivity/login-form.js +19 -0
- package/dist/components/connectivity/login-form.js.map +1 -0
- package/dist/components/connectivity/login-screen.d.ts +5 -2
- package/dist/components/connectivity/login-screen.d.ts.map +1 -1
- package/dist/components/connectivity/login-screen.js +41 -31
- package/dist/components/connectivity/login-screen.js.map +1 -1
- package/dist/components/dev/share-harness.js +1 -1
- package/dist/components/dev/share-harness.js.map +1 -1
- package/dist/components/files/file-panel.d.ts +1 -1
- package/dist/components/files/file-panel.d.ts.map +1 -1
- package/dist/components/files/file-panel.js +74 -0
- package/dist/components/files/file-panel.js.map +1 -1
- package/dist/components/files/file-tree-view.d.ts +45 -0
- package/dist/components/files/file-tree-view.d.ts.map +1 -0
- package/dist/components/files/file-tree-view.js +51 -0
- package/dist/components/files/file-tree-view.js.map +1 -0
- package/dist/components/files/file-tree.d.ts +6 -0
- package/dist/components/files/file-tree.d.ts.map +1 -1
- package/dist/components/files/file-tree.js +39 -43
- package/dist/components/files/file-tree.js.map +1 -1
- package/dist/components/files/file-viewer-binary.d.ts.map +1 -1
- package/dist/components/files/file-viewer-binary.js +3 -2
- package/dist/components/files/file-viewer-binary.js.map +1 -1
- package/dist/components/files/file-viewer-frame.d.ts +36 -0
- package/dist/components/files/file-viewer-frame.d.ts.map +1 -0
- package/dist/components/files/file-viewer-frame.js +26 -0
- package/dist/components/files/file-viewer-frame.js.map +1 -0
- package/dist/components/files/file-viewer.d.ts +5 -0
- package/dist/components/files/file-viewer.d.ts.map +1 -1
- package/dist/components/files/file-viewer.js +26 -32
- package/dist/components/files/file-viewer.js.map +1 -1
- package/dist/components/files/frontmatter-chips.d.ts +18 -0
- package/dist/components/files/frontmatter-chips.d.ts.map +1 -0
- package/dist/components/files/frontmatter-chips.js +11 -0
- package/dist/components/files/frontmatter-chips.js.map +1 -0
- package/dist/components/files/frontmatter-panel.d.ts +5 -1
- package/dist/components/files/frontmatter-panel.d.ts.map +1 -1
- package/dist/components/files/frontmatter-panel.js +7 -6
- package/dist/components/files/frontmatter-panel.js.map +1 -1
- package/dist/components/files/staleness.d.ts +18 -0
- package/dist/components/files/staleness.d.ts.map +1 -0
- package/dist/components/files/staleness.js +27 -0
- package/dist/components/files/staleness.js.map +1 -0
- package/dist/components/graph/graph-canvas.d.ts.map +1 -1
- package/dist/components/graph/graph-canvas.js +24 -1
- package/dist/components/graph/graph-canvas.js.map +1 -1
- package/dist/components/graph/graph-controls-column.d.ts +14 -0
- package/dist/components/graph/graph-controls-column.d.ts.map +1 -0
- package/dist/components/graph/graph-controls-column.js +44 -0
- package/dist/components/graph/graph-controls-column.js.map +1 -0
- package/dist/components/graph/graph-controls.d.ts +20 -5
- package/dist/components/graph/graph-controls.d.ts.map +1 -1
- package/dist/components/graph/graph-controls.js +58 -37
- package/dist/components/graph/graph-controls.js.map +1 -1
- package/dist/components/graph/graph-form.d.ts +82 -0
- package/dist/components/graph/graph-form.d.ts.map +1 -0
- package/dist/components/graph/graph-form.js +69 -0
- package/dist/components/graph/graph-form.js.map +1 -0
- package/dist/components/graph/graph-maintenance.d.ts.map +1 -1
- package/dist/components/graph/graph-maintenance.js +6 -10
- package/dist/components/graph/graph-maintenance.js.map +1 -1
- package/dist/components/graph/graph-node-rail.d.ts +13 -0
- package/dist/components/graph/graph-node-rail.d.ts.map +1 -0
- package/dist/components/graph/graph-node-rail.js +92 -0
- package/dist/components/graph/graph-node-rail.js.map +1 -0
- package/dist/components/graph/graph-page.d.ts +7 -0
- package/dist/components/graph/graph-page.d.ts.map +1 -1
- package/dist/components/graph/graph-page.js +102 -12
- package/dist/components/graph/graph-page.js.map +1 -1
- package/dist/components/graph/graph-scene.d.ts.map +1 -1
- package/dist/components/graph/graph-scene.js +100 -24
- package/dist/components/graph/graph-scene.js.map +1 -1
- package/dist/components/graph/lib/graph-helpers.d.ts +42 -12
- package/dist/components/graph/lib/graph-helpers.d.ts.map +1 -1
- package/dist/components/graph/lib/graph-helpers.js +33 -41
- package/dist/components/graph/lib/graph-helpers.js.map +1 -1
- package/dist/components/graph/node-card.d.ts +28 -0
- package/dist/components/graph/node-card.d.ts.map +1 -0
- package/dist/components/graph/node-card.js +7 -0
- package/dist/components/graph/node-card.js.map +1 -0
- package/dist/components/graph/node-popover.d.ts +6 -2
- package/dist/components/graph/node-popover.d.ts.map +1 -1
- package/dist/components/graph/node-popover.js +13 -31
- package/dist/components/graph/node-popover.js.map +1 -1
- package/dist/components/graph/use-graph-theme.d.ts +32 -4
- package/dist/components/graph/use-graph-theme.d.ts.map +1 -1
- package/dist/components/graph/use-graph-theme.js +44 -32
- package/dist/components/graph/use-graph-theme.js.map +1 -1
- package/dist/components/graph/use-node-actions.d.ts +26 -0
- package/dist/components/graph/use-node-actions.d.ts.map +1 -0
- package/dist/components/graph/use-node-actions.js +54 -0
- package/dist/components/graph/use-node-actions.js.map +1 -0
- package/dist/components/images/image-share.d.ts +2 -1
- package/dist/components/images/image-share.d.ts.map +1 -1
- package/dist/components/images/image-share.js +3 -3
- package/dist/components/images/image-share.js.map +1 -1
- package/dist/components/images/image-viewer.d.ts.map +1 -1
- package/dist/components/images/image-viewer.js +3 -1
- package/dist/components/images/image-viewer.js.map +1 -1
- package/dist/components/images/mask-editor.d.ts.map +1 -1
- package/dist/components/images/mask-editor.js +7 -5
- package/dist/components/images/mask-editor.js.map +1 -1
- package/dist/components/layout/app-shell.d.ts.map +1 -1
- package/dist/components/layout/app-shell.js +4 -1
- package/dist/components/layout/app-shell.js.map +1 -1
- package/dist/components/layout/desktop-palette.d.ts +23 -0
- package/dist/components/layout/desktop-palette.d.ts.map +1 -0
- package/dist/components/layout/desktop-palette.js +132 -0
- package/dist/components/layout/desktop-palette.js.map +1 -0
- package/dist/components/layout/key-cap.d.ts +9 -0
- package/dist/components/layout/key-cap.d.ts.map +1 -0
- package/dist/components/layout/key-cap.js +10 -0
- package/dist/components/layout/key-cap.js.map +1 -0
- package/dist/components/layout/mobile-tab-bar.d.ts +13 -0
- package/dist/components/layout/mobile-tab-bar.d.ts.map +1 -1
- package/dist/components/layout/mobile-tab-bar.js +58 -47
- package/dist/components/layout/mobile-tab-bar.js.map +1 -1
- package/dist/components/layout/shortcut-switch.d.ts +13 -0
- package/dist/components/layout/shortcut-switch.d.ts.map +1 -0
- package/dist/components/layout/shortcut-switch.js +22 -0
- package/dist/components/layout/shortcut-switch.js.map +1 -0
- package/dist/components/layout/side-rail.d.ts +28 -0
- package/dist/components/layout/side-rail.d.ts.map +1 -1
- package/dist/components/layout/side-rail.js +72 -27
- package/dist/components/layout/side-rail.js.map +1 -1
- package/dist/components/layout/slide-panel.d.ts +25 -2
- package/dist/components/layout/slide-panel.d.ts.map +1 -1
- package/dist/components/layout/slide-panel.js +13 -4
- package/dist/components/layout/slide-panel.js.map +1 -1
- package/dist/components/layout/theme.d.ts +22 -0
- package/dist/components/layout/theme.d.ts.map +1 -0
- package/dist/components/layout/theme.js +44 -0
- package/dist/components/layout/theme.js.map +1 -0
- package/dist/components/quick-actions/add-form.d.ts +44 -0
- package/dist/components/quick-actions/add-form.d.ts.map +1 -0
- package/dist/components/quick-actions/add-form.js +32 -0
- package/dist/components/quick-actions/add-form.js.map +1 -0
- package/dist/components/quick-actions/add-modal.d.ts +7 -0
- package/dist/components/quick-actions/add-modal.d.ts.map +1 -1
- package/dist/components/quick-actions/add-modal.js +23 -20
- package/dist/components/quick-actions/add-modal.js.map +1 -1
- package/dist/components/quick-actions/search-modal.d.ts.map +1 -1
- package/dist/components/quick-actions/search-modal.js +8 -5
- package/dist/components/quick-actions/search-modal.js.map +1 -1
- package/dist/components/quick-actions/streaming-modal.d.ts +6 -0
- package/dist/components/quick-actions/streaming-modal.d.ts.map +1 -1
- package/dist/components/quick-actions/streaming-modal.js +53 -18
- package/dist/components/quick-actions/streaming-modal.js.map +1 -1
- package/dist/components/quick-actions/streaming-output.d.ts +38 -0
- package/dist/components/quick-actions/streaming-output.d.ts.map +1 -0
- package/dist/components/quick-actions/streaming-output.js +22 -0
- package/dist/components/quick-actions/streaming-output.js.map +1 -0
- package/dist/components/quick-actions/whatsup-modal.d.ts +5 -0
- package/dist/components/quick-actions/whatsup-modal.d.ts.map +1 -1
- package/dist/components/quick-actions/whatsup-modal.js +51 -10
- package/dist/components/quick-actions/whatsup-modal.js.map +1 -1
- package/dist/components/settings/devices-agents-tab.d.ts +6 -1
- package/dist/components/settings/devices-agents-tab.d.ts.map +1 -1
- package/dist/components/settings/devices-agents-tab.js +55 -20
- package/dist/components/settings/devices-agents-tab.js.map +1 -1
- package/dist/components/settings/models-list.d.ts +39 -0
- package/dist/components/settings/models-list.d.ts.map +1 -0
- package/dist/components/settings/models-list.js +72 -0
- package/dist/components/settings/models-list.js.map +1 -0
- package/dist/components/settings/models-tab.d.ts +4 -0
- package/dist/components/settings/models-tab.d.ts.map +1 -1
- package/dist/components/settings/models-tab.js +52 -102
- package/dist/components/settings/models-tab.js.map +1 -1
- package/dist/components/settings/one-time-agent-credential.js +1 -1
- package/dist/components/settings/one-time-agent-credential.js.map +1 -1
- package/dist/components/settings/passkey-list.d.ts +35 -0
- package/dist/components/settings/passkey-list.d.ts.map +1 -0
- package/dist/components/settings/passkey-list.js +34 -0
- package/dist/components/settings/passkey-list.js.map +1 -0
- package/dist/components/settings/passkey-tab.d.ts +3 -0
- package/dist/components/settings/passkey-tab.d.ts.map +1 -1
- package/dist/components/settings/passkey-tab.js +53 -45
- package/dist/components/settings/passkey-tab.js.map +1 -1
- package/dist/components/settings/pi-accounts-list.d.ts +27 -0
- package/dist/components/settings/pi-accounts-list.d.ts.map +1 -0
- package/dist/components/settings/pi-accounts-list.js +15 -0
- package/dist/components/settings/pi-accounts-list.js.map +1 -0
- package/dist/components/settings/pi-accounts.d.ts +3 -0
- package/dist/components/settings/pi-accounts.d.ts.map +1 -1
- package/dist/components/settings/pi-accounts.js +73 -55
- package/dist/components/settings/pi-accounts.js.map +1 -1
- package/dist/components/settings/principal-list.d.ts +37 -0
- package/dist/components/settings/principal-list.d.ts.map +1 -0
- package/dist/components/settings/principal-list.js +18 -0
- package/dist/components/settings/principal-list.js.map +1 -0
- package/dist/components/settings/settings-panel.d.ts +10 -3
- package/dist/components/settings/settings-panel.d.ts.map +1 -1
- package/dist/components/settings/settings-panel.js +71 -10
- package/dist/components/settings/settings-panel.js.map +1 -1
- package/dist/components/settings/skills-list.d.ts +53 -0
- package/dist/components/settings/skills-list.d.ts.map +1 -0
- package/dist/components/settings/skills-list.js +28 -0
- package/dist/components/settings/skills-list.js.map +1 -0
- package/dist/components/settings/skills-tab.d.ts.map +1 -1
- package/dist/components/settings/skills-tab.js +65 -38
- package/dist/components/settings/skills-tab.js.map +1 -1
- package/dist/components/settings/tool-permissions-list.d.ts +18 -0
- package/dist/components/settings/tool-permissions-list.d.ts.map +1 -0
- package/dist/components/settings/tool-permissions-list.js +6 -0
- package/dist/components/settings/tool-permissions-list.js.map +1 -0
- package/dist/components/settings/tool-permissions.d.ts +2 -1
- package/dist/components/settings/tool-permissions.d.ts.map +1 -1
- package/dist/components/settings/tool-permissions.js +33 -16
- package/dist/components/settings/tool-permissions.js.map +1 -1
- package/dist/components/settings/web-search-chain.d.ts +41 -0
- package/dist/components/settings/web-search-chain.d.ts.map +1 -0
- package/dist/components/settings/web-search-chain.js +47 -0
- package/dist/components/settings/web-search-chain.js.map +1 -0
- package/dist/components/settings/web-search-settings.d.ts +4 -7
- package/dist/components/settings/web-search-settings.d.ts.map +1 -1
- package/dist/components/settings/web-search-settings.js +54 -76
- package/dist/components/settings/web-search-settings.js.map +1 -1
- package/dist/components/share/share-menu.d.ts.map +1 -1
- package/dist/components/share/share-menu.js +24 -4
- package/dist/components/share/share-menu.js.map +1 -1
- package/dist/components/voice/dictation-sheet.js +3 -3
- package/dist/components/voice/dictation-sheet.js.map +1 -1
- package/dist/components/voice/mic-button.js +1 -1
- package/dist/components/voice/mic-button.js.map +1 -1
- package/dist/components/voice/review-card.js +1 -1
- package/dist/components/voice/review-card.js.map +1 -1
- package/dist/config.d.ts +5 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +15 -5
- package/dist/config.js.map +1 -1
- package/dist/connection.d.ts +12 -0
- package/dist/connection.d.ts.map +1 -0
- package/dist/connection.js +421 -0
- package/dist/connection.js.map +1 -0
- package/dist/default-root.d.ts +3 -0
- package/dist/default-root.d.ts.map +1 -0
- package/dist/default-root.js +16 -0
- package/dist/default-root.js.map +1 -0
- package/dist/hooks/use-color-scheme.d.ts +14 -0
- package/dist/hooks/use-color-scheme.d.ts.map +1 -0
- package/dist/hooks/use-color-scheme.js +37 -0
- package/dist/hooks/use-color-scheme.js.map +1 -0
- package/dist/hooks/use-fine-pointer.d.ts +12 -0
- package/dist/hooks/use-fine-pointer.d.ts.map +1 -0
- package/dist/hooks/use-fine-pointer.js +15 -0
- package/dist/hooks/use-fine-pointer.js.map +1 -0
- package/dist/hooks/use-hash-routes.d.ts.map +1 -1
- package/dist/hooks/use-hash-routes.js +4 -2
- package/dist/hooks/use-hash-routes.js.map +1 -1
- package/dist/hooks/use-media-query.d.ts +9 -0
- package/dist/hooks/use-media-query.d.ts.map +1 -0
- package/dist/hooks/use-media-query.js +38 -0
- package/dist/hooks/use-media-query.js.map +1 -0
- package/dist/hooks/use-share-intake.d.ts.map +1 -1
- package/dist/hooks/use-share-intake.js +37 -12
- package/dist/hooks/use-share-intake.js.map +1 -1
- package/dist/hooks/use-vpn-status.d.ts.map +1 -1
- package/dist/hooks/use-vpn-status.js +17 -18
- package/dist/hooks/use-vpn-status.js.map +1 -1
- package/dist/hooks/use-websocket.d.ts +5 -24
- package/dist/hooks/use-websocket.d.ts.map +1 -1
- package/dist/hooks/use-websocket.js +11 -384
- package/dist/hooks/use-websocket.js.map +1 -1
- package/dist/hooks/websocket-handlers/activity.d.ts +2 -2
- package/dist/hooks/websocket-handlers/activity.d.ts.map +1 -1
- package/dist/hooks/websocket-handlers/activity.js +4 -5
- package/dist/hooks/websocket-handlers/activity.js.map +1 -1
- package/dist/hooks/websocket-handlers/chat.d.ts +1 -0
- package/dist/hooks/websocket-handlers/chat.d.ts.map +1 -1
- package/dist/hooks/websocket-handlers/chat.js +28 -6
- package/dist/hooks/websocket-handlers/chat.js.map +1 -1
- package/dist/hooks/websocket-handlers/connection.d.ts.map +1 -1
- package/dist/hooks/websocket-handlers/connection.js +4 -6
- package/dist/hooks/websocket-handlers/connection.js.map +1 -1
- package/dist/hooks/websocket-handlers/mask.d.ts +1 -1
- package/dist/hooks/websocket-handlers/mask.d.ts.map +1 -1
- package/dist/hooks/websocket-handlers/mask.js +2 -3
- package/dist/hooks/websocket-handlers/mask.js.map +1 -1
- package/dist/hooks/websocket-handlers/provider.d.ts.map +1 -1
- package/dist/hooks/websocket-handlers/provider.js +4 -6
- package/dist/hooks/websocket-handlers/provider.js.map +1 -1
- package/dist/hooks/websocket-handlers/types.d.ts +6 -2
- package/dist/hooks/websocket-handlers/types.d.ts.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/api-client.d.ts +289 -0
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +243 -224
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/backend.d.ts +19 -2
- package/dist/lib/backend.d.ts.map +1 -1
- package/dist/lib/backend.js +15 -9
- package/dist/lib/backend.js.map +1 -1
- package/dist/lib/diff.d.ts +8 -10
- package/dist/lib/diff.d.ts.map +1 -1
- package/dist/lib/diff.js +26 -53
- package/dist/lib/diff.js.map +1 -1
- package/dist/lib/light-dark.d.ts +37 -0
- package/dist/lib/light-dark.d.ts.map +1 -0
- package/dist/lib/light-dark.js +83 -0
- package/dist/lib/light-dark.js.map +1 -0
- package/dist/lib/mermaid-theme.d.ts +7 -2
- package/dist/lib/mermaid-theme.d.ts.map +1 -1
- package/dist/lib/mermaid-theme.js +125 -203
- package/dist/lib/mermaid-theme.js.map +1 -1
- package/dist/lib/passkeys.d.ts +6 -3
- package/dist/lib/passkeys.d.ts.map +1 -1
- package/dist/lib/passkeys.js +10 -4
- package/dist/lib/passkeys.js.map +1 -1
- package/dist/lib/push-registration.d.ts +4 -1
- package/dist/lib/push-registration.d.ts.map +1 -1
- package/dist/lib/push-registration.js +20 -2
- package/dist/lib/push-registration.js.map +1 -1
- package/dist/lib/share-intake.d.ts +2 -1
- package/dist/lib/share-intake.d.ts.map +1 -1
- package/dist/lib/share-intake.js +3 -3
- package/dist/lib/share-intake.js.map +1 -1
- package/dist/lib/share.d.ts +4 -3
- package/dist/lib/share.d.ts.map +1 -1
- package/dist/lib/share.js +6 -7
- package/dist/lib/share.js.map +1 -1
- package/dist/lib/single-key.d.ts +30 -0
- package/dist/lib/single-key.d.ts.map +1 -0
- package/dist/lib/single-key.js +45 -0
- package/dist/lib/single-key.js.map +1 -0
- package/dist/lib/tool-names.d.ts +8 -6
- package/dist/lib/tool-names.d.ts.map +1 -1
- package/dist/lib/tool-names.js +17 -7
- package/dist/lib/tool-names.js.map +1 -1
- package/dist/root-context.d.ts +229 -0
- package/dist/root-context.d.ts.map +1 -0
- package/dist/root-context.js +33 -0
- package/dist/root-context.js.map +1 -0
- package/dist/root.d.ts +38 -0
- package/dist/root.d.ts.map +1 -0
- package/dist/root.js +47 -0
- package/dist/root.js.map +1 -0
- package/dist/stores/activity-state.d.ts +29 -0
- package/dist/stores/activity-state.d.ts.map +1 -0
- package/dist/stores/activity-state.js +282 -0
- package/dist/stores/activity-state.js.map +1 -0
- package/dist/stores/activity-store.d.ts +10 -41
- package/dist/stores/activity-store.d.ts.map +1 -1
- package/dist/stores/activity-store.js +9 -271
- package/dist/stores/activity-store.js.map +1 -1
- package/dist/stores/chat-state.d.ts +233 -0
- package/dist/stores/chat-state.d.ts.map +1 -0
- package/dist/stores/chat-state.js +477 -0
- package/dist/stores/chat-state.js.map +1 -0
- package/dist/stores/chat-store.d.ts +4 -162
- package/dist/stores/chat-store.d.ts.map +1 -1
- package/dist/stores/chat-store.js +7 -418
- package/dist/stores/chat-store.js.map +1 -1
- package/dist/stores/connection-state.d.ts +40 -0
- package/dist/stores/connection-state.d.ts.map +1 -0
- package/dist/stores/connection-state.js +30 -0
- package/dist/stores/connection-state.js.map +1 -0
- package/dist/stores/connection-store.d.ts +4 -40
- package/dist/stores/connection-store.d.ts.map +1 -1
- package/dist/stores/connection-store.js +7 -27
- package/dist/stores/connection-store.js.map +1 -1
- package/dist/stores/create-stores.d.ts +23 -0
- package/dist/stores/create-stores.d.ts.map +1 -0
- package/dist/stores/create-stores.js +28 -0
- package/dist/stores/create-stores.js.map +1 -0
- package/dist/stores/file-state.d.ts +53 -0
- package/dist/stores/file-state.d.ts.map +1 -0
- package/dist/stores/file-state.js +341 -0
- package/dist/stores/file-state.js.map +1 -0
- package/dist/stores/file-store.d.ts +4 -52
- package/dist/stores/file-store.d.ts.map +1 -1
- package/dist/stores/file-store.js +7 -336
- package/dist/stores/file-store.js.map +1 -1
- package/dist/stores/graph-state.d.ts +95 -0
- package/dist/stores/graph-state.d.ts.map +1 -0
- package/dist/stores/graph-state.js +252 -0
- package/dist/stores/graph-state.js.map +1 -0
- package/dist/stores/graph-store.d.ts +7 -83
- package/dist/stores/graph-store.d.ts.map +1 -1
- package/dist/stores/graph-store.js +8 -249
- package/dist/stores/graph-store.js.map +1 -1
- package/dist/stores/mask-state.d.ts +21 -0
- package/dist/stores/mask-state.d.ts.map +1 -0
- package/dist/stores/mask-state.js +9 -0
- package/dist/stores/mask-state.js.map +1 -0
- package/dist/stores/mask-store.d.ts +4 -21
- package/dist/stores/mask-store.d.ts.map +1 -1
- package/dist/stores/mask-store.js +7 -6
- package/dist/stores/mask-store.js.map +1 -1
- package/dist/stores/principal-state.d.ts +16 -0
- package/dist/stores/principal-state.d.ts.map +1 -0
- package/dist/stores/principal-state.js +31 -0
- package/dist/stores/principal-state.js.map +1 -0
- package/dist/stores/principal-store.d.ts +4 -15
- package/dist/stores/principal-store.d.ts.map +1 -1
- package/dist/stores/principal-store.js +7 -28
- package/dist/stores/principal-store.js.map +1 -1
- package/dist/stores/provider-state.d.ts +24 -0
- package/dist/stores/provider-state.d.ts.map +1 -0
- package/dist/stores/provider-state.js +68 -0
- package/dist/stores/provider-state.js.map +1 -0
- package/dist/stores/provider-store.d.ts +4 -23
- package/dist/stores/provider-store.d.ts.map +1 -1
- package/dist/stores/provider-store.js +7 -64
- package/dist/stores/provider-store.js.map +1 -1
- package/dist/stores/share-state.d.ts +29 -0
- package/dist/stores/share-state.d.ts.map +1 -0
- package/dist/stores/share-state.js +21 -0
- package/dist/stores/share-state.js.map +1 -0
- package/dist/stores/share-store.d.ts +4 -28
- package/dist/stores/share-store.d.ts.map +1 -1
- package/dist/stores/share-store.js +7 -18
- package/dist/stores/share-store.js.map +1 -1
- package/dist/stores/store-environment.d.ts +10 -0
- package/dist/stores/store-environment.d.ts.map +1 -0
- package/dist/stores/store-environment.js +2 -0
- package/dist/stores/store-environment.js.map +1 -0
- package/dist/stores/ui-state.d.ts +71 -0
- package/dist/stores/ui-state.d.ts.map +1 -0
- package/dist/stores/ui-state.js +58 -0
- package/dist/stores/ui-state.js.map +1 -0
- package/dist/stores/ui-store.d.ts +4 -45
- package/dist/stores/ui-store.d.ts.map +1 -1
- package/dist/stores/ui-store.js +7 -36
- package/dist/stores/ui-store.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/theme.css +150 -97
- package/dist/voice/asr-clients.d.ts +2 -1
- package/dist/voice/asr-clients.d.ts.map +1 -1
- package/dist/voice/asr-clients.js +16 -17
- package/dist/voice/asr-clients.js.map +1 -1
- package/dist/voice/use-dictation.d.ts.map +1 -1
- package/dist/voice/use-dictation.js +12 -8
- package/dist/voice/use-dictation.js.map +1 -1
- package/dist/voice/voice-state.d.ts +25 -0
- package/dist/voice/voice-state.d.ts.map +1 -0
- package/dist/voice/voice-state.js +29 -0
- package/dist/voice/voice-state.js.map +1 -0
- package/dist/voice/voice-store.d.ts +4 -25
- package/dist/voice/voice-store.d.ts.map +1 -1
- package/dist/voice/voice-store.js +7 -26
- package/dist/voice/voice-store.js.map +1 -1
- package/package.json +3 -2
- package/src/components/activity/activity-page.tsx +341 -160
- package/src/components/activity/activity-run-detail.tsx +81 -47
- package/src/components/activity/activity-run-list.tsx +27 -59
- package/src/components/activity/activity-views.tsx +155 -0
- package/src/components/activity/approval-card.tsx +117 -0
- package/src/components/activity/digest-card.tsx +25 -61
- package/src/components/activity/digest-summary.tsx +52 -0
- package/src/components/activity/push-switch.tsx +62 -0
- package/src/components/activity/push-toggle.tsx +51 -81
- package/src/components/activity/span-bits.tsx +60 -7
- package/src/components/chat/ask-user-card.tsx +292 -356
- package/src/components/chat/ask-user-typed.ts +77 -0
- package/src/components/chat/brain-markdown-links.tsx +4 -4
- package/src/components/chat/brain-markdown.tsx +4 -2
- package/src/components/chat/chat-page.tsx +41 -11
- package/src/components/chat/composer-view.tsx +194 -0
- package/src/components/chat/composer.tsx +117 -296
- package/src/components/chat/markdown-content.tsx +53 -2
- package/src/components/chat/mermaid-block.tsx +13 -5
- package/src/components/chat/mermaid-share.ts +8 -7
- package/src/components/chat/mermaid-viewer.tsx +3 -1
- package/src/components/chat/message-bubble.tsx +78 -94
- package/src/components/chat/message-share.ts +7 -7
- package/src/components/chat/renderers/bind.tsx +94 -0
- package/src/components/chat/renderers/brain-ui-tools.tsx +56 -0
- package/src/components/chat/renderers/claude-tools.tsx +3 -2
- package/src/components/chat/renderers/index.ts +15 -10
- package/src/components/chat/session-drawer.tsx +41 -138
- package/src/components/chat/session-list.tsx +113 -0
- package/src/components/chat/share-block.tsx +16 -12
- package/src/components/chat/share-card.tsx +2 -2
- package/src/components/chat/subagent-view.tsx +4 -4
- package/src/components/chat/tool-call-timeline.tsx +75 -26
- package/src/components/chat/tool-cards/block-card.tsx +145 -0
- package/src/components/chat/tool-cards/image-mask-card.tsx +214 -0
- package/src/components/chat/tool-cards/location-card.tsx +159 -0
- package/src/components/chat/tool-views.tsx +30 -60
- package/src/components/chat/transcript-turn.tsx +108 -0
- package/src/components/chat/use-chat-commands.ts +14 -16
- package/src/components/chat/welcome-state.tsx +36 -91
- package/src/components/connectivity/connection-gate.tsx +32 -24
- package/src/components/connectivity/login-form.tsx +122 -0
- package/src/components/connectivity/login-screen.tsx +45 -100
- package/src/components/dev/share-harness.tsx +2 -2
- package/src/components/files/file-panel.tsx +168 -0
- package/src/components/files/file-tree-view.tsx +127 -0
- package/src/components/files/file-tree.tsx +55 -109
- package/src/components/files/file-viewer-binary.tsx +3 -2
- package/src/components/files/file-viewer-frame.tsx +113 -0
- package/src/components/files/file-viewer.tsx +40 -95
- package/src/components/files/frontmatter-chips.tsx +42 -0
- package/src/components/files/frontmatter-panel.tsx +6 -71
- package/src/components/files/staleness.ts +29 -0
- package/src/components/graph/graph-canvas.tsx +24 -1
- package/src/components/graph/graph-controls-column.tsx +92 -0
- package/src/components/graph/graph-controls.tsx +83 -127
- package/src/components/graph/graph-form.tsx +183 -0
- package/src/components/graph/graph-maintenance.tsx +9 -14
- package/src/components/graph/graph-node-rail.tsx +147 -0
- package/src/components/graph/graph-page.tsx +189 -49
- package/src/components/graph/graph-scene.tsx +200 -30
- package/src/components/graph/lib/graph-helpers.ts +65 -43
- package/src/components/graph/node-card.tsx +64 -0
- package/src/components/graph/node-popover.tsx +28 -117
- package/src/components/graph/use-graph-theme.ts +69 -32
- package/src/components/graph/use-node-actions.ts +56 -0
- package/src/components/images/image-share.ts +4 -2
- package/src/components/images/image-viewer.tsx +3 -1
- package/src/components/images/mask-editor.tsx +7 -4
- package/src/components/layout/app-shell.tsx +5 -1
- package/src/components/layout/desktop-palette.tsx +151 -0
- package/src/components/layout/key-cap.tsx +15 -0
- package/src/components/layout/mobile-tab-bar.tsx +80 -157
- package/src/components/layout/shortcut-switch.tsx +32 -0
- package/src/components/layout/side-rail.tsx +77 -150
- package/src/components/layout/slide-panel.tsx +49 -6
- package/src/components/layout/theme.tsx +67 -0
- package/src/components/quick-actions/add-form.tsx +196 -0
- package/src/components/quick-actions/add-modal.tsx +32 -153
- package/src/components/quick-actions/search-modal.tsx +15 -5
- package/src/components/quick-actions/streaming-modal.tsx +57 -72
- package/src/components/quick-actions/streaming-output.tsx +112 -0
- package/src/components/quick-actions/whatsup-modal.tsx +53 -59
- package/src/components/settings/devices-agents-tab.tsx +60 -152
- package/src/components/settings/models-list.tsx +299 -0
- package/src/components/settings/models-tab.tsx +63 -337
- package/src/components/settings/one-time-agent-credential.tsx +1 -1
- package/src/components/settings/passkey-list.tsx +201 -0
- package/src/components/settings/passkey-tab.tsx +53 -197
- package/src/components/settings/pi-accounts-list.tsx +128 -0
- package/src/components/settings/pi-accounts.tsx +71 -170
- package/src/components/settings/principal-list.tsx +172 -0
- package/src/components/settings/settings-panel.tsx +239 -25
- package/src/components/settings/skills-list.tsx +276 -0
- package/src/components/settings/skills-tab.tsx +82 -269
- package/src/components/settings/tool-permissions-list.tsx +54 -0
- package/src/components/settings/tool-permissions.tsx +27 -46
- package/src/components/settings/web-search-chain.tsx +300 -0
- package/src/components/settings/web-search-settings.tsx +58 -328
- package/src/components/share/share-menu.tsx +19 -4
- package/src/components/voice/dictation-sheet.tsx +5 -5
- package/src/components/voice/mic-button.tsx +1 -1
- package/src/components/voice/review-card.tsx +1 -1
- package/src/config.ts +21 -7
- package/src/connection.ts +443 -0
- package/src/default-root.ts +16 -0
- package/src/hooks/use-color-scheme.ts +36 -0
- package/src/hooks/use-fine-pointer.ts +15 -0
- package/src/hooks/use-hash-routes.ts +4 -2
- package/src/hooks/use-media-query.ts +35 -0
- package/src/hooks/use-share-intake.ts +32 -12
- package/src/hooks/use-vpn-status.ts +18 -17
- package/src/hooks/use-websocket.ts +12 -428
- package/src/hooks/websocket-handlers/activity.ts +4 -5
- package/src/hooks/websocket-handlers/chat.ts +28 -6
- package/src/hooks/websocket-handlers/connection.ts +4 -6
- package/src/hooks/websocket-handlers/mask.ts +2 -3
- package/src/hooks/websocket-handlers/provider.ts +4 -6
- package/src/hooks/websocket-handlers/types.ts +6 -2
- package/src/index.ts +7 -3
- package/src/lib/api-client.ts +426 -384
- package/src/lib/backend.ts +20 -10
- package/src/lib/diff.ts +28 -62
- package/src/lib/light-dark.ts +83 -0
- package/src/lib/mermaid-theme.ts +183 -214
- package/src/lib/passkeys.ts +12 -4
- package/src/lib/push-registration.ts +19 -2
- package/src/lib/share-intake.ts +6 -3
- package/src/lib/share.ts +7 -4
- package/src/lib/single-key.ts +47 -0
- package/src/lib/tool-names.ts +31 -8
- package/src/root-context.tsx +40 -0
- package/src/root.ts +83 -0
- package/src/stores/activity-state.ts +295 -0
- package/src/stores/activity-store.ts +11 -285
- package/src/stores/chat-state.ts +822 -0
- package/src/stores/chat-store.ts +11 -705
- package/src/stores/connection-state.ts +78 -0
- package/src/stores/connection-store.ts +11 -76
- package/src/stores/create-stores.ts +31 -0
- package/src/stores/file-state.ts +399 -0
- package/src/stores/file-store.ts +9 -390
- package/src/stores/graph-state.ts +368 -0
- package/src/stores/graph-store.ts +10 -355
- package/src/stores/mask-state.ts +30 -0
- package/src/stores/mask-store.ts +10 -27
- package/src/stores/principal-state.ts +42 -0
- package/src/stores/principal-store.ts +10 -37
- package/src/stores/provider-state.ts +103 -0
- package/src/stores/provider-store.ts +10 -95
- package/src/stores/share-state.ts +56 -0
- package/src/stores/share-store.ts +11 -54
- package/src/stores/store-environment.ts +10 -0
- package/src/stores/ui-state.ts +143 -0
- package/src/stores/ui-store.ts +11 -93
- package/src/styles.css +4 -1
- package/src/theme.css +150 -97
- package/src/voice/asr-clients.ts +17 -17
- package/src/voice/use-dictation.ts +11 -8
- package/src/voice/voice-state.ts +57 -0
- package/src/voice/voice-store.ts +11 -55
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-call-timeline.js","sourceRoot":"","sources":["../../../src/components/chat/tool-call-timeline.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-call-timeline.js","sourceRoot":"","sources":["../../../src/components/chat/tool-call-timeline.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `show_block` result: one of the kit's answer blocks, drawn inline (D41).
|
|
3
|
+
*
|
|
4
|
+
* A switch typed by the contract's payload, handing each variant to its kit
|
|
5
|
+
* component. That typing is the drift check the contract promised: a schema
|
|
6
|
+
* field the kit does not accept fails here, and the kit's own tone unions are
|
|
7
|
+
* asserted equal to the schema's lists in `tests/block-contract.test-d.ts`.
|
|
8
|
+
*
|
|
9
|
+
* Icons come from the model as strings; the kit's `Icon` renders an empty
|
|
10
|
+
* box for a key it does not know, so unknown keys are dropped before the
|
|
11
|
+
* prop is handed on. Optional TEXT props are the other translation: the kit
|
|
12
|
+
* ports the design's demo defaults, so a `QuoteCard` with no `source` names
|
|
13
|
+
* a forecast from the Odysseus fixture world and a `ContactCard` with no
|
|
14
|
+
* `label` is Penelope, and omitted `facts` or `ticks` draw a demo list. Each
|
|
15
|
+
* of those components honours an empty string or an empty array as
|
|
16
|
+
* "cleared", so an omitted field is handed on as `""` or `[]` rather than
|
|
17
|
+
* `undefined`. Everything else is passed through untouched: the schema
|
|
18
|
+
* already rejected what the kit cannot draw.
|
|
19
|
+
*/
|
|
20
|
+
import { type IconName } from "@schlessera/brain-ui-kit";
|
|
21
|
+
import type { ShowBlockPayload } from "@schlessera/brain-ui-sdk/client";
|
|
22
|
+
/** A kit icon key, or nothing when the model named one the kit lacks. */
|
|
23
|
+
export declare function kitIcon(name: string | undefined): IconName | undefined;
|
|
24
|
+
/** The collapsed one-liner for the trace: `comparison · 3 columns · 4 rows`. */
|
|
25
|
+
export declare function blockSummary({ block }: ShowBlockPayload): string;
|
|
26
|
+
/** Bound to `SHOW_BLOCK_CONTRACT`; receives the parsed payload as props. */
|
|
27
|
+
export declare function BlockCard({ block }: ShowBlockPayload): import("react").JSX.Element;
|
|
28
|
+
//# sourceMappingURL=block-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/tool-cards/block-card.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAaL,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAS,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAE/E,yEAAyE;AACzE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAKtE;AAKD,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,gBAAgB,GAAG,MAAM,CA0BhE;AA8DD,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,gBAAgB,+BAMpD"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* The `show_block` result: one of the kit's answer blocks, drawn inline (D41).
|
|
4
|
+
*
|
|
5
|
+
* A switch typed by the contract's payload, handing each variant to its kit
|
|
6
|
+
* component. That typing is the drift check the contract promised: a schema
|
|
7
|
+
* field the kit does not accept fails here, and the kit's own tone unions are
|
|
8
|
+
* asserted equal to the schema's lists in `tests/block-contract.test-d.ts`.
|
|
9
|
+
*
|
|
10
|
+
* Icons come from the model as strings; the kit's `Icon` renders an empty
|
|
11
|
+
* box for a key it does not know, so unknown keys are dropped before the
|
|
12
|
+
* prop is handed on. Optional TEXT props are the other translation: the kit
|
|
13
|
+
* ports the design's demo defaults, so a `QuoteCard` with no `source` names
|
|
14
|
+
* a forecast from the Odysseus fixture world and a `ContactCard` with no
|
|
15
|
+
* `label` is Penelope, and omitted `facts` or `ticks` draw a demo list. Each
|
|
16
|
+
* of those components honours an empty string or an empty array as
|
|
17
|
+
* "cleared", so an omitted field is handed on as `""` or `[]` rather than
|
|
18
|
+
* `undefined`. Everything else is passed through untouched: the schema
|
|
19
|
+
* already rejected what the kit cannot draw.
|
|
20
|
+
*/
|
|
21
|
+
import { BarList, ComparisonTable, ContactCard, DataTable, ICONS, QuoteCard, Receipt, ScheduleList, StatTiles, StepList, TimelineList, TrendChart, } from "@schlessera/brain-ui-kit";
|
|
22
|
+
/** A kit icon key, or nothing when the model named one the kit lacks. */
|
|
23
|
+
export function kitIcon(name) {
|
|
24
|
+
// An own-property check: `"constructor" in ICONS` is true through the
|
|
25
|
+
// prototype, and the kit would then try to render a function that is not
|
|
26
|
+
// a component.
|
|
27
|
+
return name !== undefined && Object.hasOwn(ICONS, name) ? name : undefined;
|
|
28
|
+
}
|
|
29
|
+
/** An omitted optional text prop, cleared rather than left to the kit's demo default. */
|
|
30
|
+
const text = (value) => value ?? "";
|
|
31
|
+
/** The collapsed one-liner for the trace: `comparison · 3 columns · 4 rows`. */
|
|
32
|
+
export function blockSummary({ block }) {
|
|
33
|
+
const count = (n, noun) => `${n} ${noun}${n === 1 ? "" : "s"}`;
|
|
34
|
+
switch (block.kind) {
|
|
35
|
+
case "comparison":
|
|
36
|
+
return `comparison · ${count(block.columns.length, "column")} · ${count(block.rows.length, "row")}`;
|
|
37
|
+
case "stats":
|
|
38
|
+
return `stats · ${count(block.tiles.length, "tile")}`;
|
|
39
|
+
case "trend":
|
|
40
|
+
return `trend · ${block.label ?? block.value ?? count(block.values.length, "point")}`;
|
|
41
|
+
case "table":
|
|
42
|
+
return `table · ${count(block.columns.length, "column")} · ${count(block.rows.length, "row")}`;
|
|
43
|
+
case "bars":
|
|
44
|
+
return `bars · ${count(block.rows.length, "row")}`;
|
|
45
|
+
case "receipt":
|
|
46
|
+
return `receipt · ${block.title ?? count(block.rows.length, "row")}`;
|
|
47
|
+
case "steps":
|
|
48
|
+
return `steps · ${count(block.steps.length, "step")}`;
|
|
49
|
+
case "timeline":
|
|
50
|
+
return `timeline · ${count(block.items.length, "event")}`;
|
|
51
|
+
case "schedule":
|
|
52
|
+
return `schedule · ${count(block.groups.length, "day")}`;
|
|
53
|
+
case "quote":
|
|
54
|
+
return `quote · ${block.source ?? "unattributed"}`;
|
|
55
|
+
case "contact":
|
|
56
|
+
return `contact · ${block.label}`;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function BlockView({ block }) {
|
|
60
|
+
switch (block.kind) {
|
|
61
|
+
case "comparison": {
|
|
62
|
+
const { kind: _kind, footnote, ...props } = block;
|
|
63
|
+
return _jsx(ComparisonTable, { ...props, footnote: text(footnote) });
|
|
64
|
+
}
|
|
65
|
+
case "stats":
|
|
66
|
+
return (_jsx(StatTiles, { tiles: block.tiles.map((tile) => ({ ...tile, icon: kitIcon(tile.icon) })) }));
|
|
67
|
+
case "trend": {
|
|
68
|
+
const { kind: _kind, label, value, ticks, ...props } = block;
|
|
69
|
+
return _jsx(TrendChart, { ...props, label: text(label), value: text(value), ticks: ticks ?? [] });
|
|
70
|
+
}
|
|
71
|
+
case "table": {
|
|
72
|
+
const { kind: _kind, ...props } = block;
|
|
73
|
+
return _jsx(DataTable, { ...props });
|
|
74
|
+
}
|
|
75
|
+
case "bars":
|
|
76
|
+
return _jsx(BarList, { rows: block.rows });
|
|
77
|
+
case "receipt": {
|
|
78
|
+
const { kind: _kind, title, titleIcon, footnote, ...props } = block;
|
|
79
|
+
return (_jsx(Receipt, { ...props, title: text(title), titleIcon: kitIcon(titleIcon), footnote: text(footnote) }));
|
|
80
|
+
}
|
|
81
|
+
case "steps": {
|
|
82
|
+
const { kind: _kind, ...props } = block;
|
|
83
|
+
return _jsx(StepList, { ...props });
|
|
84
|
+
}
|
|
85
|
+
case "timeline":
|
|
86
|
+
return _jsx(TimelineList, { items: block.items });
|
|
87
|
+
case "schedule":
|
|
88
|
+
return _jsx(ScheduleList, { groups: block.groups });
|
|
89
|
+
case "quote": {
|
|
90
|
+
const { kind: _kind, icon, source, locator, note, ...props } = block;
|
|
91
|
+
return (_jsx(QuoteCard, { ...props, source: text(source), locator: text(locator), note: text(note), icon: kitIcon(icon) }));
|
|
92
|
+
}
|
|
93
|
+
case "contact": {
|
|
94
|
+
const { kind: _kind, contactKind, role, facts, ...props } = block;
|
|
95
|
+
return _jsx(ContactCard, { ...props, kind: contactKind, role: text(role), facts: facts ?? [] });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/** Bound to `SHOW_BLOCK_CONTRACT`; receives the parsed payload as props. */
|
|
100
|
+
export function BlockCard({ block }) {
|
|
101
|
+
return (_jsx("div", { "data-block": block.kind, children: _jsx(BlockView, { block: block }) }));
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=block-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-card.js","sourceRoot":"","sources":["../../../../src/components/chat/tool-cards/block-card.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `request_image_mask` result: a receipt, not a path (D38 §2).
|
|
3
|
+
*
|
|
4
|
+
* The source thumb — hatched, as everywhere: no remote image loads inline for
|
|
5
|
+
* the source — stacked ABOVE a kit `Receipt` (the truncation rule: a receipt
|
|
6
|
+
* value column under ~160px means change the layout, not the break rule).
|
|
7
|
+
*
|
|
8
|
+
* Typed `ImageMaskPayload`, so the rows are the fields the handler actually
|
|
9
|
+
* sends: `imagePath`, `maskPath`, `bytes`. The design also draws a region and
|
|
10
|
+
* a coverage row; the payload carries neither. The seventh drop's ruling 8
|
|
11
|
+
* settles what happens then: **state the absence**. The receipt's `region`
|
|
12
|
+
* row reads "region not recorded", in gold, rather than disappearing — a
|
|
13
|
+
* load-bearing fact that vanishes cannot be told apart from a whole-image
|
|
14
|
+
* mask, and a later answer citing that receipt would be citing a gap. A
|
|
15
|
+
* caller that does supply a region (the view test) gets the figures.
|
|
16
|
+
*
|
|
17
|
+
* And the mask itself is DRAWN over the thumb whenever its bytes exist: the
|
|
18
|
+
* PNG the handler wrote is fetched from the files API and laid over the
|
|
19
|
+
* hatch, with the teal region fill beneath it so the transparent (editable)
|
|
20
|
+
* pixels show as the user's answer. When the bytes do not exist the thumb
|
|
21
|
+
* shows the source alone with a mono line saying the mask was not rendered.
|
|
22
|
+
*
|
|
23
|
+
* Failure is a fact about the evidence, not a dialog: a declined or failed
|
|
24
|
+
* mask comes back as a tool error with a message, and `ImageMaskFallback`
|
|
25
|
+
* states it in a red boxed mono `Callout` from the result's own words.
|
|
26
|
+
*/
|
|
27
|
+
import { type ReceiptRow } from "@schlessera/brain-ui-kit";
|
|
28
|
+
import type { ImageMaskPayload, ToolCallView } from "@schlessera/brain-ui-sdk/client";
|
|
29
|
+
/** A normalised rectangle over the source image: every value in 0..1. */
|
|
30
|
+
export interface MaskRegion {
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
w: number;
|
|
34
|
+
h: number;
|
|
35
|
+
}
|
|
36
|
+
export declare const REGION_NOT_RECORDED = "region not recorded";
|
|
37
|
+
export declare const MASK_NOT_RENDERED = "mask not rendered";
|
|
38
|
+
/** The mask file exists with content: the handler reports the PNG's byte length. */
|
|
39
|
+
export declare function hasMaskBytes(payload: Pick<ImageMaskPayload, "bytes">): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* The thumb: the hatched source, the drawn region when a caller has one, and
|
|
42
|
+
* the mask image over both when `maskUrl` is given. Exported for the view
|
|
43
|
+
* test; the bound card computes `maskUrl` from the payload.
|
|
44
|
+
*/
|
|
45
|
+
export declare function MaskThumb({ region, label, maskUrl, maskShown, onMaskLoad, onMaskError, }: {
|
|
46
|
+
region?: MaskRegion;
|
|
47
|
+
label: string;
|
|
48
|
+
maskUrl?: string;
|
|
49
|
+
/** The teal fill sits under the mask only once the PNG has loaded: until
|
|
50
|
+
* then, or after a failure, a full teal frame would read as a whole-image
|
|
51
|
+
* mask that was never drawn. */
|
|
52
|
+
maskShown?: boolean;
|
|
53
|
+
onMaskLoad?: () => void;
|
|
54
|
+
onMaskError?: () => void;
|
|
55
|
+
}): import("react").JSX.Element;
|
|
56
|
+
/** The rows the receipt prints. The region row is always there: figures when
|
|
57
|
+
* a caller has them, the stated absence when the payload carries none. */
|
|
58
|
+
export declare function maskReceiptRows(payload: ImageMaskPayload, region?: MaskRegion): ReceiptRow[];
|
|
59
|
+
export declare function ImageMaskResultCard(payload: ImageMaskPayload & {
|
|
60
|
+
region?: MaskRegion;
|
|
61
|
+
}): import("react").JSX.Element;
|
|
62
|
+
/**
|
|
63
|
+
* No payload: the user declined, the editor failed, or an older server
|
|
64
|
+
* answered with a sentence. An error is stated as a fact in red; anything
|
|
65
|
+
* else is shown as the text it is.
|
|
66
|
+
*/
|
|
67
|
+
export declare function ImageMaskFallback({ tool }: {
|
|
68
|
+
tool: ToolCallView;
|
|
69
|
+
}): import("react").JSX.Element | null;
|
|
70
|
+
//# sourceMappingURL=image-mask-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-mask-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/tool-cards/image-mask-card.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EAA0C,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACnG,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAItF,yEAAyE;AACzE,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAKD,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AACzD,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAWrD,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG,OAAO,CAE9E;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,KAAK,EACL,OAAO,EACP,SAAS,EACT,UAAU,EACV,WAAW,GACZ,EAAE;IACD,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;oCAEgC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B,+BAqDA;AAED;0EAC0E;AAC1E,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAe5F;AAMD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,+BAiCtF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,sCAYjE"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* The `request_image_mask` result: a receipt, not a path (D38 §2).
|
|
4
|
+
*
|
|
5
|
+
* The source thumb — hatched, as everywhere: no remote image loads inline for
|
|
6
|
+
* the source — stacked ABOVE a kit `Receipt` (the truncation rule: a receipt
|
|
7
|
+
* value column under ~160px means change the layout, not the break rule).
|
|
8
|
+
*
|
|
9
|
+
* Typed `ImageMaskPayload`, so the rows are the fields the handler actually
|
|
10
|
+
* sends: `imagePath`, `maskPath`, `bytes`. The design also draws a region and
|
|
11
|
+
* a coverage row; the payload carries neither. The seventh drop's ruling 8
|
|
12
|
+
* settles what happens then: **state the absence**. The receipt's `region`
|
|
13
|
+
* row reads "region not recorded", in gold, rather than disappearing — a
|
|
14
|
+
* load-bearing fact that vanishes cannot be told apart from a whole-image
|
|
15
|
+
* mask, and a later answer citing that receipt would be citing a gap. A
|
|
16
|
+
* caller that does supply a region (the view test) gets the figures.
|
|
17
|
+
*
|
|
18
|
+
* And the mask itself is DRAWN over the thumb whenever its bytes exist: the
|
|
19
|
+
* PNG the handler wrote is fetched from the files API and laid over the
|
|
20
|
+
* hatch, with the teal region fill beneath it so the transparent (editable)
|
|
21
|
+
* pixels show as the user's answer. When the bytes do not exist the thumb
|
|
22
|
+
* shows the source alone with a mono line saying the mask was not rendered.
|
|
23
|
+
*
|
|
24
|
+
* Failure is a fact about the evidence, not a dialog: a declined or failed
|
|
25
|
+
* mask comes back as a tool error with a message, and `ImageMaskFallback`
|
|
26
|
+
* states it in a red boxed mono `Callout` from the result's own words.
|
|
27
|
+
*/
|
|
28
|
+
import { useState } from "react";
|
|
29
|
+
import { Callout, Receipt, Surface, color, font } from "@schlessera/brain-ui-kit";
|
|
30
|
+
import { useBrainUiRoot } from "../../../root-context.js";
|
|
31
|
+
import { ClampedPre } from "../tool-views.js";
|
|
32
|
+
const THUMB_W = 160;
|
|
33
|
+
const THUMB_H = 100;
|
|
34
|
+
export const REGION_NOT_RECORDED = "region not recorded";
|
|
35
|
+
export const MASK_NOT_RENDERED = "mask not rendered";
|
|
36
|
+
/** The kit's image placeholder: raised stripes on the surface, no pixels. */
|
|
37
|
+
const HATCH = `repeating-linear-gradient(135deg,${color.raised} 0 6px,var(--bk-hatch-stripe) 6px 12px)`;
|
|
38
|
+
function bytesLabel(bytes) {
|
|
39
|
+
if (bytes >= 1024 * 1024)
|
|
40
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
41
|
+
if (bytes >= 1024)
|
|
42
|
+
return `${Math.round(bytes / 1024)} KB`;
|
|
43
|
+
return `${bytes} B`;
|
|
44
|
+
}
|
|
45
|
+
/** The mask file exists with content: the handler reports the PNG's byte length. */
|
|
46
|
+
export function hasMaskBytes(payload) {
|
|
47
|
+
return typeof payload.bytes === "number" && payload.bytes > 0;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The thumb: the hatched source, the drawn region when a caller has one, and
|
|
51
|
+
* the mask image over both when `maskUrl` is given. Exported for the view
|
|
52
|
+
* test; the bound card computes `maskUrl` from the payload.
|
|
53
|
+
*/
|
|
54
|
+
export function MaskThumb({ region, label, maskUrl, maskShown, onMaskLoad, onMaskError, }) {
|
|
55
|
+
const frame = {
|
|
56
|
+
position: "relative",
|
|
57
|
+
width: "100%",
|
|
58
|
+
maxWidth: THUMB_W * 2,
|
|
59
|
+
aspectRatio: `${THUMB_W} / ${THUMB_H}`,
|
|
60
|
+
borderRadius: 9,
|
|
61
|
+
border: `1px solid ${color.edge}`,
|
|
62
|
+
background: HATCH,
|
|
63
|
+
overflow: "hidden",
|
|
64
|
+
};
|
|
65
|
+
const drawn = region
|
|
66
|
+
? {
|
|
67
|
+
position: "absolute",
|
|
68
|
+
left: `${region.x * 100}%`,
|
|
69
|
+
top: `${region.y * 100}%`,
|
|
70
|
+
width: `${region.w * 100}%`,
|
|
71
|
+
height: `${region.h * 100}%`,
|
|
72
|
+
border: "1.5px dashed var(--bk-teal-ink)",
|
|
73
|
+
background: "var(--bk-mask-region-fill)",
|
|
74
|
+
borderRadius: 3,
|
|
75
|
+
boxSizing: "border-box",
|
|
76
|
+
}
|
|
77
|
+
: undefined;
|
|
78
|
+
// The teal fill sits under the mask: where the PNG is transparent — the
|
|
79
|
+
// editable region, the user's own answer — the teal shows through.
|
|
80
|
+
const fill = { position: "absolute", inset: 0, background: "var(--bk-mask-region-fill)" };
|
|
81
|
+
const overlay = {
|
|
82
|
+
position: "absolute",
|
|
83
|
+
inset: 0,
|
|
84
|
+
width: "100%",
|
|
85
|
+
height: "100%",
|
|
86
|
+
objectFit: "contain",
|
|
87
|
+
};
|
|
88
|
+
return (_jsxs("div", { role: "img", "aria-label": label, style: frame, "data-mask-thumb": true, children: [drawn ? _jsx("div", { style: drawn, "data-mask-region": true }) : null, maskUrl ? (_jsxs(_Fragment, { children: [maskShown ? _jsx("div", { style: fill, "aria-hidden": "true" }) : null, _jsx("img", { src: maskUrl, alt: "", style: { ...overlay, visibility: maskShown ? "visible" : "hidden" }, "data-mask-overlay": true, "data-mask-shown": maskShown ? "" : undefined, onLoad: onMaskLoad, onError: onMaskError })] })) : null] }));
|
|
89
|
+
}
|
|
90
|
+
/** The rows the receipt prints. The region row is always there: figures when
|
|
91
|
+
* a caller has them, the stated absence when the payload carries none. */
|
|
92
|
+
export function maskReceiptRows(payload, region) {
|
|
93
|
+
const rows = [];
|
|
94
|
+
if (region) {
|
|
95
|
+
rows.push({
|
|
96
|
+
k: "region",
|
|
97
|
+
v: `${pct(region.x)},${pct(region.y)} → ${pct(region.x + region.w)},${pct(region.y + region.h)}`,
|
|
98
|
+
tone: "teal",
|
|
99
|
+
});
|
|
100
|
+
rows.push({ k: "covers", v: `${pct(region.w * region.h)} of the image`, tone: "teal" });
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
rows.push({ k: "region", v: REGION_NOT_RECORDED, tone: "gold" });
|
|
104
|
+
}
|
|
105
|
+
rows.push({ k: "source", v: payload.imagePath });
|
|
106
|
+
rows.push({ k: "mask", v: `${payload.maskPath} · ${bytesLabel(payload.bytes)}` });
|
|
107
|
+
return rows;
|
|
108
|
+
}
|
|
109
|
+
function pct(fraction) {
|
|
110
|
+
return `${Math.round(fraction * 100)}%`;
|
|
111
|
+
}
|
|
112
|
+
export function ImageMaskResultCard(payload) {
|
|
113
|
+
const root = useBrainUiRoot();
|
|
114
|
+
const region = payload.region;
|
|
115
|
+
const hasBytes = hasMaskBytes(payload);
|
|
116
|
+
const maskUrl = hasBytes
|
|
117
|
+
? `${root.apiBase()}/files/content?path=${encodeURIComponent(payload.maskPath)}&raw=1`
|
|
118
|
+
: undefined;
|
|
119
|
+
// The bytes say a mask was written; only the browser can say it loaded.
|
|
120
|
+
// A file gone since, or a path the raw route refuses, must not leave a
|
|
121
|
+
// full teal frame standing in for a mask nobody can see.
|
|
122
|
+
const [maskState, setMaskState] = useState("loading");
|
|
123
|
+
const rendered = hasBytes && maskState === "shown";
|
|
124
|
+
const note = { font: `400 10.5px/1.5 ${font.mono}`, color: color.inkMute };
|
|
125
|
+
return (_jsx(Surface, { tone: "teal", label: "Mask drawn", labelIcon: "confirm", meta: "by you", pad: 12, children: _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [_jsx(MaskThumb, { region: region, maskUrl: maskUrl, maskShown: rendered, onMaskLoad: () => setMaskState("shown"), onMaskError: () => setMaskState("failed"), label: rendered
|
|
126
|
+
? `Mask ${payload.maskPath} over the source ${payload.imagePath}`
|
|
127
|
+
: `Source ${payload.imagePath}; the mask is in ${payload.maskPath}` }), !hasBytes || maskState === "failed" ? _jsx("div", { style: note, children: MASK_NOT_RENDERED }) : null, _jsx(Receipt, { keyWidth: 58, rows: maskReceiptRows(payload, region) })] }) }));
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* No payload: the user declined, the editor failed, or an older server
|
|
131
|
+
* answered with a sentence. An error is stated as a fact in red; anything
|
|
132
|
+
* else is shown as the text it is.
|
|
133
|
+
*/
|
|
134
|
+
export function ImageMaskFallback({ tool }) {
|
|
135
|
+
if (!tool.output)
|
|
136
|
+
return null;
|
|
137
|
+
if (!tool.isError)
|
|
138
|
+
return _jsx(ClampedPre, { text: tool.output });
|
|
139
|
+
const source = typeof tool.input.imagePath === "string" ? tool.input.imagePath : null;
|
|
140
|
+
return (_jsx(Callout, { tone: "red", variant: "boxed", mono: true, text: `no mask drawn${source ? ` on ${source}` : ""} · ${tool.output.trim()}` }));
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=image-mask-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-mask-card.js","sourceRoot":"","sources":["../../../../src/components/chat/tool-cards/image-mask-card.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `get_current_location` result, drawn on the kit's `MapView` (S9: the
|
|
3
|
+
* first in-chat component rendered end to end from its contract; D37 moved
|
|
4
|
+
* the span rule, the uncertainty ring, the note and the width cap into the
|
|
5
|
+
* kit, so the card is now the fetch and the caption).
|
|
6
|
+
*
|
|
7
|
+
* Typed `LocationPayload` — the contract's payload type — so the fields it
|
|
8
|
+
* reads are the fields the handler is contracted to send. The pin, the
|
|
9
|
+
* span and the caption are pure functions of that payload. What is not pure
|
|
10
|
+
* is the shoreline: `MapView` fetches nothing (kit D13), so this card is the
|
|
11
|
+
* container that asks the server's `/geo/coastline` for the geometry around
|
|
12
|
+
* the fix and hands it down as `paths` and `land`. The request is cancelled
|
|
13
|
+
* on unmount, and any failure — no server, an older server without the
|
|
14
|
+
* route, an Overpass outage — leaves a map with a correct pin, a graticule
|
|
15
|
+
* and a true scale bar, which is a good locator on its own.
|
|
16
|
+
*
|
|
17
|
+
* The bounding box asked for is the envelope of every box `MapView` can draw
|
|
18
|
+
* for the pin — 1.5 spans across, 1.0 down, the same rule the kit's fixture
|
|
19
|
+
* generator uses (`viewBox` says why those numbers). The server clips to the
|
|
20
|
+
* box it is given and quantises its cache key to ~110 m, so the request has
|
|
21
|
+
* to cover the drawn frame itself; and because the envelope is a function of
|
|
22
|
+
* the pin and the span alone, the same fix at any card width is one cache
|
|
23
|
+
* entry rather than a fresh request to a shared service.
|
|
24
|
+
*/
|
|
25
|
+
import { type MapPath } from "@schlessera/brain-ui-kit";
|
|
26
|
+
import type { LocationPayload } from "@schlessera/brain-ui-sdk/client";
|
|
27
|
+
import type { CoastlineGeometry } from "../../../lib/api-client.js";
|
|
28
|
+
/**
|
|
29
|
+
* The view's span across its width, in kilometres — the kit's own rule
|
|
30
|
+
* (`max(1.6 km, 6 × accuracy)`, D37), repeated here only so the coastline
|
|
31
|
+
* request covers the box the kit will draw. The kit computes it again from
|
|
32
|
+
* `accuracyM`; the two must agree, and `tests/location-card.test.ts` pins
|
|
33
|
+
* this one.
|
|
34
|
+
*/
|
|
35
|
+
export declare function spanFor(accuracyMeters: number): number;
|
|
36
|
+
/**
|
|
37
|
+
* The box to fetch for one pin, as `[west, south, east, north]`: the span at
|
|
38
|
+
* the pin's latitude, grown to the envelope above and centred on the pin.
|
|
39
|
+
* Clamped to the server's 5° limit and to the poles.
|
|
40
|
+
*/
|
|
41
|
+
export declare function viewBox(lat: number, lon: number, spanKm: number): [number, number, number, number];
|
|
42
|
+
/** The server's tiers as `MapView` paths, at the kit fixtures' weights. */
|
|
43
|
+
export declare function geometryPaths(geo: CoastlineGeometry): MapPath[];
|
|
44
|
+
export declare function LocationResultCard({ latitude, longitude, accuracyMeters, place, address, note, retrievedAt, }: LocationPayload): import("react").JSX.Element;
|
|
45
|
+
//# sourceMappingURL=location-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"location-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/tool-cards/location-card.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAyB,KAAK,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AA6BpE;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CASlG;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,EAAE,CAM/D;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,SAAS,EACT,cAAc,EACd,KAAK,EACL,OAAO,EACP,IAAI,EACJ,WAAW,GACZ,EAAE,eAAe,+BAwDjB"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* The `get_current_location` result, drawn on the kit's `MapView` (S9: the
|
|
4
|
+
* first in-chat component rendered end to end from its contract; D37 moved
|
|
5
|
+
* the span rule, the uncertainty ring, the note and the width cap into the
|
|
6
|
+
* kit, so the card is now the fetch and the caption).
|
|
7
|
+
*
|
|
8
|
+
* Typed `LocationPayload` — the contract's payload type — so the fields it
|
|
9
|
+
* reads are the fields the handler is contracted to send. The pin, the
|
|
10
|
+
* span and the caption are pure functions of that payload. What is not pure
|
|
11
|
+
* is the shoreline: `MapView` fetches nothing (kit D13), so this card is the
|
|
12
|
+
* container that asks the server's `/geo/coastline` for the geometry around
|
|
13
|
+
* the fix and hands it down as `paths` and `land`. The request is cancelled
|
|
14
|
+
* on unmount, and any failure — no server, an older server without the
|
|
15
|
+
* route, an Overpass outage — leaves a map with a correct pin, a graticule
|
|
16
|
+
* and a true scale bar, which is a good locator on its own.
|
|
17
|
+
*
|
|
18
|
+
* The bounding box asked for is the envelope of every box `MapView` can draw
|
|
19
|
+
* for the pin — 1.5 spans across, 1.0 down, the same rule the kit's fixture
|
|
20
|
+
* generator uses (`viewBox` says why those numbers). The server clips to the
|
|
21
|
+
* box it is given and quantises its cache key to ~110 m, so the request has
|
|
22
|
+
* to cover the drawn frame itself; and because the envelope is a function of
|
|
23
|
+
* the pin and the span alone, the same fix at any card width is one cache
|
|
24
|
+
* entry rather than a fresh request to a shared service.
|
|
25
|
+
*/
|
|
26
|
+
import { MapView } from "@schlessera/brain-ui-kit";
|
|
27
|
+
import { useEffect, useState } from "react";
|
|
28
|
+
import { useBrainApi } from "../../../root-context.js";
|
|
29
|
+
/** 4 decimal places is ~11 m — finer than any browser fix is honest about. */
|
|
30
|
+
function coord(value) {
|
|
31
|
+
return value.toFixed(4);
|
|
32
|
+
}
|
|
33
|
+
function accuracy(meters) {
|
|
34
|
+
return meters >= 1000
|
|
35
|
+
? `±${(meters / 1000).toFixed(meters >= 10_000 ? 0 : 1)} km`
|
|
36
|
+
: `±${Math.round(meters)} m`;
|
|
37
|
+
}
|
|
38
|
+
/** `MapView`'s own default projection width. */
|
|
39
|
+
const WIDTH = 330;
|
|
40
|
+
/**
|
|
41
|
+
* How far past the span to fetch, per axis, as a multiple of `spanKm`. The
|
|
42
|
+
* kit's ruling (README, sixth pass, §10) bounds a card at 420px wide with a
|
|
43
|
+
* viewport of 110-260px, and `MapView` draws a single pin as 1.24 spans across
|
|
44
|
+
* (12% margins each side) at any width and 1.24 × H/W spans down: 0.32 for
|
|
45
|
+
* 420×110, 0.77 for 420×260, and this card leaves the height at its 170
|
|
46
|
+
* default, so 1.0 down covers it at any width from 211px up. The square
|
|
47
|
+
* 2.4-span bleed this replaced fetched geometry of which only 23% could ever
|
|
48
|
+
* be drawn (measured on the kit's Messina fixture).
|
|
49
|
+
*/
|
|
50
|
+
const BLEED_ACROSS = 1.5;
|
|
51
|
+
const BLEED_DOWN = 1.0;
|
|
52
|
+
/**
|
|
53
|
+
* The view's span across its width, in kilometres — the kit's own rule
|
|
54
|
+
* (`max(1.6 km, 6 × accuracy)`, D37), repeated here only so the coastline
|
|
55
|
+
* request covers the box the kit will draw. The kit computes it again from
|
|
56
|
+
* `accuracyM`; the two must agree, and `tests/location-card.test.ts` pins
|
|
57
|
+
* this one.
|
|
58
|
+
*/
|
|
59
|
+
export function spanFor(accuracyMeters) {
|
|
60
|
+
return Math.max(1.6, (accuracyMeters * 6) / 1000);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The box to fetch for one pin, as `[west, south, east, north]`: the span at
|
|
64
|
+
* the pin's latitude, grown to the envelope above and centred on the pin.
|
|
65
|
+
* Clamped to the server's 5° limit and to the poles.
|
|
66
|
+
*/
|
|
67
|
+
export function viewBox(lat, lon, spanKm) {
|
|
68
|
+
const cos = Math.max(0.2, Math.cos((lat * Math.PI) / 180));
|
|
69
|
+
const degLon = Math.min(4.5, (spanKm / 111 / cos) * BLEED_ACROSS);
|
|
70
|
+
const degLat = Math.min(4.5, (spanKm / 111) * BLEED_DOWN);
|
|
71
|
+
const west = Math.max(-180, lon - degLon / 2);
|
|
72
|
+
const east = Math.min(180, lon + degLon / 2);
|
|
73
|
+
const south = Math.max(-89, lat - degLat / 2);
|
|
74
|
+
const north = Math.min(89, lat + degLat / 2);
|
|
75
|
+
return [west, south, east, north];
|
|
76
|
+
}
|
|
77
|
+
/** The server's tiers as `MapView` paths, at the kit fixtures' weights. */
|
|
78
|
+
export function geometryPaths(geo) {
|
|
79
|
+
return [
|
|
80
|
+
...geo.coastline.map((coords) => ({ coords, tone: "neutral", width: 1 })),
|
|
81
|
+
...geo.roads.map((coords) => ({ coords, tone: "neutral", width: 0.6 })),
|
|
82
|
+
...geo.streets.map((coords) => ({ coords, tone: "neutral", width: 0.35 })),
|
|
83
|
+
];
|
|
84
|
+
}
|
|
85
|
+
export function LocationResultCard({ latitude, longitude, accuracyMeters, place, address, note, retrievedAt, }) {
|
|
86
|
+
const api = useBrainApi();
|
|
87
|
+
const spanKm = spanFor(accuracyMeters);
|
|
88
|
+
const [geo, setGeo] = useState(null);
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
const controller = new AbortController();
|
|
91
|
+
setGeo(null);
|
|
92
|
+
// The box is BLEED_ACROSS times the drawn span, so the width sent with it
|
|
93
|
+
// is BLEED_ACROSS times the drawn width: the server takes its tolerance
|
|
94
|
+
// and its detail tier from the box's width over that many pixels, and the
|
|
95
|
+
// bare 330 would ask for a view half again coarser than the one drawn —
|
|
96
|
+
// a 2 km span asking for streets and getting roads. The server buckets
|
|
97
|
+
// 495 up to 660, which errs on the fine side, never towards an empty map.
|
|
98
|
+
api
|
|
99
|
+
.geoCoastline(viewBox(latitude, longitude, spanKm), {
|
|
100
|
+
width: WIDTH * BLEED_ACROSS,
|
|
101
|
+
signal: controller.signal,
|
|
102
|
+
})
|
|
103
|
+
.then((result) => {
|
|
104
|
+
if (!controller.signal.aborted)
|
|
105
|
+
setGeo(result);
|
|
106
|
+
})
|
|
107
|
+
.catch(() => {
|
|
108
|
+
// A plainer map, on purpose. The pin is the answer; the shore is
|
|
109
|
+
// context, and context that cannot be had is not an error to show.
|
|
110
|
+
});
|
|
111
|
+
return () => controller.abort();
|
|
112
|
+
}, [api, latitude, longitude, spanKm]);
|
|
113
|
+
const when = new Date(retrievedAt);
|
|
114
|
+
const stamp = Number.isNaN(when.getTime())
|
|
115
|
+
? retrievedAt
|
|
116
|
+
: when.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
|
|
117
|
+
const paths = geo ? geometryPaths(geo) : [];
|
|
118
|
+
const land = geo && geo.land.length ? { rings: geo.land } : undefined;
|
|
119
|
+
const drawn = paths.length > 0 || land !== undefined;
|
|
120
|
+
return (_jsx(MapView, { pins: [{ lat: latitude, lon: longitude, label: place ?? "Here", meta: accuracy(accuracyMeters), tone: "amber" }], accuracyM: accuracyMeters, paths: paths, land: land,
|
|
121
|
+
// The place name is the answer; coordinates are the evidence for it,
|
|
122
|
+
// so they stay visible but quiet rather than leading.
|
|
123
|
+
title: place ?? "Coordinates only", subtitle: address && address !== place ? address : undefined, meta: `${coord(latitude)}, ${coord(longitude)} · ${accuracy(accuracyMeters)} · ${stamp}`, note: note,
|
|
124
|
+
// The credit is the licence's, not the design's: it appears exactly
|
|
125
|
+
// when OpenStreetMap geometry is on the map.
|
|
126
|
+
attribution: drawn ? geo?.attribution : undefined }));
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=location-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"location-card.js","sourceRoot":"","sources":["../../../../src/components/chat/tool-cards/location-card.tsx"],"names":[],"mappings":"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"}
|