@schlessera/brain-ui-react 0.34.1 → 0.36.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 +89 -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 +144 -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 +11 -0
- package/dist/components/activity/approval-card.d.ts.map +1 -0
- package/dist/components/activity/approval-card.js +46 -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.map +1 -1
- package/dist/components/activity/span-bits.js +9 -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 +24 -9
- 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 +55 -40
- 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 +37 -12
- 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 +15 -4
- package/dist/components/chat/tool-views.d.ts.map +1 -1
- package/dist/components/chat/tool-views.js +22 -38
- 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 +64 -6
- 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 +5 -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 +24 -0
- package/dist/components/layout/side-rail.d.ts.map +1 -1
- package/dist/components/layout/side-rail.js +65 -27
- package/dist/components/layout/side-rail.js.map +1 -1
- package/dist/components/layout/slide-panel.d.ts +12 -2
- package/dist/components/layout/slide-panel.d.ts.map +1 -1
- package/dist/components/layout/slide-panel.js +11 -2
- 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 +30 -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 +66 -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 +48 -19
- 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 +42 -17
- 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 +36 -10
- package/dist/components/quick-actions/whatsup-modal.js.map +1 -1
- package/dist/components/settings/devices-agents-tab.d.ts +10 -0
- package/dist/components/settings/devices-agents-tab.d.ts.map +1 -0
- package/dist/components/settings/devices-agents-tab.js +131 -0
- package/dist/components/settings/devices-agents-tab.js.map +1 -0
- 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.d.ts +3 -0
- package/dist/components/settings/one-time-agent-credential.d.ts.map +1 -0
- package/dist/components/settings/one-time-agent-credential.js +55 -0
- package/dist/components/settings/one-time-agent-credential.js.map +1 -0
- 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 +80 -6
- 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-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 +7 -0
- package/dist/hooks/use-media-query.d.ts.map +1 -0
- package/dist/hooks/use-media-query.js +34 -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 +1 -1
- package/dist/hooks/use-vpn-status.d.ts.map +1 -1
- package/dist/hooks/use-vpn-status.js +20 -16
- 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 -382
- 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 +27 -5
- 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 +321 -0
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +243 -213
- 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/format-time.d.ts +3 -0
- package/dist/lib/format-time.d.ts.map +1 -0
- package/dist/lib/format-time.js +25 -0
- package/dist/lib/format-time.js.map +1 -0
- 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 +10 -0
- package/dist/lib/push-registration.d.ts.map +1 -0
- package/dist/lib/push-registration.js +44 -0
- package/dist/lib/push-registration.js.map +1 -0
- 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 +212 -0
- package/dist/stores/chat-state.d.ts.map +1 -0
- package/dist/stores/chat-state.js +466 -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 -300
- 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 +5 -0
- package/dist/stores/principal-store.d.ts.map +1 -0
- package/dist/stores/principal-store.js +8 -0
- package/dist/stores/principal-store.js.map +1 -0
- 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 +334 -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 +80 -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 +8 -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 +38 -9
- 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 +60 -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 +59 -22
- 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 +23 -73
- 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 +80 -9
- 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 +7 -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 +70 -150
- package/src/components/layout/slide-panel.tsx +29 -2
- package/src/components/layout/theme.tsx +67 -0
- package/src/components/quick-actions/add-form.tsx +188 -0
- package/src/components/quick-actions/add-modal.tsx +68 -144
- package/src/components/quick-actions/search-modal.tsx +49 -19
- package/src/components/quick-actions/streaming-modal.tsx +44 -71
- package/src/components/quick-actions/streaming-output.tsx +112 -0
- package/src/components/quick-actions/whatsup-modal.tsx +38 -60
- package/src/components/settings/devices-agents-tab.tsx +139 -0
- 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 +131 -0
- 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 +245 -19
- 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-hash-routes.ts +4 -2
- package/src/hooks/use-media-query.ts +32 -0
- package/src/hooks/use-share-intake.ts +32 -12
- package/src/hooks/use-vpn-status.ts +23 -15
- package/src/hooks/use-websocket.ts +12 -426
- package/src/hooks/websocket-handlers/activity.ts +4 -5
- package/src/hooks/websocket-handlers/chat.ts +26 -5
- 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 +446 -365
- package/src/lib/backend.ts +20 -10
- package/src/lib/diff.ts +28 -62
- package/src/lib/format-time.ts +20 -0
- 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 +46 -0
- 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 +795 -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 -360
- 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 +11 -0
- 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":"graph-page.js","sourceRoot":"","sources":["../../../src/components/graph/graph-page.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-page.js","sourceRoot":"","sources":["../../../src/components/graph/graph-page.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-scene.d.ts","sourceRoot":"","sources":["../../../src/components/graph/graph-scene.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph-scene.d.ts","sourceRoot":"","sources":["../../../src/components/graph/graph-scene.tsx"],"names":[],"mappings":"AA2CA,gFAAgF;AAChF,wBAAgB,SAAS,gCA6LxB;AA0VD;;;GAGG;AACH,wBAAgB,cAAc,gCA6E7B"}
|
|
@@ -4,13 +4,14 @@ import { ChevronDown, ChevronUp, List, Loader2, TriangleAlert, X, } from "lucide
|
|
|
4
4
|
import { useGraphStore } from "../../stores/graph-store.js";
|
|
5
5
|
import { useUIStore } from "../../stores/ui-store.js";
|
|
6
6
|
import { useFileStore } from "../../stores/file-store.js";
|
|
7
|
-
import {
|
|
8
|
-
import { GraphControls } from "./graph-controls.js";
|
|
7
|
+
import { useBrainUiRoot } from "../../root-context.js";
|
|
8
|
+
import { GraphControls, WIDE_QUERY } from "./graph-controls.js";
|
|
9
9
|
import { NodePopover } from "./node-popover.js";
|
|
10
|
+
import { useMediaQuery } from "../../hooks/use-media-query.js";
|
|
10
11
|
import { GraphEmptyState, Mono } from "./graph-empty-state.js";
|
|
11
12
|
import { GraphCanvas } from "./graph-canvas-lazy.js";
|
|
12
13
|
import { CenteredSpinner } from "./graph-spinner.js";
|
|
13
|
-
import {
|
|
14
|
+
import { assignFolderColors, buildQuery, communityColor, distanceColor, entityKind, entityLegend, groupCommunities, matchScene, topLevelDir, } from "./lib/graph-helpers.js";
|
|
14
15
|
import { useGraphTheme } from "./use-graph-theme.js";
|
|
15
16
|
import { cn } from "../../lib/utils.js";
|
|
16
17
|
/** Client force layout is a fallback for repos whose FA2 layout was skipped —
|
|
@@ -30,6 +31,9 @@ export function SceneBody() {
|
|
|
30
31
|
const discoveryColorBy = useGraphStore((s) => s.discoveryColorBy);
|
|
31
32
|
const theme = useGraphTheme();
|
|
32
33
|
const [listOpen, setListOpen] = useState(false);
|
|
34
|
+
// From `wide:` the D6 right rail draws the selected node; the floating
|
|
35
|
+
// card would double it.
|
|
36
|
+
const wide = useMediaQuery(WIDE_QUERY);
|
|
33
37
|
const matchIds = useMemo(() => matchScene(subgraph.nodes, sceneQuery), [subgraph.nodes, sceneQuery]);
|
|
34
38
|
const layout = mode === "clusters"
|
|
35
39
|
? subgraph.nodes.some((n) => n.x !== undefined)
|
|
@@ -39,20 +43,43 @@ export function SceneBody() {
|
|
|
39
43
|
? "radial"
|
|
40
44
|
: "force";
|
|
41
45
|
const maxDistance = useMemo(() => Math.max(1, ...subgraph.nodes.map((n) => n.distance ?? 0)), [subgraph.nodes]);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
// The colouring rule (sixth pass §7) applies to the two modes drawn
|
|
47
|
+
// around a focus node; Clusters IS the topic colouring. The focus node
|
|
48
|
+
// (Discovery's root, Local's centre — distance 0, or the virtual root)
|
|
49
|
+
// wears the amber of "the thing in focus" under every rule, as the kit's
|
|
50
|
+
// `GraphView` draws it.
|
|
51
|
+
const focused = mode === "discovery" || mode === "local";
|
|
52
|
+
const rule = focused ? discoveryColorBy : "topic";
|
|
53
|
+
// What the categorical legends describe: every node painted BY its category.
|
|
54
|
+
// The focus node (the local centre, an explicit root, or a virtual node) is
|
|
55
|
+
// painted amber whatever its type, folder or topic, so counting it under
|
|
56
|
+
// one would make the legend disagree with the canvas.
|
|
57
|
+
const legendNodes = useMemo(() => subgraph.nodes.filter((n) => !(n.virtual === true || (focused && n.distance === 0))), [subgraph.nodes, focused]);
|
|
58
|
+
const folderColors = useMemo(() => focused && rule === "folder"
|
|
59
|
+
? assignFolderColors(legendNodes.map((n) => n.path), theme.palette)
|
|
60
|
+
: null, [focused, rule, legendNodes, theme.palette]);
|
|
45
61
|
const nodeColor = useMemo(() => {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
62
|
+
const isFocus = (node) => node.virtual === true || (focused && node.distance === 0);
|
|
63
|
+
if (focused) {
|
|
64
|
+
if (rule === "folder" && folderColors) {
|
|
65
|
+
return (node) => isFocus(node)
|
|
49
66
|
? theme.nodeSelected
|
|
50
|
-
: (folderColors.get(topLevelDir(node.path)) ??
|
|
67
|
+
: (folderColors.get(topLevelDir(node.path)) ?? theme.palette.other);
|
|
51
68
|
}
|
|
52
|
-
|
|
69
|
+
if (rule === "entity") {
|
|
70
|
+
return (node) => isFocus(node) ? theme.entity.focus : entityColor(node.type, theme.entity);
|
|
71
|
+
}
|
|
72
|
+
if (rule === "topic") {
|
|
73
|
+
return (node) => isFocus(node)
|
|
74
|
+
? theme.nodeSelected
|
|
75
|
+
: node.community !== undefined
|
|
76
|
+
? communityColor(node.community, theme.palette)
|
|
77
|
+
: theme.palette.other;
|
|
78
|
+
}
|
|
79
|
+
return (node) => isFocus(node) ? theme.nodeSelected : distanceColor(node.distance ?? maxDistance, theme.palette);
|
|
53
80
|
}
|
|
54
|
-
return (node) => node.community !== undefined ? communityColor(node.community) : theme.node;
|
|
55
|
-
}, [
|
|
81
|
+
return (node) => node.community !== undefined ? communityColor(node.community, theme.palette) : theme.node;
|
|
82
|
+
}, [focused, rule, folderColors, maxDistance, theme]);
|
|
56
83
|
const centerId = useMemo(() => mode === "local"
|
|
57
84
|
? (subgraph.nodes.find((n) => n.distance === 0)?.id ?? null)
|
|
58
85
|
: null, [mode, subgraph.nodes]);
|
|
@@ -76,10 +103,10 @@ export function SceneBody() {
|
|
|
76
103
|
const layoutBlocked = mode === "clusters" &&
|
|
77
104
|
layout === "force" &&
|
|
78
105
|
subgraph.nodes.length > CLIENT_LAYOUT_NODE_CAP;
|
|
79
|
-
return (_jsxs(_Fragment, { children: [layoutBlocked ? (_jsxs(GraphEmptyState, { icon: "warn", title: "Too large to lay out here", children: ["The cluster layout was skipped at index time (corpus over the layout cap), and ", subgraph.nodes.length.toLocaleString(), " notes are too many to arrange in the browser. Pick a topic from the legend to view a subset."] })) : (_jsx(Suspense, { fallback: _jsx(CenteredSpinner, {}), children: _jsx(GraphCanvas, { data: subgraph, layout: layout, selectedId: selectedId, hoveredId: hoveredId, matchIds: matchIds, sizeBy: mode === "clusters" ? clustersSizeBy : "degree", rings: mode === "discovery" ? maxDistance : 0, nodeColor: nodeColor, edgeColor: edgeColor, onSelect: select, onHover: hover }) })), _jsx(GraphControls, {}), mode === "clusters" && _jsx(ClusterLegend, {}),
|
|
106
|
+
return (_jsxs(_Fragment, { children: [layoutBlocked ? (_jsxs(GraphEmptyState, { icon: "warn", title: "Too large to lay out here", children: ["The cluster layout was skipped at index time (corpus over the layout cap), and ", subgraph.nodes.length.toLocaleString(), " notes are too many to arrange in the browser. Pick a topic from the legend to view a subset."] })) : (_jsx(Suspense, { fallback: _jsx(CenteredSpinner, {}), children: _jsx(GraphCanvas, { data: subgraph, layout: layout, selectedId: selectedId, hoveredId: hoveredId, matchIds: matchIds, sizeBy: mode === "clusters" ? clustersSizeBy : "degree", rings: mode === "discovery" ? maxDistance : 0, nodeColor: nodeColor, edgeColor: edgeColor, onSelect: select, onHover: hover }) })), _jsx(GraphControls, {}), mode === "clusters" && _jsx(ClusterLegend, { palette: theme.palette }), focused && rule === "folder" && folderColors && (_jsx(FolderLegend, { colors: folderColors, other: theme.palette.other })), focused && rule === "entity" && (_jsx(EntityLegend, { nodes: legendNodes, colors: theme.entity })), focused && rule === "topic" && _jsx(TopicLegend, { nodes: legendNodes, palette: theme.palette }), focused && rule === "distance" && (_jsx(DistanceLegend, { maxDistance: maxDistance, focus: mode === "local" ? "centre" : "root", palette: theme.palette })), mode === "discovery" && (_jsx(UnreachableTray, { count: subgraph.unreachableCount })), _jsx("button", { onClick: () => setListOpen((v) => !v), className: "absolute bottom-3 right-3 z-10 flex h-11 w-11 items-center justify-center rounded-full border border-border bg-surface-overlay text-foreground shadow-lg", title: "Node list", "aria-expanded": listOpen, children: _jsx(List, { className: "h-4.5 w-4.5" }) }), listOpen && _jsx(NodeList, { onClose: () => setListOpen(false) }), selectedNode && !wide && (_jsx(NodePopover, { node: selectedNode, communityLabel: communityLabel }))] }));
|
|
80
107
|
}
|
|
81
108
|
/** Clusters mode: interactive community legend, top-left. */
|
|
82
|
-
function ClusterLegend() {
|
|
109
|
+
function ClusterLegend({ palette }) {
|
|
83
110
|
const meta = useGraphStore((s) => s.meta);
|
|
84
111
|
const clusters = useGraphStore((s) => s.clusters);
|
|
85
112
|
const setClustersParams = useGraphStore((s) => s.setClustersParams);
|
|
@@ -93,16 +120,61 @@ function ClusterLegend() {
|
|
|
93
120
|
const active = clusters.community === c.community;
|
|
94
121
|
return (_jsxs("button", { onClick: () => setClustersParams({ community: active ? null : c.community }), className: cn("flex min-h-9 w-full items-center gap-2 rounded-lg px-2 py-1 text-left transition-colors", active ? "bg-surface-raised" : "hover:bg-surface-raised/60"), title: active
|
|
95
122
|
? "Show all topics"
|
|
96
|
-
: `Show only this topic (${c.size} notes)`, children: [_jsx("span", { className: "h-2.5 w-2.5 shrink-0 rounded-full", style: { backgroundColor: communityColor(c.community) } }), _jsx("span", { className: "min-w-0 flex-1 truncate text-xs text-foreground", children: c.label ?? `Topic ${c.community + 1}` }), _jsx("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: c.size })] }, c.community));
|
|
97
|
-
}), foldedCount > 0 && (_jsxs("div", { className: "flex items-center gap-2 px-2 py-1.5", children: [_jsx("span", { className: "h-2.5 w-2.5 shrink-0 rounded-full", style: { backgroundColor:
|
|
123
|
+
: `Show only this topic (${c.size} notes)`, children: [_jsx("span", { className: "h-2.5 w-2.5 shrink-0 rounded-full", style: { backgroundColor: communityColor(c.community, palette) } }), _jsx("span", { className: "min-w-0 flex-1 truncate text-xs text-foreground", children: c.label ?? `Topic ${c.community + 1}` }), _jsx("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: c.size })] }, c.community));
|
|
124
|
+
}), foldedCount > 0 && (_jsxs("div", { className: "flex items-center gap-2 px-2 py-1.5", children: [_jsx("span", { className: "h-2.5 w-2.5 shrink-0 rounded-full", style: { backgroundColor: palette.other } }), _jsxs("span", { className: "text-[11px] text-muted-foreground", children: [foldedCount, " smaller topic", foldedCount === 1 ? "" : "s"] })] })), clusters.community !== null && (_jsxs("button", { onClick: () => setClustersParams({ community: null }), className: "mx-2 mt-1 flex min-h-8 items-center gap-1 rounded-lg bg-surface-raised px-2 py-1 text-[11px] text-foreground hover:bg-surface", children: [_jsx(X, { className: "h-3 w-3" }), "Clear topic filter"] }))] }))] }));
|
|
125
|
+
}
|
|
126
|
+
/** The kit's entity colour for a document type; neutral for the rest. */
|
|
127
|
+
function entityColor(type, colors) {
|
|
128
|
+
const kind = entityKind(type);
|
|
129
|
+
return kind ? colors[kind] : colors.other;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Colour-by-entity: the document types in the scene, the three entity kinds
|
|
133
|
+
* in their kit colours first, every other type in the neutral ink under its
|
|
134
|
+
* own name. The focus node is listed as what it is — amber, "focus" — so the
|
|
135
|
+
* one node whose colour is not its type is accounted for.
|
|
136
|
+
*/
|
|
137
|
+
function EntityLegend({ nodes, colors }) {
|
|
138
|
+
const rows = useMemo(() => entityLegend(nodes), [nodes]);
|
|
139
|
+
return (_jsxs("div", { className: "absolute left-3 top-3 z-10 w-48 rounded-xl border border-border bg-surface-overlay/95 px-3 py-2 shadow-xl backdrop-blur", "data-legend": "entity", children: [_jsx("div", { className: "mb-1 text-xs font-medium text-foreground", children: "Entity type" }), _jsx(LegendRow, { color: colors.focus, label: "focus", mono: false }), rows.map((row) => (_jsx(LegendRow, { color: row.kind ? colors[row.kind] : colors.other, label: row.type, count: row.count }, row.type)))] }));
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Colour-by-topic outside Clusters mode: read-only — the topic FILTER is
|
|
143
|
+
* Clusters' own — listing the communities present in this scene. A corpus
|
|
144
|
+
* with no computed topics says so rather than showing an empty box.
|
|
145
|
+
*/
|
|
146
|
+
function TopicLegend({ nodes, palette }) {
|
|
147
|
+
const meta = useGraphStore((s) => s.meta);
|
|
148
|
+
const rows = useMemo(() => {
|
|
149
|
+
const counts = new Map();
|
|
150
|
+
for (const node of nodes) {
|
|
151
|
+
if (node.community === undefined || node.virtual)
|
|
152
|
+
continue;
|
|
153
|
+
counts.set(node.community, (counts.get(node.community) ?? 0) + 1);
|
|
154
|
+
}
|
|
155
|
+
// The eight largest, folded past that like the cluster legend: a node
|
|
156
|
+
// on the canvas whose colour has no row is a legend that lies by
|
|
157
|
+
// omission. (Communities past the palette share the recessive colour anyway.)
|
|
158
|
+
const all = [...counts.entries()].sort((a, b) => b[1] - a[1] || a[0] - b[0]);
|
|
159
|
+
return { rows: all.slice(0, 8), folded: all.slice(8).reduce((n, [, c]) => n + c, 0), foldedTopics: Math.max(0, all.length - 8) };
|
|
160
|
+
}, [nodes]);
|
|
161
|
+
return (_jsxs("div", { className: "absolute left-3 top-3 z-10 w-48 rounded-xl border border-border bg-surface-overlay/95 px-3 py-2 shadow-xl backdrop-blur", "data-legend": "topic", children: [_jsx("div", { className: "mb-1 text-xs font-medium text-foreground", children: "Topics" }), rows.rows.length === 0 ? (_jsxs("div", { className: "font-mono text-[10px] text-muted-foreground", children: ["no topics computed \u00B7 run ", _jsx(Mono, { children: "brain sync" })] })) : (_jsxs(_Fragment, { children: [rows.rows.map(([community, count]) => (_jsx(LegendRow, { color: communityColor(community, palette), label: meta?.communities.find((c) => c.community === community)?.label ?? `Topic ${community + 1}`, count: count, mono: false }, community))), rows.foldedTopics > 0 && (_jsx(LegendRow, { color: palette.other, label: `${rows.foldedTopics} smaller topic${rows.foldedTopics === 1 ? "" : "s"}`, count: rows.folded, mono: false }))] }))] }));
|
|
162
|
+
}
|
|
163
|
+
/** Colour-by-distance: the amber focus, then the ramp one hop at a time. */
|
|
164
|
+
function DistanceLegend({ maxDistance, focus, palette }) {
|
|
165
|
+
const hops = Array.from({ length: Math.min(maxDistance, 5) }, (_, i) => i + 1);
|
|
166
|
+
return (_jsxs("div", { className: "absolute left-3 top-3 z-10 w-48 rounded-xl border border-border bg-surface-overlay/95 px-3 py-2 shadow-xl backdrop-blur", "data-legend": "distance", children: [_jsx("div", { className: "mb-1 text-xs font-medium text-foreground", children: "Distance" }), _jsx(LegendRow, { color: distanceColor(0, palette), label: focus, mono: false }), hops.map((hop) => (_jsx(LegendRow, { color: distanceColor(hop, palette), label: hop === 5 && maxDistance > 5 ? `${hop}+ hops` : `${hop} hop${hop === 1 ? "" : "s"}`, mono: false }, hop)))] }));
|
|
167
|
+
}
|
|
168
|
+
function LegendRow({ color, label, count, mono = true }) {
|
|
169
|
+
return (_jsxs("div", { className: "flex min-h-6 items-center gap-2", children: [_jsx("span", { className: "h-2.5 w-2.5 shrink-0 rounded-full", style: { backgroundColor: color } }), _jsx("span", { className: cn("min-w-0 flex-1 truncate text-muted-foreground", mono ? "font-mono text-[11px]" : "text-[11px]"), children: label }), count !== undefined && _jsx("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: count })] }));
|
|
98
170
|
}
|
|
99
171
|
/** Discovery + color-by-folder: which top-level dir wears which color. */
|
|
100
|
-
function FolderLegend({ colors }) {
|
|
101
|
-
const entries = [...colors.entries()].filter(([, c]) => c !==
|
|
172
|
+
function FolderLegend({ colors, other }) {
|
|
173
|
+
const entries = [...colors.entries()].filter(([, c]) => c !== other);
|
|
102
174
|
const otherCount = colors.size - entries.length;
|
|
103
175
|
if (entries.length === 0)
|
|
104
176
|
return null;
|
|
105
|
-
return (_jsxs("div", { className: "absolute left-3 top-3 z-10 w-48 rounded-xl border border-border bg-surface-overlay/95 px-3 py-2 shadow-xl backdrop-blur", children: [_jsx("div", { className: "mb-1 text-xs font-medium text-foreground", children: "Folders" }), entries.map(([dir, color]) => (_jsxs("div", { className: "flex min-h-6 items-center gap-2", children: [_jsx("span", { className: "h-2.5 w-2.5 shrink-0 rounded-full", style: { backgroundColor: color } }), _jsx("span", { className: "truncate font-mono text-[11px] text-muted-foreground", children: dir || "(root)" })] }, dir))), otherCount > 0 && (_jsxs("div", { className: "flex min-h-6 items-center gap-2", children: [_jsx("span", { className: "h-2.5 w-2.5 shrink-0 rounded-full", style: { backgroundColor:
|
|
177
|
+
return (_jsxs("div", { className: "absolute left-3 top-3 z-10 w-48 rounded-xl border border-border bg-surface-overlay/95 px-3 py-2 shadow-xl backdrop-blur", children: [_jsx("div", { className: "mb-1 text-xs font-medium text-foreground", children: "Folders" }), entries.map(([dir, color]) => (_jsxs("div", { className: "flex min-h-6 items-center gap-2", children: [_jsx("span", { className: "h-2.5 w-2.5 shrink-0 rounded-full", style: { backgroundColor: color } }), _jsx("span", { className: "truncate font-mono text-[11px] text-muted-foreground", children: dir || "(root)" })] }, dir))), otherCount > 0 && (_jsxs("div", { className: "flex min-h-6 items-center gap-2", children: [_jsx("span", { className: "h-2.5 w-2.5 shrink-0 rounded-full", style: { backgroundColor: other } }), _jsxs("span", { className: "text-[11px] text-muted-foreground", children: [otherCount, " more"] })] }))] }));
|
|
106
178
|
}
|
|
107
179
|
/**
|
|
108
180
|
* Discovery: how much of the corpus this root does NOT reach. The count comes
|
|
@@ -112,12 +184,14 @@ function FolderLegend({ colors }) {
|
|
|
112
184
|
* maintenance findings still provide the exact list, and shows no number.
|
|
113
185
|
*/
|
|
114
186
|
function UnreachableTray({ count }) {
|
|
187
|
+
const root = useBrainUiRoot();
|
|
115
188
|
const discovery = useGraphStore((s) => s.discovery);
|
|
116
189
|
const staleDays = useGraphStore((s) => s.maintenance.staleDays);
|
|
117
190
|
const openFile = useFileStore((s) => s.openFile);
|
|
118
191
|
const setFilePanelOpen = useUIStore((s) => s.setFilePanelOpen);
|
|
119
192
|
const [open, setOpen] = useState(false);
|
|
120
193
|
const [nodes, setNodes] = useState(null);
|
|
194
|
+
useEffect(() => { setNodes(null); setOpen(false); }, [root]);
|
|
121
195
|
const isDefaultRoot = !discovery.root;
|
|
122
196
|
// Older server, no count field: the maintenance list is the only honest
|
|
123
197
|
// source, so it must be fetched EAGERLY — the chip may only appear once
|
|
@@ -130,7 +204,7 @@ function UnreachableTray({ count }) {
|
|
|
130
204
|
let cancelled = false;
|
|
131
205
|
void (async () => {
|
|
132
206
|
try {
|
|
133
|
-
const res = await
|
|
207
|
+
const res = await root.request(`${root.apiBase()}/graph/maintenance?${buildQuery({ staleDays })}`);
|
|
134
208
|
if (!res.ok)
|
|
135
209
|
return;
|
|
136
210
|
const data = (await res.json());
|
|
@@ -144,7 +218,7 @@ function UnreachableTray({ count }) {
|
|
|
144
218
|
return () => {
|
|
145
219
|
cancelled = true;
|
|
146
220
|
};
|
|
147
|
-
}, [open, needsFallbackProof, isDefaultRoot, nodes, staleDays]);
|
|
221
|
+
}, [open, needsFallbackProof, isDefaultRoot, nodes, staleDays, root]);
|
|
148
222
|
if (count === 0)
|
|
149
223
|
return null;
|
|
150
224
|
// No server count and no exact list available: nothing honest to show.
|
|
@@ -168,13 +242,15 @@ function UnreachableTray({ count }) {
|
|
|
168
242
|
* inviting — index notes are the natural candidates.
|
|
169
243
|
*/
|
|
170
244
|
export function DiscoveryStart() {
|
|
245
|
+
const root = useBrainUiRoot();
|
|
171
246
|
const setDiscoveryParams = useGraphStore((s) => s.setDiscoveryParams);
|
|
172
247
|
const [candidates, setCandidates] = useState(null);
|
|
173
248
|
useEffect(() => {
|
|
249
|
+
setCandidates(null);
|
|
174
250
|
let cancelled = false;
|
|
175
251
|
void (async () => {
|
|
176
252
|
try {
|
|
177
|
-
const res = await
|
|
253
|
+
const res = await root.request(`${root.apiBase()}/brain/list?${buildQuery({ type: "index", limit: 6 })}`);
|
|
178
254
|
if (!res.ok)
|
|
179
255
|
return;
|
|
180
256
|
const data = (await res.json());
|
|
@@ -192,7 +268,7 @@ export function DiscoveryStart() {
|
|
|
192
268
|
return () => {
|
|
193
269
|
cancelled = true;
|
|
194
270
|
};
|
|
195
|
-
}, []);
|
|
271
|
+
}, [root]);
|
|
196
272
|
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "flex h-full items-center justify-center p-6", children: _jsxs("div", { className: "flex w-full max-w-md flex-col gap-3 rounded-xl border border-border bg-surface px-8 py-10 text-center", children: [_jsx("h2", { className: "font-display text-lg text-foreground", children: "Where should discovery start?" }), _jsxs("p", { className: "text-xs leading-relaxed text-muted-foreground", children: ["Discovery lays your notes out by how many links they are away from a starting point. This repo has no ", _jsx(Mono, { children: "AGENTS.md" }), " entry file, so pick one \u2014 index notes work well:"] }), candidates === null ? (_jsx("div", { className: "flex justify-center py-2", children: _jsx(Loader2, { className: "h-4 w-4 animate-spin text-primary" }) })) : (_jsx("div", { className: "flex flex-col gap-1.5", children: candidates.map((c) => (_jsxs("button", { onClick: () => setDiscoveryParams({ root: c.path }), className: "flex min-h-10 flex-col justify-center rounded-lg border border-border bg-surface-raised px-3 py-1.5 text-left transition-colors hover:border-primary/40", children: [_jsx("span", { className: "truncate text-xs text-foreground", children: c.title }), _jsx("span", { className: "truncate font-mono text-[10px] text-muted-foreground/60", children: c.path })] }, c.path))) })), _jsx("p", { className: "text-[11px] text-muted-foreground", children: "\u2026or search any note in the options panel." })] }) }), _jsx(GraphControls, {})] }));
|
|
197
273
|
}
|
|
198
274
|
/** Focusable listing of the current scene, sorted by connectedness. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-scene.js","sourceRoot":"","sources":["../../../src/components/graph/graph-scene.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph-scene.js","sourceRoot":"","sources":["../../../src/components/graph/graph-scene.tsx"],"names":[],"mappings":"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"}
|
|
@@ -33,14 +33,25 @@ export type SizeBy = "degree" | "pagerank";
|
|
|
33
33
|
* letting a 45-in-degree hub dwarf the scene.
|
|
34
34
|
*/
|
|
35
35
|
export declare function nodeSize(node: Pick<GraphNodePayload, "inDegree" | "outDegree" | "pagerank" | "virtual">, sizeBy?: SizeBy, min?: number, max?: number): number;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
36
|
+
export interface CanvasPalette {
|
|
37
|
+
/** Eight categorical slots, in the frozen order. Community/folder identity. */
|
|
38
|
+
slots: readonly string[];
|
|
39
|
+
/** Ordinal distance ramp, near to far (five visible steps). */
|
|
40
|
+
ramp: readonly string[];
|
|
41
|
+
/** The root's own colour in discovery mode (the focus amber). */
|
|
42
|
+
root: string;
|
|
43
|
+
/** Recessive slot for everything past the eight distinguishable ones. */
|
|
44
|
+
other: string;
|
|
45
|
+
/** The maintenance lenses. */
|
|
46
|
+
lens: {
|
|
47
|
+
orphan: string;
|
|
48
|
+
unreachable: string;
|
|
49
|
+
broken: string;
|
|
50
|
+
stale: string;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/** How many communities or folders get a slot of their own before the tail folds. */
|
|
54
|
+
export declare const SLOT_COUNT = 8;
|
|
44
55
|
/**
|
|
45
56
|
* Linear blend of two hex colors: t=0 → a, t=1 → b. Used for the gentle
|
|
46
57
|
* non-match fade during search highlight (half the strength of the hover
|
|
@@ -54,16 +65,16 @@ export declare function mixColors(a: string, b: string, t: number): string;
|
|
|
54
65
|
* index time, so the first eight — the ones a legend can carry — get the
|
|
55
66
|
* distinguishable slots and the long tail shares one recessive color.
|
|
56
67
|
*/
|
|
57
|
-
export declare function communityColor(community: number): string;
|
|
58
|
-
/** Color for a BFS distance:
|
|
59
|
-
export declare function distanceColor(distance: number): string;
|
|
68
|
+
export declare function communityColor(community: number, palette: CanvasPalette): string;
|
|
69
|
+
/** Color for a BFS distance: the root, then the ramp fading out hop by hop. */
|
|
70
|
+
export declare function distanceColor(distance: number, palette: CanvasPalette): string;
|
|
60
71
|
/** First path segment — "career/opportunities/x.md" → "career". */
|
|
61
72
|
export declare function topLevelDir(path: string): string;
|
|
62
73
|
/**
|
|
63
74
|
* Assign categorical slots to top-level directories, biggest first — the
|
|
64
75
|
* same eight-then-other policy as communities. Returns dir → color.
|
|
65
76
|
*/
|
|
66
|
-
export declare function assignFolderColors(paths: string[]): Map<string, string>;
|
|
77
|
+
export declare function assignFolderColors(paths: string[], palette: CanvasPalette): Map<string, string>;
|
|
67
78
|
export interface LegendGroups<T extends {
|
|
68
79
|
community: number;
|
|
69
80
|
size: number;
|
|
@@ -95,4 +106,23 @@ export interface LabelPolicyInput {
|
|
|
95
106
|
export declare function labelSet(input: LabelPolicyInput): Set<number>;
|
|
96
107
|
/** Ids of nodes whose title or path matches the in-scene query. */
|
|
97
108
|
export declare function matchScene(nodes: Pick<GraphNodePayload, "id" | "title" | "path">[], query: string): Set<number>;
|
|
109
|
+
/**
|
|
110
|
+
* The kit's entity mapping (its `GraphView`, `PathRef` and inline mentions):
|
|
111
|
+
* which document types wear which of the three entity colours. Every other
|
|
112
|
+
* type — note, journal, study, whatever the taxonomy names — takes the
|
|
113
|
+
* neutral ink and is listed in the legend under its own name, because a
|
|
114
|
+
* legend that hides a type is a legend that lies about a node.
|
|
115
|
+
*/
|
|
116
|
+
export type EntityKind = "person" | "company" | "project";
|
|
117
|
+
export declare function entityKind(type: string): EntityKind | null;
|
|
118
|
+
/** The scene's document types, entity kinds first in the kit's order, then
|
|
119
|
+
* the rest by count. Each carries how many nodes wear it. */
|
|
120
|
+
export declare function entityLegend(nodes: {
|
|
121
|
+
type: string;
|
|
122
|
+
virtual?: boolean;
|
|
123
|
+
}[]): {
|
|
124
|
+
type: string;
|
|
125
|
+
kind: EntityKind | null;
|
|
126
|
+
count: number;
|
|
127
|
+
}[];
|
|
98
128
|
//# sourceMappingURL=graph-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-helpers.d.ts","sourceRoot":"","sources":["../../../../src/components/graph/lib/graph-helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,mCAAmC,CAAC;AAI3C;;;GAGG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,GACnE,MAAM,CAOR;AAID;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,qBAAqB,EAC3B,QAAQ,EAAE,qBAAqB,GAC9B,qBAAqB,CAoBvB;AAID,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,UAAU,CAAC,EAAE,EAClD,WAAW,SAAI,GACd,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CA0B1B;AAID,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC,EAC/E,MAAM,GAAE,MAAiB,EACzB,GAAG,SAAI,EACP,GAAG,SAAK,GACP,MAAM,CAUR;
|
|
1
|
+
{"version":3,"file":"graph-helpers.d.ts","sourceRoot":"","sources":["../../../../src/components/graph/lib/graph-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,37 +92,8 @@ export function nodeSize(node, sizeBy = "degree", min = 3, max = 14) {
|
|
|
92
92
|
}
|
|
93
93
|
return Math.max(min, Math.min(max, min + Math.sqrt(value) * 1.8));
|
|
94
94
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
// Both palettes ran through the dataviz validator against the app surface
|
|
98
|
-
// (#0c0e12, dark): the categorical set passes lightness band, chroma floor,
|
|
99
|
-
// CVD separation (worst adjacent ΔE 8.4), normal-vision floor and 3:1
|
|
100
|
-
// contrast; the distance ramp passes monotone-lightness, step-gap, light-end
|
|
101
|
-
// contrast and single-hue checks. Slot ORDER is the CVD-safety mechanism —
|
|
102
|
-
// do not reorder without re-validating.
|
|
103
|
-
/** Fixed categorical slots (validated, dark). Community/folder identity. */
|
|
104
|
-
export const CATEGORICAL_SLOTS = [
|
|
105
|
-
"#3987e5", // blue
|
|
106
|
-
"#d95926", // orange
|
|
107
|
-
"#199e70", // aqua
|
|
108
|
-
"#c98500", // yellow
|
|
109
|
-
"#d55181", // magenta
|
|
110
|
-
"#008300", // green
|
|
111
|
-
"#9085e9", // violet
|
|
112
|
-
"#e66767", // red
|
|
113
|
-
];
|
|
114
|
-
/** Recessive slot for everything past the eight distinguishable ones. */
|
|
115
|
-
export const OTHER_COLOR = "#565b66";
|
|
116
|
-
/** The root's own color in discovery mode (the app's amber primary). */
|
|
117
|
-
export const ROOT_COLOR = "#e09f3e";
|
|
118
|
-
/** Ordinal distance ramp, near → far (validated, 5 visible steps). */
|
|
119
|
-
export const DISTANCE_RAMP = [
|
|
120
|
-
"#b7d3f6",
|
|
121
|
-
"#86b6ef",
|
|
122
|
-
"#5598e7",
|
|
123
|
-
"#2a78d6",
|
|
124
|
-
"#184f95",
|
|
125
|
-
];
|
|
95
|
+
/** How many communities or folders get a slot of their own before the tail folds. */
|
|
96
|
+
export const SLOT_COUNT = 8;
|
|
126
97
|
/**
|
|
127
98
|
* Linear blend of two hex colors: t=0 → a, t=1 → b. Used for the gentle
|
|
128
99
|
* non-match fade during search highlight (half the strength of the hover
|
|
@@ -151,16 +122,14 @@ function parseHex(color) {
|
|
|
151
122
|
* index time, so the first eight — the ones a legend can carry — get the
|
|
152
123
|
* distinguishable slots and the long tail shares one recessive color.
|
|
153
124
|
*/
|
|
154
|
-
export function communityColor(community) {
|
|
155
|
-
return community <
|
|
156
|
-
? CATEGORICAL_SLOTS[community]
|
|
157
|
-
: OTHER_COLOR;
|
|
125
|
+
export function communityColor(community, palette) {
|
|
126
|
+
return community < palette.slots.length ? palette.slots[community] : palette.other;
|
|
158
127
|
}
|
|
159
|
-
/** Color for a BFS distance:
|
|
160
|
-
export function distanceColor(distance) {
|
|
128
|
+
/** Color for a BFS distance: the root, then the ramp fading out hop by hop. */
|
|
129
|
+
export function distanceColor(distance, palette) {
|
|
161
130
|
if (distance <= 0)
|
|
162
|
-
return
|
|
163
|
-
return
|
|
131
|
+
return palette.root;
|
|
132
|
+
return palette.ramp[Math.min(distance - 1, palette.ramp.length - 1)];
|
|
164
133
|
}
|
|
165
134
|
/** First path segment — "career/opportunities/x.md" → "career". */
|
|
166
135
|
export function topLevelDir(path) {
|
|
@@ -171,7 +140,7 @@ export function topLevelDir(path) {
|
|
|
171
140
|
* Assign categorical slots to top-level directories, biggest first — the
|
|
172
141
|
* same eight-then-other policy as communities. Returns dir → color.
|
|
173
142
|
*/
|
|
174
|
-
export function assignFolderColors(paths) {
|
|
143
|
+
export function assignFolderColors(paths, palette) {
|
|
175
144
|
const counts = new Map();
|
|
176
145
|
for (const path of paths) {
|
|
177
146
|
const dir = topLevelDir(path);
|
|
@@ -180,7 +149,7 @@ export function assignFolderColors(paths) {
|
|
|
180
149
|
const ranked = [...counts.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]));
|
|
181
150
|
const colors = new Map();
|
|
182
151
|
ranked.forEach(([dir], i) => {
|
|
183
|
-
colors.set(dir, i <
|
|
152
|
+
colors.set(dir, i < palette.slots.length ? palette.slots[i] : palette.other);
|
|
184
153
|
});
|
|
185
154
|
return colors;
|
|
186
155
|
}
|
|
@@ -237,4 +206,27 @@ export function matchScene(nodes, query) {
|
|
|
237
206
|
}
|
|
238
207
|
return matches;
|
|
239
208
|
}
|
|
209
|
+
export function entityKind(type) {
|
|
210
|
+
return type === "person" || type === "company" || type === "project" ? type : null;
|
|
211
|
+
}
|
|
212
|
+
/** The scene's document types, entity kinds first in the kit's order, then
|
|
213
|
+
* the rest by count. Each carries how many nodes wear it. */
|
|
214
|
+
export function entityLegend(nodes) {
|
|
215
|
+
const counts = new Map();
|
|
216
|
+
for (const node of nodes) {
|
|
217
|
+
if (node.virtual)
|
|
218
|
+
continue;
|
|
219
|
+
counts.set(node.type, (counts.get(node.type) ?? 0) + 1);
|
|
220
|
+
}
|
|
221
|
+
const order = ["person", "company", "project"];
|
|
222
|
+
return [...counts.entries()]
|
|
223
|
+
.map(([type, count]) => ({ type, kind: entityKind(type), count }))
|
|
224
|
+
.sort((a, b) => {
|
|
225
|
+
const ia = order.indexOf(a.type);
|
|
226
|
+
const ib = order.indexOf(b.type);
|
|
227
|
+
if (ia !== -1 || ib !== -1)
|
|
228
|
+
return (ia === -1 ? order.length : ia) - (ib === -1 ? order.length : ib);
|
|
229
|
+
return b.count - a.count || a.type.localeCompare(b.type);
|
|
230
|
+
});
|
|
231
|
+
}
|
|
240
232
|
//# sourceMappingURL=graph-helpers.js.map
|