@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,40 @@
|
|
|
1
|
+
export const BADGE_TONE = {
|
|
2
|
+
blue: "border-blue-300 bg-blue-500/10 text-blue-700 dark:border-blue-500/40 dark:bg-blue-500/15 dark:text-blue-300",
|
|
3
|
+
emerald:
|
|
4
|
+
"border-emerald-300 bg-emerald-500/10 text-emerald-700 dark:border-emerald-500/40 dark:bg-emerald-500/15 dark:text-emerald-300",
|
|
5
|
+
amber:
|
|
6
|
+
"border-amber-300 bg-amber-500/10 text-amber-700 dark:border-amber-500/40 dark:bg-amber-500/15 dark:text-amber-300",
|
|
7
|
+
red: "border-red-300 bg-red-500/10 text-red-700 dark:border-red-500/40 dark:bg-red-500/15 dark:text-red-300",
|
|
8
|
+
violet:
|
|
9
|
+
"border-violet-300 bg-violet-500/10 text-violet-700 dark:border-violet-500/40 dark:bg-violet-500/15 dark:text-violet-300",
|
|
10
|
+
zinc: "border-zinc-300 bg-zinc-500/10 text-zinc-600 dark:border-zinc-600 dark:bg-zinc-500/15 dark:text-zinc-300",
|
|
11
|
+
} as const;
|
|
12
|
+
|
|
13
|
+
export type BadgeTone = keyof typeof BADGE_TONE;
|
|
14
|
+
|
|
15
|
+
/** Message and attachment lifecycle status to badge tone. */
|
|
16
|
+
export const STATUS_TONE: Record<string, BadgeTone> = {
|
|
17
|
+
running: "blue",
|
|
18
|
+
"requires-action": "amber",
|
|
19
|
+
incomplete: "red",
|
|
20
|
+
complete: "emerald",
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/** MCP connection state to badge tone. */
|
|
24
|
+
export const CONNECTION_TONE: Record<string, BadgeTone> = {
|
|
25
|
+
connected: "emerald",
|
|
26
|
+
connecting: "blue",
|
|
27
|
+
authPending: "blue",
|
|
28
|
+
authRequired: "amber",
|
|
29
|
+
disconnected: "zinc",
|
|
30
|
+
error: "red",
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const BADGE_BASE =
|
|
34
|
+
"inline-flex items-center rounded-md border px-1.5 py-0.5 text-[11px] font-medium leading-none";
|
|
35
|
+
|
|
36
|
+
export const BADGE_SM =
|
|
37
|
+
"inline-flex items-center rounded border px-1 py-px text-[9px] font-medium leading-none";
|
|
38
|
+
|
|
39
|
+
/** Uniform width for short status labels in transcript rails (e.g. opt vs running). */
|
|
40
|
+
export const RAIL_STATUS_BADGE_CLASS = "min-w-[2.875rem] justify-center";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export {
|
|
2
|
+
CONNECTION_TONE,
|
|
3
|
+
RAIL_STATUS_BADGE_CLASS,
|
|
4
|
+
STATUS_TONE,
|
|
5
|
+
} from "./badgeTone";
|
|
6
|
+
export type { BadgeTone } from "./badgeTone";
|
|
7
|
+
export { CenteredMessage } from "./CenteredMessage";
|
|
8
|
+
export { Chip } from "./Chip";
|
|
9
|
+
export { ControlButton } from "./ControlButton";
|
|
10
|
+
export { CopyButton } from "./CopyButton";
|
|
11
|
+
export { EmptyState } from "./EmptyState";
|
|
12
|
+
export { InfoCard } from "./InfoCard";
|
|
13
|
+
export { JSONTree } from "./JSONTree";
|
|
14
|
+
export { PaneHeader, PaneHeaderStack } from "./PaneHeader";
|
|
15
|
+
export { RailTime } from "./RailTime";
|
|
16
|
+
export { SectionLabel } from "./SectionLabel";
|
|
17
|
+
export { SelectableRow } from "./SelectableRow";
|
|
18
|
+
export { Sparkline } from "./Sparkline";
|
|
19
|
+
export { SummaryItem, SummaryList } from "./SummaryItem";
|
|
20
|
+
export { ToneBadge } from "./ToneBadge";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useCallback, useState } from "react";
|
|
2
|
+
|
|
3
|
+
export const useCopyToClipboard = ({
|
|
4
|
+
copiedDuration = 2000,
|
|
5
|
+
}: {
|
|
6
|
+
copiedDuration?: number;
|
|
7
|
+
} = {}) => {
|
|
8
|
+
const [isCopied, setIsCopied] = useState(false);
|
|
9
|
+
|
|
10
|
+
const copy = useCallback(
|
|
11
|
+
(value: string) => {
|
|
12
|
+
if (!value || typeof navigator === "undefined" || !navigator.clipboard) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
navigator.clipboard.writeText(value).then(
|
|
16
|
+
() => {
|
|
17
|
+
setIsCopied(true);
|
|
18
|
+
window.setTimeout(() => setIsCopied(false), copiedDuration);
|
|
19
|
+
},
|
|
20
|
+
() => {},
|
|
21
|
+
);
|
|
22
|
+
},
|
|
23
|
+
[copiedDuration],
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
return { isCopied, copy };
|
|
27
|
+
};
|
package/dist/DevToolsFrame.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
//#region src/DevToolsFrame.d.ts
|
|
2
|
-
interface DevToolsFrameProps {
|
|
3
|
-
frameUrl?: string;
|
|
4
|
-
className?: string;
|
|
5
|
-
style?: React.CSSProperties;
|
|
6
|
-
title?: string;
|
|
7
|
-
}
|
|
8
|
-
declare const DevToolsFrame: React.FC<DevToolsFrameProps>;
|
|
9
|
-
//#endregion
|
|
10
|
-
export { DevToolsFrame, DevToolsFrameProps };
|
|
11
|
-
//# sourceMappingURL=DevToolsFrame.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsFrame.d.ts","names":[],"sources":["../src/DevToolsFrame.tsx"],"mappings":";UAMiB,kBAAA;EACf,QAAA;EACA,SAAA;EACA,KAAA,GAAQ,KAAA,CAAM,aAAa;EAC3B,KAAA;AAAA;AAAA,cAGW,aAAA,EAAe,KAAA,CAAM,EAAE,CAAC,kBAAA"}
|
package/dist/DevToolsFrame.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { FrameHost } from "./FrameHost.js";
|
|
3
|
-
import { DEFAULT_FRAME_URL } from "./constants.js";
|
|
4
|
-
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
5
|
-
import { useEffect, useRef } from "@assistant-ui/tap/react-shim";
|
|
6
|
-
import { jsx } from "react/jsx-runtime";
|
|
7
|
-
//#region src/DevToolsFrame.tsx
|
|
8
|
-
const DevToolsFrame = (t0) => {
|
|
9
|
-
const $ = c(8);
|
|
10
|
-
const { frameUrl: t1, className, style, title: t2 } = t0;
|
|
11
|
-
const frameUrl = t1 === void 0 ? DEFAULT_FRAME_URL : t1;
|
|
12
|
-
const title = t2 === void 0 ? "assistant-ui DevTools" : t2;
|
|
13
|
-
const iframeRef = useRef(null);
|
|
14
|
-
const frameHostRef = useRef(null);
|
|
15
|
-
const resolvedFrameUrl = frameUrl;
|
|
16
|
-
let t3;
|
|
17
|
-
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
18
|
-
t3 = () => {
|
|
19
|
-
if (frameHostRef.current) {
|
|
20
|
-
frameHostRef.current.destroy();
|
|
21
|
-
frameHostRef.current = null;
|
|
22
|
-
}
|
|
23
|
-
if (iframeRef.current) frameHostRef.current = new FrameHost(iframeRef.current);
|
|
24
|
-
};
|
|
25
|
-
$[0] = t3;
|
|
26
|
-
} else t3 = $[0];
|
|
27
|
-
const handleFrameLoad = t3;
|
|
28
|
-
let t4;
|
|
29
|
-
let t5;
|
|
30
|
-
if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
|
|
31
|
-
t4 = () => () => {
|
|
32
|
-
if (frameHostRef.current) {
|
|
33
|
-
frameHostRef.current.destroy();
|
|
34
|
-
frameHostRef.current = null;
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
t5 = [];
|
|
38
|
-
$[1] = t4;
|
|
39
|
-
$[2] = t5;
|
|
40
|
-
} else {
|
|
41
|
-
t4 = $[1];
|
|
42
|
-
t5 = $[2];
|
|
43
|
-
}
|
|
44
|
-
useEffect(t4, t5);
|
|
45
|
-
let t6;
|
|
46
|
-
if ($[3] !== className || $[4] !== resolvedFrameUrl || $[5] !== style || $[6] !== title) {
|
|
47
|
-
t6 = /* @__PURE__ */ jsx("iframe", {
|
|
48
|
-
ref: iframeRef,
|
|
49
|
-
src: resolvedFrameUrl,
|
|
50
|
-
onLoad: handleFrameLoad,
|
|
51
|
-
className,
|
|
52
|
-
style,
|
|
53
|
-
title
|
|
54
|
-
});
|
|
55
|
-
$[3] = className;
|
|
56
|
-
$[4] = resolvedFrameUrl;
|
|
57
|
-
$[5] = style;
|
|
58
|
-
$[6] = title;
|
|
59
|
-
$[7] = t6;
|
|
60
|
-
} else t6 = $[7];
|
|
61
|
-
return t6;
|
|
62
|
-
};
|
|
63
|
-
//#endregion
|
|
64
|
-
export { DevToolsFrame };
|
|
65
|
-
|
|
66
|
-
//# sourceMappingURL=DevToolsFrame.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsFrame.js","names":["c","_c","useCallback","useEffect","useMemo","useRef","FrameHost","DEFAULT_FRAME_URL","DevToolsFrameProps","frameUrl","className","style","React","CSSProperties","title","DevToolsFrame","FC","t0","$","t1","t2","undefined","iframeRef","frameHostRef","resolvedFrameUrl","t3","Symbol","for","current","destroy","handleFrameLoad","t4","t5","t6"],"sources":["../src/DevToolsFrame.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { FrameHost } from \"./FrameHost\";\nimport { DEFAULT_FRAME_URL } from \"./constants\";\n\nexport interface DevToolsFrameProps {\n frameUrl?: string;\n className?: string;\n style?: React.CSSProperties;\n title?: string;\n}\n\nexport const DevToolsFrame: React.FC<DevToolsFrameProps> = ({\n frameUrl = DEFAULT_FRAME_URL,\n className,\n style,\n title = \"assistant-ui DevTools\",\n}) => {\n const iframeRef = useRef<HTMLIFrameElement | null>(null);\n const frameHostRef = useRef<FrameHost | null>(null);\n\n const resolvedFrameUrl = useMemo(() => frameUrl, [frameUrl]);\n\n const handleFrameLoad = useCallback(() => {\n if (frameHostRef.current) {\n frameHostRef.current.destroy();\n frameHostRef.current = null;\n }\n\n if (iframeRef.current) {\n frameHostRef.current = new FrameHost(iframeRef.current);\n }\n }, []);\n\n useEffect(() => {\n return () => {\n if (frameHostRef.current) {\n frameHostRef.current.destroy();\n frameHostRef.current = null;\n }\n };\n }, []);\n\n return (\n <iframe\n ref={iframeRef}\n src={resolvedFrameUrl}\n onLoad={handleFrameLoad}\n className={className}\n style={style}\n title={title}\n />\n );\n};\n"],"mappings":";;;;;;;AAaA,MAAae,iBAA8CE,OAAA;CAAA,MAAAC,IAAAjB,EAAA,CAAA;CAAC,MAAA,EAAAQ,UAAAU,IAAAT,WAAAC,OAAAG,OAAAM,OAAAH;CAC1D,MAAAR,WAAAU,OAAAE,KAAAA,IAAAd,oBAAAY;CAGA,MAAAL,QAAAM,OAAAC,KAAAA,IAAA,0BAAAD;CAEA,MAAAE,YAAkBjB,OAAiC,IAAI;CACvD,MAAAkB,eAAqBlB,OAAyB,IAAI;CAElD,MAAAmB,mBAAuCf;CAAsB,IAAAgB;CAAA,IAAAP,EAAA,OAAAQ,OAAAC,IAAA,2BAAA,GAAA;EAEzBF,WAAA;GAClC,IAAIF,aAAYK,SAAQ;IACtBL,aAAYK,QAAQC,QAAS;IAC7BN,aAAYK,UAAW;GAAH;GAGtB,IAAIN,UAASM,SACXL,aAAYK,UAAW,IAAItB,UAAUgB,UAASM,OAAQ;EACvD;EACFV,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CATD,MAAAY,kBAAwBL;CASjB,IAAAM;CAAA,IAAAC;CAAA,IAAAd,EAAA,OAAAQ,OAAAC,IAAA,2BAAA,GAAA;EAEGI,iBACD;GACL,IAAIR,aAAYK,SAAQ;IACtBL,aAAYK,QAAQC,QAAS;IAC7BN,aAAYK,UAAW;GAAH;EACrB;EAEFI,KAAA,CAAA;EAAEd,EAAA,KAAAa;EAAAb,EAAA,KAAAc;CAAA,OAAA;EAAAD,KAAAb,EAAA;EAAAc,KAAAd,EAAA;CAAA;CAPLf,UAAU4B,IAOPC,EAAE;CAAC,IAAAC;CAAA,IAAAf,EAAA,OAAAR,aAAAQ,EAAA,OAAAM,oBAAAN,EAAA,OAAAP,SAAAO,EAAA,OAAAJ,OAAA;EAGJmB,KAAA,oBAAA,UAAA;GACOX,KAAAA;GACAE,KAAAA;GACGM,QAAAA;GACGpB;GACJC;GACAG;EAAK,CAAA;EACZI,EAAA,KAAAR;EAAAQ,EAAA,KAAAM;EAAAN,EAAA,KAAAP;EAAAO,EAAA,KAAAJ;EAAAI,EAAA,KAAAe;CAAA,OAAAA,KAAAf,EAAA;CAAA,OAPFe;AAOE"}
|
package/dist/DevToolsHost.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
//#region src/DevToolsHost.d.ts
|
|
2
|
-
interface FrameToHostMessage {
|
|
3
|
-
type: "subscription" | "clearEvents";
|
|
4
|
-
data: {
|
|
5
|
-
apiList?: boolean;
|
|
6
|
-
apis?: number[];
|
|
7
|
-
apiId?: number;
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
interface HostToFrameMessage {
|
|
11
|
-
type: "update";
|
|
12
|
-
data: {
|
|
13
|
-
apiList?: Array<{
|
|
14
|
-
apiId: number;
|
|
15
|
-
}>;
|
|
16
|
-
apis?: Array<{
|
|
17
|
-
apiId: number;
|
|
18
|
-
state: any;
|
|
19
|
-
events: any[];
|
|
20
|
-
modelContext?: any;
|
|
21
|
-
scopes?: any;
|
|
22
|
-
}>;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
declare class DevToolsHost {
|
|
26
|
-
private subscription;
|
|
27
|
-
private unsubscribe?;
|
|
28
|
-
private onSendMessage;
|
|
29
|
-
constructor(onSendMessage: (message: HostToFrameMessage) => void);
|
|
30
|
-
onReceiveMessage(message: FrameToHostMessage): void;
|
|
31
|
-
private handleSubscription;
|
|
32
|
-
private subscribeToDevTools;
|
|
33
|
-
private sendUpdate;
|
|
34
|
-
destroy(): void;
|
|
35
|
-
}
|
|
36
|
-
//#endregion
|
|
37
|
-
export { DevToolsHost };
|
|
38
|
-
//# sourceMappingURL=DevToolsHost.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsHost.d.ts","names":[],"sources":["../src/DevToolsHost.ts"],"mappings":";UAOU,kBAAA;EACR,IAAA;EACA,IAAA;IACE,OAAA;IACA,IAAA;IACA,KAAA;EAAA;AAAA;AAAA,UAIM,kBAAA;EACR,IAAA;EACA,IAAA;IACE,OAAA,GAAU,KAAA;MAAQ,KAAA;IAAA;IAClB,IAAA,GAAO,KAAK;MACV,KAAA;MACA,KAAA;MACA,MAAA;MACA,YAAA;MACA,MAAA;IAAA;EAAA;AAAA;AAAA,cAKO,YAAA;EAAA,QACH,YAAA;EAAA,QAOA,WAAA;EAAA,QACA,aAAA;cAEI,aAAA,GAAgB,OAAA,EAAS,kBAAA;EAKrC,gBAAA,CAAiB,OAAA,EAAS,kBAAkB;EAAA,QAcpC,kBAAA;EAAA,QAiBA,mBAAA;EAAA,QAMA,UAAA;EAyFR,OAAA;AAAA"}
|
package/dist/DevToolsHost.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { sanitizeAndRedact, sanitizeForMessage, serializeModelContext } from "./utils/serialization.js";
|
|
2
|
-
import { DevToolsHooks } from "@assistant-ui/react";
|
|
3
|
-
//#region src/DevToolsHost.ts
|
|
4
|
-
var DevToolsHost = class {
|
|
5
|
-
subscription = {
|
|
6
|
-
apiList: false,
|
|
7
|
-
apis: /* @__PURE__ */ new Set()
|
|
8
|
-
};
|
|
9
|
-
unsubscribe;
|
|
10
|
-
onSendMessage;
|
|
11
|
-
constructor(onSendMessage) {
|
|
12
|
-
this.onSendMessage = onSendMessage;
|
|
13
|
-
this.subscribeToDevTools();
|
|
14
|
-
}
|
|
15
|
-
onReceiveMessage(message) {
|
|
16
|
-
switch (message.type) {
|
|
17
|
-
case "subscription":
|
|
18
|
-
this.handleSubscription(message.data);
|
|
19
|
-
break;
|
|
20
|
-
case "clearEvents":
|
|
21
|
-
if (typeof message.data.apiId === "number") DevToolsHooks.clearEventLogs(message.data.apiId);
|
|
22
|
-
break;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
handleSubscription(data) {
|
|
26
|
-
const prevApiList = this.subscription.apiList;
|
|
27
|
-
const prevApis = new Set(this.subscription.apis);
|
|
28
|
-
this.subscription.apiList = data.apiList || false;
|
|
29
|
-
this.subscription.apis = new Set(data.apis);
|
|
30
|
-
const apisChanged = prevApis.size !== this.subscription.apis.size || [...this.subscription.apis].some((id) => !prevApis.has(id));
|
|
31
|
-
if (prevApiList !== this.subscription.apiList || apisChanged) this.sendUpdate();
|
|
32
|
-
}
|
|
33
|
-
subscribeToDevTools() {
|
|
34
|
-
this.unsubscribe = DevToolsHooks.subscribe(() => {
|
|
35
|
-
this.sendUpdate();
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
sendUpdate() {
|
|
39
|
-
const update = {
|
|
40
|
-
type: "update",
|
|
41
|
-
data: {}
|
|
42
|
-
};
|
|
43
|
-
const allApis = DevToolsHooks.getApis();
|
|
44
|
-
for (const subscriptionApiId of this.subscription.apis) if (!allApis.has(subscriptionApiId)) this.subscription.apis.delete(subscriptionApiId);
|
|
45
|
-
if (this.subscription.apiList) {
|
|
46
|
-
update.data.apiList = [...allApis.keys()].map((apiId) => ({ apiId }));
|
|
47
|
-
if (this.subscription.apis.size === 0 && allApis.size > 0) this.subscription.apis = new Set([allApis.keys().next().value]);
|
|
48
|
-
}
|
|
49
|
-
if (this.subscription.apis.size > 0) {
|
|
50
|
-
update.data.apis = [];
|
|
51
|
-
for (const apiId of this.subscription.apis) {
|
|
52
|
-
const apiEntry = allApis.get(apiId);
|
|
53
|
-
if (apiEntry) {
|
|
54
|
-
const state = {};
|
|
55
|
-
const scopes = [];
|
|
56
|
-
if (apiEntry.api) {
|
|
57
|
-
for (const [name, scope] of Object.entries(apiEntry.api)) if (typeof scope === "function" && "source" in scope) {
|
|
58
|
-
let methods = [];
|
|
59
|
-
try {
|
|
60
|
-
const scopeValue = scope();
|
|
61
|
-
if (scopeValue && typeof scopeValue === "object") methods = Object.keys(scopeValue).filter((key) => typeof scopeValue[key] === "function");
|
|
62
|
-
if (scope.source === "root") state[name] = scopeValue?.getState?.() ?? scopeValue;
|
|
63
|
-
} catch {}
|
|
64
|
-
scopes.push({
|
|
65
|
-
name,
|
|
66
|
-
source: scope.source,
|
|
67
|
-
query: scope.query,
|
|
68
|
-
methods
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
const modelContext = serializeModelContext(apiEntry.api?.thread?.().getModelContext());
|
|
73
|
-
update.data.apis.push({
|
|
74
|
-
apiId,
|
|
75
|
-
state: sanitizeForMessage(state),
|
|
76
|
-
events: sanitizeForMessage(apiEntry.logs),
|
|
77
|
-
modelContext,
|
|
78
|
-
scopes: sanitizeAndRedact(scopes)
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
if (Object.keys(update.data).length === 0) return;
|
|
84
|
-
this.onSendMessage(update);
|
|
85
|
-
}
|
|
86
|
-
destroy() {
|
|
87
|
-
if (this.unsubscribe) this.unsubscribe();
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
//#endregion
|
|
91
|
-
export { DevToolsHost };
|
|
92
|
-
|
|
93
|
-
//# sourceMappingURL=DevToolsHost.js.map
|
package/dist/DevToolsHost.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsHost.js","names":["DevToolsHooks","sanitizeAndRedact","sanitizeForMessage","serializeModelContext","FrameToHostMessage","type","data","apiList","apis","apiId","HostToFrameMessage","Array","state","events","modelContext","scopes","DevToolsHost","subscription","Set","unsubscribe","onSendMessage","message","constructor","subscribeToDevTools","onReceiveMessage","handleSubscription","clearEventLogs","prevApiList","prevApis","apisChanged","size","some","id","has","sendUpdate","subscribe","update","allApis","getApis","subscriptionApiId","delete","keys","map","next","value","apiEntry","get","Record","name","source","query","methods","api","scope","Object","entries","scopeValue","filter","key","getState","push","thread","getModelContext","logs","length","destroy"],"sources":["../src/DevToolsHost.ts"],"sourcesContent":["import { DevToolsHooks } from \"@assistant-ui/react\";\nimport {\n sanitizeAndRedact,\n sanitizeForMessage,\n serializeModelContext,\n} from \"./utils/serialization\";\n\ninterface FrameToHostMessage {\n type: \"subscription\" | \"clearEvents\";\n data: {\n apiList?: boolean;\n apis?: number[];\n apiId?: number;\n };\n}\n\ninterface HostToFrameMessage {\n type: \"update\";\n data: {\n apiList?: Array<{ apiId: number }>;\n apis?: Array<{\n apiId: number;\n state: any;\n events: any[];\n modelContext?: any;\n scopes?: any;\n }>;\n };\n}\n\nexport class DevToolsHost {\n private subscription: {\n apiList: boolean;\n apis: Set<number>;\n } = {\n apiList: false,\n apis: new Set(),\n };\n private unsubscribe?: () => void;\n private onSendMessage: (message: HostToFrameMessage) => void;\n\n constructor(onSendMessage: (message: HostToFrameMessage) => void) {\n this.onSendMessage = onSendMessage;\n this.subscribeToDevTools();\n }\n\n onReceiveMessage(message: FrameToHostMessage) {\n switch (message.type) {\n case \"subscription\":\n this.handleSubscription(message.data);\n break;\n case \"clearEvents\":\n if (typeof message.data.apiId === \"number\") {\n DevToolsHooks.clearEventLogs(message.data.apiId);\n // The subscription will automatically trigger an update\n }\n break;\n }\n }\n\n private handleSubscription(data: FrameToHostMessage[\"data\"]) {\n const prevApiList = this.subscription.apiList;\n const prevApis = new Set(this.subscription.apis);\n\n this.subscription.apiList = data.apiList || false;\n this.subscription.apis = new Set(data.apis);\n\n // Only send update if subscription actually changed\n const apisChanged =\n prevApis.size !== this.subscription.apis.size ||\n [...this.subscription.apis].some((id) => !prevApis.has(id));\n\n if (prevApiList !== this.subscription.apiList || apisChanged) {\n this.sendUpdate();\n }\n }\n\n private subscribeToDevTools() {\n this.unsubscribe = DevToolsHooks.subscribe(() => {\n this.sendUpdate();\n });\n }\n\n private sendUpdate() {\n const update: HostToFrameMessage = {\n type: \"update\",\n data: {},\n };\n\n const allApis = DevToolsHooks.getApis();\n for (const subscriptionApiId of this.subscription.apis) {\n if (!allApis.has(subscriptionApiId)) {\n this.subscription.apis.delete(subscriptionApiId);\n }\n }\n\n if (this.subscription.apiList) {\n update.data.apiList = [...allApis.keys()].map((apiId) => ({ apiId }));\n\n if (this.subscription.apis.size === 0 && allApis.size > 0) {\n this.subscription.apis = new Set([allApis.keys().next().value!]);\n }\n }\n\n if (this.subscription.apis.size > 0) {\n update.data.apis = [];\n\n for (const apiId of this.subscription.apis) {\n const apiEntry = allApis.get(apiId);\n if (apiEntry) {\n // Collect root-scope state plus the identity and method catalog of\n // every accessor (root and derived) for the scope graph.\n const state: Record<string, unknown> = {};\n const scopes: Array<{\n name: string;\n source: string | null;\n query: Record<string, unknown> | null;\n methods: string[];\n }> = [];\n if (apiEntry.api) {\n for (const [name, scope] of Object.entries(apiEntry.api)) {\n if (typeof scope === \"function\" && \"source\" in scope) {\n let methods: string[] = [];\n try {\n const scopeValue = scope();\n if (scopeValue && typeof scopeValue === \"object\") {\n methods = Object.keys(scopeValue).filter(\n (key) =>\n typeof (scopeValue as Record<string, unknown>)[key] ===\n \"function\",\n );\n }\n if (scope.source === \"root\") {\n state[name] = scopeValue?.getState?.() ?? scopeValue;\n }\n } catch {\n // scope() may throw (derived scopes before the client is\n // mounted, or a broken root scope implementation).\n }\n scopes.push({\n name,\n source: scope.source,\n query: scope.query,\n methods,\n });\n }\n }\n }\n\n // Extract model context from thread runtime\n const modelContext = serializeModelContext(\n apiEntry.api?.thread?.().getModelContext(),\n );\n\n update.data.apis.push({\n apiId,\n state: sanitizeForMessage(state),\n events: sanitizeForMessage(apiEntry.logs) as unknown[],\n modelContext: modelContext,\n scopes: sanitizeAndRedact(scopes),\n });\n }\n }\n }\n\n if (Object.keys(update.data).length === 0) {\n return;\n }\n\n this.onSendMessage(update);\n }\n\n destroy() {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n }\n}\n"],"mappings":";;;AA8BA,IAAagB,eAAb,MAA0B;CACxB,eAGI;EACFT,SAAS;EACTC,sBAAM,IAAIU,IAAI;CAChB;CACA;CACA;CAEAI,YAAYF,eAAsD;EAChE,KAAKA,gBAAgBA;EACrB,KAAKG,oBAAoB;CAC3B;CAEAC,iBAAiBH,SAA6B;EAC5C,QAAQA,QAAQhB,MAAhB;GACE,KAAK;IACH,KAAKoB,mBAAmBJ,QAAQf,IAAI;IACpC;GACF,KAAK;IACH,IAAI,OAAOe,QAAQf,KAAKG,UAAU,UAChCT,cAAc0B,eAAeL,QAAQf,KAAKG,KAAK;IAGjD;EACJ;CACF;CAEA,mBAA2BH,MAAkC;EAC3D,MAAMqB,cAAc,KAAKV,aAAaV;EACtC,MAAMqB,WAAW,IAAIV,IAAI,KAAKD,aAAaT,IAAI;EAE/C,KAAKS,aAAaV,UAAUD,KAAKC,WAAW;EAC5C,KAAKU,aAAaT,OAAO,IAAIU,IAAIZ,KAAKE,IAAI;EAG1C,MAAMqB,cACJD,SAASE,SAAS,KAAKb,aAAaT,KAAKsB,QACzC,CAAC,GAAG,KAAKb,aAAaT,IAAI,CAAC,CAACuB,MAAMC,OAAO,CAACJ,SAASK,IAAID,EAAE,CAAC;EAE5D,IAAIL,gBAAgB,KAAKV,aAAaV,WAAWsB,aAC/C,KAAKK,WAAW;CAEpB;CAEA,sBAA8B;EAC5B,KAAKf,cAAcnB,cAAcmC,gBAAgB;GAC/C,KAAKD,WAAW;EAClB,CAAC;CACH;CAEA,aAAqB;EACnB,MAAME,SAA6B;GACjC/B,MAAM;GACNC,MAAM,CAAC;EACT;EAEA,MAAM+B,UAAUrC,cAAcsC,QAAQ;EACtC,KAAK,MAAMC,qBAAqB,KAAKtB,aAAaT,MAChD,IAAI,CAAC6B,QAAQJ,IAAIM,iBAAiB,GAChC,KAAKtB,aAAaT,KAAKgC,OAAOD,iBAAiB;EAInD,IAAI,KAAKtB,aAAaV,SAAS;GAC7B6B,OAAO9B,KAAKC,UAAU,CAAC,GAAG8B,QAAQI,KAAK,CAAC,CAAC,CAACC,KAAKjC,WAAW,EAAEA,MAAM,EAAE;GAEpE,IAAI,KAAKQ,aAAaT,KAAKsB,SAAS,KAAKO,QAAQP,OAAO,GACtD,KAAKb,aAAaT,OAAO,IAAIU,IAAI,CAACmB,QAAQI,KAAK,CAAC,CAACE,KAAK,CAAC,CAACC,KAAM,CAAC;EAEnE;EAEA,IAAI,KAAK3B,aAAaT,KAAKsB,OAAO,GAAG;GACnCM,OAAO9B,KAAKE,OAAO,CAAA;GAEnB,KAAK,MAAMC,SAAS,KAAKQ,aAAaT,MAAM;IAC1C,MAAMqC,WAAWR,QAAQS,IAAIrC,KAAK;IAClC,IAAIoC,UAAU;KAGZ,MAAMjC,QAAiC,CAAC;KACxC,MAAMG,SAKD,CAAA;KACL,IAAI8B,SAASO;WACN,MAAM,CAACJ,MAAMK,UAAUC,OAAOC,QAAQV,SAASO,GAAG,GACrD,IAAI,OAAOC,UAAU,cAAc,YAAYA,OAAO;OACpD,IAAIF,UAAoB,CAAA;OACxB,IAAI;QACF,MAAMK,aAAaH,MAAM;QACzB,IAAIG,cAAc,OAAOA,eAAe,UACtCL,UAAUG,OAAOb,KAAKe,UAAU,CAAC,CAACC,QAC/BC,QACC,OAAQF,WAAuCE,SAC/C,UACJ;QAEF,IAAIL,MAAMJ,WAAW,QACnBrC,MAAMoC,QAAQQ,YAAYG,WAAW,KAAKH;OAE9C,QAAQ,CAEN;OAEFzC,OAAO6C,KAAK;QACVZ;QACAC,QAAQI,MAAMJ;QACdC,OAAOG,MAAMH;QACbC;OACF,CAAC;MACH;;KAKJ,MAAMrC,eAAeX,sBACnB0C,SAASO,KAAKS,SAAS,CAAC,CAACC,gBAAgB,CAC3C;KAEA1B,OAAO9B,KAAKE,KAAKoD,KAAK;MACpBnD;MACAG,OAAOV,mBAAmBU,KAAK;MAC/BC,QAAQX,mBAAmB2C,SAASkB,IAAI;MAC1BjD;MACdC,QAAQd,kBAAkBc,MAAM;KAClC,CAAC;IACH;GACF;EACF;EAEA,IAAIuC,OAAOb,KAAKL,OAAO9B,IAAI,CAAC,CAAC0D,WAAW,GACtC;EAGF,KAAK5C,cAAcgB,MAAM;CAC3B;CAEA6B,UAAU;EACR,IAAI,KAAK9C,aACP,KAAKA,YAAY;CAErB;AACF"}
|
package/dist/ExtensionHost.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionHost.d.ts","names":[],"sources":["../src/ExtensionHost.ts"],"mappings":";cAEa,aAAA;EAAA,QACH,YAAA;EAAA,QACA,eAAA;;EAgDR,OAAA;AAAA"}
|
package/dist/ExtensionHost.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { DevToolsHost } from "./DevToolsHost.js";
|
|
2
|
-
//#region src/ExtensionHost.ts
|
|
3
|
-
var ExtensionHost = class {
|
|
4
|
-
devToolsHost;
|
|
5
|
-
messageListener;
|
|
6
|
-
constructor() {
|
|
7
|
-
this.devToolsHost = new DevToolsHost((message) => {
|
|
8
|
-
console.log("[ExtensionHost] Sending message to iframe:", message);
|
|
9
|
-
window.postMessage({
|
|
10
|
-
source: "assistant-ui-devtools-page",
|
|
11
|
-
payload: message
|
|
12
|
-
}, "*");
|
|
13
|
-
});
|
|
14
|
-
this.messageListener = (event) => {
|
|
15
|
-
if (event.source !== window) return;
|
|
16
|
-
if (event.data.source === "assistant-ui-devtools-iframe") {
|
|
17
|
-
console.log("[ExtensionHost] Received message from iframe:", {
|
|
18
|
-
source: event.data.source,
|
|
19
|
-
payload: event.data.payload,
|
|
20
|
-
fullData: event.data
|
|
21
|
-
});
|
|
22
|
-
this.devToolsHost.onReceiveMessage(event.data.payload);
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
window.addEventListener("message", this.messageListener);
|
|
26
|
-
setTimeout(() => {
|
|
27
|
-
console.log("[ExtensionHost] Announcing connection to iframe");
|
|
28
|
-
window.postMessage({
|
|
29
|
-
source: "assistant-ui-devtools-page",
|
|
30
|
-
payload: { type: "host-connected" }
|
|
31
|
-
}, "*");
|
|
32
|
-
}, 100);
|
|
33
|
-
}
|
|
34
|
-
destroy() {
|
|
35
|
-
window.removeEventListener("message", this.messageListener);
|
|
36
|
-
this.devToolsHost.destroy();
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
//#endregion
|
|
40
|
-
export { ExtensionHost };
|
|
41
|
-
|
|
42
|
-
//# sourceMappingURL=ExtensionHost.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionHost.js","names":["DevToolsHost","ExtensionHost","devToolsHost","messageListener","event","MessageEvent","constructor","message","console","log","window","postMessage","source","payload","data","fullData","onReceiveMessage","addEventListener","setTimeout","type","destroy","removeEventListener"],"sources":["../src/ExtensionHost.ts"],"sourcesContent":["import { DevToolsHost } from \"./DevToolsHost\";\n\nexport class ExtensionHost {\n private devToolsHost: DevToolsHost;\n private messageListener: (event: MessageEvent) => void;\n\n constructor() {\n // Create DevToolsHost with callback to send messages through extension\n this.devToolsHost = new DevToolsHost((message) => {\n console.log(\"[ExtensionHost] Sending message to iframe:\", message);\n window.postMessage(\n {\n source: \"assistant-ui-devtools-page\",\n payload: message,\n },\n \"*\",\n );\n });\n\n // Setup listener to forward messages from extension to DevToolsHost\n this.messageListener = (event: MessageEvent) => {\n if (event.source !== window) return;\n\n // Log ALL messages to see what's coming through\n if (event.data.source === \"assistant-ui-devtools-iframe\") {\n console.log(\"[ExtensionHost] Received message from iframe:\", {\n source: event.data.source,\n payload: event.data.payload,\n fullData: event.data,\n });\n this.devToolsHost.onReceiveMessage(event.data.payload);\n }\n };\n\n window.addEventListener(\"message\", this.messageListener);\n\n // Announce that a new host has connected\n // This tells the iframe to re-send its subscription\n setTimeout(() => {\n console.log(\"[ExtensionHost] Announcing connection to iframe\");\n window.postMessage(\n {\n source: \"assistant-ui-devtools-page\",\n payload: {\n type: \"host-connected\",\n },\n },\n \"*\",\n );\n }, 100);\n }\n\n destroy() {\n window.removeEventListener(\"message\", this.messageListener);\n this.devToolsHost.destroy();\n }\n}\n"],"mappings":";;AAEA,IAAaC,gBAAb,MAA2B;CACzB;CACA;CAEAK,cAAc;EAEZ,KAAKJ,eAAe,IAAIF,cAAcO,YAAY;GAChDC,QAAQC,IAAI,8CAA8CF,OAAO;GACjEG,OAAOC,YACL;IACEC,QAAQ;IACRC,SAASN;GACX,GACA,GACF;EACF,CAAC;EAGD,KAAKJ,mBAAmBC,UAAwB;GAC9C,IAAIA,MAAMQ,WAAWF,QAAQ;GAG7B,IAAIN,MAAMU,KAAKF,WAAW,gCAAgC;IACxDJ,QAAQC,IAAI,iDAAiD;KAC3DG,QAAQR,MAAMU,KAAKF;KACnBC,SAAST,MAAMU,KAAKD;KACpBE,UAAUX,MAAMU;IAClB,CAAC;IACD,KAAKZ,aAAac,iBAAiBZ,MAAMU,KAAKD,OAAO;GACvD;EACF;EAEAH,OAAOO,iBAAiB,WAAW,KAAKd,eAAe;EAIvDe,iBAAiB;GACfV,QAAQC,IAAI,iDAAiD;GAC7DC,OAAOC,YACL;IACEC,QAAQ;IACRC,SAAS,EACPM,MAAM,iBACR;GACF,GACA,GACF;EACF,GAAG,GAAG;CACR;CAEAC,UAAU;EACRV,OAAOW,oBAAoB,WAAW,KAAKlB,eAAe;EAC1D,KAAKD,aAAakB,QAAQ;CAC5B;AACF"}
|
package/dist/FrameClient.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
//#region src/FrameClient.d.ts
|
|
2
|
-
interface ApiData {
|
|
3
|
-
apiId: number;
|
|
4
|
-
state: any;
|
|
5
|
-
events: any[];
|
|
6
|
-
modelContext?: any;
|
|
7
|
-
scopes?: any;
|
|
8
|
-
}
|
|
9
|
-
type UpdateListener = (data: {
|
|
10
|
-
apiList?: Array<{
|
|
11
|
-
apiId: number;
|
|
12
|
-
}>;
|
|
13
|
-
apis?: ApiData[];
|
|
14
|
-
}) => void;
|
|
15
|
-
declare class FrameClient {
|
|
16
|
-
private listeners;
|
|
17
|
-
private connectionListeners;
|
|
18
|
-
private lastUpdate;
|
|
19
|
-
constructor();
|
|
20
|
-
private setupMessageListener;
|
|
21
|
-
onHostConnected(listener: () => void): () => void;
|
|
22
|
-
subscribe(listener: UpdateListener): () => void;
|
|
23
|
-
setSubscription(options: {
|
|
24
|
-
apiList?: boolean;
|
|
25
|
-
apis?: number[];
|
|
26
|
-
}): void;
|
|
27
|
-
clearEvents(apiId: number): void;
|
|
28
|
-
private notifyListeners;
|
|
29
|
-
getLastUpdate(): {
|
|
30
|
-
apiList?: Array<{
|
|
31
|
-
apiId: number;
|
|
32
|
-
}>;
|
|
33
|
-
apis?: ApiData[];
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
//#endregion
|
|
37
|
-
export { FrameClient };
|
|
38
|
-
//# sourceMappingURL=FrameClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FrameClient.d.ts","names":[],"sources":["../src/FrameClient.ts"],"mappings":";UAAU,OAAA;EACR,KAAA;EACA,KAAA;EACA,MAAA;EACA,YAAA;EACA,MAAA;AAAA;AAAA,KAeG,cAAA,IAAkB,IAAA;EACrB,OAAA,GAAU,KAAA;IAAQ,KAAA;EAAA;EAClB,IAAA,GAAO,OAAO;AAAA;AAAA,cAGH,WAAA;EAAA,QACH,SAAA;EAAA,QACA,mBAAA;EAAA,QACA,UAAA;;UASA,oBAAA;EAcR,eAAA,CAAgB,QAAA;EAOhB,SAAA,CAAU,QAAA,EAAU,cAAA;EAapB,eAAA,CAAgB,OAAA;IAAW,OAAA;IAAmB,IAAA;EAAA;EAU9C,WAAA,CAAY,KAAA;EAAA,QAUJ,eAAA;EAIR,aAAA;cAlEY,KAAA;MAAQ,KAAA;IAAA;WACX,OAAA;EAAA;AAAA"}
|
package/dist/FrameClient.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
//#region src/FrameClient.ts
|
|
2
|
-
var FrameClient = class {
|
|
3
|
-
listeners = /* @__PURE__ */ new Set();
|
|
4
|
-
connectionListeners = /* @__PURE__ */ new Set();
|
|
5
|
-
lastUpdate = {};
|
|
6
|
-
constructor() {
|
|
7
|
-
this.setupMessageListener();
|
|
8
|
-
}
|
|
9
|
-
setupMessageListener() {
|
|
10
|
-
window.addEventListener("message", (event) => {
|
|
11
|
-
const message = event.data;
|
|
12
|
-
if (message.type === "update") {
|
|
13
|
-
this.lastUpdate = message.data;
|
|
14
|
-
this.notifyListeners(message.data);
|
|
15
|
-
} else if (message.type === "host-connected") this.connectionListeners.forEach((listener) => listener());
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
onHostConnected(listener) {
|
|
19
|
-
this.connectionListeners.add(listener);
|
|
20
|
-
return () => {
|
|
21
|
-
this.connectionListeners.delete(listener);
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
subscribe(listener) {
|
|
25
|
-
this.listeners.add(listener);
|
|
26
|
-
if (this.lastUpdate.apiList || this.lastUpdate.apis) listener(this.lastUpdate);
|
|
27
|
-
return () => {
|
|
28
|
-
this.listeners.delete(listener);
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
setSubscription(options) {
|
|
32
|
-
window.parent.postMessage({
|
|
33
|
-
type: "subscription",
|
|
34
|
-
data: options
|
|
35
|
-
}, "*");
|
|
36
|
-
}
|
|
37
|
-
clearEvents(apiId) {
|
|
38
|
-
window.parent.postMessage({
|
|
39
|
-
type: "clearEvents",
|
|
40
|
-
data: { apiId }
|
|
41
|
-
}, "*");
|
|
42
|
-
}
|
|
43
|
-
notifyListeners(data) {
|
|
44
|
-
this.listeners.forEach((listener) => listener(data));
|
|
45
|
-
}
|
|
46
|
-
getLastUpdate() {
|
|
47
|
-
return this.lastUpdate;
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
//#endregion
|
|
51
|
-
export { FrameClient };
|
|
52
|
-
|
|
53
|
-
//# sourceMappingURL=FrameClient.js.map
|
package/dist/FrameClient.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FrameClient.js","names":["ApiData","apiId","state","events","modelContext","scopes","UpdateMessage","type","data","apiList","Array","apis","HostConnectedMessage","UpdateListener","FrameClient","listeners","Set","connectionListeners","lastUpdate","constructor","setupMessageListener","window","addEventListener","event","message","notifyListeners","forEach","listener","onHostConnected","add","delete","subscribe","setSubscription","options","parent","postMessage","clearEvents","getLastUpdate"],"sources":["../src/FrameClient.ts"],"sourcesContent":["interface ApiData {\n apiId: number;\n state: any;\n events: any[];\n modelContext?: any;\n scopes?: any;\n}\n\ninterface UpdateMessage {\n type: \"update\";\n data: {\n apiList?: Array<{ apiId: number }>;\n apis?: ApiData[];\n };\n}\n\ninterface HostConnectedMessage {\n type: \"host-connected\";\n}\n\ntype UpdateListener = (data: {\n apiList?: Array<{ apiId: number }>;\n apis?: ApiData[];\n}) => void;\n\nexport class FrameClient {\n private listeners = new Set<UpdateListener>();\n private connectionListeners = new Set<() => void>();\n private lastUpdate: {\n apiList?: Array<{ apiId: number }>;\n apis?: ApiData[];\n } = {};\n\n constructor() {\n this.setupMessageListener();\n }\n\n private setupMessageListener() {\n window.addEventListener(\"message\", (event) => {\n const message = event.data as UpdateMessage | HostConnectedMessage;\n\n if (message.type === \"update\") {\n this.lastUpdate = message.data;\n this.notifyListeners(message.data);\n } else if (message.type === \"host-connected\") {\n // Host has reconnected (page refresh), notify listeners to re-subscribe\n this.connectionListeners.forEach((listener) => listener());\n }\n });\n }\n\n onHostConnected(listener: () => void): () => void {\n this.connectionListeners.add(listener);\n return () => {\n this.connectionListeners.delete(listener);\n };\n }\n\n subscribe(listener: UpdateListener): () => void {\n this.listeners.add(listener);\n\n // Send the last update to the new listener\n if (this.lastUpdate.apiList || this.lastUpdate.apis) {\n listener(this.lastUpdate);\n }\n\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n setSubscription(options: { apiList?: boolean; apis?: number[] }) {\n window.parent.postMessage(\n {\n type: \"subscription\",\n data: options,\n },\n \"*\",\n );\n }\n\n clearEvents(apiId: number) {\n window.parent.postMessage(\n {\n type: \"clearEvents\",\n data: { apiId },\n },\n \"*\",\n );\n }\n\n private notifyListeners(data: UpdateMessage[\"data\"]) {\n this.listeners.forEach((listener) => listener(data));\n }\n\n getLastUpdate() {\n return this.lastUpdate;\n }\n}\n"],"mappings":";AAyBA,IAAac,cAAb,MAAyB;CACvB,4BAAoB,IAAIE,IAAoB;CAC5C,sCAA8B,IAAIA,IAAgB;CAClD,aAGI,CAAC;CAELG,cAAc;EACZ,KAAKC,qBAAqB;CAC5B;CAEA,uBAA+B;EAC7BC,OAAOC,iBAAiB,YAAYC,UAAU;GAC5C,MAAMC,UAAUD,MAAMf;GAEtB,IAAIgB,QAAQjB,SAAS,UAAU;IAC7B,KAAKW,aAAaM,QAAQhB;IAC1B,KAAKiB,gBAAgBD,QAAQhB,IAAI;GACnC,OAAO,IAAIgB,QAAQjB,SAAS,kBAE1B,KAAKU,oBAAoBS,SAASC,aAAaA,SAAS,CAAC;EAE7D,CAAC;CACH;CAEAC,gBAAgBD,UAAkC;EAChD,KAAKV,oBAAoBY,IAAIF,QAAQ;EACrC,aAAa;GACX,KAAKV,oBAAoBa,OAAOH,QAAQ;EAC1C;CACF;CAEAI,UAAUJ,UAAsC;EAC9C,KAAKZ,UAAUc,IAAIF,QAAQ;EAG3B,IAAI,KAAKT,WAAWT,WAAW,KAAKS,WAAWP,MAC7CgB,SAAS,KAAKT,UAAU;EAG1B,aAAa;GACX,KAAKH,UAAUe,OAAOH,QAAQ;EAChC;CACF;CAEAK,gBAAgBC,SAAiD;EAC/DZ,OAAOa,OAAOC,YACZ;GACE5B,MAAM;GACNC,MAAMyB;EACR,GACA,GACF;CACF;CAEAG,YAAYnC,OAAe;EACzBoB,OAAOa,OAAOC,YACZ;GACE5B,MAAM;GACNC,MAAM,EAAEP,MAAM;EAChB,GACA,GACF;CACF;CAEA,gBAAwBO,MAA6B;EACnD,KAAKO,UAAUW,SAASC,aAAaA,SAASnB,IAAI,CAAC;CACrD;CAEA6B,gBAAgB;EACd,OAAO,KAAKnB;CACd;AACF"}
|
package/dist/FrameHost.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
//#region src/FrameHost.d.ts
|
|
2
|
-
declare class FrameHost {
|
|
3
|
-
private frame;
|
|
4
|
-
private devToolsHost;
|
|
5
|
-
private messageListener;
|
|
6
|
-
constructor(frame: HTMLIFrameElement);
|
|
7
|
-
destroy(): void;
|
|
8
|
-
}
|
|
9
|
-
//#endregion
|
|
10
|
-
export { FrameHost };
|
|
11
|
-
//# sourceMappingURL=FrameHost.d.ts.map
|
package/dist/FrameHost.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FrameHost.d.ts","names":[],"sources":["../src/FrameHost.ts"],"mappings":";cAEa,SAAA;EAAA,QACH,KAAA;EAAA,QACA,YAAA;EAAA,QACA,eAAA;cAEI,KAAA,EAAO,iBAAiB;EAmBpC,OAAA;AAAA"}
|
package/dist/FrameHost.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { DevToolsHost } from "./DevToolsHost.js";
|
|
2
|
-
//#region src/FrameHost.ts
|
|
3
|
-
var FrameHost = class {
|
|
4
|
-
frame;
|
|
5
|
-
devToolsHost;
|
|
6
|
-
messageListener;
|
|
7
|
-
constructor(frame) {
|
|
8
|
-
this.frame = frame;
|
|
9
|
-
this.devToolsHost = new DevToolsHost((message) => {
|
|
10
|
-
if (this.frame.contentWindow) this.frame.contentWindow.postMessage(message, "*");
|
|
11
|
-
});
|
|
12
|
-
this.messageListener = (event) => {
|
|
13
|
-
if (event.source !== this.frame.contentWindow) return;
|
|
14
|
-
this.devToolsHost.onReceiveMessage(event.data);
|
|
15
|
-
};
|
|
16
|
-
window.addEventListener("message", this.messageListener);
|
|
17
|
-
}
|
|
18
|
-
destroy() {
|
|
19
|
-
window.removeEventListener("message", this.messageListener);
|
|
20
|
-
this.devToolsHost.destroy();
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
//#endregion
|
|
24
|
-
export { FrameHost };
|
|
25
|
-
|
|
26
|
-
//# sourceMappingURL=FrameHost.js.map
|
package/dist/FrameHost.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FrameHost.js","names":["DevToolsHost","FrameHost","frame","HTMLIFrameElement","devToolsHost","messageListener","event","MessageEvent","constructor","message","contentWindow","postMessage","source","onReceiveMessage","data","window","addEventListener","destroy","removeEventListener"],"sources":["../src/FrameHost.ts"],"sourcesContent":["import { DevToolsHost } from \"./DevToolsHost\";\n\nexport class FrameHost {\n private frame: HTMLIFrameElement;\n private devToolsHost: DevToolsHost;\n private messageListener: (event: MessageEvent) => void;\n\n constructor(frame: HTMLIFrameElement) {\n this.frame = frame;\n\n // Create DevToolsHost with callback to send messages to iframe\n this.devToolsHost = new DevToolsHost((message) => {\n if (this.frame.contentWindow) {\n this.frame.contentWindow.postMessage(message, \"*\");\n }\n });\n\n // Setup listener to forward messages from iframe to DevToolsHost\n this.messageListener = (event: MessageEvent) => {\n if (event.source !== this.frame.contentWindow) return;\n this.devToolsHost.onReceiveMessage(event.data);\n };\n\n window.addEventListener(\"message\", this.messageListener);\n }\n\n destroy() {\n window.removeEventListener(\"message\", this.messageListener);\n this.devToolsHost.destroy();\n }\n}\n"],"mappings":";;AAEA,IAAaC,YAAb,MAAuB;CACrB;CACA;CACA;CAEAO,YAAYN,OAA0B;EACpC,KAAKA,QAAQA;EAGb,KAAKE,eAAe,IAAIJ,cAAcS,YAAY;GAChD,IAAI,KAAKP,MAAMQ,eACb,KAAKR,MAAMQ,cAAcC,YAAYF,SAAS,GAAG;EAErD,CAAC;EAGD,KAAKJ,mBAAmBC,UAAwB;GAC9C,IAAIA,MAAMM,WAAW,KAAKV,MAAMQ,eAAe;GAC/C,KAAKN,aAAaS,iBAAiBP,MAAMQ,IAAI;EAC/C;EAEAC,OAAOC,iBAAiB,WAAW,KAAKX,eAAe;CACzD;CAEAY,UAAU;EACRF,OAAOG,oBAAoB,WAAW,KAAKb,eAAe;EAC1D,KAAKD,aAAaa,QAAQ;CAC5B;AACF"}
|
package/dist/constants.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
//#region src/constants.d.ts
|
|
2
|
-
declare const DEFAULT_FRAME_URL = "https://devtools-frame.assistant-ui.com";
|
|
3
|
-
declare const LOCAL_FRAME_URL = "http://localhost:3010";
|
|
4
|
-
//#endregion
|
|
5
|
-
export { DEFAULT_FRAME_URL, LOCAL_FRAME_URL };
|
|
6
|
-
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","names":[],"sources":["../src/constants.ts"],"mappings":";cAAa,iBAAA;AAAA,cACA,eAAA"}
|
package/dist/constants.js
DELETED
package/dist/constants.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["DEFAULT_FRAME_URL","LOCAL_FRAME_URL"],"sources":["../src/constants.ts"],"sourcesContent":["export const DEFAULT_FRAME_URL = \"https://devtools-frame.assistant-ui.com\";\nexport const LOCAL_FRAME_URL = \"http://localhost:3010\";\n"],"mappings":";AAAA,MAAaA,oBAAoB;AACjC,MAAaC,kBAAkB"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { CSSProperties } from "react";
|
|
2
|
-
|
|
3
|
-
//#region src/styles/DevToolsModal.styles.d.ts
|
|
4
|
-
interface DevToolsModalStyles {
|
|
5
|
-
floatingContainer: CSSProperties;
|
|
6
|
-
floatingButton: CSSProperties;
|
|
7
|
-
floatingButtonHover: CSSProperties;
|
|
8
|
-
backdrop: CSSProperties;
|
|
9
|
-
modal: CSSProperties;
|
|
10
|
-
dismissButton: CSSProperties;
|
|
11
|
-
dismissButtonHover: CSSProperties;
|
|
12
|
-
modalContent: CSSProperties;
|
|
13
|
-
}
|
|
14
|
-
declare const getStyles: (darkMode: boolean) => DevToolsModalStyles;
|
|
15
|
-
declare const ANIMATION_STYLES = "\n @keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n @keyframes slideIn {\n from {\n opacity: 0;\n transform: translate(-50%, -48%) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n }\n";
|
|
16
|
-
//#endregion
|
|
17
|
-
export { ANIMATION_STYLES, DevToolsModalStyles, getStyles };
|
|
18
|
-
//# sourceMappingURL=DevToolsModal.styles.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsModal.styles.d.ts","names":[],"sources":["../../src/styles/DevToolsModal.styles.ts"],"mappings":";;;UAEiB,mBAAA;EACf,iBAAA,EAAmB,aAAA;EACnB,cAAA,EAAgB,aAAA;EAChB,mBAAA,EAAqB,aAAA;EACrB,QAAA,EAAU,aAAA;EACV,KAAA,EAAO,aAAA;EACP,aAAA,EAAe,aAAA;EACf,kBAAA,EAAoB,aAAA;EACpB,YAAA,EAAc,aAAA;AAAA;AAAA,cA4BH,SAAA,GAAa,QAAA,cAAoB,mBAiF7C;AAAA,cAEY,gBAAA"}
|