@assistant-ui/react-devtools 1.2.6 → 1.2.7
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 +26 -8
- package/dist/DevToolsModal.d.ts +18 -2
- package/dist/DevToolsModal.d.ts.map +1 -1
- package/dist/DevToolsModal.js +25 -232
- package/dist/DevToolsModal.js.map +1 -1
- package/dist/DevToolsModalImpl.d.ts +11 -0
- package/dist/DevToolsModalImpl.d.ts.map +1 -0
- package/dist/DevToolsModalImpl.js +62 -0
- package/dist/DevToolsModalImpl.js.map +1 -0
- package/dist/data/createInProcessClient.d.ts +17 -0
- package/dist/data/createInProcessClient.d.ts.map +1 -0
- package/dist/data/createInProcessClient.js +54 -0
- package/dist/data/createInProcessClient.js.map +1 -0
- package/dist/data/projectApi.d.ts +22 -0
- package/dist/data/projectApi.d.ts.map +1 -0
- package/dist/data/projectApi.js +103 -0
- package/dist/data/projectApi.js.map +1 -0
- package/dist/data/types.d.ts +52 -0
- package/dist/data/types.d.ts.map +1 -0
- package/dist/data/types.js +10 -0
- package/dist/data/types.js.map +1 -0
- package/dist/data/useDevToolsClient.d.ts +19 -0
- package/dist/data/useDevToolsClient.d.ts.map +1 -0
- package/dist/data/useDevToolsClient.js +70 -0
- package/dist/data/useDevToolsClient.js.map +1 -0
- package/dist/index.d.ts +9 -10
- package/dist/index.js +7 -9
- package/dist/shell/DevToolsOverlay.d.ts +23 -0
- package/dist/shell/DevToolsOverlay.d.ts.map +1 -0
- package/dist/shell/DevToolsOverlay.js +106 -0
- package/dist/shell/DevToolsOverlay.js.map +1 -0
- package/dist/shell/DevToolsPanel.d.ts +23 -0
- package/dist/shell/DevToolsPanel.d.ts.map +1 -0
- package/dist/shell/DevToolsPanel.js +256 -0
- package/dist/shell/DevToolsPanel.js.map +1 -0
- package/dist/shell/ShadowRoot.d.ts +24 -0
- package/dist/shell/ShadowRoot.d.ts.map +1 -0
- package/dist/shell/ShadowRoot.js +107 -0
- package/dist/shell/ShadowRoot.js.map +1 -0
- package/dist/shell/SplitLayout.d.ts +28 -0
- package/dist/shell/SplitLayout.d.ts.map +1 -0
- package/dist/shell/SplitLayout.js +67 -0
- package/dist/shell/SplitLayout.js.map +1 -0
- package/dist/shell/registry.d.ts +41 -0
- package/dist/shell/registry.d.ts.map +1 -0
- package/dist/shell/registry.js +36 -0
- package/dist/shell/registry.js.map +1 -0
- package/dist/shell/tabs/ActivityTab.d.ts +13 -0
- package/dist/shell/tabs/ActivityTab.d.ts.map +1 -0
- package/dist/shell/tabs/ActivityTab.js +259 -0
- package/dist/shell/tabs/ActivityTab.js.map +1 -0
- package/dist/shell/tabs/ContextTab.d.ts +11 -0
- package/dist/shell/tabs/ContextTab.d.ts.map +1 -0
- package/dist/shell/tabs/ContextTab.js +210 -0
- package/dist/shell/tabs/ContextTab.js.map +1 -0
- package/dist/shell/tabs/RawTab.d.ts +11 -0
- package/dist/shell/tabs/RawTab.d.ts.map +1 -0
- package/dist/shell/tabs/RawTab.js +238 -0
- package/dist/shell/tabs/RawTab.js.map +1 -0
- package/dist/shell/tabs/ThreadTab.d.ts +12 -0
- package/dist/shell/tabs/ThreadTab.d.ts.map +1 -0
- package/dist/shell/tabs/ThreadTab.js +426 -0
- package/dist/shell/tabs/ThreadTab.js.map +1 -0
- package/dist/shell/tabs/navSelection.d.ts +10 -0
- package/dist/shell/tabs/navSelection.d.ts.map +1 -0
- package/dist/shell/tabs/navSelection.js +37 -0
- package/dist/shell/tabs/navSelection.js.map +1 -0
- package/dist/styles/panel.generated.d.ts +5 -0
- package/dist/styles/panel.generated.d.ts.map +1 -0
- package/dist/styles/panel.generated.js +6 -0
- package/dist/styles/panel.generated.js.map +1 -0
- package/dist/types.d.ts +1 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/common.d.ts +24 -0
- package/dist/utils/common.d.ts.map +1 -0
- package/dist/utils/common.js +64 -0
- package/dist/utils/common.js.map +1 -0
- package/dist/utils/diff.d.ts +16 -0
- package/dist/utils/diff.d.ts.map +1 -0
- package/dist/utils/diff.js +41 -0
- package/dist/utils/diff.js.map +1 -0
- package/dist/utils/serialization.d.ts.map +1 -1
- package/dist/utils/serialization.js +4 -1
- package/dist/utils/serialization.js.map +1 -1
- package/dist/views/activity/EventLogRow.d.ts +28 -0
- package/dist/views/activity/EventLogRow.d.ts.map +1 -0
- package/dist/views/activity/EventLogRow.js +185 -0
- package/dist/views/activity/EventLogRow.js.map +1 -0
- package/dist/views/activity/EventStreamPane.d.ts +11 -0
- package/dist/views/activity/EventStreamPane.d.ts.map +1 -0
- package/dist/views/activity/EventStreamPane.js +98 -0
- package/dist/views/activity/EventStreamPane.js.map +1 -0
- package/dist/views/activity/OrphansPane.d.ts +11 -0
- package/dist/views/activity/OrphansPane.d.ts.map +1 -0
- package/dist/views/activity/OrphansPane.js +39 -0
- package/dist/views/activity/OrphansPane.js.map +1 -0
- package/dist/views/activity/RunDetailPane.d.ts +11 -0
- package/dist/views/activity/RunDetailPane.d.ts.map +1 -0
- package/dist/views/activity/RunDetailPane.js +344 -0
- package/dist/views/activity/RunDetailPane.js.map +1 -0
- package/dist/views/activity/activityNodes.d.ts +39 -0
- package/dist/views/activity/activityNodes.d.ts.map +1 -0
- package/dist/views/activity/activityNodes.js +199 -0
- package/dist/views/activity/activityNodes.js.map +1 -0
- package/dist/views/activity/index.d.ts +6 -0
- package/dist/views/activity/index.js +6 -0
- package/dist/views/attachments/AttachmentList.d.ts +15 -0
- package/dist/views/attachments/AttachmentList.d.ts.map +1 -0
- package/dist/views/attachments/AttachmentList.js +279 -0
- package/dist/views/attachments/AttachmentList.js.map +1 -0
- package/dist/views/attachments/MediaPartView.d.ts +27 -0
- package/dist/views/attachments/MediaPartView.d.ts.map +1 -0
- package/dist/views/attachments/MediaPartView.js +180 -0
- package/dist/views/attachments/MediaPartView.js.map +1 -0
- package/dist/views/attachments/formatBytes.d.ts +8 -0
- package/dist/views/attachments/formatBytes.d.ts.map +1 -0
- package/dist/views/attachments/formatBytes.js +14 -0
- package/dist/views/attachments/formatBytes.js.map +1 -0
- package/dist/views/attachments/index.d.ts +5 -0
- package/dist/views/attachments/index.js +4 -0
- package/dist/views/attachments/parseAttachment.d.ts +8 -0
- package/dist/views/attachments/parseAttachment.d.ts.map +1 -0
- package/dist/views/attachments/parseAttachment.js +58 -0
- package/dist/views/attachments/parseAttachment.js.map +1 -0
- package/dist/views/attachments/types.d.ts +18 -0
- package/dist/views/attachments/types.d.ts.map +1 -0
- package/dist/views/attachments/types.js +0 -0
- package/dist/views/context/ContextDetail.d.ts +14 -0
- package/dist/views/context/ContextDetail.d.ts.map +1 -0
- package/dist/views/context/ContextDetail.js +87 -0
- package/dist/views/context/ContextDetail.js.map +1 -0
- package/dist/views/context/ToolUIsView.d.ts +9 -0
- package/dist/views/context/ToolUIsView.d.ts.map +1 -0
- package/dist/views/context/ToolUIsView.js +80 -0
- package/dist/views/context/ToolUIsView.js.map +1 -0
- package/dist/views/context/contextNodes.d.ts +32 -0
- package/dist/views/context/contextNodes.d.ts.map +1 -0
- package/dist/views/context/contextNodes.js +49 -0
- package/dist/views/context/contextNodes.js.map +1 -0
- package/dist/views/context/index.d.ts +4 -0
- package/dist/views/context/index.js +4 -0
- package/dist/views/mcp/McpView.d.ts +11 -0
- package/dist/views/mcp/McpView.d.ts.map +1 -0
- package/dist/views/mcp/McpView.js +239 -0
- package/dist/views/mcp/McpView.js.map +1 -0
- package/dist/views/mcp/index.d.ts +2 -0
- package/dist/views/mcp/index.js +2 -0
- package/dist/views/mcp/parse.d.ts +7 -0
- package/dist/views/mcp/parse.d.ts.map +1 -0
- package/dist/views/mcp/parse.js +43 -0
- package/dist/views/mcp/parse.js.map +1 -0
- package/dist/views/mcp/types.d.ts +22 -0
- package/dist/views/mcp/types.d.ts.map +1 -0
- package/dist/views/mcp/types.js +0 -0
- package/dist/views/message/ChainOfThought.d.ts +11 -0
- package/dist/views/message/ChainOfThought.d.ts.map +1 -0
- package/dist/views/message/ChainOfThought.js +132 -0
- package/dist/views/message/ChainOfThought.js.map +1 -0
- package/dist/views/message/MessageDetailPane.d.ts +12 -0
- package/dist/views/message/MessageDetailPane.d.ts.map +1 -0
- package/dist/views/message/MessageDetailPane.js +38 -0
- package/dist/views/message/MessageDetailPane.js.map +1 -0
- package/dist/views/message/MessageItem.d.ts +13 -0
- package/dist/views/message/MessageItem.d.ts.map +1 -0
- package/dist/views/message/MessageItem.js +136 -0
- package/dist/views/message/MessageItem.js.map +1 -0
- package/dist/views/message/MessageList.d.ts +13 -0
- package/dist/views/message/MessageList.d.ts.map +1 -0
- package/dist/views/message/MessageList.js +95 -0
- package/dist/views/message/MessageList.js.map +1 -0
- package/dist/views/message/MessageMetrics.d.ts +11 -0
- package/dist/views/message/MessageMetrics.d.ts.map +1 -0
- package/dist/views/message/MessageMetrics.js +93 -0
- package/dist/views/message/MessageMetrics.js.map +1 -0
- package/dist/views/message/MessageTimeline.d.ts +16 -0
- package/dist/views/message/MessageTimeline.d.ts.map +1 -0
- package/dist/views/message/MessageTimeline.js +100 -0
- package/dist/views/message/MessageTimeline.js.map +1 -0
- package/dist/views/message/PartDisclosure.d.ts +18 -0
- package/dist/views/message/PartDisclosure.d.ts.map +1 -0
- package/dist/views/message/PartDisclosure.js +79 -0
- package/dist/views/message/PartDisclosure.js.map +1 -0
- package/dist/views/message/PartView.d.ts +13 -0
- package/dist/views/message/PartView.d.ts.map +1 -0
- package/dist/views/message/PartView.js +416 -0
- package/dist/views/message/PartView.js.map +1 -0
- package/dist/views/message/RoleLabel.d.ts +11 -0
- package/dist/views/message/RoleLabel.d.ts.map +1 -0
- package/dist/views/message/RoleLabel.js +30 -0
- package/dist/views/message/RoleLabel.js.map +1 -0
- package/dist/views/message/StatusBadge.d.ts +17 -0
- package/dist/views/message/StatusBadge.d.ts.map +1 -0
- package/dist/views/message/StatusBadge.js +58 -0
- package/dist/views/message/StatusBadge.js.map +1 -0
- package/dist/views/message/ToolCallView.d.ts +13 -0
- package/dist/views/message/ToolCallView.d.ts.map +1 -0
- package/dist/views/message/ToolCallView.js +289 -0
- package/dist/views/message/ToolCallView.js.map +1 -0
- package/dist/views/message/TtftBar.d.ts +16 -0
- package/dist/views/message/TtftBar.d.ts.map +1 -0
- package/dist/views/message/TtftBar.js +128 -0
- package/dist/views/message/TtftBar.js.map +1 -0
- package/dist/views/message/index.d.ts +6 -0
- package/dist/views/message/index.js +5 -0
- package/dist/views/message/messagePlainText.d.ts +8 -0
- package/dist/views/message/messagePlainText.d.ts.map +1 -0
- package/dist/views/message/messagePlainText.js +39 -0
- package/dist/views/message/messagePlainText.js.map +1 -0
- package/dist/views/message/parse.d.ts +10 -0
- package/dist/views/message/parse.d.ts.map +1 -0
- package/dist/views/message/parse.js +235 -0
- package/dist/views/message/parse.js.map +1 -0
- package/dist/views/message/types.d.ts +114 -0
- package/dist/views/message/types.d.ts.map +1 -0
- package/dist/views/message/types.js +0 -0
- package/dist/views/model-context/ModelContextView.d.ts +26 -0
- package/dist/views/model-context/ModelContextView.d.ts.map +1 -0
- package/dist/views/model-context/ModelContextView.js +214 -0
- package/dist/views/model-context/ModelContextView.js.map +1 -0
- package/dist/views/nav.d.ts +19 -0
- package/dist/views/nav.d.ts.map +1 -0
- package/dist/views/nav.js +8 -0
- package/dist/views/nav.js.map +1 -0
- package/dist/views/raw/RawDetail.d.ts +15 -0
- package/dist/views/raw/RawDetail.d.ts.map +1 -0
- package/dist/views/raw/RawDetail.js +79 -0
- package/dist/views/raw/RawDetail.js.map +1 -0
- package/dist/views/raw/index.d.ts +3 -0
- package/dist/views/raw/index.js +3 -0
- package/dist/views/raw/rawNodes.d.ts +20 -0
- package/dist/views/raw/rawNodes.d.ts.map +1 -0
- package/dist/views/raw/rawNodes.js +78 -0
- package/dist/views/raw/rawNodes.js.map +1 -0
- package/dist/views/raw/statePreview.d.ts +5 -0
- package/dist/views/raw/statePreview.d.ts.map +1 -0
- package/dist/views/raw/statePreview.js +213 -0
- package/dist/views/raw/statePreview.js.map +1 -0
- package/dist/views/runs/PayloadDiff.d.ts +11 -0
- package/dist/views/runs/PayloadDiff.d.ts.map +1 -0
- package/dist/views/runs/PayloadDiff.js +92 -0
- package/dist/views/runs/PayloadDiff.js.map +1 -0
- package/dist/views/runs/parse.d.ts +8 -0
- package/dist/views/runs/parse.d.ts.map +1 -0
- package/dist/views/runs/parse.js +78 -0
- package/dist/views/runs/parse.js.map +1 -0
- package/dist/views/runs/types.d.ts +25 -0
- package/dist/views/runs/types.d.ts.map +1 -0
- package/dist/views/runs/types.js +0 -0
- package/dist/views/scopes/ScopesView.d.ts +9 -0
- package/dist/views/scopes/ScopesView.d.ts.map +1 -0
- package/dist/views/scopes/ScopesView.js +235 -0
- package/dist/views/scopes/ScopesView.js.map +1 -0
- package/dist/views/scopes/index.d.ts +2 -0
- package/dist/views/scopes/index.js +2 -0
- package/dist/views/scopes/parse.d.ts +7 -0
- package/dist/views/scopes/parse.d.ts.map +1 -0
- package/dist/views/scopes/parse.js +23 -0
- package/dist/views/scopes/parse.js.map +1 -0
- package/dist/views/scopes/types.d.ts +10 -0
- package/dist/views/scopes/types.d.ts.map +1 -0
- package/dist/views/scopes/types.js +0 -0
- package/dist/views/thread/ComposerAttachments.d.ts +11 -0
- package/dist/views/thread/ComposerAttachments.d.ts.map +1 -0
- package/dist/views/thread/ComposerAttachments.js +22 -0
- package/dist/views/thread/ComposerAttachments.js.map +1 -0
- package/dist/views/thread/ComposerFlags.d.ts +11 -0
- package/dist/views/thread/ComposerFlags.d.ts.map +1 -0
- package/dist/views/thread/ComposerFlags.js +54 -0
- package/dist/views/thread/ComposerFlags.js.map +1 -0
- package/dist/views/thread/ComposerQueue.d.ts +11 -0
- package/dist/views/thread/ComposerQueue.d.ts.map +1 -0
- package/dist/views/thread/ComposerQueue.js +55 -0
- package/dist/views/thread/ComposerQueue.js.map +1 -0
- package/dist/views/thread/ConversationList.d.ts +18 -0
- package/dist/views/thread/ConversationList.d.ts.map +1 -0
- package/dist/views/thread/ConversationList.js +228 -0
- package/dist/views/thread/ConversationList.js.map +1 -0
- package/dist/views/thread/ConversationStatusDot.d.ts +29 -0
- package/dist/views/thread/ConversationStatusDot.d.ts.map +1 -0
- package/dist/views/thread/ConversationStatusDot.js +91 -0
- package/dist/views/thread/ConversationStatusDot.js.map +1 -0
- package/dist/views/thread/ThreadDetails.d.ts +13 -0
- package/dist/views/thread/ThreadDetails.d.ts.map +1 -0
- package/dist/views/thread/ThreadDetails.js +170 -0
- package/dist/views/thread/ThreadDetails.js.map +1 -0
- package/dist/views/thread/Transcript.d.ts +21 -0
- package/dist/views/thread/Transcript.d.ts.map +1 -0
- package/dist/views/thread/Transcript.js +520 -0
- package/dist/views/thread/Transcript.js.map +1 -0
- package/dist/views/thread/index.d.ts +10 -0
- package/dist/views/thread/index.js +9 -0
- package/dist/views/thread/resolve.d.ts +13 -0
- package/dist/views/thread/resolve.d.ts.map +1 -0
- package/dist/views/thread/resolve.js +29 -0
- package/dist/views/thread/resolve.js.map +1 -0
- package/dist/views/thread/types.d.ts +50 -0
- package/dist/views/thread/types.d.ts.map +1 -0
- package/dist/views/thread/types.js +0 -0
- package/dist/views/thread/utils.d.ts +10 -0
- package/dist/views/thread/utils.d.ts.map +1 -0
- package/dist/views/thread/utils.js +77 -0
- package/dist/views/thread/utils.js.map +1 -0
- package/dist/views/ui/CenteredMessage.d.ts +11 -0
- package/dist/views/ui/CenteredMessage.d.ts.map +1 -0
- package/dist/views/ui/CenteredMessage.js +21 -0
- package/dist/views/ui/CenteredMessage.js.map +1 -0
- package/dist/views/ui/Chip.d.ts +13 -0
- package/dist/views/ui/Chip.d.ts.map +1 -0
- package/dist/views/ui/Chip.js +30 -0
- package/dist/views/ui/Chip.js.map +1 -0
- package/dist/views/ui/ControlButton.d.ts +10 -0
- package/dist/views/ui/ControlButton.d.ts.map +1 -0
- package/dist/views/ui/ControlButton.js +39 -0
- package/dist/views/ui/ControlButton.js.map +1 -0
- package/dist/views/ui/CopyButton.d.ts +19 -0
- package/dist/views/ui/CopyButton.d.ts.map +1 -0
- package/dist/views/ui/CopyButton.js +125 -0
- package/dist/views/ui/CopyButton.js.map +1 -0
- package/dist/views/ui/EmptyState.d.ts +11 -0
- package/dist/views/ui/EmptyState.d.ts.map +1 -0
- package/dist/views/ui/EmptyState.js +21 -0
- package/dist/views/ui/EmptyState.js.map +1 -0
- package/dist/views/ui/InfoCard.d.ts +22 -0
- package/dist/views/ui/InfoCard.d.ts.map +1 -0
- package/dist/views/ui/InfoCard.js +44 -0
- package/dist/views/ui/InfoCard.js.map +1 -0
- package/dist/views/ui/JSONTree.d.ts +16 -0
- package/dist/views/ui/JSONTree.d.ts.map +1 -0
- package/dist/views/ui/JSONTree.js +394 -0
- package/dist/views/ui/JSONTree.js.map +1 -0
- package/dist/views/ui/PaneHeader.d.ts +27 -0
- package/dist/views/ui/PaneHeader.d.ts.map +1 -0
- package/dist/views/ui/PaneHeader.js +71 -0
- package/dist/views/ui/PaneHeader.js.map +1 -0
- package/dist/views/ui/RailTime.d.ts +12 -0
- package/dist/views/ui/RailTime.d.ts.map +1 -0
- package/dist/views/ui/RailTime.js +49 -0
- package/dist/views/ui/RailTime.js.map +1 -0
- package/dist/views/ui/SectionLabel.d.ts +11 -0
- package/dist/views/ui/SectionLabel.d.ts.map +1 -0
- package/dist/views/ui/SectionLabel.js +21 -0
- package/dist/views/ui/SectionLabel.js.map +1 -0
- package/dist/views/ui/SelectableRow.d.ts +18 -0
- package/dist/views/ui/SelectableRow.d.ts.map +1 -0
- package/dist/views/ui/SelectableRow.js +49 -0
- package/dist/views/ui/SelectableRow.js.map +1 -0
- package/dist/views/ui/Sparkline.d.ts +17 -0
- package/dist/views/ui/Sparkline.d.ts.map +1 -0
- package/dist/views/ui/Sparkline.js +96 -0
- package/dist/views/ui/Sparkline.js.map +1 -0
- package/dist/views/ui/SummaryItem.d.ts +23 -0
- package/dist/views/ui/SummaryItem.d.ts.map +1 -0
- package/dist/views/ui/SummaryItem.js +59 -0
- package/dist/views/ui/SummaryItem.js.map +1 -0
- package/dist/views/ui/ToneBadge.d.ts +18 -0
- package/dist/views/ui/ToneBadge.d.ts.map +1 -0
- package/dist/views/ui/ToneBadge.js +34 -0
- package/dist/views/ui/ToneBadge.js.map +1 -0
- package/dist/views/ui/badgeTone.d.ts +21 -0
- package/dist/views/ui/badgeTone.d.ts.map +1 -0
- package/dist/views/ui/badgeTone.js +33 -0
- package/dist/views/ui/badgeTone.js.map +1 -0
- package/dist/views/ui/index.d.ts +16 -0
- package/dist/views/ui/index.js +16 -0
- package/dist/views/ui/useCopyToClipboard.d.ts +12 -0
- package/dist/views/ui/useCopyToClipboard.d.ts.map +1 -0
- package/dist/views/ui/useCopyToClipboard.js +44 -0
- package/dist/views/ui/useCopyToClipboard.js.map +1 -0
- package/package.json +9 -5
- package/src/DevToolsModal.tsx +26 -179
- package/src/DevToolsModalImpl.tsx +60 -0
- package/src/data/createInProcessClient.ts +66 -0
- package/src/data/projectApi.test.ts +100 -0
- package/src/data/projectApi.ts +169 -0
- package/src/data/types.ts +54 -0
- package/src/data/useDevToolsClient.ts +59 -0
- package/src/index.ts +16 -13
- package/src/shell/DevToolsOverlay.tsx +84 -0
- package/src/shell/DevToolsPanel.tsx +192 -0
- package/src/shell/ShadowRoot.tsx +85 -0
- package/src/shell/SplitLayout.tsx +46 -0
- package/src/shell/registry.ts +51 -0
- package/src/shell/tabs/ActivityTab.test.tsx +34 -0
- package/src/shell/tabs/ActivityTab.tsx +161 -0
- package/src/shell/tabs/ContextTab.test.tsx +37 -0
- package/src/shell/tabs/ContextTab.tsx +157 -0
- package/src/shell/tabs/RawTab.test.tsx +43 -0
- package/src/shell/tabs/RawTab.tsx +123 -0
- package/src/shell/tabs/ThreadTab.tsx +220 -0
- package/src/shell/tabs/navSelection.ts +17 -0
- package/src/styles/panel.css +153 -0
- package/src/styles/panel.generated.ts +2 -0
- package/src/types.ts +0 -5
- package/src/utils/common.test.ts +30 -0
- package/src/utils/common.ts +101 -0
- package/src/utils/diff.test.ts +37 -0
- package/src/utils/diff.ts +41 -0
- package/src/utils/serialization.test.ts +31 -0
- package/src/utils/serialization.ts +4 -1
- package/src/views/activity/EventLogRow.tsx +108 -0
- package/src/views/activity/EventStreamPane.tsx +86 -0
- package/src/views/activity/OrphansPane.tsx +23 -0
- package/src/views/activity/RunDetailPane.tsx +128 -0
- package/src/views/activity/activityNodes.test.ts +24 -0
- package/src/views/activity/activityNodes.ts +179 -0
- package/src/views/activity/index.ts +10 -0
- package/src/views/attachments/AttachmentList.tsx +122 -0
- package/src/views/attachments/MediaPartView.tsx +77 -0
- package/src/views/attachments/formatBytes.ts +15 -0
- package/src/views/attachments/index.ts +4 -0
- package/src/views/attachments/parseAttachment.test.ts +37 -0
- package/src/views/attachments/parseAttachment.ts +85 -0
- package/src/views/attachments/types.ts +15 -0
- package/src/views/context/ContextDetail.tsx +37 -0
- package/src/views/context/ToolUIsView.tsx +44 -0
- package/src/views/context/contextNodes.test.ts +31 -0
- package/src/views/context/contextNodes.ts +66 -0
- package/src/views/context/index.ts +4 -0
- package/src/views/mcp/McpView.tsx +125 -0
- package/src/views/mcp/index.ts +1 -0
- package/src/views/mcp/parse.test.ts +63 -0
- package/src/views/mcp/parse.ts +65 -0
- package/src/views/mcp/render.test.tsx +34 -0
- package/src/views/mcp/types.ts +20 -0
- package/src/views/message/ChainOfThought.tsx +74 -0
- package/src/views/message/MessageDetailPane.tsx +26 -0
- package/src/views/message/MessageItem.tsx +94 -0
- package/src/views/message/MessageList.tsx +48 -0
- package/src/views/message/MessageMetrics.tsx +68 -0
- package/src/views/message/MessageTimeline.test.tsx +78 -0
- package/src/views/message/MessageTimeline.tsx +51 -0
- package/src/views/message/PartDisclosure.tsx +32 -0
- package/src/views/message/PartView.tsx +197 -0
- package/src/views/message/RoleLabel.tsx +22 -0
- package/src/views/message/StatusBadge.tsx +28 -0
- package/src/views/message/ToolCallView.tsx +151 -0
- package/src/views/message/TtftBar.tsx +44 -0
- package/src/views/message/index.ts +5 -0
- package/src/views/message/messagePlainText.test.ts +48 -0
- package/src/views/message/messagePlainText.ts +65 -0
- package/src/views/message/parse.test.ts +269 -0
- package/src/views/message/parse.ts +282 -0
- package/src/views/message/render.test.tsx +128 -0
- package/src/views/message/types.ts +137 -0
- package/src/views/model-context/ModelContextView.tsx +71 -0
- package/src/views/model-context/render.test.tsx +24 -0
- package/src/views/nav.ts +18 -0
- package/src/views/raw/RawDetail.tsx +39 -0
- package/src/views/raw/index.ts +3 -0
- package/src/views/raw/rawNodes.test.ts +38 -0
- package/src/views/raw/rawNodes.ts +107 -0
- package/src/views/raw/statePreview.tsx +188 -0
- package/src/views/runs/PayloadDiff.tsx +49 -0
- package/src/views/runs/parse.test.ts +152 -0
- package/src/views/runs/parse.ts +110 -0
- package/src/views/runs/types.ts +23 -0
- package/src/views/scopes/ScopesView.tsx +105 -0
- package/src/views/scopes/index.ts +1 -0
- package/src/views/scopes/parse.test.ts +35 -0
- package/src/views/scopes/parse.ts +30 -0
- package/src/views/scopes/render.test.tsx +35 -0
- package/src/views/scopes/types.ts +6 -0
- package/src/views/thread/ComposerAttachments.test.tsx +36 -0
- package/src/views/thread/ComposerAttachments.tsx +8 -0
- package/src/views/thread/ComposerFlags.test.tsx +23 -0
- package/src/views/thread/ComposerFlags.tsx +19 -0
- package/src/views/thread/ComposerQueue.test.tsx +20 -0
- package/src/views/thread/ComposerQueue.tsx +26 -0
- package/src/views/thread/ConversationList.tsx +127 -0
- package/src/views/thread/ConversationStatusDot.test.ts +86 -0
- package/src/views/thread/ConversationStatusDot.tsx +126 -0
- package/src/views/thread/ThreadDetails.tsx +85 -0
- package/src/views/thread/Transcript.test.tsx +56 -0
- package/src/views/thread/Transcript.tsx +332 -0
- package/src/views/thread/index.ts +19 -0
- package/src/views/thread/render.test.tsx +41 -0
- package/src/views/thread/resolve.ts +36 -0
- package/src/views/thread/types.ts +53 -0
- package/src/views/thread/utils.test.ts +72 -0
- package/src/views/thread/utils.ts +149 -0
- package/src/views/ui/CenteredMessage.tsx +7 -0
- package/src/views/ui/Chip.tsx +17 -0
- package/src/views/ui/ControlButton.tsx +15 -0
- package/src/views/ui/CopyButton.tsx +73 -0
- package/src/views/ui/EmptyState.tsx +7 -0
- package/src/views/ui/InfoCard.tsx +35 -0
- package/src/views/ui/JSONTree.test.tsx +29 -0
- package/src/views/ui/JSONTree.tsx +240 -0
- package/src/views/ui/PaneHeader.tsx +46 -0
- package/src/views/ui/RailTime.tsx +27 -0
- package/src/views/ui/SectionLabel.tsx +7 -0
- package/src/views/ui/SelectableRow.tsx +41 -0
- package/src/views/ui/Sparkline.tsx +49 -0
- package/src/views/ui/SummaryItem.tsx +25 -0
- package/src/views/ui/ToneBadge.tsx +26 -0
- package/src/views/ui/badgeTone.ts +40 -0
- package/src/views/ui/index.ts +20 -0
- package/src/views/ui/useCopyToClipboard.ts +27 -0
- package/dist/DevToolsFrame.d.ts +0 -11
- package/dist/DevToolsFrame.d.ts.map +0 -1
- package/dist/DevToolsFrame.js +0 -66
- package/dist/DevToolsFrame.js.map +0 -1
- package/dist/DevToolsHost.d.ts +0 -38
- package/dist/DevToolsHost.d.ts.map +0 -1
- package/dist/DevToolsHost.js +0 -93
- package/dist/DevToolsHost.js.map +0 -1
- package/dist/ExtensionHost.d.ts +0 -10
- package/dist/ExtensionHost.d.ts.map +0 -1
- package/dist/ExtensionHost.js +0 -42
- package/dist/ExtensionHost.js.map +0 -1
- package/dist/FrameClient.d.ts +0 -38
- package/dist/FrameClient.d.ts.map +0 -1
- package/dist/FrameClient.js +0 -53
- package/dist/FrameClient.js.map +0 -1
- package/dist/FrameHost.d.ts +0 -11
- package/dist/FrameHost.d.ts.map +0 -1
- package/dist/FrameHost.js +0 -26
- package/dist/FrameHost.js.map +0 -1
- package/dist/constants.d.ts +0 -6
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -7
- package/dist/constants.js.map +0 -1
- package/dist/styles/DevToolsModal.styles.d.ts +0 -18
- package/dist/styles/DevToolsModal.styles.d.ts.map +0 -1
- package/dist/styles/DevToolsModal.styles.js +0 -120
- package/dist/styles/DevToolsModal.styles.js.map +0 -1
- package/src/DevToolsFrame.tsx +0 -55
- package/src/DevToolsHost.ts +0 -178
- package/src/ExtensionHost.ts +0 -57
- package/src/FrameClient.ts +0 -99
- package/src/FrameHost.ts +0 -31
- package/src/constants.ts +0 -2
- package/src/styles/DevToolsModal.styles.ts +0 -137
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { asBool, asNumber, asString, isRecord } from "../../utils/common.js";
|
|
2
|
+
import { estimateBase64Bytes, isSafeImagePreviewUrl } from "../attachments/formatBytes.js";
|
|
3
|
+
import { parseAttachments } from "../attachments/parseAttachment.js";
|
|
4
|
+
//#region src/views/message/parse.ts
|
|
5
|
+
const partKey = (part, index) => part.type === "tool-call" && part.toolCallId ? `tc:${part.toolCallId}` : `p:${index}`;
|
|
6
|
+
const parsePartStatus = (value) => {
|
|
7
|
+
if (!isRecord(value)) return void 0;
|
|
8
|
+
const type = asString(value.type);
|
|
9
|
+
if (!type) return void 0;
|
|
10
|
+
const reason = asString(value.reason);
|
|
11
|
+
return {
|
|
12
|
+
type,
|
|
13
|
+
...reason ? { reason } : {},
|
|
14
|
+
..."error" in value && value.error !== void 0 ? { error: value.error } : {}
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
const parseInterrupt = (value) => {
|
|
18
|
+
if (!isRecord(value)) return void 0;
|
|
19
|
+
const type = asString(value.type);
|
|
20
|
+
const result = {
|
|
21
|
+
...type ? { type } : {},
|
|
22
|
+
..."payload" in value ? { payload: value.payload } : {}
|
|
23
|
+
};
|
|
24
|
+
return Object.keys(result).length > 0 ? result : void 0;
|
|
25
|
+
};
|
|
26
|
+
const parseApproval = (value) => {
|
|
27
|
+
if (!isRecord(value)) return void 0;
|
|
28
|
+
const id = asString(value.id);
|
|
29
|
+
const approved = asBool(value.approved);
|
|
30
|
+
const reason = asString(value.reason);
|
|
31
|
+
const isAutomatic = asBool(value.isAutomatic);
|
|
32
|
+
const result = {
|
|
33
|
+
...id ? { id } : {},
|
|
34
|
+
...approved !== void 0 ? { approved } : {},
|
|
35
|
+
...reason ? { reason } : {},
|
|
36
|
+
...isAutomatic !== void 0 ? { isAutomatic } : {}
|
|
37
|
+
};
|
|
38
|
+
return Object.keys(result).length > 0 ? result : void 0;
|
|
39
|
+
};
|
|
40
|
+
const parseToolCall = (value, base) => {
|
|
41
|
+
const argsText = asString(value.argsText);
|
|
42
|
+
const isError = asBool(value.isError);
|
|
43
|
+
const interrupt = parseInterrupt(value.interrupt);
|
|
44
|
+
const approval = parseApproval(value.approval);
|
|
45
|
+
const subMessageCount = Array.isArray(value.messages) ? value.messages.length : 0;
|
|
46
|
+
return {
|
|
47
|
+
type: "tool-call",
|
|
48
|
+
toolCallId: asString(value.toolCallId) ?? "",
|
|
49
|
+
toolName: asString(value.toolName) ?? "(unknown)",
|
|
50
|
+
args: value.args,
|
|
51
|
+
subMessageCount,
|
|
52
|
+
...argsText !== void 0 ? { argsText } : {},
|
|
53
|
+
..."result" in value && value.result !== void 0 ? { result: value.result } : {},
|
|
54
|
+
...isError !== void 0 ? { isError } : {},
|
|
55
|
+
...value.artifact !== void 0 ? { artifact: value.artifact } : {},
|
|
56
|
+
...value.mcp !== void 0 ? { mcp: value.mcp } : {},
|
|
57
|
+
...value.modelContent !== void 0 ? { modelContent: value.modelContent } : {},
|
|
58
|
+
...interrupt ? { interrupt } : {},
|
|
59
|
+
...approval ? { approval } : {},
|
|
60
|
+
...base
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
const parsePart = (value) => {
|
|
64
|
+
if (!isRecord(value)) return {
|
|
65
|
+
type: "unknown",
|
|
66
|
+
rawType: typeof value,
|
|
67
|
+
raw: value
|
|
68
|
+
};
|
|
69
|
+
const status = parsePartStatus(value.status);
|
|
70
|
+
const base = status ? { status } : {};
|
|
71
|
+
const type = asString(value.type);
|
|
72
|
+
switch (type) {
|
|
73
|
+
case "text": return {
|
|
74
|
+
type: "text",
|
|
75
|
+
text: asString(value.text) ?? "",
|
|
76
|
+
...base
|
|
77
|
+
};
|
|
78
|
+
case "reasoning": return {
|
|
79
|
+
type: "reasoning",
|
|
80
|
+
text: asString(value.text) ?? "",
|
|
81
|
+
...base
|
|
82
|
+
};
|
|
83
|
+
case "source": {
|
|
84
|
+
const sourceType = asString(value.sourceType);
|
|
85
|
+
const title = asString(value.title);
|
|
86
|
+
const url = asString(value.url);
|
|
87
|
+
return {
|
|
88
|
+
type: "source",
|
|
89
|
+
...sourceType ? { sourceType } : {},
|
|
90
|
+
...title ? { title } : {},
|
|
91
|
+
...url ? { url } : {},
|
|
92
|
+
...base
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
case "image": {
|
|
96
|
+
const filename = asString(value.filename);
|
|
97
|
+
const image = asString(value.image);
|
|
98
|
+
const previewUrl = image && isSafeImagePreviewUrl(image) ? image : void 0;
|
|
99
|
+
const sizeBytes = previewUrl?.startsWith("data:") ? estimateBase64Bytes(previewUrl.split(",", 2)[1] ?? previewUrl) : void 0;
|
|
100
|
+
return {
|
|
101
|
+
type: "image",
|
|
102
|
+
...filename ? { filename } : {},
|
|
103
|
+
...previewUrl ? { previewUrl } : {},
|
|
104
|
+
...sizeBytes !== void 0 ? { sizeBytes } : {},
|
|
105
|
+
...base
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
case "file": {
|
|
109
|
+
const filename = asString(value.filename);
|
|
110
|
+
const mimeType = asString(value.mimeType);
|
|
111
|
+
const data = asString(value.data);
|
|
112
|
+
const sizeBytes = data ? estimateBase64Bytes(data) : void 0;
|
|
113
|
+
return {
|
|
114
|
+
type: "file",
|
|
115
|
+
...filename ? { filename } : {},
|
|
116
|
+
...mimeType ? { mimeType } : {},
|
|
117
|
+
...sizeBytes !== void 0 ? { sizeBytes } : {},
|
|
118
|
+
...base
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
case "audio": {
|
|
122
|
+
const audio = isRecord(value.audio) ? value.audio : void 0;
|
|
123
|
+
const format = asString(audio?.format);
|
|
124
|
+
const audioData = asString(audio?.data);
|
|
125
|
+
const sizeBytes = audioData ? estimateBase64Bytes(audioData) : void 0;
|
|
126
|
+
return {
|
|
127
|
+
type: "audio",
|
|
128
|
+
...format ? { format } : {},
|
|
129
|
+
...sizeBytes !== void 0 ? { sizeBytes } : {},
|
|
130
|
+
...base
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
case "data": {
|
|
134
|
+
const name = asString(value.name);
|
|
135
|
+
return {
|
|
136
|
+
type: "data",
|
|
137
|
+
data: value.data,
|
|
138
|
+
...name ? { name } : {},
|
|
139
|
+
...base
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
case "generative-ui": return {
|
|
143
|
+
type: "generative-ui",
|
|
144
|
+
spec: value.spec,
|
|
145
|
+
...base
|
|
146
|
+
};
|
|
147
|
+
case "tool-call": return parseToolCall(value, base);
|
|
148
|
+
default: return {
|
|
149
|
+
type: "unknown",
|
|
150
|
+
rawType: type ?? typeof value,
|
|
151
|
+
raw: value,
|
|
152
|
+
...base
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
const parseTiming = (value) => {
|
|
157
|
+
if (!isRecord(value)) return void 0;
|
|
158
|
+
const streamStartTime = asNumber(value.streamStartTime);
|
|
159
|
+
const firstTokenTime = asNumber(value.firstTokenTime);
|
|
160
|
+
const totalStreamTime = asNumber(value.totalStreamTime);
|
|
161
|
+
const tokenCount = asNumber(value.tokenCount);
|
|
162
|
+
const tokensPerSecond = asNumber(value.tokensPerSecond);
|
|
163
|
+
const totalChunks = asNumber(value.totalChunks);
|
|
164
|
+
const toolCallCount = asNumber(value.toolCallCount);
|
|
165
|
+
const result = {
|
|
166
|
+
...streamStartTime !== void 0 ? { streamStartTime } : {},
|
|
167
|
+
...firstTokenTime !== void 0 ? { firstTokenTime } : {},
|
|
168
|
+
...totalStreamTime !== void 0 ? { totalStreamTime } : {},
|
|
169
|
+
...tokenCount !== void 0 ? { tokenCount } : {},
|
|
170
|
+
...tokensPerSecond !== void 0 ? { tokensPerSecond } : {},
|
|
171
|
+
...totalChunks !== void 0 ? { totalChunks } : {},
|
|
172
|
+
...toolCallCount !== void 0 ? { toolCallCount } : {}
|
|
173
|
+
};
|
|
174
|
+
return Object.keys(result).length > 0 ? result : void 0;
|
|
175
|
+
};
|
|
176
|
+
const parseUsage = (value) => {
|
|
177
|
+
if (!Array.isArray(value) || value.length === 0) return void 0;
|
|
178
|
+
let inputTokens = 0;
|
|
179
|
+
let outputTokens = 0;
|
|
180
|
+
let sawUsage = false;
|
|
181
|
+
for (const step of value) {
|
|
182
|
+
if (!isRecord(step) || !isRecord(step.usage)) continue;
|
|
183
|
+
const input = asNumber(step.usage.inputTokens);
|
|
184
|
+
const output = asNumber(step.usage.outputTokens);
|
|
185
|
+
if (input !== void 0) {
|
|
186
|
+
inputTokens += input;
|
|
187
|
+
sawUsage = true;
|
|
188
|
+
}
|
|
189
|
+
if (output !== void 0) {
|
|
190
|
+
outputTokens += output;
|
|
191
|
+
sawUsage = true;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (!sawUsage) return void 0;
|
|
195
|
+
return {
|
|
196
|
+
inputTokens,
|
|
197
|
+
outputTokens,
|
|
198
|
+
stepCount: value.length
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
const parseMessage = (value, index) => {
|
|
202
|
+
if (!isRecord(value)) return null;
|
|
203
|
+
const id = asString(value.id) ?? `message-${index}`;
|
|
204
|
+
const role = asString(value.role) ?? "unknown";
|
|
205
|
+
const parts = (Array.isArray(value.parts) ? value.parts : Array.isArray(value.content) ? value.content : []).map((part) => parsePart(part));
|
|
206
|
+
const status = parsePartStatus(value.status);
|
|
207
|
+
const metadata = isRecord(value.metadata) ? value.metadata : void 0;
|
|
208
|
+
const timing = parseTiming(metadata?.timing);
|
|
209
|
+
const usage = parseUsage(metadata?.steps);
|
|
210
|
+
const submittedFeedback = isRecord(metadata?.submittedFeedback) ? asString(metadata.submittedFeedback.type) : void 0;
|
|
211
|
+
const isOptimistic = asBool(metadata?.isOptimistic);
|
|
212
|
+
const createdAt = asString(value.createdAt);
|
|
213
|
+
const branchNumber = asNumber(value.branchNumber);
|
|
214
|
+
const branchCount = asNumber(value.branchCount);
|
|
215
|
+
const messageIndex = asNumber(value.index);
|
|
216
|
+
return {
|
|
217
|
+
id,
|
|
218
|
+
role,
|
|
219
|
+
parts,
|
|
220
|
+
attachments: parseAttachments(value.attachments),
|
|
221
|
+
...createdAt ? { createdAt } : {},
|
|
222
|
+
...status ? { status } : {},
|
|
223
|
+
...timing ? { timing } : {},
|
|
224
|
+
...usage ? { usage } : {},
|
|
225
|
+
...branchNumber !== void 0 ? { branchNumber } : {},
|
|
226
|
+
...branchCount !== void 0 ? { branchCount } : {},
|
|
227
|
+
...messageIndex !== void 0 ? { index: messageIndex } : {},
|
|
228
|
+
...isOptimistic !== void 0 ? { isOptimistic } : {},
|
|
229
|
+
...submittedFeedback ? { submittedFeedback } : {}
|
|
230
|
+
};
|
|
231
|
+
};
|
|
232
|
+
//#endregion
|
|
233
|
+
export { parseMessage, parsePart, parsePartStatus, partKey };
|
|
234
|
+
|
|
235
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","names":["parseAttachments","estimateBase64Bytes","isSafeImagePreviewUrl","asBool","asNumber","asString","isRecord","MessagePreview","MessageTimingPreview","MessageUsagePreview","PartPreview","PartStatusPreview","ToolCallApprovalPreview","ToolCallInterruptPreview","ToolCallPartPreview","partKey","part","index","type","toolCallId","parsePartStatus","value","undefined","reason","error","parseInterrupt","result","payload","Object","keys","length","parseApproval","id","approved","isAutomatic","parseToolCall","Record","base","status","argsText","isError","interrupt","approval","subMessageCount","Array","isArray","messages","toolName","args","artifact","mcp","modelContent","parsePart","rawType","raw","text","sourceType","title","url","filename","image","previewUrl","sizeBytes","startsWith","split","mimeType","data","audio","format","audioData","name","spec","parseTiming","streamStartTime","firstTokenTime","totalStreamTime","tokenCount","tokensPerSecond","totalChunks","toolCallCount","parseUsage","inputTokens","outputTokens","sawUsage","step","usage","input","output","stepCount","parseMessage","role","rawParts","parts","content","map","metadata","timing","steps","submittedFeedback","isOptimistic","createdAt","branchNumber","branchCount","messageIndex","attachments"],"sources":["../../../src/views/message/parse.ts"],"sourcesContent":["import { parseAttachments } from \"../attachments/parseAttachment\";\nimport {\n estimateBase64Bytes,\n isSafeImagePreviewUrl,\n} from \"../attachments/formatBytes\";\nimport { asBool, asNumber, asString, isRecord } from \"../../utils/common\";\nimport type {\n MessagePreview,\n MessageTimingPreview,\n MessageUsagePreview,\n PartPreview,\n PartStatusPreview,\n ToolCallApprovalPreview,\n ToolCallInterruptPreview,\n ToolCallPartPreview,\n} from \"./types\";\n\nexport const partKey = (part: PartPreview, index: number) =>\n part.type === \"tool-call\" && part.toolCallId\n ? `tc:${part.toolCallId}`\n : `p:${index}`;\n\nexport const parsePartStatus = (\n value: unknown,\n): PartStatusPreview | undefined => {\n if (!isRecord(value)) return undefined;\n const type = asString(value.type);\n if (!type) return undefined;\n const reason = asString(value.reason);\n return {\n type,\n ...(reason ? { reason } : {}),\n ...(\"error\" in value && value.error !== undefined\n ? { error: value.error }\n : {}),\n };\n};\n\nconst parseInterrupt = (\n value: unknown,\n): ToolCallInterruptPreview | undefined => {\n if (!isRecord(value)) return undefined;\n const type = asString(value.type);\n const result: ToolCallInterruptPreview = {\n ...(type ? { type } : {}),\n ...(\"payload\" in value ? { payload: value.payload } : {}),\n };\n return Object.keys(result).length > 0 ? result : undefined;\n};\n\nconst parseApproval = (value: unknown): ToolCallApprovalPreview | undefined => {\n if (!isRecord(value)) return undefined;\n const id = asString(value.id);\n const approved = asBool(value.approved);\n const reason = asString(value.reason);\n const isAutomatic = asBool(value.isAutomatic);\n const result: ToolCallApprovalPreview = {\n ...(id ? { id } : {}),\n ...(approved !== undefined ? { approved } : {}),\n ...(reason ? { reason } : {}),\n ...(isAutomatic !== undefined ? { isAutomatic } : {}),\n };\n return Object.keys(result).length > 0 ? result : undefined;\n};\n\nconst parseToolCall = (\n value: Record<string, unknown>,\n base: { status?: PartStatusPreview },\n): ToolCallPartPreview => {\n const argsText = asString(value.argsText);\n const isError = asBool(value.isError);\n const interrupt = parseInterrupt(value.interrupt);\n const approval = parseApproval(value.approval);\n const subMessageCount = Array.isArray(value.messages)\n ? value.messages.length\n : 0;\n\n return {\n type: \"tool-call\",\n toolCallId: asString(value.toolCallId) ?? \"\",\n toolName: asString(value.toolName) ?? \"(unknown)\",\n args: value.args,\n subMessageCount,\n ...(argsText !== undefined ? { argsText } : {}),\n ...(\"result\" in value && value.result !== undefined\n ? { result: value.result }\n : {}),\n ...(isError !== undefined ? { isError } : {}),\n ...(value.artifact !== undefined ? { artifact: value.artifact } : {}),\n ...(value.mcp !== undefined ? { mcp: value.mcp } : {}),\n ...(value.modelContent !== undefined\n ? { modelContent: value.modelContent }\n : {}),\n ...(interrupt ? { interrupt } : {}),\n ...(approval ? { approval } : {}),\n ...base,\n };\n};\n\nexport const parsePart = (value: unknown): PartPreview => {\n if (!isRecord(value)) {\n return { type: \"unknown\", rawType: typeof value, raw: value };\n }\n\n const status = parsePartStatus(value.status);\n const base = status ? { status } : {};\n const type = asString(value.type);\n\n switch (type) {\n case \"text\":\n return { type: \"text\", text: asString(value.text) ?? \"\", ...base };\n case \"reasoning\":\n return { type: \"reasoning\", text: asString(value.text) ?? \"\", ...base };\n case \"source\": {\n const sourceType = asString(value.sourceType);\n const title = asString(value.title);\n const url = asString(value.url);\n return {\n type: \"source\",\n ...(sourceType ? { sourceType } : {}),\n ...(title ? { title } : {}),\n ...(url ? { url } : {}),\n ...base,\n };\n }\n case \"image\": {\n const filename = asString(value.filename);\n const image = asString(value.image);\n const previewUrl =\n image && isSafeImagePreviewUrl(image) ? image : undefined;\n const sizeBytes = previewUrl?.startsWith(\"data:\")\n ? estimateBase64Bytes(previewUrl.split(\",\", 2)[1] ?? previewUrl)\n : undefined;\n return {\n type: \"image\",\n ...(filename ? { filename } : {}),\n ...(previewUrl ? { previewUrl } : {}),\n ...(sizeBytes !== undefined ? { sizeBytes } : {}),\n ...base,\n };\n }\n case \"file\": {\n const filename = asString(value.filename);\n const mimeType = asString(value.mimeType);\n const data = asString(value.data);\n const sizeBytes = data ? estimateBase64Bytes(data) : undefined;\n return {\n type: \"file\",\n ...(filename ? { filename } : {}),\n ...(mimeType ? { mimeType } : {}),\n ...(sizeBytes !== undefined ? { sizeBytes } : {}),\n ...base,\n };\n }\n case \"audio\": {\n const audio = isRecord(value.audio) ? value.audio : undefined;\n const format = asString(audio?.format);\n const audioData = asString(audio?.data);\n const sizeBytes = audioData ? estimateBase64Bytes(audioData) : undefined;\n return {\n type: \"audio\",\n ...(format ? { format } : {}),\n ...(sizeBytes !== undefined ? { sizeBytes } : {}),\n ...base,\n };\n }\n case \"data\": {\n const name = asString(value.name);\n return {\n type: \"data\",\n data: value.data,\n ...(name ? { name } : {}),\n ...base,\n };\n }\n case \"generative-ui\":\n return { type: \"generative-ui\", spec: value.spec, ...base };\n case \"tool-call\":\n return parseToolCall(value, base);\n default:\n return {\n type: \"unknown\",\n rawType: type ?? typeof value,\n raw: value,\n ...base,\n };\n }\n};\n\nconst parseTiming = (value: unknown): MessageTimingPreview | undefined => {\n if (!isRecord(value)) return undefined;\n\n const streamStartTime = asNumber(value.streamStartTime);\n const firstTokenTime = asNumber(value.firstTokenTime);\n const totalStreamTime = asNumber(value.totalStreamTime);\n const tokenCount = asNumber(value.tokenCount);\n const tokensPerSecond = asNumber(value.tokensPerSecond);\n const totalChunks = asNumber(value.totalChunks);\n const toolCallCount = asNumber(value.toolCallCount);\n\n const result: MessageTimingPreview = {\n ...(streamStartTime !== undefined ? { streamStartTime } : {}),\n ...(firstTokenTime !== undefined ? { firstTokenTime } : {}),\n ...(totalStreamTime !== undefined ? { totalStreamTime } : {}),\n ...(tokenCount !== undefined ? { tokenCount } : {}),\n ...(tokensPerSecond !== undefined ? { tokensPerSecond } : {}),\n ...(totalChunks !== undefined ? { totalChunks } : {}),\n ...(toolCallCount !== undefined ? { toolCallCount } : {}),\n };\n return Object.keys(result).length > 0 ? result : undefined;\n};\n\nconst parseUsage = (value: unknown): MessageUsagePreview | undefined => {\n if (!Array.isArray(value) || value.length === 0) return undefined;\n\n let inputTokens = 0;\n let outputTokens = 0;\n let sawUsage = false;\n\n for (const step of value) {\n if (!isRecord(step) || !isRecord(step.usage)) continue;\n const input = asNumber(step.usage.inputTokens);\n const output = asNumber(step.usage.outputTokens);\n if (input !== undefined) {\n inputTokens += input;\n sawUsage = true;\n }\n if (output !== undefined) {\n outputTokens += output;\n sawUsage = true;\n }\n }\n\n if (!sawUsage) return undefined;\n return { inputTokens, outputTokens, stepCount: value.length };\n};\n\nexport const parseMessage = (\n value: unknown,\n index: number,\n): MessagePreview | null => {\n if (!isRecord(value)) return null;\n\n const id = asString(value.id) ?? `message-${index}`;\n const role = asString(value.role) ?? \"unknown\";\n\n const rawParts = Array.isArray(value.parts)\n ? value.parts\n : Array.isArray(value.content)\n ? value.content\n : [];\n const parts = rawParts.map((part) => parsePart(part));\n\n const status = parsePartStatus(value.status);\n const metadata = isRecord(value.metadata) ? value.metadata : undefined;\n const timing = parseTiming(metadata?.timing);\n const usage = parseUsage(metadata?.steps);\n const submittedFeedback = isRecord(metadata?.submittedFeedback)\n ? asString(metadata.submittedFeedback.type)\n : undefined;\n const isOptimistic = asBool(metadata?.isOptimistic);\n const createdAt = asString(value.createdAt);\n const branchNumber = asNumber(value.branchNumber);\n const branchCount = asNumber(value.branchCount);\n const messageIndex = asNumber(value.index);\n\n return {\n id,\n role,\n parts,\n attachments: parseAttachments(value.attachments),\n ...(createdAt ? { createdAt } : {}),\n ...(status ? { status } : {}),\n ...(timing ? { timing } : {}),\n ...(usage ? { usage } : {}),\n ...(branchNumber !== undefined ? { branchNumber } : {}),\n ...(branchCount !== undefined ? { branchCount } : {}),\n ...(messageIndex !== undefined ? { index: messageIndex } : {}),\n ...(isOptimistic !== undefined ? { isOptimistic } : {}),\n ...(submittedFeedback ? { submittedFeedback } : {}),\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { AttachmentPreview } from "../attachments/types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/views/message/types.d.ts
|
|
4
|
+
interface PartStatusPreview {
|
|
5
|
+
readonly type: string;
|
|
6
|
+
readonly reason?: string;
|
|
7
|
+
readonly error?: unknown;
|
|
8
|
+
}
|
|
9
|
+
interface ToolCallApprovalPreview {
|
|
10
|
+
readonly id?: string;
|
|
11
|
+
readonly approved?: boolean;
|
|
12
|
+
readonly reason?: string;
|
|
13
|
+
readonly isAutomatic?: boolean;
|
|
14
|
+
}
|
|
15
|
+
interface ToolCallInterruptPreview {
|
|
16
|
+
readonly type?: string;
|
|
17
|
+
readonly payload?: unknown;
|
|
18
|
+
}
|
|
19
|
+
interface BasePartPreview {
|
|
20
|
+
readonly status?: PartStatusPreview;
|
|
21
|
+
}
|
|
22
|
+
interface TextPartPreview extends BasePartPreview {
|
|
23
|
+
readonly type: "text";
|
|
24
|
+
readonly text: string;
|
|
25
|
+
}
|
|
26
|
+
interface ReasoningPartPreview extends BasePartPreview {
|
|
27
|
+
readonly type: "reasoning";
|
|
28
|
+
readonly text: string;
|
|
29
|
+
}
|
|
30
|
+
interface SourcePartPreview extends BasePartPreview {
|
|
31
|
+
readonly type: "source";
|
|
32
|
+
readonly sourceType?: string;
|
|
33
|
+
readonly title?: string;
|
|
34
|
+
readonly url?: string;
|
|
35
|
+
}
|
|
36
|
+
interface ImagePartPreview extends BasePartPreview {
|
|
37
|
+
readonly type: "image";
|
|
38
|
+
readonly filename?: string;
|
|
39
|
+
readonly previewUrl?: string;
|
|
40
|
+
readonly sizeBytes?: number;
|
|
41
|
+
}
|
|
42
|
+
interface FilePartPreview extends BasePartPreview {
|
|
43
|
+
readonly type: "file";
|
|
44
|
+
readonly filename?: string;
|
|
45
|
+
readonly mimeType?: string;
|
|
46
|
+
readonly sizeBytes?: number;
|
|
47
|
+
}
|
|
48
|
+
interface AudioPartPreview extends BasePartPreview {
|
|
49
|
+
readonly type: "audio";
|
|
50
|
+
readonly format?: string;
|
|
51
|
+
readonly sizeBytes?: number;
|
|
52
|
+
}
|
|
53
|
+
interface DataPartPreview extends BasePartPreview {
|
|
54
|
+
readonly type: "data";
|
|
55
|
+
readonly name?: string;
|
|
56
|
+
readonly data: unknown;
|
|
57
|
+
}
|
|
58
|
+
interface GenerativeUiPartPreview extends BasePartPreview {
|
|
59
|
+
readonly type: "generative-ui";
|
|
60
|
+
readonly spec: unknown;
|
|
61
|
+
}
|
|
62
|
+
interface ToolCallPartPreview extends BasePartPreview {
|
|
63
|
+
readonly type: "tool-call";
|
|
64
|
+
readonly toolCallId: string;
|
|
65
|
+
readonly toolName: string;
|
|
66
|
+
readonly args: unknown;
|
|
67
|
+
readonly argsText?: string;
|
|
68
|
+
readonly result?: unknown;
|
|
69
|
+
readonly isError?: boolean;
|
|
70
|
+
readonly artifact?: unknown;
|
|
71
|
+
readonly mcp?: unknown;
|
|
72
|
+
readonly modelContent?: unknown;
|
|
73
|
+
readonly interrupt?: ToolCallInterruptPreview;
|
|
74
|
+
readonly approval?: ToolCallApprovalPreview;
|
|
75
|
+
readonly subMessageCount: number;
|
|
76
|
+
}
|
|
77
|
+
interface UnknownPartPreview extends BasePartPreview {
|
|
78
|
+
readonly type: "unknown";
|
|
79
|
+
readonly rawType: string;
|
|
80
|
+
readonly raw: unknown;
|
|
81
|
+
}
|
|
82
|
+
type PartPreview = TextPartPreview | ReasoningPartPreview | SourcePartPreview | ImagePartPreview | FilePartPreview | AudioPartPreview | DataPartPreview | GenerativeUiPartPreview | ToolCallPartPreview | UnknownPartPreview;
|
|
83
|
+
interface MessageTimingPreview {
|
|
84
|
+
readonly streamStartTime?: number;
|
|
85
|
+
readonly firstTokenTime?: number;
|
|
86
|
+
readonly totalStreamTime?: number;
|
|
87
|
+
readonly tokenCount?: number;
|
|
88
|
+
readonly tokensPerSecond?: number;
|
|
89
|
+
readonly totalChunks?: number;
|
|
90
|
+
readonly toolCallCount?: number;
|
|
91
|
+
}
|
|
92
|
+
interface MessageUsagePreview {
|
|
93
|
+
readonly inputTokens: number;
|
|
94
|
+
readonly outputTokens: number;
|
|
95
|
+
readonly stepCount: number;
|
|
96
|
+
}
|
|
97
|
+
interface MessagePreview {
|
|
98
|
+
readonly id: string;
|
|
99
|
+
readonly role: string;
|
|
100
|
+
readonly createdAt?: string;
|
|
101
|
+
readonly status?: PartStatusPreview;
|
|
102
|
+
readonly parts: readonly PartPreview[];
|
|
103
|
+
readonly attachments: readonly AttachmentPreview[];
|
|
104
|
+
readonly timing?: MessageTimingPreview;
|
|
105
|
+
readonly usage?: MessageUsagePreview;
|
|
106
|
+
readonly branchNumber?: number;
|
|
107
|
+
readonly branchCount?: number;
|
|
108
|
+
readonly index?: number;
|
|
109
|
+
readonly isOptimistic?: boolean;
|
|
110
|
+
readonly submittedFeedback?: string;
|
|
111
|
+
}
|
|
112
|
+
//#endregion
|
|
113
|
+
export { AudioPartPreview, DataPartPreview, FilePartPreview, GenerativeUiPartPreview, ImagePartPreview, MessagePreview, MessageTimingPreview, MessageUsagePreview, PartPreview, PartStatusPreview, ReasoningPartPreview, SourcePartPreview, TextPartPreview, ToolCallApprovalPreview, ToolCallInterruptPreview, ToolCallPartPreview, UnknownPartPreview };
|
|
114
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/views/message/types.ts"],"mappings":";;;UAEiB,iBAAA;EAAA,SACN,IAAA;EAAA,SACA,MAAA;EAAA,SACA,KAAA;AAAA;AAAA,UAGM,uBAAA;EAAA,SACN,EAAA;EAAA,SACA,QAAA;EAAA,SACA,MAAA;EAAA,SACA,WAAA;AAAA;AAAA,UAGM,wBAAA;EAAA,SACN,IAAA;EAAA,SACA,OAAO;AAAA;AAAA,UAGR,eAAA;EAAA,SACC,MAAA,GAAS,iBAAiB;AAAA;AAAA,UAGpB,eAAA,SAAwB,eAAe;EAAA,SAC7C,IAAA;EAAA,SACA,IAAA;AAAA;AAAA,UAGM,oBAAA,SAA6B,eAAe;EAAA,SAClD,IAAA;EAAA,SACA,IAAA;AAAA;AAAA,UAGM,iBAAA,SAA0B,eAAe;EAAA,SAC/C,IAAA;EAAA,SACA,UAAA;EAAA,SACA,KAAA;EAAA,SACA,GAAA;AAAA;AAAA,UAGM,gBAAA,SAAyB,eAAe;EAAA,SAC9C,IAAA;EAAA,SACA,QAAA;EAAA,SACA,UAAA;EAAA,SACA,SAAA;AAAA;AAAA,UAGM,eAAA,SAAwB,eAAe;EAAA,SAC7C,IAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;EAAA,SACA,SAAA;AAAA;AAAA,UAGM,gBAAA,SAAyB,eAAe;EAAA,SAC9C,IAAA;EAAA,SACA,MAAA;EAAA,SACA,SAAA;AAAA;AAAA,UAGM,eAAA,SAAwB,eAAe;EAAA,SAC7C,IAAA;EAAA,SACA,IAAA;EAAA,SACA,IAAA;AAAA;AAAA,UAGM,uBAAA,SAAgC,eAAe;EAAA,SACrD,IAAA;EAAA,SACA,IAAA;AAAA;AAAA,UAGM,mBAAA,SAA4B,eAAA;EAAA,SAClC,IAAA;EAAA,SACA,UAAA;EAAA,SACA,QAAA;EAAA,SACA,IAAA;EAAA,SACA,QAAA;EAAA,SACA,MAAA;EAAA,SACA,OAAA;EAAA,SACA,QAAA;EAAA,SACA,GAAA;EAAA,SACA,YAAA;EAAA,SACA,SAAA,GAAY,wBAAA;EAAA,SACZ,QAAA,GAAW,uBAAA;EAAA,SACX,eAAA;AAAA;AAAA,UAGM,kBAAA,SAA2B,eAAe;EAAA,SAChD,IAAA;EAAA,SACA,OAAA;EAAA,SACA,GAAA;AAAA;AAAA,KAGC,WAAA,GACR,eAAA,GACA,oBAAA,GACA,iBAAA,GACA,gBAAA,GACA,eAAA,GACA,gBAAA,GACA,eAAA,GACA,uBAAA,GACA,mBAAA,GACA,kBAAA;AAAA,UAEa,oBAAA;EAAA,SACN,eAAA;EAAA,SACA,cAAA;EAAA,SACA,eAAA;EAAA,SACA,UAAA;EAAA,SACA,eAAA;EAAA,SACA,WAAA;EAAA,SACA,aAAA;AAAA;AAAA,UAGM,mBAAA;EAAA,SACN,WAAA;EAAA,SACA,YAAA;EAAA,SACA,SAAA;AAAA;AAAA,UAGM,cAAA;EAAA,SACN,EAAA;EAAA,SACA,IAAA;EAAA,SACA,SAAA;EAAA,SACA,MAAA,GAAS,iBAAA;EAAA,SACT,KAAA,WAAgB,WAAA;EAAA,SAChB,WAAA,WAAsB,iBAAA;EAAA,SACtB,MAAA,GAAS,oBAAA;EAAA,SACT,KAAA,GAAQ,mBAAA;EAAA,SACR,YAAA;EAAA,SACA,WAAA;EAAA,SACA,KAAA;EAAA,SACA,YAAA;EAAA,SACA,iBAAA;AAAA"}
|
|
File without changes
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { NormalizedTool } from "../../utils/toolNormalization.js";
|
|
2
|
+
|
|
3
|
+
//#region src/views/model-context/ModelContextView.d.ts
|
|
4
|
+
declare const SystemPromptPane: ({
|
|
5
|
+
system
|
|
6
|
+
}: {
|
|
7
|
+
system: string;
|
|
8
|
+
}) => import("react").JSX.Element;
|
|
9
|
+
declare const ToolDetailPane: ({
|
|
10
|
+
tool
|
|
11
|
+
}: {
|
|
12
|
+
tool: NormalizedTool;
|
|
13
|
+
}) => import("react").JSX.Element;
|
|
14
|
+
declare const CallSettingsPane: ({
|
|
15
|
+
value
|
|
16
|
+
}: {
|
|
17
|
+
value: Record<string, unknown>;
|
|
18
|
+
}) => import("react").JSX.Element;
|
|
19
|
+
declare const ConfigPane: ({
|
|
20
|
+
value
|
|
21
|
+
}: {
|
|
22
|
+
value: Record<string, unknown>;
|
|
23
|
+
}) => import("react").JSX.Element;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { CallSettingsPane, ConfigPane, SystemPromptPane, ToolDetailPane };
|
|
26
|
+
//# sourceMappingURL=ModelContextView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelContextView.d.ts","names":[],"sources":["../../../src/views/model-context/ModelContextView.tsx"],"mappings":";;;cAIa,gBAAA;EAAoB;AAAA;EAAc,MAAA;AAAA,sBAAgB,GAAA,CAAA,OAAA;AAAA,cAMlD,cAAA;EAAkB;AAAA;EAAY,IAAA,EAAM,cAAc;AAAA,sBAAE,GAAA,CAAA,OAAA;AAAA,cAoDpD,gBAAA;EAAoB;AAAA;EAG/B,KAAA,EAAO,MAAM;AAAA,sBACd,GAAA,CAAA,OAAA;AAAA,cAEY,UAAA;EAAc;AAAA;EAAa,KAAA,EAAO,MAAM;AAAA,sBAAmB,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { Chip } from "../ui/Chip.js";
|
|
2
|
+
import { JSONTree } from "../ui/JSONTree.js";
|
|
3
|
+
import { ToneBadge } from "../ui/ToneBadge.js";
|
|
4
|
+
import { PartDisclosure } from "../message/PartDisclosure.js";
|
|
5
|
+
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
//#region src/views/model-context/ModelContextView.tsx
|
|
8
|
+
const SystemPromptPane = (t0) => {
|
|
9
|
+
const $ = c(2);
|
|
10
|
+
const { system } = t0;
|
|
11
|
+
let t1;
|
|
12
|
+
if ($[0] !== system) {
|
|
13
|
+
t1 = /* @__PURE__ */ jsx("div", {
|
|
14
|
+
className: "text-foreground text-[12px] wrap-break-word whitespace-pre-wrap",
|
|
15
|
+
children: system
|
|
16
|
+
});
|
|
17
|
+
$[0] = system;
|
|
18
|
+
$[1] = t1;
|
|
19
|
+
} else t1 = $[1];
|
|
20
|
+
return t1;
|
|
21
|
+
};
|
|
22
|
+
const ToolDetailPane = (t0) => {
|
|
23
|
+
const $ = c(36);
|
|
24
|
+
const { tool } = t0;
|
|
25
|
+
let t1;
|
|
26
|
+
if ($[0] !== tool.type) {
|
|
27
|
+
t1 = tool.type ? /* @__PURE__ */ jsx(Chip, { children: tool.type }) : null;
|
|
28
|
+
$[0] = tool.type;
|
|
29
|
+
$[1] = t1;
|
|
30
|
+
} else t1 = $[1];
|
|
31
|
+
let t2;
|
|
32
|
+
if ($[2] !== tool.providerId) {
|
|
33
|
+
t2 = tool.providerId ? /* @__PURE__ */ jsx(ToneBadge, {
|
|
34
|
+
tone: "violet",
|
|
35
|
+
size: "sm",
|
|
36
|
+
children: tool.providerId
|
|
37
|
+
}) : null;
|
|
38
|
+
$[2] = tool.providerId;
|
|
39
|
+
$[3] = t2;
|
|
40
|
+
} else t2 = $[3];
|
|
41
|
+
let t3;
|
|
42
|
+
if ($[4] !== tool.display) {
|
|
43
|
+
t3 = tool.display ? /* @__PURE__ */ jsx(Chip, { children: tool.display }) : null;
|
|
44
|
+
$[4] = tool.display;
|
|
45
|
+
$[5] = t3;
|
|
46
|
+
} else t3 = $[5];
|
|
47
|
+
let t4;
|
|
48
|
+
if ($[6] !== tool.supportsDeferredResults) {
|
|
49
|
+
t4 = tool.supportsDeferredResults ? /* @__PURE__ */ jsx(Chip, { children: "deferred" }) : null;
|
|
50
|
+
$[6] = tool.supportsDeferredResults;
|
|
51
|
+
$[7] = t4;
|
|
52
|
+
} else t4 = $[7];
|
|
53
|
+
let t5;
|
|
54
|
+
if ($[8] !== tool.disabled) {
|
|
55
|
+
t5 = tool.disabled ? /* @__PURE__ */ jsx(ToneBadge, {
|
|
56
|
+
tone: "amber",
|
|
57
|
+
size: "sm",
|
|
58
|
+
children: "disabled"
|
|
59
|
+
}) : null;
|
|
60
|
+
$[8] = tool.disabled;
|
|
61
|
+
$[9] = t5;
|
|
62
|
+
} else t5 = $[9];
|
|
63
|
+
let t6;
|
|
64
|
+
if ($[10] !== t1 || $[11] !== t2 || $[12] !== t3 || $[13] !== t4 || $[14] !== t5) {
|
|
65
|
+
t6 = /* @__PURE__ */ jsxs("div", {
|
|
66
|
+
className: "flex flex-wrap items-center gap-1.5",
|
|
67
|
+
children: [
|
|
68
|
+
t1,
|
|
69
|
+
t2,
|
|
70
|
+
t3,
|
|
71
|
+
t4,
|
|
72
|
+
t5
|
|
73
|
+
]
|
|
74
|
+
});
|
|
75
|
+
$[10] = t1;
|
|
76
|
+
$[11] = t2;
|
|
77
|
+
$[12] = t3;
|
|
78
|
+
$[13] = t4;
|
|
79
|
+
$[14] = t5;
|
|
80
|
+
$[15] = t6;
|
|
81
|
+
} else t6 = $[15];
|
|
82
|
+
let t7;
|
|
83
|
+
if ($[16] !== tool.description) {
|
|
84
|
+
t7 = tool.description ? /* @__PURE__ */ jsx("p", {
|
|
85
|
+
className: "text-muted-foreground text-[11px] leading-snug",
|
|
86
|
+
children: tool.description
|
|
87
|
+
}) : null;
|
|
88
|
+
$[16] = tool.description;
|
|
89
|
+
$[17] = t7;
|
|
90
|
+
} else t7 = $[17];
|
|
91
|
+
let t8;
|
|
92
|
+
if ($[18] !== tool.parameters) {
|
|
93
|
+
t8 = tool.parameters !== void 0 ? /* @__PURE__ */ jsx(PartDisclosure, {
|
|
94
|
+
label: "Parameters",
|
|
95
|
+
children: /* @__PURE__ */ jsx(JSONTree, {
|
|
96
|
+
value: tool.parameters,
|
|
97
|
+
openDepth: 0,
|
|
98
|
+
compact: true
|
|
99
|
+
})
|
|
100
|
+
}) : null;
|
|
101
|
+
$[18] = tool.parameters;
|
|
102
|
+
$[19] = t8;
|
|
103
|
+
} else t8 = $[19];
|
|
104
|
+
let t9;
|
|
105
|
+
if ($[20] !== tool.providerArgs) {
|
|
106
|
+
t9 = tool.providerArgs !== void 0 ? /* @__PURE__ */ jsx(PartDisclosure, {
|
|
107
|
+
label: "Provider args",
|
|
108
|
+
children: /* @__PURE__ */ jsx(JSONTree, {
|
|
109
|
+
value: tool.providerArgs,
|
|
110
|
+
openDepth: 0,
|
|
111
|
+
compact: true
|
|
112
|
+
})
|
|
113
|
+
}) : null;
|
|
114
|
+
$[20] = tool.providerArgs;
|
|
115
|
+
$[21] = t9;
|
|
116
|
+
} else t9 = $[21];
|
|
117
|
+
let t10;
|
|
118
|
+
if ($[22] !== tool.providerOptions) {
|
|
119
|
+
t10 = tool.providerOptions !== void 0 ? /* @__PURE__ */ jsx(PartDisclosure, {
|
|
120
|
+
label: "Provider options",
|
|
121
|
+
children: /* @__PURE__ */ jsx(JSONTree, {
|
|
122
|
+
value: tool.providerOptions,
|
|
123
|
+
openDepth: 0,
|
|
124
|
+
compact: true
|
|
125
|
+
})
|
|
126
|
+
}) : null;
|
|
127
|
+
$[22] = tool.providerOptions;
|
|
128
|
+
$[23] = t10;
|
|
129
|
+
} else t10 = $[23];
|
|
130
|
+
let t11;
|
|
131
|
+
if ($[24] !== tool.backendDefault) {
|
|
132
|
+
t11 = tool.backendDefault !== void 0 ? /* @__PURE__ */ jsx(PartDisclosure, {
|
|
133
|
+
label: "Backend defaults",
|
|
134
|
+
children: /* @__PURE__ */ jsx(JSONTree, {
|
|
135
|
+
value: tool.backendDefault,
|
|
136
|
+
openDepth: 0,
|
|
137
|
+
compact: true
|
|
138
|
+
})
|
|
139
|
+
}) : null;
|
|
140
|
+
$[24] = tool.backendDefault;
|
|
141
|
+
$[25] = t11;
|
|
142
|
+
} else t11 = $[25];
|
|
143
|
+
let t12;
|
|
144
|
+
if ($[26] !== tool.server) {
|
|
145
|
+
t12 = tool.server !== void 0 ? /* @__PURE__ */ jsx(PartDisclosure, {
|
|
146
|
+
label: "MCP server",
|
|
147
|
+
children: /* @__PURE__ */ jsx(JSONTree, {
|
|
148
|
+
value: tool.server,
|
|
149
|
+
openDepth: 0,
|
|
150
|
+
compact: true
|
|
151
|
+
})
|
|
152
|
+
}) : null;
|
|
153
|
+
$[26] = tool.server;
|
|
154
|
+
$[27] = t12;
|
|
155
|
+
} else t12 = $[27];
|
|
156
|
+
let t13;
|
|
157
|
+
if ($[28] !== t10 || $[29] !== t11 || $[30] !== t12 || $[31] !== t6 || $[32] !== t7 || $[33] !== t8 || $[34] !== t9) {
|
|
158
|
+
t13 = /* @__PURE__ */ jsxs("div", {
|
|
159
|
+
className: "flex flex-col gap-2",
|
|
160
|
+
children: [
|
|
161
|
+
t6,
|
|
162
|
+
t7,
|
|
163
|
+
t8,
|
|
164
|
+
t9,
|
|
165
|
+
t10,
|
|
166
|
+
t11,
|
|
167
|
+
t12
|
|
168
|
+
]
|
|
169
|
+
});
|
|
170
|
+
$[28] = t10;
|
|
171
|
+
$[29] = t11;
|
|
172
|
+
$[30] = t12;
|
|
173
|
+
$[31] = t6;
|
|
174
|
+
$[32] = t7;
|
|
175
|
+
$[33] = t8;
|
|
176
|
+
$[34] = t9;
|
|
177
|
+
$[35] = t13;
|
|
178
|
+
} else t13 = $[35];
|
|
179
|
+
return t13;
|
|
180
|
+
};
|
|
181
|
+
const CallSettingsPane = (t0) => {
|
|
182
|
+
const $ = c(2);
|
|
183
|
+
const { value } = t0;
|
|
184
|
+
let t1;
|
|
185
|
+
if ($[0] !== value) {
|
|
186
|
+
t1 = /* @__PURE__ */ jsx(JSONTree, {
|
|
187
|
+
value,
|
|
188
|
+
openDepth: 1,
|
|
189
|
+
compact: true
|
|
190
|
+
});
|
|
191
|
+
$[0] = value;
|
|
192
|
+
$[1] = t1;
|
|
193
|
+
} else t1 = $[1];
|
|
194
|
+
return t1;
|
|
195
|
+
};
|
|
196
|
+
const ConfigPane = (t0) => {
|
|
197
|
+
const $ = c(2);
|
|
198
|
+
const { value } = t0;
|
|
199
|
+
let t1;
|
|
200
|
+
if ($[0] !== value) {
|
|
201
|
+
t1 = /* @__PURE__ */ jsx(JSONTree, {
|
|
202
|
+
value,
|
|
203
|
+
openDepth: 1,
|
|
204
|
+
compact: true
|
|
205
|
+
});
|
|
206
|
+
$[0] = value;
|
|
207
|
+
$[1] = t1;
|
|
208
|
+
} else t1 = $[1];
|
|
209
|
+
return t1;
|
|
210
|
+
};
|
|
211
|
+
//#endregion
|
|
212
|
+
export { CallSettingsPane, ConfigPane, SystemPromptPane, ToolDetailPane };
|
|
213
|
+
|
|
214
|
+
//# sourceMappingURL=ModelContextView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelContextView.js","names":["NormalizedTool","PartDisclosure","Chip","JSONTree","ToneBadge","SystemPromptPane","t0","$","_c","system","t1","ToolDetailPane","tool","type","t2","providerId","t3","display","t4","supportsDeferredResults","t5","disabled","t6","t7","description","t8","parameters","undefined","t9","providerArgs","t10","providerOptions","t11","backendDefault","t12","server","t13","CallSettingsPane","value","ConfigPane"],"sources":["../../../src/views/model-context/ModelContextView.tsx"],"sourcesContent":["import type { NormalizedTool } from \"../../utils/toolNormalization\";\nimport { PartDisclosure } from \"../message/PartDisclosure\";\nimport { Chip, JSONTree, ToneBadge } from \"../ui\";\n\nexport const SystemPromptPane = ({ system }: { system: string }) => (\n <div className=\"text-foreground text-[12px] wrap-break-word whitespace-pre-wrap\">\n {system}\n </div>\n);\n\nexport const ToolDetailPane = ({ tool }: { tool: NormalizedTool }) => (\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex flex-wrap items-center gap-1.5\">\n {tool.type ? <Chip>{tool.type}</Chip> : null}\n {tool.providerId ? (\n <ToneBadge tone=\"violet\" size=\"sm\">\n {tool.providerId}\n </ToneBadge>\n ) : null}\n {tool.display ? <Chip>{tool.display}</Chip> : null}\n {tool.supportsDeferredResults ? <Chip>deferred</Chip> : null}\n {tool.disabled ? (\n <ToneBadge tone=\"amber\" size=\"sm\">\n disabled\n </ToneBadge>\n ) : null}\n </div>\n\n {tool.description ? (\n <p className=\"text-muted-foreground text-[11px] leading-snug\">\n {tool.description}\n </p>\n ) : null}\n\n {tool.parameters !== undefined ? (\n <PartDisclosure label=\"Parameters\">\n <JSONTree value={tool.parameters} openDepth={0} compact />\n </PartDisclosure>\n ) : null}\n {tool.providerArgs !== undefined ? (\n <PartDisclosure label=\"Provider args\">\n <JSONTree value={tool.providerArgs} openDepth={0} compact />\n </PartDisclosure>\n ) : null}\n {tool.providerOptions !== undefined ? (\n <PartDisclosure label=\"Provider options\">\n <JSONTree value={tool.providerOptions} openDepth={0} compact />\n </PartDisclosure>\n ) : null}\n {tool.backendDefault !== undefined ? (\n <PartDisclosure label=\"Backend defaults\">\n <JSONTree value={tool.backendDefault} openDepth={0} compact />\n </PartDisclosure>\n ) : null}\n {tool.server !== undefined ? (\n <PartDisclosure label=\"MCP server\">\n <JSONTree value={tool.server} openDepth={0} compact />\n </PartDisclosure>\n ) : null}\n </div>\n);\n\nexport const CallSettingsPane = ({\n value,\n}: {\n value: Record<string, unknown>;\n}) => <JSONTree value={value} openDepth={1} compact />;\n\nexport const ConfigPane = ({ value }: { value: Record<string, unknown> }) => (\n <JSONTree value={value} openDepth={1} compact />\n);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/views/nav.d.ts
|
|
2
|
+
type NavGroup<N extends {
|
|
3
|
+
id: string;
|
|
4
|
+
}> = {
|
|
5
|
+
label: string;
|
|
6
|
+
nodes: N[];
|
|
7
|
+
};
|
|
8
|
+
declare const flattenNav: <N extends {
|
|
9
|
+
id: string;
|
|
10
|
+
}>(groups: readonly NavGroup<N>[]) => N[];
|
|
11
|
+
declare const findNavNode: <N extends {
|
|
12
|
+
id: string;
|
|
13
|
+
}>(groups: readonly NavGroup<N>[], nodeId: string | null) => N | undefined;
|
|
14
|
+
declare const firstNavId: <N extends {
|
|
15
|
+
id: string;
|
|
16
|
+
}>(groups: readonly NavGroup<N>[]) => string | null;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { NavGroup, findNavNode, firstNavId, flattenNav };
|
|
19
|
+
//# sourceMappingURL=nav.d.ts.map
|