@p4code/cli 0.8.11 → 0.8.12

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 (212) hide show
  1. package/dist/bin.mjs +1 -1
  2. package/dist/{binCli-DY9l0jFs.mjs → binCli-DUdPoqDO.mjs} +2 -2
  3. package/dist/client/.vite/manifest.json +1286 -1286
  4. package/dist/client/assets/{AuthSurfaceShell-B_P0_qZ6.js → AuthSurfaceShell-TTILQgs8.js} +2 -2
  5. package/dist/client/assets/{ChatGptUsageButton-fMcoYEDa.js → ChatGptUsageButton-BG4sHSE5.js} +2 -2
  6. package/dist/client/assets/{ChatMarkdown-B7b91JUl.js → ChatMarkdown-6z7RF4Ki.js} +4 -4
  7. package/dist/client/assets/{CodexSetupSection.logic-CeUTTu-x.js → CodexSetupSection.logic-CesZU0jj.js} +2 -2
  8. package/dist/client/assets/{CommandBlock-BI3ZCXsB.js → CommandBlock-CgdYijxc.js} +2 -2
  9. package/dist/client/assets/{ComposerPromptEditor-BkRvKIiZ.js → ComposerPromptEditor-5vyHXxd7.js} +4 -4
  10. package/dist/client/assets/{DevicePanel-B_jOvmeL.js → DevicePanel-DQ8cLDHy.js} +2 -2
  11. package/dist/client/assets/{DeviceSetup-BXjqCO_9.js → DeviceSetup-BP4bZJQS.js} +2 -2
  12. package/dist/client/assets/{DiffCommentAnnotation-D_1Iw0oL.js → DiffCommentAnnotation-x4D5cVr3.js} +2 -2
  13. package/dist/client/assets/{DiffFileTree-D6386u9x.js → DiffFileTree-oPb1WMLR.js} +2 -2
  14. package/dist/client/assets/{DiffPanel-D6VVj6BF.js → DiffPanel-FegTwEoZ.js} +2 -2
  15. package/dist/client/assets/{DiffWorkerPoolProvider-Cw5WeG1t.js → DiffWorkerPoolProvider-D2__qhqn.js} +2 -2
  16. package/dist/client/assets/{EmbeddedDesign-Drkomo9K.js → EmbeddedDesign-ClvOPYvI.js} +2 -2
  17. package/dist/client/assets/{FileDiff-FK4mtyx3.js → FileDiff-CrB6gsM6.js} +2 -2
  18. package/dist/client/assets/{FilePreviewPanel-ncsuf7iX.js → FilePreviewPanel-BrfGUkiA.js} +2 -2
  19. package/dist/client/assets/{FoldedSettingsSection-CRlh3-BO.js → FoldedSettingsSection-DGBHqNlE.js} +2 -2
  20. package/dist/client/assets/{NoProjectsHero-8d3l2unf.js → NoProjectsHero-CCYi-y6n.js} +2 -2
  21. package/dist/client/assets/{PanelLayoutControls-3fTyX_SN.js → PanelLayoutControls-CNS9IpqP.js} +4 -4
  22. package/dist/client/assets/{PierreEntryIcon-DtlkLdir.js → PierreEntryIcon-CKjQpgLO.js} +2 -2
  23. package/dist/client/assets/{PreviewPanel-Ca3_DPh_.js → PreviewPanel-CJ81wdo6.js} +2 -2
  24. package/dist/client/assets/{ProjectDefaultsSettings-B--7QlKN.js → ProjectDefaultsSettings-CXY57B72.js} +2 -2
  25. package/dist/client/assets/{ProjectFavicon-YdOZ4g5-.js → ProjectFavicon-fx1QfVoh.js} +3 -3
  26. package/dist/client/assets/{ProjectIconPickerDialog-C23nnU1a.js → ProjectIconPickerDialog-CFdK4dy-.js} +2 -2
  27. package/dist/client/assets/{ProviderAuthTerminal-YztsMr2F.js → ProviderAuthTerminal-B43zNZyt.js} +2 -2
  28. package/dist/client/assets/{ProviderModelPicker-S_tiGeLH.js → ProviderModelPicker-7TESki3o.js} +2 -2
  29. package/dist/client/assets/{ProviderSettingsForm-C3nbCFfS.js → ProviderSettingsForm-DTbceLMt.js} +2 -2
  30. package/dist/client/assets/{PullRequestCodeTab-BdP3_tNe.js → PullRequestCodeTab-ClHfRIZg.js} +2 -2
  31. package/dist/client/assets/{ReadOnlySourcePreview-BNe8pyVf.js → ReadOnlySourcePreview-b2w3OoiX.js} +2 -2
  32. package/dist/client/assets/{RenderErrorBoundary-DEgVmtJL.js → RenderErrorBoundary-Dkgc28VE.js} +2 -2
  33. package/dist/client/assets/{ScheduledTasksSettings-CISo4C7r.js → ScheduledTasksSettings-CEsxWqiH.js} +2 -2
  34. package/dist/client/assets/{ScopedSwitch-eWB5GlaA.js → ScopedSwitch-Bku3NuH1.js} +2 -2
  35. package/dist/client/assets/{SettingsPanels-DA7lXl0N.js → SettingsPanels-BoxSRF3Y.js} +2 -2
  36. package/dist/client/assets/{SettingsPanels.logic-lCZaJhKM.js → SettingsPanels.logic-DIWicQHy.js} +2 -2
  37. package/dist/client/assets/{SettingsScopeNotice-BAtVWG0d.js → SettingsScopeNotice-4PZ3qjUl.js} +2 -2
  38. package/dist/client/assets/{T3ConnectAccountPages-nabxuL18.js → T3ConnectAccountPages-DA0BptAt.js} +2 -2
  39. package/dist/client/assets/{T3ConnectSidebarSignIn-CSVR5Zot.js → T3ConnectSidebarSignIn-B05eHBr6.js} +2 -2
  40. package/dist/client/assets/{ThemeEditorPanel-BMtL4rIt.js → ThemeEditorPanel-DWb0qJem.js} +2 -2
  41. package/dist/client/assets/{ThreadTerminalDrawer-CLfVfvoq.js → ThreadTerminalDrawer-g8xlxRvR.js} +2 -2
  42. package/dist/client/assets/{Virtualizer-Bi8p4Z6E.js → Virtualizer-Cyq5hRoq.js} +2 -2
  43. package/dist/client/assets/{_chat-D-Gcj0-9.js → _chat-BCpoMsA8.js} +5 -5
  44. package/dist/client/assets/{_chat.index-k4jctzPr.js → _chat.index-obkH3dRC.js} +2 -2
  45. package/dist/client/assets/{_chat.new-BlFtqZqt.js → _chat.new-DVE644MB.js} +2 -2
  46. package/dist/client/assets/{_chat.pull-requests-DrLHGpqx.js → _chat.pull-requests-Dl8vaGsi.js} +2 -2
  47. package/dist/client/assets/{abnfDiagram-VCTEODGH-BVKlsgtX.js → abnfDiagram-VCTEODGH-CPHKGdm2.js} +2 -2
  48. package/dist/client/assets/architecture-7GRP2DOG-Dr1CsNUa.js +1 -0
  49. package/dist/client/assets/{architectureDiagram-5GKGNRK7-zBJWGViu.js → architectureDiagram-5GKGNRK7-DZFW2-cw.js} +2 -2
  50. package/dist/client/assets/{assets-BhchpDuq.js → assets-Bv4X710m.js} +2 -2
  51. package/dist/client/assets/{blockDiagram-I7D4REHJ-BdiAAtHi.js → blockDiagram-I7D4REHJ-DmEMRtTm.js} +2 -2
  52. package/dist/client/assets/{browserHistoryStore-CqGVWa5a.js → browserHistoryStore-VpfOHXQM.js} +2 -2
  53. package/dist/client/assets/{browserLinkTarget-CINrbcxi.js → browserLinkTarget-BPuATALO.js} +2 -2
  54. package/dist/client/assets/{c4Diagram-7LVT6UL2-CqnmSo8f.js → c4Diagram-7LVT6UL2-eYwJlimj.js} +2 -2
  55. package/dist/client/assets/channel-DSsQ3W5t.js +2 -0
  56. package/dist/client/assets/{chunk-4HAMMTFA-BpyojyCk.js → chunk-4HAMMTFA-cctCxKWZ.js} +2 -2
  57. package/dist/client/assets/{chunk-75Z2AOVW-LBmwoUvq.js → chunk-75Z2AOVW-yaFLBspz.js} +2 -2
  58. package/dist/client/assets/{chunk-DU6HZSFF-zhv2Vnfx.js → chunk-DU6HZSFF-COvkbqst.js} +2 -2
  59. package/dist/client/assets/{chunk-F27PBJKO-K5uPeDhv.js → chunk-F27PBJKO-BoZkG8KP.js} +2 -2
  60. package/dist/client/assets/{chunk-GMAD6QVW-CAAu3Cn5.js → chunk-GMAD6QVW-D54p8a4L.js} +2 -2
  61. package/dist/client/assets/{chunk-GVQU2GXP-Br_UAx49.js → chunk-GVQU2GXP-CDiM6HNZ.js} +2 -2
  62. package/dist/client/assets/{chunk-IMKFNOWR-Kqfxrrdn.js → chunk-IMKFNOWR-BCKRWLFe.js} +2 -2
  63. package/dist/client/assets/{chunk-L3NEJ4N5-D1cWO7rm.js → chunk-L3NEJ4N5-DFKc7N9P.js} +2 -2
  64. package/dist/client/assets/{chunk-OSK3NFVY-BiMJbcHf.js → chunk-OSK3NFVY-DGczxohY.js} +2 -2
  65. package/dist/client/assets/{chunk-P2QGCYS3-BuGzzo3g.js → chunk-P2QGCYS3-C-hXHVpV.js} +2 -2
  66. package/dist/client/assets/{chunk-POPQ4Y6H-C_w0mNLk.js → chunk-POPQ4Y6H-BMxZmq3k.js} +2 -2
  67. package/dist/client/assets/{chunk-PWAF6VOD-CJFd7LKC.js → chunk-PWAF6VOD-CtRucGgL.js} +2 -2
  68. package/dist/client/assets/{chunk-SHT3W25Y-Beev3ZeU.js → chunk-SHT3W25Y-B5VCRMvd.js} +2 -2
  69. package/dist/client/assets/{chunk-SVP7TREG-BqpBEmtK.js → chunk-SVP7TREG-BpH-ABz6.js} +2 -2
  70. package/dist/client/assets/{chunk-TICWLB2K-B0vIU1Au.js → chunk-TICWLB2K-CTkLpoi-.js} +2 -2
  71. package/dist/client/assets/classDiagram-ZZMXUADV-BBQf0-yA.js +2 -0
  72. package/dist/client/assets/classDiagram-v2-VYDZK3BY-BBQf0-yA.js +2 -0
  73. package/dist/client/assets/{connect-agent-DFwOzcLG.js → connect-agent-CMmb-Zab.js} +2 -2
  74. package/dist/client/assets/{connect-DGwXUKTk.js → connect-liVdG7hL.js} +2 -2
  75. package/dist/client/assets/{cynefin-OW5HDTMX-BjcFswd0.js → cynefin-OW5HDTMX-B4foSkMN.js} +1 -1
  76. package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-BDWLg5Tt.js → cynefinDiagram-5FMLGOSQ-Cq1u5nRd.js} +2 -2
  77. package/dist/client/assets/{dagre-GXQ25YYZ-DZpVjkDw.js → dagre-GXQ25YYZ-BnWkCI00.js} +2 -2
  78. package/dist/client/assets/{device-BEgZIK7u.js → device-DLB3WAXi.js} +2 -2
  79. package/dist/client/assets/{diagram-S7CK7UJ4-BpVs-kYJ.js → diagram-S7CK7UJ4-Bk90dFWN.js} +2 -2
  80. package/dist/client/assets/{diagram-UQ7AKVKN-EN7yKI08.js → diagram-UQ7AKVKN-Dh52RrnP.js} +2 -2
  81. package/dist/client/assets/{diagram-VSXAHHWV-B2oljv94.js → diagram-VSXAHHWV-uV_w7lVo.js} +2 -2
  82. package/dist/client/assets/{diagram-VX7I27RA-BIl0lJ6d.js → diagram-VX7I27RA-DL1AuClH.js} +2 -2
  83. package/dist/client/assets/{diagram-Z3DM3KII-B8uoK-O5.js → diagram-Z3DM3KII-B5dyOgFp.js} +2 -2
  84. package/dist/client/assets/{diffRendering-DeZLcalP.js → diffRendering-DHxotmCj.js} +2 -2
  85. package/dist/client/assets/{dist-Bd1WIVAz.js → dist-DtZBcVS4.js} +2 -2
  86. package/dist/client/assets/{duoViewer-BZ7rNqkx.js → duoViewer-zxcLfYBx.js} +2 -2
  87. package/dist/client/assets/{dynamic-BMz3CcWG.js → dynamic-6kg5nPKs.js} +2 -2
  88. package/dist/client/assets/{ebnfDiagram-PWID7BFC-BQcQotuk.js → ebnfDiagram-PWID7BFC-1CxZtGTD.js} +2 -2
  89. package/dist/client/assets/{embeddedScripts-Cek5ppgQ.js → embeddedScripts-DYX91Iqp.js} +2 -2
  90. package/dist/client/assets/{entities-DPIZFvN7.js → entities-ed9IspYf.js} +2 -2
  91. package/dist/client/assets/{environments-Dm2_6Uan.js → environments-C3ohMa2W.js} +2 -2
  92. package/dist/client/assets/{erDiagram-RLTQ6QDP-Y5XhNz9b.js → erDiagram-RLTQ6QDP-CsGV-1_T.js} +2 -2
  93. package/dist/client/assets/eventmodeling-NTZA5JFV-Ji6bAwP8.js +1 -0
  94. package/dist/client/assets/{fileLinks-1xYacDKI.js → fileLinks-Dm5o4ow4.js} +2 -2
  95. package/dist/client/assets/{fileTreeExpansion-B24BhRqA.js → fileTreeExpansion-C8bS7Zih.js} +2 -2
  96. package/dist/client/assets/flowDiagram-HODETNUW-AAO2RT67.js +1 -0
  97. package/dist/client/assets/{ganttDiagram-EL5Y4UJY-DqWb0OUJ.js → ganttDiagram-EL5Y4UJY-DPJOvh4Y.js} +2 -2
  98. package/dist/client/assets/{getDiffFileInput-CCYVAWRm.js → getDiffFileInput-Dl5o7z9L.js} +2 -2
  99. package/dist/client/assets/{gitGraph-4MIJSDKK-5lcY1dZk.js → gitGraph-4MIJSDKK-BZfRHVrB.js} +1 -1
  100. package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-BJKz_rGI.js → gitGraphDiagram-WWUBYQGX-DAAU0j3h.js} +2 -2
  101. package/dist/client/assets/{guideRunStore-BhlldU3q.js → guideRunStore-CEASlKCi.js} +2 -2
  102. package/dist/client/assets/{index-Dc7GC03y.js → index-B_GLtP0M.js} +3 -3
  103. package/dist/client/assets/{info-A6RAGUB7-BWnMlmF7.js → info-A6RAGUB7-ycVybacD.js} +1 -1
  104. package/dist/client/assets/{infoDiagram-27XIBGKW-DKW68xDy.js → infoDiagram-27XIBGKW-oqlTnqq9.js} +2 -2
  105. package/dist/client/assets/{ishikawaDiagram-5VMMS53U-dRMCvDN0.js → ishikawaDiagram-5VMMS53U-BUi7N4un.js} +2 -2
  106. package/dist/client/assets/{journeyDiagram-3NMN7TZE-CAxCpgF5.js → journeyDiagram-3NMN7TZE-B2J9IlBm.js} +2 -2
  107. package/dist/client/assets/{kanban-definition-UXKFOSKX-BaSkJW47.js → kanban-definition-UXKFOSKX-49qHmkgE.js} +2 -2
  108. package/dist/client/assets/{line-B59oA22i.js → line-C5HQ6j78.js} +2 -2
  109. package/dist/client/assets/{linkedPrompt-Cqfqh2Aq.js → linkedPrompt-FeVRd-O-.js} +2 -2
  110. package/dist/client/assets/{main-Ch-SjebX.css → main-CuoFsMGE.css} +1 -1
  111. package/dist/client/assets/{main-CxOeqlhD.js → main-DUXMPAgZ.js} +19 -19
  112. package/dist/client/assets/{mediaReference-DRC-8GdL.js → mediaReference-ltmoE8jM.js} +2 -2
  113. package/dist/client/assets/{mediaSource-DWSwwPfV.js → mediaSource-CMMCxBE2.js} +2 -2
  114. package/dist/client/assets/{mermaid-parser.core-DcamukpZ.js → mermaid-parser.core-CrL8urD6.js} +4 -4
  115. package/dist/client/assets/{mermaid.core-C6GXL70P.js → mermaid.core-P-NUuG-D.js} +5 -5
  116. package/dist/client/assets/{mindmap-definition-YA3MSWOX-CEVz3xGI.js → mindmap-definition-YA3MSWOX-CIwOTWEt.js} +2 -2
  117. package/dist/client/assets/{onboarding-CLIRA2Sa.js → onboarding-BU1V8wHr.js} +2 -2
  118. package/dist/client/assets/{openFileInPreview-uS9Qgrru.js → openFileInPreview-DHDgTtRZ.js} +2 -2
  119. package/dist/client/assets/{p4ProjectFile-CIYnqKbl.js → p4ProjectFile-D9Mx0dmO.js} +2 -2
  120. package/dist/client/assets/{packet-AYTQ26CC-B9XAEihD.js → packet-AYTQ26CC-Dx1MWiCF.js} +1 -1
  121. package/dist/client/assets/{pair-DTfs9_4K.js → pair-Cu7mXLMq.js} +2 -2
  122. package/dist/client/assets/{pegDiagram-XKGWAZYB-tcLsMhrs.js → pegDiagram-XKGWAZYB-6LaNggoU.js} +2 -2
  123. package/dist/client/assets/{phoneViewer-wYjPQP4U.js → phoneViewer-DxbJZZ1_.js} +2 -2
  124. package/dist/client/assets/{pie-WAS4IAKB-B3ig0TFp.js → pie-WAS4IAKB-BHElrMQ0.js} +1 -1
  125. package/dist/client/assets/{pieDiagram-E7YTZNPT-uaJgfQOp.js → pieDiagram-E7YTZNPT-BZ-KGbt4.js} +2 -2
  126. package/dist/client/assets/{pierre-icons-Dav7jMBk.js → pierre-icons-BoPbdUrw.js} +2 -2
  127. package/dist/client/assets/{preview-C4lGbDhm.js → preview-Bdfy10VL.js} +2 -2
  128. package/dist/client/assets/{primary-CRkgnOCY.js → primary-Ce2kT30K.js} +2 -2
  129. package/dist/client/assets/{primaryCloudLinkState-B_VNTJYL.js → primaryCloudLinkState-Do0JJRXu.js} +2 -2
  130. package/dist/client/assets/{projectFilesQueryState-U08pztRu.js → projectFilesQueryState-CRMf46rk.js} +2 -2
  131. package/dist/client/assets/{projectScriptEditor-D8mxKLOb.js → projectScriptEditor-BCJfjG7L.js} +2 -2
  132. package/dist/client/assets/{providerSkills-C7CtJefh.js → providerSkills-CKg8n_Pc.js} +2 -2
  133. package/dist/client/assets/{pullRequestDetail.logic-DGX-Sd8d.js → pullRequestDetail.logic-rvhEbiFP.js} +2 -2
  134. package/dist/client/assets/{pullRequests-BbD7hNlR.js → pullRequests-DJrYzynz.js} +2 -2
  135. package/dist/client/assets/{quadrantDiagram-AXDQQJYC-BOFUpnyi.js → quadrantDiagram-AXDQQJYC-CvnGxXew.js} +2 -2
  136. package/dist/client/assets/{queries-BVPZtaQA.js → queries-p9BAZLb-.js} +2 -2
  137. package/dist/client/assets/{radar-RG4KPBEZ--djmIj49.js → radar-RG4KPBEZ-BrffrDRx.js} +1 -1
  138. package/dist/client/assets/{railroad-74A4TZTK-DMMw049f.js → railroad-74A4TZTK-B3VSFrGQ.js} +1 -1
  139. package/dist/client/assets/railroad-abnf-HS5TGJTU-BS7JDegU.js +1 -0
  140. package/dist/client/assets/railroad-ebnf-LZEXJU2U-PJ7TdaXJ.js +1 -0
  141. package/dist/client/assets/railroad-peg-WCYAUIDC-BnDwBnfu.js +1 -0
  142. package/dist/client/assets/{railroadDiagram-O6MQD6OU-Df9rhhFk.js → railroadDiagram-O6MQD6OU-BbIi-aIS.js} +2 -2
  143. package/dist/client/assets/{renderScheduler-b0pOdWwc.js → renderScheduler-B_XMfDdk.js} +2 -2
  144. package/dist/client/assets/{requirementDiagram-BXWQKSXE-BtGYMd7U.js → requirementDiagram-BXWQKSXE-BcjJ0oP9.js} +2 -2
  145. package/dist/client/assets/{runtime-DZfpb67Q.js → runtime-AivVP3k8.js} +3 -3
  146. package/dist/client/assets/{runtime-Bc4kgQim.js → runtime-BfjHqyQH.js} +2 -2
  147. package/dist/client/assets/{sankeyDiagram-P5KCCOFB-D7_y-s_u.js → sankeyDiagram-P5KCCOFB-DmFJ2EWh.js} +2 -2
  148. package/dist/client/assets/{scheduledTasksSettings.logic-CvvQA-b7.js → scheduledTasksSettings.logic-BYBxTiFF.js} +2 -2
  149. package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-AuXrX-b5.js → sequenceDiagram-WJ2MYXX4-D8YdQDYA.js} +2 -2
  150. package/dist/client/assets/{server-LJ0-FVGH.js → server-BC4-DXjw.js} +2 -2
  151. package/dist/client/assets/{session-Bc1P10r_.js → session-CLz6NCKX.js} +2 -2
  152. package/dist/client/assets/{session-logic-BNtU33qU.js → session-logic-CD6ctino.js} +2 -2
  153. package/dist/client/assets/{settings-CZSrxmjf.js → settings-Swwhfgp0.js} +2 -2
  154. package/dist/client/assets/{settings.appearance-B_LipS5_.js → settings.appearance-BSzr_T9U.js} +2 -2
  155. package/dist/client/assets/settings.archived-BoCdDvJy.js +2 -0
  156. package/dist/client/assets/{settings.computer-use-BAzpb53_.js → settings.computer-use-nLbSQfdv.js} +2 -2
  157. package/dist/client/assets/{settings.connections-Bv37N8Tm.js → settings.connections-C4NVZA2N.js} +2 -2
  158. package/dist/client/assets/{settings.data-controls-DIkcwUy1.js → settings.data-controls-BZsALFNW.js} +2 -2
  159. package/dist/client/assets/{settings.decisions-BN9ozN_A.js → settings.decisions-ewNyURd9.js} +2 -2
  160. package/dist/client/assets/{settings.diagnostics-DuoGRNGf.js → settings.diagnostics-DD8ubhwU.js} +2 -2
  161. package/dist/client/assets/{settings.general-B-Bt2-nG.js → settings.general-CtzJh4Rx.js} +2 -2
  162. package/dist/client/assets/{settings.integrations-CT3opViE.js → settings.integrations-Cra2dW7z.js} +2 -2
  163. package/dist/client/assets/{settings.keybindings-BBTkicWk.js → settings.keybindings-TlPhoEQg.js} +2 -2
  164. package/dist/client/assets/{settings.open-source-licenses-C_hoYTwe.js → settings.open-source-licenses-B-yrCrWG.js} +2 -2
  165. package/dist/client/assets/{settings.plugins-DafKnC5Q.js → settings.plugins-imKgCVn_.js} +2 -2
  166. package/dist/client/assets/{settings.projects-r2ZcxKud.js → settings.projects-tzSgXlw4.js} +3 -3
  167. package/dist/client/assets/{settings.providers-jbZijXPV.js → settings.providers-CJMKBwGi.js} +3 -3
  168. package/dist/client/assets/{settings.scheduled-tasks-C0d4wkYE.js → settings.scheduled-tasks-CsxzXKIe.js} +2 -2
  169. package/dist/client/assets/{settings.snap-shot-D-zJVnjT.js → settings.snap-shot-DjahqLFc.js} +2 -2
  170. package/dist/client/assets/{settings.source-control-DIU1xRUy.js → settings.source-control-2ejyJuaq.js} +2 -2
  171. package/dist/client/assets/{settings.storage-DRxTKEjG.js → settings.storage-CWhyfrpB.js} +2 -2
  172. package/dist/client/assets/{settingsLayout-Cbpy7Mfz.js → settingsLayout-D-5E1K-3.js} +2 -2
  173. package/dist/client/assets/{sidebarProjectGrouping-DXnDcqLY.js → sidebarProjectGrouping-D1iMa8Uh.js} +2 -2
  174. package/dist/client/assets/{sortable.esm-Boen_E7K.js → sortable.esm-By3lSBxO.js} +2 -2
  175. package/dist/client/assets/{sourceControl-DE9QO1yg.js → sourceControl-mPa5Da0-.js} +2 -2
  176. package/dist/client/assets/{stateDiagram-D77RDMKH-EwB2WAAm.js → stateDiagram-D77RDMKH-DoURp1ek.js} +2 -2
  177. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-D7St643I.js +2 -0
  178. package/dist/client/assets/{swimlanes-42K2YHIH-RngRFsjR.js → swimlanes-42K2YHIH-CnIKMVp7.js} +2 -2
  179. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-D5SXc1iu.js +9 -0
  180. package/dist/client/assets/{terminalSessions-Cj-MqjH8.js → terminalSessions-5_U2zswb.js} +2 -2
  181. package/dist/client/assets/{threadSort-DD61dseb.js → threadSort-CGw2yc3P.js} +2 -2
  182. package/dist/client/assets/{timeline-definition-24CTP7MA-BfIggpP3.js → timeline-definition-24CTP7MA-Bb4-XE1H.js} +2 -2
  183. package/dist/client/assets/{toast-DYfY2t_z.js → toast-BYGWNQVa.js} +2 -2
  184. package/dist/client/assets/{treeView-Q6P3EWNA-BjKaOr9u.js → treeView-Q6P3EWNA-m0IX4uRr.js} +1 -1
  185. package/dist/client/assets/{treemap-WGGIJYW6-ffFPsmk1.js → treemap-WGGIJYW6-DjF5oRc6.js} +1 -1
  186. package/dist/client/assets/{usage-CRK5JZJm.js → usage-DozNd-7N.js} +2 -2
  187. package/dist/client/assets/{use-atom-command-Dz_yqN35.js → use-atom-command-BEC7Dpf5.js} +2 -2
  188. package/dist/client/assets/{useHandleNewThread-DjevdE0U.js → useHandleNewThread-B6GE4-lt.js} +2 -2
  189. package/dist/client/assets/{usePullRequestActions-BKpChcp1.js → usePullRequestActions-C9Nx99x7.js} +2 -2
  190. package/dist/client/assets/{useScopedModelAvailability-mUid6EfJ.js → useScopedModelAvailability-Bx5MEwNY.js} +2 -2
  191. package/dist/client/assets/{useSettings-DCI8Hv09.js → useSettings-CbuRZg7F.js} +2 -2
  192. package/dist/client/assets/{useT3ConnectAuthPrompt-C7Dm8xCm.js → useT3ConnectAuthPrompt-B9-kgi3N.js} +2 -2
  193. package/dist/client/assets/{vcsRefInvalidation-3pHpDJC2.js → vcsRefInvalidation-Dkz0bLCm.js} +2 -2
  194. package/dist/client/assets/{vennDiagram-4TSXK5OY-Bw5_1h9Y.js → vennDiagram-4TSXK5OY-CCjFehou.js} +2 -2
  195. package/dist/client/assets/{wardley-WFR3VGLG-BzzHb86M.js → wardley-WFR3VGLG-C8OgmKG3.js} +1 -1
  196. package/dist/client/assets/{wardleyDiagram-VM6X3IG4-RCSx0hV5.js → wardleyDiagram-VM6X3IG4-aAotQeyV.js} +2 -2
  197. package/dist/client/assets/{welcome-RXSMyzlx.js → welcome-DgOu9i5m.js} +2 -2
  198. package/dist/client/assets/{xychartDiagram-S5SC5T6Z-CcISZM46.js → xychartDiagram-S5SC5T6Z-B6Gl2NIG.js} +2 -2
  199. package/dist/client/index.html +1 -1
  200. package/package.json +1 -1
  201. package/dist/client/assets/architecture-7GRP2DOG-BNBr3Sao.js +0 -1
  202. package/dist/client/assets/channel-CfHDq-fp.js +0 -2
  203. package/dist/client/assets/classDiagram-ZZMXUADV-Cm99q1tS.js +0 -2
  204. package/dist/client/assets/classDiagram-v2-VYDZK3BY-Cm99q1tS.js +0 -2
  205. package/dist/client/assets/eventmodeling-NTZA5JFV-B7plRWX7.js +0 -1
  206. package/dist/client/assets/flowDiagram-HODETNUW-BEpQPBfI.js +0 -1
  207. package/dist/client/assets/railroad-abnf-HS5TGJTU-BJdCwb3O.js +0 -1
  208. package/dist/client/assets/railroad-ebnf-LZEXJU2U-a9vhoAEG.js +0 -1
  209. package/dist/client/assets/railroad-peg-WCYAUIDC-Cyo-vXW_.js +0 -1
  210. package/dist/client/assets/settings.archived-B_h3CK_T.js +0 -2
  211. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-CcnJHQ4a.js +0 -2
  212. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-CrkPrysy.js +0 -9
@@ -1,5 +1,5 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{r as t}from"./Icon-l19w4AjM.js";import{$g as n,Cm as r,Gn as i,Hp as a,Jp as o,Ku as s,Lp as c,ME as l,MT as u,Np as d,Pp as f,Qg as p,Qp as m,Ss as h,Xg as g,Yg as _,Yn as v,Yo as y,Zg as b,Zn as x,cE as S,e_ as C,gd as w,kw as T,l as E,od as D,or as O,rb as k,sr as A,t as j,t_ as M,up as N}from"./utils-CRwA5SKO.js";import{n as P}from"./ChatMarkdown-B7b91JUl.js";import{a as F,c as I,o as L,s as ee,t as te}from"./select-BQxcmO_1.js";import{t as R}from"./useLocation-UcmQE5FC.js";import{p as z}from"./toast-DYfY2t_z.js";import{a as B,n as V,t as H}from"./tooltip-924Ikq0L.js";import{n as U}from"./environments-Dm2_6Uan.js";import{f as W}from"./server-LJ0-FVGH.js";import{t as G}from"./use-atom-command-Dz_yqN35.js";import{s as K,u as ne}from"./providerSkills-C7CtJefh.js";import{t as re}from"./skeleton-oZHFXSZp.js";import{t as ie}from"./textarea-B8WPFAr0.js";import{n as ae,t as oe}from"./toggle-group-RZD18_sD.js";import{t as q}from"./input-DhWmPSxf.js";import{c as se,r as ce,s as J,t as le}from"./dialog-x5a5g_fa.js";import{i as ue,o as de,r as fe,t as pe}from"./empty-C-FrtXzi.js";import{n as me,r as he,t as ge}from"./input-group-D4qHaxH8.js";import{a as _e}from"./projectFilesQueryState-U08pztRu.js";import{B as ve,P as ye,U as be,a as xe,i as Se,s as Ce}from"./settingsLayout-Cbpy7Mfz.js";import{Ar as we,Fr as Te,Ir as Ee,La as De,Mr as Oe,Ni as ke,Nr as Ae,Pr as je,ir as Me,jr as Ne}from"./main-CxOeqlhD.js";import{t as Pe}from"./SecretInput-D0DyMDSw.js";var Y=l(),Fe={spawn:`Failed to start`,timeout:`Timed out`,protocol:`Not an MCP server`,http:`Can't connect`,auth:`Credentials rejected`};function Ie(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:Fe[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 Le(e){let t=e.transport;if(t.type===`http`)try{let e=new URL(t.url);return`Remote · ${e.host}${e.pathname===`/`?``:e.pathname}`}catch{return`Remote`}return[t.command,...t.args].join(` `)}var X=e(t(),1),Z=e(S(),1);function Re({environmentId:e,plugin:t,enabled:n,disabled:r,onDetails:a,onToggle:o}){let s=y(_e(e,t.path,`.claude-plugin/plugin.json`)),l=u(h(s)),d,f;try{let e=l&&!l.truncated?JSON.parse(l.contents):null;if(typeof e==`object`&&e&&(`description`in e&&typeof e.description==`string`&&(d=e.description),`author`in e)){let t=e.author;typeof t==`string`?f=t:typeof t==`object`&&t&&`name`in t&&typeof t.name==`string`&&(f=t.name)}}catch{}let p=ne(e);return(0,Z.jsxs)(`li`,{className:`flex items-center gap-4 py-4`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`flex size-10 shrink-0 items-center justify-center rounded-xl border border-border/60 bg-muted`,children:(0,Z.jsx)(c,{className:`size-5 text-muted-foreground`})}),(0,Z.jsxs)(`div`,{className:`grid min-w-0 flex-1 gap-1`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2`,children:[(0,Z.jsx)(`span`,{className:`break-words text-sm font-medium`,children:t.name}),f?(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:f}):null]}),(0,Z.jsx)(`p`,{className:`break-words text-xs text-muted-foreground`,children:d??`Local Claude plugin`})]}),(0,Z.jsxs)(i,{children:[(0,Z.jsxs)(H,{children:[(0,Z.jsx)(B,{render:(0,Z.jsx)(O,{render:(0,Z.jsx)(A,{variant:`ghost`,size:`icon-sm`,"aria-label":`More for ${t.name}`,children:(0,Z.jsx)(N,{"aria-hidden":!0})})})}),(0,Z.jsx)(V,{children:`Plugin actions`})]}),(0,Z.jsxs)(x,{align:`end`,children:[p.capabilities.canOpenDefault?(0,Z.jsx)(v,{onClick:()=>void p.activate(`open`,{environmentId:e,filePath:t.path,workspaceRoot:void 0}),children:`Open`}):null,(0,Z.jsx)(v,{onClick:a,children:`Details`})]})]}),(0,Z.jsx)(De,{"aria-label":`Load ${t.name}`,checked:n,disabled:r,onCheckedChange:o})]})}var ze=[`Personal`,`Built-in`,`Project`,`Plugins`,`Other`];function Be(e){switch(K(e)){case`personal`:return`Personal`;case`system`:return`Built-in`;case`repo`:case`project`:return`Project`;case`app`:return`Plugins`;default:return`Other`}}var Ve=[[`codex`,`Codex`],[`claudeAgent`,`Claude`],[`cursor`,`Cursor`],[`grok`,`Grok`],[`antigravity`,`Antigravity`],[`opencode`,`OpenCode`],[`muse`,`Muse`],[`pi`,`Pi`]],He={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 Q(e){return Ve.map(([t,n])=>{let r=p(t,e.transport),i=M.make(t);return{driver:i,label:n,enabled:r.supported&&!e.disabledProviders.includes(i),...r.supported?{}:{unsupported:He[r.reason]}}})}var Ue={name:``,type:`stdio`,command:``,args:``,cwd:``,url:``,auth:`none`,values:[]};function We(e){let t=e.transport;return t.type===`stdio`?{...Ue,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{$g as n,Cm as r,Gn as i,Hp as a,Jp as o,Ku as s,Lp as c,ME as l,MT as u,Np as d,Pp as f,Qg as p,Qp as m,Ss as h,Xg as g,Yg as _,Yn as v,Yo as y,Zg as b,Zn as x,cE as S,e_ as C,gd as w,kw as T,l as E,od as D,or as O,rb as k,sr as A,t as j,t_ as M,up as N}from"./utils-CRwA5SKO.js";import{n as P}from"./ChatMarkdown-6z7RF4Ki.js";import{a as F,c as I,o as L,s as ee,t as te}from"./select-BQxcmO_1.js";import{t as R}from"./useLocation-UcmQE5FC.js";import{p as z}from"./toast-BYGWNQVa.js";import{a as B,n as V,t as H}from"./tooltip-924Ikq0L.js";import{n as U}from"./environments-C3ohMa2W.js";import{f as W}from"./server-BC4-DXjw.js";import{t as G}from"./use-atom-command-BEC7Dpf5.js";import{s as K,u as ne}from"./providerSkills-CKg8n_Pc.js";import{t as re}from"./skeleton-oZHFXSZp.js";import{t as ie}from"./textarea-B8WPFAr0.js";import{n as ae,t as oe}from"./toggle-group-RZD18_sD.js";import{t as q}from"./input-DhWmPSxf.js";import{c as se,r as ce,s as J,t as le}from"./dialog-x5a5g_fa.js";import{i as ue,o as de,r as fe,t as pe}from"./empty-C-FrtXzi.js";import{n as me,r as he,t as ge}from"./input-group-D4qHaxH8.js";import{a as _e}from"./projectFilesQueryState-CRMf46rk.js";import{B as ve,P as ye,U as be,a as xe,i as Se,s as Ce}from"./settingsLayout-D-5E1K-3.js";import{Ar as we,Fr as Te,Ir as Ee,La as De,Mr as Oe,Ni as ke,Nr as Ae,Pr as je,ir as Me,jr as Ne}from"./main-DUXMPAgZ.js";import{t as Pe}from"./SecretInput-D0DyMDSw.js";var Y=l(),Fe={spawn:`Failed to start`,timeout:`Timed out`,protocol:`Not an MCP server`,http:`Can't connect`,auth:`Credentials rejected`};function Ie(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:Fe[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 Le(e){let t=e.transport;if(t.type===`http`)try{let e=new URL(t.url);return`Remote · ${e.host}${e.pathname===`/`?``:e.pathname}`}catch{return`Remote`}return[t.command,...t.args].join(` `)}var X=e(t(),1),Z=e(S(),1);function Re({environmentId:e,plugin:t,enabled:n,disabled:r,onDetails:a,onToggle:o}){let s=y(_e(e,t.path,`.claude-plugin/plugin.json`)),l=u(h(s)),d,f;try{let e=l&&!l.truncated?JSON.parse(l.contents):null;if(typeof e==`object`&&e&&(`description`in e&&typeof e.description==`string`&&(d=e.description),`author`in e)){let t=e.author;typeof t==`string`?f=t:typeof t==`object`&&t&&`name`in t&&typeof t.name==`string`&&(f=t.name)}}catch{}let p=ne(e);return(0,Z.jsxs)(`li`,{className:`flex items-center gap-4 py-4`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`flex size-10 shrink-0 items-center justify-center rounded-xl border border-border/60 bg-muted`,children:(0,Z.jsx)(c,{className:`size-5 text-muted-foreground`})}),(0,Z.jsxs)(`div`,{className:`grid min-w-0 flex-1 gap-1`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2`,children:[(0,Z.jsx)(`span`,{className:`break-words text-sm font-medium`,children:t.name}),f?(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:f}):null]}),(0,Z.jsx)(`p`,{className:`break-words text-xs text-muted-foreground`,children:d??`Local Claude plugin`})]}),(0,Z.jsxs)(i,{children:[(0,Z.jsxs)(H,{children:[(0,Z.jsx)(B,{render:(0,Z.jsx)(O,{render:(0,Z.jsx)(A,{variant:`ghost`,size:`icon-sm`,"aria-label":`More for ${t.name}`,children:(0,Z.jsx)(N,{"aria-hidden":!0})})})}),(0,Z.jsx)(V,{children:`Plugin actions`})]}),(0,Z.jsxs)(x,{align:`end`,children:[p.capabilities.canOpenDefault?(0,Z.jsx)(v,{onClick:()=>void p.activate(`open`,{environmentId:e,filePath:t.path,workspaceRoot:void 0}),children:`Open`}):null,(0,Z.jsx)(v,{onClick:a,children:`Details`})]})]}),(0,Z.jsx)(De,{"aria-label":`Load ${t.name}`,checked:n,disabled:r,onCheckedChange:o})]})}var ze=[`Personal`,`Built-in`,`Project`,`Plugins`,`Other`];function Be(e){switch(K(e)){case`personal`:return`Personal`;case`system`:return`Built-in`;case`repo`:case`project`:return`Project`;case`app`:return`Plugins`;default:return`Other`}}var Ve=[[`codex`,`Codex`],[`claudeAgent`,`Claude`],[`cursor`,`Cursor`],[`grok`,`Grok`],[`antigravity`,`Antigravity`],[`opencode`,`OpenCode`],[`muse`,`Muse`],[`pi`,`Pi`]],He={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 Q(e){return Ve.map(([t,n])=>{let r=p(t,e.transport),i=M.make(t);return{driver:i,label:n,enabled:r.supported&&!e.disabledProviders.includes(i),...r.supported?{}:{unsupported:He[r.reason]}}})}var Ue={name:``,type:`stdio`,command:``,args:``,cwd:``,url:``,auth:`none`,values:[]};function We(e){let t=e.transport;return t.type===`stdio`?{...Ue,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}))}:{...Ue,name:e.name,type:`http`,url:t.url,auth:t.auth,values:Object.entries(t.headers).map(([e,t])=>({key:e,value:t}))}}var Ge=/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/;function Ke(e,t){let n=e.name.trim();if(!n)return`Enter a name.`;if(!Ge.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 qe(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 Je(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)=>Ye(e.skill).localeCompare(Ye(t.skill)))}var Ye=e=>e.displayName??e.name.split(/[-_\s]+/).filter(e=>e.length>0).map(e=>e[0].toUpperCase()+e.slice(1)).join(` `);function Xe(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 Ze(e){let t=/^---\r?\n[\s\S]*?\r?\n---\r?\n?/.exec(e);return(t===null?e:e.slice(t[0].length)).trimStart()}function Qe(e){let t=(0,Y.c)(14),{title:n,onBack:i,onUninstall:a,children:o}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Z.jsx)(s,{"aria-hidden":!0}),t[0]=c):c=t[0];let l;t[1]===i?l=t[2]:(l=(0,Z.jsxs)(A,{size:`xs`,variant:`ghost`,className:`w-fit`,onClick:i,children:[c,`Back`]}),t[1]=i,t[2]=l);let u;t[3]===n?u=t[4]:(u=(0,Z.jsx)(`h2`,{className:`min-w-0 truncate text-xl font-semibold text-foreground`,children:n}),t[3]=n,t[4]=u);let d;t[5]===a?d=t[6]:(d=a?(0,Z.jsxs)(A,{size:`sm`,variant:`destructive-outline`,onClick:a,children:[(0,Z.jsx)(r,{"aria-hidden":!0}),`Uninstall`]}):null,t[5]=a,t[6]=d);let f;t[7]!==u||t[8]!==d?(f=(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[u,d]}),t[7]=u,t[8]=d,t[9]=f):f=t[9];let p;return t[10]!==o||t[11]!==l||t[12]!==f?(p=(0,Z.jsxs)(`div`,{className:`grid gap-6`,children:[l,f,o]}),t[10]=o,t[11]=l,t[12]=f,t[13]=p):p=t[13],p}function $(e){let t=(0,Y.c)(6),{label:n,htmlFor:r,children:i}=e,a;t[0]!==r||t[1]!==n?(a=(0,Z.jsx)(ke,{htmlFor:r,children:n}),t[0]=r,t[1]=n,t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==a?(o=(0,Z.jsxs)(`div`,{className:`grid gap-2 px-4 py-4`,children:[a,i]}),t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function $e(e){let t=(0,Y.c)(69),{server:n,takenNames:i,onSave:a}=e,o;t[0]===n?o=t[1]:(o=n===void 0?Ue:We(n),t[0]=n,t[1]=o);let s=o,[c,l]=(0,X.useState)(s),u;t[2]===s?u=t[3]:(u=JSON.stringify(s),t[2]=s,t[3]=u);let d=u,[p,m]=(0,X.useState)(d);d!==p&&(m(d),l(s));let h;t[4]!==c||t[5]!==i?(h=Ke(c,i),t[4]=c,t[5]=i,t[6]=h):h=t[6];let g=h,_;t[7]===c?_=t[8]:(_=JSON.stringify(c),t[7]=c,t[8]=_);let v=_!==d,y;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>l(t=>({...t,...e})),t[9]=y):y=t[9];let b=y,x=c.type===`stdio`?`Environment variables`:`Headers`,S;t[10]===c.values?S=t[11]:(S=(e,t)=>b({values:c.values.map((n,r)=>r===e?{...n,...t}:n)}),t[10]=c.values,t[11]=S);let C=S,w;t[12]!==v||t[13]!==c||t[14]!==a||t[15]!==g||t[16]!==n?(w=e=>{e.preventDefault(),v&&g===void 0&&a(qe(c,n))},t[12]=v,t[13]=c,t[14]=a,t[15]=g,t[16]=n,t[17]=w):w=t[17];let T;t[18]===n?T=t[19]:(T=n===void 0?null:(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`To switch between a command and a URL, uninstall the server and add it again.`}),t[18]=n,t[19]=T);let E;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(E=e=>b({name:e.target.value}),t[20]=E):E=t[20];let D;t[21]===c.name?D=t[22]:(D=(0,Z.jsx)($,{label:`Name`,htmlFor:`mcp-server-name`,children:(0,Z.jsx)(q,{id:`mcp-server-name`,placeholder:`github`,value:c.name,onChange:E})}),t[21]=c.name,t[22]=D);let O;t[23]!==c.type||t[24]!==n?(O=n===void 0?(0,Z.jsx)($,{label:`Type`,children:(0,Z.jsxs)(ae,{"aria-label":`How P4 Code reaches the server`,value:[c.type],onValueChange:e=>{let t=e[0];(t===`stdio`||t===`http`)&&b({type:t,values:[]})},children:[(0,Z.jsx)(oe,{value:`stdio`,children:`Command`}),(0,Z.jsx)(oe,{value:`http`,children:`URL`})]})}):null,t[23]=c.type,t[24]=n,t[25]=O):O=t[25];let k;t[26]!==c.args||t[27]!==c.auth||t[28]!==c.command||t[29]!==c.cwd||t[30]!==c.type||t[31]!==c.url?(k=c.type===`stdio`?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)($,{label:`Command`,htmlFor:`mcp-server-command`,children:(0,Z.jsx)(q,{id:`mcp-server-command`,placeholder:`npx`,value:c.command,onChange:e=>b({command:e.target.value})})}),(0,Z.jsx)($,{label:`Arguments, one per line`,htmlFor:`mcp-server-args`,children:(0,Z.jsx)(ie,{id:`mcp-server-args`,placeholder:`-y
4
4
  @modelcontextprotocol/server-postgres`,value:c.args,onChange:e=>b({args:e.target.value})})}),(0,Z.jsx)($,{label:`Working directory (optional)`,htmlFor:`mcp-server-cwd`,children:(0,Z.jsx)(q,{id:`mcp-server-cwd`,placeholder:`The session's project folder`,value:c.cwd,onChange:e=>b({cwd:e.target.value})})})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)($,{label:`URL`,htmlFor:`mcp-server-url`,children:(0,Z.jsx)(q,{id:`mcp-server-url`,placeholder:`https://mcp.example.com/mcp`,value:c.url,onChange:e=>b({url:e.target.value})})}),(0,Z.jsx)($,{label:`Authentication`,children:(0,Z.jsxs)(te,{value:c.auth,onValueChange:e=>{(e===`none`||e===`oauth`)&&b({auth:e})},children:[(0,Z.jsx)(ee,{"aria-label":`Authentication`,children:(0,Z.jsx)(I,{children:et})}),(0,Z.jsxs)(L,{alignItemWithTrigger:!1,children:[(0,Z.jsx)(F,{value:`none`,children:`None or headers`}),(0,Z.jsx)(F,{value:`oauth`,children:`OAuth (sign in after saving)`})]})]})})]}),t[26]=c.args,t[27]=c.auth,t[28]=c.command,t[29]=c.cwd,t[30]=c.type,t[31]=c.url,t[32]=k):k=t[32];let j;t[33]!==c.type||t[34]!==c.values||t[35]!==C||t[36]!==x?(j=c.values.map((e,t)=>(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(q,{"aria-label":`${x} name`,placeholder:c.type===`stdio`?`API_TOKEN`:`Authorization`,value:e.key,onChange:e=>C(t,{key:e.target.value})}),(0,Z.jsx)(Pe,{"aria-label":`${x} value`,placeholder:`Value`,value:e.value,onChange:e=>C(t,{value:e.target.value})}),(0,Z.jsx)(A,{size:`icon-sm`,variant:`ghost`,"aria-label":`Remove ${e.key||`row`}`,onClick:()=>b({values:c.values.filter((e,n)=>n!==t)}),children:(0,Z.jsx)(r,{"aria-hidden":!0})})]},t)),t[33]=c.type,t[34]=c.values,t[35]=C,t[36]=x,t[37]=j):j=t[37];let M;t[38]===c.values?M=t[39]:(M=()=>b({values:[...c.values,{key:``,value:``}]}),t[38]=c.values,t[39]=M);let N;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,Z.jsx)(f,{"aria-hidden":!0}),t[40]=N):N=t[40];let P=c.type===`stdio`?`variable`:`header`,R;t[41]!==M||t[42]!==P?(R=(0,Z.jsxs)(A,{variant:`soft`,onClick:M,children:[N,`Add `,P]}),t[41]=M,t[42]=P,t[43]=R):R=t[43];let z;t[44]!==j||t[45]!==R?(z=(0,Z.jsxs)(`div`,{className:`grid gap-2`,children:[j,R]}),t[44]=j,t[45]=R,t[46]=z):z=t[46];let B;t[47]!==z||t[48]!==x?(B=(0,Z.jsx)($,{label:x,children:z}),t[47]=z,t[48]=x,t[49]=B):B=t[49];let V;t[50]!==D||t[51]!==O||t[52]!==k||t[53]!==B?(V=(0,Z.jsxs)(be,{children:[D,O,k,B]}),t[50]=D,t[51]=O,t[52]=k,t[53]=B,t[54]=V):V=t[54];let H;t[55]!==v||t[56]!==g?(H=v&&g!==void 0?(0,Z.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-foreground`,children:g}):null,t[55]=v,t[56]=g,t[57]=H):H=t[57];let U=!v||g!==void 0,W=n===void 0?`Add server`:`Save`,G;t[58]!==U||t[59]!==W?(G=(0,Z.jsx)(A,{type:`submit`,disabled:U,children:W}),t[58]=U,t[59]=W,t[60]=G):G=t[60];let K;t[61]!==H||t[62]!==G?(K=(0,Z.jsxs)(`div`,{className:`flex items-center justify-end gap-3`,children:[H,G]}),t[61]=H,t[62]=G,t[63]=K):K=t[63];let ne;return t[64]!==V||t[65]!==K||t[66]!==w||t[67]!==T?(ne=(0,Z.jsxs)(`form`,{className:`grid gap-3`,onSubmit:w,children:[T,V,K]}),t[64]=V,t[65]=K,t[66]=w,t[67]=T,t[68]=ne):ne=t[68],ne}function et(e){return e===`oauth`?`OAuth (sign in after saving)`:`None or headers`}function tt(e){let t=(0,Y.c)(35),{plugin:n,environmentLabel:r,onSave:i}=e,[a,o]=(0,X.useState)(n?.name??``),[s,c]=(0,X.useState)(n?.path??``),l=`${n?.name??``}\u0000${n?.path??``}`,[u,d]=(0,X.useState)(l);l!==u&&(d(l),o(n?.name??``),c(n?.path??``));let f=a!==(n?.name??``)||s!==(n?.path??``),p;t[0]!==a||t[1]!==s?(p=a.trim().length>0&&s.trim().startsWith(`/`),t[0]=a,t[1]=s,t[2]=p):p=t[2];let m=p,h;t[3]!==f||t[4]!==a||t[5]!==i||t[6]!==s||t[7]!==n?.enabled||t[8]!==m?(h=e=>{e.preventDefault(),f&&m&&i({name:a.trim(),path:s.trim(),enabled:n?.enabled??!0})},t[3]=f,t[4]=a,t[5]=i,t[6]=s,t[7]=n?.enabled,t[8]=m,t[9]=h):h=t[9];let 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,Z.jsx)($,{label:`Name`,htmlFor:`plugin-name`,children:(0,Z.jsx)(q,{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,Z.jsx)(q,{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,Z.jsx)($,{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,Z.jsxs)(be,{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,Z.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-foreground`,children:`Enter a name and the plugin folder's full path.`}):null,t[22]=f,t[23]=m,t[24]=C):C=t[24];let w=!f||!m,T=n===void 0?`Add plugin`:`Save`,E;t[25]!==w||t[26]!==T?(E=(0,Z.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,Z.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,Z.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 nt=e=>e.replace(/[\\/][^\\/]*$/,``)||`/`;function rt(e){let t=(0,Y.c)(69),{entry:n,environmentId:r,onClose:a}=e,{skill:o,providers:s}=n,c,l,d;t[0]!==r||t[1]!==o.path?(c=nt(o.path),l=y,d=_e(r,c,o.path),t[0]=r,t[1]=o.path,t[2]=c,t[3]=l,t[4]=d):(c=t[2],l=t[3],d=t[4]);let f=l(d),p;t[5]===f?p=t[6]:(p=u(h(f)),t[5]=f,t[6]=p);let m=p,g=ne(r),{copyToClipboard:_}=z(),b;t[7]!==r||t[8]!==o.path?(b={environmentId:r,filePath:o.path,workspaceRoot:void 0},t[7]=r,t[8]=o.path,t[9]=b):b=t[9];let S=b,C=o.shortDescription??o.description,w;t[10]===o.scope?w=t[11]:(w=Xe(o.scope),t[10]=o.scope,t[11]=w);let T=w,E;t[12]===a?E=t[13]:(E=e=>!e&&a(),t[12]=a,t[13]=E);let k;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`flex size-12 shrink-0 items-center justify-center rounded-full border border-border/60 text-muted-foreground`,children:(0,Z.jsx)(D,{className:`size-5`})}),t[14]=k):k=t[14];let j;t[15]===o?j=t[16]:(j=Ye(o),t[15]=o,t[16]=j);let M=`More for ${j}`,F;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,Z.jsx)(N,{"aria-hidden":!0}),t[17]=F):F=t[17];let I;t[18]===M?I=t[19]:(I=(0,Z.jsx)(O,{render:(0,Z.jsx)(A,{size:`icon-sm`,variant:`ghost`,"aria-label":M,children:F})}),t[18]=M,t[19]=I);let L;t[20]!==g||t[21]!==S?(L=g.capabilities.canOpenDefault?(0,Z.jsx)(v,{onClick:()=>void g.activate(`open`,S),children:`Open`}):null,t[20]=g,t[21]=S,t[22]=L):L=t[22];let ee;t[23]!==g||t[24]!==S?(ee=g.capabilities.revealLabel?(0,Z.jsx)(v,{onClick:()=>void g.activate(`reveal-in-folder`,S),children:g.capabilities.revealLabel}):null,t[23]=g,t[24]=S,t[25]=ee):ee=t[25];let te=m===null,R;t[26]!==_||t[27]!==m?(R=()=>m&&_(m.contents,void 0),t[26]=_,t[27]=m,t[28]=R):R=t[28];let B;t[29]!==te||t[30]!==R?(B=(0,Z.jsx)(v,{disabled:te,onClick:R,children:`Copy Markdown`}),t[29]=te,t[30]=R,t[31]=B):B=t[31];let V;t[32]!==L||t[33]!==ee||t[34]!==B?(V=(0,Z.jsxs)(x,{align:`end`,children:[L,ee,B]}),t[32]=L,t[33]=ee,t[34]=B,t[35]=V):V=t[35];let H;t[36]!==I||t[37]!==V?(H=(0,Z.jsxs)(`div`,{className:`flex items-start justify-between gap-3 pe-8`,children:[k,(0,Z.jsxs)(i,{children:[I,V]})]}),t[36]=I,t[37]=V,t[38]=H):H=t[38];let U;t[39]===o?U=t[40]:(U=Ye(o),t[39]=o,t[40]=U);let W;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,Z.jsx)(`span`,{className:`font-normal text-muted-foreground`,children:`Skill`}),t[41]=W):W=t[41];let G;t[42]===U?G=t[43]:(G=(0,Z.jsxs)(se,{children:[U,` `,W]}),t[42]=U,t[43]=G);let K;t[44]===C?K=t[45]:(K=C?(0,Z.jsx)(ce,{children:C}):null,t[44]=C,t[45]=K);let ie;t[46]!==G||t[47]!==K?(ie=(0,Z.jsxs)(`div`,{className:`grid gap-1.5`,children:[G,K]}),t[46]=G,t[47]=K,t[48]=ie):ie=t[48];let ae;t[49]!==c||t[50]!==r||t[51]!==m||t[52]!==f?(ae=(0,Z.jsx)(`div`,{className:`max-h-[50vh] min-h-24 overflow-y-auto rounded-xl border border-border/60 bg-card/40 px-5 py-4`,children:m===null?f._tag===`Failure`?(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This skill's file could not be read. It may have moved since the provider last scanned it.`}):(0,Z.jsxs)(`div`,{className:`grid gap-2`,children:[(0,Z.jsx)(re,{className:`h-4 w-3/4`}),(0,Z.jsx)(re,{className:`h-4 w-full`}),(0,Z.jsx)(re,{className:`h-4 w-2/3`})]}):(0,Z.jsx)(P,{text:Ze(m.contents),cwd:c,environmentId:r})}),t[49]=c,t[50]=r,t[51]=m,t[52]=f,t[53]=ae):ae=t[53];let oe;t[54]===s?oe=t[55]:(oe=s.join(`, `),t[54]=s,t[55]=oe);let q=`Loaded by ${oe}`,ue;t[56]!==T||t[57]!==q?(ue=[T,q].filter(Boolean),t[56]=T,t[57]=q,t[58]=ue):ue=t[58];let de=ue.join(` · `),fe;t[59]===de?fe=t[60]:(fe=(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:de}),t[59]=de,t[60]=fe);let pe;t[61]!==H||t[62]!==ie||t[63]!==ae||t[64]!==fe?(pe=(0,Z.jsx)(J,{className:`max-w-2xl`,children:(0,Z.jsxs)(`div`,{className:`grid min-h-0 gap-4 p-6`,children:[H,ie,ae,fe]})}),t[61]=H,t[62]=ie,t[63]=ae,t[64]=fe,t[65]=pe):pe=t[65];let me;return t[66]!==pe||t[67]!==E?(me=(0,Z.jsx)(le,{open:!0,onOpenChange:E,children:pe}),t[66]=pe,t[67]=E,t[68]=me):me=t[68],me}var it={claude:`Claude`,codex:`Codex`,cursor:`Cursor`},at={success:`bg-success`,warning:`bg-warning`,error:`bg-destructive`,muted:`bg-muted-foreground/40`},ot={success:`text-success-foreground`,warning:`text-warning-foreground`,error:`text-destructive-foreground`,muted:`text-muted-foreground`},st=k(_);function ct(e){let t=T(e);return st(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 lt(e,t,n){return e.transport.type===`http`&&(e.transport.auth===`oauth`||n?.auth===`signed-in`||t.needsSignIn)}function ut(e){let t=(0,Y.c)(13),{status:n,className:r}=e,i=ot[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=at[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,Z.jsx)(`span`,{"aria-hidden":!0,className:s}),t[5]=s,t[6]=c);let l;t[7]===n.label?l=t[8]:(l=(0,Z.jsx)(`span`,{className:`truncate`,children:n.label}),t[7]=n.label,t[8]=l);let u;return t[9]!==a||t[10]!==c||t[11]!==l?(u=(0,Z.jsxs)(`span`,{className:a,children:[c,l]}),t[9]=a,t[10]=c,t[11]=l,t[12]=u):u=t[12],u}function dt(){let e=(0,Y.c)(6),{environment:t,scope:n}=ve(),r=t?.connection.phase===`connected`&&t.serverConfig!==null,i=r?t.environmentId:null,a=r&&t.serverConfig?.environment.capabilities.mcpRegistry===!0,o;return e[0]!==r||e[1]!==t||e[2]!==i||e[3]!==n||e[4]!==a?(o=(0,Z.jsx)(Se,{width:`wide`,children:t===null||!r?(0,Z.jsx)(pe,{children:(0,Z.jsxs)(ue,{children:[(0,Z.jsx)(de,{children:`Connect to manage plugins and MCP servers`}),(0,Z.jsx)(fe,{children:`They live on each environment. Choose a connected one above.`})]})}):!a||i===null?(0,Z.jsx)(pe,{children:(0,Z.jsxs)(ue,{children:[(0,Z.jsxs)(de,{children:[`Update `,t.label,` to manage plugins and MCP servers`]}),(0,Z.jsx)(fe,{children:`This environment runs a version without them.`})]})}):(0,Z.jsx)(ht,{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 ft={plugins:`Search plugins`,mcps:`Search MCP servers`,skills:`Search skills`},pt=(e,...t)=>e===``||t.some(t=>t.toLowerCase().includes(e));function mt(e){let t=(0,Y.c)(9),{text:n}=e,r=(0,X.useRef)(null),[i,a]=(0,X.useState)(!1),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=e=>{let t=r.current;a(e&&t!==null&&t.scrollWidth>t.clientWidth)},t[0]=o):o=t[0];let s;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Z.jsx)(`span`,{ref:r,tabIndex:0,className:`block truncate text-xs text-muted-foreground`}),t[1]=s):s=t[1];let c,l;t[2]===n?(c=t[3],l=t[4]):(c=(0,Z.jsx)(B,{render:s,children:n}),l=(0,Z.jsx)(V,{children:n}),t[2]=n,t[3]=c,t[4]=l);let u;return t[5]!==i||t[6]!==c||t[7]!==l?(u=(0,Z.jsxs)(H,{open:i,onOpenChange:o,children:[c,l]}),t[5]=i,t[6]=c,t[7]=l,t[8]=u):u=t[8],u}function ht({environmentId:e,environmentLabel:t,projectId:r,projectLabel:s}){let l=R({select:e=>e.hash}),[u,f]=(0,X.useState)(()=>l.replace(/^#/,``)===`mcp-servers`?`mcps`:l.replace(/^#/,``)===`skills`?`skills`:`plugins`),[p,h]=(0,X.useState)(``),[_,S]=(0,X.useState)(`All categories`),T=y(W.configValueAtom(e))?.providers,k=(0,X.useMemo)(()=>Je(T??[]),[T]),[j,M]=(0,X.useState)(null),P=ye(e=>e.mcpServers),z=ye(e=>e.plugins),K=ye(e=>e.projectSettingsOverrides),re=ye(e=>e.skillOverrides),ie=ne(e),q=y(W.updateSettings.permissionAtom(e)),[se,ce]=(0,X.useState)(null),J=y(W.mcpRegistryTest.permissionAtom(e)),le=U(e),ue=G(W.updateSettings,{label:`update MCP registry`,reportFailure:!0}),de=G(W.mcpRegistryState,{reportFailure:!1}),fe=G(W.mcpRegistryTest,{label:`check MCP server`,reportFailure:!0}),pe=G(W.mcpRegistryOAuthStart,{label:`start MCP sign-in`,reportFailure:!0}),_e=G(W.mcpRegistryOAuthSignOut,{label:`sign out of MCP server`,reportFailure:!0}),ve=G(W.mcpRegistryDiscover,{reportFailure:!1}),be=G(W.mcpRegistryImport,{label:`import MCP servers`,reportFailure:!0}),[xe,Se]=(0,X.useState)({}),[ke,Pe]=(0,X.useState)(new Set),[Y,Fe]=(0,X.useState)([]),[Ve,He]=(0,X.useState)({kind:`list`}),Q=Ve.kind!==`list`&&Ve.id!==null&&(Ve.kind===`server`?P[Ve.id]===void 0:z[Ve.id]===void 0)?{kind:`list`}:Ve,[Ue,We]=(0,X.useState)(l);if(l!==Ue){We(l);let e=l.replace(/^#/,``);(e===`mcp-servers`||e===`plugins`||e===`skills`)&&(f(e===`mcp-servers`?`mcps`:e),He({kind:`list`}))}let[Ge,Ke]=(0,X.useState)(null),[qe,Xe]=(0,X.useState)(null),[Ze,$]=(0,X.useState)({}),et=(0,X.useMemo)(()=>Object.entries(P).map(([e,t])=>[g.make(e),t]).toSorted(([,e],[,t])=>e.name.localeCompare(t.name)),[P]),nt=(0,X.useMemo)(()=>Object.entries(z).map(([e,t])=>[b.make(e),t]),[z]),at=(0,X.useCallback)(async()=>{let t=await de({environmentId:e,input:{}});t._tag===`Success`&&Se(t.value.servers)},[e,de]),ot=(0,X.useCallback)(async()=>{if(!J)return;let t=await ve({environmentId:e,input:r===void 0?{}:{projectId:r}});t._tag===`Success`&&Fe(t.value.servers)},[J,ve,e,r]);(0,X.useEffect)(()=>{at(),ot()},[at,ot]);let st=e=>{f(`mcps`),He({kind:`server`,id:e})},dt=e=>{f(`plugins`),He({kind:`plugin`,id:e})},ht=t=>ue({environmentId:e,input:{patch:t}}),gt=async t=>{Pe(e=>new Set(e).add(t));let n=await fe({environmentId:e,input:{serverId:t}});if(Pe(e=>{let n=new Set(e);return n.delete(t),n}),n._tag===`Success`)return Se(e=>({...e,[t]:n.value})),n.value},yt=(0,X.useEffectEvent)(async e=>{(await gt(e))?.health.status===`connected`&&Xe(null)});(0,X.useEffect)(()=>{if(qe===null)return;let e=()=>void yt(qe);return window.addEventListener(`focus`,e),()=>window.removeEventListener(`focus`,e)},[qe]);let bt=async(e,t,n)=>{(await ht({mcpServers:{[e]:t}}))._tag===`Success`&&(n&&He({kind:`list`}),ot(),t.enabled&&await gt(e))},xt=async(t,n=!1)=>{let r=le??window.location.origin;$(e=>{let n={...e};return delete n[t],n});let i=await pe({environmentId:e,input:{serverId:t,origin:new URL(r,window.location.href).origin,...n?{reauthenticate:n}:{}}});if(i._tag!==`Success`){i._tag===`Failure`&&$(e=>({...e,[t]:ct(i.cause)}));return}if(i.value.authorizationUrl===null){await gt(t);return}Xe(t),window.open(i.value.authorizationUrl,`_blank`,`noopener,noreferrer`)},St=async t=>{let n=await _e({environmentId:e,input:{serverId:t}});n._tag===`Success`&&Se(e=>({...e,[t]:n.value}))},Ct=(e,t,n)=>{if(r===void 0)return;let i=K[r]??{},a={...i[e]};n===void 0?delete a[t]:a[t]={enabled:n},ht({projectSettingsOverrides:{[r]:{...i,[e]:a}}})},wt=async()=>{let t=Ge;if(Ke(null),t!==null){if(t.kind===`server`){let n=P[t.id];n?.transport.type===`http`&&n.transport.auth===`oauth`&&await _e({environmentId:e,input:{serverId:t.id}}),await ht({mcpServers:{[t.id]:null}})}else await ht({plugins:{[t.id]:null}});He({kind:`list`})}},Tt=Y.filter(e=>!e.alreadyAdded),Et=new Set(et.filter(([e])=>Q.kind!==`server`||e!==Q.id).map(([,e])=>e.name)),Dt=p.trim().toLowerCase(),Ot=et.filter(([,e])=>pt(Dt,e.name,Le(e))),kt=nt.filter(([,e])=>pt(Dt,e.name,e.path)),At=Tt.filter(e=>pt(Dt,e.name,e.summary)),jt=(e,t)=>n({mcpServers:P,plugins:z,projectSettingsOverrides:K},e,r??null,t),Mt=(e,t,n)=>{if(r!==void 0){Ct(e,t,n);return}ht(e===`mcpServers`?{mcpServers:{[t]:{...P[t],enabled:n}}}:{plugins:{[t]:{...z[t],enabled:n}}})},Nt=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-4`,children:[(0,Z.jsxs)(`div`,{className:`grid gap-1`,children:[(0,Z.jsx)(`h1`,{className:`text-2xl font-semibold text-foreground`,children:`Plugins`}),(0,Z.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Manage plugins, skills, and MCP servers given to agents on `,t,`.`]})]}),J?(0,Z.jsxs)(i,{children:[(0,Z.jsx)(O,{render:(0,Z.jsxs)(A,{children:[`Add`,(0,Z.jsx)(w,{"aria-hidden":!0})]})}),(0,Z.jsxs)(x,{align:`end`,children:[(0,Z.jsxs)(v,{onClick:()=>st(null),children:[(0,Z.jsx)(d,{"aria-hidden":!0}),`Add MCP server`]}),(0,Z.jsxs)(v,{onClick:()=>dt(null),children:[(0,Z.jsx)(c,{"aria-hidden":!0}),`Add plugin`]})]})]}):null]}),Pt=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,Z.jsxs)(ae,{"aria-label":`Show`,variant:`default`,value:[u],onValueChange:e=>{let t=e[0];(t===`plugins`||t===`mcps`||t===`skills`)&&(f(t),He({kind:`list`}))},children:[(0,Z.jsxs)(oe,{value:`plugins`,...Me(`plugins`),children:[`Plugins `,(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:nt.length})]}),(0,Z.jsxs)(oe,{value:`mcps`,...Me(`mcp-servers`),children:[`MCPs `,(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:et.length})]}),(0,Z.jsxs)(oe,{value:`skills`,...Me(`skills`),children:[`Skills `,(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:k.length})]})]}),(0,Z.jsxs)(`div`,{className:`flex w-full gap-2 sm:w-auto`,children:[u===`skills`?(0,Z.jsx)(`div`,{className:`w-fit shrink-0`,children:(0,Z.jsxs)(te,{value:_,onValueChange:e=>e&&S(e),children:[(0,Z.jsx)(ee,{"aria-label":`Skill category`,children:(0,Z.jsx)(I,{})}),(0,Z.jsxs)(L,{children:[(0,Z.jsx)(F,{value:`All categories`,children:`All categories`}),ze.filter(e=>e===`Personal`||e===`Built-in`||k.some(({skill:t})=>Be(t)===e)).map(e=>(0,Z.jsx)(F,{value:e,children:e},e))]})]})}):null,(0,Z.jsxs)(ge,{className:`min-w-0 flex-1 sm:w-56`,children:[(0,Z.jsx)(me,{children:(0,Z.jsx)(o,{"aria-hidden":!0})}),(0,Z.jsx)(he,{"aria-label":ft[u],placeholder:ft[u],value:p,onChange:e=>h(e.currentTarget.value)})]})]})]}),Ft=(e,t)=>(0,Z.jsxs)(H,{children:[(0,Z.jsx)(B,{render:(0,Z.jsx)(A,{size:`icon-sm`,variant:`ghost`,"aria-label":e,onClick:t,children:(0,Z.jsx)(m,{"aria-hidden":!0})})}),(0,Z.jsx)(V,{children:e})]}),It=kt.length===0?(0,Z.jsx)(`p`,{className:`py-6 text-sm text-muted-foreground`,children:nt.length===0?`No plugins yet. Add a Claude Code plugin folder to load it in Claude sessions.`:`No plugins match your search.`}):(0,Z.jsx)(`ul`,{className:`grid gap-1`,children:kt.map(([t,n])=>(0,Z.jsx)(Re,{environmentId:e,plugin:n,enabled:jt(`plugins`,t),disabled:!q,onDetails:()=>dt(t),onToggle:e=>Mt(`plugins`,t,e)},t))}),Lt=k.filter(({skill:e})=>(_===`All categories`||Be(e)===_)&&pt(Dt,Ye(e),e.name,e.shortDescription??``,e.description??``)),Rt=Lt.length===0?(0,Z.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,Z.jsxs)(`div`,{className:`grid gap-3`,children:[(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Switches apply to new Claude and OpenCode sessions.`}),(0,Z.jsx)(`ul`,{className:`grid gap-1`,children:Lt.map(t=>{let n=Be(t.skill),a=(T??[]).filter(e=>C(e.driver)&&e.skills.some(e=>e.name===t.skill.name)),o=a.length?a.map(e=>e.displayName??e.driver).join(`, `):`Native settings`;return(0,Z.jsxs)(`li`,{className:`flex items-center gap-3 py-3`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`flex size-10 shrink-0 items-center justify-center rounded-full border border-border/60 text-muted-foreground`,children:(0,Z.jsx)(D,{className:`size-4`})}),(0,Z.jsxs)(`div`,{className:`grid min-w-0 flex-1 gap-1`,children:[(0,Z.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:Ye(t.skill)}),(0,Z.jsx)(mt,{text:t.skill.shortDescription??t.skill.description??t.skill.path}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:[n,o].filter(Boolean).join(` · `)})]}),(0,Z.jsxs)(i,{children:[(0,Z.jsxs)(H,{children:[(0,Z.jsx)(B,{render:(0,Z.jsx)(O,{render:(0,Z.jsx)(A,{variant:`ghost`,size:`icon-sm`,"aria-label":`More for ${Ye(t.skill)}`,children:(0,Z.jsx)(N,{"aria-hidden":!0})})})}),(0,Z.jsx)(V,{children:`Skill actions`})]}),(0,Z.jsxs)(x,{align:`end`,children:[ie.capabilities.canOpenDefault?(0,Z.jsx)(v,{onClick:()=>void ie.activate(`open`,{environmentId:e,filePath:t.skill.path,workspaceRoot:void 0}),children:`Open`}):null,(0,Z.jsx)(v,{onClick:()=>M(t),children:`Details`}),r!==void 0&&K[r]?.skillOverrides?.[t.skill.name]!==void 0?(0,Z.jsx)(v,{onClick:()=>{let e=K[r]??{},n={...e.skillOverrides};delete n[t.skill.name],ht({projectSettingsOverrides:{[r]:{...e,skillOverrides:n}}})},children:`Use environment setting`}):null]})]}),(0,Z.jsx)(De,{"aria-label":`Enable ${Ye(t.skill)} for ${o}`,checked:(r===void 0?void 0:K[r]?.skillOverrides?.[t.skill.name])??re[t.skill.name]??t.skill.enabled,disabled:!q||se!==null||a.length===0,onCheckedChange:e=>{ce(t.skill.name),ht(r===void 0?{skillOverrides:{[t.skill.name]:e}}:{projectSettingsOverrides:{[r]:{...K[r],skillOverrides:{...K[r]?.skillOverrides,[t.skill.name]:e}}}}).finally(()=>ce(null))}})]},t.skill.path)})})]}),zt=(0,Z.jsxs)(`div`,{className:`grid gap-6`,children:[et.length>0?(0,Z.jsx)(Ce,{title:`Servers`,children:Ot.length===0?(0,Z.jsx)(`p`,{className:`px-3 text-sm text-muted-foreground sm:px-4`,children:`No MCP servers match your search.`}):(0,Z.jsx)(Z.Fragment,{children:Ot.map(([e,t])=>{let n=jt(`mcpServers`,e),r=Ie({...t,enabled:n},xe[e],ke.has(e)),a=Ze[e],o=lt(t,r,xe[e]);return(0,Z.jsxs)(`div`,{className:`flex min-h-14 items-center gap-3 px-4 py-3`,children:[(0,Z.jsxs)(`div`,{className:`grid min-w-0 flex-1 gap-0.5`,children:[(0,Z.jsx)(`span`,{className:`break-words text-sm font-medium text-foreground`,children:t.name}),r.tone===`error`||o?(0,Z.jsx)(ut,{status:r}):null,a?(0,Z.jsx)(`span`,{className:`text-xs text-destructive-foreground`,children:a}):null]}),r.needsSignIn&&J?(0,Z.jsx)(A,{size:`xs`,variant:`outline`,onClick:()=>void xt(e),children:`Authenticate`}):null,o&&!r.needsSignIn&&J?(0,Z.jsxs)(i,{children:[(0,Z.jsxs)(H,{children:[(0,Z.jsx)(B,{render:(0,Z.jsx)(O,{render:(0,Z.jsx)(A,{variant:`ghost`,size:`icon-sm`,"aria-label":`More for ${t.name}`,children:(0,Z.jsx)(N,{"aria-hidden":!0})})})}),(0,Z.jsx)(V,{children:`Sign-in actions`})]}),(0,Z.jsxs)(x,{align:`end`,children:[(0,Z.jsx)(v,{onClick:()=>void xt(e,!0),children:`Re-authenticate`}),xe[e]?.auth===`signed-in`?(0,Z.jsx)(v,{onClick:()=>void St(e),children:`Sign out`}):null]})]}):null,Ft(`Settings for ${t.name}`,()=>st(e)),(0,Z.jsx)(De,{"aria-label":`Give ${t.name} to agents`,checked:n,disabled:!J,onCheckedChange:t=>Mt(`mcpServers`,e,t)})]},e)})})}):null,J&&At.length>0?(0,Z.jsx)(Ce,{title:`Found in provider configs`,headerAction:(0,Z.jsx)(A,{size:`icon-xs`,variant:`ghost`,"aria-label":`Look again`,onClick:()=>void ot(),children:(0,Z.jsx)(a,{"aria-hidden":!0})}),children:(0,Z.jsx)(Z.Fragment,{children:At.map(t=>(0,Z.jsxs)(`div`,{className:`flex min-h-14 items-center gap-3 px-4 py-3`,children:[(0,Z.jsxs)(`div`,{className:`grid min-w-0 flex-1 gap-0.5`,children:[(0,Z.jsx)(`span`,{className:`break-words text-sm font-medium text-foreground`,children:t.name}),At.filter(e=>e.name===t.name).length>1?(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:(t.providers??[t.provider]).map(e=>it[e]).join(`, `)}):null]}),(0,Z.jsx)(A,{size:`xs`,variant:`outline`,onClick:async()=>{(await be({environmentId:e,input:{...r===void 0?{}:{projectId:r},servers:[{provider:t.provider,path:t.path,name:t.name}]}}))._tag===`Success`&&(ot(),at())},children:`Import`})]},`${t.provider}:${t.path}:${t.name}`))})}):null]}),Bt=Q.kind===`server`?(0,Z.jsxs)(Qe,{title:Q.id===null?`Add MCP server`:`Update ${P[Q.id]?.name??`server`} MCP`,onBack:()=>He({kind:`list`}),onUninstall:Q.id!==null&&J?()=>Ke({kind:`server`,id:Q.id}):void 0,children:[(0,Z.jsx)($e,{server:Q.id===null?void 0:P[Q.id],takenNames:Et,onSave:e=>void bt(Q.id??g.make(E()),e,Q.id===null)},Q.id??`new`),Q.id!==null&&P[Q.id]!==void 0?(0,Z.jsx)(_t,{id:Q.id,server:P[Q.id],runtime:xe[Q.id],checking:ke.has(Q.id),canManage:J,projectLabel:s,projectOverride:r===void 0?void 0:K[r]?.mcpServers?.[Q.id],awaitingSignIn:qe===Q.id,onProviderToggle:(e,t)=>{let n=P[Q.id],r=t?n.disabledProviders.filter(t=>t!==e):[...n.disabledProviders,e];ht({mcpServers:{[Q.id]:{...n,disabledProviders:r}}})},onProjectOverride:r===void 0?void 0:e=>Ct(`mcpServers`,Q.id,e),signInError:Ze[Q.id],onTest:()=>void gt(Q.id),onSignIn:()=>void xt(Q.id),onReauthenticate:()=>void xt(Q.id,!0),onSignOut:()=>void St(Q.id)}):null]}):null,Vt=Q.kind===`plugin`?(0,Z.jsxs)(Qe,{title:Q.id===null?`Add plugin`:`Update ${z[Q.id]?.name??`plugin`}`,onBack:()=>He({kind:`list`}),onUninstall:Q.id!==null&&J?()=>Ke({kind:`plugin`,id:Q.id}):void 0,children:[(0,Z.jsx)(tt,{plugin:Q.id===null?void 0:z[Q.id],environmentLabel:t,onSave:async e=>{let t=Q.id??b.make(E());(await ht({plugins:{[t]:e}}))._tag===`Success`&&Q.id===null&&He({kind:`list`})}},Q.id??`new`),Q.id!==null&&z[Q.id]!==void 0?(0,Z.jsx)(vt,{plugin:z[Q.id],environmentLabel:t,projectLabel:s,projectOverride:r===void 0?void 0:K[r]?.plugins?.[Q.id],onProjectOverride:r===void 0?void 0:e=>Ct(`plugins`,Q.id,e)}):null]}):null;return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`grid gap-6`,children:[Nt,Pt,Bt??Vt??(u===`plugins`?It:u===`mcps`?zt:Rt)]}),j===null?null:(0,Z.jsx)(rt,{entry:j,environmentId:e,onClose:()=>M(null)}),(0,Z.jsx)(we,{open:Ge!==null,onOpenChange:e=>!e&&Ke(null),children:(0,Z.jsxs)(Te,{children:[(0,Z.jsxs)(je,{children:[(0,Z.jsxs)(Ee,{children:[`Remove`,` `,Ge?.kind===`server`?P[Ge.id]?.name??`server`:Ge?.kind===`plugin`?z[Ge.id]?.name??`plugin`:``,`?`]}),(0,Z.jsxs)(Oe,{children:[`New sessions on `,t,` stop getting it. Its stored values and sign-in are deleted. Provider config files are not changed.`]})]}),(0,Z.jsxs)(Ae,{children:[(0,Z.jsx)(Ne,{render:(0,Z.jsx)(A,{variant:`outline`,children:`Cancel`})}),(0,Z.jsx)(A,{variant:`destructive`,onClick:()=>void wt(),children:`Remove`})]})]})})]})}function gt(e){let t=(0,Y.c)(16),{projectLabel:n,override:r,inherited:i,onChange:a}=e,o=r?.enabled!==void 0,s=`In ${n}`,c=o?`Set for this project.`:`Follows the environment (${i?`on`:`off`}).`,l;t[0]!==a||t[1]!==o?(l=o?(0,Z.jsx)(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,Z.jsx)(De,{"aria-label":u,checked:d,onCheckedChange:f}),t[5]=u,t[6]=d,t[7]=f,t[8]=p):p=t[8];let m;t[9]!==l||t[10]!==p?(m=(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[l,p]}),t[9]=l,t[10]=p,t[11]=m):m=t[11];let h;return t[12]!==s||t[13]!==c||t[14]!==m?(h=(0,Z.jsx)(xe,{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,Y.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?(_=Ie(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,Z.jsx)(ut,{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,Z.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,Z.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,Z.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,Z.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,Z.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,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l?`Finish signing in in your browser, then come back here.`:`Agents can't reach this server until you sign in.`}):null,t[31]=l,t[32]=v.needsSignIn,t[33]=D):D=t[33];let O;t[34]===b?O=t[35]:(O=b?(0,Z.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,Z.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,Z.jsx)(Ce,{title:`Status`,children:(0,Z.jsx)(be,{children:(0,Z.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,Z.jsx)(xe,{title:e.label,...e.unsupported===void 0?{}:{description:e.unsupported},control:(0,Z.jsx)(De,{"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=Q(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,Z.jsx)(be,{children:M}),t[51]=M,t[52]=N);let P;t[53]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,Z.jsx)(`p`,{className:`px-3 text-xs text-muted-foreground sm:px-4`,children:`A change reaches a thread when its provider session next starts.`}),t[53]=P):P=t[53];let F;t[54]===N?F=t[55]:(F=(0,Z.jsxs)(Ce,{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,Z.jsx)(Ce,{title:`Project`,children:(0,Z.jsx)(be,{children:(0,Z.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,Z.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,Y.c)(13),{plugin:n,environmentLabel:r,projectLabel:i,projectOverride:a,onProjectOverride:o}=e,s=`Claude sessions on ${r} load this plugin folder.`,c;t[0]===s?c=t[1]:(c=(0,Z.jsx)(xe,{title:`Claude`,description:s}),t[0]=s,t[1]=c);let l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Z.jsx)(xe,{title:`Codex, Cursor, Grok, OpenCode, Antigravity`,description:`Not supported here. These providers have no Claude plugin format.`}),t[2]=l):l=t[2];let u;t[3]===c?u=t[4]:(u=(0,Z.jsx)(Ce,{title:`Providers`,children:(0,Z.jsxs)(be,{children:[c,l]})}),t[3]=c,t[4]=u);let d;t[5]!==o||t[6]!==n||t[7]!==i||t[8]!==a?(d=i!==void 0&&o!==void 0?(0,Z.jsx)(Ce,{title:`Project`,children:(0,Z.jsx)(be,{children:(0,Z.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,Z.jsxs)(`div`,{className:`grid gap-6`,children:[u,d]}),t[10]=u,t[11]=d,t[12]=f):f=t[12],f}var yt=dt;export{yt as component};
5
- //# sourceMappingURL=settings.plugins-DafKnC5Q.js.map
5
+ //# sourceMappingURL=settings.plugins-imKgCVn_.js.map
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ProjectIconPickerDialog-C23nnU1a.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/Icon-l19w4AjM.js","assets/utils-CRwA5SKO.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-RZD18_sD.js","assets/CompositeRoot-B9Xvst63.js","assets/toggle-DLuCM2ny.js","assets/input-DhWmPSxf.js","assets/Input-DoZ73vNO.js","assets/FieldControl-CIaYJhnp.js","assets/useRegisterFieldControl-Bmw-33lq.js","assets/scroll-area-BDT5qfX2.js","assets/ScrollAreaCorner-SeZ1sx-t.js","assets/CSPContext-D8hlJ4eS.js","assets/dialog-x5a5g_fa.js","assets/DialogTitle-BzKEBo4W.js","assets/ProjectMonogram-BMGWdmjv.js","assets/dynamic-BMz3CcWG.js","assets/index-Dc7GC03y.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./index-Dc7GC03y.js";import{r as n}from"./Icon-l19w4AjM.js";import{Cm as r,D as i,Gn as a,Gs as o,Jn as s,Ks as c,ME as l,Mf as u,O_ as d,Pp as f,Qp as p,S_ as m,Tc as h,Yn as ee,Yo as g,Zn as _,cE as v,dw as y,g_ as b,gd as x,in as S,ly as C,ms as w,n as T,or as E,qn as te,r as D,sr as O,tr as ne,xs as k}from"./utils-CRwA5SKO.js";import{R as re,U as A,W as ie,z as j}from"./runtime-DZfpb67Q.js";import{C as M,P as N,W as P,k as F}from"./entities-DPIZFvN7.js";import{yn as I}from"./runtime-Bc4kgQim.js";import{t as L}from"./useNavigate-Dvl9uiuL.js";import{t as R}from"./useLocation-UcmQE5FC.js";import{i as z}from"./toast-DYfY2t_z.js";import{a as ae,s as B}from"./environments-Dm2_6Uan.js";import{f as V,s as H}from"./server-LJ0-FVGH.js";import{n as U,o as oe}from"./session-Bc1P10r_.js";import{t as W}from"./use-atom-command-Dz_yqN35.js";import{I as G,R as K}from"./useSettings-DCI8Hv09.js";import{n as q}from"./toastHelpers-Dsph6LwL.js";import{i as J,o as Y,r as X}from"./command-BB0IyhBc.js";import{t as se}from"./input-DhWmPSxf.js";import{D as ce,E as le,O as ue,j as de,y as fe}from"./keybindings-B3kvDAJC.js";import{t as pe}from"./PierreEntryIcon-DtlkLdir.js";import{t as me}from"./ProjectFavicon-YdOZ4g5-.js";import{d as he}from"./projectFilesQueryState-U08pztRu.js";import{n as ge}from"./p4ProjectFile-CIYnqKbl.js";import{r as _e,t as ve}from"./alert-B2wk0CaO.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-Cbpy7Mfz.js";import{Mi as Te,Sn as Ee,bn as De,pn as Oe,yi as ke}from"./main-CxOeqlhD.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-D8mxKLOb.js";import{t as Re}from"./ProjectDefaultsSettings-B--7QlKN.js";import{t as ze}from"./SettingsScopeNotice-BAtVWG0d.js";var Be=l(),Q=e(n(),1),$=e(v(),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!D(t)||I(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}=G(),l=g(H),u=e.onPickExternal,d=T(typeof navigator>`u`?``:navigator.platform),f=(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)(X,{open:e.open,onOpenChange:e.onOpenChange,children:e.open?(0,$.jsx)(J,{"aria-label":`Choose project icon`,className:`overflow-hidden`,onBackdropPointerDown:()=>e.onOpenChange(!1),children:(0,$.jsx)(Ee,{"aria-label":`Choose project icon`,autoHighlight:`always`,escapeLabel:`Close`,footerActionLabel:`Select icon`,footerTrailing:u?(0,$.jsx)(Y,{disabled:a,onClick:()=>{o(!0),u().then(t=>{t&&(e.onOpenChange(!1),e.onSelect(t))}).catch(e=>{z.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:f.length>0?[{value:`project-favicon-files`,label:e.projectName,items:f}]:[],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 o;if(t[1]!==i||t[2]!==r||t[3]!==a||t[4]!==n){let e;t[6]!==i||t[7]!==r||t[8]!==a?(e=e=>{let t=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)(O,{size:`icon-xs`,variant:`ghost-muted`,"aria-label":`Edit ${e.name}`,disabled:i,onClick:()=>a(e),children:(0,$.jsx)(p,{className:`size-3.5`})})})]})},e.id)},t[6]=i,t[7]=r,t[8]=a,t[9]=e):e=t[9],o=n.map(e),t[1]=i,t[2]=r,t[3]=a,t[4]=n,t[5]=o}else o=t[5];return o}function Ge(e){if(e._tag===`Failure`&&!re(e)){let t=ie(e);z.add({type:`error`,title:`Failed to save project actions`,description:t instanceof Error?t.message:`An error occurred.`})}return j(e,()=>void 0)}function Ke(e){let t=M(),[n,r]=(0,Q.useState)(!1),i=(0,Q.useRef)(!1),a=W(V.updateSettings,`project actions update`),o=W(V.upsertKeybinding,`action shortcut update`),s=W(V.removeKeybinding,`action shortcut removal`);async function c(n,c,l){if(i.current||e.length===0){let e=`No available machine, or another action change is saving.`;return z.add({type:`error`,title:`Actions not saved`,description:e}),w(y(Error(e)))}if(e.some(({environmentId:e})=>!U(e,`settings:write`)))return Ge(w(y(new d({requiredScope:m,message:`This connection cannot change environment settings.`}))));i.current=!0,r(!0);try{for(let{environmentId:r,settings:i,keybindings:u,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=c?[c]: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(u,n),c=a?Ie({keybinding:a,command:n}):null,p=Ie({keybinding:l,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:c&&c.key!==p.key?{...p,replace:c}:p}):c&&!m?await s({environmentId:r,input:c}):null;if(h?._tag===`Failure`)return Ge(h)}}return k(void 0)}finally{i.current=!1,r(!1)}}function l(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 c(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:c,submit:l}}function qe(){let e=(0,Be.c)(67),{scope:t,targets:n,target:r}=ye(),{environments:i}=ae(),o=t.kind===`project`||t.kind===`checkout`,c;e[0]!==i||e[1]!==r?(c=r?i.find(e=>e.environmentId===r.environmentId)?.serverConfig:void 0,e[0]=i,e[1]=r,e[2]=c):c=e[2];let l=c,u;e[3]===r?.settings.defaultProjectScripts?u=e[4]:(u=r?.settings.defaultProjectScripts??[],e[3]=r?.settings.defaultProjectScripts,e[4]=u);let d=u,p=l?.keybindings??h,m;if(e[5]!==d||e[6]!==n){let t;e[8]===d?t=e[9]:(t=e=>JSON.stringify(e.settings.defaultProjectScripts)!==JSON.stringify(d),e[8]=d,e[9]=t),m=n.some(t),e[5]=d,e[6]=n,e[7]=m}else m=e[7];let g=m,v=xe(),[y,b]=(0,Q.useState)(null),S,w,T;e[10]!==i||e[11]!==o||e[12]!==t.members||e[13]!==n?(S=new Map(o?t.members.map(Ye):[]),w=Ke,T=n.flatMap(e=>{let t=i.find(t=>t.environmentId===e.environmentId);if(!t?.serverConfig)return[];let n=e.projectId?S.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]=S,e[15]=w,e[16]=T):(S=e[14],w=e[15],T=e[16]);let{saving:D,persist:k,submit:A}=w(T),j;e[17]!==S||e[18]!==r?(j=r?.projectId?S.get(r.projectId):void 0,e[17]=S,e[18]=r,e[19]=j):j=e[19];let M=j,N;e[20]===M?.environmentId?N=e[21]:(N=M?.environmentId??C.make(`none`),e[20]=M?.environmentId,e[21]=N);let P=Pe(N,M?.workspaceRoot??null),F;if(e[22]!==d||e[23]!==P.scripts){let t;e[25]===d?t=e[26]:(t=e=>!d.some(t=>t.command===e.command||t.name.toLowerCase()===e.name.toLowerCase()),e[25]=d,e[26]=t),F=P.scripts.filter(t),e[22]=d,e[23]=P.scripts,e[24]=F}else F=e[24];let I=F,L;e[27]===A?L=e[28]:(L=async e=>{let t={name:e.name,command:e.command,icon:e.icon??`play`,runOnWorktreeCreate:e.runOnWorktreeCreate??!1,waitForSetup:e.runOnWorktreeCreate===!0&&e.async===!1,runOnSettle:e.runOnSettle??!1,keybinding:null,previewUrl:e.previewUrl??null,autoOpenPreview:e.previewUrl?e.autoOpenPreview??!1:!1},n=await A(null,t);if(n._tag===`Failure`&&!re(n)){let e=ie(n);b({scriptId:null,initial:t,error:e instanceof Error?e.message:`Failed to import action.`})}},e[27]=A,e[28]=L);let R=L,z;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(z=[`defaultProjectScripts`],e[29]=z):z=e[29];let B;e[30]===k?B=e[31]:(B=()=>void k(Je),e[30]=k,e[31]=B);let V;e[32]!==v||e[33]!==R||e[34]!==I||e[35]!==D?(V=I.length>0?(0,$.jsxs)(a,{children:[(0,$.jsxs)(E,{render:(0,$.jsx)(O,{id:`import-scripts`,size:`xs`,variant:`ghost`,disabled:D||!v,type:`button`}),children:[`Import scripts`,(0,$.jsx)(x,{className:`size-3.5`})]}),(0,$.jsxs)(_,{align:`end`,children:[(0,$.jsxs)(te,{children:[(0,$.jsx)(s,{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)(ne,{}),I.map(e=>(0,$.jsxs)(ee,{onClick:()=>void R(e),children:[(0,$.jsx)(Fe,{icon:e.icon??`play`,className:`size-4 shrink-0`}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`truncate font-medium`,children:e.name}),(0,$.jsx)(`div`,{className:`truncate font-mono text-muted-foreground`,children:e.command})]})]},`${e.name} ${e.command}`))]})]}):null,e[32]=v,e[33]=R,e[34]=I,e[35]=D,e[36]=V):V=e[36];let H=D||!v||n.length===0,U,oe;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>b({scriptId:null,initial:Le}),oe=(0,$.jsx)(f,{className:`size-3.5`}),e[37]=U,e[38]=oe):(U=e[37],oe=e[38]);let W;e[39]===H?W=e[40]:(W=(0,$.jsxs)(O,{size:`xs`,variant:`outline`,disabled:H,onClick:U,children:[oe,`Add action`]}),e[39]=H,e[40]=W);let G;e[41]!==V||e[42]!==W?(G=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[V,W]}),e[41]=V,e[42]=W,e[43]=G):G=e[43];let K;e[44]!==g||e[45]!==B||e[46]!==G?(K=(0,$.jsx)(Z,{serverScoped:!0,settingKeys:z,mixed:g,title:`Actions`,description:`Commands that run in this project's checkout or its worktree, with optional shortcuts.`,onResetOverride:B,control:G}),e[44]=g,e[45]=B,e[46]=G,e[47]=K):K=e[47];let q;e[48]!==v||e[49]!==p||e[50]!==g||e[51]!==D||e[52]!==d?(q=g?(0,$.jsx)(Z,{title:`Different actions across environments`,description:`Choose one environment to edit its list. Adding an action here adds it on every selected environment.`}):(0,$.jsx)(We,{scripts:d,keybindings:p,disabled:D||!v,onEdit:e=>b(Me(e,p))}),e[48]=v,e[49]=p,e[50]=g,e[51]=D,e[52]=d,e[53]=q):q=e[53];let J;e[54]===P.status?J=e[55]:(J=P.status===`invalid`?(0,$.jsx)(Z,{title:`p4.json is invalid`,description:`A p4.json exists in this checkout but fails to parse, so every action and icon it declares is ignored. Check the JSON syntax and icon values.`,className:`text-warning`}):null,e[54]=P.status,e[55]=J);let Y;e[56]!==k||e[57]!==y||e[58]!==d||e[59]!==A||e[60]!==r?(Y=r&&(0,$.jsx)(Ne,{environmentId:r.environmentId,editScope:`settings:write`,request:y,scripts:d,onSubmit:A,onDelete:e=>void k(t=>t.filter(t=>t.id!==e),e,null),onClose:()=>b(null)}),e[56]=k,e[57]=y,e[58]=d,e[59]=A,e[60]=r,e[61]=Y):Y=e[61];let X;return e[62]!==K||e[63]!==q||e[64]!==J||e[65]!==Y?(X=(0,$.jsxs)(we,{id:`project-actions`,title:`Actions`,children:[K,q,J,Y]}),e[62]=K,e[63]=q,e[64]=J,e[65]=Y,e[66]=X):X=e[66],X}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-C23nnU1a.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,231,232])));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=L(c),u;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(u={select:tt},t[1]=u):u=t[1];let d=R(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,ee=(0,Q.useRef)(null),g,_;t[9]!==o||t[10]!==a||t[11]!==h||t[12]!==p?(g=()=>{p&&h.length!==0&&(ee.current={key:p.projectKey,environmentId:a,checkoutKey:o,memberKeys:h.map(et)})},_=[p,h,a,o],t[9]=o,t[10]=a,t[11]=h,t[12]=p,t[13]=g,t[14]=_):(g=t[13],_=t[14]),(0,Q.useEffect)(g,_);let v,y;if(t[15]!==o||t[16]!==a||t[17]!==s||t[18]!==h.length||t[19]!==l||t[20]!==d||t[21]!==n?(y=()=>{if(h.length>0)return;let e=ee.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})},v=[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]=v,t[23]=y):(v=t[22],y=t[23]),(0,Q.useEffect)(y,v),!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 b;t[27]!==h||t[28]!==p?(b={...p,memberProjects:h,environmentId:h[0].environmentId,id:h[0].id},t[27]=h,t[28]=p,t[29]=b):b=t[29];let x=b,S=`${p.projectKey}:${a??`all`}:${o??`all`}`,C=h.length<p.memberProjects.length,w;return t[30]!==x||t[31]!==S||t[32]!==C?(w=(0,$.jsx)(nt,{group:x,hasOtherMembers:C},S),t[30]=x,t[31]=S,t[32]=C,t[33]=w):w=t[33],w}function et(e){return e.physicalProjectKey}function tt(e){return e.pathname}function nt({group:e,hasOtherMembers:t}){let n=L({from:`/settings`}),a=B(),{environments:s}=ae(),l=(0,Q.useMemo)(()=>new Map(s.map(e=>[e.environmentId,e])),[s]),d=oe(e.memberProjects,b),f=e.memberProjects.every(e=>d.has(e.environmentId)),p=e.memberProjects.find(e=>l.get(e.environmentId)?.serverConfig!=null)??e.memberProjects[0],m=F(),h=Te(P.update,{reportFailure:!1}),ee=Te(P.delete,{reportFailure:!1}),g=(0,Q.useRef)(!1),_=p.faviconPath??null,v=p.projectIcon??null,x=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`||re(t))return;let n=ie(t);z.add(q({type:`error`,title:e,description:n instanceof Error?n.message:`An error occurred.`}))},[]),T=(0,Q.useCallback)((e,t)=>{let n=e.find(e=>!U(e.environmentId,b));if(!n)return null;let r=w(y(Error(`This connection cannot change projects in ${n.environmentLabel??`this environment`}.`)));return C(t,r),r},[C]),E=(0,Q.useCallback)(async(t,n)=>{let r=T(e.memberProjects,n);if(r)return r;let i=e.memberProjects.find(e=>{let t=l.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=w(y(e));return C(n,t),t}for(let r of e.memberProjects){let i=T([r],n);if(i)return i;let a=j(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 k(void 0)},[T,l,e.memberProjects,C,h]),te=(0,Q.useCallback)(async(t,n)=>{let r=t.trim();if(!r){z.add({type:`warning`,title:`Project title cannot be empty`});return}Xe(e.memberProjects.map(e=>e.title),r,n)&&await E({title:r},`Failed to rename project`)},[e.memberProjects,E]),[D,ne]=S(!f),[M,I]=S(!f),[R,V]=(0,Q.useState)(!1),H=(0,Q.useRef)(!1),W=(0,Q.useCallback)(async e=>{if(!H.current){H.current=!0,V(!0);try{await E(e,`Failed to update project icon`)}finally{H.current=!1,V(!1)}}},[E]),G=e.memberProjects.length>1,J=(0,Q.useCallback)(async r=>{if(T(r,`Failed to remove project`))return;let a=K();if(!a)return;let s=new Set(r.map(Qe)),l=m.filter(e=>s.has(`${e.environmentId}:${e.projectId}`)),u=r.length===e.memberProjects.length,d=t||!u?`checkout`:`project`,f=r.length===1?r[0]:null,p=f?.title??e.displayName,h=await A(()=>a.dialogs.confirm([l.length>0?`Remove ${d} "${p}" and delete its ${l.length} thread${l.length===1?``:`s`}?`:`Remove ${d} "${p}"?`,...f?[`Path: ${f.workspaceRoot}`,...f.environmentLabel?[`Environment: ${f.environmentLabel}`]:[]]:[`This removes ${r.length} grouped project entries.`],...l.length>0?[`This permanently clears conversation history for those threads and any archived threads.`]:[`This permanently clears any archived conversation history.`],u&&!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-CFdK4dy-.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/Icon-l19w4AjM.js","assets/utils-CRwA5SKO.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-RZD18_sD.js","assets/CompositeRoot-B9Xvst63.js","assets/toggle-DLuCM2ny.js","assets/input-DhWmPSxf.js","assets/Input-DoZ73vNO.js","assets/FieldControl-CIaYJhnp.js","assets/useRegisterFieldControl-Bmw-33lq.js","assets/scroll-area-BDT5qfX2.js","assets/ScrollAreaCorner-SeZ1sx-t.js","assets/CSPContext-D8hlJ4eS.js","assets/dialog-x5a5g_fa.js","assets/DialogTitle-BzKEBo4W.js","assets/ProjectMonogram-BMGWdmjv.js","assets/dynamic-6kg5nPKs.js","assets/index-B_GLtP0M.js"])))=>i.map(i=>d[i]);
2
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./index-B_GLtP0M.js";import{r as n}from"./Icon-l19w4AjM.js";import{Cm as r,D as i,Gn as a,Gs as o,Jn as s,Ks as c,ME as l,Mf as u,O_ as d,Pp as f,Qp as p,S_ as m,Tc as h,Yn as ee,Yo as g,Zn as _,cE as v,dw as y,g_ as b,gd as x,in as S,ly as C,ms as w,n as T,or as E,qn as te,r as D,sr as O,tr as ne,xs as k}from"./utils-CRwA5SKO.js";import{R as re,U as A,W as ie,z as j}from"./runtime-AivVP3k8.js";import{C as M,P as N,W as P,k as F}from"./entities-ed9IspYf.js";import{yn as I}from"./runtime-BfjHqyQH.js";import{t as L}from"./useNavigate-Dvl9uiuL.js";import{t as R}from"./useLocation-UcmQE5FC.js";import{i as z}from"./toast-BYGWNQVa.js";import{a as ae,s as B}from"./environments-C3ohMa2W.js";import{f as V,s as H}from"./server-BC4-DXjw.js";import{n as U,o as oe}from"./session-CLz6NCKX.js";import{t as W}from"./use-atom-command-BEC7Dpf5.js";import{I as G,R as K}from"./useSettings-CbuRZg7F.js";import{n as q}from"./toastHelpers-Dsph6LwL.js";import{i as J,o as Y,r as X}from"./command-BB0IyhBc.js";import{t as se}from"./input-DhWmPSxf.js";import{D as ce,E as le,O as ue,j as de,y as fe}from"./keybindings-B3kvDAJC.js";import{t as pe}from"./PierreEntryIcon-CKjQpgLO.js";import{t as me}from"./ProjectFavicon-fx1QfVoh.js";import{d as he}from"./projectFilesQueryState-CRMf46rk.js";import{n as ge}from"./p4ProjectFile-D9Mx0dmO.js";import{r as _e,t as ve}from"./alert-B2wk0CaO.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-D-5E1K-3.js";import{Mi as Te,Sn as Ee,bn as De,pn as Oe,yi as ke}from"./main-DUXMPAgZ.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-BCJfjG7L.js";import{t as Re}from"./ProjectDefaultsSettings-CXY57B72.js";import{t as ze}from"./SettingsScopeNotice-4PZ3qjUl.js";var Be=l(),Q=e(n(),1),$=e(v(),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!D(t)||I(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}=G(),l=g(H),u=e.onPickExternal,d=T(typeof navigator>`u`?``:navigator.platform),f=(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)(X,{open:e.open,onOpenChange:e.onOpenChange,children:e.open?(0,$.jsx)(J,{"aria-label":`Choose project icon`,className:`overflow-hidden`,onBackdropPointerDown:()=>e.onOpenChange(!1),children:(0,$.jsx)(Ee,{"aria-label":`Choose project icon`,autoHighlight:`always`,escapeLabel:`Close`,footerActionLabel:`Select icon`,footerTrailing:u?(0,$.jsx)(Y,{disabled:a,onClick:()=>{o(!0),u().then(t=>{t&&(e.onOpenChange(!1),e.onSelect(t))}).catch(e=>{z.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:f.length>0?[{value:`project-favicon-files`,label:e.projectName,items:f}]:[],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 o;if(t[1]!==i||t[2]!==r||t[3]!==a||t[4]!==n){let e;t[6]!==i||t[7]!==r||t[8]!==a?(e=e=>{let t=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)(O,{size:`icon-xs`,variant:`ghost-muted`,"aria-label":`Edit ${e.name}`,disabled:i,onClick:()=>a(e),children:(0,$.jsx)(p,{className:`size-3.5`})})})]})},e.id)},t[6]=i,t[7]=r,t[8]=a,t[9]=e):e=t[9],o=n.map(e),t[1]=i,t[2]=r,t[3]=a,t[4]=n,t[5]=o}else o=t[5];return o}function Ge(e){if(e._tag===`Failure`&&!re(e)){let t=ie(e);z.add({type:`error`,title:`Failed to save project actions`,description:t instanceof Error?t.message:`An error occurred.`})}return j(e,()=>void 0)}function Ke(e){let t=M(),[n,r]=(0,Q.useState)(!1),i=(0,Q.useRef)(!1),a=W(V.updateSettings,`project actions update`),o=W(V.upsertKeybinding,`action shortcut update`),s=W(V.removeKeybinding,`action shortcut removal`);async function c(n,c,l){if(i.current||e.length===0){let e=`No available machine, or another action change is saving.`;return z.add({type:`error`,title:`Actions not saved`,description:e}),w(y(Error(e)))}if(e.some(({environmentId:e})=>!U(e,`settings:write`)))return Ge(w(y(new d({requiredScope:m,message:`This connection cannot change environment settings.`}))));i.current=!0,r(!0);try{for(let{environmentId:r,settings:i,keybindings:u,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=c?[c]: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(u,n),c=a?Ie({keybinding:a,command:n}):null,p=Ie({keybinding:l,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:c&&c.key!==p.key?{...p,replace:c}:p}):c&&!m?await s({environmentId:r,input:c}):null;if(h?._tag===`Failure`)return Ge(h)}}return k(void 0)}finally{i.current=!1,r(!1)}}function l(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 c(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:c,submit:l}}function qe(){let e=(0,Be.c)(67),{scope:t,targets:n,target:r}=ye(),{environments:i}=ae(),o=t.kind===`project`||t.kind===`checkout`,c;e[0]!==i||e[1]!==r?(c=r?i.find(e=>e.environmentId===r.environmentId)?.serverConfig:void 0,e[0]=i,e[1]=r,e[2]=c):c=e[2];let l=c,u;e[3]===r?.settings.defaultProjectScripts?u=e[4]:(u=r?.settings.defaultProjectScripts??[],e[3]=r?.settings.defaultProjectScripts,e[4]=u);let d=u,p=l?.keybindings??h,m;if(e[5]!==d||e[6]!==n){let t;e[8]===d?t=e[9]:(t=e=>JSON.stringify(e.settings.defaultProjectScripts)!==JSON.stringify(d),e[8]=d,e[9]=t),m=n.some(t),e[5]=d,e[6]=n,e[7]=m}else m=e[7];let g=m,v=xe(),[y,b]=(0,Q.useState)(null),S,w,T;e[10]!==i||e[11]!==o||e[12]!==t.members||e[13]!==n?(S=new Map(o?t.members.map(Ye):[]),w=Ke,T=n.flatMap(e=>{let t=i.find(t=>t.environmentId===e.environmentId);if(!t?.serverConfig)return[];let n=e.projectId?S.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]=S,e[15]=w,e[16]=T):(S=e[14],w=e[15],T=e[16]);let{saving:D,persist:k,submit:A}=w(T),j;e[17]!==S||e[18]!==r?(j=r?.projectId?S.get(r.projectId):void 0,e[17]=S,e[18]=r,e[19]=j):j=e[19];let M=j,N;e[20]===M?.environmentId?N=e[21]:(N=M?.environmentId??C.make(`none`),e[20]=M?.environmentId,e[21]=N);let P=Pe(N,M?.workspaceRoot??null),F;if(e[22]!==d||e[23]!==P.scripts){let t;e[25]===d?t=e[26]:(t=e=>!d.some(t=>t.command===e.command||t.name.toLowerCase()===e.name.toLowerCase()),e[25]=d,e[26]=t),F=P.scripts.filter(t),e[22]=d,e[23]=P.scripts,e[24]=F}else F=e[24];let I=F,L;e[27]===A?L=e[28]:(L=async e=>{let t={name:e.name,command:e.command,icon:e.icon??`play`,runOnWorktreeCreate:e.runOnWorktreeCreate??!1,waitForSetup:e.runOnWorktreeCreate===!0&&e.async===!1,runOnSettle:e.runOnSettle??!1,keybinding:null,previewUrl:e.previewUrl??null,autoOpenPreview:e.previewUrl?e.autoOpenPreview??!1:!1},n=await A(null,t);if(n._tag===`Failure`&&!re(n)){let e=ie(n);b({scriptId:null,initial:t,error:e instanceof Error?e.message:`Failed to import action.`})}},e[27]=A,e[28]=L);let R=L,z;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(z=[`defaultProjectScripts`],e[29]=z):z=e[29];let B;e[30]===k?B=e[31]:(B=()=>void k(Je),e[30]=k,e[31]=B);let V;e[32]!==v||e[33]!==R||e[34]!==I||e[35]!==D?(V=I.length>0?(0,$.jsxs)(a,{children:[(0,$.jsxs)(E,{render:(0,$.jsx)(O,{id:`import-scripts`,size:`xs`,variant:`ghost`,disabled:D||!v,type:`button`}),children:[`Import scripts`,(0,$.jsx)(x,{className:`size-3.5`})]}),(0,$.jsxs)(_,{align:`end`,children:[(0,$.jsxs)(te,{children:[(0,$.jsx)(s,{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)(ne,{}),I.map(e=>(0,$.jsxs)(ee,{onClick:()=>void R(e),children:[(0,$.jsx)(Fe,{icon:e.icon??`play`,className:`size-4 shrink-0`}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`truncate font-medium`,children:e.name}),(0,$.jsx)(`div`,{className:`truncate font-mono text-muted-foreground`,children:e.command})]})]},`${e.name} ${e.command}`))]})]}):null,e[32]=v,e[33]=R,e[34]=I,e[35]=D,e[36]=V):V=e[36];let H=D||!v||n.length===0,U,oe;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>b({scriptId:null,initial:Le}),oe=(0,$.jsx)(f,{className:`size-3.5`}),e[37]=U,e[38]=oe):(U=e[37],oe=e[38]);let W;e[39]===H?W=e[40]:(W=(0,$.jsxs)(O,{size:`xs`,variant:`outline`,disabled:H,onClick:U,children:[oe,`Add action`]}),e[39]=H,e[40]=W);let G;e[41]!==V||e[42]!==W?(G=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[V,W]}),e[41]=V,e[42]=W,e[43]=G):G=e[43];let K;e[44]!==g||e[45]!==B||e[46]!==G?(K=(0,$.jsx)(Z,{serverScoped:!0,settingKeys:z,mixed:g,title:`Actions`,description:`Commands that run in this project's checkout or its worktree, with optional shortcuts.`,onResetOverride:B,control:G}),e[44]=g,e[45]=B,e[46]=G,e[47]=K):K=e[47];let q;e[48]!==v||e[49]!==p||e[50]!==g||e[51]!==D||e[52]!==d?(q=g?(0,$.jsx)(Z,{title:`Different actions across environments`,description:`Choose one environment to edit its list. Adding an action here adds it on every selected environment.`}):(0,$.jsx)(We,{scripts:d,keybindings:p,disabled:D||!v,onEdit:e=>b(Me(e,p))}),e[48]=v,e[49]=p,e[50]=g,e[51]=D,e[52]=d,e[53]=q):q=e[53];let J;e[54]===P.status?J=e[55]:(J=P.status===`invalid`?(0,$.jsx)(Z,{title:`p4.json is invalid`,description:`A p4.json exists in this checkout but fails to parse, so every action and icon it declares is ignored. Check the JSON syntax and icon values.`,className:`text-warning`}):null,e[54]=P.status,e[55]=J);let Y;e[56]!==k||e[57]!==y||e[58]!==d||e[59]!==A||e[60]!==r?(Y=r&&(0,$.jsx)(Ne,{environmentId:r.environmentId,editScope:`settings:write`,request:y,scripts:d,onSubmit:A,onDelete:e=>void k(t=>t.filter(t=>t.id!==e),e,null),onClose:()=>b(null)}),e[56]=k,e[57]=y,e[58]=d,e[59]=A,e[60]=r,e[61]=Y):Y=e[61];let X;return e[62]!==K||e[63]!==q||e[64]!==J||e[65]!==Y?(X=(0,$.jsxs)(we,{id:`project-actions`,title:`Actions`,children:[K,q,J,Y]}),e[62]=K,e[63]=q,e[64]=J,e[65]=Y,e[66]=X):X=e[66],X}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-CFdK4dy-.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,231,232])));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=L(c),u;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(u={select:tt},t[1]=u):u=t[1];let d=R(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,ee=(0,Q.useRef)(null),g,_;t[9]!==o||t[10]!==a||t[11]!==h||t[12]!==p?(g=()=>{p&&h.length!==0&&(ee.current={key:p.projectKey,environmentId:a,checkoutKey:o,memberKeys:h.map(et)})},_=[p,h,a,o],t[9]=o,t[10]=a,t[11]=h,t[12]=p,t[13]=g,t[14]=_):(g=t[13],_=t[14]),(0,Q.useEffect)(g,_);let v,y;if(t[15]!==o||t[16]!==a||t[17]!==s||t[18]!==h.length||t[19]!==l||t[20]!==d||t[21]!==n?(y=()=>{if(h.length>0)return;let e=ee.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})},v=[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]=v,t[23]=y):(v=t[22],y=t[23]),(0,Q.useEffect)(y,v),!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 b;t[27]!==h||t[28]!==p?(b={...p,memberProjects:h,environmentId:h[0].environmentId,id:h[0].id},t[27]=h,t[28]=p,t[29]=b):b=t[29];let x=b,S=`${p.projectKey}:${a??`all`}:${o??`all`}`,C=h.length<p.memberProjects.length,w;return t[30]!==x||t[31]!==S||t[32]!==C?(w=(0,$.jsx)(nt,{group:x,hasOtherMembers:C},S),t[30]=x,t[31]=S,t[32]=C,t[33]=w):w=t[33],w}function et(e){return e.physicalProjectKey}function tt(e){return e.pathname}function nt({group:e,hasOtherMembers:t}){let n=L({from:`/settings`}),a=B(),{environments:s}=ae(),l=(0,Q.useMemo)(()=>new Map(s.map(e=>[e.environmentId,e])),[s]),d=oe(e.memberProjects,b),f=e.memberProjects.every(e=>d.has(e.environmentId)),p=e.memberProjects.find(e=>l.get(e.environmentId)?.serverConfig!=null)??e.memberProjects[0],m=F(),h=Te(P.update,{reportFailure:!1}),ee=Te(P.delete,{reportFailure:!1}),g=(0,Q.useRef)(!1),_=p.faviconPath??null,v=p.projectIcon??null,x=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`||re(t))return;let n=ie(t);z.add(q({type:`error`,title:e,description:n instanceof Error?n.message:`An error occurred.`}))},[]),T=(0,Q.useCallback)((e,t)=>{let n=e.find(e=>!U(e.environmentId,b));if(!n)return null;let r=w(y(Error(`This connection cannot change projects in ${n.environmentLabel??`this environment`}.`)));return C(t,r),r},[C]),E=(0,Q.useCallback)(async(t,n)=>{let r=T(e.memberProjects,n);if(r)return r;let i=e.memberProjects.find(e=>{let t=l.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=w(y(e));return C(n,t),t}for(let r of e.memberProjects){let i=T([r],n);if(i)return i;let a=j(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 k(void 0)},[T,l,e.memberProjects,C,h]),te=(0,Q.useCallback)(async(t,n)=>{let r=t.trim();if(!r){z.add({type:`warning`,title:`Project title cannot be empty`});return}Xe(e.memberProjects.map(e=>e.title),r,n)&&await E({title:r},`Failed to rename project`)},[e.memberProjects,E]),[D,ne]=S(!f),[M,I]=S(!f),[R,V]=(0,Q.useState)(!1),H=(0,Q.useRef)(!1),W=(0,Q.useCallback)(async e=>{if(!H.current){H.current=!0,V(!0);try{await E(e,`Failed to update project icon`)}finally{H.current=!1,V(!1)}}},[E]),G=e.memberProjects.length>1,J=(0,Q.useCallback)(async r=>{if(T(r,`Failed to remove project`))return;let a=K();if(!a)return;let s=new Set(r.map(Qe)),l=m.filter(e=>s.has(`${e.environmentId}:${e.projectId}`)),u=r.length===e.memberProjects.length,d=t||!u?`checkout`:`project`,f=r.length===1?r[0]:null,p=f?.title??e.displayName,h=await A(()=>a.dialogs.confirm([l.length>0?`Remove ${d} "${p}" and delete its ${l.length} thread${l.length===1?``:`s`}?`:`Remove ${d} "${p}"?`,...f?[`Path: ${f.workspaceRoot}`,...f.environmentLabel?[`Environment: ${f.environmentLabel}`]:[]]:[`This removes ${r.length} grouped project entries.`],...l.length>0?[`This permanently clears conversation history for those threads and any archived threads.`]:[`This permanently clears any archived conversation history.`],u&&!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||T(r,`Failed to remove project`))return;let g=i.getState();for(let e of r){if(T([e],`Failed to remove project`))return;let t=l.filter(t=>t.environmentId===e.environmentId&&t.projectId===e.id),n=j(await ee({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=o(e.environmentId,e.id);await N(r),ke(r,t.map(e=>c(e.environmentId,e.id)));let i=g.getDraftThreadByProjectRef(r);i&&g.clearDraftThread(i.draftId),g.clearProjectDraftThreadId(r)}u&&!t&&n({to:`/`,replace:!0})},[T,ee,e.displayName,e.memberProjects.length,t,n,C,m]),Y=(0,$.jsx)(we,{title:`Checkouts`,children:e.memberProjects.map(e=>(0,$.jsx)(Z,{title:e.environmentLabel??`Environment`,description:e.workspaceRoot,control:(0,$.jsx)(O,{size:`sm`,variant:`outline`,disabled:!d.has(e.environmentId),onClick:()=>void J([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)(u,{"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:()=>{g.current=!0},onBlur:e=>{let t=g.current;g.current=!1,te(e.currentTarget.value,t)},onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur()}},`${e.projectKey}:${e.displayName}`)}),(0,$.jsx)(Z,{title:`Project icon`,description:v?.kind===`lucide`?`${v.name} · ${v.color}`:v?.kind===`monogram`?`${v.text} · ${v.color}`:v?.kind===`emoji`?v.emoji:_??`Automatic`,resetAction:e.memberProjects.some(e=>e.faviconPath!=null||e.projectIcon!=null)?(0,$.jsx)(Ce,{label:`project icon`,disabled:R||!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)(O,{size:`sm`,variant:`outline`,type:`button`,"aria-label":`Choose a project icon`,disabled:R||!f,onClick:()=>I(!0),children:`Choose icon`}),(0,$.jsx)(O,{size:`sm`,variant:`outline`,type:`button`,"aria-label":`Choose a project icon file`,disabled:R||!f,onClick:()=>ne(!0),children:`Choose file`})]})})]}),(0,$.jsx)(Re,{category:`project`}),(0,$.jsx)(qe,{}),G?Y: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)(O,{size:`sm`,variant:`destructive-outline`,disabled:!f,onClick:()=>void J(e.memberProjects),children:[(0,$.jsx)(r,{}),t?`Remove checkout`:e.memberProjects.length>1?`Remove all entries`:`Remove project`]})})})]}),(0,$.jsx)(Ue,{cwd:p.workspaceRoot,environmentId:p.environmentId,onOpenChange:ne,...x?{onPickExternal:()=>x(p.workspaceRoot)}:{},onSelect:e=>void W({faviconPath:e,projectIcon:null}),open:D&&f,projectName:e.displayName},`${p.environmentId}:${p.workspaceRoot}:${D}`),M&&f?(0,$.jsx)(Q.Suspense,{fallback:null,children:(0,$.jsx)(Ze,{current:v,projectName:p.title,open:!0,onOpenChange:I,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?C.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-r2ZcxKud.js.map
4
+ //# sourceMappingURL=settings.projects-tzSgXlw4.js.map