@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 @@
|
|
|
1
|
+
{"version":3,"file":"nav.d.ts","names":[],"sources":["../../src/views/nav.ts"],"mappings":";KAAY,QAAA;EAAqB,EAAA;AAAA;EAC/B,KAAA;EACA,KAAA,EAAO,CAAC;AAAA;AAAA,cAGG,UAAA;EAA0B,EAAA;AAAA,GACrC,MAAA,WAAiB,QAAA,CAAS,CAAA,QACzB,CAAA;AAAA,cAEU,WAAA;EAA2B,EAAA;AAAA,GACtC,MAAA,WAAiB,QAAA,CAAS,CAAA,KAC1B,MAAA,oBACC,CAAA;AAAA,cAGU,UAAA;EAA0B,EAAA;AAAA,GACrC,MAAA,WAAiB,QAAQ,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/views/nav.ts
|
|
2
|
+
const flattenNav = (groups) => groups.flatMap((group) => group.nodes);
|
|
3
|
+
const findNavNode = (groups, nodeId) => nodeId ? flattenNav(groups).find((node) => node.id === nodeId) : void 0;
|
|
4
|
+
const firstNavId = (groups) => flattenNav(groups)[0]?.id ?? null;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { findNavNode, firstNavId, flattenNav };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=nav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav.js","names":["NavGroup","id","label","nodes","N","flattenNav","groups","flatMap","group","findNavNode","nodeId","find","node","undefined","firstNavId"],"sources":["../../src/views/nav.ts"],"sourcesContent":["export type NavGroup<N extends { id: string }> = {\n label: string;\n nodes: N[];\n};\n\nexport const flattenNav = <N extends { id: string }>(\n groups: readonly NavGroup<N>[],\n): N[] => groups.flatMap((group) => group.nodes);\n\nexport const findNavNode = <N extends { id: string }>(\n groups: readonly NavGroup<N>[],\n nodeId: string | null,\n): N | undefined =>\n nodeId ? flattenNav(groups).find((node) => node.id === nodeId) : undefined;\n\nexport const firstNavId = <N extends { id: string }>(\n groups: readonly NavGroup<N>[],\n): string | null => flattenNav(groups)[0]?.id ?? null;\n"],"mappings":";AAKA,MAAaK,cACXC,WACQA,OAAOC,SAASC,UAAUA,MAAML,KAAK;AAE/C,MAAaM,eACXH,QACAI,WAEAA,SAASL,WAAWC,MAAM,CAAC,CAACK,MAAMC,SAASA,KAAKX,OAAOS,MAAM,IAAIG,KAAAA;AAEnE,MAAaC,cACXR,WACkBD,WAAWC,MAAM,CAAC,CAAC,EAAE,EAAEL,MAAM"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { RawNode } from "./rawNodes.js";
|
|
2
|
+
|
|
3
|
+
//#region src/views/raw/RawDetail.d.ts
|
|
4
|
+
declare const RawDetail: ({
|
|
5
|
+
node,
|
|
6
|
+
state,
|
|
7
|
+
scopes
|
|
8
|
+
}: {
|
|
9
|
+
node: RawNode;
|
|
10
|
+
state: Record<string, unknown>;
|
|
11
|
+
scopes: unknown;
|
|
12
|
+
}) => import("react").JSX.Element;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { RawDetail };
|
|
15
|
+
//# sourceMappingURL=RawDetail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RawDetail.d.ts","names":[],"sources":["../../../src/views/raw/RawDetail.tsx"],"mappings":";;;cAMa,SAAA;EAAa,IAAA;EAAA,KAAA;EAAA;AAAA;EAKxB,IAAA,EAAM,OAAA;EACN,KAAA,EAAO,MAAA;EACP,MAAA;AAAA,sBACD,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { JSONTree } from "../ui/JSONTree.js";
|
|
2
|
+
import { PartDisclosure } from "../message/PartDisclosure.js";
|
|
3
|
+
import { ScopesView } from "../scopes/ScopesView.js";
|
|
4
|
+
import { renderStatePreview } from "./statePreview.js";
|
|
5
|
+
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
//#region src/views/raw/RawDetail.tsx
|
|
8
|
+
const RawDetail = (t0) => {
|
|
9
|
+
const $ = c(14);
|
|
10
|
+
const { node, state, scopes } = t0;
|
|
11
|
+
if (node.kind === "scopes") {
|
|
12
|
+
let t1;
|
|
13
|
+
let t2;
|
|
14
|
+
if ($[0] !== scopes) {
|
|
15
|
+
t1 = /* @__PURE__ */ jsx(ScopesView, { scopes });
|
|
16
|
+
t2 = scopes !== void 0 ? /* @__PURE__ */ jsx(PartDisclosure, {
|
|
17
|
+
label: "Raw JSON",
|
|
18
|
+
children: /* @__PURE__ */ jsx(JSONTree, {
|
|
19
|
+
value: scopes,
|
|
20
|
+
openDepth: 1,
|
|
21
|
+
compact: true
|
|
22
|
+
})
|
|
23
|
+
}) : null;
|
|
24
|
+
$[0] = scopes;
|
|
25
|
+
$[1] = t1;
|
|
26
|
+
$[2] = t2;
|
|
27
|
+
} else {
|
|
28
|
+
t1 = $[1];
|
|
29
|
+
t2 = $[2];
|
|
30
|
+
}
|
|
31
|
+
let t3;
|
|
32
|
+
if ($[3] !== t1 || $[4] !== t2) {
|
|
33
|
+
t3 = /* @__PURE__ */ jsxs("div", {
|
|
34
|
+
className: "flex flex-col gap-3",
|
|
35
|
+
children: [t1, t2]
|
|
36
|
+
});
|
|
37
|
+
$[3] = t1;
|
|
38
|
+
$[4] = t2;
|
|
39
|
+
$[5] = t3;
|
|
40
|
+
} else t3 = $[5];
|
|
41
|
+
return t3;
|
|
42
|
+
}
|
|
43
|
+
const value = state[node.key];
|
|
44
|
+
let t1;
|
|
45
|
+
if ($[6] !== node.key || $[7] !== value) {
|
|
46
|
+
t1 = renderStatePreview(node.key, value);
|
|
47
|
+
$[6] = node.key;
|
|
48
|
+
$[7] = value;
|
|
49
|
+
$[8] = t1;
|
|
50
|
+
} else t1 = $[8];
|
|
51
|
+
let t2;
|
|
52
|
+
if ($[9] !== value) {
|
|
53
|
+
t2 = /* @__PURE__ */ jsx(PartDisclosure, {
|
|
54
|
+
label: "Raw JSON",
|
|
55
|
+
children: /* @__PURE__ */ jsx(JSONTree, {
|
|
56
|
+
value,
|
|
57
|
+
openDepth: 1,
|
|
58
|
+
compact: true
|
|
59
|
+
})
|
|
60
|
+
});
|
|
61
|
+
$[9] = value;
|
|
62
|
+
$[10] = t2;
|
|
63
|
+
} else t2 = $[10];
|
|
64
|
+
let t3;
|
|
65
|
+
if ($[11] !== t1 || $[12] !== t2) {
|
|
66
|
+
t3 = /* @__PURE__ */ jsxs("div", {
|
|
67
|
+
className: "flex flex-col gap-3",
|
|
68
|
+
children: [t1, t2]
|
|
69
|
+
});
|
|
70
|
+
$[11] = t1;
|
|
71
|
+
$[12] = t2;
|
|
72
|
+
$[13] = t3;
|
|
73
|
+
} else t3 = $[13];
|
|
74
|
+
return t3;
|
|
75
|
+
};
|
|
76
|
+
//#endregion
|
|
77
|
+
export { RawDetail };
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=RawDetail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RawDetail.js","names":["PartDisclosure","ScopesView","JSONTree","renderStatePreview","RawNode","RawDetail","t0","$","_c","node","state","scopes","kind","t1","t2","undefined","t3","value","key"],"sources":["../../../src/views/raw/RawDetail.tsx"],"sourcesContent":["import { PartDisclosure } from \"../message/PartDisclosure\";\nimport { ScopesView } from \"../scopes\";\nimport { JSONTree } from \"../ui\";\nimport { renderStatePreview } from \"./statePreview\";\nimport type { RawNode } from \"./rawNodes\";\n\nexport const RawDetail = ({\n node,\n state,\n scopes,\n}: {\n node: RawNode;\n state: Record<string, unknown>;\n scopes: unknown;\n}) => {\n if (node.kind === \"scopes\") {\n return (\n <div className=\"flex flex-col gap-3\">\n <ScopesView scopes={scopes} />\n {scopes !== undefined ? (\n <PartDisclosure label=\"Raw JSON\">\n <JSONTree value={scopes} openDepth={1} compact />\n </PartDisclosure>\n ) : null}\n </div>\n );\n }\n\n const value = state[node.key];\n\n return (\n <div className=\"flex flex-col gap-3\">\n {renderStatePreview(node.key, value)}\n <PartDisclosure label=\"Raw JSON\">\n <JSONTree value={value} openDepth={1} compact />\n </PartDisclosure>\n </div>\n );\n};\n"],"mappings":";;;;;;;AAMA,MAAaK,aAAYC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAC,MAAA,EAAAC,MAAAC,OAAAC,WAAAL;CASxB,IAAIG,KAAIG,SAAU,UAAQ;EAAA,IAAAC;EAAA,IAAAC;EAAA,IAAAP,EAAA,OAAAI,QAAA;GAGpBE,KAAA,oBAAC,YAAD,EAAoBF,OAAM,CAAA;GACzBG,KAAAH,WAAWI,KAAAA,IACV,oBAAC,gBAAD;IAAsB,OAAA;cACpB,oBAAC,UAAD;KAAiBJ,OAAAA;KAAmB,WAAA;KAAG,SAAA;IAAO,CAAA;GADjC,CAAA,IADhB;GAIOJ,EAAA,KAAAI;GAAAJ,EAAA,KAAAM;GAAAN,EAAA,KAAAO;EAAA,OAAA;GAAAD,KAAAN,EAAA;GAAAO,KAAAP,EAAA;EAAA;EAAA,IAAAS;EAAA,IAAAT,EAAA,OAAAM,MAAAN,EAAA,OAAAO,IAAA;GANVE,KAAA,qBAAA,OAAA;IAAe,WAAA;cAAf,CACEH,IACCC,EAKG;;GAAAP,EAAA,KAAAM;GAAAN,EAAA,KAAAO;GAAAP,EAAA,KAAAS;EAAA,OAAAA,KAAAT,EAAA;EAAA,OAPNS;CAOM;CAIV,MAAAC,QAAcP,MAAMD,KAAIS;CAAM,IAAAL;CAAA,IAAAN,EAAA,OAAAE,KAAAS,OAAAX,EAAA,OAAAU,OAAA;EAIzBJ,KAAAV,mBAAmBM,KAAIS,KAAMD,KAAK;EAACV,EAAA,KAAAE,KAAAS;EAAAX,EAAA,KAAAU;EAAAV,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,IAAAO;CAAA,IAAAP,EAAA,OAAAU,OAAA;EACpCH,KAAA,oBAAC,gBAAD;GAAsB,OAAA;aACpB,oBAAC,UAAD;IAAiBG;IAAkB,WAAA;IAAG,SAAA;GAAO,CAAA;EADhC,CAAA;EAEEV,EAAA,KAAAU;EAAAV,EAAA,MAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,IAAAS;CAAA,IAAAT,EAAA,QAAAM,MAAAN,EAAA,QAAAO,IAAA;EAJnBE,KAAA,qBAAA,OAAA;GAAe,WAAA;aAAf,CACGH,IACDC,EAGI;;EAAAP,EAAA,MAAAM;EAAAN,EAAA,MAAAO;EAAAP,EAAA,MAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,OALNS;AAKM"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ApiInfo } from "../../data/types.js";
|
|
2
|
+
import { NavGroup } from "../nav.js";
|
|
3
|
+
|
|
4
|
+
//#region src/views/raw/rawNodes.d.ts
|
|
5
|
+
type RawNode = {
|
|
6
|
+
id: `raw:slice:${string}`;
|
|
7
|
+
kind: "slice";
|
|
8
|
+
key: string;
|
|
9
|
+
hint: string | null;
|
|
10
|
+
} | {
|
|
11
|
+
id: "raw:scopes";
|
|
12
|
+
kind: "scopes";
|
|
13
|
+
count: number;
|
|
14
|
+
};
|
|
15
|
+
type RawNavGroup = NavGroup<RawNode>;
|
|
16
|
+
declare const sliceHint: (key: string, value: unknown) => string | null;
|
|
17
|
+
declare const buildRawNav: (data: ApiInfo) => RawNavGroup[];
|
|
18
|
+
//#endregion
|
|
19
|
+
export { RawNavGroup, RawNode, buildRawNav, sliceHint };
|
|
20
|
+
//# sourceMappingURL=rawNodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rawNodes.d.ts","names":[],"sources":["../../../src/views/raw/rawNodes.ts"],"mappings":";;;;KAUY,OAAA;EAEN,EAAA;EACA,IAAA;EACA,GAAA;EACA,IAAA;AAAA;EAEA,EAAA;EAAkB,IAAA;EAAgB,KAAA;AAAA;AAAA,KAE5B,WAAA,GAAc,QAAQ,CAAC,OAAA;AAAA,cAwBtB,SAAA,GAAa,GAAA,UAAa,KAAc;AAAA,cAmCxC,WAAA,GAAe,IAAA,EAAM,OAAA,KAAU,WAAW"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { isRecord } from "../../utils/common.js";
|
|
2
|
+
import { parseScopes } from "../scopes/parse.js";
|
|
3
|
+
import { parseComposerPreview, parseThreadListPreview, parseThreadPreview } from "../thread/utils.js";
|
|
4
|
+
//#region src/views/raw/rawNodes.ts
|
|
5
|
+
const SLICE_ORDER = [
|
|
6
|
+
"thread",
|
|
7
|
+
"threads",
|
|
8
|
+
"threadListItem",
|
|
9
|
+
"threadlistitem",
|
|
10
|
+
"composer",
|
|
11
|
+
"tools",
|
|
12
|
+
"mcp"
|
|
13
|
+
];
|
|
14
|
+
const sortSliceKeys = (keys) => {
|
|
15
|
+
const rank = new Map(SLICE_ORDER.map((key, index) => [key, index]));
|
|
16
|
+
return [...keys].sort((left, right) => {
|
|
17
|
+
const leftRank = rank.get(left) ?? rank.get(left.toLowerCase()) ?? 999;
|
|
18
|
+
const rightRank = rank.get(right) ?? rank.get(right.toLowerCase()) ?? 999;
|
|
19
|
+
if (leftRank !== rightRank) return leftRank - rightRank;
|
|
20
|
+
return left.localeCompare(right);
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
const sliceHint = (key, value) => {
|
|
24
|
+
switch (key) {
|
|
25
|
+
case "thread": {
|
|
26
|
+
const thread = parseThreadPreview(value);
|
|
27
|
+
if (!thread) return null;
|
|
28
|
+
return `${thread.messages.length} msgs`;
|
|
29
|
+
}
|
|
30
|
+
case "threads": {
|
|
31
|
+
const threads = parseThreadListPreview(value);
|
|
32
|
+
if (!threads) return null;
|
|
33
|
+
return `${threads.threadIds.length} active`;
|
|
34
|
+
}
|
|
35
|
+
case "composer": {
|
|
36
|
+
const composer = parseComposerPreview(value);
|
|
37
|
+
if (!composer) return null;
|
|
38
|
+
return `${composer.textLength} chars`;
|
|
39
|
+
}
|
|
40
|
+
case "tools": {
|
|
41
|
+
if (!isRecord(value)) return null;
|
|
42
|
+
const count = Object.keys(value).length;
|
|
43
|
+
return count ? `${count} mapped` : "empty";
|
|
44
|
+
}
|
|
45
|
+
case "mcp": {
|
|
46
|
+
if (!isRecord(value)) return null;
|
|
47
|
+
const servers = Array.isArray(value.servers) ? value.servers.length : (Array.isArray(value.connectors) ? value.connectors.length : 0) + (Array.isArray(value.customServers) ? value.customServers.length : 0);
|
|
48
|
+
return servers ? `${servers} servers` : "empty";
|
|
49
|
+
}
|
|
50
|
+
default: return null;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const buildRawNav = (data) => {
|
|
54
|
+
const stateNodes = sortSliceKeys(Object.keys(data.state)).map((key) => ({
|
|
55
|
+
id: `raw:slice:${key}`,
|
|
56
|
+
kind: "slice",
|
|
57
|
+
key,
|
|
58
|
+
hint: sliceHint(key, data.state[key])
|
|
59
|
+
}));
|
|
60
|
+
const groups = [];
|
|
61
|
+
if (stateNodes.length) groups.push({
|
|
62
|
+
label: "State",
|
|
63
|
+
nodes: stateNodes
|
|
64
|
+
});
|
|
65
|
+
if (data.scopes !== void 0) groups.push({
|
|
66
|
+
label: "Graph",
|
|
67
|
+
nodes: [{
|
|
68
|
+
id: "raw:scopes",
|
|
69
|
+
kind: "scopes",
|
|
70
|
+
count: parseScopes(data.scopes).length
|
|
71
|
+
}]
|
|
72
|
+
});
|
|
73
|
+
return groups;
|
|
74
|
+
};
|
|
75
|
+
//#endregion
|
|
76
|
+
export { buildRawNav, sliceHint };
|
|
77
|
+
|
|
78
|
+
//# sourceMappingURL=rawNodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rawNodes.js","names":["ApiInfo","isRecord","parseComposerPreview","parseThreadListPreview","parseThreadPreview","parseScopes","NavGroup","RawNode","id","kind","key","hint","count","RawNavGroup","SLICE_ORDER","const","sortSliceKeys","keys","rank","Map","map","index","sort","left","right","leftRank","get","toLowerCase","rightRank","localeCompare","sliceHint","value","thread","messages","length","threads","threadIds","composer","textLength","Object","servers","Array","isArray","connectors","customServers","buildRawNav","data","sliceKeys","state","stateNodes","groups","push","label","nodes","scopes","undefined"],"sources":["../../../src/views/raw/rawNodes.ts"],"sourcesContent":["import type { ApiInfo } from \"../../data/types\";\nimport { isRecord } from \"../../utils/common\";\nimport {\n parseComposerPreview,\n parseThreadListPreview,\n parseThreadPreview,\n} from \"../thread\";\nimport { parseScopes } from \"../scopes/parse\";\nimport type { NavGroup } from \"../nav\";\n\nexport type RawNode =\n | {\n id: `raw:slice:${string}`;\n kind: \"slice\";\n key: string;\n hint: string | null;\n }\n | { id: \"raw:scopes\"; kind: \"scopes\"; count: number };\n\nexport type RawNavGroup = NavGroup<RawNode>;\n\nconst SLICE_ORDER = [\n \"thread\",\n \"threads\",\n \"threadListItem\",\n \"threadlistitem\",\n \"composer\",\n \"tools\",\n \"mcp\",\n] as const;\n\nconst sortSliceKeys = (keys: string[]) => {\n const rank = new Map<string, number>(\n SLICE_ORDER.map((key, index) => [key, index]),\n );\n return [...keys].sort((left, right) => {\n const leftRank = rank.get(left) ?? rank.get(left.toLowerCase()) ?? 999;\n const rightRank = rank.get(right) ?? rank.get(right.toLowerCase()) ?? 999;\n if (leftRank !== rightRank) return leftRank - rightRank;\n return left.localeCompare(right);\n });\n};\n\nexport const sliceHint = (key: string, value: unknown): string | null => {\n switch (key) {\n case \"thread\": {\n const thread = parseThreadPreview(value);\n if (!thread) return null;\n return `${thread.messages.length} msgs`;\n }\n case \"threads\": {\n const threads = parseThreadListPreview(value);\n if (!threads) return null;\n return `${threads.threadIds.length} active`;\n }\n case \"composer\": {\n const composer = parseComposerPreview(value);\n if (!composer) return null;\n return `${composer.textLength} chars`;\n }\n case \"tools\": {\n if (!isRecord(value)) return null;\n const count = Object.keys(value).length;\n return count ? `${count} mapped` : \"empty\";\n }\n case \"mcp\": {\n if (!isRecord(value)) return null;\n const servers = Array.isArray(value.servers)\n ? value.servers.length\n : (Array.isArray(value.connectors) ? value.connectors.length : 0) +\n (Array.isArray(value.customServers) ? value.customServers.length : 0);\n return servers ? `${servers} servers` : \"empty\";\n }\n default:\n return null;\n }\n};\n\nexport const buildRawNav = (data: ApiInfo): RawNavGroup[] => {\n const sliceKeys = sortSliceKeys(Object.keys(data.state));\n const stateNodes: RawNode[] = sliceKeys.map((key) => ({\n id: `raw:slice:${key}`,\n kind: \"slice\",\n key,\n hint: sliceHint(key, data.state[key]),\n }));\n\n const groups: RawNavGroup[] = [];\n if (stateNodes.length) {\n groups.push({ label: \"State\", nodes: stateNodes });\n }\n\n if (data.scopes !== undefined) {\n groups.push({\n label: \"Graph\",\n nodes: [\n {\n id: \"raw:scopes\",\n kind: \"scopes\",\n count: parseScopes(data.scopes).length,\n },\n ],\n });\n }\n\n return groups;\n};\n"],"mappings":";;;;AAqBA,MAAMc,cAAc;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;AAAK;AAGP,MAAME,iBAAiBC,SAAmB;CACxC,MAAMC,OAAO,IAAIC,IACfL,YAAYM,KAAKV,KAAKW,UAAU,CAACX,KAAKW,KAAK,CAAC,CAC9C;CACA,OAAO,CAAC,GAAGJ,IAAI,CAAC,CAACK,MAAMC,MAAMC,UAAU;EACrC,MAAMC,WAAWP,KAAKQ,IAAIH,IAAI,KAAKL,KAAKQ,IAAIH,KAAKI,YAAY,CAAC,KAAK;EACnE,MAAMC,YAAYV,KAAKQ,IAAIF,KAAK,KAAKN,KAAKQ,IAAIF,MAAMG,YAAY,CAAC,KAAK;EACtE,IAAIF,aAAaG,WAAW,OAAOH,WAAWG;EAC9C,OAAOL,KAAKM,cAAcL,KAAK;CACjC,CAAC;AACH;AAEA,MAAaM,aAAapB,KAAaqB,UAAkC;CACvE,QAAQrB,KAAR;EACE,KAAK,UAAU;GACb,MAAMsB,SAAS5B,mBAAmB2B,KAAK;GACvC,IAAI,CAACC,QAAQ,OAAO;GACpB,OAAO,GAAGA,OAAOC,SAASC,OAAM;EAClC;EACA,KAAK,WAAW;GACd,MAAMC,UAAUhC,uBAAuB4B,KAAK;GAC5C,IAAI,CAACI,SAAS,OAAO;GACrB,OAAO,GAAGA,QAAQC,UAAUF,OAAM;EACpC;EACA,KAAK,YAAY;GACf,MAAMG,WAAWnC,qBAAqB6B,KAAK;GAC3C,IAAI,CAACM,UAAU,OAAO;GACtB,OAAO,GAAGA,SAASC,WAAU;EAC/B;EACA,KAAK,SAAS;GACZ,IAAI,CAACrC,SAAS8B,KAAK,GAAG,OAAO;GAC7B,MAAMnB,QAAQ2B,OAAOtB,KAAKc,KAAK,CAAC,CAACG;GACjC,OAAOtB,QAAQ,GAAGA,MAAK,WAAY;EACrC;EACA,KAAK,OAAO;GACV,IAAI,CAACX,SAAS8B,KAAK,GAAG,OAAO;GAC7B,MAAMS,UAAUC,MAAMC,QAAQX,MAAMS,OAAO,IACvCT,MAAMS,QAAQN,UACbO,MAAMC,QAAQX,MAAMY,UAAU,IAAIZ,MAAMY,WAAWT,SAAS,MAC5DO,MAAMC,QAAQX,MAAMa,aAAa,IAAIb,MAAMa,cAAcV,SAAS;GACvE,OAAOM,UAAU,GAAGA,QAAO,YAAa;EAC1C;EACA,SACE,OAAO;CACX;AACF;AAEA,MAAaK,eAAeC,SAAiC;CAE3D,MAAMG,aADYjC,cAAcuB,OAAOtB,KAAK6B,KAAKE,KAAK,CACxBD,CAAS,CAAC3B,KAAKV,SAAS;EACpDF,IAAI,aAAaE;EACjBD,MAAM;EACNC;EACAC,MAAMmB,UAAUpB,KAAKoC,KAAKE,MAAMtC,IAAI;CACtC,EAAE;CAEF,MAAMwC,SAAwB,CAAA;CAC9B,IAAID,WAAWf,QACbgB,OAAOC,KAAK;EAAEC,OAAO;EAASC,OAAOJ;CAAW,CAAC;CAGnD,IAAIH,KAAKQ,WAAWC,KAAAA,GAClBL,OAAOC,KAAK;EACVC,OAAO;EACPC,OAAO,CACL;GACE7C,IAAI;GACJC,MAAM;GACNG,OAAOP,YAAYyC,KAAKQ,MAAM,CAAC,CAACpB;EAClC,CAAC;CAEL,CAAC;CAGH,OAAOgB;AACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statePreview.d.ts","names":[],"sources":["../../../src/views/raw/statePreview.tsx"],"mappings":";cAmKa,kBAAA,GAAsB,GAAA,UAAa,KAAA,8BAAc,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { isRecord, truncate } from "../../utils/common.js";
|
|
2
|
+
import { InfoCard } from "../ui/InfoCard.js";
|
|
3
|
+
import { JSONTree } from "../ui/JSONTree.js";
|
|
4
|
+
import { SummaryItem, SummaryList } from "../ui/SummaryItem.js";
|
|
5
|
+
import { McpView } from "../mcp/McpView.js";
|
|
6
|
+
import { ToolUIsView } from "../context/ToolUIsView.js";
|
|
7
|
+
import { parseComposerPreview, parseThreadListItemPreview, parseThreadListPreview, parseThreadPreview } from "../thread/utils.js";
|
|
8
|
+
import { ComposerAttachments } from "../thread/ComposerAttachments.js";
|
|
9
|
+
import { ComposerFlags } from "../thread/ComposerFlags.js";
|
|
10
|
+
import { ComposerQueue } from "../thread/ComposerQueue.js";
|
|
11
|
+
import { ThreadDetails } from "../thread/ThreadDetails.js";
|
|
12
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
+
//#region src/views/raw/statePreview.tsx
|
|
14
|
+
const renderToolUIsStatePreview = (value) => /* @__PURE__ */ jsx(ToolUIsView, { value });
|
|
15
|
+
const renderThreadsStatePreview = (value) => {
|
|
16
|
+
const state = parseThreadListPreview(value);
|
|
17
|
+
if (!state) return /* @__PURE__ */ jsx(JSONTree, { value });
|
|
18
|
+
const threadItems = state.threadItems.slice(0, 8);
|
|
19
|
+
const main = state.main;
|
|
20
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
21
|
+
className: "flex flex-col gap-6",
|
|
22
|
+
children: [
|
|
23
|
+
/* @__PURE__ */ jsx(InfoCard, {
|
|
24
|
+
title: "Threads",
|
|
25
|
+
children: /* @__PURE__ */ jsxs(SummaryList, { children: [
|
|
26
|
+
/* @__PURE__ */ jsx(SummaryItem, {
|
|
27
|
+
label: "Main thread",
|
|
28
|
+
value: state.mainThreadId ?? "—"
|
|
29
|
+
}),
|
|
30
|
+
/* @__PURE__ */ jsx(SummaryItem, {
|
|
31
|
+
label: "New thread",
|
|
32
|
+
value: state.newThreadId ?? "—"
|
|
33
|
+
}),
|
|
34
|
+
/* @__PURE__ */ jsx(SummaryItem, {
|
|
35
|
+
label: "Active",
|
|
36
|
+
value: String(state.threadIds.length)
|
|
37
|
+
}),
|
|
38
|
+
/* @__PURE__ */ jsx(SummaryItem, {
|
|
39
|
+
label: "Archived",
|
|
40
|
+
value: String(state.archivedThreadIds.length)
|
|
41
|
+
})
|
|
42
|
+
] })
|
|
43
|
+
}),
|
|
44
|
+
threadItems.length ? /* @__PURE__ */ jsxs(InfoCard, {
|
|
45
|
+
title: "Thread items",
|
|
46
|
+
count: state.threadItems.length,
|
|
47
|
+
children: [/* @__PURE__ */ jsxs("table", {
|
|
48
|
+
className: "w-full table-fixed text-left",
|
|
49
|
+
children: [/* @__PURE__ */ jsx("thead", {
|
|
50
|
+
className: "text-muted-foreground text-[11px]",
|
|
51
|
+
children: /* @__PURE__ */ jsxs("tr", {
|
|
52
|
+
className: "border-border border-b",
|
|
53
|
+
children: [
|
|
54
|
+
/* @__PURE__ */ jsx("th", {
|
|
55
|
+
className: "py-1.5 pr-3 font-medium",
|
|
56
|
+
children: "Title"
|
|
57
|
+
}),
|
|
58
|
+
/* @__PURE__ */ jsx("th", {
|
|
59
|
+
className: "py-1.5 pr-3 font-medium",
|
|
60
|
+
children: "Status"
|
|
61
|
+
}),
|
|
62
|
+
/* @__PURE__ */ jsx("th", {
|
|
63
|
+
className: "py-1.5 font-medium",
|
|
64
|
+
children: "Identifiers"
|
|
65
|
+
})
|
|
66
|
+
]
|
|
67
|
+
})
|
|
68
|
+
}), /* @__PURE__ */ jsx("tbody", {
|
|
69
|
+
className: "text-foreground text-[12px]",
|
|
70
|
+
children: threadItems.map((item) => /* @__PURE__ */ jsxs("tr", {
|
|
71
|
+
className: "border-border/70 border-b last:border-b-0",
|
|
72
|
+
children: [
|
|
73
|
+
/* @__PURE__ */ jsxs("td", {
|
|
74
|
+
className: "py-2 pr-3 align-top",
|
|
75
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
76
|
+
className: "text-foreground truncate font-medium",
|
|
77
|
+
children: item.title || "(untitled)"
|
|
78
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
79
|
+
className: "text-muted-foreground truncate font-mono text-[11px]",
|
|
80
|
+
children: item.id
|
|
81
|
+
})]
|
|
82
|
+
}),
|
|
83
|
+
/* @__PURE__ */ jsx("td", {
|
|
84
|
+
className: "text-muted-foreground py-2 pr-3 align-top",
|
|
85
|
+
children: item.status ?? "—"
|
|
86
|
+
}),
|
|
87
|
+
/* @__PURE__ */ jsxs("td", {
|
|
88
|
+
className: "text-muted-foreground py-2 align-top font-mono text-[11px]",
|
|
89
|
+
children: [
|
|
90
|
+
item.remoteId ? `Remote: ${item.remoteId}` : null,
|
|
91
|
+
item.remoteId && item.externalId ? /* @__PURE__ */ jsx("br", {}) : null,
|
|
92
|
+
item.externalId ? `External: ${item.externalId}` : null,
|
|
93
|
+
!item.remoteId && !item.externalId ? "—" : null
|
|
94
|
+
]
|
|
95
|
+
})
|
|
96
|
+
]
|
|
97
|
+
}, item.id))
|
|
98
|
+
})]
|
|
99
|
+
}), state.threadItems.length > threadItems.length ? /* @__PURE__ */ jsxs("div", {
|
|
100
|
+
className: "text-muted-foreground text-[11px]",
|
|
101
|
+
children: ["Showing first ", threadItems.length]
|
|
102
|
+
}) : null]
|
|
103
|
+
}) : null,
|
|
104
|
+
main ? /* @__PURE__ */ jsx(ThreadDetails, {
|
|
105
|
+
thread: main,
|
|
106
|
+
title: "Main thread"
|
|
107
|
+
}) : null
|
|
108
|
+
]
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
const renderThreadStatePreview = (value) => {
|
|
112
|
+
const thread = parseThreadPreview(value);
|
|
113
|
+
if (!thread) return /* @__PURE__ */ jsx(JSONTree, { value });
|
|
114
|
+
return /* @__PURE__ */ jsx(ThreadDetails, {
|
|
115
|
+
thread,
|
|
116
|
+
title: "Thread"
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
const renderThreadListItemStatePreview = (value) => {
|
|
120
|
+
const item = parseThreadListItemPreview(value);
|
|
121
|
+
if (!item) return /* @__PURE__ */ jsx(JSONTree, { value });
|
|
122
|
+
return /* @__PURE__ */ jsxs(SummaryList, { children: [
|
|
123
|
+
/* @__PURE__ */ jsx(SummaryItem, {
|
|
124
|
+
label: "ID",
|
|
125
|
+
value: item.id
|
|
126
|
+
}),
|
|
127
|
+
/* @__PURE__ */ jsx(SummaryItem, {
|
|
128
|
+
label: "Title",
|
|
129
|
+
value: item.title ?? "(untitled)"
|
|
130
|
+
}),
|
|
131
|
+
/* @__PURE__ */ jsx(SummaryItem, {
|
|
132
|
+
label: "Status",
|
|
133
|
+
value: item.status ?? "—"
|
|
134
|
+
}),
|
|
135
|
+
/* @__PURE__ */ jsx(SummaryItem, {
|
|
136
|
+
label: "Remote ID",
|
|
137
|
+
value: item.remoteId ?? "—"
|
|
138
|
+
}),
|
|
139
|
+
/* @__PURE__ */ jsx(SummaryItem, {
|
|
140
|
+
label: "External ID",
|
|
141
|
+
value: item.externalId ?? "—"
|
|
142
|
+
})
|
|
143
|
+
] });
|
|
144
|
+
};
|
|
145
|
+
const renderComposerStatePreview = (value) => {
|
|
146
|
+
const composer = parseComposerPreview(value);
|
|
147
|
+
if (!composer || !isRecord(value)) return /* @__PURE__ */ jsx(JSONTree, { value });
|
|
148
|
+
const text = typeof value.text === "string" ? value.text : "";
|
|
149
|
+
const runConfig = value.runConfig;
|
|
150
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
151
|
+
className: "flex flex-col gap-6",
|
|
152
|
+
children: [
|
|
153
|
+
/* @__PURE__ */ jsxs(InfoCard, {
|
|
154
|
+
title: "Composer",
|
|
155
|
+
children: [
|
|
156
|
+
/* @__PURE__ */ jsxs(SummaryList, { children: [
|
|
157
|
+
/* @__PURE__ */ jsx(SummaryItem, {
|
|
158
|
+
label: "Role",
|
|
159
|
+
value: composer.role ?? "—"
|
|
160
|
+
}),
|
|
161
|
+
/* @__PURE__ */ jsx(SummaryItem, {
|
|
162
|
+
label: "Text length",
|
|
163
|
+
value: String(composer.textLength)
|
|
164
|
+
}),
|
|
165
|
+
/* @__PURE__ */ jsx(SummaryItem, {
|
|
166
|
+
label: "Attachments",
|
|
167
|
+
value: String(composer.attachments.length)
|
|
168
|
+
}),
|
|
169
|
+
/* @__PURE__ */ jsx(SummaryItem, {
|
|
170
|
+
label: "Mode",
|
|
171
|
+
value: composer.type ?? "—"
|
|
172
|
+
})
|
|
173
|
+
] }),
|
|
174
|
+
/* @__PURE__ */ jsx(ComposerFlags, { composer }),
|
|
175
|
+
/* @__PURE__ */ jsx(ComposerAttachments, { attachments: composer.attachments }),
|
|
176
|
+
/* @__PURE__ */ jsx(ComposerQueue, { queue: composer.queue })
|
|
177
|
+
]
|
|
178
|
+
}),
|
|
179
|
+
text ? /* @__PURE__ */ jsx(InfoCard, {
|
|
180
|
+
title: "Text preview",
|
|
181
|
+
children: /* @__PURE__ */ jsx("p", {
|
|
182
|
+
className: "text-foreground text-[12px] wrap-break-word whitespace-pre-wrap",
|
|
183
|
+
children: truncate(text, 240)
|
|
184
|
+
})
|
|
185
|
+
}) : null,
|
|
186
|
+
runConfig !== void 0 ? /* @__PURE__ */ jsx(InfoCard, {
|
|
187
|
+
title: "Run config",
|
|
188
|
+
children: /* @__PURE__ */ jsx(JSONTree, { value: runConfig })
|
|
189
|
+
}) : null
|
|
190
|
+
]
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
const renderStatePreview = (key, value) => {
|
|
194
|
+
switch (key) {
|
|
195
|
+
case "threads": return renderThreadsStatePreview(value);
|
|
196
|
+
case "threadListItems": return renderThreadsStatePreview({
|
|
197
|
+
threadItems: value,
|
|
198
|
+
threadIds: [],
|
|
199
|
+
archivedThreadIds: []
|
|
200
|
+
});
|
|
201
|
+
case "thread": return renderThreadStatePreview(value);
|
|
202
|
+
case "threadListItem":
|
|
203
|
+
case "threadlistitem": return renderThreadListItemStatePreview(value);
|
|
204
|
+
case "tools": return renderToolUIsStatePreview(value);
|
|
205
|
+
case "composer": return renderComposerStatePreview(value);
|
|
206
|
+
case "mcp": return /* @__PURE__ */ jsx(McpView, { value });
|
|
207
|
+
default: return /* @__PURE__ */ jsx(JSONTree, { value });
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
//#endregion
|
|
211
|
+
export { renderStatePreview };
|
|
212
|
+
|
|
213
|
+
//# sourceMappingURL=statePreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statePreview.js","names":["isRecord","truncate","McpView","ToolUIsView","ComposerAttachments","ComposerFlags","ComposerQueue","ThreadDetails","parseComposerPreview","parseThreadListItemPreview","parseThreadListPreview","parseThreadPreview","InfoCard","JSONTree","SummaryItem","SummaryList","renderToolUIsStatePreview","value","renderThreadsStatePreview","state","threadItems","slice","main","mainThreadId","newThreadId","String","threadIds","length","archivedThreadIds","map","item","id","title","status","remoteId","externalId","renderThreadStatePreview","thread","renderThreadListItemStatePreview","renderComposerStatePreview","composer","text","runConfig","role","textLength","attachments","type","queue","undefined","renderStatePreview","key"],"sources":["../../../src/views/raw/statePreview.tsx"],"sourcesContent":["import { isRecord, truncate } from \"../../utils/common\";\nimport { McpView } from \"../mcp\";\nimport { ToolUIsView } from \"../context\";\nimport {\n ComposerAttachments,\n ComposerFlags,\n ComposerQueue,\n ThreadDetails,\n parseComposerPreview,\n parseThreadListItemPreview,\n parseThreadListPreview,\n parseThreadPreview,\n} from \"../thread\";\nimport { InfoCard, JSONTree, SummaryItem, SummaryList } from \"../ui\";\n\nconst renderToolUIsStatePreview = (value: unknown) => (\n <ToolUIsView value={value} />\n);\n\nconst renderThreadsStatePreview = (value: unknown) => {\n const state = parseThreadListPreview(value);\n if (!state) {\n return <JSONTree value={value} />;\n }\n\n const threadItems = state.threadItems.slice(0, 8);\n const main = state.main;\n\n return (\n <div className=\"flex flex-col gap-6\">\n <InfoCard title=\"Threads\">\n <SummaryList>\n <SummaryItem label=\"Main thread\" value={state.mainThreadId ?? \"—\"} />\n <SummaryItem label=\"New thread\" value={state.newThreadId ?? \"—\"} />\n <SummaryItem label=\"Active\" value={String(state.threadIds.length)} />\n <SummaryItem\n label=\"Archived\"\n value={String(state.archivedThreadIds.length)}\n />\n </SummaryList>\n </InfoCard>\n\n {threadItems.length ? (\n <InfoCard title=\"Thread items\" count={state.threadItems.length}>\n <table className=\"w-full table-fixed text-left\">\n <thead className=\"text-muted-foreground text-[11px]\">\n <tr className=\"border-border border-b\">\n <th className=\"py-1.5 pr-3 font-medium\">Title</th>\n <th className=\"py-1.5 pr-3 font-medium\">Status</th>\n <th className=\"py-1.5 font-medium\">Identifiers</th>\n </tr>\n </thead>\n <tbody className=\"text-foreground text-[12px]\">\n {threadItems.map((item) => (\n <tr\n key={item.id}\n className=\"border-border/70 border-b last:border-b-0\"\n >\n <td className=\"py-2 pr-3 align-top\">\n <div className=\"text-foreground truncate font-medium\">\n {item.title || \"(untitled)\"}\n </div>\n <div className=\"text-muted-foreground truncate font-mono text-[11px]\">\n {item.id}\n </div>\n </td>\n <td className=\"text-muted-foreground py-2 pr-3 align-top\">\n {item.status ?? \"—\"}\n </td>\n <td className=\"text-muted-foreground py-2 align-top font-mono text-[11px]\">\n {item.remoteId ? `Remote: ${item.remoteId}` : null}\n {item.remoteId && item.externalId ? <br /> : null}\n {item.externalId ? `External: ${item.externalId}` : null}\n {!item.remoteId && !item.externalId ? \"—\" : null}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n {state.threadItems.length > threadItems.length ? (\n <div className=\"text-muted-foreground text-[11px]\">\n Showing first {threadItems.length}\n </div>\n ) : null}\n </InfoCard>\n ) : null}\n\n {main ? <ThreadDetails thread={main} title=\"Main thread\" /> : null}\n </div>\n );\n};\n\nconst renderThreadStatePreview = (value: unknown) => {\n const thread = parseThreadPreview(value);\n if (!thread) {\n return <JSONTree value={value} />;\n }\n return <ThreadDetails thread={thread} title=\"Thread\" />;\n};\n\nconst renderThreadListItemStatePreview = (value: unknown) => {\n const item = parseThreadListItemPreview(value);\n if (!item) {\n return <JSONTree value={value} />;\n }\n\n return (\n <SummaryList>\n <SummaryItem label=\"ID\" value={item.id} />\n <SummaryItem label=\"Title\" value={item.title ?? \"(untitled)\"} />\n <SummaryItem label=\"Status\" value={item.status ?? \"—\"} />\n <SummaryItem label=\"Remote ID\" value={item.remoteId ?? \"—\"} />\n <SummaryItem label=\"External ID\" value={item.externalId ?? \"—\"} />\n </SummaryList>\n );\n};\n\nconst renderComposerStatePreview = (value: unknown) => {\n const composer = parseComposerPreview(value);\n if (!composer || !isRecord(value)) {\n return <JSONTree value={value} />;\n }\n\n const text = typeof value.text === \"string\" ? value.text : \"\";\n const runConfig = value.runConfig;\n\n return (\n <div className=\"flex flex-col gap-6\">\n <InfoCard title=\"Composer\">\n <SummaryList>\n <SummaryItem label=\"Role\" value={composer.role ?? \"—\"} />\n <SummaryItem\n label=\"Text length\"\n value={String(composer.textLength)}\n />\n <SummaryItem\n label=\"Attachments\"\n value={String(composer.attachments.length)}\n />\n <SummaryItem label=\"Mode\" value={composer.type ?? \"—\"} />\n </SummaryList>\n <ComposerFlags composer={composer} />\n <ComposerAttachments attachments={composer.attachments} />\n <ComposerQueue queue={composer.queue} />\n </InfoCard>\n\n {text ? (\n <InfoCard title=\"Text preview\">\n <p className=\"text-foreground text-[12px] wrap-break-word whitespace-pre-wrap\">\n {truncate(text, 240)}\n </p>\n </InfoCard>\n ) : null}\n\n {runConfig !== undefined ? (\n <InfoCard title=\"Run config\">\n <JSONTree value={runConfig} />\n </InfoCard>\n ) : null}\n </div>\n );\n};\n\nexport const renderStatePreview = (key: string, value: unknown) => {\n switch (key) {\n case \"threads\":\n return renderThreadsStatePreview(value);\n case \"threadListItems\":\n return renderThreadsStatePreview({\n threadItems: value,\n threadIds: [],\n archivedThreadIds: [],\n });\n case \"thread\":\n return renderThreadStatePreview(value);\n case \"threadListItem\":\n case \"threadlistitem\":\n return renderThreadListItemStatePreview(value);\n case \"tools\":\n return renderToolUIsStatePreview(value);\n case \"composer\":\n return renderComposerStatePreview(value);\n case \"mcp\":\n return <McpView value={value} />;\n default:\n return <JSONTree value={value} />;\n }\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/views/runs/PayloadDiff.d.ts
|
|
2
|
+
declare const PayloadDiff: ({
|
|
3
|
+
before,
|
|
4
|
+
after
|
|
5
|
+
}: {
|
|
6
|
+
before: unknown;
|
|
7
|
+
after: unknown;
|
|
8
|
+
}) => import("react").JSX.Element;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { PayloadDiff };
|
|
11
|
+
//# sourceMappingURL=PayloadDiff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PayloadDiff.d.ts","names":[],"sources":["../../../src/views/runs/PayloadDiff.tsx"],"mappings":";cAaa,WAAA;EAAe,MAAA;EAAA;AAAA;EAI1B,MAAA;EACA,KAAA;AAAA,sBACD,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { diffValues } from "../../utils/diff.js";
|
|
2
|
+
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import clsx from "clsx";
|
|
5
|
+
//#region src/views/runs/PayloadDiff.tsx
|
|
6
|
+
const SIGN = {
|
|
7
|
+
added: {
|
|
8
|
+
mark: "+",
|
|
9
|
+
tone: "text-emerald-600 dark:text-emerald-400"
|
|
10
|
+
},
|
|
11
|
+
removed: {
|
|
12
|
+
mark: "−",
|
|
13
|
+
tone: "text-red-600 dark:text-red-400"
|
|
14
|
+
},
|
|
15
|
+
changed: {
|
|
16
|
+
mark: "~",
|
|
17
|
+
tone: "text-amber-600 dark:text-amber-400"
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const format = (value) => typeof value === "string" ? `"${value}"` : JSON.stringify(value);
|
|
21
|
+
const PayloadDiff = (t0) => {
|
|
22
|
+
const $ = c(9);
|
|
23
|
+
const { before, after } = t0;
|
|
24
|
+
let t1;
|
|
25
|
+
let t2;
|
|
26
|
+
let t3;
|
|
27
|
+
if ($[0] !== after || $[1] !== before) {
|
|
28
|
+
t3 = Symbol.for("react.early_return_sentinel");
|
|
29
|
+
bb0: {
|
|
30
|
+
const entries = diffValues(before, after);
|
|
31
|
+
if (entries.length === 0) {
|
|
32
|
+
let t4;
|
|
33
|
+
if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
|
|
34
|
+
t4 = /* @__PURE__ */ jsx("div", {
|
|
35
|
+
className: "text-muted-foreground text-[11px]",
|
|
36
|
+
children: "no change from the previous event in this scope"
|
|
37
|
+
});
|
|
38
|
+
$[5] = t4;
|
|
39
|
+
} else t4 = $[5];
|
|
40
|
+
t3 = t4;
|
|
41
|
+
break bb0;
|
|
42
|
+
}
|
|
43
|
+
t1 = "flex flex-col gap-0.5 font-mono text-[11px]";
|
|
44
|
+
t2 = entries.map(_temp);
|
|
45
|
+
}
|
|
46
|
+
$[0] = after;
|
|
47
|
+
$[1] = before;
|
|
48
|
+
$[2] = t1;
|
|
49
|
+
$[3] = t2;
|
|
50
|
+
$[4] = t3;
|
|
51
|
+
} else {
|
|
52
|
+
t1 = $[2];
|
|
53
|
+
t2 = $[3];
|
|
54
|
+
t3 = $[4];
|
|
55
|
+
}
|
|
56
|
+
if (t3 !== Symbol.for("react.early_return_sentinel")) return t3;
|
|
57
|
+
let t4;
|
|
58
|
+
if ($[6] !== t1 || $[7] !== t2) {
|
|
59
|
+
t4 = /* @__PURE__ */ jsx("div", {
|
|
60
|
+
className: t1,
|
|
61
|
+
children: t2
|
|
62
|
+
});
|
|
63
|
+
$[6] = t1;
|
|
64
|
+
$[7] = t2;
|
|
65
|
+
$[8] = t4;
|
|
66
|
+
} else t4 = $[8];
|
|
67
|
+
return t4;
|
|
68
|
+
};
|
|
69
|
+
function _temp(entry, index) {
|
|
70
|
+
const { mark, tone } = SIGN[entry.kind];
|
|
71
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
72
|
+
className: "flex flex-wrap items-baseline gap-1.5",
|
|
73
|
+
children: [
|
|
74
|
+
/* @__PURE__ */ jsx("span", {
|
|
75
|
+
className: clsx("shrink-0", tone),
|
|
76
|
+
children: mark
|
|
77
|
+
}),
|
|
78
|
+
/* @__PURE__ */ jsx("span", {
|
|
79
|
+
className: "text-muted-foreground",
|
|
80
|
+
children: entry.path
|
|
81
|
+
}),
|
|
82
|
+
/* @__PURE__ */ jsx("span", {
|
|
83
|
+
className: "text-foreground break-all",
|
|
84
|
+
children: entry.kind === "changed" ? `${format(entry.before)} → ${format(entry.after)}` : format(entry.kind === "added" ? entry.after : entry.before)
|
|
85
|
+
})
|
|
86
|
+
]
|
|
87
|
+
}, index);
|
|
88
|
+
}
|
|
89
|
+
//#endregion
|
|
90
|
+
export { PayloadDiff };
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=PayloadDiff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PayloadDiff.js","names":["clsx","diffValues","DiffEntry","SIGN","Record","mark","tone","added","removed","changed","format","value","JSON","stringify","PayloadDiff","t0","$","_c","before","after","t1","t2","t3","Symbol","for","bb0","entries","length","t4","map","_temp","entry","index","kind","path"],"sources":["../../../src/views/runs/PayloadDiff.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { diffValues } from \"../../utils/diff\";\nimport type { DiffEntry } from \"../../utils/diff\";\n\nconst SIGN: Record<DiffEntry[\"kind\"], { mark: string; tone: string }> = {\n added: { mark: \"+\", tone: \"text-emerald-600 dark:text-emerald-400\" },\n removed: { mark: \"−\", tone: \"text-red-600 dark:text-red-400\" },\n changed: { mark: \"~\", tone: \"text-amber-600 dark:text-amber-400\" },\n};\n\nconst format = (value: unknown) =>\n typeof value === \"string\" ? `\"${value}\"` : JSON.stringify(value);\n\nexport const PayloadDiff = ({\n before,\n after,\n}: {\n before: unknown;\n after: unknown;\n}) => {\n const entries = diffValues(before, after);\n\n if (entries.length === 0) {\n return (\n <div className=\"text-muted-foreground text-[11px]\">\n no change from the previous event in this scope\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col gap-0.5 font-mono text-[11px]\">\n {entries.map((entry, index) => {\n const { mark, tone } = SIGN[entry.kind];\n return (\n <div key={index} className=\"flex flex-wrap items-baseline gap-1.5\">\n <span className={clsx(\"shrink-0\", tone)}>{mark}</span>\n <span className=\"text-muted-foreground\">{entry.path}</span>\n <span className=\"text-foreground break-all\">\n {entry.kind === \"changed\"\n ? `${format(entry.before)} → ${format(entry.after)}`\n : format(entry.kind === \"added\" ? entry.after : entry.before)}\n </span>\n </div>\n );\n })}\n </div>\n );\n};\n"],"mappings":";;;;;AAIA,MAAMG,OAAkE;CACtEI,OAAO;EAAEF,MAAM;EAAKC,MAAM;CAAyC;CACnEE,SAAS;EAAEH,MAAM;EAAKC,MAAM;CAAiC;CAC7DG,SAAS;EAAEJ,MAAM;EAAKC,MAAM;CAAqC;AACnE;AAEA,MAAMI,UAAUC,UACd,OAAOA,UAAU,WAAW,IAAIA,MAAK,KAAMC,KAAKC,UAAUF,KAAK;AAEjE,MAAaG,eAAcC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAC,MAAA,EAAAC,QAAAC,UAAAJ;CAM3B,IAAAK;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAN,EAAA,OAAAG,SAAAH,EAAA,OAAAE,QAAA;EAKKI,KAAAC,OAEMC,IAFN,6BAEK;EAACC,KAAA;GANV,MAAAC,UAAgBzB,WAAWiB,QAAQC,KAAK;GAExC,IAAIO,QAAOC,WAAY,GAAC;IAAA,IAAAC;IAAA,IAAAZ,EAAA,OAAAO,OAAAC,IAAA,2BAAA,GAAA;KAEpBI,KAAA,oBAAA,OAAA;MAAe,WAAA;gBAAoC;KAE7C,CAAA;KAAAZ,EAAA,KAAAY;IAAA,OAAAA,KAAAZ,EAAA;IAFNM,KAAAM;IAAA,MAAAH;GAEM;GAKOL,KAAA;GACZC,KAAAK,QAAOG,IAAKC,KAaZ;EAAC;EAAAd,EAAA,KAAAG;EAAAH,EAAA,KAAAE;EAAAF,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAA;EAAAF,KAAAJ,EAAA;EAAAK,KAAAL,EAAA;EAAAM,KAAAN,EAAA;CAAA;CAAA,IAAAM,OAAAC,OAAAC,IAAA,6BAAA,GAAA,OAAAF;CAAA,IAAAM;CAAA,IAAAZ,EAAA,OAAAI,MAAAJ,EAAA,OAAAK,IAAA;EAdJO,KAAA,oBAAA,OAAA;GAAe,WAAAR;aACZC;EAcG,CAAA;EAAAL,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAAA,OAfNY;AAeM;AAjCiB,SAAAE,MAAAC,OAAAC,OAAA;CAoBnB,MAAA,EAAA3B,MAAAC,SAAuBH,KAAK4B,MAAKE;CAAO,OAEtC,qBAAA,OAAA;EAA2B,WAAA;YAA3B;GACE,oBAAA,QAAA;IAAiB,WAAAjC,KAAK,YAAYM,IAAI;cAAID;GAAY,CAAA;GACtD,oBAAA,QAAA;IAAgB,WAAA;cAAyB0B,MAAKG;GAAa,CAAA;GAC3D,oBAAA,QAAA;IAAgB,WAAA;cACbH,MAAKE,SAAU,YAAf,GACMvB,OAAOqB,MAAKb,MAAO,EAAC,KAAMR,OAAOqB,MAAKZ,KAAM,MAC/CT,OAAOqB,MAAKE,SAAU,UAAUF,MAAKZ,QAASY,MAAKb,MAAO;GACzD,CAAA;EACH;IARIc,KAQJ;AAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EventLogEntry } from "../../data/types.js";
|
|
2
|
+
import { RunGrouping } from "./types.js";
|
|
3
|
+
|
|
4
|
+
//#region src/views/runs/parse.d.ts
|
|
5
|
+
declare const groupRuns: (logs: readonly EventLogEntry[]) => RunGrouping;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { groupRuns };
|
|
8
|
+
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.d.ts","names":[],"sources":["../../../src/views/runs/parse.ts"],"mappings":";;;;cA+Ba,SAAA,GAAa,IAAA,WAAe,aAAA,OAAkB,WA8E1D"}
|