@p4code/cli 0.8.8 → 0.8.9

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.
Files changed (277) hide show
  1. package/dist/bin.mjs +1 -1
  2. package/dist/{binCli-CnPGSVWN.mjs → binCli-C7u9q31G.mjs} +25 -113
  3. package/dist/client/.vite/manifest.json +2071 -2071
  4. package/dist/client/assets/{AnimatedHeight-CeIqOXkD.js → AnimatedHeight-DZPLUjm9.js} +2 -2
  5. package/dist/client/assets/{AuthSurfaceShell-CeFbPegZ.js → AuthSurfaceShell-CY0yRsGY.js} +2 -2
  6. package/dist/client/assets/{CSPContext-BLmE8rVK.js → CSPContext-D9jns38x.js} +2 -2
  7. package/dist/client/assets/{ChatGptUsageButton-gEF4N7W7.js → ChatGptUsageButton-jceJZ5U0.js} +2 -2
  8. package/dist/client/assets/{ChatMarkdown-DQ3uXQzt.js → ChatMarkdown-B2cnntMF.js} +4 -4
  9. package/dist/client/assets/{CodexSetupSection.logic-DobP-gmw.js → CodexSetupSection.logic-Bfp0M73n.js} +2 -2
  10. package/dist/client/assets/{ComboboxClear-fNH6Tj-4.js → ComboboxClear-B-WUNsj0.js} +2 -2
  11. package/dist/client/assets/{CommandBlock-X-DC1M4o.js → CommandBlock-BI9G-Hs9.js} +2 -2
  12. package/dist/client/assets/{ComposerPromptEditor-DiF8eMQV.js → ComposerPromptEditor-CYQVwHWc.js} +4 -4
  13. package/dist/client/assets/{CompositeRoot-Bu_9wjlN.js → CompositeRoot-CZqNlh6y.js} +2 -2
  14. package/dist/client/assets/{ConnectionStatusDot-0G2DkC_D.js → ConnectionStatusDot-BNGv8ojc.js} +2 -2
  15. package/dist/client/assets/{DevicePanel-BkS5Q-Y2.js → DevicePanel-C5V7qlX0.js} +2 -2
  16. package/dist/client/assets/{DeviceSetup-C0iRuaPp.js → DeviceSetup-lLd1Dxuc.js} +2 -2
  17. package/dist/client/assets/{DialogTitle-B7ZsIcBO.js → DialogTitle-Bti0gMwZ.js} +2 -2
  18. package/dist/client/assets/{DiffCommentAnnotation-UyWIyKIO.js → DiffCommentAnnotation-DpZ1jfFT.js} +2 -2
  19. package/dist/client/assets/{DiffFileTree-LZwmN24l.js → DiffFileTree-DW_wXLvM.js} +2 -2
  20. package/dist/client/assets/{DiffPanel-DfD6emFU.js → DiffPanel-DvsF1RpU.js} +2 -2
  21. package/dist/client/assets/{DiffWorkerPoolProvider-BCslhrpA.js → DiffWorkerPoolProvider-BGHe4Gu5.js} +2 -2
  22. package/dist/client/assets/{EnvironmentMachineIcon-Bn0qgNMW.js → EnvironmentMachineIcon-BzeEbEQS.js} +2 -2
  23. package/dist/client/assets/{ExpandableText-DPFtEjPq.js → ExpandableText-CZAoe3pn.js} +2 -2
  24. package/dist/client/assets/{FieldControl-Dcug7PQN.js → FieldControl-DSYkAElP.js} +2 -2
  25. package/dist/client/assets/{FileDiff-CztExdxl.js → FileDiff-qUCf81Vy.js} +2 -2
  26. package/dist/client/assets/{FilePreviewPanel-C_Q3mPlo.js → FilePreviewPanel-DgsQ3_bI.js} +2 -2
  27. package/dist/client/assets/{FoldedSettingsSection-MrezZXWL.js → FoldedSettingsSection-B8ucLmcM.js} +2 -2
  28. package/dist/client/assets/{FormContext-N50VWQHc.js → FormContext-TllbMdtd.js} +2 -2
  29. package/dist/client/assets/{Icons-CBnVp61L.js → Icons-CyDEOiJ2.js} +2 -2
  30. package/dist/client/assets/{KeybindingsSettings.logic-CCa_n5Wn.js → KeybindingsSettings.logic-Dx9jAbbW.js} +2 -2
  31. package/dist/client/assets/{NoProjectsHero-sRJlYzCx.js → NoProjectsHero-Lxz19PUh.js} +2 -2
  32. package/dist/client/assets/{PanelLayoutControls-bgJzxuTg.js → PanelLayoutControls-jZ_kyR1v.js} +4 -4
  33. package/dist/client/assets/{PierreEntryIcon-Bid6ECoT.js → PierreEntryIcon-zwmwEij7.js} +2 -2
  34. package/dist/client/assets/{PreviewPanel-CQlsmVXf.js → PreviewPanel-Cgu0PLKZ.js} +2 -2
  35. package/dist/client/assets/{ProjectDefaultsSettings-BaW9gkj0.js → ProjectDefaultsSettings-DaLgF84f.js} +2 -2
  36. package/dist/client/assets/{ProjectFavicon-oQ8xOLai.js → ProjectFavicon-Cs-IpJFL.js} +3 -3
  37. package/dist/client/assets/{ProjectIconPickerDialog-D1QKDGMX.js → ProjectIconPickerDialog-CWU1aanN.js} +2 -2
  38. package/dist/client/assets/{ProjectMonogram-wj_aiPmM.js → ProjectMonogram-De9Vi6mM.js} +2 -2
  39. package/dist/client/assets/{ProviderAuthTerminal-BXJZPbVk.js → ProviderAuthTerminal-Dod9VT45.js} +2 -2
  40. package/dist/client/assets/{ProviderModelPicker-CQQUHTh0.js → ProviderModelPicker-DnPxGK8M.js} +2 -2
  41. package/dist/client/assets/{ProviderSettingsForm-CX9Fb8_8.js → ProviderSettingsForm-CK0XB_2n.js} +2 -2
  42. package/dist/client/assets/{PullRequestCodeTab-DLqbGyR7.js → PullRequestCodeTab-TTmg3elC.js} +2 -2
  43. package/dist/client/assets/{ReadOnlySourcePreview-B7C0GGAq.js → ReadOnlySourcePreview-DS49yxPu.js} +2 -2
  44. package/dist/client/assets/{RenderErrorBoundary-DfL11xnF.js → RenderErrorBoundary-ChsSTLIX.js} +2 -2
  45. package/dist/client/assets/{ScheduledTasksSettings-Di6Z2urM.js → ScheduledTasksSettings-DK0fR_O9.js} +2 -2
  46. package/dist/client/assets/{ScopedSwitch-DYM42LM4.js → ScopedSwitch-zab4bpLE.js} +2 -2
  47. package/dist/client/assets/{SecretInput-CpQgS_zs.js → SecretInput-7_dN8OZO.js} +2 -2
  48. package/dist/client/assets/{SettingsPanels-D-wcH1Qk.js → SettingsPanels-CvD-BKml.js} +2 -2
  49. package/dist/client/assets/{SettingsPanels.logic-BQHrLt25.js → SettingsPanels.logic-BxZ7DzP5.js} +2 -2
  50. package/dist/client/assets/{SettingsScopeNotice-BbuY3OvE.js → SettingsScopeNotice-Bq3kVMy1.js} +2 -2
  51. package/dist/client/assets/{T3ConnectAccountPages-Bb49yKNe.js → T3ConnectAccountPages-C37rBXr1.js} +2 -2
  52. package/dist/client/assets/{T3ConnectSidebarSignIn-CjmtmsbE.js → T3ConnectSidebarSignIn-Dcx0wC1Y.js} +2 -2
  53. package/dist/client/assets/{ThemeEditorPanel-CeucoKK-.js → ThemeEditorPanel-CDg13cbU.js} +2 -2
  54. package/dist/client/assets/{ThreadTerminalDrawer-Di41e66k.js → ThreadTerminalDrawer-CJZ5gJIq.js} +2 -2
  55. package/dist/client/assets/{Virtualizer-YMJF6Rgn.js → Virtualizer-BzpMB2EV.js} +2 -2
  56. package/dist/client/assets/{WorkspaceBreadcrumb-B4olYudc.js → WorkspaceBreadcrumb-BG0QcIel.js} +2 -2
  57. package/dist/client/assets/{WorkspacePageContainer-D_NDP2pC.js → WorkspacePageContainer-D4M31vG4.js} +2 -2
  58. package/dist/client/assets/{WorkspacePageHeader-CF_fkCJo.js → WorkspacePageHeader-xG2EcvME.js} +2 -2
  59. package/dist/client/assets/{_chat-BvSmDiLw.js → _chat-DWZuy8TH.js} +5 -5
  60. package/dist/client/assets/{_chat.index-B86aUAxh.js → _chat.index-CFbhMaCi.js} +2 -2
  61. package/dist/client/assets/{_chat.new-COnJvlNC.js → _chat.new-B9CmLitW.js} +2 -2
  62. package/dist/client/assets/{_chat.pull-requests-CMa0EuoS.js → _chat.pull-requests-BvS3LBJa.js} +2 -2
  63. package/dist/client/assets/{abnfDiagram-VCTEODGH-GKlp-wAF.js → abnfDiagram-VCTEODGH-DTgtRsRm.js} +2 -2
  64. package/dist/client/assets/{alert-BOSKZyDW.js → alert-BFkMrLRZ.js} +2 -2
  65. package/dist/client/assets/architecture-7GRP2DOG-B_WCZ15Q.js +1 -0
  66. package/dist/client/assets/{architectureDiagram-5GKGNRK7-BbKUUHgQ.js → architectureDiagram-5GKGNRK7-DoSCknS9.js} +2 -2
  67. package/dist/client/assets/{assets-arnK8cZJ.js → assets-CH9UWZJ9.js} +2 -2
  68. package/dist/client/assets/{blockDiagram-I7D4REHJ-BvV9OXgS.js → blockDiagram-I7D4REHJ-CIO7Vskr.js} +2 -2
  69. package/dist/client/assets/{browserHistoryStore-D3NmgwWz.js → browserHistoryStore-CUwwaVj8.js} +2 -2
  70. package/dist/client/assets/{browserLinkTarget-CTDv30-a.js → browserLinkTarget-o1Hmp1Jv.js} +2 -2
  71. package/dist/client/assets/{c4Diagram-7LVT6UL2-BT2fKwga.js → c4Diagram-7LVT6UL2-CmnScM2q.js} +2 -2
  72. package/dist/client/assets/channel-Qn29FVeD.js +2 -0
  73. package/dist/client/assets/{checkbox-B0Q9zWdp.js → checkbox-DSb65NrE.js} +2 -2
  74. package/dist/client/assets/{chunk-4HAMMTFA-BPIUCP2N.js → chunk-4HAMMTFA-CuQTMYv7.js} +2 -2
  75. package/dist/client/assets/{chunk-75Z2AOVW-BY1XFSYe.js → chunk-75Z2AOVW-xNjAbRtQ.js} +2 -2
  76. package/dist/client/assets/{chunk-DU6HZSFF-BhfbeXEz.js → chunk-DU6HZSFF-B-vhPkPw.js} +2 -2
  77. package/dist/client/assets/{chunk-F27PBJKO-CkPC4b2I.js → chunk-F27PBJKO-HjvfKtnV.js} +2 -2
  78. package/dist/client/assets/{chunk-GMAD6QVW-D9bW2adv.js → chunk-GMAD6QVW-kPi65s4F.js} +2 -2
  79. package/dist/client/assets/{chunk-GVQU2GXP-C-gRpKGj.js → chunk-GVQU2GXP-xSVP_0Ga.js} +2 -2
  80. package/dist/client/assets/{chunk-IMKFNOWR-CGR_s6mQ.js → chunk-IMKFNOWR-Bo44GnXt.js} +2 -2
  81. package/dist/client/assets/{chunk-L3NEJ4N5-BPN8qLtR.js → chunk-L3NEJ4N5-CL_FAp25.js} +2 -2
  82. package/dist/client/assets/{chunk-OSK3NFVY-C83gEYhi.js → chunk-OSK3NFVY-C-UAFrKw.js} +2 -2
  83. package/dist/client/assets/{chunk-P2QGCYS3-DoadH0FQ.js → chunk-P2QGCYS3-Cu_kTzsg.js} +2 -2
  84. package/dist/client/assets/{chunk-POPQ4Y6H-OENQdCtW.js → chunk-POPQ4Y6H-DlEI3XVl.js} +2 -2
  85. package/dist/client/assets/{chunk-PWAF6VOD-Bm9xwnBb.js → chunk-PWAF6VOD-COj3Z6PV.js} +2 -2
  86. package/dist/client/assets/{chunk-SHT3W25Y-CZdeFTa3.js → chunk-SHT3W25Y-DmOdlcB6.js} +2 -2
  87. package/dist/client/assets/{chunk-SVP7TREG-CWjZG-1G.js → chunk-SVP7TREG-DZcmFNGC.js} +2 -2
  88. package/dist/client/assets/{chunk-TICWLB2K-C6_3qr0T.js → chunk-TICWLB2K-D2Au2dCv.js} +2 -2
  89. package/dist/client/assets/classDiagram-ZZMXUADV-BNlFiwih.js +2 -0
  90. package/dist/client/assets/classDiagram-v2-VYDZK3BY-BNlFiwih.js +2 -0
  91. package/dist/client/assets/{color-picker-B_vY4rCj.js → color-picker-8XrkJD1z.js} +2 -2
  92. package/dist/client/assets/{combobox-CZ_uig0z.js → combobox-BdHSd-gh.js} +2 -2
  93. package/dist/client/assets/{command-DGoFksB6.js → command-DywgXMPU.js} +2 -2
  94. package/dist/client/assets/{connect-CuZjH_Pw.js → connect-D6Vr-odX.js} +2 -2
  95. package/dist/client/assets/{connect-agent-BhcB_UCW.js → connect-agent-D6S_10vE.js} +2 -2
  96. package/dist/client/assets/{cynefin-OW5HDTMX-BBaHuZtP.js → cynefin-OW5HDTMX-Cl8Piv1U.js} +1 -1
  97. package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-D0TOipYC.js → cynefinDiagram-5FMLGOSQ-BlrMhOzc.js} +2 -2
  98. package/dist/client/assets/{dagre-GXQ25YYZ-BqIStTWM.js → dagre-GXQ25YYZ-zcnnhkbu.js} +2 -2
  99. package/dist/client/assets/{device-Dy_6ukvt.js → device-CVYEIUNR.js} +2 -2
  100. package/dist/client/assets/{diagram-S7CK7UJ4-DtlY2HLu.js → diagram-S7CK7UJ4-bDWotpej.js} +2 -2
  101. package/dist/client/assets/{diagram-UQ7AKVKN-AFvyPgaY.js → diagram-UQ7AKVKN-QfcGX0wU.js} +2 -2
  102. package/dist/client/assets/{diagram-VSXAHHWV-BX0DQrOR.js → diagram-VSXAHHWV-B6rtnGIC.js} +2 -2
  103. package/dist/client/assets/{diagram-VX7I27RA-RpuCJkmb.js → diagram-VX7I27RA-Bh7jDf_z.js} +2 -2
  104. package/dist/client/assets/{diagram-Z3DM3KII-YDywc4a-.js → diagram-Z3DM3KII-BF8BOL3s.js} +2 -2
  105. package/dist/client/assets/{dialog-COvCzBu5.js → dialog-B5b8j4VI.js} +2 -2
  106. package/dist/client/assets/{diffRendering-EBC4wPDV.js → diffRendering-CnRmUrdi.js} +2 -2
  107. package/dist/client/assets/{discovery-list-B1TD-soO.js → discovery-list-DLWA9rLh.js} +2 -2
  108. package/dist/client/assets/{dist-Cg-eOU-v.js → dist-B181ZKao.js} +3 -3
  109. package/dist/client/assets/{draft-input-DHW6QTyZ.js → draft-input-CidATm_k.js} +2 -2
  110. package/dist/client/assets/{duoViewer-B9J_QozU.js → duoViewer-gLqnN26Y.js} +2 -2
  111. package/dist/client/assets/{dynamic-CUevKA9_.js → dynamic-C9YFXILD.js} +2 -2
  112. package/dist/client/assets/{ebnfDiagram-PWID7BFC-CAfVAMWI.js → ebnfDiagram-PWID7BFC-DbaAPr36.js} +2 -2
  113. package/dist/client/assets/{embeddedScripts-Cvalo74G.js → embeddedScripts-DZZY2Y12.js} +2 -2
  114. package/dist/client/assets/{empty-Dmvz5ya5.js → empty-BQwNj0_P.js} +2 -2
  115. package/dist/client/assets/{entities-DPdxOTpx.js → entities-CW57Cs5E.js} +2 -2
  116. package/dist/client/assets/{erDiagram-RLTQ6QDP-B8I9HNiQ.js → erDiagram-RLTQ6QDP-CkFVQs9q.js} +2 -2
  117. package/dist/client/assets/eventmodeling-NTZA5JFV-Bx5bcL3d.js +1 -0
  118. package/dist/client/assets/{fileLinks-Cfgs6wOJ.js → fileLinks-CJJSqeqK.js} +2 -2
  119. package/dist/client/assets/{fileTreeExpansion-BbO9lBJr.js → fileTreeExpansion-D1dm7wQj.js} +2 -2
  120. package/dist/client/assets/flowDiagram-HODETNUW-BOrqEpZF.js +1 -0
  121. package/dist/client/assets/{ganttDiagram-EL5Y4UJY-G4XFicxk.js → ganttDiagram-EL5Y4UJY-bgGfFOUy.js} +2 -2
  122. package/dist/client/assets/{getDiffFileInput-BhtRP4yl.js → getDiffFileInput-C3kf5492.js} +2 -2
  123. package/dist/client/assets/{gitGraph-4MIJSDKK-Dz9vbKwX.js → gitGraph-4MIJSDKK-CkcsQXce.js} +1 -1
  124. package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-BRPk5Iff.js → gitGraphDiagram-WWUBYQGX-D9-3rabr.js} +2 -2
  125. package/dist/client/assets/{guideRunStore-OyuNEz1_.js → guideRunStore-C7ZnghV_.js} +2 -2
  126. package/dist/client/assets/{htmlRender-94mfYlmv.js → htmlRender-Dwrbtk9Z.js} +2 -2
  127. package/dist/client/assets/{index-BGHZIIwm.js → index-CG78-Gl5.js} +3 -3
  128. package/dist/client/assets/{info-A6RAGUB7-C2HElvlZ.js → info-A6RAGUB7-D_d0Mq_H.js} +1 -1
  129. package/dist/client/assets/{infoDiagram-27XIBGKW-IOOCD2gD.js → infoDiagram-27XIBGKW-DYnd3lec.js} +2 -2
  130. package/dist/client/assets/{input-OK9fSGsW.js → input-CNGP9r-b.js} +2 -2
  131. package/dist/client/assets/{input-group-DLt_QDs-.js → input-group-CIDwGwLV.js} +2 -2
  132. package/dist/client/assets/{ishikawaDiagram-5VMMS53U-DVm2wQsr.js → ishikawaDiagram-5VMMS53U-Br3IhV30.js} +2 -2
  133. package/dist/client/assets/{journeyDiagram-3NMN7TZE-KFjVMjGh.js → journeyDiagram-3NMN7TZE-D4gshgtr.js} +2 -2
  134. package/dist/client/assets/{kanban-definition-UXKFOSKX-DxT40hgP.js → kanban-definition-UXKFOSKX-DODm_gbD.js} +2 -2
  135. package/dist/client/assets/{kbd-LyGbiGLS.js → kbd-C3OLELe_.js} +2 -2
  136. package/dist/client/assets/{keybindings-BWCWrY_-.js → keybindings-Dw_FB1Sr.js} +2 -2
  137. package/dist/client/assets/{lazyRouteComponent-Doka-Cpt.js → lazyRouteComponent-knQbCz5Y.js} +2 -2
  138. package/dist/client/assets/{line-BUx_Qlcs.js → line-B2pKNKWO.js} +2 -2
  139. package/dist/client/assets/{link-DaswZEsz.js → link-CBNV8k75.js} +2 -2
  140. package/dist/client/assets/{linkedPrompt-3u_uoe6Y.js → linkedPrompt-BsxfomUU.js} +2 -2
  141. package/dist/client/assets/{main-DB45P6Gd.js → main-pmaKofkn.js} +7 -7
  142. package/dist/client/assets/{mediaReference-T3SNj1En.js → mediaReference-BLVT2VlI.js} +2 -2
  143. package/dist/client/assets/{mediaSource-DAJ35Twr.js → mediaSource-1xb6xNr7.js} +2 -2
  144. package/dist/client/assets/{mermaid-parser.core-CuUxy4fc.js → mermaid-parser.core-CT916xNb.js} +4 -4
  145. package/dist/client/assets/{mermaid.core-CV-2Hipl.js → mermaid.core-dZGXThQe.js} +5 -5
  146. package/dist/client/assets/{mindmap-definition-YA3MSWOX-B5gC6PY9.js → mindmap-definition-YA3MSWOX-DRDe2pwU.js} +2 -2
  147. package/dist/client/assets/{number-field-CHOp4dMK.js → number-field-CrV4BtLe.js} +2 -2
  148. package/dist/client/assets/{observeResize-B7tl_Rye.js → observeResize-jQzrVN_N.js} +2 -2
  149. package/dist/client/assets/{onboarding-CFB4Wz5g.js → onboarding-DnxQtcwh.js} +2 -2
  150. package/dist/client/assets/{openFileInPreview-D80asiJZ.js → openFileInPreview-Dx_dxN9N.js} +2 -2
  151. package/dist/client/assets/{p4ProjectFile-BfBM2HoW.js → p4ProjectFile-BfRZT-Cd.js} +2 -2
  152. package/dist/client/assets/{packet-AYTQ26CC-CJ0qzIIY.js → packet-AYTQ26CC-BewZkvu0.js} +1 -1
  153. package/dist/client/assets/{pair-CQbNFhjc.js → pair-B5ki01nI.js} +2 -2
  154. package/dist/client/assets/{pegDiagram-XKGWAZYB-BzvO80-H.js → pegDiagram-XKGWAZYB-C9c_KSl7.js} +2 -2
  155. package/dist/client/assets/{phoneViewer-BghY79hZ.js → phoneViewer-HVXHif_1.js} +2 -2
  156. package/dist/client/assets/{pie-WAS4IAKB-M62byk0f.js → pie-WAS4IAKB-CzmLCGka.js} +1 -1
  157. package/dist/client/assets/{pieDiagram-E7YTZNPT-O5p8eSgL.js → pieDiagram-E7YTZNPT-C-Z8w4pJ.js} +2 -2
  158. package/dist/client/assets/{pierre-icons-BweC0Ojp.js → pierre-icons-CnfzBsKG.js} +2 -2
  159. package/dist/client/assets/{popover-DzOky6C0.js → popover-CCsUmLYF.js} +2 -2
  160. package/dist/client/assets/{preview-DLjmZv-h.js → preview-BJJOaGR2.js} +2 -2
  161. package/dist/client/assets/{preview-CP02VJQW.js → preview-BXxrRVX-.js} +2 -2
  162. package/dist/client/assets/{previewMiniPlayerStore-DnzLYNg5.js → previewMiniPlayerStore-C7poB4-A.js} +2 -2
  163. package/dist/client/assets/{primary-z0kWcTid.js → primary-DBlVHyxT.js} +2 -2
  164. package/dist/client/assets/{primaryCloudLinkState-Bup2zk6b.js → primaryCloudLinkState-BfCEo8Kn.js} +2 -2
  165. package/dist/client/assets/{projectFilesQueryState-BKJPj8kq.js → projectFilesQueryState-CgqhXdfj.js} +2 -2
  166. package/dist/client/assets/{projectScriptEditor-C10v2IgV.js → projectScriptEditor-CARl6hYK.js} +2 -2
  167. package/dist/client/assets/{providerSkills-DPGvsbQq.js → providerSkills-B2xzNGmJ.js} +2 -2
  168. package/dist/client/assets/{pullRequestDetail.logic-CQ1l2jWB.js → pullRequestDetail.logic-CYwAUOQC.js} +2 -2
  169. package/dist/client/assets/{pullRequestIcons-Cwz6tomi.js → pullRequestIcons-SCwBWGeD.js} +2 -2
  170. package/dist/client/assets/{pullRequestReviewStore-DejvzSy2.js → pullRequestReviewStore-C7gfd5m3.js} +2 -2
  171. package/dist/client/assets/{pullRequests-DmlU8TRv.js → pullRequests-DQFba6Nz.js} +2 -2
  172. package/dist/client/assets/{quadrantDiagram-AXDQQJYC-DMpTBqB0.js → quadrantDiagram-AXDQQJYC-I8UtWMv_.js} +2 -2
  173. package/dist/client/assets/{queries-DUuhuhAL.js → queries-DfOxYbXr.js} +2 -2
  174. package/dist/client/assets/{query-BWYUB_iK.js → query-w0R7LhwJ.js} +2 -2
  175. package/dist/client/assets/{radar-RG4KPBEZ-CRHj_0uz.js → radar-RG4KPBEZ-CuVsLyvG.js} +1 -1
  176. package/dist/client/assets/{radio-group-8ftKbjDf.js → radio-group-DwQ0T1X6.js} +2 -2
  177. package/dist/client/assets/{railroad-74A4TZTK-LCbjmT_s.js → railroad-74A4TZTK-CZZIaT2B.js} +1 -1
  178. package/dist/client/assets/railroad-abnf-HS5TGJTU-DieERyRq.js +1 -0
  179. package/dist/client/assets/railroad-ebnf-LZEXJU2U-BVbP0cR7.js +1 -0
  180. package/dist/client/assets/railroad-peg-WCYAUIDC-BDR9vaLF.js +1 -0
  181. package/dist/client/assets/{railroadDiagram-O6MQD6OU-B1mHyPCC.js → railroadDiagram-O6MQD6OU-CogIhoTG.js} +2 -2
  182. package/dist/client/assets/{renderScheduler-D3-fIVU2.js → renderScheduler-wjSXDjer.js} +2 -2
  183. package/dist/client/assets/{requirementDiagram-BXWQKSXE-BH8vaSWt.js → requirementDiagram-BXWQKSXE-B9wTphzK.js} +2 -2
  184. package/dist/client/assets/{rightPanelStore-Dfw-4Ia_.js → rightPanelStore-CRw1DWSH.js} +2 -2
  185. package/dist/client/assets/{runtime-ivCTGH5C.js → runtime-ZOY8Qeg_.js} +2 -2
  186. package/dist/client/assets/{runtime-VHJoq9so.js → runtime-qAs3Aj0U.js} +3 -3
  187. package/dist/client/assets/{runtimeModeConfig-JkwDqP4L.js → runtimeModeConfig-VaVDuoFW.js} +2 -2
  188. package/dist/client/assets/{sankeyDiagram-P5KCCOFB-DqqzdGsV.js → sankeyDiagram-P5KCCOFB-CeJuchFj.js} +2 -2
  189. package/dist/client/assets/{scheduledTasksSettings.logic-b-y7WIWN.js → scheduledTasksSettings.logic-BBBjz09I.js} +2 -2
  190. package/dist/client/assets/{scroll-area-BtAqRLpC.js → scroll-area-DyzCabMe.js} +2 -2
  191. package/dist/client/assets/{select-FY7psXk-.js → select-BX0YSg0P.js} +2 -2
  192. package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-D6EXXu_o.js → sequenceDiagram-WJ2MYXX4-xpNi2v3f.js} +2 -2
  193. package/dist/client/assets/{server-C-qtaHHG.js → server-BxsIDqAi.js} +2 -2
  194. package/dist/client/assets/{session-KZUTmmZy.js → session-Lp4r-IPM.js} +2 -2
  195. package/dist/client/assets/{session-logic-Dy9r5m2F.js → session-logic-BFdJF3Bv.js} +2 -2
  196. package/dist/client/assets/{settings-xVK7Yt1y.js → settings-D6fi9-XU.js} +2 -2
  197. package/dist/client/assets/{settings.appearance-BUsQj9AN.js → settings.appearance-BBT8xGDi.js} +2 -2
  198. package/dist/client/assets/settings.archived-Cg-9thGj.js +2 -0
  199. package/dist/client/assets/{settings.computer-use-CvtFf-rW.js → settings.computer-use-Bona3Wg6.js} +2 -2
  200. package/dist/client/assets/{settings.connections-C90xtGng.js → settings.connections-BqAUuYT4.js} +2 -2
  201. package/dist/client/assets/{settings.data-controls-DemQiCxT.js → settings.data-controls-OJqN88f4.js} +2 -2
  202. package/dist/client/assets/{settings.decisions-DtOP9oNq.js → settings.decisions-CZWGkeug.js} +2 -2
  203. package/dist/client/assets/{settings.diagnostics-DXaoukRP.js → settings.diagnostics-DELbs4ob.js} +2 -2
  204. package/dist/client/assets/{settings.general-DkWee1YY.js → settings.general-B-fstEU-.js} +2 -2
  205. package/dist/client/assets/{settings.integrations-BXlqBhz3.js → settings.integrations-B9_Yw0oa.js} +2 -2
  206. package/dist/client/assets/{settings.keybindings-Br0uBlw0.js → settings.keybindings-tFQjI19L.js} +2 -2
  207. package/dist/client/assets/{settings.open-source-licenses-C7LrTwqH.js → settings.open-source-licenses-J0KhjvdX.js} +2 -2
  208. package/dist/client/assets/{settings.plugins-BWko147F.js → settings.plugins-BnMZc7bA.js} +2 -2
  209. package/dist/client/assets/{settings.projects-Hlmn9qBx.js → settings.projects-B9iYESeP.js} +3 -3
  210. package/dist/client/assets/{settings.providers-CUBhfBx1.js → settings.providers-D_HCdEfA.js} +3 -3
  211. package/dist/client/assets/{settings.scheduled-tasks-CDDYe3d2.js → settings.scheduled-tasks-DaNDwLtr.js} +2 -2
  212. package/dist/client/assets/{settings.snap-shot-BlVwefsY.js → settings.snap-shot-ClQxMhzg.js} +2 -2
  213. package/dist/client/assets/{settings.source-control-b4BRd-7w.js → settings.source-control-Bs4O94Ae.js} +2 -2
  214. package/dist/client/assets/{settings.storage-DHuqQ3GN.js → settings.storage-BYJ2h7qr.js} +2 -2
  215. package/dist/client/assets/{settingsLayout-CthFz77S.js → settingsLayout-DhPKINaL.js} +2 -2
  216. package/dist/client/assets/{sidebar-BvjZQtR9.js → sidebar-ZKIDHqbk.js} +2 -2
  217. package/dist/client/assets/{sidebarProjectGrouping-CvY13nmg.js → sidebarProjectGrouping-BFqO8E5C.js} +2 -2
  218. package/dist/client/assets/{skeleton-p05dxp84.js → skeleton--v3ra8uu.js} +2 -2
  219. package/dist/client/assets/{sortable.esm-BVaB8fBB.js → sortable.esm-UojJGtqY.js} +2 -2
  220. package/dist/client/assets/{sourceControl-CtDr1raw.js → sourceControl-ByZv2xxh.js} +2 -2
  221. package/dist/client/assets/{spinner-CTNKP1wB.js → spinner-CH-Dn9Fj.js} +2 -2
  222. package/dist/client/assets/{standalone-page-BmCMlz1u.js → standalone-page-BwpW1F1h.js} +2 -2
  223. package/dist/client/assets/{stateDiagram-D77RDMKH-CVk9L7UB.js → stateDiagram-D77RDMKH-BMh5LMip.js} +2 -2
  224. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-CK8WckkU.js +2 -0
  225. package/dist/client/assets/{swimlanes-42K2YHIH-eDs6vlYW.js → swimlanes-42K2YHIH-CGCv__e7.js} +2 -2
  226. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-D_se7el1.js +9 -0
  227. package/dist/client/assets/{terminal-links-MjQ9lNGX.js → terminal-links-DX86FsHj.js} +2 -2
  228. package/dist/client/assets/{terminalSessions-BEOZlx0H.js → terminalSessions-CUABDfio.js} +2 -2
  229. package/dist/client/assets/{textarea-_oDVfjxe.js → textarea-B3ib3YW-.js} +2 -2
  230. package/dist/client/assets/{themePalette-DtFR3xYu.js → themePalette-Bl55tW1x.js} +2 -2
  231. package/dist/client/assets/{threadSort-BgwLDPpx.js → threadSort-DDAHH_-8.js} +2 -2
  232. package/dist/client/assets/{timeline-definition-24CTP7MA-nEI4h-Tk.js → timeline-definition-24CTP7MA-C_Okwnia.js} +2 -2
  233. package/dist/client/assets/{toast-CyScduZI.js → toast-3I2gpMYd.js} +2 -2
  234. package/dist/client/assets/{toggle-BBpi92mE.js → toggle-Ce46mx2g.js} +2 -2
  235. package/dist/client/assets/{toggle-group--QyJ7uYY.js → toggle-group-Dt1Yldxx.js} +2 -2
  236. package/dist/client/assets/{tooltip-DcTdC2PH.js → tooltip-DdUPPKq4.js} +2 -2
  237. package/dist/client/assets/{treeView-Q6P3EWNA-BqkVgtYX.js → treeView-Q6P3EWNA-23mUAiRP.js} +1 -1
  238. package/dist/client/assets/{treemap-WGGIJYW6-DT4jZxe1.js → treemap-WGGIJYW6-CFr3RCz-.js} +1 -1
  239. package/dist/client/assets/{usage-BoakMkho.js → usage-DXTqHj0T.js} +2 -2
  240. package/dist/client/assets/{usageAccess-Tjotp_ad.js → usageAccess-BX6xSC4z.js} +2 -2
  241. package/dist/client/assets/{usageFormat-C1GJS5IW.js → usageFormat-CWi_Qt3l.js} +2 -2
  242. package/dist/client/assets/{usageShortcuts-BmYIhNjb.js → usageShortcuts-CGv3_tEe.js} +2 -2
  243. package/dist/client/assets/{use-atom-command-CYY238HA.js → use-atom-command-CVDCnNHi.js} +2 -2
  244. package/dist/client/assets/{useAriaLabelledBy-_J6EHbv7.js → useAriaLabelledBy-BnxRm9-q.js} +2 -2
  245. package/dist/client/assets/{useHandleNewThread-BhaVM65m.js → useHandleNewThread-BrxevYhf.js} +2 -2
  246. package/dist/client/assets/{useLocation-Cfwex-wi.js → useLocation-BdZaQ50l.js} +2 -2
  247. package/dist/client/assets/useNavigate-Cdy4Jh5i.js +2 -0
  248. package/dist/client/assets/{useNavigateBack-B0NrYlh8.js → useNavigateBack-BLZDxCI_.js} +2 -2
  249. package/dist/client/assets/{useParams-U7vgc6nk.js → useParams-3tEZUuVD.js} +2 -2
  250. package/dist/client/assets/{usePermissionStatus-Urd4cbKv.js → usePermissionStatus-DCcJZUJC.js} +2 -2
  251. package/dist/client/assets/{usePullRequestActions-DpAVW9io.js → usePullRequestActions-cqQ4IRFz.js} +2 -2
  252. package/dist/client/assets/{useRegisterFieldControl-B-o6bvd-.js → useRegisterFieldControl-Cs54XrA4.js} +2 -2
  253. package/dist/client/assets/{useScopedModelAvailability-CIh6LpSK.js → useScopedModelAvailability-DSe3UBFZ.js} +2 -2
  254. package/dist/client/assets/{useSettings-gJURpIkJ.js → useSettings-DsvnJBf2.js} +2 -2
  255. package/dist/client/assets/{useT3ConnectAuthPrompt-Np9NC6fS.js → useT3ConnectAuthPrompt-CBxfN-Bk.js} +2 -2
  256. package/dist/client/assets/{utils-BBRDx4UJ.js → utils-TSzPLNGf.js} +2 -2
  257. package/dist/client/assets/{vcsRefInvalidation-DwljOjdx.js → vcsRefInvalidation-iz2QneVc.js} +2 -2
  258. package/dist/client/assets/{vennDiagram-4TSXK5OY-kVbUFMzz.js → vennDiagram-4TSXK5OY-DsePUj7P.js} +2 -2
  259. package/dist/client/assets/{wardley-WFR3VGLG-B5JrY4hA.js → wardley-WFR3VGLG-DADViFrd.js} +1 -1
  260. package/dist/client/assets/{wardleyDiagram-VM6X3IG4-kNz0Ytm1.js → wardleyDiagram-VM6X3IG4-B7tstBZh.js} +2 -2
  261. package/dist/client/assets/{welcome-vYaNWLrj.js → welcome-CQKf0B5f.js} +2 -2
  262. package/dist/client/assets/{xychartDiagram-S5SC5T6Z-DGSU7PNa.js → xychartDiagram-S5SC5T6Z-DRAYLcYA.js} +2 -2
  263. package/dist/client/index.html +1 -1
  264. package/package.json +1 -1
  265. package/dist/client/assets/architecture-7GRP2DOG-BTjma_hq.js +0 -1
  266. package/dist/client/assets/channel-BbVwyPme.js +0 -2
  267. package/dist/client/assets/classDiagram-ZZMXUADV-BZN2DxkM.js +0 -2
  268. package/dist/client/assets/classDiagram-v2-VYDZK3BY-BZN2DxkM.js +0 -2
  269. package/dist/client/assets/eventmodeling-NTZA5JFV-Cg0CFdkZ.js +0 -1
  270. package/dist/client/assets/flowDiagram-HODETNUW-RF9W51fq.js +0 -1
  271. package/dist/client/assets/railroad-abnf-HS5TGJTU-DJLpez1j.js +0 -1
  272. package/dist/client/assets/railroad-ebnf-LZEXJU2U-FSaf-eSC.js +0 -1
  273. package/dist/client/assets/railroad-peg-WCYAUIDC-pIcyAgnc.js +0 -1
  274. package/dist/client/assets/settings.archived-B-IVcn1Z.js +0 -2
  275. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-DNtAQSJX.js +0 -2
  276. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-CEvm2POs.js +0 -9
  277. package/dist/client/assets/useNavigate-B3U2CN2A.js +0 -2
@@ -1,5 +1,5 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{r as t}from"./Icon-l19w4AjM.js";import{Au as n,By as r,Ep as i,Fg as a,Gn as o,Ig as s,Ip as c,Jf as l,Lg as u,Mg as d,Mp as f,Ng as p,Pg as m,Rg as h,Vo as g,WT as _,Wu as v,Yn as y,Zn as b,_p as x,ed as S,fw as C,l as w,mE as T,mT as E,ms as D,or as O,sm as k,sr as A,t as j,vp as M,xp as N}from"./utils-BBRDx4UJ.js";import{a as P,n as F,t as I}from"./tooltip-DcTdC2PH.js";import{n as L}from"./ChatMarkdown-DQ3uXQzt.js";import{a as R,c as ee,o as te,s as ne,t as re}from"./select-FY7psXk-.js";import{t as z}from"./useLocation-Cfwex-wi.js";import{p as B}from"./toast-CyScduZI.js";import{C as V}from"./useSettings-gJURpIkJ.js";import{f as H}from"./server-C-qtaHHG.js";import{t as U}from"./use-atom-command-CYY238HA.js";import{s as W,u as ie}from"./providerSkills-DPGvsbQq.js";import{t as ae}from"./skeleton-p05dxp84.js";import{t as oe}from"./textarea-_oDVfjxe.js";import{n as se,t as ce}from"./toggle-group--QyJ7uYY.js";import{t as G}from"./input-OK9fSGsW.js";import{c as le,r as ue,s as K,t as de}from"./dialog-COvCzBu5.js";import{i as fe,o as pe,r as me,t as he}from"./empty-Dmvz5ya5.js";import{n as ge,r as _e,t as ve}from"./input-group-DLt_QDs-.js";import{a as ye}from"./projectFilesQueryState-BKJPj8kq.js";import{B as be,P as xe,U as Se,a as Ce,i as we,s as Te}from"./settingsLayout-CthFz77S.js";import{Ar as Ee,Fr as De,Ir as Oe,La as ke,Mr as Ae,Ni as je,Nr as Me,Pr as Ne,ir as Pe,jr as Fe}from"./main-DB45P6Gd.js";import{t as Ie}from"./SecretInput-CpQgS_zs.js";var q=T(),Le={spawn:`Failed to start`,timeout:`Timed out`,protocol:`Not an MCP server`,http:`Can't connect`,auth:`Credentials rejected`};function Re(e,t,n){if(!e.enabled)return{tone:`muted`,label:`Off`,needsSignIn:!1};if(n)return{tone:`muted`,label:`Checking…`,needsSignIn:!1};if(e.transport.type===`http`&&e.transport.auth===`oauth`&&t?.auth===`signed-out`)return{tone:`warning`,label:`Needs sign-in`,needsSignIn:!0};let r=t?.health;switch(r?.status){case`connected`:return{tone:`success`,label:`Connected · ${r.toolCount} ${r.toolCount===1?`tool`:`tools`}`,needsSignIn:!1};case`needs-auth`:return{tone:`warning`,label:`Needs sign-in`,needsSignIn:!0};case`error`:return{tone:`error`,label:Le[r.category],detail:r.message,needsSignIn:!1};default:return t?.auth===`signed-in`?{tone:`success`,label:`Signed in`,needsSignIn:!1}:{tone:`muted`,label:`Not checked`,needsSignIn:!1}}}function ze(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 J=e(t(),1),Y=e(_(),1);function Be({environmentId:e,plugin:t,enabled:n,disabled:r,onDetails:i,onToggle:a}){let s=g(ye(e,t.path,`.claude-plugin/plugin.json`)),c=E(D(s)),u,d;try{let e=c&&!c.truncated?JSON.parse(c.contents):null;if(typeof e==`object`&&e&&(`description`in e&&typeof e.description==`string`&&(u=e.description),`author`in e)){let t=e.author;typeof t==`string`?d=t:typeof t==`object`&&t&&`name`in t&&typeof t.name==`string`&&(d=t.name)}}catch{}let f=ie(e);return(0,Y.jsxs)(`li`,{className:`flex items-center gap-4 py-4`,children:[(0,Y.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,Y.jsx)(N,{className:`size-5 text-muted-foreground`})}),(0,Y.jsxs)(`div`,{className:`grid min-w-0 flex-1 gap-1`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2`,children:[(0,Y.jsx)(`span`,{className:`break-words text-sm font-medium`,children:t.name}),d?(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:d}):null]}),(0,Y.jsx)(`p`,{className:`break-words text-xs text-muted-foreground`,children:u??`Local Claude plugin`})]}),(0,Y.jsxs)(o,{children:[(0,Y.jsxs)(I,{children:[(0,Y.jsx)(P,{render:(0,Y.jsx)(O,{render:(0,Y.jsx)(A,{variant:`ghost`,size:`icon-sm`,"aria-label":`More for ${t.name}`,children:(0,Y.jsx)(l,{"aria-hidden":!0})})})}),(0,Y.jsx)(F,{children:`Plugin actions`})]}),(0,Y.jsxs)(b,{align:`end`,children:[f.capabilities.canOpenDefault?(0,Y.jsx)(y,{onClick:()=>void f.activate(`open`,{environmentId:e,filePath:t.path,workspaceRoot:void 0}),children:`Open`}):null,(0,Y.jsx)(y,{onClick:i,children:`Details`})]})]}),(0,Y.jsx)(ke,{"aria-label":`Load ${t.name}`,checked:n,disabled:r,onCheckedChange:a})]})}var Ve=[`Personal`,`Built-in`,`Project`,`Plugins`,`Other`];function He(e){switch(W(e)){case`personal`:return`Personal`;case`system`:return`Built-in`;case`repo`:case`project`:return`Project`;case`app`:return`Plugins`;default:return`Other`}}var Ue=[[`codex`,`Codex`],[`claudeAgent`,`Claude`],[`cursor`,`Cursor`],[`grok`,`Grok`],[`antigravity`,`Antigravity`],[`opencode`,`OpenCode`],[`muse`,`Muse`],[`pi`,`Pi`]],X={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 Z(e){return Ue.map(([t,n])=>{let r=a(t,e.transport),i=h.make(t);return{driver:i,label:n,enabled:r.supported&&!e.disabledProviders.includes(i),...r.supported?{}:{unsupported:X[r.reason]}}})}var We={name:``,type:`stdio`,command:``,args:``,cwd:``,url:``,auth:`none`,values:[]};function Ge(e){let t=e.transport;return t.type===`stdio`?{...We,name:e.name,type:`stdio`,command:t.command,args:t.args.join(`
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{r as t}from"./Icon-l19w4AjM.js";import{Au as n,By as r,Ep as i,Fg as a,Gn as o,Ig as s,Ip as c,Jf as l,Lg as u,Mg as d,Mp as f,Ng as p,Pg as m,Rg as h,Vo as g,WT as _,Wu as v,Yn as y,Zn as b,_p as x,ed as S,fw as C,l as w,mE as T,mT as E,ms as D,or as O,sm as k,sr as A,t as j,vp as M,xp as N}from"./utils-TSzPLNGf.js";import{a as P,n as F,t as I}from"./tooltip-DdUPPKq4.js";import{n as L}from"./ChatMarkdown-B2cnntMF.js";import{a as R,c as ee,o as te,s as ne,t as re}from"./select-BX0YSg0P.js";import{t as z}from"./useLocation-BdZaQ50l.js";import{p as B}from"./toast-3I2gpMYd.js";import{C as V}from"./useSettings-DsvnJBf2.js";import{f as H}from"./server-BxsIDqAi.js";import{t as U}from"./use-atom-command-CVDCnNHi.js";import{s as W,u as ie}from"./providerSkills-B2xzNGmJ.js";import{t as ae}from"./skeleton--v3ra8uu.js";import{t as oe}from"./textarea-B3ib3YW-.js";import{n as se,t as ce}from"./toggle-group-Dt1Yldxx.js";import{t as G}from"./input-CNGP9r-b.js";import{c as le,r as ue,s as K,t as de}from"./dialog-B5b8j4VI.js";import{i as fe,o as pe,r as me,t as he}from"./empty-BQwNj0_P.js";import{n as ge,r as _e,t as ve}from"./input-group-CIDwGwLV.js";import{a as ye}from"./projectFilesQueryState-CgqhXdfj.js";import{B as be,P as xe,U as Se,a as Ce,i as we,s as Te}from"./settingsLayout-DhPKINaL.js";import{Ar as Ee,Fr as De,Ir as Oe,La as ke,Mr as Ae,Ni as je,Nr as Me,Pr as Ne,ir as Pe,jr as Fe}from"./main-pmaKofkn.js";import{t as Ie}from"./SecretInput-7_dN8OZO.js";var q=T(),Le={spawn:`Failed to start`,timeout:`Timed out`,protocol:`Not an MCP server`,http:`Can't connect`,auth:`Credentials rejected`};function Re(e,t,n){if(!e.enabled)return{tone:`muted`,label:`Off`,needsSignIn:!1};if(n)return{tone:`muted`,label:`Checking…`,needsSignIn:!1};if(e.transport.type===`http`&&e.transport.auth===`oauth`&&t?.auth===`signed-out`)return{tone:`warning`,label:`Needs sign-in`,needsSignIn:!0};let r=t?.health;switch(r?.status){case`connected`:return{tone:`success`,label:`Connected · ${r.toolCount} ${r.toolCount===1?`tool`:`tools`}`,needsSignIn:!1};case`needs-auth`:return{tone:`warning`,label:`Needs sign-in`,needsSignIn:!0};case`error`:return{tone:`error`,label:Le[r.category],detail:r.message,needsSignIn:!1};default:return t?.auth===`signed-in`?{tone:`success`,label:`Signed in`,needsSignIn:!1}:{tone:`muted`,label:`Not checked`,needsSignIn:!1}}}function ze(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 J=e(t(),1),Y=e(_(),1);function Be({environmentId:e,plugin:t,enabled:n,disabled:r,onDetails:i,onToggle:a}){let s=g(ye(e,t.path,`.claude-plugin/plugin.json`)),c=E(D(s)),u,d;try{let e=c&&!c.truncated?JSON.parse(c.contents):null;if(typeof e==`object`&&e&&(`description`in e&&typeof e.description==`string`&&(u=e.description),`author`in e)){let t=e.author;typeof t==`string`?d=t:typeof t==`object`&&t&&`name`in t&&typeof t.name==`string`&&(d=t.name)}}catch{}let f=ie(e);return(0,Y.jsxs)(`li`,{className:`flex items-center gap-4 py-4`,children:[(0,Y.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,Y.jsx)(N,{className:`size-5 text-muted-foreground`})}),(0,Y.jsxs)(`div`,{className:`grid min-w-0 flex-1 gap-1`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2`,children:[(0,Y.jsx)(`span`,{className:`break-words text-sm font-medium`,children:t.name}),d?(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:d}):null]}),(0,Y.jsx)(`p`,{className:`break-words text-xs text-muted-foreground`,children:u??`Local Claude plugin`})]}),(0,Y.jsxs)(o,{children:[(0,Y.jsxs)(I,{children:[(0,Y.jsx)(P,{render:(0,Y.jsx)(O,{render:(0,Y.jsx)(A,{variant:`ghost`,size:`icon-sm`,"aria-label":`More for ${t.name}`,children:(0,Y.jsx)(l,{"aria-hidden":!0})})})}),(0,Y.jsx)(F,{children:`Plugin actions`})]}),(0,Y.jsxs)(b,{align:`end`,children:[f.capabilities.canOpenDefault?(0,Y.jsx)(y,{onClick:()=>void f.activate(`open`,{environmentId:e,filePath:t.path,workspaceRoot:void 0}),children:`Open`}):null,(0,Y.jsx)(y,{onClick:i,children:`Details`})]})]}),(0,Y.jsx)(ke,{"aria-label":`Load ${t.name}`,checked:n,disabled:r,onCheckedChange:a})]})}var Ve=[`Personal`,`Built-in`,`Project`,`Plugins`,`Other`];function He(e){switch(W(e)){case`personal`:return`Personal`;case`system`:return`Built-in`;case`repo`:case`project`:return`Project`;case`app`:return`Plugins`;default:return`Other`}}var Ue=[[`codex`,`Codex`],[`claudeAgent`,`Claude`],[`cursor`,`Cursor`],[`grok`,`Grok`],[`antigravity`,`Antigravity`],[`opencode`,`OpenCode`],[`muse`,`Muse`],[`pi`,`Pi`]],X={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 Z(e){return Ue.map(([t,n])=>{let r=a(t,e.transport),i=h.make(t);return{driver:i,label:n,enabled:r.supported&&!e.disabledProviders.includes(i),...r.supported?{}:{unsupported:X[r.reason]}}})}var We={name:``,type:`stdio`,command:``,args:``,cwd:``,url:``,auth:`none`,values:[]};function Ge(e){let t=e.transport;return t.type===`stdio`?{...We,name:e.name,type:`stdio`,command:t.command,args:t.args.join(`
2
2
  `),cwd:t.cwd??``,values:Object.entries(t.env).map(([e,t])=>({key:e,value:t}))}:{...We,name:e.name,type:`http`,url:t.url,auth:t.auth,values:Object.entries(t.headers).map(([e,t])=>({key:e,value:t}))}}var Ke=/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/;function qe(e,t){let n=e.name.trim();if(!n)return`Enter a name.`;if(!Ke.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 Je(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
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 Ye(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)=>Xe(e.skill).localeCompare(Xe(t.skill)))}var Xe=e=>e.displayName??e.name.split(/[-_\s]+/).filter(e=>e.length>0).map(e=>e[0].toUpperCase()+e.slice(1)).join(` `);function Ze(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 Qe(e){let t=/^---\r?\n[\s\S]*?\r?\n---\r?\n?/.exec(e);return(t===null?e:e.slice(t[0].length)).trimStart()}function $e(e){let t=(0,q.c)(14),{title:r,onBack:i,onUninstall:a,children:o}=e,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Y.jsx)(n,{"aria-hidden":!0}),t[0]=s):s=t[0];let c;t[1]===i?c=t[2]:(c=(0,Y.jsxs)(A,{size:`xs`,variant:`ghost`,className:`w-fit`,onClick:i,children:[s,`Back`]}),t[1]=i,t[2]=c);let l;t[3]===r?l=t[4]:(l=(0,Y.jsx)(`h2`,{className:`min-w-0 truncate text-xl font-semibold text-foreground`,children:r}),t[3]=r,t[4]=l);let u;t[5]===a?u=t[6]:(u=a?(0,Y.jsxs)(A,{size:`sm`,variant:`destructive-outline`,onClick:a,children:[(0,Y.jsx)(k,{"aria-hidden":!0}),`Uninstall`]}):null,t[5]=a,t[6]=u);let d;t[7]!==l||t[8]!==u?(d=(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[l,u]}),t[7]=l,t[8]=u,t[9]=d):d=t[9];let f;return t[10]!==o||t[11]!==c||t[12]!==d?(f=(0,Y.jsxs)(`div`,{className:`grid gap-6`,children:[c,d,o]}),t[10]=o,t[11]=c,t[12]=d,t[13]=f):f=t[13],f}function Q(e){let t=(0,q.c)(6),{label:n,htmlFor:r,children:i}=e,a;t[0]!==r||t[1]!==n?(a=(0,Y.jsx)(je,{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,Y.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 et(e){let t=(0,q.c)(69),{server:n,takenNames:r,onSave:i}=e,a;t[0]===n?a=t[1]:(a=n===void 0?We:Ge(n),t[0]=n,t[1]=a);let o=a,[s,c]=(0,J.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,J.useState)(u);u!==d&&(f(u),c(o));let p;t[4]!==s||t[5]!==r?(p=qe(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 g=h!==u,_;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=e=>c(t=>({...t,...e})),t[9]=_):_=t[9];let v=_,y=s.type===`stdio`?`Environment variables`:`Headers`,b;t[10]===s.values?b=t[11]:(b=(e,t)=>v({values:s.values.map((n,r)=>r===e?{...n,...t}:n)}),t[10]=s.values,t[11]=b);let x=b,S;t[12]!==g||t[13]!==s||t[14]!==i||t[15]!==m||t[16]!==n?(S=e=>{e.preventDefault(),g&&m===void 0&&i(Je(s,n))},t[12]=g,t[13]=s,t[14]=i,t[15]=m,t[16]=n,t[17]=S):S=t[17];let C;t[18]===n?C=t[19]:(C=n===void 0?null:(0,Y.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]=C);let w;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(w=e=>v({name:e.target.value}),t[20]=w):w=t[20];let T;t[21]===s.name?T=t[22]:(T=(0,Y.jsx)(Q,{label:`Name`,htmlFor:`mcp-server-name`,children:(0,Y.jsx)(G,{id:`mcp-server-name`,placeholder:`github`,value:s.name,onChange:w})}),t[21]=s.name,t[22]=T);let E;t[23]!==s.type||t[24]!==n?(E=n===void 0?(0,Y.jsx)(Q,{label:`Type`,children:(0,Y.jsxs)(se,{"aria-label":`How P4 Code reaches the server`,value:[s.type],onValueChange:e=>{let t=e[0];(t===`stdio`||t===`http`)&&v({type:t,values:[]})},children:[(0,Y.jsx)(ce,{value:`stdio`,children:`Command`}),(0,Y.jsx)(ce,{value:`http`,children:`URL`})]})}):null,t[23]=s.type,t[24]=n,t[25]=E):E=t[25];let D;t[26]!==s.args||t[27]!==s.auth||t[28]!==s.command||t[29]!==s.cwd||t[30]!==s.type||t[31]!==s.url?(D=s.type===`stdio`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Q,{label:`Command`,htmlFor:`mcp-server-command`,children:(0,Y.jsx)(G,{id:`mcp-server-command`,placeholder:`npx`,value:s.command,onChange:e=>v({command:e.target.value})})}),(0,Y.jsx)(Q,{label:`Arguments, one per line`,htmlFor:`mcp-server-args`,children:(0,Y.jsx)(oe,{id:`mcp-server-args`,placeholder:`-y
4
4
  @modelcontextprotocol/server-postgres`,value:s.args,onChange:e=>v({args:e.target.value})})}),(0,Y.jsx)(Q,{label:`Working directory (optional)`,htmlFor:`mcp-server-cwd`,children:(0,Y.jsx)(G,{id:`mcp-server-cwd`,placeholder:`The session's project folder`,value:s.cwd,onChange:e=>v({cwd:e.target.value})})})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Q,{label:`URL`,htmlFor:`mcp-server-url`,children:(0,Y.jsx)(G,{id:`mcp-server-url`,placeholder:`https://mcp.example.com/mcp`,value:s.url,onChange:e=>v({url:e.target.value})})}),(0,Y.jsx)(Q,{label:`Authentication`,children:(0,Y.jsxs)(re,{value:s.auth,onValueChange:e=>{(e===`none`||e===`oauth`)&&v({auth:e})},children:[(0,Y.jsx)(ne,{"aria-label":`Authentication`,children:(0,Y.jsx)(ee,{children:tt})}),(0,Y.jsxs)(te,{alignItemWithTrigger:!1,children:[(0,Y.jsx)(R,{value:`none`,children:`None or headers`}),(0,Y.jsx)(R,{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]=D):D=t[32];let O;t[33]!==s.type||t[34]!==s.values||t[35]!==x||t[36]!==y?(O=s.values.map((e,t)=>(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(G,{"aria-label":`${y} name`,placeholder:s.type===`stdio`?`API_TOKEN`:`Authorization`,value:e.key,onChange:e=>x(t,{key:e.target.value})}),(0,Y.jsx)(Ie,{"aria-label":`${y} value`,placeholder:`Value`,value:e.value,onChange:e=>x(t,{value:e.target.value})}),(0,Y.jsx)(A,{size:`icon-sm`,variant:`ghost`,"aria-label":`Remove ${e.key||`row`}`,onClick:()=>v({values:s.values.filter((e,n)=>n!==t)}),children:(0,Y.jsx)(k,{"aria-hidden":!0})})]},t)),t[33]=s.type,t[34]=s.values,t[35]=x,t[36]=y,t[37]=O):O=t[37];let j;t[38]===s.values?j=t[39]:(j=()=>v({values:[...s.values,{key:``,value:``}]}),t[38]=s.values,t[39]=j);let N;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,Y.jsx)(M,{"aria-hidden":!0}),t[40]=N):N=t[40];let P=s.type===`stdio`?`variable`:`header`,F;t[41]!==j||t[42]!==P?(F=(0,Y.jsxs)(A,{variant:`soft`,onClick:j,children:[N,`Add `,P]}),t[41]=j,t[42]=P,t[43]=F):F=t[43];let I;t[44]!==O||t[45]!==F?(I=(0,Y.jsxs)(`div`,{className:`grid gap-2`,children:[O,F]}),t[44]=O,t[45]=F,t[46]=I):I=t[46];let L;t[47]!==I||t[48]!==y?(L=(0,Y.jsx)(Q,{label:y,children:I}),t[47]=I,t[48]=y,t[49]=L):L=t[49];let z;t[50]!==T||t[51]!==E||t[52]!==D||t[53]!==L?(z=(0,Y.jsxs)(Se,{children:[T,E,D,L]}),t[50]=T,t[51]=E,t[52]=D,t[53]=L,t[54]=z):z=t[54];let B;t[55]!==g||t[56]!==m?(B=g&&m!==void 0?(0,Y.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-foreground`,children:m}):null,t[55]=g,t[56]=m,t[57]=B):B=t[57];let V=!g||m!==void 0,H=n===void 0?`Add server`:`Save`,U;t[58]!==V||t[59]!==H?(U=(0,Y.jsx)(A,{type:`submit`,disabled:V,children:H}),t[58]=V,t[59]=H,t[60]=U):U=t[60];let W;t[61]!==B||t[62]!==U?(W=(0,Y.jsxs)(`div`,{className:`flex items-center justify-end gap-3`,children:[B,U]}),t[61]=B,t[62]=U,t[63]=W):W=t[63];let ie;return t[64]!==z||t[65]!==W||t[66]!==S||t[67]!==C?(ie=(0,Y.jsxs)(`form`,{className:`grid gap-3`,onSubmit:S,children:[C,z,W]}),t[64]=z,t[65]=W,t[66]=S,t[67]=C,t[68]=ie):ie=t[68],ie}function tt(e){return e===`oauth`?`OAuth (sign in after saving)`:`None or headers`}function nt(e){let t=(0,q.c)(35),{plugin:n,environmentLabel:r,onSave:i}=e,[a,o]=(0,J.useState)(n?.name??``),[s,c]=(0,J.useState)(n?.path??``),l=`${n?.name??``}\u0000${n?.path??``}`,[u,d]=(0,J.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 g;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(g=e=>o(e.target.value),t[10]=g):g=t[10];let _;t[11]===a?_=t[12]:(_=(0,Y.jsx)(Q,{label:`Name`,htmlFor:`plugin-name`,children:(0,Y.jsx)(G,{id:`plugin-name`,value:a,onChange:g})}),t[11]=a,t[12]=_);let v=`Folder on ${r}`,y;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>c(e.target.value),t[13]=y):y=t[13];let b;t[14]===s?b=t[15]:(b=(0,Y.jsx)(G,{id:`plugin-path`,placeholder:`/Users/me/plugins/my-plugin`,value:s,onChange:y}),t[14]=s,t[15]=b);let x;t[16]!==v||t[17]!==b?(x=(0,Y.jsx)(Q,{label:v,htmlFor:`plugin-path`,children:b}),t[16]=v,t[17]=b,t[18]=x):x=t[18];let S;t[19]!==_||t[20]!==x?(S=(0,Y.jsxs)(Se,{children:[_,x]}),t[19]=_,t[20]=x,t[21]=S):S=t[21];let C;t[22]!==f||t[23]!==m?(C=f&&!m?(0,Y.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]=C):C=t[24];let w=!f||!m,T=n===void 0?`Add plugin`:`Save`,E;t[25]!==w||t[26]!==T?(E=(0,Y.jsx)(A,{type:`submit`,disabled:w,children:T}),t[25]=w,t[26]=T,t[27]=E):E=t[27];let D;t[28]!==C||t[29]!==E?(D=(0,Y.jsxs)(`div`,{className:`flex items-center justify-end gap-3`,children:[C,E]}),t[28]=C,t[29]=E,t[30]=D):D=t[30];let O;return t[31]!==D||t[32]!==h||t[33]!==S?(O=(0,Y.jsxs)(`form`,{className:`grid gap-3`,onSubmit:h,children:[S,D]}),t[31]=D,t[32]=h,t[33]=S,t[34]=O):O=t[34],O}var rt=e=>e.replace(/[\\/][^\\/]*$/,``)||`/`;function it(e){let t=(0,q.c)(69),{entry:n,environmentId:r,onClose:i}=e,{skill:a,providers:s}=n,c,u,d;t[0]!==r||t[1]!==a.path?(c=rt(a.path),u=g,d=ye(r,c,a.path),t[0]=r,t[1]=a.path,t[2]=c,t[3]=u,t[4]=d):(c=t[2],u=t[3],d=t[4]);let f=u(d),p;t[5]===f?p=t[6]:(p=E(D(f)),t[5]=f,t[6]=p);let m=p,h=ie(r),{copyToClipboard:_}=B(),x;t[7]!==r||t[8]!==a.path?(x={environmentId:r,filePath:a.path,workspaceRoot:void 0},t[7]=r,t[8]=a.path,t[9]=x):x=t[9];let S=x,C=a.shortDescription??a.description,w;t[10]===a.scope?w=t[11]:(w=Ze(a.scope),t[10]=a.scope,t[11]=w);let T=w,k;t[12]===i?k=t[13]:(k=e=>!e&&i(),t[12]=i,t[13]=k);let j;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,Y.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,Y.jsx)(v,{className:`size-5`})}),t[14]=j):j=t[14];let M;t[15]===a?M=t[16]:(M=Xe(a),t[15]=a,t[16]=M);let N=`More for ${M}`,P;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,Y.jsx)(l,{"aria-hidden":!0}),t[17]=P):P=t[17];let F;t[18]===N?F=t[19]:(F=(0,Y.jsx)(O,{render:(0,Y.jsx)(A,{size:`icon-sm`,variant:`ghost`,"aria-label":N,children:P})}),t[18]=N,t[19]=F);let I;t[20]!==h||t[21]!==S?(I=h.capabilities.canOpenDefault?(0,Y.jsx)(y,{onClick:()=>void h.activate(`open`,S),children:`Open`}):null,t[20]=h,t[21]=S,t[22]=I):I=t[22];let R;t[23]!==h||t[24]!==S?(R=h.capabilities.revealLabel?(0,Y.jsx)(y,{onClick:()=>void h.activate(`reveal-in-folder`,S),children:h.capabilities.revealLabel}):null,t[23]=h,t[24]=S,t[25]=R):R=t[25];let ee=m===null,te;t[26]!==_||t[27]!==m?(te=()=>m&&_(m.contents,void 0),t[26]=_,t[27]=m,t[28]=te):te=t[28];let ne;t[29]!==ee||t[30]!==te?(ne=(0,Y.jsx)(y,{disabled:ee,onClick:te,children:`Copy Markdown`}),t[29]=ee,t[30]=te,t[31]=ne):ne=t[31];let re;t[32]!==I||t[33]!==R||t[34]!==ne?(re=(0,Y.jsxs)(b,{align:`end`,children:[I,R,ne]}),t[32]=I,t[33]=R,t[34]=ne,t[35]=re):re=t[35];let z;t[36]!==F||t[37]!==re?(z=(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3 pe-8`,children:[j,(0,Y.jsxs)(o,{children:[F,re]})]}),t[36]=F,t[37]=re,t[38]=z):z=t[38];let V;t[39]===a?V=t[40]:(V=Xe(a),t[39]=a,t[40]=V);let H;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,Y.jsx)(`span`,{className:`font-normal text-muted-foreground`,children:`Skill`}),t[41]=H):H=t[41];let U;t[42]===V?U=t[43]:(U=(0,Y.jsxs)(le,{children:[V,` `,H]}),t[42]=V,t[43]=U);let W;t[44]===C?W=t[45]:(W=C?(0,Y.jsx)(ue,{children:C}):null,t[44]=C,t[45]=W);let oe;t[46]!==U||t[47]!==W?(oe=(0,Y.jsxs)(`div`,{className:`grid gap-1.5`,children:[U,W]}),t[46]=U,t[47]=W,t[48]=oe):oe=t[48];let se;t[49]!==c||t[50]!==r||t[51]!==m||t[52]!==f?(se=(0,Y.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:m===null?f._tag===`Failure`?(0,Y.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,Y.jsxs)(`div`,{className:`grid gap-2`,children:[(0,Y.jsx)(ae,{className:`h-4 w-3/4`}),(0,Y.jsx)(ae,{className:`h-4 w-full`}),(0,Y.jsx)(ae,{className:`h-4 w-2/3`})]}):(0,Y.jsx)(L,{text:Qe(m.contents),cwd:c,environmentId:r})}),t[49]=c,t[50]=r,t[51]=m,t[52]=f,t[53]=se):se=t[53];let ce;t[54]===s?ce=t[55]:(ce=s.join(`, `),t[54]=s,t[55]=ce);let G=`Loaded by ${ce}`,fe;t[56]!==T||t[57]!==G?(fe=[T,G].filter(Boolean),t[56]=T,t[57]=G,t[58]=fe):fe=t[58];let pe=fe.join(` · `),me;t[59]===pe?me=t[60]:(me=(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:pe}),t[59]=pe,t[60]=me);let he;t[61]!==z||t[62]!==oe||t[63]!==se||t[64]!==me?(he=(0,Y.jsx)(K,{className:`max-w-2xl`,children:(0,Y.jsxs)(`div`,{className:`grid min-h-0 gap-4 p-6`,children:[z,oe,se,me]})}),t[61]=z,t[62]=oe,t[63]=se,t[64]=me,t[65]=he):he=t[65];let ge;return t[66]!==he||t[67]!==k?(ge=(0,Y.jsx)(de,{open:!0,onOpenChange:k,children:he}),t[66]=he,t[67]=k,t[68]=ge):ge=t[68],ge}var at={claude:`Claude`,codex:`Codex`,cursor:`Cursor`},ot={success:`bg-success`,warning:`bg-warning`,error:`bg-destructive`,muted:`bg-muted-foreground/40`},st={success:`text-success-foreground`,warning:`text-warning-foreground`,error:`text-destructive-foreground`,muted:`text-muted-foreground`},ct=r(d);function lt(e){let t=C(e);return ct(t)&&t.reason===`rejected`?`This server only lets apps it has approved sign in, and it refused P4 Code.`:`Sign-in could not start. Check the server URL, then try again.`}function ut(e,t,n){return e.transport.type===`http`&&(e.transport.auth===`oauth`||n?.auth===`signed-in`||t.needsSignIn)}function dt(e){let t=(0,q.c)(13),{status:n,className:r}=e,i=st[n.tone],a;t[0]!==r||t[1]!==i?(a=j(`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=ot[n.tone],s;t[3]===o?s=t[4]:(s=j(`size-1.5 shrink-0 rounded-full`,o),t[3]=o,t[4]=s);let c;t[5]===s?c=t[6]:(c=(0,Y.jsx)(`span`,{"aria-hidden":!0,className:s}),t[5]=s,t[6]=c);let l;t[7]===n.label?l=t[8]:(l=(0,Y.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,Y.jsxs)(`span`,{className:a,children:[c,l]}),t[9]=a,t[10]=c,t[11]=l,t[12]=u):u=t[12],u}function ft(){let e=(0,q.c)(6),{environment:t,scope:n}=be(),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,Y.jsx)(we,{width:`wide`,children:t===null||!r?(0,Y.jsx)(he,{children:(0,Y.jsxs)(fe,{children:[(0,Y.jsx)(pe,{children:`Connect to manage plugins and MCP servers`}),(0,Y.jsx)(me,{children:`They live on each environment. Choose a connected one above.`})]})}):!a||i===null?(0,Y.jsx)(he,{children:(0,Y.jsxs)(fe,{children:[(0,Y.jsxs)(pe,{children:[`Update `,t.label,` to manage plugins and MCP servers`]}),(0,Y.jsx)(me,{children:`This environment runs a version without them.`})]})}):(0,Y.jsx)($,{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 pt={plugins:`Search plugins`,mcps:`Search MCP servers`,skills:`Search skills`},mt=(e,...t)=>e===``||t.some(t=>t.toLowerCase().includes(e));function ht(e){let t=(0,q.c)(9),{text:n}=e,r=(0,J.useRef)(null),[i,a]=(0,J.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,Y.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,Y.jsx)(P,{render:s,children:n}),l=(0,Y.jsx)(F,{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,Y.jsxs)(I,{open:i,onOpenChange:o,children:[c,l]}),t[5]=i,t[6]=c,t[7]=l,t[8]=u):u=t[8],u}function $({environmentId:e,environmentLabel:t,projectId:n,projectLabel:r}){let a=z({select:e=>e.hash}),[d,h]=(0,J.useState)(()=>a.replace(/^#/,``)===`mcp-servers`?`mcps`:a.replace(/^#/,``)===`skills`?`skills`:`plugins`),[_,C]=(0,J.useState)(``),[T,E]=(0,J.useState)(`All categories`),D=g(H.configValueAtom(e))?.providers,k=(0,J.useMemo)(()=>Ye(D??[]),[D]),[j,M]=(0,J.useState)(null),L=xe(e=>e.mcpServers),B=xe(e=>e.plugins),W=xe(e=>e.projectSettingsOverrides),ae=xe(e=>e.skillOverrides),oe=ie(e),G=g(H.updateSettings.permissionAtom(e)),[le,ue]=(0,J.useState)(null),K=g(H.mcpRegistryTest.permissionAtom(e)),de=V(e),fe=U(H.updateSettings,{label:`update MCP registry`,reportFailure:!0}),pe=U(H.mcpRegistryState,{reportFailure:!1}),me=U(H.mcpRegistryTest,{label:`check MCP server`,reportFailure:!0}),he=U(H.mcpRegistryOAuthStart,{label:`start MCP sign-in`,reportFailure:!0}),ye=U(H.mcpRegistryOAuthSignOut,{label:`sign out of MCP server`,reportFailure:!0}),be=U(H.mcpRegistryDiscover,{reportFailure:!1}),Se=U(H.mcpRegistryImport,{label:`import MCP servers`,reportFailure:!0}),[Ce,we]=(0,J.useState)({}),[je,Ie]=(0,J.useState)(new Set),[q,Le]=(0,J.useState)([]),[Ue,X]=(0,J.useState)({kind:`list`}),Z=Ue.kind!==`list`&&Ue.id!==null&&(Ue.kind===`server`?L[Ue.id]===void 0:B[Ue.id]===void 0)?{kind:`list`}:Ue,[We,Ge]=(0,J.useState)(a);if(a!==We){Ge(a);let e=a.replace(/^#/,``);(e===`mcp-servers`||e===`plugins`||e===`skills`)&&(h(e===`mcp-servers`?`mcps`:e),X({kind:`list`}))}let[Ke,qe]=(0,J.useState)(null),[Je,Ze]=(0,J.useState)(null),[Qe,Q]=(0,J.useState)({}),tt=(0,J.useMemo)(()=>Object.entries(L).map(([e,t])=>[p.make(e),t]).toSorted(([,e],[,t])=>e.name.localeCompare(t.name)),[L]),rt=(0,J.useMemo)(()=>Object.entries(B).map(([e,t])=>[m.make(e),t]),[B]),ot=(0,J.useCallback)(async()=>{let t=await pe({environmentId:e,input:{}});t._tag===`Success`&&we(t.value.servers)},[e,pe]),st=(0,J.useCallback)(async()=>{if(!K)return;let t=await be({environmentId:e,input:n===void 0?{}:{projectId:n}});t._tag===`Success`&&Le(t.value.servers)},[K,be,e,n]);(0,J.useEffect)(()=>{ot(),st()},[ot,st]);let ct=e=>{h(`mcps`),X({kind:`server`,id:e})},ft=e=>{h(`plugins`),X({kind:`plugin`,id:e})},$=t=>fe({environmentId:e,input:{patch:t}}),gt=async t=>{Ie(e=>new Set(e).add(t));let n=await me({environmentId:e,input:{serverId:t}});if(Ie(e=>{let n=new Set(e);return n.delete(t),n}),n._tag===`Success`)return we(e=>({...e,[t]:n.value})),n.value},yt=(0,J.useEffectEvent)(async e=>{(await gt(e))?.health.status===`connected`&&Ze(null)});(0,J.useEffect)(()=>{if(Je===null)return;let e=()=>void yt(Je);return window.addEventListener(`focus`,e),()=>window.removeEventListener(`focus`,e)},[Je]);let bt=async(e,t,n)=>{(await $({mcpServers:{[e]:t}}))._tag===`Success`&&(n&&X({kind:`list`}),st(),t.enabled&&await gt(e))},xt=async(t,n=!1)=>{let r=de??window.location.origin;Q(e=>{let n={...e};return delete n[t],n});let i=await he({environmentId:e,input:{serverId:t,origin:new URL(r,window.location.href).origin,...n?{reauthenticate:n}:{}}});if(i._tag!==`Success`){i._tag===`Failure`&&Q(e=>({...e,[t]:lt(i.cause)}));return}if(i.value.authorizationUrl===null){await gt(t);return}Ze(t),window.open(i.value.authorizationUrl,`_blank`,`noopener,noreferrer`)},St=async t=>{let n=await ye({environmentId:e,input:{serverId:t}});n._tag===`Success`&&we(e=>({...e,[t]:n.value}))},Ct=(e,t,r)=>{if(n===void 0)return;let i=W[n]??{},a={...i[e]};r===void 0?delete a[t]:a[t]={enabled:r},$({projectSettingsOverrides:{[n]:{...i,[e]:a}}})},wt=async()=>{let t=Ke;if(qe(null),t!==null){if(t.kind===`server`){let n=L[t.id];n?.transport.type===`http`&&n.transport.auth===`oauth`&&await ye({environmentId:e,input:{serverId:t.id}}),await $({mcpServers:{[t.id]:null}})}else await $({plugins:{[t.id]:null}});X({kind:`list`})}},Tt=q.filter(e=>!e.alreadyAdded),Et=new Set(tt.filter(([e])=>Z.kind!==`server`||e!==Z.id).map(([,e])=>e.name)),Dt=_.trim().toLowerCase(),Ot=tt.filter(([,e])=>mt(Dt,e.name,ze(e))),kt=rt.filter(([,e])=>mt(Dt,e.name,e.path)),At=Tt.filter(e=>mt(Dt,e.name,e.summary)),jt=(e,t)=>s({mcpServers:L,plugins:B,projectSettingsOverrides:W},e,n??null,t),Mt=(e,t,r)=>{if(n!==void 0){Ct(e,t,r);return}$(e===`mcpServers`?{mcpServers:{[t]:{...L[t],enabled:r}}}:{plugins:{[t]:{...B[t],enabled:r}}})},Nt=(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`grid gap-1`,children:[(0,Y.jsx)(`h1`,{className:`text-2xl font-semibold text-foreground`,children:`Plugins`}),(0,Y.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Manage plugins, skills, and MCP servers given to agents on `,t,`.`]})]}),K?(0,Y.jsxs)(o,{children:[(0,Y.jsx)(O,{render:(0,Y.jsxs)(A,{children:[`Add`,(0,Y.jsx)(S,{"aria-hidden":!0})]})}),(0,Y.jsxs)(b,{align:`end`,children:[(0,Y.jsxs)(y,{onClick:()=>ct(null),children:[(0,Y.jsx)(x,{"aria-hidden":!0}),`Add MCP server`]}),(0,Y.jsxs)(y,{onClick:()=>ft(null),children:[(0,Y.jsx)(N,{"aria-hidden":!0}),`Add plugin`]})]})]}):null]}),Pt=(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,Y.jsxs)(se,{"aria-label":`Show`,variant:`default`,value:[d],onValueChange:e=>{let t=e[0];(t===`plugins`||t===`mcps`||t===`skills`)&&(h(t),X({kind:`list`}))},children:[(0,Y.jsxs)(ce,{value:`plugins`,...Pe(`plugins`),children:[`Plugins `,(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:rt.length})]}),(0,Y.jsxs)(ce,{value:`mcps`,...Pe(`mcp-servers`),children:[`MCPs `,(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:tt.length})]}),(0,Y.jsxs)(ce,{value:`skills`,...Pe(`skills`),children:[`Skills `,(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:k.length})]})]}),(0,Y.jsxs)(`div`,{className:`flex w-full gap-2 sm:w-auto`,children:[d===`skills`?(0,Y.jsx)(`div`,{className:`w-fit shrink-0`,children:(0,Y.jsxs)(re,{value:T,onValueChange:e=>e&&E(e),children:[(0,Y.jsx)(ne,{"aria-label":`Skill category`,children:(0,Y.jsx)(ee,{})}),(0,Y.jsxs)(te,{children:[(0,Y.jsx)(R,{value:`All categories`,children:`All categories`}),Ve.filter(e=>e===`Personal`||e===`Built-in`||k.some(({skill:t})=>He(t)===e)).map(e=>(0,Y.jsx)(R,{value:e,children:e},e))]})]})}):null,(0,Y.jsxs)(ve,{className:`min-w-0 flex-1 sm:w-56`,children:[(0,Y.jsx)(ge,{children:(0,Y.jsx)(f,{"aria-hidden":!0})}),(0,Y.jsx)(_e,{"aria-label":pt[d],placeholder:pt[d],value:_,onChange:e=>C(e.currentTarget.value)})]})]})]}),Ft=(e,t)=>(0,Y.jsxs)(I,{children:[(0,Y.jsx)(P,{render:(0,Y.jsx)(A,{size:`icon-sm`,variant:`ghost`,"aria-label":e,onClick:t,children:(0,Y.jsx)(c,{"aria-hidden":!0})})}),(0,Y.jsx)(F,{children:e})]}),It=kt.length===0?(0,Y.jsx)(`p`,{className:`py-6 text-sm text-muted-foreground`,children:rt.length===0?`No plugins yet. Add a Claude Code plugin folder to load it in Claude sessions.`:`No plugins match your search.`}):(0,Y.jsx)(`ul`,{className:`grid gap-1`,children:kt.map(([t,n])=>(0,Y.jsx)(Be,{environmentId:e,plugin:n,enabled:jt(`plugins`,t),disabled:!G,onDetails:()=>ft(t),onToggle:e=>Mt(`plugins`,t,e)},t))}),Lt=k.filter(({skill:e})=>(T===`All categories`||He(e)===T)&&mt(Dt,Xe(e),e.name,e.shortDescription??``,e.description??``)),Rt=Lt.length===0?(0,Y.jsx)(`p`,{className:`py-6 text-sm text-muted-foreground`,children:k.length===0?`No skills found. Providers report the skills they load when they start.`:`No skills match these filters.`}):(0,Y.jsxs)(`div`,{className:`grid gap-3`,children:[(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Switches apply to new Claude and OpenCode sessions.`}),(0,Y.jsx)(`ul`,{className:`grid gap-1`,children:Lt.map(t=>{let r=He(t.skill),i=(D??[]).filter(e=>u(e.driver)&&e.skills.some(e=>e.name===t.skill.name)),a=i.length?i.map(e=>e.displayName??e.driver).join(`, `):`Native settings`;return(0,Y.jsxs)(`li`,{className:`flex items-center gap-3 py-3`,children:[(0,Y.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,Y.jsx)(v,{className:`size-4`})}),(0,Y.jsxs)(`div`,{className:`grid min-w-0 flex-1 gap-1`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:()=>M(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:Xe(t.skill)}),(0,Y.jsx)(ht,{text:t.skill.shortDescription??t.skill.description??t.skill.path}),(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:[r,a].filter(Boolean).join(` · `)})]}),(0,Y.jsxs)(o,{children:[(0,Y.jsxs)(I,{children:[(0,Y.jsx)(P,{render:(0,Y.jsx)(O,{render:(0,Y.jsx)(A,{variant:`ghost`,size:`icon-sm`,"aria-label":`More for ${Xe(t.skill)}`,children:(0,Y.jsx)(l,{"aria-hidden":!0})})})}),(0,Y.jsx)(F,{children:`Skill actions`})]}),(0,Y.jsxs)(b,{align:`end`,children:[oe.capabilities.canOpenDefault?(0,Y.jsx)(y,{onClick:()=>void oe.activate(`open`,{environmentId:e,filePath:t.skill.path,workspaceRoot:void 0}),children:`Open`}):null,(0,Y.jsx)(y,{onClick:()=>M(t),children:`Details`}),n!==void 0&&W[n]?.skillOverrides?.[t.skill.name]!==void 0?(0,Y.jsx)(y,{onClick:()=>{let e=W[n]??{},r={...e.skillOverrides};delete r[t.skill.name],$({projectSettingsOverrides:{[n]:{...e,skillOverrides:r}}})},children:`Use environment setting`}):null]})]}),(0,Y.jsx)(ke,{"aria-label":`Enable ${Xe(t.skill)} for ${a}`,checked:(n===void 0?void 0:W[n]?.skillOverrides?.[t.skill.name])??ae[t.skill.name]??t.skill.enabled,disabled:!G||le!==null||i.length===0,onCheckedChange:e=>{ue(t.skill.name),$(n===void 0?{skillOverrides:{[t.skill.name]:e}}:{projectSettingsOverrides:{[n]:{...W[n],skillOverrides:{...W[n]?.skillOverrides,[t.skill.name]:e}}}}).finally(()=>ue(null))}})]},t.skill.path)})})]}),zt=(0,Y.jsxs)(`div`,{className:`grid gap-6`,children:[tt.length>0?(0,Y.jsx)(Te,{title:`Servers`,children:Ot.length===0?(0,Y.jsx)(`p`,{className:`px-3 text-sm text-muted-foreground sm:px-4`,children:`No MCP servers match your search.`}):(0,Y.jsx)(Y.Fragment,{children:Ot.map(([e,t])=>{let n=jt(`mcpServers`,e),r=Re({...t,enabled:n},Ce[e],je.has(e)),i=Qe[e],a=ut(t,r,Ce[e]);return(0,Y.jsxs)(`div`,{className:`flex min-h-14 items-center gap-3 px-4 py-3`,children:[(0,Y.jsxs)(`div`,{className:`grid min-w-0 flex-1 gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`break-words text-sm font-medium text-foreground`,children:t.name}),r.tone===`error`||a?(0,Y.jsx)(dt,{status:r}):null,i?(0,Y.jsx)(`span`,{className:`text-xs text-destructive-foreground`,children:i}):null]}),r.needsSignIn&&K?(0,Y.jsx)(A,{size:`xs`,variant:`outline`,onClick:()=>void xt(e),children:`Authenticate`}):null,a&&!r.needsSignIn&&K?(0,Y.jsxs)(o,{children:[(0,Y.jsxs)(I,{children:[(0,Y.jsx)(P,{render:(0,Y.jsx)(O,{render:(0,Y.jsx)(A,{variant:`ghost`,size:`icon-sm`,"aria-label":`More for ${t.name}`,children:(0,Y.jsx)(l,{"aria-hidden":!0})})})}),(0,Y.jsx)(F,{children:`Sign-in actions`})]}),(0,Y.jsxs)(b,{align:`end`,children:[(0,Y.jsx)(y,{onClick:()=>void xt(e,!0),children:`Re-authenticate`}),Ce[e]?.auth===`signed-in`?(0,Y.jsx)(y,{onClick:()=>void St(e),children:`Sign out`}):null]})]}):null,Ft(`Settings for ${t.name}`,()=>ct(e)),(0,Y.jsx)(ke,{"aria-label":`Give ${t.name} to agents`,checked:n,disabled:!K,onCheckedChange:t=>Mt(`mcpServers`,e,t)})]},e)})})}):null,K&&At.length>0?(0,Y.jsx)(Te,{title:`Found in provider configs`,headerAction:(0,Y.jsx)(A,{size:`icon-xs`,variant:`ghost`,"aria-label":`Look again`,onClick:()=>void st(),children:(0,Y.jsx)(i,{"aria-hidden":!0})}),children:(0,Y.jsx)(Y.Fragment,{children:At.map(t=>(0,Y.jsxs)(`div`,{className:`flex min-h-14 items-center gap-3 px-4 py-3`,children:[(0,Y.jsxs)(`div`,{className:`grid min-w-0 flex-1 gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`break-words text-sm font-medium text-foreground`,children:t.name}),At.filter(e=>e.name===t.name).length>1?(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:(t.providers??[t.provider]).map(e=>at[e]).join(`, `)}):null]}),(0,Y.jsx)(A,{size:`xs`,variant:`outline`,onClick:async()=>{(await Se({environmentId:e,input:{...n===void 0?{}:{projectId:n},servers:[{provider:t.provider,path:t.path,name:t.name}]}}))._tag===`Success`&&(st(),ot())},children:`Import`})]},`${t.provider}:${t.path}:${t.name}`))})}):null]}),Bt=Z.kind===`server`?(0,Y.jsxs)($e,{title:Z.id===null?`Add MCP server`:`Update ${L[Z.id]?.name??`server`} MCP`,onBack:()=>X({kind:`list`}),onUninstall:Z.id!==null&&K?()=>qe({kind:`server`,id:Z.id}):void 0,children:[(0,Y.jsx)(et,{server:Z.id===null?void 0:L[Z.id],takenNames:Et,onSave:e=>void bt(Z.id??p.make(w()),e,Z.id===null)},Z.id??`new`),Z.id!==null&&L[Z.id]!==void 0?(0,Y.jsx)(_t,{id:Z.id,server:L[Z.id],runtime:Ce[Z.id],checking:je.has(Z.id),canManage:K,projectLabel:r,projectOverride:n===void 0?void 0:W[n]?.mcpServers?.[Z.id],awaitingSignIn:Je===Z.id,onProviderToggle:(e,t)=>{let n=L[Z.id],r=t?n.disabledProviders.filter(t=>t!==e):[...n.disabledProviders,e];$({mcpServers:{[Z.id]:{...n,disabledProviders:r}}})},onProjectOverride:n===void 0?void 0:e=>Ct(`mcpServers`,Z.id,e),signInError:Qe[Z.id],onTest:()=>void gt(Z.id),onSignIn:()=>void xt(Z.id),onReauthenticate:()=>void xt(Z.id,!0),onSignOut:()=>void St(Z.id)}):null]}):null,Vt=Z.kind===`plugin`?(0,Y.jsxs)($e,{title:Z.id===null?`Add plugin`:`Update ${B[Z.id]?.name??`plugin`}`,onBack:()=>X({kind:`list`}),onUninstall:Z.id!==null&&K?()=>qe({kind:`plugin`,id:Z.id}):void 0,children:[(0,Y.jsx)(nt,{plugin:Z.id===null?void 0:B[Z.id],environmentLabel:t,onSave:async e=>{let t=Z.id??m.make(w());(await $({plugins:{[t]:e}}))._tag===`Success`&&Z.id===null&&X({kind:`list`})}},Z.id??`new`),Z.id!==null&&B[Z.id]!==void 0?(0,Y.jsx)(vt,{plugin:B[Z.id],environmentLabel:t,projectLabel:r,projectOverride:n===void 0?void 0:W[n]?.plugins?.[Z.id],onProjectOverride:n===void 0?void 0:e=>Ct(`plugins`,Z.id,e)}):null]}):null;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`grid gap-6`,children:[Nt,Pt,Bt??Vt??(d===`plugins`?It:d===`mcps`?zt:Rt)]}),j===null?null:(0,Y.jsx)(it,{entry:j,environmentId:e,onClose:()=>M(null)}),(0,Y.jsx)(Ee,{open:Ke!==null,onOpenChange:e=>!e&&qe(null),children:(0,Y.jsxs)(De,{children:[(0,Y.jsxs)(Ne,{children:[(0,Y.jsxs)(Oe,{children:[`Remove`,` `,Ke?.kind===`server`?L[Ke.id]?.name??`server`:Ke?.kind===`plugin`?B[Ke.id]?.name??`plugin`:``,`?`]}),(0,Y.jsxs)(Ae,{children:[`New sessions on `,t,` stop getting it. Its stored values and sign-in are deleted. Provider config files are not changed.`]})]}),(0,Y.jsxs)(Me,{children:[(0,Y.jsx)(Fe,{render:(0,Y.jsx)(A,{variant:`outline`,children:`Cancel`})}),(0,Y.jsx)(A,{variant:`destructive`,onClick:()=>void wt(),children:`Remove`})]})]})})]})}function gt(e){let t=(0,q.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,Y.jsx)(A,{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,Y.jsx)(ke,{"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,Y.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,Y.jsx)(Ce,{title:s,description:c,control:m}),t[12]=s,t[13]=c,t[14]=m,t[15]=h):h=t[15],h}function _t(e){let t=(0,q.c)(66),{id:n,server:r,runtime:i,checking:a,canManage:o,projectLabel:s,projectOverride:c,awaitingSignIn:l,signInError:u,onProviderToggle:d,onProjectOverride:f,onTest:p,onSignIn:m,onReauthenticate:h,onSignOut:g}=e,_;t[0]!==a||t[1]!==i||t[2]!==r?(_=Re(r,i,a),t[0]=a,t[1]=i,t[2]=r,t[3]=_):_=t[3];let v=_,y=r.transport.type===`http`&&i?.auth===`signed-in`,b=u??v.detail,x;t[4]===v?x=t[5]:(x=(0,Y.jsx)(dt,{status:v,className:`flex-1 text-sm`}),t[4]=v,t[5]=x);let S;t[6]!==l||t[7]!==o||t[8]!==m||t[9]!==v.needsSignIn?(S=v.needsSignIn&&o?(0,Y.jsx)(A,{size:`xs`,onClick:m,children:l?`Open sign-in again`:`Authenticate`}):null,t[6]=l,t[7]=o,t[8]=m,t[9]=v.needsSignIn,t[10]=S):S=t[10];let C;t[11]!==o||t[12]!==h||t[13]!==y||t[14]!==v.needsSignIn?(C=y&&!v.needsSignIn&&o?(0,Y.jsx)(A,{size:`xs`,variant:`outline`,onClick:h,children:`Re-authenticate`}):null,t[11]=o,t[12]=h,t[13]=y,t[14]=v.needsSignIn,t[15]=C):C=t[15];let w;t[16]!==o||t[17]!==g||t[18]!==y?(w=y&&o?(0,Y.jsx)(A,{size:`xs`,variant:`ghost`,onClick:g,children:`Sign out`}):null,t[16]=o,t[17]=g,t[18]=y,t[19]=w):w=t[19];let T;t[20]!==o||t[21]!==a||t[22]!==p||t[23]!==r.enabled?(T=o&&r.enabled?(0,Y.jsx)(A,{size:`xs`,variant:`outline`,disabled:a,onClick:p,children:`Test connection`}):null,t[20]=o,t[21]=a,t[22]=p,t[23]=r.enabled,t[24]=T):T=t[24];let E;t[25]!==x||t[26]!==S||t[27]!==C||t[28]!==w||t[29]!==T?(E=(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[x,S,C,w,T]}),t[25]=x,t[26]=S,t[27]=C,t[28]=w,t[29]=T,t[30]=E):E=t[30];let D;t[31]!==l||t[32]!==v.needsSignIn?(D=v.needsSignIn?(0,Y.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[31]=l,t[32]=v.needsSignIn,t[33]=D):D=t[33];let O;t[34]===b?O=t[35]:(O=b?(0,Y.jsx)(`p`,{className:`rounded-md bg-destructive/8 px-2.5 py-1.5 text-xs text-destructive-foreground`,children:b}):null,t[34]=b,t[35]=O);let k;t[36]===r.source?k=t[37]:(k=r.source?(0,Y.jsxs)(`p`,{className:`truncate text-xs text-muted-foreground`,children:[`Imported from `,r.source.path]}):null,t[36]=r.source,t[37]=k);let j;t[38]!==k||t[39]!==E||t[40]!==D||t[41]!==O?(j=(0,Y.jsx)(Te,{title:`Status`,children:(0,Y.jsx)(Se,{children:(0,Y.jsxs)(`div`,{className:`grid gap-2 px-4 py-3`,children:[E,D,O,k]})})}),t[38]=k,t[39]=E,t[40]=D,t[41]=O,t[42]=j):j=t[42];let M;if(t[43]!==o||t[44]!==d||t[45]!==r){let e;t[47]!==o||t[48]!==d||t[49]!==r.name?(e=e=>(0,Y.jsx)(Ce,{title:e.label,...e.unsupported===void 0?{}:{description:e.unsupported},control:(0,Y.jsx)(ke,{"aria-label":`Give ${r.name} to ${e.label}`,checked:e.enabled,disabled:!o||e.unsupported!==void 0,onCheckedChange:t=>d(e.driver,t)})},e.driver),t[47]=o,t[48]=d,t[49]=r.name,t[50]=e):e=t[50],M=Z(r).map(e),t[43]=o,t[44]=d,t[45]=r,t[46]=M}else M=t[46];let N;t[51]===M?N=t[52]:(N=(0,Y.jsx)(Se,{children:M}),t[51]=M,t[52]=N);let P;t[53]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,Y.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[53]=P):P=t[53];let F;t[54]===N?F=t[55]:(F=(0,Y.jsxs)(Te,{title:`Providers`,children:[N,P]}),t[54]=N,t[55]=F);let I;t[56]!==f||t[57]!==s||t[58]!==c||t[59]!==r.enabled?(I=s!==void 0&&f!==void 0?(0,Y.jsx)(Te,{title:`Project`,children:(0,Y.jsx)(Se,{children:(0,Y.jsx)(gt,{projectLabel:s,override:c,inherited:r.enabled,onChange:f})})}):null,t[56]=f,t[57]=s,t[58]=c,t[59]=r.enabled,t[60]=I):I=t[60];let L;return t[61]!==n||t[62]!==j||t[63]!==F||t[64]!==I?(L=(0,Y.jsxs)(`div`,{className:`grid gap-6`,"data-server-id":n,children:[j,F,I]}),t[61]=n,t[62]=j,t[63]=F,t[64]=I,t[65]=L):L=t[65],L}function vt(e){let t=(0,q.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,Y.jsx)(Ce,{title:`Claude`,description:s}),t[0]=s,t[1]=c);let l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Y.jsx)(Ce,{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,Y.jsx)(Te,{title:`Providers`,children:(0,Y.jsxs)(Se,{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,Y.jsx)(Te,{title:`Project`,children:(0,Y.jsx)(Se,{children:(0,Y.jsx)(gt,{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,Y.jsxs)(`div`,{className:`grid gap-6`,children:[u,d]}),t[10]=u,t[11]=d,t[12]=f):f=t[12],f}var yt=ft;export{yt as component};
5
- //# sourceMappingURL=settings.plugins-BWko147F.js.map
5
+ //# sourceMappingURL=settings.plugins-BnMZc7bA.js.map
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ProjectIconPickerDialog-D1QKDGMX.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/Icon-l19w4AjM.js","assets/utils-BBRDx4UJ.js","assets/activity-C1Y3O_v1.js","assets/createLucideIcon-CacG5mZC.js","assets/alarm-clock-Pw90g7hE.js","assets/app-window-D2LBv8RE.js","assets/archive-0Qz6rgBl.js","assets/arrow-down-up-B46gw0xW.js","assets/arrow-down-DvRecXuy.js","assets/arrow-left-BLE461db.js","assets/arrow-right-left-BqjFeAD_.js","assets/arrow-right-CoV5ameY.js","assets/arrow-up-down-ibtVnemT.js","assets/arrow-up-left-BMvgV_8i.js","assets/arrow-up-right-C6IM-WPd.js","assets/arrow-up-3Yp3lsoe.js","assets/battery-Bjbw2yxu.js","assets/bell-CLuvLMth.js","assets/blocks-B-VfW07Q.js","assets/book-open-HEEW8eqT.js","assets/bookmark-HM-xwl47.js","assets/bot-DpQzHyXo.js","assets/box-CKWcQvdq.js","assets/bug-Dtc5BRVF.js","assets/calendar-arrow-down-CAFi0Chs.js","assets/calendar-arrow-up-Cs2MbLyZ.js","assets/calendar-clock-DTUOomkO.js","assets/calendar-c_JH_1V1.js","assets/camera-V1Ufc9sC.js","assets/chart-no-axes-column-DKbSsm0y.js","assets/check-Cmy7pM2Y.js","assets/chevron-down-DHV04o66.js","assets/chevron-left-DrNh6cTh.js","assets/chevron-right-NbahR9_s.js","assets/chevron-up-C-w52bD6.js","assets/chevrons-left-right-ellipsis-D2Qu5H2y.js","assets/chevrons-up-down-BMPucOK_.js","assets/chromium-BusoCgri.js","assets/circle-alert-B83jEPoh.js","assets/circle-arrow-up-kT0Pa2jA.js","assets/circle-check-Y1T60J9X.js","assets/circle-dashed-ChJzoouS.js","assets/circle-dot-DSAuCGJf.js","assets/circle-slash-Ceo-2WKq.js","assets/circle-x-C-GXnJRB.js","assets/circle-4zZlZno3.js","assets/clock-3-SBiWJYHb.js","assets/clock-bc9N_wA2.js","assets/cloud-download-BE7c7r3I.js","assets/cloud-upload-noux3Cbp.js","assets/cloud-DyVMWy7X.js","assets/code-xml-CbuCFrkh.js","assets/code-DuFehkNQ.js","assets/columns-2-D1kdFD9w.js","assets/copy-CoM62e83.js","assets/corner-left-up-BCqW4dF8.js","assets/corner-up-right--t3OPVhh.js","assets/cpu-mffhvvYB.js","assets/database-DipbOz0U.js","assets/download-BAp4p4A-.js","assets/earth-CTY23Bx1.js","assets/ellipsis-vertical-fYTS1grT.js","assets/ellipsis-6x3R4_IB.js","assets/external-link-NWS0I_zo.js","assets/eye-off-BJFC-Vn7.js","assets/eye-Dh5UEUs_.js","assets/file-braces-CcggTVd0.js","assets/file-code-corner-Dt6PpZnb.js","assets/file-diff-BE4sroJp.js","assets/file-search-DotMSEoS.js","assets/file-spreadsheet-Boc78Vjm.js","assets/file-text-xj3y_Xbg.js","assets/file-1cutE11R.js","assets/files-CQwG7JjF.js","assets/film-CYJIuMHb.js","assets/flask-conical-WkWFg73e.js","assets/folder-closed-zBKiY8_q.js","assets/folder-cog-BMK_9DOi.js","assets/folder-git-2-BxqGR5ht.js","assets/folder-git-CoMYGJp_.js","assets/folder-open-BqgCWh1y.js","assets/folder-plus-BHa3aD6W.js","assets/folder-tree-CIpeR87A.js","assets/folder-CMIvEUJv.js","assets/gauge-C_4eEUrj.js","assets/git-branch-plus-BQ_ISFgF.js","assets/git-branch-CAP5iwh8.js","assets/git-commit-horizontal-6IR7R88i.js","assets/git-fork-BEEZa2l_.js","assets/git-merge-C47N_dux.js","assets/git-pull-request-arrow-C9_ZycDh.js","assets/git-pull-request-closed-BkRFT_Rl.js","assets/git-pull-request-draft-BNpXqUsz.js","assets/globe-BygqUCSx.js","assets/grip-vertical-B8ERFH5y.js","assets/hammer-BRTj-Vot.js","assets/hard-drive-CVWUL95f.js","assets/history-B22_6xEN.js","assets/house-D_gjXlRt.js","assets/image-xUrgiZ2i.js","assets/inbox-48iST-IJ.js","assets/info-BHB-83EA.js","assets/keyboard-9HUE6Zs7.js","assets/laptop-05PEAB3d.js","assets/layers-BqgDAlx3.js","assets/lightbulb-CEqRo_1f.js","assets/link-2-B_p2EG7Q.js","assets/link-zAXVcUwk.js","assets/list-checks-CQu2FTgJ.js","assets/list-filter-BOx8tW9q.js","assets/list-ordered-f2n8ZhGo.js","assets/list-todo-D7F9k-PE.js","assets/list-BAEaXVbr.js","assets/loader-circle-B3Ce8JIQ.js","assets/lock-open-Bt3QlIE2.js","assets/lock-Cc3mNdEd.js","assets/log-in-BpPtfyCd.js","assets/mail-J8kfrAC7.js","assets/maximize-2-CHT2IkVy.js","assets/maximize-CoWtPryT.js","assets/memory-stick-C7kBEkBW.js","assets/message-circle-question-mark-Blboafqi.js","assets/message-circle-CwQpPAbq.js","assets/message-square-dashed-DrEYZ6F3.js","assets/message-square-off-BstjdZP9.js","assets/message-square-text-CJTpB0rs.js","assets/message-square-warning-I95tWaoN.js","assets/message-square-DLzUyuIE.js","assets/messages-square-BNeF2306.js","assets/minimize-2-DOhpJbnX.js","assets/minus-C7W28oE7.js","assets/monitor-Ddj8MK6z.js","assets/moon-B9ss2TfK.js","assets/mouse-pointer-2-DbBU41il.js","assets/mouse-pointer-click-DsDE4K7M.js","assets/octagon-alert-BKVCgU--.js","assets/package-plus-Cl7EzKuY.js","assets/package-CeeyHFJU.js","assets/paintbrush-D1BKpWrm.js","assets/palette-Xj4s0pmv.js","assets/panel-bottom-BzpRd9wr.js","assets/panel-left-DzXd97so.js","assets/panel-right-C3EFo10c.js","assets/paperclip-BCpF_jt0.js","assets/panels-top-left-C5lf6BGD.js","assets/pen-line-BeMREvYs.js","assets/pencil-ruler-CU_Sl28D.js","assets/pencil-CnxrJI7X.js","assets/picture-in-picture-2-g5nsWFVw.js","assets/pilcrow-DMiXqMTk.js","assets/pin-DfMqpQHz.js","assets/play-Bvcnzkvl.js","assets/plug-2-DkrvJqyh.js","assets/plus-Cr075-cy.js","assets/plug-Cdxb0djR.js","assets/power-BZu57mPF.js","assets/presentation-DvMc9hxG.js","assets/puzzle-Bv9mngwk.js","assets/qr-code-D3ZNC-wH.js","assets/quote-zNyOHYG3.js","assets/radio-tower-CT5Np78y.js","assets/redo-2-DRHZshO-.js","assets/refresh-cw-PY_ECjtI.js","assets/rotate-ccw-Dr4MwDMq.js","assets/rotate-cw-10CQA0Ej.js","assets/route-CQ6wZzks.js","assets/rows-3-Bhc8vjss.js","assets/scale-V7dmr96y.js","assets/search-Cr9eaeTj.js","assets/send-CMOvB09P.js","assets/server-Le_hLOlf.js","assets/settings-2-XzWAl_8P.js","assets/settings-CTjEqsg3.js","assets/shield-check-k2SY7zjx.js","assets/shield-question-mark-pgYZYoSI.js","assets/shield-veV1FXDO.js","assets/sliders-horizontal-lg5XUMZM.js","assets/smartphone-zkhAIn1Q.js","assets/smile-plus-20kjE9KX.js","assets/sparkles-cStmYKbH.js","assets/square-arrow-out-up-right-DRKYZdVU.js","assets/square-pen-DIW48FdK.js","assets/square-plus-CeFmBUPF.js","assets/square-split-horizontal-Ba4BZbro.js","assets/square-split-vertical-BqJX4cZa.js","assets/square-terminal-CB0QR1vW.js","assets/square-DVrCvZRU.js","assets/star-DJ6Ycqv6.js","assets/sun-C8irSiA-.js","assets/tag-DhRIoqTo.js","assets/target-DziMQLku.js","assets/terminal-6kKaKv-Q.js","assets/text-align-start-C-EHiBr4.js","assets/text-search-BsqmpFYh.js","assets/text-wrap-C8SwAUbc.js","assets/ticket-LnwYlhC1.js","assets/trash-2-CiyAV2xI.js","assets/trending-down-CZZKiTTZ.js","assets/trending-up-CyMfjRD-.js","assets/triangle-alert-BiHUyRl3.js","assets/type-ChjbxAhu.js","assets/undo-2-ZlIXiNdF.js","assets/unlink-2-DKAoaBiV.js","assets/unplug-Dg15iaHA.js","assets/upload-D9-Kv89Z.js","assets/user-check-BtCtF_-l.js","assets/user-lock-BWt0Um72.js","assets/user-plus-DbG1t95t.js","assets/user-round-x-D7izbSMH.js","assets/user-round-GtkOza8y.js","assets/users-LmqvhHnq.js","assets/wifi-off-DtJhRDhE.js","assets/workflow-Za5zYpKH.js","assets/wrench-CSZxFJCP.js","assets/x-CSwbgjBe.js","assets/zap-CrtYfJ8v.js","assets/toggle-group--QyJ7uYY.js","assets/CompositeRoot-Bu_9wjlN.js","assets/toggle-BBpi92mE.js","assets/input-OK9fSGsW.js","assets/FieldControl-Dcug7PQN.js","assets/useRegisterFieldControl-B-o6bvd-.js","assets/scroll-area-BtAqRLpC.js","assets/CSPContext-BLmE8rVK.js","assets/dialog-COvCzBu5.js","assets/DialogTitle-B7ZsIcBO.js","assets/ProjectMonogram-wj_aiPmM.js","assets/dynamic-CUevKA9_.js","assets/index-BGHZIIwm.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./index-BGHZIIwm.js";import{r as n}from"./Icon-l19w4AjM.js";import{$g as r,D as i,Gn as a,Ip as o,JC as s,Jn as c,Kv as l,Ls as u,Rs as d,Vo as f,WT as p,Yn as m,Zn as h,a_ as g,d_ as _,ed as v,gc as y,gf as b,in as x,mE as S,n as C,or as w,os as T,ps as E,qn as D,r as O,sm as k,sr as A,tr as ee,vp as te}from"./utils-BBRDx4UJ.js";import{H as j,L as ne,R as M,U as re}from"./runtime-VHJoq9so.js";import{C as N,P,W as F,k as I}from"./entities-DPdxOTpx.js";import{yn as L}from"./runtime-ivCTGH5C.js";import{t as R}from"./useNavigate-B3U2CN2A.js";import{t as z}from"./useLocation-Cfwex-wi.js";import{i as B}from"./toast-CyScduZI.js";import{E as ie,J as V,K as H,O as ae}from"./useSettings-gJURpIkJ.js";import{f as U,s as W}from"./server-C-qtaHHG.js";import{n as G,o as K}from"./session-KZUTmmZy.js";import{t as q}from"./use-atom-command-CYY238HA.js";import{n as J}from"./toastHelpers-Dsph6LwL.js";import{i as Y,o as X,r as oe}from"./command-DGoFksB6.js";import{t as se}from"./input-OK9fSGsW.js";import{D as ce,E as le,O as ue,j as de,y as fe}from"./keybindings-BWCWrY_-.js";import{t as pe}from"./PierreEntryIcon-Bid6ECoT.js";import{t as me}from"./ProjectFavicon-oQ8xOLai.js";import{d as he}from"./projectFilesQueryState-BKJPj8kq.js";import{n as ge}from"./p4ProjectFile-BfBM2HoW.js";import{r as _e,t as ve}from"./alert-BOSKZyDW.js";import{B as ye,H as be,I as xe,a as Z,i as Se,r as Ce,s as we}from"./settingsLayout-CthFz77S.js";import{Mi as Te,Sn as Ee,bn as De,pn as Oe,yi as ke}from"./main-DB45P6Gd.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-C10v2IgV.js";import{t as Re}from"./ProjectDefaultsSettings-BaW9gkj0.js";import{t as ze}from"./SettingsScopeNotice-BbuY3OvE.js";var Be=S(),Q=e(n(),1),$=e(p(),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!O(t)||L(e)}function Ue(e){let[t,n]=(0,Q.useState)(``),[r,i]=(0,Q.useState)(null),[a,o]=(0,Q.useState)(!1),s=he(e.environmentId,e.cwd,t,200,{imageOnly:!0}),{resolvedTheme:c}=H(),l=f(W),u=e.onPickExternal,d=C(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)(pe,{pathValue:t.path,kind:`file`,theme:c}),run:async()=>e.onSelect(t.path)})),[e.onSelect,c,s.entries,s.matchedQuery]);return(0,$.jsx)(oe,{open:e.open,onOpenChange:e.onOpenChange,children:e.open?(0,$.jsx)(Y,{"aria-label":`Choose project icon`,className:`overflow-hidden`,onBackdropPointerDown:()=>e.onOpenChange(!1),children:(0,$.jsx)(Ee,{"aria-label":`Choose project icon`,autoHighlight:`always`,escapeLabel:`Close`,footerActionLabel:`Select icon`,footerTrailing:u?(0,$.jsx)(X,{disabled:a,onClick:()=>{o(!0),u().then(t=>{t&&(e.onOpenChange(!1),e.onSelect(t))}).catch(e=>{B.add({type:`error`,title:`Could not open image picker`,description:e instanceof Error?e.message:`An error occurred.`})}).finally(()=>o(!1))},children:`Open in ${d}`}):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)(De,{groups:p.length>0?[{value:`project-favicon-files`,label:e.projectName,items:p}]:[],highlightedItemValue:r,isActionsOnly:!1,keybindings:l,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 s;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=fe(r,ce(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)(A,{size:`icon-xs`,variant:`ghost-muted`,"aria-label":`Edit ${e.name}`,disabled:i,onClick:()=>a(e),children:(0,$.jsx)(o,{className:`size-3.5`})})})]})},e.id)},t[6]=i,t[7]=r,t[8]=a,t[9]=e):e=t[9],s=n.map(e),t[1]=i,t[2]=r,t[3]=a,t[4]=n,t[5]=s}else s=t[5];return s}function Ge(e){if(e._tag===`Failure`&&!ne(e)){let t=re(e);B.add({type:`error`,title:`Failed to save project actions`,description:t instanceof Error?t.message:`An error occurred.`})}return M(e,()=>void 0)}function Ke(e){let t=N(),[n,r]=(0,Q.useState)(!1),i=(0,Q.useRef)(!1),a=q(U.updateSettings,`project actions update`),o=q(U.upsertKeybinding,`action shortcut update`),c=q(U.removeKeybinding,`action shortcut removal`);async function l(n,l,u){if(i.current||e.length===0){let e=`No available machine, or another action change is saving.`;return B.add({type:`error`,title:`Actions not saved`,description:e}),T(s(Error(e)))}if(e.some(({environmentId:e})=>!G(e,`settings:write`)))return Ge(T(s(new _({requiredScope:g,message:`This connection cannot change environment settings.`}))));i.current=!0,r(!0);try{for(let{environmentId:r,settings:i,keybindings:s,project:d}of e){let e=d?je(i,d):i.defaultProjectScripts,f=n(e),p=f??i.defaultProjectScripts,m=await a({environmentId:r,input:{patch:d?{projectSettingsOverrides:{[d.id]:f===null?ge(i,d.id,[`defaultProjectScripts`]):{...i.projectSettingsOverrides[d.id],defaultProjectScripts:f}}}:{defaultProjectScripts:f??[]}}});if(m._tag===`Failure`)return Ge(m);let h=l?[l]:e.filter(e=>!p.some(t=>t.id===e.id)).map(e=>e.id);for(let e of h){let n=ce(e),a=Ae(s,n),l=a?Ie({keybinding:a,command:n}):null,p=Ie({keybinding:u,command:n}),m=!f?.some(t=>t.id===e)&&(d&&i.defaultProjectScripts.some(t=>t.id===e)||Object.entries(i.projectSettingsOverrides).some(([t,n])=>t!==d?.id&&n.defaultProjectScripts?.some(t=>t.id===e))||t.some(t=>t.environmentId===r&&t.id!==d?.id&&(d?je(i,t):t.scripts).some(t=>t.id===e))),h=p?await o({environmentId:r,input:l&&l.key!==p.key?{...p,replace:l}:p}):l&&!m?await c({environmentId:r,input:l}):null;if(h?._tag===`Failure`)return Ge(h)}}return E(void 0)}finally{i.current=!1,r(!1)}}function u(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??ue(r.name,i),o=le(a,r);return l(e=>{let t=e.map(e=>e.id===a?o:de(e,r));return n===null?[...t,o]:t},a,r.keybinding)}return{saving:n,persist:l,submit:u}}function qe(){let e=(0,Be.c)(67),{scope:t,targets:n,target:r}=ye(),{environments:i}=ie(),o=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 u=s,d;e[3]===r?.settings.defaultProjectScripts?d=e[4]:(d=r?.settings.defaultProjectScripts??[],e[3]=r?.settings.defaultProjectScripts,e[4]=d);let f=d,p=u?.keybindings??y,g;if(e[5]!==f||e[6]!==n){let t;e[8]===f?t=e[9]:(t=e=>JSON.stringify(e.settings.defaultProjectScripts)!==JSON.stringify(f),e[8]=f,e[9]=t),g=n.some(t),e[5]=f,e[6]=n,e[7]=g}else g=e[7];let _=g,b=xe(),[x,S]=(0,Q.useState)(null),C,T,E;e[10]!==i||e[11]!==o||e[12]!==t.members||e[13]!==n?(C=new Map(o?t.members.map(Ye):[]),T=Ke,E=n.flatMap(e=>{let t=i.find(t=>t.environmentId===e.environmentId);if(!t?.serverConfig)return[];let n=e.projectId?C.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]=o,e[12]=t.members,e[13]=n,e[14]=C,e[15]=T,e[16]=E):(C=e[14],T=e[15],E=e[16]);let{saving:O,persist:k,submit:j}=T(E),M;e[17]!==C||e[18]!==r?(M=r?.projectId?C.get(r.projectId):void 0,e[17]=C,e[18]=r,e[19]=M):M=e[19];let N=M,P;e[20]===N?.environmentId?P=e[21]:(P=N?.environmentId??l.make(`none`),e[20]=N?.environmentId,e[21]=P);let F=Pe(P,N?.workspaceRoot??null),I;if(e[22]!==f||e[23]!==F.scripts){let t;e[25]===f?t=e[26]:(t=e=>!f.some(t=>t.command===e.command||t.name.toLowerCase()===e.name.toLowerCase()),e[25]=f,e[26]=t),I=F.scripts.filter(t),e[22]=f,e[23]=F.scripts,e[24]=I}else I=e[24];let L=I,R;e[27]===j?R=e[28]:(R=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 j(null,t);if(n._tag===`Failure`&&!ne(n)){let e=re(n);S({scriptId:null,initial:t,error:e instanceof Error?e.message:`Failed to import action.`})}},e[27]=j,e[28]=R);let z=R,B;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(B=[`defaultProjectScripts`],e[29]=B):B=e[29];let V;e[30]===k?V=e[31]:(V=()=>void k(Je),e[30]=k,e[31]=V);let H;e[32]!==b||e[33]!==z||e[34]!==L||e[35]!==O?(H=L.length>0?(0,$.jsxs)(a,{children:[(0,$.jsxs)(w,{render:(0,$.jsx)(A,{id:`import-scripts`,size:`xs`,variant:`ghost`,disabled:O||!b,type:`button`}),children:[`Import scripts`,(0,$.jsx)(v,{className:`size-3.5`})]}),(0,$.jsxs)(h,{align:`end`,children:[(0,$.jsxs)(D,{children:[(0,$.jsx)(c,{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)(ee,{}),L.map(e=>(0,$.jsxs)(m,{onClick:()=>void z(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]=b,e[33]=z,e[34]=L,e[35]=O,e[36]=H):H=e[36];let ae=O||!b||n.length===0,U,W;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>S({scriptId:null,initial:Le}),W=(0,$.jsx)(te,{className:`size-3.5`}),e[37]=U,e[38]=W):(U=e[37],W=e[38]);let G;e[39]===ae?G=e[40]:(G=(0,$.jsxs)(A,{size:`xs`,variant:`outline`,disabled:ae,onClick:U,children:[W,`Add action`]}),e[39]=ae,e[40]=G);let K;e[41]!==H||e[42]!==G?(K=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[H,G]}),e[41]=H,e[42]=G,e[43]=K):K=e[43];let q;e[44]!==_||e[45]!==V||e[46]!==K?(q=(0,$.jsx)(Z,{serverScoped:!0,settingKeys:B,mixed:_,title:`Actions`,description:`Commands that run in this project's checkout or its worktree, with optional shortcuts.`,onResetOverride:V,control:K}),e[44]=_,e[45]=V,e[46]=K,e[47]=q):q=e[47];let J;e[48]!==b||e[49]!==p||e[50]!==_||e[51]!==O||e[52]!==f?(J=_?(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:f,keybindings:p,disabled:O||!b,onEdit:e=>S(Me(e,p))}),e[48]=b,e[49]=p,e[50]=_,e[51]=O,e[52]=f,e[53]=J):J=e[53];let Y;e[54]===F.status?Y=e[55]:(Y=F.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]=F.status,e[55]=Y);let X;e[56]!==k||e[57]!==x||e[58]!==f||e[59]!==j||e[60]!==r?(X=r&&(0,$.jsx)(Ne,{environmentId:r.environmentId,editScope:`settings:write`,request:x,scripts:f,onSubmit:j,onDelete:e=>void k(t=>t.filter(t=>t.id!==e),e,null),onClose:()=>S(null)}),e[56]=k,e[57]=x,e[58]=f,e[59]=j,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)(we,{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-D1QKDGMX.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,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230])));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=be(),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c={from:`/settings`},t[0]=c):c=t[0];let l=R(c),u;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(u={select:tt},t[1]=u):u=t[1];let d=z(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=R({from:`/settings`}),a=ae(),{environments:o}=ie(),c=(0,Q.useMemo)(()=>new Map(o.map(e=>[e.environmentId,e])),[o]),l=K(e.memberProjects,r),f=e.memberProjects.every(e=>l.has(e.environmentId)),p=e.memberProjects.find(e=>c.get(e.environmentId)?.serverConfig!=null)??e.memberProjects[0],m=I(),h=Te(F.update,{reportFailure:!1}),g=Te(F.delete,{reportFailure:!1}),_=(0,Q.useRef)(!1),v=p.faviconPath??null,y=p.projectIcon??null,S=typeof window<`u`&&e.memberProjects.every(e=>e.environmentId===a&&He(e.workspaceRoot,navigator.platform))?window.desktopBridge?.pickProjectFavicon:void 0,C=(0,Q.useCallback)((e,t)=>{if(t._tag!==`Failure`||ne(t))return;let n=re(t);B.add(J({type:`error`,title:e,description:n instanceof Error?n.message:`An error occurred.`}))},[]),w=(0,Q.useCallback)((e,t)=>{let n=e.find(e=>!G(e.environmentId,r));if(!n)return null;let i=T(s(Error(`This connection cannot change projects in ${n.environmentLabel??`this environment`}.`)));return C(t,i),i},[C]),D=(0,Q.useCallback)(async(t,n)=>{let r=w(e.memberProjects,n);if(r)return r;let i=e.memberProjects.find(e=>{let t=c.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 C(n,t),t}for(let r of e.memberProjects){let i=w([r],n);if(i)return i;let a=M(await h({environmentId:r.environmentId,input:{projectId:r.id,...t}}),()=>void 0);if(a._tag===`Failure`)return C(e.memberProjects.length>1?`${n} on ${r.environmentLabel??`the current environment`}`:n,a),a}return E(void 0)},[w,c,e.memberProjects,C,h]),O=(0,Q.useCallback)(async(t,n)=>{let r=t.trim();if(!r){B.add({type:`warning`,title:`Project title cannot be empty`});return}Xe(e.memberProjects.map(e=>e.title),r,n)&&await D({title:r},`Failed to rename project`)},[e.memberProjects,D]),[ee,te]=x(!f),[N,L]=x(!f),[z,H]=(0,Q.useState)(!1),U=(0,Q.useRef)(!1),W=(0,Q.useCallback)(async e=>{if(!U.current){U.current=!0,H(!0);try{await D(e,`Failed to update project icon`)}finally{U.current=!1,H(!1)}}},[D]),q=e.memberProjects.length>1,Y=(0,Q.useCallback)(async r=>{if(w(r,`Failed to remove project`))return;let a=V();if(!a)return;let o=new Set(r.map(Qe)),s=m.filter(e=>o.has(`${e.environmentId}:${e.projectId}`)),c=r.length===e.memberProjects.length,l=t||!c?`checkout`:`project`,f=r.length===1?r[0]:null,p=f?.title??e.displayName,h=await j(()=>a.dialogs.confirm([s.length>0?`Remove ${l} "${p}" and delete its ${s.length} thread${s.length===1?``:`s`}?`:`Remove ${l} "${p}"?`,...f?[`Path: ${f.workspaceRoot}`,...f.environmentLabel?[`Environment: ${f.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(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ProjectIconPickerDialog-CWU1aanN.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/Icon-l19w4AjM.js","assets/utils-TSzPLNGf.js","assets/activity-C1Y3O_v1.js","assets/createLucideIcon-CacG5mZC.js","assets/alarm-clock-Pw90g7hE.js","assets/app-window-D2LBv8RE.js","assets/archive-0Qz6rgBl.js","assets/arrow-down-up-B46gw0xW.js","assets/arrow-down-DvRecXuy.js","assets/arrow-left-BLE461db.js","assets/arrow-right-left-BqjFeAD_.js","assets/arrow-right-CoV5ameY.js","assets/arrow-up-down-ibtVnemT.js","assets/arrow-up-left-BMvgV_8i.js","assets/arrow-up-right-C6IM-WPd.js","assets/arrow-up-3Yp3lsoe.js","assets/battery-Bjbw2yxu.js","assets/bell-CLuvLMth.js","assets/blocks-B-VfW07Q.js","assets/book-open-HEEW8eqT.js","assets/bookmark-HM-xwl47.js","assets/bot-DpQzHyXo.js","assets/box-CKWcQvdq.js","assets/bug-Dtc5BRVF.js","assets/calendar-arrow-down-CAFi0Chs.js","assets/calendar-arrow-up-Cs2MbLyZ.js","assets/calendar-clock-DTUOomkO.js","assets/calendar-c_JH_1V1.js","assets/camera-V1Ufc9sC.js","assets/chart-no-axes-column-DKbSsm0y.js","assets/check-Cmy7pM2Y.js","assets/chevron-down-DHV04o66.js","assets/chevron-left-DrNh6cTh.js","assets/chevron-right-NbahR9_s.js","assets/chevron-up-C-w52bD6.js","assets/chevrons-left-right-ellipsis-D2Qu5H2y.js","assets/chevrons-up-down-BMPucOK_.js","assets/chromium-BusoCgri.js","assets/circle-alert-B83jEPoh.js","assets/circle-arrow-up-kT0Pa2jA.js","assets/circle-check-Y1T60J9X.js","assets/circle-dashed-ChJzoouS.js","assets/circle-dot-DSAuCGJf.js","assets/circle-slash-Ceo-2WKq.js","assets/circle-x-C-GXnJRB.js","assets/circle-4zZlZno3.js","assets/clock-3-SBiWJYHb.js","assets/clock-bc9N_wA2.js","assets/cloud-download-BE7c7r3I.js","assets/cloud-upload-noux3Cbp.js","assets/cloud-DyVMWy7X.js","assets/code-xml-CbuCFrkh.js","assets/code-DuFehkNQ.js","assets/columns-2-D1kdFD9w.js","assets/copy-CoM62e83.js","assets/corner-left-up-BCqW4dF8.js","assets/corner-up-right--t3OPVhh.js","assets/cpu-mffhvvYB.js","assets/database-DipbOz0U.js","assets/download-BAp4p4A-.js","assets/earth-CTY23Bx1.js","assets/ellipsis-vertical-fYTS1grT.js","assets/ellipsis-6x3R4_IB.js","assets/external-link-NWS0I_zo.js","assets/eye-off-BJFC-Vn7.js","assets/eye-Dh5UEUs_.js","assets/file-braces-CcggTVd0.js","assets/file-code-corner-Dt6PpZnb.js","assets/file-diff-BE4sroJp.js","assets/file-search-DotMSEoS.js","assets/file-spreadsheet-Boc78Vjm.js","assets/file-text-xj3y_Xbg.js","assets/file-1cutE11R.js","assets/files-CQwG7JjF.js","assets/film-CYJIuMHb.js","assets/flask-conical-WkWFg73e.js","assets/folder-closed-zBKiY8_q.js","assets/folder-cog-BMK_9DOi.js","assets/folder-git-2-BxqGR5ht.js","assets/folder-git-CoMYGJp_.js","assets/folder-open-BqgCWh1y.js","assets/folder-plus-BHa3aD6W.js","assets/folder-tree-CIpeR87A.js","assets/folder-CMIvEUJv.js","assets/gauge-C_4eEUrj.js","assets/git-branch-plus-BQ_ISFgF.js","assets/git-branch-CAP5iwh8.js","assets/git-commit-horizontal-6IR7R88i.js","assets/git-fork-BEEZa2l_.js","assets/git-merge-C47N_dux.js","assets/git-pull-request-arrow-C9_ZycDh.js","assets/git-pull-request-closed-BkRFT_Rl.js","assets/git-pull-request-draft-BNpXqUsz.js","assets/globe-BygqUCSx.js","assets/grip-vertical-B8ERFH5y.js","assets/hammer-BRTj-Vot.js","assets/hard-drive-CVWUL95f.js","assets/history-B22_6xEN.js","assets/house-D_gjXlRt.js","assets/image-xUrgiZ2i.js","assets/inbox-48iST-IJ.js","assets/info-BHB-83EA.js","assets/keyboard-9HUE6Zs7.js","assets/laptop-05PEAB3d.js","assets/layers-BqgDAlx3.js","assets/lightbulb-CEqRo_1f.js","assets/link-2-B_p2EG7Q.js","assets/link-zAXVcUwk.js","assets/list-checks-CQu2FTgJ.js","assets/list-filter-BOx8tW9q.js","assets/list-ordered-f2n8ZhGo.js","assets/list-todo-D7F9k-PE.js","assets/list-BAEaXVbr.js","assets/loader-circle-B3Ce8JIQ.js","assets/lock-open-Bt3QlIE2.js","assets/lock-Cc3mNdEd.js","assets/log-in-BpPtfyCd.js","assets/mail-J8kfrAC7.js","assets/maximize-2-CHT2IkVy.js","assets/maximize-CoWtPryT.js","assets/memory-stick-C7kBEkBW.js","assets/message-circle-question-mark-Blboafqi.js","assets/message-circle-CwQpPAbq.js","assets/message-square-dashed-DrEYZ6F3.js","assets/message-square-off-BstjdZP9.js","assets/message-square-text-CJTpB0rs.js","assets/message-square-warning-I95tWaoN.js","assets/message-square-DLzUyuIE.js","assets/messages-square-BNeF2306.js","assets/minimize-2-DOhpJbnX.js","assets/minus-C7W28oE7.js","assets/monitor-Ddj8MK6z.js","assets/moon-B9ss2TfK.js","assets/mouse-pointer-2-DbBU41il.js","assets/mouse-pointer-click-DsDE4K7M.js","assets/octagon-alert-BKVCgU--.js","assets/package-plus-Cl7EzKuY.js","assets/package-CeeyHFJU.js","assets/paintbrush-D1BKpWrm.js","assets/palette-Xj4s0pmv.js","assets/panel-bottom-BzpRd9wr.js","assets/panel-left-DzXd97so.js","assets/panel-right-C3EFo10c.js","assets/paperclip-BCpF_jt0.js","assets/panels-top-left-C5lf6BGD.js","assets/pen-line-BeMREvYs.js","assets/pencil-ruler-CU_Sl28D.js","assets/pencil-CnxrJI7X.js","assets/picture-in-picture-2-g5nsWFVw.js","assets/pilcrow-DMiXqMTk.js","assets/pin-DfMqpQHz.js","assets/play-Bvcnzkvl.js","assets/plug-2-DkrvJqyh.js","assets/plus-Cr075-cy.js","assets/plug-Cdxb0djR.js","assets/power-BZu57mPF.js","assets/presentation-DvMc9hxG.js","assets/puzzle-Bv9mngwk.js","assets/qr-code-D3ZNC-wH.js","assets/quote-zNyOHYG3.js","assets/radio-tower-CT5Np78y.js","assets/redo-2-DRHZshO-.js","assets/refresh-cw-PY_ECjtI.js","assets/rotate-ccw-Dr4MwDMq.js","assets/rotate-cw-10CQA0Ej.js","assets/route-CQ6wZzks.js","assets/rows-3-Bhc8vjss.js","assets/scale-V7dmr96y.js","assets/search-Cr9eaeTj.js","assets/send-CMOvB09P.js","assets/server-Le_hLOlf.js","assets/settings-2-XzWAl_8P.js","assets/settings-CTjEqsg3.js","assets/shield-check-k2SY7zjx.js","assets/shield-question-mark-pgYZYoSI.js","assets/shield-veV1FXDO.js","assets/sliders-horizontal-lg5XUMZM.js","assets/smartphone-zkhAIn1Q.js","assets/smile-plus-20kjE9KX.js","assets/sparkles-cStmYKbH.js","assets/square-arrow-out-up-right-DRKYZdVU.js","assets/square-pen-DIW48FdK.js","assets/square-plus-CeFmBUPF.js","assets/square-split-horizontal-Ba4BZbro.js","assets/square-split-vertical-BqJX4cZa.js","assets/square-terminal-CB0QR1vW.js","assets/square-DVrCvZRU.js","assets/star-DJ6Ycqv6.js","assets/sun-C8irSiA-.js","assets/tag-DhRIoqTo.js","assets/target-DziMQLku.js","assets/terminal-6kKaKv-Q.js","assets/text-align-start-C-EHiBr4.js","assets/text-search-BsqmpFYh.js","assets/text-wrap-C8SwAUbc.js","assets/ticket-LnwYlhC1.js","assets/trash-2-CiyAV2xI.js","assets/trending-down-CZZKiTTZ.js","assets/trending-up-CyMfjRD-.js","assets/triangle-alert-BiHUyRl3.js","assets/type-ChjbxAhu.js","assets/undo-2-ZlIXiNdF.js","assets/unlink-2-DKAoaBiV.js","assets/unplug-Dg15iaHA.js","assets/upload-D9-Kv89Z.js","assets/user-check-BtCtF_-l.js","assets/user-lock-BWt0Um72.js","assets/user-plus-DbG1t95t.js","assets/user-round-x-D7izbSMH.js","assets/user-round-GtkOza8y.js","assets/users-LmqvhHnq.js","assets/wifi-off-DtJhRDhE.js","assets/workflow-Za5zYpKH.js","assets/wrench-CSZxFJCP.js","assets/x-CSwbgjBe.js","assets/zap-CrtYfJ8v.js","assets/toggle-group-Dt1Yldxx.js","assets/CompositeRoot-CZqNlh6y.js","assets/toggle-Ce46mx2g.js","assets/input-CNGP9r-b.js","assets/FieldControl-DSYkAElP.js","assets/useRegisterFieldControl-Cs54XrA4.js","assets/scroll-area-DyzCabMe.js","assets/CSPContext-D9jns38x.js","assets/dialog-B5b8j4VI.js","assets/DialogTitle-Bti0gMwZ.js","assets/ProjectMonogram-De9Vi6mM.js","assets/dynamic-C9YFXILD.js","assets/index-CG78-Gl5.js"])))=>i.map(i=>d[i]);
2
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./index-CG78-Gl5.js";import{r as n}from"./Icon-l19w4AjM.js";import{$g as r,D as i,Gn as a,Ip as o,JC as s,Jn as c,Kv as l,Ls as u,Rs as d,Vo as f,WT as p,Yn as m,Zn as h,a_ as g,d_ as _,ed as v,gc as y,gf as b,in as x,mE as S,n as C,or as w,os as T,ps as E,qn as D,r as O,sm as k,sr as A,tr as ee,vp as te}from"./utils-TSzPLNGf.js";import{H as j,L as ne,R as M,U as re}from"./runtime-qAs3Aj0U.js";import{C as N,P,W as F,k as I}from"./entities-CW57Cs5E.js";import{yn as L}from"./runtime-ZOY8Qeg_.js";import{t as R}from"./useNavigate-Cdy4Jh5i.js";import{t as z}from"./useLocation-BdZaQ50l.js";import{i as B}from"./toast-3I2gpMYd.js";import{E as ie,J as V,K as H,O as ae}from"./useSettings-DsvnJBf2.js";import{f as U,s as W}from"./server-BxsIDqAi.js";import{n as G,o as K}from"./session-Lp4r-IPM.js";import{t as q}from"./use-atom-command-CVDCnNHi.js";import{n as J}from"./toastHelpers-Dsph6LwL.js";import{i as Y,o as X,r as oe}from"./command-DywgXMPU.js";import{t as se}from"./input-CNGP9r-b.js";import{D as ce,E as le,O as ue,j as de,y as fe}from"./keybindings-Dw_FB1Sr.js";import{t as pe}from"./PierreEntryIcon-zwmwEij7.js";import{t as me}from"./ProjectFavicon-Cs-IpJFL.js";import{d as he}from"./projectFilesQueryState-CgqhXdfj.js";import{n as ge}from"./p4ProjectFile-BfRZT-Cd.js";import{r as _e,t as ve}from"./alert-BFkMrLRZ.js";import{B as ye,H as be,I as xe,a as Z,i as Se,r as Ce,s as we}from"./settingsLayout-DhPKINaL.js";import{Mi as Te,Sn as Ee,bn as De,pn as Oe,yi as ke}from"./main-pmaKofkn.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-CARl6hYK.js";import{t as Re}from"./ProjectDefaultsSettings-DaLgF84f.js";import{t as ze}from"./SettingsScopeNotice-Bq3kVMy1.js";var Be=S(),Q=e(n(),1),$=e(p(),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!O(t)||L(e)}function Ue(e){let[t,n]=(0,Q.useState)(``),[r,i]=(0,Q.useState)(null),[a,o]=(0,Q.useState)(!1),s=he(e.environmentId,e.cwd,t,200,{imageOnly:!0}),{resolvedTheme:c}=H(),l=f(W),u=e.onPickExternal,d=C(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)(pe,{pathValue:t.path,kind:`file`,theme:c}),run:async()=>e.onSelect(t.path)})),[e.onSelect,c,s.entries,s.matchedQuery]);return(0,$.jsx)(oe,{open:e.open,onOpenChange:e.onOpenChange,children:e.open?(0,$.jsx)(Y,{"aria-label":`Choose project icon`,className:`overflow-hidden`,onBackdropPointerDown:()=>e.onOpenChange(!1),children:(0,$.jsx)(Ee,{"aria-label":`Choose project icon`,autoHighlight:`always`,escapeLabel:`Close`,footerActionLabel:`Select icon`,footerTrailing:u?(0,$.jsx)(X,{disabled:a,onClick:()=>{o(!0),u().then(t=>{t&&(e.onOpenChange(!1),e.onSelect(t))}).catch(e=>{B.add({type:`error`,title:`Could not open image picker`,description:e instanceof Error?e.message:`An error occurred.`})}).finally(()=>o(!1))},children:`Open in ${d}`}):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)(De,{groups:p.length>0?[{value:`project-favicon-files`,label:e.projectName,items:p}]:[],highlightedItemValue:r,isActionsOnly:!1,keybindings:l,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 s;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=fe(r,ce(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)(A,{size:`icon-xs`,variant:`ghost-muted`,"aria-label":`Edit ${e.name}`,disabled:i,onClick:()=>a(e),children:(0,$.jsx)(o,{className:`size-3.5`})})})]})},e.id)},t[6]=i,t[7]=r,t[8]=a,t[9]=e):e=t[9],s=n.map(e),t[1]=i,t[2]=r,t[3]=a,t[4]=n,t[5]=s}else s=t[5];return s}function Ge(e){if(e._tag===`Failure`&&!ne(e)){let t=re(e);B.add({type:`error`,title:`Failed to save project actions`,description:t instanceof Error?t.message:`An error occurred.`})}return M(e,()=>void 0)}function Ke(e){let t=N(),[n,r]=(0,Q.useState)(!1),i=(0,Q.useRef)(!1),a=q(U.updateSettings,`project actions update`),o=q(U.upsertKeybinding,`action shortcut update`),c=q(U.removeKeybinding,`action shortcut removal`);async function l(n,l,u){if(i.current||e.length===0){let e=`No available machine, or another action change is saving.`;return B.add({type:`error`,title:`Actions not saved`,description:e}),T(s(Error(e)))}if(e.some(({environmentId:e})=>!G(e,`settings:write`)))return Ge(T(s(new _({requiredScope:g,message:`This connection cannot change environment settings.`}))));i.current=!0,r(!0);try{for(let{environmentId:r,settings:i,keybindings:s,project:d}of e){let e=d?je(i,d):i.defaultProjectScripts,f=n(e),p=f??i.defaultProjectScripts,m=await a({environmentId:r,input:{patch:d?{projectSettingsOverrides:{[d.id]:f===null?ge(i,d.id,[`defaultProjectScripts`]):{...i.projectSettingsOverrides[d.id],defaultProjectScripts:f}}}:{defaultProjectScripts:f??[]}}});if(m._tag===`Failure`)return Ge(m);let h=l?[l]:e.filter(e=>!p.some(t=>t.id===e.id)).map(e=>e.id);for(let e of h){let n=ce(e),a=Ae(s,n),l=a?Ie({keybinding:a,command:n}):null,p=Ie({keybinding:u,command:n}),m=!f?.some(t=>t.id===e)&&(d&&i.defaultProjectScripts.some(t=>t.id===e)||Object.entries(i.projectSettingsOverrides).some(([t,n])=>t!==d?.id&&n.defaultProjectScripts?.some(t=>t.id===e))||t.some(t=>t.environmentId===r&&t.id!==d?.id&&(d?je(i,t):t.scripts).some(t=>t.id===e))),h=p?await o({environmentId:r,input:l&&l.key!==p.key?{...p,replace:l}:p}):l&&!m?await c({environmentId:r,input:l}):null;if(h?._tag===`Failure`)return Ge(h)}}return E(void 0)}finally{i.current=!1,r(!1)}}function u(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??ue(r.name,i),o=le(a,r);return l(e=>{let t=e.map(e=>e.id===a?o:de(e,r));return n===null?[...t,o]:t},a,r.keybinding)}return{saving:n,persist:l,submit:u}}function qe(){let e=(0,Be.c)(67),{scope:t,targets:n,target:r}=ye(),{environments:i}=ie(),o=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 u=s,d;e[3]===r?.settings.defaultProjectScripts?d=e[4]:(d=r?.settings.defaultProjectScripts??[],e[3]=r?.settings.defaultProjectScripts,e[4]=d);let f=d,p=u?.keybindings??y,g;if(e[5]!==f||e[6]!==n){let t;e[8]===f?t=e[9]:(t=e=>JSON.stringify(e.settings.defaultProjectScripts)!==JSON.stringify(f),e[8]=f,e[9]=t),g=n.some(t),e[5]=f,e[6]=n,e[7]=g}else g=e[7];let _=g,b=xe(),[x,S]=(0,Q.useState)(null),C,T,E;e[10]!==i||e[11]!==o||e[12]!==t.members||e[13]!==n?(C=new Map(o?t.members.map(Ye):[]),T=Ke,E=n.flatMap(e=>{let t=i.find(t=>t.environmentId===e.environmentId);if(!t?.serverConfig)return[];let n=e.projectId?C.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]=o,e[12]=t.members,e[13]=n,e[14]=C,e[15]=T,e[16]=E):(C=e[14],T=e[15],E=e[16]);let{saving:O,persist:k,submit:j}=T(E),M;e[17]!==C||e[18]!==r?(M=r?.projectId?C.get(r.projectId):void 0,e[17]=C,e[18]=r,e[19]=M):M=e[19];let N=M,P;e[20]===N?.environmentId?P=e[21]:(P=N?.environmentId??l.make(`none`),e[20]=N?.environmentId,e[21]=P);let F=Pe(P,N?.workspaceRoot??null),I;if(e[22]!==f||e[23]!==F.scripts){let t;e[25]===f?t=e[26]:(t=e=>!f.some(t=>t.command===e.command||t.name.toLowerCase()===e.name.toLowerCase()),e[25]=f,e[26]=t),I=F.scripts.filter(t),e[22]=f,e[23]=F.scripts,e[24]=I}else I=e[24];let L=I,R;e[27]===j?R=e[28]:(R=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 j(null,t);if(n._tag===`Failure`&&!ne(n)){let e=re(n);S({scriptId:null,initial:t,error:e instanceof Error?e.message:`Failed to import action.`})}},e[27]=j,e[28]=R);let z=R,B;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(B=[`defaultProjectScripts`],e[29]=B):B=e[29];let V;e[30]===k?V=e[31]:(V=()=>void k(Je),e[30]=k,e[31]=V);let H;e[32]!==b||e[33]!==z||e[34]!==L||e[35]!==O?(H=L.length>0?(0,$.jsxs)(a,{children:[(0,$.jsxs)(w,{render:(0,$.jsx)(A,{id:`import-scripts`,size:`xs`,variant:`ghost`,disabled:O||!b,type:`button`}),children:[`Import scripts`,(0,$.jsx)(v,{className:`size-3.5`})]}),(0,$.jsxs)(h,{align:`end`,children:[(0,$.jsxs)(D,{children:[(0,$.jsx)(c,{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)(ee,{}),L.map(e=>(0,$.jsxs)(m,{onClick:()=>void z(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]=b,e[33]=z,e[34]=L,e[35]=O,e[36]=H):H=e[36];let ae=O||!b||n.length===0,U,W;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>S({scriptId:null,initial:Le}),W=(0,$.jsx)(te,{className:`size-3.5`}),e[37]=U,e[38]=W):(U=e[37],W=e[38]);let G;e[39]===ae?G=e[40]:(G=(0,$.jsxs)(A,{size:`xs`,variant:`outline`,disabled:ae,onClick:U,children:[W,`Add action`]}),e[39]=ae,e[40]=G);let K;e[41]!==H||e[42]!==G?(K=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[H,G]}),e[41]=H,e[42]=G,e[43]=K):K=e[43];let q;e[44]!==_||e[45]!==V||e[46]!==K?(q=(0,$.jsx)(Z,{serverScoped:!0,settingKeys:B,mixed:_,title:`Actions`,description:`Commands that run in this project's checkout or its worktree, with optional shortcuts.`,onResetOverride:V,control:K}),e[44]=_,e[45]=V,e[46]=K,e[47]=q):q=e[47];let J;e[48]!==b||e[49]!==p||e[50]!==_||e[51]!==O||e[52]!==f?(J=_?(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:f,keybindings:p,disabled:O||!b,onEdit:e=>S(Me(e,p))}),e[48]=b,e[49]=p,e[50]=_,e[51]=O,e[52]=f,e[53]=J):J=e[53];let Y;e[54]===F.status?Y=e[55]:(Y=F.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]=F.status,e[55]=Y);let X;e[56]!==k||e[57]!==x||e[58]!==f||e[59]!==j||e[60]!==r?(X=r&&(0,$.jsx)(Ne,{environmentId:r.environmentId,editScope:`settings:write`,request:x,scripts:f,onSubmit:j,onDelete:e=>void k(t=>t.filter(t=>t.id!==e),e,null),onClose:()=>S(null)}),e[56]=k,e[57]=x,e[58]=f,e[59]=j,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)(we,{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-CWU1aanN.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,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230])));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=be(),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c={from:`/settings`},t[0]=c):c=t[0];let l=R(c),u;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(u={select:tt},t[1]=u):u=t[1];let d=z(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=R({from:`/settings`}),a=ae(),{environments:o}=ie(),c=(0,Q.useMemo)(()=>new Map(o.map(e=>[e.environmentId,e])),[o]),l=K(e.memberProjects,r),f=e.memberProjects.every(e=>l.has(e.environmentId)),p=e.memberProjects.find(e=>c.get(e.environmentId)?.serverConfig!=null)??e.memberProjects[0],m=I(),h=Te(F.update,{reportFailure:!1}),g=Te(F.delete,{reportFailure:!1}),_=(0,Q.useRef)(!1),v=p.faviconPath??null,y=p.projectIcon??null,S=typeof window<`u`&&e.memberProjects.every(e=>e.environmentId===a&&He(e.workspaceRoot,navigator.platform))?window.desktopBridge?.pickProjectFavicon:void 0,C=(0,Q.useCallback)((e,t)=>{if(t._tag!==`Failure`||ne(t))return;let n=re(t);B.add(J({type:`error`,title:e,description:n instanceof Error?n.message:`An error occurred.`}))},[]),w=(0,Q.useCallback)((e,t)=>{let n=e.find(e=>!G(e.environmentId,r));if(!n)return null;let i=T(s(Error(`This connection cannot change projects in ${n.environmentLabel??`this environment`}.`)));return C(t,i),i},[C]),D=(0,Q.useCallback)(async(t,n)=>{let r=w(e.memberProjects,n);if(r)return r;let i=e.memberProjects.find(e=>{let t=c.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 C(n,t),t}for(let r of e.memberProjects){let i=w([r],n);if(i)return i;let a=M(await h({environmentId:r.environmentId,input:{projectId:r.id,...t}}),()=>void 0);if(a._tag===`Failure`)return C(e.memberProjects.length>1?`${n} on ${r.environmentLabel??`the current environment`}`:n,a),a}return E(void 0)},[w,c,e.memberProjects,C,h]),O=(0,Q.useCallback)(async(t,n)=>{let r=t.trim();if(!r){B.add({type:`warning`,title:`Project title cannot be empty`});return}Xe(e.memberProjects.map(e=>e.title),r,n)&&await D({title:r},`Failed to rename project`)},[e.memberProjects,D]),[ee,te]=x(!f),[N,L]=x(!f),[z,H]=(0,Q.useState)(!1),U=(0,Q.useRef)(!1),W=(0,Q.useCallback)(async e=>{if(!U.current){U.current=!0,H(!0);try{await D(e,`Failed to update project icon`)}finally{U.current=!1,H(!1)}}},[D]),q=e.memberProjects.length>1,Y=(0,Q.useCallback)(async r=>{if(w(r,`Failed to remove project`))return;let a=V();if(!a)return;let o=new Set(r.map(Qe)),s=m.filter(e=>o.has(`${e.environmentId}:${e.projectId}`)),c=r.length===e.memberProjects.length,l=t||!c?`checkout`:`project`,f=r.length===1?r[0]:null,p=f?.title??e.displayName,h=await j(()=>a.dialogs.confirm([s.length>0?`Remove ${l} "${p}" and delete its ${s.length} thread${s.length===1?``:`s`}?`:`Remove ${l} "${p}"?`,...f?[`Path: ${f.workspaceRoot}`,...f.environmentLabel?[`Environment: ${f.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
3
  `),{variant:`destructive`}));if(h._tag===`Failure`||!h.value||w(r,`Failed to remove project`))return;let _=i.getState();for(let e of r){if(w([e],`Failed to remove project`))return;let t=s.filter(t=>t.environmentId===e.environmentId&&t.projectId===e.id),n=M(await g({environmentId:e.environmentId,input:{projectId:e.id,force:!0}}),()=>void 0);if(n._tag===`Failure`){C(`Failed to remove "${e.title}"`,n);return}let r=u(e.environmentId,e.id);await P(r),ke(r,t.map(e=>d(e.environmentId,e.id)));let i=_.getDraftThreadByProjectRef(r);i&&_.clearDraftThread(i.draftId),_.clearProjectDraftThreadId(r)}c&&!t&&n({to:`/`,replace:!0})},[w,g,e.displayName,e.memberProjects.length,t,n,C,m]),X=(0,$.jsx)(we,{title:`Checkouts`,children:e.memberProjects.map(e=>(0,$.jsx)(Z,{title:e.environmentLabel??`Environment`,description:e.workspaceRoot,control:(0,$.jsx)(A,{size:`sm`,variant:`outline`,disabled:!l.has(e.environmentId),onClick:()=>void Y([e]),"aria-label":`Remove checkout ${e.workspaceRoot}`,children:`Remove`})},e.physicalProjectKey))});return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(Se,{className:`gap-6`,children:[(0,$.jsxs)(ve,{variant:`info`,children:[(0,$.jsx)(b,{"aria-hidden":!0}),(0,$.jsx)(_e,{children:`Can't find a setting? Keep this project picked above and hop to any other settings page.`})]}),(0,$.jsxs)(we,{id:`project-overview`,title:`Project`,hideTitle:!0,children:[f?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)(se,{size:`sm`,className:`w-full sm:w-64`,"aria-label":`Project name`,disabled:!f,defaultValue:e.displayName,onChange:()=>{_.current=!0},onBlur:e=>{let t=_.current;_.current=!1,O(e.currentTarget.value,t)},onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur()}},`${e.projectKey}:${e.displayName}`)}),(0,$.jsx)(Z,{title:`Project icon`,description:y?.kind===`lucide`?`${y.name} · ${y.color}`:y?.kind===`monogram`?`${y.text} · ${y.color}`:y?.kind===`emoji`?y.emoji:v??`Automatic`,resetAction:e.memberProjects.some(e=>e.faviconPath!=null||e.projectIcon!=null)?(0,$.jsx)(Ce,{label:`project icon`,disabled:z||!f,onClick:()=>void W({faviconPath:null,projectIcon:null})}):null,control:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(me,{project:p,className:`size-6`}),(0,$.jsx)(A,{size:`sm`,variant:`outline`,type:`button`,"aria-label":`Choose a project icon`,disabled:z||!f,onClick:()=>L(!0),children:`Choose icon`}),(0,$.jsx)(A,{size:`sm`,variant:`outline`,type:`button`,"aria-label":`Choose a project icon file`,disabled:z||!f,onClick:()=>te(!0),children:`Choose file`})]})})]}),(0,$.jsx)(Re,{category:`project`}),(0,$.jsx)(qe,{}),q?X:null,(0,$.jsx)(we,{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)(A,{size:`sm`,variant:`destructive-outline`,disabled:!f,onClick:()=>void Y(e.memberProjects),children:[(0,$.jsx)(k,{}),t?`Remove checkout`:e.memberProjects.length>1?`Remove all entries`:`Remove project`]})})})]}),(0,$.jsx)(Ue,{cwd:p.workspaceRoot,environmentId:p.environmentId,onOpenChange:te,...S?{onPickExternal:()=>S(p.workspaceRoot)}:{},onSelect:e=>void W({faviconPath:e,projectIcon:null}),open:ee&&f,projectName:e.displayName},`${p.environmentId}:${p.workspaceRoot}:${ee}`),N&&f?(0,$.jsx)(Q.Suspense,{fallback:null,children:(0,$.jsx)(Ze,{current:y,projectName:p.title,open:!0,onOpenChange:L,onSelect:e=>void W({faviconPath:null,projectIcon:e})})}):null]})}function rt(){let e=(0,Be.c)(7),{search:t,scope:n}=ye(),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)(Se,{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-Hlmn9qBx.js.map
4
+ //# sourceMappingURL=settings.projects-B9iYESeP.js.map