@p4code/cli 0.8.3 → 0.8.4
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/dist/{AcpMcpStdioBridge-D_JnxPWS.mjs → AcpMcpStdioBridge-CD9BQr2l.mjs} +1 -1
- package/dist/{AcpMcpStdioBridge-DBONIB-w.mjs → AcpMcpStdioBridge-DHwGLtep.mjs} +61 -4
- package/dist/bin.mjs +2 -2
- package/dist/{binCli-DouSNynJ.mjs → binCli-Bgjc_5FL.mjs} +406 -247
- package/dist/client/.vite/manifest.json +2125 -2102
- package/dist/client/assets/{AnimatedHeight-DoG4b7y8.js → AnimatedHeight-DYUgtGfz.js} +2 -2
- package/dist/client/assets/{AuthSurfaceShell-DbeJoeXz.js → AuthSurfaceShell-CfLnzrCc.js} +2 -2
- package/dist/client/assets/{CSPContext-DkFc4cYo.js → CSPContext-i9QaQnwk.js} +2 -2
- package/dist/client/assets/ChatGptUsageButton-BWTEbaUC.js +2 -0
- package/dist/client/assets/ChatMarkdown-C6UsXjP9.js +65 -0
- package/dist/client/assets/CodexSetupSection.logic-VTayPks4.js +2 -0
- package/dist/client/assets/{ComboboxClear-ZQvkAjz8.js → ComboboxClear-B-iYnTX_.js} +2 -2
- package/dist/client/assets/{CommandBlock-c98wFxMU.js → CommandBlock-dh2vBT70.js} +2 -2
- package/dist/client/assets/{ComposerPromptEditor-CBuOXkT9.js → ComposerPromptEditor-fIqs_--j.js} +12 -12
- package/dist/client/assets/{CompositeRoot-BMUI_bmJ.js → CompositeRoot-JeAqW-33.js} +2 -2
- package/dist/client/assets/{ConnectionStatusDot-B69zfKRh.js → ConnectionStatusDot-BCSqqCpf.js} +2 -2
- package/dist/client/assets/{DevicePanel-1xw7KQ15.js → DevicePanel-BckpiUTa.js} +2 -2
- package/dist/client/assets/{DeviceSetup-DemgUuG-.js → DeviceSetup-L8Q-0h1V.js} +2 -2
- package/dist/client/assets/{DialogTitle-BXot7RA0.js → DialogTitle-BRYusK7T.js} +2 -2
- package/dist/client/assets/{DiffCommentAnnotation-vAZP7JBy.js → DiffCommentAnnotation-DxxGd0sM.js} +3 -3
- package/dist/client/assets/{DiffFileTree-BhqF8nD5.js → DiffFileTree-C2N3dwbB.js} +2 -2
- package/dist/client/assets/DiffPanel-0HWHkPjD.js +2 -0
- package/dist/client/assets/{DiffWorkerPoolProvider-D4VIo5Vu.js → DiffWorkerPoolProvider-Dd8cIhyy.js} +3 -3
- package/dist/client/assets/{EnvironmentMachineIcon-DPQkDtvr.js → EnvironmentMachineIcon-giyHKjbh.js} +2 -2
- package/dist/client/assets/{ExpandableText-EZ9C25tN.js → ExpandableText-dJhpznMp.js} +3 -3
- package/dist/client/assets/{FieldControl-C4IsJLMZ.js → FieldControl-CxuWXcJE.js} +2 -2
- package/dist/client/assets/{FileDiff-H9QHqXa0.js → FileDiff-EWd5oWlS.js} +2 -2
- package/dist/client/assets/{FilePreviewPanel-DGm_SU_e.js → FilePreviewPanel-D3kud1xs.js} +4 -4
- package/dist/client/assets/{FoldedSettingsSection-BSYFyChk.js → FoldedSettingsSection-CsN_jb3V.js} +2 -2
- package/dist/client/assets/{FormContext-DiXpMuU8.js → FormContext-Vk5aZcR6.js} +2 -2
- package/dist/client/assets/{Icons-DA4msgfR.js → Icons-DM1SzuL7.js} +2 -2
- package/dist/client/assets/{KeybindingsSettings.logic-7EBA0xLE.js → KeybindingsSettings.logic-BcJGxVhV.js} +2 -2
- package/dist/client/assets/{NoProjectsHero-YjEc2OIw.js → NoProjectsHero-DrkWMiG4.js} +2 -2
- package/dist/client/assets/{PanelLayoutControls-BfRIRM0o.js → PanelLayoutControls-DjmAXscr.js} +8 -8
- package/dist/client/assets/{PierreEntryIcon-BxxykifK.js → PierreEntryIcon-BJ8xtDqQ.js} +2 -2
- package/dist/client/assets/PreviewPanel-D_JLD7YP.js +2 -0
- package/dist/client/assets/ProjectDefaultsSettings-Bqo3T1SR.js +2 -0
- package/dist/client/assets/{ProjectFavicon-CiauSitF.js → ProjectFavicon-By6-kpgk.js} +3 -3
- package/dist/client/assets/{ProjectIconPickerDialog-GDqk2LEH.js → ProjectIconPickerDialog-Cx-QcJLy.js} +2 -2
- package/dist/client/assets/{ProjectMonogram-Bqe3OyZR.js → ProjectMonogram-BJVBhwjz.js} +2 -2
- package/dist/client/assets/{ProviderAuthTerminal-D_OC5vdS.js → ProviderAuthTerminal-DBiUwanv.js} +2 -2
- package/dist/client/assets/{ProviderModelPicker-Bfpy_Rw1.js → ProviderModelPicker-DV64N-fE.js} +2 -2
- package/dist/client/assets/{ProviderSettingsForm-BA6yGdRn.js → ProviderSettingsForm-Tkr5xKCJ.js} +2 -2
- package/dist/client/assets/{PullRequestCodeTab-BOM7mgfd.js → PullRequestCodeTab-DijqMjN0.js} +3 -3
- package/dist/client/assets/{ReadOnlySourcePreview-C3LnvSkA.js → ReadOnlySourcePreview-CydDaO9-.js} +2 -2
- package/dist/client/assets/{RenderErrorBoundary-C-EIIrrq.js → RenderErrorBoundary-D4M2khxk.js} +2 -2
- package/dist/client/assets/{ScheduledTasksSettings-DFtwNfb8.js → ScheduledTasksSettings-D_Z_3GVl.js} +4 -4
- package/dist/client/assets/ScopedSwitch-B8wdvttG.js +2 -0
- package/dist/client/assets/{SecretInput-Be5Akw8x.js → SecretInput-CNWNAhNe.js} +2 -2
- package/dist/client/assets/SettingsPanels-DAv_V_mk.js +39 -0
- package/dist/client/assets/{SettingsPanels.logic-CLB8Pu-U.js → SettingsPanels.logic-BYa5iHwl.js} +2 -2
- package/dist/client/assets/{SettingsScopeNotice-CVoWG1oN.js → SettingsScopeNotice-CcLrVZWz.js} +2 -2
- package/dist/client/assets/{T3ConnectAccountPages-ClNzwIQw.js → T3ConnectAccountPages-DjITJ87o.js} +2 -2
- package/dist/client/assets/{T3ConnectSidebarSignIn-BqM_Vqe1.js → T3ConnectSidebarSignIn-B-rQNmqG.js} +2 -2
- package/dist/client/assets/{ThemeEditorPanel-vVmQV_Vv.js → ThemeEditorPanel-CJGqmeTA.js} +2 -2
- package/dist/client/assets/{ThreadTerminalDrawer-aLeVbe6g.js → ThreadTerminalDrawer-Cdl3DAIx.js} +4 -4
- package/dist/client/assets/{Virtualizer-DTOYU5Jp.js → Virtualizer-Bk-YJlPj.js} +2 -2
- package/dist/client/assets/{WorkspaceBreadcrumb-C9OPPGJE.js → WorkspaceBreadcrumb-DSFWvH19.js} +2 -2
- package/dist/client/assets/{WorkspacePageContainer-DtXJ5ept.js → WorkspacePageContainer-BXUbfbEU.js} +2 -2
- package/dist/client/assets/{WorkspacePageHeader-5zzLFpEN.js → WorkspacePageHeader-LbIzJCDs.js} +2 -2
- package/dist/client/assets/_chat-oHhtDqeh.js +45 -0
- package/dist/client/assets/{_chat.index-BP1JWABB.js → _chat.index-CTew1WmI.js} +2 -2
- package/dist/client/assets/_chat.new-COSURrfS.js +4 -0
- package/dist/client/assets/{_chat.pull-requests-B6-Vck8B.js → _chat.pull-requests-BlXnsqov.js} +2 -2
- package/dist/client/assets/{abnfDiagram-VCTEODGH-BXvAfzAg.js → abnfDiagram-VCTEODGH-brKh7bzh.js} +2 -2
- package/dist/client/assets/{alert-B-or1ble.js → alert-quTC4YbH.js} +2 -2
- package/dist/client/assets/architecture-7GRP2DOG-BMFS-mJW.js +1 -0
- package/dist/client/assets/{architectureDiagram-5GKGNRK7-MEUA3QVe.js → architectureDiagram-5GKGNRK7-BVDiXgfK.js} +2 -2
- package/dist/client/assets/archive-x-D3w6saMD.js +2 -0
- package/dist/client/assets/arrow-left-BFquhiaO.js +1 -0
- package/dist/client/assets/arrow-right-DiV8cYUQ.js +1 -0
- package/dist/client/assets/arrow-up-down-BDQTjPr1.js +1 -0
- package/dist/client/assets/assets-CRmNKuHc.js +2 -0
- package/dist/client/assets/bell-BvJp3v99.js +1 -0
- package/dist/client/assets/{blockDiagram-I7D4REHJ-BOdLeYJh.js → blockDiagram-I7D4REHJ-CzoRCJDe.js} +2 -2
- package/dist/client/assets/blocks-NuR9qdGl.js +1 -0
- package/dist/client/assets/bot-mvw1ddnU.js +1 -0
- package/dist/client/assets/{browserHistoryStore-BJD0OPpb.js → browserHistoryStore-Cw3ffhOV.js} +2 -2
- package/dist/client/assets/{browserLinkTarget-CoogLhhO.js → browserLinkTarget-KTI1tSl7.js} +2 -2
- package/dist/client/assets/{c4Diagram-7LVT6UL2-COZrm1O8.js → c4Diagram-7LVT6UL2-CfyobiDu.js} +2 -2
- package/dist/client/assets/calendar-clock-CuvWKWXS.js +1 -0
- package/dist/client/assets/channel-Cf2J77rP.js +2 -0
- package/dist/client/assets/chart-no-axes-column-Hfs9TSWj.js +1 -0
- package/dist/client/assets/checkbox-BHsP70Vt.js +2 -0
- package/dist/client/assets/{chunk-4HAMMTFA-Bs-Fo0v1.js → chunk-4HAMMTFA-CPnMRFld.js} +2 -2
- package/dist/client/assets/{chunk-75Z2AOVW-DpOWzc3R.js → chunk-75Z2AOVW-C85FbOND.js} +2 -2
- package/dist/client/assets/{chunk-DU6HZSFF-Bgpi4W6E.js → chunk-DU6HZSFF-s_qrqgaz.js} +2 -2
- package/dist/client/assets/{chunk-F27PBJKO-CLxgnzXS.js → chunk-F27PBJKO-90tTgV9x.js} +2 -2
- package/dist/client/assets/{chunk-GMAD6QVW-D98J5Pan.js → chunk-GMAD6QVW-CYRPr7hZ.js} +2 -2
- package/dist/client/assets/{chunk-GVQU2GXP-VuCIOHGI.js → chunk-GVQU2GXP-CxAvUb1-.js} +2 -2
- package/dist/client/assets/{chunk-IMKFNOWR-DXIyBsaE.js → chunk-IMKFNOWR-794woOlB.js} +2 -2
- package/dist/client/assets/{chunk-L3NEJ4N5-CrMlU3ZU.js → chunk-L3NEJ4N5-JXcRdiIo.js} +2 -2
- package/dist/client/assets/{chunk-OSK3NFVY-V2__4gNB.js → chunk-OSK3NFVY-ToxVvjW1.js} +2 -2
- package/dist/client/assets/{chunk-P2QGCYS3-BrPw6V5F.js → chunk-P2QGCYS3-JB1PmfIc.js} +2 -2
- package/dist/client/assets/{chunk-POPQ4Y6H-DBQ9Y51x.js → chunk-POPQ4Y6H-RMxlqjhd.js} +2 -2
- package/dist/client/assets/{chunk-PWAF6VOD-BN6AAbfF.js → chunk-PWAF6VOD-AB579n2y.js} +2 -2
- package/dist/client/assets/{chunk-SHT3W25Y-Vay44dCU.js → chunk-SHT3W25Y-CV2hE9-g.js} +2 -2
- package/dist/client/assets/{chunk-SVP7TREG-CcGlNErV.js → chunk-SVP7TREG-b2Gs4u5W.js} +2 -2
- package/dist/client/assets/{chunk-TICWLB2K-Dk1P_xkD.js → chunk-TICWLB2K-CtkYqLLJ.js} +2 -2
- package/dist/client/assets/classDiagram-ZZMXUADV-D9m4giYc.js +2 -0
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-D9m4giYc.js +2 -0
- package/dist/client/assets/{color-picker-gBclRe5T.js → color-picker-CFc6YapE.js} +2 -2
- package/dist/client/assets/{combobox-C81z_216.js → combobox-WVgW_agq.js} +2 -2
- package/dist/client/assets/{command-DnJZPOmf.js → command-w6WcFbeZ.js} +2 -2
- package/dist/client/assets/{connect-Am2IS-vZ.js → connect-D_ncSJiK.js} +2 -2
- package/dist/client/assets/{connect-agent-Cw1s7hYt.js → connect-agent-8mHL_bau.js} +2 -2
- package/dist/client/assets/corner-left-up-DedXC9IG.js +1 -0
- package/dist/client/assets/{cynefin-OW5HDTMX-0s30RxOq.js → cynefin-OW5HDTMX-BDIjrXPB.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-Drd0Msog.js → cynefinDiagram-5FMLGOSQ-h9tw36zs.js} +2 -2
- package/dist/client/assets/{dagre-GXQ25YYZ-BMfu7T0o.js → dagre-GXQ25YYZ-D3s1T81F.js} +2 -2
- package/dist/client/assets/{device-C_oIGJqy.js → device-DhvzgETq.js} +2 -2
- package/dist/client/assets/{diagram-S7CK7UJ4-8egngY0E.js → diagram-S7CK7UJ4-DTawhR4X.js} +2 -2
- package/dist/client/assets/{diagram-UQ7AKVKN-BALPQoDH.js → diagram-UQ7AKVKN-CTUDQHKY.js} +2 -2
- package/dist/client/assets/{diagram-VSXAHHWV-BjyJZVGC.js → diagram-VSXAHHWV-DsbNNWnj.js} +2 -2
- package/dist/client/assets/{diagram-VX7I27RA-B9f6eKkq.js → diagram-VX7I27RA-BBy99N9O.js} +2 -2
- package/dist/client/assets/{diagram-Z3DM3KII-CRUj2d3v.js → diagram-Z3DM3KII-CEy69xv1.js} +2 -2
- package/dist/client/assets/{dialog-Bn1u_Xoc.js → dialog-CPLO59bH.js} +2 -2
- package/dist/client/assets/{diffRendering-C26rfQBu.js → diffRendering-BlmxsRF9.js} +2 -2
- package/dist/client/assets/{discovery-list-Fg_u6w-x.js → discovery-list-D0LBmkzJ.js} +2 -2
- package/dist/client/assets/{dist-DtKaGeij.js → dist-DZWol-cd.js} +3 -3
- package/dist/client/assets/download-CUcdw53T.js +1 -0
- package/dist/client/assets/{draft-input-D8eUYug0.js → draft-input-CmvO5rl_.js} +2 -2
- package/dist/client/assets/{duoViewer-CBoAg4hS.js → duoViewer-B0QD-fyi.js} +2 -2
- package/dist/client/assets/dynamic-tF-2a8Zt.js +3 -0
- package/dist/client/assets/earth-BqADiov-.js +1 -0
- package/dist/client/assets/{ebnfDiagram-PWID7BFC-BSbPiqg7.js → ebnfDiagram-PWID7BFC-B9LWNbny.js} +2 -2
- package/dist/client/assets/ellipsis-BUF_4-Z7.js +1 -0
- package/dist/client/assets/{embeddedScripts-Dsi0aZEx.js → embeddedScripts-B1MGNr-e.js} +2 -2
- package/dist/client/assets/{empty-C-gDaZ_z.js → empty-tr-EsB66.js} +2 -2
- package/dist/client/assets/entities-DqhRur25.js +2 -0
- package/dist/client/assets/{erDiagram-RLTQ6QDP-sL_q0j_k.js → erDiagram-RLTQ6QDP-Nu9IMF5-.js} +2 -2
- package/dist/client/assets/eventmodeling-NTZA5JFV-CHuv5_8f.js +1 -0
- package/dist/client/assets/eye-C8OhITrC.js +1 -0
- package/dist/client/assets/file-search-ComEiFQ8.js +1 -0
- package/dist/client/assets/{fileLinks-DubkPNVt.js → fileLinks-BHAkEh9k.js} +2 -2
- package/dist/client/assets/{fileTreeExpansion-VtSAPhxL.js → fileTreeExpansion-BierCVUV.js} +2 -2
- package/dist/client/assets/flowDiagram-HODETNUW-wmC7eeQc.js +1 -0
- package/dist/client/assets/folder-git-2-COyuVTXA.js +1 -0
- package/dist/client/assets/folder-open-DZzz50kK.js +1 -0
- package/dist/client/assets/folder-plus-BzJT8jXs.js +1 -0
- package/dist/client/assets/{ganttDiagram-EL5Y4UJY-DCiKb0rQ.js → ganttDiagram-EL5Y4UJY-D_s5F9rI.js} +2 -2
- package/dist/client/assets/{getDiffFileInput-DU5zpXo3.js → getDiffFileInput-B5j6sQbM.js} +2 -2
- package/dist/client/assets/git-branch-CCzcdr93.js +1 -0
- package/dist/client/assets/{gitGraph-4MIJSDKK-DfRe6ZT5.js → gitGraph-4MIJSDKK-BASxGOL3.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-Bt7diV1n.js → gitGraphDiagram-WWUBYQGX-BtA4z_1S.js} +2 -2
- package/dist/client/assets/grip-vertical-COceJQZo.js +1 -0
- package/dist/client/assets/{guideRunStore-CF9bByzk.js → guideRunStore-C95PbUuP.js} +2 -2
- package/dist/client/assets/hard-drive-BKLzbeTS.js +1 -0
- package/dist/client/assets/history-CAAEfWkp.js +1 -0
- package/dist/client/assets/house-U4txgvXa.js +1 -0
- package/dist/client/assets/{htmlRender-vOqAdlJH.js → htmlRender-DgdJ8GkZ.js} +2 -2
- package/dist/client/assets/{index-1HGbj0-7.js → index-D_uSeco8.js} +3 -3
- package/dist/client/assets/{info-A6RAGUB7-0FtL6-Am.js → info-A6RAGUB7-Q4Qe5TI_.js} +1 -1
- package/dist/client/assets/{infoDiagram-27XIBGKW-BPLvtPCc.js → infoDiagram-27XIBGKW-CNnDxcfZ.js} +2 -2
- package/dist/client/assets/{input-Cd_0h7h_.js → input-DaCwubQj.js} +2 -2
- package/dist/client/assets/{input-group-CJ7ZOvDN.js → input-group-DJwXFHGO.js} +2 -2
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-DVcx0XTh.js → ishikawaDiagram-5VMMS53U-Drb03OY6.js} +2 -2
- package/dist/client/assets/{journeyDiagram-3NMN7TZE-w46bbjL2.js → journeyDiagram-3NMN7TZE-CynC6Up1.js} +2 -2
- package/dist/client/assets/{kanban-definition-UXKFOSKX-C41yE_yV.js → kanban-definition-UXKFOSKX-DfyC_hIe.js} +2 -2
- package/dist/client/assets/{kbd-c17EHIx1.js → kbd-R3wkAau0.js} +2 -2
- package/dist/client/assets/{keybindings-uYm_vnXl.js → keybindings-QrjnJ5jB.js} +2 -2
- package/dist/client/assets/keyboard-kgy5M4lo.js +1 -0
- package/dist/client/assets/{lazyRouteComponent-CTVuEvaz.js → lazyRouteComponent-cLZROdN-.js} +2 -2
- package/dist/client/assets/{line-tu9XZ0qp.js → line-C3gvAOpf.js} +2 -2
- package/dist/client/assets/{link-C4sEUNOK.js → link-Bl21VXlj.js} +2 -2
- package/dist/client/assets/link-C1k5F8-V.js +1 -0
- package/dist/client/assets/{linkedPrompt-VYl90REW.js → linkedPrompt-DAcv0O_f.js} +2 -2
- package/dist/client/assets/list-CU7BIfIS.js +1 -0
- package/dist/client/assets/main-BsiZpg85.css +2 -0
- package/dist/client/assets/main-uLg3xUJM.js +30 -0
- package/dist/client/assets/{mediaReference-BTVvzs2e.js → mediaReference-DN8lzwOF.js} +2 -2
- package/dist/client/assets/{mediaSource-DXHFWHMA.js → mediaSource-0nIWHHoL.js} +2 -2
- package/dist/client/assets/{mermaid-parser.core-DNd412Oc.js → mermaid-parser.core-B3cYmj0d.js} +4 -4
- package/dist/client/assets/{mermaid.core-CyE6QOQY.js → mermaid.core-9ekBSYCO.js} +5 -5
- package/dist/client/assets/message-circle-question-mark-wTwD9xwk.js +1 -0
- package/dist/client/assets/message-square-dashed-Hcy2Q2EP.js +1 -0
- package/dist/client/assets/message-square-lCzwndCW.js +1 -0
- package/dist/client/assets/{mindmap-definition-YA3MSWOX-DH1uxdTm.js → mindmap-definition-YA3MSWOX-K4rtZu2z.js} +2 -2
- package/dist/client/assets/mouse-pointer-2-BFFAEWXU.js +1 -0
- package/dist/client/assets/number-field-pAaF-e0N.js +2 -0
- package/dist/client/assets/{observeResize-Csvw3hy4.js → observeResize-BEjNJ-rK.js} +2 -2
- package/dist/client/assets/{onboarding-CJPrQc71.js → onboarding--LqcHqO0.js} +2 -2
- package/dist/client/assets/openFileInPreview-NwK1GJFN.js +2 -0
- package/dist/client/assets/{p4ProjectFile-BWszgcDk.js → p4ProjectFile-CVEoe1SJ.js} +2 -2
- package/dist/client/assets/{packet-AYTQ26CC-DflCOkCN.js → packet-AYTQ26CC-kDkfULQq.js} +1 -1
- package/dist/client/assets/{pair-Dd_e1jxq.js → pair-Bxo10T5t.js} +2 -2
- package/dist/client/assets/palette-BkpHEJXn.js +1 -0
- package/dist/client/assets/panel-left-DNz3ps89.js +1 -0
- package/dist/client/assets/panels-top-left-bKuZF4FX.js +1 -0
- package/dist/client/assets/{pegDiagram-XKGWAZYB-Cnx9j2xX.js → pegDiagram-XKGWAZYB-6b8AqBYd.js} +2 -2
- package/dist/client/assets/{phoneViewer-B9EUVDD2.js → phoneViewer-Vql_2ZzY.js} +2 -2
- package/dist/client/assets/{pie-WAS4IAKB-CDwew7fN.js → pie-WAS4IAKB-CfoqFIwI.js} +1 -1
- package/dist/client/assets/{pieDiagram-E7YTZNPT-BxejSN6k.js → pieDiagram-E7YTZNPT-i8FgTMai.js} +2 -2
- package/dist/client/assets/{pierre-icons-C839Otpo.js → pierre-icons-CBmlpFgP.js} +2 -2
- package/dist/client/assets/{popover-CKyetthu.js → popover-BXin7C0B.js} +2 -2
- package/dist/client/assets/{preview-CjgXQQdj.js → preview-6t42evKb.js} +2 -2
- package/dist/client/assets/{preview-CEMnbqVB.js → preview-C9iPHfb1.js} +2 -2
- package/dist/client/assets/{previewMiniPlayerStore-B9Lqaaij.js → previewMiniPlayerStore-BDRPsVx0.js} +2 -2
- package/dist/client/assets/primary-DOpcfgLH.js +2 -0
- package/dist/client/assets/primaryCloudLinkState-Dulej3bP.js +2 -0
- package/dist/client/assets/projectFilesQueryState-C1crs3C8.js +2 -0
- package/dist/client/assets/projectScriptEditor-ku2tGeKq.js +2 -0
- package/dist/client/assets/providerSkills-D0IxW0_5.js +2 -0
- package/dist/client/assets/{pullRequestDetail.logic-DTxWqKoX.js → pullRequestDetail.logic-BiwUoz1M.js} +4 -4
- package/dist/client/assets/{pullRequestReviewStore-C5gaoGaz.js → pullRequestReviewStore-J7YIGsZ9.js} +2 -2
- package/dist/client/assets/pullRequests-BQ9KruZm.js +2 -0
- package/dist/client/assets/puzzle-wfhgUaHl.js +1 -0
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-Bj4FEpOg.js → quadrantDiagram-AXDQQJYC-DzvIAxCm.js} +2 -2
- package/dist/client/assets/queries-CEjFwxVW.js +2 -0
- package/dist/client/assets/query-D5pQUQvZ.js +2 -0
- package/dist/client/assets/{radar-RG4KPBEZ-DEopr2Gv.js → radar-RG4KPBEZ-BnTV8utT.js} +1 -1
- package/dist/client/assets/{radio-group-fljQQ7Xp.js → radio-group-DhpPG5HP.js} +2 -2
- package/dist/client/assets/{railroad-74A4TZTK-BSAOgUn6.js → railroad-74A4TZTK-nxEBKbUo.js} +1 -1
- package/dist/client/assets/railroad-abnf-HS5TGJTU-bDIjPMME.js +1 -0
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-BREFlihg.js +1 -0
- package/dist/client/assets/railroad-peg-WCYAUIDC-B0hEZefb.js +1 -0
- package/dist/client/assets/{railroadDiagram-O6MQD6OU-BSOJGJ6v.js → railroadDiagram-O6MQD6OU-DFdlMVKn.js} +2 -2
- package/dist/client/assets/{renderScheduler-v8LIpnE2.js → renderScheduler-DWKKtxcJ.js} +2 -2
- package/dist/client/assets/{requirementDiagram-BXWQKSXE-Bp5TqEho.js → requirementDiagram-BXWQKSXE-BW8o0F_p.js} +2 -2
- package/dist/client/assets/{rightPanelStore-DqMd0tFH.js → rightPanelStore-CQ94819A.js} +2 -2
- package/dist/client/assets/rotate-ccw-CkpQmcC5.js +1 -0
- package/dist/client/assets/rotate-cw-BAiACGtX.js +1 -0
- package/dist/client/assets/runtime-Bsb2I_n2.js +2 -0
- package/dist/client/assets/runtime-DkYxB4ri.js +6 -0
- package/dist/client/assets/{sankeyDiagram-P5KCCOFB-C7KUHrP7.js → sankeyDiagram-P5KCCOFB-JA6FB6i0.js} +2 -2
- package/dist/client/assets/{scheduledTasksSettings.logic-C3Mbc4mh.js → scheduledTasksSettings.logic-C_AdQNVz.js} +3 -3
- package/dist/client/assets/{scroll-area-LhpLVf8r.js → scroll-area-BYyfw-9F.js} +2 -2
- package/dist/client/assets/select-CjGEfXy_.js +2 -0
- package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-Bs9mfTLC.js → sequenceDiagram-WJ2MYXX4-DgBrrcVR.js} +2 -2
- package/dist/client/assets/server-BYntb2dN.js +2 -0
- package/dist/client/assets/session-eLrubJEW.js +2 -0
- package/dist/client/assets/{session-logic-DneZDyPZ.js → session-logic-l1juLk9v.js} +5 -5
- package/dist/client/assets/settings-2-CDBTJPBs.js +1 -0
- package/dist/client/assets/settings-DDvSs7LG.js +1 -0
- package/dist/client/assets/{settings-C8FiUQu0.js → settings-xKzLy5aw.js} +2 -2
- package/dist/client/assets/settings.appearance-CEA3GKAa.js +2 -0
- package/dist/client/assets/settings.archived-DPWjmD2l.js +2 -0
- package/dist/client/assets/{settings.computer-use-B3Ujc2AS.js → settings.computer-use-DZu90DiM.js} +2 -2
- package/dist/client/assets/settings.connections-BKWbsMUk.js +2 -0
- package/dist/client/assets/settings.data-controls-CBrcsSvm.js +2 -0
- package/dist/client/assets/{settings.decisions-C5UE4drK.js → settings.decisions-CGz9znLs.js} +2 -2
- package/dist/client/assets/settings.diagnostics-DKkOOzoq.js +2 -0
- package/dist/client/assets/settings.general-CoPWyKC4.js +2 -0
- package/dist/client/assets/{settings.integrations-BCtpk2dY.js → settings.integrations-K3Jwfkyd.js} +2 -2
- package/dist/client/assets/{settings.keybindings-DfFrYXxY.js → settings.keybindings-BbR3qnVs.js} +2 -2
- package/dist/client/assets/{settings.open-source-licenses-CqRM1gRd.js → settings.open-source-licenses-Mh-zg97k.js} +2 -2
- package/dist/client/assets/settings.plugins-BI68kAsM.js +5 -0
- package/dist/client/assets/{settings.projects-CT-l0EfX.js → settings.projects-BahZsoyx.js} +4 -4
- package/dist/client/assets/settings.providers-Dsnq0-AL.js +3 -0
- package/dist/client/assets/settings.scheduled-tasks-BOpVl_XK.js +2 -0
- package/dist/client/assets/{settings.snap-shot-BMxV-ClC.js → settings.snap-shot-Bs_DZS7D.js} +2 -2
- package/dist/client/assets/settings.source-control-Akrp_mGm.js +2 -0
- package/dist/client/assets/{settings.storage-DKm6BZ2r.js → settings.storage-fl2BN0Cu.js} +2 -2
- package/dist/client/assets/settingsLayout-DV36_Jgq.js +3 -0
- package/dist/client/assets/shield-check-yRjvgn4y.js +1 -0
- package/dist/client/assets/shield-question-mark-DyVUewRO.js +1 -0
- package/dist/client/assets/{sidebar-DI1ZJMkM.js → sidebar-MBwCdIpv.js} +2 -2
- package/dist/client/assets/{sidebarProjectGrouping-DXRKqrOP.js → sidebarProjectGrouping-Sm7y9bd1.js} +2 -2
- package/dist/client/assets/{skeleton-BlMPaSbD.js → skeleton-CS8ffFVv.js} +2 -2
- package/dist/client/assets/{sortable.esm-CnSn9HhJ.js → sortable.esm-CwrTFe-B.js} +2 -2
- package/dist/client/assets/{sourceControl-ogZI3Qhj.js → sourceControl-DyHbbOxl.js} +2 -2
- package/dist/client/assets/{spinner-I_NrXl2i.js → spinner-B7a-VUeR.js} +2 -2
- package/dist/client/assets/square-pen-BrE59gWn.js +1 -0
- package/dist/client/assets/{standalone-page-C0mvdk0N.js → standalone-page-DTvNMgJy.js} +2 -2
- package/dist/client/assets/{stateDiagram-D77RDMKH-lcvbm4gc.js → stateDiagram-D77RDMKH-gHEAo7xC.js} +2 -2
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-CGT21P8W.js +2 -0
- package/dist/client/assets/{swimlanes-42K2YHIH-BftXRbCQ.js → swimlanes-42K2YHIH-_qZ90QGb.js} +2 -2
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-D9Ttx7dQ.js +9 -0
- package/dist/client/assets/{terminal-links-BWEpET__.js → terminal-links-Dc2HX7Ov.js} +2 -2
- package/dist/client/assets/{terminalSessions-CQOPPXfy.js → terminalSessions-DK9WKgga.js} +2 -2
- package/dist/client/assets/text-search-CFbEY3qo.js +1 -0
- package/dist/client/assets/{textarea-Bu723jDd.js → textarea-CYXHTTG6.js} +2 -2
- package/dist/client/assets/{themePalette-CAxv2FDZ.js → themePalette-zVYGoviO.js} +3 -3
- package/dist/client/assets/threadSort-Byzu7B1A.js +2 -0
- package/dist/client/assets/{timeline-definition-24CTP7MA-_aV_EuqE.js → timeline-definition-24CTP7MA-BxWmcZQs.js} +2 -2
- package/dist/client/assets/toast-BX9uiMAh.js +2 -0
- package/dist/client/assets/{toggle-B5fidRv0.js → toggle-fk33ppsB.js} +2 -2
- package/dist/client/assets/{toggle-group-DCQTLIPb.js → toggle-group-W0bDGcPB.js} +2 -2
- package/dist/client/assets/tooltip-B0rhqi5b.js +2 -0
- package/dist/client/assets/{treeView-Q6P3EWNA-ALGd5g_W.js → treeView-Q6P3EWNA-BsPhq-Fl.js} +1 -1
- package/dist/client/assets/{treemap-WGGIJYW6-CGQrkzMs.js → treemap-WGGIJYW6-DZ3fnU-o.js} +1 -1
- package/dist/client/assets/{usage-DmGxFUdr.js → usage-DlNazxzV.js} +2 -2
- package/dist/client/assets/{usageAccess-CY-JtQnU.js → usageAccess-Mp1Nbm2r.js} +2 -2
- package/dist/client/assets/{usageFormat-Cs-UHzLq.js → usageFormat-ZiOrCBxk.js} +2 -2
- package/dist/client/assets/{usageShortcuts-CP952NDO.js → usageShortcuts-Be5hddhr.js} +2 -2
- package/dist/client/assets/use-atom-command-RgcuqzP9.js +2 -0
- package/dist/client/assets/{useAriaLabelledBy-4I5xhNlP.js → useAriaLabelledBy-D-n0SDV6.js} +2 -2
- package/dist/client/assets/{useHandleNewThread-Bzaf_PDE.js → useHandleNewThread-BQ5wqZab.js} +2 -2
- package/dist/client/assets/{useLocation-QINZoaPz.js → useLocation-BN5q7LjL.js} +2 -2
- package/dist/client/assets/useNavigate-CDvr3Yvg.js +2 -0
- package/dist/client/assets/{useNavigateBack-CbbWf0z6.js → useNavigateBack-BWhsiBJ5.js} +2 -2
- package/dist/client/assets/{useParams-BTKEXLBT.js → useParams-DQgx0pmy.js} +2 -2
- package/dist/client/assets/{usePermissionStatus-Zbsv_90x.js → usePermissionStatus-FtemMvNg.js} +2 -2
- package/dist/client/assets/{usePullRequestActions-DGTJ6ne6.js → usePullRequestActions-D97OVSkM.js} +3 -3
- package/dist/client/assets/{useRegisterFieldControl-Cr87Snzk.js → useRegisterFieldControl-KOnbOVnX.js} +2 -2
- package/dist/client/assets/useScopedModelAvailability-BTR7tHpB.js +2 -0
- package/dist/client/assets/useSettings-BIggY3j1.js +3 -0
- package/dist/client/assets/{useT3ConnectAuthPrompt-BYqrzQIx.js → useT3ConnectAuthPrompt-CPGDAWRk.js} +2 -2
- package/dist/client/assets/{utils-DmfMX1v5.js → utils-BxISc9RR.js} +17 -17
- package/dist/client/assets/vcsRefInvalidation-h_E9Figo.js +2 -0
- package/dist/client/assets/{vennDiagram-4TSXK5OY-9Jx7JrgE.js → vennDiagram-4TSXK5OY-BnH-hzBf.js} +2 -2
- package/dist/client/assets/{wardley-WFR3VGLG-qG58RzFw.js → wardley-WFR3VGLG-BbiFWq4f.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-VM6X3IG4-8Ml3tzfR.js → wardleyDiagram-VM6X3IG4-DPf4ISf5.js} +2 -2
- package/dist/client/assets/{welcome-CPcQsM9H.js → welcome-DjYohRu3.js} +2 -2
- package/dist/client/assets/{xychartDiagram-S5SC5T6Z-C-u_0wo0.js → xychartDiagram-S5SC5T6Z-oaZh5sFY.js} +2 -2
- package/dist/client/index.html +1 -1
- package/package.json +1 -1
- package/dist/client/assets/ChatGptUsageButton-D93cMeTp.js +0 -2
- package/dist/client/assets/ChatMarkdown-CLD9Y6dg.js +0 -65
- package/dist/client/assets/CodexSetupSection.logic-DJw6xB7P.js +0 -2
- package/dist/client/assets/DiffPanel-Dqh76p3E.js +0 -2
- package/dist/client/assets/PreviewPanel-QkMfuC1J.js +0 -2
- package/dist/client/assets/ProjectDefaultsSettings-C6wxaRmJ.js +0 -2
- package/dist/client/assets/ScopedSwitch-DsEcG6rk.js +0 -2
- package/dist/client/assets/SettingsPanels-CI-FknGh.js +0 -39
- package/dist/client/assets/_chat-BKcYL38S.js +0 -45
- package/dist/client/assets/_chat.new-BX5LyFum.js +0 -4
- package/dist/client/assets/architecture-7GRP2DOG-DqzmsB35.js +0 -1
- package/dist/client/assets/archive-x-BN7DYXYC.js +0 -2
- package/dist/client/assets/arrow-left-DI1Oo3nI.js +0 -1
- package/dist/client/assets/arrow-right-DRgAj8le.js +0 -1
- package/dist/client/assets/arrow-up-down-C6OEPUz7.js +0 -1
- package/dist/client/assets/assets-_CWIS9vb.js +0 -2
- package/dist/client/assets/bell-DW1iPWzH.js +0 -1
- package/dist/client/assets/blocks-DKOyf4K4.js +0 -1
- package/dist/client/assets/bot-DYcBiSui.js +0 -1
- package/dist/client/assets/calendar-clock-BqL7OneL.js +0 -1
- package/dist/client/assets/channel-DbsUczqI.js +0 -2
- package/dist/client/assets/chart-no-axes-column-CtQ7A5KE.js +0 -1
- package/dist/client/assets/checkbox-CaZu1EKJ.js +0 -2
- package/dist/client/assets/classDiagram-ZZMXUADV-DotTjRcO.js +0 -2
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-DotTjRcO.js +0 -2
- package/dist/client/assets/corner-left-up-BT-2gfvH.js +0 -1
- package/dist/client/assets/download-DNjijPHR.js +0 -1
- package/dist/client/assets/dynamic-p5s8CQGu.js +0 -3
- package/dist/client/assets/earth-DGA4iwBJ.js +0 -1
- package/dist/client/assets/ellipsis-Cbd-Ac19.js +0 -1
- package/dist/client/assets/entities-82m-Smm-.js +0 -2
- package/dist/client/assets/eventmodeling-NTZA5JFV-OEIkdS25.js +0 -1
- package/dist/client/assets/eye-BUplLfz9.js +0 -1
- package/dist/client/assets/file-search-CcnLiCku.js +0 -1
- package/dist/client/assets/fileContextMenu-Dcs50sFI.js +0 -2
- package/dist/client/assets/flowDiagram-HODETNUW-BDZPeVYD.js +0 -1
- package/dist/client/assets/folder-git-2-5RczFn6m.js +0 -1
- package/dist/client/assets/folder-open-PwiT4lvQ.js +0 -1
- package/dist/client/assets/folder-plus--IokSBmG.js +0 -1
- package/dist/client/assets/git-branch-jf-x2c63.js +0 -1
- package/dist/client/assets/grip-vertical-OASdudbE.js +0 -1
- package/dist/client/assets/hard-drive-BxN5msOb.js +0 -1
- package/dist/client/assets/history-DdVU5lcf.js +0 -1
- package/dist/client/assets/house-mbks5FAa.js +0 -1
- package/dist/client/assets/keyboard-DckDn_SM.js +0 -1
- package/dist/client/assets/link-Dw3ue0Rm.js +0 -1
- package/dist/client/assets/list-1rglB5Lq.js +0 -1
- package/dist/client/assets/main-BB3F4O6Y.js +0 -30
- package/dist/client/assets/main-CnVegMVf.css +0 -2
- package/dist/client/assets/message-circle-question-mark-CLPs5tYP.js +0 -1
- package/dist/client/assets/message-square-BInn4EwR.js +0 -1
- package/dist/client/assets/message-square-dashed-Dea7_sXv.js +0 -1
- package/dist/client/assets/mouse-pointer-2-BPl1Yb5N.js +0 -1
- package/dist/client/assets/number-field-CVtwAsLe.js +0 -2
- package/dist/client/assets/openFileInPreview-C3O_ayUT.js +0 -2
- package/dist/client/assets/palette-DC6st-Ld.js +0 -1
- package/dist/client/assets/panel-left-BxNE-mqR.js +0 -1
- package/dist/client/assets/panels-top-left-CpwWAaSX.js +0 -1
- package/dist/client/assets/primary-uszZTzpR.js +0 -2
- package/dist/client/assets/primaryCloudLinkState-CWT2YTBZ.js +0 -2
- package/dist/client/assets/projectFilesQueryState-ELgLflk5.js +0 -2
- package/dist/client/assets/projectScriptEditor-BAuP_HeU.js +0 -2
- package/dist/client/assets/pullRequests-DjbQ49mZ.js +0 -2
- package/dist/client/assets/puzzle-foT3lPUZ.js +0 -1
- package/dist/client/assets/queries-Cq5C9N-K.js +0 -2
- package/dist/client/assets/query-DpwJQzeq.js +0 -2
- package/dist/client/assets/railroad-abnf-HS5TGJTU-C_4g8TOP.js +0 -1
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-CHZB5YoP.js +0 -1
- package/dist/client/assets/railroad-peg-WCYAUIDC-B-PbMjlp.js +0 -1
- package/dist/client/assets/rotate-ccw-rssHZoOL.js +0 -1
- package/dist/client/assets/rotate-cw-D726GGah.js +0 -1
- package/dist/client/assets/runtime-BQJQC-Ny.js +0 -6
- package/dist/client/assets/runtime-C6FwphD-.js +0 -2
- package/dist/client/assets/select-B4VvMEs2.js +0 -2
- package/dist/client/assets/server-BD_Y5Gsn.js +0 -2
- package/dist/client/assets/session-DsbInyNV.js +0 -2
- package/dist/client/assets/settings-2-Qrnq-5XQ.js +0 -1
- package/dist/client/assets/settings-MUAsYy_j.js +0 -1
- package/dist/client/assets/settings.appearance-B5-X4oyX.js +0 -2
- package/dist/client/assets/settings.archived-DVUmF0nS.js +0 -2
- package/dist/client/assets/settings.connections-EQYBOa7e.js +0 -2
- package/dist/client/assets/settings.diagnostics-CBcOEqPM.js +0 -2
- package/dist/client/assets/settings.general-BOmr4mSV.js +0 -2
- package/dist/client/assets/settings.plugins-DC4js6dE.js +0 -5
- package/dist/client/assets/settings.providers-CJuBTAiR.js +0 -3
- package/dist/client/assets/settings.scheduled-tasks-CvLNaadX.js +0 -2
- package/dist/client/assets/settings.source-control-DJWucVsM.js +0 -2
- package/dist/client/assets/settingsLayout-jP1a50ek.js +0 -3
- package/dist/client/assets/shield-check-k2SY7zjx.js +0 -2
- package/dist/client/assets/shield-question-mark-kKJBH4Uj.js +0 -1
- package/dist/client/assets/square-pen-DilH8raK.js +0 -1
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-DuLLhUia.js +0 -2
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-BrHQKVnf.js +0 -9
- package/dist/client/assets/text-search-DpDcKspl.js +0 -1
- package/dist/client/assets/threadSort-BoaTqeGH.js +0 -2
- package/dist/client/assets/toast-CjelgyqV.js +0 -2
- package/dist/client/assets/tooltip-taOyJZax.js +0 -2
- package/dist/client/assets/use-atom-command-CQHjSXPR.js +0 -2
- package/dist/client/assets/useNavigate-4thj06GJ.js +0 -2
- package/dist/client/assets/useScopedModelAvailability-BEfh0WXx.js +0 -2
- package/dist/client/assets/useSettings-CLtJrOYI.js +0 -3
- package/dist/client/assets/vcsRefInvalidation-nP-qgsHs.js +0 -2
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{r as t}from"./Icon-l19w4AjM.js";import{$b as n,Gn as r,Ho as i,Yn as a,Zn as o,du as s,fu as c,ha as l,hs as u,jx as d,l as f,lu as p,or as m,pu as h,sr as g,t as _,uu as v,vm as y}from"./utils-BxISc9RR.js";import{t as b}from"./box-CKWcQvdq.js";import{t as x}from"./chevron-down-DHV04o66.js";import{t as S}from"./plus-Cr075-cy.js";import{t as C}from"./plug-Cdxb0djR.js";import{t as w}from"./refresh-cw-PY_ECjtI.js";import{t as T}from"./search-Cr9eaeTj.js";import{t as E}from"./trash-2-CiyAV2xI.js";import{a as D,n as O,t as k}from"./tooltip-B0rhqi5b.js";import{n as A}from"./ChatMarkdown-C6UsXjP9.js";import{a as j,c as M,o as ee,s as te,t as ne}from"./select-CjGEfXy_.js";import{t as N}from"./useLocation-BN5q7LjL.js";import{p as P}from"./toast-BX9uiMAh.js";import{C as F}from"./useSettings-BIggY3j1.js";import{f as I}from"./server-BYntb2dN.js";import{t as L}from"./use-atom-command-RgcuqzP9.js";import{s as R,u as re}from"./providerSkills-D0IxW0_5.js";import{t as z}from"./skeleton-CS8ffFVv.js";import{t as B}from"./textarea-CYXHTTG6.js";import{n as ie,t as V}from"./toggle-group-W0bDGcPB.js";import{t as H}from"./input-DaCwubQj.js";import{c as U,r as ae,s as oe,t as se}from"./dialog-CPLO59bH.js";import{i as W,o as G,r as K,t as ce}from"./empty-tr-EsB66.js";import{n as le,r as ue,t as de}from"./input-group-DJwXFHGO.js";import{a as fe}from"./projectFilesQueryState-C1crs3C8.js";import{B as pe,P as q,U as J,a as me,i as he,s as ge}from"./settingsLayout-DV36_Jgq.js";import{Ar as _e,Fr as ve,Ir as ye,La as be,Mr as xe,Ni as Se,Nr as Ce,Pr as we,Qo as Te,bs as Ee,ir as De,jr as Oe,no as ke,uo as Ae}from"./main-uLg3xUJM.js";import{t as je}from"./SecretInput-CNWNAhNe.js";var Y=d(),Me={spawn:`Failed to start`,timeout:`Timed out`,protocol:`Not an MCP server`,http:`Can't connect`,auth:`Credentials rejected`};function Ne(e,t,n){if(!e.enabled)return{tone:`muted`,label:`Off`,needsSignIn:!1};if(n)return{tone:`muted`,label:`Checking…`,needsSignIn:!1};let r=e.transport.type===`http`&&e.transport.auth===`oauth`;if(r&&t?.auth===`signed-out`)return{tone:`warning`,label:`Needs sign-in`,needsSignIn:!0};let i=t?.health;switch(i?.status){case`connected`:return{tone:`success`,label:`Connected · ${i.toolCount} ${i.toolCount===1?`tool`:`tools`}`,needsSignIn:!1};case`needs-auth`:return{tone:`warning`,label:`Needs sign-in`,needsSignIn:r};case`error`:return{tone:`error`,label:Me[i.category],detail:i.message,needsSignIn:!1};default:return{tone:`muted`,label:`Not checked`,needsSignIn:!1}}}function Pe(e){let t=e.transport;if(t.type===`http`)try{let e=new URL(t.url);return`Remote · ${e.host}${e.pathname===`/`?``:e.pathname}`}catch{return`Remote`}return[t.command,...t.args].join(` `)}var X=e(t(),1),Z=e(l(),1);function Fe({environmentId:e,plugin:t,enabled:s,disabled:c,onDetails:l,onToggle:d}){let f=i(fe(e,t.path,`.claude-plugin/plugin.json`)),p=n(u(f)),h,_;try{let e=p&&!p.truncated?JSON.parse(p.contents):null;if(typeof e==`object`&&e&&(`description`in e&&typeof e.description==`string`&&(h=e.description),`author`in e)){let t=e.author;typeof t==`string`?_=t:typeof t==`object`&&t&&`name`in t&&typeof t.name==`string`&&(_=t.name)}}catch{}let v=re(e);return(0,Z.jsxs)(`li`,{className:`flex items-center gap-4 py-4`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`flex size-10 shrink-0 items-center justify-center rounded-xl border border-border/60 bg-muted`,children:(0,Z.jsx)(Ae,{className:`size-5 text-muted-foreground`})}),(0,Z.jsxs)(`div`,{className:`grid min-w-0 flex-1 gap-1`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2`,children:[(0,Z.jsx)(`span`,{className:`break-words text-sm font-medium`,children:t.name}),_?(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:_}):null]}),(0,Z.jsx)(`p`,{className:`break-words text-xs text-muted-foreground`,children:h??`Local Claude plugin`})]}),(0,Z.jsxs)(r,{children:[(0,Z.jsxs)(k,{children:[(0,Z.jsx)(D,{render:(0,Z.jsx)(m,{render:(0,Z.jsx)(g,{variant:`ghost`,size:`icon-sm`,"aria-label":`More for ${t.name}`,children:(0,Z.jsx)(Te,{"aria-hidden":!0})})})}),(0,Z.jsx)(O,{children:`Plugin actions`})]}),(0,Z.jsxs)(o,{align:`end`,children:[v.capabilities.canOpenDefault?(0,Z.jsx)(a,{onClick:()=>void v.activate(`open`,{environmentId:e,filePath:t.path,workspaceRoot:void 0}),children:`Open`}):null,(0,Z.jsx)(a,{onClick:l,children:`Details`})]})]}),(0,Z.jsx)(be,{"aria-label":`Load ${t.name}`,checked:s,disabled:c,onCheckedChange:d})]})}var Ie=[`Personal`,`Built-in`,`Project`,`Plugins`,`Other`];function Le(e){switch(R(e)){case`personal`:return`Personal`;case`system`:return`Built-in`;case`repo`:case`project`:return`Project`;case`app`:return`Plugins`;default:return`Other`}}var Re=[[`codex`,`Codex`],[`claudeAgent`,`Claude`],[`cursor`,`Cursor`],[`grok`,`Grok`],[`antigravity`,`Antigravity`],[`opencode`,`OpenCode`],[`muse`,`Muse`],[`pi`,`Pi`]],ze={remote:`Remote servers aren't supported by this provider`,"working-directory":`Servers with a working directory aren't supported here`,provider:`Not supported by this provider yet`};function Be(e){return Re.map(([t,n])=>{let r=s(t,e.transport),i=y.make(t);return{driver:i,label:n,enabled:r.supported&&!e.disabledProviders.includes(i),...r.supported?{}:{unsupported:ze[r.reason]}}})}var Ve={name:``,type:`stdio`,command:``,args:``,cwd:``,url:``,auth:`none`,values:[]};function He(e){let t=e.transport;return t.type===`stdio`?{...Ve,name:e.name,type:`stdio`,command:t.command,args:t.args.join(`
|
|
2
|
+
`),cwd:t.cwd??``,values:Object.entries(t.env).map(([e,t])=>({key:e,value:t}))}:{...Ve,name:e.name,type:`http`,url:t.url,auth:t.auth,values:Object.entries(t.headers).map(([e,t])=>({key:e,value:t}))}}var Q=/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/;function Ue(e,t){let n=e.name.trim();if(!n)return`Enter a name.`;if(!Q.test(n)||n.length>64)return`Use letters, numbers, dashes, and underscores.`;if(n===`t3-code`)return`That name belongs to P4 Code's own server.`;if(t.has(n))return`Another server already uses that name.`;if(e.type===`stdio`&&!e.command.trim())return`Enter the command that starts it.`;if(e.type===`http`&&!/^https?:\/\/\S+$/i.test(e.url.trim()))return`Enter an http or https URL.`}function We(e,t){let n=Object.fromEntries(e.values.map(e=>[e.key.trim(),e.value]).filter(([e])=>e.length>0)),r=e.type===`stdio`?{type:`stdio`,command:e.command.trim(),args:e.args.split(`
|
|
3
|
+
`).map(e=>e.trim()).filter(e=>e.length>0),env:n,...e.cwd.trim()?{cwd:e.cwd.trim()}:{}}:{type:`http`,url:e.url.trim(),headers:n,auth:e.auth};return{name:e.name.trim(),enabled:t?.enabled??!0,transport:r,disabledProviders:t?.disabledProviders??[],...t?.source===void 0?{}:{source:t.source}}}function Ge(e){let t=new Map;for(let n of e){let e=n.displayName??n.driver;for(let r of n.skills){let n=`${r.scope??``}\u0000${r.name}`,i=t.get(n);i===void 0?t.set(n,{skill:r,providers:[e]}):i.providers.includes(e)||i.providers.push(e)}}return[...t.values()].toSorted((e,t)=>Ke(e.skill).localeCompare(Ke(t.skill)))}var Ke=e=>e.displayName??e.name.split(/[-_\s]+/).filter(e=>e.length>0).map(e=>e[0].toUpperCase()+e.slice(1)).join(` `);function qe(e){switch(e){case void 0:return;case`user`:return`Personal`;case`project`:case`repo`:return`Project`;case`system`:return`Built-in`;default:return e[0].toUpperCase()+e.slice(1)}}function Je(e){let t=/^---\r?\n[\s\S]*?\r?\n---\r?\n?/.exec(e);return(t===null?e:e.slice(t[0].length)).trimStart()}function Ye(e){let t=(0,Y.c)(14),{title:n,onBack:r,onUninstall:i,children:a}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Z.jsx)(Ee,{"aria-hidden":!0}),t[0]=o):o=t[0];let s;t[1]===r?s=t[2]:(s=(0,Z.jsxs)(g,{size:`xs`,variant:`ghost`,className:`w-fit`,onClick:r,children:[o,`Back`]}),t[1]=r,t[2]=s);let c;t[3]===n?c=t[4]:(c=(0,Z.jsx)(`h2`,{className:`min-w-0 truncate text-xl font-semibold text-foreground`,children:n}),t[3]=n,t[4]=c);let l;t[5]===i?l=t[6]:(l=i?(0,Z.jsxs)(g,{size:`sm`,variant:`destructive-outline`,onClick:i,children:[(0,Z.jsx)(E,{"aria-hidden":!0}),`Uninstall`]}):null,t[5]=i,t[6]=l);let u;t[7]!==c||t[8]!==l?(u=(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[c,l]}),t[7]=c,t[8]=l,t[9]=u):u=t[9];let d;return t[10]!==a||t[11]!==s||t[12]!==u?(d=(0,Z.jsxs)(`div`,{className:`grid gap-6`,children:[s,u,a]}),t[10]=a,t[11]=s,t[12]=u,t[13]=d):d=t[13],d}function $(e){let t=(0,Y.c)(6),{label:n,htmlFor:r,children:i}=e,a;t[0]!==r||t[1]!==n?(a=(0,Z.jsx)(Se,{htmlFor:r,children:n}),t[0]=r,t[1]=n,t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==a?(o=(0,Z.jsxs)(`div`,{className:`grid gap-2 px-4 py-4`,children:[a,i]}),t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function Xe(e){let t=(0,Y.c)(69),{server:n,takenNames:r,onSave:i}=e,a;t[0]===n?a=t[1]:(a=n===void 0?Ve:He(n),t[0]=n,t[1]=a);let o=a,[s,c]=(0,X.useState)(o),l;t[2]===o?l=t[3]:(l=JSON.stringify(o),t[2]=o,t[3]=l);let u=l,[d,f]=(0,X.useState)(u);u!==d&&(f(u),c(o));let p;t[4]!==s||t[5]!==r?(p=Ue(s,r),t[4]=s,t[5]=r,t[6]=p):p=t[6];let m=p,h;t[7]===s?h=t[8]:(h=JSON.stringify(s),t[7]=s,t[8]=h);let _=h!==u,v;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(v=e=>c(t=>({...t,...e})),t[9]=v):v=t[9];let y=v,b=s.type===`stdio`?`Environment variables`:`Headers`,x;t[10]===s.values?x=t[11]:(x=(e,t)=>y({values:s.values.map((n,r)=>r===e?{...n,...t}:n)}),t[10]=s.values,t[11]=x);let C=x,w;t[12]!==_||t[13]!==s||t[14]!==i||t[15]!==m||t[16]!==n?(w=e=>{e.preventDefault(),_&&m===void 0&&i(We(s,n))},t[12]=_,t[13]=s,t[14]=i,t[15]=m,t[16]=n,t[17]=w):w=t[17];let T;t[18]===n?T=t[19]:(T=n===void 0?null:(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`To switch between a command and a URL, uninstall the server and add it again.`}),t[18]=n,t[19]=T);let D;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(D=e=>y({name:e.target.value}),t[20]=D):D=t[20];let O;t[21]===s.name?O=t[22]:(O=(0,Z.jsx)($,{label:`Name`,htmlFor:`mcp-server-name`,children:(0,Z.jsx)(H,{id:`mcp-server-name`,placeholder:`github`,value:s.name,onChange:D})}),t[21]=s.name,t[22]=O);let k;t[23]!==s.type||t[24]!==n?(k=n===void 0?(0,Z.jsx)($,{label:`Type`,children:(0,Z.jsxs)(ie,{"aria-label":`How P4 Code reaches the server`,value:[s.type],onValueChange:e=>{let t=e[0];(t===`stdio`||t===`http`)&&y({type:t,values:[]})},children:[(0,Z.jsx)(V,{value:`stdio`,children:`Command`}),(0,Z.jsx)(V,{value:`http`,children:`URL`})]})}):null,t[23]=s.type,t[24]=n,t[25]=k):k=t[25];let A;t[26]!==s.args||t[27]!==s.auth||t[28]!==s.command||t[29]!==s.cwd||t[30]!==s.type||t[31]!==s.url?(A=s.type===`stdio`?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)($,{label:`Command`,htmlFor:`mcp-server-command`,children:(0,Z.jsx)(H,{id:`mcp-server-command`,placeholder:`npx`,value:s.command,onChange:e=>y({command:e.target.value})})}),(0,Z.jsx)($,{label:`Arguments, one per line`,htmlFor:`mcp-server-args`,children:(0,Z.jsx)(B,{id:`mcp-server-args`,placeholder:`-y
|
|
4
|
+
@modelcontextprotocol/server-postgres`,value:s.args,onChange:e=>y({args:e.target.value})})}),(0,Z.jsx)($,{label:`Working directory (optional)`,htmlFor:`mcp-server-cwd`,children:(0,Z.jsx)(H,{id:`mcp-server-cwd`,placeholder:`The session's project folder`,value:s.cwd,onChange:e=>y({cwd:e.target.value})})})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)($,{label:`URL`,htmlFor:`mcp-server-url`,children:(0,Z.jsx)(H,{id:`mcp-server-url`,placeholder:`https://mcp.example.com/mcp`,value:s.url,onChange:e=>y({url:e.target.value})})}),(0,Z.jsx)($,{label:`Authentication`,children:(0,Z.jsxs)(ne,{value:s.auth,onValueChange:e=>{(e===`none`||e===`oauth`)&&y({auth:e})},children:[(0,Z.jsx)(te,{"aria-label":`Authentication`,children:(0,Z.jsx)(M,{children:Ze})}),(0,Z.jsxs)(ee,{alignItemWithTrigger:!1,children:[(0,Z.jsx)(j,{value:`none`,children:`None or headers`}),(0,Z.jsx)(j,{value:`oauth`,children:`OAuth (sign in after saving)`})]})]})})]}),t[26]=s.args,t[27]=s.auth,t[28]=s.command,t[29]=s.cwd,t[30]=s.type,t[31]=s.url,t[32]=A):A=t[32];let N;t[33]!==s.type||t[34]!==s.values||t[35]!==C||t[36]!==b?(N=s.values.map((e,t)=>(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(H,{"aria-label":`${b} name`,placeholder:s.type===`stdio`?`API_TOKEN`:`Authorization`,value:e.key,onChange:e=>C(t,{key:e.target.value})}),(0,Z.jsx)(je,{"aria-label":`${b} value`,placeholder:`Value`,value:e.value,onChange:e=>C(t,{value:e.target.value})}),(0,Z.jsx)(g,{size:`icon-sm`,variant:`ghost`,"aria-label":`Remove ${e.key||`row`}`,onClick:()=>y({values:s.values.filter((e,n)=>n!==t)}),children:(0,Z.jsx)(E,{"aria-hidden":!0})})]},t)),t[33]=s.type,t[34]=s.values,t[35]=C,t[36]=b,t[37]=N):N=t[37];let P;t[38]===s.values?P=t[39]:(P=()=>y({values:[...s.values,{key:``,value:``}]}),t[38]=s.values,t[39]=P);let F;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,Z.jsx)(S,{"aria-hidden":!0}),t[40]=F):F=t[40];let I=s.type===`stdio`?`variable`:`header`,L;t[41]!==P||t[42]!==I?(L=(0,Z.jsxs)(g,{variant:`soft`,onClick:P,children:[F,`Add `,I]}),t[41]=P,t[42]=I,t[43]=L):L=t[43];let R;t[44]!==N||t[45]!==L?(R=(0,Z.jsxs)(`div`,{className:`grid gap-2`,children:[N,L]}),t[44]=N,t[45]=L,t[46]=R):R=t[46];let re;t[47]!==R||t[48]!==b?(re=(0,Z.jsx)($,{label:b,children:R}),t[47]=R,t[48]=b,t[49]=re):re=t[49];let z;t[50]!==O||t[51]!==k||t[52]!==A||t[53]!==re?(z=(0,Z.jsxs)(J,{children:[O,k,A,re]}),t[50]=O,t[51]=k,t[52]=A,t[53]=re,t[54]=z):z=t[54];let U;t[55]!==_||t[56]!==m?(U=_&&m!==void 0?(0,Z.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-foreground`,children:m}):null,t[55]=_,t[56]=m,t[57]=U):U=t[57];let ae=!_||m!==void 0,oe=n===void 0?`Add server`:`Save`,se;t[58]!==ae||t[59]!==oe?(se=(0,Z.jsx)(g,{type:`submit`,disabled:ae,children:oe}),t[58]=ae,t[59]=oe,t[60]=se):se=t[60];let W;t[61]!==U||t[62]!==se?(W=(0,Z.jsxs)(`div`,{className:`flex items-center justify-end gap-3`,children:[U,se]}),t[61]=U,t[62]=se,t[63]=W):W=t[63];let G;return t[64]!==z||t[65]!==W||t[66]!==w||t[67]!==T?(G=(0,Z.jsxs)(`form`,{className:`grid gap-3`,onSubmit:w,children:[T,z,W]}),t[64]=z,t[65]=W,t[66]=w,t[67]=T,t[68]=G):G=t[68],G}function Ze(e){return e===`oauth`?`OAuth (sign in after saving)`:`None or headers`}function Qe(e){let t=(0,Y.c)(35),{plugin:n,environmentLabel:r,onSave:i}=e,[a,o]=(0,X.useState)(n?.name??``),[s,c]=(0,X.useState)(n?.path??``),l=`${n?.name??``}\u0000${n?.path??``}`,[u,d]=(0,X.useState)(l);l!==u&&(d(l),o(n?.name??``),c(n?.path??``));let f=a!==(n?.name??``)||s!==(n?.path??``),p;t[0]!==a||t[1]!==s?(p=a.trim().length>0&&s.trim().startsWith(`/`),t[0]=a,t[1]=s,t[2]=p):p=t[2];let m=p,h;t[3]!==f||t[4]!==a||t[5]!==i||t[6]!==s||t[7]!==n?.enabled||t[8]!==m?(h=e=>{e.preventDefault(),f&&m&&i({name:a.trim(),path:s.trim(),enabled:n?.enabled??!0})},t[3]=f,t[4]=a,t[5]=i,t[6]=s,t[7]=n?.enabled,t[8]=m,t[9]=h):h=t[9];let _;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(_=e=>o(e.target.value),t[10]=_):_=t[10];let v;t[11]===a?v=t[12]:(v=(0,Z.jsx)($,{label:`Name`,htmlFor:`plugin-name`,children:(0,Z.jsx)(H,{id:`plugin-name`,value:a,onChange:_})}),t[11]=a,t[12]=v);let y=`Folder on ${r}`,b;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>c(e.target.value),t[13]=b):b=t[13];let x;t[14]===s?x=t[15]:(x=(0,Z.jsx)(H,{id:`plugin-path`,placeholder:`/Users/me/plugins/my-plugin`,value:s,onChange:b}),t[14]=s,t[15]=x);let S;t[16]!==y||t[17]!==x?(S=(0,Z.jsx)($,{label:y,htmlFor:`plugin-path`,children:x}),t[16]=y,t[17]=x,t[18]=S):S=t[18];let C;t[19]!==v||t[20]!==S?(C=(0,Z.jsxs)(J,{children:[v,S]}),t[19]=v,t[20]=S,t[21]=C):C=t[21];let w;t[22]!==f||t[23]!==m?(w=f&&!m?(0,Z.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-foreground`,children:`Enter a name and the plugin folder's full path.`}):null,t[22]=f,t[23]=m,t[24]=w):w=t[24];let T=!f||!m,E=n===void 0?`Add plugin`:`Save`,D;t[25]!==T||t[26]!==E?(D=(0,Z.jsx)(g,{type:`submit`,disabled:T,children:E}),t[25]=T,t[26]=E,t[27]=D):D=t[27];let O;t[28]!==w||t[29]!==D?(O=(0,Z.jsxs)(`div`,{className:`flex items-center justify-end gap-3`,children:[w,D]}),t[28]=w,t[29]=D,t[30]=O):O=t[30];let k;return t[31]!==O||t[32]!==h||t[33]!==C?(k=(0,Z.jsxs)(`form`,{className:`grid gap-3`,onSubmit:h,children:[C,O]}),t[31]=O,t[32]=h,t[33]=C,t[34]=k):k=t[34],k}var $e=e=>e.replace(/[\\/][^\\/]*$/,``)||`/`;function et(e){let t=(0,Y.c)(69),{entry:s,environmentId:c,onClose:l}=e,{skill:d,providers:f}=s,p,h,_;t[0]!==c||t[1]!==d.path?(p=$e(d.path),h=i,_=fe(c,p,d.path),t[0]=c,t[1]=d.path,t[2]=p,t[3]=h,t[4]=_):(p=t[2],h=t[3],_=t[4]);let v=h(_),y;t[5]===v?y=t[6]:(y=n(u(v)),t[5]=v,t[6]=y);let x=y,S=re(c),{copyToClipboard:C}=P(),w;t[7]!==c||t[8]!==d.path?(w={environmentId:c,filePath:d.path,workspaceRoot:void 0},t[7]=c,t[8]=d.path,t[9]=w):w=t[9];let T=w,E=d.shortDescription??d.description,D;t[10]===d.scope?D=t[11]:(D=qe(d.scope),t[10]=d.scope,t[11]=D);let O=D,k;t[12]===l?k=t[13]:(k=e=>!e&&l(),t[12]=l,t[13]=k);let j;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`flex size-12 shrink-0 items-center justify-center rounded-full border border-border/60 text-muted-foreground`,children:(0,Z.jsx)(b,{className:`size-5`})}),t[14]=j):j=t[14];let M;t[15]===d?M=t[16]:(M=Ke(d),t[15]=d,t[16]=M);let ee=`More for ${M}`,te;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(te=(0,Z.jsx)(Te,{"aria-hidden":!0}),t[17]=te):te=t[17];let ne;t[18]===ee?ne=t[19]:(ne=(0,Z.jsx)(m,{render:(0,Z.jsx)(g,{size:`icon-sm`,variant:`ghost`,"aria-label":ee,children:te})}),t[18]=ee,t[19]=ne);let N;t[20]!==S||t[21]!==T?(N=S.capabilities.canOpenDefault?(0,Z.jsx)(a,{onClick:()=>void S.activate(`open`,T),children:`Open`}):null,t[20]=S,t[21]=T,t[22]=N):N=t[22];let F;t[23]!==S||t[24]!==T?(F=S.capabilities.revealLabel?(0,Z.jsx)(a,{onClick:()=>void S.activate(`reveal-in-folder`,T),children:S.capabilities.revealLabel}):null,t[23]=S,t[24]=T,t[25]=F):F=t[25];let I=x===null,L;t[26]!==C||t[27]!==x?(L=()=>x&&C(x.contents,void 0),t[26]=C,t[27]=x,t[28]=L):L=t[28];let R;t[29]!==I||t[30]!==L?(R=(0,Z.jsx)(a,{disabled:I,onClick:L,children:`Copy Markdown`}),t[29]=I,t[30]=L,t[31]=R):R=t[31];let B;t[32]!==N||t[33]!==F||t[34]!==R?(B=(0,Z.jsxs)(o,{align:`end`,children:[N,F,R]}),t[32]=N,t[33]=F,t[34]=R,t[35]=B):B=t[35];let ie;t[36]!==ne||t[37]!==B?(ie=(0,Z.jsxs)(`div`,{className:`flex items-start justify-between gap-3 pe-8`,children:[j,(0,Z.jsxs)(r,{children:[ne,B]})]}),t[36]=ne,t[37]=B,t[38]=ie):ie=t[38];let V;t[39]===d?V=t[40]:(V=Ke(d),t[39]=d,t[40]=V);let H;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,Z.jsx)(`span`,{className:`font-normal text-muted-foreground`,children:`Skill`}),t[41]=H):H=t[41];let W;t[42]===V?W=t[43]:(W=(0,Z.jsxs)(U,{children:[V,` `,H]}),t[42]=V,t[43]=W);let G;t[44]===E?G=t[45]:(G=E?(0,Z.jsx)(ae,{children:E}):null,t[44]=E,t[45]=G);let K;t[46]!==W||t[47]!==G?(K=(0,Z.jsxs)(`div`,{className:`grid gap-1.5`,children:[W,G]}),t[46]=W,t[47]=G,t[48]=K):K=t[48];let ce;t[49]!==p||t[50]!==c||t[51]!==x||t[52]!==v?(ce=(0,Z.jsx)(`div`,{className:`max-h-[50vh] min-h-24 overflow-y-auto rounded-xl border border-border/60 bg-card/40 px-5 py-4`,children:x===null?v._tag===`Failure`?(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This skill's file could not be read. It may have moved since the provider last scanned it.`}):(0,Z.jsxs)(`div`,{className:`grid gap-2`,children:[(0,Z.jsx)(z,{className:`h-4 w-3/4`}),(0,Z.jsx)(z,{className:`h-4 w-full`}),(0,Z.jsx)(z,{className:`h-4 w-2/3`})]}):(0,Z.jsx)(A,{text:Je(x.contents),cwd:p,environmentId:c})}),t[49]=p,t[50]=c,t[51]=x,t[52]=v,t[53]=ce):ce=t[53];let le;t[54]===f?le=t[55]:(le=f.join(`, `),t[54]=f,t[55]=le);let ue=`Loaded by ${le}`,de;t[56]!==O||t[57]!==ue?(de=[O,ue].filter(Boolean),t[56]=O,t[57]=ue,t[58]=de):de=t[58];let pe=de.join(` · `),q;t[59]===pe?q=t[60]:(q=(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:pe}),t[59]=pe,t[60]=q);let J;t[61]!==ie||t[62]!==K||t[63]!==ce||t[64]!==q?(J=(0,Z.jsx)(oe,{className:`max-w-2xl`,children:(0,Z.jsxs)(`div`,{className:`grid min-h-0 gap-4 p-6`,children:[ie,K,ce,q]})}),t[61]=ie,t[62]=K,t[63]=ce,t[64]=q,t[65]=J):J=t[65];let me;return t[66]!==J||t[67]!==k?(me=(0,Z.jsx)(se,{open:!0,onOpenChange:k,children:J}),t[66]=J,t[67]=k,t[68]=me):me=t[68],me}var tt={claude:`Claude`,codex:`Codex`,cursor:`Cursor`},nt={success:`bg-success`,warning:`bg-warning`,error:`bg-destructive`,muted:`bg-muted-foreground/40`},rt={success:`text-success-foreground`,warning:`text-warning-foreground`,error:`text-destructive-foreground`,muted:`text-muted-foreground`};function it(e){let t=(0,Y.c)(13),{status:n,className:r}=e,i=rt[n.tone],a;t[0]!==r||t[1]!==i?(a=_(`flex min-w-0 items-center gap-1.5 text-xs`,i,r),t[0]=r,t[1]=i,t[2]=a):a=t[2];let o=nt[n.tone],s;t[3]===o?s=t[4]:(s=_(`size-1.5 shrink-0 rounded-full`,o),t[3]=o,t[4]=s);let c;t[5]===s?c=t[6]:(c=(0,Z.jsx)(`span`,{"aria-hidden":!0,className:s}),t[5]=s,t[6]=c);let l;t[7]===n.label?l=t[8]:(l=(0,Z.jsx)(`span`,{className:`truncate`,children:n.label}),t[7]=n.label,t[8]=l);let u;return t[9]!==a||t[10]!==c||t[11]!==l?(u=(0,Z.jsxs)(`span`,{className:a,children:[c,l]}),t[9]=a,t[10]=c,t[11]=l,t[12]=u):u=t[12],u}function at(){let e=(0,Y.c)(6),{environment:t,scope:n}=pe(),r=t?.connection.phase===`connected`&&t.serverConfig!==null,i=r?t.environmentId:null,a=r&&t.serverConfig?.environment.capabilities.mcpRegistry===!0,o;return e[0]!==r||e[1]!==t||e[2]!==i||e[3]!==n||e[4]!==a?(o=(0,Z.jsx)(he,{width:`wide`,children:t===null||!r?(0,Z.jsx)(ce,{children:(0,Z.jsxs)(W,{children:[(0,Z.jsx)(G,{children:`Connect to manage plugins and MCP servers`}),(0,Z.jsx)(K,{children:`They live on each environment. Choose a connected one above.`})]})}):!a||i===null?(0,Z.jsx)(ce,{children:(0,Z.jsxs)(W,{children:[(0,Z.jsxs)(G,{children:[`Update `,t.label,` to manage plugins and MCP servers`]}),(0,Z.jsx)(K,{children:`This environment runs a version without them.`})]})}):(0,Z.jsx)(lt,{environmentId:i,environmentLabel:t.label,projectId:n.kind===`checkout`?n.checkout.id:n.kind===`project`?n.members.find(e=>e.environmentId===i)?.id:void 0,projectLabel:n.kind===`project`||n.kind===`checkout`?n.label:void 0},i)}),e[0]=r,e[1]=t,e[2]=i,e[3]=n,e[4]=a,e[5]=o):o=e[5],o}var ot={plugins:`Search plugins`,mcps:`Search MCP servers`,skills:`Search skills`},st=(e,...t)=>e===``||t.some(t=>t.toLowerCase().includes(e));function ct(e){let t=(0,Y.c)(9),{text:n}=e,r=(0,X.useRef)(null),[i,a]=(0,X.useState)(!1),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=e=>{let t=r.current;a(e&&t!==null&&t.scrollWidth>t.clientWidth)},t[0]=o):o=t[0];let s;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Z.jsx)(`span`,{ref:r,tabIndex:0,className:`block truncate text-xs text-muted-foreground`}),t[1]=s):s=t[1];let c,l;t[2]===n?(c=t[3],l=t[4]):(c=(0,Z.jsx)(D,{render:s,children:n}),l=(0,Z.jsx)(O,{children:n}),t[2]=n,t[3]=c,t[4]=l);let u;return t[5]!==i||t[6]!==c||t[7]!==l?(u=(0,Z.jsxs)(k,{open:i,onOpenChange:o,children:[c,l]}),t[5]=i,t[6]=c,t[7]=l,t[8]=u):u=t[8],u}function lt({environmentId:e,environmentLabel:t,projectId:n,projectLabel:s}){let l=N({select:e=>e.hash}),[u,d]=(0,X.useState)(()=>l.replace(/^#/,``)===`mcp-servers`?`mcps`:l.replace(/^#/,``)===`skills`?`skills`:`plugins`),[_,y]=(0,X.useState)(``),[S,E]=(0,X.useState)(`All categories`),A=i(I.configValueAtom(e))?.providers,P=(0,X.useMemo)(()=>Ge(A??[]),[A]),[R,z]=(0,X.useState)(null),B=q(e=>e.mcpServers),H=q(e=>e.plugins),U=q(e=>e.projectSettingsOverrides),ae=q(e=>e.skillOverrides),oe=re(e),se=i(I.updateSettings.permissionAtom(e)),[W,G]=(0,X.useState)(null),K=i(I.mcpRegistryTest.permissionAtom(e)),ce=F(e),fe=L(I.updateSettings,{label:`update MCP registry`,reportFailure:!0}),pe=L(I.mcpRegistryState,{reportFailure:!1}),J=L(I.mcpRegistryTest,{label:`check MCP server`,reportFailure:!0}),me=L(I.mcpRegistryOAuthStart,{label:`start MCP sign-in`,reportFailure:!0}),he=L(I.mcpRegistryOAuthSignOut,{label:`sign out of MCP server`,reportFailure:!0}),Se=L(I.mcpRegistryDiscover,{reportFailure:!1}),Ee=L(I.mcpRegistryImport,{label:`import MCP servers`,reportFailure:!0}),[je,Y]=(0,X.useState)({}),[Me,Re]=(0,X.useState)(new Set),[ze,Be]=(0,X.useState)([]),[Ve,He]=(0,X.useState)({kind:`list`}),Q=Ve.kind!==`list`&&Ve.id!==null&&(Ve.kind===`server`?B[Ve.id]===void 0:H[Ve.id]===void 0)?{kind:`list`}:Ve,[Ue,We]=(0,X.useState)(l);if(l!==Ue){We(l);let e=l.replace(/^#/,``);(e===`mcp-servers`||e===`plugins`||e===`skills`)&&(d(e===`mcp-servers`?`mcps`:e),He({kind:`list`}))}let[qe,Je]=(0,X.useState)(null),[$,Ze]=(0,X.useState)(null),$e=(0,X.useMemo)(()=>Object.entries(B).map(([e,t])=>[p.make(e),t]).toSorted(([,e],[,t])=>e.name.localeCompare(t.name)),[B]),nt=(0,X.useMemo)(()=>Object.entries(H).map(([e,t])=>[v.make(e),t]),[H]),rt=(0,X.useCallback)(async()=>{let t=await pe({environmentId:e,input:{}});t._tag===`Success`&&Y(t.value.servers)},[e,pe]),at=(0,X.useCallback)(async()=>{if(!K)return;let t=await Se({environmentId:e,input:n===void 0?{}:{projectId:n}});t._tag===`Success`&&Be(t.value.servers)},[K,Se,e,n]);(0,X.useEffect)(()=>{rt(),at()},[rt,at]),(0,X.useEffect)(()=>{if($===null)return;let e=()=>void rt();return window.addEventListener(`focus`,e),()=>window.removeEventListener(`focus`,e)},[$,rt]);let lt=e=>{d(`mcps`),He({kind:`server`,id:e})},ut=e=>{d(`plugins`),He({kind:`plugin`,id:e})},pt=t=>fe({environmentId:e,input:{patch:t}}),mt=async t=>{Re(e=>new Set(e).add(t));let n=await J({environmentId:e,input:{serverId:t}});Re(e=>{let n=new Set(e);return n.delete(t),n}),n._tag===`Success`&&Y(e=>({...e,[t]:n.value}))},ht=async(e,t,n)=>{(await pt({mcpServers:{[e]:t}}))._tag===`Success`&&(n&&He({kind:`list`}),at(),t.enabled&&await mt(e))},gt=async t=>{let n=ce??window.location.origin,r=await me({environmentId:e,input:{serverId:t,origin:new URL(n,window.location.href).origin}});if(r._tag===`Success`){if(r.value.authorizationUrl===null){await mt(t);return}Ze(t),window.open(r.value.authorizationUrl,`_blank`,`noopener,noreferrer`)}},_t=(e,t,r)=>{if(n===void 0)return;let i=U[n]??{},a={...i[e]};r===void 0?delete a[t]:a[t]={enabled:r},pt({projectSettingsOverrides:{[n]:{...i,[e]:a}}})},vt=async()=>{let t=qe;if(Je(null),t!==null){if(t.kind===`server`){let n=B[t.id];n?.transport.type===`http`&&n.transport.auth===`oauth`&&await he({environmentId:e,input:{serverId:t.id}}),await pt({mcpServers:{[t.id]:null}})}else await pt({plugins:{[t.id]:null}});He({kind:`list`})}},yt=ze.filter(e=>!e.alreadyAdded),bt=new Set($e.filter(([e])=>Q.kind!==`server`||e!==Q.id).map(([,e])=>e.name)),xt=_.trim().toLowerCase(),St=$e.filter(([,e])=>st(xt,e.name,Pe(e))),Ct=nt.filter(([,e])=>st(xt,e.name,e.path)),wt=yt.filter(e=>st(xt,e.name,e.summary)),Tt=(e,t)=>c({mcpServers:B,plugins:H,projectSettingsOverrides:U},e,n??null,t),Et=(e,t,r)=>{if(n!==void 0){_t(e,t,r);return}pt(e===`mcpServers`?{mcpServers:{[t]:{...B[t],enabled:r}}}:{plugins:{[t]:{...H[t],enabled:r}}})},Dt=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-4`,children:[(0,Z.jsxs)(`div`,{className:`grid gap-1`,children:[(0,Z.jsx)(`h1`,{className:`text-2xl font-semibold text-foreground`,children:`Plugins`}),(0,Z.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Manage plugins, skills, and MCP servers given to agents on `,t,`.`]})]}),K?(0,Z.jsxs)(r,{children:[(0,Z.jsx)(m,{render:(0,Z.jsxs)(g,{children:[`Add`,(0,Z.jsx)(x,{"aria-hidden":!0})]})}),(0,Z.jsxs)(o,{align:`end`,children:[(0,Z.jsxs)(a,{onClick:()=>lt(null),children:[(0,Z.jsx)(C,{"aria-hidden":!0}),`Add MCP server`]}),(0,Z.jsxs)(a,{onClick:()=>ut(null),children:[(0,Z.jsx)(Ae,{"aria-hidden":!0}),`Add plugin`]})]})]}):null]}),Ot=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,Z.jsxs)(ie,{"aria-label":`Show`,variant:`default`,value:[u],onValueChange:e=>{let t=e[0];(t===`plugins`||t===`mcps`||t===`skills`)&&(d(t),He({kind:`list`}))},children:[(0,Z.jsxs)(V,{value:`plugins`,...De(`plugins`),children:[`Plugins `,(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:nt.length})]}),(0,Z.jsxs)(V,{value:`mcps`,...De(`mcp-servers`),children:[`MCPs `,(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:$e.length})]}),(0,Z.jsxs)(V,{value:`skills`,...De(`skills`),children:[`Skills `,(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:P.length})]})]}),(0,Z.jsxs)(`div`,{className:`flex w-full gap-2 sm:w-auto`,children:[u===`skills`?(0,Z.jsx)(`div`,{className:`w-fit shrink-0`,children:(0,Z.jsxs)(ne,{value:S,onValueChange:e=>e&&E(e),children:[(0,Z.jsx)(te,{"aria-label":`Skill category`,children:(0,Z.jsx)(M,{})}),(0,Z.jsxs)(ee,{children:[(0,Z.jsx)(j,{value:`All categories`,children:`All categories`}),Ie.filter(e=>e===`Personal`||e===`Built-in`||P.some(({skill:t})=>Le(t)===e)).map(e=>(0,Z.jsx)(j,{value:e,children:e},e))]})]})}):null,(0,Z.jsxs)(de,{className:`min-w-0 flex-1 sm:w-56`,children:[(0,Z.jsx)(le,{children:(0,Z.jsx)(T,{"aria-hidden":!0})}),(0,Z.jsx)(ue,{"aria-label":ot[u],placeholder:ot[u],value:_,onChange:e=>y(e.currentTarget.value)})]})]})]}),kt=(e,t)=>(0,Z.jsxs)(k,{children:[(0,Z.jsx)(D,{render:(0,Z.jsx)(g,{size:`icon-sm`,variant:`ghost`,"aria-label":e,onClick:t,children:(0,Z.jsx)(ke,{"aria-hidden":!0})})}),(0,Z.jsx)(O,{children:e})]}),At=Ct.length===0?(0,Z.jsx)(`p`,{className:`py-6 text-sm text-muted-foreground`,children:nt.length===0?`No plugins yet. Add a Claude Code plugin folder to load it in Claude sessions.`:`No plugins match your search.`}):(0,Z.jsx)(`ul`,{className:`grid gap-1`,children:Ct.map(([t,n])=>(0,Z.jsx)(Fe,{environmentId:e,plugin:n,enabled:Tt(`plugins`,t),disabled:!se,onDetails:()=>ut(t),onToggle:e=>Et(`plugins`,t,e)},t))}),jt=P.filter(({skill:e})=>(S===`All categories`||Le(e)===S)&&st(xt,Ke(e),e.name,e.shortDescription??``,e.description??``)),Mt=jt.length===0?(0,Z.jsx)(`p`,{className:`py-6 text-sm text-muted-foreground`,children:P.length===0?`No skills found. Providers report the skills they load when they start.`:`No skills match these filters.`}):(0,Z.jsxs)(`div`,{className:`grid gap-3`,children:[(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Switches apply to new Claude and OpenCode sessions.`}),(0,Z.jsx)(`ul`,{className:`grid gap-1`,children:jt.map(t=>{let i=Le(t.skill),s=(A??[]).filter(e=>h(e.driver)&&e.skills.some(e=>e.name===t.skill.name)),c=s.length?s.map(e=>e.displayName??e.driver).join(`, `):`Native settings`;return(0,Z.jsxs)(`li`,{className:`flex items-center gap-3 py-3`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`flex size-10 shrink-0 items-center justify-center rounded-full border border-border/60 text-muted-foreground`,children:(0,Z.jsx)(b,{className:`size-4`})}),(0,Z.jsxs)(`div`,{className:`grid min-w-0 flex-1 gap-1`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>z(t),className:`w-fit break-words text-left text-sm font-medium outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring`,children:Ke(t.skill)}),(0,Z.jsx)(ct,{text:t.skill.shortDescription??t.skill.description??t.skill.path}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:[i,c].filter(Boolean).join(` · `)})]}),(0,Z.jsxs)(r,{children:[(0,Z.jsxs)(k,{children:[(0,Z.jsx)(D,{render:(0,Z.jsx)(m,{render:(0,Z.jsx)(g,{variant:`ghost`,size:`icon-sm`,"aria-label":`More for ${Ke(t.skill)}`,children:(0,Z.jsx)(Te,{"aria-hidden":!0})})})}),(0,Z.jsx)(O,{children:`Skill actions`})]}),(0,Z.jsxs)(o,{align:`end`,children:[oe.capabilities.canOpenDefault?(0,Z.jsx)(a,{onClick:()=>void oe.activate(`open`,{environmentId:e,filePath:t.skill.path,workspaceRoot:void 0}),children:`Open`}):null,(0,Z.jsx)(a,{onClick:()=>z(t),children:`Details`}),n!==void 0&&U[n]?.skillOverrides?.[t.skill.name]!==void 0?(0,Z.jsx)(a,{onClick:()=>{let e=U[n]??{},r={...e.skillOverrides};delete r[t.skill.name],pt({projectSettingsOverrides:{[n]:{...e,skillOverrides:r}}})},children:`Use environment setting`}):null]})]}),(0,Z.jsx)(be,{"aria-label":`Enable ${Ke(t.skill)} for ${c}`,checked:(n===void 0?void 0:U[n]?.skillOverrides?.[t.skill.name])??ae[t.skill.name]??t.skill.enabled,disabled:!se||W!==null||s.length===0,onCheckedChange:e=>{G(t.skill.name),pt(n===void 0?{skillOverrides:{[t.skill.name]:e}}:{projectSettingsOverrides:{[n]:{...U[n],skillOverrides:{...U[n]?.skillOverrides,[t.skill.name]:e}}}}).finally(()=>G(null))}})]},t.skill.path)})})]}),Nt=(0,Z.jsxs)(`div`,{className:`grid gap-6`,children:[$e.length>0?(0,Z.jsx)(ge,{title:`Servers`,children:St.length===0?(0,Z.jsx)(`p`,{className:`px-3 text-sm text-muted-foreground sm:px-4`,children:`No MCP servers match your search.`}):(0,Z.jsx)(Z.Fragment,{children:St.map(([e,t])=>{let n=Tt(`mcpServers`,e),r=Ne({...t,enabled:n},je[e],Me.has(e));return(0,Z.jsxs)(`div`,{className:`flex min-h-14 items-center gap-3 px-4 py-3`,children:[(0,Z.jsxs)(`div`,{className:`grid min-w-0 flex-1 gap-0.5`,children:[(0,Z.jsx)(`span`,{className:`break-words text-sm font-medium text-foreground`,children:t.name}),r.tone===`error`?(0,Z.jsx)(it,{status:r}):null]}),r.needsSignIn&&K?(0,Z.jsx)(g,{size:`xs`,variant:`outline`,onClick:()=>void gt(e),children:`Authenticate`}):null,kt(`Settings for ${t.name}`,()=>lt(e)),(0,Z.jsx)(be,{"aria-label":`Give ${t.name} to agents`,checked:n,disabled:!K,onCheckedChange:t=>Et(`mcpServers`,e,t)})]},e)})})}):null,K&&wt.length>0?(0,Z.jsx)(ge,{title:`Found in provider configs`,headerAction:(0,Z.jsx)(g,{size:`icon-xs`,variant:`ghost`,"aria-label":`Look again`,onClick:()=>void at(),children:(0,Z.jsx)(w,{"aria-hidden":!0})}),children:(0,Z.jsx)(Z.Fragment,{children:wt.map(t=>(0,Z.jsxs)(`div`,{className:`flex min-h-14 items-center gap-3 px-4 py-3`,children:[(0,Z.jsxs)(`div`,{className:`grid min-w-0 flex-1 gap-0.5`,children:[(0,Z.jsx)(`span`,{className:`break-words text-sm font-medium text-foreground`,children:t.name}),wt.filter(e=>e.name===t.name).length>1?(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:(t.providers??[t.provider]).map(e=>tt[e]).join(`, `)}):null]}),(0,Z.jsx)(g,{size:`xs`,variant:`outline`,onClick:async()=>{(await Ee({environmentId:e,input:{...n===void 0?{}:{projectId:n},servers:[{provider:t.provider,path:t.path,name:t.name}]}}))._tag===`Success`&&(at(),rt())},children:`Import`})]},`${t.provider}:${t.path}:${t.name}`))})}):null]}),Pt=Q.kind===`server`?(0,Z.jsxs)(Ye,{title:Q.id===null?`Add MCP server`:`Update ${B[Q.id]?.name??`server`} MCP`,onBack:()=>He({kind:`list`}),onUninstall:Q.id!==null&&K?()=>Je({kind:`server`,id:Q.id}):void 0,children:[(0,Z.jsx)(Xe,{server:Q.id===null?void 0:B[Q.id],takenNames:bt,onSave:e=>void ht(Q.id??p.make(f()),e,Q.id===null)},Q.id??`new`),Q.id!==null&&B[Q.id]!==void 0?(0,Z.jsx)(dt,{id:Q.id,server:B[Q.id],runtime:je[Q.id],checking:Me.has(Q.id),canManage:K,projectLabel:s,projectOverride:n===void 0?void 0:U[n]?.mcpServers?.[Q.id],awaitingSignIn:$===Q.id,onProviderToggle:(e,t)=>{let n=B[Q.id],r=t?n.disabledProviders.filter(t=>t!==e):[...n.disabledProviders,e];pt({mcpServers:{[Q.id]:{...n,disabledProviders:r}}})},onProjectOverride:n===void 0?void 0:e=>_t(`mcpServers`,Q.id,e),onTest:()=>void mt(Q.id),onSignIn:()=>void gt(Q.id),onSignOut:async()=>{let t=await he({environmentId:e,input:{serverId:Q.id}});t._tag===`Success`&&Y(e=>({...e,[Q.id]:t.value}))}}):null]}):null,Ft=Q.kind===`plugin`?(0,Z.jsxs)(Ye,{title:Q.id===null?`Add plugin`:`Update ${H[Q.id]?.name??`plugin`}`,onBack:()=>He({kind:`list`}),onUninstall:Q.id!==null&&K?()=>Je({kind:`plugin`,id:Q.id}):void 0,children:[(0,Z.jsx)(Qe,{plugin:Q.id===null?void 0:H[Q.id],environmentLabel:t,onSave:async e=>{let t=Q.id??v.make(f());(await pt({plugins:{[t]:e}}))._tag===`Success`&&Q.id===null&&He({kind:`list`})}},Q.id??`new`),Q.id!==null&&H[Q.id]!==void 0?(0,Z.jsx)(ft,{plugin:H[Q.id],environmentLabel:t,projectLabel:s,projectOverride:n===void 0?void 0:U[n]?.plugins?.[Q.id],onProjectOverride:n===void 0?void 0:e=>_t(`plugins`,Q.id,e)}):null]}):null;return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`grid gap-6`,children:[Dt,Ot,Pt??Ft??(u===`plugins`?At:u===`mcps`?Nt:Mt)]}),R===null?null:(0,Z.jsx)(et,{entry:R,environmentId:e,onClose:()=>z(null)}),(0,Z.jsx)(_e,{open:qe!==null,onOpenChange:e=>!e&&Je(null),children:(0,Z.jsxs)(ve,{children:[(0,Z.jsxs)(we,{children:[(0,Z.jsxs)(ye,{children:[`Remove`,` `,qe?.kind===`server`?B[qe.id]?.name??`server`:qe?.kind===`plugin`?H[qe.id]?.name??`plugin`:``,`?`]}),(0,Z.jsxs)(xe,{children:[`New sessions on `,t,` stop getting it. Its stored values and sign-in are deleted. Provider config files are not changed.`]})]}),(0,Z.jsxs)(Ce,{children:[(0,Z.jsx)(Oe,{render:(0,Z.jsx)(g,{variant:`outline`,children:`Cancel`})}),(0,Z.jsx)(g,{variant:`destructive`,onClick:()=>void vt(),children:`Remove`})]})]})})]})}function ut(e){let t=(0,Y.c)(16),{projectLabel:n,override:r,inherited:i,onChange:a}=e,o=r?.enabled!==void 0,s=`In ${n}`,c=o?`Set for this project.`:`Follows the environment (${i?`on`:`off`}).`,l;t[0]!==a||t[1]!==o?(l=o?(0,Z.jsx)(g,{size:`xs`,variant:`ghost`,onClick:()=>a(void 0),children:`Reset`}):null,t[0]=a,t[1]=o,t[2]=l):l=t[2];let u=`Use in ${n}`,d=r?.enabled??i,f;t[3]===a?f=t[4]:(f=e=>a(e),t[3]=a,t[4]=f);let p;t[5]!==u||t[6]!==d||t[7]!==f?(p=(0,Z.jsx)(be,{"aria-label":u,checked:d,onCheckedChange:f}),t[5]=u,t[6]=d,t[7]=f,t[8]=p):p=t[8];let m;t[9]!==l||t[10]!==p?(m=(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[l,p]}),t[9]=l,t[10]=p,t[11]=m):m=t[11];let h;return t[12]!==s||t[13]!==c||t[14]!==m?(h=(0,Z.jsx)(me,{title:s,description:c,control:m}),t[12]=s,t[13]=c,t[14]=m,t[15]=h):h=t[15],h}function dt(e){let t=(0,Y.c)(60),{id:n,server:r,runtime:i,checking:a,canManage:o,projectLabel:s,projectOverride:c,awaitingSignIn:l,onProviderToggle:u,onProjectOverride:d,onTest:f,onSignIn:p,onSignOut:m}=e,h;t[0]!==a||t[1]!==i||t[2]!==r?(h=Ne(r,i,a),t[0]=a,t[1]=i,t[2]=r,t[3]=h):h=t[3];let _=h,v=r.transport.type===`http`&&r.transport.auth===`oauth`&&i?.auth===`signed-in`,y;t[4]===_?y=t[5]:(y=(0,Z.jsx)(it,{status:_,className:`flex-1 text-sm`}),t[4]=_,t[5]=y);let b;t[6]!==l||t[7]!==o||t[8]!==p||t[9]!==_.needsSignIn?(b=_.needsSignIn&&o?(0,Z.jsx)(g,{size:`xs`,onClick:p,children:l?`Open sign-in again`:`Authenticate`}):null,t[6]=l,t[7]=o,t[8]=p,t[9]=_.needsSignIn,t[10]=b):b=t[10];let x;t[11]!==o||t[12]!==m||t[13]!==v?(x=v&&o?(0,Z.jsx)(g,{size:`xs`,variant:`ghost`,onClick:m,children:`Sign out`}):null,t[11]=o,t[12]=m,t[13]=v,t[14]=x):x=t[14];let S;t[15]!==o||t[16]!==a||t[17]!==f||t[18]!==r.enabled?(S=o&&r.enabled?(0,Z.jsx)(g,{size:`xs`,variant:`outline`,disabled:a,onClick:f,children:`Test connection`}):null,t[15]=o,t[16]=a,t[17]=f,t[18]=r.enabled,t[19]=S):S=t[19];let C;t[20]!==y||t[21]!==b||t[22]!==x||t[23]!==S?(C=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[y,b,x,S]}),t[20]=y,t[21]=b,t[22]=x,t[23]=S,t[24]=C):C=t[24];let w;t[25]!==l||t[26]!==_.needsSignIn?(w=_.needsSignIn?(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l?`Finish signing in in your browser, then come back here.`:`Agents can't reach this server until you sign in.`}):null,t[25]=l,t[26]=_.needsSignIn,t[27]=w):w=t[27];let T;t[28]===_.detail?T=t[29]:(T=_.detail?(0,Z.jsx)(`p`,{className:`rounded-md bg-destructive/8 px-2.5 py-1.5 text-xs text-destructive-foreground`,children:_.detail}):null,t[28]=_.detail,t[29]=T);let E;t[30]===r.source?E=t[31]:(E=r.source?(0,Z.jsxs)(`p`,{className:`truncate text-xs text-muted-foreground`,children:[`Imported from `,r.source.path]}):null,t[30]=r.source,t[31]=E);let D;t[32]!==C||t[33]!==w||t[34]!==T||t[35]!==E?(D=(0,Z.jsx)(ge,{title:`Status`,children:(0,Z.jsx)(J,{children:(0,Z.jsxs)(`div`,{className:`grid gap-2 px-4 py-3`,children:[C,w,T,E]})})}),t[32]=C,t[33]=w,t[34]=T,t[35]=E,t[36]=D):D=t[36];let O;if(t[37]!==o||t[38]!==u||t[39]!==r){let e;t[41]!==o||t[42]!==u||t[43]!==r.name?(e=e=>(0,Z.jsx)(me,{title:e.label,...e.unsupported===void 0?{}:{description:e.unsupported},control:(0,Z.jsx)(be,{"aria-label":`Give ${r.name} to ${e.label}`,checked:e.enabled,disabled:!o||e.unsupported!==void 0,onCheckedChange:t=>u(e.driver,t)})},e.driver),t[41]=o,t[42]=u,t[43]=r.name,t[44]=e):e=t[44],O=Be(r).map(e),t[37]=o,t[38]=u,t[39]=r,t[40]=O}else O=t[40];let k;t[45]===O?k=t[46]:(k=(0,Z.jsx)(J,{children:O}),t[45]=O,t[46]=k);let A;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Z.jsx)(`p`,{className:`px-3 text-xs text-muted-foreground sm:px-4`,children:`A change reaches a thread when its provider session next starts.`}),t[47]=A):A=t[47];let j;t[48]===k?j=t[49]:(j=(0,Z.jsxs)(ge,{title:`Providers`,children:[k,A]}),t[48]=k,t[49]=j);let M;t[50]!==d||t[51]!==s||t[52]!==c||t[53]!==r.enabled?(M=s!==void 0&&d!==void 0?(0,Z.jsx)(ge,{title:`Project`,children:(0,Z.jsx)(J,{children:(0,Z.jsx)(ut,{projectLabel:s,override:c,inherited:r.enabled,onChange:d})})}):null,t[50]=d,t[51]=s,t[52]=c,t[53]=r.enabled,t[54]=M):M=t[54];let ee;return t[55]!==n||t[56]!==D||t[57]!==j||t[58]!==M?(ee=(0,Z.jsxs)(`div`,{className:`grid gap-6`,"data-server-id":n,children:[D,j,M]}),t[55]=n,t[56]=D,t[57]=j,t[58]=M,t[59]=ee):ee=t[59],ee}function ft(e){let t=(0,Y.c)(13),{plugin:n,environmentLabel:r,projectLabel:i,projectOverride:a,onProjectOverride:o}=e,s=`Claude sessions on ${r} load this plugin folder.`,c;t[0]===s?c=t[1]:(c=(0,Z.jsx)(me,{title:`Claude`,description:s}),t[0]=s,t[1]=c);let l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Z.jsx)(me,{title:`Codex, Cursor, Grok, OpenCode, Antigravity`,description:`Not supported here. These providers have no Claude plugin format.`}),t[2]=l):l=t[2];let u;t[3]===c?u=t[4]:(u=(0,Z.jsx)(ge,{title:`Providers`,children:(0,Z.jsxs)(J,{children:[c,l]})}),t[3]=c,t[4]=u);let d;t[5]!==o||t[6]!==n||t[7]!==i||t[8]!==a?(d=i!==void 0&&o!==void 0?(0,Z.jsx)(ge,{title:`Project`,children:(0,Z.jsx)(J,{children:(0,Z.jsx)(ut,{projectLabel:i,override:a,inherited:n.enabled,onChange:o})})}):null,t[5]=o,t[6]=n,t[7]=i,t[8]=a,t[9]=d):d=t[9];let f;return t[10]!==u||t[11]!==d?(f=(0,Z.jsxs)(`div`,{className:`grid gap-6`,children:[u,d]}),t[10]=u,t[11]=d,t[12]=f):f=t[12],f}var pt=at;export{pt as component};
|
|
5
|
+
//# sourceMappingURL=settings.plugins-BI68kAsM.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ProjectIconPickerDialog-
|
|
2
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./index-1HGbj0-7.js";import{r as n}from"./Icon-l19w4AjM.js";import{Af as r,Ax as i,D as a,Gn as o,Hf as s,Ho as c,If as l,Jn as u,Rs as d,Yn as f,Zn as p,_c as m,ha as h,in as g,jm as _,ms as v,n as y,or as b,qn as x,qv as S,r as C,sr as w,ss as T,tr as E,zs as ee}from"./utils-DmfMX1v5.js";import{t as te}from"./chevron-down-DHV04o66.js";import{t as D}from"./info-BHB-83EA.js";import{t as ne}from"./plus-Cr075-cy.js";import{t as O}from"./trash-2-CiyAV2xI.js";import{H as k,L as re,R as A,U as ie}from"./runtime-BQJQC-Ny.js";import{C as j,P as M,W as N,k as P}from"./entities-82m-Smm-.js";import{yn as F}from"./runtime-C6FwphD-.js";import{t as I}from"./useNavigate-4thj06GJ.js";import{t as L}from"./useLocation-QINZoaPz.js";import{i as R}from"./toast-CjelgyqV.js";import{E as ae,J as z,K as B,O as V}from"./useSettings-CLtJrOYI.js";import{f as H,s as U}from"./server-BD_Y5Gsn.js";import{n as W,o as G}from"./session-DsbInyNV.js";import{t as K}from"./use-atom-command-CQHjSXPR.js";import{n as q}from"./toastHelpers-Dsph6LwL.js";import{i as J,o as Y,r as X}from"./command-DnJZPOmf.js";import{t as oe}from"./input-Cd_0h7h_.js";import{D as se,E as ce,O as le,j as ue,y as de}from"./keybindings-uYm_vnXl.js";import{t as fe}from"./PierreEntryIcon-BxxykifK.js";import{t as pe}from"./ProjectFavicon-CiauSitF.js";import{d as me}from"./projectFilesQueryState-ELgLflk5.js";import{n as he}from"./p4ProjectFile-BWszgcDk.js";import{r as ge,t as _e}from"./alert-B-or1ble.js";import{B as ve,H as ye,I as be,a as Z,i as xe,r as Se,s as Ce}from"./settingsLayout-jP1a50ek.js";import{Mi as we,Sn as Te,bn as Ee,eo as De,pn as Oe,yi as ke}from"./main-BB3F4O6Y.js";import{c as Ae,f as je,i as Me,n as Ne,o as Pe,r as Fe,s as Ie,t as Le}from"./projectScriptEditor-BAuP_HeU.js";import{t as Re}from"./ProjectDefaultsSettings-C6wxaRmJ.js";import{t as ze}from"./SettingsScopeNotice-CVoWG1oN.js";var Be=i(),Q=e(n(),1),$=e(h(),1);function Ve(e,t,n){return t||(n?e.trim()?`Searching project files…`:`Indexing project files…`:e.trim()?`No matching image files.`:`No image files found.`)}function He(e,t){return!C(t)||F(e)}function Ue(e){let[t,n]=(0,Q.useState)(``),[r,i]=(0,Q.useState)(null),[a,o]=(0,Q.useState)(!1),s=me(e.environmentId,e.cwd,t,200,{imageOnly:!0}),{resolvedTheme:l}=B(),u=c(U),d=e.onPickExternal,f=y(typeof navigator>`u`?``:navigator.platform),p=(0,Q.useMemo)(()=>Oe(s.entries,s.matchedQuery).map(t=>({kind:`action`,value:`project-favicon:${t.path}`,searchTerms:[t.name,t.path],title:t.name,description:t.path,icon:(0,$.jsx)(fe,{pathValue:t.path,kind:`file`,theme:l}),run:async()=>e.onSelect(t.path)})),[e.onSelect,l,s.entries,s.matchedQuery]);return(0,$.jsx)(X,{open:e.open,onOpenChange:e.onOpenChange,children:e.open?(0,$.jsx)(J,{"aria-label":`Choose project icon`,className:`overflow-hidden`,onBackdropPointerDown:()=>e.onOpenChange(!1),children:(0,$.jsx)(Te,{"aria-label":`Choose project icon`,autoHighlight:`always`,escapeLabel:`Close`,footerActionLabel:`Select icon`,footerTrailing:d?(0,$.jsx)(Y,{disabled:a,onClick:()=>{o(!0),d().then(t=>{t&&(e.onOpenChange(!1),e.onSelect(t))}).catch(e=>{R.add({type:`error`,title:`Could not open image picker`,description:e instanceof Error?e.message:`An error occurred.`})}).finally(()=>o(!1))},children:`Open in ${f}`}):null,inputProps:{placeholder:`Search image files…`},mode:`none`,onItemHighlighted:e=>{i(typeof e==`string`?e:null)},onValueChange:e=>{i(null),n(e)},panelSize:`tall-list`,testId:`project-favicon-picker`,value:t,children:(0,$.jsx)(Ee,{groups:p.length>0?[{value:`project-favicon-files`,label:e.projectName,items:p}]:[],highlightedItemValue:r,isActionsOnly:!1,keybindings:u,onExecuteItem:t=>{t.kind===`action`&&(e.onOpenChange(!1),t.run())},emptyStateMessage:Ve(t,s.error,s.isPending)})})}):null})}function We(e){let t=(0,Be.c)(10),{scripts:n,keybindings:r,disabled:i,onEdit:a}=e;if(n.length===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`p`,{className:`px-3 py-2 text-base text-muted-foreground sm:px-4 sm:text-sm`,children:`No actions configured.`}),t[0]=e):e=t[0],e}let o;if(t[1]!==i||t[2]!==r||t[3]!==a||t[4]!==n){let e;t[6]!==i||t[7]!==r||t[8]!==a?(e=e=>{let t=de(r,se(e.id));return(0,$.jsx)(Z,{className:`group py-2`,title:(0,$.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,$.jsx)(Fe,{icon:e.icon,className:`size-4 shrink-0 text-muted-foreground`}),(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:e.name}),e.runOnWorktreeCreate?(0,$.jsx)(`span`,{className:`shrink-0 rounded-sm border border-border/60 px-1.5 py-px text-2xs font-normal text-muted-foreground`,children:`setup`}):null,e.runOnSettle?(0,$.jsx)(`span`,{className:`shrink-0 rounded-sm border border-border/60 px-1.5 py-px text-2xs font-normal text-muted-foreground`,children:`on settle`}):null,e.previewUrl?(0,$.jsx)(`span`,{className:`shrink-0 rounded-sm border border-border/60 px-1.5 py-px text-2xs font-normal text-muted-foreground max-sm:hidden`,children:`preview · desktop only`}):null]}),description:(0,$.jsx)(`code`,{className:`block max-w-full truncate font-mono`,children:e.command}),control:(0,$.jsxs)($.Fragment,{children:[t?(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:t}):null,(0,$.jsx)(`span`,{className:`flex shrink-0 opacity-0 group-focus-within:opacity-100 group-hover:opacity-100`,children:(0,$.jsx)(w,{size:`icon-xs`,variant:`ghost-muted`,"aria-label":`Edit ${e.name}`,disabled:i,onClick:()=>a(e),children:(0,$.jsx)(De,{className:`size-3.5`})})})]})},e.id)},t[6]=i,t[7]=r,t[8]=a,t[9]=e):e=t[9],o=n.map(e),t[1]=i,t[2]=r,t[3]=a,t[4]=n,t[5]=o}else o=t[5];return o}function Ge(e){if(e._tag===`Failure`&&!re(e)){let t=ie(e);R.add({type:`error`,title:`Failed to save project actions`,description:t instanceof Error?t.message:`An error occurred.`})}return A(e,()=>void 0)}function Ke(e){let t=j(),[n,r]=(0,Q.useState)(!1),i=(0,Q.useRef)(!1),a=K(H.updateSettings,`project actions update`),o=K(H.upsertKeybinding,`action shortcut update`),c=K(H.removeKeybinding,`action shortcut removal`);async function u(n,u,d){if(i.current||e.length===0){let e=`No available machine, or another action change is saving.`;return R.add({type:`error`,title:`Actions not saved`,description:e}),T(S(Error(e)))}if(e.some(({environmentId:e})=>!W(e,`settings:write`)))return Ge(T(S(new s({requiredScope:l,message:`This connection cannot change environment settings.`}))));i.current=!0,r(!0);try{for(let{environmentId:r,settings:i,keybindings:s,project:l}of e){let e=l?je(i,l):i.defaultProjectScripts,f=n(e),p=f??i.defaultProjectScripts,m=await a({environmentId:r,input:{patch:l?{projectSettingsOverrides:{[l.id]:f===null?he(i,l.id,[`defaultProjectScripts`]):{...i.projectSettingsOverrides[l.id],defaultProjectScripts:f}}}:{defaultProjectScripts:f??[]}}});if(m._tag===`Failure`)return Ge(m);let h=u?[u]:e.filter(e=>!p.some(t=>t.id===e.id)).map(e=>e.id);for(let e of h){let n=se(e),a=Ae(s,n),u=a?Ie({keybinding:a,command:n}):null,p=Ie({keybinding:d,command:n}),m=!f?.some(t=>t.id===e)&&(l&&i.defaultProjectScripts.some(t=>t.id===e)||Object.entries(i.projectSettingsOverrides).some(([t,n])=>t!==l?.id&&n.defaultProjectScripts?.some(t=>t.id===e))||t.some(t=>t.environmentId===r&&t.id!==l?.id&&(l?je(i,t):t.scripts).some(t=>t.id===e))),h=p?await o({environmentId:r,input:u&&u.key!==p.key?{...p,replace:u}:p}):u&&!m?await c({environmentId:r,input:u}):null;if(h?._tag===`Failure`)return Ge(h)}}return v(void 0)}finally{i.current=!1,r(!1)}}function d(n,r){let i=[...t.flatMap(e=>e.scripts.map(e=>e.id)),...e.flatMap(({settings:e,project:t})=>[...e.defaultProjectScripts,...Object.values(e.projectSettingsOverrides).flatMap(e=>e.defaultProjectScripts??[]),...t?.scripts??[]].map(e=>e.id))],a=n??le(r.name,i),o=ce(a,r);return u(e=>{let t=e.map(e=>e.id===a?o:ue(e,r));return n===null?[...t,o]:t},a,r.keybinding)}return{saving:n,persist:u,submit:d}}function qe(){let e=(0,Be.c)(67),{scope:t,targets:n,target:r}=ve(),{environments:i}=ae(),a=t.kind===`project`||t.kind===`checkout`,s;e[0]!==i||e[1]!==r?(s=r?i.find(e=>e.environmentId===r.environmentId)?.serverConfig:void 0,e[0]=i,e[1]=r,e[2]=s):s=e[2];let c=s,l;e[3]===r?.settings.defaultProjectScripts?l=e[4]:(l=r?.settings.defaultProjectScripts??[],e[3]=r?.settings.defaultProjectScripts,e[4]=l);let d=l,h=c?.keybindings??m,g;if(e[5]!==d||e[6]!==n){let t;e[8]===d?t=e[9]:(t=e=>JSON.stringify(e.settings.defaultProjectScripts)!==JSON.stringify(d),e[8]=d,e[9]=t),g=n.some(t),e[5]=d,e[6]=n,e[7]=g}else g=e[7];let v=g,y=be(),[S,C]=(0,Q.useState)(null),T,ee,D;e[10]!==i||e[11]!==a||e[12]!==t.members||e[13]!==n?(T=new Map(a?t.members.map(Ye):[]),ee=Ke,D=n.flatMap(e=>{let t=i.find(t=>t.environmentId===e.environmentId);if(!t?.serverConfig)return[];let n=e.projectId?T.get(e.projectId):void 0;return n&&t.serverConfig.environment?.capabilities.projectSettingsOverrides!==!0?[]:[{environmentId:e.environmentId,settings:t.serverConfig.settings,keybindings:t.serverConfig.keybindings,...n?{project:n}:{}}]}),e[10]=i,e[11]=a,e[12]=t.members,e[13]=n,e[14]=T,e[15]=ee,e[16]=D):(T=e[14],ee=e[15],D=e[16]);let{saving:O,persist:k,submit:A}=ee(D),j;e[17]!==T||e[18]!==r?(j=r?.projectId?T.get(r.projectId):void 0,e[17]=T,e[18]=r,e[19]=j):j=e[19];let M=j,N;e[20]===M?.environmentId?N=e[21]:(N=M?.environmentId??_.make(`none`),e[20]=M?.environmentId,e[21]=N);let P=Pe(N,M?.workspaceRoot??null),F;if(e[22]!==d||e[23]!==P.scripts){let t;e[25]===d?t=e[26]:(t=e=>!d.some(t=>t.command===e.command||t.name.toLowerCase()===e.name.toLowerCase()),e[25]=d,e[26]=t),F=P.scripts.filter(t),e[22]=d,e[23]=P.scripts,e[24]=F}else F=e[24];let I=F,L;e[27]===A?L=e[28]:(L=async e=>{let t={name:e.name,command:e.command,icon:e.icon??`play`,runOnWorktreeCreate:e.runOnWorktreeCreate??!1,waitForSetup:e.runOnWorktreeCreate===!0&&e.async===!1,runOnSettle:e.runOnSettle??!1,keybinding:null,previewUrl:e.previewUrl??null,autoOpenPreview:e.previewUrl?e.autoOpenPreview??!1:!1},n=await A(null,t);if(n._tag===`Failure`&&!re(n)){let e=ie(n);C({scriptId:null,initial:t,error:e instanceof Error?e.message:`Failed to import action.`})}},e[27]=A,e[28]=L);let R=L,z;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(z=[`defaultProjectScripts`],e[29]=z):z=e[29];let B;e[30]===k?B=e[31]:(B=()=>void k(Je),e[30]=k,e[31]=B);let V;e[32]!==y||e[33]!==R||e[34]!==I||e[35]!==O?(V=I.length>0?(0,$.jsxs)(o,{children:[(0,$.jsxs)(b,{render:(0,$.jsx)(w,{id:`import-scripts`,size:`xs`,variant:`ghost`,disabled:O||!y,type:`button`}),children:[`Import scripts`,(0,$.jsx)(te,{className:`size-3.5`})]}),(0,$.jsxs)(p,{align:`end`,children:[(0,$.jsxs)(x,{children:[(0,$.jsx)(u,{children:`Import from p4.json`}),(0,$.jsx)(`p`,{className:`px-2 pb-2 text-pretty text-sm text-muted-foreground`,children:`Add actions declared by this checkout without editing them first.`})]}),(0,$.jsx)(E,{}),I.map(e=>(0,$.jsxs)(f,{onClick:()=>void R(e),children:[(0,$.jsx)(Fe,{icon:e.icon??`play`,className:`size-4 shrink-0`}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`truncate font-medium`,children:e.name}),(0,$.jsx)(`div`,{className:`truncate font-mono text-muted-foreground`,children:e.command})]})]},`${e.name} ${e.command}`))]})]}):null,e[32]=y,e[33]=R,e[34]=I,e[35]=O,e[36]=V):V=e[36];let H=O||!y||n.length===0,U,W;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>C({scriptId:null,initial:Le}),W=(0,$.jsx)(ne,{className:`size-3.5`}),e[37]=U,e[38]=W):(U=e[37],W=e[38]);let G;e[39]===H?G=e[40]:(G=(0,$.jsxs)(w,{size:`xs`,variant:`outline`,disabled:H,onClick:U,children:[W,`Add action`]}),e[39]=H,e[40]=G);let K;e[41]!==V||e[42]!==G?(K=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[V,G]}),e[41]=V,e[42]=G,e[43]=K):K=e[43];let q;e[44]!==v||e[45]!==B||e[46]!==K?(q=(0,$.jsx)(Z,{serverScoped:!0,settingKeys:z,mixed:v,title:`Actions`,description:`Commands that run in this project's checkout or its worktree, with optional shortcuts.`,onResetOverride:B,control:K}),e[44]=v,e[45]=B,e[46]=K,e[47]=q):q=e[47];let J;e[48]!==y||e[49]!==h||e[50]!==v||e[51]!==O||e[52]!==d?(J=v?(0,$.jsx)(Z,{title:`Different actions across environments`,description:`Choose one environment to edit its list. Adding an action here adds it on every selected environment.`}):(0,$.jsx)(We,{scripts:d,keybindings:h,disabled:O||!y,onEdit:e=>C(Me(e,h))}),e[48]=y,e[49]=h,e[50]=v,e[51]=O,e[52]=d,e[53]=J):J=e[53];let Y;e[54]===P.status?Y=e[55]:(Y=P.status===`invalid`?(0,$.jsx)(Z,{title:`p4.json is invalid`,description:`A p4.json exists in this checkout but fails to parse, so every action and icon it declares is ignored. Check the JSON syntax and icon values.`,className:`text-warning`}):null,e[54]=P.status,e[55]=Y);let X;e[56]!==k||e[57]!==S||e[58]!==d||e[59]!==A||e[60]!==r?(X=r&&(0,$.jsx)(Ne,{environmentId:r.environmentId,editScope:`settings:write`,request:S,scripts:d,onSubmit:A,onDelete:e=>void k(t=>t.filter(t=>t.id!==e),e,null),onClose:()=>C(null)}),e[56]=k,e[57]=S,e[58]=d,e[59]=A,e[60]=r,e[61]=X):X=e[61];let oe;return e[62]!==q||e[63]!==J||e[64]!==Y||e[65]!==X?(oe=(0,$.jsxs)(Ce,{id:`project-actions`,title:`Actions`,children:[q,J,Y,X]}),e[62]=q,e[63]=J,e[64]=Y,e[65]=X,e[66]=oe):oe=e[66],oe}function Je(){return null}function Ye(e){return[e.id,e]}function Xe(e,t,n){return n&&e.some(e=>e!==t)}var Ze=(0,Q.lazy)(()=>t(()=>import(`./ProjectIconPickerDialog-GDqk2LEH.js`).then(e=>({default:e.ProjectIconPickerDialog})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])));function Qe(e){return`${e.environmentId}:${e.id}`}function $e(e){let t=(0,Be.c)(34),{projectKey:n,environmentId:r,checkoutKey:i}=e,a=r===void 0?null:r,o=i===void 0?null:i,s=ye(),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c={from:`/settings`},t[0]=c):c=t[0];let l=I(c),u;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(u={select:tt},t[1]=u):u=t[1];let d=L(u),f;t[2]!==s||t[3]!==n?(f=s.find(e=>e.projectKey===n)??null,t[2]=s,t[3]=n,t[4]=f):f=t[4];let p=f,m;t[5]!==o||t[6]!==a||t[7]!==p?.memberProjects?(m=p?.memberProjects.filter(e=>(a===null||e.environmentId===a)&&(o===null||e.physicalProjectKey===o))??[],t[5]=o,t[6]=a,t[7]=p?.memberProjects,t[8]=m):m=t[8];let h=m,g=(0,Q.useRef)(null),_,v;t[9]!==o||t[10]!==a||t[11]!==h||t[12]!==p?(_=()=>{p&&h.length!==0&&(g.current={key:p.projectKey,environmentId:a,checkoutKey:o,memberKeys:h.map(et)})},v=[p,h,a,o],t[9]=o,t[10]=a,t[11]=h,t[12]=p,t[13]=_,t[14]=v):(_=t[13],v=t[14]),(0,Q.useEffect)(_,v);let y,b;if(t[15]!==o||t[16]!==a||t[17]!==s||t[18]!==h.length||t[19]!==l||t[20]!==d||t[21]!==n?(b=()=>{if(h.length>0)return;let e=g.current;if(e?.key!==n||e.environmentId!==a||e.checkoutKey!==o)return;let t=s.find(t=>t.memberProjects.some(t=>e.memberKeys.includes(t.physicalProjectKey)));t&&l({to:d,search:()=>({project:t.projectKey,machine:a??void 0,checkout:o??void 0}),replace:!0,hashScrollIntoView:!1})},y=[s,l,d,n,h.length,a,o],t[15]=o,t[16]=a,t[17]=s,t[18]=h.length,t[19]=l,t[20]=d,t[21]=n,t[22]=y,t[23]=b):(y=t[22],b=t[23]),(0,Q.useEffect)(b,y),!p){let e=s.length===0?`Add a project from the sidebar to configure it here.`:`This project is no longer available.`,n;return t[24]===e?n=t[25]:(n=(0,$.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8 text-sm text-muted-foreground`,children:e}),t[24]=e,t[25]=n),n}if(h.length===0){let e;return t[26]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`p`,{className:`p-8 text-sm text-muted-foreground`,children:`This checkout is no longer available in the selected project and environment.`}),t[26]=e):e=t[26],e}let x;t[27]!==h||t[28]!==p?(x={...p,memberProjects:h,environmentId:h[0].environmentId,id:h[0].id},t[27]=h,t[28]=p,t[29]=x):x=t[29];let S=x,C=`${p.projectKey}:${a??`all`}:${o??`all`}`,w=h.length<p.memberProjects.length,T;return t[30]!==S||t[31]!==C||t[32]!==w?(T=(0,$.jsx)(nt,{group:S,hasOtherMembers:w},C),t[30]=S,t[31]=C,t[32]=w,t[33]=T):T=t[33],T}function et(e){return e.physicalProjectKey}function tt(e){return e.pathname}function nt({group:e,hasOtherMembers:t}){let n=I({from:`/settings`}),i=V(),{environments:o}=ae(),s=(0,Q.useMemo)(()=>new Map(o.map(e=>[e.environmentId,e])),[o]),c=G(e.memberProjects,r),l=e.memberProjects.every(e=>c.has(e.environmentId)),u=e.memberProjects.find(e=>s.get(e.environmentId)?.serverConfig!=null)??e.memberProjects[0],f=P(),p=we(N.update,{reportFailure:!1}),m=we(N.delete,{reportFailure:!1}),h=(0,Q.useRef)(!1),_=u.faviconPath??null,y=u.projectIcon??null,b=typeof window<`u`&&e.memberProjects.every(e=>e.environmentId===i&&He(e.workspaceRoot,navigator.platform))?window.desktopBridge?.pickProjectFavicon:void 0,x=(0,Q.useCallback)((e,t)=>{if(t._tag!==`Failure`||re(t))return;let n=ie(t);R.add(q({type:`error`,title:e,description:n instanceof Error?n.message:`An error occurred.`}))},[]),C=(0,Q.useCallback)((e,t)=>{let n=e.find(e=>!W(e.environmentId,r));if(!n)return null;let i=T(S(Error(`This connection cannot change projects in ${n.environmentLabel??`this environment`}.`)));return x(t,i),i},[x]),E=(0,Q.useCallback)(async(t,n)=>{let r=C(e.memberProjects,n);if(r)return r;let i=e.memberProjects.find(e=>{let t=s.get(e.environmentId);return t?.connection.phase!==`connected`||!t.serverConfig});if(i){let e=Error(`Connect ${i.environmentLabel??`the selected environment`} and try again.`),t=T(S(e));return x(n,t),t}for(let r of e.memberProjects){let i=C([r],n);if(i)return i;let a=A(await p({environmentId:r.environmentId,input:{projectId:r.id,...t}}),()=>void 0);if(a._tag===`Failure`)return x(e.memberProjects.length>1?`${n} on ${r.environmentLabel??`the current environment`}`:n,a),a}return v(void 0)},[C,s,e.memberProjects,x,p]),te=(0,Q.useCallback)(async(t,n)=>{let r=t.trim();if(!r){R.add({type:`warning`,title:`Project title cannot be empty`});return}Xe(e.memberProjects.map(e=>e.title),r,n)&&await E({title:r},`Failed to rename project`)},[e.memberProjects,E]),[ne,j]=g(!l),[F,L]=g(!l),[B,H]=(0,Q.useState)(!1),U=(0,Q.useRef)(!1),K=(0,Q.useCallback)(async e=>{if(!U.current){U.current=!0,H(!0);try{await E(e,`Failed to update project icon`)}finally{U.current=!1,H(!1)}}},[E]),J=e.memberProjects.length>1,Y=(0,Q.useCallback)(async r=>{if(C(r,`Failed to remove project`))return;let i=z();if(!i)return;let o=new Set(r.map(Qe)),s=f.filter(e=>o.has(`${e.environmentId}:${e.projectId}`)),c=r.length===e.memberProjects.length,l=t||!c?`checkout`:`project`,u=r.length===1?r[0]:null,p=u?.title??e.displayName,h=await k(()=>i.dialogs.confirm([s.length>0?`Remove ${l} "${p}" and delete its ${s.length} thread${s.length===1?``:`s`}?`:`Remove ${l} "${p}"?`,...u?[`Path: ${u.workspaceRoot}`,...u.environmentLabel?[`Environment: ${u.environmentLabel}`]:[]]:[`This removes ${r.length} grouped project entries.`],...s.length>0?[`This permanently clears conversation history for those threads and any archived threads.`]:[`This permanently clears any archived conversation history.`],c&&!t?`This removes only the project entries, not the files on disk.`:`Other entries in this grouped project are unaffected.`,`This action cannot be undone.`].join(`
|
|
3
|
-
`),{variant:`destructive`}));if(h._tag===`Failure`||!h.value||C(
|
|
4
|
-
//# sourceMappingURL=settings.projects-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ProjectIconPickerDialog-Cx-QcJLy.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/Icon-l19w4AjM.js","assets/utils-BxISc9RR.js","assets/check-Cmy7pM2Y.js","assets/createLucideIcon-CacG5mZC.js","assets/chevron-down-DHV04o66.js","assets/chevron-right-NbahR9_s.js","assets/route-CQ6wZzks.js","assets/toggle-group-W0bDGcPB.js","assets/CompositeRoot-JeAqW-33.js","assets/toggle-fk33ppsB.js","assets/input-DaCwubQj.js","assets/FieldControl-CxuWXcJE.js","assets/useRegisterFieldControl-KOnbOVnX.js","assets/scroll-area-BYyfw-9F.js","assets/CSPContext-i9QaQnwk.js","assets/dialog-CPLO59bH.js","assets/x-CSwbgjBe.js","assets/DialogTitle-BRYusK7T.js","assets/ProjectMonogram-BJVBhwjz.js","assets/dynamic-tF-2a8Zt.js","assets/index-D_uSeco8.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./index-D_uSeco8.js";import{r as n}from"./Icon-l19w4AjM.js";import{D as r,Gn as i,Ho as a,Jn as o,Jv as s,Lf as c,Mm as l,Rs as u,Uf as d,Yn as f,Zn as p,_c as m,ha as h,in as g,jf as _,jx as v,ms as y,n as b,or as x,qn as S,r as C,sr as w,ss as T,tr as E,zs as ee}from"./utils-BxISc9RR.js";import{t as te}from"./chevron-down-DHV04o66.js";import{t as D}from"./info-BHB-83EA.js";import{t as ne}from"./plus-Cr075-cy.js";import{t as O}from"./trash-2-CiyAV2xI.js";import{H as k,L as re,R as A,U as ie}from"./runtime-DkYxB4ri.js";import{C as j,P as M,W as N,k as P}from"./entities-DqhRur25.js";import{yn as F}from"./runtime-Bsb2I_n2.js";import{t as I}from"./useNavigate-CDvr3Yvg.js";import{t as L}from"./useLocation-BN5q7LjL.js";import{i as R}from"./toast-BX9uiMAh.js";import{E as ae,J as z,K as B,O as V}from"./useSettings-BIggY3j1.js";import{f as H,s as U}from"./server-BYntb2dN.js";import{n as W,o as G}from"./session-eLrubJEW.js";import{t as K}from"./use-atom-command-RgcuqzP9.js";import{n as q}from"./toastHelpers-Dsph6LwL.js";import{i as J,o as Y,r as X}from"./command-w6WcFbeZ.js";import{t as oe}from"./input-DaCwubQj.js";import{D as se,E as ce,O as le,j as ue,y as de}from"./keybindings-QrjnJ5jB.js";import{t as fe}from"./PierreEntryIcon-BJ8xtDqQ.js";import{t as pe}from"./ProjectFavicon-By6-kpgk.js";import{d as me}from"./projectFilesQueryState-C1crs3C8.js";import{n as he}from"./p4ProjectFile-CVEoe1SJ.js";import{r as ge,t as _e}from"./alert-quTC4YbH.js";import{B as ve,H as ye,I as be,a as Z,i as xe,r as Se,s as Ce}from"./settingsLayout-DV36_Jgq.js";import{Mi as we,Sn as Te,bn as Ee,no as De,pn as Oe,yi as ke}from"./main-uLg3xUJM.js";import{c as Ae,f as je,i as Me,n as Ne,o as Pe,r as Fe,s as Ie,t as Le}from"./projectScriptEditor-ku2tGeKq.js";import{t as Re}from"./ProjectDefaultsSettings-Bqo3T1SR.js";import{t as ze}from"./SettingsScopeNotice-CcLrVZWz.js";var Be=v(),Q=e(n(),1),$=e(h(),1);function Ve(e,t,n){return t||(n?e.trim()?`Searching project files…`:`Indexing project files…`:e.trim()?`No matching image files.`:`No image files found.`)}function He(e,t){return!C(t)||F(e)}function Ue(e){let[t,n]=(0,Q.useState)(``),[r,i]=(0,Q.useState)(null),[o,s]=(0,Q.useState)(!1),c=me(e.environmentId,e.cwd,t,200,{imageOnly:!0}),{resolvedTheme:l}=B(),u=a(U),d=e.onPickExternal,f=b(typeof navigator>`u`?``:navigator.platform),p=(0,Q.useMemo)(()=>Oe(c.entries,c.matchedQuery).map(t=>({kind:`action`,value:`project-favicon:${t.path}`,searchTerms:[t.name,t.path],title:t.name,description:t.path,icon:(0,$.jsx)(fe,{pathValue:t.path,kind:`file`,theme:l}),run:async()=>e.onSelect(t.path)})),[e.onSelect,l,c.entries,c.matchedQuery]);return(0,$.jsx)(X,{open:e.open,onOpenChange:e.onOpenChange,children:e.open?(0,$.jsx)(J,{"aria-label":`Choose project icon`,className:`overflow-hidden`,onBackdropPointerDown:()=>e.onOpenChange(!1),children:(0,$.jsx)(Te,{"aria-label":`Choose project icon`,autoHighlight:`always`,escapeLabel:`Close`,footerActionLabel:`Select icon`,footerTrailing:d?(0,$.jsx)(Y,{disabled:o,onClick:()=>{s(!0),d().then(t=>{t&&(e.onOpenChange(!1),e.onSelect(t))}).catch(e=>{R.add({type:`error`,title:`Could not open image picker`,description:e instanceof Error?e.message:`An error occurred.`})}).finally(()=>s(!1))},children:`Open in ${f}`}):null,inputProps:{placeholder:`Search image files…`},mode:`none`,onItemHighlighted:e=>{i(typeof e==`string`?e:null)},onValueChange:e=>{i(null),n(e)},panelSize:`tall-list`,testId:`project-favicon-picker`,value:t,children:(0,$.jsx)(Ee,{groups:p.length>0?[{value:`project-favicon-files`,label:e.projectName,items:p}]:[],highlightedItemValue:r,isActionsOnly:!1,keybindings:u,onExecuteItem:t=>{t.kind===`action`&&(e.onOpenChange(!1),t.run())},emptyStateMessage:Ve(t,c.error,c.isPending)})})}):null})}function We(e){let t=(0,Be.c)(10),{scripts:n,keybindings:r,disabled:i,onEdit:a}=e;if(n.length===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`p`,{className:`px-3 py-2 text-base text-muted-foreground sm:px-4 sm:text-sm`,children:`No actions configured.`}),t[0]=e):e=t[0],e}let o;if(t[1]!==i||t[2]!==r||t[3]!==a||t[4]!==n){let e;t[6]!==i||t[7]!==r||t[8]!==a?(e=e=>{let t=de(r,se(e.id));return(0,$.jsx)(Z,{className:`group py-2`,title:(0,$.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,$.jsx)(Fe,{icon:e.icon,className:`size-4 shrink-0 text-muted-foreground`}),(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:e.name}),e.runOnWorktreeCreate?(0,$.jsx)(`span`,{className:`shrink-0 rounded-sm border border-border/60 px-1.5 py-px text-2xs font-normal text-muted-foreground`,children:`setup`}):null,e.runOnSettle?(0,$.jsx)(`span`,{className:`shrink-0 rounded-sm border border-border/60 px-1.5 py-px text-2xs font-normal text-muted-foreground`,children:`on settle`}):null,e.previewUrl?(0,$.jsx)(`span`,{className:`shrink-0 rounded-sm border border-border/60 px-1.5 py-px text-2xs font-normal text-muted-foreground max-sm:hidden`,children:`preview · desktop only`}):null]}),description:(0,$.jsx)(`code`,{className:`block max-w-full truncate font-mono`,children:e.command}),control:(0,$.jsxs)($.Fragment,{children:[t?(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:t}):null,(0,$.jsx)(`span`,{className:`flex shrink-0 opacity-0 group-focus-within:opacity-100 group-hover:opacity-100`,children:(0,$.jsx)(w,{size:`icon-xs`,variant:`ghost-muted`,"aria-label":`Edit ${e.name}`,disabled:i,onClick:()=>a(e),children:(0,$.jsx)(De,{className:`size-3.5`})})})]})},e.id)},t[6]=i,t[7]=r,t[8]=a,t[9]=e):e=t[9],o=n.map(e),t[1]=i,t[2]=r,t[3]=a,t[4]=n,t[5]=o}else o=t[5];return o}function Ge(e){if(e._tag===`Failure`&&!re(e)){let t=ie(e);R.add({type:`error`,title:`Failed to save project actions`,description:t instanceof Error?t.message:`An error occurred.`})}return A(e,()=>void 0)}function Ke(e){let t=j(),[n,r]=(0,Q.useState)(!1),i=(0,Q.useRef)(!1),a=K(H.updateSettings,`project actions update`),o=K(H.upsertKeybinding,`action shortcut update`),l=K(H.removeKeybinding,`action shortcut removal`);async function u(n,u,f){if(i.current||e.length===0){let e=`No available machine, or another action change is saving.`;return R.add({type:`error`,title:`Actions not saved`,description:e}),T(s(Error(e)))}if(e.some(({environmentId:e})=>!W(e,`settings:write`)))return Ge(T(s(new d({requiredScope:c,message:`This connection cannot change environment settings.`}))));i.current=!0,r(!0);try{for(let{environmentId:r,settings:i,keybindings:s,project:c}of e){let e=c?je(i,c):i.defaultProjectScripts,d=n(e),p=d??i.defaultProjectScripts,m=await a({environmentId:r,input:{patch:c?{projectSettingsOverrides:{[c.id]:d===null?he(i,c.id,[`defaultProjectScripts`]):{...i.projectSettingsOverrides[c.id],defaultProjectScripts:d}}}:{defaultProjectScripts:d??[]}}});if(m._tag===`Failure`)return Ge(m);let h=u?[u]:e.filter(e=>!p.some(t=>t.id===e.id)).map(e=>e.id);for(let e of h){let n=se(e),a=Ae(s,n),u=a?Ie({keybinding:a,command:n}):null,p=Ie({keybinding:f,command:n}),m=!d?.some(t=>t.id===e)&&(c&&i.defaultProjectScripts.some(t=>t.id===e)||Object.entries(i.projectSettingsOverrides).some(([t,n])=>t!==c?.id&&n.defaultProjectScripts?.some(t=>t.id===e))||t.some(t=>t.environmentId===r&&t.id!==c?.id&&(c?je(i,t):t.scripts).some(t=>t.id===e))),h=p?await o({environmentId:r,input:u&&u.key!==p.key?{...p,replace:u}:p}):u&&!m?await l({environmentId:r,input:u}):null;if(h?._tag===`Failure`)return Ge(h)}}return y(void 0)}finally{i.current=!1,r(!1)}}function f(n,r){let i=[...t.flatMap(e=>e.scripts.map(e=>e.id)),...e.flatMap(({settings:e,project:t})=>[...e.defaultProjectScripts,...Object.values(e.projectSettingsOverrides).flatMap(e=>e.defaultProjectScripts??[]),...t?.scripts??[]].map(e=>e.id))],a=n??le(r.name,i),o=ce(a,r);return u(e=>{let t=e.map(e=>e.id===a?o:ue(e,r));return n===null?[...t,o]:t},a,r.keybinding)}return{saving:n,persist:u,submit:f}}function qe(){let e=(0,Be.c)(67),{scope:t,targets:n,target:r}=ve(),{environments:a}=ae(),s=t.kind===`project`||t.kind===`checkout`,c;e[0]!==a||e[1]!==r?(c=r?a.find(e=>e.environmentId===r.environmentId)?.serverConfig:void 0,e[0]=a,e[1]=r,e[2]=c):c=e[2];let u=c,d;e[3]===r?.settings.defaultProjectScripts?d=e[4]:(d=r?.settings.defaultProjectScripts??[],e[3]=r?.settings.defaultProjectScripts,e[4]=d);let h=d,g=u?.keybindings??m,_;if(e[5]!==h||e[6]!==n){let t;e[8]===h?t=e[9]:(t=e=>JSON.stringify(e.settings.defaultProjectScripts)!==JSON.stringify(h),e[8]=h,e[9]=t),_=n.some(t),e[5]=h,e[6]=n,e[7]=_}else _=e[7];let v=_,y=be(),[b,C]=(0,Q.useState)(null),T,ee,D;e[10]!==a||e[11]!==s||e[12]!==t.members||e[13]!==n?(T=new Map(s?t.members.map(Ye):[]),ee=Ke,D=n.flatMap(e=>{let t=a.find(t=>t.environmentId===e.environmentId);if(!t?.serverConfig)return[];let n=e.projectId?T.get(e.projectId):void 0;return n&&t.serverConfig.environment?.capabilities.projectSettingsOverrides!==!0?[]:[{environmentId:e.environmentId,settings:t.serverConfig.settings,keybindings:t.serverConfig.keybindings,...n?{project:n}:{}}]}),e[10]=a,e[11]=s,e[12]=t.members,e[13]=n,e[14]=T,e[15]=ee,e[16]=D):(T=e[14],ee=e[15],D=e[16]);let{saving:O,persist:k,submit:A}=ee(D),j;e[17]!==T||e[18]!==r?(j=r?.projectId?T.get(r.projectId):void 0,e[17]=T,e[18]=r,e[19]=j):j=e[19];let M=j,N;e[20]===M?.environmentId?N=e[21]:(N=M?.environmentId??l.make(`none`),e[20]=M?.environmentId,e[21]=N);let P=Pe(N,M?.workspaceRoot??null),F;if(e[22]!==h||e[23]!==P.scripts){let t;e[25]===h?t=e[26]:(t=e=>!h.some(t=>t.command===e.command||t.name.toLowerCase()===e.name.toLowerCase()),e[25]=h,e[26]=t),F=P.scripts.filter(t),e[22]=h,e[23]=P.scripts,e[24]=F}else F=e[24];let I=F,L;e[27]===A?L=e[28]:(L=async e=>{let t={name:e.name,command:e.command,icon:e.icon??`play`,runOnWorktreeCreate:e.runOnWorktreeCreate??!1,waitForSetup:e.runOnWorktreeCreate===!0&&e.async===!1,runOnSettle:e.runOnSettle??!1,keybinding:null,previewUrl:e.previewUrl??null,autoOpenPreview:e.previewUrl?e.autoOpenPreview??!1:!1},n=await A(null,t);if(n._tag===`Failure`&&!re(n)){let e=ie(n);C({scriptId:null,initial:t,error:e instanceof Error?e.message:`Failed to import action.`})}},e[27]=A,e[28]=L);let R=L,z;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(z=[`defaultProjectScripts`],e[29]=z):z=e[29];let B;e[30]===k?B=e[31]:(B=()=>void k(Je),e[30]=k,e[31]=B);let V;e[32]!==y||e[33]!==R||e[34]!==I||e[35]!==O?(V=I.length>0?(0,$.jsxs)(i,{children:[(0,$.jsxs)(x,{render:(0,$.jsx)(w,{id:`import-scripts`,size:`xs`,variant:`ghost`,disabled:O||!y,type:`button`}),children:[`Import scripts`,(0,$.jsx)(te,{className:`size-3.5`})]}),(0,$.jsxs)(p,{align:`end`,children:[(0,$.jsxs)(S,{children:[(0,$.jsx)(o,{children:`Import from p4.json`}),(0,$.jsx)(`p`,{className:`px-2 pb-2 text-pretty text-sm text-muted-foreground`,children:`Add actions declared by this checkout without editing them first.`})]}),(0,$.jsx)(E,{}),I.map(e=>(0,$.jsxs)(f,{onClick:()=>void R(e),children:[(0,$.jsx)(Fe,{icon:e.icon??`play`,className:`size-4 shrink-0`}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`truncate font-medium`,children:e.name}),(0,$.jsx)(`div`,{className:`truncate font-mono text-muted-foreground`,children:e.command})]})]},`${e.name} ${e.command}`))]})]}):null,e[32]=y,e[33]=R,e[34]=I,e[35]=O,e[36]=V):V=e[36];let H=O||!y||n.length===0,U,W;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>C({scriptId:null,initial:Le}),W=(0,$.jsx)(ne,{className:`size-3.5`}),e[37]=U,e[38]=W):(U=e[37],W=e[38]);let G;e[39]===H?G=e[40]:(G=(0,$.jsxs)(w,{size:`xs`,variant:`outline`,disabled:H,onClick:U,children:[W,`Add action`]}),e[39]=H,e[40]=G);let K;e[41]!==V||e[42]!==G?(K=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[V,G]}),e[41]=V,e[42]=G,e[43]=K):K=e[43];let q;e[44]!==v||e[45]!==B||e[46]!==K?(q=(0,$.jsx)(Z,{serverScoped:!0,settingKeys:z,mixed:v,title:`Actions`,description:`Commands that run in this project's checkout or its worktree, with optional shortcuts.`,onResetOverride:B,control:K}),e[44]=v,e[45]=B,e[46]=K,e[47]=q):q=e[47];let J;e[48]!==y||e[49]!==g||e[50]!==v||e[51]!==O||e[52]!==h?(J=v?(0,$.jsx)(Z,{title:`Different actions across environments`,description:`Choose one environment to edit its list. Adding an action here adds it on every selected environment.`}):(0,$.jsx)(We,{scripts:h,keybindings:g,disabled:O||!y,onEdit:e=>C(Me(e,g))}),e[48]=y,e[49]=g,e[50]=v,e[51]=O,e[52]=h,e[53]=J):J=e[53];let Y;e[54]===P.status?Y=e[55]:(Y=P.status===`invalid`?(0,$.jsx)(Z,{title:`p4.json is invalid`,description:`A p4.json exists in this checkout but fails to parse, so every action and icon it declares is ignored. Check the JSON syntax and icon values.`,className:`text-warning`}):null,e[54]=P.status,e[55]=Y);let X;e[56]!==k||e[57]!==b||e[58]!==h||e[59]!==A||e[60]!==r?(X=r&&(0,$.jsx)(Ne,{environmentId:r.environmentId,editScope:`settings:write`,request:b,scripts:h,onSubmit:A,onDelete:e=>void k(t=>t.filter(t=>t.id!==e),e,null),onClose:()=>C(null)}),e[56]=k,e[57]=b,e[58]=h,e[59]=A,e[60]=r,e[61]=X):X=e[61];let oe;return e[62]!==q||e[63]!==J||e[64]!==Y||e[65]!==X?(oe=(0,$.jsxs)(Ce,{id:`project-actions`,title:`Actions`,children:[q,J,Y,X]}),e[62]=q,e[63]=J,e[64]=Y,e[65]=X,e[66]=oe):oe=e[66],oe}function Je(){return null}function Ye(e){return[e.id,e]}function Xe(e,t,n){return n&&e.some(e=>e!==t)}var Ze=(0,Q.lazy)(()=>t(()=>import(`./ProjectIconPickerDialog-Cx-QcJLy.js`).then(e=>({default:e.ProjectIconPickerDialog})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])));function Qe(e){return`${e.environmentId}:${e.id}`}function $e(e){let t=(0,Be.c)(34),{projectKey:n,environmentId:r,checkoutKey:i}=e,a=r===void 0?null:r,o=i===void 0?null:i,s=ye(),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c={from:`/settings`},t[0]=c):c=t[0];let l=I(c),u;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(u={select:tt},t[1]=u):u=t[1];let d=L(u),f;t[2]!==s||t[3]!==n?(f=s.find(e=>e.projectKey===n)??null,t[2]=s,t[3]=n,t[4]=f):f=t[4];let p=f,m;t[5]!==o||t[6]!==a||t[7]!==p?.memberProjects?(m=p?.memberProjects.filter(e=>(a===null||e.environmentId===a)&&(o===null||e.physicalProjectKey===o))??[],t[5]=o,t[6]=a,t[7]=p?.memberProjects,t[8]=m):m=t[8];let h=m,g=(0,Q.useRef)(null),_,v;t[9]!==o||t[10]!==a||t[11]!==h||t[12]!==p?(_=()=>{p&&h.length!==0&&(g.current={key:p.projectKey,environmentId:a,checkoutKey:o,memberKeys:h.map(et)})},v=[p,h,a,o],t[9]=o,t[10]=a,t[11]=h,t[12]=p,t[13]=_,t[14]=v):(_=t[13],v=t[14]),(0,Q.useEffect)(_,v);let y,b;if(t[15]!==o||t[16]!==a||t[17]!==s||t[18]!==h.length||t[19]!==l||t[20]!==d||t[21]!==n?(b=()=>{if(h.length>0)return;let e=g.current;if(e?.key!==n||e.environmentId!==a||e.checkoutKey!==o)return;let t=s.find(t=>t.memberProjects.some(t=>e.memberKeys.includes(t.physicalProjectKey)));t&&l({to:d,search:()=>({project:t.projectKey,machine:a??void 0,checkout:o??void 0}),replace:!0,hashScrollIntoView:!1})},y=[s,l,d,n,h.length,a,o],t[15]=o,t[16]=a,t[17]=s,t[18]=h.length,t[19]=l,t[20]=d,t[21]=n,t[22]=y,t[23]=b):(y=t[22],b=t[23]),(0,Q.useEffect)(b,y),!p){let e=s.length===0?`Add a project from the sidebar to configure it here.`:`This project is no longer available.`,n;return t[24]===e?n=t[25]:(n=(0,$.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8 text-sm text-muted-foreground`,children:e}),t[24]=e,t[25]=n),n}if(h.length===0){let e;return t[26]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`p`,{className:`p-8 text-sm text-muted-foreground`,children:`This checkout is no longer available in the selected project and environment.`}),t[26]=e):e=t[26],e}let x;t[27]!==h||t[28]!==p?(x={...p,memberProjects:h,environmentId:h[0].environmentId,id:h[0].id},t[27]=h,t[28]=p,t[29]=x):x=t[29];let S=x,C=`${p.projectKey}:${a??`all`}:${o??`all`}`,w=h.length<p.memberProjects.length,T;return t[30]!==S||t[31]!==C||t[32]!==w?(T=(0,$.jsx)(nt,{group:S,hasOtherMembers:w},C),t[30]=S,t[31]=C,t[32]=w,t[33]=T):T=t[33],T}function et(e){return e.physicalProjectKey}function tt(e){return e.pathname}function nt({group:e,hasOtherMembers:t}){let n=I({from:`/settings`}),i=V(),{environments:a}=ae(),o=(0,Q.useMemo)(()=>new Map(a.map(e=>[e.environmentId,e])),[a]),c=G(e.memberProjects,_),l=e.memberProjects.every(e=>c.has(e.environmentId)),d=e.memberProjects.find(e=>o.get(e.environmentId)?.serverConfig!=null)??e.memberProjects[0],f=P(),p=we(N.update,{reportFailure:!1}),m=we(N.delete,{reportFailure:!1}),h=(0,Q.useRef)(!1),v=d.faviconPath??null,b=d.projectIcon??null,x=typeof window<`u`&&e.memberProjects.every(e=>e.environmentId===i&&He(e.workspaceRoot,navigator.platform))?window.desktopBridge?.pickProjectFavicon:void 0,S=(0,Q.useCallback)((e,t)=>{if(t._tag!==`Failure`||re(t))return;let n=ie(t);R.add(q({type:`error`,title:e,description:n instanceof Error?n.message:`An error occurred.`}))},[]),C=(0,Q.useCallback)((e,t)=>{let n=e.find(e=>!W(e.environmentId,_));if(!n)return null;let r=T(s(Error(`This connection cannot change projects in ${n.environmentLabel??`this environment`}.`)));return S(t,r),r},[S]),E=(0,Q.useCallback)(async(t,n)=>{let r=C(e.memberProjects,n);if(r)return r;let i=e.memberProjects.find(e=>{let t=o.get(e.environmentId);return t?.connection.phase!==`connected`||!t.serverConfig});if(i){let e=Error(`Connect ${i.environmentLabel??`the selected environment`} and try again.`),t=T(s(e));return S(n,t),t}for(let r of e.memberProjects){let i=C([r],n);if(i)return i;let a=A(await p({environmentId:r.environmentId,input:{projectId:r.id,...t}}),()=>void 0);if(a._tag===`Failure`)return S(e.memberProjects.length>1?`${n} on ${r.environmentLabel??`the current environment`}`:n,a),a}return y(void 0)},[C,o,e.memberProjects,S,p]),te=(0,Q.useCallback)(async(t,n)=>{let r=t.trim();if(!r){R.add({type:`warning`,title:`Project title cannot be empty`});return}Xe(e.memberProjects.map(e=>e.title),r,n)&&await E({title:r},`Failed to rename project`)},[e.memberProjects,E]),[ne,j]=g(!l),[F,L]=g(!l),[B,H]=(0,Q.useState)(!1),U=(0,Q.useRef)(!1),K=(0,Q.useCallback)(async e=>{if(!U.current){U.current=!0,H(!0);try{await E(e,`Failed to update project icon`)}finally{U.current=!1,H(!1)}}},[E]),J=e.memberProjects.length>1,Y=(0,Q.useCallback)(async i=>{if(C(i,`Failed to remove project`))return;let a=z();if(!a)return;let o=new Set(i.map(Qe)),s=f.filter(e=>o.has(`${e.environmentId}:${e.projectId}`)),c=i.length===e.memberProjects.length,l=t||!c?`checkout`:`project`,d=i.length===1?i[0]:null,p=d?.title??e.displayName,h=await k(()=>a.dialogs.confirm([s.length>0?`Remove ${l} "${p}" and delete its ${s.length} thread${s.length===1?``:`s`}?`:`Remove ${l} "${p}"?`,...d?[`Path: ${d.workspaceRoot}`,...d.environmentLabel?[`Environment: ${d.environmentLabel}`]:[]]:[`This removes ${i.length} grouped project entries.`],...s.length>0?[`This permanently clears conversation history for those threads and any archived threads.`]:[`This permanently clears any archived conversation history.`],c&&!t?`This removes only the project entries, not the files on disk.`:`Other entries in this grouped project are unaffected.`,`This action cannot be undone.`].join(`
|
|
3
|
+
`),{variant:`destructive`}));if(h._tag===`Failure`||!h.value||C(i,`Failed to remove project`))return;let g=r.getState();for(let e of i){if(C([e],`Failed to remove project`))return;let t=s.filter(t=>t.environmentId===e.environmentId&&t.projectId===e.id),n=A(await m({environmentId:e.environmentId,input:{projectId:e.id,force:!0}}),()=>void 0);if(n._tag===`Failure`){S(`Failed to remove "${e.title}"`,n);return}let r=u(e.environmentId,e.id);await M(r),ke(r,t.map(e=>ee(e.environmentId,e.id)));let i=g.getDraftThreadByProjectRef(r);i&&g.clearDraftThread(i.draftId),g.clearProjectDraftThreadId(r)}c&&!t&&n({to:`/`,replace:!0})},[C,m,e.displayName,e.memberProjects.length,t,n,S,f]),X=(0,$.jsx)(Ce,{title:`Checkouts`,children:e.memberProjects.map(e=>(0,$.jsx)(Z,{title:e.environmentLabel??`Environment`,description:e.workspaceRoot,control:(0,$.jsx)(w,{size:`sm`,variant:`outline`,disabled:!c.has(e.environmentId),onClick:()=>void Y([e]),"aria-label":`Remove checkout ${e.workspaceRoot}`,children:`Remove`})},e.physicalProjectKey))});return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(xe,{className:`gap-6`,children:[(0,$.jsxs)(_e,{variant:`info`,children:[(0,$.jsx)(D,{"aria-hidden":!0}),(0,$.jsx)(ge,{children:`Can't find a setting? Keep this project picked above and hop to any other settings page.`})]}),(0,$.jsxs)(Ce,{id:`project-overview`,title:`Project`,hideTitle:!0,children:[l?null:(0,$.jsx)(`p`,{className:`px-3 py-2 text-sm text-muted-foreground sm:px-4`,children:e.memberProjects.length>1?`Shared settings require permission to change every checkout in this group.`:`This connection cannot change this project.`}),(0,$.jsx)(Z,{title:`Name`,description:`The shared name for this project group in the sidebar and thread lists.`,control:(0,$.jsx)(oe,{size:`sm`,className:`w-full sm:w-64`,"aria-label":`Project name`,disabled:!l,defaultValue:e.displayName,onChange:()=>{h.current=!0},onBlur:e=>{let t=h.current;h.current=!1,te(e.currentTarget.value,t)},onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur()}},`${e.projectKey}:${e.displayName}`)}),(0,$.jsx)(Z,{title:`Project icon`,description:b?.kind===`lucide`?`${b.name} · ${b.color}`:b?.kind===`monogram`?`${b.text} · ${b.color}`:b?.kind===`emoji`?b.emoji:v??`Automatic`,resetAction:e.memberProjects.some(e=>e.faviconPath!=null||e.projectIcon!=null)?(0,$.jsx)(Se,{label:`project icon`,disabled:B||!l,onClick:()=>void K({faviconPath:null,projectIcon:null})}):null,control:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(pe,{project:d,className:`size-6`}),(0,$.jsx)(w,{size:`sm`,variant:`outline`,type:`button`,"aria-label":`Choose a project icon`,disabled:B||!l,onClick:()=>L(!0),children:`Choose icon`}),(0,$.jsx)(w,{size:`sm`,variant:`outline`,type:`button`,"aria-label":`Choose a project icon file`,disabled:B||!l,onClick:()=>j(!0),children:`Choose file`})]})})]}),(0,$.jsx)(Re,{category:`project`}),(0,$.jsx)(qe,{}),J?X:null,(0,$.jsx)(Ce,{title:`Danger`,children:(0,$.jsx)(Z,{title:t?`Remove checkout`:e.memberProjects.length>1?`Remove this project everywhere`:`Remove project`,description:t?`Deletes the selected machine's checkout entries and their threads. Other machines and files on disk are not touched.`:e.memberProjects.length>1?`Deletes all ${e.memberProjects.length} checkout entries and their threads on every machine. Files on disk are not touched.`:`Deletes the project entry and its threads. Files on disk are not touched.`,control:(0,$.jsxs)(w,{size:`sm`,variant:`destructive-outline`,disabled:!l,onClick:()=>void Y(e.memberProjects),children:[(0,$.jsx)(O,{}),t?`Remove checkout`:e.memberProjects.length>1?`Remove all entries`:`Remove project`]})})})]}),(0,$.jsx)(Ue,{cwd:d.workspaceRoot,environmentId:d.environmentId,onOpenChange:j,...x?{onPickExternal:()=>x(d.workspaceRoot)}:{},onSelect:e=>void K({faviconPath:e,projectIcon:null}),open:ne&&l,projectName:e.displayName},`${d.environmentId}:${d.workspaceRoot}:${ne}`),F&&l?(0,$.jsx)(Q.Suspense,{fallback:null,children:(0,$.jsx)(Ze,{current:b,projectName:d.title,open:!0,onOpenChange:L,onSelect:e=>void K({faviconPath:null,projectIcon:e})})}):null]})}function rt(){let e=(0,Be.c)(7),{search:t,scope:n}=ve(),r=n.kind===`project`||n.kind===`checkout`||n.kind===`unavailable`&&(n.reason===`project-missing`||n.reason===`checkout-missing`),i;return e[0]!==r||e[1]!==n.kind||e[2]!==n.message||e[3]!==t.checkout||e[4]!==t.machine||e[5]!==t.project?(i=(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:t.project&&r?(0,$.jsx)($e,{projectKey:t.project,environmentId:t.machine?l.make(t.machine):null,checkoutKey:t.checkout??null}):n.kind===`unavailable`?(0,$.jsx)(xe,{children:(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n.message})}):(0,$.jsx)(ze,{target:`project`,children:`Choose a project to manage its name, icon, checkouts and actions.`})}),e[0]=r,e[1]=n.kind,e[2]=n.message,e[3]=t.checkout,e[4]=t.machine,e[5]=t.project,e[6]=i):i=e[6],i}var it=rt;export{it as component};
|
|
4
|
+
//# sourceMappingURL=settings.projects-BahZsoyx.js.map
|