@p4code/cli 0.8.21 → 0.8.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/dist/{AcpMcpStdioBridge-BL9bAh79.mjs → AcpMcpStdioBridge-BuIIHL4p.mjs} +18 -18
- package/dist/{AcpMcpStdioBridge-DxwEM6O4.mjs → AcpMcpStdioBridge-BvUHCq9r.mjs} +1 -1
- package/dist/{Effect-B-zvTJgX.mjs → Effect-Dxd2t1f5.mjs} +34 -2
- package/dist/{Schema-inVr7S-v.mjs → Schema-CoZlakRf.mjs} +2 -2
- package/dist/{Stream-CX7G9D0M.mjs → Stream-CdSxHO_5.mjs} +2 -2
- package/dist/bin.mjs +4 -4
- package/dist/{binCli-7vuQm4vY.mjs → binCli-CfXLOppT.mjs} +3452 -2670
- package/dist/claude-history-worker.mjs +1 -1
- package/dist/{claudeHistoryWorker-BvaF6m2o.mjs → claudeHistoryWorker-js6Jgg9C.mjs} +2 -2
- package/dist/client/.vite/manifest.json +2211 -2211
- package/dist/client/assets/AlertDialogRoot-DCfR_LaK.js +2 -0
- package/dist/client/assets/{AnimatedHeight-B1LdeRxh.js → AnimatedHeight-DcrvwWWb.js} +2 -2
- package/dist/client/assets/{AuthSurfaceShell-BwoVNx9S.js → AuthSurfaceShell-CFBHG1UK.js} +2 -2
- package/dist/client/assets/{CSPContext-Bn8q5RdR.js → CSPContext-BP4s0CJv.js} +2 -2
- package/dist/client/assets/{ChatGptUsageButton-BKwNHMSp.js → ChatGptUsageButton-CoiZRjaS.js} +2 -2
- package/dist/client/assets/ChatMarkdown-C6I8N1IH.js +65 -0
- package/dist/client/assets/{CheckboxIndicator-DUUgNp1r.js → CheckboxIndicator-DcH9EpvK.js} +2 -2
- package/dist/client/assets/{CodexSetupSection.logic-CGR92Snb.js → CodexSetupSection.logic-sXohw-MK.js} +2 -2
- package/dist/client/assets/{CollapsiblePanel-D1aZAbsh.js → CollapsiblePanel-FknKvWoA.js} +2 -2
- package/dist/client/assets/{ComboboxClear-CMNv82AR.js → ComboboxClear-RsGmZUJN.js} +2 -2
- package/dist/client/assets/{ComboboxGroupLabel-BqpdqndG.js → ComboboxGroupLabel-DO1lnPnr.js} +2 -2
- package/dist/client/assets/{CommandBlock-BGFFySU3.js → CommandBlock-B5S9so33.js} +2 -2
- package/dist/client/assets/{ComposerPromptEditor-DlIuiQ2e.js → ComposerPromptEditor-C7ZRV_6P.js} +5 -5
- package/dist/client/assets/{CompositeRoot-BP063J4d.js → CompositeRoot-DDZcK2m0.js} +2 -2
- package/dist/client/assets/{ConnectionStatusDot-DvalNlEr.js → ConnectionStatusDot-Bz5Ps6Bm.js} +2 -2
- package/dist/client/assets/{DevicePanel-FC3DPqLr.js → DevicePanel-DmfTFNuU.js} +2 -2
- package/dist/client/assets/{DeviceSetup-ERWR4ZzH.js → DeviceSetup-Br_kHy6n.js} +2 -2
- package/dist/client/assets/{DialogTitle-OaePW-Ih.js → DialogTitle-Dr-LJLpq.js} +2 -2
- package/dist/client/assets/{DiffCommentAnnotation-YjjFdEbc.js → DiffCommentAnnotation-FcSG-wBG.js} +2 -2
- package/dist/client/assets/{DiffFileTree-DynXKsOn.js → DiffFileTree-IIdU6CqP.js} +2 -2
- package/dist/client/assets/{DiffPanel-BpuFnTQ7.js → DiffPanel-CEx8f_mo.js} +2 -2
- package/dist/client/assets/{DiffWorkerPoolProvider-DDWtmCyP.js → DiffWorkerPoolProvider-C_VbNhAr.js} +2 -2
- package/dist/client/assets/{EmbeddedDesign-B1fJ5Mbz.js → EmbeddedDesign-Hba9k7LF.js} +2 -2
- package/dist/client/assets/{EnvironmentMachineIcon-DszKXxD_.js → EnvironmentMachineIcon-b_kKEeAf.js} +2 -2
- package/dist/client/assets/{ExpandableText-hoL-6ubc.js → ExpandableText-anFaXhXF.js} +2 -2
- package/dist/client/assets/{FieldControl-DDVVfmpB.js → FieldControl-w2_zp1DT.js} +2 -2
- package/dist/client/assets/{FileDiff-BAjD8hTV.js → FileDiff-B-9keGlb.js} +2 -2
- package/dist/client/assets/{FilePreviewPanel-BjYyaBX0.js → FilePreviewPanel-C1f_ibuL.js} +3 -3
- package/dist/client/assets/{FoldedSettingsSection-CoyiJ_Zj.js → FoldedSettingsSection-gN3w1sSZ.js} +2 -2
- package/dist/client/assets/{FormContext-B0PXExmu.js → FormContext-BWWAKTFF.js} +2 -2
- package/dist/client/assets/{Icons-CX6xNdVb.js → Icons-DzTpHpn1.js} +2 -2
- package/dist/client/assets/Input-DCMTYdrA.js +2 -0
- package/dist/client/assets/{KeybindingsSettings.logic-6FRd2ilb.js → KeybindingsSettings.logic-D8LAdmvB.js} +2 -2
- package/dist/client/assets/{NoProjectsHero-A1VZ7ogx.js → NoProjectsHero-CtzChQ7p.js} +2 -2
- package/dist/client/assets/{T3ConnectAccountPages-Cfc33ihi.js → P4ConnectAccountPages-B3SBsg6B.js} +2 -2
- package/dist/client/assets/{T3ConnectSidebarSignIn-HRtCfmCk.js → P4ConnectSidebarSignIn-DKcaDv93.js} +2 -2
- package/dist/client/assets/PanelLayoutControls-CCYVBazN.js +216 -0
- package/dist/client/assets/{PierreEntryIcon-Ds39h2AA.js → PierreEntryIcon-CjZ8gyJq.js} +2 -2
- package/dist/client/assets/{PopoverHandle-DRjGw1Yt.js → PopoverHandle-1bqR8KHF.js} +2 -2
- package/dist/client/assets/{PreviewPanel-ChNkAjUz.js → PreviewPanel-Kq4mVufQ.js} +2 -2
- package/dist/client/assets/{ProjectDefaultsSettings-Df_lGEeD.js → ProjectDefaultsSettings-DUCUj4oc.js} +2 -2
- package/dist/client/assets/{ProjectFavicon-BtNx7IEw.js → ProjectFavicon-va5UQPLo.js} +3 -3
- package/dist/client/assets/{ProjectIconPickerDialog-CODB2BT9.js → ProjectIconPickerDialog-CN2gK_o7.js} +2 -2
- package/dist/client/assets/{ProjectMonogram-IuYJI7zN.js → ProjectMonogram-B3Dkc8yq.js} +2 -2
- package/dist/client/assets/{ProviderAuthTerminal-78p4XZgL.js → ProviderAuthTerminal-BSIgib7h.js} +2 -2
- package/dist/client/assets/{ProviderModelPicker-C3S7ixLD.js → ProviderModelPicker-BrEkNDPF.js} +2 -2
- package/dist/client/assets/{ProviderSettingsForm-j7_6yEo7.js → ProviderSettingsForm-D6zHGIeN.js} +2 -2
- package/dist/client/assets/{PullRequestCodeTab-DkUNpmvf.js → PullRequestCodeTab-DA-5pWeg.js} +2 -2
- package/dist/client/assets/{ReadOnlySourcePreview-kG5bicDV.js → ReadOnlySourcePreview-BSCVTdYH.js} +2 -2
- package/dist/client/assets/{RenderErrorBoundary-BbYl2ykS.js → RenderErrorBoundary-yWjbnzsc.js} +2 -2
- package/dist/client/assets/{ScheduledTasksSettings-YdKTaY5U.js → ScheduledTasksSettings-B1bSNXTP.js} +3 -3
- package/dist/client/assets/{ScopedSwitch-D9a9Wx-e.js → ScopedSwitch-D3fAHI1-.js} +2 -2
- package/dist/client/assets/{ScrollAreaCorner-Ck3L5tlH.js → ScrollAreaCorner-CNzfnpwK.js} +2 -2
- package/dist/client/assets/{SecretInput-UofV3Jxx.js → SecretInput-D7hYUoFA.js} +2 -2
- package/dist/client/assets/{SelectScrollUpArrow-C_YHAw_f.js → SelectScrollUpArrow-kQBsA9rk.js} +2 -2
- package/dist/client/assets/{SettingsPanels-BoUeQYqp.js → SettingsPanels-6SOZMWhg.js} +5 -5
- package/dist/client/assets/{SettingsPanels.logic-BE_JM5Fc.js → SettingsPanels.logic-CMErdEeV.js} +2 -2
- package/dist/client/assets/{SettingsScopeNotice-CHsOo_U6.js → SettingsScopeNotice-CyzbYUPJ.js} +2 -2
- package/dist/client/assets/ThemeEditorPanel-vZ4MSCBx.js +5 -0
- package/dist/client/assets/{ThreadTerminalDrawer-D_GQQ1Ly.js → ThreadTerminalDrawer-BU_DR6wu.js} +2 -2
- package/dist/client/assets/{TooltipViewport-B_Oz-gLq.js → TooltipViewport-CG7gtflQ.js} +2 -2
- package/dist/client/assets/{Virtualizer-DRAoNAc2.js → Virtualizer-CoK0zXAG.js} +2 -2
- package/dist/client/assets/{WorkspaceBreadcrumb-CpHuVRke.js → WorkspaceBreadcrumb-qAYKTgm8.js} +2 -2
- package/dist/client/assets/{WorkspacePageContainer-BQ0Bk5Qy.js → WorkspacePageContainer-D6i--Hwz.js} +2 -2
- package/dist/client/assets/{WorkspacePageHeader-Cx1gpU1l.js → WorkspacePageHeader-covOFYhv.js} +2 -2
- package/dist/client/assets/_chat-DMXSEEst.js +45 -0
- package/dist/client/assets/{_chat.index-T3ADOYa1.js → _chat.index-C3PnT6ae.js} +2 -2
- package/dist/client/assets/{_chat.new-egywwPr3.js → _chat.new-CxErZ7CC.js} +2 -2
- package/dist/client/assets/{_chat.pull-requests-CkgRG9UN.js → _chat.pull-requests-w2FCKIZ8.js} +2 -2
- package/dist/client/assets/{abnfDiagram-VCTEODGH-BctM0h9j.js → abnfDiagram-VCTEODGH-CWxKS58m.js} +2 -2
- package/dist/client/assets/{alert-CNni4aGm.js → alert-DsgAHDNi.js} +2 -2
- package/dist/client/assets/architecture-7GRP2DOG-BVExhwPq.js +1 -0
- package/dist/client/assets/{architectureDiagram-5GKGNRK7-T6dn-Aw8.js → architectureDiagram-5GKGNRK7-kc6KNP-H.js} +2 -2
- package/dist/client/assets/{assets-B_A7RkiF.js → assets-DW8sK93I.js} +2 -2
- package/dist/client/assets/{blockDiagram-I7D4REHJ-2KUW7DJ1.js → blockDiagram-I7D4REHJ-CFJYOAbd.js} +2 -2
- package/dist/client/assets/{browserHistoryStore-hEHIMltt.js → browserHistoryStore-DjDw15jq.js} +2 -2
- package/dist/client/assets/{browserLinkTarget-CdzL1FA-.js → browserLinkTarget-Br8BmA6w.js} +2 -2
- package/dist/client/assets/{c4Diagram-7LVT6UL2-1uZnjRIl.js → c4Diagram-7LVT6UL2-Sxaodxxv.js} +2 -2
- package/dist/client/assets/channel-BLnKdGtk.js +2 -0
- package/dist/client/assets/{checkbox-BpAfakhx.js → checkbox-D33R1soh.js} +2 -2
- package/dist/client/assets/{chunk-4HAMMTFA-DTdSC_bt.js → chunk-4HAMMTFA-CxocYFD0.js} +2 -2
- package/dist/client/assets/{chunk-75Z2AOVW-D8m_ip6d.js → chunk-75Z2AOVW-CBCO5Noa.js} +2 -2
- package/dist/client/assets/{chunk-DU6HZSFF-cx0FIxcU.js → chunk-DU6HZSFF-CEaklbmE.js} +2 -2
- package/dist/client/assets/{chunk-F27PBJKO-CLaT5xm4.js → chunk-F27PBJKO-Iw-0qjF9.js} +2 -2
- package/dist/client/assets/{chunk-GMAD6QVW-Dh_22wYw.js → chunk-GMAD6QVW-CbDVrypn.js} +2 -2
- package/dist/client/assets/{chunk-GVQU2GXP-Cl592Z8q.js → chunk-GVQU2GXP-BEqmpgLD.js} +2 -2
- package/dist/client/assets/{chunk-IMKFNOWR-b4olkqo9.js → chunk-IMKFNOWR-bgZmQWS5.js} +2 -2
- package/dist/client/assets/{chunk-L3NEJ4N5-C3zHyNed.js → chunk-L3NEJ4N5-LW_IXl13.js} +2 -2
- package/dist/client/assets/{chunk-OSK3NFVY-DfOyV50p.js → chunk-OSK3NFVY-DvGdSD7J.js} +2 -2
- package/dist/client/assets/{chunk-P2QGCYS3-CtwwhFBb.js → chunk-P2QGCYS3-BAXEcEik.js} +2 -2
- package/dist/client/assets/{chunk-POPQ4Y6H-Bn_dv1-6.js → chunk-POPQ4Y6H-yM2kH99r.js} +2 -2
- package/dist/client/assets/{chunk-PWAF6VOD-DB5x5BPu.js → chunk-PWAF6VOD-B19ZyrVH.js} +2 -2
- package/dist/client/assets/{chunk-SHT3W25Y-4SWCrL8G.js → chunk-SHT3W25Y-BhcwXJOc.js} +2 -2
- package/dist/client/assets/{chunk-SVP7TREG-B9UQB6rs.js → chunk-SVP7TREG-B9xbRF9R.js} +2 -2
- package/dist/client/assets/{chunk-TICWLB2K-I0Ma7uE4.js → chunk-TICWLB2K-D_VEGQbw.js} +2 -2
- package/dist/client/assets/classDiagram-ZZMXUADV-B839piSM.js +2 -0
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-B839piSM.js +2 -0
- package/dist/client/assets/{color-picker-KVitc2gM.js → color-picker-D3b0sEoy.js} +2 -2
- package/dist/client/assets/{combobox-DiUoVqyf.js → combobox-DzFRsaks.js} +2 -2
- package/dist/client/assets/{command-CMR1n6Uf.js → command-IDMJ6pXc.js} +2 -2
- package/dist/client/assets/{composer-logic-D76QXdUM.js → composer-logic-CEsP6SV6.js} +2 -2
- package/dist/client/assets/{composerDraftUploads-Vg0GXwnb.js → composerDraftUploads-Qq0xOGEc.js} +2 -2
- package/dist/client/assets/{connect-C-gMnpNs.js → connect-BTIPE2au.js} +2 -2
- package/dist/client/assets/{connect-agent-C4zyA6ta.js → connect-agent-hbkOBaFx.js} +2 -2
- package/dist/client/assets/{cynefin-OW5HDTMX-BJCfymNy.js → cynefin-OW5HDTMX-CWOcHmwk.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-Cxc8iWLh.js → cynefinDiagram-5FMLGOSQ-ksIfZeWS.js} +2 -2
- package/dist/client/assets/{dagre-GXQ25YYZ-DvjGFTC6.js → dagre-GXQ25YYZ-D7qz-Azr.js} +2 -2
- package/dist/client/assets/{design-Cvqy5-YM.js → design-B7V20I1i.js} +2 -2
- package/dist/client/assets/{device-CHTG1mA3.js → device-DX-G6J1j.js} +2 -2
- package/dist/client/assets/{diagram-S7CK7UJ4-DQ3d5nRG.js → diagram-S7CK7UJ4-IBhHReDK.js} +2 -2
- package/dist/client/assets/{diagram-UQ7AKVKN-Hzoc39HG.js → diagram-UQ7AKVKN-EX7tFJEV.js} +2 -2
- package/dist/client/assets/{diagram-VSXAHHWV-BiAz9eK3.js → diagram-VSXAHHWV-BEHOoBER.js} +2 -2
- package/dist/client/assets/{diagram-VX7I27RA-ZvxW6orI.js → diagram-VX7I27RA-Df_ThjhC.js} +2 -2
- package/dist/client/assets/{diagram-Z3DM3KII-DYVNNS6J.js → diagram-Z3DM3KII-DudywHX4.js} +2 -2
- package/dist/client/assets/{dialog-D--IO2tX.js → dialog-YpQOq7Ug.js} +2 -2
- package/dist/client/assets/{diffRendering-CH8Pp2NZ.js → diffRendering-CgLbOp0J.js} +2 -2
- package/dist/client/assets/{discovery-list-E9mW3ie9.js → discovery-list-CnlrZrDo.js} +2 -2
- package/dist/client/assets/{dist-D_us60iU.js → dist-usNgCtd_.js} +3 -3
- package/dist/client/assets/{draft-input-BqhTvFTz.js → draft-input-DW6EgVbF.js} +2 -2
- package/dist/client/assets/{duoViewer-C1ysZzHj.js → duoViewer-CgVOZcYe.js} +2 -2
- package/dist/client/assets/{dynamic-D3BvMY7V.js → dynamic-C1qIL2Wy.js} +2 -2
- package/dist/client/assets/{ebnfDiagram-PWID7BFC-ARv-iUm5.js → ebnfDiagram-PWID7BFC-DPJg2C3n.js} +2 -2
- package/dist/client/assets/{embeddedScripts-iET5Slgf.js → embeddedScripts-CAZM4r8Y.js} +2 -2
- package/dist/client/assets/{empty-IIGW45Hv.js → empty-QSN6WiRO.js} +2 -2
- package/dist/client/assets/entities-Bj5ceyfn.js +2 -0
- package/dist/client/assets/{erDiagram-RLTQ6QDP-BbhShOfn.js → erDiagram-RLTQ6QDP-BySDEjHG.js} +2 -2
- package/dist/client/assets/eventmodeling-NTZA5JFV-CrSSBuUT.js +1 -0
- package/dist/client/assets/{fileLinks-BVZWyXb4.js → fileLinks-ShhGM_AF.js} +2 -2
- package/dist/client/assets/{fileTreeExpansion-CWBDW5x7.js → fileTreeExpansion-DZnEBuaB.js} +5 -5
- package/dist/client/assets/flowDiagram-HODETNUW-GdATwCAd.js +1 -0
- package/dist/client/assets/{ganttDiagram-EL5Y4UJY-YyvVQr9f.js → ganttDiagram-EL5Y4UJY-CJAhE7we.js} +2 -2
- package/dist/client/assets/{getDiffFileInput-CqWRYbh0.js → getDiffFileInput-BxuEGdnM.js} +2 -2
- package/dist/client/assets/{gitGraph-4MIJSDKK-B1sT41xD.js → gitGraph-4MIJSDKK-BqKoI8Rd.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-2YfTeJPY.js → gitGraphDiagram-WWUBYQGX-BPFwoaRw.js} +2 -2
- package/dist/client/assets/{guideRunStore-C8EitNtt.js → guideRunStore-CYD68wqk.js} +2 -2
- package/dist/client/assets/{htmlRender-n-z4ejOb.js → htmlRender-p6atQGoW.js} +2 -2
- package/dist/client/assets/{index-D5grnFOh.js → index-CnQWjeBY.js} +3 -3
- package/dist/client/assets/{info-A6RAGUB7-Bxvrguok.js → info-A6RAGUB7-R8j64K2s.js} +1 -1
- package/dist/client/assets/{infoDiagram-27XIBGKW-Ci9YhEz1.js → infoDiagram-27XIBGKW-DFqL9n-v.js} +2 -2
- package/dist/client/assets/{input-DX_wpYEr.js → input-Df_UyHLk.js} +2 -2
- package/dist/client/assets/{input-group-B7App4HX.js → input-group-CpRPTpIU.js} +2 -2
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-DrTMtdZr.js → ishikawaDiagram-5VMMS53U-C-786VMl.js} +2 -2
- package/dist/client/assets/{journeyDiagram-3NMN7TZE-Cad85NEf.js → journeyDiagram-3NMN7TZE-lzAoDD4e.js} +2 -2
- package/dist/client/assets/{kanban-definition-UXKFOSKX-CyPoc7fr.js → kanban-definition-UXKFOSKX-CJDCWAxz.js} +2 -2
- package/dist/client/assets/{kbd-CBsCsK1C.js → kbd-BWmfbdyt.js} +2 -2
- package/dist/client/assets/{keybindings-DQLn36Qh.js → keybindings-Cwx4RZou.js} +2 -2
- package/dist/client/assets/{lazyRouteComponent-F8XJwdjp.js → lazyRouteComponent-AWcDof8d.js} +2 -2
- package/dist/client/assets/{line-D-vamv77.js → line-BV7EkscB.js} +2 -2
- package/dist/client/assets/{link-Dsk-mMeT.js → link-ymnjoepm.js} +2 -2
- package/dist/client/assets/{linkedPrompt-QuSBC7T4.js → linkedPrompt-D1v0zLjD.js} +2 -2
- package/dist/client/assets/{main-B3UqEpE9.css → main-Byysx0nX.css} +1 -1
- package/dist/client/assets/main-D8FWUaO_.js +26 -0
- package/dist/client/assets/{mediaReference-CyhWqXsL.js → mediaReference-DjHCSaNZ.js} +2 -2
- package/dist/client/assets/{mediaSource-DzNyV4QZ.js → mediaSource-DrVcMaQl.js} +2 -2
- package/dist/client/assets/{mermaid-parser.core-DPipy20D.js → mermaid-parser.core-dhHCExtt.js} +4 -4
- package/dist/client/assets/{mermaid.core-BhvlRFAw.js → mermaid.core-DixI3w-9.js} +5 -5
- package/dist/client/assets/{mindmap-definition-YA3MSWOX-BmaL4P3W.js → mindmap-definition-YA3MSWOX-BHehI_9I.js} +2 -2
- package/dist/client/assets/{number-field-CO0djGoZ.js → number-field-BHWzsgFF.js} +2 -2
- package/dist/client/assets/{observeResize-DnTxIA8M.js → observeResize-uogErzin.js} +2 -2
- package/dist/client/assets/{onboarding-Bk1fay_k.js → onboarding-BkSIwdaJ.js} +2 -2
- package/dist/client/assets/{openFileInPreview-BoDixD_F.js → openFileInPreview-3vlmqdKv.js} +2 -2
- package/dist/client/assets/{p4ProjectFile-Cvz5u0b7.js → p4ProjectFile-B9fwmcbM.js} +2 -2
- package/dist/client/assets/{packet-AYTQ26CC-Dv1A4BvT.js → packet-AYTQ26CC-DhFsyjVR.js} +1 -1
- package/dist/client/assets/{pair-Bvx1yb_1.js → pair-DJbA4cVs.js} +2 -2
- package/dist/client/assets/{pegDiagram-XKGWAZYB-BSldN3hU.js → pegDiagram-XKGWAZYB-DBKpIU8U.js} +2 -2
- package/dist/client/assets/{phoneViewer-CEU-YPRt.js → phoneViewer-CywOkDco.js} +2 -2
- package/dist/client/assets/{pie-WAS4IAKB-iLUxjnvf.js → pie-WAS4IAKB-cW3as8Lm.js} +1 -1
- package/dist/client/assets/{pieDiagram-E7YTZNPT-4ZtbrRQa.js → pieDiagram-E7YTZNPT-CuM-4V4_.js} +2 -2
- package/dist/client/assets/{pierre-icons-duX6avqL.js → pierre-icons-Bhwlc2rO.js} +22 -22
- package/dist/client/assets/{popover-BJ6nvlLO.js → popover-2GkuSL2i.js} +2 -2
- package/dist/client/assets/{preview-Cf8NQ1hB.js → preview-BnLuRquy.js} +2 -2
- package/dist/client/assets/{preview-iwQ6KbXA.js → preview-DWVmLubs.js} +2 -2
- package/dist/client/assets/{previewMiniPlayerStore-C-S6Z_7R.js → previewMiniPlayerStore-B2cko9-z.js} +2 -2
- package/dist/client/assets/{primary-BWLl-lP0.js → primary-CKEI970r.js} +2 -2
- package/dist/client/assets/primaryCloudLinkState-CwxbxrZn.js +2 -0
- package/dist/client/assets/projectFilesQueryState-45r9sIZp.js +2 -0
- package/dist/client/assets/{projectScriptEditor-BI4TQzLb.js → projectScriptEditor-CI1LZs9V.js} +2 -2
- package/dist/client/assets/{providerSkills-h-0NbrXw.js → providerSkills-OICI2srI.js} +2 -2
- package/dist/client/assets/{pullRequestDetail.logic-w9YCNM32.js → pullRequestDetail.logic-DT8Qo5OA.js} +3 -3
- package/dist/client/assets/{pullRequestIcons-BjW5TUsG.js → pullRequestIcons-BBzWaymE.js} +2 -2
- package/dist/client/assets/{pullRequestReviewStore-CfDcNEFp.js → pullRequestReviewStore-DKeU327h.js} +2 -2
- package/dist/client/assets/{pullRequests-PrPMEuwL.js → pullRequests-DLPX2CY-.js} +2 -2
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-BA_0gIwm.js → quadrantDiagram-AXDQQJYC-DSJ5VFnE.js} +2 -2
- package/dist/client/assets/queries-lVyDrFzk.js +2 -0
- package/dist/client/assets/{query-MZn8giyP.js → query-tgXMuDtS.js} +2 -2
- package/dist/client/assets/{radar-RG4KPBEZ-ClHSGc5G.js → radar-RG4KPBEZ-CfIGvIx_.js} +1 -1
- package/dist/client/assets/{radio-group-Ca6IMyWa.js → radio-group-CJu78gKo.js} +2 -2
- package/dist/client/assets/{railroad-74A4TZTK-CLfqlsOS.js → railroad-74A4TZTK-DB4Av5dd.js} +1 -1
- package/dist/client/assets/railroad-abnf-HS5TGJTU-Ce_EhWE2.js +1 -0
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-BWrImE-J.js +1 -0
- package/dist/client/assets/railroad-peg-WCYAUIDC-BydBUlqT.js +1 -0
- package/dist/client/assets/{railroadDiagram-O6MQD6OU-C3O0sd3N.js → railroadDiagram-O6MQD6OU-cpv2Uyk5.js} +2 -2
- package/dist/client/assets/{renderScheduler-C_PxJDPT.js → renderScheduler-h5pQXGNH.js} +2 -2
- package/dist/client/assets/{requirementDiagram-BXWQKSXE-DTD2i006.js → requirementDiagram-BXWQKSXE-DYwMIoLP.js} +2 -2
- package/dist/client/assets/rightPanelStore-Csibei0O.js +2 -0
- package/dist/client/assets/{runtime-CvGlGrbH.js → runtime-DATbE5vH.js} +5 -5
- package/dist/client/assets/runtime-Dks8Wo5P.js +2 -0
- package/dist/client/assets/{runtimeModeConfig-CTQ97M7F.js → runtimeModeConfig-n1vq0Zzd.js} +2 -2
- package/dist/client/assets/{sankeyDiagram-P5KCCOFB-DN-FD0Rw.js → sankeyDiagram-P5KCCOFB-BqmXJBYG.js} +2 -2
- package/dist/client/assets/{scheduledTasksSettings.logic-V_IgyOeJ.js → scheduledTasksSettings.logic-Cg8SF9mr.js} +2 -2
- package/dist/client/assets/{scroll-area-BStafc_O.js → scroll-area-0-l4q4Pk.js} +2 -2
- package/dist/client/assets/{select-BIK-KVyd.js → select-Dhapqr3j.js} +2 -2
- package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-BpTwzO_D.js → sequenceDiagram-WJ2MYXX4-h3AJox3t.js} +2 -2
- package/dist/client/assets/{server-h8-LTzsE.js → server-rxH1493J.js} +2 -2
- package/dist/client/assets/{session-BnZv-sUV.js → session-Bgs0dTwK.js} +2 -2
- package/dist/client/assets/session-logic-BuYRdtPc.js +26 -0
- package/dist/client/assets/{settings-CX5J7KOC.js → settings-CGf9Ad5Y.js} +2 -2
- package/dist/client/assets/{settings.appearance-CX8WldRu.js → settings.appearance-DV608fbL.js} +2 -2
- package/dist/client/assets/settings.archived-Cav4CAd_.js +2 -0
- package/dist/client/assets/{settings.computer-use-CYOpSx3u.js → settings.computer-use-C3SE4DHj.js} +2 -2
- package/dist/client/assets/settings.connections-C9Kh1b2k.js +2 -0
- package/dist/client/assets/{settings.data-controls-Dw1t2NUy.js → settings.data-controls-DjgZVIMy.js} +2 -2
- package/dist/client/assets/{settings.decisions-CjQBlU5H.js → settings.decisions-z3RVOG7-.js} +2 -2
- package/dist/client/assets/{settings.designs-CdUp5EKA.js → settings.designs-DgLVIZOE.js} +2 -2
- package/dist/client/assets/{settings.diagnostics-CChxKGXN.js → settings.diagnostics-CaXx9YEU.js} +2 -2
- package/dist/client/assets/{settings.general-fPNbGy-A.js → settings.general-BOpvFj1F.js} +2 -2
- package/dist/client/assets/{settings.integrations-lsI9Ds_Z.js → settings.integrations-MHjX-SLC.js} +2 -2
- package/dist/client/assets/{settings.keybindings-BYfmXPXW.js → settings.keybindings-D78CWKIy.js} +2 -2
- package/dist/client/assets/{settings.open-source-licenses-Cmww0egR.js → settings.open-source-licenses-BhpBR1nY.js} +2 -2
- package/dist/client/assets/{settings.plugins-DOL0xzP_.js → settings.plugins-d9-jrUr-.js} +3 -3
- package/dist/client/assets/{settings.projects-BmPcRKSU.js → settings.projects-BiDMtruF.js} +3 -3
- package/dist/client/assets/{settings.providers-BmXJRxVY.js → settings.providers-BarMZxaG.js} +3 -3
- package/dist/client/assets/{settings.scheduled-tasks-DIrqKW18.js → settings.scheduled-tasks-BA_O1-Fn.js} +2 -2
- package/dist/client/assets/{settings.snap-shot-cYlYvsZa.js → settings.snap-shot-Crh49RtQ.js} +2 -2
- package/dist/client/assets/{settings.source-control-DiCRUoZ-.js → settings.source-control-DIrrX9Dt.js} +2 -2
- package/dist/client/assets/{settings.storage-_Qk3Am6V.js → settings.storage-D6vDu4vG.js} +2 -2
- package/dist/client/assets/settingsLayout-BQsOdImg.js +3 -0
- package/dist/client/assets/{sidebar-CilourkR.js → sidebar-DTT0HQ9J.js} +2 -2
- package/dist/client/assets/{sidebarProjectGrouping-Bk_4pOCF.js → sidebarProjectGrouping-JqsedUb6.js} +2 -2
- package/dist/client/assets/{skeleton-DoQ8WJ33.js → skeleton-D-FcvmF0.js} +2 -2
- package/dist/client/assets/{sourceControl-CbwbzP2H.js → sourceControl-CrjTZJC-.js} +2 -2
- package/dist/client/assets/{sourceControlClients-Bqx0yIVC.js → sourceControlClients-DYQ3gMZ2.js} +2 -2
- package/dist/client/assets/{spinner-dBHTxMdw.js → spinner-AJeHmaWN.js} +2 -2
- package/dist/client/assets/{standalone-page-7u6OMfTi.js → standalone-page-Df29sgRU.js} +2 -2
- package/dist/client/assets/{stateDiagram-D77RDMKH-B5DXt7YQ.js → stateDiagram-D77RDMKH-C0KiABVq.js} +2 -2
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-DlcRyn96.js +2 -0
- package/dist/client/assets/{swimlanes-42K2YHIH-BwtHh4XF.js → swimlanes-42K2YHIH-BdAWIkuy.js} +2 -2
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-lbxQDJ07.js +9 -0
- package/dist/client/assets/{terminal-links-DaTgSxq7.js → terminal-links-BjKL3dH7.js} +2 -2
- package/dist/client/assets/{terminalSessions-BH4SsD0n.js → terminalSessions-dkFe-6qM.js} +2 -2
- package/dist/client/assets/{textarea-DyCJe8OO.js → textarea-CqADnND1.js} +2 -2
- package/dist/client/assets/themePalette-Co4xeJnW.js +5 -0
- package/dist/client/assets/{timeline-definition-24CTP7MA-DcZAbrWX.js → timeline-definition-24CTP7MA-CkYp2QT_.js} +2 -2
- package/dist/client/assets/toast-gFAddE-Q.js +2 -0
- package/dist/client/assets/{toggle-C4iGKTHY.js → toggle-BM8lnQ29.js} +2 -2
- package/dist/client/assets/{toggle-group-CM-lVPv_.js → toggle-group-DaqkIApY.js} +2 -2
- package/dist/client/assets/{tooltip-C85X81rS.js → tooltip-ngKqo-lA.js} +2 -2
- package/dist/client/assets/{treeView-Q6P3EWNA-Bi9LlHgf.js → treeView-Q6P3EWNA-YWYRI1IG.js} +1 -1
- package/dist/client/assets/{treemap-WGGIJYW6-Ddxv0kaw.js → treemap-WGGIJYW6-DOqHNCbg.js} +1 -1
- package/dist/client/assets/{uiStateStore-BQNw2Dqk.js → uiStateStore-Ddhpg65j.js} +3 -3
- package/dist/client/assets/{usage-D_p-kdF1.js → usage-B3PzCXST.js} +2 -2
- package/dist/client/assets/{usageAccess-BS7RH41F.js → usageAccess-AcIxVQqJ.js} +2 -2
- package/dist/client/assets/{usageFormat-neDCKBUu.js → usageFormat-BXW38hCK.js} +2 -2
- package/dist/client/assets/{usageShortcuts-BXE7khxl.js → usageShortcuts-Qkdifm3k.js} +2 -2
- package/dist/client/assets/{use-atom-command-BZ0heqC5.js → use-atom-command-BJxdfyHC.js} +2 -2
- package/dist/client/assets/{useAriaLabelledBy-0jbiz1G5.js → useAriaLabelledBy-C0a8QEEb.js} +2 -2
- package/dist/client/assets/{useHandleNewThread-xDPfeiE8.js → useHandleNewThread-BUYzfgdc.js} +2 -2
- package/dist/client/assets/{useLocation-CEeuom34.js → useLocation-BQDC59xg.js} +2 -2
- package/dist/client/assets/useNavigate-BziZQ-Vx.js +2 -0
- package/dist/client/assets/{useNavigateBack-B1hKrkap.js → useNavigateBack-BH5As9D1.js} +2 -2
- package/dist/client/assets/{useT3ConnectAuthPrompt-xAWzgrFw.js → useP4ConnectAuthPrompt-DHu7R38-.js} +2 -2
- package/dist/client/assets/{useParams-DPNRViD9.js → useParams-BMa26XZG.js} +2 -2
- package/dist/client/assets/{usePermissionStatus-DhHAmOgT.js → usePermissionStatus-CUViQRYY.js} +2 -2
- package/dist/client/assets/{usePullRequestActions-BxkTyNnd.js → usePullRequestActions-DGkavykA.js} +2 -2
- package/dist/client/assets/{useRegisterFieldControl-DHg4qk95.js → useRegisterFieldControl-CosvijuC.js} +2 -2
- package/dist/client/assets/{useScopedModelAvailability-6832Pqao.js → useScopedModelAvailability-DOJzIjns.js} +2 -2
- package/dist/client/assets/useSettings-B_WzhJqU.js +3 -0
- package/dist/client/assets/utils-BctiQ4Ue.js +37 -0
- package/dist/client/assets/{vcsRefInvalidation-C1-o4QR4.js → vcsRefInvalidation-cn2N4Xey.js} +2 -2
- package/dist/client/assets/{vennDiagram-4TSXK5OY-gRgKfcwz.js → vennDiagram-4TSXK5OY-DvpVodA1.js} +2 -2
- package/dist/client/assets/{wardley-WFR3VGLG-DcrHek4R.js → wardley-WFR3VGLG-CW8u1RAF.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-VM6X3IG4-Dy8jwPMm.js → wardleyDiagram-VM6X3IG4-B34GmEPm.js} +2 -2
- package/dist/client/assets/{welcome-Bx0ykTSW.js → welcome-DEFnpzjQ.js} +2 -2
- package/dist/client/assets/{xychartDiagram-S5SC5T6Z-BE_oCBL1.js → xychartDiagram-S5SC5T6Z-Ds5Ioly5.js} +2 -2
- package/dist/client/index.html +9 -31
- package/dist/{renderer-5lNN05tA.mjs → renderer-ClrN4p2R.mjs} +2 -2
- package/dist/resource-monitor/darwin-arm64/{t3-resource-monitor → p4-resource-monitor} +0 -0
- package/dist/{runtime-BuR0otfT.mjs → runtime-BQydA64s.mjs} +117 -41
- package/package.json +1 -1
- package/dist/client/assets/AlertDialogRoot-CI-BT04n.js +0 -2
- package/dist/client/assets/ChatMarkdown-DvwRAy0e.js +0 -65
- package/dist/client/assets/Input-C7aWgRC_.js +0 -2
- package/dist/client/assets/PanelLayoutControls-Bp96ytbx.js +0 -216
- package/dist/client/assets/ThemeEditorPanel-ezln4yFM.js +0 -5
- package/dist/client/assets/_chat-COwukFSB.js +0 -45
- package/dist/client/assets/architecture-7GRP2DOG-5VIB8Eba.js +0 -1
- package/dist/client/assets/channel-B7HSUXfW.js +0 -2
- package/dist/client/assets/classDiagram-ZZMXUADV-9HCpqDrm.js +0 -2
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-9HCpqDrm.js +0 -2
- package/dist/client/assets/entities-BNeCRVLN.js +0 -2
- package/dist/client/assets/eventmodeling-NTZA5JFV-7Qy1WUdw.js +0 -1
- package/dist/client/assets/flowDiagram-HODETNUW-WrRfiKZh.js +0 -1
- package/dist/client/assets/main-D398MK8V.js +0 -26
- package/dist/client/assets/primaryCloudLinkState-_2yJcM8W.js +0 -2
- package/dist/client/assets/projectFilesQueryState-Dnhdh9Fp.js +0 -2
- package/dist/client/assets/queries-WzVTFKPw.js +0 -2
- package/dist/client/assets/railroad-abnf-HS5TGJTU-D6sBNrTv.js +0 -1
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-DQmVNLBf.js +0 -1
- package/dist/client/assets/railroad-peg-WCYAUIDC-BmxuO4Yw.js +0 -1
- package/dist/client/assets/rightPanelStore-UcehuwgS.js +0 -2
- package/dist/client/assets/runtime-DgUiDuq4.js +0 -2
- package/dist/client/assets/session-logic-Chq6Fhx9.js +0 -26
- package/dist/client/assets/settings.archived-BLphtU6e.js +0 -2
- package/dist/client/assets/settings.connections-CPZLelaw.js +0 -2
- package/dist/client/assets/settingsLayout-BxEP0uF3.js +0 -3
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-DKxchkZ_.js +0 -2
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DcmT28cJ.js +0 -9
- package/dist/client/assets/themePalette-mGukKeaJ.js +0 -5
- package/dist/client/assets/toast-CylvOlB4.js +0 -2
- package/dist/client/assets/useNavigate-B5WzUZJ7.js +0 -2
- package/dist/client/assets/useSettings-CHo-Nv-3.js +0 -3
- package/dist/client/assets/utils-ChK8VEFC.js +0 -37
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import{$T as e,Dg as t,Ms as n,Ot as r,Ps as i,Ub as a,V as o,XT as s,Yb as c,du as l,fu as u,hu as d,mu as f,pu as p,wg as m}from"./utils-ChK8VEFC.js";import{Ft as ee,Rt as te,Xt as h,Zt as ne,d as re,dn as ie,zt as ae}from"./runtime-DgUiDuq4.js";import{m as oe}from"./htmlRender-n-z4ejOb.js";import{n as se,t as ce}from"./mediaSource-DzNyV4QZ.js";import{l as le}from"./usageFormat-neDCKBUu.js";function g(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function _(e){if(typeof e!=`string`)return;let t=e.trim();return t.length>0?t:void 0}function ue(e,t){if(e!==`Skill`)return;let n=g(t),r=_(n?.skill);return r===void 0?void 0:{name:r,args:_(n?.args)}}function v(e){return e===`js`||e===`cua_repl.js`||e===`node_repl.js`}var de={key:`computer-use`,name:`Computer Use`,kind:`computer`};function fe(e,t){if(e===`cua_repl.js`)return`computer`;let n=g(t)?.code;return v(e)&&typeof n==`string`&&(/\bsky\s*\./u.test(n)||/["']@oai\/sky["']/u.test(n))?`computer`:void 0}function pe(e,t,n){if(v(e)){let r=_(n),i=r&&r.toLowerCase()!==`js`&&r.toLowerCase()!==e?.toLowerCase()?r:void 0;return _(g(t)?.title)??i??(fe(e,t)===`computer`?`Computer use`:`Run JavaScript`)}let r=ue(e,t);return r===void 0?void 0:`Skill: ${r.name}`}function me(e){return e!==void 0&&Object.keys(e).length>0}var he=[`path`,`filePath`,`file_path`,`relativePath`,`filename`,`fileName`,`newPath`,`oldPath`];function y(e,t,n,r){if(r>4||t.length>=8)return;if(Array.isArray(e)){for(let i of e)if(y(i,t,n,r+1),t.length>=8)return;return}let i=g(e);if(i){for(let e of he){let r=_(i[e]);if(r&&!n.has(r)&&(n.add(r),t.push(r),t.length>=8))return}for(let e of[`locations`,`item`,`input`,`result`,`rawInput`,`data`,`changes`])if(e in i&&(y(i[e],t,n,r+1),t.length>=8))return}}function ge(e){let t=[];return y(e,t,new Set,0),t}function _e(e){let t=_(e);if(t&&!/__|[./]/u.test(t))return t.replace(/[_\s-]/gu,``).toLowerCase()}function ve(e){let t=e.itemType??void 0,n=_(e.requestKind)?.toLowerCase(),r=_(e.data?.kind)?.toLowerCase(),i=_e(_(e.data?.toolName)??_(g(e.data?.item)?.tool));return t===`command_execution`?`command`:t===`image_view`?`read`:t===`file_change`?`file_change`:t===`web_search`?`search`:n===`command`||r===`execute`?`command`:n===`file-change`||r===`edit`||r===`move`||r===`delete`||r===`write`?`file_change`:r===`search`||i===`find`||i===`grep`||i===`glob`||i===`rg`||i===`ls`?`search`:n===`file-read`||r===`read`?`read`:i===`terminal`||i===`bash`||i===`shell`?`command`:i===`read`||i===`readfile`?`read`:`other`}var ye=[`pattern`,`query`,`searchTerm`,`regex`,`grep`,`needle`],be=[`glob`,`globPattern`,`glob_pattern`,`include`,`filePattern`,`file_pattern`],xe=[`path`,`target_directory`,`targetDirectory`,`directory`,`cwd`,`root`];function b(e,t){if(e)for(let n of t){let t=_(e[n]);if(t)return t}}function Se(e){return[e?.rawInput,e?.input,g(e?.item)?.input].map(g).find(e=>me(e??void 0))??e}function Ce(e){if(e)return e.split(/[\\/]/u).findLast(e=>e.length>0&&e!==`.`)}function we(e){let t=Se(e),n=b(t,ye),r=b(t,be),i=Ce(b(t,xe));if(n&&i)return`Searched ${n} in ${i}`;if(r&&i)return`Searched files ${r} in ${i}`;if(r)return`Searched files ${r}`;if(n)return`Searched ${n}`;if(i)return`Searched in ${i}`}function Te(e,t=0){let n=e.trim(),r=t>0?` +${t} more`:``;return n?`Read ${n}${r}`:`Read file${r}`}function x(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function S(e,t){if(typeof e!=`string`)return;let n=e.trim();return n&&n.length<=t?n:void 0}function C(e){let t=S(e,4096);if(t)try{let e=new URL(t);return e.protocol===`http:`||e.protocol===`https:`||e.protocol===`data:`?e.href:void 0}catch{return}}function Ee(e){let t=S(e,4096);if(t)try{let e=new URL(t);return e.protocol===`http:`||e.protocol===`https:`?e.href:void 0}catch{return}}function De(e){let t=x(e),n=S(t?.appId,512);if(t?._tag===`app-id`&&n&&/^[A-Za-z0-9._-]+$/u.test(n))return{_tag:`app-id`,appId:n};let r=S(t?.displayName,160);if(t?._tag===`display-name`&&r)return{_tag:`display-name`,displayName:r}}function Oe(e){let t=x(e);if(t?._tag===`website`){let e=Ee(t.pageUrl),n=C(t.faviconUrl),r=C(t.faviconUrlDark);if(e)return{_tag:`website`,pageUrl:e,...n?{faviconUrl:n}:{},...r?{faviconUrlDark:r}:{}}}if(t?._tag===`native-app`){let e=De(t.app);if(e)return{_tag:`native-app`,app:e}}if(t?._tag===`themed-logo`){let e=C(t.logoUrl),n=C(t.logoUrlDark);if(e)return{_tag:`themed-logo`,logoUrl:e,...n?{logoUrlDark:n}:{}}}}function ke(e){let t=x(e),n=S(t?.key,512),r=S(t?.name,160),i=t?.kind;if(!n||!r||i!==`browser`&&i!==`computer`&&i!==`integration`)return;let a=Oe(t?.icon);return{key:n,name:r,kind:i,...a?{icon:a}:{}}}function Ae(e){let t=x(e),n=ke(t?.toolSource),r=t?.toolSurface===`browser`||t?.toolSurface===`computer`?t.toolSurface:n?.kind===`computer`||n?.kind===`browser`?n.kind:t?.type===`dynamic_tool`?fe(typeof t.toolName==`string`?t.toolName:void 0,t.input):void 0,i=r===`computer`&&n?.kind!==`computer`?de:n,a=Oe(t?.toolIcon),o=S(t?.viewedImagePath,4096);return{...r?{toolSurface:r}:{},...a?{toolIcon:a}:{},...i?{toolSource:i}:{},...o&&!/[\r\n]/.test(o)&&re(o)?{viewedImagePath:o}:{}}}var je=`2026-01-26`,w=`t3McpApp`,Me=80,Ne=2e3,Pe=32,Fe=256,Ie=256,Le=4096,Re=/^(?:https?|wss?):\/\/(?:\*\.)?[a-z0-9-]+(?:\.[a-z0-9-]+)*(?::\d{1,5})?$/i;function ze(e){if(!Array.isArray(e))return;let t=e.filter(e=>typeof e==`string`&&e.length<=Fe&&Re.test(e)).slice(0,Pe);return t.length===0?void 0:t}function Be(t){if(!e(t))return;let n={};for(let e of[`connectDomains`,`resourceDomains`,`frameDomains`,`baseUriDomains`]){let r=ze(t[e]);r!==void 0&&(n[e]=r)}return Object.keys(n).length===0?void 0:n}var Ve=[`camera`,`microphone`,`geolocation`,`clipboardWrite`];function He(t){if(!e(t))return;let n={};for(let r of Ve)e(t[r])&&(n[r]={});return Object.keys(n).length===0?void 0:n}var T=e=>typeof e==`string`&&e.trim()!==``&&e.length<=Ie?e:void 0;function Ue(t){if(!e(t))return;let n=T(t.attachmentId),r=T(t.server),i=T(t.tool),a=typeof t.resourceUri==`string`&&t.resourceUri.length<=Le?t.resourceUri:void 0;if(n===void 0||r===void 0||i===void 0||a===void 0||!a.startsWith(`ui://`))return;let o=Be(t.csp),s=He(t.permissions);return{attachmentId:n,server:r,tool:i,resourceUri:a,...o===void 0?{}:{csp:o},...s===void 0?{}:{permissions:s},...typeof t.prefersBorder==`boolean`?{prefersBorder:t.prefersBorder}:{}}}function We(e,t){return e.attachmentId===t.attachmentId&&e.server===t.server&&e.tool===t.tool&&e.resourceUri===t.resourceUri}function Ge(e){let t=[];return e?.camera&&t.push(`camera`),e?.microphone&&t.push(`microphone`),e?.geolocation&&t.push(`geolocation`),e?.clipboardWrite&&t.push(`clipboard-write`),t.join(`; `)}function Ke(e){return Number.isFinite(e)?Math.round(Math.min(Ne,Math.max(Me,e))):320}function qe(e){return`${e.tool.replace(/[^\w.-]+/g,`-`).slice(0,80)||`app`}.html`}function E(e,t,n=`t3-code`,r=`${e[0]} ${e[3]}`){return{displayName:r,labels:e,icon:n,summaryAction:t}}var Je=new Set([`t3-code`,`t3_code`,`t3code`,`p4-code`,`p4_code`,`p4code`]),Ye={p4_computer_use:E([`Control`,`Controlling`,`Controlled`,`a computer`],`browser`,`browser`),p4_computer_use_reset:E([`Reset`,`Resetting`,`Reset`,`Computer Use`],`browser`,`browser`),p4_computer_use_hosts:E([`List`,`Listing`,`Listed`,`Computer Use hosts`],`browser`,`browser`),p4_decide:E([`Ask`,`Asking`,`Asked`,`Decisions`],`decide`),link_pull_request:E([`Link`,`Linking`,`Linked`,`a pull request`],`link-pr`,`pull-request`),unlink_pull_request:E([`Unlink`,`Unlinking`,`Unlinked`,`a pull request`],`unlink-pr`,`pull-request`),list_thread_pull_requests:E([`Check`,`Checking`,`Checked`,`linked pull requests`],`list-prs`,`pull-request`),watch_pull_request:E([`Watch`,`Watching`,`Watching`,`a pull request`],`watch-pr`,`pull-request`),unwatch_pull_request:E([`Stop watching`,`Stopping watching`,`Stopped watching`,`a pull request`],`unwatch-pr`,`pull-request`),write_pull_request_guides:E([`Write`,`Writing`,`Started`,`review guides`],`write-pr-guides`,`pull-request`),read_pull_request_guide:E([`Read`,`Reading`,`Read`,`a review guide`],`read-pr-guide`,`pull-request`),orchestrator_capabilities:E([`Get`,`Getting`,`Got`,`orchestration capabilities`],`capabilities`),delegate_task:E([`Delegate`,`Delegating`,`Delegated`,`a child task`],`delegate`),task_status:E([`Get`,`Getting`,`Got`,`delegated task status`],`task-status`),task_cancel:E([`Cancel`,`Canceling`,`Requested cancellation of`,`delegated task`],`task-cancel`),schedule_task:E([`Schedule`,`Scheduling`,`Scheduled`,`a recurring task`],`schedule-create`),list_scheduled_tasks:E([`List`,`Listing`,`Listed`,`scheduled tasks`],`schedule-list`),update_scheduled_task:E([`Update`,`Updating`,`Updated`,`a scheduled task`],`schedule-update`),delete_scheduled_task:E([`Delete`,`Deleting`,`Requested deletion of`,`a scheduled task`],`schedule-delete`),request_secret:E([`Ask for`,`Asking for`,`Asked for`,`a secret`],`secret-request`),create_threads:E([`Create`,`Creating`,`Created`,`P4 threads`],`thread-create`),p4_thread_start:E([`Start`,`Starting`,`Started`,`a P4 Code thread`],`thread-create`),p4_thread_list:E([`List`,`Listing`,`Listed`,`P4 threads`],`thread-list`),p4_thread_read:E([`Read`,`Reading`,`Read`,`a P4 Code thread`],`thread-read`),p4_thread_send:E([`Send`,`Sending`,`Sent`,`to a P4 Code thread`],`thread-send`),p4_thread_wait:E([`Wait`,`Waiting`,`Waited`,`for a P4 Code thread`],`thread-wait`),p4_workflow_stop:E([`Stop`,`Stopping`,`Requested a stop for`,`a workflow`],`workflow-stop`),p4_thread_interrupt:E([`Interrupt`,`Interrupting`,`Requested an interrupt of`,`a P4 Code thread`],`thread-interrupt`),p4_worktree_handoff:E([`Hand off`,`Handing off`,`Handed off`,`thread to a git worktree`],`worktree-handoff`),p4_worktree_status:E([`Get`,`Getting`,`Got`,`thread worktree status`],`worktree-status`),preview_status:E([`Get`,`Getting`,`Got`,`preview browser status`],`browser`,`browser`),preview_open:E([`Open`,`Opening`,`Opened`,`a page in the preview browser`],`browser`,`browser`),preview_navigate:E([`Navigate`,`Navigating`,`Navigated`,`the preview browser`],`browser`,`browser`),preview_dialog:E([`Respond`,`Responding`,`Responded`,`to a preview browser dialog`],`browser`,`browser`),preview_snapshot:E([`Take a snapshot of`,`Taking a snapshot of`,`Took a snapshot of`,`the preview page`],`browser`,`browser`,`Snapshot the preview page`),preview_click:E([`Click`,`Clicking`,`Clicked`,`in the preview browser`],`browser`,`browser`),preview_press:E([`Press`,`Pressing`,`Pressed`,`a key in the preview browser`],`browser`,`browser`),preview_type:E([`Type`,`Typing`,`Typed`,`in the preview browser`],`browser`,`browser`),preview_hover:E([`Hover`,`Hovering`,`Hovered`,`in the preview browser`],`browser`,`browser`),preview_select:E([`Choose`,`Choosing`,`Chose`,`an option in the preview browser`],`browser`,`browser`),preview_drag:E([`Drag`,`Dragging`,`Dragged`,`in the preview browser`],`browser`,`browser`),preview_upload:E([`Upload`,`Uploading`,`Uploaded`,`files to the preview browser`],`browser`,`browser`),preview_scroll:E([`Scroll`,`Scrolling`,`Scrolled`,`the preview browser`],`browser`,`browser`),preview_resize:E([`Resize`,`Resizing`,`Resized`,`the preview browser`],`browser`,`browser`),preview_evaluate:E([`Evaluate`,`Evaluating`,`Evaluated`,`script in the preview browser`],`browser`,`browser`),preview_wait_for:E([`Wait`,`Waiting`,`Waited`,`for the preview page`],`browser`,`browser`),preview_set_appearance:E([`Set`,`Setting`,`Set`,`preview browser appearance`],`browser`,`browser`),preview_recording_start:E([`Start`,`Starting`,`Started`,`recording the preview browser`],`browser`,`browser`),preview_recording_stop:E([`Stop`,`Stopping`,`Stopped`,`recording the preview browser`],`browser`,`browser`),device_list:E([`List`,`Listing`,`Listed`,`simulators and emulators`],`device`,`device`),device_open:E([`Open`,`Opening`,`Opened`,`a device in the Device panel`],`device`,`device`),device_screenshot:E([`Take a screenshot of`,`Taking a screenshot of`,`Took a screenshot of`,`the device`],`device`,`device`),device_close:E([`Close`,`Closing`,`Closed`,`a device`],`device`,`device`),run_scheduled_task_now:E([`Run`,`Running`,`Requested a run of`,`a scheduled task`],`schedule-run`),p4_queue_list:E([`List`,`Listing`,`Listed`,`queued messages`],`queue-list`),p4_queue_read:E([`Read`,`Reading`,`Read`,`a queued message`],`queue-read`),p4_queue_edit:E([`Edit`,`Editing`,`Edited`,`a queued message`],`queue-edit`),p4_queue_cancel:E([`Cancel`,`Canceling`,`Requested cancellation of`,`a queued run`],`queue-cancel`),p4_queue_reorder:E([`Reorder`,`Reordering`,`Reordered`,`a queued run`],`queue-reorder`),p4_queue_promote_to_steer:E([`Steer with`,`Steering with`,`Requested steering with`,`a queued message`],`queue-steer`),p4_pending_request_list:E([`List`,`Listing`,`Listed`,`pending questions`],`question-list`),p4_pending_request_read:E([`Read`,`Reading`,`Read`,`pending questions`],`question-read`),p4_pending_request_respond:E([`Answer`,`Answering`,`Answered`,`pending questions`],`question-respond`),p4_thread_configuration:E([`Read`,`Reading`,`Read`,`thread configuration`],`thread-configuration`),p4_thread_configure:E([`Set`,`Setting`,`Set`,`thread model`],`thread-configure`),p4_thread_fork:E([`Fork`,`Forking`,`Requested a fork of`,`this thread`],`thread-fork`),p4_thread_merge_back:E([`Merge`,`Merging`,`Requested a merge of`,`thread context`],`thread-merge`),p4_thread_search:E([`Search`,`Searching`,`Searched`,`thread content`],`thread-search`),p4_thread_transfers:E([`Read`,`Reading`,`Read`,`thread transfers`],`thread-transfers`),p4_thread_organize:E([`Organize`,`Organizing`,`Organized`,`a thread`],`thread-organize`),p4_thread_update:E([`Update`,`Updating`,`Updated`,`P4 Code thread metadata`],`thread-update`),p4_worktree_list:E([`List`,`Listing`,`Listed`,`workspace branches`],`worktree-list`),p4_preview_list:E([`List`,`Listing`,`Listed`,`preview tabs`],`browser`,`browser`),p4_preview_close:E([`Close`,`Closing`,`Closed`,`a preview tab`],`browser`,`browser`),p4_environment_read:E([`Read`,`Reading`,`Read`,`environment preferences`],`environment-read`),p4_environment_preferences_update:E([`Update`,`Updating`,`Updated`,`environment preferences`],`environment-update`),p4_mcp_server_list:E([`List`,`Listing`,`Listed`,`MCP servers`],`environment-read`),p4_mcp_server_set_enabled:E([`Update`,`Updating`,`Updated`,`an MCP server`],`environment-update`),p4_thread_launch:E([`Launch`,`Launching`,`Launched`,`a project thread`],`thread-create`),p4_project_list:E([`List`,`Listing`,`Listed`,`projects`],`project-list`),p4_project_read:E([`Read`,`Reading`,`Read`,`a project`],`project-read`),p4_project_create:E([`Register`,`Registering`,`Registered`,`a project`],`project-create`),p4_project_update:E([`Update`,`Updating`,`Updated`,`a project`],`project-update`),p4_project_delete:E([`Delete`,`Deleting`,`Deleted`,`a project`],`project-delete`),p4_project_clone:E([`Clone`,`Cloning`,`Cloned`,`a repository`],`project-clone`),p4_attachment_prepare_upload:E([`Prepare`,`Preparing`,`Prepared`,`an attachment upload`],`attachment-prepare`),p4_attachment_discard:E([`Discard`,`Discarding`,`Discarded`,`a pending attachment`],`attachment-discard`),p4_thread_send_attachments:E([`Send`,`Sending`,`Sent`,`attachments`],`attachment-send`),html_preview:E([`Preview`,`Previewing`,`Previewed`,`an HTML page`],`html-preview`),html_render:E([`Render`,`Rendering`,`Rendered`,`an HTML page`],`html-render`)},D={...Ye,...Object.fromEntries(Object.entries(Ye).filter(([e])=>e.startsWith(`p4_`)).map(([e,t])=>[`t3_${e.slice(3)}`,t]))};new Set(Object.keys(D));function Xe(e){return e.replace(/\s+(?:complete|completed)\s*$/i,``).trim()}function Ze(e){let t=Xe(e),n=/^mcp__(?<server>.+?)__(?<tool>.+)$/i.exec(t);if(n?.groups){let{server:e,tool:t}=n.groups;return e!==void 0&&t!==void 0&&Je.has(e.toLowerCase())?t:null}let r=/^(?<server>(?:t3|p4)[-_]?code)(?:[.:/]|\s*·\s*)(?<tool>.+)$/i.exec(t);if(r?.groups)return r.groups.tool??null;let i=/^(?:mcp[-_]{1,2})?(?:t3|p4)[-_ ]?code(?:__|[-_.:/ ])(?<tool>.+)$/i.exec(t)?.groups?.tool??t;if(Object.hasOwn(D,i))return i;if(!/^(?:t3|p4)-code-/i.test(t))return null;let a=null;for(let e of Object.keys(D))t.endsWith(`_${e}`)&&e.length>(a?.length??0)&&(a=e);return a}function Qe(e){let t=e==null?null:Ze(e);return t!==null&&Object.hasOwn(D,t)?t.replace(/^t3_/,`p4_`):null}function O(e){let t=e==null?null:Ze(e);return t!==null&&Object.hasOwn(D,t)?D[t]:null}var $e=16384,et=8192,tt=256,nt=100,rt=32,it=4,at=128,ot=new TextEncoder;function k(t,n,r=0){if(r>it||n.remainingNodes--<=0)return n.exceeded=!0,{failed:!1};if(typeof t==`string`){if(t.length>n.remainingBytes)return n.exceeded=!0,{failed:!1};let e=ot.encode(t).byteLength;if(e>n.remainingBytes)return n.exceeded=!0,{failed:!1};n.remainingBytes-=e;try{return k(JSON.parse(t),n,r+1)}catch{return{failed:!1}}}if(Array.isArray(t)){if(t.length>rt)return n.exceeded=!0,{failed:!1};let i,a=!1;for(let o of t){let t=e(o)?o.text:void 0,s=k(e(t)?t.text??t:t,n,r+1);if(i??=s.data,a||=s.failed,n.exceeded)break}return{...i===void 0?{}:{data:i},failed:a}}if(!e(t))return{failed:!1};let i=t.isError===!0||t.is_error===!0||t._tag===`OrchestratorMcpFailure`||t.error!=null,a=t.structuredContent??t.content;if(a!==void 0){let e=k(a,n,r+1);return{...e,failed:i||e.failed}}return{data:t,failed:i}}function A(e){if(!(typeof e!=`string`||e.length>tt||e.trim()===``))return Array.from(e).join(``)}function j(t){let n={remainingBytes:$e,remainingNodes:at,exceeded:!1},r=k(t,n),i=r.failed?{isError:!0}:{},a=n.exceeded?void 0:r.data;if(a!==void 0){for(let e of[`threadId`,`messageId`,`taskId`,`scheduledTaskId`]){let t=A(a[e]);t!==void 0&&(i[e]=t)}a.status===`rolled_back`&&(i.status=`rolled_back`);let t=oe(a.htmlRender);t!==void 0&&(i.htmlRender=t);let n=Ue(a[w]);n!==void 0&&(i[w]=n);let r=e(a.thread)?A(a.thread.threadId):void 0;if(r!==void 0&&(i.thread={threadId:r}),Array.isArray(a.threads)){let t=a.threads.length<=nt,n=[];if(t)for(let r of a.threads){if(!e(r)){t=!1;break}let i=A(r.threadId),a=r.status===`rolled_back`;if(i===void 0&&!a){t=!1;break}n.push({...i===void 0?{}:{threadId:i},...a?{status:`rolled_back`}:{}})}t?i.threads=n:(delete i.threadId,delete i.status)}}let o=()=>ot.encode(JSON.stringify(i)).byteLength>et;o()&&(delete i.threads,delete i.threadId,delete i.status);let s=i[w];if(s?.csp!==void 0&&o()){let{csp:e,...t}=s;i[w]=t}return o()&&delete i[w],Object.keys(i).length===0?void 0:i}function st(e){if(Qe(e.toolName)!==`html_render`)return;let t=j(e.output);return t?.isError?void 0:t?.htmlRender}function ct(e){let t=j(e.output)?.[w];return t!==void 0&&e.toolName===`${t.server}.${t.tool}`?t:void 0}function lt(e){return/file not found|no files found|enoent|no such file|commandnotfoundexception|command not found|is not recognized as the name of a cmdlet|a parameter cannot be found that matches parameter name/i.test(e)||/cannot find path/i.test(e)&&/because it does not exist/i.test(e)||/is not recognized/i.test(e)&&/the term '/i.test(e)||/<exited with exit code\s+[1-9]\d*\s*>/i.test(e)||/exit(?:ed)? with exit code\s+[1-9]\d*/i.test(e)||/exit code\s*[:\s]\s*[1-9]\d*\b/i.test(e)}function M(n){if(!e(n)||n.type!==`image`)return null;let r=e(n.source)?n.source:void 0;if(r!==void 0&&r.type!==`base64`)return null;let i=r===void 0?n.mimeType:r.media_type,a=r===void 0?n.data:r.data;if(typeof i!=`string`||!t(i))return null;let o={mimeType:i.toLowerCase()};return typeof a==`string`?{...o,data:a}:o}function ut(t){return Array.isArray(t)?t:e(t)&&Array.isArray(t.content)?t.content:[t]}Math.ceil(m/3)*4;function dt(e){let t=[];for(let n of ut(e))if(M(n)!==null&&(t.push(n),t.length===8))break;return t}function ft(e){return dt(e).flatMap(e=>M(e)??[])}var pt=4;function N(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function mt(e){return N(e)&&e.truncated===!0&&typeof e.summary==`string`}function P(e,t){if(t>pt)return null;if(typeof e==`string`)return e;if(Array.isArray(e)){let n=e.map(e=>P(e,t+1));return n.every(e=>e!==null)?n.filter(e=>e!==``).join(`
|
|
2
|
-
`):null}if(!N(e))return null;if(e.type===`text`&&typeof e.text==`string`)return e.text;if(e.type===`image`)return M(e)?``:`[image]`;if(e.type===`resource_link`&&typeof e.uri==`string`)return e.uri;if(e.type===`resource`&&N(e.resource)){let t=e.resource;if(typeof t.text==`string`)return t.text;if(typeof t.uri==`string`)return t.uri}let n=Object.keys(e).filter(e=>e!==`isError`&&e!==`is_error`);if(n.length===1&&n[0]===`content`)return P(e.content,t+1);if(n.length===2&&n.includes(`content`)&&n.includes(`structuredContent`)){let n=P(e.content,t+1);return n?.trim()?n:null}return null}function F(e){try{return JSON.parse(e)}catch{return}}function ht(e){let t=e.trim();if(!/^[[{]/.test(t))return e;let n=F(t);if(n!==void 0)return JSON.stringify(n,null,2);let r=t.split(`
|
|
3
|
-
`).filter(e=>e.trim()).map(e=>F(e.trim()));return r.some(e=>e===void 0)?e:r.map(e=>JSON.stringify(e,null,2)).join(`
|
|
4
|
-
|
|
5
|
-
`)}function gt(e,t=!1){if(e==null||t&&N(e)&&e.type===`image`)return null;let n=P(e,0);if(n!==null)return n.trim()?ht(n):null;let r;try{r=JSON.stringify(e,null,2)}catch{return String(e)}return r===void 0||r===`{}`||r===`[]`?null:r}function _t(e){if(e.command!==void 0)return{command:e.command.trim()||null,args:null,argsText:null};let t=e.args;if(N(t)&&!mt(t)){let e=Object.entries(t).flatMap(([e,t])=>t===void 0?[]:[[e,typeof t==`string`&&t!==``?t:JSON.stringify(t)??String(t)]]);return{command:null,args:e.length>0?e:null,argsText:null}}return{command:null,args:null,argsText:gt(t)}}function vt(e){return e.command!==null||e.args!==null||e.argsText!==null}var yt=new Set([`idle`,`pending`,`running`,`waiting`]);function bt(e){return yt.has(e.status)?`live`:a(e.updatedAt)}function xt(e){switch(e.type){case`command_execution`:return e.outputOmitted===!0;case`dynamic_tool`:return e.outputOmitted===!0||mt(e.input);default:return!1}}function St(e){if(!e.trimStart().startsWith(`{"stdout"`))return e;let t=F(e.trim());return!N(t)||typeof t.stdout!=`string`||typeof t.stderr!=`string`||typeof t.interrupted!=`boolean`?e:[t.stdout,t.stderr].filter(e=>typeof e==`string`&&e.trim().length>0).join(`
|
|
6
|
-
`)}function Ct(e){switch(e.type){case`command_execution`:return e.output?.trim()&&St(e.output)||null;case`dynamic_tool`:return e.outputOmitted===!0?null:gt(e.output,e.viewedImagePath!==void 0);case`file_search`:return e.results?.length?e.results.map(e=>[`${e.fileName}${e.line===void 0?``:`:${e.line}`}`,e.preview?.trim()].filter(Boolean).join(`
|
|
7
|
-
`)).join(`
|
|
8
|
-
`):null;case`web_search`:return e.results?.length?e.results.map(e=>[e.title?.trim()||e.url,e.title?e.url:void 0,e.snippet?.trim()].filter(Boolean).join(`
|
|
9
|
-
`)).join(`
|
|
10
|
-
|
|
11
|
-
`):null;default:return null}}function wt(e){return e.type!==`dynamic_tool`||e.outputOmitted===!0?[]:ft(e.output).map((t,n)=>({_tag:`tool-output-image`,threadId:e.threadId,itemId:e.id,index:n}))}function Tt(e){switch(e.type){case`reasoning`:return e.text.trim().length>0;case`command_execution`:return _t({command:e.input}).command!==null||e.outputOmitted===!0||!!e.output?.trim()||e.exitCode!==void 0&&e.exitCode!==0;case`file_change`:case`checkpoint`:case`fork`:case`handoff`:return!0;case`file_search`:return(e.results?.length??0)>0||!!e.pattern?.trim();case`web_search`:return(e.results?.length??0)>0||(e.patterns?.length??0)>0;case`dynamic_tool`:return e.outputOmitted===!0||vt(_t({args:e.input}));case`approval_request`:return!!e.prompt?.trim();case`user_input_request`:return e.questions.length>0;case`notification`:return!!e.detail?.trim();case`system_notice`:return e.message.trim().length>0;case`error`:return e.failure.message.trim().length>0;case`proposed_plan`:return e.markdown.trim().length>0;case`todo_list`:return e.steps.length>0;case`subagent`:return e.childThreadId!==null;default:return!1}}var Et=64,Dt=new Set([`sh`,`bash`,`zsh`,`dash`,`ash`,`ksh`,`fish`]),Ot=new Set([`cmd`,`cmd.exe`,`powershell`,`powershell.exe`,`pwsh`,`pwsh.exe`]),kt=new Set([`-o`,`-O`,`--rcfile`,`--init-file`]),At=new Set([`builtin`,`command`,`exec`]),jt=new Set([`nocorrect`,`noglob`,`time`]),Mt=new Set([`pop-location`,`push-location`,`set-location`]),Nt=new Set([`-mta`,`-nologo`,`-noninteractive`,`-noprofile`,`-sta`]),Pt=new Set([`-configurationname`,`-executionpolicy`,`-inputformat`,`-outputformat`,`-version`,`-windowstyle`,`-workingdirectory`]),Ft=new Set([`-confirm`,`-debug`,`-loaduserprofile`,`-nonewwindow`,`-passthru`,`-usenewenvironment`,`-verbose`,`-wait`,`-whatif`]),It=new Set([`-argumentlist`,`-credential`,`-environment`,`-erroraction`,`-errorvariable`,`-informationaction`,`-informationvariable`,`-outbuffer`,`-outvariable`,`-pipelinevariable`,`-progressaction`,`-redirectstandarderror`,`-redirectstandardinput`,`-redirectstandardoutput`,`-verb`,`-warningaction`,`-warningvariable`,`-windowstyle`,`-workingdirectory`]),Lt=new Set([`[`,`[[`,`test`,`true`]),Rt="<>(){}[];|&$`#!%@:",zt="){]}`",I=new Set(`!,#,.,:,[,[[,alias,and,autoload,begin,bg,bind,bindkey,break,builtin,caller,case,catch,cd,command,compgen,complete,compopt,continue,coproc,declare,dirs,disown,do,done,elif,else,enable,end,esac,eval,exec,exit,export,false,fc,fg,fi,finally,for,foreach,function,getopts,history,if,in,jobs,let,local,logout,mapfile,nocorrect,noglob,not,or,popd,pushd,read,readarray,readonly,repeat,return,select,set,setopt,shift,shopt,source,switch,suspend,test,then,time,times,trap,try,true,type,typeset,ulimit,umask,unalias,until,unset,unsetopt,wait,while`.split(`,`)),Bt=new Set(`and.begin.break.case.catch.continue.coproc.do.done.elif.else.end.esac.eval.exec.exit.false.fi.finally.for.foreach.function.if.in.not.or.repeat.return.select.switch.then.try.until.while`.split(`.`));function Vt(e,t){for(let n=t;n<e.length;n+=1){let t=e[n];if(t===`--`||!t.startsWith(`-`))return null;if(kt.has(t)){n+=1;continue}if(t===`--command`||/^-[a-zA-Z]*c[a-zA-Z]*$/.test(t))return n+1}return null}var Ht={env:new Set([`-C`,`--chdir`,`-S`,`--split-string`,`-u`,`--unset`]),sudo:new Set([`-C`,`--close-from`,`-D`,`--chdir`,`-g`,`--group`,`-u`,`--user`])},Ut={env:new Set([`-0`,`--null`,`-i`,`--ignore-environment`,`--debug`,`-v`]),sudo:new Set([`-A`,`--askpass`,`-b`,`--background`,`-E`,`-H`,`-i`,`-n`,`-S`])};function L(e){let t=e.trim(),n=[],r=``,i=null,a=!1,o=!1,s=0,c=0,l=!1;for(let e=0;e<t.length;e+=1){let u=t[e];if(a){r+=u,a=!1,l=!0;continue}if(u===`\\`&&i!==`'`){let n=t[e+1],o=i===null&&/^(?:[A-Za-z]:|\.{1,2})(?:\\[^\s]*)?$/u.test(r);if((i===`"`||o)&&n!==void 0&&n!==`"`&&n!==`\\`&&n!==`$`&&n!=="`"&&n!==`
|
|
12
|
-
`){r+=u,l=!0;continue}a=!0,l=!0;continue}if(o){r+=u,u==="`"&&(o=!1),l=!0;continue}if(i!==null){u===i?i=null:r+=u,l=!0;continue}if(u==="`"){r+=u,o=!0,l=!0;continue}if(u===`$`&&t[e+1]===`{`){r+="${",c+=1,l=!0,e+=1;continue}if(u===`{`&&c>0){r+=u,c+=1,l=!0;continue}if(u===`}`&&c>0){r+=u,--c,l=!0;continue}if(u===`$`&&t[e+1]===`(`){r+=`$(`,s+=1,l=!0,e+=1;continue}if(u===`(`){r+=u,s+=1,l=!0;continue}if(u===`)`&&s>0){r+=u,--s,l=!0;continue}if(u===`"`||u===`'`){i=u,l=!0;continue}if(/\s/u.test(u)){if(s>0||c>0){r+=u,l=!0;continue}l&&=(n.push(r),r=``,!1);continue}r+=u,l=!0}return i!==null||a||o||s>0||c>0?null:(l&&n.push(r),n)}function Wt(e,t,n){let r=``,i=0;for(let a of n){if(a.start>=t)break;r+=e.slice(i,a.start),i=Math.min(a.end,t)}return r+e.slice(i,t)}function Gt(e,t,n){let r=t;for(;e[r]===` `||e[r]===` `;)r+=1;let i=``,a=null,o=!1;for(;r<e.length;r+=1){let t=e[r];if(o){i+=t,o=!1;continue}if(t===`\\`&&a!==`'`){o=!0;continue}if(a!==null){t===a?a=null:i+=t;continue}if(t===`"`||t===`'`){a=t;continue}if(/\s/u.test(t)||`;&|<>()`.includes(t))break;i+=t}return!i||a!==null||o?null:{heredoc:{delimiter:i,stripTabs:n},end:r}}function Kt(e,t,n){let r=t;for(let t of n){let n=!1;for(;r<=e.length;){let i=e.indexOf(`
|
|
13
|
-
`,r),a=i===-1?e.length:i,o=e.slice(r,a).replace(/\r$/u,``),s=t.stripTabs?o.replace(/^\t+/u,``):o;if(r=i===-1?e.length:i+1,s===t.delimiter){n=!0;break}if(i===-1)break}if(!n)return null}return e.slice(r).trim()||null}function R(e){let t=null,n=null,r=!1,i=!1,a=!1,o=0,s=0,c=[],l=[],u=0,d=null;for(let f=0;f<e.length;f+=1){let p=e[f];if(n!==null){p===n&&e[f+1]===`@`&&(f===0||e[f-1]===`
|
|
14
|
-
`)&&(n=null,f+=1);continue}if(a){if(p!==`
|
|
15
|
-
`)continue;a=!1,l.push({start:u,end:f})}if(r){r=!1;continue}if(p===`\\`&&t!==`'`){r=!0;continue}if(i){p==="`"&&(i=!1);continue}if(t!==null){p===t&&(t=null);continue}if(p===`@`&&(e[f+1]===`"`||e[f+1]===`'`)&&(e[f+2]===`
|
|
16
|
-
`||e[f+2]===`\r`&&e[f+3]===`
|
|
17
|
-
`)){n=e[f+1],f+=1;continue}if(p===`"`||p===`'`){t=p;continue}if(p==="`"){i=!0;continue}if(p===`#`&&(f===0||/\s/u.test(e[f-1])||`;&|(`.includes(e[f-1]))){a=!0,u=f;continue}if(p===`$`&&e[f+1]===`{`){s+=1,f+=1;continue}if(p===`{`&&s>0){s+=1;continue}if(p===`}`&&s>0){--s;continue}if(p===`(`){o+=1;continue}if(p===`)`&&o>0){--o;continue}if(o>0||s>0)continue;if(p===`<`&&e[f+1]===`<`&&e[f+2]!==`<`){let t=e[f+2]===`-`,n=Gt(e,f+(t?3:2),t);if(n===null)return{firstCommand:e.trim(),remainingCommand:null,separator:null};c.push(n.heredoc),f=n.end-1;continue}let m=p===`&`&&e[f+1]===`&`||p===`|`&&(e[f+1]===`|`||e[f+1]===`&`),ee=p===`&`&&(e[f-1]===`>`||e[f-1]===`<`||e[f+1]===`>`);if(!m&&!`;&|
|
|
18
|
-
`.includes(p)||ee)continue;if(p===`
|
|
19
|
-
`&&c.length>0){let t=d;return{firstCommand:Wt(e,t?.index??f,l).trimStart(),remainingCommand:[t?e.slice(t.index+t.length,f).trim():``,Kt(e,f+1,c)].filter(e=>!!e).join(`
|
|
20
|
-
`)||null,separator:t?e.slice(t.index,t.index+t.length):`
|
|
21
|
-
`}}if(c.length>0){d??={index:f,length:m?2:1},m&&(f+=1);continue}let te=Wt(e,f,l).trimStart(),h=f+(m?2:1);for(;/\s/u.test(e[h]??``);)h+=1;return{firstCommand:te,remainingCommand:e.slice(h).trim()||null,separator:m?e.slice(f,f+2):p}}return a&&l.push({start:u,end:e.length}),{firstCommand:Wt(e,e.length,l).trim(),remainingCommand:null,separator:null}}function qt(e){let t=e.trimStart();for(;t.startsWith(`#`);){let e=t.indexOf(`
|
|
22
|
-
`);if(e===-1)return null;t=t.slice(e+1).trimStart()}return t||null}function Jt(e){let t=``,n=null,r=!1;for(let i=0;i<e.length;i+=1){let a=e[i];if(r){t+=a,r=!1;continue}if(a===`\\`&&n!==`'`){if(e[i+1]===`
|
|
23
|
-
`){i+=1;continue}if(e[i+1]===`\r`&&e[i+2]===`
|
|
24
|
-
`){i+=2;continue}t+=a,r=!0;continue}n===null?(a===`"`||a===`'`)&&(n=a):a===n&&(n=null),t+=a}return t}function z(e,t){let n=e[t];if(!n||/^[<>]\(/u.test(n))return null;let r=n.match(/^(?:(?:(?:\d+|\*|\{[A-Za-z_][A-Za-z0-9_]*\})?(?:<<<|<<-|<<|<>|>>|>\||<&|>&|<|>))|&>>|&>)(.*)$/u);return r?r[1]?t+1:e[t+1]===void 0?e.length+1:t+2:null}function Yt(e){return e.map(e=>`'${e.replaceAll(`'`,`'\\''`)}'`).join(` `)}function Xt(e,t,n){if(e===`bundle`)return t[n+1]===`exec`&&t[n+2]!==void 0?n+2:null;if(e===`nohup`){let e=n+1;t[e]===`--`&&(e+=1);let r=t[e];return r&&!r.startsWith(`-`)?e:null}return e===`script`?/^-[adkpqr]+$/u.test(t[n+1]??``)&&t[n+3]!==void 0?n+3:null:e===`arch`?/^-(?:arm64|arm64e|i386|x86_64)$/u.test(t[n+1]??``)?t[n+2]===void 0?null:n+2:t[n+1]===`-arch`&&t[n+3]!==void 0?n+3:null:(e===`timeout`||e===`gtimeout`)&&/^(?:\d+(?:\.\d*)?|\.\d+)[smhd]?$/u.test(t[n+1]??``)&&t[n+2]!==void 0?n+2:null}function B(e){let t=e.trim();if(!t||/^[A-Za-z][A-Za-z0-9+.-]*:(?![\\/])/u.test(t))return null;let n=t.split(/[\\/]/u).at(-1);return!n||/\s/u.test(n)&&!/[\\/]/u.test(t)||Rt.includes(n[0]??``)||zt.includes(n.at(-1)??``)?null:n}function Zt(e){let t=e.trimStart(),n=t[0];if(n!==`"`&&n!==`'`)return B(t.match(/^\S+/u)?.[0]??``);let r=``;for(let e=1;e<t.length;e+=1){let i=t[e];if(i==="`"&&t[e+1]!==void 0){r+=t[e+1],e+=1;continue}if(i===n){if(n===`'`&&t[e+1]===`'`){r+=`'`,e+=1;continue}return B(r)}r+=i}return null}function Qt(e){let t=e.match(/^\s*&\s+([\s\S]*)$/u);return t?Zt(t[1]):void 0}function $t(e,t,n,r){let i=e.match(/^\s*\$(?:(env|global|local|script):)?[A-Za-z_][A-Za-z0-9_]*\s*=\s*([\s\S]*)$/iu);if(!i)return{matched:!1,program:null};if(i[1]?.toLowerCase()===`env`)return{matched:!0,program:n?V(n,t,`shell`,r-1):null};let a=i[2].trim();if(/^(?:\[ordered\]\s*)?@\s*[{(]/iu.test(a))return{matched:!0,program:null};let o=Qt(a);if(o!==void 0)return{matched:!0,program:o};let s=a.match(/^(?:@?\(\s*)?([A-Za-z][A-Za-z0-9_.-]*)\b/u)?.[1];return s&&!I.has(s.toLowerCase())?{matched:!0,program:V(a,t+1,`shell`,r)??s}:{matched:!0,program:n?V(n,t,`shell`,r-1):null}}function en(e,t,n,r,i,a,o){let s=e=>e?V(i&&a?`${e} ${a} ${i}`:e,r+1,`shell`,o):null;if(e===`cmd`||e===`cmd.exe`){for(let e=n;e<t.length;e+=1){let n=t[e].toLowerCase();if(n!==`/c`&&n!==`/k`)continue;let r=t[e+1];return{matched:!0,program:s(r)}}return{matched:!1,program:null}}for(let e=n;e<t.length;e+=1){let n=t[e].toLowerCase();if(n===`-command`||n===`-c`){let n=t[e+1];return{matched:!0,program:s(n)}}if(n===`-file`||n===`-f`)return{matched:!0,program:B(t[e+1]??``)};if(n===`-encodedcommand`||n===`-enc`||n===`-e`)return{matched:!0,program:null};if(Pt.has(n)){e+=1;continue}if(!Nt.has(n)&&!n.startsWith(`-`))return{matched:!0,program:B(t[e])}}return{matched:!1,program:null}}function tn(e,t){for(let n=t;n<e.length;n+=1){let t=e[n],r=t.toLowerCase();if(r===`-filepath`)return B(e[n+1]??``);if(!Ft.has(r)){if(It.has(r)){if(e[n+1]===void 0)return null;n+=1;continue}return t.startsWith(`-`)?null:B(t)}}return null}function nn(e){let t=e.match(/^([A-Za-z_][A-Za-z0-9_]*)=(.*)$/su);if(!t)return null;let n=t[1],r=t[2].trim();if(!r||/[$`]/u.test(r))return{name:n,program:null};if(r.startsWith(`(`)&&r.endsWith(`)`))r=L(r.slice(1,-1))?.[0]??``;else if(/\s/u.test(r)&&!/[\\/]/u.test(r))return{name:n,program:null};return{name:n,program:B(r)}}function rn(e){let t=e.match(/^\$(?:([A-Za-z_][A-Za-z0-9_]*)|\{([A-Za-z_][A-Za-z0-9_]*)(?:\[@\])?\})$/u);return t?.[1]??t?.[2]??null}function an(e){let t=new Map,n=e,r=0;for(let e=0;n&&e<64;e+=1){let e=qt(n);if(e===null)return null;let i=R(e),a=L(Jt(i.firstCommand));if(a===null)return null;let o=+(a[0]===`do`||a[0]===`then`);for(;o<a.length;){let e=z(a,o);if(e!==null&&e<=a.length){o=e;continue}if(/^[A-Za-z_][A-Za-z0-9_]*\+?=/u.test(a[o]??``)){o+=1;continue}break}let s=rn(a[o]??``),c=s?t.get(s):void 0;if(c)return c;let l=a[0];if((l===`fi`||l===`done`||l===`esac`)&&(r=Math.max(0,r-1)),(l===`if`||l===`for`||l===`while`||l===`until`||l===`select`||l===`case`)&&(r+=1),r===0&&l===`unset`)for(let e of a.slice(1))t.delete(e);let u=+(a[0]===`export`),d=a.slice(u).map(nn);if(r===0&&d.length>0&&d.every(e=>e!==null))for(let e of d)e.program?t.set(e.name,e.program):t.delete(e.name);n=i.remainingCommand}return null}function on(e,t,n,r,i,a){let o=n;if(e===`command`)for(;o<t.length;){let e=t[o];if(e===`--`){o+=1;break}if(!e.startsWith(`-`)||e===`-`)break;if(e!==`-p`)return null;o+=1}else if(e===`builtin`){if(t[o]===`--`)o+=1;else if(t[o]?.startsWith(`-`))return null}else if(e===`exec`)for(;o<t.length;){let e=t[o];if(e===`--`){o+=1;break}if(e===`-a`){if(t[o+1]===void 0)return null;o+=2;continue}if(/^-a.+/u.test(e)||/^-[cl]+$/u.test(e)){o+=1;continue}if(e.startsWith(`-`)&&e!==`-`)return null;break}let s=t.slice(o);if(s.length===0)return null;let c=0;for(;c<s.length;){let e=z(s,c);if(e===null||e>s.length)break;c=e}let l=s[c];if(l&&/^[A-Za-z_][A-Za-z0-9_]*\+?=/u.test(l))return null;let u=V(Yt(s),r+1,e===`exec`?`exec`:`shell`,a);return u===null?e!==`exec`&&l&&l===l.toLowerCase()&&I.has(l)&&!Bt.has(l)&&i?V(i,r,`shell`,a-1):null:u}function sn(e,t,n,r){if(t>=8||r<=0)return null;let i=qt(e);if(i===null||/^(?:catch|finally|for|foreach|function|if|param|switch|try|while)\s*[{(]/iu.test(i)||/^[A-Za-z_][A-Za-z0-9_]*\s*\(\s*\)\s*\{/u.test(i)||i.startsWith(`[[`))return null;let a=R(i);if(/^@["'](?:\r?\n)/u.test(a.firstCommand.trimStart()))return a.remainingCommand?V(a.remainingCommand,t,`shell`,r-1):null;let o=$t(a.firstCommand,t,a.remainingCommand,r);if(o.matched)return o.program;let s=a.firstCommand.match(/^\s*((?:\.{1,2}|%[A-Za-z_][A-Za-z0-9_]*%|\$env:[A-Za-z_][A-Za-z0-9_]*)\\\S+)/iu)?.[1];if(s)return B(s);let c=L(Jt(a.firstCommand));if(c===null)return null;let l=a.firstCommand.trimStart()[0];if(c.length===1&&(l===`"`||l===`'`)&&/[\s()=]/u.test(c[0]??``)&&!/[\\/]/u.test(c[0]??``))return a.remainingCommand?V(a.remainingCommand,t,n,r-1):null;let u=0,d=null,f=n,p=!1,m=!1;for(;u<c.length;){let e=c[u];if(!e)return null;let n=z(c,u);if(n!==null){if(n>c.length)return null;m=!0,u=n;continue}if(/^[A-Za-z_][A-Za-z0-9_]*\+?=/.test(e)){p=!0,u+=1;continue}if(f===`shell`&&e===`:`)return a.remainingCommand?V(a.remainingCommand,t,f,r-1):null;if(Rt.includes(e[0]??``)&&!(e.startsWith(`$`)&&e.includes(`/`)))return f===`shell`&&e.startsWith(`[`)&&a.remainingCommand?V(a.remainingCommand,t,f,r-1):null;let i=e.split(/[\\/]/).at(-1),o=e===i;if(i===`env`||i===`sudo`){d=i,f=`exec`,u+=1;continue}if(d!==null&&e===`--`){d=null,u+=1;continue}if(d!==null&&e.startsWith(`-`)){if(d===`env`&&(e===`-S`||e===`--split-string`)){let e=c[u+1];return e?V(e,t+1,f,r):null}if(d===`env`&&e.startsWith(`--split-string=`))return V(e.slice(15),t+1,f,r);if(Ht[d].has(e)){if(c[u+1]===void 0)return null;u+=2;continue}if(Ut[d].has(e)){u+=1;continue}let n=e.indexOf(`=`);if(e.startsWith(`--`)&&n>2){if(!Ht[d].has(e.slice(0,n)))return null;u+=1;continue}if(/^-[A-Za-z].+/.test(e)&&!e.startsWith(`--`)){let t=!1;for(let[n,r]of e.slice(1).split(``).entries()){let i=`-${r}`;if(Ht[d].has(i)){t=n===e.length-2;break}if(!Ut[d].has(i))return null}if(t&&c[u+1]===void 0)return null;u+=t?2:1;continue}return null}if(i&&Dt.has(i.replace(/\.exe$/i,``).toLowerCase())){let e=Vt(c,u+1);if(e!==null){let n=c[e];return n?V(n,t+1,`shell`,r):null}}let s=i?.toLowerCase();if(s&&Ot.has(s)){let e=en(s,c,u+1,t,a.remainingCommand,a.separator,r);if(e.matched)return e.program}if(s===`start-process`){let e=tn(c,u+1);if(e!==null)return e}if(f===`shell`&&o&&i&&jt.has(i)){if(u+=1,i===`time`&&c[u]===`-p`&&(u+=1),c[u]?.startsWith(`-`))return null;continue}if(o&&i){let e=Xt(i,c,u);if(e!==null){let n=V(Yt(c.slice(e)),t+1,`exec`,r);if(n!==null)return n}}return o&&i&&At.has(i)?on(i,c,u+1,t,a.remainingCommand,r):(f===`shell`||d===`sudo`&&i&&Lt.has(i))&&o&&i&&I.has(i)&&(!Bt.has(i)||i===`false`&&a.separator!==`&&`)&&a.remainingCommand||f===`shell`&&o&&s&&Mt.has(s)&&a.remainingCommand?V(a.remainingCommand,t,`shell`,r-1):!i||o&&I.has(i)||Rt.includes(i[0]??``)||zt.includes(i.at(-1)??``)||i.endsWith(`()`)||/^[A-Za-z_][A-Za-z0-9_]*\(\)\{$/u.test(i)?null:i||null}return(p||m)&&d===null&&a.remainingCommand?V(a.remainingCommand,t,f,r-1):null}function V(e,t,n,r=Et){if(r<=0)return null;let i=Qt(e);return i===void 0?sn(e,t,n,r)??(n===`shell`?an(e):null):i}function cn(e,t=0){return V(e,t,`shell`,Et)}var ln=/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/gu;function un(e){return mn(hn(e))}var dn=/[a-z][\w+.-]*:\/\/\S+|(?:\b[a-z]:)?[^\s"'`=,;:()<>|&]+/giu;function fn(e){if(e.includes(`://`)||/[*?[{]/u.test(e))return e;let t=e.replaceAll(`\\`,`/`).replace(/\/+$/u,``),n=t.lastIndexOf(`/`);if(n<0)return e;let r=t.slice(n+1);if(!/[a-z]/iu.test(r))return e;let i=/^(?:~|\.{1,2}|[a-z]:)?\//iu.test(t),a=/.\.[a-z0-9]+$/iu.test(r),o=t.split(`/`).length-1;return i||a||o>=2?r:e}function pn(e){return e.replace(dn,fn)}function mn(e){return e.replace(ln,e=>e===``?`␡`:String.fromCharCode(9216+e.charCodeAt(0)))}function hn(e){let t=e.trim();if(R(t).remainingCommand!==null)return t;let n=L(t),r=n?.[0]?.split(/[\\/]/u).at(-1)?.replace(/\.exe$/iu,``);if(!n||!r||!Dt.has(r))return t;let i=Vt(n,1);return i===null||i!==n.length-1?t:n[i]?.trim()||t}var gn=new Set([`powershell`,`pwsh`]),_n=new Set(`Add Approve Assert Backup Block Build Checkpoint Clear Close Compare Complete Compress Confirm Connect Convert ConvertFrom ConvertTo Copy Debug Deny Deploy Disable Disconnect Dismount Edit Enable Enter Exit Expand Export Find ForEach Format Get Grant Group Hide Import Initialize Install Invoke Join Limit Lock Measure Merge Mount Move New Open Optimize Out Ping Pop Protect Publish Push Read Receive Redo Register Remove Rename Repair Request Reset Resize Resolve Restart Restore Resume Revoke Save Search Select Send Set Show Skip Sort Split Start Step Stop Submit Suspend Switch Sync Tee Test Trace Unblock Undo Uninstall Unlock Unprotect Unpublish Unregister Update Use Wait Watch Where Write`.split(` `));function vn(e){let t=/^([A-Z][a-z]+(?:[A-Z][a-z]+)?)-[A-Z][A-Za-z]*$/u.exec(e);return t!==null&&_n.has(t[1])}function yn(e){let t=/^(?:&\s*)?(?:"([^"]*)"|'([^']*)'|(\S+))/u.exec(e.trim()),n=(t?.[1]??t?.[2]??t?.[3]??``).split(/[\\/]/u).at(-1)?.toLowerCase().replace(/\.exe$/u,``);return n&&gn.has(n)||bn(e)?`powershell`:`shellscript`}function bn(e){let t=e.trim();if(/^&\s*\S/u.test(t))return!0;for(let e=0;t&&e<Et;e+=1){let{firstCommand:e,remainingCommand:n}=R(t),r=e.trim();if(/^\$(?:env|global|local|script):/iu.test(r)||/^\$[A-Za-z_]\w*\s+=/u.test(r)||vn(r.match(/^\S+/u)?.[0]??``))return!0;t=n}return!1}var xn=new Set([`cat`,`head`,`tail`,`nl`,`less`,`more`,`bat`,`sed`]),Sn=new Set([`grep`,`egrep`,`fgrep`,`rg`,`ag`]),Cn=new Set([`ls`,`tree`,`find`]),wn=new Set([`head`,`tail`,`wc`,`sort`,`uniq`,`cut`,`grep`,`cat`]),Tn={head:new Set([`-n`,`-c`]),tail:new Set([`-n`,`-c`]),sed:new Set([`-e`,`-f`]),grep:new Set([`-e`,`-f`,`-m`,`-A`,`-B`,`-C`,`--regexp`,`--file`,`--max-count`]),rg:new Set([`-e`,`-f`,`-g`,`-t`,`-T`,`-m`,`-A`,`-B`,`-C`,`-M`,`--regexp`,`--file`,`--glob`,`--iglob`,`--type`,`--type-not`,`--max-count`,`--max-columns`,`--context`,`--after-context`,`--before-context`]),ag:new Set([`-G`,`-A`,`-B`,`-C`,`-m`]),tree:new Set([`-L`,`-I`,`-P`])};function En(e,t){let n=Tn[e]??new Set,r=[],i=[],a=!1;for(let e=0;e<t.length;e+=1){let o=t[e];if(/^\d*(?:>>?|<|>&)/u.test(o)){/^\d*(?:>>?|<|>&)$/u.test(o)&&(e+=1);continue}if(!a&&o===`--`){a=!0;continue}if(!a&&o.startsWith(`-`)&&o!==`-`){if(n.has(o)){let n=t[e+1];(o===`-e`||o===`--regexp`)&&n!==void 0&&i.push(n),e+=1}else o.startsWith(`--regexp=`)&&i.push(o.slice(9));continue}r.push(o)}return{positionals:r,patterns:i}}function Dn(e){let t=L(e);if(!t||t.length===0)return null;let n=t[0].split(`/`).at(-1),{positionals:r,patterns:i}=En(n===`egrep`||n===`fgrep`?`grep`:n,t.slice(1));if(xn.has(n)){if(n===`sed`){if(!t.includes(`-n`)||t.includes(`-i`))return null;let e=i.length>0?r:r.slice(1);return e.length>0?{kind:`read`,paths:e}:null}return r.length>0?{kind:`read`,paths:r}:null}if(Sn.has(n)){let e=i[0]??r[0];return e?{kind:`search`,query:e,targets:i.length>0?r:r.slice(1)}:null}return Cn.has(n)?{kind:`list`,target:n===`find`?t.slice(1).find(e=>!e.startsWith(`-`)&&e!==`(`)??null:r[0]??null}:null}function On(e){let t=hn(e).trim(),n=null,r=null;for(;t;){let e=R(t),i=e.firstCommand.trim();if(r===null){if(/^cd(?:\s|$)/u.test(i)&&e.separator===`&&`){t=e.remainingCommand;continue}if(r=Dn(i),r===null)return null}else{let e=L(i)?.[0]?.split(`/`).at(-1);if(n!==`|`||!e||!wn.has(e))return null}n=e.separator,t=e.remainingCommand}return r}function kn(e){return e.replace(/[\\/]+$/u,``).split(/[\\/]/u).at(-1)||e}function An(e,t,n=kn){let r=On(e);if(!r)return null;let i=t===`past`,a=e=>e[0]===void 0?``:`${n(e[0])}${e.length>1?` +${e.length-1} more`:``}`;switch(r.kind){case`read`:return`${i?`Read`:`Reading`} ${a(r.paths)}`;case`search`:{let e=a(r.targets);return`${i?`Searched`:`Searching`} for ${r.query}${e?` in ${e}`:``}`}case`list`:return`${i?`Listed`:`Listing`} files${r.target?` in ${a([r.target])}`:``}`}}function H(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function U(e){return typeof e==`string`&&e.trim()!==``?e:void 0}function W(e,t=0){if(t>4)return{failed:!1};if(typeof e==`string`)try{return W(JSON.parse(e),t+1)}catch{return{failed:!1}}if(Array.isArray(e)){let n,r=!1;for(let i of e){let e=H(i),a=e?.text??H(e?.content)?.text,o=W(H(a)?.text??a,t+1);n??=o.data,r||=o.failed}return{...n?{data:n}:{},failed:r}}let n=H(e);if(!n)return{failed:!1};let r=n.isError===!0||n.is_error===!0||typeof n._tag==`string`&&/(?:Error|Failure)$/.test(n._tag)||n.error!=null,i=n.structuredContent??n.content;if(i!==void 0){let e=W(i,t+1);return{...e.data?{data:e.data}:{},failed:r||e.failed}}return{data:n,failed:r}}function jn(e){let t=W(e).data;return t&&typeof t.toolName==`string`?H(t.args):t}function Mn(e){return W(e).failed}function G(e){return new Set(e.filter(e=>e!==void 0)).size+e.filter(e=>e===void 0).length}function K(e,t,n=`${t}s`){return`${e} ${e===1?t:n}`}function Nn(e,t){let n=t.map(e=>{let t=W(e.output);return{input:jn(e.input),output:t.data,outcome:t.failed?`failed`:e.outcome}}),r=n.filter(e=>e.outcome===`completed`),i=n.filter(e=>e.outcome===`failed`).length,a=r.length>0?r:n,o=K(a.length,`time`),s=(e,t,n)=>`${r.length>0?e:`Tried to ${t}`} ${n}`,c=e=>a.map(t=>U(t.output?.[e])??U(t.input?.[e])),l=a.map(e=>U(e.output?.id)??U(e.output?.projectId)??U(e.input?.projectId)),u=a.map(e=>U(e.output?.threadId)??U(H(e.output?.thread)?.threadId)??U(e.input?.threadId)),d;switch(e){case`thread-send`:{let e=G(a.map(e=>U(e.output?.messageId))),t=u.every(e=>e!==void 0),n=new Set(u).size;d=s(`Sent`,`send`,t?e===n&&e>1?`messages to ${K(n,`thread`)}`:`${K(e,`message`)} to ${K(n,`thread`)}`:K(e,`message`));break}case`thread-create`:{let e=[];d=r.length>0&&r.every(t=>(Array.isArray(t.output?.threads)?t.output.threads:[t.output]).every(t=>{let n=H(t);if(n?.status===`rolled_back`)return!0;let r=U(n?.threadId);return r?(e.push(r),!0):!1}))?`Created ${K(new Set(e).size,`thread`)}`:`Requested thread creation ${o}`;break}case`delegate`:d=s(`Delegated`,`delegate`,K(G(c(`taskId`)),`task`));break;case`thread-read`:case`thread-wait`:{let t=u.every(e=>e!==void 0)?K(new Set(u).size,`thread`):`threads ${o}`;d=e===`thread-read`?s(`Read`,`read`,t):s(`Waited on`,`wait on`,t);break}case`thread-list`:d=s(`Listed`,`list`,`threads ${o}`);break;case`thread-interrupt`:d=s(`Requested interrupts for`,`interrupt`,K(G(u),`thread`));break;case`workflow-stop`:d=s(`Requested stops for`,`stop`,K(G(c(`subagentId`)),`workflow`));break;case`task-status`:d=s(`Checked`,`check`,`task status ${o}`);break;case`task-cancel`:d=s(`Requested cancellation of`,`cancel`,K(G(c(`taskId`)),`task`));break;case`schedule-create`:d=s(`Scheduled`,`schedule`,K(G(c(`scheduledTaskId`)),`task`));break;case`schedule-list`:d=s(`Listed`,`list`,`scheduled tasks ${o}`);break;case`schedule-update`:d=s(`Updated`,`update`,K(G(c(`scheduledTaskId`)),`scheduled task`));break;case`schedule-delete`:d=s(`Requested deletion of`,`delete`,K(G(c(`scheduledTaskId`)),`scheduled task`));break;case`schedule-run`:d=s(`Requested`,`request`,K(a.length,`scheduled task run`));break;case`thread-configuration`:d=s(`Checked`,`check`,`thread configuration ${o}`);break;case`thread-configure`:d=s(`Set`,`set`,`thread model ${o}`);break;case`thread-fork`:d=s(`Requested`,`request`,K(a.length,`thread fork`));break;case`thread-merge`:d=s(`Requested`,`request`,K(a.length,`context merge`));break;case`thread-search`:d=s(`Searched`,`search`,`threads ${o}`);break;case`thread-transfers`:d=s(`Checked`,`check`,`thread transfers ${o}`);break;case`thread-organize`:d=s(`Organized`,`organize`,`threads ${o}`);break;case`thread-update`:d=s(`Updated`,`update`,K(G(u),`thread`));break;case`queue-list`:d=s(`Listed`,`list`,`queued messages ${o}`);break;case`queue-read`:d=s(`Read`,`read`,K(G(c(`queuedRunId`)),`queued message`));break;case`queue-edit`:d=s(`Edited`,`edit`,K(G(c(`queuedRunId`)),`queued message`));break;case`queue-cancel`:d=s(`Requested cancellation of`,`cancel`,K(G(c(`queuedRunId`)),`queued run`));break;case`queue-reorder`:d=s(`Reordered`,`reorder`,K(G(c(`queuedRunId`)),`queued run`));break;case`queue-steer`:d=s(`Requested steering with`,`steer with`,K(G(c(`queuedRunId`)),`queued message`));break;case`question-list`:d=s(`Listed`,`list`,`pending questions ${o}`);break;case`question-read`:d=s(`Read`,`read`,K(G(c(`requestId`)),`pending question request`));break;case`question-respond`:d=s(`Answered`,`answer`,K(G(c(`requestId`)),`pending question request`));break;case`secret-request`:d=s(`Asked for`,`ask for`,K(a.length,`secret`));break;case`worktree-handoff`:d=s(`Handed off to`,`hand off to`,K(G(c(`worktreePath`)),`worktree`));break;case`worktree-list`:d=s(`Listed`,`list`,`workspace branches ${o}`);break;case`worktree-status`:d=s(`Checked`,`check`,`worktree status ${o}`);break;case`project-list`:d=s(`Listed`,`list`,`projects ${o}`);break;case`project-read`:d=s(`Read`,`read`,K(G(l),`project`));break;case`project-create`:d=s(`Registered`,`register`,K(G(l),`project`));break;case`project-update`:d=s(`Updated`,`update`,K(G(l),`project`));break;case`project-delete`:d=s(`Deleted`,`delete`,K(G(l),`project`));break;case`project-clone`:d=s(`Cloned`,`clone`,K(G(c(`cwd`)),`repository`,`repositories`));break;case`environment-read`:d=s(`Checked`,`check`,`environment preferences ${o}`);break;case`environment-update`:d=s(`Updated`,`update`,`environment preferences ${o}`);break;case`attachment-prepare`:d=s(`Prepared`,`prepare`,K(G(c(`attachmentId`)),`attachment upload`));break;case`attachment-discard`:d=s(`Discarded`,`discard`,K(G(c(`attachmentId`)),`pending attachment`));break;case`attachment-send`:{let e=new Map;a.forEach((t,n)=>e.set(U(t.output?.messageId)??`call-${n}`,t));let t=[...e.values()].reduce((e,t)=>e+(Array.isArray(t.input?.attachments)?t.input.attachments.length:0),0),n=[...e.values()].every(e=>Array.isArray(e.input?.attachments)&&e.input.attachments.length>0),r=u.every(e=>e!==void 0)?` to ${K(new Set(u).size,`thread`)}`:``;d=s(`Sent`,`send`,n?`${K(t,`attachment`)}${r}`:`attachments${r} ${o}`);break}case`link-pr`:d=s(`Linked`,`link`,K(a.length,`pull request`));break;case`unlink-pr`:d=s(`Unlinked`,`unlink`,K(a.length,`pull request`));break;case`watch-pr`:d=s(`Watching`,`watch`,K(a.length,`pull request`));break;case`unwatch-pr`:d=s(`Stopped watching`,`stop watching`,K(a.length,`pull request`));break;case`list-prs`:d=s(`Checked`,`check`,`linked pull requests${a.length===1?``:` ${o}`}`);break;case`write-pr-guides`:{let e=a.flatMap(e=>Array.isArray(e.output?.guides)?e.output.guides.map(e=>H(e)?.outcome):[]),t=e.filter(e=>e!==`failed`).length,n=e.length-t;i+=n,d=e.length>0&&t===0?`Could not start ${K(n,`review guide`)}`:s(`Started`,`start`,e.length===0?`review guides ${o}`:`${K(t,`review guide`)}${n>0?`, ${n} failed`:``}`);break}case`read-pr-guide`:d=s(`Read`,`read`,K(a.length,`review guide`));break;case`browser`:d=s(`Used`,`use`,`browser ${o}`);break;case`decide`:d=s(`Asked`,`ask`,`Decisions ${o}`);break;case`device`:d=s(`Used`,`use`,`device controls ${o}`);break;case`html-preview`:d=s(`Previewed`,`preview`,K(a.length,`HTML page`));break;case`html-render`:d=s(`Rendered`,`render`,K(a.length,`HTML page`));break;case`capabilities`:d=s(`Checked`,`check`,`orchestration capabilities ${o}`)}return{label:d,failedCount:i}}function Pn(e){return e.status===`running`?`Compacting context`:e.beforeTokenCount!==void 0&&e.afterTokenCount!==void 0?`Context compacted ${le(e.beforeTokenCount)} → ${le(e.afterTokenCount)} tokens`:`Context compacted`}function Fn(e){return e.replace(/\s+(?:complete|completed)\s*$/i,``).trim()}function q(e){let t=e.structuredPayload;if(t?.type===`dynamic_tool`&&t.toolName)return t.toolName;let n=J(e.toolData);return typeof n?.server==`string`&&typeof n.tool==`string`?`${n.server}.${n.tool}`:typeof n?.toolName==`string`?n.toolName:O(e.toolTitle)?e.toolTitle:e.label}function In(e){let t=e.structuredPayload,n=J(e.toolData);return t?.type===`dynamic_tool`?t.output:n?.output??n?.result??n?.rawOutput??n?.content}function Ln(e,t,n){if(!e)return null;let[r,i,a,o]=e.labels,s=t===`inProgress`?i:t===`completed`?a:t===`failed`?`Failed to ${r.toLowerCase()}`:t===`declined`?`Declined to ${r.toLowerCase()}`:t===`stopped`?`Stopped ${i.toLowerCase()}`:i,c=e.summaryAction===`link-pr`||e.summaryAction===`unlink-pr`||e.summaryAction===`list-prs`||e.summaryAction===`watch-pr`||e.summaryAction===`unwatch-pr`?e.summaryAction:void 0,l=J(n),u=J(l?.arguments)??J(l?.input)??J(l?.rawInput),d=(typeof u?.url==`string`?ie(u.url):null)?.number??u?.number;return{displayName:`${s} ${c!==void 0&&c!==`list-prs`&&typeof d==`number`&&Number.isSafeInteger(d)&&d>0?`PR #${d}`:o}`,icon:e.icon,...c===void 0?{}:{action:c}}}function Rn(e,t){return e===`failed`||e===`declined`||e===`stopped`||e===`idle`?e:t||e===`inProgress`?`inProgress`:`completed`}function zn(e,t){let n=O(q(e)),r=e.toolLifecycleStatus??t;return Ln(n,n&&Mn(In(e))?`failed`:r,e.toolData)}function J(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function Bn(e){return e.tone===`tool`||e.tone===`thinking`||e.tone===`error`||e.command!==void 0&&e.command.trim().length>0||e.requestKind!==void 0||e.itemType!==void 0&&d(e.itemType)}function Vn(e,t){if(e.tone===`error`||e.toolLifecycleStatus===`failed`||e.toolLifecycleStatus===`declined`)return!0;if(!Bn(e))return!1;if(O(q(e))&&Mn(In(e)))return!0;let n=e.structuredPayload;if(n?.type===`command_execution`&&(n.outputIndicatesFailure||n.exitCode!==void 0&&n.exitCode!==0||n.output&<(n.output.slice(0,32768))))return!0;let r=t?[e.detail,e.command].filter(Boolean).join(`
|
|
25
|
-
`):e.detail??``;return r.length>0&<(r)}function Hn(e){return Vn(e,!0)}function Un(e){return Vn(e,!1)}function Wn(e){return e.itemType===`file_search`||e.itemType===`web_search`&&/\bgrep\b/i.test(Fn(e.toolTitle??e.label))}function Y(e){if(e.itemType===`thread_created`)return`thread-create`;let t=zn(e);if(t?.action!==void 0)return t.action;if(t?.icon===`browser`)return`browser`;if(t?.icon===`device`)return`device`;if(e.requestKind===`file-read`||e.viewedImagePath!==void 0)return`read`;if(e.itemType===`approval_request`||e.itemType===`user_input_request`)return Bn(e)?`other`:`update`;let n=e.itemType===`command_execution`&&e.command?On(e.command):null;if(n)return n.kind===`read`?`read`:`code-search`;let r=J(e.toolData)??{},i=e.structuredPayload?.type===`dynamic_tool`?e.structuredPayload.toolName:typeof r.toolName==`string`?r.toolName:e.toolTitle,a=ve({itemType:e.itemType===`command_execution`||e.itemType===`file_change`||e.itemType===`web_search`?e.itemType:e.itemType===`dynamic_tool`?`dynamic_tool_call`:void 0,title:e.toolTitle??e.label,data:{...r,...i?{toolName:i}:{}}});return a===`read`?`read`:a===`file_change`||e.itemType===`file_change`?`edit`:a===`command`||e.itemType===`command_execution`||e.command?`command`:a===`search`?e.itemType===`web_search`&&!Wn(e)?`search`:`code-search`:Wn(e)?`code-search`:e.itemType===`web_search`?`search`:(e.changedFiles?.length??0)>0?`edit`:Bn(e)?`other`:`update`}function Gn(e){let t=e.viewedImagePath?.trim();if(t!==void 0&&!/[\r\n]/.test(t)&&re(t))return t;let n=e.detail?.trim();return Y(e)===`read`&&n!==void 0&&!/[\r\n]/.test(n)&&re(n)?n:null}function Kn(e,t){let n=se(e,t.workspaceRoot??`.`);if(n._tag!==`WorkspaceFile`)return null;let r=t.workspaceRoot==null&&n.path.startsWith(`./`)?n.path.slice(2):n.path,i=ce(e,{threadId:t.threadId,workspaceRoot:t.workspaceRoot,resolvedFilePath:r});return i===null||i.access!==`environment`?null:{resource:i.resource,alt:i.name,srcFragment:i.srcFragment}}function qn(e,t){if(e!==`edit`)return t.length;let n=new Set,r=0;for(let e of t)if(!e.changedFiles||e.changedFiles.length===0)r+=1;else for(let t of e.changedFiles)n.add(t);return n.size+r}function Jn(e,t){switch(e){case`link-pr`:return`Linked ${t} ${t===1?`pull request`:`pull requests`}`;case`unlink-pr`:return`Unlinked ${t} ${t===1?`pull request`:`pull requests`}`;case`watch-pr`:return`Watching ${t} ${t===1?`pull request`:`pull requests`}`;case`unwatch-pr`:return`Stopped watching ${t} ${t===1?`pull request`:`pull requests`}`;case`list-prs`:return t===1?`Checked linked pull requests`:`Checked linked pull requests ${t} times`;case`read`:return`Read ${t} ${t===1?`file`:`files`}`;case`edit`:return`Changed ${t} ${t===1?`file`:`files`}`;case`command`:return`Ran ${t} ${t===1?`command`:`commands`}`;case`thread-create`:return`Created ${t} ${t===1?`thread`:`threads`}`;case`device`:return`Used device controls ${t} ${t===1?`time`:`times`}`;case`browser`:return`Used browser ${t} ${t===1?`time`:`times`}`;case`search`:return`Searched the web ${t} ${t===1?`time`:`times`}`;case`code-search`:return`Searched code ${t} ${t===1?`time`:`times`}`;case`other`:return`Used ${t} ${t===1?`tool`:`tools`}`;case`update`:return`Received ${t} ${t===1?`update`:`updates`}`}}function Yn(e){let t=e.structuredPayload,n=e.toolData!==null&&typeof e.toolData==`object`?e.toolData:void 0;return{input:t?.type===`dynamic_tool`?t.input:n?.arguments??n?.input??n?.rawInput,output:In(e),outcome:e.toolLifecycleStatus===`failed`||e.toolLifecycleStatus===`declined`||e.tone===`error`?`failed`:e.toolLifecycleStatus===`completed`?`completed`:`unfinished`}}function Xn(e){switch(e){case`command`:case`edit`:case`delegate`:case`task-cancel`:case`thread-create`:case`thread-send`:case`thread-interrupt`:case`workflow-stop`:case`schedule-create`:case`schedule-update`:case`schedule-delete`:case`schedule-run`:case`thread-configure`:case`thread-fork`:case`thread-merge`:case`thread-organize`:case`thread-update`:case`queue-edit`:case`queue-cancel`:case`queue-reorder`:case`queue-steer`:case`question-respond`:case`worktree-handoff`:case`project-create`:case`project-update`:case`project-delete`:case`project-clone`:case`environment-update`:case`attachment-prepare`:case`attachment-discard`:case`attachment-send`:return 0;case`other`:case`update`:return 2;default:return 1}}function Zn(e){let t=e.filter(e=>e.itemType!==`reasoning`);if(e.length>0&&t.length===0)return{summary:e.length===1?`Thought`:`Thought (×${e.length})`,hasFailure:!1};e=t;let n=new Map,r=new Map;for(let t of e){let e=O(q(t))?.summaryAction??null;if(t.toolSource&&e===null){r.set(t.toolSource.key,t.toolSource);continue}let i=Y(t),a=e??i,o=n.get(a);o?o.entries.push(t):n.set(a,{action:i,t3Action:e,entries:[t]})}let i=[...n].map(([e,t],n)=>({index:n,count:t.entries.length,priority:Xn(e),...t.t3Action?Nn(t.t3Action,t.entries.map(Yn)):{label:Jn(t.action,qn(t.action,t.entries)),failedCount:t.entries.filter(Un).length}})),a=[...i].sort((e,t)=>e.priority-t.priority||e.index-t.index).slice(0,2).sort((e,t)=>e.index-t.index),o=a.map(({label:e})=>e);if(r.size>0){let e=[...r.values()],t=[...new Set(e.map(e=>e.name))],n=t.length<2?t[0]:t.length===2?t.join(` and `):`${t.slice(0,-1).join(`, `)}, and ${t.at(-1)}`,i=e.every(e=>e.kind===`integration`);o.unshift(`Used ${n}${i?` ${t.length===1?`integration`:`integrations`}`:``}`)}let s=e.filter(e=>e.toolSource!==void 0&&O(q(e))===null).length,c=e.length-s-a.reduce((e,t)=>e+t.count,0);c>0&&o.push(`Performed ${c} other ${c===1?`action`:`actions`}`);let l=o.map((e,t)=>t===0?e:e.charAt(0).toLowerCase()+e.slice(1));return{summary:l.length<3?l.join(` and `):`${l.slice(0,-1).join(`, `)}, and ${l.at(-1)}`,hasFailure:i.some(e=>e.failedCount>0)}}function Qn(e){let t=e.filter(e=>e.itemType!==`reasoning`);if(e.length>0&&t.length===0)return`reasoning`;if(e=t,e.length>0&&e.every(e=>zn(e)?.icon===`pull-request`))return`pull-request`;let n=new Set(e.map(Y));if(n.size!==1)return`mixed`;let r=n.values().next().value;if(r!==`other`)return r;let i=new Set(e.map(e=>e.itemType===`dynamic_tool`?`dynamic-tool`:e.itemType===`subagent`||e.tone===`thinking`?`agent-tool`:e.tone===`tool`?`tone-tool`:`other`));return i.size===1?i.values().next().value:`mixed`}function $n(e){let t=/^\s*\*\*([^*\r\n]+)\*\*[ \t]*\r?(?:\n|$)/.exec(e)?.[1],n=(t??e).replace(/!?\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/^[ \t]*(?:#{1,6}|[-*+]|\d+\.)[ \t]+/gm,``).replace(/`+|\*\*|~~/g,``).replace(/(^|[^\w*])[*_]([^*_\n]+)[*_](?![\w*])/g,`$1$2`).replace(/\s+/g,` `).trim();if(t!==void 0)return n;let r=/[.?!]["'”’)]?(?=\s)/.exec(n);return r?n.slice(0,r.index+r[0].length):n}function X(e,t){if(e?.status!==`failed`)return null;let n=null;for(let r of t)r.type===`error`&&r.status===`failed`&&r.runId===e.id&&r.nodeId===e.rootNodeId&&(n===null||c(r.updatedAt)>c(n.updatedAt)||c(r.updatedAt)===c(n.updatedAt)&&(r.ordinal>n.ordinal||r.ordinal===n.ordinal&&r.id>n.id))&&(n=r);return n?.failure??null}function er(e,t){let n=t!==null&&t!==e?.message?null:e;return{usageLimitResetAt:n?.class===`usage_limit`?n.resetAt??null:null,lastError:t??e?.message??null,lastErrorClass:t!==null&&t!==e?.message?null:e?.class??null}}function tr(e){let t=null;for(let n of e)n.status!==`queued`&&(n.status!==`cancelled`||n.startedAt!==null)&&(t===null||nr(n,t))&&(t=n);return t}function nr(e,t){let n=e=>e.completedAt?c(e.completedAt):1/0;return n(e)===n(t)?e.ordinal>t.ordinal:n(e)>n(t)}function rr(e,t,n){let r=tr(e);return r?.status===`failed`&&er(X(r,t),n).lastErrorClass===`usage_limit`?r:null}function ir(e,t,n){let r=rr(e,t,n);return r!==null&&e.some(e=>e.ordinal>r.ordinal)?r:null}function ar(e){let t=null;for(let n of e)(n.status!==`queued`||n.queueHeld!==!0)&&(t===null||n.ordinal>t.ordinal)&&(t=n);return t}function or(e,t){if(e.startedAt===null)return null;let n=l(e.status)?t:e.completedAt===null?null:Date.parse(e.completedAt);if(n===null)return null;let r=Date.parse(e.startedAt);return Number.isFinite(r)&&Number.isFinite(n)?Math.max(0,n-r):null}function sr(e){if(!Number.isFinite(e)||e<0)return`0ms`;if(e<1e3)return`${Math.max(1,Math.round(e))}ms`;if(e<1e4){let t=Math.round(e/100)/10;return t>=10?`10s`:`${t.toFixed(1)}s`}if(e<6e4)return`${Math.round(e/1e3)}s`;let t=Math.round(e/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=[];return n>0&&a.push(`${n}h`),r>0&&a.push(`${r}m`),i>0&&a.push(`${i}s`),a.join(` `)}var cr=new Set([`preparing`,`starting`,`running`,`waiting`]),lr=new Set([`preparing`,`starting`,`running`]);function ur(e,t){return e.runs.reduce((e,n)=>t(n)&&(e===null||n.ordinal>e.ordinal)?n:e,null)}function dr(e,t){return{runId:t.id,status:t.status,requestedAt:a(t.requestedAt),startedAt:t.startedAt===null?null:a(t.startedAt),completedAt:t.completedAt===null?null:a(t.completedAt),assistantMessageId:e.messages.findLast(e=>e.runId===t.id&&e.role===`assistant`)?.id??null,...t.sourcePlanRef===void 0?{}:{sourcePlanRef:t.sourcePlanRef}}}function fr(e){let t=e.providerSessions.findLast(t=>t.providerInstanceId===e.thread.providerInstanceId);return ir(e.runs,e.turnItems,t?.lastError??null)}function pr(e){return fr(e)??ar(e.runs)}function mr(e){let t=pr(e);return t===null?null:dr(e,t)}function hr(e){let t=ur(e,e=>cr.has(e.status))??pr(e);return t===null?null:dr(e,t)}function gr(e){let t=_r(e);return t!==null&&l(t.status)?t.startedAt:null}function _r(e){if(!u(e.thread))return null;let t=e.nodes.findLast(e=>e.kind===`root_turn`&&e.runId===null);return t===void 0?null:{status:t.status,startedAt:t.startedAt===null?null:a(t.startedAt),completedAt:t.completedAt===null?null:a(t.completedAt)}}function vr(e){return e.providerThreads.find(t=>t.id===e.thread.activeProviderThreadId&&t.providerInstanceId===e.thread.modelSelection.instanceId)?.nativeMetadata?.modelSelection??null}var yr=[`reasoningEffort`,`effort`,`reasoning`,`variant`];function br(e,t=[],r){let a=t.find(t=>t.slug===e.model)?.capabilities;if(!a)return null;let o=i({caps:a,selections:e.options});for(let t of yr){let i=o.find(e=>e.id===t);if(i?.type!==`select`)continue;let a=n(i,e,r);if(a)return a}return null}var xr={idle:`Idle`,pending:`Working`,running:`Working`,waiting:`Waiting`,completed:`Completed`,interrupted:`Interrupted`,failed:`Failed`,cancelled:`Cancelled`,rolled_back:`Cancelled`};function Sr(e,t){if(e===null)return`Starting`;let n=xr[e.status],r=l(e.status);if(!r&&e.status!==`completed`)return n;let i=e.startedAt===null?NaN:Date.parse(e.startedAt),a=r?t:e.completedAt===null?NaN:Date.parse(e.completedAt);if(!Number.isFinite(i)||!Number.isFinite(a))return n;let o=sr(Math.max(1e3,Math.floor((a-i)/1e3)*1e3));return r?`${n} ${o}`:`${n} in ${o}`}function Cr(e){let t=mr(e),n=e.providerSessions.findLast(t=>t.providerInstanceId===e.thread.providerInstanceId),r=fr(e),i=pr(e),o=hr(e),s=ur(e,e=>cr.has(e.status)),c=h(ne({latestRun:i,providerThreads:e.providerThreads,turnItems:e.turnItems,activeProviderThreadId:e.thread.activeProviderThreadId,runs:e.runs,pullRequests:e.thread.pullRequests}));if(t===null&&e.thread.activeProviderThreadId===null&&!c)return null;let l=ur(e,e=>lr.has(e.status))?.id??null;return{status:r?`failed`:c&&i?.status!==`failed`?`idle`:o?.status??`idle`,activeRunId:l,activityStartedAt:s===null?null:a(p(s)),providerInstanceId:e.thread.providerInstanceId,providerName:n?.driver??null,...er(X(i,e.turnItems),n?.lastError??null),updatedAt:a(e.updatedAt)}}function wr(e){return te(e)&&e?.activeRunId!==null&&e?.activeRunId!==void 0}var Z={subagent:{order:0,singular:`subagent`,plural:`subagents`},command:{order:1,singular:`command`,plural:`commands`},monitor:{order:2,singular:`monitor`,plural:`monitors`},background_task:{order:3,singular:`background task`,plural:`background tasks`}};function Tr(e){return e.length<=1?e.join(``):`${e.slice(0,-1).join(`, `)} and ${e.at(-1)}`}function Er(e){if(e.length===0)return null;let t=h(e),n=e.map(e=>{let t=e.description?.trim(),n=e.kind===`subagent`&&t!==void 0?ae(t).trim():t;return{taskId:e.taskId,kind:e.kind,label:n===void 0||n.length===0?Z[e.kind].singular:n,childThreadId:e.kind===`subagent`?e.childThreadId:void 0}}).sort((e,t)=>Z[e.kind].order-Z[t.kind].order),[r]=n;if(n.length===1&&r!==void 0){let e=Z[r.kind].singular,i=r.label!==e;return{title:t?i?`${r.kind===`monitor`?``:`Waiting on ${e} `}${r.label}`:`Waiting on a ${e}`:i?`Running: ${r.label}`:`Running a ${e}`,items:n,waiting:t}}let i=new Map;for(let e of n)i.set(e.kind,(i.get(e.kind)??0)+1);let a=Array.from(i,([e,t])=>{let{singular:n,plural:r}=Z[e];return`${t} ${t===1?n:r}`});return{title:`${t?`Waiting on`:`Running`} ${Tr(a)}`,items:n,waiting:t}}var Dr={active:`Pursuing goal`,paused:`Goal paused`,blocked:`Goal blocked`,usage_limited:`Goal hit a usage limit`,budget_limited:`Goal reached its token budget`,complete:`Goal complete`};function Or(e){return e<1e3?`${e}`:e<1e6?`${Math.round(e/1e3)}k`:`${(e/1e6).toFixed(1).replace(/\.0$/,``)}m`}function kr(e,t){let n=[];return e.tokensUsed!==void 0&&e.tokensUsed>0&&n.push(e.tokenBudget==null?`${Or(e.tokensUsed)} tokens`:`${Or(e.tokensUsed)} / ${Or(e.tokenBudget)} tokens`),e.timeUsedSeconds!==void 0&&e.timeUsedSeconds>=60&&n.push(sr(e.timeUsedSeconds*1e3)),e.checks!==void 0&&e.checks>0&&n.push(`${e.checks} ${e.checks===1?`check`:`checks`}`),{title:e.status===`active`&&!t?`Goal set`:Dr[e.status],objective:e.objective,usage:n.length===0?null:n.join(` · `),canResume:e.status!==`active`&&e.status!==`complete`}}function Ar(e){switch(e.kind){case`subagent`:case`delegated_task`:return e.childThreadId;case`command`:case`monitor`:case`background_task`:case`system`:return;default:return}}var jr=`Preparing workspace`;function Mr(e){return e.type===`command_execution`&&e.input===jr||e.type===`error`&&e.status===`cancelled`&&e.failure.code===`workspace_preparation_failed`}function Nr(e,t){let n=new Set(e.flatMap(e=>e.status===`failed`&&e.workspacePreparation!==void 0?[e.id]:[])),r=new Set;if(n.size===0)return r;for(let e of t)e.type===`error`&&e.status===`failed`&&e.failure.code===`workspace_preparation_failed`&&e.runId!==null&&n.has(e.runId)&&r.add(e.runId);return r}function Pr(e){return e.tone===`tool`||e.tone===`thinking`||e.tone===`error`||e.command!==void 0||e.requestKind!==void 0}function Fr(e){return e.itemType===`error`}function Ir(e){if(!Pr(e)||Hn(e)||e.tone===`thinking`&&e.itemType!==`reasoning`)return!1;let t=e.toolLifecycleStatus;return t!==`failed`&&t!==`declined`&&t!==`inProgress`&&t!==`stopped`&&t!==`idle`}function Lr(e){return Pr(e)&&!Hn(e)&&!Ir(e)}function Rr(e,t){return e===null||e.status===`preparing`||e.status===`queued`||e.status===`starting`||e.status===`running`||e.status===`waiting`?!1:t?.activeRunId!==e.runId}function zr(e,t,n){return ee({latestRun:e,runtime:t})??(t?.activeRunId==null?n:null)}function Br(e){return[...e].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt))}function Vr(e){return[...e].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt))}function Hr(e,t){if(e===null)return null;let n=e.plans.filter(e=>e.kind===`todo_list`),r=[...n].toReversed().find(e=>e.runId===t)??n.at(-1)??null;return r===null||r.steps.length===0?null:{createdAt:Q(e,r.id),runId:r.runId,explanation:r.explanation??null,steps:r.steps.map(({text:e,status:t,durationMs:n})=>({step:e,status:t===`running`?`inProgress`:t,...n===void 0?{}:{durationMs:n}}))}}function Q(e,t){let n=e.turnItems.findLast(e=>(e.type===`proposed_plan`||e.type===`todo_list`)&&e.planId===t);return a(n?.updatedAt??e.updatedAt)}function Ur(e,t){let n=Q(e,t.id);return{id:t.id,createdAt:n,updatedAt:n,runId:t.runId,planMarkdown:t.markdown,status:t.status}}function Wr(e,t){if(e===null)return null;let n=e.plans.filter(e=>e.kind===`proposed_plan`),r=t?n.filter(e=>e.runId===t):n,i=[...r.length>0?r:n].toSorted((t,n)=>Q(e,t.id).localeCompare(Q(e,n.id))||t.id.localeCompare(n.id)).at(-1);return i===void 0?null:Ur(e,i)}function Gr(e){return e?.status===`active`}var Kr=new Set([`fork`,`handoff`,`run_interrupt_request`,`run_interrupt_result`,`secret_request`,`subagent`]),qr=new Set([`fork`,`thread_created`,`secret_request`]);function Jr(e){return e.kind===`event`&&qr.has(e.projectedItem.item.type)}function $(e){return a(e.item.startedAt??e.item.updatedAt)}function Yr(e){switch(e.status){case`pending`:case`running`:case`waiting`:return`inProgress`;case`completed`:return`completed`;case`idle`:return`idle`;case`failed`:return`failed`;case`cancelled`:case`interrupted`:return`stopped`}}function Xr(e){if(e.type===`error`)return`info`;if(e.type===`reasoning`)return`thinking`;switch(e.type){case`command_execution`:case`file_change`:case`file_search`:case`web_search`:case`dynamic_tool`:case`subagent`:case`thread_created`:case`user_input_request`:case`approval_request`:return`tool`;default:return`info`}}function Zr(e){if(e.retry===void 0)return{label:e.failure.class===`usage_limit`?`Usage limit reached`:e.title?.trim()||`Provider error`,detail:e.failure.message};let t=e.retry.maxAttempts===null?`${e.retry.attempt}`:`${e.retry.attempt}/${e.retry.maxAttempts}`,n=e.status===`running`?`Retrying provider (${t})`:e.status===`completed`?`Provider recovered (${t} retries)`:e.status===`failed`?`${e.failure.class===`usage_limit`?`Usage limit reached`:`Provider error`} after ${t} retries`:`Provider retry stopped (${t})`,r=e.status===`running`&&e.retry.retryDelayMs!==null&&e.retry.retryDelayMs>0?e.retry.retryDelayMs<1e3?` Retrying in ${e.retry.retryDelayMs}ms.`:` Retrying in ${(e.retry.retryDelayMs/1e3).toFixed(1).replace(/\.0$/u,``)}s.`:``;return{label:n,detail:`${e.failure.message}${r}`}}function Qr(e){let{item:t}=e,n=t.title?.trim()||null,r={id:t.id,createdAt:$(e),runId:t.runId,tone:Xr(t),itemType:t.type,toolLifecycleStatus:Yr(t),structuredPayload:t,projectedItem:e,...Ae(t)};switch(t.type){case`thread_created`:return{...r,label:`Created thread`};case`compaction`:return{...r,label:Pn(t),sourceActivityKind:`context-compaction`,...t.summary?{detail:t.summary}:{}};case`reasoning`:return{...r,label:n??`Thinking`,...t.text?{detail:t.text}:{}};case`command_execution`:return{...r,label:n??`Ran command`,command:t.input,rawCommand:t.input,toolTitle:n??`Command`,toolData:t};case`file_change`:return{...r,label:n??(t.changes!==void 0&&t.changes.length>1?`Changed ${t.changes.length} files`:`Changed ${t.fileName}`),changedFiles:t.changes?.map(e=>e.path)??[t.fileName],toolTitle:n??`File change`,toolData:t};case`file_search`:return{...r,label:n??we(t)??`Searched files`,...t.pattern?{detail:t.pattern}:{},toolTitle:n??`File search`,toolData:t};case`web_search`:return{...r,label:n??`Searched the web`,...t.patterns?.length?{detail:t.patterns.join(`, `)}:{},toolTitle:n??`Web search`,toolData:t};case`checkpoint`:return{...r,label:n??`Checkpoint captured`,changedFiles:t.files.map(e=>e.path),toolData:t};case`system_notice`:return{...r,label:t.message,...f(t)?{}:{sourceActivityKind:`runtime.warning`}};case`error`:{let e=Zr(t);return{...r,...e,...t.failure.class===`usage_limit`&&t.status!==`completed`?{sourceActivityKind:`runtime.warning`}:t.retry===void 0?{sourceActivityKind:`runtime.error`}:{},toolData:t}}case`dynamic_tool`:{let e=ve({itemType:`dynamic_tool_call`,data:{toolName:t.toolName??void 0,input:t.input}}),[i]=ge({input:t.input});return{...r,label:n??(e===`read`?Te(i??``):e===`search`?we({input:t.input})??t.toolName??`Tool call`:t.toolName??`Tool call`),toolTitle:n??t.toolName??`Tool`,toolData:{input:t.input,output:t.output}}}case`approval_request`:return{...r,label:n??`Approval requested`,detail:t.prompt??t.requestKind,toolData:t};case`user_input_request`:return{...r,label:n??(t.questionAnswer?`Answered questions`:`Input requested`),...t.questionAnswer?{questionAnswer:t.questionAnswer}:{},toolData:t};default:return{...r,label:n??t.type.replaceAll(`_`,` `),toolData:t}}}function $r(e){let t=new Set,n=[],r=new Map((e.attempts??[]).map(e=>[e.rootNodeId,e])),i=new Map((e.nodes??[]).map(e=>[e.id,e])),o=new Map((e.plans??[]).map(e=>[e.id,e])),s=e=>{if(e.nodeId===null||e.runId===null)return;let t=e.nodeId,n=new Set;for(;t!==null&&!n.has(t);){n.add(t);let a=r.get(t);if(a?.runId===e.runId)return a;let o=i.get(t);if(o===void 0)return;let s=r.get(o.rootNodeId);if(s?.runId===e.runId)return s;t=o.parentNodeId}},c=new Set(e.visibleTurnItems.flatMap(({item:e})=>e.type===`user_input_request`&&e.questionAnswer?[`async-answer:${e.questionAnswer.requestId}`]:[]));for(let r of e.visibleTurnItems){let{item:i}=r;if(Mr(i)||i.type===`todo_list`||i.type===`checkpoint`||i.type===`user_message`&&c.has(i.messageId))continue;let l=$(r),u=s(i),d=u===void 0?{}:{attempt:u};if(i.type===`notification`){n.push({id:i.id,kind:`work`,createdAt:l,entry:{id:i.id,createdAt:l,runId:i.runId,label:i.summary,tone:`info`,itemType:i.type,structuredPayload:i,projectedItem:r},...d});continue}if(i.type===`user_message`||i.type===`assistant_message`){let o={id:i.messageId,role:i.type===`user_message`?`user`:`assistant`,text:i.text,...i.type===`user_message`&&i.context?{context:i.context}:{},...(i.attachments?.length??0)>0?{attachments:(i.attachments??[]).map(t=>{let n=e.attachmentUrlById?.get(t.id);return n?{...t,previewUrl:n}:t})}:{},runId:i.runId,streaming:i.type===`assistant_message`&&i.streaming,...i.type===`user_message`?{createdBy:i.createdBy,creationSource:i.creationSource,...i.senderThreadId===void 0?{}:{senderThreadId:i.senderThreadId},...i.scheduledTaskId===void 0?{}:{scheduledTaskId:i.scheduledTaskId}}:{},createdAt:l,updatedAt:a(i.updatedAt),...i.type===`user_message`?{inputIntent:i.inputIntent}:{}};t.add(o.id),n.push({id:o.id,kind:`message`,createdAt:l,message:o,projectedItem:r,...d});continue}if(i.type===`proposed_plan`){let e=o.get(i.planId),t={id:i.planId,runId:i.runId,planMarkdown:i.markdown,status:e?.kind===`proposed_plan`?e.status:`active`,createdAt:l,updatedAt:a(i.updatedAt)};n.push({id:i.id,kind:`proposed-plan`,createdAt:l,proposedPlan:t,...d});continue}let f=i.type===`dynamic_tool`&&i.status===`completed`?st(i):void 0;if(f!==void 0){n.push({id:i.id,kind:`html-render`,createdAt:l,runId:i.runId,htmlRender:f,...d});continue}let p=i.type===`dynamic_tool`&&i.status===`completed`?ct(i):void 0;if(p!==void 0){n.push({id:i.id,kind:`mcp-app`,createdAt:l,runId:i.runId,sourceThreadId:r.sourceThreadId,itemId:r.sourceItemId,revision:bt(i),mcpApp:p,...d});continue}if(Kr.has(i.type)){n.push({id:i.id,kind:`event`,createdAt:l,projectedItem:r,...d});continue}n.push({id:i.id,kind:`work`,createdAt:l,entry:Qr(r),...d})}let l=new Set([...t,...c]);for(let t of e.anchoredMessages??[]){if(l.has(t.id))continue;l.add(t.id);let e={id:t.id,kind:`message`,createdAt:t.createdAt,message:t},r=n.findIndex(e=>e.createdAt>t.createdAt);r===-1?n.push(e):n.splice(r,0,e)}for(let t of e.optimisticMessages)t.inputIntent!==`queued_turn`&&!l.has(t.id)&&(l.add(t.id),n.push({id:t.id,kind:`message`,createdAt:t.createdAt,message:t}));return n}var ei=Object.freeze([]);function ti(e){let t=new Set;for(let n of e??[]){if(!r(n))continue;let e=n.previewUrl;e?.startsWith(`blob:`)||e?.startsWith(`data:`)||t.add(n.id)}return t.size===0?ei:Array.from(t,e=>({_tag:`attachment`,attachmentId:e}))}function ni(e,t){if(Object.keys(t).length===0)return ei;let n=new Set;for(let i of e??[])if(i.role===`user`&&t[i.id]?.length)for(let e of i.attachments??[])r(e)&&n.add(e.id);return n.size===0?ei:Array.from(n,e=>({_tag:`attachment`,attachmentId:e}))}function ri(){let e=new WeakMap,t=new WeakMap;return(n,r)=>{let i=n.attachments;if(!i||i.length===0)return n;let a=e.get(i)??i,o,s=!1;for(let[e,t]of i.entries()){let n=r(t),i=`previewUrl`in t?t.previewUrl:void 0,c=a[e],l=`previewUrl`in c?c.previewUrl:void 0,u=!n||n===i?t:n===l?c:{...t,previewUrl:n};s||=u!==t,u!==c&&(o??=a.slice(),o[e]=u)}let c=s?o??a:i;if(e.set(i,c),c===i)return t.delete(n),n;let l=t.get(n);if(l?.attachments===c)return l;let u={...n,attachments:c};return t.set(n,u),u}}function ii(e,t){if(e.role!==`assistant`||t.role!==`assistant`||!e.streaming||!t.streaming)return!1;let{text:n,updatedAt:r,...i}=e,{text:a,updatedAt:s,...c}=t;return o(i,c)}function ai(e,t){let{item:n,...r}=e,{item:i,...a}=t;if(n.type!==`assistant_message`||i.type!==`assistant_message`||!n.streaming||!i.streaming||!o(r,a)||$(e)!==$(t))return!1;let{text:c,updatedAt:l,...u}=n,{text:d,updatedAt:f,...p}=i;return s(u,p)}function oi(e,t){let n=t.input;if(e.visibleTurnItems.length<n.visibleTurnItems.length||!o(e.optimisticMessages,n.optimisticMessages)||!o(e.anchoredMessages,n.anchoredMessages)||!o(e.attachmentUrlById,n.attachmentUrlById)||!o(e.attempts,n.attempts)||!o(e.nodes,n.nodes)||!o(e.plans,n.plans))return null;let r=e.visibleTurnItems.length>n.visibleTurnItems.length;if(r&&(e.optimisticMessages.length>0||(e.anchoredMessages?.length??0)>0)||r&&e.visibleTurnItems.slice(n.visibleTurnItems.length).some(({item:e})=>e.type===`user_input_request`&&e.questionAnswer!==void 0||e.type===`user_message`&&e.messageId.startsWith(`async-answer:`)))return null;let i=new Map;for(let[t,r]of n.visibleTurnItems.entries()){let n=e.visibleTurnItems[t];if(n!==r){if(!ai(r,n))return null;i.set(r,n)}}if(i.size===0&&!r)return t.entries;let s=t.entries.map(e=>{let t=e.kind===`message`&&e.projectedItem!==void 0?i.get(e.projectedItem):void 0;return e.kind!==`message`||t?.item.type!==`assistant_message`?e:{...e,projectedItem:t,message:{...e.message,text:t.item.text,updatedAt:a(t.item.updatedAt)}}});return r&&s.push(...$r({...e,visibleTurnItems:e.visibleTurnItems.slice(n.visibleTurnItems.length)})),s}function si(e,t=null){let n=t===null?null:oi(e,t);if(n!==null)return{input:e,entries:n};let r=$r(e);if(t===null||!o(e.attachmentUrlById,t.input.attachmentUrlById))return{input:e,entries:r};let i=new Map(t.entries.flatMap(e=>e.kind===`message`?[[e.id,e]]:[]));return{input:e,entries:r.map(e=>{if(e.kind!==`message`||e.projectedItem===void 0)return e;let t=i.get(e.id);return t?.projectedItem===e.projectedItem?t.attempt===e.attempt?t:{...e,message:t.message}:e})}}function ci(e){return Object.fromEntries(e.flatMap(e=>e.runId===null?[]:[[e.runId,e.checkpointTurnCount]]))}function li(e){let t=new Map;for(let n of e.checkpoints)n.status===`ready`&&t.set(n.runId,n);let n=new Map;for(let r of e.timelineEntries){if(r.kind!==`message`||r.message.role!==`user`||r.message.inputIntent!==`turn_start`&&r.message.inputIntent!==`queued_turn`||r.message.runId===null)continue;let e=t.get(r.message.runId);e!==void 0&&n.set(r.message.id,Math.max(0,e.checkpointTurnCount-1))}return n}function ui(e){return e===null?`disconnected`:e.status===`preparing`||e.status===`starting`||e.status===`queued`?`connecting`:e.status===`running`||e.status===`waiting`?`running`:`ready`}function di(e,t){return e&&(ui(t)===`running`||wr(t))}export{cn as $,br as A,ir as B,Nr as C,gr as D,vr as E,or as F,zn as G,$n as H,sr as I,Qn as J,Zn as K,tr as L,Ar as M,Er as N,hr as O,kr as P,yn as Q,X as R,Pr as S,v as St,_r as T,Fn as U,Rn as V,Kn as W,Gn as X,Un as Y,un as Z,ni as _,ue as _t,Br as a,Tt as at,Lr as b,Te as bt,li as c,Ct as ct,Gr as d,Ne as dt,pn as et,ci as f,je as ft,Zr as g,We as gt,ai as h,qe as ht,di as i,bt as it,Sr as j,Cr as k,si as l,j as lt,ii as m,Ge as mt,Hr as n,mn as nt,Vr as o,xt as ot,Rr as p,Ke as pt,Y as q,zr as r,_t as rt,ui as s,wt as st,ri as t,An as tt,Wr as u,O as ut,ti as v,ge as vt,mr as w,Fr as x,we as xt,Jr as y,pe as yt,ar as z};
|
|
26
|
-
//# sourceMappingURL=session-logic-Chq6Fhx9.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{r as t}from"./Icon-l19w4AjM.js";import{$b as n,$n as r,$o as i,BT as a,By as o,C_ as s,Cy as c,D_ as l,E_ as u,Gd as d,Gn as f,Go as p,Gp as m,Hg as h,IT as g,Kg as _,LT as v,Lc as y,NE as b,NT as x,Pp as S,Qn as C,Qo as w,Rp as T,S_ as E,T_ as D,Tf as O,Ub as k,Um as A,YS as j,Yn as M,Yo as N,Zn as P,__ as F,_m as ee,ar as te,b_ as ne,bd as re,cr as ie,f_ as ae,ir as oe,is as se,j_ as ce,jx as I,lE as le,l_ as ue,lv as L,m_ as de,or as fe,p_ as R,rr as pe,s_ as me,sr as z,ss as he,t as ge,tr as _e,u_ as ve,v_ as ye,vd as be,w_ as B,x_ as xe,y_ as Se,yl as Ce}from"./utils-ChK8VEFC.js";import{Dt as V,Et as we,F as Te,Ht as Ee,On as De,Ot as Oe,R as ke,Ut as Ae,W as je,jt as Me,kt as Ne,o as Pe,on as Fe,tt as H,w as Ie,x as U}from"./runtime-CvGlGrbH.js";import{E as W,Et as Le,F as Re,S as ze,St as Be,Tt as Ve,_ as He,bt as Ue,t as G}from"./runtime-DgUiDuq4.js";import{a as We,c as Ge,o as Ke,s as qe,t as Je}from"./select-BIK-KVyd.js";import{t as K}from"./spinner-dBHTxMdw.js";import{i as q,p as Ye}from"./toast-CylvOlB4.js";import{A as Xe,D as Ze,E as Qe,O as J,b as $e,c as et,et as tt,s as nt,v as Y}from"./useSettings-CHo-Nv-3.js";import{f as rt,h as it,s as at}from"./server-h8-LTzsE.js";import{a as ot,i as st,n as ct,s as lt}from"./session-BnZv-sUV.js";import{n as ut}from"./query-MZn8giyP.js";import{t as dt}from"./use-atom-command-BZ0heqC5.js";import{n as ft}from"./toastHelpers-Dsph6LwL.js";import{i as pt,r as mt}from"./timestampFormat-wac2e_Jz.js";import{a as ht,n as gt,t as _t}from"./tooltip-C85X81rS.js";import{t as vt}from"./textarea-DyCJe8OO.js";import{t as yt}from"./input-DX_wpYEr.js";import{t as bt}from"./scroll-area-BStafc_O.js";import{a as xt,c as St,i as Ct,l as wt,n as Tt,o as Et,r as Dt,s as Ot,t as kt}from"./dialog-D--IO2tX.js";import{n as At}from"./T3ConnectAccountPages-Cfc33ihi.js";import{a as jt,i as Mt,o as Nt,r as Pt,t as Ft}from"./empty-IIGW45Hv.js";import{t as It}from"./AnimatedHeight-B1LdeRxh.js";import{C as Lt,_ as Rt,w as zt,y as Bt}from"./keybindings-DQLn36Qh.js";import{i as Vt,o as Ht,t as Ut}from"./popover-BJ6nvlLO.js";import{t as Wt}from"./checkbox-BpAfakhx.js";import{_ as Gt,a as Kt,c as qt,d as Jt,f as Yt,g as Xt,i as Zt,l as Qt,p as $t,r as en,s as tn,u as nn,v as rn}from"./uiStateStore-BQNw2Dqk.js";import{n as an,t as on}from"./EnvironmentMachineIcon-DszKXxD_.js";import{r as sn,t as cn}from"./alert-CNni4aGm.js";import{a as ln,i as un,s as dn,u as fn}from"./settingsLayout-BxEP0uF3.js";import{_ as pn,b as mn,g as hn,h as gn,v as _n,x as vn,y as yn}from"./command-CMR1n6Uf.js";import{t as X}from"./ConnectionStatusDot-DvalNlEr.js";import{a as bn,n as xn,o as Sn,s as Cn,t as wn}from"./primary-BWLl-lP0.js";import{n as Tn,t as En}from"./onboarding-Bk1fay_k.js";import{$i as Dn,Fn as On,Gt as kn,Ht as An,In as jn,Jr as Mn,Kt as Nn,Ln as Pn,Mn as Fn,Nn as In,Pn as Ln,Rn,Sr as zn,T as Bn,Wn as Vn,Wt as Hn,_r as Un,br as Wn,dr as Gn,ea as Kn,er as qn,fr as Jn,gr as Yn,hr as Xn,jn as Zn,mr as Qn,na as $n,nr as er,qr as tr,rr as nr,tr as rr,vr as ir,xr as ar,yr as or}from"./main-D398MK8V.js";import{t as sr}from"./FoldedSettingsSection-CoyiJ_Zj.js";var Z=b(),cr=[{scope:ye,title:`View environment`,description:`Read threads, status, checkpoints, and configuration.`},{scope:F,title:`Operate tasks`,description:`Start, update, and stop tasks.`},{scope:s,title:`Change environment settings`,description:`Edit environment preferences and keybindings.`},{scope:ne,title:`Manage providers`,description:`Configure, install, sign in to, and update providers and usage sources.`},{scope:ae,title:`Maintain environment`,description:`Update the server and control environment processes.`},{scope:Se,title:`Control previews`,description:`Open browser previews and host browser automation.`},{scope:ve,title:`View diagnostics and usage`,description:`Read process diagnostics, resource history, and usage totals.`},{scope:l,title:`View terminals`,description:`Read existing terminal output and status.`},{scope:u,title:`Use terminals`,description:`Create terminals and send input to running shells.`},{scope:B,title:`Change source control`,description:`Commit, push, manage branches and repositories, and change pull requests.`},{scope:R,title:`Read files`,description:`Browse host files, search workspaces, and inspect local changes.`},{scope:de,title:`Write files`,description:`Edit workspace files and save plans to disk.`},{scope:me,title:`View access`,description:`Inspect pairing links and authorized clients.`},{scope:ue,title:`Manage access`,description:`Issue and revoke credentials for other clients.`},{scope:xe,title:`View relay`,description:`Inspect managed relay connectivity.`},{scope:E,title:`Manage relay`,description:`Change managed tunnel connectivity.`}],Q=e(le(),1);function lr(e){let t=(0,Z.c)(4),{environmentId:n,connected:r,routeContext:i}=e,a=i!==void 0&&i,o=ot(n),s;return t[0]!==r||t[1]!==a||t[2]!==o?(s=r&&!o.hasError&&!o.isPending&&o.data?.authenticated?(0,Q.jsxs)(`div`,{className:`space-y-3 py-3 text-xs`,children:[(0,Q.jsx)(`p`,{className:`text-muted-foreground`,children:a?`These permissions apply to your active route. Other routes may have different permissions.`:`These permissions apply to this client’s current connection.`}),(0,Q.jsx)(`ul`,{className:`grid gap-x-6 gap-y-2 sm:grid-cols-2`,children:cr.map(e=>{let{scope:t,title:n}=e;return(0,Q.jsxs)(`li`,{className:`flex items-start justify-between gap-3`,children:[(0,Q.jsx)(`span`,{children:n}),(0,Q.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:ce(o.data,t)?`Allowed`:`Not granted`})]},t)})})]}):(0,Q.jsx)(`p`,{className:`py-3 text-xs text-muted-foreground`,children:`Permissions not checked. Connect to this environment to view this session’s permissions.`}),t[0]=r,t[1]=a,t[2]=o,t[3]=s):s=t[3],s}var $=e(t(),1);function ur(e,t){let n=new URL(e);return n.pathname=`/pair`,Le(n,t).toString()}function dr(e,t){return new URL(e).protocol===`https:`?ze({host:e,token:t}):null}function fr(){let e=(0,Z.c)(48),t=window.desktopBridge?.setLocalEnvironmentEnabled,[n]=(0,$.useState)(pr),[r,i]=(0,$.useState)(!1),[a,o]=(0,$.useState)(!1),[s,c]=(0,$.useState)(null);if(!t)return null;let l;e[0]===n?l=e[1]:(l=async()=>{o(!0),c(null);try{await t(!n)}catch(e){let t=e;c(t instanceof Error?t.message:`Couldn't change this setting.`),o(!1)}},e[0]=n,e[1]=l);let u=l,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=Vn(`local-environment`),e[2]=d):d=e[2];let f=n?`Run agents on this computer. Turn off to use P4 Code only with remote environments.`:`Turned off. Agents only run in remote environments.`,p;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>i(!0),e[3]=p):p=e[3];let m;e[4]!==n||e[5]!==a?(m=(0,Q.jsx)($n,{checked:n,disabled:a,onCheckedChange:p,"aria-label":`Local environment`}),e[4]=n,e[5]=a,e[6]=m):m=e[6];let h;e[7]!==f||e[8]!==m?(h=(0,Q.jsx)(ln,{...d,description:f,control:m}),e[7]=f,e[8]=m,e[9]=h):h=e[9];let g;e[10]===a?g=e[11]:(g=e=>{a||(i(e),e||c(null))},e[10]=a,e[11]=g);let _=n?`Turn off local environment?`:`Turn on local environment?`,v;e[12]===_?v=e[13]:(v=(0,Q.jsx)(zn,{children:_}),e[12]=_,e[13]=v);let y=n?`P4 Code will restart without running a server on this computer. Any agents and terminals running here will stop, and other devices will no longer be able to connect to this computer. Your projects, history, and remote environments are unaffected.`:`P4 Code will restart and start running a server on this computer again.`,b;e[14]===y?b=e[15]:(b=(0,Q.jsx)(ir,{children:y}),e[14]=y,e[15]=b);let x;e[16]!==b||e[17]!==v?(x=(0,Q.jsxs)(Wn,{children:[v,b]}),e[16]=b,e[17]=v,e[18]=x):x=e[18];let S;e[19]===s?S=e[20]:(S=s?(0,Q.jsx)(`p`,{className:`px-6 pb-4 text-sm text-destructive`,children:s}):null,e[19]=s,e[20]=S);let C;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,Q.jsx)(z,{variant:`outline`}),e[21]=C):C=e[21];let w;e[22]===a?w=e[23]:(w=(0,Q.jsx)(Un,{disabled:a,render:C,children:`Cancel`}),e[22]=a,e[23]=w);let T=n?`destructive`:`default`,E;e[24]===u?E=e[25]:(E=()=>void u(),e[24]=u,e[25]=E);let D;e[26]!==n||e[27]!==a?(D=a?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(K,{size:`sm`}),`Restarting…`]}):n?`Restart and turn off`:`Restart and turn on`,e[26]=n,e[27]=a,e[28]=D):D=e[28];let O;e[29]!==a||e[30]!==T||e[31]!==E||e[32]!==D?(O=(0,Q.jsx)(z,{variant:T,disabled:a,onClick:E,children:D}),e[29]=a,e[30]=T,e[31]=E,e[32]=D,e[33]=O):O=e[33];let k;e[34]!==w||e[35]!==O?(k=(0,Q.jsxs)(or,{children:[w,O]}),e[34]=w,e[35]=O,e[36]=k):k=e[36];let A;e[37]!==x||e[38]!==S||e[39]!==k?(A=(0,Q.jsxs)(ar,{children:[x,S,k]}),e[37]=x,e[38]=S,e[39]=k,e[40]=A):A=e[40];let j;e[41]!==r||e[42]!==A||e[43]!==g?(j=(0,Q.jsx)(Yn,{open:r,onOpenChange:g,children:A}),e[41]=r,e[42]=A,e[43]=g,e[44]=j):j=e[44];let M;return e[45]!==j||e[46]!==h?(M=(0,Q.jsxs)(Q.Fragment,{children:[h,j]}),e[45]=j,e[46]=h,e[47]=M):M=e[47],M}function pr(){return!Ie()}function mr(e){return e.serverConfig===null?`Connect to this environment to change its icon.`:e.serverConfig.environment.capabilities.environmentIcon===!0?e.operateAccess===`granted`?null:`Your session on this environment cannot change its settings.`:`This environment's server is too old to keep an icon. Update it to choose one.`}function hr(e){let t=(0,Z.c)(27),{environmentId:n,serverConfig:i}=e,a=$e(n),o=st(n,`settings:write`)?`granted`:`denied`,s;t[0]!==o||t[1]!==i?(s=mr({serverConfig:i,operateAccess:o}),t[0]=o,t[1]=i,t[2]=s):s=t[2];let c=s,l=i?.environment.platform.machine??`server`,u;t[3]===i?u=t[4]:(u=Ce(i),t[3]=i,t[4]=u);let d=u,f;t[5]===d?f=t[6]:(f=(0,Q.jsxs)(te,{children:[(0,Q.jsx)(an,{kind:d}),`Icon`]}),t[5]=d,t[6]=f);let p;t[7]===c?p=t[8]:(p=c===null?null:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(M,{disabled:!0,className:`whitespace-normal`,children:c}),(0,Q.jsx)(_e,{})]}),t[7]=c,t[8]=p);let m;t[9]!==l||t[10]!==c||t[11]!==a?(m=e=>{c===null&&_(e)&&a({environmentIcon:e===l?null:e})},t[9]=l,t[10]=c,t[11]=a,t[12]=m):m=t[12];let g;t[13]!==l||t[14]!==c||t[15]!==i?.environment?(g=h.map(e=>(0,Q.jsx)(r,{value:e,disabled:c!==null,children:(0,Q.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Q.jsx)(an,{kind:e,className:`size-3.5 shrink-0`}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:on[e]}),e===l?(0,Q.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:i?.environment.platform.machine?`detected`:`default`}):null]})},e)),t[13]=l,t[14]=c,t[15]=i?.environment,t[16]=g):g=t[16];let v;t[17]!==d||t[18]!==m||t[19]!==g?(v=(0,Q.jsx)(C,{value:d,onValueChange:m,children:g}),t[17]=d,t[18]=m,t[19]=g,t[20]=v):v=t[20];let y;t[21]!==p||t[22]!==v?(y=(0,Q.jsxs)(oe,{children:[p,v]}),t[21]=p,t[22]=v,t[23]=y):y=t[23];let b;return t[24]!==f||t[25]!==y?(b=(0,Q.jsxs)(pe,{children:[f,y]}),t[24]=f,t[25]=y,t[26]=b):b=t[26],b}function gr(e){let t=(0,Z.c)(31),{environment:n,onAddRoute:r}=e,i=Ne(n.entry),a=i.map(vr),[o,s]=(0,$.useState)(null),c=o!==null&&o.length===a.length&&o.some((e,t)=>e!==a[t])?[...o]:a,l=new Map(i.map(_r)),u=c.flatMap(e=>l.get(e)??[]),d=lt(n.environmentId),f;t[0]!==n.connection||t[1]!==d._tag||t[2]!==d.value?(f=d._tag===`Some`&&n.connection.phase===`connected`?V(d.value.target):null,t[0]=n.connection,t[1]=d._tag,t[2]=d.value,t[3]=f):f=t[3];let p=f,m=dt(it.reorderRoutes,`Reorder routes`),h=dt(it.removeRoute,`Remove route`),g;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(g={activationConstraint:{distance:4}},t[4]=g):g=t[4];let _;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(_={coordinateGetter:tn},t[5]=_):_=t[5];let v=Gt(Xt(Yt,g),Xt(Jt,_)),y;t[6]!==n.environmentId||t[7]!==h?(y=async e=>{let t=we(e);await tt(`Remove ${Oe(e)} route?${t===null?``:`\n${t}`}`,{variant:`destructive`})===!0&&await h({environmentId:n.environmentId,routeId:V(e.target)})},t[6]=n.environmentId,t[7]=h,t[8]=y):y=t[8];let b=y,x=e=>{if(e.over===null||e.active.id===e.over.id)return;let t=Kt(c,c.indexOf(String(e.active.id)),c.indexOf(String(e.over.id)));s(t),m({environmentId:n.environmentId,routeIds:t}).then(e=>{e._tag===`Failure`&&s(null)})},C=nn,w=$t,T;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(T=[Mn,tr],t[9]=T):T=t[9];let E=Zt,D=Qt,O=`Routes to ${n.label}, preferred first`,k=u.map((e,t)=>(0,Q.jsx)(yr,{route:e,position:t+1,inUse:V(e.target)===p,removable:u.length>1&&!Me(e),onRemove:()=>void b(e)},V(e.target))),A;t[10]!==k||t[11]!==O?(A=(0,Q.jsx)(`ol`,{"aria-label":O,children:k}),t[10]=k,t[11]=O,t[12]=A):A=t[12];let j;t[13]!==E||t[14]!==c||t[15]!==A||t[16]!==D?(j=(0,Q.jsx)(E,{items:c,strategy:D,children:A}),t[13]=E,t[14]=c,t[15]=A,t[16]=D,t[17]=j):j=t[17];let M;t[18]!==C||t[19]!==x||t[20]!==v||t[21]!==j||t[22]!==w||t[23]!==T?(M=(0,Q.jsx)(C,{sensors:v,collisionDetection:w,modifiers:T,onDragEnd:x,children:j}),t[18]=C,t[19]=x,t[20]=v,t[21]=j,t[22]=w,t[23]=T,t[24]=M):M=t[24];let N;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,Q.jsx)(S,{className:`size-3`}),t[25]=N):N=t[25];let P;t[26]===r?P=t[27]:(P=(0,Q.jsx)(`div`,{className:`-ml-1.5 pt-1`,children:(0,Q.jsxs)(z,{size:`xs`,variant:`ghost-muted`,onClick:r,children:[N,`Add route`]})}),t[26]=r,t[27]=P);let F;return t[28]!==M||t[29]!==P?(F=(0,Q.jsxs)(`div`,{className:`mt-2 border-t border-border/50 py-2`,children:[M,P]}),t[28]=M,t[29]=P,t[30]=F):F=t[30],F}function _r(e){return[V(e.target),e]}function vr(e){return V(e.target)}function yr(e){let t=(0,Z.c)(43),{route:n,position:r,inUse:i,removable:a,onRemove:o}=e,s;t[0]===n.target?s=t[1]:(s=V(n.target),t[0]=n.target,t[1]=s);let c=s,l;t[2]===n?l=t[3]:(l=Oe(n),t[2]=n,t[3]=l);let u=l,d;t[4]===n?d=t[5]:(d=we(n),t[4]=n,t[5]=d);let f=d,p;t[6]===c?p=t[7]:(p={id:c},t[6]=c,t[7]=p);let{attributes:m,listeners:h,setNodeRef:g,setActivatorNodeRef:_,transform:v,transition:y,isDragging:b}=qt(p),x;t[8]===v?x=t[9]:(x=rn.Translate.toString(v),t[8]=v,t[9]=x);let S;t[10]!==x||t[11]!==y?(S={transform:x,transition:y},t[10]=x,t[11]=y,t[12]=S):S=t[12];let C=b&&`relative z-10 rounded-md bg-background shadow-md`,w;t[13]===C?w=t[14]:(w=ge(`flex items-center gap-2 py-2`,C),t[13]=C,t[14]=w);let T;t[15]===i?T=t[16]:(T=i?(0,Q.jsx)(`span`,{className:`rounded-sm bg-success/12 px-1 text-2xs font-normal text-success-foreground`,children:`In use`}):null,t[15]=i,t[16]=T);let E;t[17]!==u||t[18]!==T?(E=(0,Q.jsxs)(`p`,{className:`flex items-center gap-1.5 text-xs font-medium text-foreground`,children:[u,T]}),t[17]=u,t[18]=T,t[19]=E):E=t[19];let D;t[20]!==f||t[21]!==n?(D=f===null?null:(0,Q.jsxs)(`p`,{className:`truncate text-2xs text-muted-foreground`,children:[f,Me(n)?` · found automatically`:``]}),t[20]=f,t[21]=n,t[22]=D):D=t[22];let k;t[23]!==E||t[24]!==D?(k=(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[E,D]}),t[23]=E,t[24]=D,t[25]=k):k=t[25];let j=`Reorder ${u}, position ${r}`,M;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,Q.jsx)(O,{className:`size-3.5`}),t[26]=M):M=t[26];let N;t[27]!==m||t[28]!==h||t[29]!==_||t[30]!==j?(N=(0,Q.jsx)(`button`,{type:`button`,ref:_,...m,...h,"aria-label":j,className:`flex size-6 shrink-0 cursor-grab touch-none items-center justify-center rounded text-muted-foreground/70 outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring active:cursor-grabbing`,children:M}),t[27]=m,t[28]=h,t[29]=_,t[30]=j,t[31]=N):N=t[31];let P;t[32]!==u||t[33]!==o||t[34]!==a?(P=a?(0,Q.jsxs)(_t,{children:[(0,Q.jsx)(ht,{render:(0,Q.jsx)(z,{type:`button`,variant:`ghost-muted`,size:`icon-xs`,"aria-label":`Remove ${u} route`,onClick:o}),children:(0,Q.jsx)(A,{className:`size-3`})}),(0,Q.jsx)(gt,{side:`top`,children:`Remove route`})]}):null,t[32]=u,t[33]=o,t[34]=a,t[35]=P):P=t[35];let F;return t[36]!==g||t[37]!==k||t[38]!==N||t[39]!==P||t[40]!==S||t[41]!==w?(F=(0,Q.jsxs)(`li`,{ref:g,style:S,className:w,children:[k,N,P]}),t[36]=g,t[37]=k,t[38]=N,t[39]=P,t[40]=S,t[41]=w,t[42]=F):F=t[42],F}function br(e){let t=e.username?`${e.username}@${e.hostname}`:e.hostname;return e.port?`${t}:${e.port}`:t}function xr(e,t=null){let{entry:n}=e;if(n.target._tag===`PrimaryConnectionTarget`)return`This machine`;let r=Ne(n);if(r.length>1){let e=t===null?void 0:r.find(e=>V(e.target)===V(t));return e===void 0?Oe(r[0]):`via ${Oe(e)}`}return e.relayManaged?`P4 Connect`:He(n.target)?`WSL`:n.target._tag===`SshConnectionTarget`&&v(n.profile)&&n.profile.value._tag===`SshConnectionProfile`?`SSH ${br(n.profile.value.target)}`:e.displayUrl??`Remote link`}function Sr(e){let t=(0,Z.c)(23),{kind:n,label:r,subtitle:i,below:a,detail:o,dimmed:s,className:c,children:l}=e,u=s!==void 0&&s&&`opacity-60`,d;t[0]!==c||t[1]!==u?(d=ge(`grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-x-3 px-3 py-2.5 sm:px-4`,u,c),t[0]=c,t[1]=u,t[2]=d):d=t[2];let f;t[3]===n?f=t[4]:(f=(0,Q.jsx)(an,{"aria-hidden":!0,kind:n,className:`size-4 text-muted-foreground`}),t[3]=n,t[4]=f);let p;t[5]===r?p=t[6]:(p=(0,Q.jsx)(`p`,{className:`truncate text-sm font-medium text-foreground`,children:r}),t[5]=r,t[6]=p);let m;t[7]===i?m=t[8]:(m=(0,Q.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:i}),t[7]=i,t[8]=m);let h;t[9]!==a||t[10]!==p||t[11]!==m?(h=(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[p,m,a]}),t[9]=a,t[10]=p,t[11]=m,t[12]=h):h=t[12];let g;t[13]===l?g=t[14]:(g=(0,Q.jsx)(`div`,{className:`flex shrink-0 items-center gap-1`,children:l}),t[13]=l,t[14]=g);let _;t[15]===o?_=t[16]:(_=o?(0,Q.jsx)(`div`,{className:`col-span-2 col-start-2 min-w-0`,children:o}):null,t[15]=o,t[16]=_);let v;return t[17]!==d||t[18]!==f||t[19]!==h||t[20]!==g||t[21]!==_?(v=(0,Q.jsxs)(`div`,{className:d,children:[f,h,g,_]}),t[17]=d,t[18]=f,t[19]=h,t[20]=g,t[21]=_,t[22]=v):v=t[22],v}var Cr=[{value:100,label:`Prefer`},{value:50,label:`Normal`},{value:25,label:`Less often`},{value:0,label:`Manual only`}];function wr(e){return e===void 0||e===50?50:e===0?0:e<50?25:100}function Tr(e){return Cr.find(t=>t.value===e).label}function Er(e,t){let n=e.flatMap(e=>{let n=wr(t[e.environmentId]);return n===50?[]:[`${e.label} ${Tr(n).toLowerCase()}`]});return n.length===0?null:n.join(` · `)}function Dr(e){let t=(0,Z.c)(27),{environments:n}=e,r=nt(),i=et(),a=Y();if(n.length<2)return null;let o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=Vn(`load-balancing`),t[0]=o):o=t[0];let{id:s,title:c}=o,l;t[1]!==n||t[2]!==r.loadBalancingEnabled||t[3]!==r.loadBalancingWeights?(l=r.loadBalancingEnabled?Er(n,r.loadBalancingWeights):`Off`,t[1]=n,t[2]=r.loadBalancingEnabled,t[3]=r.loadBalancingWeights,t[4]=l):l=t[4];let u=!i,d;t[5]===a?d=t[6]:(d=e=>a({loadBalancingEnabled:e}),t[5]=a,t[6]=d);let f;t[7]!==r.loadBalancingEnabled||t[8]!==u||t[9]!==d?(f=(0,Q.jsx)($n,{"aria-label":`Automatically balance load`,checked:r.loadBalancingEnabled,disabled:u,onCheckedChange:d}),t[7]=r.loadBalancingEnabled,t[8]=u,t[9]=d,t[10]=f):f=t[10];let p;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Q.jsx)(`p`,{className:`px-3 py-2.5 text-xs text-muted-foreground sm:px-4`,children:`New threads in shared projects start on the machine with the most free CPU and memory, weighted by each machine's preference.`}),t[11]=p):p=t[11];let m;if(t[12]!==n||t[13]!==r.loadBalancingEnabled||t[14]!==r.loadBalancingWeights||t[15]!==i||t[16]!==a){let e;t[18]!==r.loadBalancingEnabled||t[19]!==r.loadBalancingWeights||t[20]!==i||t[21]!==a?(e=e=>(0,Q.jsx)(Sr,{kind:Ce(e.serverConfig),label:e.label,subtitle:xr(e),children:(0,Q.jsxs)(Je,{items:Cr,value:wr(r.loadBalancingWeights[e.environmentId]),disabled:!i||!r.loadBalancingEnabled,onValueChange:t=>{t!==null&&a({loadBalancingWeights:{...r.loadBalancingWeights,[e.environmentId]:t}})},children:[(0,Q.jsx)(qe,{size:`xs`,className:`w-32`,"aria-label":`${e.label} load preference`,children:(0,Q.jsx)(Ge,{})}),(0,Q.jsx)(Ke,{align:`end`,alignItemWithTrigger:!1,children:Cr.map(Or)})]})},e.environmentId),t[18]=r.loadBalancingEnabled,t[19]=r.loadBalancingWeights,t[20]=i,t[21]=a,t[22]=e):e=t[22],m=n.map(e),t[12]=n,t[13]=r.loadBalancingEnabled,t[14]=r.loadBalancingWeights,t[15]=i,t[16]=a,t[17]=m}else m=t[17];let h;return t[23]!==l||t[24]!==f||t[25]!==m?(h=(0,Q.jsxs)(sr,{id:s,title:c,summary:l,control:f,children:[p,m]}),t[23]=l,t[24]=f,t[25]=m,t[26]=h):h=t[26],h}function Or(e){let{value:t,label:n}=e;return(0,Q.jsx)(We,{value:t,children:n},t)}var kr=[{value:`off`,label:`Off`},{value:`read`,label:`Read PRs`},{value:`read-write`,label:`Read and act`}],Ar={"read-write":`read and act`,read:`read PRs`};function jr(e){let t=[`read-write`,`read`].flatMap(t=>{let n=e.filter(e=>e.permission===t);return n.length===0?[]:[`${n.map(e=>e.label).join(`, `)} ${Ar[t]}`]});return t.length===0?null:t.join(` · `)}function Mr(e){let t=(0,Z.c)(19),{environments:n}=e,r=N(it.githubRoutingPermissionsValueAtom),i=N(it.catalogValueAtom),a=dt(it.setGitHubRoutingPermission),[o,s]=(0,$.useState)(!1);if(n.length<2)return null;let c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=Vn(`github-routing`),t[0]=c):c=t[0];let{id:l,title:u}=c,d;t[1]!==n||t[2]!==r?(d=jr(n.map(e=>({label:e.label,permission:Ae(e.entry,r)})))??`Off`,t[1]=n,t[2]=r,t[3]=d):d=t[3];let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Q.jsx)(`p`,{className:`px-3 py-2.5 text-xs text-muted-foreground sm:px-4`,children:`Machines you trust here can read PR data through each other's GitHub access. Enable both machines. Read and act may use broader permissions than the machine that owns them. This applies only to this device.`}),t[4]=f):f=t[4];let p;if(t[5]!==i||t[6]!==n||t[7]!==r||t[8]!==o||t[9]!==a){let e;t[11]!==i||t[12]!==r||t[13]!==o||t[14]!==a?(e=e=>(0,Q.jsx)(Sr,{kind:Ce(e.serverConfig),label:e.label,subtitle:xr(e),children:(0,Q.jsxs)(Je,{items:kr,value:Ae(e.entry,r),disabled:!i.isReady||o||Ee(e.entry)===null,onValueChange:t=>{t!==null&&(s(!0),a({environmentId:e.environmentId,permission:t}).then(e=>{s(!1),e._tag===`Failure`&&q.add({type:`error`,title:`Could not save GitHub routing permission`})}))},children:[(0,Q.jsx)(qe,{size:`xs`,className:`w-32`,"aria-label":`${e.label} GitHub routing`,children:(0,Q.jsx)(Ge,{})}),(0,Q.jsx)(Ke,{align:`end`,alignItemWithTrigger:!1,children:kr.map(Nr)})]})},e.environmentId),t[11]=i,t[12]=r,t[13]=o,t[14]=a,t[15]=e):e=t[15],p=n.map(e),t[5]=i,t[6]=n,t[7]=r,t[8]=o,t[9]=a,t[10]=p}else p=t[10];let m;return t[16]!==d||t[17]!==p?(m=(0,Q.jsxs)(sr,{id:l,title:u,summary:d,children:[f,p]}),t[16]=d,t[17]=p,t[18]=m):m=t[18],m}function Nr(e){let{value:t,label:n}=e;return(0,Q.jsx)(We,{value:t,children:n},t)}function Pr(e){let t=(0,Z.c)(26),{environmentLabel:n,onCancel:r,onConfirm:i}=e,a=At(),[o,s]=(0,$.useState)(n);n!==null&&n!==o&&s(n);let c=a.open,l=n!==null,u;t[0]===r?u=t[1]:(u=e=>{e||r()},t[0]=r,t[1]=u);let d;t[2]===o?d=t[3]:(d=(0,Q.jsxs)(zn,{children:[`Remove `,o,` from this device?`]}),t[2]=o,t[3]=d);let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Q.jsx)(ir,{children:`This forgets its pairing, credentials, and cached threads here.`}),t[4]=f):f=t[4];let p;t[5]!==r||t[6]!==c?(p=c?(0,Q.jsx)(ie,{onClick:()=>{r(),c()},children:`P4 Connect settings`}):`P4 Connect settings`,t[5]=r,t[6]=c,t[7]=p):p=t[7];let m;t[8]===p?m=t[9]:(m=(0,Q.jsxs)(ir,{children:[`It stays on your P4 Connect account and keeps its host space. Deregister it in`,` `,p,` `,`to free it.`]}),t[8]=p,t[9]=m);let h;t[10]!==d||t[11]!==m?(h=(0,Q.jsxs)(Wn,{children:[d,f,m]}),t[10]=d,t[11]=m,t[12]=h):h=t[12];let g;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Q.jsx)(Un,{render:(0,Q.jsx)(z,{variant:`outline`}),children:`Cancel`}),t[13]=g):g=t[13];let _;t[14]===i?_=t[15]:(_=(0,Q.jsxs)(or,{children:[g,(0,Q.jsx)(z,{variant:`destructive`,onClick:i,children:`Remove from this device`})]}),t[14]=i,t[15]=_);let v;t[16]!==h||t[17]!==_?(v=(0,Q.jsxs)(ar,{children:[h,_]}),t[16]=h,t[17]=_,t[18]=v):v=t[18];let y;t[19]!==l||t[20]!==v||t[21]!==u?(y=(0,Q.jsx)(Yn,{open:l,onOpenChange:u,children:v}),t[19]=l,t[20]=v,t[21]=u,t[22]=y):y=t[22];let b;return t[23]!==a.portals||t[24]!==y?(b=(0,Q.jsxs)(Q.Fragment,{children:[y,a.portals]}),t[23]=a.portals,t[24]=y,t[25]=b):b=t[25],b}var Fr={pairingLinks:[],clientSessions:[]};function Ir(e,t,n){let r=n(t);return[...e.filter(e=>n(e)!==r),t]}function Lr(e,t){switch(t.type){case`snapshot`:return t.payload;case`pairingLinkUpserted`:return{...e,pairingLinks:Ir(e.pairingLinks,t.payload,e=>e.id)};case`pairingLinkRemoved`:return{...e,pairingLinks:e.pairingLinks.filter(e=>e.id!==t.payload.id)};case`clientUpserted`:return{...e,clientSessions:Ir(e.clientSessions,t.payload,e=>e.sessionId)};case`clientRemoved`:return{...e,clientSessions:e.clientSessions.filter(e=>e.sessionId!==t.payload.sessionId)}}}function Rr(e,t){let n=Lr(e,t);return[n,[{version:1,revision:t.revision,type:`snapshot`,payload:n}]]}function zr(e){return{accessChanges:Te(e,{label:`environment-data:server:auth-access-changes`,subscribe:e=>H(y.subscribeAuthAccess,{}).pipe(L(()=>Fr,Rr))})}}var Br=zr(G),Vr=3e4,Hr=class extends o()(`DesktopNetworkAccessUnavailableError`,{}){get message(){return`Desktop network access is unavailable.`}},Ur=class extends o()(`DesktopServerExposureStateLoadError`,{cause:c()}){get message(){return`Failed to load desktop server exposure state.`}},Wr=class extends o()(`DesktopAdvertisedEndpointsLoadError`,{cause:c()}){get message(){return`Failed to load advertised desktop endpoints.`}};function Gr(){return typeof window>`u`?void 0:window.desktopBridge}function Kr(e){let t=I(`loadDesktopNetworkAccess`)(function*(){let t=e();if(!t)return yield*new Hr;let[r,i]=yield*n([j({try:()=>t.getServerExposureState(),catch:e=>new Ur({cause:e})}),j({try:()=>t.getAdvertisedEndpoints(),catch:e=>new Wr({cause:e})})],{concurrency:`unbounded`});return{advertisedEndpoints:i,serverExposureState:r}});return i(t()).pipe(se({staleTime:Vr,revalidateOnMount:!0}),w,he(`desktop:network-access`))}var qr=Kr(Gr);function Jr(){p.refresh(qr)}function Yr(e,t){let n=t.trim().toLowerCase();if(n.length===0)return e;let r=[],i=[];for(let t of e){let e=t.alias.toLowerCase();e.startsWith(n)?r.push(t):e.includes(n)&&i.push(t)}return[...r,...i]}var Xr=class extends o()(`DesktopSshDiscoveryUnavailableError`,{}){get message(){return`Desktop SSH host discovery is unavailable.`}},Zr=class extends o()(`DesktopSshDiscoveryError`,{cause:c()}){get message(){return`Failed to discover SSH hosts.`}};function Qr(){return typeof window>`u`?void 0:window.desktopBridge}function $r(e){let t=I(`discoverDesktopSshHosts`)(function*(){let t=e();return t?yield*j({try:()=>t.discoverSshHosts(),catch:e=>new Zr({cause:e})}):yield*new Xr});return i(t()).pipe(se({staleTime:3e4,revalidateOnMount:!0}),w,he(`desktop:ssh-hosts`))}var ei=$r(Qr),ti=443,ni=[],ri=[],ii=`backend:default-wsl`,ai=`backend:wsl-off`,oi=new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`});function si(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:oi.format(t)}function ci(e){let t=(0,Z.c)(13),{scopes:n,label:r}=e,i=`${n.length} ${n.length===1?`scope`:`scopes`}`,a=`${r}: show ${i}`,o;t[0]===a?o=t[1]:(o=(0,Q.jsx)(`button`,{type:`button`,"aria-label":a,className:`cursor-help underline decoration-border underline-offset-2 outline-hidden hover:text-foreground focus-visible:text-foreground`}),t[0]=a,t[1]=o);let s;t[2]!==i||t[3]!==o?(s=(0,Q.jsx)(Ht,{openOnHover:!0,delay:250,closeDelay:100,render:o,children:i}),t[2]=i,t[3]=o,t[4]=s):s=t[4];let c;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsx)(`p`,{className:`mb-1 font-medium`,children:`Granted scopes`}),t[5]=c):c=t[5];let l;t[6]===n?l=t[7]:(l=n.map(li),t[6]=n,t[7]=l);let u;t[8]===l?u=t[9]:(u=(0,Q.jsxs)(Vt,{side:`top`,align:`start`,tooltipStyle:!0,className:`w-max max-w-80 whitespace-normal`,children:[c,(0,Q.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:l})]}),t[8]=l,t[9]=u);let d;return t[10]!==s||t[11]!==u?(d=(0,Q.jsxs)(Ut,{children:[s,u]}),t[10]=s,t[11]=u,t[12]=d):d=t[12],d}function li(e){return(0,Q.jsx)(`code`,{className:`font-mono text-foreground/85`,children:e},e)}function ui(e){let t=e.host.trim();if(t.length===0)throw Error(`SSH host or alias is required.`);let n=t,r=e.username.trim()||null,i=null,a=n.lastIndexOf(`@`);if(a>0){let e=n.slice(0,a).trim();n=n.slice(a+1).trim(),!r&&e.length>0&&(r=e)}let o=/^\[([^\]]+)\](?::(\d+))?$/u.exec(n);if(o)n=o[1].trim(),o[2]&&(i=Number.parseInt(o[2],10));else{let e=n.split(`:`);e.length===2&&/^\d+$/u.test(e[1]??``)&&(n=e[0].trim(),i=Number.parseInt(e[1],10))}let s=e.port.trim();if(s.length>0&&(i=Number.parseInt(s,10)),n.length===0)throw Error(`SSH host or alias is required.`);if(i!==null&&(!Number.isInteger(i)||i<=0||i>65535))throw Error(`SSH port must be between 1 and 65535.`);return{alias:n,hostname:n,username:r,port:i}}function di(e){let t=e.trim();if(!t)return null;try{let e=/^[a-zA-Z][a-zA-Z\d+.-]*:\/\//u.test(t)||t.startsWith(`//`)?t:`https://${t}`,n=new URL(e,window.location.origin),r=W(n);if(r)return{host:r.host,pairingCode:r.token};let i=Ve(n);return i?{host:n.origin,pairingCode:i}:null}catch{return null}}function fi(e){let t=di(e.host);if(t)return t;let n=e.host.trim(),r=e.pairingCode.trim();if(!n)throw Error(`Enter a backend host.`);if(!r)throw Error(`Enter a pairing code.`);return{host:n,pairingCode:r}}function pi(e){let t=`Failed to connect SSH host.`;return(e instanceof Error?e.message:t).replace(/^Error invoking remote method 'desktop:ensure-ssh-environment':\s*/u,``).replace(/^Ssh[A-Za-z]+Error:\s*/u,``).trim()||t}var mi=`first:rounded-t-xl last:rounded-b-xl px-3 py-2.5 sm:px-4`;function hi(e){return Hn}function gi(e,t){return e===`endpoint-rail`?ge(`relative first:rounded-t-xl last:rounded-b-xl px-3 py-3 sm:px-4`,!t&&`bg-muted/15`):ge(mi,!t&&`bg-muted/24`)}function _i(e){return[...e].toSorted((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime())}function vi(e,t){return[`${e.length} ${e.length===1?`client`:`clients`}`,t.length>0?`${t.length} ${t.length===1?`pairing link`:`pairing links`}`:null].filter(e=>e!==null).join(` · `)}function yi(e){return[...e].toSorted((e,t)=>e.current===t.current?e.connected===t.connected?new Date(t.issuedAt).getTime()-new Date(e.issuedAt).getTime():e.connected?-1:1:e.current?-1:1)}function bi(e){return{...e,scopes:e.permissions??e.scopes,createdAt:k(e.createdAt),expiresAt:k(e.expiresAt)}}function xi(e){return{...e,scopes:e.permissions??e.scopes,issuedAt:k(e.issuedAt),expiresAt:k(e.expiresAt),lastConnectedAt:e.lastConnectedAt===null?null:k(e.lastConnectedAt)}}function Si(e,t){let n=e.filter(e=>e.status!==`unavailable`);if(t){let e=n.find(e=>wi(e)===t);if(e)return e}return n.find(e=>e.isDefault)??n.find(e=>e.reachability!==`loopback`)??n.find(e=>e.compatibility.hostedHttpsApp===`compatible`)??null}function Ci(e){return e.id.startsWith(`tailscale-magicdns:`)}function wi(e){if(e.id.startsWith(`desktop-loopback:`))return`desktop-core:loopback:http`;if(e.id.startsWith(`desktop-lan:`))return`desktop-core:lan:http`;if(e.id.startsWith(`tailscale-ip:`))return`tailscale:ip:http`;if(Ci(e))return`tailscale:magicdns:https`;let t=`unknown`;try{t=new URL(e.httpBaseUrl).protocol.replace(/:$/u,``)}catch{}return`${e.provider.id}:${e.reachability}:${t}:${e.label}`}function Ti(e,t){return e.compatibility.hostedHttpsApp===`compatible`?dr(e.httpBaseUrl,t)??ur(e.httpBaseUrl,t):ur(e.httpBaseUrl,t)}function Ei(e){let t=new URL(`/pair`,window.location.href);return Le(t,e).toString()}function Di(e){try{let t=new URL(e);return t.pathname===`/pair`&&t.searchParams.has(`host`)}catch{return!1}}function Oi(e,t){if(Di(t))return`Opens the hosted app, no install needed`;switch(e.reachability){case`lan`:return`Devices on the same network`;case`private-network`:return`Devices on your private network`;case`public`:return`Reachable from anywhere`;case`loopback`:return`Clients on this machine`}}var ki=(0,$.memo)(function(e){let t=(0,Z.c)(135),{pairingLink:n,credential:r,endpointUrl:i,endpoints:a,defaultEndpointKey:o,presentation:s,revokingPairingLinkId:c,onRevoke:l,canRevoke:u}=e,d=s===void 0?`current`:s,f=fn(1e3),p=new Date(n.expiresAt).getTime(),[m,h]=(0,$.useState)(!1),[g,_]=(0,$.useState)(!1),[v,y]=(0,$.useState)(null),b=(0,$.useId)(),x;t[0]===r?x=t[1]:(x=r?Ei(r):null,t[0]=r,t[1]=x);let S=x,C;t[2]!==r||t[3]!==i?(C=r&&i!=null&&i!==``?dr(i,r):null,t[2]=r,t[3]=i,t[4]=C):C=t[4];let w=C,E;if(t[5]!==r||t[6]!==o||t[7]!==a){let e=Si(a,o);E=e&&r?Ti(e,r):null,t[5]=r,t[6]=o,t[7]=a,t[8]=E}else E=t[8];let D=E,O;if(t[9]!==r||t[10]!==a){bb0:{let e=[];if(!r){O=e;break bb0}for(let t of a){if(t.status===`unavailable`)continue;let n=Ti(t,r);e.push({id:t.id,preferenceKey:wi(t),label:t.label,url:n,detail:Oi(t,n),qrShareable:In(t)})}O=e}t[9]=r,t[10]=a,t[11]=O}else O=t[11];let k=O,A;t[12]!==r||t[13]!==S||t[14]!==D||t[15]!==i||t[16]!==w?(A=D??(r&&i!=null&&i!==``?w??ur(i,r):U(window.location.hostname)?null:S),t[12]=r,t[13]=S,t[14]=D,t[15]=i,t[16]=w,t[17]=A):A=t[17];let j=A,[M,N]=(0,$.useState)(null),P=M??j??r??``,F=P!==r,ee=F&&Di(P),te=k.find(e=>e.url===P)?.qrShareable??!0,ne=typeof window<`u`&&window.isSecureContext&&navigator.clipboard?.writeText!=null,re;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(re={onCopy:Zi,onError:(e,t)=>{let{value:n,kind:r}=t;N(n),h(!0),q.add(ft({type:`error`,title:ne?r===`hosted-link`?`Could not copy hosted app link`:r===`link`?`Could not copy pairing URL`:`Could not copy pairing code`:`Clipboard copy unavailable`,description:ne?e.message:`Showing the full value instead.`}))}},t[18]=re):re=t[18];let{copyToClipboard:ie}=Ye(re),ae;t[19]===ie?ae=t[20]:(ae=(e,t)=>{ie(e,{value:e,kind:t})},t[19]=ie,t[20]=ae);let oe=ae,se=Qi,ce;t[21]!==oe||t[22]!==r?(ce=()=>{r&&oe(r,`code`)},t[21]=oe,t[22]=r,t[23]=ce):ce=t[23];let I=ce,le;t[24]===n.expiresAt?le=t[25]:(le=si(n.expiresAt),t[24]=n.expiresAt,t[25]=le);let ue=le,L=n.label??`Pairing link`,de;t[26]!==o||t[27]!==k||t[28]!==v?(de=On(k,v,o),t[26]=o,t[27]=k,t[28]=v,t[29]=de):de=t[29];let fe=de,R=fe?.url??j,pe=fe?.qrShareable??!0;if(p<=f)return null;let me;t[30]===d?me=t[31]:(me=hi(d),t[30]=d,t[31]=me);let he;t[32]===n.createdAt?he=t[33]:(he=si(n.createdAt),t[32]=n.createdAt,t[33]=he);let _e=`Link created at ${he}`,ve;t[34]===_e?ve=t[35]:(ve=(0,Q.jsx)(X,{tooltipText:_e,dotClassName:`bg-warning`}),t[34]=_e,t[35]=ve);let ye;t[36]===L?ye=t[37]:(ye=(0,Q.jsx)(`h3`,{className:`text-sm font-medium text-foreground`,children:L}),t[36]=L,t[37]=ye);let be;t[38]!==ve||t[39]!==ye?(be=(0,Q.jsxs)(`div`,{className:`flex min-h-5 items-center gap-1.5`,children:[ve,ye]}),t[38]=ve,t[39]=ye,t[40]=be):be=t[40];let B;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,Q.jsx)(`span`,{}),t[41]=B):B=t[41];let xe;t[42]!==f||t[43]!==n.expiresAt?(xe=pt(n.expiresAt,f),t[42]=f,t[43]=n.expiresAt,t[44]=xe):xe=t[44];let Se;t[45]===xe?Se=t[46]:(Se=(0,Q.jsx)(ht,{render:B,children:xe}),t[45]=xe,t[46]=Se);let Ce;t[47]===ue?Ce=t[48]:(Ce=(0,Q.jsx)(gt,{side:`top`,children:ue}),t[47]=ue,t[48]=Ce);let V;t[49]!==Se||t[50]!==Ce?(V=(0,Q.jsxs)(_t,{children:[Se,Ce]}),t[49]=Se,t[50]=Ce,t[51]=V):V=t[51];let we;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(we=(0,Q.jsx)(`span`,{"aria-hidden":!0,children:` · `}),t[52]=we):we=t[52];let Te;t[53]===n.scopes?Te=t[54]:(Te=(0,Q.jsx)(ci,{scopes:n.scopes,label:`Pairing link scopes`}),t[53]=n.scopes,t[54]=Te);let Ee;t[55]!==V||t[56]!==Te?(Ee=(0,Q.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[V,we,Te]}),t[55]=V,t[56]=Te,t[57]=Ee):Ee=t[57];let De;t[58]!==r||t[59]!==j?(De=r?j===null?(0,Q.jsx)(`p`,{className:`text-2xs text-muted-foreground/70`,children:`Copy the token and pair from another client using this backend's reachable host.`}):null:(0,Q.jsx)(`p`,{className:`text-2xs text-muted-foreground/70`,children:`Create a new link to share from this client.`}),t[58]=r,t[59]=j,t[60]=De):De=t[60];let Oe;t[61]!==be||t[62]!==Ee||t[63]!==De?(Oe=(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[be,Ee,De]}),t[61]=be,t[62]=Ee,t[63]=De,t[64]=Oe):Oe=t[64];let ke;t[65]!==g||t[66]!==b||t[67]!==j?(ke=j&&ne?(0,Q.jsxs)(z,{size:`xs`,variant:`outline`,"aria-expanded":g,"aria-controls":b,onClick:()=>_($i),children:[(0,Q.jsx)(T,{"aria-hidden":!0}),`Share`]}):null,t[65]=g,t[66]=b,t[67]=j,t[68]=ke):ke=t[68];let Ae=r!==void 0&&m,je;t[69]===Symbol.for(`react.memo_cache_sentinel`)?(je=e=>{h(e),e||N(null)},t[69]=je):je=t[69];let Me;t[70]!==r||t[71]!==I||t[72]!==j?(Me=r?ne?j?null:(0,Q.jsx)(z,{size:`xs`,variant:`outline`,onClick:I,children:`Copy code`}):(0,Q.jsx)(wt,{render:(0,Q.jsx)(z,{size:`xs`,variant:`outline`}),children:j?`Show link`:`Show code`}):null,t[70]=r,t[71]=I,t[72]=j,t[73]=Me):Me=t[73];let Ne=F?ee?`Hosted app pairing link`:`Pairing link`:`Pairing code`,Pe;t[74]===Ne?Pe=t[75]:(Pe=(0,Q.jsx)(St,{children:Ne}),t[74]=Ne,t[75]=Pe);let Fe=F?ee?`Clipboard copy is unavailable here. Open or manually copy this hosted app link on the device you want to connect.`:`Clipboard copy is unavailable here. Open or manually copy this full pairing URL on the device you want to connect.`:`Clipboard copy is unavailable here. Manually copy this code into another client.`,H;t[76]===Fe?H=t[77]:(H=(0,Q.jsx)(Dt,{children:Fe}),t[76]=Fe,t[77]=H);let Ie;t[78]!==Pe||t[79]!==H?(Ie=(0,Q.jsxs)(xt,{children:[Pe,H]}),t[78]=Pe,t[79]=H,t[80]=Ie):Ie=t[80];let W=F?4:3,Le;t[81]!==P||t[82]!==W?(Le=(0,Q.jsx)(vt,{readOnly:!0,value:P,rows:W,onFocus:ea,onClick:ta}),t[81]=P,t[82]=W,t[83]=Le):Le=t[83];let Re;t[84]!==te||t[85]!==F||t[86]!==P?(Re=F&&te?(0,Q.jsx)(`div`,{className:`flex justify-center rounded-xl border border-border/60 bg-muted/30 p-4`,children:(0,Q.jsx)(Bn,{value:P,size:132,level:`M`,marginSize:2,title:`Pairing link — scan to open on another device`})}):null,t[84]=te,t[85]=F,t[86]=P,t[87]=Re):Re=t[87];let ze;t[88]!==Le||t[89]!==Re?(ze=(0,Q.jsxs)(Et,{children:[Le,Re]}),t[88]=Le,t[89]=Re,t[90]=ze):ze=t[90];let Be;t[91]===Symbol.for(`react.memo_cache_sentinel`)?(Be=(0,Q.jsx)(z,{variant:`outline`,onClick:()=>h(!1),children:`Done`}),t[91]=Be):Be=t[91];let Ve;t[92]===I?Ve=t[93]:(Ve=ne?(0,Q.jsx)(z,{variant:`outline`,onClick:I,children:`Copy code`}):null,t[92]=I,t[93]=Ve);let He;t[94]===Ve?He=t[95]:(He=(0,Q.jsxs)(Ct,{variant:`bare`,children:[Be,Ve]}),t[94]=Ve,t[95]=He);let Ue;t[96]!==Ie||t[97]!==ze||t[98]!==He?(Ue=(0,Q.jsxs)(Ot,{className:`max-w-md`,children:[Ie,ze,He]}),t[96]=Ie,t[97]=ze,t[98]=He,t[99]=Ue):Ue=t[99];let G;t[100]!==Ae||t[101]!==Me||t[102]!==Ue?(G=(0,Q.jsxs)(kt,{open:Ae,onOpenChange:je,children:[Me,Ue]}),t[100]=Ae,t[101]=Me,t[102]=Ue,t[103]=G):G=t[103];let We=!u||c===n.id,Ge;t[104]!==l||t[105]!==n.id?(Ge=()=>void l(n.id),t[104]=l,t[105]=n.id,t[106]=Ge):Ge=t[106];let Ke=c===n.id?`Revoking…`:`Revoke`,qe;t[107]!==We||t[108]!==Ge||t[109]!==Ke?(qe=(0,Q.jsx)(z,{size:`xs`,variant:`destructive-outline`,disabled:We,onClick:Ge,children:Ke}),t[107]=We,t[108]=Ge,t[109]=Ke,t[110]=qe):qe=t[110];let Je;t[111]!==ke||t[112]!==G||t[113]!==qe?(Je=(0,Q.jsxs)(`div`,{className:`flex w-full shrink-0 items-center gap-2 sm:w-auto sm:justify-end`,children:[ke,G,qe]}),t[111]=ke,t[112]=G,t[113]=qe,t[114]=Je):Je=t[114];let K;t[115]!==Oe||t[116]!==Je?(K=(0,Q.jsxs)(`div`,{className:kn,children:[Oe,Je]}),t[115]=Oe,t[116]=Je,t[117]=K):K=t[117];let Xe=g&&R!==null,Ze;t[118]!==pe||t[119]!==oe||t[120]!==k||t[121]!==I||t[122]!==R||t[123]!==b||t[124]!==fe?.id?(Ze=R===null?null:(0,Q.jsxs)(`div`,{id:b,className:`mt-3 flex flex-col gap-4 border-t border-border/50 pt-3 sm:flex-row sm:items-start sm:justify-between`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-3`,children:[k.length>1?(0,Q.jsxs)(`div`,{className:`space-y-1.5`,role:`radiogroup`,"aria-label":`Endpoint the pairing QR code and URL use`,children:[(0,Q.jsx)(`p`,{className:`text-2xs text-muted-foreground/70`,children:`Reach this machine via`}),k.map(e=>{let t=e.id===fe?.id;return(0,Q.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":t,className:ge(`flex w-full items-baseline gap-2 rounded-lg border px-2.5 py-1.5 text-left outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring`,t?`border-foreground/60 bg-muted/30`:`border-border/50 hover:bg-muted/20`),onClick:()=>y(e.id),children:[(0,Q.jsx)(`span`,{className:ge(`text-xs font-medium`,t?`text-foreground`:`text-muted-foreground`),children:e.label}),(0,Q.jsx)(`span`,{className:`min-w-0 truncate text-2xs text-muted-foreground/70`,children:e.detail})]},e.id)})]}):null,(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border/60 bg-muted/30 px-2.5 py-1.5`,children:[(0,Q.jsxs)(_t,{children:[(0,Q.jsx)(ht,{render:(0,Q.jsx)(`code`,{className:`min-w-0 flex-1 truncate font-mono text-2xs text-muted-foreground`,children:R})}),(0,Q.jsx)(gt,{side:`top`,children:R})]}),(0,Q.jsx)(z,{size:`xs`,variant:`ghost`,className:`shrink-0`,onClick:()=>oe(R,se(R)),children:`Copy link`})]}),(0,Q.jsx)(z,{size:`xs`,variant:`ghost`,onClick:I,children:`Copy code only`})]}),pe?(0,Q.jsx)(`div`,{className:`w-fit shrink-0 self-center rounded-xl bg-white p-3 sm:self-start`,children:(0,Q.jsx)(Bn,{value:R,size:168,level:`M`,marginSize:1,title:`Pairing link — scan to open on another device`})}):(0,Q.jsx)(`div`,{className:`flex size-[192px] shrink-0 items-center justify-center self-center rounded-xl border border-border/50 p-4 sm:self-start`,children:(0,Q.jsx)(`p`,{className:`text-center text-2xs text-muted-foreground/70`,children:`No QR for this endpoint. Another device scanning a loopback link would dial itself; copy the URL for use on this machine instead.`})})]}),t[118]=pe,t[119]=oe,t[120]=k,t[121]=I,t[122]=R,t[123]=b,t[124]=fe?.id,t[125]=Ze):Ze=t[125];let Qe;t[126]===Ze?Qe=t[127]:(Qe=(0,Q.jsx)(Kn,{children:Ze}),t[126]=Ze,t[127]=Qe);let J;t[128]!==Xe||t[129]!==Qe?(J=(0,Q.jsx)(Dn,{open:Xe,children:Qe}),t[128]=Xe,t[129]=Qe,t[130]=J):J=t[130];let $e;return t[131]!==me||t[132]!==K||t[133]!==J?($e=(0,Q.jsxs)(`div`,{className:me,children:[K,J]}),t[131]=me,t[132]=K,t[133]=J,t[134]=$e):$e=t[134],$e}),Ai=(0,$.memo)(function(e){let t=(0,Z.c)(54),{clientSession:n,presentation:r,revokingClientSessionId:i,onRevokeSession:a,canRevoke:o}=e,s=r===void 0?`current`:r,c=fn(1e3),l=n.current||n.connected,u=n.lastConnectedAt,d;t[0]!==l||t[1]!==u||t[2]!==c?(d=l?u?`Connected for ${mt(u,c)}`:`Connected`:u?`Last connected at ${si(u)}`:`Not connected yet.`,t[0]=l,t[1]=u,t[2]=c,t[3]=d):d=t[3];let f=d,p;t[4]===n.client.deviceType?p=t[5]:(p=n.client.deviceType===`unknown`?null:n.client.deviceType[0]?.toUpperCase()+n.client.deviceType.slice(1),t[4]=n.client.deviceType,t[5]=p);let m=n.client.os??null,h=n.client.browser??null,g=n.client.ipAddress??null,_;t[6]!==p||t[7]!==m||t[8]!==h||t[9]!==g?(_=[p,m,h,g].filter(na),t[6]=p,t[7]=m,t[8]=h,t[9]=g,t[10]=_):_=t[10];let v=_,y;t[11]!==n.client.browser||t[12]!==n.client.label||t[13]!==n.client.os||t[14]!==n.subject?(y=n.client.label??([n.client.os,n.client.browser].filter(Boolean).join(` · `)||n.subject),t[11]=n.client.browser,t[12]=n.client.label,t[13]=n.client.os,t[14]=n.subject,t[15]=y):y=t[15];let b=y,x;t[16]===s?x=t[17]:(x=hi(s),t[16]=s,t[17]=x);let S=l?`bg-success`:`bg-muted-foreground/30`,C=l?`bg-success/60 duration-2000`:null,w;t[18]!==f||t[19]!==S||t[20]!==C?(w=(0,Q.jsx)(X,{tooltipText:f,dotClassName:S,pingClassName:C}),t[18]=f,t[19]=S,t[20]=C,t[21]=w):w=t[21];let T;t[22]===b?T=t[23]:(T=(0,Q.jsx)(`h3`,{className:`text-sm font-medium text-foreground`,children:b}),t[22]=b,t[23]=T);let E;t[24]===n.current?E=t[25]:(E=n.current?(0,Q.jsx)(`span`,{className:`text-3xs text-muted-foreground/80 rounded-md border border-border/50 bg-muted/50 px-1 py-0.5`,children:`This device`}):null,t[24]=n.current,t[25]=E);let D;t[26]!==w||t[27]!==T||t[28]!==E?(D=(0,Q.jsxs)(`div`,{className:`flex min-h-5 items-center gap-1.5`,children:[w,T,E]}),t[26]=w,t[27]=T,t[28]=E,t[29]=D):D=t[29];let O;t[30]===v?O=t[31]:(O=v.length>0?(0,Q.jsxs)(Q.Fragment,{children:[v.join(` · `),(0,Q.jsx)(`span`,{"aria-hidden":!0,children:` · `})]}):null,t[30]=v,t[31]=O);let k;t[32]===n.scopes?k=t[33]:(k=(0,Q.jsx)(ci,{scopes:n.scopes,label:`Client scopes`}),t[32]=n.scopes,t[33]=k);let A;t[34]!==O||t[35]!==k?(A=(0,Q.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[O,k]}),t[34]=O,t[35]=k,t[36]=A):A=t[36];let j;t[37]!==D||t[38]!==A?(j=(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[D,A]}),t[37]=D,t[38]=A,t[39]=j):j=t[39];let M;t[40]!==o||t[41]!==n.current||t[42]!==n.sessionId||t[43]!==a||t[44]!==i?(M=n.current?null:(0,Q.jsx)(z,{size:`xs`,variant:`destructive-outline`,disabled:!o||i===n.sessionId,onClick:()=>void a(n.sessionId),children:i===n.sessionId?`Revoking…`:`Revoke`}),t[40]=o,t[41]=n.current,t[42]=n.sessionId,t[43]=a,t[44]=i,t[45]=M):M=t[45];let N;t[46]===M?N=t[47]:(N=(0,Q.jsx)(`div`,{className:`flex w-full shrink-0 items-center gap-2 sm:w-auto sm:justify-end`,children:M}),t[46]=M,t[47]=N);let P;t[48]!==j||t[49]!==N?(P=(0,Q.jsxs)(`div`,{className:kn,children:[j,N]}),t[48]=j,t[49]=N,t[50]=P):P=t[50];let F;return t[51]!==P||t[52]!==x?(F=(0,Q.jsx)(`div`,{className:x,children:P}),t[51]=P,t[52]=x,t[53]=F):F=t[53],F}),ji=(0,$.memo)(function({onPairingLinkCreated:e,clientSessions:t,isRevokingOtherClients:n,onRevokeOtherClients:r,delegatableScopes:i}){let a=J(),[o,s]=(0,$.useState)(!1),[c,u]=(0,$.useState)(``),[d,f]=(0,$.useState)([...D]),p=d.filter(e=>i.includes(e)),[m,h]=(0,$.useState)(!1),g=(0,$.useCallback)(async()=>{if(a!==null&&p.length!==0&&ct(a,`access:write`)&&p.every(e=>ct(a,e))){h(!0);try{e(await xn({label:c,scopes:p})),u(``),f(D.filter(e=>i.includes(e))),s(!1)}catch(e){let t=e instanceof Error?e.message:`Failed to create pairing URL.`;q.add(ft({type:`error`,title:`Could not create pairing URL`,description:t}))}finally{h(!1)}}},[i,e,c,a,p]),_=(0,$.useCallback)((e,t)=>{f(n=>jn(n,e,t))},[]);return(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(z,{size:`xs`,variant:`destructive-outline`,disabled:n||!Fn(t),onClick:()=>void r(),children:n?`Revoking…`:`Revoke others`}),(0,Q.jsxs)(kt,{open:o,onOpenChange:e=>{s(e),e||(u(``),f(D.filter(e=>i.includes(e))))},children:[(0,Q.jsx)(wt,{render:(0,Q.jsxs)(z,{size:`xs`,variant:`default`,children:[(0,Q.jsx)(S,{className:`size-3`}),`Create link`]})}),(0,Q.jsxs)(Ot,{className:`max-w-md`,children:[(0,Q.jsxs)(xt,{children:[(0,Q.jsx)(St,{children:`Create pairing link`}),(0,Q.jsx)(Dt,{children:`Generate a one-time link that another device can use to pair with this backend as an authorized client.`})]}),(0,Q.jsxs)(Et,{children:[(0,Q.jsxs)(`label`,{className:`block`,children:[(0,Q.jsx)(`span`,{className:`mb-1.5 block text-xs font-medium text-foreground`,children:`Client label (optional)`}),(0,Q.jsx)(yt,{value:c,onChange:e=>u(e.target.value),placeholder:`e.g. Living room iPad`,disabled:m,autoFocus:!0})]}),(0,Q.jsxs)(`section`,{className:`space-y-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h3`,{className:`text-xs font-medium text-foreground`,children:`Permissions`}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Limit what the paired client can do.`})]}),(0,Q.jsxs)(`div`,{className:`flex gap-1`,children:[(0,Q.jsx)(z,{size:`xs`,variant:`outline`,disabled:m,onClick:()=>f([ye,R,ve,l].filter(e=>i.includes(e))),children:`Read only`}),(0,Q.jsx)(z,{size:`xs`,variant:`outline`,disabled:m,onClick:()=>f(D.filter(e=>i.includes(e))),children:`Standard`})]})]}),(0,Q.jsx)(`div`,{className:`divide-y divide-border/60 rounded-lg border border-input bg-muted/25`,children:cr.filter(({scope:e})=>i.includes(e)).map(({scope:e,title:t,description:n})=>(0,Q.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3 px-3 py-2.5 transition-colors hover:bg-muted/40`,children:[(0,Q.jsx)(Wt,{className:`mt-0.5`,checked:d.includes(e),disabled:m,onCheckedChange:t=>_(e,t===!0)}),(0,Q.jsxs)(`span`,{className:`min-w-0`,children:[(0,Q.jsx)(`span`,{className:`block text-xs font-medium text-foreground`,children:t}),(0,Q.jsx)(`span`,{className:`block text-xs leading-snug text-muted-foreground`,children:n})]})]},e))}),p.length===0?(0,Q.jsx)(`p`,{className:`text-xs text-destructive`,children:`Select at least one permission.`}):p.includes(`access:write`)?(0,Q.jsx)(`p`,{className:`text-xs text-warning`,children:`This client can create or revoke access for other devices.`}):null]})]}),(0,Q.jsxs)(Ct,{variant:`bare`,children:[(0,Q.jsx)(z,{variant:`outline`,disabled:m,onClick:()=>s(!1),children:`Cancel`}),(0,Q.jsx)(z,{disabled:m||p.length===0,onClick:()=>void g(),children:m?`Creating…`:`Create link`})]})]})]})]})}),Mi=(0,$.memo)(function(e){let t=(0,Z.c)(39),{endpointUrl:n,endpoints:r,defaultEndpointKey:i,presentation:a,isLoading:o,pairingLinks:s,createdPairingCredentials:c,clientSessions:l,revokingPairingLinkId:u,revokingClientSessionId:d,onRevokePairingLink:f,onRevokeClientSession:p,canRevoke:m}=e,h=a===void 0?`current`:a,g;if(t[0]!==m||t[1]!==c||t[2]!==i||t[3]!==n||t[4]!==r||t[5]!==f||t[6]!==s||t[7]!==h||t[8]!==u){let e;t[10]!==m||t[11]!==c||t[12]!==i||t[13]!==n||t[14]!==r||t[15]!==f||t[16]!==h||t[17]!==u?(e=e=>(0,Q.jsx)(ki,{pairingLink:e,credential:c.get(e.id),endpointUrl:n,endpoints:r,defaultEndpointKey:i,presentation:h,revokingPairingLinkId:u,onRevoke:f,canRevoke:m},e.id),t[10]=m,t[11]=c,t[12]=i,t[13]=n,t[14]=r,t[15]=f,t[16]=h,t[17]=u,t[18]=e):e=t[18],g=s.map(e),t[0]=m,t[1]=c,t[2]=i,t[3]=n,t[4]=r,t[5]=f,t[6]=s,t[7]=h,t[8]=u,t[9]=g}else g=t[9];let _;if(t[19]!==m||t[20]!==l||t[21]!==p||t[22]!==h||t[23]!==d){let e;t[25]!==m||t[26]!==p||t[27]!==h||t[28]!==d?(e=e=>(0,Q.jsx)(Ai,{clientSession:e,presentation:h,revokingClientSessionId:d,onRevokeSession:p,canRevoke:m},e.sessionId),t[25]=m,t[26]=p,t[27]=h,t[28]=d,t[29]=e):e=t[29],_=l.map(e),t[19]=m,t[20]=l,t[21]=p,t[22]=h,t[23]=d,t[24]=_}else _=t[24];let v;t[30]!==l.length||t[31]!==o||t[32]!==s.length||t[33]!==h?(v=s.length===0&&l.length===0&&!o?(0,Q.jsx)(`div`,{className:hi(h),children:(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground/60`,children:`No pairing links or client sessions.`})}):null,t[30]=l.length,t[31]=o,t[32]=s.length,t[33]=h,t[34]=v):v=t[34];let y;return t[35]!==g||t[36]!==_||t[37]!==v?(y=(0,Q.jsxs)(Q.Fragment,{children:[g,_,v]}),t[35]=g,t[36]=_,t[37]=v,t[38]=y):y=t[38],y}),Ni=(0,$.memo)(function(e){let t=(0,Z.c)(50),{endpoint:n,isDefault:r,presentation:i,onSetDefault:a,onSetupTailscaleServe:o,onDisableTailscaleServe:s,isUpdatingTailscaleServe:c}=e,l=i===void 0?`current`:i,u=n.status===`available`,d;t[0]===n?d=t[1]:(d=Ci(n)&&n.status!==`available`,t[0]=n,t[1]=d);let f=d,p;t[2]===n?p=t[3]:(p=Ci(n)&&n.status===`available`,t[2]=n,t[3]=p);let m=p,h=!f,g=l===`endpoint-rail`,_;t[4]!==u||t[5]!==l?(_=gi(l,u),t[4]=u,t[5]=l,t[6]=_):_=t[6];let v;t[7]!==r||t[8]!==g?(v=g&&r?(0,Q.jsx)(`span`,{className:`absolute inset-y-2 left-0 w-1 rounded-r-full bg-primary`,"aria-hidden":!0}):null,t[7]=r,t[8]=g,t[9]=v):v=t[9];let y;t[10]===n.label?y=t[11]:(y=(0,Q.jsx)(`h3`,{className:`shrink-0 text-sm leading-5 font-medium text-foreground`,children:n.label}),t[10]=n.label,t[11]=y);let b;t[12]!==n.httpBaseUrl||t[13]!==h?(b=h?(0,Q.jsxs)(_t,{children:[(0,Q.jsx)(ht,{render:(0,Q.jsx)(`p`,{className:`min-w-0 truncate text-xs leading-5 text-muted-foreground`,children:n.httpBaseUrl})}),(0,Q.jsx)(gt,{side:`top`,children:n.httpBaseUrl})]}):null,t[12]=n.httpBaseUrl,t[13]=h,t[14]=b):b=t[14];let x;t[15]===u?x=t[16]:(x=u?null:(0,Q.jsx)(`span`,{className:`shrink-0 rounded-md border border-border/70 px-1 py-0.5 text-3xs text-muted-foreground`,children:`Setup required`}),t[15]=u,t[16]=x);let S;t[17]!==y||t[18]!==b||t[19]!==x?(S=(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-3`,children:[y,b,x]}),t[17]=y,t[18]=b,t[19]=x,t[20]=S):S=t[20];let C;t[21]===r?C=t[22]:(C=r?(0,Q.jsx)(`span`,{className:`rounded-md border border-primary/30 bg-primary/10 px-1 py-0.5 text-3xs text-primary`,children:`Default`}):null,t[21]=r,t[22]=C);let w;t[23]!==n||t[24]!==c||t[25]!==f||t[26]!==o?(w=f?(0,Q.jsx)(z,{size:`xs`,variant:`outline`,onClick:()=>o(n),disabled:c,children:c?`Restarting…`:`Setup`}):null,t[23]=n,t[24]=c,t[25]=f,t[26]=o,t[27]=w):w=t[27];let T;t[28]!==m||t[29]!==n||t[30]!==c||t[31]!==s?(T=m?(0,Q.jsx)(z,{size:`xs`,variant:`destructive-outline`,onClick:()=>s(n),disabled:c,children:c?`Restarting…`:`Disable`}):null,t[28]=m,t[29]=n,t[30]=c,t[31]=s,t[32]=T):T=t[32];let E;t[33]!==n||t[34]!==r||t[35]!==f||t[36]!==a?(E=!f&&!r?(0,Q.jsx)(z,{size:`xs`,variant:`outline`,onClick:()=>a(n),children:`Set as default`}):null,t[33]=n,t[34]=r,t[35]=f,t[36]=a,t[37]=E):E=t[37];let D;t[38]!==C||t[39]!==w||t[40]!==T||t[41]!==E?(D=(0,Q.jsxs)(`div`,{className:`ml-auto flex min-h-6 shrink-0 items-center justify-end gap-2`,children:[C,w,T,E]}),t[38]=C,t[39]=w,t[40]=T,t[41]=E,t[42]=D):D=t[42];let O;t[43]!==D||t[44]!==S?(O=(0,Q.jsxs)(`div`,{className:`flex min-h-6 min-w-0 flex-col gap-2 sm:-my-0.5 sm:flex-row sm:items-center`,children:[S,D]}),t[43]=D,t[44]=S,t[45]=O):O=t[45];let k;return t[46]!==O||t[47]!==_||t[48]!==v?(k=(0,Q.jsxs)(`div`,{className:_,children:[v,O]}),t[46]=O,t[47]=_,t[48]=v,t[49]=k):k=t[49],k});function Pi(e){let t=(0,Z.c)(14),{endpoint:n,hiddenEndpointCount:r,expanded:i,onToggleExpanded:a,fallback:o}=e;if(!n)return o;let s;t[0]===n.httpBaseUrl?s=t[1]:(s=(0,Q.jsx)(`span`,{className:`min-w-0 truncate`,children:n.httpBaseUrl}),t[0]=n.httpBaseUrl,t[1]=s);let c;t[2]!==i||t[3]!==r?(c=r>0?(0,Q.jsx)(`span`,{className:`shrink-0 text-xs font-medium`,children:i?`Hide`:`+${r}`}):null,t[2]=i,t[3]=r,t[4]=c):c=t[4];let l;t[5]!==s||t[6]!==c?(l=(0,Q.jsxs)(Q.Fragment,{children:[s,c]}),t[5]=s,t[6]=c,t[7]=l):l=t[7];let u=l,d;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Q.jsx)(`span`,{className:`shrink-0`,children:`Reachable at`}),t[8]=d):d=t[8];let f;return t[9]!==i||t[10]!==r||t[11]!==a||t[12]!==u?(f=(0,Q.jsxs)(`span`,{className:`inline-flex min-w-0 max-w-full items-baseline gap-1`,children:[d,r>0?(0,Q.jsx)(`button`,{type:`button`,className:`inline-flex min-w-0 max-w-full items-baseline gap-2 border-b border-dotted border-muted-foreground/60 text-left text-muted-foreground underline-offset-4 hover:border-foreground hover:text-foreground`,onClick:a,"aria-expanded":i,children:u}):(0,Q.jsx)(`span`,{className:`inline-flex min-w-0 max-w-full items-baseline gap-2`,children:u})]}),t[9]=i,t[10]=r,t[11]=a,t[12]=u,t[13]=f):f=t[13],f}function Fi(e){if(!e.entry.enabled&&e.connection.phase!==`unsupported`)return{text:`Off`,tone:`muted`};let{connection:t}=e;switch(t.phase){case`connected`:return{text:`Connected`,tone:`muted`};case`connecting`:return{text:`Connecting`,tone:`muted`};case`reconnecting`:return{text:t.error?`Reconnecting: ${t.error}`:`Reconnecting`,tone:`error`};case`unsupported`:return{text:`Client not supported`,tone:`muted`};case`error`:return{text:t.error?`Connection failed: ${t.error}`:`Connection failed`,tone:`error`};case`offline`:return{text:`Offline`,tone:`muted`};case`available`:return{text:`Not connected`,tone:`muted`}}}function Ii(e){let t=(0,Z.c)(161),{environment:n,removingEnvironmentId:r,onSetEnabled:i,onRemove:o,onAddRoute:s}=e,[c,l]=(0,$.useState)(!1),[u,p]=(0,$.useState)(!1),h=n.environmentId,g=n.connection.phase===`unsupported`,_=n.entry.enabled&&!g,v=n.connection.phase===`connected`,y=r===h,b=n.connection.traceId,S;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(S={target:`trace ID`,onCopy:Wi,onError:Ui},t[0]=S):S=t[0];let{copyToClipboard:C}=Ye(S),w;t[1]===C?w=t[2]:(w=e=>{C(e,{traceId:e})},t[1]=C,t[2]=w);let T=w,E;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(E={target:`MCP URL`,onCopy:Hi,onError:Vi},t[3]=E):E=t[3];let{copyToClipboard:D}=Ye(E),O;t[4]===n.serverConfig?O=t[5]:(O=Gn(n.serverConfig),t[4]=n.serverConfig,t[5]=O);let k=O,A;t[6]===h?A=t[7]:(A=rt.updateStateAtom(h),t[6]=h,t[7]=A);let j=N(A),F=j.status===`running`&&j.stage===`resuming`,ee;t[8]===n?ee=t[9]:(ee=Fi(n),t[8]=n,t[9]=ee);let te=ee,ne=n.serverConfig?.environment.serverVersion??null,re=Xe(),ie;t[10]!==h||t[11]!==re.environments?(ie=x(re.environments.get(h)?.status??a())?.descriptor,t[10]=h,t[11]=re.environments,t[12]=ie):ie=t[12];let ae=ie,[oe,se]=(0,$.useState)(ae);ae!==void 0&&ae!==oe&&se(ae);let ce;t[13]!==h||t[14]!==re.environments?(ce=re.environments.get(h)?.environment.endpoint.httpBaseUrl,t[13]=h,t[14]=re.environments,t[15]=ce):ce=t[15];let I=ce,[le,ue]=(0,$.useState)(I);I!==void 0&&I!==le&&ue(I);let L=lt(h),de=v&&L._tag===`Some`?L.value.target:null,R=I??le,pe;t[16]!==de||t[17]!==n.entry||t[18]!==R?(pe=Be({entry:n.entry,relayHttpBaseUrl:R,connectedTarget:de}),t[16]=de,t[17]=n.entry,t[18]=R,t[19]=pe):pe=t[19];let me=pe,he;t[20]!==n.serverConfig||t[21]!==oe?(he=n.serverConfig??(oe===void 0?null:{environment:oe}),t[20]=n.serverConfig,t[21]=oe,t[22]=he):he=t[22];let ve;t[23]===he?ve=t[24]:(ve=Ce(he),t[23]=he,t[24]=ve);let ye=ve,B;t[25]===n.entry?B=t[26]:(B=Ne(n.entry),t[25]=n.entry,t[26]=B);let xe=B.length,Se;t[27]!==de||t[28]!==n?(Se=xr(n,de),t[27]=de,t[28]=n,t[29]=Se):Se=t[29];let V=F?`Restarting`:te.text,we=_&&k?ne:null,Te;t[30]!==Se||t[31]!==V||t[32]!==we?(Te=[Se,V,we].filter(Bi),t[30]=Se,t[31]=V,t[32]=we,t[33]=Te):Te=t[33];let Ee=Te.join(` · `),De=_&&v&&k!==null&&(j.status===`idle`||j.status===`failed`),Oe;t[34]!==_||t[35]!==n.connection||t[36]!==g?(Oe=g?n.connection.error??Ue(n.connection):_?Ue(n.connection):`Switched off`,t[34]=_,t[35]=n.connection,t[36]=g,t[37]=Oe):Oe=t[37];let ke=`${Oe}${k?`\nUpdate available: ${k.serverVersion} → ${k.clientVersion}`:``}`,Ae=n.label,je=!_,Me=_&&te.tone===`error`&&!F&&`text-destructive`,Pe;t[38]===Me?Pe=t[39]:(Pe=ge(`min-w-0 truncate`,Me),t[38]=Me,t[39]=Pe);let Fe;t[40]===Pe?Fe=t[41]:(Fe=(0,Q.jsx)(`span`,{className:Pe}),t[40]=Pe,t[41]=Fe);let H;t[42]!==ke||t[43]!==Ee||t[44]!==Fe?(H=(0,Q.jsx)(ht,{payload:ke,render:Fe,children:Ee}),t[42]=ke,t[43]=Ee,t[44]=Fe,t[45]=H):H=t[45];let Ie;t[46]===ke?Ie=t[47]:(Ie=(0,Q.jsx)(gt,{side:`top`,className:`whitespace-pre-wrap`,children:ke}),t[46]=ke,t[47]=Ie);let U;t[48]!==H||t[49]!==Ie?(U=(0,Q.jsxs)(_t,{children:[H,Ie]}),t[48]=H,t[49]=Ie,t[50]=U):U=t[50];let W;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,Q.jsx)(`span`,{"aria-hidden":!0,className:`shrink-0`,children:`·`}),t[51]=W):W=t[51];let Le;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(Le=()=>l(zi),t[52]=Le):Le=t[52];let ze=xe===1?`Routes`:`${xe} routes`,Ve=c&&`rotate-90`,He;t[53]===Ve?He=t[54]:(He=ge(`size-3 shrink-0 transition-transform duration-150 motion-reduce:transition-none`,Ve),t[53]=Ve,t[54]=He);let G;t[55]===He?G=t[56]:(G=(0,Q.jsx)(be,{"aria-hidden":!0,className:He}),t[55]=He,t[56]=G);let We;t[57]!==c||t[58]!==ze||t[59]!==G?(We=(0,Q.jsxs)(`button`,{type:`button`,"aria-expanded":c,onClick:Le,className:`inline-flex shrink-0 items-center gap-0.5 rounded-sm text-muted-foreground outline-none hover:text-foreground focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring`,children:[ze,G]}),t[57]=c,t[58]=ze,t[59]=G,t[60]=We):We=t[60];let Ge;t[61]===Symbol.for(`react.memo_cache_sentinel`)?(Ge=(0,Q.jsx)(`span`,{"aria-hidden":!0,className:`shrink-0`,children:`·`}),t[61]=Ge):Ge=t[61];let Ke=`remote-permissions-${h}`,qe;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(qe=()=>p(Ri),t[62]=qe):qe=t[62];let Je=u&&`rotate-90`,K;t[63]===Je?K=t[64]:(K=ge(`size-3 shrink-0 transition-transform duration-150 motion-reduce:transition-none`,Je),t[63]=Je,t[64]=K);let q;t[65]===K?q=t[66]:(q=(0,Q.jsx)(be,{"aria-hidden":!0,className:K}),t[65]=K,t[66]=q);let Ze;t[67]!==u||t[68]!==Ke||t[69]!==q?(Ze=(0,Q.jsxs)(`button`,{type:`button`,"aria-expanded":u,"aria-controls":Ke,onClick:qe,className:`inline-flex shrink-0 items-center gap-0.5 rounded-sm text-muted-foreground outline-none hover:text-foreground focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring`,children:[`Permissions`,q]}),t[67]=u,t[68]=Ke,t[69]=q,t[70]=Ze):Ze=t[70];let Qe;t[71]!==U||t[72]!==We||t[73]!==Ze?(Qe=(0,Q.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1`,children:[U,W,We,Ge,Ze]}),t[71]=U,t[72]=We,t[73]=Ze,t[74]=Qe):Qe=t[74];let J;t[75]===j?J=t[76]:(J=j.status===`idle`?null:(0,Q.jsx)(`div`,{className:`mt-1 max-w-md`,children:(0,Q.jsx)(er,{state:j})}),t[75]=j,t[76]=J);let $e;t[77]!==n||t[78]!==s||t[79]!==c?($e=c&&(0,Q.jsx)(gr,{environment:n,onAddRoute:()=>s(n)}),t[77]=n,t[78]=s,t[79]=c,t[80]=$e):$e=t[80];let et;t[81]!==h||t[82]!==v||t[83]!==u?(et=u&&(0,Q.jsx)(`div`,{id:`remote-permissions-${h}`,className:`mt-2 border-t border-border/50`,children:(0,Q.jsx)(lr,{environmentId:h,connected:v,routeContext:!0})}),t[81]=h,t[82]=v,t[83]=u,t[84]=et):et=t[84];let tt;t[85]!==$e||t[86]!==et?(tt=(0,Q.jsxs)(Q.Fragment,{children:[$e,et]}),t[85]=$e,t[86]=et,t[87]=tt):tt=t[87];let nt;t[88]!==n.entry.serverUpdateRequired||t[89]!==n.label||t[90]!==h||t[91]!==oe?.serverVersion||t[92]!==j.status||t[93]!==g?(nt=g&&n.entry.serverUpdateRequired===!0&&j.status!==`running`?(0,Q.jsx)(qn,{environmentId:h,serverLabel:`${n.label} server`,fromVersion:oe?.serverVersion,targetVersion:Re,label:j.status===`failed`?`Retry update`:`Update`}):null,t[88]=n.entry.serverUpdateRequired,t[89]=n.label,t[90]=h,t[91]=oe?.serverVersion,t[92]=j.status,t[93]=g,t[94]=nt):nt=t[94];let Y;t[95]!==n.label||t[96]!==n.serverConfig||t[97]!==h||t[98]!==j.status||t[99]!==De||t[100]!==k?(Y=De?(0,Q.jsx)(rr,{environmentId:h,serverLabel:`${n.label} server`,selfUpdate:Jn(n.serverConfig),installation:n.serverConfig?.environment.capabilities.serverInstallation,desktopAppUpdate:Qn(n.serverConfig),threadContinuation:Xn(n.serverConfig),targetVersion:k.clientVersion,label:j.status===`failed`?`Retry update`:`Update`,appearance:`icon`}):null,t[95]=n.label,t[96]=n.serverConfig,t[97]=h,t[98]=j.status,t[99]=De,t[100]=k,t[101]=Y):Y=t[101];let it=y||g,at=`${_?`Switch off`:`Switch on`} ${n.label}`,ot;t[102]!==h||t[103]!==i?(ot=e=>i(h,e),t[102]=h,t[103]=i,t[104]=ot):ot=t[104];let st;t[105]!==_||t[106]!==it||t[107]!==at||t[108]!==ot?(st=(0,Q.jsx)(ht,{render:(0,Q.jsx)($n,{size:`sm`,checked:_,disabled:it,"aria-label":at,onCheckedChange:ot})}),t[105]=_,t[106]=it,t[107]=at,t[108]=ot,t[109]=st):st=t[109];let ct=g?`Client not supported`:_?`Switch off`:`Switch on`,ut;t[110]===ct?ut=t[111]:(ut=(0,Q.jsx)(gt,{side:`top`,children:ct}),t[110]=ct,t[111]=ut);let dt;t[112]!==st||t[113]!==ut?(dt=(0,Q.jsxs)(_t,{children:[st,ut]}),t[112]=st,t[113]=ut,t[114]=dt):dt=t[114];let ft=`More actions for ${n.label}`,pt;t[115]!==y||t[116]!==ft?(pt=(0,Q.jsx)(z,{type:`button`,variant:`ghost-muted`,size:`icon-xs`,disabled:y,"aria-label":ft}),t[115]=y,t[116]=ft,t[117]=pt):pt=t[117];let mt;t[118]===Symbol.for(`react.memo_cache_sentinel`)?(mt=(0,Q.jsx)(d,{className:`size-3.5`}),t[118]=mt):mt=t[118];let vt;t[119]===pt?vt=t[120]:(vt=(0,Q.jsx)(fe,{render:pt,children:mt}),t[119]=pt,t[120]=vt);let yt;t[121]!==n.serverConfig||t[122]!==h?(yt=(0,Q.jsx)(hr,{environmentId:h,serverConfig:n.serverConfig}),t[121]=n.serverConfig,t[122]=h,t[123]=yt):yt=t[123];let bt,xt;t[124]===Symbol.for(`react.memo_cache_sentinel`)?(bt=()=>l(Li),xt=(0,Q.jsx)(m,{}),t[124]=bt,t[125]=xt):(bt=t[124],xt=t[125]);let St=c?`Hide routes`:`Routes`,Ct;t[126]===St?Ct=t[127]:(Ct=(0,Q.jsxs)(M,{onClick:bt,children:[xt,St]}),t[126]=St,t[127]=Ct);let wt;t[128]!==D||t[129]!==me?(wt=me?(0,Q.jsx)(M,{onClick:()=>D(me,{url:me}),children:`Copy MCP URL`}):null,t[128]=D,t[129]=me,t[130]=wt):wt=t[130];let Tt;t[131]!==T||t[132]!==b?(Tt=b?(0,Q.jsx)(M,{onClick:()=>T(b),children:`Copy trace ID`}):null,t[131]=T,t[132]=b,t[133]=Tt):Tt=t[133];let Et;t[134]===Symbol.for(`react.memo_cache_sentinel`)?(Et=(0,Q.jsx)(_e,{}),t[134]=Et):Et=t[134];let Dt;t[135]!==n||t[136]!==o?(Dt=()=>o(n),t[135]=n,t[136]=o,t[137]=Dt):Dt=t[137];let Ot=y?`Removing…`:`Remove from this device…`,kt;t[138]!==Dt||t[139]!==Ot?(kt=(0,Q.jsx)(M,{variant:`destructive`,onClick:Dt,children:Ot}),t[138]=Dt,t[139]=Ot,t[140]=kt):kt=t[140];let At;t[141]!==yt||t[142]!==Ct||t[143]!==wt||t[144]!==Tt||t[145]!==kt?(At=(0,Q.jsxs)(P,{align:`end`,children:[yt,Ct,wt,Tt,Et,kt]}),t[141]=yt,t[142]=Ct,t[143]=wt,t[144]=Tt,t[145]=kt,t[146]=At):At=t[146];let jt;t[147]!==vt||t[148]!==At?(jt=(0,Q.jsxs)(f,{children:[vt,At]}),t[147]=vt,t[148]=At,t[149]=jt):jt=t[149];let Mt;return t[150]!==n.label||t[151]!==ye||t[152]!==je||t[153]!==Qe||t[154]!==J||t[155]!==tt||t[156]!==nt||t[157]!==Y||t[158]!==dt||t[159]!==jt?(Mt=(0,Q.jsxs)(Sr,{kind:ye,label:Ae,dimmed:je,subtitle:Qe,below:J,detail:tt,children:[nt,Y,dt,jt]}),t[150]=n.label,t[151]=ye,t[152]=je,t[153]=Qe,t[154]=J,t[155]=tt,t[156]=nt,t[157]=Y,t[158]=dt,t[159]=jt,t[160]=Mt):Mt=t[160],Mt}function Li(e){return!e}function Ri(e){return!e}function zi(e){return!e}function Bi(e){return e!==null}function Vi(e){q.add(ft({type:`error`,title:`Could not copy MCP URL`,description:e.message}))}function Hi(e){let{url:t}=e;q.add({type:`success`,title:`MCP URL copied`,description:`Add it to an agent, e.g. claude mcp add --transport http p4 ${t}`})}function Ui(e){q.add(ft({type:`error`,title:`Could not copy trace ID`,description:e.message}))}function Wi(e){let{traceId:t}=e;q.add({type:`success`,title:`Trace ID copied`,description:t})}function Gi(e){let t=(0,Z.c)(10),{checked:n,disabled:r,disabledReason:i,onCheckedChange:a,ariaLabel:o}=e,s=o===void 0?`Enable P4 Connect`:o,c;t[0]===a?c=t[1]:(c=a?{onCheckedChange:a}:{},t[0]=a,t[1]=c);let l;t[2]!==s||t[3]!==n||t[4]!==r||t[5]!==c?(l=(0,Q.jsx)($n,{"aria-label":s,checked:n,disabled:r,...c}),t[2]=s,t[3]=n,t[4]=r,t[5]=c,t[6]=l):l=t[6];let u=l,d;return t[7]!==u||t[8]!==i?(d=i?(0,Q.jsxs)(_t,{children:[(0,Q.jsx)(ht,{render:(0,Q.jsx)(`span`,{className:`inline-flex`,children:u})}),(0,Q.jsx)(gt,{side:`top`,children:i})]}):u,t[7]=u,t[8]=i,t[9]=d):d=t[9],d}function Ki(e){let t=(0,Z.c)(44),{canManageRelay:n}=e,r=J(),{isSignedIn:i,linkState:a,linkRevoked:o,managedTunnelActive:s,managedTunnelOutOfSync:c,publishAgentActivity:l,holdWebhooksWhileOffline:u,operationError:d,reconcileCloudState:f}=Nn(),[p,m]=(0,$.useState)(!1),[h,g]=(0,$.useState)(!1),_=i?n?null:`Your session does not have permission to manage P4 Connect access.`:`Sign in to P4 Connect to manage this environment.`,v=p||h,y;t[0]!==r||t[1]!==l||t[2]!==f?(y=async e=>{r!==null&&ct(r,`relay:write`)&&(m(!0),await f({managedTunnel:e,publish:l})&&q.add({type:`success`,title:e?`P4 Connect linked`:l?`P4 Connect tunnel disabled`:`P4 Connect unlinked`,description:e?`This environment is available through P4 Connect.`:l?`The managed tunnel was removed. Agent activity publishing stays on.`:`This environment is no longer available through P4 Connect.`}),m(!1))},t[0]=r,t[1]=l,t[2]=f,t[3]=y):y=t[3];let b=y,x;t[4]!==s||t[5]!==r||t[6]!==f?(x=async e=>{r!==null&&ct(r,`relay:write`)&&(g(!0),await f({managedTunnel:s,publish:e})&&q.add({type:`success`,title:e?`Agent activity enabled`:`Agent activity disabled`,description:e?`This environment publishes agent activity to your mobile clients.`:`This environment will stop publishing agent activity.`}),g(!1))},t[4]=s,t[5]=r,t[6]=f,t[7]=x):x=t[7];let S=x,C;t[8]!==s||t[9]!==l||t[10]!==f?(C=async e=>{g(!0),await f({managedTunnel:s,publish:l,holdWebhooksWhileOffline:e})&&q.add({type:`success`,title:e?`Webhooks held while offline`:`Webhooks no longer held`,description:e?`P4 Connect keeps webhook requests for up to 24 hours while this environment is offline.`:`Requests to an offline environment now fail. Anything already held is still delivered.`}),g(!1)},t[8]=s,t[9]=l,t[10]=f,t[11]=C):C=t[11];let w=C,T;t[12]!==n||t[13]!==_||t[14]!==v||t[15]!==i||t[16]!==o||t[17]!==s||t[18]!==c||t[19]!==d||t[20]!==a||t[21]!==b?(T=window.desktopBridge?(0,Q.jsx)(ln,{title:Vn(`t3-connect`).title,description:o?`This environment was removed from P4 Connect. Turn it on to link it again.`:s?`This environment is available to your other devices through P4 Connect.`:c?`P4 Connect is out of sync. This environment is linked only to publish agent activity, so other devices cannot connect. Turn P4 Connect on to repair it.`:`Make this environment available to your other devices through P4 Connect.`,status:d??a.error,control:(0,Q.jsx)(Gi,{checked:s,disabled:!n||!i||a.data===null||a.isPending||v,disabledReason:_,onCheckedChange:e=>void b(e)})}):o?(0,Q.jsx)(ln,{title:Vn(`t3-connect`).title,description:"This environment was removed from P4 Connect. Run `p4c connect link` on the host to link it again."}):null,t[12]=n,t[13]=_,t[14]=v,t[15]=i,t[16]=o,t[17]=s,t[18]=c,t[19]=d,t[20]=a,t[21]=b,t[22]=T):T=t[22];let E;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(E=Vn(`publish-agent-activity`),t[23]=E):E=t[23];let D=!n||!i||a.data===null||a.isPending||v,O;t[24]===S?O=t[25]:(O=e=>void S(e),t[24]=S,t[25]=O);let k;t[26]!==_||t[27]!==l||t[28]!==D||t[29]!==O?(k=(0,Q.jsx)(ln,{title:E.title,description:`Send activity to mobile notifications and Live Activities without P4 Connect.`,control:(0,Q.jsx)(Gi,{ariaLabel:`Publish agent activity to mobile clients`,checked:l,disabled:D,disabledReason:_,onCheckedChange:O})}),t[26]=_,t[27]=l,t[28]=D,t[29]=O,t[30]=k):k=t[30];let A;t[31]!==n||t[32]!==_||t[33]!==u||t[34]!==v||t[35]!==i||t[36]!==s||t[37]!==a||t[38]!==w?(A=s?(0,Q.jsx)(ln,{title:Vn(`hold-webhooks-while-offline`).title,description:`Keep webhook requests for up to 24 hours while this environment is offline, then deliver them. Off: P4 Connect only forwards requests and stores nothing.`,control:(0,Q.jsx)(Gi,{ariaLabel:`Hold webhook requests while this environment is offline`,checked:u,disabled:!n||!i||a.isPending||v,disabledReason:_,onCheckedChange:e=>void w(e)})}):null,t[31]=n,t[32]=_,t[33]=u,t[34]=v,t[35]=i,t[36]=s,t[37]=a,t[38]=w,t[39]=A):A=t[39];let j;return t[40]!==T||t[41]!==k||t[42]!==A?(j=(0,Q.jsxs)(Q.Fragment,{children:[T,k,A]}),t[40]=T,t[41]=k,t[42]=A,t[43]=j):j=t[43],j}function qi(e){let t=(0,Z.c)(3),{canReadRelay:n,canManageRelay:r}=e;if(!Pe())return null;if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(ln,{title:`P4 Connect`,description:`To edit these settings, pair this connection with both View relay and Manage relay permissions.`}),t[0]=e):e=t[0],e}let i;return t[1]===r?i=t[2]:(i=(0,Q.jsx)(Ki,{canManageRelay:r}),t[1]=r,t[2]=i),i}function Ji(e){let t=(0,Z.c)(4),{cloudEnabled:n}=e,r=n===void 0||n,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Q.jsx)(jt,{variant:`icon`,children:(0,Q.jsx)(re,{})}),t[0]=i):i=t[0];let a;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(Nt,{children:`No saved remote environments`}),t[1]=a):a=t[1];let o=r?`Click “Add environment” to pair another environment, or connect one from P4 Connect.`:`Click “Add environment” to pair another environment.`,s;return t[2]===o?s=t[3]:(s=(0,Q.jsxs)(Ft,{className:`min-h-52`,children:[i,(0,Q.jsxs)(Mt,{children:[a,(0,Q.jsx)(Pt,{children:o})]})]}),t[2]=o,t[3]=s),s}function Yi(e){let t=(0,Z.c)(3),{primaryEnvironmentId:n,savedEnvironments:r}=e,i;return t[0]!==n||t[1]!==r?(i=Pe()?(0,Q.jsx)(An,{primaryEnvironmentId:n,savedEnvironments:r,empty:(0,Q.jsx)(Ji,{})}):r.length===0?(0,Q.jsx)(Ji,{cloudEnabled:!1}):null,t[0]=n,t[1]=r,t[2]=i):i=t[2],i}function Xi(){let e=window.desktopBridge,t=N(at),{environments:n}=Qe(),r=Ze(),a=dt(En,{reportFailure:!1}),o=dt(Tn,{reportFailure:!1}),s=dt(it.remove,{reportFailure:!1}),c=dt(it.register,{reportFailure:!1}),l=Xe(),u=dt(it.setEnabled,{reportFailure:!1}),p=r?.environmentId??null,m=wn(),h=m.data?.authenticated?m.data.permissions??m.data.scopes??null:null,_=e?null:m.data?.auth.policy??null,v=(0,$.useMemo)(()=>n.filter(e=>e.entry.target._tag!==`PrimaryConnectionTarget`),[n]),y=(0,$.useMemo)(()=>v.filter(e=>!He(e.entry.target)),[v]),b=(0,$.useMemo)(()=>i(e=>v.map(t=>({environment:t,updateStatus:e(rt.updateStateAtom(t.environmentId)).status}))),[v]),x=N(b),C=(0,$.useMemo)(()=>x.flatMap(({environment:e,updateStatus:t})=>{let n=Gn(e.serverConfig),r=Jn(e.serverConfig),i=Qn(e.serverConfig);return!n||t===`running`||!e.entry.enabled||e.connection.phase!==`connected`||He(e.entry.target)||r===null||r===`desktop-managed`&&!i?[]:[{environmentId:e.environmentId,serverLabel:e.label,selfUpdate:r,installation:e.serverConfig?.environment.capabilities.serverInstallation,desktopAppUpdate:i,threadContinuation:Xn(e.serverConfig),continueThreadsAfterServerUpdate:e.serverConfig?.settings.continueThreadsAfterServerUpdate??!1,targetVersion:n.clientVersion}]}),[x]),w=(0,$.useMemo)(()=>[...r?[r]:[],...v.filter(e=>e.entry.enabled)],[r,v]),T=(0,$.useMemo)(()=>{let e=new Set;for(let t of v){let n=t.entry.profile;if(t.entry.target._tag!==`SshConnectionTarget`||g(n)||n.value._tag!==`SshConnectionProfile`)continue;let r=n.value.target;e.add(r.alias),e.add(br(r))}return e},[v]),[D,O]=(0,$.useState)(null),[k,A]=(0,$.useState)(null),[j,M]=(0,$.useState)(()=>new Map),F=(0,$.useCallback)(e=>{M(t=>new Map(t).set(e.id,e.credential))},[]),[te,ne]=(0,$.useState)(null),[ie,oe]=(0,$.useState)(null),[se,ce]=(0,$.useState)(!1),[I,le]=(0,$.useState)(!1),[L,de]=(0,$.useState)(null),[R,pe]=(0,$.useState)(`remote`),[he,_e]=(0,$.useState)(``),[ve,ye]=(0,$.useState)(``),[B,Se]=(0,$.useState)(``),[V,we]=(0,$.useState)(``),[Te,Ee]=(0,$.useState)(``),[Oe,Ae]=(0,$.useState)(!1),Me=(0,$.useRef)(void 0),[Ne,H]=(0,$.useState)(null),[U,W]=(0,$.useState)(!1),[Le,Re]=(0,$.useState)(null),[ze,Be]=(0,$.useState)(!1),[Ve,Ue]=(0,$.useState)(!1),[G,Ye]=(0,$.useState)(!1),[J,$e]=(0,$.useState)(!1),[et,nt]=(0,$.useState)(null),[Y,ot]=(0,$.useState)(null),lt=Y!==null,[pt,mt]=(0,$.useState)(null),[vt,At]=(0,$.useState)(!1),[jt,Mt]=(0,$.useState)(String(ti)),[Nt,Pt]=(0,$.useState)(null),Ft=r?.serverConfig??null,Vt=Gn(Ft),Ht=N(rt.updateStateAtom(p)),[Ut,Wt]=(0,$.useState)(!1),Gt=en(e=>e.defaultAdvertisedEndpointKey),Kt=en(e=>e.setDefaultAdvertisedEndpointKey),qt=st(p,me),Jt=st(p,ue),Yt=st(p,xe),Xt=st(p,ae),Zt=st(p,E),Qt=!Ie()&&Xt,$t=ut(qt&&p!==null?Br.accessChanges({environmentId:p,input:null}):null),tn=ut(Qt&&e?qr:null),nn=e!==void 0&&I&&R===`ssh`,rn=ut(nn?ei:null),on=rn.refresh;(0,$.useEffect)(()=>{nn&&on()},[nn,on]);let fn=ut(Qt&&e?Pn:null),X=fn.data,xn=et??fn.error,Dn=fn.isPending&&fn.data===null,On=rn.data??ri,kn=(0,$.useMemo)(()=>On.filter(e=>{let t=br(e);return!T.has(e.alias)&&!T.has(t)}),[On,T]),An=(0,$.useMemo)(()=>Yr(kn,B),[B,kn]),jn=rn.isPending&&rn.data===null,Mn=rn.error,Nn=e!==void 0&&(jn||kn.length>0),Fn=tn.data?.serverExposureState??null,In=tn.data?.advertisedEndpoints??ni,Bn=D??tn.error,Hn=k??$t.error,Kn=$t.isPending&&$t.data===null,qn=(0,$.useMemo)(()=>{let e=$t.data;return e?.type===`snapshot`?_i(e.payload.pairingLinks.map(e=>bi(e))):[]},[$t.data]),tr=(0,$.useMemo)(()=>{let e=$t.data;return e?.type===`snapshot`?yi(e.payload.clientSessions.map(e=>xi(e))):[]},[$t.data]),Z=e?Fn?.mode===`network-accessible`:_===`remote-reachable`,cr=jt.trim(),ur=Number(cr),dr=/^\d+$/u.test(cr)&&Number.isInteger(ur)&&ur>=1&&ur<=65535,pr=(0,$.useMemo)(()=>{if(!pt)return null;if(!dr||ur===ti)return pt.httpBaseUrl;try{let e=new URL(pt.httpBaseUrl);return e.port=String(ur),e.toString().replace(/\/$/u,``)}catch{return pt.httpBaseUrl}},[dr,ur,pt]),mr=(0,$.useCallback)(async t=>{if(e&&p!==null&&ct(p,`environment:maintain`)){Be(!0),O(null);try{await e.setServerExposureMode(t?`network-accessible`:`local-only`),Jr(),Ue(!1),Be(!1)}catch(e){let t=e instanceof Error?e.message:`Failed to update network exposure.`;Ue(!1),O(t),q.add(ft({type:`error`,title:`Could not update network access`,description:t})),Be(!1)}}},[e,p]),gr=(0,$.useCallback)(()=>{Nt!==null&&mr(Nt===`network-accessible`)},[mr,Nt]),_r=(0,$.useCallback)(async()=>{if(e&&p!==null&&ct(p,`environment:maintain`)&&dr){Ye(!0),O(null);try{await e.setTailscaleServeEnabled({enabled:!0,port:ur}),Jr(),mt(null)}catch(e){let t=e instanceof Error?e.message:`Failed to configure Tailscale HTTPS.`;O(t),q.add(ft({type:`error`,title:`Could not set up Tailscale HTTPS`,description:t}))}finally{Ye(!1)}}},[e,dr,ur,p]),vr=(0,$.useCallback)(e=>{Mt(String(Fn?.tailscaleServePort??ti)),mt(e)},[Fn?.tailscaleServePort]),yr=(0,$.useCallback)(async()=>{if(e&&p!==null&&ct(p,`environment:maintain`)){Ye(!0),O(null);try{await e.setTailscaleServeEnabled({enabled:!1,port:Fn?.tailscaleServePort??ti}),Jr(),At(!1)}catch(e){let t=e instanceof Error?e.message:`Failed to disable Tailscale HTTPS.`;O(t),q.add(ft({type:`error`,title:`Could not disable Tailscale HTTPS`,description:t}))}finally{Ye(!1)}}},[e,Fn,p]),xr=(0,$.useCallback)(e=>{At(!0)},[]),Sr=(0,$.useCallback)(async e=>{if(p!==null&&ct(p,`access:write`)){ne(e),A(null);try{await Cn(e)}catch(e){let t=e instanceof Error?e.message:`Failed to revoke pairing link.`;A(t),q.add(ft({type:`error`,title:`Could not revoke pairing link`,description:t}))}finally{ne(null)}}},[p]),Cr=(0,$.useCallback)(async e=>{if(p!==null&&ct(p,`access:write`)){oe(e),A(null);try{await Sn(e)}catch(e){let t=e instanceof Error?e.message:`Failed to revoke client access.`;A(t),q.add(ft({type:`error`,title:`Could not revoke client access`,description:t}))}finally{oe(null)}}},[p]),wr=(0,$.useCallback)(async()=>{if(p!==null&&ct(p,`access:write`)){ce(!0),A(null);try{let e=await bn();q.add({type:`success`,title:e===1?`Revoked 1 other client`:`Revoked ${e} clients`,description:`Other paired clients will need a new pairing link before reconnecting.`})}catch(e){let t=e instanceof Error?e.message:`Failed to revoke other clients.`;A(t),q.add(ft({type:`error`,title:`Could not revoke other clients`,description:t}))}finally{ce(!1)}}},[p]),Tr=(0,$.useCallback)(async e=>{W(!0),H(null);let t=await o({target:e,label:``,...L?{expectedEnvironmentId:L.environmentId}:{}});if(t._tag===`Failure`){ke(t)||H(pi(je(t))),W(!1);return}_e(``),ye(``),Se(``),we(``),Ee(``),le(!1),q.add({type:`success`,title:L?`Route added`:`Environment connected`,description:L?`${L.label} can now be reached over SSH ${e.alias}.`:`${e.alias} is ready over an SSH-managed tunnel.`}),W(!1)},[o,L]),Er=(0,$.useCallback)(async()=>{if(R===`ssh`){let e;try{e=ui({host:B,username:V,port:Te})}catch(e){H(pi(e));return}await Tr(e);return}W(!0),H(null);let e;try{e=fi({host:he,pairingCode:ve})}catch(e){let t=e instanceof Error?e.message:`Failed to add backend.`;H(t),q.add(ft({type:`error`,title:`Could not add backend`,description:t})),W(!1);return}let t=await a({...e,...L?{expectedEnvironmentId:L.environmentId}:{}});if(t._tag===`Failure`){if(!ke(t)){let e=je(t),n=e instanceof Error?e.message:`Failed to add backend.`;H(n),q.add(ft({type:`error`,title:`Could not add backend`,description:n}))}W(!1);return}_e(``),ye(``),Se(``),we(``),Ee(``),le(!1),q.add(L?{type:`success`,title:`Route added`,description:`${L.label} now has another way to connect.`}:{type:`success`,title:`Backend added`,description:`The environment is saved and will reconnect on app startup.`}),W(!1)},[L,a,Tr,he,R,ve,B,Te,V]),Or=(0,$.useCallback)(e=>{e.nativeEvent.isComposing||e.keyCode===229||e.key===`Enter`&&B.trim().length>0&&(e.preventDefault(),Er())},[Er,B]),kr=(0,$.useCallback)(async t=>{if(U||!e)return;W(!0),H(null),Se(t.alias);let n;try{n=await e.resolveSshHost(t.alias)}catch(e){H(pi(e)),W(!1);return}we(n.username??``),Ee(n.port===null?``:String(n.port)),await Tr(n)},[Tr,e,U]),Ar=(0,$.useCallback)(e=>{if(e.nativeEvent.isComposing||e.keyCode===229)return;let n=Oe&&Nn;if(n){let n=Rt(e,t,{platform:navigator.platform,context:{modelPickerOpen:!1}}),r=zt(n??``),i=r===null?void 0:An[r];if(i){e.preventDefault(),e.stopPropagation(),Ae(!1),kr(i);return}if(e.key===`Escape`){e.preventDefault(),e.stopPropagation();return}}let r=n&&Me.current!==void 0;!e.defaultPrevented&&!r&&e.key===`Enter`&&B.trim().length>0&&(e.preventDefault(),Er())},[An,Er,kr,Nn,t,B,Oe]),jr=(0,$.useCallback)(async(e,t)=>{H(null);let n=await u({environmentId:e,enabled:t});if(n._tag===`Failure`&&!ke(n)){let e=je(n),r=e instanceof Error?e.message:`Failed to switch the backend ${t?`on`:`off`}.`;H(r),q.add(ft({type:`error`,title:`Could not switch backend ${t?`on`:`off`}`,description:r}))}},[u]),Nr=(0,$.useCallback)(async e=>{let t=e.environmentId;Re(t),H(null);let n=await s(t);if(Re(null),n._tag===`Failure`&&!ke(n)){let e=je(n),t=e instanceof Error?e.message:`Failed to remove backend.`;H(t),q.add(ft({type:`error`,title:`Could not remove backend`,description:t}))}},[s]),[Fr,Ir]=(0,$.useState)(null),Lr=(0,$.useCallback)(async e=>{if(e.relayManaged&&Pe()){Ir(e);return}await tt(`Remove ${e.label} from this device?\nThis forgets its pairing, credentials, and cached threads here. Switch it off instead to keep it saved.`,{variant:`destructive`})===!0&&await Nr(e)},[Nr]),Rr=qn,zr=(0,$.useMemo)(()=>In.find(Ci)??null,[In]),Vr=(0,$.useMemo)(()=>Z?In.filter(e=>!Ci(e)):[],[In,Z]),Hr=(0,$.useMemo)(()=>zr?[...Vr,zr]:Vr,[zr,Vr]),Ur=(0,$.useMemo)(()=>Si(Vr,Gt),[Gt,Vr]),Wr=(0,$.useMemo)(()=>Ur??Si(zr?[zr]:[],Gt),[Gt,Ur,zr]),Gr=Wr?wi(Wr):null,Kr=(0,$.useCallback)(e=>{Kt(wi(e))},[Kt]),Xr=(0,$.useCallback)(e=>{let t=di(e);if(t){_e(t.host),ye(t.pairingCode);return}_e(e)},[]),Zr=e=>{let t=R===e.mode;return(0,Q.jsxs)(`button`,{type:`button`,"aria-pressed":t,className:ge(`group flex min-h-24 items-start gap-3 rounded-lg border p-4 text-left`,t?`border-primary/50 bg-primary/5`:`border-border/60 hover:bg-muted/40`),disabled:U,onClick:()=>{pe(e.mode)},children:[e.icon?(0,Q.jsx)(`span`,{className:ge(`mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md border`,t?`border-primary/30 bg-primary/10 text-primary`:`border-border/70 bg-background text-muted-foreground group-hover:text-foreground`),children:e.icon}):null,(0,Q.jsxs)(`span`,{className:`min-w-0`,children:[(0,Q.jsx)(`span`,{className:`block text-sm font-medium text-foreground`,children:e.title}),(0,Q.jsx)(`span`,{className:`mt-1 block text-xs leading-relaxed text-muted-foreground`,children:e.description})]})]})},Qr=()=>(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-[minmax(0,1fr)_10rem]`,children:[(0,Q.jsxs)(`label`,{className:`block`,children:[(0,Q.jsx)(`span`,{className:`mb-1.5 block text-xs font-medium text-foreground`,children:`Host`}),(0,Q.jsx)(yt,{value:he,onChange:e=>Xr(e.target.value),placeholder:`backend.example.com`,disabled:U,spellCheck:!1})]}),(0,Q.jsxs)(`label`,{className:`block`,children:[(0,Q.jsx)(`span`,{className:`mb-1.5 block text-xs font-medium text-foreground`,children:`Pairing code`}),(0,Q.jsx)(yt,{value:ve,onChange:e=>ye(e.target.value),placeholder:`PAIRCODE`,disabled:U,spellCheck:!1})]})]}),(0,Q.jsx)(`div`,{children:(0,Q.jsx)(`span`,{className:`mt-1 block text-2xs text-muted-foreground`,children:`Paste a full pairing URL here to fill both fields automatically.`})})]}),$r=L!==null&&!L.relayManaged&&l.environments.has(L.environmentId)?l.environments.get(L.environmentId).environment:null,oi=async()=>{if($r===null||L===null)return;W(!0);let e=await c(new Fe({target:new De({environmentId:$r.environmentId,label:L.label})}));if(W(!1),e._tag===`Failure`){if(!ke(e)){let t=je(e);H(t instanceof Error?t.message:`Could not add the route.`)}return}le(!1),q.add({type:`success`,title:`Route added`,description:`${L.label} falls back to P4 Connect when its other routes are unreachable.`})},si=()=>(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[$r===null?null:(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-md border border-border px-3 py-2`,children:[(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`This machine is on your P4 Connect account. Use it as a fallback route.`}),(0,Q.jsx)(z,{size:`xs`,variant:`outline`,disabled:U,onClick:()=>void oi(),children:`Add P4 Connect`})]}),Qr(),Ne?(0,Q.jsx)(`p`,{className:`text-xs text-destructive`,children:Ne}):null,(0,Q.jsxs)(z,{variant:`outline`,className:`w-full`,disabled:U,onClick:()=>void Er(),children:[(0,Q.jsx)(S,{className:`size-3.5`}),U?`Adding…`:L?`Add route`:`Add environment`]})]}),ci=()=>(0,Q.jsx)(`div`,{className:`space-y-4`,children:(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsxs)(`div`,{className:`block`,children:[(0,Q.jsx)(`label`,{htmlFor:`saved-backend-ssh-host`,className:`mb-1.5 block text-xs font-medium text-foreground`,children:`SSH host or alias`}),(0,Q.jsxs)(hn,{items:An,itemToStringValue:e=>e.alias,mode:`none`,openOnInputClick:!0,open:Oe,onOpenChange:Ae,onItemHighlighted:e=>{Me.current=e},value:B,onValueChange:(e,t)=>{if(Se(e),t.reason!==`item-press`)return;let n=An.find(t=>t.alias===e);n&&kr(n)},children:[(0,Q.jsx)(_n,{id:`saved-backend-ssh-host`,onKeyDown:Ar,placeholder:`Search hosts or type devbox`,disabled:U,spellCheck:!1}),Nn?(0,Q.jsx)(vn,{children:jn?(0,Q.jsx)(`div`,{className:`px-3 py-2 text-xs text-muted-foreground`,children:`Loading hosts…`}):An.length>0?(0,Q.jsx)(mn,{className:`max-h-72`,children:An.map((e,n)=>{let r=br(e),i=n<9?Lt(n):null,a=i?Bt(t,i,navigator.platform):null;return(0,Q.jsxs)(yn,{value:e,className:`h-8 min-h-8 whitespace-nowrap`,children:[(0,Q.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium`,children:e.alias}),r===e.alias?(0,Q.jsx)(`span`,{className:`flex-1`}):(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-muted-foreground`,children:r}),a?(0,Q.jsx)(gn,{className:`shrink-0`,children:a}):null]},`${e.alias}:${e.hostname}:${e.port??``}`)})}):(0,Q.jsxs)(pn,{className:`break-all`,children:[`No hosts match "`,B.trim(),`".`]})}):null]})]}),(0,Q.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-[minmax(0,1fr)_7rem]`,children:[(0,Q.jsxs)(`label`,{className:`block`,children:[(0,Q.jsx)(`span`,{className:`mb-1.5 block text-xs font-medium text-foreground`,children:`Username`}),(0,Q.jsx)(yt,{value:V,onChange:e=>we(e.target.value),onKeyDown:Or,placeholder:`root`,disabled:U,spellCheck:!1})]}),(0,Q.jsxs)(`label`,{className:`block`,children:[(0,Q.jsx)(`span`,{className:`mb-1.5 block text-xs font-medium text-foreground`,children:`Port`}),(0,Q.jsx)(yt,{value:Te,onChange:e=>Ee(e.target.value),onKeyDown:Or,placeholder:`22`,inputMode:`numeric`,disabled:U,spellCheck:!1})]})]}),Ne||Mn?(0,Q.jsx)(cn,{variant:`error`,children:(0,Q.jsx)(sn,{children:Ne??Mn})}):null,(0,Q.jsxs)(z,{variant:`outline`,className:`w-full`,disabled:U,onClick:()=>void Er(),children:[(0,Q.jsx)(S,{className:`size-3.5`}),U?`Adding…`:L?`Add route`:`Add environment`]})]})}),li=()=>(0,Q.jsx)($n,{checked:Fn?.mode===`network-accessible`,disabled:!Fn||ze,onCheckedChange:e=>{Pt(e?`network-accessible`:`local-only`),Ue(!0)},"aria-label":`Enable network access`}),mi=e=>Ut?Vr.map(t=>{let n=wi(t);return(0,Q.jsx)(Ni,{endpoint:t,isDefault:n===Gr,presentation:e,onSetDefault:Kr,onSetupTailscaleServe:vr,onDisableTailscaleServe:xr,isUpdatingTailscaleServe:G},t.id)}):null,gi=(0,$.useCallback)(async t=>{if(e&&p!==null&&ct(p,`environment:maintain`)){$e(!0),nt(null);try{await t(),Rn()}catch(e){let t=e instanceof Error?e.message:`Failed to update WSL backend.`;nt(t),q.add(ft({type:`error`,title:`Could not change WSL backend`,description:t})),Rn()}finally{$e(!1)}}},[e,p]),Ti=(0,$.useCallback)(()=>{nt(null),Rn()},[]),Ei=(0,$.useMemo)(()=>n.some(e=>He(e.entry.target)),[n]),Di=(0,$.useCallback)(t=>{if(!e||!X)return;let n=X.distros.find(e=>e.isDefault)?.name??null;if(t===ai){if(!X.enabled&&!X.wslOnly)return;let t=X.wslOnly;if(Ei||t){ot({kind:`disable`,wasWslOnly:t});return}gi(()=>e.setWslBackendEnabled(!1));return}let r=t===ii?null:t,i=r??n;if(!X.enabled){ot({kind:`enable`,nextDistro:r});return}if((X.distro??n)!==i){if(Ei||X.wslOnly){ot({kind:`distro`,nextDistro:r});return}gi(()=>e.setWslDistro(r))}},[gi,e,X,Ei]),Oi=(0,$.useCallback)(t=>{if(!e||!Y||Y.kind!==`enable`)return;let n=Y.nextDistro;ot(null);let r=X?.distro??null;gi(()=>Zn({bridge:e,mode:t,nextDistro:n,persistedDistro:r}))},[gi,e,X,Y]),ki=(0,$.useCallback)(t=>{e&&X&&X.wslOnly!==t&&ot({kind:`wsl-only`,nextValue:t})},[e,X]),Ai=(0,$.useCallback)(()=>{if(!e||!Y)return;let t=Y;if(t.kind!==`enable`){if(ot(null),t.kind===`disable`){gi(async()=>{let n=await e.setWslBackendEnabled(!1);return t.wasWslOnly?await e.setWslOnly(!1):n});return}if(t.kind===`distro`){gi(()=>e.setWslDistro(t.nextDistro));return}gi(()=>e.setWslOnly(t.nextValue))}},[gi,e,Y]),Fi=()=>{if(!X)return Ln({state:null,error:xn})&&Qt?(0,Q.jsx)(ln,{...Vn(`wsl-backend`),description:`Couldn't load the WSL backend state.`,status:(0,Q.jsx)(`span`,{className:`block text-destructive`,children:xn}),control:(0,Q.jsx)(z,{size:`sm`,variant:`outline`,onClick:Ti,disabled:Dn,children:Dn?`Retrying…`:`Retry`})}):null;if(!Ln({state:X,error:xn}))return null;if(!X.available)return(0,Q.jsx)(ln,{...Vn(`wsl-backend`),description:`WSL is unavailable, so Windows is running instead. Turn WSL off to clear this preference.`,status:xn?(0,Q.jsx)(`span`,{className:`block text-destructive`,children:xn}):null,control:(0,Q.jsx)(z,{size:`sm`,variant:`outline`,disabled:J,onClick:()=>Di(ai),children:`Switch to Windows`})});let e=X.distros.find(e=>e.isDefault)?.name??null,t=X.enabled?X.distro??e??ii:ai,n=t===ai?`Off`:t===ii?`Default distro`:t;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(ln,{...Vn(`wsl-backend`),description:`Run the selected WSL distro alongside Windows. Projects remain on their current filesystem.`,status:xn?(0,Q.jsx)(`span`,{className:`block text-destructive`,children:xn}):X.preflightError?(0,Q.jsxs)(`span`,{className:`block text-destructive`,children:[`WSL backend couldn't start: `,X.preflightError]}):null,control:(0,Q.jsxs)(Je,{value:t,onValueChange:e=>{typeof e==`string`&&Di(e)},children:[(0,Q.jsx)(qe,{size:`sm`,className:`w-full sm:w-56`,"aria-label":`WSL backend`,disabled:J,children:(0,Q.jsx)(Ge,{children:n})}),(0,Q.jsxs)(Ke,{align:`end`,alignItemWithTrigger:!1,children:[(0,Q.jsx)(We,{hideIndicator:!0,value:ai,children:`Off`}),X.distros.length===0?(0,Q.jsx)(We,{hideIndicator:!0,value:ii,children:`Default distro`}):X.distros.map(e=>(0,Q.jsxs)(We,{hideIndicator:!0,value:e.name,children:[e.name,e.isDefault?` (default)`:``]},e.name))]})]})}),X.enabled?(0,Q.jsx)(ln,{title:`WSL only`,description:`Run only the WSL backend. P4 Code restarts when this changes.`,className:`bg-muted/20 pl-7 sm:pl-8`,control:(0,Q.jsx)($n,{checked:X.wslOnly,disabled:J,onCheckedChange:e=>ki(e),"aria-label":`Run WSL only`})}):null]})},Li=()=>(0,Q.jsx)(ln,{title:Vn(`tailscale-https`).title,description:zr?zr.status===`available`?zr.httpBaseUrl:`Use Tailscale Serve to expose this backend through a MagicDNS HTTPS URL.`:`Start Tailscale to set up HTTPS access through MagicDNS.`,control:zr?(0,Q.jsx)($n,{checked:zr.status===`available`,disabled:G,onCheckedChange:e=>{if(e){vr(zr);return}xr(zr)},"aria-label":`Enable Tailscale HTTPS`}):null}),Ri=e=>(0,Q.jsxs)(Q.Fragment,{children:[Hn?(0,Q.jsx)(`div`,{className:hi(e),children:(0,Q.jsx)(`p`,{className:`text-xs text-destructive`,children:Hn})}):null,(0,Q.jsx)(Mi,{endpointUrl:Fn?.endpointUrl,endpoints:Hr,defaultEndpointKey:Gr,presentation:e,isLoading:Kn,pairingLinks:Rr,createdPairingCredentials:j,clientSessions:tr,revokingPairingLinkId:te,revokingClientSessionId:ie,onRevokePairingLink:Sr,onRevokeClientSession:Cr,canRevoke:Jt})]}),zi=()=>(0,Q.jsx)(ln,{title:Vn(`network-access`).title,description:Z?(0,Q.jsx)(Pi,{endpoint:Ur,hiddenEndpointCount:Math.max(Vr.length-1,0),expanded:Ut,onToggleExpanded:()=>Wt(e=>!e),fallback:Fn?.endpointUrl?`Reachable at ${Fn.endpointUrl}`:Fn?.advertisedHost?`Exposed on all interfaces. Pairing links use ${Fn.advertisedHost}.`:`Exposed on all interfaces.`}):Fn?`Limited to this machine.`:`Loading…`,status:Bn?(0,Q.jsx)(`span`,{className:`block text-destructive`,children:Bn}):null,control:li()}),Bi=()=>(0,Q.jsx)(ln,{title:Vn(`network-access`).title,description:e?`This connection cannot view or change network exposure.`:_===`remote-reachable`?`Remote access is already configured. Change network exposure where the server starts.`:_===`loopback-browser`?`Only this machine can connect. Restart with a non-loopback host for remote pairing.`:`Network exposure information is unavailable.`,control:!e&&(_===`remote-reachable`||_===`loopback-browser`)?(0,Q.jsxs)(_t,{children:[(0,Q.jsx)(ht,{render:(0,Q.jsx)(`span`,{className:`inline-flex`,children:(0,Q.jsx)($n,{checked:Z,disabled:!0,"aria-label":`Enable network access`})})}),(0,Q.jsx)(gt,{side:`top`,children:`Network exposure changes restart the backend and must be controlled where the server process is launched.`})]}):void 0}),Vi=(0,Q.jsx)(Q.Fragment,{children:p===null?(0,Q.jsxs)(dn,{...Vn(`connections-environment`),children:[(0,Q.jsx)(ln,{title:`No environment selected`,description:`Connect an environment to view its settings and access.`}),(0,Q.jsx)(fr,{}),Yt||Zt?(0,Q.jsx)(qi,{canReadRelay:Yt,canManageRelay:Zt}):null]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(dn,{...Vn(`connections-environment`),title:r?.label??(e?`This machine`:`Primary environment`),icon:(0,Q.jsx)(an,{"aria-hidden":!0,kind:Ft?Ce(Ft):`desktop`,className:`size-4`}),headerAction:p===null?null:(0,Q.jsxs)(f,{children:[(0,Q.jsx)(fe,{render:(0,Q.jsx)(z,{type:`button`,variant:`ghost-muted`,size:`icon-xs`,"aria-label":`More actions for this machine`}),children:(0,Q.jsx)(d,{className:`size-3.5`})}),(0,Q.jsx)(P,{align:`end`,children:(0,Q.jsx)(hr,{environmentId:p,serverConfig:Ft})})]}),children:[(0,Q.jsx)(fr,{}),Qt?(0,Q.jsx)(ln,{title:`Version`,description:Ht.status===`idle`?[Ft?.environment.serverVersion??null,r?.displayUrl??null].filter(e=>e!==null).join(` · `)||`Loading…`:(0,Q.jsx)(er,{state:Ht}),control:Vt&&p!==null&&Ht.status!==`running`?(0,Q.jsx)(rr,{size:`sm`,environmentId:p,serverLabel:r?`${r.label} server`:`server`,selfUpdate:Jn(Ft),installation:Ft?.environment.capabilities.serverInstallation,desktopAppUpdate:Qn(Ft),threadContinuation:Xn(Ft),targetVersion:Vt.clientVersion,label:Ht.status===`failed`?`Retry update`:`Update to ${Vt.clientVersion}`}):Ht.status===`idle`&&Ft?(0,Q.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Up to date`}):void 0}):null,Qt&&e?(0,Q.jsxs)(Q.Fragment,{children:[zi(),mi(`endpoint-rail`),Li(),Fi(),Yt||Zt?(0,Q.jsx)(qi,{canReadRelay:Yt,canManageRelay:Zt}):null]}):Qt?(0,Q.jsxs)(Q.Fragment,{children:[Bi(),Yt||Zt?(0,Q.jsx)(qi,{canReadRelay:Yt,canManageRelay:Zt}):null]}):null,r?(0,Q.jsxs)(`details`,{className:`group px-3 sm:px-4`,children:[(0,Q.jsxs)(`summary`,{className:`flex min-h-11 cursor-pointer list-none items-center gap-2 rounded-md text-sm font-medium outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring [&::-webkit-details-marker]:hidden`,children:[`Permissions`,(0,Q.jsx)(be,{"aria-hidden":!0,className:`size-3 text-muted-foreground group-open:rotate-90`})]}),(0,Q.jsx)(lr,{environmentId:r.environmentId,connected:r.connection.phase===`connected`})]}):null]}),qt||Jt?(0,Q.jsx)(sr,{id:`authorized-clients`,title:`Authorized clients`,summary:vi(tr,Rr),control:Jt?(0,Q.jsx)(ji,{delegatableScopes:h??[],onPairingLinkCreated:F,clientSessions:qt&&$t.error===null&&$t.data?.type===`snapshot`?tr:null,isRevokingOtherClients:se,onRevokeOtherClients:wr}):void 0,children:(0,Q.jsx)(bt,{scrollFade:!0,chainVerticalScroll:!0,className:`max-h-[22.5rem]`,"data-testid":`authorized-clients-scroll-area`,children:qt?Ri(`current`):(0,Q.jsx)(`p`,{className:`px-4 py-3 text-xs text-muted-foreground`,children:`This connection can create access links but cannot view authorized clients.`})})}):null,(0,Q.jsx)(Yn,{open:Ve&&Qt,onOpenChange:e=>{ze||Ue(e)},onOpenChangeComplete:e=>{e||Pt(null)},children:(0,Q.jsxs)(ar,{children:[(0,Q.jsxs)(Wn,{children:[(0,Q.jsx)(zn,{children:Nt===`network-accessible`?`Enable network access?`:`Disable network access?`}),(0,Q.jsx)(ir,{children:Nt===`network-accessible`?`Let your other devices connect to P4 Code over the network. Pair devices to give them access. P4 Code will restart.`:`Devices connected over your local network will disconnect. Existing tunnels, such as P4 Connect or Tailscale HTTPS, keep working. P4 Code will restart.`})]}),(0,Q.jsxs)(or,{children:[(0,Q.jsx)(Un,{disabled:ze,render:(0,Q.jsx)(z,{variant:`outline`,disabled:ze}),children:(0,Q.jsx)(`span`,{className:`[text-box:trim-both_cap_alphabetic]`,children:`Cancel`})}),(0,Q.jsxs)(z,{variant:`default`,onClick:gr,disabled:!Qt||Nt===null||ze,children:[ze&&(0,Q.jsx)(K,{size:`sm`}),(0,Q.jsx)(`span`,{className:`[text-box:trim-both_cap_alphabetic]`,children:ze?`Restarting…`:Nt===`network-accessible`?`Restart and enable`:`Restart and disable`})]})]})]})}),(0,Q.jsx)(Yn,{open:lt&&Qt,onOpenChange:e=>{J||e||ot(null)},children:(0,Q.jsxs)(ar,{children:[(0,Q.jsxs)(Wn,{children:[(0,Q.jsx)(zn,{children:Y?.kind===`disable`?Y.wasWslOnly?`Turn off WSL and switch back to Windows?`:`Disable WSL backend?`:Y?.kind===`distro`?`Switch WSL distro?`:Y?.kind===`enable`?`Start the WSL backend`:Y?.nextValue?`Run only the WSL backend?`:`Re-enable the Windows backend?`}),(0,Q.jsx)(ir,{children:Y?.kind===`disable`?Y.wasWslOnly?`P4 Code will restart on the Windows backend. Threads and projects opened against WSL stay safe inside the distro and become available again when you re-enable WSL.`:`The WSL backend will stop. Threads and projects opened against WSL stay safe inside the distro, but they'll be unavailable in P4 Code until you re-enable WSL.`:Y?.kind===`distro`?`P4 Code will restart the WSL backend on the new distro. Sessions still running on the current distro will be interrupted.`:Y?.kind===`enable`?`Run the WSL backend alongside the Windows one, or stop the Windows backend and use only WSL? You can change this later from Settings.`:Y?.nextValue?`P4 Code will restart and start only the WSL backend. Your Windows-side projects won't be accessible until you turn this off again.`:`P4 Code will restart and bring the Windows backend back up alongside WSL.`})]}),(0,Q.jsxs)(or,{children:[(0,Q.jsx)(Un,{disabled:J,render:(0,Q.jsx)(z,{variant:`outline`,disabled:J}),children:`Cancel`}),Y?.kind===`enable`?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(z,{variant:`outline`,onClick:()=>Oi(`wsl-only`),disabled:J||!Qt,children:J?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(K,{size:`sm`}),`Applying…`]}):`Use only WSL`}),(0,Q.jsx)(z,{variant:`default`,onClick:()=>Oi(`both`),disabled:J||!Qt,children:J?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(K,{size:`sm`}),`Applying…`]}):`Run both backends`})]}):(0,Q.jsx)(z,{variant:Y?.kind===`disable`||Y?.kind===`wsl-only`&&Y.nextValue?`destructive`:`default`,onClick:Ai,disabled:J||!Qt,children:J?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(K,{size:`sm`}),`Applying…`]}):Y?.kind===`disable`?Y.wasWslOnly?`Switch to Windows`:`Disable WSL`:Y?.kind===`distro`?`Switch distro`:Y?.nextValue?`Restart and enable`:`Restart and disable`})]})]})}),(0,Q.jsx)(Yn,{open:vt&&Qt,onOpenChange:e=>{G||At(e)},children:(0,Q.jsxs)(ar,{children:[(0,Q.jsxs)(Wn,{children:[(0,Q.jsx)(zn,{children:`Disable Tailscale HTTPS?`}),(0,Q.jsx)(ir,{children:`P4 Code will restart the local backend without Tailscale Serve.`})]}),(0,Q.jsxs)(or,{children:[(0,Q.jsx)(Un,{disabled:G,render:(0,Q.jsx)(z,{variant:`outline`,disabled:G}),children:`Cancel`}),(0,Q.jsx)(z,{variant:`destructive`,onClick:()=>void yr(),disabled:G||!Qt,children:G?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(K,{size:`sm`}),`Restarting…`]}):`Restart and disable`})]})]})}),(0,Q.jsx)(kt,{open:pt!==null,onOpenChange:e=>{G||e||mt(null)},children:(0,Q.jsxs)(Ot,{className:`max-w-md`,children:[(0,Q.jsxs)(xt,{children:[(0,Q.jsx)(St,{children:`Set up Tailscale HTTPS?`}),(0,Q.jsx)(Dt,{children:`P4 Code will restart the local backend with Tailscale Serve enabled and ask Tailscale to proxy HTTPS traffic to this backend.`})]}),(0,Q.jsxs)(Et,{children:[(0,Q.jsxs)(`label`,{className:`block`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:`HTTPS port`}),(0,Q.jsx)(yt,{className:`mt-2`,type:`number`,inputMode:`numeric`,min:1,max:65535,step:1,value:jt,onChange:e=>Mt(e.target.value),disabled:G})]}),dr?null:(0,Q.jsx)(`p`,{className:`mt-2 text-xs text-destructive`,children:`Enter a port from 1 to 65535.`}),(0,Q.jsxs)(`div`,{className:`rounded-md border border-border/70 bg-muted/20 px-3 py-2`,children:[(0,Q.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground`,children:`HTTPS endpoint`}),(0,Q.jsxs)(_t,{children:[(0,Q.jsx)(ht,{render:(0,Q.jsx)(`p`,{className:`mt-1 truncate text-sm text-foreground`,children:pr??`Pending MagicDNS endpoint`})}),pr?(0,Q.jsx)(gt,{side:`top`,children:pr}):null]})]})]}),(0,Q.jsxs)(Ct,{children:[(0,Q.jsx)(Tt,{disabled:G,render:(0,Q.jsx)(z,{variant:`outline`,disabled:G}),children:`Cancel`}),(0,Q.jsx)(z,{onClick:()=>void _r(),disabled:G||!dr,children:G?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(K,{size:`sm`}),`Restarting…`]}):`Enable`})]})]})})]})});return(0,Q.jsxs)(un,{children:[Vi,(0,Q.jsxs)(dn,{...Vn(`remote-environments`),title:`Environments`,headerAction:(0,Q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[C.length>0?(0,Q.jsx)(nr,{targets:C,variant:`ghost-muted`}):null,(0,Q.jsxs)(kt,{open:I,onOpenChange:e=>{le(e),e?de(null):H(null)},children:[(0,Q.jsxs)(_t,{children:[(0,Q.jsx)(ht,{render:(0,Q.jsx)(wt,{render:(0,Q.jsxs)(z,{size:`xs`,variant:`ghost-muted`,"aria-label":`Add environment`,children:[(0,Q.jsx)(S,{className:`size-3`}),(0,Q.jsx)(`span`,{children:`Add environment`})]})})}),(0,Q.jsx)(gt,{side:`top`,children:`Add environment`})]}),(0,Q.jsxs)(Ot,{className:`max-h-[80dvh] sm:max-w-3xl`,children:[(0,Q.jsxs)(xt,{children:[(0,Q.jsx)(St,{children:L?`Add a route to ${L.label}`:`Add Environment`}),(0,Q.jsx)(Dt,{children:L?`Pair this machine again over another address, such as its Tailscale name. It joins the existing routes instead of adding a second machine.`:`Pair another environment to this client.`})]}),(0,Q.jsx)(Et,{children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[Zr({mode:`remote`,title:`Remote link`,description:`Enter a backend host and pairing code.`,icon:(0,Q.jsx)(re,{"aria-hidden":!0,className:`size-4`})}),e?Zr({mode:`ssh`,title:`SSH`,description:`Use local SSH config, agent, and tunnels for the backend.`,icon:(0,Q.jsx)(ee,{"aria-hidden":!0,className:`size-4`})}):null]}),(0,Q.jsx)(It,{children:R===`ssh`?ci():si()})]})})]})]})]}),children:[y.map(e=>(0,Q.jsx)(Ii,{environment:e,removingEnvironmentId:Le,onSetEnabled:jr,onRemove:Lr,onAddRoute:e=>{de(e),H(null),le(!0)}},e.environmentId)),(0,Q.jsx)(Yi,{primaryEnvironmentId:p,savedEnvironments:v})]}),Pe()?(0,Q.jsx)(Pr,{environmentLabel:Fr?.label??null,onCancel:()=>Ir(null),onConfirm:()=>{Fr&&(Ir(null),Nr(Fr))}}):null,(0,Q.jsx)(Dr,{environments:w}),(0,Q.jsx)(Mr,{environments:w})]})}function Zi(e){let{kind:t}=e;q.add({type:`success`,title:t===`hosted-link`?`Hosted app link copied`:t===`link`?`Pairing URL copied`:`Pairing code copied`,description:t===`hosted-link`?`Open it in the browser on the device you want to connect.`:t===`link`?`Open it in the client you want to pair to this environment.`:`Paste it into another client to finish pairing.`})}function Qi(e){return Di(e)?`hosted-link`:`link`}function $i(e){return!e}function ea(e){return e.currentTarget.select()}function ta(e){return e.currentTarget.select()}function na(e){return e!==null}var ra=Xi;export{ra as component};
|
|
2
|
-
//# sourceMappingURL=settings.connections-CPZLelaw.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{r as t}from"./Icon-l19w4AjM.js";import{$n as n,$o as r,Aw as i,C_ as a,Ch as o,Ff as s,Gn as c,Mf as l,NE as u,NT as d,Om as f,Oy as p,Qn as m,Ss as h,XT as g,Yo as _,Zn as v,cr as y,dh as b,er as x,fw as S,gd as C,hd as w,hh as T,k_ as E,lE as D,mh as O,ms as ee,nl as te,or as k,rl as A,sr as j,t as M,th as N,tr as ne,vh as P,yl as F}from"./utils-ChK8VEFC.js";import{C as re}from"./entities-BNeCRVLN.js";import{t as ie}from"./useNavigate-B5WzUZJ7.js";import{t as I}from"./useLocation-CEeuom34.js";import{i as ae}from"./toast-CylvOlB4.js";import{D as oe,E as L,O as se,a as ce,g as le,i as ue,p as de,s as R,t as fe}from"./useSettings-CHo-Nv-3.js";import{f as pe}from"./server-h8-LTzsE.js";import{i as me,n as he,o as ge}from"./session-BnZv-sUV.js";import{t as _e}from"./use-atom-command-BZ0heqC5.js";import{m as ve}from"./queries-WzVTFKPw.js";import{a as ye,n as be,t as xe}from"./tooltip-C85X81rS.js";import{o as Se}from"./threadSort-Bd2rijEy.js";import{i as Ce,o as we,t as Te}from"./popover-BJ6nvlLO.js";import{t as Ee}from"./ProjectFavicon-BtNx7IEw.js";import{r as De,s as Oe}from"./projectFilesQueryState-Dnhdh9Fp.js";import{t as ke}from"./pullRequestDetail.logic-w9YCNM32.js";import{a as z,f as B,i as V,n as H,t as U}from"./p4ProjectFile-Cvz5u0b7.js";import{r as W}from"./sidebarProjectGrouping-Bk_4pOCF.js";import{n as G}from"./EnvironmentMachineIcon-DszKXxD_.js";import{t as K}from"./WorkspacePageContainer-BQ0Bk5Qy.js";var q=u(),J=e(D(),1);function Y(e){let t=(0,q.c)(12),n,r,i,a;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4]):({variant:i,divided:a,className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a);let o=i===void 0?`grouped`:i,s=a===void 0||a,c=o===`grouped`?`rounded-xl border border-border/60 bg-card/40 shadow-xs/5`:`space-y-1`,l=o===`grouped`&&s&&`[&>*+*]:border-t [&>*+*]:border-border/50 [&>[data-slot=settings-row]]:rounded-none`,u;t[5]!==n||t[6]!==c||t[7]!==l?(u=M(`relative overflow-visible text-foreground`,c,l,n),t[5]=n,t[6]=c,t[7]=l,t[8]=u):u=t[8];let d;return t[9]!==r||t[10]!==u?(d=(0,J.jsx)(`div`,{...r,className:u}),t[9]=r,t[10]=u,t[11]=d):d=t[11],d}var X=e(t(),1);function Z(){let e=(0,q.c)(5),t=re(),n=R(B),r=se(),{environments:i}=L(),a;if(e[0]!==i||e[1]!==r||e[2]!==t||e[3]!==n){let o=new Map(i.map(je));a=W({projects:t,settings:n,primaryEnvironmentId:r,resolveEnvironmentLabel:e=>o.get(e)??null}).sort(Ae),e[0]=i,e[1]=r,e[2]=t,e[3]=n,e[4]=a}else a=e[4];return a}function Ae(e,t){return e.displayName.localeCompare(t.displayName)}function je(e){return[e.environmentId,e.label]}var Me=new Set(Object.keys(T.fields)),Ne=new Set(Object.keys(N.fields)),Pe=new Set(O);function Q(e){return Pe.has(e)}function Fe(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ie(e,t,n){let r=new Set(e.environmentIds),i=t.filter(e=>r.has(e.environmentId)),a=i.filter(e=>e.connection.phase===`connected`&&e.serverConfig!==null);return{environments:i,connectedEnvironments:a,environment:a.find(e=>e.environmentId===n)??a[0]??null}}function Le(e,t,n){let r=new Map(t.map(e=>[e.environmentId,e]));return e.kind===`project`||e.kind===`checkout`?e.members.flatMap(e=>{let t=r.get(e.environmentId);if(!t?.serverConfig)return[];let i=n?.get(e.physicalProjectKey),a=i===void 0?V(t.serverConfig.settings,e.id):V(t.serverConfig.settings,e.id,null,i);return[{environmentId:e.environmentId,label:t.label,projectId:e.id,settings:a.settings,sources:a.sources}]}):t.flatMap(e=>e.serverConfig?[{environmentId:e.environmentId,label:e.label,projectId:null,settings:e.serverConfig.settings,sources:V(e.serverConfig.settings,null).sources}]:[])}function Re(e,t){let n=e[0];return n!==void 0&&e.some(e=>t.some(t=>!g(n.settings[t],e.settings[t])))}function ze(e,t){let n=t.filter(Q);if(n.length===0||e.length===0)return`environment`;let r=new Set(e.flatMap(e=>n.map(t=>e.sources[t])));return r.size>1?`mixed`:r.has(`project`)?`project`:r.has(`p4.json`)?`p4.json`:`environment`}function Be(e,t,n){let r=new Map(t.map(e=>[e.environmentId,e])),i=new Map;for(let t of e.members){let e=r.get(t.environmentId);if(!e?.serverConfig||e.connection.phase!==`connected`||e.serverConfig.environment?.capabilities.projectSettingsOverrides!==!0)continue;let a=e.serverConfig.settings,o=n(a.projectSettingsOverrides[t.id]??{},a,t.id),s=i.get(t.environmentId);i.set(t.environmentId,{environmentId:t.environmentId,label:e.label,previous:a,patch:{projectSettingsOverrides:{...s?.patch.projectSettingsOverrides,[t.id]:o}}})}return[...i.values()]}function Ve(e,t,n){let r=Object.fromEntries(Object.entries(n).filter(([e])=>Ne.has(e)&&!Me.has(e))),i=Object.fromEntries(Object.entries(n).filter(([e])=>Me.has(e))),a=Object.keys(i),{connectedEnvironments:o}=Ie(e,t,null),s=e.kind===`project`||e.kind===`checkout`,c=s?a.filter(e=>!Q(e)):[],l=a.length===0?[]:s?c.length>0?[]:Be(e,t,(e,t,n)=>{let r=V(t,n).settings,a={...e};for(let[e,o]of Object.entries(i)){if(e===`worktreeCleanup`&&i.worktreeCleanup?.mode===`custom`){a[e]={mode:`custom`,rules:{...z(t,n),...i.worktreeCleanup.rules}};continue}if(o===null&&!P(e)){delete a[e];continue}let s=r[e];a[e]=Fe(o)&&Fe(s)?{...s,...o}:o}return a}):e.kind===`all`||e.kind===`environment`?o.flatMap(e=>{let t=e.serverConfig?.settings;return t?[{environmentId:e.environmentId,label:e.label,previous:t,patch:t.worktreeCleanup!=null&&i.storageCleanup&&Object.keys(i.storageCleanup).some(e=>e.startsWith(`worktree`))?{...i,worktreeCleanup:{mode:`custom`,rules:{...z(t,null),...Object.fromEntries(Object.entries(i.storageCleanup).filter(([e])=>e.startsWith(`worktree`)))}}}:i}]:[]}):[],u=Object.keys(r).length>0;return{clientPatch:r,hasClientWrite:u,serverWrites:l,unavailableReason:u||l.length>0||Object.keys(n).length===0?null:e.kind===`unavailable`?e.message:c.length>0?`This setting is environment-wide and cannot be overridden by a project.`:s?`Connect the selected checkouts, or update their environments, to save a project override.`:`Connect ${e.kind===`environment`?e.label:`an environment`} to save this setting.`}}function He(e,t,n){let r=e.kind===`project`||e.kind===`checkout`?Be(e,t,(e,t,r)=>H(t,r,n)):[];return{clientPatch:{},hasClientWrite:!1,serverWrites:r,unavailableReason:r.length>0?null:`Connect the selected checkouts, or update their environments, to reset this override.`}}function Ue(e,t){let n=t.filter(Q);return n.length===0?[]:e.flatMap(e=>{let t=e.serverConfig?.settings.projectSettingsOverrides;return t?Object.entries(t).flatMap(([t,r])=>n.some(e=>Object.hasOwn(r,e))?[{environmentId:e.environmentId,projectId:t}]:[]):[]})}function We(e,t,n){let r=new Map(e.map(e=>[e.environmentId,e])),i=new Map;for(let{environmentId:e,projectId:a}of t){let t=r.get(e);if(!t?.serverConfig||t.connection.phase!==`connected`)continue;let o=t.serverConfig.settings,s=i.get(e);i.set(e,{environmentId:e,label:t.label,previous:o,patch:{projectSettingsOverrides:{...s?.patch.projectSettingsOverrides,[a]:H(o,a,n)}}})}let a=[...i.values()];return{clientPatch:{},hasClientWrite:!1,serverWrites:a,unavailableReason:a.length>0?null:`Connect the environments to reset these overrides.`}}function Ge(e,t,n){if(e===null)return t!=null&&g(n,t);if(Fe(e)&&!Array.isArray(t)&&!Array.isArray(n)){let r=(e,t)=>Fe(e)?e[t]:void 0;return Object.entries(e).some(([e,i])=>Ge(i,r(t,e),r(n,e)))}return!(typeof e==`string`&&typeof t==`string`?e.trim()===t:g(e,t))&&g(n,t)}function Ke(e,t){return t===void 0?[]:Object.entries(e.patch).flatMap(([n,r])=>Ge(r,e.previous[n],t[n])?[n]:[])}async function qe(e,t,n){e.hasClientWrite&&n(e.clientPatch);let r=await Promise.allSettled(e.serverWrites.map(({environmentId:e,patch:n})=>t({environmentId:e,input:{patch:n}}))),a=t=>{let n=r[t];return n?.status===`fulfilled`&&n.value._tag===`Success`&&Ke(e.serverWrites[t],n.value.value).length===0},o=e.serverWrites.flatMap((e,t)=>{if(a(t))return[];let n=r[t];if(n?.status===`fulfilled`&&n.value._tag===`Success`)return[{...e,message:`This environment does not support this setting. Update P4 Code on it.`}];let o=n?.status===`rejected`?n.reason:n?.status===`fulfilled`&&n.value.cause?i(n.value.cause):void 0;return[{...e,message:o instanceof Error?o.message:`The save failed. Try reconnecting and saving again.`}]}),s=e.serverWrites.filter((e,t)=>a(t));return{failedEnvironments:o,savedEnvironments:s,savedEnvironmentCount:s.length}}function Je(e){let t=e=>typeof e==`string`&&e.trim().length>0?e:void 0,n=t(e.project),r=t(e.machine),i=t(e.checkout);return{...n===void 0?{}:{project:n},...r===void 0?{}:{machine:r},...i===void 0?{}:{checkout:i}}}function Ye(e,t,n){let r=(e,t)=>({kind:`unavailable`,reason:e,label:`Unavailable selection`,message:t,members:[],environmentIds:[]});if(e.checkout&&!e.project)return r(`project-required`,`Select a project to choose one of its checkouts.`);let i=n.find(t=>t.environmentId===e.machine);if(e.machine&&!i)return r(`environment-missing`,`This environment is no longer available.`);if(e.project){let a=t.find(t=>t.projectKey===e.project);if(!a)return r(`project-missing`,`This project is no longer available.`);let o=a.memberProjects.filter(t=>(e.machine===void 0||t.environmentId===e.machine)&&(e.checkout===void 0||t.physicalProjectKey===e.checkout));if(o.length===0)return r(`checkout-missing`,e.checkout?`This checkout is no longer available in the selected project and environment.`:`This project has no checkout on this environment.`);if(e.checkout){let e=o[0],t=n.find(t=>t.environmentId===e.environmentId);if(!t)return r(`environment-missing`,`This checkout's environment is no longer available.`);let i=a.memberProjects.some(t=>t.environmentId===e.environmentId&&t.physicalProjectKey!==e.physicalProjectKey);return{kind:`checkout`,group:a,checkout:e,environmentId:e.environmentId,label:`${a.displayName} / ${t.label}${i?` · ${e.workspaceRoot}`:``}`,members:o,environmentIds:[e.environmentId]}}return{kind:`project`,group:a,environmentId:i?.environmentId??null,label:`${a.displayName} / ${i?.label??`All checkouts`}`,members:o,environmentIds:[...new Set(o.map(e=>e.environmentId))]}}return i?{kind:`environment`,environmentId:i.environmentId,label:i.label,members:[],environmentIds:[i.environmentId]}:{kind:`all`,label:`All environments`,members:[],environmentIds:n.map(e=>e.environmentId)}}function Xe(e,t){return t.some(t=>t.environmentId!==e.environmentId&&t.label===e.label)?`${e.label} · ${e.displayUrl??e.environmentId}`:e.label}function Ze(e,t){return e.machine??t??`all`}function Qe(e){return e.project??`all`}function $e(e,t){let n={};return e.project&&(n.project=e.project),t!==`all`&&(n.machine=t),n}function et(e,t){let n={};return t!==`all`&&(n.project=t),e.machine&&(n.machine=e.machine),n}function tt(e,t,n,r){if(e.machine||t.kind===`unavailable`)return e;let i=new Set(t.environmentIds),a=n.filter(e=>i.has(e.environmentId)),o=a.find(e=>e.environmentId===r)??a.find(e=>e.connection.phase===`connected`)??a[0];return o?{...e,machine:o.environmentId}:e}function nt(e){let t=(0,q.c)(5),n;t[0]!==e.kind||t[1]!==e.members?(n=e.kind===`project`||e.kind===`checkout`?e.members:[],t[0]=e.kind,t[1]=e.members,t[2]=n):n=t[2];let i=n,a;return t[3]===i?a=t[4]:(a=r(e=>{let t=new Map;for(let n of i){let r=e(De(n.environmentId,n.workspaceRoot,te));if(r.waiting)continue;let i=d(h(r)),a=e(Oe(n.environmentId,n.workspaceRoot,`p4.json`))?.data??e(Oe(n.environmentId,n.workspaceRoot,i?.relativePath??`p4.json`))?.data??i;t.set(n.physicalProjectKey,a===null||a.truncated?null:U(a.contents))}return t}),t[3]=i,t[4]=a),_(a)}function rt(e,t){let n=(0,q.c)(24),r=Z(),{environments:i}=L(),a=se(),o;n[0]!==i||n[1]!==r||n[2]!==a||n[3]!==e||n[4]!==t?(o=t?tt(e,Ye(e,r,i),i,a):e,n[0]=i,n[1]=r,n[2]=a,n[3]=e,n[4]=t,n[5]=o):o=n[5];let s=o,c;n[6]!==i||n[7]!==r||n[8]!==s?(c=Ye(s,r,i),n[6]=i,n[7]=r,n[8]=s,n[9]=c):c=n[9];let l=c,u=nt(l),d,f,p;n[10]!==i||n[11]!==a||n[12]!==u||n[13]!==l?(d=Ie(l,i,a),p=Le(l,d.connectedEnvironments,u),f=p.find(e=>e.environmentId===d.environment?.environmentId)??p[0]??null,n[10]=i,n[11]=a,n[12]=u,n[13]=l,n[14]=d,n[15]=f,n[16]=p):(d=n[14],f=n[15],p=n[16]);let m=f,h;return n[17]!==r||n[18]!==l||n[19]!==s||n[20]!==d||n[21]!==m||n[22]!==p?(h={scope:l,groups:r,search:s,...d,targets:p,target:m},n[17]=r,n[18]=l,n[19]=s,n[20]=d,n[21]=m,n[22]=p,n[23]=h):h=n[23],h}var it=(0,X.createContext)(null);function at(e){let t=(0,q.c)(7),{search:n,onChange:r,children:i,singleEnvironment:a}=e,o=a!==void 0&&a,s=rt(n,o),c;t[0]!==r||t[1]!==s||t[2]!==o?(c={...s,singleEnvironment:o,selectScope:r},t[0]=r,t[1]=s,t[2]=o,t[3]=c):c=t[3];let l=c,u;return t[4]!==i||t[5]!==l?(u=(0,J.jsx)(it,{value:l,children:i}),t[4]=i,t[5]=l,t[6]=u):u=t[6],u}function ot(){return(0,X.useContext)(it)}function $(){let e=ot();if(e===null)throw Error(`Settings scope must be read inside SettingsScopeProvider.`);return e}var st=new Set([`/settings/appearance`,`/settings/snap-shot`,`/settings/connections`]);function ct(){let e=(0,q.c)(20),t=ot(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n={select:lt},e[0]=n):n=e[0];let r=I(n),{environments:i}=L();if(t===null||st.has(r))return null;let a;e[1]!==i||e[2]!==t.groups||e[3]!==t.search||e[4]!==t.selectScope||e[5]!==t.singleEnvironment?(a={value:t.search,singleEnvironment:t.singleEnvironment,groups:t.groups,environments:i,onChange:t.selectScope},e[1]=i,e[2]=t.groups,e[3]=t.search,e[4]=t.selectScope,e[5]=t.singleEnvironment,e[6]=a):a=e[6];let o=a,s;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,J.jsx)(`span`,{className:`shrink-0`,children:`Applying settings for`}),e[7]=s):s=e[7];let c;e[8]===o?c=e[9]:(c=(0,J.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5`,children:[s,(0,J.jsx)(ft,{...o})]}),e[8]=o,e[9]=c);let l=t.search.machine||t.scope.kind===`checkout`?`on`:`across`,u;e[10]===l?u=e[11]:(u=(0,J.jsx)(`span`,{className:`shrink-0`,children:l}),e[10]=l,e[11]=u);let d;e[12]===o?d=e[13]:(d=(0,J.jsx)(dt,{...o}),e[12]=o,e[13]=d);let f;e[14]!==u||e[15]!==d?(f=(0,J.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5`,children:[u,d]}),e[14]=u,e[15]=d,e[16]=f):f=e[16];let p;return e[17]!==c||e[18]!==f?(p=(0,J.jsxs)(`p`,{className:`flex min-w-0 flex-wrap items-center gap-x-1.5 gap-y-1 px-3 text-base text-muted-foreground sm:px-4`,children:[c,f]}),e[17]=c,e[18]=f,e[19]=p):p=e[19],p}function lt(e){return e.pathname}function ut(e){let t=(0,q.c)(13),{ariaLabel:n,icon:r,label:i,children:a}=e,o=`${n}: ${i}`,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,J.jsx)(y,{tone:`picker`}),t[0]=s):s=t[0];let l;t[1]===i?l=t[2]:(l=(0,J.jsx)(`span`,{className:`min-w-0 truncate`,children:i}),t[1]=i,t[2]=l);let u;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,J.jsx)(C,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-muted-foreground`}),t[3]=u):u=t[3];let d;t[4]!==r||t[5]!==o||t[6]!==l?(d=(0,J.jsxs)(k,{"aria-label":o,render:s,className:`min-w-0 max-w-72`,children:[r,l,u]}),t[4]=r,t[5]=o,t[6]=l,t[7]=d):d=t[7];let f;t[8]===a?f=t[9]:(f=(0,J.jsx)(v,{align:`start`,children:a}),t[8]=a,t[9]=f);let p;return t[10]!==d||t[11]!==f?(p=(0,J.jsxs)(c,{children:[d,f]}),t[10]=d,t[11]=f,t[12]=p):p=t[12],p}function dt(e){let t=(0,q.c)(31),{value:r,groups:i,environments:a,onChange:o,singleEnvironment:c}=e,l;if(t[0]!==a||t[1]!==i||t[2]!==r){let e=Ye(r,i,a);l=Ze(r,e.kind===`checkout`?e.environmentId:null),t[0]=a,t[1]=i,t[2]=r,t[3]=l}else l=t[3];let u=l,d,f,p,h;if(t[4]!==u||t[5]!==a||t[6]!==c){let e;t[11]===u?e=t[12]:(e=e=>e.environmentId===u,t[11]=u,t[12]=e);let n=a.find(e);d=ut,f=`Environment scope`,p=n?(0,J.jsx)(G,{"aria-hidden":!0,kind:F(n.serverConfig),className:`size-3.5 shrink-0`}):null,h=n?Xe(n,a):u===`all`?c?`No environments`:`All environments`:`Unavailable environment`,t[4]=u,t[5]=a,t[6]=c,t[7]=d,t[8]=f,t[9]=p,t[10]=h}else d=t[7],f=t[8],p=t[9],h=t[10];let g;t[13]!==o||t[14]!==r?(g=e=>{typeof e==`string`&&o($e(r,e))},t[13]=o,t[14]=r,t[15]=g):g=t[15];let _;t[16]===c?_=t[17]:(_=c?null:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(n,{value:`all`,closeOnClick:!0,children:(0,J.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,J.jsx)(s,{"aria-hidden":!0,className:`size-3.5`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:`All environments`}),(0,J.jsx)(x,{})]})}),(0,J.jsx)(ne,{})]}),t[16]=c,t[17]=_);let v;t[18]===a?v=t[19]:(v=a.map(e=>(0,J.jsx)(n,{value:e.environmentId,closeOnClick:!0,children:(0,J.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,J.jsx)(G,{"aria-hidden":!0,kind:F(e.serverConfig),className:`size-3.5`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:Xe(e,a)}),e.connection.phase===`connected`?null:(0,J.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:`Offline`}),(0,J.jsx)(x,{})]})},e.environmentId)),t[18]=a,t[19]=v);let y;t[20]!==u||t[21]!==g||t[22]!==_||t[23]!==v?(y=(0,J.jsxs)(m,{value:u,onValueChange:g,children:[_,v]}),t[20]=u,t[21]=g,t[22]=_,t[23]=v,t[24]=y):y=t[24];let b;return t[25]!==d||t[26]!==f||t[27]!==p||t[28]!==h||t[29]!==y?(b=(0,J.jsx)(d,{ariaLabel:f,icon:p,label:h,children:y}),t[25]=d,t[26]=f,t[27]=p,t[28]=h,t[29]=y,t[30]=b):b=t[30],b}function ft(e){let t=(0,q.c)(24),{value:r,groups:i,onChange:a}=e,o;if(t[0]!==i||t[1]!==r){let e;t[3]===r?e=t[4]:(e=e=>e.projectKey===r.project,t[3]=r,t[4]=e),o=i.find(e),t[0]=i,t[1]=r,t[2]=o}else o=t[2];let s=o,c;t[5]===s?c=t[6]:(c=s?(0,J.jsx)(Ee,{project:s,className:`size-3.5 shrink-0`}):null,t[5]=s,t[6]=c);let l=s?.displayName??(r.project?`Unavailable project`:`All projects`),u;t[7]===r?u=t[8]:(u=Qe(r),t[7]=r,t[8]=u);let d;t[9]!==a||t[10]!==r?(d=e=>{typeof e==`string`&&a(et(r,e))},t[9]=a,t[10]=r,t[11]=d):d=t[11];let f,p;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,J.jsx)(n,{value:`all`,closeOnClick:!0,children:(0,J.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:`All projects`}),(0,J.jsx)(x,{})]})}),p=(0,J.jsx)(ne,{}),t[12]=f,t[13]=p):(f=t[12],p=t[13]);let h;t[14]===i?h=t[15]:(h=i.map(pt),t[14]=i,t[15]=h);let g;t[16]!==u||t[17]!==d||t[18]!==h?(g=(0,J.jsxs)(m,{value:u,onValueChange:d,children:[f,p,h]}),t[16]=u,t[17]=d,t[18]=h,t[19]=g):g=t[19];let _;return t[20]!==c||t[21]!==l||t[22]!==g?(_=(0,J.jsx)(ut,{ariaLabel:`Project scope`,icon:c,label:l,children:g}),t[20]=c,t[21]=l,t[22]=g,t[23]=_):_=t[23],_}function pt(e){return(0,J.jsx)(n,{value:e.projectKey,closeOnClick:!0,children:(0,J.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,J.jsx)(Ee,{project:e,className:`size-3.5`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.displayName}),(0,J.jsx)(x,{})]})},e.projectKey)}function mt(e){let t=(0,q.c)(6),{target:n}=$(),r=R(),i=n?.settings??b;de(n?.environmentId??null,n?.settings??null);let a;t[0]!==r||t[1]!==i?(a=ue(i,r),t[0]=r,t[1]=i,t[2]=a):a=t[2];let o=a,s;return t[3]!==e||t[4]!==o?(s=e?e(o):o,t[3]=e,t[4]=o,t[5]=s):s=t[5],s}function ht(e){let t=(0,q.c)(3),{targets:n}=$(),r;return t[0]!==e||t[1]!==n?(r=Re(n,e),t[0]=e,t[1]=n,t[2]=r):r=t[2],r}function gt(e){let t=(0,q.c)(3),{targets:n}=$(),r;return t[0]!==e||t[1]!==n?(r=ze(n,e),t[0]=e,t[1]=n,t[2]=r):r=t[2],r}function _t(){let e=(0,q.c)(3),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={reportFailure:!1},e[0]=t):t=e[0];let n=_e(pe.updateSettings,t),r;return e[1]===n?r=e[2]:(r=e=>{if(e.unavailableReason){ae.add({type:`warning`,title:`Setting not saved`,description:e.unavailableReason});return}qe(e,async e=>{let t=o(e.input.patch).find(t=>!he(e.environmentId,t));return t?ee(S(new E({requiredScope:t,message:`This connection lacks permission to change these settings.`}))):n(e)},ce).then(vt)},e[1]=n,e[2]=r),r}function vt(e){let{failedEnvironments:t,savedEnvironments:n,savedEnvironmentCount:r}=e;t.length!==0&&ae.add({type:`error`,title:r>0?`Setting saved on some environments`:`Setting not saved`,description:[...t.map(bt),...r>0?[`Saved on ${n.map(yt).join(`, `)}.`]:[]].join(`
|
|
2
|
-
`)})}function yt(e){let{label:t}=e;return t}function bt(e){let{label:t,message:n}=e;return`Could not save on ${t}: ${n}`}function xt(){let e=(0,q.c)(4),{scope:t,environments:n}=$(),r=_t(),i;return e[0]!==n||e[1]!==r||e[2]!==t?(i=e=>r(Ve(t,n,e)),e[0]=n,e[1]=r,e[2]=t,e[3]=i):i=e[3],i}function St(){let e=(0,q.c)(3),t=ot(),n=_t(),r;return e[0]!==t||e[1]!==n?(r=e=>{t!==null&&n(He(t.scope,t.environments,e))},e[0]=t,e[1]=n,e[2]=r):r=e[2],r}function Ct(){let e=(0,q.c)(3),t=ot(),n=_t(),r;return e[0]!==t||e[1]!==n?(r=(e,r)=>{t!==null&&n(We(t.environments,e,r))},e[0]=t,e[1]=n,e[2]=r):r=e[2],r}function wt(){let e=(0,q.c)(3),{connectedEnvironments:t}=$(),n=ge(t,a),r;return e[0]!==t||e[1]!==n?(r=t.length>0&&t.every(e=>n.has(e.environmentId)),e[0]=t,e[1]=n,e[2]=r):r=e[2],r}p([`auto`,`local`,`worktree`]);function Tt(e){return e!==`local`}var Et=new Set([`local`,`local environment`]);function Dt(e){let t=e?.trim();return t&&t.length>0?t:null}function Ot(e){let t=Dt(e.runtimeLabel),n=Dt(e.savedLabel);return e.isPrimary?[t,n].find(e=>e?!Et.has(e.toLowerCase()):!1)??`This device`:t??n??e.environmentId}function kt(e){return e.canPickEnvironment?!0:e.activeEnvironment!==null&&!e.activeEnvironment.isPrimary}function At(e){return e.hasActiveProject&&(e.isDraftHeroState||e.persistInActiveThreads)&&(e.isGitRepo||e.showEnvironmentIndicator||e.hostsRestingComposerControls)}var jt=16;function Mt(e){return e.compact?e.neededWidth>e.availableWidth-jt:e.neededWidth>e.availableWidth}function Nt(e){return e===`worktree`?`New worktree`:e===`auto`?`Auto`:`Current checkout`}var Pt={recursive:`Recursive`,"top-level":`Top level only`,none:`Skip`};function Ft(e){return e?`Current worktree`:Nt(`local`)}function It(e,t){return e?`Worktree`:t===`worktree`?Nt(`worktree`):`Local checkout`}function Lt(e){let t=null;for(let n of e.threads){if(!n.worktreePath||n.worktreePath===e.currentWorktreePath||(n.archivedAt??null)!==null)continue;let r=Se(n.updatedAt);r!==null&&(t===null||r>t.updatedAt)&&(t={branch:n.branch,worktreePath:n.worktreePath,updatedAt:r})}return t===null?null:{branch:t.branch,worktreePath:t.worktreePath}}function Rt(e){return e.branch?`Previous worktree (${e.branch})`:`Previous worktree`}function zt(e){let{activeWorktreePath:t,hasServerThread:n,draftThreadEnvMode:r,preparingWorktree:i}=e;return n?t||i?`worktree`:`local`:t?`local`:r??`local`}function Bt(e){let{nextWorktreePath:t,currentWorktreePath:n,effectiveEnvMode:r}=e;return t?`worktree`:Tt(r)&&!n?r:`local`}function Vt(e){let{envMode:t,activeWorktreePath:n,activeThreadBranch:r,currentGitBranch:i}=e;return Tt(t)&&!n?r??i:i??r}function Ht(e){let{activeWorktreePath:t,effectiveEnvMode:n,resolvedActiveBranch:r,resolvedActiveBranchIsRemote:i,startFromOrigin:a}=e;return r?Tt(n)&&!t?`From ${a&&i===!1?`origin/${r}`:r}`:r:`Select ref`}function Ut(e){return e.activeThreadBranch===e.resolvedActiveBranch?e.activeThreadBranch:null}function Wt(e){let{effectiveEnvMode:t,activeWorktreePath:n,activeThreadBranch:r,currentGitBranch:i}=e;return t!==`local`||n!==null||!r||!i||r===i?null:{threadBranch:r,currentBranch:i}}function Gt(e){let{activeProjectCwd:t,activeWorktreePath:n,refName:r}=e;if(r.worktreePath)return{checkoutCwd:r.worktreePath,nextWorktreePath:r.worktreePath===t?null:r.worktreePath,reuseExistingWorktree:!0};let i=n!==null&&r.isDefault?null:n;return{checkoutCwd:i??t,nextWorktreePath:i,reuseExistingWorktree:!1}}function Kt(e){let{itemValue:t,normalizedQuery:n,createBranchItemValue:r,checkoutPullRequestItemValue:i}=e;if(n.length===0||r&&t===r||i&&t===i)return!0;let a=t.toLowerCase();if(a.includes(n))return!0;let o=ve(n);return o.length>0&&o!==n&&a.includes(o)}var qt={repo_conventions:`Repository conventions`,conventional_commits:`Conventional Commits`,custom:`Custom instructions`};function Jt(e,t){if(t==null)return e===`pullRequestMergeMethod`?`Last selected`:e===`sidebarAutoSettleAfterDays`?`Never`:e===`defaultModelSelection`?`Automatic`:e===`sourceControlWriterModelSelection`?`Text generation model`:e===`reviewGuideModelSelection`?`Source control writer model`:e===`defaultThreadEnvMode`||e===`worktreeSubmodules`?`Inherit`:`Not set`;if(typeof t==`boolean`)return t?`On`:`Off`;if(typeof t==`number`)return e===`sidebarAutoSettleAfterDays`?`${t} ${t===1?`day`:`days`}`:String(t);if(typeof t==`string`)return e===`defaultThreadEnvMode`&&(t===`auto`||t===`local`||t===`worktree`)?Nt(t):e===`worktreeSubmodules`&&t in Pt?Pt[t]:e===`pullRequestMergeMethod`&&t in ke?ke[t]:t===``?`Empty`:t;if(Array.isArray(t))return`${t.length} ${t.length===1?`item`:`items`}`;if(typeof t==`object`){if(`model`in t&&typeof t.model==`string`)return t.model;if(`mode`in t&&typeof t.mode==`string`)return qt[t.mode]??t.mode}return`Custom`}function Yt(e,t,n){let r=t[n],i=Q(n)?e.sources[n]:`environment`,a=!g(r,b[n]),o=Xt(n),s=[];e.projectId!==null&&Q(n)&&s.push({key:`project`,label:`Project`,value:i===`project`?Jt(n,e.settings[n]):`Inherits`,effective:i===`project`,set:i===`project`}),s.push({key:`environment`,label:e.label,value:a?Jt(n,r):`Inherits`,effective:i===`environment`&&a,set:a}),o&&e.projectId!==null&&s.push({key:`p4.json`,label:`p4.json`,value:i===`p4.json`?Jt(n,e.settings[n]):`Inherits`,effective:i===`p4.json`,set:i===`p4.json`});let c=o?A[n].builtIn:b[n];return s.push({key:`built-in`,label:`Default`,value:Jt(n,c),effective:i===`environment`&&!a,set:!0}),s}function Xt(e){return Object.hasOwn(A,e)}function Zt(e){let t=(0,q.c)(52),{state:n,summary:r,targets:i,environments:a,keys:o,overridingProjects:c,onClearOverrides:l}=e,u;t[0]===c?u=t[1]:(u=c===void 0?[]:c,t[0]=c,t[1]=u);let d=u,f=o[0];if(!f||i.length===0)return null;let p=d.length>0?`${r} · ${d.length} project ${d.length===1?`override`:`overrides`}`:r,m,h,g,_,v,b,x,S;if(t[2]!==a||t[3]!==f||t[4]!==l||t[5]!==p||t[6]!==d||t[7]!==n||t[8]!==i){let e;t[17]!==a||t[18]!==f?(e=e=>{let t=a.find(t=>t.environmentId===e.environmentId);return t?.serverConfig?[{target:e,environment:{...t,serverConfig:t.serverConfig},machine:F(t.serverConfig),layers:Yt(e,t.serverConfig.settings,f)}]:[]},t[17]=a,t[18]=f,t[19]=e):e=t[19];let r=i.flatMap(e);h=Te;let o=`${p}. Show where this value comes from`,c;t[20]===o?c=t[21]:(c=(0,J.jsx)(we,{render:(0,J.jsx)(j,{size:`icon-micro`,variant:`ghost-muted`,"aria-label":o})}),t[20]=o,t[21]=c);let u=n===`overridden`&&`text-primary`,C=n===`mixed`&&`text-warning`,w;t[22]!==u||t[23]!==C?(w=M(`size-3`,u,C),t[22]=u,t[23]=C,t[24]=w):w=t[24];let T;t[25]===w?T=t[26]:(T=(0,J.jsx)(s,{className:w}),t[25]=w,t[26]=T);let E;t[27]!==c||t[28]!==T?(E=(0,J.jsx)(ye,{render:c,children:T}),t[27]=c,t[28]=T,t[29]=E):E=t[29];let D;t[30]===p?D=t[31]:(D=(0,J.jsx)(be,{side:`top`,children:p}),t[30]=p,t[31]=D),t[32]!==E||t[33]!==D?(S=(0,J.jsxs)(xe,{children:[E,D]}),t[32]=E,t[33]=D,t[34]=S):S=t[34],m=Ce,v=`start`,b=`md`,x=`none`,g=`divide-y divide-border/60`;let O;t[35]!==f||t[36]!==l||t[37]!==d?(O=e=>{let{target:t,environment:n,machine:r,layers:i}=e;return(0,J.jsxs)(`section`,{className:`px-3 py-2.5`,children:[(0,J.jsxs)(`h4`,{className:`flex items-center gap-1.5 pb-1.5 text-xs font-medium text-muted-foreground`,children:[(0,J.jsx)(G,{"aria-hidden":!0,kind:r,className:`size-3.5 shrink-0`}),(0,J.jsx)(`span`,{className:`min-w-0 truncate`,children:t.label})]}),(0,J.jsx)(`ol`,{role:`list`,className:`text-sm`,children:i.map(Qt)}),(()=>{let e=d.filter(e=>e.environmentId===t.environmentId);if(e.length===0)return null;let r=n.serverConfig.settings.projectSettingsOverrides;return(0,J.jsxs)(`div`,{className:`mt-2 border-t border-border/60 pt-2`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-2 text-xs text-muted-foreground`,children:[(0,J.jsx)(`span`,{children:`Overridden by`}),l?(0,J.jsxs)(y,{onClick:()=>l(e),children:[`Reset `,e.length===1?`it`:`all`]}):null]}),(0,J.jsx)(`ul`,{role:`list`,className:`mt-0.5 text-sm`,children:e.map(e=>(0,J.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 px-2 py-1`,children:[(0,J.jsx)(y,{className:`min-w-0 justify-start`,onClick:e.open,children:(0,J.jsx)(`span`,{className:`truncate`,children:e.label})}),(0,J.jsx)(`span`,{className:`max-w-32 truncate text-muted-foreground tabular-nums`,children:Q(f)?Jt(f,r[e.projectId]?.[f]):null})]},e.projectId))})]})})()]},`${t.environmentId}:${t.projectId??``}`)},t[35]=f,t[36]=l,t[37]=d,t[38]=O):O=t[38],_=r.map(O),t[2]=a,t[3]=f,t[4]=l,t[5]=p,t[6]=d,t[7]=n,t[8]=i,t[9]=m,t[10]=h,t[11]=g,t[12]=_,t[13]=v,t[14]=b,t[15]=x,t[16]=S}else m=t[9],h=t[10],g=t[11],_=t[12],v=t[13],b=t[14],x=t[15],S=t[16];let C;t[39]!==g||t[40]!==_?(C=(0,J.jsx)(`div`,{className:g,children:_}),t[39]=g,t[40]=_,t[41]=C):C=t[41];let w;t[42]!==m||t[43]!==v||t[44]!==b||t[45]!==x||t[46]!==C?(w=(0,J.jsx)(m,{align:v,width:b,padding:x,children:C}),t[42]=m,t[43]=v,t[44]=b,t[45]=x,t[46]=C,t[47]=w):w=t[47];let T;return t[48]!==h||t[49]!==w||t[50]!==S?(T=(0,J.jsxs)(h,{children:[S,w]}),t[48]=h,t[49]=w,t[50]=S,t[51]=T):T=t[51],T}function Qt(e){return(0,J.jsxs)(`li`,{className:M(`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 rounded-md px-2 py-1`,e.effective&&`bg-foreground/[0.06]`),children:[(0,J.jsx)(`span`,{className:M(`min-w-0 truncate`,e.effective?`font-medium text-foreground`:`text-muted-foreground`),children:e.key===`environment`?`Environment`:e.label}),(0,J.jsxs)(`span`,{className:M(`flex items-center gap-1.5 tabular-nums`,e.effective?`text-foreground`:e.set?`text-muted-foreground`:`text-muted-foreground/60`),children:[(0,J.jsx)(`span`,{className:`max-w-32 truncate`,children:e.value}),e.effective?(0,J.jsx)(w,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-primary`}):(0,J.jsx)(`span`,{"aria-hidden":!0,className:`size-3.5 shrink-0`})]})]},e.key)}var $t=[],en=()=>void 0,tn=(0,X.createContext)({targetId:null,highlightTarget:!0,onTargetHandled:en});function nn(e){let t=(0,q.c)(7),{targetId:n,highlightTarget:r,onTargetHandled:i,children:a}=e,o=r===void 0||r,s=i===void 0?en:i,c;t[0]!==o||t[1]!==s||t[2]!==n?(c={targetId:n,highlightTarget:o,onTargetHandled:s},t[0]=o,t[1]=s,t[2]=n,t[3]=c):c=t[3];let l=c,u;return t[4]!==a||t[5]!==l?(u=(0,J.jsx)(tn,{value:l,children:a}),t[4]=a,t[5]=l,t[6]=u):u=t[6],u}function rn(e,t=!0){let n=window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;((typeof e.querySelector==`function`?e.querySelector(`:scope > [data-settings-scroll-target]`):null)??(e.tagName===`SECTION`&&e.firstElementChild?e.firstElementChild:e)).scrollIntoView({behavior:n?`auto`:`smooth`,block:`center`}),e.focus({preventScroll:!0}),e.classList.remove(`settings-search-target-pulse`),t&&!n&&(e.offsetWidth,e.classList.add(`settings-search-target-pulse`),e.addEventListener(`blur`,()=>e.classList.remove(`settings-search-target-pulse`),{once:!0}))}function an(){return(0,X.useContext)(tn).targetId}function on(e){let t=(0,q.c)(4),{targetId:n,highlightTarget:r,onTargetHandled:i}=(0,X.useContext)(tn),a=e!==void 0&&e===n,o;return t[0]!==r||t[1]!==a||t[2]!==i?(o=e=>{e&&a&&(rn(e,r),i())},t[0]=r,t[1]=a,t[2]=i,t[3]=o):o=t[3],o}function sn(e){let t=(0,q.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({children:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i=on(r.id),a=r.id?-1:r.tabIndex,o;return t[3]!==n||t[4]!==a||t[5]!==r||t[6]!==i?(o=(0,J.jsx)(`div`,{...r,ref:i,tabIndex:a,children:n}),t[3]=n,t[4]=a,t[5]=r,t[6]=i,t[7]=o):o=t[7],o}var cn=`min-w-0 max-w-none shrink-0`;function ln(e){let t=(0,q.c)(3),{children:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(ye,{delay:200,render:(0,J.jsx)(j,{size:`icon-micro`,variant:`ghost-muted`,"aria-label":`Background policy details`,children:(0,J.jsx)(l,{className:`size-3.5`})})}),t[0]=r):r=t[0];let i;return t[1]===n?i=t[2]:(i=(0,J.jsxs)(xe,{children:[r,(0,J.jsx)(be,{side:`top`,children:n})]}),t[1]=n,t[2]=i),i}function un(e){let t=(0,q.c)(3),n=e===void 0?1e3:e,[r,i]=(0,X.useState)(dn),a,o;return t[0]===n?(a=t[1],o=t[2]):(a=()=>{let e=setInterval(()=>i(Date.now()),n);return()=>clearInterval(e)},o=[n],t[0]=n,t[1]=a,t[2]=o),(0,X.useEffect)(a,o),r}function dn(){return Date.now()}function fn(e){let t=(0,q.c)(30),n,r,i,a,o,s,c,l,u;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6],c=t[7],l=t[8],u=t[9]):({title:l,hideTitle:s,icon:a,titleAction:u,headerAction:i,variant:c,children:n,className:r,...o}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s,t[7]=c,t[8]=l,t[9]=u);let d=s!==void 0&&s,f=c===void 0?`grouped`:c,p=on(o.id),m=o.id?-1:o.tabIndex,h=!d&&`space-y-2.5`,g;t[10]!==r||t[11]!==h?(g=M(h,r),t[10]=r,t[11]=h,t[12]=g):g=t[12];let _;t[13]!==i||t[14]!==d||t[15]!==a||t[16]!==l||t[17]!==u?(_=d?(0,J.jsx)(`h2`,{className:`sr-only`,children:l}):(0,J.jsxs)(`div`,{"data-settings-scroll-target":!0,className:`flex min-h-7 items-start justify-between gap-4 px-3 sm:px-4`,children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,children:[(0,J.jsxs)(`h2`,{className:`flex min-h-7 items-center gap-2 text-sm font-normal text-foreground/70`,children:[a,l]}),u]}),(0,J.jsx)(`div`,{className:`flex min-h-7 min-w-7 items-center justify-end`,children:i})]}),t[13]=i,t[14]=d,t[15]=a,t[16]=l,t[17]=u,t[18]=_):_=t[18];let v=d?``:void 0,y;t[19]!==n||t[20]!==v||t[21]!==f?(y=(0,J.jsx)(Y,{"data-settings-scroll-target":v,variant:f,children:n}),t[19]=n,t[20]=v,t[21]=f,t[22]=y):y=t[22];let b;return t[23]!==o||t[24]!==m||t[25]!==g||t[26]!==_||t[27]!==y||t[28]!==p?(b=(0,J.jsxs)(`section`,{...o,ref:p,tabIndex:m,className:g,children:[_,y]}),t[23]=o,t[24]=m,t[25]=g,t[26]=_,t[27]=y,t[28]=p,t[29]=b):b=t[29],b}function pn(e){let t=(0,q.c)(8),{children:n,message:r}=e;if(r===void 0)return n;let i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,J.jsx)(l,{className:`mt-0.5 size-3.5 shrink-0 text-warning`}),t[0]=i):i=t[0];let a;t[1]===r?a=t[2]:(a=(0,J.jsxs)(`div`,{className:`flex items-start gap-2 px-3 py-2 text-xs leading-relaxed text-muted-foreground sm:px-4`,children:[i,(0,J.jsx)(`p`,{children:r})]}),t[1]=r,t[2]=a);let o;t[3]===n?o=t[4]:(o=(0,J.jsx)(`div`,{className:`[&_h3]:opacity-64 [&_p]:opacity-64`,children:n}),t[3]=n,t[4]=o);let s;return t[5]!==a||t[6]!==o?(s=(0,J.jsxs)(`div`,{className:`border-border/60 bg-muted/20 py-1.5`,children:[a,o]}),t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function mn(e){let t=(0,q.c)(118),n,r,i,o,s,c,l,u,d,f,p,m;t[0]===e?(n=t[1],r=t[2],i=t[3],o=t[4],s=t[5],c=t[6],l=t[7],u=t[8],d=t[9],f=t[10],p=t[11],m=t[12]):({title:m,description:o,status:d,resetAction:l,onResetOverride:c,control:i,serverScoped:f,settingKeys:p,mixed:s,children:n,className:r,...u}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=o,t[5]=s,t[6]=c,t[7]=l,t[8]=u,t[9]=d,t[10]=f,t[11]=p,t[12]=m);let h=f!==void 0&&f,_=p===void 0?$t:p,v=on(u.id),y=le(),x=ot(),S=se(),C=oe(),w=me(S,a),T;t[13]===x?.connectedEnvironments?T=t[14]:(T=x?.connectedEnvironments??[],t[13]=x?.connectedEnvironments,t[14]=T);let E=ge(T,a),D;t[15]!==x||t[16]!==w||t[17]!==E?(D=x?x.connectedEnvironments.length>0&&x.connectedEnvironments.every(e=>E.has(e.environmentId)):w,t[15]=x,t[16]=w,t[17]=E,t[18]=D):D=t[18];let O=D,ee=St(),te=Ct(),k=x!==null&&(x.scope.kind===`project`||x.scope.kind===`checkout`),A,j,N,ne;if(t[19]!==x||t[20]!==k||t[21]!==s||t[22]!==h||t[23]!==_){N=_.filter(Q),A=k&&h&&N.length===0;let e;t[28]!==x||t[29]!==s||t[30]!==_?(e=s??(x!==null&&Re(x.targets,_)),t[28]=x,t[29]=s,t[30]=_,t[31]=e):e=t[31],j=e,ne=x&&k?ze(x.targets,N):null,t[19]=x,t[20]=k,t[21]=s,t[22]=h,t[23]=_,t[24]=A,t[25]=j,t[26]=N,t[27]=ne}else A=t[24],j=t[25],N=t[26],ne=t[27];let P=ne,F=h&&(!O||!(x?x.connectedEnvironments.length>0:y)),re;t[32]!==x||t[33]!==P?(re=P===`environment`&&x?.scope.environmentIds.length===1?x.environments.find(e=>e.environmentId===x.scope.environmentIds[0])?.label??`environment`:`environment`,t[32]=x,t[33]=P,t[34]=re):re=t[34];let ie=re;x?.connectedEnvironments;let I;t[35]===x?.connectedEnvironments?I=t[36]:(I=new Map((x?.connectedEnvironments??[]).flatMap(gn)),t[35]=x?.connectedEnvironments,t[36]=I);let ae=I,L;bb0:{if(x===null||k||N.length===0){let e;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[37]=e):e=t[37],L=e;break bb0}let e;if(t[38]!==x||t[39]!==N){let n;t[41]===x?n=t[42]:(n=e=>{let t=x.groups.find(t=>t.memberProjects.some(t=>t.environmentId===e.environmentId&&t.id===e.projectId));return t?[{...e,label:t.displayName,open:()=>x.selectScope({project:t.projectKey,...x.search.machine?{machine:x.search.machine}:{}})}]:[]},t[41]=x,t[42]=n),e=Ue(x.connectedEnvironments,N).flatMap(n),t[38]=x,t[39]=N,t[40]=e}else e=t[40];L=e}let ce=L,ue;t[43]!==ee||t[44]!==k||t[45]!==c||t[46]!==l||t[47]!==N||t[48]!==P||t[49]!==m||t[50]!==F?(ue=F?null:k&&N.length>0?P===`project`||P===`mixed`?(0,J.jsx)(_n,{label:typeof m==`string`?m:`override`,tooltip:`Reset to inherited value`,onClick:()=>c?c():ee(N)}):null:l,t[43]=ee,t[44]=k,t[45]=c,t[46]=l,t[47]=N,t[48]=P,t[49]=m,t[50]=F,t[51]=ue):ue=t[51];let de=ue,R;t[52]===i?R=t[53]:(R=e=>(0,J.jsxs)(xe,{children:[(0,J.jsx)(ye,{render:(0,J.jsx)(`span`,{tabIndex:0,className:`flex w-full items-center rounded-md outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring @min-[32rem]/settings-row:w-auto`}),children:(0,J.jsx)(`div`,{inert:!0,className:`flex w-full items-center gap-2 opacity-50 @min-[32rem]/settings-row:w-auto`,children:i})}),(0,J.jsx)(be,{side:`top`,children:e})]}),t[52]=i,t[53]=R);let pe=R,he;t[54]!==O||t[55]!==x||t[56]!==i||t[57]!==A||t[58]!==pe||t[59]!==C?.label||t[60]!==F||t[61]!==E?(he=F&&i?pe(O?x?`Reconnect the selected environment to change this setting.`:fe:`This connection lacks permission to change settings on ${x?x.connectedEnvironments.filter(e=>!E.has(e.environmentId)).map(hn).join(`, `)||`the selected environment`:C?.label??`the primary environment`}.`):A&&i?pe(`Environment-wide setting. Select an environment to change it.`):i,t[54]=O,t[55]=x,t[56]=i,t[57]=A,t[58]=pe,t[59]=C?.label,t[60]=F,t[61]=E,t[62]=he):he=t[62];let _e=he,ve;t[63]!==x||t[64]!==ae||t[65]!==_?(ve=x!==null&&_.some(e=>x.targets.some(t=>{let n=ae.get(t.environmentId);return n!==void 0&&!g(n[e],b[e])})),t[63]=x,t[64]=ae,t[65]=_,t[66]=ve):ve=t[66];let Se=ve,Ce;t[67]!==Se||t[68]!==ie||t[69]!==j||t[70]!==N||t[71]!==P?(Ce=j?{state:`mixed`,summary:`Mixed across selected environments`}:P===`project`?{state:`overridden`,summary:`Overridden for this project`}:P===`p4.json`?{state:`inherited`,summary:`Inherited from the repository's p4.json`}:P===`environment`&&N.length>0?{state:`inherited`,summary:`Inherited from ${ie}`}:Se?{state:`environment`,summary:`Set on the environment`}:{state:`default`,summary:`Built-in default`},t[67]=Se,t[68]=ie,t[69]=j,t[70]=N,t[71]=P,t[72]=Ce):Ce=t[72];let we=Ce,Te;t[73]!==O||t[74]!==te||t[75]!==x||t[76]!==we||t[77]!==ce||t[78]!==N||t[79]!==h||t[80]!==_?(Te=x&&h&&_.length>0?(0,J.jsx)(Zt,{state:we.state,summary:we.summary,targets:x.targets,environments:x.connectedEnvironments,keys:_,overridingProjects:ce,...O?{onClearOverrides:e=>te(e,N)}:{}}):null,t[73]=O,t[74]=te,t[75]=x,t[76]=we,t[77]=ce,t[78]=N,t[79]=h,t[80]=_,t[81]=Te):Te=t[81];let Ee=Te,De=d,Oe=u.id?-1:u.tabIndex,ke=n?`pt-3 pb-1`:`py-3`,z;t[82]!==r||t[83]!==ke?(z=M(`@container/settings-row rounded-xl px-3 sm:px-4 aria-disabled:opacity-64 aria-disabled:[&_*]:text-muted-foreground`,ke,r),t[82]=r,t[83]=ke,t[84]=z):z=t[84];let B;t[85]===m?B=t[86]:(B=(0,J.jsx)(`h3`,{className:`text-sm font-medium text-foreground`,children:m}),t[85]=m,t[86]=B);let V;t[87]===Ee?V=t[88]:(V=Ee?(0,J.jsx)(`span`,{className:`inline-flex h-5 w-5 shrink-0 items-center justify-center`,children:Ee}):null,t[87]=Ee,t[88]=V);let H;t[89]===de?H=t[90]:(H=(0,J.jsx)(`span`,{className:`inline-flex h-5 w-5 shrink-0 items-center justify-center`,children:de}),t[89]=de,t[90]=H);let U;t[91]!==B||t[92]!==V||t[93]!==H?(U=(0,J.jsxs)(`div`,{className:`flex min-h-5 items-center gap-1.5`,children:[B,V,H]}),t[91]=B,t[92]=V,t[93]=H,t[94]=U):U=t[94];let W;t[95]===o?W=t[96]:(W=o?(0,J.jsx)(`p`,{className:`max-w-xl text-xs leading-normal text-muted-foreground/80`,children:o}):null,t[95]=o,t[96]=W);let G;t[97]===De?G=t[98]:(G=De?(0,J.jsx)(`div`,{className:`pt-0.5 text-xs text-muted-foreground`,children:De}):null,t[97]=De,t[98]=G);let K;t[99]!==U||t[100]!==W||t[101]!==G?(K=(0,J.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[U,W,G]}),t[99]=U,t[100]=W,t[101]=G,t[102]=K):K=t[102];let Y;t[103]===_e?Y=t[104]:(Y=_e?(0,J.jsx)(`div`,{className:`flex w-full min-w-0 shrink-0 items-center gap-2 @min-[32rem]/settings-row:w-auto @min-[32rem]/settings-row:justify-end`,children:_e}):null,t[103]=_e,t[104]=Y);let X;t[105]!==K||t[106]!==Y?(X=(0,J.jsxs)(`div`,{className:`flex flex-col gap-3 @min-[32rem]/settings-row:grid @min-[32rem]/settings-row:grid-cols-[minmax(0,1fr)_minmax(10rem,auto)] @min-[32rem]/settings-row:items-center @min-[32rem]/settings-row:gap-8`,children:[K,Y]}),t[105]=K,t[106]=Y,t[107]=X):X=t[107];let Z;t[108]!==n||t[109]!==F?(Z=F&&n?(0,J.jsx)(`div`,{inert:!0,className:`opacity-50`,children:n}):n,t[108]=n,t[109]=F,t[110]=Z):Z=t[110];let Ae;return t[111]!==u||t[112]!==Oe||t[113]!==z||t[114]!==X||t[115]!==Z||t[116]!==v?(Ae=(0,J.jsxs)(`div`,{...u,ref:v,tabIndex:Oe,"data-slot":`settings-row`,className:z,children:[X,Z]}),t[111]=u,t[112]=Oe,t[113]=z,t[114]=X,t[115]=Z,t[116]=v,t[117]=Ae):Ae=t[117],Ae}function hn(e){return e.label}function gn(e){return e.serverConfig?[[e.environmentId,e.serverConfig.settings]]:[]}function _n(e){let t=(0,q.c)(12),{label:n,tooltip:r,disabled:i,onClick:a}=e,o=r===void 0?`Reset to default`:r,s=i!==void 0&&i,c=`Reset ${n} to default`,l;t[0]===a?l=t[1]:(l=e=>{e.stopPropagation(),a()},t[0]=a,t[1]=l);let u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,J.jsx)(f,{className:`size-3`}),t[2]=u):u=t[2];let d;t[3]!==s||t[4]!==c||t[5]!==l?(d=(0,J.jsx)(ye,{render:(0,J.jsx)(j,{size:`icon-micro`,variant:`ghost-muted`,"aria-label":c,disabled:s,onClick:l,children:u})}),t[3]=s,t[4]=c,t[5]=l,t[6]=d):d=t[6];let p;t[7]===o?p=t[8]:(p=(0,J.jsx)(be,{side:`top`,children:o}),t[7]=o,t[8]=p);let m;return t[9]!==d||t[10]!==p?(m=(0,J.jsxs)(xe,{children:[d,p]}),t[9]=d,t[10]=p,t[11]=m):m=t[11],m}function vn(e){let t=(0,q.c)(18),{children:n,className:r,width:i}=e,a=i===void 0?`readable`:i,o=ie(),s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s={select:bn},t[0]=s):s=t[0];let c=I(s),l;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(l={select:yn},t[1]=l):l=t[1];let u=I(l),d;t[2]===c?d=t[3]:(d=c.replace(/^#/,``)||null,t[2]=c,t[3]=d);let f=d,p;t[4]===o?p=t[5]:(p=()=>{o({hash:``,replace:!0,resetScroll:!1,hashScrollIntoView:!1,state:{settingsTargetHighlight:!0}})},t[4]=o,t[5]=p);let m=p,h;t[6]===r?h=t[7]:(h=M(`gap-8`,r),t[6]=r,t[7]=h);let g;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,J.jsx)(ct,{}),t[8]=g):g=t[8];let _;t[9]!==n||t[10]!==h||t[11]!==a?(_=(0,J.jsx)(`div`,{className:`topbar-scroll-fade scrollbar-gutter-both flex-1 overflow-y-auto`,"data-settings-page-scroll":!0,children:(0,J.jsxs)(K,{width:a,className:h,children:[g,n]})}),t[9]=n,t[10]=h,t[11]=a,t[12]=_):_=t[12];let v;return t[13]!==m||t[14]!==u||t[15]!==_||t[16]!==f?(v=(0,J.jsx)(nn,{targetId:f,highlightTarget:u,onTargetHandled:m,children:_}),t[13]=m,t[14]=u,t[15]=_,t[16]=f,t[17]=v):v=t[17],v}function yn(e){return e.state.settingsTargetHighlight!==!1}function bn(e){return e.hash}function xn(e,{highlight:t=!0}={}){let n=document.getElementById(e);return n?(rn(n,t),!0):!1}export{kt as A,$ as B,Ot as C,Lt as D,Rt as E,ht as F,Z as H,wt as I,xt as L,St as M,gt as N,Kt as O,mt as P,st as R,Nt as S,It as T,Y as U,Je as V,Ht as _,mn as a,Bt as b,pn as c,on as d,an as f,Vt as g,Ut as h,vn as i,Tt as j,At as k,xn as l,Gt as m,cn as n,sn as o,Pt as p,_n as r,fn as s,ln as t,un as u,Mt as v,Wt as w,zt as x,Ft as y,at as z};
|
|
3
|
-
//# sourceMappingURL=settingsLayout-BxEP0uF3.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-oBChb5qS.js";import"./chunk-DU6HZSFF-cx0FIxcU.js";import"./chunk-75Z2AOVW-D8m_ip6d.js";import"./chunk-PWAF6VOD-DB5x5BPu.js";import"./chunk-GMAD6QVW-Dh_22wYw.js";import"./chunk-P2QGCYS3-CtwwhFBb.js";import"./chunk-4HAMMTFA-DTdSC_bt.js";import"./chunk-GVQU2GXP-Cl592Z8q.js";import"./chunk-OSK3NFVY-DfOyV50p.js";import"./chunk-F27PBJKO-CLaT5xm4.js";import"./chunk-XXDRQBXY-BvKO0v-W.js";import"./chunk-POPQ4Y6H-Bn_dv1-6.js";import"./chunk-L3NEJ4N5-C3zHyNed.js";import{i as t,n,r,t as i}from"./chunk-IMKFNOWR-b4olkqo9.js";import"./mermaid.core-BhvlRFAw.js";var a={parser:n,get db(){return new i(2)},renderer:r,styles:t,init:e(e=>{e.state||={},e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
|
|
2
|
-
//# sourceMappingURL=stateDiagram-v2-MP3YSRHH-DKxchkZ_.js.map
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-oBChb5qS.js";import"./chunk-DU6HZSFF-cx0FIxcU.js";import"./chunk-75Z2AOVW-D8m_ip6d.js";import"./chunk-PWAF6VOD-DB5x5BPu.js";import"./chunk-GMAD6QVW-Dh_22wYw.js";import"./chunk-P2QGCYS3-CtwwhFBb.js";import"./chunk-4HAMMTFA-DTdSC_bt.js";import"./chunk-GVQU2GXP-Cl592Z8q.js";import"./chunk-OSK3NFVY-DfOyV50p.js";import"./chunk-F27PBJKO-CLaT5xm4.js";import"./chunk-XXDRQBXY-BvKO0v-W.js";import"./chunk-POPQ4Y6H-Bn_dv1-6.js";import"./chunk-L3NEJ4N5-C3zHyNed.js";import{r as t,t as n}from"./chunk-SHT3W25Y-4SWCrL8G.js";import"./mermaid.core-BhvlRFAw.js";var r=n({defaultLayout:`swimlane`,styles:e(e=>`${t(e)}
|
|
2
|
-
.swimlane.cluster rect {
|
|
3
|
-
stroke: ${e.clusterBorder} !important;
|
|
4
|
-
}
|
|
5
|
-
[data-look="neo"].cluster rect {
|
|
6
|
-
filter: none;
|
|
7
|
-
}
|
|
8
|
-
`,`getStyles`)});export{r as diagram};
|
|
9
|
-
//# sourceMappingURL=swimlanesDiagram-VR7AAH4N-DcmT28cJ.js.map
|