@mcp-use/inspector 20.0.0-beta.1 → 20.0.0-beta.11
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 +7 -18
- package/dist/cdn/{AnimatePresence-B4HhIdgq.js → AnimatePresence-D1bZ5_-l.js} +80 -79
- package/dist/cdn/ChatTab-KJDI5ycl.js +6811 -0
- package/dist/cdn/{CheckboxIndicator-BF2cKfbA.js → CheckboxIndicator-BjF73mGX.js} +74 -73
- package/dist/cdn/ConnectionSettingsForm-CAvpobCm.js +929 -0
- package/dist/cdn/ConnectionSettingsTab-Nhdvdpk5.js +151 -0
- package/dist/cdn/{ElicitationTab-upPXq2q7.js → ElicitationTab-PEmEDvC5.js} +48 -47
- package/dist/cdn/{FormContext-Cl51-7O7.js → FormContext-NtUiZclE.js} +26 -26
- package/dist/cdn/{InspectorContext-DzXtgyTx.js → InspectorContext-BBKCdfmK.js} +2 -22
- package/dist/cdn/{JSONDisplay-D3RcyO9z.js → JSONDisplay-BJqMz7Ny.js} +23 -23
- package/dist/cdn/{ListTabHeader-8lULn-90.js → ListTabHeader-DzmTtN1e.js} +21 -20
- package/dist/cdn/{WidgetWrapper-D29YDxIu.js → MCPAppsDebugControls-BIiauZ_A.js} +583 -620
- package/dist/cdn/{ManufactOAuthCallback-DEM8mhWD.js → ManufactOAuthCallback-ChbbjFIT.js} +3 -3
- package/dist/cdn/MarkdownRenderer-DZuWYsja.js +3610 -0
- package/dist/cdn/McpAppsViewPanel-BTOKcnV3.js +56 -0
- package/dist/cdn/{NotificationsTab-CWopTIzT.js → NotificationsTab-B7uebqMV.js} +13 -13
- package/dist/cdn/{OAuthCallback-k3oeLtIC.js → OAuthCallback-CBWWNg2N.js} +3 -3
- package/dist/cdn/PromptsTab-DuP66kUg.js +902 -0
- package/dist/cdn/{ResourcesTab-KfamsM6-.js → ResourcesTab-BJxaJgKU.js} +106 -124
- package/dist/cdn/{SamplingTab-vcufuK24.js → SamplingTab-Bfnd-TZ-.js} +43 -42
- package/dist/cdn/{ServerMetadataTab-DS0eiyyD.js → ServerMetadataTab-BM3VhSLf.js} +14 -14
- package/dist/cdn/{StatusIcon-BGXOEU2u.js → StatusIcon-Q3n3YRtE.js} +8 -9
- package/dist/cdn/{ToolsTab-DRjcZnpu.js → ToolsTab-DGBRXBW-.js} +671 -693
- package/dist/cdn/{ViewPreview-B_onhcUB.js → ViewPreview-DPWKMeND.js} +5 -4
- package/dist/cdn/{WidgetDebugContext-D4usL_MA.js → WidgetDebugContext-B6yoOVVV.js} +1 -11
- package/dist/cdn/WidgetWrapper-BlbQAh_X.js +12 -0
- package/dist/cdn/{bell-CGjAO_0s.js → bell-GrTZcnD2.js} +1 -1
- package/dist/cdn/{browser-CbQIH4w2.js → browser-DG2Z8392.js} +1 -1
- package/dist/cdn/{brush-B_mKhyxG.js → brush-CelVvMGp.js} +1 -1
- package/dist/cdn/button-CB4uOoUV.js +2509 -0
- package/dist/cdn/{card-DqjqAq0o.js → card-BA-DQk-G.js} +2 -2
- package/dist/cdn/{checkbox-B4oUG6Rr.js → checkbox-kwVa4gRX.js} +4 -4
- package/dist/cdn/{clock-CmUbSx_B.js → clock-YMF8Gtw5.js} +1 -1
- package/dist/cdn/{code-V_0nf5rg.js → code-C8sN2OGR.js} +1 -1
- package/dist/cdn/{jsx-runtime-CIxvMpEo.js → createLucideIcon-BONxC1L5.js} +57 -24
- package/dist/cdn/{dialog-Dnl-pZsY.js → dialog-CJGnC5Ag.js} +165 -165
- package/dist/cdn/{dist-mRDqCgKU.js → dist-BgB6gR-d.js} +116 -114
- package/dist/cdn/{dist-DjXr_YO3.js → dist-CTJnCYmk.js} +1 -1
- package/dist/cdn/{external-link-CjmfT6rW.js → external-link-Bo4lQxr1.js} +1 -1
- package/dist/cdn/{eye-B7H96av8.js → eye-pSGG7nvf.js} +1 -1
- package/dist/cdn/{folder-open-B3lu2rG_.js → folder-open-aM8CPtBO.js} +1 -1
- package/dist/cdn/{hash-BVQnWi7q.js → hash-DDs2vE1k.js} +1 -1
- package/dist/cdn/{history-Csw4rb44.js → history-BfUFpL1d.js} +1 -1
- package/dist/cdn/{index-browser-CVUwR-Bu.js → index-browser-Ds41Irtb.js} +120 -201
- package/dist/cdn/{info-CNiOwqkf.js → info-BMkB68mB.js} +1 -1
- package/dist/cdn/{input-BLxOA7V-.js → input-BCpgLXU1.js} +3039 -3600
- package/dist/cdn/inspector.css +1 -1
- package/dist/cdn/inspector.js +7797 -7857
- package/dist/cdn/{label-CBvG613A.js → label-A0UGV8FE.js} +8 -8
- package/dist/cdn/{loader-circle-BLy9A_pp.js → loader-circle-BKRHJEB7.js} +1 -1
- package/dist/cdn/{manufact-auth-0TVxpeTA.js → manufact-auth-BQMHhbLV.js} +142 -106
- package/dist/cdn/{maximize-2-CH5Lq90B.js → maximize-2-DdrB_spi.js} +1 -1
- package/dist/cdn/{maximize-BALCV_ep.js → maximize-hSOCz133.js} +1 -1
- package/dist/cdn/{message-square-BnxdpJxZ.js → message-square-D3tKB3uJ.js} +1 -1
- package/dist/cdn/{not-found-BcNNsTjS.js → not-found-BajFyZpp.js} +4 -6
- package/dist/cdn/{play-vuZ5PLnI.js → play-B1leulYf.js} +1 -1
- package/dist/cdn/providerMeta-CjGU4rID.js +436 -0
- package/dist/cdn/{react-BxO-uEDZ.js → react-BtzXvzGh.js} +855 -853
- package/dist/cdn/{refresh-cw-BXY-Pa0U.js → refresh-cw-CyvXrS91.js} +1 -1
- package/dist/cdn/{save-Tgil_AJZ.js → save-CmdEPUAm.js} +1 -1
- package/dist/cdn/{select-BZ_IoKxg.js → select-CCFHjOGk.js} +843 -842
- package/dist/cdn/{servers-Dm72iTpY.js → servers-Dd0Vcp81.js} +5 -1
- package/dist/cdn/{shared-uMiV6Fx1.js → shared-CJVHJhag.js} +35 -35
- package/dist/cdn/sheet-oyq1mIyg.js +2078 -0
- package/dist/cdn/{sparkles-BntO2rDR.js → sparkles-CxeZpVtX.js} +1 -1
- package/dist/cdn/{spinner-CWcJhIY_.js → spinner-Be1GlSGX.js} +3 -3
- package/dist/cdn/{square-check-big-BvwQ17Bl.js → square-check-big-C_4wbfwF.js} +1 -1
- package/dist/cdn/{switch-DtQOLb9R.js → switch-DHXEA_N5.js} +211 -210
- package/dist/cdn/{tabs-subtle-C5cy35sY.js → tabs-subtle-Dubd6Kj8.js} +259 -258
- package/dist/cdn/{telemetry-Ct6pVkM1.js → telemetry-B6Xh2ktb.js} +38 -70
- package/dist/cdn/{textarea-Bj-CT7hC.js → textarea-CwmI8_uI.js} +2 -2
- package/dist/cdn/{trash-2-RwpJY5SL.js → trash-2-BhumJAFE.js} +1 -1
- package/dist/cdn/{useAriaLabelledBy-Bm9qHGK6.js → useAriaLabelledBy-Cra6w3YY.js} +2 -1
- package/dist/cdn/{useCompositeItem-CNJ6MXdi.js → useCompositeItem-Dhnm-7el.js} +3 -3
- package/dist/cdn/{useConfig-CwxZ6Quj.js → useConfig-CLBnK-B4.js} +73 -46
- package/dist/cdn/{useSavedRequests-Ci2I919u.js → useSavedRequests-mSIsDd4c.js} +1 -1
- package/dist/cdn/{useViewHostProps-Dr6W2ooF.js → useViewHostProps-DRWpI0-w.js} +124 -108
- package/dist/cdn/{wrench-DzGmCfnb.js → wrench-DvK20LUT.js} +1 -1
- package/dist/cdn/{x-C3vRQIYu.js → x-EilKPiCX.js} +1 -1
- package/dist/cdn/{zap-Mb-pbw2X.js → zap-0Wr9QO7N.js} +1 -1
- package/dist/cli.js +87 -14
- package/dist/client/auth/manufact-auth.d.ts +3 -1
- package/dist/client/auth/manufact-auth.d.ts.map +1 -1
- package/dist/client/components/ChatTab.d.ts +1 -8
- package/dist/client/components/ChatTab.d.ts.map +1 -1
- package/dist/client/components/MCPAppsDebugControls.d.ts.map +1 -1
- package/dist/client/components/ResourcesTab.d.ts.map +1 -1
- package/dist/client/components/ToolsTab.d.ts.map +1 -1
- package/dist/client/components/chat/ChatHeader.d.ts +7 -2
- package/dist/client/components/chat/ChatHeader.d.ts.map +1 -1
- package/dist/client/components/chat/ChatLandingForm.d.ts +4 -2
- package/dist/client/components/chat/ChatLandingForm.d.ts.map +1 -1
- package/dist/client/components/chat/ChatManagedNotice.d.ts +10 -0
- package/dist/client/components/chat/ChatManagedNotice.d.ts.map +1 -0
- package/dist/client/components/chat/ChatScrollTopFade.d.ts +7 -0
- package/dist/client/components/chat/ChatScrollTopFade.d.ts.map +1 -0
- package/dist/client/components/chat/ConfigurationDialog.d.ts +11 -9
- package/dist/client/components/chat/ConfigurationDialog.d.ts.map +1 -1
- package/dist/client/components/chat/ConfigureEmptyState.d.ts +1 -6
- package/dist/client/components/chat/ConfigureEmptyState.d.ts.map +1 -1
- package/dist/client/components/chat/MessageList.d.ts +1 -0
- package/dist/client/components/chat/MessageList.d.ts.map +1 -1
- package/dist/client/components/chat/StreamingAssistantContent.d.ts.map +1 -1
- package/dist/client/components/chat/ToolResultRenderer.d.ts.map +1 -1
- package/dist/client/components/chat/chatModeStorage.d.ts +11 -0
- package/dist/client/components/chat/chatModeStorage.d.ts.map +1 -0
- package/dist/client/components/chat/managedChatNotice.d.ts +16 -0
- package/dist/client/components/chat/managedChatNotice.d.ts.map +1 -0
- package/dist/client/components/chat/partialToolArgs.d.ts +10 -0
- package/dist/client/components/chat/partialToolArgs.d.ts.map +1 -0
- package/dist/client/components/chat/providerMeta.d.ts +11 -0
- package/dist/client/components/chat/providerMeta.d.ts.map +1 -1
- package/dist/client/components/chat/types.d.ts +1 -0
- package/dist/client/components/chat/types.d.ts.map +1 -1
- package/dist/client/components/chat/useChatMessages.d.ts +7 -5
- package/dist/client/components/chat/useChatMessages.d.ts.map +1 -1
- package/dist/client/components/chat/useChatMessagesClientSide.d.ts +4 -6
- package/dist/client/components/chat/useChatMessagesClientSide.d.ts.map +1 -1
- package/dist/client/components/chat/useChatScrollToBottom.d.ts +1 -0
- package/dist/client/components/chat/useChatScrollToBottom.d.ts.map +1 -1
- package/dist/client/components/chat/useConfig.d.ts +1 -1
- package/dist/client/components/chat/useConfig.d.ts.map +1 -1
- package/dist/client/components/chat/useHostedChatMode.d.ts +1 -1
- package/dist/client/components/chat/useHostedChatMode.d.ts.map +1 -1
- package/dist/client/components/mcp-apps/McpAppsViewPanel.d.ts +29 -0
- package/dist/client/components/mcp-apps/McpAppsViewPanel.d.ts.map +1 -0
- package/dist/client/components/shared/MarkdownRenderer.d.ts +2 -1
- package/dist/client/components/shared/MarkdownRenderer.d.ts.map +1 -1
- package/dist/client/components/tools/ToolExecutionPanel.d.ts.map +1 -1
- package/dist/client/components/tools/ToolResultDisplay.d.ts +2 -1
- package/dist/client/components/tools/ToolResultDisplay.d.ts.map +1 -1
- package/dist/client/components/tools/useToolsTabNavigation.d.ts.map +1 -1
- package/dist/client/components/ui/MeshGradientCanvas.d.ts +13 -0
- package/dist/client/components/ui/MeshGradientCanvas.d.ts.map +1 -0
- package/dist/client/components/ui/chat-message.d.ts +1 -1
- package/dist/client/components/ui/chat-message.d.ts.map +1 -1
- package/dist/client/components/ui/file-thumbnail.d.ts.map +1 -1
- package/dist/client/components/ui/mesh-animation-pause.d.ts +14 -0
- package/dist/client/components/ui/mesh-animation-pause.d.ts.map +1 -0
- package/dist/client/components/ui/mesh-gradient-colors.d.ts +6 -0
- package/dist/client/components/ui/mesh-gradient-colors.d.ts.map +1 -0
- package/dist/client/components/ui/mesh-tab-background.d.ts +3 -1
- package/dist/client/components/ui/mesh-tab-background.d.ts.map +1 -1
- package/dist/client/components/ui/not-found.d.ts.map +1 -1
- package/dist/client/context/InspectorContext.d.ts.map +1 -1
- package/dist/client/context/WidgetDebugContext.d.ts +1 -11
- package/dist/client/context/WidgetDebugContext.d.ts.map +1 -1
- package/dist/client/hooks/useDeviceViewport.d.ts +1 -5
- package/dist/client/hooks/useDeviceViewport.d.ts.map +1 -1
- package/dist/client/hooks/useViewHostProps.d.ts +1 -1
- package/dist/client/hooks/useViewHostProps.d.ts.map +1 -1
- package/dist/client/index.js +4202 -3491
- package/dist/client/telemetry/init.d.ts.map +1 -1
- package/dist/client/telemetry/utils.d.ts.map +1 -1
- package/dist/client/utils/servers.d.ts +5 -0
- package/dist/client/utils/servers.d.ts.map +1 -1
- package/dist/server/asset-urls.d.ts +4 -0
- package/dist/server/asset-urls.d.ts.map +1 -1
- package/dist/server/asset-urls.js +7 -3
- package/dist/server/cdn-shell.d.ts.map +1 -1
- package/dist/server/cdn-shell.js +3 -3
- package/dist/server/{chunk-Y2GBQOQW.js → chunk-7BTEIKSA.js} +2 -9
- package/dist/server/{chunk-VDUV6LR6.js → chunk-FJ7P3RIU.js} +75 -5
- package/dist/server/{chunk-KBVKS4J5.js → chunk-H6ZCIKBS.js} +10 -0
- package/dist/server/{chunk-K2V2SDQD.js → chunk-OWR2BIBW.js} +1 -1
- package/dist/server/{chunk-IXYK6ZOY.js → chunk-PY5HM5DW.js} +2 -2
- package/dist/server/{chunk-5B3SXGZP.js → chunk-UJLXHNQP.js} +1 -1
- package/dist/server/{chunk-6XWDZEFF.js → chunk-XCNS5CIW.js} +8 -3
- package/dist/server/cli.js +5 -5
- package/dist/server/create-dev-api-app.js +3 -3
- package/dist/server/dev-callback-redirect.d.ts +3 -0
- package/dist/server/dev-callback-redirect.d.ts.map +1 -0
- package/dist/server/dev-callback-redirect.js +18 -0
- package/dist/server/index.js +6 -6
- package/dist/server/middleware.js +6 -6
- package/dist/server/proxy/index.js +1 -1
- package/dist/server/proxy/mcp-proxy.d.ts +2 -0
- package/dist/server/proxy/mcp-proxy.d.ts.map +1 -1
- package/dist/server/proxy/mcp-proxy.js +3 -1
- package/dist/server/proxy-routes.js +2 -2
- package/dist/server/server.js +3 -3
- package/dist/server/version.js +1 -1
- package/dist/server/vite-dev-api-plugin.js +3 -3
- package/dist/web/assets/AnimatePresence-FfDQQNFJ.js +9 -0
- package/dist/web/assets/ChatTab-B_CvwC4L.js +18 -0
- package/dist/web/assets/ConnectionSettingsTab-OhY1ex8u.js +1 -0
- package/dist/web/assets/ElicitationTab-CwkUbGUo.js +1 -0
- package/dist/web/assets/FormContext-sV-yByKz.js +1 -0
- package/dist/web/assets/ListTabHeader-CrGae306.js +1 -0
- package/dist/web/assets/MCPAppsDebugControls-SlpRw9KD.js +34 -0
- package/dist/web/assets/{ManufactOAuthCallback-DCLbW-mz.js → ManufactOAuthCallback-DgIxvi85.js} +1 -1
- package/dist/web/assets/MarkdownRenderer-B_n2JuA3.js +47 -0
- package/dist/web/assets/McpAppsViewPanel-CR8zhRi4.js +1 -0
- package/dist/web/assets/{NotificationsTab-JevzvJTg.js → NotificationsTab-DeGCkKLB.js} +1 -1
- package/dist/web/assets/{OAuthCallback-BjcRxLh5.js → OAuthCallback-DhFgvjS_.js} +1 -1
- package/dist/web/assets/PromptsTab-DZVkm_vn.js +15 -0
- package/dist/web/assets/ResourcesTab-5mZflymU.js +2 -0
- package/dist/web/assets/SamplingTab-TWoyNn8-.js +1 -0
- package/dist/web/assets/ServerMetadataTab-DZZpijCY.js +1 -0
- package/dist/web/assets/ToolsTab-DEZiEf9V.js +8 -0
- package/dist/web/assets/ViewPreview-ymDMBa0M.js +1 -0
- package/dist/web/assets/WidgetWrapper-cv_BM1bY.js +1 -0
- package/dist/web/assets/{brush--0LobUi4.js → brush-DX0UZ_pI.js} +1 -1
- package/dist/web/assets/button-C8Xa2k4x.js +1 -0
- package/dist/web/assets/checkbox-Wgm0SaKL.js +1 -0
- package/dist/web/assets/code-B14rVdNt.js +1 -0
- package/dist/web/assets/createLucideIcon-BEHeJH0M.js +1 -0
- package/dist/web/assets/dist-Bl7zPiY1.js +21 -0
- package/dist/web/assets/index-CpswgjB5.js +499 -0
- package/dist/web/assets/index-bCIH1Sdx.css +1 -0
- package/dist/web/assets/input-C0OQCUZy.js +1 -0
- package/dist/web/assets/{label-B5Q_Zr8M.js → label-CI7JWQOo.js} +1 -1
- package/dist/web/assets/{maximize-2-BTT9QQU9.js → maximize-2-Br1WQzT2.js} +1 -1
- package/dist/web/assets/{maximize-_O55kFcr.js → maximize-CJNgRe6S.js} +1 -1
- package/dist/web/assets/{refresh-cw-C9wQl8_d.js → refresh-cw-B5iaAZKn.js} +1 -1
- package/dist/web/assets/{save-B-MsgxX9.js → save-TM6fvNrt.js} +1 -1
- package/dist/web/assets/select-D6jzbLJn.js +1 -0
- package/dist/web/assets/shared-BtvKT_T4.js +1 -0
- package/dist/web/assets/{sparkles-2OAsc1aP.js → sparkles-BGYTDThM.js} +1 -1
- package/dist/web/assets/tabs-subtle-C5J9sUzi.js +1 -0
- package/dist/web/assets/textarea-CRTXuRmE.js +1 -0
- package/dist/web/assets/useConfig-CZkuy4Iy.js +1 -0
- package/dist/web/assets/useViewHostProps-nCaYmcbd.js +1 -0
- package/dist/web/assets/{zap-Du2Uc5pa.js → zap-BDWHCVHU.js} +1 -1
- package/dist/web/index.html +10 -11
- package/package.json +5 -12
- package/dist/cdn/ChatTab-D8uwCHAf.js +0 -13218
- package/dist/cdn/ConnectionSettingsForm-BNS6bOMD.js +0 -873
- package/dist/cdn/ConnectionSettingsTab-B97gPPJW.js +0 -145
- package/dist/cdn/PromptsTab-Cspfnl6n.js +0 -4400
- package/dist/cdn/bundle-mjs-B0nmHDtp.js +0 -1953
- package/dist/cdn/chunk-BO2N2NFS-Cy167e0X.js +0 -17500
- package/dist/cdn/createLucideIcon-C5fZZ6oB.js +0 -38
- package/dist/cdn/highlighted-body-OFNGDK62-CoReNbTX.js +0 -36
- package/dist/cdn/mermaid-GHXKKRXX-DgVIbk-D.js +0 -2
- package/dist/cdn/pdf-CxFT9FER.js +0 -16291
- package/dist/cdn/popover-C_SSrXT0.js +0 -2005
- package/dist/cdn/sheet-CerCdhxz.js +0 -78
- package/dist/cdn/useHostedSession-BA39Aegc.js +0 -153
- package/dist/cdn/useMCPPrompts-D3_Hla_z.js +0 -104
- package/dist/client/components/chat/streamdown-code-slim.d.ts +0 -4
- package/dist/client/components/chat/streamdown-code-slim.d.ts.map +0 -1
- package/dist/web/assets/AnimatePresence-CthXziG2.js +0 -9
- package/dist/web/assets/ChatTab-Cy8eyFYI.js +0 -460
- package/dist/web/assets/ConnectionSettingsTab-sDZGaUJn.js +0 -1
- package/dist/web/assets/ElicitationTab-wDKgU1qL.js +0 -1
- package/dist/web/assets/FormContext-Cqc_A12u.js +0 -1
- package/dist/web/assets/ListTabHeader-G-nQX18m.js +0 -1
- package/dist/web/assets/PromptsTab-DsQVOjKH.js +0 -61
- package/dist/web/assets/ResourcesTab-Bw8_p6M1.js +0 -2
- package/dist/web/assets/SamplingTab-BrcF1zJF.js +0 -1
- package/dist/web/assets/ServerMetadataTab-Bydeh1Po.js +0 -1
- package/dist/web/assets/ToolsTab-DJWF7Q_x.js +0 -8
- package/dist/web/assets/ViewPreview-jgeU7bY9.js +0 -1
- package/dist/web/assets/WidgetWrapper-B_vJU9uF.js +0 -34
- package/dist/web/assets/bundle-mjs-8puS6ou7.js +0 -1
- package/dist/web/assets/checkbox-BA-XURSj.js +0 -1
- package/dist/web/assets/chunk-BO2N2NFS-CGbd3eLY.js +0 -131
- package/dist/web/assets/code-tME-5H6D.js +0 -1
- package/dist/web/assets/createLucideIcon-B3b8EU0b.js +0 -1
- package/dist/web/assets/dist-BcAQZluc.js +0 -21
- package/dist/web/assets/highlighted-body-OFNGDK62-BBJFbIMp.js +0 -1
- package/dist/web/assets/index-BjH-Qp85.css +0 -1
- package/dist/web/assets/index-D2UxaT9v.js +0 -475
- package/dist/web/assets/input-CjmxOFr6.js +0 -1
- package/dist/web/assets/jsx-runtime-Cjj9sGSy.js +0 -1
- package/dist/web/assets/mermaid-GHXKKRXX-B4MKVODA.js +0 -1
- package/dist/web/assets/pdf-CuwKm9zO.js +0 -54
- package/dist/web/assets/select-C0xlfLAa.js +0 -1
- package/dist/web/assets/shared-DQE60Op-.js +0 -1
- package/dist/web/assets/sheet-7TIkLdpr.js +0 -1
- package/dist/web/assets/tabs-subtle-AkJZvdxS.js +0 -1
- package/dist/web/assets/textarea-Ci09-en6.js +0 -1
- package/dist/web/assets/useConfig-Qglo4xs1.js +0 -1
- package/dist/web/assets/useMCPPrompts-USLYc1I4.js +0 -1
- package/dist/web/assets/useViewHostProps-DXAD1g7g.js +0 -1
|
@@ -1,33 +1,32 @@
|
|
|
1
1
|
import { s as e, t } from "./react-BIs9pQ3H.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { t as v } from "./
|
|
6
|
-
import {
|
|
7
|
-
import { t as
|
|
8
|
-
import { A as
|
|
9
|
-
import { i as
|
|
10
|
-
import { t as ce } from "./clock-
|
|
11
|
-
import { t as le } from "./JSONDisplay-
|
|
12
|
-
import { t as ue } from "./loader-circle-
|
|
13
|
-
import { t as de } from "./maximize-2-
|
|
14
|
-
import { t as fe } from "./sparkles-
|
|
15
|
-
import { t as pe } from "./trash-2-
|
|
16
|
-
import { t as
|
|
17
|
-
import { t as
|
|
18
|
-
import { n as
|
|
19
|
-
import { r as
|
|
20
|
-
import { a as
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
|
|
24
|
-
var Te = w("braces", [["path", {
|
|
2
|
+
import { G as n, K as r, a as i, n as a, r as o, t as s } from "./input-BCpgLXU1.js";
|
|
3
|
+
import { n as c, t as l } from "./createLucideIcon-BONxC1L5.js";
|
|
4
|
+
import { U as u, t as d } from "./button-CB4uOoUV.js";
|
|
5
|
+
import { _ as f, a as p, c as m, d as h, i as g, l as _, n as v, o as y, s as b, t as x, u as S, v as C } from "./sheet-oyq1mIyg.js";
|
|
6
|
+
import { t as w } from "./label-A0UGV8FE.js";
|
|
7
|
+
import { a as T, i as E, n as D, r as O, t as k } from "./select-CCFHjOGk.js";
|
|
8
|
+
import { A, E as j, S as ee, T as M, a as N, b as P, c as te, i as F, l as ne, n as re, o as ie, r as ae, s as oe, t as se, w as I } from "./dialog-CJGnC5Ag.js";
|
|
9
|
+
import { i as L, t as R } from "./browser-DG2Z8392.js";
|
|
10
|
+
import { t as ce } from "./clock-YMF8Gtw5.js";
|
|
11
|
+
import { t as le } from "./JSONDisplay-BJqMz7Ny.js";
|
|
12
|
+
import { t as ue } from "./loader-circle-BKRHJEB7.js";
|
|
13
|
+
import { t as de } from "./maximize-2-DdrB_spi.js";
|
|
14
|
+
import { t as fe } from "./sparkles-CxeZpVtX.js";
|
|
15
|
+
import { t as pe } from "./trash-2-BhumJAFE.js";
|
|
16
|
+
import { t as me } from "./x-EilKPiCX.js";
|
|
17
|
+
import { t as he } from "./switch-DHXEA_N5.js";
|
|
18
|
+
import { n as z } from "./dist-CTJnCYmk.js";
|
|
19
|
+
import { r as ge, s as _e } from "./WidgetDebugContext-B6yoOVVV.js";
|
|
20
|
+
import { a as B } from "./dist-BgB6gR-d.js";
|
|
21
|
+
import { t as V } from "./textarea-CwmI8_uI.js";
|
|
22
|
+
import { a as ve, i as ye, n as be, o as xe, r as Se } from "./useViewHostProps-DRWpI0-w.js";
|
|
23
|
+
var Ce = l("braces", [["path", {
|
|
25
24
|
d: "M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",
|
|
26
25
|
key: "ezmyqa"
|
|
27
26
|
}], ["path", {
|
|
28
27
|
d: "M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",
|
|
29
28
|
key: "e1hn23"
|
|
30
|
-
}]]),
|
|
29
|
+
}]]), we = l("database", [
|
|
31
30
|
["ellipse", {
|
|
32
31
|
cx: "12",
|
|
33
32
|
cy: "5",
|
|
@@ -43,10 +42,10 @@ var Te = w("braces", [["path", {
|
|
|
43
42
|
d: "M3 12A9 3 0 0 0 21 12",
|
|
44
43
|
key: "mv7ke4"
|
|
45
44
|
}]
|
|
46
|
-
]),
|
|
45
|
+
]), Te = l("mouse-pointer-2", [["path", {
|
|
47
46
|
d: "M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",
|
|
48
47
|
key: "edeuup"
|
|
49
|
-
}]]),
|
|
48
|
+
}]]), Ee = l("picture-in-picture", [
|
|
50
49
|
["path", {
|
|
51
50
|
d: "M2 10h6V4",
|
|
52
51
|
key: "zwrco"
|
|
@@ -71,7 +70,7 @@ var Te = w("braces", [["path", {
|
|
|
71
70
|
rx: "1",
|
|
72
71
|
key: "1wjs3o"
|
|
73
72
|
}]
|
|
74
|
-
]),
|
|
73
|
+
]), De = l("pointer", [
|
|
75
74
|
["path", {
|
|
76
75
|
d: "M22 14a8 8 0 0 1-8 8",
|
|
77
76
|
key: "56vcr3"
|
|
@@ -92,13 +91,13 @@ var Te = w("braces", [["path", {
|
|
|
92
91
|
d: "M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15",
|
|
93
92
|
key: "g6ys72"
|
|
94
93
|
}]
|
|
95
|
-
]),
|
|
94
|
+
]), Oe = l("shield-check", [["path", {
|
|
96
95
|
d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
|
|
97
96
|
key: "oel41y"
|
|
98
97
|
}], ["path", {
|
|
99
98
|
d: "m9 12 2 2 4-4",
|
|
100
99
|
key: "dzmm74"
|
|
101
|
-
}]]),
|
|
100
|
+
}]]), ke = l("shield-off", [
|
|
102
101
|
["path", {
|
|
103
102
|
d: "m2 2 20 20",
|
|
104
103
|
key: "1ooewy"
|
|
@@ -111,7 +110,7 @@ var Te = w("braces", [["path", {
|
|
|
111
110
|
d: "M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",
|
|
112
111
|
key: "18rp1v"
|
|
113
112
|
}]
|
|
114
|
-
]),
|
|
113
|
+
]), Ae = l("smartphone", [["rect", {
|
|
115
114
|
width: "14",
|
|
116
115
|
height: "20",
|
|
117
116
|
x: "5",
|
|
@@ -122,7 +121,7 @@ var Te = w("braces", [["path", {
|
|
|
122
121
|
}], ["path", {
|
|
123
122
|
d: "M12 18h.01",
|
|
124
123
|
key: "mhygvu"
|
|
125
|
-
}]]),
|
|
124
|
+
}]]), je = l("square-dashed-mouse-pointer", [
|
|
126
125
|
["path", {
|
|
127
126
|
d: "M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z",
|
|
128
127
|
key: "xwnzip"
|
|
@@ -163,27 +162,13 @@ var Te = w("braces", [["path", {
|
|
|
163
162
|
d: "M3 14v1",
|
|
164
163
|
key: "vnatye"
|
|
165
164
|
}]
|
|
166
|
-
]),
|
|
167
|
-
width: "16",
|
|
168
|
-
height: "20",
|
|
169
|
-
x: "4",
|
|
170
|
-
y: "2",
|
|
171
|
-
rx: "2",
|
|
172
|
-
ry: "2",
|
|
173
|
-
key: "76otgf"
|
|
174
|
-
}], ["line", {
|
|
175
|
-
x1: "12",
|
|
176
|
-
x2: "12.01",
|
|
177
|
-
y1: "18",
|
|
178
|
-
y2: "18",
|
|
179
|
-
key: "1dp563"
|
|
180
|
-
}]]), B = w("terminal", [["path", {
|
|
165
|
+
]), H = l("terminal", [["path", {
|
|
181
166
|
d: "M12 19h8",
|
|
182
167
|
key: "baeox8"
|
|
183
168
|
}], ["path", {
|
|
184
169
|
d: "m4 17 6-6-6-6",
|
|
185
170
|
key: "1yngyt"
|
|
186
|
-
}]]),
|
|
171
|
+
}]]), Me = l("trash", [
|
|
187
172
|
["path", {
|
|
188
173
|
d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",
|
|
189
174
|
key: "miytrc"
|
|
@@ -196,7 +181,7 @@ var Te = w("braces", [["path", {
|
|
|
196
181
|
d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",
|
|
197
182
|
key: "e791ji"
|
|
198
183
|
}]
|
|
199
|
-
]),
|
|
184
|
+
]), U = /* @__PURE__ */ e(t(), 1), Ne = [
|
|
200
185
|
{
|
|
201
186
|
value: "en-US",
|
|
202
187
|
label: "English (US)"
|
|
@@ -434,19 +419,19 @@ var Te = w("braces", [["path", {
|
|
|
434
419
|
label: "Swahili (Kenya)"
|
|
435
420
|
}
|
|
436
421
|
];
|
|
437
|
-
function
|
|
422
|
+
function Pe() {
|
|
438
423
|
return Intl.supportedValuesOf("timeZone").map((e) => ({
|
|
439
424
|
value: e,
|
|
440
425
|
label: e.replace(/_/g, " ")
|
|
441
426
|
}));
|
|
442
427
|
}
|
|
443
|
-
var
|
|
444
|
-
function
|
|
445
|
-
let [t, n] = (0,
|
|
446
|
-
return (0,
|
|
428
|
+
var Fe = Pe(), W = (e) => `mcp-inspector-resource-props-${e}`;
|
|
429
|
+
function Ie(e) {
|
|
430
|
+
let [t, n] = (0, U.useState)([]), [r, i] = (0, U.useState)(null);
|
|
431
|
+
return (0, U.useEffect)(() => {
|
|
447
432
|
(() => {
|
|
448
433
|
try {
|
|
449
|
-
let t =
|
|
434
|
+
let t = W(e), r = localStorage.getItem(t);
|
|
450
435
|
if (r) {
|
|
451
436
|
let e = JSON.parse(r);
|
|
452
437
|
n(e.presets || []), i(e.activePresetId || null);
|
|
@@ -455,8 +440,8 @@ function ze(e) {
|
|
|
455
440
|
console.error("[useResourceProps] Failed to load presets:", e), n([]), i(null);
|
|
456
441
|
}
|
|
457
442
|
})();
|
|
458
|
-
}, [e]), (0,
|
|
459
|
-
let n =
|
|
443
|
+
}, [e]), (0, U.useEffect)(() => {
|
|
444
|
+
let n = W(e), i = {
|
|
460
445
|
presets: t,
|
|
461
446
|
activePresetId: r
|
|
462
447
|
};
|
|
@@ -468,25 +453,25 @@ function ze(e) {
|
|
|
468
453
|
]), {
|
|
469
454
|
presets: t,
|
|
470
455
|
activePresetId: r,
|
|
471
|
-
savePreset: (0,
|
|
456
|
+
savePreset: (0, U.useCallback)((e) => {
|
|
472
457
|
n((t) => {
|
|
473
458
|
let n = t.findIndex((t) => t.id === e.id), r;
|
|
474
459
|
return n >= 0 ? (r = [...t], r[n] = e) : r = [...t, e], r;
|
|
475
460
|
});
|
|
476
461
|
}, []),
|
|
477
|
-
deletePreset: (0,
|
|
462
|
+
deletePreset: (0, U.useCallback)((e) => {
|
|
478
463
|
n((t) => t.filter((t) => t.id !== e)), i((t) => t === e ? null : t);
|
|
479
464
|
}, []),
|
|
480
|
-
setActivePreset: (0,
|
|
465
|
+
setActivePreset: (0, U.useCallback)((e) => {
|
|
481
466
|
i(e);
|
|
482
467
|
}, []),
|
|
483
|
-
getActiveProps: (0,
|
|
468
|
+
getActiveProps: (0, U.useCallback)(() => r && t.find((e) => e.id === r)?.props || null, [r, t])
|
|
484
469
|
};
|
|
485
470
|
}
|
|
486
471
|
//#endregion
|
|
487
472
|
//#region src/client/hooks/useIframeConsole.ts
|
|
488
|
-
function
|
|
489
|
-
let { enabled: t = !0, maxLogs: n = 1e3, proxyToPageConsole: r = !1 } = e, [i, a] = (0,
|
|
473
|
+
function G(e = {}) {
|
|
474
|
+
let { enabled: t = !0, maxLogs: n = 1e3, proxyToPageConsole: r = !1 } = e, [i, a] = (0, U.useState)([]), [o, s] = (0, U.useState)(!1), c = (0, U.useRef)(0), l = (0, U.useCallback)((e) => {
|
|
490
475
|
if (!t) return;
|
|
491
476
|
let i = {
|
|
492
477
|
...e,
|
|
@@ -524,10 +509,10 @@ function U(e = {}) {
|
|
|
524
509
|
t,
|
|
525
510
|
n,
|
|
526
511
|
r
|
|
527
|
-
]), u = (0,
|
|
512
|
+
]), u = (0, U.useCallback)(() => {
|
|
528
513
|
a([]), c.current = 0;
|
|
529
514
|
}, []);
|
|
530
|
-
return (0,
|
|
515
|
+
return (0, U.useEffect)(() => {
|
|
531
516
|
if (!t) return;
|
|
532
517
|
let e = (e) => {
|
|
533
518
|
e.data && e.data.type === "iframe-console-log" && e.data.level && Array.isArray(e.data.args) && l({
|
|
@@ -540,8 +525,8 @@ function U(e = {}) {
|
|
|
540
525
|
return window.addEventListener("message", e), () => {
|
|
541
526
|
window.removeEventListener("message", e);
|
|
542
527
|
};
|
|
543
|
-
}, [t, l]), (0,
|
|
544
|
-
if (t) return
|
|
528
|
+
}, [t, l]), (0, U.useEffect)(() => {
|
|
529
|
+
if (t) return xe.subscribe(l);
|
|
545
530
|
}, [t, l]), {
|
|
546
531
|
logs: i,
|
|
547
532
|
addLog: l,
|
|
@@ -552,8 +537,8 @@ function U(e = {}) {
|
|
|
552
537
|
}
|
|
553
538
|
//#endregion
|
|
554
539
|
//#region src/client/components/IframeConsole.tsx
|
|
555
|
-
var
|
|
556
|
-
function
|
|
540
|
+
var K = c(), Le = 200, Re = .9;
|
|
541
|
+
function q(e) {
|
|
557
542
|
if (e === null) return "null";
|
|
558
543
|
if (e === void 0) return "undefined";
|
|
559
544
|
if (typeof e == "string") return e;
|
|
@@ -564,10 +549,10 @@ function G(e) {
|
|
|
564
549
|
}
|
|
565
550
|
return String(e);
|
|
566
551
|
}
|
|
567
|
-
function
|
|
552
|
+
function J(e) {
|
|
568
553
|
if (e.length === 0) return [];
|
|
569
554
|
let t = e[0];
|
|
570
|
-
if (typeof t != "string" || !/%[oOdisfc]/.test(t)) return e.map(
|
|
555
|
+
if (typeof t != "string" || !/%[oOdisfc]/.test(t)) return e.map(q);
|
|
571
556
|
let n = e.slice(1), r = 0, i = "";
|
|
572
557
|
for (let e = 0; e < t.length; e++) {
|
|
573
558
|
let a = t[e];
|
|
@@ -576,7 +561,7 @@ function K(e) {
|
|
|
576
561
|
switch (o) {
|
|
577
562
|
case "o":
|
|
578
563
|
case "O":
|
|
579
|
-
i +=
|
|
564
|
+
i += q(s), e++;
|
|
580
565
|
break;
|
|
581
566
|
case "s":
|
|
582
567
|
i += s === void 0 ? "undefined" : String(s), e++;
|
|
@@ -598,12 +583,12 @@ function K(e) {
|
|
|
598
583
|
i += a;
|
|
599
584
|
}
|
|
600
585
|
let a = [i.trim()];
|
|
601
|
-
for (; r < n.length;) a.push(
|
|
586
|
+
for (; r < n.length;) a.push(q(n[r++]));
|
|
602
587
|
return a.filter((e) => e.length > 0);
|
|
603
588
|
}
|
|
604
|
-
function
|
|
605
|
-
return /* @__PURE__ */ (0,
|
|
606
|
-
className:
|
|
589
|
+
function ze({ level: e }) {
|
|
590
|
+
return /* @__PURE__ */ (0, K.jsx)("span", {
|
|
591
|
+
className: u("px-1.5 py-0.5 text-[11px] font-mono font-semibold rounded-full text-white shrink-0", {
|
|
607
592
|
log: "bg-zinc-500",
|
|
608
593
|
info: "bg-blue-500",
|
|
609
594
|
warn: "bg-yellow-500",
|
|
@@ -614,45 +599,45 @@ function He({ level: e }) {
|
|
|
614
599
|
children: e.toUpperCase()
|
|
615
600
|
});
|
|
616
601
|
}
|
|
617
|
-
function
|
|
618
|
-
let [t, n] = (0,
|
|
602
|
+
function Be({ log: e }) {
|
|
603
|
+
let [t, n] = (0, U.useState)(!1), i = (0, U.useMemo)(() => {
|
|
619
604
|
try {
|
|
620
605
|
return new Date(e.timestamp).toLocaleTimeString();
|
|
621
606
|
} catch {
|
|
622
607
|
return "";
|
|
623
608
|
}
|
|
624
|
-
}, [e.timestamp]),
|
|
625
|
-
if (
|
|
626
|
-
let e =
|
|
627
|
-
return (e.length > 120 ? e.slice(0, 120) + "…" : e) + (
|
|
628
|
-
}, [
|
|
609
|
+
}, [e.timestamp]), a = (0, U.useMemo)(() => J(e.args), [e.args]), o = (0, U.useMemo)(() => {
|
|
610
|
+
if (a.length === 0) return "";
|
|
611
|
+
let e = a[0].replace(/\s*\n\s*/g, " ").trim();
|
|
612
|
+
return (e.length > 120 ? e.slice(0, 120) + "…" : e) + (a.length > 1 ? ` +${a.length - 1}` : "");
|
|
613
|
+
}, [a]), s = async (e) => {
|
|
629
614
|
e.stopPropagation();
|
|
630
615
|
try {
|
|
631
|
-
await
|
|
616
|
+
await R(a.join("\n")), z.success("Copied to clipboard");
|
|
632
617
|
} catch {
|
|
633
|
-
|
|
618
|
+
z.error("Failed to copy");
|
|
634
619
|
}
|
|
635
|
-
},
|
|
636
|
-
return /* @__PURE__ */ (0,
|
|
637
|
-
className:
|
|
638
|
-
children: [/* @__PURE__ */ (0,
|
|
639
|
-
className:
|
|
620
|
+
}, c = u("font-mono text-xs border-b border-zinc-200 dark:border-zinc-800", e.level === "error" && "bg-red-50/30 dark:bg-red-950/10", e.level === "warn" && "bg-yellow-50/30 dark:bg-yellow-950/10"), l = u("cursor-pointer select-none", e.level === "error" && "hover:bg-red-50/50 dark:hover:bg-red-950/20", e.level === "warn" && "hover:bg-yellow-50/50 dark:hover:bg-yellow-950/20", e.level !== "error" && e.level !== "warn" && "hover:bg-zinc-100/70 dark:hover:bg-zinc-800/40");
|
|
621
|
+
return /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
622
|
+
className: u(c, "group"),
|
|
623
|
+
children: [/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
624
|
+
className: u("flex items-center gap-2 px-2 py-1.5", l),
|
|
640
625
|
onClick: () => n((e) => !e),
|
|
641
626
|
children: [
|
|
642
|
-
/* @__PURE__ */ (0,
|
|
627
|
+
/* @__PURE__ */ (0, K.jsx)("span", {
|
|
643
628
|
className: "text-zinc-400 dark:text-zinc-500 shrink-0",
|
|
644
|
-
children: t ? /* @__PURE__ */ (0,
|
|
629
|
+
children: t ? /* @__PURE__ */ (0, K.jsx)(A, { className: "size-3" }) : /* @__PURE__ */ (0, K.jsx)(r, { className: "size-3" })
|
|
645
630
|
}),
|
|
646
|
-
/* @__PURE__ */ (0,
|
|
647
|
-
/* @__PURE__ */ (0,
|
|
631
|
+
/* @__PURE__ */ (0, K.jsx)(ze, { level: e.level }),
|
|
632
|
+
/* @__PURE__ */ (0, K.jsx)("span", {
|
|
648
633
|
className: "text-zinc-500 dark:text-zinc-400 text-[10px] shrink-0",
|
|
649
|
-
children:
|
|
634
|
+
children: i
|
|
650
635
|
}),
|
|
651
|
-
!t && /* @__PURE__ */ (0,
|
|
652
|
-
className:
|
|
653
|
-
children:
|
|
636
|
+
!t && /* @__PURE__ */ (0, K.jsx)("span", {
|
|
637
|
+
className: u("truncate text-[11px]", e.level === "error" && "text-red-700 dark:text-red-400", e.level === "warn" && "text-yellow-700 dark:text-yellow-400", e.level !== "error" && e.level !== "warn" && "text-zinc-700 dark:text-zinc-300"),
|
|
638
|
+
children: o
|
|
654
639
|
}),
|
|
655
|
-
t && e.url && /* @__PURE__ */ (0,
|
|
640
|
+
t && e.url && /* @__PURE__ */ (0, K.jsx)("span", {
|
|
656
641
|
className: "text-zinc-400 dark:text-zinc-500 text-[10px] truncate flex-1",
|
|
657
642
|
children: (() => {
|
|
658
643
|
try {
|
|
@@ -662,30 +647,30 @@ function Ue({ log: e }) {
|
|
|
662
647
|
}
|
|
663
648
|
})()
|
|
664
649
|
}),
|
|
665
|
-
t && /* @__PURE__ */ (0,
|
|
666
|
-
onClick:
|
|
650
|
+
t && /* @__PURE__ */ (0, K.jsx)("button", {
|
|
651
|
+
onClick: s,
|
|
667
652
|
"aria-label": "Copy log",
|
|
668
653
|
className: "ml-auto shrink-0 opacity-0 group-hover:opacity-100 transition-opacity p-0.5 rounded text-zinc-400 hover:text-zinc-700 dark:hover:text-zinc-200",
|
|
669
|
-
children: /* @__PURE__ */ (0,
|
|
654
|
+
children: /* @__PURE__ */ (0, K.jsx)(L, { className: "size-3" })
|
|
670
655
|
})
|
|
671
656
|
]
|
|
672
|
-
}), t && /* @__PURE__ */ (0,
|
|
657
|
+
}), t && /* @__PURE__ */ (0, K.jsx)("div", {
|
|
673
658
|
className: "pl-8 pr-2 pb-2 select-text",
|
|
674
|
-
children:
|
|
675
|
-
className:
|
|
659
|
+
children: a.map((t, n) => /* @__PURE__ */ (0, K.jsx)("pre", {
|
|
660
|
+
className: u("whitespace-pre-wrap wrap-break-word text-[11px]", e.level === "error" && "text-red-700 dark:text-red-400", e.level === "warn" && "text-yellow-700 dark:text-yellow-400", e.level !== "error" && e.level !== "warn" && "text-zinc-700 dark:text-zinc-300"),
|
|
676
661
|
children: t
|
|
677
662
|
}, n))
|
|
678
663
|
})]
|
|
679
664
|
});
|
|
680
665
|
}
|
|
681
|
-
var
|
|
666
|
+
var Y = "mcp-inspector-console-proxy-enabled", Ve = "mcp-inspector-console-height", He = [
|
|
682
667
|
"log",
|
|
683
668
|
"info",
|
|
684
669
|
"warn",
|
|
685
670
|
"error",
|
|
686
671
|
"debug",
|
|
687
672
|
"trace"
|
|
688
|
-
],
|
|
673
|
+
], Ue = {
|
|
689
674
|
log: "text-zinc-500",
|
|
690
675
|
info: "text-blue-500",
|
|
691
676
|
warn: "text-yellow-500",
|
|
@@ -693,48 +678,48 @@ var q = "mcp-inspector-console-proxy-enabled", We = "mcp-inspector-console-heigh
|
|
|
693
678
|
debug: "text-purple-500",
|
|
694
679
|
trace: "text-gray-500"
|
|
695
680
|
};
|
|
696
|
-
function
|
|
697
|
-
let [
|
|
681
|
+
function We({ iframeId: e, enabled: t = !0 }) {
|
|
682
|
+
let [r, s] = (0, U.useState)(() => {
|
|
698
683
|
if (typeof window > "u") return !0;
|
|
699
684
|
try {
|
|
700
|
-
return localStorage.getItem(
|
|
685
|
+
return localStorage.getItem(Y) === "true";
|
|
701
686
|
} catch {
|
|
702
687
|
return !0;
|
|
703
688
|
}
|
|
704
|
-
}), [
|
|
689
|
+
}), [c, l] = (0, U.useState)(() => {
|
|
705
690
|
if (typeof window > "u") return 400;
|
|
706
691
|
try {
|
|
707
|
-
let e = localStorage.getItem(
|
|
708
|
-
return e ? Math.max(
|
|
692
|
+
let e = localStorage.getItem(Ve);
|
|
693
|
+
return e ? Math.max(Le, parseInt(e, 10)) : 400;
|
|
709
694
|
} catch {
|
|
710
695
|
return 400;
|
|
711
696
|
}
|
|
712
|
-
}), f = (0,
|
|
697
|
+
}), f = (0, U.useRef)(!1), m = (0, U.useCallback)((e) => {
|
|
713
698
|
e.preventDefault(), f.current = !0;
|
|
714
699
|
let t = (e) => {
|
|
715
700
|
if (!f.current) return;
|
|
716
|
-
let t = Math.floor(window.innerHeight *
|
|
717
|
-
|
|
701
|
+
let t = Math.floor(window.innerHeight * Re);
|
|
702
|
+
l(Math.min(t, Math.max(Le, window.innerHeight - e.clientY)));
|
|
718
703
|
}, n = () => {
|
|
719
704
|
f.current = !1, window.removeEventListener("mousemove", t), window.removeEventListener("mouseup", n);
|
|
720
705
|
};
|
|
721
706
|
window.addEventListener("mousemove", t), window.addEventListener("mouseup", n);
|
|
722
707
|
}, []);
|
|
723
|
-
(0,
|
|
708
|
+
(0, U.useEffect)(() => {
|
|
724
709
|
try {
|
|
725
|
-
localStorage.setItem(
|
|
710
|
+
localStorage.setItem(Ve, String(c));
|
|
726
711
|
} catch {}
|
|
727
|
-
}, [
|
|
728
|
-
let [
|
|
712
|
+
}, [c]);
|
|
713
|
+
let [h, _] = (0, U.useState)("all"), [b, S] = (0, U.useState)(""), { logs: C, clearLogs: T, isOpen: E, setIsOpen: D } = G({
|
|
729
714
|
enabled: t,
|
|
730
|
-
proxyToPageConsole:
|
|
731
|
-
}),
|
|
732
|
-
(0,
|
|
715
|
+
proxyToPageConsole: r
|
|
716
|
+
}), O = (0, U.useRef)(null);
|
|
717
|
+
(0, U.useEffect)(() => {
|
|
733
718
|
try {
|
|
734
|
-
localStorage.setItem(
|
|
719
|
+
localStorage.setItem(Y, String(r));
|
|
735
720
|
} catch {}
|
|
736
|
-
}, [
|
|
737
|
-
let
|
|
721
|
+
}, [r]);
|
|
722
|
+
let k = (0, U.useMemo)(() => {
|
|
738
723
|
let e = {
|
|
739
724
|
log: 0,
|
|
740
725
|
info: 0,
|
|
@@ -743,211 +728,211 @@ function qe({ iframeId: e, enabled: t = !0 }) {
|
|
|
743
728
|
debug: 0,
|
|
744
729
|
trace: 0
|
|
745
730
|
};
|
|
746
|
-
for (let t of
|
|
731
|
+
for (let t of C) e[t.level]++;
|
|
747
732
|
return e;
|
|
748
|
-
}, [
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
]),
|
|
753
|
-
let e =
|
|
733
|
+
}, [C]), A = k.error, j = k.warn, ee = k.log + k.info + k.debug + k.trace, M = C.length, N = (0, U.useMemo)(() => A > 0 ? "bg-red-500" : j > 0 ? "bg-yellow-500" : "bg-zinc-500", [
|
|
734
|
+
A,
|
|
735
|
+
j,
|
|
736
|
+
ee
|
|
737
|
+
]), P = (0, U.useMemo)(() => {
|
|
738
|
+
let e = h === "all" ? C : C.filter((e) => e.level === h), t = b.trim().toLowerCase();
|
|
754
739
|
return t && (e = e.filter((e) => {
|
|
755
|
-
let n =
|
|
740
|
+
let n = J(e.args).join(" ").toLowerCase(), r = (e.url ?? "").toLowerCase();
|
|
756
741
|
return n.includes(t) || r.includes(t);
|
|
757
742
|
})), e;
|
|
758
743
|
}, [
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
744
|
+
C,
|
|
745
|
+
h,
|
|
746
|
+
b
|
|
762
747
|
]);
|
|
763
|
-
return (0,
|
|
764
|
-
|
|
748
|
+
return (0, U.useEffect)(() => {
|
|
749
|
+
E && !b && O.current && (O.current.scrollTop = O.current.scrollHeight);
|
|
765
750
|
}, [
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
]), /* @__PURE__ */ (0,
|
|
770
|
-
open:
|
|
771
|
-
onOpenChange:
|
|
772
|
-
children: [/* @__PURE__ */ (0,
|
|
773
|
-
render: /* @__PURE__ */ (0,
|
|
774
|
-
render: /* @__PURE__ */ (0,
|
|
751
|
+
P,
|
|
752
|
+
E,
|
|
753
|
+
b
|
|
754
|
+
]), /* @__PURE__ */ (0, K.jsxs)(x, {
|
|
755
|
+
open: E,
|
|
756
|
+
onOpenChange: D,
|
|
757
|
+
children: [/* @__PURE__ */ (0, K.jsx)(y, {
|
|
758
|
+
render: /* @__PURE__ */ (0, K.jsxs)(a, { children: [/* @__PURE__ */ (0, K.jsx)(i, {
|
|
759
|
+
render: /* @__PURE__ */ (0, K.jsxs)(d, {
|
|
775
760
|
variant: "outline",
|
|
776
761
|
size: "sm",
|
|
777
762
|
className: "relative bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900",
|
|
778
|
-
onClick: () =>
|
|
779
|
-
children: [/* @__PURE__ */ (0,
|
|
780
|
-
className:
|
|
781
|
-
children:
|
|
763
|
+
onClick: () => D(!0),
|
|
764
|
+
children: [/* @__PURE__ */ (0, K.jsx)(H, { className: "size-4" }), M > 0 && /* @__PURE__ */ (0, K.jsx)("span", {
|
|
765
|
+
className: u("ml-2 px-1.5 py-0.5 text-xs rounded-full text-white font-semibold", N),
|
|
766
|
+
children: M
|
|
782
767
|
})]
|
|
783
768
|
}),
|
|
784
769
|
nativeButton: !0
|
|
785
|
-
}), /* @__PURE__ */ (0,
|
|
770
|
+
}), /* @__PURE__ */ (0, K.jsx)(o, { children: /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
786
771
|
className: "text-xs space-y-1",
|
|
787
772
|
children: [
|
|
788
|
-
/* @__PURE__ */ (0,
|
|
773
|
+
/* @__PURE__ */ (0, K.jsxs)("p", {
|
|
789
774
|
className: "font-semibold",
|
|
790
775
|
children: [
|
|
791
|
-
|
|
776
|
+
M,
|
|
792
777
|
" console ",
|
|
793
|
-
|
|
778
|
+
M === 1 ? "log" : "logs"
|
|
794
779
|
]
|
|
795
780
|
}),
|
|
796
|
-
|
|
781
|
+
A > 0 && /* @__PURE__ */ (0, K.jsxs)("p", {
|
|
797
782
|
className: "text-red-400",
|
|
798
783
|
children: [
|
|
799
|
-
|
|
784
|
+
A,
|
|
800
785
|
" error",
|
|
801
|
-
|
|
786
|
+
A === 1 ? "" : "s"
|
|
802
787
|
]
|
|
803
788
|
}),
|
|
804
|
-
|
|
789
|
+
j > 0 && /* @__PURE__ */ (0, K.jsxs)("p", {
|
|
805
790
|
className: "text-yellow-400",
|
|
806
791
|
children: [
|
|
807
|
-
|
|
792
|
+
j,
|
|
808
793
|
" warning",
|
|
809
|
-
|
|
794
|
+
j === 1 ? "" : "s"
|
|
810
795
|
]
|
|
811
796
|
}),
|
|
812
|
-
|
|
797
|
+
ee > 0 && /* @__PURE__ */ (0, K.jsxs)("p", {
|
|
813
798
|
className: "text-zinc-400",
|
|
814
|
-
children: [
|
|
799
|
+
children: [ee, " info"]
|
|
815
800
|
})
|
|
816
801
|
]
|
|
817
802
|
}) })] }),
|
|
818
803
|
nativeButton: !1
|
|
819
|
-
}), /* @__PURE__ */ (0,
|
|
804
|
+
}), /* @__PURE__ */ (0, K.jsxs)(v, {
|
|
820
805
|
side: "bottom",
|
|
821
806
|
className: "flex flex-col p-0 transition-none m-0 gap-0",
|
|
822
|
-
style: { height:
|
|
807
|
+
style: { height: c },
|
|
823
808
|
children: [
|
|
824
|
-
/* @__PURE__ */ (0,
|
|
809
|
+
/* @__PURE__ */ (0, K.jsx)("div", {
|
|
825
810
|
className: "h-1.5 w-full shrink-0 cursor-ns-resize bg-zinc-200 dark:bg-zinc-700 hover:bg-zinc-300 dark:hover:bg-zinc-600 transition-colors",
|
|
826
|
-
onMouseDown:
|
|
811
|
+
onMouseDown: m
|
|
827
812
|
}),
|
|
828
|
-
/* @__PURE__ */ (0,
|
|
813
|
+
/* @__PURE__ */ (0, K.jsxs)(g, {
|
|
829
814
|
className: "px-4 py-4 m-0 border-b border-zinc-200 dark:border-zinc-800 shrink-0",
|
|
830
|
-
children: [/* @__PURE__ */ (0,
|
|
815
|
+
children: [/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
831
816
|
className: "flex items-center justify-between",
|
|
832
|
-
children: [/* @__PURE__ */ (0,
|
|
817
|
+
children: [/* @__PURE__ */ (0, K.jsxs)(p, {
|
|
833
818
|
className: "flex items-center gap-2",
|
|
834
819
|
children: [
|
|
835
|
-
/* @__PURE__ */ (0,
|
|
820
|
+
/* @__PURE__ */ (0, K.jsx)(H, { className: "size-4" }),
|
|
836
821
|
"Widget Console Logs",
|
|
837
|
-
|
|
822
|
+
C.length > 0 && /* @__PURE__ */ (0, K.jsxs)("span", {
|
|
838
823
|
className: "text-sm font-normal text-zinc-500 dark:text-zinc-400",
|
|
839
824
|
children: [
|
|
840
825
|
"(",
|
|
841
|
-
|
|
826
|
+
C.length,
|
|
842
827
|
" ",
|
|
843
|
-
|
|
828
|
+
C.length === 1 ? "log" : "logs",
|
|
844
829
|
")"
|
|
845
830
|
]
|
|
846
831
|
})
|
|
847
832
|
]
|
|
848
|
-
}), /* @__PURE__ */ (0,
|
|
833
|
+
}), /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
849
834
|
className: "flex items-center gap-4 pr-4",
|
|
850
|
-
children: [/* @__PURE__ */ (0,
|
|
835
|
+
children: [/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
851
836
|
className: "flex items-center gap-2",
|
|
852
|
-
children: [/* @__PURE__ */ (0,
|
|
837
|
+
children: [/* @__PURE__ */ (0, K.jsx)(he, {
|
|
853
838
|
id: "proxy-console-toggle",
|
|
854
|
-
checked:
|
|
855
|
-
onCheckedChange:
|
|
856
|
-
}), /* @__PURE__ */ (0,
|
|
839
|
+
checked: r,
|
|
840
|
+
onCheckedChange: s
|
|
841
|
+
}), /* @__PURE__ */ (0, K.jsx)(w, {
|
|
857
842
|
htmlFor: "proxy-console-toggle",
|
|
858
843
|
className: "text-sm font-normal cursor-pointer",
|
|
859
844
|
children: "Proxy logs to page console"
|
|
860
845
|
})]
|
|
861
|
-
}),
|
|
846
|
+
}), C.length > 0 && /* @__PURE__ */ (0, K.jsxs)(K.Fragment, { children: [/* @__PURE__ */ (0, K.jsxs)(d, {
|
|
862
847
|
variant: "ghost",
|
|
863
848
|
size: "sm",
|
|
864
849
|
onClick: async () => {
|
|
865
850
|
try {
|
|
866
|
-
await
|
|
851
|
+
await R(P.map((e) => {
|
|
867
852
|
let t = new Date(e.timestamp).toLocaleTimeString();
|
|
868
|
-
return `[${e.level.toUpperCase()}] ${t}${e.url ? ` ${e.url}` : ""}\n${
|
|
869
|
-
}).join("\n\n")),
|
|
853
|
+
return `[${e.level.toUpperCase()}] ${t}${e.url ? ` ${e.url}` : ""}\n${J(e.args).join("\n")}`;
|
|
854
|
+
}).join("\n\n")), z.success(`Copied ${P.length} logs to clipboard`);
|
|
870
855
|
} catch {
|
|
871
|
-
|
|
856
|
+
z.error("Failed to copy logs to clipboard");
|
|
872
857
|
}
|
|
873
858
|
},
|
|
874
859
|
className: "-my-2",
|
|
875
|
-
children: [/* @__PURE__ */ (0,
|
|
876
|
-
}), /* @__PURE__ */ (0,
|
|
860
|
+
children: [/* @__PURE__ */ (0, K.jsx)(L, { className: "size-4 mr-1" }), "Copy All"]
|
|
861
|
+
}), /* @__PURE__ */ (0, K.jsxs)(d, {
|
|
877
862
|
variant: "ghost",
|
|
878
863
|
size: "sm",
|
|
879
|
-
onClick:
|
|
864
|
+
onClick: T,
|
|
880
865
|
className: "-my-2",
|
|
881
|
-
children: [/* @__PURE__ */ (0,
|
|
866
|
+
children: [/* @__PURE__ */ (0, K.jsx)(Me, { className: "size-4 mr-1" }), "Clear"]
|
|
882
867
|
})] })]
|
|
883
868
|
})]
|
|
884
|
-
}), /* @__PURE__ */ (0,
|
|
869
|
+
}), /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
885
870
|
className: "flex items-center gap-1 pt-1",
|
|
886
871
|
children: [
|
|
887
|
-
/* @__PURE__ */ (0,
|
|
888
|
-
onClick: () =>
|
|
889
|
-
className:
|
|
890
|
-
children: ["All",
|
|
872
|
+
/* @__PURE__ */ (0, K.jsxs)("button", {
|
|
873
|
+
onClick: () => _("all"),
|
|
874
|
+
className: u("px-2 py-0.5 text-xs rounded font-medium transition-colors", h === "all" ? "bg-zinc-200 dark:bg-zinc-700 text-zinc-900 dark:text-zinc-100" : "text-zinc-500 dark:text-zinc-400 hover:bg-zinc-100 dark:hover:bg-zinc-800"),
|
|
875
|
+
children: ["All", M > 0 && /* @__PURE__ */ (0, K.jsx)("span", {
|
|
891
876
|
className: "ml-1 text-[10px] opacity-70",
|
|
892
|
-
children:
|
|
877
|
+
children: M
|
|
893
878
|
})]
|
|
894
879
|
}),
|
|
895
|
-
|
|
896
|
-
let t =
|
|
897
|
-
return /* @__PURE__ */ (0,
|
|
898
|
-
onClick: () => h
|
|
899
|
-
className:
|
|
900
|
-
children: [/* @__PURE__ */ (0,
|
|
901
|
-
className:
|
|
880
|
+
He.map((e) => {
|
|
881
|
+
let t = k[e];
|
|
882
|
+
return /* @__PURE__ */ (0, K.jsxs)("button", {
|
|
883
|
+
onClick: () => _(h === e ? "all" : e),
|
|
884
|
+
className: u("px-2 py-0.5 text-xs rounded font-medium transition-colors", h === e ? "bg-zinc-200 dark:bg-zinc-700 text-zinc-900 dark:text-zinc-100" : "text-zinc-500 dark:text-zinc-400 hover:bg-zinc-100 dark:hover:bg-zinc-800"),
|
|
885
|
+
children: [/* @__PURE__ */ (0, K.jsx)("span", {
|
|
886
|
+
className: u(t > 0 && Ue[e]),
|
|
902
887
|
children: e.charAt(0).toUpperCase() + e.slice(1)
|
|
903
|
-
}), t > 0 && /* @__PURE__ */ (0,
|
|
904
|
-
className:
|
|
888
|
+
}), t > 0 && /* @__PURE__ */ (0, K.jsx)("span", {
|
|
889
|
+
className: u("ml-1 text-[10px]", Ue[e]),
|
|
905
890
|
children: t
|
|
906
891
|
})]
|
|
907
892
|
}, e);
|
|
908
893
|
}),
|
|
909
|
-
/* @__PURE__ */ (0,
|
|
894
|
+
/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
910
895
|
className: "ml-auto flex items-center gap-1 relative",
|
|
911
896
|
children: [
|
|
912
|
-
/* @__PURE__ */ (0,
|
|
913
|
-
/* @__PURE__ */ (0,
|
|
897
|
+
/* @__PURE__ */ (0, K.jsx)(n, { className: "absolute left-2 size-3 text-zinc-400 dark:text-zinc-500 pointer-events-none" }),
|
|
898
|
+
/* @__PURE__ */ (0, K.jsx)("input", {
|
|
914
899
|
type: "text",
|
|
915
900
|
placeholder: "Filter logs…",
|
|
916
|
-
value:
|
|
917
|
-
onChange: (e) =>
|
|
901
|
+
value: b,
|
|
902
|
+
onChange: (e) => S(e.target.value),
|
|
918
903
|
className: "pl-6 pr-6 py-0.5 text-xs rounded border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 text-zinc-900 dark:text-zinc-100 placeholder-zinc-400 dark:placeholder-zinc-500 focus:outline-none focus:ring-1 focus:ring-zinc-400 dark:focus:ring-zinc-500 w-44"
|
|
919
904
|
}),
|
|
920
|
-
|
|
921
|
-
onClick: () =>
|
|
905
|
+
b && /* @__PURE__ */ (0, K.jsx)("button", {
|
|
906
|
+
onClick: () => S(""),
|
|
922
907
|
"aria-label": "Clear search",
|
|
923
908
|
className: "absolute right-1.5 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300",
|
|
924
|
-
children: /* @__PURE__ */ (0,
|
|
909
|
+
children: /* @__PURE__ */ (0, K.jsx)(me, { className: "size-3" })
|
|
925
910
|
})
|
|
926
911
|
]
|
|
927
912
|
})
|
|
928
913
|
]
|
|
929
914
|
})]
|
|
930
915
|
}),
|
|
931
|
-
/* @__PURE__ */ (0,
|
|
932
|
-
ref:
|
|
916
|
+
/* @__PURE__ */ (0, K.jsx)("div", {
|
|
917
|
+
ref: O,
|
|
933
918
|
className: "flex-1 overflow-auto bg-zinc-50 dark:bg-zinc-950",
|
|
934
|
-
children:
|
|
919
|
+
children: P.length === 0 ? /* @__PURE__ */ (0, K.jsx)("div", {
|
|
935
920
|
className: "flex items-center justify-center h-full text-zinc-500 dark:text-zinc-400",
|
|
936
|
-
children: /* @__PURE__ */ (0,
|
|
921
|
+
children: /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
937
922
|
className: "text-center",
|
|
938
923
|
children: [
|
|
939
|
-
/* @__PURE__ */ (0,
|
|
940
|
-
/* @__PURE__ */ (0,
|
|
924
|
+
/* @__PURE__ */ (0, K.jsx)(H, { className: "size-8 mx-auto mb-2 opacity-50" }),
|
|
925
|
+
/* @__PURE__ */ (0, K.jsx)("p", {
|
|
941
926
|
className: "text-sm",
|
|
942
|
-
children:
|
|
927
|
+
children: C.length === 0 ? "No console logs yet" : b ? `No logs match "${b}"` : "No logs match the current filter"
|
|
943
928
|
}),
|
|
944
|
-
/* @__PURE__ */ (0,
|
|
929
|
+
/* @__PURE__ */ (0, K.jsx)("p", {
|
|
945
930
|
className: "text-xs mt-1",
|
|
946
|
-
children:
|
|
931
|
+
children: C.length === 0 ? "Logs from iframes will appear here" : `${C.length} log${C.length === 1 ? "" : "s"} hidden by filter`
|
|
947
932
|
})
|
|
948
933
|
]
|
|
949
934
|
})
|
|
950
|
-
}) : /* @__PURE__ */ (0,
|
|
935
|
+
}) : /* @__PURE__ */ (0, K.jsx)("div", { children: P.map((e) => /* @__PURE__ */ (0, K.jsx)(Be, { log: e }, e.id)) })
|
|
951
936
|
})
|
|
952
937
|
]
|
|
953
938
|
})]
|
|
@@ -955,7 +940,7 @@ function qe({ iframeId: e, enabled: t = !0 }) {
|
|
|
955
940
|
}
|
|
956
941
|
//#endregion
|
|
957
942
|
//#region src/client/hooks/usePropsLLM.ts
|
|
958
|
-
function
|
|
943
|
+
function Ge(e) {
|
|
959
944
|
let t = e.trim(), n = t.match(/```(?:json)?\s*([\s\S]*?)```/);
|
|
960
945
|
n && (t = n[1].trim());
|
|
961
946
|
let r = t.indexOf("{");
|
|
@@ -969,9 +954,9 @@ function J(e) {
|
|
|
969
954
|
}
|
|
970
955
|
return null;
|
|
971
956
|
}
|
|
972
|
-
function
|
|
957
|
+
function Ke({ llmConfig: e }) {
|
|
973
958
|
return {
|
|
974
|
-
generateProps: (0,
|
|
959
|
+
generateProps: (0, U.useCallback)(async ({ resource: t, resourceAnnotations: n, propsSchema: r }) => {
|
|
975
960
|
if (!e) throw Error("LLM config is not available");
|
|
976
961
|
let i = t.mimeType || n?.mimeType || "unknown", a = t.description || n?.description || "N/A";
|
|
977
962
|
if (r?.properties) {
|
|
@@ -991,7 +976,7 @@ ${n}
|
|
|
991
976
|
|
|
992
977
|
Generate appropriate default/example values for these props. Return ONLY a JSON object with the exact prop names as keys.
|
|
993
978
|
Example: {"query": "example search term", "results": [{"fruit": "Apple", "color": "red"}]}`
|
|
994
|
-
}], o =
|
|
979
|
+
}], o = Ge(await B({
|
|
995
980
|
config: {
|
|
996
981
|
provider: e.provider,
|
|
997
982
|
model: e.model,
|
|
@@ -1025,7 +1010,7 @@ Based on this information, suggest 3-5 common customizable properties like theme
|
|
|
1025
1010
|
}, {
|
|
1026
1011
|
role: "user",
|
|
1027
1012
|
content: c
|
|
1028
|
-
}], u = await
|
|
1013
|
+
}], u = await B({
|
|
1029
1014
|
config: {
|
|
1030
1015
|
provider: e.provider,
|
|
1031
1016
|
model: e.model,
|
|
@@ -1036,7 +1021,7 @@ Based on this information, suggest 3-5 common customizable properties like theme
|
|
|
1036
1021
|
messages: l
|
|
1037
1022
|
});
|
|
1038
1023
|
try {
|
|
1039
|
-
let e =
|
|
1024
|
+
let e = Ge(u);
|
|
1040
1025
|
if (e) return Object.entries(e).map(([e, t]) => ({
|
|
1041
1026
|
key: e,
|
|
1042
1027
|
value: typeof t == "object" && t ? JSON.stringify(t) : String(t)
|
|
@@ -1060,7 +1045,7 @@ Based on this information, suggest 3-5 common customizable properties like theme
|
|
|
1060
1045
|
}
|
|
1061
1046
|
//#endregion
|
|
1062
1047
|
//#region src/client/components/shared/SchemaFormField.tsx
|
|
1063
|
-
function
|
|
1048
|
+
function qe(e, t) {
|
|
1064
1049
|
if (!e?.$ref) return e;
|
|
1065
1050
|
let n = e.$ref;
|
|
1066
1051
|
if (n.startsWith("#/")) {
|
|
@@ -1071,35 +1056,35 @@ function Y(e, t) {
|
|
|
1071
1056
|
}
|
|
1072
1057
|
return e;
|
|
1073
1058
|
}
|
|
1074
|
-
function
|
|
1059
|
+
function Je(e, t) {
|
|
1075
1060
|
if (e.anyOf && Array.isArray(e.anyOf)) {
|
|
1076
1061
|
let n = e.anyOf.find((e) => e.type !== "null");
|
|
1077
1062
|
if (n) return {
|
|
1078
|
-
...
|
|
1063
|
+
...qe(n, t),
|
|
1079
1064
|
nullable: !0
|
|
1080
1065
|
};
|
|
1081
1066
|
}
|
|
1082
1067
|
return e;
|
|
1083
1068
|
}
|
|
1084
|
-
function
|
|
1069
|
+
function Ye(e) {
|
|
1085
1070
|
return Array.isArray(e.enum) ? e.enum : null;
|
|
1086
1071
|
}
|
|
1087
1072
|
function X({ name: e, schema: t, value: n, onChange: r, required: i = !1, disabled: a = !1, rootSchema: o }) {
|
|
1088
|
-
let
|
|
1089
|
-
|
|
1090
|
-
let
|
|
1091
|
-
return f.type === "object" || f.type === "array" ? /* @__PURE__ */ (0,
|
|
1073
|
+
let c = o || t, l = Je(t, c);
|
|
1074
|
+
l = qe(l, c);
|
|
1075
|
+
let u = Ye(l), d = l.type === "string" && u !== null, f = l;
|
|
1076
|
+
return f.type === "object" || f.type === "array" ? /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1092
1077
|
className: "space-y-2",
|
|
1093
1078
|
children: [
|
|
1094
|
-
/* @__PURE__ */ (0,
|
|
1079
|
+
/* @__PURE__ */ (0, K.jsxs)(w, {
|
|
1095
1080
|
htmlFor: e,
|
|
1096
1081
|
className: "text-sm font-medium",
|
|
1097
|
-
children: [e, i && /* @__PURE__ */ (0,
|
|
1082
|
+
children: [e, i && /* @__PURE__ */ (0, K.jsx)("span", {
|
|
1098
1083
|
className: "text-red-500 ml-1",
|
|
1099
1084
|
children: "*"
|
|
1100
1085
|
})]
|
|
1101
1086
|
}),
|
|
1102
|
-
/* @__PURE__ */ (0,
|
|
1087
|
+
/* @__PURE__ */ (0, K.jsx)(V, {
|
|
1103
1088
|
id: e,
|
|
1104
1089
|
value: n,
|
|
1105
1090
|
onChange: (e) => r(e.target.value),
|
|
@@ -1107,52 +1092,52 @@ function X({ name: e, schema: t, value: n, onChange: r, required: i = !1, disabl
|
|
|
1107
1092
|
className: "min-h-[100px]",
|
|
1108
1093
|
disabled: a
|
|
1109
1094
|
}),
|
|
1110
|
-
f?.description && /* @__PURE__ */ (0,
|
|
1095
|
+
f?.description && /* @__PURE__ */ (0, K.jsx)("p", {
|
|
1111
1096
|
className: "text-xs text-gray-500 dark:text-gray-400",
|
|
1112
1097
|
children: f.description
|
|
1113
1098
|
})
|
|
1114
1099
|
]
|
|
1115
|
-
}) : d &&
|
|
1100
|
+
}) : d && u ? /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1116
1101
|
className: "space-y-2",
|
|
1117
1102
|
children: [
|
|
1118
|
-
/* @__PURE__ */ (0,
|
|
1103
|
+
/* @__PURE__ */ (0, K.jsxs)(w, {
|
|
1119
1104
|
htmlFor: e,
|
|
1120
1105
|
className: "text-sm font-medium",
|
|
1121
|
-
children: [e, i && /* @__PURE__ */ (0,
|
|
1106
|
+
children: [e, i && /* @__PURE__ */ (0, K.jsx)("span", {
|
|
1122
1107
|
className: "text-red-500 ml-1",
|
|
1123
1108
|
children: "*"
|
|
1124
1109
|
})]
|
|
1125
1110
|
}),
|
|
1126
|
-
/* @__PURE__ */ (0,
|
|
1111
|
+
/* @__PURE__ */ (0, K.jsxs)(k, {
|
|
1127
1112
|
value: n || "",
|
|
1128
1113
|
onValueChange: r,
|
|
1129
1114
|
disabled: a,
|
|
1130
|
-
children: [/* @__PURE__ */ (0,
|
|
1115
|
+
children: [/* @__PURE__ */ (0, K.jsx)(E, {
|
|
1131
1116
|
id: e,
|
|
1132
1117
|
className: "w-full",
|
|
1133
|
-
children: /* @__PURE__ */ (0,
|
|
1134
|
-
}), /* @__PURE__ */ (0,
|
|
1118
|
+
children: /* @__PURE__ */ (0, K.jsx)(T, { placeholder: f.description || "Select an option" })
|
|
1119
|
+
}), /* @__PURE__ */ (0, K.jsx)(D, { children: u.map((e, t) => /* @__PURE__ */ (0, K.jsx)(O, {
|
|
1135
1120
|
value: e,
|
|
1136
1121
|
children: f.enumNames?.[t] || e
|
|
1137
1122
|
}, e)) })]
|
|
1138
1123
|
}),
|
|
1139
|
-
f.description && /* @__PURE__ */ (0,
|
|
1124
|
+
f.description && /* @__PURE__ */ (0, K.jsx)("p", {
|
|
1140
1125
|
className: "text-xs text-gray-500 dark:text-gray-400",
|
|
1141
1126
|
children: f.description
|
|
1142
1127
|
})
|
|
1143
1128
|
]
|
|
1144
|
-
}) : /* @__PURE__ */ (0,
|
|
1129
|
+
}) : /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1145
1130
|
className: "space-y-2",
|
|
1146
1131
|
children: [
|
|
1147
|
-
/* @__PURE__ */ (0,
|
|
1132
|
+
/* @__PURE__ */ (0, K.jsxs)(w, {
|
|
1148
1133
|
htmlFor: e,
|
|
1149
1134
|
className: "text-sm font-medium",
|
|
1150
|
-
children: [e, i && /* @__PURE__ */ (0,
|
|
1135
|
+
children: [e, i && /* @__PURE__ */ (0, K.jsx)("span", {
|
|
1151
1136
|
className: "text-red-500 ml-1",
|
|
1152
1137
|
children: "*"
|
|
1153
1138
|
})]
|
|
1154
1139
|
}),
|
|
1155
|
-
/* @__PURE__ */ (0,
|
|
1140
|
+
/* @__PURE__ */ (0, K.jsx)(s, {
|
|
1156
1141
|
id: e,
|
|
1157
1142
|
value: n,
|
|
1158
1143
|
onChange: (e) => r(e.target.value),
|
|
@@ -1160,7 +1145,7 @@ function X({ name: e, schema: t, value: n, onChange: r, required: i = !1, disabl
|
|
|
1160
1145
|
type: f.type === "number" ? "number" : "text",
|
|
1161
1146
|
disabled: a
|
|
1162
1147
|
}),
|
|
1163
|
-
f?.description && /* @__PURE__ */ (0,
|
|
1148
|
+
f?.description && /* @__PURE__ */ (0, K.jsx)("p", {
|
|
1164
1149
|
className: "text-xs text-gray-500 dark:text-gray-400",
|
|
1165
1150
|
children: f.description
|
|
1166
1151
|
})
|
|
@@ -1169,8 +1154,8 @@ function X({ name: e, schema: t, value: n, onChange: r, required: i = !1, disabl
|
|
|
1169
1154
|
}
|
|
1170
1155
|
//#endregion
|
|
1171
1156
|
//#region src/client/components/resources/PropsConfigDialog.tsx
|
|
1172
|
-
function
|
|
1173
|
-
let
|
|
1157
|
+
function Xe({ open: e, onOpenChange: t, onSave: n, existingPresets: r, resource: i, resourceAnnotations: a, llmConfig: o, editingPreset: c }) {
|
|
1158
|
+
let l = (0, U.useMemo)(() => {
|
|
1174
1159
|
let e = (e) => {
|
|
1175
1160
|
if (!e) return null;
|
|
1176
1161
|
if (e.type === "object" && e.properties) return e;
|
|
@@ -1234,16 +1219,16 @@ function Ze({ open: e, onOpenChange: t, onSave: n, existingPresets: r, resource:
|
|
|
1234
1219
|
i.annotations,
|
|
1235
1220
|
i.uri,
|
|
1236
1221
|
i.name
|
|
1237
|
-
]),
|
|
1222
|
+
]), u = !!l, [f, p] = (0, U.useState)(""), [m, h] = (0, U.useState)({}), [g, _] = (0, U.useState)([{
|
|
1238
1223
|
id: crypto.randomUUID(),
|
|
1239
1224
|
key: "",
|
|
1240
1225
|
value: ""
|
|
1241
|
-
}]), [
|
|
1242
|
-
(0,
|
|
1226
|
+
}]), [v, y] = (0, U.useState)(!1), [b, x] = (0, U.useState)(null), { generateProps: S, isAvailable: C } = Ke({ llmConfig: o });
|
|
1227
|
+
(0, U.useEffect)(() => {
|
|
1243
1228
|
if (e) {
|
|
1244
|
-
if (
|
|
1229
|
+
if (c) if (p(c.name), u) h(c.props);
|
|
1245
1230
|
else {
|
|
1246
|
-
let e = Object.entries(
|
|
1231
|
+
let e = Object.entries(c.props).map(([e, t]) => ({
|
|
1247
1232
|
id: crypto.randomUUID(),
|
|
1248
1233
|
key: e,
|
|
1249
1234
|
value: t
|
|
@@ -1254,17 +1239,17 @@ function Ze({ open: e, onOpenChange: t, onSave: n, existingPresets: r, resource:
|
|
|
1254
1239
|
value: ""
|
|
1255
1240
|
}]);
|
|
1256
1241
|
}
|
|
1257
|
-
else p(""),
|
|
1242
|
+
else p(""), u ? h({}) : _([{
|
|
1258
1243
|
id: crypto.randomUUID(),
|
|
1259
1244
|
key: "",
|
|
1260
1245
|
value: ""
|
|
1261
1246
|
}]);
|
|
1262
|
-
|
|
1247
|
+
x(null);
|
|
1263
1248
|
}
|
|
1264
1249
|
}, [
|
|
1265
1250
|
e,
|
|
1266
|
-
|
|
1267
|
-
|
|
1251
|
+
c,
|
|
1252
|
+
u
|
|
1268
1253
|
]);
|
|
1269
1254
|
let T = () => {
|
|
1270
1255
|
_([...g, {
|
|
@@ -1280,45 +1265,45 @@ function Ze({ open: e, onOpenChange: t, onSave: n, existingPresets: r, resource:
|
|
|
1280
1265
|
[t]: n
|
|
1281
1266
|
} : r));
|
|
1282
1267
|
};
|
|
1283
|
-
return /* @__PURE__ */ (0,
|
|
1268
|
+
return /* @__PURE__ */ (0, K.jsx)(se, {
|
|
1284
1269
|
open: e,
|
|
1285
1270
|
onOpenChange: t,
|
|
1286
|
-
children: /* @__PURE__ */ (0,
|
|
1271
|
+
children: /* @__PURE__ */ (0, K.jsxs)(ae, {
|
|
1287
1272
|
scrollable: !0,
|
|
1288
1273
|
className: "sm:max-w-[600px] max-h-[80vh]",
|
|
1289
1274
|
"data-testid": "props-config-dialog",
|
|
1290
1275
|
children: [
|
|
1291
|
-
/* @__PURE__ */ (0,
|
|
1276
|
+
/* @__PURE__ */ (0, K.jsxs)(ie, { children: [/* @__PURE__ */ (0, K.jsx)(te, { children: c ? "Edit Preset" : "Create Props Preset" }), /* @__PURE__ */ (0, K.jsxs)(F, { children: [
|
|
1292
1277
|
"Configure props for ",
|
|
1293
1278
|
i.name || i.uri,
|
|
1294
1279
|
". You can manually add key-value pairs or generate them with AI."
|
|
1295
1280
|
] })] }),
|
|
1296
|
-
/* @__PURE__ */ (0,
|
|
1281
|
+
/* @__PURE__ */ (0, K.jsxs)(re, {
|
|
1297
1282
|
className: "space-y-4 py-4",
|
|
1298
1283
|
children: [
|
|
1299
|
-
/* @__PURE__ */ (0,
|
|
1284
|
+
/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1300
1285
|
className: "space-y-2",
|
|
1301
|
-
children: [/* @__PURE__ */ (0,
|
|
1286
|
+
children: [/* @__PURE__ */ (0, K.jsx)(w, {
|
|
1302
1287
|
htmlFor: "preset-name",
|
|
1303
1288
|
children: "Preset Name"
|
|
1304
|
-
}), /* @__PURE__ */ (0,
|
|
1289
|
+
}), /* @__PURE__ */ (0, K.jsx)(s, {
|
|
1305
1290
|
id: "preset-name",
|
|
1306
1291
|
"data-testid": "props-config-preset-name",
|
|
1307
1292
|
value: f,
|
|
1308
1293
|
onChange: (e) => p(e.target.value),
|
|
1309
1294
|
placeholder: "e.g., Dark Theme, Production Config",
|
|
1310
|
-
disabled:
|
|
1295
|
+
disabled: v
|
|
1311
1296
|
})]
|
|
1312
1297
|
}),
|
|
1313
|
-
/* @__PURE__ */ (0,
|
|
1298
|
+
/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1314
1299
|
className: "space-y-2 p-3 bg-muted rounded-lg",
|
|
1315
1300
|
children: [
|
|
1316
|
-
/* @__PURE__ */ (0,
|
|
1301
|
+
/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1317
1302
|
className: "flex items-center justify-between",
|
|
1318
|
-
children: [/* @__PURE__ */ (0,
|
|
1303
|
+
children: [/* @__PURE__ */ (0, K.jsx)(w, {
|
|
1319
1304
|
className: "text-sm font-medium",
|
|
1320
1305
|
children: "Generate with AI"
|
|
1321
|
-
}),
|
|
1306
|
+
}), C && /* @__PURE__ */ (0, K.jsxs)("span", {
|
|
1322
1307
|
className: "text-xs text-muted-foreground",
|
|
1323
1308
|
children: [
|
|
1324
1309
|
"Using ",
|
|
@@ -1329,65 +1314,65 @@ function Ze({ open: e, onOpenChange: t, onSave: n, existingPresets: r, resource:
|
|
|
1329
1314
|
]
|
|
1330
1315
|
})]
|
|
1331
1316
|
}),
|
|
1332
|
-
|
|
1317
|
+
C ? /* @__PURE__ */ (0, K.jsx)(d, {
|
|
1333
1318
|
onClick: async () => {
|
|
1334
|
-
if (!
|
|
1335
|
-
|
|
1319
|
+
if (!C) {
|
|
1320
|
+
z.error("LLM not configured", { description: "Please configure LLM in the Chat tab first." });
|
|
1336
1321
|
return;
|
|
1337
1322
|
}
|
|
1338
|
-
|
|
1323
|
+
y(!0), x(null);
|
|
1339
1324
|
try {
|
|
1340
|
-
let e = await
|
|
1325
|
+
let e = await S({
|
|
1341
1326
|
resource: i,
|
|
1342
1327
|
resourceAnnotations: a,
|
|
1343
|
-
propsSchema:
|
|
1328
|
+
propsSchema: u ? l : void 0
|
|
1344
1329
|
});
|
|
1345
|
-
if (
|
|
1330
|
+
if (u) {
|
|
1346
1331
|
let t = {};
|
|
1347
|
-
for (let n of e)
|
|
1332
|
+
for (let n of e) l.properties?.[n.key] && (t[n.key] = n.value);
|
|
1348
1333
|
h(t);
|
|
1349
1334
|
} else _(e.map((e) => ({
|
|
1350
1335
|
id: crypto.randomUUID(),
|
|
1351
1336
|
key: e.key,
|
|
1352
1337
|
value: e.value
|
|
1353
1338
|
})));
|
|
1354
|
-
|
|
1339
|
+
z.success("Props generated successfully", { description: `Generated ${e.length} prop(s) using ${o?.provider}` });
|
|
1355
1340
|
} catch (e) {
|
|
1356
1341
|
let t = e instanceof Error ? e.message : "Failed to generate props";
|
|
1357
|
-
|
|
1342
|
+
x(t), z.error("LLM Generation Failed", { description: t });
|
|
1358
1343
|
} finally {
|
|
1359
|
-
|
|
1344
|
+
y(!1);
|
|
1360
1345
|
}
|
|
1361
1346
|
},
|
|
1362
|
-
disabled:
|
|
1347
|
+
disabled: v,
|
|
1363
1348
|
size: "sm",
|
|
1364
1349
|
variant: "outline",
|
|
1365
1350
|
className: "w-full",
|
|
1366
1351
|
"data-testid": "props-config-generate-llm-button",
|
|
1367
|
-
children:
|
|
1352
|
+
children: v ? /* @__PURE__ */ (0, K.jsxs)("span", {
|
|
1368
1353
|
"data-testid": "props-config-generating",
|
|
1369
1354
|
className: "flex items-center gap-2",
|
|
1370
|
-
children: [/* @__PURE__ */ (0,
|
|
1371
|
-
}) : /* @__PURE__ */ (0,
|
|
1372
|
-
}) : /* @__PURE__ */ (0,
|
|
1355
|
+
children: [/* @__PURE__ */ (0, K.jsx)(ue, { className: "h-4 w-4 mr-2 animate-spin" }), "Generating..."]
|
|
1356
|
+
}) : /* @__PURE__ */ (0, K.jsxs)(K.Fragment, { children: [/* @__PURE__ */ (0, K.jsx)(fe, { className: "h-4 w-4 mr-2" }), "Generate Props with LLM"] })
|
|
1357
|
+
}) : /* @__PURE__ */ (0, K.jsx)("p", {
|
|
1373
1358
|
className: "text-xs text-muted-foreground",
|
|
1374
1359
|
children: "LLM not configured. Please configure LLM in the Chat tab to use this feature."
|
|
1375
1360
|
}),
|
|
1376
|
-
|
|
1361
|
+
b && /* @__PURE__ */ (0, K.jsx)("p", {
|
|
1377
1362
|
className: "text-xs text-destructive",
|
|
1378
1363
|
"data-testid": "props-config-error",
|
|
1379
|
-
children:
|
|
1364
|
+
children: b
|
|
1380
1365
|
})
|
|
1381
1366
|
]
|
|
1382
1367
|
}),
|
|
1383
|
-
/* @__PURE__ */ (0,
|
|
1368
|
+
/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1384
1369
|
className: "space-y-3",
|
|
1385
|
-
children: [/* @__PURE__ */ (0,
|
|
1370
|
+
children: [/* @__PURE__ */ (0, K.jsx)(w, {
|
|
1386
1371
|
className: "text-sm font-medium",
|
|
1387
1372
|
children: "Props"
|
|
1388
|
-
}),
|
|
1373
|
+
}), u ? /* @__PURE__ */ (0, K.jsx)("div", {
|
|
1389
1374
|
className: "space-y-4",
|
|
1390
|
-
children: Object.entries(
|
|
1375
|
+
children: Object.entries(l.properties || {}).map(([e, t]) => /* @__PURE__ */ (0, K.jsx)(X, {
|
|
1391
1376
|
name: e,
|
|
1392
1377
|
schema: t,
|
|
1393
1378
|
value: m[e] || "",
|
|
@@ -1395,86 +1380,86 @@ function Ze({ open: e, onOpenChange: t, onSave: n, existingPresets: r, resource:
|
|
|
1395
1380
|
...n,
|
|
1396
1381
|
[e]: t
|
|
1397
1382
|
})),
|
|
1398
|
-
required:
|
|
1399
|
-
disabled:
|
|
1400
|
-
rootSchema:
|
|
1383
|
+
required: l.required?.includes(e),
|
|
1384
|
+
disabled: v,
|
|
1385
|
+
rootSchema: l
|
|
1401
1386
|
}, e))
|
|
1402
|
-
}) : /* @__PURE__ */ (0,
|
|
1387
|
+
}) : /* @__PURE__ */ (0, K.jsxs)(K.Fragment, { children: [/* @__PURE__ */ (0, K.jsx)("div", {
|
|
1403
1388
|
className: "flex items-center justify-between",
|
|
1404
|
-
children: /* @__PURE__ */ (0,
|
|
1389
|
+
children: /* @__PURE__ */ (0, K.jsxs)(d, {
|
|
1405
1390
|
onClick: T,
|
|
1406
1391
|
size: "sm",
|
|
1407
1392
|
variant: "ghost",
|
|
1408
|
-
disabled:
|
|
1393
|
+
disabled: v,
|
|
1409
1394
|
"data-testid": "props-config-add-prop",
|
|
1410
|
-
children: [/* @__PURE__ */ (0,
|
|
1395
|
+
children: [/* @__PURE__ */ (0, K.jsx)(I, { className: "h-4 w-4 mr-1" }), "Add Prop"]
|
|
1411
1396
|
})
|
|
1412
|
-
}), g.map((e, t) => /* @__PURE__ */ (0,
|
|
1397
|
+
}), g.map((e, t) => /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1413
1398
|
className: "flex items-center gap-2",
|
|
1414
|
-
children: [/* @__PURE__ */ (0,
|
|
1399
|
+
children: [/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1415
1400
|
className: "flex-1 grid grid-cols-2 gap-2",
|
|
1416
|
-
children: [/* @__PURE__ */ (0,
|
|
1401
|
+
children: [/* @__PURE__ */ (0, K.jsx)(s, {
|
|
1417
1402
|
placeholder: "Key",
|
|
1418
1403
|
value: e.key,
|
|
1419
1404
|
onChange: (t) => D(e.id, "key", t.target.value),
|
|
1420
|
-
disabled:
|
|
1405
|
+
disabled: v,
|
|
1421
1406
|
"data-testid": `props-config-key-${t}`
|
|
1422
|
-
}), /* @__PURE__ */ (0,
|
|
1407
|
+
}), /* @__PURE__ */ (0, K.jsx)(s, {
|
|
1423
1408
|
placeholder: "Value",
|
|
1424
1409
|
value: e.value,
|
|
1425
1410
|
onChange: (t) => D(e.id, "value", t.target.value),
|
|
1426
|
-
disabled:
|
|
1411
|
+
disabled: v,
|
|
1427
1412
|
"data-testid": `props-config-value-${t}`
|
|
1428
1413
|
})]
|
|
1429
|
-
}), /* @__PURE__ */ (0,
|
|
1414
|
+
}), /* @__PURE__ */ (0, K.jsx)(d, {
|
|
1430
1415
|
variant: "ghost",
|
|
1431
1416
|
size: "sm",
|
|
1432
1417
|
onClick: () => E(e.id),
|
|
1433
|
-
disabled: g.length === 1 ||
|
|
1418
|
+
disabled: g.length === 1 || v,
|
|
1434
1419
|
className: "h-9 w-9 p-0",
|
|
1435
1420
|
"data-testid": `props-config-remove-${t}`,
|
|
1436
|
-
children: /* @__PURE__ */ (0,
|
|
1421
|
+
children: /* @__PURE__ */ (0, K.jsx)(pe, { className: "h-4 w-4 text-muted-foreground" })
|
|
1437
1422
|
})]
|
|
1438
1423
|
}, e.id))] })]
|
|
1439
1424
|
})
|
|
1440
1425
|
]
|
|
1441
1426
|
}),
|
|
1442
|
-
/* @__PURE__ */ (0,
|
|
1427
|
+
/* @__PURE__ */ (0, K.jsxs)(N, { children: [/* @__PURE__ */ (0, K.jsx)(d, {
|
|
1443
1428
|
variant: "outline",
|
|
1444
1429
|
onClick: () => t(!1),
|
|
1445
|
-
disabled:
|
|
1430
|
+
disabled: v,
|
|
1446
1431
|
"data-testid": "props-config-cancel-button",
|
|
1447
1432
|
children: "Cancel"
|
|
1448
|
-
}), /* @__PURE__ */ (0,
|
|
1433
|
+
}), /* @__PURE__ */ (0, K.jsxs)(d, {
|
|
1449
1434
|
onClick: () => {
|
|
1450
1435
|
if (!f.trim()) {
|
|
1451
|
-
|
|
1436
|
+
z.error("Preset name required", { description: "Please enter a name for this preset." });
|
|
1452
1437
|
return;
|
|
1453
1438
|
}
|
|
1454
|
-
if (r.find((e) => e.name.toLowerCase() === f.toLowerCase() && e.id !==
|
|
1455
|
-
|
|
1439
|
+
if (r.find((e) => e.name.toLowerCase() === f.toLowerCase() && e.id !== c?.id)) {
|
|
1440
|
+
z.error("Duplicate preset name", { description: "A preset with this name already exists." });
|
|
1456
1441
|
return;
|
|
1457
1442
|
}
|
|
1458
1443
|
let e;
|
|
1459
|
-
if (
|
|
1444
|
+
if (u) e = { ...m };
|
|
1460
1445
|
else {
|
|
1461
1446
|
e = {};
|
|
1462
1447
|
for (let t of g) t.key.trim() && (e[t.key.trim()] = t.value);
|
|
1463
1448
|
}
|
|
1464
1449
|
if (Object.keys(e).length === 0) {
|
|
1465
|
-
|
|
1450
|
+
z.error("No props defined", { description: "Please add at least one prop with a key." });
|
|
1466
1451
|
return;
|
|
1467
1452
|
}
|
|
1468
1453
|
let i = {
|
|
1469
|
-
id:
|
|
1454
|
+
id: c?.id || crypto.randomUUID(),
|
|
1470
1455
|
name: f.trim(),
|
|
1471
1456
|
props: e
|
|
1472
1457
|
};
|
|
1473
|
-
n(i), t(!1),
|
|
1458
|
+
n(i), t(!1), z.success(c ? "Preset updated" : "Preset created", { description: `Preset "${i.name}" saved successfully.` });
|
|
1474
1459
|
},
|
|
1475
|
-
disabled:
|
|
1460
|
+
disabled: v,
|
|
1476
1461
|
"data-testid": "props-config-save-button",
|
|
1477
|
-
children: [
|
|
1462
|
+
children: [c ? "Update" : "Create", " Preset"]
|
|
1478
1463
|
})] })
|
|
1479
1464
|
]
|
|
1480
1465
|
})
|
|
@@ -1482,7 +1467,7 @@ function Ze({ open: e, onOpenChange: t, onSave: n, existingPresets: r, resource:
|
|
|
1482
1467
|
}
|
|
1483
1468
|
//#endregion
|
|
1484
1469
|
//#region src/client/components/ui-playground/shared/SafeAreaInsetsEditor.tsx
|
|
1485
|
-
function
|
|
1470
|
+
function Ze({ value: e, onChange: t }) {
|
|
1486
1471
|
let n = (n, r) => {
|
|
1487
1472
|
let i = parseInt(r, 10);
|
|
1488
1473
|
isNaN(i) || t({
|
|
@@ -1490,15 +1475,15 @@ function Qe({ value: e, onChange: t }) {
|
|
|
1490
1475
|
[n]: i
|
|
1491
1476
|
});
|
|
1492
1477
|
};
|
|
1493
|
-
return /* @__PURE__ */ (0,
|
|
1478
|
+
return /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1494
1479
|
className: "grid grid-cols-2 gap-2",
|
|
1495
1480
|
children: [
|
|
1496
|
-
/* @__PURE__ */ (0,
|
|
1481
|
+
/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1497
1482
|
className: "space-y-1",
|
|
1498
|
-
children: [/* @__PURE__ */ (0,
|
|
1483
|
+
children: [/* @__PURE__ */ (0, K.jsx)("label", {
|
|
1499
1484
|
className: "text-xs text-muted-foreground",
|
|
1500
1485
|
children: "Top"
|
|
1501
|
-
}), /* @__PURE__ */ (0,
|
|
1486
|
+
}), /* @__PURE__ */ (0, K.jsx)(s, {
|
|
1502
1487
|
type: "number",
|
|
1503
1488
|
min: "0",
|
|
1504
1489
|
value: e.top,
|
|
@@ -1507,12 +1492,12 @@ function Qe({ value: e, onChange: t }) {
|
|
|
1507
1492
|
"data-testid": "debugger-safe-area-top"
|
|
1508
1493
|
})]
|
|
1509
1494
|
}),
|
|
1510
|
-
/* @__PURE__ */ (0,
|
|
1495
|
+
/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1511
1496
|
className: "space-y-1",
|
|
1512
|
-
children: [/* @__PURE__ */ (0,
|
|
1497
|
+
children: [/* @__PURE__ */ (0, K.jsx)("label", {
|
|
1513
1498
|
className: "text-xs text-muted-foreground",
|
|
1514
1499
|
children: "Right"
|
|
1515
|
-
}), /* @__PURE__ */ (0,
|
|
1500
|
+
}), /* @__PURE__ */ (0, K.jsx)(s, {
|
|
1516
1501
|
type: "number",
|
|
1517
1502
|
min: "0",
|
|
1518
1503
|
value: e.right,
|
|
@@ -1521,12 +1506,12 @@ function Qe({ value: e, onChange: t }) {
|
|
|
1521
1506
|
"data-testid": "debugger-safe-area-right"
|
|
1522
1507
|
})]
|
|
1523
1508
|
}),
|
|
1524
|
-
/* @__PURE__ */ (0,
|
|
1509
|
+
/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1525
1510
|
className: "space-y-1",
|
|
1526
|
-
children: [/* @__PURE__ */ (0,
|
|
1511
|
+
children: [/* @__PURE__ */ (0, K.jsx)("label", {
|
|
1527
1512
|
className: "text-xs text-muted-foreground",
|
|
1528
1513
|
children: "Bottom"
|
|
1529
|
-
}), /* @__PURE__ */ (0,
|
|
1514
|
+
}), /* @__PURE__ */ (0, K.jsx)(s, {
|
|
1530
1515
|
type: "number",
|
|
1531
1516
|
min: "0",
|
|
1532
1517
|
value: e.bottom,
|
|
@@ -1535,12 +1520,12 @@ function Qe({ value: e, onChange: t }) {
|
|
|
1535
1520
|
"data-testid": "debugger-safe-area-bottom"
|
|
1536
1521
|
})]
|
|
1537
1522
|
}),
|
|
1538
|
-
/* @__PURE__ */ (0,
|
|
1523
|
+
/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1539
1524
|
className: "space-y-1",
|
|
1540
|
-
children: [/* @__PURE__ */ (0,
|
|
1525
|
+
children: [/* @__PURE__ */ (0, K.jsx)("label", {
|
|
1541
1526
|
className: "text-xs text-muted-foreground",
|
|
1542
1527
|
children: "Left"
|
|
1543
|
-
}), /* @__PURE__ */ (0,
|
|
1528
|
+
}), /* @__PURE__ */ (0, K.jsx)(s, {
|
|
1544
1529
|
type: "number",
|
|
1545
1530
|
min: "0",
|
|
1546
1531
|
value: e.left,
|
|
@@ -1554,7 +1539,7 @@ function Qe({ value: e, onChange: t }) {
|
|
|
1554
1539
|
}
|
|
1555
1540
|
//#endregion
|
|
1556
1541
|
//#region src/client/mcp-apps/debug/csp-suggestions.ts
|
|
1557
|
-
function
|
|
1542
|
+
function Qe(e, t) {
|
|
1558
1543
|
let n = new Set(t?.connectDomains ?? []), r = new Set(t?.resourceDomains ?? []), i = new Set(t?.frameDomains ?? []), a = new Set([
|
|
1559
1544
|
"script-src",
|
|
1560
1545
|
"style-src",
|
|
@@ -1581,14 +1566,14 @@ function $e(e, t) {
|
|
|
1581
1566
|
};
|
|
1582
1567
|
return i.size > 0 && (o.frameDomains = Array.from(i).sort()), o;
|
|
1583
1568
|
}
|
|
1584
|
-
var Z = "https://raw.githubusercontent.com/modelcontextprotocol/ext-apps/bcfffb6585ea4fb1e3a9da39fb8911b83399fa71/specification/2026-01-26/apps.mdx",
|
|
1585
|
-
function
|
|
1569
|
+
var Z = "https://raw.githubusercontent.com/modelcontextprotocol/ext-apps/bcfffb6585ea4fb1e3a9da39fb8911b83399fa71/specification/2026-01-26/apps.mdx", $e = "https://mcp-use.com/docs/typescript/server/csp";
|
|
1570
|
+
function et(e, t, n, r) {
|
|
1586
1571
|
let i = [
|
|
1587
1572
|
"Fix the Content Security Policy (CSP) for this MCP Apps widget. The widget has CSP violations that block network requests and resources.",
|
|
1588
1573
|
"",
|
|
1589
1574
|
"**References:**",
|
|
1590
1575
|
`- MCP Apps CSP spec: ${Z}`,
|
|
1591
|
-
`- mcp-use CSP docs: ${
|
|
1576
|
+
`- mcp-use CSP docs: ${$e}`,
|
|
1592
1577
|
""
|
|
1593
1578
|
];
|
|
1594
1579
|
if (i.push("**Current declared CSP:**"), e ? (i.push(`connectDomains: ${JSON.stringify(e.connectDomains ?? [])}`), i.push(`resourceDomains: ${JSON.stringify(e.resourceDomains ?? [])}`), i.push(`frameDomains: ${JSON.stringify(e.frameDomains ?? [])}`), i.push(`baseUriDomains: ${JSON.stringify(e.baseUriDomains ?? [])}`)) : i.push("No CSP declared."), i.push(""), t && (i.push("**Effective policy (originalPolicy):**"), i.push("```"), i.push(t), i.push("```"), i.push("")), n.length > 0) {
|
|
@@ -1607,278 +1592,264 @@ function tt(e, t, n, r) {
|
|
|
1607
1592
|
}
|
|
1608
1593
|
//#endregion
|
|
1609
1594
|
//#region src/client/components/MCPAppsDebugControls.tsx
|
|
1610
|
-
var Q = "__no_props__", $ = "__tool_props__",
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
{
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
icon: Pe
|
|
1625
|
-
}
|
|
1626
|
-
];
|
|
1627
|
-
function it({ options: e, value: t, onValueChange: n, placeholder: r, contentTestId: i, searchTestId: a, optionTestId: o, trigger: s }) {
|
|
1628
|
-
let [c, l] = (0, V.useState)(!1), [f, h] = (0, V.useState)(""), g = (0, V.useRef)(null);
|
|
1629
|
-
(0, V.useEffect)(() => {
|
|
1630
|
-
if (!c) {
|
|
1631
|
-
h("");
|
|
1595
|
+
var Q = "__no_props__", $ = "__tool_props__", tt = "__create_preset__", nt = [{
|
|
1596
|
+
value: "desktop",
|
|
1597
|
+
label: "Desktop",
|
|
1598
|
+
icon: j
|
|
1599
|
+
}, {
|
|
1600
|
+
value: "mobile",
|
|
1601
|
+
label: "Mobile",
|
|
1602
|
+
icon: Ae
|
|
1603
|
+
}];
|
|
1604
|
+
function rt({ options: e, value: t, onValueChange: n, placeholder: r, contentTestId: i, searchTestId: a, optionTestId: o, trigger: c }) {
|
|
1605
|
+
let [l, u] = (0, U.useState)(!1), [d, f] = (0, U.useState)(""), p = (0, U.useRef)(null);
|
|
1606
|
+
(0, U.useEffect)(() => {
|
|
1607
|
+
if (!l) {
|
|
1608
|
+
f("");
|
|
1632
1609
|
return;
|
|
1633
1610
|
}
|
|
1634
|
-
let e = requestAnimationFrame(() =>
|
|
1611
|
+
let e = requestAnimationFrame(() => p.current?.focus());
|
|
1635
1612
|
return () => cancelAnimationFrame(e);
|
|
1636
|
-
}, [
|
|
1637
|
-
let
|
|
1638
|
-
let t =
|
|
1613
|
+
}, [l]);
|
|
1614
|
+
let m = (0, U.useMemo)(() => {
|
|
1615
|
+
let t = d.trim().toLowerCase();
|
|
1639
1616
|
return t ? e.filter((e) => e.label.toLowerCase().includes(t) || e.value.toLowerCase().includes(t)) : [...e];
|
|
1640
|
-
}, [e,
|
|
1641
|
-
return /* @__PURE__ */ (0,
|
|
1642
|
-
open:
|
|
1643
|
-
onOpenChange:
|
|
1644
|
-
children: [
|
|
1617
|
+
}, [e, d]), g = m.findIndex((e) => e.value === t);
|
|
1618
|
+
return /* @__PURE__ */ (0, K.jsxs)(S, {
|
|
1619
|
+
open: l,
|
|
1620
|
+
onOpenChange: u,
|
|
1621
|
+
children: [c, /* @__PURE__ */ (0, K.jsxs)(h, {
|
|
1645
1622
|
"data-testid": i,
|
|
1646
|
-
checkedIndex:
|
|
1623
|
+
checkedIndex: g >= 0 ? g : void 0,
|
|
1647
1624
|
className: "w-80 overflow-hidden",
|
|
1648
|
-
children: [/* @__PURE__ */ (0,
|
|
1625
|
+
children: [/* @__PURE__ */ (0, K.jsx)("div", {
|
|
1649
1626
|
className: "border-b border-border p-2",
|
|
1650
1627
|
onKeyDown: (e) => e.stopPropagation(),
|
|
1651
|
-
children: /* @__PURE__ */ (0,
|
|
1652
|
-
ref:
|
|
1653
|
-
value:
|
|
1654
|
-
onChange: (e) =>
|
|
1628
|
+
children: /* @__PURE__ */ (0, K.jsx)(s, {
|
|
1629
|
+
ref: p,
|
|
1630
|
+
value: d,
|
|
1631
|
+
onChange: (e) => f(e.target.value),
|
|
1655
1632
|
placeholder: r,
|
|
1656
1633
|
"data-testid": a,
|
|
1657
1634
|
className: "h-8"
|
|
1658
1635
|
})
|
|
1659
|
-
}), /* @__PURE__ */ (0,
|
|
1636
|
+
}), /* @__PURE__ */ (0, K.jsx)("div", {
|
|
1660
1637
|
className: "max-h-64 overflow-y-auto",
|
|
1661
|
-
children:
|
|
1638
|
+
children: m.length === 0 ? /* @__PURE__ */ (0, K.jsx)("p", {
|
|
1662
1639
|
className: "px-3 py-4 text-xs text-muted-foreground",
|
|
1663
1640
|
children: "No results found."
|
|
1664
|
-
}) :
|
|
1641
|
+
}) : m.map((e, r) => /* @__PURE__ */ (0, K.jsx)(C, {
|
|
1665
1642
|
index: r,
|
|
1666
1643
|
label: e.label,
|
|
1667
1644
|
checked: t === e.value,
|
|
1668
1645
|
"data-testid": o(e.value),
|
|
1669
1646
|
onSelect: () => {
|
|
1670
|
-
n(e.value),
|
|
1647
|
+
n(e.value), u(!1);
|
|
1671
1648
|
}
|
|
1672
1649
|
}, e.value))
|
|
1673
1650
|
})]
|
|
1674
1651
|
})]
|
|
1675
1652
|
});
|
|
1676
1653
|
}
|
|
1677
|
-
function
|
|
1678
|
-
let { resolvedTheme:
|
|
1679
|
-
(0,
|
|
1680
|
-
|
|
1681
|
-
}, [
|
|
1682
|
-
let [
|
|
1683
|
-
mode:
|
|
1654
|
+
function it({ displayMode: e, onDisplayModeChange: t, toolCallId: n, propsContext: s, resourceUri: c, toolInput: l, resourceAnnotations: u, llmConfig: p, resource: g, onPropsChange: v, requiredProps: y }) {
|
|
1655
|
+
let { resolvedTheme: x, setTheme: w } = _e(), { playground: T, updatePlaygroundSettings: E, widgets: D, clearCspViolations: O } = ge(), k = D.get(n), N = k?.cspViolations ?? [], F = k?.declaredCsp, I = k?.effectivePolicy, ue = N.length > 0 ? Qe(N, F) : null, fe = N.length > 0 ? et(F, I, N, ue) : "", me = e === "fullscreen", he = e === "pip", { presets: B, activePresetId: V, savePreset: xe, deletePreset: we, setActivePreset: H, getActiveProps: Me } = Ie(c), [Pe, W] = (0, U.useState)(!1), G = !!y?.length && !V, [Le, Re] = (0, U.useState)(() => G);
|
|
1656
|
+
(0, U.useEffect)(() => {
|
|
1657
|
+
G && Re(!0);
|
|
1658
|
+
}, [G]);
|
|
1659
|
+
let [q, J] = (0, U.useState)(null), [ze, Be] = (0, U.useState)(!1), [Y, Ve] = (0, U.useState)("mode"), [He, Ue] = (0, U.useState)(!0), Ge = (0, U.useMemo)(() => ve(F), [F]), Ke = (0, U.useMemo)(() => ye(I), [I]), qe = (0, U.useMemo)(() => Se(Ge, Ke), [Ge, Ke]), Je = (0, U.useMemo)(() => be({
|
|
1660
|
+
mode: T.cspMode,
|
|
1684
1661
|
declared: F,
|
|
1685
|
-
effectivePolicy:
|
|
1686
|
-
violations:
|
|
1662
|
+
effectivePolicy: I,
|
|
1663
|
+
violations: N
|
|
1687
1664
|
}), [
|
|
1688
|
-
|
|
1665
|
+
T.cspMode,
|
|
1689
1666
|
F,
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
]),
|
|
1693
|
-
(0,
|
|
1694
|
-
|
|
1667
|
+
I,
|
|
1668
|
+
N
|
|
1669
|
+
]), Ye = (0, U.useCallback)(() => s === "tool" && l ? $ : Q, [s, l]), [X, Z] = (0, U.useState)(Ye());
|
|
1670
|
+
(0, U.useEffect)(() => {
|
|
1671
|
+
V && s !== "tool" ? Z(V) : X !== Q && X !== $ && Z(Ye());
|
|
1695
1672
|
}, [
|
|
1696
|
-
|
|
1673
|
+
V,
|
|
1697
1674
|
X,
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
]), (0,
|
|
1701
|
-
if (
|
|
1702
|
-
if (X === Q || X === $)
|
|
1703
|
-
else if (
|
|
1704
|
-
let e =
|
|
1705
|
-
e &&
|
|
1675
|
+
Ye,
|
|
1676
|
+
s
|
|
1677
|
+
]), (0, U.useEffect)(() => {
|
|
1678
|
+
if (v) {
|
|
1679
|
+
if (X === Q || X === $) v(null);
|
|
1680
|
+
else if (V && X === V) {
|
|
1681
|
+
let e = Me();
|
|
1682
|
+
e && v(e);
|
|
1706
1683
|
}
|
|
1707
1684
|
}
|
|
1708
1685
|
}, [
|
|
1709
1686
|
X,
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1687
|
+
V,
|
|
1688
|
+
l,
|
|
1689
|
+
Me,
|
|
1690
|
+
v,
|
|
1691
|
+
B
|
|
1715
1692
|
]);
|
|
1716
|
-
let
|
|
1717
|
-
if (e ===
|
|
1718
|
-
|
|
1693
|
+
let $e = (e) => {
|
|
1694
|
+
if (e === tt) {
|
|
1695
|
+
J(null), W(!0);
|
|
1719
1696
|
return;
|
|
1720
1697
|
}
|
|
1721
|
-
if (e === Q || e === $)
|
|
1698
|
+
if (e === Q || e === $) H(null), Z(e), v?.(null);
|
|
1722
1699
|
else {
|
|
1723
|
-
|
|
1724
|
-
let t =
|
|
1725
|
-
|
|
1700
|
+
H(e), Z(e);
|
|
1701
|
+
let t = B.find((t) => t.id === e);
|
|
1702
|
+
v?.(t?.props ?? null);
|
|
1726
1703
|
}
|
|
1727
|
-
},
|
|
1728
|
-
|
|
1729
|
-
},
|
|
1704
|
+
}, it = (e) => {
|
|
1705
|
+
xe(e), H(e.id), Z(e.id), v?.(e.props);
|
|
1706
|
+
}, at = (e, t) => {
|
|
1730
1707
|
t.stopPropagation();
|
|
1731
|
-
let n =
|
|
1732
|
-
n && (
|
|
1733
|
-
},
|
|
1734
|
-
t.stopPropagation(),
|
|
1735
|
-
}, ct = () =>
|
|
1736
|
-
|
|
1737
|
-
case "mobile": return /* @__PURE__ */ (0, W.jsx)(Me, { className: "size-3" });
|
|
1738
|
-
case "tablet": return /* @__PURE__ */ (0, W.jsx)(Pe, { className: "size-3" });
|
|
1739
|
-
default: return /* @__PURE__ */ (0, W.jsx)(E, { className: "size-3" });
|
|
1740
|
-
}
|
|
1741
|
-
}, lt = rt.findIndex((e) => e.value === k.deviceType);
|
|
1742
|
-
return /* @__PURE__ */ (0, W.jsxs)("div", {
|
|
1708
|
+
let n = B.find((t) => t.id === e);
|
|
1709
|
+
n && (we(e), z.success("Preset deleted", { description: `Preset "${n.name}" has been deleted.` }));
|
|
1710
|
+
}, ot = (e, t) => {
|
|
1711
|
+
t.stopPropagation(), J(e), W(!0);
|
|
1712
|
+
}, st = () => T.deviceType === "mobile" ? /* @__PURE__ */ (0, K.jsx)(Ae, { className: "size-3" }) : /* @__PURE__ */ (0, K.jsx)(j, { className: "size-3" }), ct = nt.findIndex((e) => e.value === T.deviceType);
|
|
1713
|
+
return /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1743
1714
|
className: "flex items-center gap-2",
|
|
1744
1715
|
children: [
|
|
1745
|
-
!
|
|
1746
|
-
render: /* @__PURE__ */ (0,
|
|
1716
|
+
!me && !he && /* @__PURE__ */ (0, K.jsxs)(K.Fragment, { children: [/* @__PURE__ */ (0, K.jsxs)(a, { children: [/* @__PURE__ */ (0, K.jsx)(i, {
|
|
1717
|
+
render: /* @__PURE__ */ (0, K.jsx)(d, {
|
|
1747
1718
|
"data-testid": "debugger-fullscreen-button",
|
|
1748
1719
|
variant: "outline",
|
|
1749
1720
|
size: "sm",
|
|
1750
1721
|
className: "bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900",
|
|
1751
1722
|
onClick: () => t("fullscreen"),
|
|
1752
|
-
children: /* @__PURE__ */ (0,
|
|
1723
|
+
children: /* @__PURE__ */ (0, K.jsx)(de, { className: "size-4" })
|
|
1753
1724
|
}),
|
|
1754
1725
|
nativeButton: !0
|
|
1755
|
-
}), /* @__PURE__ */ (0,
|
|
1756
|
-
render: /* @__PURE__ */ (0,
|
|
1726
|
+
}), /* @__PURE__ */ (0, K.jsx)(o, { children: "Enter fullscreen mode" })] }), /* @__PURE__ */ (0, K.jsxs)(a, { children: [/* @__PURE__ */ (0, K.jsx)(i, {
|
|
1727
|
+
render: /* @__PURE__ */ (0, K.jsx)(d, {
|
|
1757
1728
|
"data-testid": "debugger-pip-button",
|
|
1758
1729
|
variant: "outline",
|
|
1759
1730
|
size: "sm",
|
|
1760
1731
|
className: "bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900",
|
|
1761
1732
|
onClick: () => t("pip"),
|
|
1762
|
-
children: /* @__PURE__ */ (0,
|
|
1733
|
+
children: /* @__PURE__ */ (0, K.jsx)(Ee, { className: "size-4" })
|
|
1763
1734
|
}),
|
|
1764
1735
|
nativeButton: !0
|
|
1765
|
-
}), /* @__PURE__ */ (0,
|
|
1766
|
-
/* @__PURE__ */ (0,
|
|
1767
|
-
render: /* @__PURE__ */ (0,
|
|
1768
|
-
render: /* @__PURE__ */ (0,
|
|
1736
|
+
}), /* @__PURE__ */ (0, K.jsx)(o, { children: "Picture-in-picture" })] })] }),
|
|
1737
|
+
/* @__PURE__ */ (0, K.jsxs)(S, { children: [/* @__PURE__ */ (0, K.jsxs)(a, { children: [/* @__PURE__ */ (0, K.jsx)(i, {
|
|
1738
|
+
render: /* @__PURE__ */ (0, K.jsx)(f, {
|
|
1739
|
+
render: /* @__PURE__ */ (0, K.jsx)(d, {
|
|
1769
1740
|
"data-testid": "debugger-device-button",
|
|
1770
1741
|
variant: "outline",
|
|
1771
1742
|
size: "sm",
|
|
1772
1743
|
className: "h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900",
|
|
1773
|
-
children:
|
|
1744
|
+
children: st()
|
|
1774
1745
|
}),
|
|
1775
1746
|
nativeButton: !0
|
|
1776
1747
|
}),
|
|
1777
1748
|
nativeButton: !0
|
|
1778
|
-
}), /* @__PURE__ */ (0,
|
|
1749
|
+
}), /* @__PURE__ */ (0, K.jsxs)(o, { children: ["Device: ", T.deviceType] })] }), /* @__PURE__ */ (0, K.jsx)(h, {
|
|
1779
1750
|
"data-testid": "debugger-device-dialog",
|
|
1780
|
-
checkedIndex:
|
|
1751
|
+
checkedIndex: ct >= 0 ? ct : void 0,
|
|
1781
1752
|
className: "w-56",
|
|
1782
|
-
children:
|
|
1753
|
+
children: nt.map((e, t) => /* @__PURE__ */ (0, K.jsx)(C, {
|
|
1783
1754
|
index: t,
|
|
1784
1755
|
icon: e.icon,
|
|
1785
1756
|
label: e.label,
|
|
1786
|
-
checked:
|
|
1757
|
+
checked: T.deviceType === e.value,
|
|
1787
1758
|
"data-testid": `debugger-device-option-${e.value}`,
|
|
1788
|
-
onSelect: () =>
|
|
1759
|
+
onSelect: () => E({ deviceType: e.value })
|
|
1789
1760
|
}, e.value))
|
|
1790
1761
|
})] }),
|
|
1791
|
-
/* @__PURE__ */ (0,
|
|
1792
|
-
render: /* @__PURE__ */ (0,
|
|
1762
|
+
/* @__PURE__ */ (0, K.jsxs)(a, { children: [/* @__PURE__ */ (0, K.jsx)(i, {
|
|
1763
|
+
render: /* @__PURE__ */ (0, K.jsx)(d, {
|
|
1793
1764
|
"data-testid": "debugger-theme-button",
|
|
1794
1765
|
variant: "outline",
|
|
1795
1766
|
size: "sm",
|
|
1796
1767
|
className: "h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900",
|
|
1797
1768
|
onClick: () => {
|
|
1798
|
-
w(
|
|
1769
|
+
w(x === "dark" ? "light" : "dark");
|
|
1799
1770
|
},
|
|
1800
|
-
children:
|
|
1771
|
+
children: x === "dark" ? /* @__PURE__ */ (0, K.jsx)(M, { className: "size-3.5" }) : /* @__PURE__ */ (0, K.jsx)(P, { className: "size-3.5" })
|
|
1801
1772
|
}),
|
|
1802
1773
|
nativeButton: !0
|
|
1803
|
-
}), /* @__PURE__ */ (0,
|
|
1804
|
-
/* @__PURE__ */ (0,
|
|
1805
|
-
options:
|
|
1806
|
-
value:
|
|
1807
|
-
onValueChange: (e) =>
|
|
1774
|
+
}), /* @__PURE__ */ (0, K.jsxs)(o, { children: ["Theme: ", x === "dark" ? "Dark" : "Light"] })] }),
|
|
1775
|
+
/* @__PURE__ */ (0, K.jsx)(rt, {
|
|
1776
|
+
options: Ne,
|
|
1777
|
+
value: T.locale,
|
|
1778
|
+
onValueChange: (e) => E({ locale: e }),
|
|
1808
1779
|
placeholder: "Search locales...",
|
|
1809
1780
|
contentTestId: "debugger-locale-dialog",
|
|
1810
1781
|
searchTestId: "debugger-locale-search",
|
|
1811
1782
|
optionTestId: (e) => `debugger-locale-option-${e}`,
|
|
1812
|
-
trigger: /* @__PURE__ */ (0,
|
|
1813
|
-
render: /* @__PURE__ */ (0,
|
|
1814
|
-
render: /* @__PURE__ */ (0,
|
|
1783
|
+
trigger: /* @__PURE__ */ (0, K.jsxs)(a, { children: [/* @__PURE__ */ (0, K.jsx)(i, {
|
|
1784
|
+
render: /* @__PURE__ */ (0, K.jsx)(f, {
|
|
1785
|
+
render: /* @__PURE__ */ (0, K.jsx)(d, {
|
|
1815
1786
|
"data-testid": "debugger-locale-button",
|
|
1816
1787
|
variant: "outline",
|
|
1817
1788
|
size: "sm",
|
|
1818
1789
|
className: "h-8 min-w-[50px] px-2 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900",
|
|
1819
|
-
children: /* @__PURE__ */ (0,
|
|
1790
|
+
children: /* @__PURE__ */ (0, K.jsx)("span", {
|
|
1820
1791
|
className: "text-xs font-mono",
|
|
1821
|
-
children:
|
|
1792
|
+
children: T.locale
|
|
1822
1793
|
})
|
|
1823
1794
|
}),
|
|
1824
1795
|
nativeButton: !0
|
|
1825
1796
|
}),
|
|
1826
1797
|
nativeButton: !0
|
|
1827
|
-
}), /* @__PURE__ */ (0,
|
|
1798
|
+
}), /* @__PURE__ */ (0, K.jsx)(o, { children: "Locale" })] })
|
|
1828
1799
|
}),
|
|
1829
|
-
/* @__PURE__ */ (0,
|
|
1830
|
-
options:
|
|
1831
|
-
value:
|
|
1832
|
-
onValueChange: (e) =>
|
|
1800
|
+
/* @__PURE__ */ (0, K.jsx)(rt, {
|
|
1801
|
+
options: Fe,
|
|
1802
|
+
value: T.timeZone,
|
|
1803
|
+
onValueChange: (e) => E({ timeZone: e }),
|
|
1833
1804
|
placeholder: "Search timezones...",
|
|
1834
1805
|
contentTestId: "debugger-timezone-dialog",
|
|
1835
1806
|
searchTestId: "debugger-timezone-search",
|
|
1836
1807
|
optionTestId: (e) => `debugger-timezone-option-${e.replace(/\//g, "-")}`,
|
|
1837
|
-
trigger: /* @__PURE__ */ (0,
|
|
1838
|
-
render: /* @__PURE__ */ (0,
|
|
1839
|
-
render: /* @__PURE__ */ (0,
|
|
1808
|
+
trigger: /* @__PURE__ */ (0, K.jsxs)(a, { children: [/* @__PURE__ */ (0, K.jsx)(i, {
|
|
1809
|
+
render: /* @__PURE__ */ (0, K.jsx)(f, {
|
|
1810
|
+
render: /* @__PURE__ */ (0, K.jsx)(d, {
|
|
1840
1811
|
"data-testid": "debugger-timezone-button",
|
|
1841
1812
|
variant: "outline",
|
|
1842
1813
|
size: "sm",
|
|
1843
1814
|
className: "h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900",
|
|
1844
|
-
children: /* @__PURE__ */ (0,
|
|
1815
|
+
children: /* @__PURE__ */ (0, K.jsx)(ce, { className: "size-3.5" })
|
|
1845
1816
|
}),
|
|
1846
1817
|
nativeButton: !0
|
|
1847
1818
|
}),
|
|
1848
1819
|
nativeButton: !0
|
|
1849
|
-
}), /* @__PURE__ */ (0,
|
|
1820
|
+
}), /* @__PURE__ */ (0, K.jsxs)(o, { children: ["Timezone: ", T.timeZone] })] })
|
|
1850
1821
|
}),
|
|
1851
|
-
/* @__PURE__ */ (0,
|
|
1852
|
-
open:
|
|
1853
|
-
onOpenChange:
|
|
1854
|
-
children: [/* @__PURE__ */ (0,
|
|
1855
|
-
render: /* @__PURE__ */ (0,
|
|
1856
|
-
render: /* @__PURE__ */ (0,
|
|
1822
|
+
/* @__PURE__ */ (0, K.jsxs)(se, {
|
|
1823
|
+
open: ze,
|
|
1824
|
+
onOpenChange: Be,
|
|
1825
|
+
children: [/* @__PURE__ */ (0, K.jsxs)(a, { children: [/* @__PURE__ */ (0, K.jsx)(i, {
|
|
1826
|
+
render: /* @__PURE__ */ (0, K.jsx)(ne, {
|
|
1827
|
+
render: /* @__PURE__ */ (0, K.jsxs)(d, {
|
|
1857
1828
|
"data-testid": "debugger-csp-button",
|
|
1858
1829
|
variant: "outline",
|
|
1859
1830
|
size: "sm",
|
|
1860
1831
|
className: "relative h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900",
|
|
1861
|
-
children: [
|
|
1862
|
-
className: `absolute -top-1.5 -right-1.5 flex h-4 min-w-4 items-center justify-center rounded-full px-0.5 text-[9px] font-bold text-white leading-none ${
|
|
1863
|
-
children:
|
|
1832
|
+
children: [T.cspMode === "permissive" ? /* @__PURE__ */ (0, K.jsx)(ke, { className: "size-3.5" }) : /* @__PURE__ */ (0, K.jsx)(Oe, { className: "size-3.5" }), N.length > 0 && /* @__PURE__ */ (0, K.jsx)("span", {
|
|
1833
|
+
className: `absolute -top-1.5 -right-1.5 flex h-4 min-w-4 items-center justify-center rounded-full px-0.5 text-[9px] font-bold text-white leading-none ${T.cspMode === "permissive" ? "bg-yellow-500" : "bg-red-500"}`,
|
|
1834
|
+
children: N.length > 99 ? "99+" : N.length
|
|
1864
1835
|
})]
|
|
1865
1836
|
}),
|
|
1866
1837
|
nativeButton: !0
|
|
1867
1838
|
}),
|
|
1868
1839
|
nativeButton: !0
|
|
1869
|
-
}), /* @__PURE__ */ (0,
|
|
1840
|
+
}), /* @__PURE__ */ (0, K.jsxs)(o, { children: [
|
|
1870
1841
|
"CSP:",
|
|
1871
1842
|
" ",
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
] })] }), /* @__PURE__ */ (0,
|
|
1843
|
+
T.cspMode === "permissive" ? "Permissive" : "Declared",
|
|
1844
|
+
N.length > 0 && ` · ${N.length} ${T.cspMode === "permissive" ? "would be blocked" : "blocked"}`
|
|
1845
|
+
] })] }), /* @__PURE__ */ (0, K.jsxs)(ae, {
|
|
1875
1846
|
scrollable: !0,
|
|
1876
1847
|
className: "sm:max-w-[520px] max-h-[85vh]",
|
|
1877
1848
|
"data-testid": "debugger-csp-dialog",
|
|
1878
|
-
children: [/* @__PURE__ */ (0,
|
|
1849
|
+
children: [/* @__PURE__ */ (0, K.jsx)(ie, { children: /* @__PURE__ */ (0, K.jsx)(te, { children: "CSP Mode" }) }), /* @__PURE__ */ (0, K.jsxs)(re, {
|
|
1879
1850
|
className: "space-y-3",
|
|
1880
1851
|
children: [
|
|
1881
|
-
/* @__PURE__ */ (0,
|
|
1852
|
+
/* @__PURE__ */ (0, K.jsx)("div", {
|
|
1882
1853
|
role: "tablist",
|
|
1883
1854
|
"aria-label": "CSP diagnostics",
|
|
1884
1855
|
className: "grid grid-cols-3 rounded-md border border-zinc-200 dark:border-zinc-700 p-1",
|
|
@@ -1886,129 +1857,129 @@ function at({ displayMode: e, onDisplayModeChange: t, toolCallId: n, propsContex
|
|
|
1886
1857
|
["mode", "Mode"],
|
|
1887
1858
|
["diff", "Policy Diff"],
|
|
1888
1859
|
["findings", "Findings"]
|
|
1889
|
-
].map(([e, t]) => /* @__PURE__ */ (0,
|
|
1860
|
+
].map(([e, t]) => /* @__PURE__ */ (0, K.jsx)("button", {
|
|
1890
1861
|
type: "button",
|
|
1891
1862
|
role: "tab",
|
|
1892
|
-
"aria-selected":
|
|
1893
|
-
onClick: () =>
|
|
1894
|
-
className: `rounded px-2 py-1.5 text-xs font-medium ${
|
|
1863
|
+
"aria-selected": Y === e,
|
|
1864
|
+
onClick: () => Ve(e),
|
|
1865
|
+
className: `rounded px-2 py-1.5 text-xs font-medium ${Y === e ? "bg-zinc-100 dark:bg-zinc-800" : "text-muted-foreground"}`,
|
|
1895
1866
|
children: t
|
|
1896
1867
|
}, e))
|
|
1897
1868
|
}),
|
|
1898
|
-
|
|
1869
|
+
Y === "mode" && /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1899
1870
|
role: "tabpanel",
|
|
1900
1871
|
className: "space-y-2",
|
|
1901
1872
|
children: [
|
|
1902
|
-
/* @__PURE__ */ (0,
|
|
1873
|
+
/* @__PURE__ */ (0, K.jsxs)(d, {
|
|
1903
1874
|
"data-testid": "debugger-csp-option-permissive",
|
|
1904
|
-
variant:
|
|
1875
|
+
variant: T.cspMode === "permissive" ? "default" : "outline",
|
|
1905
1876
|
className: "w-full justify-start",
|
|
1906
|
-
onClick: () =>
|
|
1907
|
-
children: [/* @__PURE__ */ (0,
|
|
1877
|
+
onClick: () => E({ cspMode: "permissive" }),
|
|
1878
|
+
children: [/* @__PURE__ */ (0, K.jsx)(ke, { className: "size-4 mr-2" }), "Permissive"]
|
|
1908
1879
|
}),
|
|
1909
|
-
/* @__PURE__ */ (0,
|
|
1880
|
+
/* @__PURE__ */ (0, K.jsxs)(d, {
|
|
1910
1881
|
"data-testid": "debugger-csp-option-widget-declared",
|
|
1911
|
-
variant:
|
|
1882
|
+
variant: T.cspMode === "widget-declared" ? "default" : "outline",
|
|
1912
1883
|
className: "w-full justify-start",
|
|
1913
|
-
onClick: () =>
|
|
1914
|
-
children: [/* @__PURE__ */ (0,
|
|
1884
|
+
onClick: () => E({ cspMode: "widget-declared" }),
|
|
1885
|
+
children: [/* @__PURE__ */ (0, K.jsx)(Oe, { className: "size-4 mr-2" }), "Widget-Declared"]
|
|
1915
1886
|
}),
|
|
1916
|
-
/* @__PURE__ */ (0,
|
|
1887
|
+
/* @__PURE__ */ (0, K.jsx)("p", {
|
|
1917
1888
|
className: "text-xs text-muted-foreground",
|
|
1918
1889
|
children: "Permissive records would-be blocks; Widget-Declared enforces the resource metadata policy."
|
|
1919
1890
|
})
|
|
1920
1891
|
]
|
|
1921
1892
|
}),
|
|
1922
|
-
|
|
1893
|
+
Y === "diff" && /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1923
1894
|
role: "tabpanel",
|
|
1924
1895
|
className: "space-y-2",
|
|
1925
|
-
children: [
|
|
1896
|
+
children: [qe.length ? /* @__PURE__ */ (0, K.jsx)("div", {
|
|
1926
1897
|
className: "max-h-64 overflow-y-auto rounded border border-zinc-200 dark:border-zinc-700",
|
|
1927
|
-
children:
|
|
1898
|
+
children: qe.map((e) => /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1928
1899
|
className: "border-b border-zinc-100 dark:border-zinc-800 p-2 text-xs last:border-0",
|
|
1929
|
-
children: [/* @__PURE__ */ (0,
|
|
1900
|
+
children: [/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1930
1901
|
className: "flex items-center justify-between",
|
|
1931
|
-
children: [/* @__PURE__ */ (0,
|
|
1902
|
+
children: [/* @__PURE__ */ (0, K.jsx)("code", { children: e.directive }), /* @__PURE__ */ (0, K.jsx)("span", {
|
|
1932
1903
|
className: "text-[10px] uppercase text-muted-foreground",
|
|
1933
1904
|
children: e.status
|
|
1934
1905
|
})]
|
|
1935
|
-
}), /* @__PURE__ */ (0,
|
|
1906
|
+
}), /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1936
1907
|
className: "mt-1 font-mono text-[10px] text-muted-foreground break-all",
|
|
1937
1908
|
children: [
|
|
1938
1909
|
"requested: ",
|
|
1939
1910
|
e.requested.join(" ") || "—",
|
|
1940
|
-
/* @__PURE__ */ (0,
|
|
1911
|
+
/* @__PURE__ */ (0, K.jsx)("br", {}),
|
|
1941
1912
|
"effective: ",
|
|
1942
1913
|
e.effective.join(" ") || "—"
|
|
1943
1914
|
]
|
|
1944
1915
|
})]
|
|
1945
1916
|
}, e.directive))
|
|
1946
|
-
}) : /* @__PURE__ */ (0,
|
|
1917
|
+
}) : /* @__PURE__ */ (0, K.jsx)("p", {
|
|
1947
1918
|
className: "text-xs text-muted-foreground",
|
|
1948
1919
|
children: "No requested or effective policy data yet."
|
|
1949
|
-
}),
|
|
1920
|
+
}), I && /* @__PURE__ */ (0, K.jsxs)(d, {
|
|
1950
1921
|
variant: "outline",
|
|
1951
1922
|
size: "sm",
|
|
1952
1923
|
onClick: async () => {
|
|
1953
1924
|
try {
|
|
1954
|
-
await
|
|
1925
|
+
await R(I), z.success("Policy copied to clipboard");
|
|
1955
1926
|
} catch {
|
|
1956
|
-
|
|
1927
|
+
z.error("Failed to copy");
|
|
1957
1928
|
}
|
|
1958
1929
|
},
|
|
1959
|
-
children: [/* @__PURE__ */ (0,
|
|
1930
|
+
children: [/* @__PURE__ */ (0, K.jsx)(L, { className: "size-3.5 mr-2" }), "Copy effective policy"]
|
|
1960
1931
|
})]
|
|
1961
1932
|
}),
|
|
1962
|
-
|
|
1933
|
+
Y === "findings" && /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1963
1934
|
role: "tabpanel",
|
|
1964
1935
|
className: "space-y-2",
|
|
1965
|
-
children: [/* @__PURE__ */ (0,
|
|
1936
|
+
children: [/* @__PURE__ */ (0, K.jsx)("div", {
|
|
1966
1937
|
className: "space-y-1.5",
|
|
1967
|
-
children:
|
|
1938
|
+
children: Je.map((e, t) => /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1968
1939
|
className: "rounded border border-zinc-200 dark:border-zinc-700 p-2",
|
|
1969
|
-
children: [/* @__PURE__ */ (0,
|
|
1940
|
+
children: [/* @__PURE__ */ (0, K.jsx)("div", {
|
|
1970
1941
|
className: "text-xs font-medium",
|
|
1971
1942
|
children: e.title
|
|
1972
|
-
}), /* @__PURE__ */ (0,
|
|
1943
|
+
}), /* @__PURE__ */ (0, K.jsx)("div", {
|
|
1973
1944
|
className: "text-[11px] text-muted-foreground break-all",
|
|
1974
1945
|
children: e.detail
|
|
1975
1946
|
})]
|
|
1976
1947
|
}, `${e.title}-${t}`))
|
|
1977
|
-
}),
|
|
1948
|
+
}), N.length > 0 && /* @__PURE__ */ (0, K.jsxs)(K.Fragment, { children: [/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1978
1949
|
className: "flex items-center justify-between",
|
|
1979
|
-
children: [/* @__PURE__ */ (0,
|
|
1950
|
+
children: [/* @__PURE__ */ (0, K.jsxs)("span", {
|
|
1980
1951
|
className: "text-xs font-medium",
|
|
1981
1952
|
children: [
|
|
1982
|
-
|
|
1953
|
+
N.length,
|
|
1983
1954
|
" observed request",
|
|
1984
|
-
|
|
1955
|
+
N.length === 1 ? "" : "s"
|
|
1985
1956
|
]
|
|
1986
|
-
}), /* @__PURE__ */ (0,
|
|
1957
|
+
}), /* @__PURE__ */ (0, K.jsx)("button", {
|
|
1987
1958
|
className: "text-xs text-muted-foreground underline",
|
|
1988
|
-
onClick: () =>
|
|
1959
|
+
onClick: () => O(n),
|
|
1989
1960
|
children: "Clear"
|
|
1990
1961
|
})]
|
|
1991
|
-
}), /* @__PURE__ */ (0,
|
|
1962
|
+
}), /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1992
1963
|
className: "border border-amber-200 dark:border-amber-800 rounded-md overflow-hidden",
|
|
1993
|
-
children: [/* @__PURE__ */ (0,
|
|
1964
|
+
children: [/* @__PURE__ */ (0, K.jsxs)("div", {
|
|
1994
1965
|
className: "flex items-center justify-between bg-amber-50 dark:bg-amber-950/30 px-3 py-2",
|
|
1995
|
-
children: [/* @__PURE__ */ (0,
|
|
1966
|
+
children: [/* @__PURE__ */ (0, K.jsxs)("button", {
|
|
1996
1967
|
type: "button",
|
|
1997
1968
|
className: "flex items-center gap-2 text-xs font-medium text-amber-800 dark:text-amber-200",
|
|
1998
|
-
onClick: () =>
|
|
1999
|
-
children: [
|
|
2000
|
-
}), /* @__PURE__ */ (0,
|
|
1969
|
+
onClick: () => Ue((e) => !e),
|
|
1970
|
+
children: [He ? /* @__PURE__ */ (0, K.jsx)(A, { className: "size-3.5" }) : /* @__PURE__ */ (0, K.jsx)(r, { className: "size-3.5" }), "Prompt for Agents"]
|
|
1971
|
+
}), /* @__PURE__ */ (0, K.jsx)(d, {
|
|
2001
1972
|
variant: "ghost",
|
|
2002
1973
|
size: "sm",
|
|
2003
1974
|
className: "h-7 w-7 p-0",
|
|
2004
|
-
onClick: () => void
|
|
1975
|
+
onClick: () => void R(fe),
|
|
2005
1976
|
"aria-label": "Copy prompt for agents",
|
|
2006
|
-
children: /* @__PURE__ */ (0,
|
|
1977
|
+
children: /* @__PURE__ */ (0, K.jsx)(L, { className: "size-3.5" })
|
|
2007
1978
|
})]
|
|
2008
|
-
}),
|
|
1979
|
+
}), He && /* @__PURE__ */ (0, K.jsx)("pre", {
|
|
2009
1980
|
className: "max-h-48 overflow-auto whitespace-pre-wrap p-2 text-[11px]",
|
|
2010
1981
|
"data-testid": "debugger-csp-prompt-for-agents",
|
|
2011
|
-
children:
|
|
1982
|
+
children: fe
|
|
2012
1983
|
})]
|
|
2013
1984
|
})] })]
|
|
2014
1985
|
})
|
|
@@ -2016,165 +1987,165 @@ function at({ displayMode: e, onDisplayModeChange: t, toolCallId: n, propsContex
|
|
|
2016
1987
|
})]
|
|
2017
1988
|
})]
|
|
2018
1989
|
}),
|
|
2019
|
-
/* @__PURE__ */ (0,
|
|
2020
|
-
render: /* @__PURE__ */ (0,
|
|
1990
|
+
/* @__PURE__ */ (0, K.jsxs)(a, { children: [/* @__PURE__ */ (0, K.jsx)(i, {
|
|
1991
|
+
render: /* @__PURE__ */ (0, K.jsx)(d, {
|
|
2021
1992
|
"data-testid": "debugger-touch-button",
|
|
2022
1993
|
variant: "outline",
|
|
2023
1994
|
size: "sm",
|
|
2024
|
-
className: `h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900 ${
|
|
1995
|
+
className: `h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900 ${T.capabilities.touch ? "border-blue-500 dark:border-blue-400" : ""}`,
|
|
2025
1996
|
onClick: () => {
|
|
2026
|
-
|
|
2027
|
-
...
|
|
2028
|
-
touch: !
|
|
1997
|
+
E({ capabilities: {
|
|
1998
|
+
...T.capabilities,
|
|
1999
|
+
touch: !T.capabilities.touch
|
|
2029
2000
|
} });
|
|
2030
2001
|
},
|
|
2031
|
-
children: /* @__PURE__ */ (0,
|
|
2002
|
+
children: /* @__PURE__ */ (0, K.jsx)(De, { className: `size-3.5 ${T.capabilities.touch ? "text-blue-600 dark:text-blue-400" : ""}` })
|
|
2032
2003
|
}),
|
|
2033
2004
|
nativeButton: !0
|
|
2034
|
-
}), /* @__PURE__ */ (0,
|
|
2035
|
-
/* @__PURE__ */ (0,
|
|
2036
|
-
render: /* @__PURE__ */ (0,
|
|
2005
|
+
}), /* @__PURE__ */ (0, K.jsxs)(o, { children: ["Touch: ", T.capabilities.touch ? "Enabled" : "Disabled"] })] }),
|
|
2006
|
+
/* @__PURE__ */ (0, K.jsxs)(a, { children: [/* @__PURE__ */ (0, K.jsx)(i, {
|
|
2007
|
+
render: /* @__PURE__ */ (0, K.jsx)(d, {
|
|
2037
2008
|
"data-testid": "debugger-hover-button",
|
|
2038
2009
|
variant: "outline",
|
|
2039
2010
|
size: "sm",
|
|
2040
|
-
className: `h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900 ${
|
|
2011
|
+
className: `h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900 ${T.capabilities.hover ? "border-blue-500 dark:border-blue-400" : ""}`,
|
|
2041
2012
|
onClick: () => {
|
|
2042
|
-
|
|
2043
|
-
...
|
|
2044
|
-
hover: !
|
|
2013
|
+
E({ capabilities: {
|
|
2014
|
+
...T.capabilities,
|
|
2015
|
+
hover: !T.capabilities.hover
|
|
2045
2016
|
} });
|
|
2046
2017
|
},
|
|
2047
|
-
children: /* @__PURE__ */ (0,
|
|
2018
|
+
children: /* @__PURE__ */ (0, K.jsx)(Te, { className: `size-3.5 ${T.capabilities.hover ? "text-blue-600 dark:text-blue-400" : ""}` })
|
|
2048
2019
|
}),
|
|
2049
2020
|
nativeButton: !0
|
|
2050
|
-
}), /* @__PURE__ */ (0,
|
|
2051
|
-
/* @__PURE__ */ (0,
|
|
2052
|
-
render: /* @__PURE__ */ (0,
|
|
2021
|
+
}), /* @__PURE__ */ (0, K.jsxs)(o, { children: ["Hover: ", T.capabilities.hover ? "Enabled" : "Disabled"] })] }),
|
|
2022
|
+
/* @__PURE__ */ (0, K.jsxs)(b, { children: [/* @__PURE__ */ (0, K.jsx)(_, {
|
|
2023
|
+
render: /* @__PURE__ */ (0, K.jsx)(d, {
|
|
2053
2024
|
"data-testid": "debugger-safe-area-button",
|
|
2054
2025
|
variant: "outline",
|
|
2055
2026
|
size: "sm",
|
|
2056
2027
|
className: "h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900",
|
|
2057
|
-
children: /* @__PURE__ */ (0,
|
|
2028
|
+
children: /* @__PURE__ */ (0, K.jsx)(je, { className: "size-3.5" })
|
|
2058
2029
|
}),
|
|
2059
2030
|
nativeButton: !0
|
|
2060
|
-
}), /* @__PURE__ */ (0,
|
|
2031
|
+
}), /* @__PURE__ */ (0, K.jsx)(m, {
|
|
2061
2032
|
className: "w-64 p-3",
|
|
2062
2033
|
"data-testid": "debugger-safe-area-dialog",
|
|
2063
|
-
children: /* @__PURE__ */ (0,
|
|
2034
|
+
children: /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
2064
2035
|
className: "space-y-2",
|
|
2065
|
-
children: [/* @__PURE__ */ (0,
|
|
2036
|
+
children: [/* @__PURE__ */ (0, K.jsx)("label", {
|
|
2066
2037
|
className: "text-xs font-medium",
|
|
2067
2038
|
children: "Safe Area Insets"
|
|
2068
|
-
}), /* @__PURE__ */ (0,
|
|
2069
|
-
value:
|
|
2039
|
+
}), /* @__PURE__ */ (0, K.jsx)(Ze, {
|
|
2040
|
+
value: T.safeAreaInsets,
|
|
2070
2041
|
onChange: (e) => {
|
|
2071
|
-
|
|
2042
|
+
E({ safeAreaInsets: e });
|
|
2072
2043
|
}
|
|
2073
2044
|
})]
|
|
2074
2045
|
})
|
|
2075
2046
|
})] }),
|
|
2076
|
-
|
|
2077
|
-
render: /* @__PURE__ */ (0,
|
|
2078
|
-
render: /* @__PURE__ */ (0,
|
|
2047
|
+
s === "tool" ? /* @__PURE__ */ (0, K.jsxs)(se, { children: [/* @__PURE__ */ (0, K.jsxs)(a, { children: [/* @__PURE__ */ (0, K.jsx)(i, {
|
|
2048
|
+
render: /* @__PURE__ */ (0, K.jsx)(ne, {
|
|
2049
|
+
render: /* @__PURE__ */ (0, K.jsx)(d, {
|
|
2079
2050
|
variant: "outline",
|
|
2080
2051
|
size: "sm",
|
|
2081
2052
|
className: "h-8 w-8 p-0 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm shadow-sm hover:bg-white dark:hover:bg-zinc-900",
|
|
2082
2053
|
"data-testid": "debugger-props-button",
|
|
2083
|
-
children: /* @__PURE__ */ (0,
|
|
2054
|
+
children: /* @__PURE__ */ (0, K.jsx)(Ce, { className: "size-3.5" })
|
|
2084
2055
|
}),
|
|
2085
2056
|
nativeButton: !0
|
|
2086
2057
|
}),
|
|
2087
2058
|
nativeButton: !0
|
|
2088
|
-
}), /* @__PURE__ */ (0,
|
|
2059
|
+
}), /* @__PURE__ */ (0, K.jsx)(o, { children: "View Tool Props" })] }), /* @__PURE__ */ (0, K.jsxs)(ae, {
|
|
2089
2060
|
scrollable: !0,
|
|
2090
2061
|
className: "sm:max-w-[600px] max-h-[85vh]",
|
|
2091
2062
|
"data-testid": "debugger-props-dialog",
|
|
2092
|
-
children: [/* @__PURE__ */ (0,
|
|
2093
|
-
data:
|
|
2063
|
+
children: [/* @__PURE__ */ (0, K.jsx)(ie, { children: /* @__PURE__ */ (0, K.jsx)(te, { children: "Tool Props" }) }), /* @__PURE__ */ (0, K.jsx)(re, { children: /* @__PURE__ */ (0, K.jsx)(oe, { children: /* @__PURE__ */ (0, K.jsx)(le, {
|
|
2064
|
+
data: l ?? {},
|
|
2094
2065
|
filename: "tool-props.json"
|
|
2095
2066
|
}) }) })]
|
|
2096
|
-
})] }) : /* @__PURE__ */ (0,
|
|
2097
|
-
open:
|
|
2098
|
-
onOpenChange:
|
|
2099
|
-
children: [/* @__PURE__ */ (0,
|
|
2100
|
-
render: /* @__PURE__ */ (0,
|
|
2101
|
-
render: /* @__PURE__ */ (0,
|
|
2067
|
+
})] }) : /* @__PURE__ */ (0, K.jsxs)(b, {
|
|
2068
|
+
open: Le,
|
|
2069
|
+
onOpenChange: Re,
|
|
2070
|
+
children: [/* @__PURE__ */ (0, K.jsxs)(a, { children: [/* @__PURE__ */ (0, K.jsx)(i, {
|
|
2071
|
+
render: /* @__PURE__ */ (0, K.jsx)(_, {
|
|
2072
|
+
render: /* @__PURE__ */ (0, K.jsx)(d, {
|
|
2102
2073
|
variant: "outline",
|
|
2103
2074
|
size: "sm",
|
|
2104
|
-
className: `h-8 w-8 p-0 backdrop-blur-sm shadow-sm ${
|
|
2075
|
+
className: `h-8 w-8 p-0 backdrop-blur-sm shadow-sm ${G ? "bg-amber-50 dark:bg-amber-950/40 border-amber-300 dark:border-amber-700 hover:bg-amber-100 dark:hover:bg-amber-900/50 animate-pulse" : "bg-white/90 dark:bg-zinc-900/90 hover:bg-white dark:hover:bg-zinc-900"}`,
|
|
2105
2076
|
"data-testid": "debugger-props-button",
|
|
2106
|
-
children: /* @__PURE__ */ (0,
|
|
2077
|
+
children: /* @__PURE__ */ (0, K.jsx)(Ce, { className: `size-3.5 ${G ? "text-amber-500" : ""}` })
|
|
2107
2078
|
}),
|
|
2108
2079
|
nativeButton: !0
|
|
2109
2080
|
}),
|
|
2110
2081
|
nativeButton: !0
|
|
2111
|
-
}), /* @__PURE__ */ (0,
|
|
2082
|
+
}), /* @__PURE__ */ (0, K.jsxs)(o, { children: [
|
|
2112
2083
|
"Props:",
|
|
2113
2084
|
" ",
|
|
2114
|
-
X === Q ? "No Props" : X === $ ? "Tool Props" :
|
|
2115
|
-
] })] }), /* @__PURE__ */ (0,
|
|
2085
|
+
X === Q ? "No Props" : X === $ ? "Tool Props" : B.find((e) => e.id === X)?.name || "Custom"
|
|
2086
|
+
] })] }), /* @__PURE__ */ (0, K.jsxs)(m, {
|
|
2116
2087
|
className: "w-64 p-2",
|
|
2117
2088
|
"data-testid": "debugger-props-popover",
|
|
2118
|
-
children: [
|
|
2089
|
+
children: [G && /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
2119
2090
|
className: "mb-2 rounded-md border border-amber-200 dark:border-amber-800/50 bg-amber-50 dark:bg-amber-950/30 px-3 py-2",
|
|
2120
2091
|
children: [
|
|
2121
|
-
/* @__PURE__ */ (0,
|
|
2092
|
+
/* @__PURE__ */ (0, K.jsx)("p", {
|
|
2122
2093
|
className: "text-xs font-medium text-amber-700 dark:text-amber-300 mb-0.5",
|
|
2123
2094
|
children: "Props required to render this widget:"
|
|
2124
2095
|
}),
|
|
2125
|
-
/* @__PURE__ */ (0,
|
|
2096
|
+
/* @__PURE__ */ (0, K.jsx)("p", {
|
|
2126
2097
|
className: "text-xs font-mono text-amber-600 dark:text-amber-400",
|
|
2127
|
-
children:
|
|
2098
|
+
children: y.join(", ")
|
|
2128
2099
|
}),
|
|
2129
|
-
/* @__PURE__ */ (0,
|
|
2100
|
+
/* @__PURE__ */ (0, K.jsx)("p", {
|
|
2130
2101
|
className: "text-xs text-amber-500 dark:text-amber-400 mt-1",
|
|
2131
2102
|
children: "Create a preset below to set them."
|
|
2132
2103
|
})
|
|
2133
2104
|
]
|
|
2134
|
-
}), /* @__PURE__ */ (0,
|
|
2105
|
+
}), /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
2135
2106
|
className: "space-y-1",
|
|
2136
2107
|
children: [
|
|
2137
|
-
/* @__PURE__ */ (0,
|
|
2108
|
+
/* @__PURE__ */ (0, K.jsx)(d, {
|
|
2138
2109
|
variant: X === Q ? "secondary" : "ghost",
|
|
2139
2110
|
size: "sm",
|
|
2140
2111
|
className: "w-full justify-start",
|
|
2141
|
-
onClick: () =>
|
|
2112
|
+
onClick: () => $e(Q),
|
|
2142
2113
|
"data-testid": "debugger-props-no-props",
|
|
2143
2114
|
children: "No Props"
|
|
2144
2115
|
}),
|
|
2145
|
-
|
|
2116
|
+
B.map((e) => /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
2146
2117
|
className: "relative group flex items-center",
|
|
2147
|
-
children: [/* @__PURE__ */ (0,
|
|
2118
|
+
children: [/* @__PURE__ */ (0, K.jsx)(d, {
|
|
2148
2119
|
variant: X === e.id ? "secondary" : "ghost",
|
|
2149
2120
|
size: "sm",
|
|
2150
2121
|
className: "w-full justify-start pr-14",
|
|
2151
|
-
onClick: () =>
|
|
2122
|
+
onClick: () => $e(e.id),
|
|
2152
2123
|
"data-testid": `debugger-props-preset-${e.id}`,
|
|
2153
2124
|
children: e.name
|
|
2154
|
-
}), /* @__PURE__ */ (0,
|
|
2125
|
+
}), /* @__PURE__ */ (0, K.jsxs)("div", {
|
|
2155
2126
|
className: "absolute right-2 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",
|
|
2156
|
-
children: [/* @__PURE__ */ (0,
|
|
2127
|
+
children: [/* @__PURE__ */ (0, K.jsx)(d, {
|
|
2157
2128
|
variant: "ghost",
|
|
2158
2129
|
size: "sm",
|
|
2159
2130
|
className: "h-6 w-6 p-0",
|
|
2160
|
-
onClick: (t) =>
|
|
2131
|
+
onClick: (t) => ot(e, t),
|
|
2161
2132
|
"data-testid": `debugger-props-edit-${e.id}`,
|
|
2162
|
-
children: /* @__PURE__ */ (0,
|
|
2163
|
-
}), /* @__PURE__ */ (0,
|
|
2133
|
+
children: /* @__PURE__ */ (0, K.jsx)(ee, { className: "h-3 w-3" })
|
|
2134
|
+
}), /* @__PURE__ */ (0, K.jsx)(d, {
|
|
2164
2135
|
variant: "ghost",
|
|
2165
2136
|
size: "sm",
|
|
2166
2137
|
className: "h-6 w-6 p-0",
|
|
2167
|
-
onClick: (t) =>
|
|
2138
|
+
onClick: (t) => at(e.id, t),
|
|
2168
2139
|
"data-testid": `debugger-props-delete-${e.id}`,
|
|
2169
|
-
children: /* @__PURE__ */ (0,
|
|
2140
|
+
children: /* @__PURE__ */ (0, K.jsx)(pe, { className: "h-3 w-3 text-destructive" })
|
|
2170
2141
|
})]
|
|
2171
2142
|
})]
|
|
2172
2143
|
}, e.id)),
|
|
2173
|
-
/* @__PURE__ */ (0,
|
|
2144
|
+
/* @__PURE__ */ (0, K.jsx)(d, {
|
|
2174
2145
|
variant: "ghost",
|
|
2175
2146
|
size: "sm",
|
|
2176
2147
|
className: "w-full justify-start text-primary",
|
|
2177
|
-
onClick: () =>
|
|
2148
|
+
onClick: () => $e(tt),
|
|
2178
2149
|
"data-testid": "debugger-props-create-preset",
|
|
2179
2150
|
children: "+ Create Preset..."
|
|
2180
2151
|
})
|
|
@@ -2182,30 +2153,22 @@ function at({ displayMode: e, onDisplayModeChange: t, toolCallId: n, propsContex
|
|
|
2182
2153
|
})]
|
|
2183
2154
|
})]
|
|
2184
2155
|
}),
|
|
2185
|
-
/* @__PURE__ */ (0,
|
|
2156
|
+
/* @__PURE__ */ (0, K.jsx)(We, {
|
|
2186
2157
|
iframeId: n,
|
|
2187
2158
|
enabled: !0
|
|
2188
2159
|
}),
|
|
2189
|
-
|
|
2190
|
-
open:
|
|
2191
|
-
onOpenChange:
|
|
2192
|
-
onSave:
|
|
2193
|
-
existingPresets:
|
|
2194
|
-
resource:
|
|
2195
|
-
resourceAnnotations:
|
|
2196
|
-
llmConfig:
|
|
2197
|
-
editingPreset:
|
|
2160
|
+
g && /* @__PURE__ */ (0, K.jsx)(Xe, {
|
|
2161
|
+
open: Pe,
|
|
2162
|
+
onOpenChange: W,
|
|
2163
|
+
onSave: it,
|
|
2164
|
+
existingPresets: B,
|
|
2165
|
+
resource: g,
|
|
2166
|
+
resourceAnnotations: u,
|
|
2167
|
+
llmConfig: p || null,
|
|
2168
|
+
editingPreset: q
|
|
2198
2169
|
})
|
|
2199
2170
|
]
|
|
2200
2171
|
});
|
|
2201
2172
|
}
|
|
2202
2173
|
//#endregion
|
|
2203
|
-
|
|
2204
|
-
function ot({ children: e, className: t, noWrapper: n }) {
|
|
2205
|
-
return n ? e : /* @__PURE__ */ (0, W.jsx)("div", {
|
|
2206
|
-
className: a("flex flex-1 items-center justify-center bg-zinc-50 dark:bg-zinc-800", "[background-image:radial-gradient(circle,rgba(0,0,0,0.12)_1px,transparent_1px)]", "dark:[background-image:radial-gradient(circle,rgba(255,255,255,0.1)_1px,transparent_1px)]", "bg-[length:32px_32px]", t),
|
|
2207
|
-
children: e
|
|
2208
|
-
});
|
|
2209
|
-
}
|
|
2210
|
-
//#endregion
|
|
2211
|
-
export { at as n, Ee as r, ot as t };
|
|
2174
|
+
export { we as n, it as t };
|