@p4code/cli 0.8.35 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/dist/bin.mjs +1 -1
  2. package/dist/{binCli-26z5sNBT.mjs → binCli-k72_SR2Z.mjs} +2556 -2301
  3. package/dist/client/.vite/manifest.json +2004 -2044
  4. package/dist/client/assets/{2NI2N5EU-BLnY4aCF.js → 2NI2N5EU-DPAxyySd.js} +2 -2
  5. package/dist/client/assets/{4UO7MD6I-BApNVkfU.js → 4UO7MD6I-C0aflwpw.js} +2 -2
  6. package/dist/client/assets/{5B3SVYGG-Y7V7NdZO.js → 5B3SVYGG-hhn6T1ru.js} +2 -2
  7. package/dist/client/assets/{5GK6JWQ2-BSIhKcw-.js → 5GK6JWQ2-BQ0OdoZ6.js} +2 -2
  8. package/dist/client/assets/{5N7A7DKN-CNUCnWLs.js → 5N7A7DKN-BR8rdHwZ.js} +2 -2
  9. package/dist/client/assets/{5OC2THR4-Bne-pf_A.js → 5OC2THR4-DVDBlcjJ.js} +2 -2
  10. package/dist/client/assets/{5S6HY5KT-7d4UMONz.js → 5S6HY5KT-CjtOXys8.js} +2 -2
  11. package/dist/client/assets/{6IMQ5BUJ-BWW19n-D.js → 6IMQ5BUJ-Bpy1Geo9.js} +2 -2
  12. package/dist/client/assets/{6OLKWJ4F-CxTUuvA6.js → 6OLKWJ4F-D2naWV4i.js} +2 -2
  13. package/dist/client/assets/{74OO7NKP-DByVTRKE.js → 74OO7NKP-CceNos-7.js} +2 -2
  14. package/dist/client/assets/{75O6YZUN-CZanyedf.js → 75O6YZUN-CnXm_L8w.js} +2 -2
  15. package/dist/client/assets/{77XECAW3-TL2w7pHK.js → 77XECAW3-ECBcD47O.js} +2 -2
  16. package/dist/client/assets/{ABYRPUBD-CJboH7Uz.js → ABYRPUBD-B4F4wZam.js} +2 -2
  17. package/dist/client/assets/AlertDialogRoot-D5eL1YFA.js +2 -0
  18. package/dist/client/assets/{AnimatedHeight-OxEbW01v.js → AnimatedHeight-BZhIfVtA.js} +2 -2
  19. package/dist/client/assets/AuthSurfaceShell-DR9yRrzS.js +2 -0
  20. package/dist/client/assets/{BB2UYUI2-BxW-R2h1.js → BB2UYUI2-Cae7rC8c.js} +2 -2
  21. package/dist/client/assets/{BUM34MOA-ngG-irUy.js → BUM34MOA-DBDboDOb.js} +2 -2
  22. package/dist/client/assets/{CEQABKGZ-C-u-W0bS.js → CEQABKGZ-C6UutqUy.js} +2 -2
  23. package/dist/client/assets/{CXAC5362-DfFRkI7L.js → CXAC5362-BnZlf1Fg.js} +2 -2
  24. package/dist/client/assets/{ChatGptUsageButton-C3KgGt4z.js → ChatGptUsageButton-3K5PpaVk.js} +2 -2
  25. package/dist/client/assets/{ChatMarkdown-9gWM0ED9.js → ChatMarkdown-EK5C8Dje.js} +7 -7
  26. package/dist/client/assets/{CheckboxIndicator-DbU3csPQ.js → CheckboxIndicator-DZ8vBLEv.js} +2 -2
  27. package/dist/client/assets/{ClippedText-CS_BYNco.js → ClippedText-Dswe5Mb4.js} +2 -2
  28. package/dist/client/assets/CodexSetupSection.logic-BepCZ25p.js +2 -0
  29. package/dist/client/assets/{ComboboxClear-Bn_kslrf.js → ComboboxClear-By718biy.js} +2 -2
  30. package/dist/client/assets/{ComboboxGroupLabel-fL8lMA25.js → ComboboxGroupLabel-DjWIIS5_.js} +2 -2
  31. package/dist/client/assets/{CommandBlock-DcQXu_lq.js → CommandBlock-C967hvdK.js} +2 -2
  32. package/dist/client/assets/{ComposerPromptEditor-DQ9wFfKn.js → ComposerPromptEditor-kPs79YCA.js} +10 -10
  33. package/dist/client/assets/{CompositeRoot-BuwzXGHT.js → CompositeRoot-BFPe8O0M.js} +2 -2
  34. package/dist/client/assets/{ConnectionDiagnosisDetails-DGbJY7Hw.js → ConnectionDiagnosisDetails-B5VXf5lv.js} +2 -2
  35. package/dist/client/assets/{ConnectionStatusDot-CixsTBXI.js → ConnectionStatusDot-wmgCjAfF.js} +2 -2
  36. package/dist/client/assets/{DRLTVNUE-Cbb71R0Y.js → DRLTVNUE-Du8kYl_L.js} +2 -2
  37. package/dist/client/assets/{DYY6UVD2-BZn5fuF5.js → DYY6UVD2-DxjEuWNy.js} +2 -2
  38. package/dist/client/assets/{DevicePanel-JP__PY1s.js → DevicePanel-YEBH-Vqd.js} +2 -2
  39. package/dist/client/assets/DeviceSetup-CAlj40rJ.js +2 -0
  40. package/dist/client/assets/{DialogTitle-B_9LEmy3.js → DialogTitle-DNp9zThp.js} +2 -2
  41. package/dist/client/assets/{DiffCommentAnnotation-WMKzOwCh.js → DiffCommentAnnotation-BOk2MTlv.js} +2 -2
  42. package/dist/client/assets/{DiffFileTree-BSbsOOmA.js → DiffFileTree-Dg3cvfi5.js} +2 -2
  43. package/dist/client/assets/{DiffPanel-BWFuiHvv.js → DiffPanel-fTHMPAQJ.js} +2 -2
  44. package/dist/client/assets/{DiffWorkerPoolProvider-BBk0lIX3.js → DiffWorkerPoolProvider-CqmToECA.js} +3 -3
  45. package/dist/client/assets/{EmbeddedDesign-D5YUndkh.js → EmbeddedDesign-BXKBSCcw.js} +2 -2
  46. package/dist/client/assets/{EnvironmentMachineIcon-Dpgx67FY.js → EnvironmentMachineIcon-DBWK6C8T.js} +2 -2
  47. package/dist/client/assets/{ExpandableText-Cpm1gOKG.js → ExpandableText-B9cfY7p2.js} +2 -2
  48. package/dist/client/assets/{FNOVOB4O-BkEIrB0k.js → FNOVOB4O-BeMBYVRF.js} +2 -2
  49. package/dist/client/assets/{FieldControl-BHe6unoZ.js → FieldControl-BOrs67_f.js} +2 -2
  50. package/dist/client/assets/{FileDiff-C1vAOUga.js → FileDiff-DW1zPAn5.js} +2 -2
  51. package/dist/client/assets/{FilePreviewPanel-CbpNevZP.js → FilePreviewPanel-CTTCKfik.js} +10 -10
  52. package/dist/client/assets/{FoldedSettingsSection-DySTg20x.js → FoldedSettingsSection-ClboCRR4.js} +2 -2
  53. package/dist/client/assets/{FormContext-CmvUzTS-.js → FormContext-DcLeIpxJ.js} +2 -2
  54. package/dist/client/assets/{HDGCDEEZ-CN-ckGDk.js → HDGCDEEZ-DtsLNbcM.js} +2 -2
  55. package/dist/client/assets/{HSJLKHB7-B0BvmnZE.js → HSJLKHB7-Cj1_K-Mg.js} +2 -2
  56. package/dist/client/assets/{Icons-B4l3TqYa.js → Icons-B1qw9fnR.js} +2 -2
  57. package/dist/client/assets/Input-DQflEYBs.js +2 -0
  58. package/dist/client/assets/JZOYTAAL-BrzaFmLe.js +1 -0
  59. package/dist/client/assets/{K3MD6TGW-IS0rWO1U.js → K3MD6TGW-SNOidZ8r.js} +2 -2
  60. package/dist/client/assets/{K7RP3OMA-DcqjCOJO.js → K7RP3OMA-CpajkG5B.js} +2 -2
  61. package/dist/client/assets/{KeybindingsSettings.logic-mF9mJWrc.js → KeybindingsSettings.logic-BA5WG7V2.js} +2 -2
  62. package/dist/client/assets/{LHDIQX7Q-CLMgIt4Y.js → LHDIQX7Q-CAyO0Nv9.js} +2 -2
  63. package/dist/client/assets/{LUXOKEGN-B1dkmN_M.js → LUXOKEGN-Dp60gO-M.js} +2 -2
  64. package/dist/client/assets/{MathTypeset-qeRVy_bc.js → MathTypeset-DG9QDH3a.js} +2 -2
  65. package/dist/client/assets/{N3JZAHOW-C6sq5aqx.js → N3JZAHOW-CPZZhC9o.js} +2 -2
  66. package/dist/client/assets/{NUIALGQ3-BG7xJ_qe.js → NUIALGQ3-Bapg3pv1.js} +2 -2
  67. package/dist/client/assets/{NoProjectsHero-B0KzU91d.js → NoProjectsHero-DunzHVd0.js} +2 -2
  68. package/dist/client/assets/{O65XPQGZ-BEfVfDlS.js → O65XPQGZ-BmLVfB2-.js} +2 -2
  69. package/dist/client/assets/{O7XIQ6OM-BUiRjV87.js → O7XIQ6OM-BzZlSmaP.js} +2 -2
  70. package/dist/client/assets/{OFQON5FD-DTgVPbd-.js → OFQON5FD-Ciy1Dfj8.js} +2 -2
  71. package/dist/client/assets/{P4ConnectAccountPages-C4KYM5XU.js → P4ConnectAccountPages-DO-fCpTN.js} +2 -2
  72. package/dist/client/assets/{P4ConnectSidebarSignIn-DNPUNJl_.js → P4ConnectSidebarSignIn-7hkM7xr7.js} +2 -2
  73. package/dist/client/assets/{PJQHF43J-QRnhQpHu.js → PJQHF43J-CTTmTIhc.js} +2 -2
  74. package/dist/client/assets/{PanelLayoutControls-4VFKEoHg.js → PanelLayoutControls-clP6N7xc.js} +7 -7
  75. package/dist/client/assets/{PierreEntryIcon-DeI-j_7w.js → PierreEntryIcon-wm-IkF2y.js} +2 -2
  76. package/dist/client/assets/{PopoverHandle-DMB4QSp6.js → PopoverHandle-CqjlXffy.js} +2 -2
  77. package/dist/client/assets/PreviewPanel-fTwWXayK.js +2 -0
  78. package/dist/client/assets/{ProjectDefaultsSettings-BF-iyQ8T.js → ProjectDefaultsSettings-DABlQCRQ.js} +2 -2
  79. package/dist/client/assets/{ProjectFavicon-_6hkSNzm.js → ProjectFavicon-zExdjKgc.js} +3 -3
  80. package/dist/client/assets/{ProjectIconPickerDialog-DeL1rZxy.js → ProjectIconPickerDialog-D4Br81iW.js} +2 -2
  81. package/dist/client/assets/{ProjectMonogram-Cn4l-YGU.js → ProjectMonogram-Ba70a8_s.js} +2 -2
  82. package/dist/client/assets/{ProviderAuthTerminal-qGeMxZDy.js → ProviderAuthTerminal-Gf_5AaPE.js} +2 -2
  83. package/dist/client/assets/{ProviderModelPicker-DJQYH_Pp.js → ProviderModelPicker-DrfK42fH.js} +2 -2
  84. package/dist/client/assets/{ProviderSettingsForm-BSVuPnR0.js → ProviderSettingsForm-CXVYrIzw.js} +2 -2
  85. package/dist/client/assets/{PullRequestCodeTab-0OaJE6XS.js → PullRequestCodeTab-DaXxo4Bs.js} +3 -3
  86. package/dist/client/assets/{RHNBAITX-ChqB7inB.js → RHNBAITX-DKMeuR6R.js} +2 -2
  87. package/dist/client/assets/{ReadOnlySourcePreview-B08Wms4m.js → ReadOnlySourcePreview-DPJWK3HJ.js} +2 -2
  88. package/dist/client/assets/{RenderErrorBoundary-BsOuLEci.js → RenderErrorBoundary-BI5KBtsb.js} +2 -2
  89. package/dist/client/assets/{SLD4V6NK-IkYRGtTH.js → SLD4V6NK-CR4aIcpx.js} +2 -2
  90. package/dist/client/assets/ScheduledTasksSettings-CTHyd4UX.js +4 -0
  91. package/dist/client/assets/{ScopedSwitch-Bhp6-hCj.js → ScopedSwitch-De6GoQiO.js} +2 -2
  92. package/dist/client/assets/{ScrollAreaCorner-BPMuWLbs.js → ScrollAreaCorner-DF4GCx0d.js} +2 -2
  93. package/dist/client/assets/{SecretInput-RlOzrLKL.js → SecretInput-Dg6ZsU9p.js} +2 -2
  94. package/dist/client/assets/{SelectScrollUpArrow-6kh66YCd.js → SelectScrollUpArrow-DeRXucOo.js} +2 -2
  95. package/dist/client/assets/{SettingsPanels-BfBUSBAG.js → SettingsPanels-D6e2byZQ.js} +8 -8
  96. package/dist/client/assets/{SettingsPanels.logic-BsFZYDgm.js → SettingsPanels.logic-BSXSdFru.js} +2 -2
  97. package/dist/client/assets/{SettingsScopeNotice-H7UzC9bb.js → SettingsScopeNotice-MbxDDMZ9.js} +2 -2
  98. package/dist/client/assets/SidebarStageBackdrop-B0F--sat.js +2 -0
  99. package/dist/client/assets/{T3PCR2KE-BxaunvVy.js → T3PCR2KE-C0_7R2Oa.js} +2 -2
  100. package/dist/client/assets/{TKWO2OVW-DFURsfqA.js → TKWO2OVW-DqJmzuhq.js} +2 -2
  101. package/dist/client/assets/{TSHNXIZL-CIukdyLy.js → TSHNXIZL-CmCl4WMk.js} +2 -2
  102. package/dist/client/assets/ThemeEditorPanel-IhSXPcO9.js +5 -0
  103. package/dist/client/assets/{ThreadTerminalDrawer-BQKZCFAC.js → ThreadTerminalDrawer-DnOstFPr.js} +4 -4
  104. package/dist/client/assets/TooltipViewport-DJXNIjFt.js +2 -0
  105. package/dist/client/assets/{UQJE5E4I-CfqCotH2.js → UQJE5E4I-U1f_Qxq0.js} +2 -2
  106. package/dist/client/assets/{USNYFO5S-CctAAheU.js → USNYFO5S-BFU1s0-x.js} +2 -2
  107. package/dist/client/assets/{Virtualizer-CImHNxBq.js → Virtualizer-CI2uidEs.js} +2 -2
  108. package/dist/client/assets/{WEVWDWVA-DS9YO9IT.js → WEVWDWVA-DVuH1I8D.js} +2 -2
  109. package/dist/client/assets/{WorkspaceBreadcrumb-BW_omYU1.js → WorkspaceBreadcrumb-Dr-p0Dtn.js} +2 -2
  110. package/dist/client/assets/{WorkspacePageContainer-BS8FWt_4.js → WorkspacePageContainer-MDWEFwmu.js} +2 -2
  111. package/dist/client/assets/{WorkspacePageHeader-CE_94tTR.js → WorkspacePageHeader-CNcKDaqG.js} +2 -2
  112. package/dist/client/assets/{X5RFHQXM-B0KbwoE1.js → X5RFHQXM-DhiPjZ2I.js} +2 -2
  113. package/dist/client/assets/{X62E3GBT-wpz8X9Yh.js → X62E3GBT-BoEmDIYA.js} +2 -2
  114. package/dist/client/assets/{XBNEOJTC-DFRK5c6Y.js → XBNEOJTC-ACchb7zJ.js} +2 -2
  115. package/dist/client/assets/{YHV2MVVZ-1NnqTTZ2.js → YHV2MVVZ-WIW1NclZ.js} +2 -2
  116. package/dist/client/assets/{YURCZMG2-rnzWY5ij.js → YURCZMG2-D8PyipKA.js} +2 -2
  117. package/dist/client/assets/{YVG2LODB-Dxuuk2M-.js → YVG2LODB-BQvBC9bF.js} +2 -2
  118. package/dist/client/assets/_chat-DDGjgFMR.js +45 -0
  119. package/dist/client/assets/{_chat.design-z2pu_9A5.js → _chat.design-DjIqnlVZ.js} +2 -2
  120. package/dist/client/assets/{_chat.index-D8X9o5jY.js → _chat.index-Dku1iZH1.js} +2 -2
  121. package/dist/client/assets/{_chat.new-CGJw8cpo.js → _chat.new-8-cjg5K7.js} +3 -3
  122. package/dist/client/assets/_chat.pull-requests-DVfSewSZ.js +2 -0
  123. package/dist/client/assets/{alert-DO06etEs.js → alert-DpVw79VA.js} +2 -2
  124. package/dist/client/assets/{assetUrls-CmOUMX2M.js → assetUrls-BOJMUK_1.js} +2 -2
  125. package/dist/client/assets/{assets-aBpLf8r4.js → assets-6zZLBDZw.js} +2 -2
  126. package/dist/client/assets/{browserHistoryStore-tYgeZygn.js → browserHistoryStore-TJXTYA-V.js} +2 -2
  127. package/dist/client/assets/{browserLinkTarget-CQFfJKWJ.js → browserLinkTarget-DRbX4L_9.js} +2 -2
  128. package/dist/client/assets/{checkbox-BEQFb7GO.js → checkbox-4yBjrqWQ.js} +2 -2
  129. package/dist/client/assets/{color-picker-CXfnfmuH.js → color-picker-B6JEgpDa.js} +2 -2
  130. package/dist/client/assets/{combobox--XoXA5uu.js → combobox-CKWbcPIR.js} +2 -2
  131. package/dist/client/assets/{command-E2aLhsct.js → command-D8XZec1r.js} +2 -2
  132. package/dist/client/assets/{connect-CU9dNvTt.js → connect-Dp9BB7ev.js} +2 -2
  133. package/dist/client/assets/{connect-agent-Byc9PCdW.js → connect-agent-DkbIqI-8.js} +2 -2
  134. package/dist/client/assets/{design-CoGbXd61.js → design-Dn5DzqF2.js} +2 -2
  135. package/dist/client/assets/{device-DmH6IHQ4.js → device-dylO5xoO.js} +2 -2
  136. package/dist/client/assets/{dialog-CBBxT1gk.js → dialog-_vbB7RKH.js} +2 -2
  137. package/dist/client/assets/{diffRendering-BOVFJuWd.js → diffRendering-MXukhqw1.js} +2 -2
  138. package/dist/client/assets/{dist-B2P3f-0Q.js → dist-ceTe_mn7.js} +3 -3
  139. package/dist/client/assets/{draft-input-CSOOVntS.js → draft-input-C-u_3cDw.js} +2 -2
  140. package/dist/client/assets/{duoViewer-BhHYrurM.js → duoViewer-C0aL6Kyr.js} +2 -2
  141. package/dist/client/assets/{dynamic-BhzrutAo.js → dynamic-DTzzXo3L.js} +2 -2
  142. package/dist/client/assets/{embeddedScripts-43_R83vp.js → embeddedScripts-DcWCyBxX.js} +2 -2
  143. package/dist/client/assets/{empty-FOL5U4KY.js → empty-BlKDGTzb.js} +2 -2
  144. package/dist/client/assets/{entities-Bqo0n1Pb.js → entities-eRiwvW2F.js} +2 -2
  145. package/dist/client/assets/{fileLinks-D4GSqJYj.js → fileLinks-CYejoXPq.js} +2 -2
  146. package/dist/client/assets/{fileTreeExpansion-BBT5F8P1.js → fileTreeExpansion-wG1G7D6R.js} +2 -2
  147. package/dist/client/assets/{getDiffFileInput-CGw09SPI.js → getDiffFileInput-CzeweGHs.js} +2 -2
  148. package/dist/client/assets/{guideRunStore-DvIkVECt.js → guideRunStore-DAYN2Zd7.js} +2 -2
  149. package/dist/client/assets/{htmlRender-CmEeFzCo.js → htmlRender-C3rZ0xgC.js} +2 -2
  150. package/dist/client/assets/{index-B1djVqM4.js → index-DA9og9YW.js} +3 -3
  151. package/dist/client/assets/{input-ekYqAkUx.js → input-DXGWoa4O.js} +2 -2
  152. package/dist/client/assets/{input-group-C3pxk97H.js → input-group-De0xZXfc.js} +2 -2
  153. package/dist/client/assets/{kbd-3FPzNikV.js → kbd-WWNLIkTn.js} +2 -2
  154. package/dist/client/assets/{keybindings-B3oDRRkK.js → keybindings-DAHl8jIl.js} +2 -2
  155. package/dist/client/assets/{lazy-DyNR0b0B.js → lazy-Ccs3klKO.js} +4 -4
  156. package/dist/client/assets/{lazyRouteComponent-BPxq_G_s.js → lazyRouteComponent-BU0ER5FO.js} +2 -2
  157. package/dist/client/assets/{link-B3B5a5Ju.js → link-C3TbL1do.js} +2 -2
  158. package/dist/client/assets/{linkedPrompt-BsCPMHxQ.js → linkedPrompt-BJh0Yqud.js} +2 -2
  159. package/dist/client/assets/main-DjrB0l0D.css +2 -0
  160. package/dist/client/assets/main-DleJeMZO.js +37 -0
  161. package/dist/client/assets/{mediaReference-Bb8H-qbI.js → mediaReference-BbSbhpkR.js} +2 -2
  162. package/dist/client/assets/{mediaSource-C2MsZgy8.js → mediaSource-B_75uvyp.js} +2 -2
  163. package/dist/client/assets/{number-field-SoHEiP55.js → number-field-qEfih146.js} +2 -2
  164. package/dist/client/assets/{observeResize-3Vj9DYOV.js → observeResize-DzSkewug.js} +2 -2
  165. package/dist/client/assets/{onboarding-CPgiVEVK.js → onboarding-1Zg3fM0A.js} +2 -2
  166. package/dist/client/assets/{openFileInPreview-BBWCOLh_.js → openFileInPreview-CiPuDrfB.js} +2 -2
  167. package/dist/client/assets/{p4ProjectFile-qmvlbzKv.js → p4ProjectFile-BVKW5TIA.js} +2 -2
  168. package/dist/client/assets/{pair-CZnRGdd8.js → pair-DUv1mY4i.js} +2 -2
  169. package/dist/client/assets/{pendingSendStore-L5KquCDf.js → pendingSendStore-BFVsboDn.js} +2 -2
  170. package/dist/client/assets/{phoneViewer-D-8v-sMf.js → phoneViewer-CStYy_tX.js} +2 -2
  171. package/dist/client/assets/{pierre-icons-jwqMPUxD.js → pierre-icons-D3vWvKqU.js} +2 -2
  172. package/dist/client/assets/{popover-OfG3wVsl.js → popover-CogH2zM4.js} +2 -2
  173. package/dist/client/assets/{preview-DGdQ5Ycc.js → preview-O1ZL8Awg.js} +2 -2
  174. package/dist/client/assets/{preview-BYnEURcB.js → preview-ipLyyv_l.js} +2 -2
  175. package/dist/client/assets/{previewMiniPlayerStore-Dlbj5KrZ.js → previewMiniPlayerStore-C5z1mN8S.js} +2 -2
  176. package/dist/client/assets/{primary-B47ivN3o.js → primary-CMBPxKMH.js} +2 -2
  177. package/dist/client/assets/{primaryCloudLinkState-CreqR0gU.js → primaryCloudLinkState-CER468V5.js} +2 -2
  178. package/dist/client/assets/{projectFilesQueryState-CanWrACx.js → projectFilesQueryState-D4FdR3Xm.js} +2 -2
  179. package/dist/client/assets/{projectScriptEditor-gWuw6vwd.js → projectScriptEditor-4wQTbXvz.js} +2 -2
  180. package/dist/client/assets/{providerSkills-C_Rxqah9.js → providerSkills-D3rxPB_g.js} +2 -2
  181. package/dist/client/assets/{pullRequestDetail.logic-RASi2EgP.js → pullRequestDetail.logic-Bkh57WzV.js} +2 -2
  182. package/dist/client/assets/{pullRequestIcons-ucGaXXG7.js → pullRequestIcons-DPbMXqGp.js} +2 -2
  183. package/dist/client/assets/{pullRequestReviewStore-CEr41DEl.js → pullRequestReviewStore-BAxwf6rl.js} +2 -2
  184. package/dist/client/assets/{pullRequests-Bw3Ui6hK.js → pullRequests-DggtcbhA.js} +2 -2
  185. package/dist/client/assets/{queries-EslKFJTV.js → queries-DJfKGsHe.js} +2 -2
  186. package/dist/client/assets/{query-d1pQlqP0.js → query-B3Zo1YOE.js} +2 -2
  187. package/dist/client/assets/{radio-group-Ciy_K5uE.js → radio-group-l1Zl-3hQ.js} +2 -2
  188. package/dist/client/assets/{renderScheduler-CP-JkmKx.js → renderScheduler-BgGYA97h.js} +2 -2
  189. package/dist/client/assets/{rightPanelStore-D3KOmuPa.js → rightPanelStore-Cv1U3yrU.js} +2 -2
  190. package/dist/client/assets/{runtime-d6B1vJeH.js → runtime-BOlBBevr.js} +3 -3
  191. package/dist/client/assets/{runtime-DR7JxgbQ.js → runtime-CeFhsGnm.js} +3 -3
  192. package/dist/client/assets/{runtimeModeConfig-Rxeb1uGg.js → runtimeModeConfig-BQ0QCQhj.js} +2 -2
  193. package/dist/client/assets/{scheduledTasksSettings.logic-CVIC4Kpr.js → scheduledTasksSettings.logic-BpOBCcOk.js} +2 -2
  194. package/dist/client/assets/{scroll-area-yyfi3ycu.js → scroll-area-CQNIjQ8U.js} +2 -2
  195. package/dist/client/assets/{select-DaYjjw1q.js → select-Cbpdz6n3.js} +2 -2
  196. package/dist/client/assets/{selfImproveFindings-1XIHD-7i.js → selfImproveFindings-CT79AgdK.js} +2 -2
  197. package/dist/client/assets/{server-sXApTCjZ.js → server-DvWrfyUO.js} +2 -2
  198. package/dist/client/assets/{session-C949OsEI.js → session-D3gY-tOR.js} +2 -2
  199. package/dist/client/assets/{session-logic-DkSfwnHl.js → session-logic-OeNFZd_V.js} +3 -3
  200. package/dist/client/assets/{settings-B0O54Q3P.js → settings-C6gUwixG.js} +2 -2
  201. package/dist/client/assets/{settings.appearance-BesXhA1a.js → settings.appearance-BdGq8dkT.js} +2 -2
  202. package/dist/client/assets/settings.archived-DobN7ZtC.js +2 -0
  203. package/dist/client/assets/{settings.computer-use-BeKmLbNe.js → settings.computer-use-DTAvnNqQ.js} +2 -2
  204. package/dist/client/assets/settings.connections-CZD-0BNX.js +2 -0
  205. package/dist/client/assets/settings.data-controls-CTVHY8Rd.js +2 -0
  206. package/dist/client/assets/{settings.decisions-D97jIUyr.js → settings.decisions-D3zMITNw.js} +2 -2
  207. package/dist/client/assets/{settings.designs-B473PRvt.js → settings.designs-DWeI1d2s.js} +2 -2
  208. package/dist/client/assets/{settings.diagnostics-DDOaOIDg.js → settings.diagnostics-CqC6fhz6.js} +2 -2
  209. package/dist/client/assets/{settings.general-qzEOE2zF.js → settings.general-BDEcQVI4.js} +2 -2
  210. package/dist/client/assets/{settings.integrations-D6ctQ9WI.js → settings.integrations-BmqNoylk.js} +2 -2
  211. package/dist/client/assets/{settings.keybindings-BL57H4sD.js → settings.keybindings-Mt7J5TKC.js} +2 -2
  212. package/dist/client/assets/{settings.open-source-licenses-DaS82UhN.js → settings.open-source-licenses-Dvex7Jce.js} +2 -2
  213. package/dist/client/assets/{settings.plugins-DnS3RrT2.js → settings.plugins-BAFed2wY.js} +4 -4
  214. package/dist/client/assets/settings.projects-DhuXD_vx.js +4 -0
  215. package/dist/client/assets/settings.providers-D_-kNRqH.js +3 -0
  216. package/dist/client/assets/{settings.scheduled-tasks-IEAC3STn.js → settings.scheduled-tasks-Z4aprmEO.js} +2 -2
  217. package/dist/client/assets/settings.snap-shot-o0bdbS5t.js +2 -0
  218. package/dist/client/assets/settings.source-control-CwJzBnSu.js +2 -0
  219. package/dist/client/assets/{settings.storage-D4vBYBRP.js → settings.storage-B4ahmlhx.js} +2 -2
  220. package/dist/client/assets/{settingsLayout-CFQx1XDM.js → settingsLayout-DrhqvTJ8.js} +3 -3
  221. package/dist/client/assets/{sidebar-C1E4GqL6.js → sidebar-BhJqncti.js} +2 -2
  222. package/dist/client/assets/{sidebarProjectGrouping-9cUrCOXH.js → sidebarProjectGrouping-DDt6qTcu.js} +2 -2
  223. package/dist/client/assets/{skeleton-BCpBrYxh.js → skeleton-CFtayHTe.js} +2 -2
  224. package/dist/client/assets/{sourceControl-DwJWPP0h.js → sourceControl-Dqo9EYNC.js} +2 -2
  225. package/dist/client/assets/{sourceControlClients-BBJW7ra4.js → sourceControlClients-DGnHi6Rd.js} +2 -2
  226. package/dist/client/assets/{spinner-CSTrcxhP.js → spinner-BZh9P0sD.js} +2 -2
  227. package/dist/client/assets/{terminal-links-D18LpQ1T.js → terminal-links-CFKe0iu0.js} +2 -2
  228. package/dist/client/assets/{terminalSessions-C2NUFncF.js → terminalSessions-BykgTNwT.js} +2 -2
  229. package/dist/client/assets/{textarea-R4UQ47Ns.js → textarea-hXQFbdrS.js} +2 -2
  230. package/dist/client/assets/themePalette-MbAn2gqj.js +5 -0
  231. package/dist/client/assets/{toast-B84QdqqM.js → toast-C61oyZY1.js} +2 -2
  232. package/dist/client/assets/{toggle-BH5BGBcD.js → toggle-B03MQDgB.js} +2 -2
  233. package/dist/client/assets/{toggle-group-Di3SFV73.js → toggle-group-yF5GZ53o.js} +2 -2
  234. package/dist/client/assets/{tooltip-D-GRl-oZ.js → tooltip-ChmjT8Ns.js} +2 -2
  235. package/dist/client/assets/uiStateStore-DL8OsPjd.js +2 -0
  236. package/dist/client/assets/{usage-DUdXloVo.js → usage-DATBL2Du.js} +2 -2
  237. package/dist/client/assets/{usageAccess-DSLF-sRE.js → usageAccess-kgUHYKOw.js} +2 -2
  238. package/dist/client/assets/{usageFormat-Bzyvr9m4.js → usageFormat-D5Mz5ugL.js} +2 -2
  239. package/dist/client/assets/{usageShortcuts-D6nQeRtx.js → usageShortcuts-mAekk3eG.js} +2 -2
  240. package/dist/client/assets/{use-atom-command-DA6OG-Qk.js → use-atom-command-Bt7x9oO0.js} +2 -2
  241. package/dist/client/assets/{useAriaLabelledBy-PLuOxvFb.js → useAriaLabelledBy-DjNn9irU.js} +2 -2
  242. package/dist/client/assets/useHandleNewThread-BOKOo2wA.js +2 -0
  243. package/dist/client/assets/{useLocation-Bqc94klS.js → useLocation-Cwv1HZ3K.js} +2 -2
  244. package/dist/client/assets/{useNavigate-DdjG4MB_.js → useNavigate-Cdrlv-yJ.js} +2 -2
  245. package/dist/client/assets/{useNavigateBack-sP0LsL3p.js → useNavigateBack-CwjQ4iuL.js} +2 -2
  246. package/dist/client/assets/{useP4ConnectAuthPrompt-C9d7n33S.js → useP4ConnectAuthPrompt-D63n-MFC.js} +2 -2
  247. package/dist/client/assets/{useParams-DZQvRQLJ.js → useParams-C5D_t-0u.js} +2 -2
  248. package/dist/client/assets/{usePermissionStatus-BzfAUU9X.js → usePermissionStatus-CKmeNk61.js} +2 -2
  249. package/dist/client/assets/{usePullRequestActions-DIjGLg1E.js → usePullRequestActions-D53oZord.js} +2 -2
  250. package/dist/client/assets/{useRegisterFieldControl-CyBVe0G0.js → useRegisterFieldControl-DUs9w2Me.js} +2 -2
  251. package/dist/client/assets/{useScopedModelAvailability-D4n22Nmm.js → useScopedModelAvailability-CeAUx0qZ.js} +2 -2
  252. package/dist/client/assets/useSettings-VTow9ZEM.js +3 -0
  253. package/dist/client/assets/utils-CBe1bHL7.js +37 -0
  254. package/dist/client/assets/{vcsRefInvalidation-w_CQ3i43.js → vcsRefInvalidation-B2f3qDSR.js} +2 -2
  255. package/dist/client/assets/{welcome-BIKH3rbU.js → welcome-CQgOocvj.js} +2 -2
  256. package/dist/client/index.html +1 -1
  257. package/dist/{renderer-CveKT929.mjs → renderer-BBWgEvuE.mjs} +2 -2
  258. package/dist/{runtime-DGGSjC6Q.mjs → runtime-DNjlpJkJ.mjs} +288 -242
  259. package/package.json +2 -2
  260. package/dist/client/assets/AlertDialogRoot-9jRALQXL.js +0 -2
  261. package/dist/client/assets/AuthSurfaceShell-KQXgPV4i.js +0 -2
  262. package/dist/client/assets/CodexSetupSection.logic-CNbTXxKb.js +0 -2
  263. package/dist/client/assets/DeviceSetup-D8qb_qBj.js +0 -2
  264. package/dist/client/assets/Input-Cv-TKh6s.js +0 -2
  265. package/dist/client/assets/JZOYTAAL-CB_B_Rei.js +0 -1
  266. package/dist/client/assets/PreviewPanel-CO66mekh.js +0 -2
  267. package/dist/client/assets/ScheduledTasksSettings-1UDkELZo.js +0 -4
  268. package/dist/client/assets/ThemeEditorPanel-otrA-nTg.js +0 -5
  269. package/dist/client/assets/TooltipViewport-ZmVCer7P.js +0 -2
  270. package/dist/client/assets/_chat-1QGQLbCc.js +0 -45
  271. package/dist/client/assets/_chat.pull-requests-BfW9qMU1.js +0 -2
  272. package/dist/client/assets/composer-logic-BPTz1APL.js +0 -6
  273. package/dist/client/assets/composerDraftUploads-b_0oxKs9.js +0 -2
  274. package/dist/client/assets/main-BWh6jqG2.js +0 -29
  275. package/dist/client/assets/main-DdVSHl80.css +0 -2
  276. package/dist/client/assets/settings.archived-FtcZf_Ug.js +0 -2
  277. package/dist/client/assets/settings.connections-D1UxckE0.js +0 -2
  278. package/dist/client/assets/settings.data-controls-lPiIwMgc.js +0 -2
  279. package/dist/client/assets/settings.projects-D-ZICXey.js +0 -4
  280. package/dist/client/assets/settings.providers-CFpCmv0o.js +0 -3
  281. package/dist/client/assets/settings.snap-shot-BaOFk9WR.js +0 -2
  282. package/dist/client/assets/settings.source-control-BW16AA5z.js +0 -2
  283. package/dist/client/assets/themePalette-neUNWCzK.js +0 -5
  284. package/dist/client/assets/uiStateStore-xSkh4_PU.js +0 -6
  285. package/dist/client/assets/useHandleNewThread-Dm0SCq59.js +0 -2
  286. package/dist/client/assets/useSettings-CaJMqrvF.js +0 -3
  287. package/dist/client/assets/utils-BoMYW9A3.js +0 -37
@@ -1,3 +1,3 @@
1
- import{$T as e,$h as t,$x as n,AS as r,Au as i,Av as a,Aw as o,Ax as s,Ay as c,BS as l,Bb as u,Bg as d,Bw as f,CC as p,CS as m,Cb as h,Cg as g,Cl as _,Cu as v,Cv as ee,Cw as y,Cy as te,DC as ne,DS as re,Dc as ie,Ds as ae,Dw as oe,Dx as b,ES as se,ET as ce,Eb as le,Es as ue,Ev as de,FS as fe,FT as pe,Fx as x,GC as me,Gw as he,Gx as S,Gy as ge,HC as _e,HS as ve,HT as ye,Hb as be,Hg as xe,Hv as Se,Hy as Ce,Il as we,Is as Te,Iy as Ee,JT as De,Jl as Oe,Jv as ke,Jx as Ae,Kv as je,Kx as Me,LS as Ne,LT as Pe,Lg as Fe,Lv as Ie,MS as Le,Mv as Re,My as ze,NS as Be,Nb as Ve,Nv as He,Nx as Ue,Os as We,Ov as Ge,Ox as Ke,PS as qe,Pb as Je,Px as Ye,Py as Xe,QT as Ze,Qh as Qe,Qv as $e,Qw as et,RT as tt,Rb as nt,Rg as C,Rl as rt,Rv as it,Sb as at,Su as ot,Sv as st,Sw as ct,Sx as lt,TT as ut,Tb as dt,Tg as ft,Tu as pt,Tx as mt,Uc as w,Ug as ht,Uy as gt,VC as _t,Vg as vt,Vl as yt,Vs as bt,Vw as xt,WC as St,WT as Ct,Wg as wt,Wx as Tt,XC as Et,XT as Dt,Xh as Ot,Xx as T,Xy as kt,YC as At,Yh as jt,Yv as Mt,Yw as Nt,Yx as Pt,Yy as Ft,ZC as It,ZT as Lt,Zh as Rt,Zo as zt,_C as Bt,_T as Vt,_u as Ht,_v as Ut,_x as Wt,aC as Gt,aE as E,aS as Kt,as as D,bC as qt,bb as Jt,bu as Yt,bx as Xt,cC as Zt,cE as O,cb as Qt,cg as $t,cs as en,dC as tn,dE as nn,db as rn,dg as an,dx as on,dy as sn,eE as cn,eS as ln,eb as un,eg as dn,ew as fn,fS as pn,fb as mn,fc as hn,fg as gn,gC as _n,gS as vn,gl as yn,gu as bn,h as xn,hC as Sn,hb as Cn,hs as wn,hw as Tn,hx as En,iC as Dn,iE as k,iS as On,ib as A,ig as kn,is as An,iy as jn,jS as Mn,jT as Nn,jb as Pn,jt as Fn,ju as In,jv as Ln,jx as Rn,jy as zn,kE as Bn,kS as Vn,kb as Hn,kw as Un,kx as Wn,ky as Gn,l as Kn,lC as qn,lE as j,lS as M,lT as Jn,lb as Yn,ls as N,lv as Xn,mC as Zn,mg as Qn,mv as $n,mx as er,nE as tr,ng as nr,nw as rr,oC as ir,oE as ar,oS as P,ob as or,ow as sr,oy as cr,pC as lr,pg as ur,ps as F,pv as dr,qC as fr,qT as pr,qs as mr,rC as hr,rS as gr,rs as I,rw as _r,sC as L,sE as vr,sy as yr,tE as R,tS as br,tb as xr,tc as Sr,tg as Cr,ts as wr,tv as Tr,tw as Er,uC as z,uS as Dr,ug as Or,ux as kr,uy as Ar,vC as jr,vv as Mr,vx as Nr,wT as Pr,wb as Fr,ws as Ir,wu as Lr,wx as B,xE as Rr,xS as V,xb as zr,xl as Br,xs as Vr,xu as Hr,xw as Ur,xx as Wr,xy as Gr,yS as H,yT as Kr,yu as qr,zg as Jr,zv as Yr,zy as Xr}from"./utils-BoMYW9A3.js";import{$ as Zr,$t as Qr,A as U,An as $r,At as ei,Bn as ti,Bt as ni,Cn as ri,Ct as ii,D as ai,Dn as oi,Dt as si,E as ci,En as li,F as ui,G as di,Gn as W,Gt as fi,Hn as pi,Ht as mi,I as hi,Jn as gi,Jt as _i,K as vi,Kn as yi,Kt as bi,M as G,Mt as xi,N as K,Nt as Si,P as Ci,Pn as wi,Pt as Ti,Q as Ei,Qt as Di,R as Oi,Rn as ki,S as Ai,Sn as ji,St as Mi,Tn as Ni,Tt as Pi,Un as q,Ut as Fi,V as Ii,Vn as Li,Vt as Ri,W as zi,Wn as Bi,Wt as Vi,X as Hi,Xt as Ui,Y as Wi,Yt as Gi,Z as Ki,Zt as qi,_n as Ji,_t as Yi,an as Xi,bn as Zi,bt as Qi,cn as $i,ct as ea,dn as ta,dt as J,en as na,fn as ra,ft as ia,gn as aa,gt as oa,hn as sa,ht as ca,in as la,j as ua,k as da,kn as fa,kt as pa,ln as ma,lt as ha,m as ga,mt as _a,nn as va,nt as ya,ot as ba,p as xa,pn as Sa,pt as Ca,q as wa,qt as Ta,rn as Ea,rt as Da,sn as Oa,t as ka,tn as Aa,tt as ja,un as Ma,ut as Na,v as Pa,vn as Fa,vt as Ia,w as La,wn as Ra,wt as za,xn as Ba,xt as Va,y as Ha,yn as Ua,yt as Wa,zn as Ga,zt as Ka}from"./runtime-DR7JxgbQ.js";function qa(e){let t=new URL(e);if(t.protocol===`ws:`?t.protocol=`http:`:t.protocol===`wss:`&&(t.protocol=`https:`),t.protocol!==`http:`&&t.protocol!==`https:`)throw Error(`Endpoint must use HTTP or HTTPS. Received ${t.protocol}`);return t.pathname=`/`,t.search=``,t.hash=``,t.toString()}function Ja(e){let t=new URL(qa(e));return t.protocol=t.protocol===`https:`?`wss:`:`ws:`,t.toString()}function Ya(e,t){return[...e].sort(t)}function Xa(e){return/^[a-zA-Z]:([/\\]|$)/.test(e)}function Za(e){return e.startsWith(`\\\\`)}function Qa(e){return/^[\\/]{2}/.test(e)}function $a(e){return Za(e)||Xa(e)}function eo(e){return e===`.`||e===`..`||e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`.\\`)||e.startsWith(`..\\`)}function to(e){return e===`/`||e===`\\`||/^[a-zA-Z]:[/\\]$/.test(e)}function no(e){if(e.length===0||to(e))return e;let t=e.startsWith(`/`)?e.replace(/\/+$/g,``):e.replace(/[\\/]+$/g,``);return t.length===0?e:/^[a-zA-Z]:$/.test(t)?`${t}\\`:t}function ro(e){return no(e.trim())}function io(e){let t=ro(e);return Xa(t)||Za(t)?t.replaceAll(`/`,`\\`).toLowerCase():t}var ao=/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/;function oo(e){let t=e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+/,``).slice(0,64).replace(/-+$/,``);return t.length===0?`project`:ao.test(t)?`${t}-project`:t}var so=/^\/[A-Za-z]:[\\/]/;function co(e){return so.test(e)?e.slice(1):e}function lo(e){let t=e.replace(/[/\\]+$/,``);if(t.length===0)return e;let n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));return n>=0?t.slice(n+1):t}function uo(e,t){if(!t)return null;let n=co(e.replaceAll(`\\`,`/`)),r=co(t.replaceAll(`\\`,`/`)).replace(/\/+$/,``),i=$a(co(t)),a=i?n.toLowerCase():n,o=i?r.toLowerCase():r;if(a.replace(/\/+$/,``)===o)return`.`;if(!a.startsWith(`${o}/`))return null;let s=n.slice(r.length+1),c=0;for(let e of s.split(`/`))if(e===`..`?--c:e.length>0&&e!==`.`&&(c+=1),c<0)return null;return s}function fo(e){return e.startsWith(`/`)||$a(e)}function po(e,t){if(fo(e)||e.startsWith(`~/`)||e.startsWith(`~\\`))return e;let n=t.replace(/[/\\]+$/,``);return $a(t)?`${n}\\${e.replaceAll(`/`,`\\`)}`:`${n}/${e}`}function mo(e){try{return decodeURIComponent(e)}catch{return e}}function ho(e){if(!e)return null;if(e.provider===`azure-devops`){let t=(e.displayName??``).split(`/`).filter(e=>e!==`_git`),n=e.name||t.at(-1);return n?mo(n):null}return e.displayName?e.displayName:e.owner&&e.name?`${e.owner}/${e.name}`:null}function go(e){return e.replace(/^(?:ssh\.dev\.azure\.com|vs-ssh\.visualstudio\.com)\/v3\/([^/]+)\/([^/]+)\/([^/]+)$/u,`dev.azure.com/$1/$2/_git/$3`).replace(/^([^.]+)\.visualstudio\.com\/(?:defaultcollection\/)?([^/]+)\/_git\/([^/]+)$/u,`dev.azure.com/$1/$2/_git/$3`)}function _o(e,t,n){return e===t||e.endsWith(`.${t}`)?!0:n!==void 0&&e.split(`.`).includes(n)}function vo(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`https:`&&t.protocol!==`http:`)return null;let n=t.hostname.toLowerCase();if(n===`git.cafe`||n===`staging.git.cafe`)return yo(n,/^\/([^/]+\/[^/]+)\/pulls\/(\d+)(?:\/|$)/u.exec(t.pathname));if(_o(n,`github.com`,`github`)){let e=/^\/([^/]+\/[^/]+)\/pull\/(\d+)(?:\/|$)/u.exec(t.pathname);if(e)return yo(n,e)}let r=/^\/([^/]+(?:\/[^/]+)+)\/pulls\/(\d+)(?:\/|$)/u.exec(t.pathname);if(r){let e=yo(n,r);return e===null?null:{...e,authority:t.host.toLowerCase()}}let i=/^\/([^/]+(?:\/[^/]+)+)\/-\/merge_requests\/(\d+)(?:\/|$)/u.exec(t.pathname);return i?yo(n,i):_o(n,`bitbucket.org`,`bitbucket`)?yo(n,/^\/([^/]+\/[^/]+)\/pull-requests\/(\d+)(?:\/|$)/u.exec(t.pathname)):_o(n,`dev.azure.com`)||n.endsWith(`.visualstudio.com`)?yo(n,/^\/((?:[^/]+\/)*_git\/[^/]+)\/pullrequest\/(\d+)(?:\/|$)/u.exec(t.pathname)):null}function yo(e,t){let n=t?.[1],r=Number(t?.[2]);return n&&Number.isSafeInteger(r)&&r>0?{host:e,repository:n.toLowerCase(),number:r}:null}function bo(e,t,n){if(e?.provider!==`github`||!Number.isSafeInteger(n)||n<1)return null;let r=t.split(`/`);if(r.length!==2||r.some(e=>e.length===0||e===`.`||e===`..`))return null;let i=null;try{let t=new URL(e.locator.remoteUrl.trim());(t.protocol===`http:`||t.protocol===`https:`)&&(i=t.origin)}catch{}let a=e.canonicalKey.split(`/`)[0];if(i===null&&!a)return null;try{let e=new URL(i??`https://${a}`);return e.pathname=`/${r.join(`/`)}/pull/${n}`,e.toString()}catch{return null}}function xo(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`https:`&&t.protocol!==`http:`||!(t.hostname.toLowerCase()===`github.com`||t.hostname.toLowerCase().endsWith(`.github.com`)||t.hostname.toLowerCase().split(`.`).includes(`github`)))return null;let n=/^\/([^/]+\/[^/]+)\/issues\/(\d+)(?:\/|$)/u.exec(t.pathname);return n?.[1]===void 0||n[2]===void 0?null:(t.pathname=`/${n[1]}/pull/${n[2]}`,t.toString())}function So(e,t){let n=vo(e.url),r=vo(t);return n!==null&&r!==null&&n.host===r.host&&n.repository===r.repository&&n.number===r.number&&n.authority===r.authority}function Co(e){if(vo(e)===null)return null;let t=new URL(e),n=/^(.*?)\/-\/merge_requests\/\d+(?:\/|$)/iu.exec(t.pathname)?.[1]??/^(.*?)(?:\/pulls?\/\d+|\/-\/merge_requests\/\d+|\/pull-requests\/\d+|\/pullrequest\/\d+)(?:\/|$)/iu.exec(t.pathname)?.[1];return n?(t.pathname=n,t.search=``,t.hash=``,t.toString()):null}function wo(e){let t=e.url===void 0?null:vo(e.url),n=go(`${(e.authority??(t?.repository===e.repository.trim().toLowerCase()&&t.number===e.number?t.authority:void 0)??e.host).trim().toLowerCase()}/${e.repository.trim().toLowerCase()}`),r=n.indexOf(`/`);return{host:n.slice(0,r),repository:n.slice(r+1),number:e.number}}function To(e,t){let n=vo(e.url);if(n!==null&&n.number===e.number){let e=go(`${n.host}/${n.repository}`);if(n.authority!==void 0||e.startsWith(`dev.azure.com/`))return wo(n)}let r=t;if(r===void 0)try{r=new URL(e.url).hostname}catch{r=`unknown`}return{host:r.trim().toLowerCase()||`unknown`,repository:e.repository.trim().toLowerCase(),number:e.number}}function Eo(e,t){return Do(e)===Do(t)}function Do(e){let t=wo(e);return`${t.host}/${t.repository}#${t.number}`}function Oo(e){return e.filter(e=>e.source!==`stack-dismissed`)}function ko(e){return e.snapshot===null||e.snapshot.state===`open`}function Ao(e){let t=e.snapshot?.updatedAt??e.linkedAt,n=Date.parse(t);return Number.isNaN(n)?0:n}function jo(e){let t=Oo(e);if(t.length===0)return null;let n=t.filter(ko);if(n.length===1)return{kind:`single`,link:n[0]};let r=No(t);if(n.length>1){let e=r.map(e=>[...e.layers].reverse().filter(ko)).filter(e=>e.length>0).sort((e,t)=>Math.max(...t.map(e=>Date.parse(e.linkedAt)))-Math.max(...e.map(e=>Date.parse(e.linkedAt)))).flat();return{kind:`stack`,open:e,top:e[0]}}return r.length===1?{kind:`single`,link:r[0].layers.at(-1)}:{kind:`single`,link:[...t].sort((e,t)=>Ao(t)-Ao(e))[0]}}function Mo(e){let t=jo(e);return t===null?null:t.kind===`single`?t.link:t.top}function No(e){let t=Oo(e),n=[],r=new Set,i=new Map;for(let e of t){if(e.stack===null)continue;let t=wo(e),n=`${t.host}/${t.repository}#stack:${e.stack.id}`,r=i.get(n)??[];r.push(e),i.set(n,r)}for(let e of i.values()){let t=new Map(e[0].stack.layers.map((e,t)=>[e.number,t]));e.sort((e,n)=>(t.get(e.number)??0)-(t.get(n.number)??0));for(let t of e)r.add(Do(t));n.push({kind:`native`,layers:e})}let a=t.filter(e=>!r.has(Do(e))),o=(e,t)=>{let n=wo(e);return`${n.host}/${n.repository}:${t}`},s=new Map;for(let e of a){if(e.snapshot===null)continue;let t=o(e,e.snapshot.headBranch);s.set(t,s.has(t)?null:e)}let c=new Set;for(let e of a){if(e.snapshot===null)continue;let t=s.get(o(e,e.snapshot.baseBranch));t!=null&&t!==e&&c.add(Do(t))}for(let e of a){if(c.has(Do(e)))continue;let t=[],i=e;for(;i!==void 0&&!r.has(Do(i));)r.add(Do(i)),t.unshift(i),i=i.snapshot===null?void 0:s.get(o(i,i.snapshot.baseBranch))??void 0;t.length>0&&n.push({kind:`derived`,layers:t})}for(let e of a)r.has(Do(e))||n.push({kind:`derived`,layers:[e]});return n}function Po(e){let t=Oo(e??[]);if(t.length===0)return null;let n=t.map(e=>e.snapshot?.state??`open`),r=t.every(e=>e.snapshot?.state===`open`&&e.snapshot.isDraft)?`draft`:n.includes(`open`)?`open`:n.every(e=>e===`merged`)?`merged`:`closed`,i=No(t);return t.length>1&&i.length===1?{kind:`stack`,layers:t.length,state:r}:{kind:`pull-request`,others:t.length-1,state:r}}function Fo(e){let t=e.branchPullRequest,n=t?[`#${t.number}`,`${t.repository}#${t.number}`,t.url]:[];if(e.pullRequests!==void 0&&e.pullRequests.length>0)return n.concat(Oo(e.pullRequests).flatMap(e=>[`#${e.number}`,`${e.repository}#${e.number}`,e.url,e.snapshot?.title??``]));let r=e.linkedPullRequest;return r?n.concat([`#${r.number}`,`${r.repository}#${r.number}`,r.url]):n}function Io(e){if(e.pullRequests!==void 0)return e.pullRequests;let t=e.linkedPullRequest;return t==null?[]:[{...To(t),url:t.url,source:`manual`,linkedAt:`1970-01-01T00:00:00.000Z`,snapshot:null,stack:null}]}function Lo(e,t){return{...e,pullRequests:Io(e).map(e=>Eo(e,t)?t:e)}}var Ro=new Set([`command_execution`,`dynamic_tool`,`subagent`]),zo=new Set([`cancelled`,`completed`,`failed`,`interrupted`,`waiting`]);function Bo(e){return e.some(e=>Vo(e.kind))}function Vo(e){switch(e){case`command`:return!1;case`subagent`:case`monitor`:case`background_task`:return!0}}function Ho(e){return e!=null&&zo.has(e.status)}function Uo(e){return typeof e!=`object`||!e||Array.isArray(e)?!1:Reflect.get(e,`persistent`)===!0}function Wo(e){if(typeof e.title==`string`&&e.title.trim().length>0)return e.title.trim();if(e.type===`command_execution`&&typeof e.input==`string`){let t=e.input.trim();return t.length>0?t:void 0}if(e.type===`dynamic_tool`){let t=Reflect.get(e,`toolName`);if(typeof t==`string`&&t.trim().length>0)return t.trim()}if(e.type===`subagent`&&typeof e.prompt==`string`){let t=e.prompt.trim();return t.length>0?t:void 0}}function Go(e,t){let n=Wo(t),r={taskId:e,...n===void 0?{}:{description:n}};switch(t.type){case`subagent`:return{...r,kind:`subagent`,...t.owningProviderInstanceId===void 0?{}:{providerInstanceId:t.owningProviderInstanceId},...t.childThreadId==null?{}:{childThreadId:t.childThreadId}};case`command_execution`:return{...r,kind:`command`};default:return{...r,kind:`background_task`}}}function Ko(e){let t=e.nativeItemRef?.nativeId;return typeof t==`string`&&t.length>0?t:String(e.id)}function qo(e){let t=new Set((e.runs??[]).filter(e=>e.status===`rolled_back`).map(e=>String(e.id)));return e.turnItems.filter(e=>Ro.has(e.type)&&Lr(e.status)&&!(e.type===`dynamic_tool`&&Uo(e.input))&&(e.runId===void 0||e.runId===null||!t.has(String(e.runId))))}function Jo(e){if(e.hasActiveRun??e.runs?.some(e=>e.status===`preparing`||e.status===`starting`||e.status===`running`)??!1)return[];if(e.latestRun==null)return Yo(e.pullRequests);if(!Ho(e.latestRun))return[];let t=new Map,n=e.activeProviderThreadId===void 0||e.activeProviderThreadId===null?e.providerThreads:e.providerThreads.filter(t=>t.id===e.activeProviderThreadId);for(let e of n)for(let n of e.pendingBackgroundTasks??[]){if(n.taskId.length===0||t.has(n.taskId))continue;let{description:r,...i}=n,a=r?.trim();t.set(n.taskId,{...i,...n.kind===`subagent`?{providerInstanceId:e.providerInstanceId}:{},...a===void 0||a.length===0?{}:{description:a}})}for(let n of qo(e)){let e=Ko(n);t.has(e)||t.set(e,Go(e,n))}for(let n of Yo(e.pullRequests))t.set(n.taskId,n);return Array.from(t.values())}function Yo(e){return(e??[]).flatMap(e=>e.watch===void 0||e.source===`stack-dismissed`?[]:[{taskId:`pull-request-watch:${Do(e)}`,description:`Watching pull request #${e.number}`,kind:`monitor`}])}var Y=n(`EnvironmentCommands.allocateCommandId`)(function*(e){if(e.commandId!==void 0)return e.commandId;let t=yield*gi;return zn.make(yield*t.randomUUIDv4().pipe(Le))}),X=e=>Ki(bn.dispatchCommand,e),Xo=e=>Ki(bn.getThreadProjection,{threadId:e}),Zo=n(`EnvironmentCommands.supportsServerResolvedCommandContext`)(function*(){return(yield*Wi()).environment.capabilities.serverResolvedCommandContext===!0}),Qo=n(`EnvironmentCommands.persistAttachments`)(function*(e,t,n){let r=n.filter(e=>!(`dataUrl`in e)),i=n.filter(e=>`dataUrl`in e);if(i.length===0)return r;let a=yield*Ki(w.assetsPersistChatAttachments,{threadId:e,messageId:t,attachments:i});if(r.length===0)return a.attachments;let o=new Map(i.map((e,t)=>[e,a.attachments[t]]));return n.flatMap(e=>{if(!(`dataUrl`in e))return[e];let t=o.get(e);return t===void 0?[]:[t]})}),$o=n(`EnvironmentCommands.mutateProject`)(function*(e){return yield*Ki(w.projectsMutate,e)}),es=n(`EnvironmentCommands.createProject`)(function*(e){return yield*$o({type:`project.create`,commandId:yield*Y(e),projectId:e.projectId,title:e.title,workspaceRoot:e.workspaceRoot,...e.createWorkspaceRootIfMissing===void 0?{}:{createWorkspaceRootIfMissing:e.createWorkspaceRootIfMissing},...e.defaultModelSelection===void 0?{}:{defaultModelSelection:e.defaultModelSelection},...e.scripts===void 0?{}:{scripts:e.scripts}})}),ts=n(`EnvironmentCommands.updateProject`)(function*(e){return yield*$o({type:`project.update`,commandId:yield*Y(e),projectId:e.projectId,...e.title===void 0?{}:{title:e.title},...e.workspaceRoot===void 0?{}:{workspaceRoot:e.workspaceRoot},...e.defaultModelSelection===void 0?{}:{defaultModelSelection:e.defaultModelSelection},...e.autoPull===void 0?{}:{autoPull:e.autoPull},...e.projectIcon===void 0?{}:{projectIcon:e.projectIcon},...e.faviconPath===void 0?{}:{faviconPath:e.faviconPath},...e.defaultThreadEnvMode===void 0?{}:{defaultThreadEnvMode:e.defaultThreadEnvMode},...e.scripts===void 0?{}:{scripts:e.scripts}})}),ns=n(`EnvironmentCommands.deleteProject`)(function*(e){return yield*$o({type:`project.delete`,commandId:yield*Y(e),projectId:e.projectId,...e.force===void 0?{}:{force:e.force}})}),rs=n(`EnvironmentCommands.createThread`)(function*(e){return yield*X({type:`thread.create`,commandId:yield*Y(e),createdBy:`user`,creationSource:e.creationSource??`web`,threadId:e.threadId,projectId:e.projectId,title:e.title,modelSelection:e.modelSelection,runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,branch:e.branch,worktreePath:e.worktreePath,...e.parentThreadId===void 0?{}:{parentThreadId:e.parentThreadId},...e.sideChat===void 0?{}:{sideChat:e.sideChat}})});function is(e,t){return Y(t).pipe(T(n=>X({type:e,commandId:n,threadId:t.threadId})))}var as=n(`EnvironmentCommands.deleteThread`)(function*(e){return e.expectedEmpty!==!0&&e.expectedSideChat!==!0?yield*is(`thread.delete`,e):yield*X({type:`thread.delete`,commandId:yield*Y(e),threadId:e.threadId,...e.expectedEmpty===!0?{expectedEmpty:!0}:{},...e.expectedSideChat===!0?{expectedSideChat:!0}:{}})}),os=n(`EnvironmentCommands.archiveThread`)(function*(e){return yield*is(`thread.archive`,e)}),ss=n(`EnvironmentCommands.unarchiveThread`)(function*(e){return yield*is(`thread.unarchive`,e)}),cs=n(`EnvironmentCommands.settleThread`)(function*(e){return yield*is(`thread.settle`,e)}),ls=n(`EnvironmentCommands.pinThread`)(function*(e){return yield*X({type:`thread.pin`,commandId:yield*Y(e),threadId:e.threadId,...e.orderKey===void 0?{}:{orderKey:e.orderKey}})}),us=n(`EnvironmentCommands.setThreadAutoSettle`)(function*(e){return yield*X({type:`thread.auto-settle.set`,commandId:yield*Y(e),threadId:e.threadId,enabled:e.enabled})}),ds=n(`EnvironmentCommands.reorderPinnedThread`)(function*(e){return yield*X({type:`thread.pin.reorder`,commandId:yield*Y(e),threadId:e.threadId,orderKey:e.orderKey})}),fs=n(`EnvironmentCommands.reorderActiveThread`)(function*(e){return yield*X({type:`thread.active.reorder`,commandId:yield*Y(e),threadId:e.threadId,orderKey:e.orderKey})}),ps=n(`EnvironmentCommands.unpinThread`)(function*(e){return yield*is(`thread.unpin`,e)}),ms=n(`EnvironmentCommands.unsettleThread`)(function*(e){return yield*X({type:`thread.unsettle`,commandId:yield*Y(e),threadId:e.threadId,reason:e.reason})}),hs=n(`EnvironmentCommands.snoozeThread`)(function*(e){return yield*X({type:`thread.snooze`,commandId:yield*Y(e),threadId:e.threadId,snoozedUntil:e.snoozedUntil})}),gs=n(`EnvironmentCommands.unsnoozeThread`)(function*(e){return yield*X({type:`thread.unsnooze`,commandId:yield*Y(e),threadId:e.threadId,reason:e.reason})}),_s=n(`EnvironmentCommands.visitThread`)(function*(e){return yield*X({type:`thread.visit`,commandId:yield*Y(e),threadId:e.threadId,visitedAt:e.visitedAt})}),vs=n(`EnvironmentCommands.markThreadUnread`)(function*(e){return yield*X({type:`thread.mark-unread`,commandId:yield*Y(e),threadId:e.threadId})}),ys=n(`EnvironmentCommands.updateThreadMetadata`)(function*(e){let t=yield*Y(e),n=null;return(e.projectId!==void 0||e.title!==void 0||e.branch!==void 0||e.worktreePath!==void 0||e.regenerateTitle!==void 0||e.linkedPullRequest!==void 0||e.sideChat!==void 0||e.limitRecovery!==void 0)&&(n=yield*X({type:`thread.metadata.update`,...e.projectId===void 0?{}:{projectId:e.projectId},...e.limitRecovery===void 0?{}:{limitRecovery:e.limitRecovery},commandId:t,threadId:e.threadId,...e.title===void 0?{}:{title:e.title},...e.branch===void 0?{}:{branch:e.branch},...e.worktreePath===void 0?{}:{worktreePath:e.worktreePath},...e.expectedEmpty===!0?{expectedEmpty:!0}:{},...e.regenerateTitle===void 0?{}:{regenerateTitle:e.regenerateTitle},...e.linkedPullRequest===void 0?{}:{linkedPullRequest:e.linkedPullRequest},...e.sideChat===void 0?{}:{sideChat:e.sideChat}})),e.modelSelection!==void 0&&(n=yield*X({type:(yield*Zo())?`thread.model-selection.set`:bt((yield*Xo(e.threadId)).thread.providerInstanceId,e.modelSelection),commandId:n===null?t:zn.make(`${t}:model-selection`),threadId:e.threadId,modelSelection:e.modelSelection})),n??{sequence:0}}),bs=n(`EnvironmentCommands.setThreadRuntimeMode`)(function*(e){return yield*X({type:`thread.runtime-mode.set`,commandId:yield*Y(e),threadId:e.threadId,runtimeMode:e.runtimeMode})}),xs=n(`EnvironmentCommands.setThreadInteractionMode`)(function*(e){return yield*X({type:`thread.interaction-mode.set`,commandId:yield*Y(e),threadId:e.threadId,interactionMode:e.interactionMode})}),Ss=n(`EnvironmentCommands.startThreadTurn`)(function*(e){let t=yield*Y(e),n=yield*Qo(e.threadId,e.message.messageId,e.message.attachments),r=ie(e.message.context,e.message.attachments,n),i=e.bootstrap?.createThread,a=e.bootstrap?.prepareWorktree;if(i!==void 0||a!==void 0){let o=i===void 0?yield*Xo(e.threadId):null,s=i??o.thread,c=a===void 0?i?.worktreePath?{type:`existing_worktree`,worktreePath:i.worktreePath,...i.branch===null?{}:{branch:i.branch}}:{type:`root`,...i?.branch===null||i?.branch===void 0?{}:{branch:i.branch}}:{type:a.auto===!0?`auto`:`worktree`,baseRef:a.baseBranch,...a.branch===void 0?{}:{branch:a.branch},...a.startFromOrigin===void 0?{}:{startFromOrigin:a.startFromOrigin}};return yield*Ki(bn.launchThread,{commandId:t,creationSource:e.creationSource??`web`,threadId:e.threadId,...i===void 0?{reuseExistingThread:!0}:{},projectId:s.projectId,title:e.titleSeed??s.title,generateTitle:e.titleSeed!==void 0,modelSelection:e.modelSelection??s.modelSelection,runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,workspaceStrategy:c,initialMessage:{messageId:e.message.messageId,text:e.message.text,...r?{context:r}:{},attachments:n}})}let o=e.dispatchMode??`auto`;if(o===`start`)return yield*X({type:`message.dispatch`,commandId:t,createdBy:`user`,creationSource:e.creationSource??`web`,threadId:e.threadId,messageId:e.message.messageId,...e.manualContinuationOfRunId===void 0?{}:{manualContinuationOfRunId:e.manualContinuationOfRunId},text:e.message.text,...r?{context:r}:{},attachments:n,...e.modelSelection===void 0?{}:{modelSelection:e.modelSelection},...e.sourceProposedPlan===void 0?{}:{sourcePlanRef:e.sourceProposedPlan},dispatchMode:{type:`start_immediately`}});let s=yield*Zo(),c=s?null:yield*Xo(e.threadId),l=c?.runs.findLast(e=>e.status===`preparing`||e.status===`starting`||e.status===`running`||e.status===`waiting`),u=l===void 0?void 0:c?.providerThreads.find(e=>e.id===l.providerThreadId),d=(u?.providerSessionId===null||u?.providerSessionId===void 0?void 0:c?.providerSessions.find(e=>e.id===u.providerSessionId))?.capabilities.turns,f=s?o===`queue`?{type:`queue_after_active`}:{type:`start_immediately`}:l===void 0?{type:`start_immediately`}:o===`steer`?{type:`steer_active`,targetRunId:l.id}:o===`restart`?{type:`restart_active`,targetRunId:l.id}:o===`queue`?{type:`queue_after_active`}:d?.supportsActiveSteering===!0?{type:`steer_active`,targetRunId:l.id}:d?.supportsQueuedMessages===!0?{type:`queue_after_active`}:d?.supportsSteeringByInterruptRestart===!0?{type:`restart_active`,targetRunId:l.id}:{type:`queue_after_active`},p=e.titleSeed!==void 0&&(s||c?.messages.length===0);return yield*X({type:`message.dispatch`,commandId:t,createdBy:`user`,creationSource:e.creationSource??`web`,threadId:e.threadId,messageId:e.message.messageId,text:e.message.text,...r?{context:r}:{},attachments:n,...p?{titleSeed:e.titleSeed}:{},...e.modelSelection===void 0?{}:{modelSelection:e.modelSelection},...e.sourceProposedPlan===void 0?{}:{sourcePlanRef:e.sourceProposedPlan},...s&&o!==`queue`?{deliveryIntent:o}:{},dispatchMode:f})}),Cs=n(`EnvironmentCommands.interruptThreadTurn`)(function*(e){if(e.subagentId!==void 0){let t=(yield*Xo(e.threadId)).subagents.find(t=>t.id===e.subagentId);return t?.runId==null?{sequence:0}:yield*X({type:`subagent.stop`,commandId:yield*Y(e),threadId:e.threadId,runId:t.runId,subagentId:t.id})}let t=e.runId??e.turnId;if(t===void 0){let n=yield*Xo(e.threadId);if(t=n.runs.findLast(e=>e.status===`preparing`||e.status===`starting`||e.status===`running`||e.status===`waiting`)?.id,t===void 0){let e=n.runs.at(-1);Jo({latestRun:e,providerThreads:n.providerThreads,turnItems:n.turnItems,activeProviderThreadId:n.thread.activeProviderThreadId,runs:n.runs}).length>0&&(t=e?.id)}if(t===void 0){let t={sequence:0};for(let r of Oo(n.thread.pullRequests??[]))r.watch!==void 0&&(t=yield*X({type:`thread.pull-request.watch`,commandId:yield*Y(t.sequence===0?e:{}),threadId:e.threadId,host:r.host,repository:r.repository,number:r.number,watching:!1}));return t}}return t===void 0?{sequence:0}:yield*X({type:`run.interrupt`,commandId:yield*Y(e),threadId:e.threadId,runId:t,holdQueue:!0})}),ws=n(`EnvironmentCommands.respondToThreadApproval`)(function*(e){return yield*X({type:`runtime-request.respond`,commandId:yield*Y(e),threadId:e.threadId,requestId:e.requestId,decision:e.decision})}),Ts=n(`EnvironmentCommands.respondToThreadUserInput`)(function*(e){return yield*X({type:`runtime-request.respond`,commandId:yield*Y(e),threadId:e.threadId,requestId:e.requestId,answers:e.answers,...e.attachmentsByQuestionId===void 0?{}:{attachmentsByQuestionId:e.attachmentsByQuestionId}})}),Es=n(`EnvironmentCommands.dismissThreadUserInput`)(function*(e){return yield*X({type:`thread.user-input.dismiss`,commandId:yield*Y(e),threadId:e.threadId,requestId:e.requestId})}),Ds=n(`EnvironmentCommands.revertThreadCheckpoint`)(function*(e){if(e.checkpointId!==void 0&&e.scopeId!==void 0&&(yield*Zo()))return yield*X({type:`checkpoint.rollback`,...e.restoreFiles===void 0?{}:{restoreFiles:e.restoreFiles},commandId:yield*Y(e),threadId:e.threadId,scopeId:c.make(e.scopeId),checkpointId:Gn.make(e.checkpointId)});let t=yield*Xo(e.threadId),n=t.checkpoints.find(t=>t.id===e.checkpointId&&t.scopeId===e.scopeId)??t.checkpoints.findLast(t=>e.turnCount===0?t.ordinalWithinScope===0&&t.appRunOrdinal===null:t.appRunOrdinal===e.turnCount);if(n===void 0||n.status!==`ready`){let t=e.checkpointId===void 0?`run ordinal ${e.turnCount??`unknown`}`:`checkpoint ${e.checkpointId}`;return yield*new Ht({threadId:e.threadId,target:t})}return yield*X({type:`checkpoint.rollback`,...e.restoreFiles===void 0?{}:{restoreFiles:e.restoreFiles},commandId:yield*Y(e),threadId:e.threadId,scopeId:n.scopeId,checkpointId:n.id})}),Os=n(`EnvironmentCommands.stopThreadSession`)(function*(e){let t=yield*Xo(e.threadId),n=yield*Y(e),r={sequence:0};for(let i of t.providerSessions)r=yield*X({type:`provider-session.detach`,commandId:zn.make(`${n}:detach:${i.id}`),threadId:e.threadId,providerSessionId:i.id,reason:`client-requested`});return r}),ks=n(`EnvironmentCommands.forkThreadFromRun`)(function*(e){return yield*X({type:`thread.fork`,commandId:yield*Y(e),createdBy:`user`,creationSource:e.creationSource??`web`,sourceThreadId:e.sourceThreadId,targetThreadId:e.targetThreadId,sourcePoint:e.runId===void 0?{type:`latest_stable`}:{type:`run`,runId:e.runId},...e.title===void 0?{}:{title:e.title},...e.sideChat===void 0?{}:{sideChat:e.sideChat},...e.runtimeMode===void 0?{}:{runtimeMode:e.runtimeMode}})}),As=n(`EnvironmentCommands.mergeThreadBack`)(function*(e){return yield*X({type:`thread.merge_back`,commandId:yield*Y(e),createdBy:`user`,creationSource:e.creationSource??`web`,sourceThreadId:e.sourceThreadId,targetThreadId:e.targetThreadId,sourcePoint:{type:`run`,runId:e.runId}})}),js=n(`EnvironmentCommands.resumeThreadQueue`)(function*(e){return yield*X({type:`queue.resume`,commandId:yield*Y(e),threadId:e.threadId})}),Ms=n(`EnvironmentCommands.reorderQueuedRun`)(function*(e){return yield*X({type:`queued-run.reorder`,commandId:yield*Y(e),threadId:e.threadId,runId:e.runId,beforeRunId:e.beforeRunId})}),Ns=n(`EnvironmentCommands.promoteQueuedRun`)(function*(e){return yield*X({type:`queued-message.promote-to-steer`,commandId:yield*Y(e),threadId:e.threadId,queuedRunId:e.queuedRunId,targetRunId:e.targetRunId})}),Ps=n(`EnvironmentCommands.cancelQueuedRun`)(function*(e){return yield*X({type:`queued-run.cancel`,commandId:yield*Y(e),threadId:e.threadId,runId:e.runId})}),Fs=n(`EnvironmentCommands.retryWorkspacePreparation`)(function*(e){return yield*X({type:`prepared-run.retry`,commandId:yield*Y(e),threadId:e.threadId,runId:e.runId})}),Is=n(`EnvironmentCommands.editQueuedRun`)(function*(e){let t=e.edit===void 0?void 0:yield*Qo(e.threadId,e.edit.messageId,e.edit.attachments);return yield*X({type:`queued-run.edit`,commandId:yield*Y(e),threadId:e.threadId,runId:e.runId,text:e.text,...t===void 0?{}:{attachments:t},...e.edit?.context&&t?{context:ie(e.edit.context,e.edit.attachments,t)}:{}})}),Ls=n(`EnvironmentCommands.linkThreadPullRequest`)(function*(e){return yield*X({...e,type:`thread.pull-request.link`,commandId:yield*Y(e)})}),Rs=n(`EnvironmentCommands.linkThreadDesign`)(function*(e){return yield*X({...e,type:`thread.design.link`,commandId:yield*Y(e)})}),zs=n(`EnvironmentCommands.unlinkThreadDesign`)(function*(e){return yield*X({...e,type:`thread.design.unlink`,commandId:yield*Y(e)})}),Bs=n(`EnvironmentCommands.watchThreadPullRequest`)(function*(e){return yield*X({...e,type:`thread.pull-request.watch`,commandId:yield*Y(e)})}),Vs=n(`EnvironmentCommands.unlinkThreadPullRequest`)(function*(e){return yield*X({...e,type:`thread.pull-request.unlink`,commandId:yield*Y(e)})}),Hs=new Set([`completed`,`failed`,`cancelled`,`interrupted`]);function Us(e){return Hs.has(e)}function Ws(e){return Lr(e)}function Gs(e){return e.type===`subagent`&&Lr(e.status)}function Ks(e){return e.totalTokens===void 0?null:{totalTokens:e.totalTokens,...e.toolCalls===void 0?{}:{toolUses:e.toolCalls},...e.durationMs===void 0?{}:{durationMs:e.durationMs}}}function qs(e){return e===void 0?null:on(er(e))}function Js(e,t){return t.agents.map(t=>{let n=(t.state===`queued`||t.state===`running`)&&Us(e.status)?e.status:t.state===`queued`?`pending`:t.state,r=n===`failed`,i=qs(t.startedAt),a=Us(n)?t.startedAt!==void 0&&t.durationMs!==void 0?qs(t.startedAt+t.durationMs):e.completedAt:null;return{...e,id:`${e.id}:agent:${t.index}`,kind:`workflow_agent`,title:t.label,model:t.model??null,status:n,activationCount:t.attempt??1,usage:Ks(t),progress:t.prompt??null,result:r?null:t.result??null,error:r?t.result??null:null,parentAgentId:e.id,agentIndex:t.index,phaseIndex:t.phaseIndex??null,phaseTitle:t.phaseTitle??null,attempt:t.attempt??null,phases:[],childThreadId:t.childThreadId??null,recentActivity:[],firstSeenAt:qs(t.queuedAt)??i??e.firstSeenAt,startedAt:i,completedAt:a,updatedAt:a??i??e.firstSeenAt}})}function Ys(e){return e.flatMap(e=>{let t=on(e.updatedAt),n=e.startedAt===null?null:on(e.startedAt),r=n??t,{workflow:i}=e,a=i?.runHandles??null,o={id:e.id,kind:i===void 0?`subagent`:`workflow`,title:e.title??(e.prompt.length>80?`${e.prompt.slice(0,77)}...`:e.prompt),role:null,model:e.model,effort:null,status:e.status,activationCount:1,usage:i===void 0?null:Ks(i),progress:e.progress??null,lastToolName:null,result:e.result,error:e.status===`failed`?e.result??null:null,outputFile:null,parentAgentId:null,agentIndex:null,phaseIndex:null,phaseTitle:null,attempt:null,workflowName:i?.name??null,phases:i?.phases??[],runHandles:a,childThreadId:e.childThreadId??null,recentActivity:[],firstSeenAt:r,startedAt:n,completedAt:e.completedAt===null?null:on(e.completedAt),updatedAt:t};return i===void 0?[o]:[o,...Js(o,i)]})}function Xs(e){let t=e.filter(e=>e.kind===`workflow`).sort((e,t)=>e.firstSeenAt.localeCompare(t.firstSeenAt)||e.id.localeCompare(t.id)),n=pe(e.filter(e=>e.kind!==`workflow`&&e.parentAgentId!==null),e=>e.parentAgentId);return t.map(e=>{let t=Object.hasOwn(n,e.id)?n[e.id]:[],r=new Map;for(let e of t)e.phaseIndex!==null&&r.set(e.phaseIndex,e.phaseTitle??r.get(e.phaseIndex)??`Phase ${e.phaseIndex+1}`);for(let t of e.phases)r.set(t.index,t.title);return{workflow:e,phases:Array.from(r.entries()).map(([e,t])=>({index:e,title:t})).sort((e,t)=>e.index-t.index).map(e=>{let n=t.filter(t=>t.phaseIndex===e.index).sort((e,t)=>(e.agentIndex??0)-(t.agentIndex??0)),r=n.some(e=>Ws(e.status)||e.status===`idle`),i=n.filter(e=>Us(e.status)).length,a=n.length===0?`pending`:r?`running`:`done`;return{index:e.index,title:e.title,members:n,state:a,settledCount:i}}),unphasedMembers:t.filter(e=>e.phaseIndex===null).sort((e,t)=>(e.agentIndex??0)-(t.agentIndex??0))}})}function Zs(e){let t=e.some(({status:e})=>e===`pending`||e===`running`||e===`waiting`);return{label:`${t?`Kicked off`:`Ran`} ${e.length} ${e.length===1?`subagent`:`subagents`}`,active:t,failed:e.some(({status:e})=>e===`failed`)}}function Qs(e){let t={working:0,done:0,failed:0,stopped:0,idle:0};for(let n of e)n===`pending`||n===`running`||n===`waiting`?t.working+=1:n===`completed`?t.done+=1:n===`failed`?t.failed+=1:n===`idle`?t.idle+=1:t.stopped+=1;return Object.keys(t).filter(e=>t[e]>0).map(e=>`${t[e]} ${e}`).join(` · `)}function $s(e){let t=e.replace(/^Subagent:\s*/i,``),n=/^\/root\/(?:[^/]+\/)*([^/]+)\/?$/u.exec(t);return n===null?t:n[1].replace(/[_\s]+/gu,` `).trim().replace(/(^|\s)\S/gu,e=>e.toUpperCase())||t}function ec(e){let t=e.model?.trim(),n=e.provider?mr(e.provider.driver,t,e.provider.models):t,r=e.provider?.models.find(e=>e.slug===n),i=r?r.shortName||r.name:t?Te(t):`Not reported`,a=r?.subProvider?.trim(),o=a&&i.replace(RegExp(`^${a.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}(?:\\s*[.:/-]\\s*|\\s+)`,`iu`),``).trim()||i,s=e.parentThread?.worktreePath??e.parentProject?.workspaceRoot,c=e.childThread?.worktreePath??e.childProject?.workspaceRoot;return{modelLabel:o,workspace:[...e.parentThread&&e.childProject&&e.childProject.id!==e.parentThread.projectId?[{label:`Project`,value:e.childProject.title}]:[],...s&&c&&s!==c?[{label:e.childThread?.branch?`Branch`:e.childThread?.worktreePath?`Worktree`:`Workspace`,value:e.childThread?.branch??lo(c)}]:[]]}}function tc(e){let t=e.result?.trim(),n=e.progress?.trim(),r=((Us(e.status)?t||n:n||t)||``).replace(/\s+/gu,` `);return r.length>280?`${r.slice(0,280).trimEnd()}…`:r||null}function nc(e){return e!=null&&ic(e.status)}function rc(e){return e?.status===`queued`?e.activeRunId===null:e?.status!==`preparing`&&e?.status!==`starting`&&e?.status!==`running`}function ic(e){return e===`preparing`||e===`queued`||e===`starting`||e===`running`||e===`waiting`}function ac(e){return on(e)}function oc(e){return e===null?null:ac(e)}function sc(e){return e===`completed`||e===`interrupted`||e===`failed`||e===`cancelled`||e===`rolled_back`}function cc(e){let t=Bo(e.pendingBackgroundTasks??[])&&e.status!==`failed`;return e.latestRunId===null&&e.activeProviderThreadId===null&&!t?null:{status:t?`idle`:e.activityRunStatus??e.status,activeRunId:e.activeRunId,activityStartedAt:e.activityRunStartedAt===void 0?void 0:oc(e.activityRunStartedAt),providerInstanceId:e.providerInstanceId,providerName:null,lastError:e.lastError??null,lastErrorClass:e.lastErrorClass??null,usageLimitResetAt:e.usageLimitResetAt??null,updatedAt:ac(e.updatedAt)}}function lc(e,t){return{...t,environmentId:e}}function uc(e,t,n=null){let r=ac(t.updatedAt),i=t.latestRunId===null?null:{runId:t.latestRunId,status:t.status===`idle`?`completed`:t.status,requestedAt:oc(t.latestRunRequestedAt??null),startedAt:oc(t.latestRunStartedAt??null),completedAt:t.latestRunCompletedAt===void 0?t.status===`idle`||sc(t.status)?r:null:oc(t.latestRunCompletedAt),assistantMessageId:null};return{environmentId:e,id:t.id,projectId:t.projectId,title:t.lineage.relationshipToParent===`subagent`?$s(t.title):t.title,providerInstanceId:t.providerInstanceId,modelSelection:t.modelSelection,runtimeMode:t.runtimeMode,interactionMode:t.interactionMode,branch:t.branch,worktreePath:t.worktreePath,pullRequests:Io(t),designs:t.designs??[],linkedPullRequest:t.linkedPullRequest??null,branchPullRequest:t.branchPullRequest??null,sideChat:t.sideChat===!0,lineage:t.lineage,forkedFrom:t.forkedFrom,activeProviderThreadId:t.activeProviderThreadId,latestRun:i,runtime:cc(t),latestUserMessageAt:oc(t.latestUserMessageAt),...t.latestUserAuthoredMessageAt===void 0?{}:{latestUserAuthoredMessageAt:oc(t.latestUserAuthoredMessageAt)},hasPendingApprovals:t.pendingRuntimeRequest!==null&&t.pendingRuntimeRequest.kind!==`user_input`&&t.pendingRuntimeRequest.kind!==`auth_refresh`,hasPendingUserInput:t.pendingRuntimeRequest?.kind===`user_input`,pendingSubagentRequest:n,hasActionableProposedPlan:t.hasActionableProposedPlan,pendingBackgroundTasks:t.pendingBackgroundTasks??[],providerInstanceHistory:t.providerInstanceHistory??[],goal:t.goal??null,itemCount:t.itemCount,visibleItemCount:t.visibleItemCount,createdAt:ac(t.createdAt),updatedAt:r,archivedAt:oc(t.archivedAt),settledOverride:t.settledOverride,settledAt:oc(t.settledAt),unsettledAt:oc(t.unsettledAt??null),snoozedUntil:oc(t.snoozedUntil??null),snoozedAt:oc(t.snoozedAt??null),limitRecovery:t.limitRecovery??null,pinnedAt:oc(t.pinnedAt??null),autoSettleDisabledAt:oc(t.autoSettleDisabledAt??null),pinOrderKey:t.pinOrderKey??null,activeOrderKey:t.activeOrderKey??null,...t.lastVisitedAt===void 0?{}:{lastVisitedAt:oc(t.lastVisitedAt)},titleRegeneration:t.titleRegeneration==null?null:{requestId:t.titleRegeneration.requestId,startedAt:ac(t.titleRegeneration.startedAt)},deletedAt:oc(t.deletedAt),source:t}}function dc(e){let t=e=>e!=null&&Number.isFinite(Date.parse(e))?e:null;if(e.runtime?.activityStartedAt!==void 0)return t(e.runtime.activityStartedAt);let n=e.latestRun;return n?.completedAt===null&&n.runId===e.runtime?.activeRunId?t(n.startedAt)??t(n.requestedAt):null}function*fc(e){for(let[t,n]of e.entries)n.enabled&&(yield t)}var pc=Object.freeze({isReady:!1,entries:new Map});function mc(e){let t=da(),r={mode:`serial`,key:()=>`environment-catalog`},i=e.atom(Mt(J.pipe(V(e=>Fe(e.entries).pipe(Ge(e=>({isReady:!0,entries:e})))))),{initialValue:pc}),a=D(e=>cn(We(e(i)),()=>pc)).pipe(F(`environment-catalog-value`)),o=e.atom(Mt(ni.pipe(V(e=>e.changes))),{initialValue:[]}),s=D(e=>cn(We(e(o)),()=>[])).pipe(F(`environment-github-routing-permissions`)),c=hi(e,{label:`environment-catalog:github-routing-permission`,scheduler:t,concurrency:r,execute:n(function*(e){let t=yield*J,n=(yield*C(t.entries)).get(e.environmentId);if(n===void 0)return yield*new Na({environmentId:e.environmentId});yield*(yield*ni).set(n,e.permission)})}),l=e.atom(Mt(J.pipe(V(e=>Fe(e.networkStatus)))),{initialValue:`unknown`}),u=D(e=>cn(We(e(l)),()=>`unknown`)).pipe(F(`environment-network-status-value`)),d=I(t=>e.atom(ba(t,Mt(Ca.pipe(V(e=>Fe(e.state))))),{initialValue:ji})),f=hi(e,{label:`environment-catalog:register`,scheduler:t,concurrency:r,execute:e=>J.pipe(T(t=>t.register(e)))}),p=hi(e,{label:`environment-catalog:remove`,scheduler:t,concurrency:r,execute:e=>J.pipe(T(t=>t.remove(e)))}),m=hi(e,{label:`environment-catalog:remove-relay-environments`,scheduler:t,concurrency:r,execute:e=>J.pipe(T(e=>e.removeRelayEnvironments()))}),h=hi(e,{label:`environment-catalog:set-enabled`,scheduler:t,concurrency:r,execute:e=>J.pipe(T(t=>t.setEnabled(e.environmentId,e.enabled)))});return{catalogAtom:i,catalogValueAtom:a,githubRoutingPermissionsValueAtom:s,setGitHubRoutingPermission:c,networkStatusAtom:l,networkStatusValueAtom:u,stateAtom:d,register:f,remove:p,removeRoute:hi(e,{label:`environment-catalog:remove-route`,scheduler:t,concurrency:r,execute:e=>J.pipe(T(t=>t.removeRoute(e.environmentId,e.routeId)))}),reorderRoutes:hi(e,{label:`environment-catalog:reorder-routes`,scheduler:t,concurrency:r,execute:e=>J.pipe(T(t=>t.reorderRoutes(e.environmentId,e.routeIds)))}),removeRelayEnvironments:m,retryNow:hi(e,{label:`environment-catalog:retry-now`,scheduler:t,concurrency:r,execute:e=>J.pipe(T(t=>t.retryNow(e)))}),setEnabled:h}}var hc=class extends Qt()(`InvalidScopedProjectKeyError`,{key:A}){get message(){return`Invalid scoped project atom key: ${JSON.stringify(this.key)}.`}},gc=class extends Qt()(`InvalidScopedThreadKeyError`,{key:A}){get message(){return`Invalid scoped thread atom key: ${JSON.stringify(this.key)}.`}},_c=class extends Qt()(`InvalidScopedProjectRefCollectionKeyError`,{key:A,cause:ge()}){get message(){return`Invalid scoped project reference collection atom key: ${JSON.stringify(this.key)}.`}},vc=at(Ce(Yn([A,A])));function yc(e){return`${e.environmentId}\u0000${e.projectId}`}function Z(e){return`${e.environmentId}\u0000${e.threadId}`}function bc(e){return JSON.stringify(e.map(e=>[e.environmentId,e.projectId]))}function xc(e){let t=e.indexOf(`\0`);if(t<0)throw new hc({key:e});return{environmentId:ze.make(e.slice(0,t)),projectId:Ee.make(e.slice(t+1))}}function Sc(e){let t;try{t=vc(JSON.parse(e))}catch(t){throw new _c({key:e,cause:t})}return t.map(([e,t])=>({environmentId:ze.make(e),projectId:Ee.make(t)}))}function Cc(e){let t=e.indexOf(`\0`);if(t<0)throw new gc({key:e});return{environmentId:ze.make(e.slice(0,t)),threadId:Xr.make(e.slice(t+1))}}function wc(e,t){return e.length===t.length&&e.every((e,n)=>e.environmentId===t[n]?.environmentId&&e.projectId===t[n]?.projectId)}function Tc(e,t){return e.length===t.length&&e.every((e,n)=>e.environmentId===t[n]?.environmentId&&e.threadId===t[n]?.threadId)}function Ec(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}var Dc=new Set([`origin_unreachable`,`invalid_response`]);function Oc(e){let t=e.state.lastFailure;if(e.state.network===`offline`||e.state.phase===`offline`)return{hop:`device`,cause:`offline`};if(t?._tag===`ConnectionBlockedError`&&t.serverUpdateRequired)return{hop:`server`,cause:`outdated`};if(t?.hop!==void 0)return{hop:t.hop,cause:t.failureCause??null};if(t!==null){let n=t.reason===`network`||t.reason===`timeout`||t.reason===`transport`,r=t.via??e.via;return{hop:n&&r===`relay`?`tunnel`:`server`,cause:null}}let n=e.relayStatus;if(n?.status!==`offline`)return null;if(n.offlineReason===`tunnel_released`)return{hop:`tunnel`,cause:`released`};let r=n.endpointFailure??null;return{hop:r!==null&&Dc.has(r)?`server`:`tunnel`,cause:r}}function kc(e,t,n){switch(t.cause){case`offline`:return`This device is offline`;case`outdated`:return`${e} runs an older P4 Code`;case`clock_skew`:return`This device's clock is off`;case`not_linked`:return`${e} is not linked to your P4 Connect account`;case`relay_error`:return`P4 Connect returned an error`;case`tunnel_pending`:return`${e}'s tunnel is still being set up`;case`tunnel_not_enabled`:return`P4 Connect is not turned on for ${e}`;case`released`:case`tunnel_down`:return`${e}'s tunnel is offline`;case`origin_unreachable`:return`Tunnel works, but P4 Code on ${e} did not answer`;case`invalid_response`:return`P4 Code on ${e} sent an unexpected answer`;case`dns`:return`${e}'s tunnel address did not resolve`;case`tls`:return`Secure connection to ${e}'s tunnel failed`;case`refused`:return`${e}'s tunnel refused the connection`;case`timeout`:return`${e} did not answer in time`}switch(t.hop){case`device`:return`This device could not prepare the connection`;case`relay`:return n?.reason===`authentication`?`P4 Connect did not accept this device's sign-in`:`This device can't reach P4 Connect`;case`tunnel`:return n?.reason===`network`||n?.reason===`transport`||n?.reason===`timeout`?`This device can't reach ${e}'s tunnel`:`P4 Connect could not reach ${e}'s tunnel`;case`server`:return n?.reason===`authentication`||n?.reason===`permission`?`P4 Code on ${e} did not accept this device`:`P4 Code on ${e} did not answer`}}function Ac(e,t,n){let r=`On ${e}, check Settings > Connections or run \`p4c connect status\`.`;switch(t.cause){case`offline`:return[`Connect this device to the internet. P4 Code reconnects on its own.`];case`outdated`:return[`Update P4 Code on ${e}.`];case`clock_skew`:return[`Turn on automatic date and time on this device and on ${e}, then retry.`];case`not_linked`:return[`Check that this device is signed in to the same P4 Connect account as the host.`,`On ${e}, open Settings > Connections and turn P4 Connect on.`];case`tunnel_pending`:return[`Wait a minute. P4 Code retries on its own.`,r];case`relay_error`:return[`Wait a few minutes. P4 Code retries on its own.`,`If it keeps failing, copy the diagnostics and report it.`];case`tunnel_not_enabled`:return[`On ${e}, open Settings > Connections and turn P4 Connect on.`];case`released`:case`tunnel_down`:return[`Make sure ${e} is awake and P4 Code is running on it.`,r,`A VPN or Tailscale exit node on ${e} can block the tunnel (port 7844). Turn it off or allow the tunnel.`];case`origin_unreachable`:case`invalid_response`:return[`Open or restart P4 Code on ${e}.`,r];case`dns`:case`tls`:case`refused`:case`timeout`:case`unknown`:return[`Make sure ${e} is awake and online.`,r]}switch(t.hop){case`device`:return[`Restart P4 Code on this device.`,`If it keeps failing, remove ${e} from this device and add it again.`];case`relay`:return n?.reason===`authentication`?[`Sign out of P4 Connect and sign in again.`]:[`Check this device's internet connection.`,`A VPN, firewall, or ad blocker on this device can block P4 Connect.`];case`tunnel`:return n?.reason===`network`||n?.reason===`transport`||n?.reason===`timeout`?[`A VPN, firewall, or DNS filter on this device can block the tunnel.`,`Try another network, or add a direct route such as a Tailscale address.`]:[`Make sure ${e} is awake and online.`,r];case`server`:return[`Make sure P4 Code is running on ${e}.`,`Retry. If it keeps failing, copy the diagnostics.`]}}function jc(e,t){switch(e.cause){case`offline`:return`this-device-cant-reach-p4-connect`;case`outdated`:return`the-host-runs-an-older-p4-code`;case`clock_skew`:return`the-clock-is-off`;case`not_linked`:case`tunnel_not_enabled`:return`sign-in-account-or-link-problems`;case`relay_error`:return`p4-connect-returned-an-error`;case`released`:case`tunnel_down`:case`tunnel_pending`:return`the-hosts-tunnel-is-offline`;case`origin_unreachable`:case`invalid_response`:return`the-tunnel-works-but-p4-code-does-not-answer`;case`dns`:case`tls`:case`refused`:case`timeout`:case`unknown`:return`the-p4-connect-address-does-not-resolve-or-answer`}let n=t?.reason===`network`||t?.reason===`transport`||t?.reason===`timeout`;switch(e.hop){case`device`:return`this-device-cant-reach-p4-connect`;case`relay`:return t?.reason===`authentication`?`sign-in-account-or-link-problems`:`this-device-cant-reach-p4-connect`;case`tunnel`:return n?`this-device-cant-reach-p4-connect`:`the-hosts-tunnel-is-offline`;case`server`:return t?.reason===`authentication`||t?.reason===`permission`?`sign-in-account-or-link-problems`:`the-tunnel-works-but-p4-code-does-not-answer`}}var Mc={relay:[`device`,`relay`,`tunnel`,`server`],direct:[`device`,`server`]};function Nc(e,t){switch(e){case`device`:return`This device`;case`relay`:return`P4 Connect`;case`tunnel`:return`${t} tunnel`;case`server`:return`P4 Code on ${t}`}}function Pc(e){let t=Oc(e);if(t===null)return null;let n=e.hostLabel,r=e.state.lastFailure,i=t.hop===`relay`||t.hop===`tunnel`||r===null&&e.relayStatus?.status===`offline`||(r?.via??e.via)===`relay`,a=Mc[i?`relay`:`direct`],o=a.indexOf(t.hop),s=a.map((e,t)=>({hop:e,label:Nc(e,n),result:t<o?`ok`:t===o?`failed`:`unchecked`})),c=r===null?e.relayStatus?.endpointStatus:r.httpStatus,l=[],u=(e,t)=>{t!=null&&t!==``&&l.push([e,String(t)])};return u(`Cause`,t.cause??r?.reason),u(`HTTP status`,c),u(`Attempts`,e.state.attempt>0?e.state.attempt:null),u(`Next retry`,e.state.retryAt===null?null:on(er(e.state.retryAt))),u(`Route`,i?`P4 Connect`:`Direct`),u(`App version`,e.clientVersion),u(`Host version`,e.serverVersion),u(`Error`,r?.detail),u(`Trace ID`,r?.traceId),{headline:kc(n,t,r),hops:s,steps:Ac(n,t,r),facts:l,moreInfoUrl:i?Oe(jc(t,r)):null}}var Fc={ok:`ok`,failed:`FAILED`,unchecked:`not checked`};function Ic(e,t){return[`P4 Code connection to ${e}: ${t.headline}`,``,...t.hops.map(e=>`${e.label}: ${Fc[e.result]}`),``,...t.facts.map(([e,t])=>`${e}: ${t}`),...t.moreInfoUrl?[``,`More info: ${t.moreInfoUrl}`]:[]].join(`
2
- `)}var Lc=`token`,Rc=`host`,zc=`label`,Bc=new Set([`http:`,`https:`,`ws:`,`wss:`]),Vc=e=>new URLSearchParams(e.hash.startsWith(`#`)?e.hash.slice(1):e.hash),Hc=class extends Qt()(`RemoteBackendUrlMissingError`,{}){get message(){return`Enter a backend URL.`}},Uc=class extends Qt()(`RemotePairingUrlInvalidError`,{cause:Ve(ge()),protocol:Ve(A)}){get message(){return`Pairing URL is invalid.`}},Wc=class extends Qt()(`RemoteBackendUrlInvalidError`,{source:kt([`direct-host`,`hosted-pairing-host`]),cause:Ve(ge()),protocol:Ve(A)}){get message(){return`Backend URL is invalid.`}},Gc=class extends Qt()(`RemotePairingTokenMissingError`,{host:A}){get message(){return`Pairing URL is missing its token.`}},Kc=class extends Qt()(`RemotePairingCodeMissingError`,{host:A}){get message(){return`Enter a pairing code.`}};mn([Hc,Uc,Wc,Gc,Kc]);var qc=e=>Bc.has(e.protocol),Jc=(e,t)=>{let n=e.trim();if(!n)throw new Hc;let r=n.replace(/^\/+/,``),i=/^[a-zA-Z][a-zA-Z\d+-]*:\/\//.test(r)?r:`https://${r}`,a;try{a=new URL(i)}catch(e){throw new Wc({source:t,cause:e})}if(!qc(a))throw new Wc({source:t,protocol:a.protocol});return a.pathname=`/`,a.search=``,a.hash=``,a},Yc=e=>{let t=new URL(e.toString());return t.protocol===`ws:`?t.protocol=`http:`:t.protocol===`wss:`&&(t.protocol=`https:`),t.pathname=`/`,t.search=``,t.hash=``,t.toString()},Xc=e=>{let t=new URL(e.toString());return t.protocol===`http:`?t.protocol=`ws:`:t.protocol===`https:`&&(t.protocol=`wss:`),t.pathname=`/`,t.search=``,t.hash=``,t.toString()},Zc=e=>{let t=Vc(e).get(Lc)?.trim()??``;if(t.length>0)return t;let n=e.searchParams.get(Lc)?.trim()??``;return n.length>0?n:null},Qc=e=>{let t=new URL(e.toString()),n=Vc(t);return n.has(Lc)&&(n.delete(Lc),t.hash=n.toString()),t.searchParams.delete(Lc),t},$c=(e,t)=>{let n=new URL(e.toString());return n.searchParams.delete(Lc),n.hash=new URLSearchParams([[Lc,t]]).toString(),n},el=e=>{let t=e.searchParams.get(Rc)?.trim()??``,n=Zc(e)?.trim()??``,r=e.searchParams.get(zc)?.trim()??``;return!t||!n?null:{host:t,token:n,label:r}},tl=e=>{let t=e.pairingUrl?.trim()??``;if(t.length>0){let e;try{e=new URL(t)}catch(e){throw new Uc({cause:e})}if(!qc(e))throw new Uc({protocol:e.protocol});let n=el(e);if(n){let e=Jc(n.host,`hosted-pairing-host`);return{credential:n.token,httpBaseUrl:Yc(e),wsBaseUrl:Xc(e)}}let r=Zc(e)??``;if(!r)throw new Gc({host:e.host});return{credential:r,httpBaseUrl:Yc(e),wsBaseUrl:Xc(e)}}let n=e.host?.trim()??``,r=e.pairingCode?.trim()??``;if(!n)throw new Hc;let i=Jc(n,`direct-host`);if(!r)throw new Kc({host:i.host});return{credential:r,httpBaseUrl:Yc(i),wsBaseUrl:Xc(i)}},nl=class extends ut()(`@p4code/client-runtime/connection/onboarding/ConnectionOnboarding`){},rl=n(`clientRuntime.connection.onboarding.resolvePairingTarget`)(function*(e){return yield*jr({try:()=>tl(e),catch:e=>new Ra({reason:`configuration`,detail:e instanceof Error?e.message:`The pairing details are invalid.`})})});function il(e,t){return`bearer:${e}:${new URL(t).origin}`}function al(e){return new Ra({reason:`configuration`,detail:`That address reaches ${e}, a different machine. Add it as its own environment instead.`})}var ol=n(`clientRuntime.connection.onboarding.preparePairingRegistration`)(function*(e){let t=yield*rl(e),n=yield*aa,r=yield*Sr({httpBaseUrl:t.httpBaseUrl}).pipe(m(Ba));if(e.expectedEnvironmentId!==void 0&&r.environmentId!==e.expectedEnvironmentId)return yield*al(r.label);let i=Ka(r);if(i!==null&&i.serverUpdateRequired!==!0)return yield*i;let a=yield*wi({httpBaseUrl:t.httpBaseUrl,credential:t.credential,clientMetadata:n.metadata}).pipe(m(Ba)),o=il(r.environmentId,t.httpBaseUrl);return new va({target:new ri({environmentId:r.environmentId,label:r.label,connectionId:o}),profile:new Aa({connectionId:o,environmentId:r.environmentId,label:r.label,httpBaseUrl:t.httpBaseUrl,wsBaseUrl:t.wsBaseUrl}),credential:new na({token:a.access_token})})}),sl=n(`clientRuntime.connection.onboarding.registerPairingConnection`)(function*(e){let t=yield*ol(e),n=yield*J;return(yield*n.register(t))?(yield*n.setCompatibility(t.target.environmentId,null),yield*n.setEnabled(t.target.environmentId,!0).pipe(Ye({EnvironmentNotRegisteredError:()=>p})),t.target.environmentId):t.target.environmentId}),cl=le(na),ll=le(Aa),ul=n(`clientRuntime.connection.onboarding.updateBearerConnection`)(function*(t){let n=yield*J,r=yield*Di,i=(yield*C(n.entries)).get(t.environmentId),a=i===void 0?void 0:pa(i).find(e=>e.target._tag===`BearerConnectionTarget`),o=i===void 0||a===void 0?i:xi(i,a),s=o?.target._tag===`BearerConnectionTarget`?yield*r.get(o.target.connectionId):O(),c=yield*dl({input:t,entry:e(o),credential:s});yield*n.register(c)}),dl=n(`clientRuntime.connection.onboarding.prepareBearerConnectionUpdate`)(function*(e){let t=R(e.entry);if(t==null||t.target._tag!==`BearerConnectionTarget`||k(t.profile)||!ll(t.profile.value))return yield*new Ra({reason:`configuration`,detail:`Only saved bearer environments can be edited.`});let n=e.credential;if(k(n)||!cl(n.value))return yield*new Ra({reason:`authentication`,detail:`The saved bearer credential is unavailable.`});let r=e.input.label.trim();if(r===``)return yield*new Ra({reason:`configuration`,detail:`Environment label cannot be empty.`});let i=yield*jr({try:()=>qa(e.input.httpBaseUrl),catch:e=>new Ra({reason:`configuration`,detail:e instanceof Error?e.message:`The environment URL is invalid.`})}),a=t.target.connectionId;return new va({target:new ri({environmentId:e.input.environmentId,label:r,connectionId:a}),profile:new Aa({connectionId:a,environmentId:e.input.environmentId,label:r,httpBaseUrl:i,wsBaseUrl:Ja(i)}),credential:n.value})}),fl=n(`clientRuntime.connection.onboarding.prepareSshRegistration`)(function*(e){let t=yield*(yield*Zi).provision(e.target,e.expectedEnvironmentId),n=`ssh:${t.environmentId}:${Ti(t.bootstrap.target)}`,r=e.label?.trim()||t.label||t.bootstrap.target.alias;return new $i({target:new fa({environmentId:t.environmentId,label:r,connectionId:n}),profile:new Oa({connectionId:n,environmentId:t.environmentId,label:r,target:t.bootstrap.target})})}),pl=n(`clientRuntime.connection.onboarding.registerSshConnection`)(function*(e){let t=yield*fl(e);return e.expectedEnvironmentId!==void 0&&t.target.environmentId!==e.expectedEnvironmentId?yield*al(t.target.label):(yield*(yield*J).register(t),t.target.environmentId)}),ml=M(function*(){let e=yield*J,t=yield*aa,n=yield*In,r=yield*Zi,i=yield*Di;return nl.of({registerPairing:r=>sl(r).pipe(Ne(J,e),Ne(aa,t),Ne(In,n)),registerSsh:t=>pl(t).pipe(Ne(J,e),Ne(Zi,r)),updateBearer:t=>ul(t).pipe(Ne(J,e),Ne(Di,i))})}),hl=At(nl,ml),gl=class extends ut()(`@p4code/client-runtime/platform/source/PlatformConnectionSource`){},_l=n(`connection.watchDiscoveredCompatibility`)(function*(){let e=yield*J,t=yield*ci,n=new Map;yield*Ln(Fe(t.state),Fe(e.entries)).pipe(Ie(()=>M(function*(){let r=yield*C(t.state);if(!r.refreshing)for(let e of n.keys())r.environments.has(e)||n.delete(e);let i=yield*C(e.entries);for(let t of r.environments.values()){let r=R(t.status),a=r?.descriptor;if(r===null||a===void 0)continue;let o=t.environment.environmentId,s=i.get(o);if(s===void 0||pa(s).length!==1||!ei(s))continue;let c=n.get(o),l=c?.checkedAt!==r.checkedAt||(c.descriptor?.orchestrationProtocolVersion??1)!==(a.orchestrationProtocolVersion??1)||c.descriptor?.serverVersion!==a.serverVersion,u=Ka(a);(u!==null||l)&&(yield*e.setCompatibility(o,u)),n.set(o,r)}}).pipe(x(e=>H(`Could not apply discovered environment compatibility.`,{error:e})))))});function vl(e){let t=Ia.pipe(Er(fn(Pi,Wa(e)))),n=ia.pipe(Er(t)),r=hl.pipe(Er(n)),i=fn(n,ai,r,Pi);return It(M(function*(){let e=yield*J,t=yield*gl;yield*_l().pipe(P),yield*e.start,yield*t.registrations.pipe(Ie(e.reconcilePlatform),P)}).pipe(ne(`clientRuntime.connection.application.start`))).pipe(rr(i),rr(Ma))}vl({});function yl(e){switch(e.phase){case`available`:return{phase:`available`,error:null,traceId:null};case`offline`:return{phase:`offline`,error:null,traceId:null};case`connecting`:return{phase:e.attempt<=1&&e.lastFailure===null?`connecting`:`reconnecting`,error:e.lastFailure?.message??null,traceId:e.lastFailure?.traceId??null};case`connected`:return{phase:`connected`,error:null,traceId:null};case`backoff`:return{phase:`reconnecting`,error:e.lastFailure?.message??null,traceId:e.lastFailure?.traceId??null};case`blocked`:return{phase:e.lastFailure?.reason===`unsupported`?`unsupported`:`error`,error:e.lastFailure?.message??null,traceId:e.lastFailure?.traceId??null}}}function bl(e){switch(e.phase){case`available`:return`Available`;case`offline`:return`Offline`;case`connecting`:return`Connecting...`;case`reconnecting`:return e.error?`Failed to connect. Reconnecting... Reason: ${e.error}`:`Reconnecting...`;case`connected`:return`Connected`;case`unsupported`:return`Client not supported`;case`error`:return e.error?`Connection failed. Reason: ${e.error}`:`Connection failed`}}function xl(e){return e.phase===`reconnecting`&&e.error?`Failed to connect. Reconnecting...`:bl({...e,error:null})}function Sl(e){return yl(e)}function Cl(e){let t=e.connectedTarget?si(e.connectedTarget):null,n=pa(e.entry),r=n.find(e=>si(e.target)===t);for(let t of r?[r,...n]:n){let n=t.target._tag===`RelayConnectionTarget`?e.relayHttpBaseUrl??null:Si(t),r=n===null?null:wl(n);if(r!==null)return r}return null}function wl(e){let t;try{t=new URL(e)}catch{return null}return t.pathname=`/mcp`,t.search=``,t.hash=``,t.toString()}function Tl(e){switch(e.target._tag){case`PrimaryConnectionTarget`:return e.target.httpBaseUrl;case`RelayConnectionTarget`:return null;case`BearerConnectionTarget`:return E(e.profile)&&e.profile.value._tag===`BearerConnectionProfile`?e.profile.value.httpBaseUrl:null;case`SshConnectionTarget`:return E(e.profile)&&e.profile.value._tag===`SshConnectionProfile`?`${e.profile.value.target.username}@${e.profile.value.target.hostname}`:null}}var El=n(`runCachePersistence`)(function*(e,t){let n=yield*sn(e);for(yield*ir(`500 millis`),n=cn(yield*yr(e),()=>n);;)yield*t(n),yield*ir(`10 seconds`),n=yield*sn(e)}),Dl={status:`idle`},Ol=D(Dl).pipe(F(`environment-data:server:update-state:empty`)),kl=I(e=>D(Dl).pipe(F(`environment-data:server:update-state:${e}`))),Al=class extends Qt()(`ServerUpdateResumeTimeoutError`,{environmentId:A,targetVersion:A}){get message(){return`The server did not resume on @p4code/cli@${this.targetVersion}.`}},jl=class extends Qt()(`ServerUpdateProgressIncompleteError`,{targetVersion:A}){get message(){return`The @p4code/cli@${this.targetVersion} update ended before the server accepted the restart.`}},Ml=class extends Qt()(`ServerUpdateTerminalError`,{targetVersion:A,status:kt([`committed`,`rolled-back`,`failed`]),reason:Ve(A)}){get message(){return this.reason??`The @p4code/cli@${this.targetVersion} update ${this.status}.`}},Nl=Vt(32);function Pl(e,t){return e.updateId===void 0?t.payload.environment.serverVersion===e.targetVersion:t.payload.updateOutcome?.id===e.updateId}function Fl(e,t){return e.method===`desktop-app`&&e.desktopUpdateToken!==void 0||Pl(e,t)}function Il(e,t){if(e.updateId===void 0)return p;let n=t.payload.updateOutcome;return n?.id===e.updateId&&n.status===`committed`&&n.targetVersion===e.targetVersion&&t.payload.environment.serverVersion===e.targetVersion?p:S(new Ml({targetVersion:e.targetVersion,status:n?.status??`failed`,reason:n?.reason??`The service launcher resumed without committing the requested server version.`}))}function Ll(e){return e.stateChanges.pipe(st(e=>e.phase===`backoff`||e.phase===`blocked`&&e.lastFailure?.reason===`authentication`),Ie(()=>ir(e.interval??Kr(1)).pipe(lt(e.retryNow))),Sn(Nl),Dr)}function Rl(e){return e.pipe(Ut(e=>e.phase===`connected`),st(e=>e.phase===`connected`),Yr,b)}var zl=n(`runDesktopCommitWithReconnectObserver`)(function*(e,t){let n=yield*Ur(),r=yield*Ur(),i=yield*e.pipe(je(()=>y(n,void 0)),Rl,lt(y(r,void 0)),gr);yield*Tn(n);let a=yield*t.pipe(Tt);if(o(a)){yield*Gr(i);return}return Gl(a.cause)?(yield*Tn(r).pipe(Zn(Nl)),yield*Me(a.cause)):(yield*Gr(i),yield*Me(a.cause))}),Bl=n(`waitForDesktopUpdateTarget`)(function*(e,t,n,r=3){for(let i=1;i<=r;i+=1){let a=yield*t;if(a.payload.environment.serverVersion===e)return a;if(i===r)break;let s=yield*n.pipe(Tt);if(o(s))break;if(!Gl(s.cause))return yield*Me(s.cause)}return yield*new Ml({targetVersion:e,status:`failed`,reason:`The desktop app resumed without installing the prepared update.`})});function Vl(e,t,n){return{status:`running`,stage:n.type===`complete`?`resuming`:n.stage,fromVersion:e,targetVersion:t}}function Hl(e,t){return e.status===`idle`||e.status===`running`||t===null||e.fromVersion===t?e:Dl}function Ul(e){return e instanceof Error?e.message:`Server update failed.`}function Wl(e){if(!Hi(e))return!1;switch(e.reason._tag){case`SocketReadError`:case`SocketWriteError`:case`SocketCloseError`:return!0;default:return!1}}function Gl(e){return xt(e)?!0:e.reasons.length>0&&e.reasons.every(e=>he(e)&&Wl(e.error))}function Kl(e,t,n){return E(t)&&(o(n)||Gl(n.cause))?L(t.value):Un(n)?Me(n.cause):S(new jl({targetVersion:e}))}var ql=e=>({version:1,type:`snapshot`,config:e}),Jl=n(`EnvironmentServerConfigState.make`)(function*(e){let t=yield*Ca,r=yield*Ta,i=t.target.environmentId,a=yield*r.loadServerConfig(i).pipe(x(e=>H(`Could not load cached server configuration.`).pipe(B({environmentId:i,...Yi(e)}),mt(O())))),o=yield*Jr(ar(a,e=>({config:Va(e),latestEvent:ql(Va(e)),source:`cache`}))),s=yield*Ar(1),c=yield*Bi(O()),l=n(`EnvironmentServerConfigState.persist`)(function*(e){let{lastEventLoopStall:t,...n}=Va(e);return yield*r.saveServerConfig(i,n).pipe(mt(!0),x(e=>H(`Could not persist cached server configuration.`).pipe(B({environmentId:i,...Yi(e)}),mt(!1))))}),u=n(`EnvironmentServerConfigState.persistPending`)(function*(e){(yield*l(e))&&(yield*yi(c,t=>E(t)&&t.value===e?O():t))});return yield*Xt(()=>q(c).pipe(T(vr({onNone:()=>p,onSome:e=>l(e).pipe(b)})))),yield*El(s,u).pipe(P),yield*ja(w.subscribeServerConfig,{...e.environmentThemes===!0?{environmentThemes:!0}:{},...e.usageLimitSources===!0?{usageLimitSources:!0}:{},...e.usageLimitsCommand===!0?{usageLimitsCommand:!0}:{}}).pipe(Ie(e=>M(function*(){let t=Qi(yield*C(o),e);k(t)||(yield*W(c,j(t.value.config)),yield*xe(o,t),yield*jn(s,t.value.config))})),P),o});function Yl(e,t){return ba(e,Mt(Jl(t).pipe(V(e=>Fe(e).pipe(ee(e=>vr(e,{onNone:()=>ye,onSome:e=>pr(e)})))))))}function Xl(e,t,n){return n.type===`welcome`&&e.currentSession===t?{...e,welcomeSession:t,welcome:n.payload}:e}function Zl(e){return e.currentSession===e.welcomeSession?e.welcome:null}var Ql=n(`EnvironmentServerWelcomeState.make`)(function*(){let e=yield*Ca,t=R(yield*C(e.session)),r=yield*Jr({currentSession:t,welcomeSession:null,welcome:null}),i=n(`EnvironmentServerWelcomeState.updateWithCurrentSession`)(function*(t){return yield*vt(r,n=>C(e.session).pipe(V(e=>[void 0,t(n,R(e))])))});return yield*Fe(e.session).pipe(Ie(()=>i((e,t)=>({...e,currentSession:t}))),P),yield*Da(w.subscribeServerLifecycle,n(`EnvironmentServerWelcomeState.makeSubscribeInput`)(function*(e){return yield*i((t,n)=>n===e?{...t,currentSession:n,welcomeSession:e,welcome:null}:{...t,currentSession:n}),{}})).pipe(Ie(([e,t])=>i((n,r)=>Xl({...n,currentSession:r},e,t))),P),r});function $l(e){return ba(e,Mt(Ql().pipe(V(e=>Fe(e).pipe(Ge(Zl))))))}function eu(e,t){return e?.source===`live`&&(t===null||e.config.environment.serverVersion===t.environment.serverVersion)?e.config:t??e?.config??null}function tu(e,t){let n=da(),r=da(),i={mode:`serial`,key:({environmentId:e})=>e},a=I(n=>e.atom(Yl(n,{...t.environmentThemes===!0?{environmentThemes:!0}:{},...t.usageLimitSources===!0?{usageLimitSources:!0}:{},...t.usageLimitsCommand===!0?{usageLimitsCommand:!0}:{}})).pipe(N(3e5),F(`environment-data:server:config-projection:${n}`))),s=e=>a(e.environmentId),c=D(null).pipe(F(`environment-data:server:config:empty`)),l=I(e=>e===null?c:D(n=>eu(R(We(n(s({environmentId:e,input:{}})))),n(t.initialConfigValueAtom(e)))).pipe(F(`environment-data:server:config:${e}`))),u=I(e=>D(t=>Hl(t(kl(e)),t(l(e))?.environment.serverVersion??null)).pipe(F(`environment-data:server:update-state-value:${e}`))),d=e=>e===null?Ol:u(e),f=hi(e,{label:`environment-data:server:update-server`,scheduler:r,concurrency:i,execute:(e,t)=>{let r=kl(e.environmentId),a=e.input.targetVersion,s=t.get(l(e.environmentId))?.environment.serverVersion??a,c=`downloading`,u=!1;return t.set(r,{status:`running`,stage:c,fromVersion:s,targetVersion:a}),M(function*(){let d=yield*J,f=yield*Ur(),m=yield*Ur(),h=yield*Ur();yield*Tn(f).pipe(lt(d.stateChanges(e.environmentId).pipe(je(()=>y(m,void 0)),Ut(e=>e.phase===`connected`),st(e=>e.phase===`connected`),Yr)),lt(y(h,void 0)),gr);let g=yield*Ii(t,n,i,e,M(function*(){let n=t.get(l(e.environmentId));s=n?.environment.serverVersion??a,t.set(r,{status:`running`,stage:c,fromVersion:s,targetVersion:a});let i=n?.environment.capabilities.serverSelfUpdateProgress===!0?yield*M(function*(){let n=yield*Bi(O()),i=yield*d.runStream(e.environmentId,Zr(w.serverUpdateServerWithProgress,e.input)).pipe(Ie(e=>z(()=>{c=e.type===`complete`?`resuming`:e.stage,t.set(r,Vl(s,a,e))}).pipe(lt(e.type===`complete`?W(n,j(e.result)):p))),Tt);return yield*Kl(a,yield*q(n),i)}):yield*M(function*(){let t=n?.environment.capabilities.serverSelfUpdate,r=yield*d.run(e.environmentId,Ki(w.serverUpdateServer,e.input)).pipe(Tt);return o(r)?r.value:(t===`boot-service`||t===`respawn`)&&Gl(r.cause)?{targetVersion:a,method:t}:yield*Me(r.cause)});if(i.method===`desktop-app`&&i.desktopUpdateToken!==void 0){yield*y(f,void 0),yield*Tn(m);let t=yield*d.run(e.environmentId,Ki(w.serverCommitDesktopUpdate,{requestId:i.desktopUpdateToken})).pipe(Tt);if(Un(t)&&!Gl(t.cause))return yield*Me(t.cause);u=Un(t)}return a=i.targetVersion,c=`resuming`,t.set(r,{status:`running`,stage:c,fromVersion:s,targetVersion:a}),i}));yield*Ll({stateChanges:d.stateChanges(e.environmentId),retryNow:d.retryNow(e.environmentId)}).pipe(gr),g.method===`desktop-app`&&u&&(yield*Tn(h).pipe(Zn(Nl)));let _=d.followStream(e.environmentId,ja(w.subscribeServerLifecycle,{})).pipe(st(e=>e.type===`ready`&&Fl(g,e)),Yr,Sn(Nl),V(Lt)).pipe(T(vr({onNone:()=>new Al({environmentId:e.environmentId,targetVersion:a}),onSome:L}))),v=g.desktopUpdateToken;return yield*Il(g,g.method===`desktop-app`&&v!==void 0?yield*Bl(g.targetVersion,_,zl(d.stateChanges(e.environmentId),d.run(e.environmentId,Ki(w.serverCommitDesktopUpdate,{requestId:v})).pipe(b))):yield*_),t.set(r,Dl),g}).pipe(Vn(e=>z(()=>{if(!o(e)){if(xt(e.cause)){t.set(r,Dl);return}t.set(r,{status:`failed`,stage:c,fromVersion:s,targetVersion:a,message:Ul(et(e.cause))})}})))}}),m=I(e=>D(t=>t(l(e))?.settings??null).pipe(F(`environment-data:server:settings:${e}`))),h=I(e=>D(t=>{let n=t(m(e))?.usagePriceOverrides??{};return JSON.stringify(Object.keys(n).sort().map(e=>{let t=n[e];return[e,t.inputCostPerMillionTokens,t.outputCostPerMillionTokens,t.cacheReadCostPerMillionTokens,t.cacheWriteCostPerMillionTokens]}))}).pipe(F(`environment-data:server:usage-prices:${e}`))),g=I(e=>D(t=>{let n=t(m(e)),r=n?.usageModelAliases??{};return JSON.stringify([t(h(e)),Object.keys(r).sort().map(e=>[e,r[e]]),n?.cursorKeychainUsageEnabled??!1])}).pipe(F(`environment-data:server:usage-scan-settings:${e}`))),_=I(e=>D(t=>t(l(e))?.providers??null).pipe(F(`environment-data:server:providers:${e}`))),v=I(t=>e.atom($l(t),{initialValue:null}).pipe(N(3e5),F(`environment-data:server:welcome-state:${t}`))),te=I(e=>D(t=>{let n=t(v(e));return n._tag===`Success`?n.value===null?Ir(n.waiting):ae(n.value,n):n}).pipe(F(`environment-data:server:welcome:${e}`))),ne=e=>te(e.environmentId),re=G(e,{label:`environment-data:server:update-settings`,tag:w.serverUpdateSettings,scheduler:n,concurrency:i});return{configValueAtom:l,runStorageCleanup:G(e,{label:`environment-data:server:run-storage-cleanup`,tag:w.serverRunStorageCleanup,concurrency:{mode:`singleFlight`,key:({environmentId:e})=>e}}),databaseStorage:Ci(e,{label:`environment-data:server:database-storage`,tag:w.serverGetDatabaseStorage,idleTtlMs:0}),storageCleanupReport:Ci(e,{label:`environment-data:server:storage-cleanup-report`,tag:w.serverGetStorageCleanupReport,idleTtlMs:0}),updateStateAtom:d,settingsValueAtom:m,providersValueAtom:_,providerAuthState:Ci(e,{label:`environment-data:provider:auth-state`,tag:w.providerAuthSubscribe,idleTtlMs:0}),startProviderAuth:G(e,{label:`environment-data:provider:auth-start`,tag:w.providerAuthStart,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t])}}),respondProviderAuth:G(e,{label:`environment-data:provider:auth-respond`,tag:w.providerAuthRespond}),completeProviderAuth:G(e,{label:`environment-data:provider:auth-complete`,tag:w.providerAuthComplete}),chatGptReconnectProfile:G(e,{label:`environment-data:chatgpt:reconnect-profile`,tag:w.chatGptReconnectProfile}),chatGptImportProfile:G(e,{label:`environment-data:chatgpt:import-profile`,tag:w.chatGptImportProfile}),chatGptHandoffState:ui(e,{label:`environment-data:chatgpt:handoff`,sensitiveInput:!0,subscribe:e=>Zr(w.chatGptHandoffSubscribe,e),idleTtlMs:0}),codexAuthCallbackState:Ci(e,{label:`environment-data:codex:auth-callback`,tag:w.codexAuthCallbackSubscribe,idleTtlMs:0}),cancelProviderAuth:G(e,{label:`environment-data:provider:auth-cancel`,tag:w.providerAuthCancel}),logoutProviderAuth:G(e,{label:`environment-data:provider:auth-logout`,tag:w.providerAuthLogout}),providerInstallState:Ci(e,{label:`environment-data:provider:install-state`,tag:w.providerInstallSubscribe,idleTtlMs:0}),startProviderInstall:G(e,{label:`environment-data:provider:install-start`,tag:w.providerInstallStart,concurrency:{mode:`singleFlight`,key:({environmentId:e})=>e}}),cancelProviderInstall:G(e,{label:`environment-data:provider:install-cancel`,tag:w.providerInstallCancel}),removeProviderInstallation:G(e,{label:`environment-data:provider:install-remove`,tag:w.providerInstallRemove}),traceDiagnostics:K(e,{label:`environment-data:server:trace-diagnostics`,tag:w.serverGetTraceDiagnostics}),processDiagnostics:K(e,{label:`environment-data:server:process-diagnostics`,tag:w.serverGetProcessDiagnostics}),hostResources:ua(e,{label:`environment-data:server:host-resources`,idleTtlMs:0,staleTimeMs:5e3,execute:e=>Ki(w.serverGetHostResources,e).pipe(Zn(`5 seconds`))}),processResourceHistory:K(e,{label:`environment-data:server:process-resource-history`,tag:w.serverGetProcessResourceHistory}),scheduledTaskWebhookDeliveries:K(e,{label:`environment-data:server:scheduled-task:webhook-deliveries`,tag:w.scheduledTasksListWebhookDeliveries}),scheduledTaskWebhookDelivery:K(e,{label:`environment-data:server:scheduled-task:webhook-delivery`,tag:w.scheduledTasksGetWebhookDelivery}),scheduledTasksLive:Ci(e,{label:`environment-data:server:scheduled-tasks:live`,tag:w.scheduledTasksSubscribe}),threadDecisionsLive:Ci(e,{label:`environment-data:server:thread-decisions:live`,tag:w.subscribeThreadDecisions}),threadSelfImproveFindingsLive:Ci(e,{label:`environment-data:server:thread-self-improve-findings:live`,tag:w.selfImproveSubscribeThreadFindings}),dismissSelfImproveFindings:G(e,{label:`environment-data:server:dismiss-self-improve-findings`,tag:w.selfImproveDismissFindings}),selfImproveSettingsLive:Ci(e,{label:`environment-data:server:self-improve-settings:live`,tag:w.selfImproveSubscribeSettings}),saveSelfImproveFindings:G(e,{label:`environment-data:server:save-self-improve-findings`,tag:w.selfImproveSaveFindings}),setSelfImproveMemoryMirror:G(e,{label:`environment-data:server:set-self-improve-memory-mirror`,tag:w.selfImproveSetMemoryMirror}),undoSelfImproveSave:G(e,{label:`environment-data:server:undo-self-improve-save`,tag:w.selfImproveUndoSave}),updateSelfImproveSettings:G(e,{label:`environment-data:server:update-self-improve-settings`,tag:w.selfImproveUpdateSettings}),usageSummary:K(e,{label:`environment-data:server:usage-summary`,tag:w.serverGetUsageSummary,staleTimeMs:6e4,refreshTrigger:({environmentId:e})=>g(e),execute:(e,t)=>Ki(w.serverGetUsageSummary,e).pipe(T(n=>n.sources.some(e=>e.refreshing===!0)?t(n).pipe(lt(Ki(w.serverGetUsageSummary,{...e,awaitRefresh:!0})),x(e=>H(`Could not refresh slow usage sources.`).pipe(B({...Yi(e)}),mt(n)))):L(n)))}),resourceTelemetry:Ci(e,{label:`environment-data:server:resource-telemetry`,tag:w.subscribeResourceTelemetry,idleTtlMs:0}),resourceTelemetryHistory:K(e,{label:`environment-data:server:resource-telemetry-history`,tag:w.serverGetResourceTelemetryHistory,staleTimeMs:5e3}),searchAcpRegistry:K(e,{label:`environment-data:server:acp-registry:search`,tag:w.serverSearchAcpRegistry,staleTimeMs:0,idleTtlMs:0}),configProjection:s,welcome:ne,legacyThreadMigration:Ci(e,{label:`environment-data:server:legacy-thread-migration`,tag:w.subscribeServerLifecycle,transform:e=>e.pipe(ee(e=>e.type===`legacyThreadMigration`?pr(e.payload):ye))}),consumeResetCredit:G(e,{label:`environment-data:server:consume-reset-credit`,tag:w.providerConsumeResetCredit,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t])}}),refreshProviders:G(e,{label:`environment-data:server:refresh-providers`,tag:w.serverRefreshProviders,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.instanceId??null,t.cwd??null,t.fresh??!1,t.refreshModels??!1])}}),updateProvider:G(e,{label:`environment-data:server:update-provider`,tag:w.serverUpdateProvider,scheduler:n,concurrency:i}),updateServer:f,upsertKeybinding:G(e,{label:`environment-data:server:upsert-keybinding`,tag:w.serverUpsertKeybinding,scheduler:n,concurrency:i}),removeKeybinding:G(e,{label:`environment-data:server:remove-keybinding`,tag:w.serverRemoveKeybinding,scheduler:n,concurrency:i}),updateSettings:re,mutateProviderInstance:re,prepareAcpRegistryAgent:G(e,{label:`environment-data:server:acp-registry:prepare`,tag:w.serverPrepareAcpRegistryAgent,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.agentId}`}}),uninstallAcpRegistryManagedBinary:G(e,{label:`environment-data:server:acp-registry:uninstall-managed-binary`,tag:w.serverUninstallAcpRegistryManagedBinary,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.agentId}`}}),acceptAcpRegistryUrlAuth:G(e,{label:`environment-data:server:acp-registry:accept-url-auth`,tag:w.serverAcceptAcpRegistryUrlAuth,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}:${t.elicitationId}`}}),listAcpRegistrySessions:G(e,{label:`environment-data:server:acp-registry:list-sessions`,tag:w.serverListAcpRegistrySessions,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}:${t.projectId}:${t.cursor??`first`}`}}),importAcpRegistrySession:G(e,{label:`environment-data:server:acp-registry:import-session`,tag:w.serverImportAcpRegistrySession,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}:${t.projectId}:${t.sessionId}`}}),deleteAcpRegistrySession:G(e,{label:`environment-data:server:acp-registry:delete-session`,tag:w.serverDeleteAcpRegistrySession,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}:${t.projectId}:${t.sessionId}`}}),listAcpRegistryProviders:G(e,{label:`environment-data:server:acp-registry:list-providers`,tag:w.serverListAcpRegistryProviders,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}:${t.projectId}`}}),setAcpRegistryProvider:G(e,{label:`environment-data:server:acp-registry:set-provider`,tag:w.serverSetAcpRegistryProvider,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}:${t.projectId}:${t.providerId}`}}),disableAcpRegistryProvider:G(e,{label:`environment-data:server:acp-registry:disable-provider`,tag:w.serverDisableAcpRegistryProvider,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}:${t.projectId}:${t.providerId}`}}),logoutAcpRegistry:G(e,{label:`environment-data:server:acp-registry:logout`,tag:w.serverLogoutAcpRegistry,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}`}}),signalProcess:G(e,{label:`environment-data:server:signal-process`,tag:w.serverSignalProcess}),upsertScheduledTask:G(e,{label:`environment-data:server:scheduled-task:upsert`,tag:w.scheduledTasksUpsert,scheduler:n,concurrency:i}),setScheduledTaskEnabled:G(e,{label:`environment-data:server:scheduled-task:set-enabled`,tag:w.scheduledTasksSetEnabled,scheduler:n,concurrency:i}),deleteScheduledTask:G(e,{label:`environment-data:server:scheduled-task:delete`,tag:w.scheduledTasksDelete,scheduler:n,concurrency:i}),runScheduledTaskNow:G(e,{label:`environment-data:server:scheduled-task:run-now`,tag:w.scheduledTasksRunNow}),rotateScheduledTaskWebhookToken:G(e,{label:`environment-data:server:scheduled-task:rotate-webhook-token`,tag:w.scheduledTasksRotateWebhookToken,scheduler:n,concurrency:i}),answerSecretRequest:G(e,{label:`environment-data:server:secrets:answer-request`,tag:w.secretsAnswerRequest,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.threadId,t.turnItemId])}}),refreshUsageRates:G(e,{label:`environment-data:server:refresh-usage-rates`,tag:w.serverRefreshUsageRates,concurrency:{mode:`singleFlight`,key:({environmentId:e})=>e}}),mcpRegistryState:G(e,{label:`environment-data:mcp-registry:state`,tag:w.mcpRegistryState}),mcpRegistryTest:G(e,{label:`environment-data:mcp-registry:test`,tag:w.mcpRegistryTest,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.serverId])}}),mcpRegistryOAuthStart:G(e,{label:`environment-data:mcp-registry:oauth-start`,tag:w.mcpRegistryOAuthStart}),mcpRegistryOAuthSignOut:G(e,{label:`environment-data:mcp-registry:oauth-sign-out`,tag:w.mcpRegistryOAuthSignOut}),mcpRegistryProviderSignInState:G(e,{label:`environment-data:mcp-registry:provider-sign-in-state`,tag:w.mcpRegistryProviderSignInState,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.serverId])}}),mcpRegistryProviderSignInStart:G(e,{label:`environment-data:mcp-registry:provider-sign-in-start`,tag:w.mcpRegistryProviderSignInStart}),mcpRegistryProviderSignInComplete:G(e,{label:`environment-data:mcp-registry:provider-sign-in-complete`,tag:w.mcpRegistryProviderSignInComplete}),mcpRegistryProviderSignInCancel:G(e,{label:`environment-data:mcp-registry:provider-sign-in-cancel`,tag:w.mcpRegistryProviderSignInCancel}),mcpRegistryProviderSignInWait:G(e,{label:`environment-data:mcp-registry:provider-sign-in-wait`,tag:w.mcpRegistryProviderSignInWait}),mcpRegistryProviderSignOut:G(e,{label:`environment-data:mcp-registry:provider-sign-out`,tag:w.mcpRegistryProviderSignOut}),mcpRegistryDiscover:G(e,{label:`environment-data:mcp-registry:discover`,tag:w.mcpRegistryDiscover,concurrency:{mode:`singleFlight`,key:({environmentId:e})=>e}}),mcpRegistryImport:G(e,{label:`environment-data:mcp-registry:import`,tag:w.mcpRegistryImport}),checkOtlpEndpoint:G(e,{label:`environment-data:server:check-otlp-endpoint`,tag:w.serverCheckOtlpEndpoint}),retryResourceTelemetry:G(e,{label:`environment-data:server:retry-resource-telemetry`,tag:w.serverRetryResourceTelemetry,concurrency:{mode:`singleFlight`,key:({environmentId:e})=>e}})}}var nu=Vt(4),ru=`15 seconds`,iu=class extends Qt()(`OutdatedHostUpdateError`,{environmentId:A,message:A}){},au=n(`clientRuntime.connection.updateOutdatedHost`)(function*(e,t,n){let r=yield*J,i=yield*za,a=yield*Li,o=yield*In,s=(yield*C(r.entries)).get(e);if(s===void 0)return yield*new Na({environmentId:e});let{prepared:c,descriptor:u}=yield*Pt(pa(s).map(e=>i.prepareForUpdate(xi(s,e)))),d=u.capabilities;if(d.serverSelfUpdate===void 0||d.serverSelfUpdate===`desktop-managed`&&d.desktopAppUpdate!==!0)return yield*new iu({environmentId:e,message:`Update P4 Code on ${u.label} manually; it cannot update itself.`});let f=yield*Dn(M(function*(){let e=yield*fr(At(ki,Ga({pingTimeout:Mi,retryTransientErrors:!1,retryPolicy:_t(0)})).pipe(Er(fn(pi(c.socketUrl,{openTimeout:ru}).pipe(Er(_r(Li,a))),ti)))),r=yield*ii.pipe(fe(e)),i=d.serverSelfUpdateProgress===!0?yield*M(function*(){let e=yield*Bi(O()),i=yield*r[w.serverUpdateServerWithProgress](t).pipe(Ie(t=>t.type===`complete`?W(e,j(t.result)):n(t.stage)),Tt);return yield*Kl(t.targetVersion,yield*q(e),i)}):yield*r[w.serverUpdateServer](t).pipe(Rn(e=>(d.serverSelfUpdate===`boot-service`||d.serverSelfUpdate===`respawn`)&&Gl(e),()=>L({targetVersion:t.targetVersion,method:d.serverSelfUpdate})));return i.method===`desktop-app`&&i.desktopUpdateToken!==void 0&&(yield*r[w.serverCommitDesktopUpdate]({requestId:i.desktopUpdateToken}).pipe(Rn(e=>Gl(e),()=>p))),i}));yield*n(`resuming`);let m=[c.httpBaseUrl,...pa(s).flatMap(e=>Si(e)??[])].filter((e,t,n)=>n.indexOf(e)===t),h=yield*Pt(m.map(t=>Sr({httpBaseUrl:t}).pipe(Ae(t=>t.environmentId===e&&ou(t),()=>`not-ready`)))).pipe(Ne(In,o),Mn,l({schedule:_e(Kr(1)),until:e=>De(e,ou)}),Sn(nu),V(Lt));return k(h)?yield*new iu({environmentId:e,message:`${u.label} did not come back on a compatible P4 Code version.`}):(ei(s)&&(yield*(yield*ci).refresh),yield*r.setCompatibility(e,null),yield*r.setEnabled(e,!0),{...f,targetVersion:h.value.serverVersion})});function ou(e){return(e.orchestrationProtocolVersion??1)===2}var su=ir(`1 millis`),cu=Jt(rn(nt(Ce(i)))),lu=400;function uu(e){if(!Rr(e))return[];let t=e.threads;return Array.isArray(t)?t.map(e=>{if(!Rr(e))return;let t=e.pullRequests;return delete e.pullRequests,t}):[]}function du(e,t){let n=e.threads.map(e=>e.id),r=M(function*(){let e=new Map,r=lu;for(let[i,a]of n.entries()){let n=t[i];if(n===void 0)continue;let o=Array.isArray(n)?n.length:1;r+o>lu&&(yield*su,r=0),r+=o;let s=yield*cu(n).pipe(x(e=>H(`Discarding unreadable shell pull request links.`,{threadId:a,cause:String(e)}).pipe(mt(void 0))));s!==void 0&&e.set(a,s)}return e});return{...e,loadPullRequests:r}}var fu=Jt(nt(qr)),pu=ln(function*(e){let t=uu(e);return du(yield*fu(e),t)}),mu=2e4,hu=n(`clientRuntime.state.fetchEnvironmentShellSnapshot`)(function*(e){return yield*ea({...e,group:`orchestration`,method:`GET`,url:e=>e.shellSnapshot(),timeoutMs:e.timeoutMs??mu,request:({client:e,headers:t})=>e.shellSnapshot({headers:ha(t),responseMode:`response-only`}).pipe(T(_u))})}),gu=Jt(nt(yt)),_u=e=>{if(e.status===200)return e.json.pipe(T(pu));let t=new g({reason:new ft({request:e.request,response:e})});return e.json.pipe(T(gu),se({onFailure:()=>S(t),onSuccess:S}))},vu=class extends ut()(`@p4code/client-runtime/state/shellSnapshotHttp/ShellSnapshotLoader`){},yu=At(vu,M(function*(){let e=yield*In,t=yield*Gt(sa),n=yield*Gt(ma);return vu.of({load:r=>hu({prepared:r,signer:t,remoteAuthorization:n}).pipe(V(j),Ne(In,e),s(e=>H(`Could not load the environment shell snapshot over HTTP; using the socket snapshot instead.`).pipe(B({cause:Nt(e)}),mt(O()))))})})),bu=u(v),xu=u(rn(Ce(i)));function Su(e,t){return e===t||xu(e,t)}function Cu(e,t){if(e===null||e.threads.length===0)return t;let n=new Map(e.threads.map(e=>[e.id,e])),r=0,i=t.threads.map(e=>{let t=n.get(e.id);return t===void 0||!bu(t,e.pullRequests===void 0&&t.pullRequests!==void 0?{...e,pullRequests:t.pullRequests}:e)?e:(r+=1,t)});return r===0?t:{...t,threads:i}}function wu(e,t){let n=e.findIndex(e=>e.id===t.id);return n===-1?[...e,t]:e.map((e,r)=>r===n?t:e)}function Tu(e,t){return t.repositoryIdentity==null&&e?.repositoryIdentity!=null&&e.workspaceRoot===t.workspaceRoot?{...t,repositoryIdentity:e.repositoryIdentity}:t}function Eu(e,t,n){if(e==null)return t;let r=n!==void 0,i=r?new Set(n.resolvedRepositoryIdentityRoots):null;if(r){let n=new Map(t.projects.map(e=>[e.id,e]));return{...e,projects:e.projects.map(e=>{let t=n.get(e.id);return t===void 0||t.workspaceRoot!==e.workspaceRoot?e:i?.has(e.workspaceRoot)===!0||e.repositoryIdentity==null&&t.repositoryIdentity!=null?{...e,repositoryIdentity:t.repositoryIdentity}:e})}}let a=new Map(e.projects.map(e=>[e.id,e]));return{...t,projects:t.projects.map(e=>{let t=a.get(e.id);return i?.has(e.workspaceRoot)===!0?e:Tu(t,e)})}}function Du(e,t){if(t.sequence<=e.snapshotSequence)return e;switch(t.kind){case`project.updated`:{let n=Tu(e.projects.find(e=>e.id===t.project.id),t.project);return{...e,projects:wu(e.projects,n),snapshotSequence:t.sequence}}case`project.removed`:return{...e,projects:e.projects.filter(e=>e.id!==t.projectId),snapshotSequence:t.sequence};case`thread.updated`:{let n=t.location===`active`?e.threads.find(e=>e.id===t.thread.id):void 0;if(n!==void 0&&bu(n,t.thread))return{...e,snapshotSequence:t.sequence};let r=e=>e.filter(e=>e.id!==t.thread.id);return{...e,threads:t.location===`active`?wu(e.threads,t.thread):r(e.threads),archivedThreads:r(e.archivedThreads),snapshotSequence:t.sequence}}case`thread.removed`:return{...e,threads:e.threads.filter(e=>e.id!==t.threadId),archivedThreads:e.archivedThreads.filter(e=>e.id!==t.threadId),snapshotSequence:t.sequence};default:return e}}function Ou(e){return{openInEditor:G(e,{label:`environment-data:shell:open-in-editor`,tag:w.shellOpenInEditor})}}var ku={snapshot:O(),status:`empty`,error:O()};function Au(e){return E(e)?`cached`:`empty`}function ju(e){if(e.loadPullRequests===void 0)return e;let{loadPullRequests:t,...n}=e;return n}var Mu=`Could not synchronize environment data.`,Nu=n(`EnvironmentShellState.make`)(function*(){let e=yield*Ca,t=yield*Ta,r=yield*vu,i=yield*Gt(_a),a=e.target.environmentId,o=yield*t.loadShell(a).pipe(x(e=>H(`Could not load cached environment shell.`).pipe(B({environmentId:a,...Yi(e)}),mt(O())))),s=ar(o,ju),c=yield*Jr({snapshot:s,status:Au(s),error:O()}),l=yield*Bi(!1),u=yield*Bi(null),f=yield*Bi(null),m=yield*Bi(O()),h=yield*Ar(1),g=yield*$e(1),_,v=new Set,ee=n(`EnvironmentShellState.persistLatest`)(function*(e){for(;;){let n=yield*q(m);if(k(n)||n.value===_||n.value.threads.some(e=>v.has(e)))return;let r=n.value;if(!(yield*t.saveShell(a,r).pipe(mt(!0),x(e=>H(`Could not persist environment shell cache.`).pipe(B({environmentId:a,...Yi(e)}),mt(!1)))))||(_=r,!e))return}},g.withPermit),y=()=>ee(!1),te=ee(!0);yield*Xt(()=>te),yield*El(h,y).pipe(P);let ne=W(l,!1).pipe(lt(ht(c,e=>({...e,status:Au(e.snapshot)}))),lt(te.pipe(P)),b),re=ht(c,e=>({...e,status:`synchronizing`,error:O()})),ie=ht(c,e=>e.status===`live`?e:{...e,status:`synchronizing`,error:O()}),ae=e=>W(l,!1).pipe(lt(H(`Could not synchronize the environment shell.`)),B({environmentId:a,...Yi(e)}),lt(ht(c,e=>({...e,status:Au(e.snapshot),error:j(Mu)})))),oe=yield*$e(1),se=n(`EnvironmentShellState.applyItems`)(function*(e,t){let n=yield*C(c),r=yield*q(l),i=n,a=!1;for(let t of e){if(t.kind===`synchronized`){r=!1,E(i.snapshot)&&(i={...i,status:`live`,error:O()});continue}let e=t.kind===`snapshot`?Eu(R(i.snapshot),t.snapshot,t.resolvedRepositoryIdentityRoots===void 0?void 0:{resolvedRepositoryIdentityRoots:t.resolvedRepositoryIdentityRoots}):vr(i.snapshot,{onNone:()=>null,onSome:e=>t.sequence>e.snapshotSequence?Du(e,t):e});e!==null&&(a||=t.kind===`snapshot`,i={snapshot:j(e),status:r?`synchronizing`:`live`,error:O()})}if(yield*W(l,r),i!==n){if(t!==void 0&&E(i.snapshot)&&(v=new Set(i.snapshot.value.threads.filter(e=>t.has(e.id)))),E(i.snapshot)&&(yield*W(m,i.snapshot)),yield*xe(c,i),a){let e=yield*q(f);e!==null&&(yield*W(u,e))}i.snapshot!==n.snapshot&&E(i.snapshot)&&(yield*jn(h,i.snapshot.value))}},oe.withPermit),ce=yield*hr,le,ue=qn(()=>{let e=le;return le=void 0,e===void 0?p:Gr(e)}),de=ln(function*(e,t){if(yield*ue,e.loadPullRequests===void 0)return;let n=new Set(t.threads),r=new Set(e.threads.map(e=>e.id));v=new Set(t.threads.filter(e=>r.has(e.id))),le=yield*e.loadPullRequests.pipe(T(e=>fe(e,n,r)),Kt(ce))}),fe=ln(function*(e,t,n){let r=yield*d(c,r=>{if(k(r.snapshot))return[O(),r];let i=r.snapshot.value,a=!1,o=i.threads.map(r=>{if(!t.has(r)||!n.has(r.id))return r;let i=e.get(r.id);if(Su(r.pullRequests,i))return r;if(a=!0,i===void 0){let{pullRequests:e,...t}=r;return t}return{...r,pullRequests:i}});if(!a)return[O(),r];let s={...i,threads:o};return[j(s),{...r,snapshot:j(s)}]});v=new Set;let i=yield*q(m);if(k(i))return;let a=E(r)?r:i;yield*W(m,a),yield*jn(h,a.value)},e=>oe.withPermit(e));E(o)&&E(s)&&(yield*de(o.value,s.value));let pe=vr(i,{onNone:()=>He,onSome:e=>e.changes.pipe(st(oa))});return yield*re,yield*P(ya(bn.subscribeShell,n(`EnvironmentShellState.makeSubscribeInput`)(function*(t){yield*W(f,t);let n=yield*t.initialConfig.pipe(V(e=>e.shellResumeCompletionMarker===!0),Be(()=>!1));yield*W(l,n),yield*re;let i=(yield*q(u))===t,a=i,o=yield*C(c);if(!i||k(o.snapshot)){let t=yield*C(e.prepared).pipe(T(vr({onSome:L,onNone:()=>Fe(e.prepared).pipe(st(E),Ge(e=>e.value),Yr,V(tr))}))),n=yield*r.load(t);if(E(n)){yield*ue;let e=yield*C(c),t=Cu(R(e.snapshot),ju(n.value)),r=new Set(n.value.loadPullRequests===void 0?[]:n.value.threads.map(e=>e.id));yield*se([{kind:`snapshot`,snapshot:t}],r),a=!0,o=yield*C(c),E(o.snapshot)&&(yield*de(n.value,o.snapshot.value))}}return!a||k(o.snapshot)?n?{requestCompletionMarker:!0}:{}:(n||(yield*ht(c,e=>({...e,status:`live`,error:O()}))),{afterSequence:o.snapshot.value.snapshotSequence,...n?{requestCompletionMarker:!0}:{}})}),{onExpectedFailure:e=>ae(et(e)),retryExpectedFailureAfter:`250 millis`,resubscribe:pe}).pipe(it(e=>se(e)))),yield*Fe(e.state).pipe(Ie(e=>{switch($r(e)){case`synchronizing`:return re;case`disconnected`:return ne;case`ready`:return ie}}),P),c});function Pu(e){return ba(e,Mt(Nu().pipe(V(Fe))))}Object.freeze({hasSnapshot:!1,hasSynchronizingShell:!1,hasCachedShell:!1,hasLiveShell:!1,firstError:null});var Fu=new Map;function Iu(e,t){if(e.size!==t.size)return!1;for(let[n,r]of e)if(t.get(n)!==r)return!1;return!0}function Lu(e){let t=Fu;return D(n=>{let r=new Map;for(let t of fc(n(e.catalogValueAtom))){let i=n(e.serverConfigValueAtom(t));i!==null&&r.set(t,i)}return Iu(t,r)||(t=r),t}).pipe(F(`environment-server-configs`))}function Ru(e){let t=I(t=>e.atom(Pu(t),{initialValue:ku}));return{stateAtom:t,stateValueAtom:I(e=>D(n=>cn(We(n(t(e))),()=>ku)).pipe(F(`environment-shell-state-value:${e}`)))}}function zu(e,t){return t.visibility===`local`||t.sourceThreadId===e.thread.id}function Bu(e){let t=e.visibleTurnItems.filter(t=>zu(e,t)).map(e=>e.item);return t.length===0?e:{...e,turnItems:[...t,...e.turnItems]}}function Vu(e){return e.turnItemsOmitLocalVisible===!0?Bu(e.projection):e.projection}function Hu(e){let{item:t}=e;return t.type!==`run_interrupt_result`||t.runId===null||t.nodeId===null||!e.attempts.some(e=>e.runId===t.runId&&e.rootNodeId===t.nodeId&&e.status===`superseded`)?!1:!e.items.some(e=>e.type===`run_interrupt_request`&&e.runId===t.runId)}function Uu(e){let{item:t}=e;return t.runId!==null&&e.runs.some(e=>e.id===t.runId&&e.status===`rolled_back`)||t.type===`user_message`&&t.inputIntent===`queued_turn`&&t.runId!==null&&e.runs.some(e=>e.id===t.runId&&e.status===`cancelled`)?!1:!Hu({item:t,attempts:e.attempts,items:e.items})}function Wu(e){let t=new Map(e.runs.map(e=>[e.id,e.status])),n=new Map;for(let t of e.attempts){if(t.status!==`superseded`)continue;let e=n.get(t.runId);e===void 0&&n.set(t.runId,e=new Set),e.add(t.rootNodeId)}let r=new Set(e.items.filter(e=>e.type===`run_interrupt_request`).map(e=>e.runId));return e=>{let i=e.runId===null?void 0:t.get(e.runId);return i===`rolled_back`||i===`cancelled`&&e.type===`user_message`&&e.inputIntent===`queued_turn`?!1:!(e.type===`run_interrupt_result`&&e.runId!==null&&e.nodeId!==null&&n.get(e.runId)?.has(e.nodeId)===!0&&!r.has(e.runId))}}function Gu(e,t){let n=e.findIndex(e=>e.id===t.id);if(n===-1)return[...e,t];let r=[...e];return r[n]=t,r}function Ku(e,t){let n=e.findIndex(e=>e.sourceItemId===t);return n===-1?e:qu([...e.slice(0,n),...e.slice(n+1)])}function qu(e){return e.map((e,t)=>e.position===t?e:{...e,position:t})}function Ju(e,t){return Uu({item:t,runs:e.runs,attempts:e.attempts,items:e.turnItems})}function Yu(e){let t=e.visibleTurnItems,n=Wu({runs:e.runs,attempts:e.attempts,items:e.turnItems}),r=null;for(let e=0;e<t.length;e+=1){let i=t[e];if(!(i.visibility!==`local`||n(i.item))){r??=t.slice(0,e);continue}r?.push(i)}return r===null?t:qu(r)}function Xu(e){let t=null;for(let n of e)n.visibility===`local`&&(t===null||n.item.ordinal<t)&&(t=n.item.ordinal);return t}var Zu=new Set([`preparing`,`queued`,`starting`,`running`,`waiting`]);function Qu(e,t,n){return e.visibleTurnItems.some(e=>e.sourceItemId===t.id)?!1:t.runId===null?$u(e,t,n):e.runs.some(e=>e.id===t.runId&&Zu.has(e.status))||e.visibleTurnItems.some(e=>e.visibility===`local`&&e.item.runId===t.runId&&e.item.ordinal<=t.ordinal)?!1:$u(e,t,n)}function $u(e,t,n){if(n!=null&&t.ordinal<=n)return!0;let r=Xu(e.visibleTurnItems);return r!==null&&t.ordinal<r}function ed(e,t,n,r){let i=e.visibleTurnItems,a=i.findIndex(e=>e.sourceItemId===t.id),o={position:0,visibility:`local`,sourceThreadId:t.threadId,sourceItemId:t.id,item:t},s=a===-1?void 0:i[a];if(s!==void 0&&s.visibility===o.visibility&&s.sourceThreadId===o.sourceThreadId&&s.sourceItemId===o.sourceItemId&&s.item===t||a===-1&&n&&Qu(e,t,r))return i;let c=a===-1?[...i]:[...i.slice(0,a),...i.slice(a+1)],l=c.findIndex(e=>e.visibility===`local`&&(e.item.ordinal>t.ordinal||e.item.ordinal===t.ordinal&&String(e.item.id).localeCompare(String(t.id))>0));return c.splice(l===-1?c.length:l,0,o),qu(c)}function td(e,t,n){if(e===null||t.threadId!==e.thread.id)return e;let r=n?.partialTimeline===!0,i=n?.latestLocalTurnOrdinal,a={...e,updatedAt:t.occurredAt};switch(t.type){case`thread.pull-request-link-updated`:return{...a,thread:Lo(e.thread,t.payload)};case`thread.created`:case`thread.archived`:case`thread.unarchived`:case`thread.deleted`:case`thread.settled`:case`thread.unsettled`:case`thread.snoozed`:case`thread.unsnoozed`:case`thread.auto-settle-set`:case`thread.pinned`:case`thread.unpinned`:case`thread.pin-reordered`:case`thread.active-reordered`:case`thread.metadata-updated`:case`thread.pull-request-synced`:case`thread.runtime-mode-updated`:case`thread.interaction-mode-updated`:case`thread.model-selection-updated`:case`thread.provider-switched`:return{...a,thread:t.payload};case`thread.visited`:case`thread.marked-unread`:return{...e,thread:t.payload};case`run.created`:case`run.updated`:{let e={...a,runs:Gu(a.runs,t.payload)};return{...e,visibleTurnItems:Yu(e)}}case`run.background-work-cancelled`:return{...a,runs:a.runs.map(e=>e.id===t.payload.runId?{...e,restartCancelledBackgroundWork:t.payload.restartCancelledBackgroundWork}:e)};case`run-attempt.created`:case`run-attempt.updated`:{let e={...a,attempts:Gu(a.attempts,t.payload)};return{...e,visibleTurnItems:Yu(e)}}case`node.updated`:return{...a,nodes:Gu(a.nodes,t.payload)};case`subagent.updated`:return{...a,subagents:Gu(a.subagents,t.payload)};case`provider-session.attached`:case`provider-session.updated`:return{...a,providerSessions:Gu(a.providerSessions,t.payload)};case`provider-session.detached`:return{...a,providerSessions:a.providerSessions.filter(e=>e.id!==t.payload.providerSessionId)};case`provider-thread.updated`:return{...a,providerThreads:Gu(a.providerThreads,t.payload)};case`provider-turn.updated`:return{...a,providerTurns:Gu(a.providerTurns,{...t.payload,...(t.payload.tokenUsage??a.providerTurns.find(e=>e.id===t.payload.id)?.tokenUsage)===void 0?{}:{tokenUsage:t.payload.tokenUsage??a.providerTurns.find(e=>e.id===t.payload.id)?.tokenUsage}})};case`runtime-request.updated`:return{...a,runtimeRequests:Gu(a.runtimeRequests,t.payload)};case`message.updated`:return{...a,messages:Gu(a.messages,t.payload)};case`plan.updated`:return{...a,plans:Gu(a.plans,t.payload)};case`turn-item.updated`:{if(r&&!e.turnItems.some(e=>e.id===t.payload.id)&&Qu(e,t.payload,i))return e;let n={...a,turnItems:Gu(a.turnItems,t.payload)},o=e.turnItems.find(e=>e.id===t.payload.id),s=t.payload.type===`run_interrupt_request`||o?.type===`run_interrupt_request`?{...n,visibleTurnItems:Yu(n)}:n;return{...n,visibleTurnItems:Ju(n,t.payload)?ed(s,t.payload,r,i):Ku(s.visibleTurnItems,t.payload.id)}}case`checkpoint-scope.created`:return{...a,checkpointScopes:Gu(a.checkpointScopes,t.payload)};case`checkpoint.captured`:return{...a,checkpoints:Gu(a.checkpoints,t.payload)};case`checkpoint.rollback-requested`:return a;case`context-handoff.updated`:return{...a,contextHandoffs:Gu(a.contextHandoffs,t.payload)};case`context-transfer.created`:case`context-transfer.updated`:return{...a,contextTransfers:Gu(a.contextTransfers,t.payload)}}}var nd=3e5,rd=class extends ut()(`@p4code/client-runtime/state/threadHistoryController`){},id=At(rd,M(function*(){let e=yield*Bi(new Map);return rd.of({register:(t,n,r)=>yi(e,e=>{let i=new Map(e);return i.set(Z({environmentId:t,threadId:n}),r),i}).pipe(mt({environmentId:t,threadId:n,handler:r})),unregister:t=>yi(e,e=>{let n=Z({environmentId:t.environmentId,threadId:t.threadId});if(e.get(n)!==t.handler)return e;let r=new Map(e);return r.delete(n),r}),loadEarlier:(t,n,r)=>q(e).pipe(T(e=>{let i=e.get(Z({environmentId:t,threadId:n}));return i===void 0?L({_tag:`noop`}):i.loadEarlier(r)}))})})),ad=6e3,od=n(`clientRuntime.state.fetchEnvironmentThreadHistoryPage`)(function*(e){let t={params:{threadId:e.threadId},query:{cursor:e.cursor,...e.view===void 0?{}:{view:e.view},...e.throughEntryId===void 0?{}:{throughEntryId:e.throughEntryId}}};return yield*ea({...e,group:`orchestration`,method:`GET`,url:e=>e.threadHistoryPage(t),timeoutMs:e.timeoutMs??ad,request:({client:e,headers:n})=>e.threadHistoryPage({...t,headers:ha(n)})})}),sd={historyCursor:null,hasMoreHistory:!1,loading:!1,error:null,expanded:!1,latestLocalTurnOrdinal:null};function cd(e,t){return t.historyCursor===e}function ld(e,t){return!cd(e,t)||!t.loading?t:{...t,loading:!1}}function ud(e){return`${e.sourceThreadId}:${e.sourceItemId}`}function dd(e){return e.map((e,t)=>e.position===t?e:{...e,position:t})}function fd(e,t){if(t.length===0)return e;let n=new Map(e.visibleTurnItems.map(e=>[ud(e),e])),r=new Map(e.turnItems.map(e=>[String(e.id),e])),i=new Set,a=[];for(let o of t){let t=ud(o);if(i.has(t))continue;let s=n.get(t)??o;if(!n.has(t)&&(s.visibility===`local`||s.sourceThreadId===e.thread.id)){let t=r.get(String(s.sourceItemId));if(t!==void 0){if(t.type!==`run_interrupt_request`||!Uu({item:t,runs:e.runs,attempts:e.attempts,items:e.turnItems}))continue;s={...s,item:t}}}i.add(t),a.push(s),(s.visibility===`local`||s.sourceThreadId===e.thread.id)&&!r.has(String(s.sourceItemId))&&r.set(String(s.sourceItemId),s.item)}if(a.length===0)return e;let o=[...a,...e.visibleTurnItems.filter(e=>!i.has(ud(e)))];return o.length===e.visibleTurnItems.length&&o.every((t,n)=>t===e.visibleTurnItems[n])?e:{...e,turnItems:[...r.values()],visibleTurnItems:dd(o)}}function pd(e,t){return{historyCursor:t.nextCursor,hasMoreHistory:t.hasMoreHistory,loading:!1,error:null,expanded:!0,latestLocalTurnOrdinal:e.latestLocalTurnOrdinal}}function md(e){return e.hasMoreHistory||e.error!==null}var hd=2e4,gd=n(`clientRuntime.state.fetchEnvironmentThreadSnapshot`)(function*(e){return yield*ea({...e,group:`orchestration`,method:`GET`,url:t=>t.threadSnapshot({params:{threadId:e.threadId}}),timeoutMs:e.timeoutMs??hd,request:({client:t,headers:n})=>t.threadSnapshot({params:{threadId:e.threadId},headers:ha(n)})})}),_d=class extends ut()(`@p4code/client-runtime/state/threadSnapshotHttp/ThreadSnapshotLoader`){},vd={data:O(),status:`empty`,error:O(),history:sd},yd=``,bd=nn;function xd(e){return Bn(e,tt(bd),e=>e.join(yd))}function Sd(e){return e.length===0?[]:Bn(e.split(yd),Pe(e=>ze.make(e)))}function Cd(e){return I(t=>D(n=>{let r=[],i=null,a=!1;for(let o of Sd(t)){let t=n(e.getSnapshotAtom(o));a||=t.waiting;let s=R(We(t));s!==null&&r.push({environmentId:o,snapshot:s}),i===null&&t._tag===`Failure`&&(i=`Failed to load archived threads.`)}return{snapshots:r,error:i,isLoading:a}}).pipe(F(`${e.labelPrefix}:${t}`)))}var wd=6e3,Td=n(`clientRuntime.state.fetchEnvironmentBoundedThreadSnapshot`)(function*(e){let t={params:{threadId:e.threadId},query:{compactTurnItems:`1`}};return yield*ea({...e,group:`orchestration`,method:`GET`,url:e=>e.threadBoundedSnapshot(t),timeoutMs:e.timeoutMs??wd,request:({client:e,headers:n})=>e.threadBoundedSnapshot({...t,headers:ha(n)})}).pipe(V(({turnItemsOmitLocalVisible:e,...t})=>({...t,projection:Vu({...t,turnItemsOmitLocalVisible:e})})))}),Ed=At(_d,M(function*(){let e=yield*In,t=yield*Gt(sa),n=yield*Gt(ma);return _d.of({load:(r,i)=>{let a=gd({prepared:r,threadId:i,signer:t,remoteAuthorization:n}).pipe(V(e=>({_tag:`present`,snapshot:e})),Ne(In,e),Ye({EnvironmentResourceNotFoundError:()=>vn(`Full thread snapshot not found over HTTP after bounded fallback; treating the thread as deleted.`).pipe(B({threadId:i}),mt({_tag:`missing`}))}),s(e=>H(`Could not load the full thread snapshot over HTTP after bounded fallback; using the socket snapshot instead.`).pipe(B({threadId:i,cause:Nt(e)}),mt({_tag:`unavailable`}))));return Td({prepared:r,threadId:i,signer:t,remoteAuthorization:n}).pipe(V(e=>({_tag:`present`,snapshot:{snapshotSequence:e.snapshotSequence,projection:e.projection,latestLocalTurnOrdinal:e.latestLocalTurnOrdinal},history:{historyCursor:e.historyCursor,hasMoreHistory:e.hasMoreHistory,latestLocalTurnOrdinal:e.latestLocalTurnOrdinal}})),Ne(In,e),Ye({EnvironmentResourceNotFoundError:()=>vn(`Bounded thread snapshot not found over HTTP; treating the thread as deleted.`).pipe(B({threadId:i}),mt({_tag:`missing`})),RemoteEnvironmentAuthInvalidJsonError:e=>vn(`Bounded thread snapshot returned an invalid response; trying the full HTTP thread snapshot for an older server.`).pipe(B({threadId:i,cause:e.message}),lt(a)),RemoteEnvironmentAuthUndeclaredStatusError:e=>e.status===404?vn(`Bounded thread snapshot route was not found; trying the full HTTP thread snapshot for an older server.`).pipe(B({threadId:i}),lt(a)):S(e)}),s(e=>H(`Could not load the bounded thread snapshot over HTTP; using the socket snapshot instead.`).pipe(B({threadId:i,cause:Nt(e)}),mt({_tag:`unavailable`}))))}})}));function Dd(e){let t=I(e=>D([]).pipe(An)),n=I(n=>D(r=>{let i=r(e(n)),a=r(t(n));if(i===null||a.length===0)return i;let o=new Map;for(let e of a){if(e.sequence!==void 0&&e.sequence<=i.snapshotSequence)continue;let t=o.get(e.threadId)??[];t.push(e),o.set(e.threadId,t)}return o.size===0?i:{...i,threads:i.threads.map(e=>(o.get(e.id)??[]).reduce((e,t)=>t.apply(e),e))}}));function r(n,r){return{label:n.label,run:async(i,a)=>{let o=En(),s=t(a.environmentId),c=e(a.environmentId),l={threadId:a.input.threadId,apply:e=>r(e,a.input,o,l.sequence!==void 0)},u=()=>i.update(s,e=>e.filter(e=>e!==l));i.update(s,e=>[...e,l]);let d=!1;try{let e=await n.run(i,a);if(e._tag===`Success`){l.sequence=e.value.sequence,i.update(s,e=>[...e]);let t=t=>{(t===null||t.snapshotSequence>=e.value.sequence)&&(u(),n())},n=i.subscribe(c,t);t(i.get(c)),d=!0}return e}finally{d||u()}}}}return{snapshotAtom:n,wrap:r}}function Od(e,t){let n=da(),r={mode:`serial`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.threadId])},i={create:U(e,{label:`environment-data:commands:thread:create`,execute:e=>rs(e),scheduler:n,concurrency:r}),delete:U(e,{label:`environment-data:commands:thread:delete`,execute:e=>as(e),scheduler:n,concurrency:r}),archive:U(e,{label:`environment-data:commands:thread:archive`,execute:e=>os(e),scheduler:n,concurrency:r}),unarchive:U(e,{label:`environment-data:commands:thread:unarchive`,execute:e=>ss(e),scheduler:n,concurrency:r}),settle:U(e,{label:`environment-data:commands:thread:settle`,execute:e=>cs(e),scheduler:n,concurrency:r}),unsettle:U(e,{label:`environment-data:commands:thread:unsettle`,execute:e=>ms(e),scheduler:n,concurrency:r}),snooze:U(e,{label:`environment-data:commands:thread:snooze`,execute:e=>hs(e),scheduler:n,concurrency:r}),unsnooze:U(e,{label:`environment-data:commands:thread:unsnooze`,execute:e=>gs(e),scheduler:n,concurrency:r}),pin:U(e,{label:`environment-data:commands:thread:pin`,execute:e=>ls(e),scheduler:n,concurrency:r}),unpin:U(e,{label:`environment-data:commands:thread:unpin`,execute:e=>ps(e),scheduler:n,concurrency:r}),reorderPin:U(e,{label:`environment-data:commands:thread:reorder-pin`,execute:e=>ds(e),scheduler:n,concurrency:r}),setAutoSettle:U(e,{label:`environment-data:commands:thread:set-auto-settle`,execute:e=>us(e),scheduler:n,concurrency:r}),reorderActive:U(e,{label:`environment-data:commands:thread:reorder-active`,execute:e=>fs(e),scheduler:n,concurrency:r}),visit:U(e,{label:`environment-data:commands:thread:visit`,execute:e=>_s(e),scheduler:n,concurrency:r}),markUnread:U(e,{label:`environment-data:commands:thread:mark-unread`,execute:e=>vs(e),scheduler:n,concurrency:r}),updateMetadata:U(e,{label:`environment-data:commands:thread:update-metadata`,execute:e=>ys(e),scheduler:n,concurrency:r}),linkPullRequest:U(e,{label:`environment-data:commands:thread:link-pull-request`,execute:e=>Ls(e),scheduler:n,concurrency:r}),unlinkPullRequest:U(e,{label:`environment-data:commands:thread:unlink-pull-request`,execute:e=>Vs(e),scheduler:n,concurrency:r}),linkDesign:U(e,{label:`environment-data:commands:thread:link-design`,execute:e=>Rs(e),scheduler:n,concurrency:r}),unlinkDesign:U(e,{label:`environment-data:commands:thread:unlink-design`,execute:e=>zs(e),scheduler:n,concurrency:r}),watchPullRequest:U(e,{label:`environment-data:commands:thread:watch-pull-request`,execute:e=>Bs(e),scheduler:n,concurrency:r}),setRuntimeMode:U(e,{label:`environment-data:commands:thread:set-runtime-mode`,execute:e=>bs(e),scheduler:n,concurrency:r}),setInteractionMode:U(e,{label:`environment-data:commands:thread:set-interaction-mode`,execute:e=>xs(e),scheduler:n,concurrency:r}),startTurn:U(e,{label:`environment-data:commands:thread:start-turn`,execute:e=>Ss(e),scheduler:n,concurrency:r}),interruptTurn:U(e,{label:`environment-data:commands:thread:interrupt-turn`,execute:e=>Cs(e),scheduler:n,concurrency:r}),respondToApproval:U(e,{label:`environment-data:commands:thread:respond-to-approval`,execute:e=>ws(e),scheduler:n,concurrency:r}),respondToUserInput:U(e,{label:`environment-data:commands:thread:respond-to-user-input`,execute:e=>Ts(e),scheduler:n,concurrency:r}),dismissUserInput:U(e,{label:`environment-data:commands:thread:dismiss-user-input`,execute:e=>Es(e),scheduler:n,concurrency:r}),revertCheckpoint:U(e,{label:`environment-data:commands:thread:revert-checkpoint`,execute:e=>Ds(e),scheduler:n,concurrency:r}),stopSession:U(e,{label:`environment-data:commands:thread:stop-session`,execute:e=>Os(e),scheduler:n,concurrency:r}),forkFromRun:U(e,{label:`environment-data:commands:thread:fork-from-run`,execute:e=>ks(e),scheduler:n,concurrency:{mode:`serial`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.sourceThreadId])}}),mergeBack:U(e,{label:`environment-data:commands:thread:merge-back`,execute:e=>As(e),scheduler:n,concurrency:{mode:`serial`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.sourceThreadId,t.targetThreadId])}}),resumeThreadQueue:U(e,{label:`environment-data:commands:thread:resume-queue`,execute:e=>js(e),scheduler:n,concurrency:r}),reorderQueuedRun:U(e,{label:`environment-data:commands:thread:reorder-queued-run`,execute:e=>Ms(e),scheduler:n,concurrency:r}),promoteQueuedRun:U(e,{label:`environment-data:commands:thread:promote-queued-run`,execute:e=>Ns(e),scheduler:n,concurrency:r}),cancelQueuedRun:U(e,{label:`environment-data:commands:thread:cancel-queued-run`,execute:e=>Ps(e),scheduler:n,concurrency:r}),retryWorkspacePreparation:U(e,{label:`environment-data:commands:thread:retry-workspace-preparation`,execute:e=>Fs(e),scheduler:n,concurrency:r}),editQueuedRun:U(e,{label:`environment-data:commands:thread:edit-queued-run`,execute:e=>Is(e),scheduler:n,concurrency:r}),loadEarlierHistory:U(e,{label:`environment-data:commands:thread:load-earlier-history`,execute:e=>M(function*(){let t=yield*Ca,n=yield*Gt(rd);return k(n)?{_tag:`noop`}:yield*n.value.loadEarlier(t.target.environmentId,e.threadId,e.throughEntryId)}),scheduler:n,concurrency:{mode:`serial`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.threadId])}}),uploadFeedback:G(e,{label:`environment-data:commands:thread:upload-feedback`,tag:w.providerUploadFeedback,scheduler:n,concurrency:r})},a=Dd(t);return{...i,snapshotAtom:a.snapshotAtom,settle:a.wrap(i.settle,(e,t,n,r)=>!r&&(e.pendingRuntimeRequest!==null||[`preparing`,`queued`,`starting`,`running`,`waiting`].includes(e.status))?e:{...e,pendingRuntimeRequest:null,settledOverride:`settled`,settledAt:e.settledOverride===`settled`?e.settledAt??n:n,unsettledAt:null,activeOrderKey:null,pinnedAt:null,pinOrderKey:null,snoozedAt:null,snoozedUntil:null}),unsettle:a.wrap(i.unsettle,(e,t,n)=>({...e,settledOverride:t.reason===`user`?`active`:null,settledAt:null,unsettledAt:e.settledOverride===`active`?e.unsettledAt??null:n})),snooze:a.wrap(i.snooze,(e,t,n,r)=>!r&&(e.pendingRuntimeRequest!==null||[`preparing`,`queued`,`starting`].includes(e.status))||!(Date.parse(t.snoozedUntil)>Wt(n))?e:{...e,pendingRuntimeRequest:null,snoozedUntil:er(t.snoozedUntil),snoozedAt:e.snoozedUntil!=null&&on(e.snoozedUntil)===t.snoozedUntil?e.snoozedAt??n:n}),unsnooze:a.wrap(i.unsnooze,e=>({...e,snoozedUntil:null,snoozedAt:null})),setAutoSettle:a.wrap(i.setAutoSettle,(e,t,n)=>({...e,autoSettleDisabledAt:t.enabled?null:e.autoSettleDisabledAt??n})),pin:a.wrap(i.pin,(e,t,n)=>({...e,pinnedAt:e.pinnedAt??n,pinOrderKey:e.pinnedAt==null?t.orderKey??null:e.pinOrderKey,...e.settledOverride===`settled`?{settledOverride:`active`,settledAt:null,unsettledAt:n}:{},snoozedUntil:null,snoozedAt:null})),unpin:a.wrap(i.unpin,e=>({...e,pinnedAt:null,pinOrderKey:null})),reorderPin:a.wrap(i.reorderPin,(e,t)=>({...e,pinOrderKey:t.orderKey})),reorderActive:a.wrap(i.reorderActive,(e,t)=>({...e,activeOrderKey:t.orderKey}))}}function kd(e){let t=/^\/feedback(?:\s+([\s\S]*))?$/iu.exec(e.trim());if(!t)return null;let n=t[1]?.trim();return n?{reason:n}:{}}function Ad(e){switch(e.status){case`interrupted`:return null;case`uploading`:return{title:`Sending feedback to OpenAI...`,description:void 0};case`sent`:return{title:`Feedback sent to OpenAI`,description:`Thread ID: ${e.feedbackId}`};case`failed`:return{title:`Could not send feedback to OpenAI`,description:e.errorMessage}}}function jd(e,t=`user`){let n=t===`user`?e.command:e.status===`sent`?`Feedback sent to OpenAI.\n\nThread ID: \`${e.feedbackId}\``:e.status===`failed`?`Could not send feedback to OpenAI.\n\n${e.errorMessage}`:`Sending feedback to OpenAI...`;return{id:t===`user`?e.id:Xe.make(`${e.id}:feedback`),role:t,text:n,turnId:null,streaming:!1,createdAt:e.createdAt,updatedAt:e.createdAt}}async function Md(e){e.onUpdate({...e.submission,status:`uploading`}),e.clearDraft();let t=await e.upload();if(t._tag===`Success`)e.onUpdate({...e.submission,status:`sent`,feedbackId:t.value.feedbackId});else if(Oi(t))e.onUpdate({...e.submission,status:`interrupted`});else{let n=zi(t);e.onUpdate({...e.submission,status:`failed`,errorMessage:n instanceof Error?n.message:`An error occurred.`})}return t}var Nd=new Set([`preparing`,`starting`,`running`,`waiting`]),Pd=new Set([`waiting`,`completed`]),Fd=new Set([`preparing`,`starting`,`running`]);function Id(e){return e.runs.findLast(e=>Nd.has(e.status))??null}function Ld(e){let t=e.runs.reduce((e,t)=>Pd.has(t.status)&&(e===null||t.ordinal>e.ordinal)?t:e,null);return t===null||e.runs.some(e=>e.ordinal>t.ordinal&&Fd.has(e.status))?null:t}function Rd(e){let t=Id(e)?.providerThreadId??e.thread.activeProviderThreadId,n=((t===null?null:e.providerThreads.find(e=>e.id===t)??null)??e.providerThreads.find(t=>t.appThreadId===e.thread.id&&t.providerSessionId!==null)??null)?.providerSessionId??null;return n===null?e.providerSessions.findLast(e=>e.status!==`stopped`&&e.status!==`error`)??null:e.providerSessions.find(e=>e.id===n)??null}function zd(e){if(e==null)return!1;let t=Rd(e);return t===null?Id(e)===null?e.thread.historyOrigin===`v1_import`||e.runs.length===0||e.providerThreads.some(t=>t.id===e.thread.activeProviderThreadId&&t.appThreadId===e.thread.id&&t.providerInstanceId===e.thread.modelSelection.instanceId&&t.nativeThreadRef!==null):!1:t.capabilities.sessions.supportsProviderSwitchingViaHandoff}function Bd(e){let t=new Set(e.messages.filter(e=>e.delegatedCompletion!==void 0||e.notification!==void 0).map(e=>e.id));return e.runs.filter(e=>e.status===`queued`&&!t.has(e.userMessageId))}function Vd(e){let t=Id(e),n=Rd(e)?.capabilities.turns,r=t?.status===`running`&&t.activeAttemptId!==null&&e.providerTurns.some(e=>e.runAttemptId===t.activeAttemptId&&e.status===`running`);return{activeRun:t,queuedRuns:Ya(Bd(e),(e,t)=>(e.queuePosition??e.ordinal)-(t.queuePosition??t.ordinal)||e.ordinal-t.ordinal).map(t=>{let n=e.messages.find(e=>e.id===t.userMessageId);return{run:t,text:n?.text??`Queued message`,attachments:n?.attachments??[],messageId:t.userMessageId,...n?.context?{context:n.context}:{}}}),isHeld:e.runs.some(e=>e.status===`queued`&&e.queueHeld===!0),canReorder:n?.supportsQueuedMessages===!0,canPromoteToSteer:r&&(n?.supportsActiveSteering===!0||n?.supportsSteeringByInterruptRestart===!0),canSteerAll:r&&n?.supportsActiveSteering===!0}}function Hd(e){let t=e.projectedItem.item;if(t.type!==`assistant_message`||t.runId===null||t.status!==`completed`)return!1;if(e.capabilities===void 0)return!0;let n=e.capabilities;return n.threads.canForkThread&&n.threads.canForkFromTurn&&n.identity.nativeThreadIds===`strong`||n.context.supportsFullThreadHandoff}function Ud(e){let t=Rd(e);return t!==null&&t.status!==`stopped`&&t.status!==`error`}function Wd(e){if(e==null)return{available:!1,reason:`This thread is still loading.`};let t=e.runs.reduce((e,t)=>t.status===`completed`&&t.checkpointId!==null&&(e===null||t.ordinal>e.ordinal)?t:e,null);if(t===null)return{available:!1,reason:`Nothing to share yet. A run has to finish first.`};let n=Rd(e)?.capabilities;return n!==void 0&&!(n.threads.canForkThread&&n.threads.canForkFromTurn&&n.identity.nativeThreadIds===`strong`)&&!n.context.supportsFullThreadHandoff?{available:!1,reason:`This provider cannot share history with a side chat yet.`}:{available:!0,upToRunOrdinal:t.ordinal}}function Gd(e){if(e.forkedFrom?.type!==`run`)return`Sees no history`;let t=e.forkedFrom.runId,n=e.parentRuns?.find(e=>e.id===t);return n===void 0?`Sees history`:`Sees up to run ${n.ordinal}`}function Kd(e){let t=new Set(e.flatMap(e=>e.deletedAt?[]:[`${e.environmentId}:${e.id}`]));return e=>{let n=e.lineage?.parentThreadId;return!e.sideChat||!n||!t.has(`${e.environmentId}:${n}`)}}function qd(e){return Wt(e.startedAt??e.updatedAt)}function Jd(e){if(e.subagents.length===0)return null;let t=Id(e),n=e.subagents.reduce((e,t)=>Wt(t.updatedAt)>Wt(e.updatedAt)?t:e),r=t?.id??n.runId,i=Ya(e.subagents.filter(e=>e.runId===r),(e,t)=>qd(e)-qd(t)||e.id.localeCompare(t.id));if(i.length===0)return null;let a=0,o=0;for(let e of i)Ws(e.status)?a+=1:Us(e.status)&&(o+=1);return{runId:r,turnActive:t!==null,subagents:i,liveCount:a,settledCount:o}}async function Yd(e,t){for(let n of e)if(n.responseCapability===`live`&&(await t(n.requestId,`decline`))?._tag!==`Success`)return!1;return!0}var Xd=`Why am I being asked this?`;function Zd(e){return e===`ask_rule`?`Full access skips approvals, but an ask rule in the agent's own settings matches this action, so it still asks. Remove or narrow that rule to stop these prompts.`:`Full access skips approvals, but the agent still stops for a few safety checks of its own that no setting can skip, such as a delete whose path it can't verify. P4 Code can't turn these off, so check the request and approve it if it's what you expect.`}function Qd(e,t){let n=t;for(let r of e)r.initialAnswer!==void 0&&r.allowCustomAnswer!==!1&&n[r.id]===void 0&&(n===t&&(n={...t}),n[r.id]={customAnswer:r.initialAnswer});return n}function $d(e){let t=[],n=[];for(let r of e.runtimeRequests){if(r.status!==`pending`)continue;let i=r.responseCapability.type;if(r.kind===`user_input`){let t=e.turnItems.findLast(e=>e.type===`user_input_request`&&e.requestId===r.id);if(t===void 0||t.type!==`user_input_request`)continue;n.push({requestId:r.id,createdAt:on(r.createdAt),questions:t.questions.map(e=>({...e,multiSelect:e.multiSelect??!1})),responseCapability:i,dismissible:t.responseMode===`message`||i===`message`,...t.responseMode===`message`||i===`message`?{responseMode:`message`}:{}});continue}if(r.kind===`auth_refresh`||r.kind===`dynamic_tool_call`)continue;let a=e.turnItems.findLast(e=>e.type===`approval_request`&&e.requestId===r.id);t.push({requestId:r.id,requestKind:r.kind,createdAt:on(r.createdAt),...a?.type===`approval_request`&&a.prompt?{detail:a.prompt}:{},...a?.type===`approval_request`&&a.reason?{reason:a.reason}:{},...a?.type===`approval_request`&&a.fullAccessOverride?{fullAccessOverride:a.fullAccessOverride}:{},...a?.type===`approval_request`&&a.appName?{appName:a.appName}:{},...a?.type===`approval_request`&&a.options!==void 0?{options:a.options}:{},responseCapability:i===`live`?`live`:`not_resumable`})}return{approvals:t,userInputs:n}}function ef(){let e,t,n,r=new WeakMap;return i=>{let{visibleTurnItems:a,runtimeRequests:o}=i;if(a===e&&o===t&&n)return n;let s=new Map(o.map(e=>[e.id,e])),c;for(let[e,t]of a.entries()){let n=t.item,i=n.type===`user_input_request`&&!n.questionAnswer?s.get(n.requestId):void 0,o=t;if(n.type===`user_input_request`&&i?.status===`resolved`&&i.answers!==void 0){let e=r.get(t);o=e?.request===i?e.row:{...t,item:{...n,questionAnswer:{requestId:i.id,answers:i.answers,attachmentsByQuestionId:{},questionTextById:Object.fromEntries(n.questions.map(e=>[e.id,e.question]))}}},r.set(t,{request:i,row:o})}o!==t&&(c??=a.slice(0,e)),c?.push(o)}return e=a,t=o,n=c??a,n}}var tf=Object.freeze([]);function nf(e){let t=I(t=>{let n=Cc(t);return D(t=>cn(We(t(e(n.environmentId,n.threadId))),()=>vd)).pipe(N(0),F(`environment-thread-state-value:${t}`))}),n=I(e=>{let n=Cc(e),r=null,i=null;return D(a=>{let o=R(a(t(e)).data);return o===r?i:(r=o,i=o===null?null:{environmentId:n.environmentId,projection:o},i)}).pipe(N(0),F(`environment-thread:${e}`))}),r=I(e=>{let n=ef();return D(r=>{let i=R(r(t(e)).data);return i===null?tf:n(i)}).pipe(N(0),F(`environment-thread-visible-turn-items:${e}`))}),i=I(e=>{let n=null,r=null;return D(i=>{let a=R(i(t(e)).data);if(a===null)n=null,r=null;else if(n===null||a.thread!==n.thread||a.runs!==n.runs||a.messages!==n.messages||a.providerThreads!==n.providerThreads||a.providerSessions!==n.providerSessions||a.providerTurns!==n.providerTurns){r=Vd(a);let{thread:e,runs:t,messages:i,providerThreads:o,providerSessions:s,providerTurns:c}=a;n={thread:e,runs:t,messages:i,providerThreads:o,providerSessions:s,providerTurns:c}}return r}).pipe(N(0),F(`environment-thread-queue:${e}`))}),a=I(e=>{let n=null,r=0;return D(i=>{let a=R(i(t(e)).data);if(a===null)n=null,r=0;else if(a.runs!==n?.runs||a.messages!==n?.messages){let{runs:e,messages:t}=a;n={runs:e,messages:t},r=Bd(n).length}return r}).pipe(N(0),F(`environment-thread-queue-count:${e}`))}),o=I(e=>{let n=null,r=null;return D(i=>{let a=R(i(t(e)).data);if(a===null)n=null,r=null;else if(a.runs!==n?.runs||a.subagents!==n?.subagents){let{runs:e,subagents:t}=a;n={runs:e,subagents:t},r=Jd(n)}return r}).pipe(N(0),F(`environment-thread-turn-subagents:${e}`))}),s=I(e=>D(n=>R(n(t(e)).data)?.thread.worktreePath??null).pipe(N(0),F(`environment-thread-worktree:${e}`))),c=I(e=>{let n=null,r=null;return D(i=>{let a=R(i(t(e)).data);if(a===null)return n=null,r=null,r;let o=a.runtimeRequests.filter(e=>e.status===`pending`),s=new Set(o.map(e=>e.id)),c=s.size===0?[]:a.turnItems.filter(e=>(e.type===`approval_request`||e.type===`user_input_request`)&&s.has(e.requestId));return(n===null||!Ec(n.runtimeRequests,o)||!Ec(n.turnItems,c))&&(n={runtimeRequests:o,turnItems:c},r=$d(n)),r}).pipe(N(0),F(`environment-thread-pending-requests:${e}`))}),l=I(e=>D(n=>n(t(e)).status).pipe(N(0),F(`environment-thread-status:${e}`))),u=I(e=>D(n=>R(n(t(e)).error)).pipe(N(0),F(`environment-thread-error:${e}`))),d=I(e=>D(n=>n(t(e)).history).pipe(N(0),F(`environment-thread-history:${e}`)));return{worktreePathAtom:e=>s(Z(e)),pendingRequestsAtom:e=>c(Z(e)),queueWorkflowAtom:e=>i(Z(e)),queuedCountAtom:e=>a(Z(e)),turnSubagentsAtom:e=>o(Z(e)),stateAtom:e=>t(Z(e)),threadAtom:e=>n(Z(e)),visibleTurnItemsAtom:e=>r(Z(e)),statusAtom:e=>l(Z(e)),errorAtom:e=>u(Z(e)),historyAtom:e=>d(Z(e))}}var rf=Object.freeze([]),af=Object.freeze([]),of=new Map,sf=new Map,cf=new Map,lf=e=>e.activityRunStatus===void 0?e.status===`preparing`||e.status===`starting`||e.status===`running`||e.status===`waiting`:e.activityRunStatus!==null;function uf(e){let t=e.pendingRuntimeRequest?.kind;return t===void 0||t===`auth_refresh`||e.lineage.relationshipToParent!==`subagent`||pt(e)||!lf(e)?null:t===`user_input`?`user_input`:`approval`}function df(e){let t=new Map,n;for(let r of e){let i=uf(r);if(i===null)continue;n??=new Map(e.map(e=>[e.id,e]));let a=new Set([r.id]),o=r;for(;o?.lineage.relationshipToParent===`subagent`;){let e=o.lineage.parentThreadId;if(e===null||a.has(e))break;a.add(e),t.get(e)!==`approval`&&t.set(e,i),o=n.get(e)}}return t.size===0?sf:t}function ff(e){let t=e.filter(e=>e.hasPendingApprovals).length,n=t===0?`input`:t===e.length?`approval`:`you`;return e.length===1?`Subagent needs ${n}`:`${e.length} subagents need ${n}`}var pf=u(v);function mf(e,t){if(e.environmentId!==t.environmentId||e.pendingSubagentRequest!==t.pendingSubagentRequest||!nc(t.runtime))return!1;let n=e.source,r=t.source;return n.itemCount>0==r.itemCount>0&&n.visibleItemCount>0==r.visibleItemCount>0&&pf({...n,updatedAt:r.updatedAt,itemCount:r.itemCount,visibleItemCount:r.visibleItemCount,latestVisibleMessage:r.latestVisibleMessage},r)}function hf(e){let t=new WeakMap,n=(e,n,r)=>{let i=t.get(n);i===void 0&&(i=new Map,t.set(n,i));let a=r.get(n.id)??null,o=a===null?e:`${e}:${a}`,s=i.get(o);return s===void 0&&(s=uc(e,n,a),i.set(o,s)),s},r=I(t=>D(n=>n(e.snapshotAtom(t))?.threads??rf).pipe(F(`environment-threads:${t}`))),i=I(e=>D(t=>{let n=t(r(e));return n.length===0?of:new Map(n.map(e=>[e.id,e]))}).pipe(F(`environment-thread-index:${e}`))),a=I(e=>{let t=sf;return D(n=>{let i=df(n(r(e)));return i.size===t.size&&[...i].every(([e,n])=>t.get(e)===n)?t:(t=i,i)}).pipe(F(`environment-pending-subagent-requests:${e}`))}),o=I(e=>{let t=[];return D(n=>{let i=n(r(e)).map(t=>({environmentId:e,threadId:t.id}));return Tc(t,i)?t:(t=i,i)}).pipe(F(`environment-thread-refs:${e}`))}),s=I(e=>{let t=cf;return D(n=>{let i=new Map;for(let t of n(r(e))){let n=i.get(t.projectId),r={environmentId:e,threadId:t.id};n===void 0?i.set(t.projectId,[r]):n.push(r)}if(i.size===0)return t=cf,t;let a=new Map;for(let[e,n]of i){let r=t.get(e);a.set(e,r!==void 0&&Tc(r,n)?r:n)}let o=[...t.keys()];return a.size===t.size&&[...a].every(([e,n],r)=>o[r]===e&&t.get(e)===n)||(t=a),t}).pipe(F(`environment-thread-refs-by-project:${e}`))}),c=I(e=>{let t=Cc(e);return D(e=>{let r=e(i(t.environmentId)).get(t.threadId)??null;return r===null?null:n(t.environmentId,r,e(a(t.environmentId)))}).pipe(F(`environment-thread-shell:${e}`))}),l=I(e=>{let t=null;return D(n=>{let r=n(c(e));return t!==null&&r!==null&&mf(t,r)?t:(t=r,r)}).pipe(F(`environment-quiet-thread-shell:${e}`))}),u=I(e=>{let t=Cc(e),i=[];return D(e=>{let o=new Map;for(let n of e(r(t.environmentId))){let e=n.lineage.parentThreadId;if(e===null||n.lineage.relationshipToParent!==`subagent`)continue;let t=o.get(e);t?t.push(n):o.set(e,[n])}let s=e(a(t.environmentId)),c=new Set([t.threadId]),l=[t.threadId],u=[];for(let e of l)for(let r of o.get(e)??[])c.has(r.id)||(c.add(r.id),l.push(r.id),uf(r)!==null&&u.push(n(t.environmentId,r,s)));return i.length===u.length&&i.every((e,t)=>e.id===u[t]?.id&&e.title===u[t]?.title&&e.hasPendingApprovals===u[t]?.hasPendingApprovals)?i:(i=u,u)}).pipe(F(`environment-child-thread-inputs:${e}`))}),d=I(e=>{let t=Sc(e),r=[];return D(e=>{let o=[],c=new Set;for(let r of t){let t=e(s(r.environmentId)).get(r.projectId)??af;if(t.length===0)continue;let l=e(i(r.environmentId)),u=e(a(r.environmentId));for(let e of t){let t=Z(e);if(c.has(t))continue;c.add(t);let r=l.get(e.threadId);r!==void 0&&o.push(n(e.environmentId,r,u))}}return Ec(r,o)||(r=o),r}).pipe(F(`environment-thread-shells-for-projects:${e}`))}),f=[],p=D(t=>{let n=[];for(let r of fc(t(e.catalogValueAtom)))n.push(...t(o(r)));return Tc(f,n)?f:(f=n,n)}).pipe(F(`environment-thread-refs`)),m=[],h=D(t=>{let i=[];for(let o of fc(t(e.catalogValueAtom))){let e=t(a(o));for(let a of t(r(o)))i.push(n(o,a,e))}return Ec(m,i)||(m=i),m}).pipe(F(`environment-thread-shell-list`)),g=[],_=D(e=>{let t=[];for(let n of e(p)){let r=e(l(Z(n)));r!==null&&t.push(r)}return Ec(g,t)?g:(g=t,t)}).pipe(F(`environment-quiet-thread-shell-list`)),v=[];return{environmentThreadsAtom:r,environmentThreadIndexAtom:i,environmentThreadRefsAtom:o,environmentThreadRefsByProjectAtom:s,threadRefsAtom:p,threadShellsAtom:h,quietThreadShellsAtom:_,navigationThreadShellsAtom:D(t=>{let i=[];for(let o of fc(t(e.catalogValueAtom))){let e=t(a(o)),s=t(r(o)).map(t=>n(o,t,e)),c=Kd(s);for(let e of s)e.archivedAt===null&&e.lineage.relationshipToParent!==`subagent`&&c(e)&&i.push(e)}return Ec(v,i)?v:(v=i,i)}).pipe(F(`environment-navigation-thread-shells`)),threadShellsForProjectRefsAtom:e=>d(bc(e)),threadShellAtom:e=>c(Z(e)),quietThreadShellAtom:e=>l(Z(e)),childThreadInputsAtom:e=>u(Z(e))}}function gf(e){return E(e)?`cached`:`empty`}function _f(e){let t=et(e);return t instanceof Error&&t.message.trim().length>0?t.message:`Could not synchronize the thread.`}function vf(e){return e instanceof Error&&e.message.trim().length>0?e.message:`Could not load earlier activity.`}function yf(e){return{historyCursor:e.historyCursor??null,hasMoreHistory:e.hasMoreHistory??!1,loading:!1,error:null,expanded:!1,latestLocalTurnOrdinal:e.latestLocalTurnOrdinal??null}}function bf(e,t,n,r){return r||n.hasMoreHistory||n.historyCursor!==null?{snapshotSequence:e,projection:t,historyCursor:n.historyCursor,hasMoreHistory:n.hasMoreHistory,latestLocalTurnOrdinal:n.latestLocalTurnOrdinal}:{snapshotSequence:e,projection:t}}function xf(e,t){return!t.expanded&&!e.runs.some(e=>e.status===`preparing`||e.status===`starting`||e.status===`running`)}function Sf(e,t,n,r){if(e.sequence!==n||R(e.state.data)!==t)return!1;let i=e.state.history;return i.historyCursor===r.historyCursor&&i.hasMoreHistory===r.hasMoreHistory&&(!(r.hasMoreHistory||r.historyCursor!==null)||i.latestLocalTurnOrdinal===r.latestLocalTurnOrdinal)}function Cf(e){return{...e,status:e.status===`deleted`||e.status===`live`&&E(e.data)?e.status:gf(e.data),error:O(),history:{...e.history,loading:!1,error:null}}}var wf=n(`EnvironmentThreadState.make`)(function*(e,t){let i=yield*Ca,a=yield*Ta,o=yield*_d,s=yield*Gt(rd),c=yield*Gt(In),l=yield*Gt(sa),u=yield*Gt(ma),f=yield*Gt(_a),m=i.target.environmentId,h=t?.snapshot,g={};t&&(t.owner=g);let _=h===void 0?yield*a.loadThread(m,e).pipe(x(t=>H(`Could not load cached thread.`).pipe(B({environmentId:m,threadId:e,error:t.message}),mt(O())))):O(),v=ar(_,e=>e.projection),ee=h?Cf(h.state):{data:v,status:gf(v),error:O(),history:vr(_,{onNone:()=>sd,onSome:yf})},y=yield*Jr(ee),ne=E(c)&&E(s),ie=yield*Bi(ne),ae=h?.sequence??vr(_,{onNone:()=>0,onSome:e=>e.snapshotSequence}),oe=yield*Jr(ae),b={state:ee,sequence:ae,persisted:h?.persisted??E(_),acceptsBoundedSnapshots:ne};t?.owner===g&&(t.snapshot=b);let se=yield*Bi(!1),ce=yield*$e(1),le=M(function*(){let e=yield*C(y),n=yield*C(oe);b={state:e,sequence:n,acceptsBoundedSnapshots:yield*q(ie),persisted:b.persisted&&Sf(b,R(e.data),n,e.history)},t?.owner===g&&(t.snapshot=b)}),ue=yield*Ar(1),de=n(`EnvironmentThreadState.persist`)(function*(n){(t===void 0||t.owner===g)&&b.state.status!==`deleted`&&(b.persisted&&Sf(b,n.projection,n.snapshotSequence,yf(n))||(yield*a.saveThread(m,n).pipe(tn(()=>z(()=>{Sf(b,n.projection,n.snapshotSequence,yf(n))&&(b={...b,persisted:!0},t?.owner===g&&(t.snapshot=b))})),x(t=>H(`Could not persist the thread cache.`).pipe(B({environmentId:m,threadId:e,error:t.message}))))))});yield*Xt(()=>qn(()=>{let{state:e,sequence:t}=b;return vr(e.data,{onNone:()=>p,onSome:n=>xf(n,e.history)?de(bf(t,n,e.history,b.acceptsBoundedSnapshots===!0)):p})})),yield*El(ue,de).pipe(P);let fe=ht(y,e=>e.status===`deleted`||E(e.error)?e:{...e,status:`synchronizing`,error:O()}),pe=ht(y,e=>e.status===`live`||e.status===`deleted`||E(e.error)?e:{...e,status:`synchronizing`,error:O()}),me=M(function*(){yield*W(se,!1),yield*ht(y,e=>({...e,status:e.status===`deleted`?e.status:gf(e.data)}))}),he=e=>W(se,!1).pipe(lt(ht(y,t=>({...t,status:t.status===`deleted`?t.status:gf(t.data),error:j(e)})))),S=n(`EnvironmentThreadState.setThread`)(function*(e,t){let n=yield*q(se),r=yield*wt(y,r=>{let i=t?.history===void 0?t?.resetHistory===!0?sd:r.history:t.history;return{...r,data:j(e),status:E(r.error)?`cached`:n?`synchronizing`:`live`,error:r.error,history:i}});if(xf(e,r.history)){let t=yield*C(oe);yield*jn(ue,bf(t,e,r.history,yield*q(ie)))}}),ge=e=>ht(y,t=>({...t,history:e(t.history)})),_e=n(`EnvironmentThreadState.setDeleted`)(function*(){yield*W(se,!1),yield*xe(y,{data:O(),status:`deleted`,error:O(),history:sd}),yield*le,(t===void 0||t.owner===g)&&(yield*a.removeThread(m,e).pipe(x(t=>H(`Could not remove the cached thread.`).pipe(B({environmentId:m,threadId:e,error:t.message})))))}),ye=n(`EnvironmentThreadState.applyEventsLocked`)(function*(t){let n=yield*C(oe),r=n,i=[];for(let n of t)if(!(n.sequence<=r)){if(r=n.sequence,n.kind===`event`){i.push(n);continue}yield*vn(`Skipped a thread event type this client does not know.`).pipe(B({environmentId:m,threadId:e,eventType:n.eventType.slice(0,64),sequence:n.sequence}))}if(r===n||(yield*xe(oe,r),i.length===0))return;let a=yield*q(se),o=(e,t)=>{if(e.status===`deleted`)return[{_tag:`noop`},e];if(k(e.data))return[t.event.type===`thread.deleted`?{_tag:`delete`}:{_tag:`noop`},e];if(t.event.type===`thread.deleted`)return[{_tag:`delete`},e];let n=e.history.hasMoreHistory||e.history.historyCursor!==null?{partialTimeline:!0,latestLocalTurnOrdinal:e.history.latestLocalTurnOrdinal}:void 0,r=td(e.data.value,t.event,n);if(r===null||r===e.data.value)return[{_tag:`noop`},e];let i=e.history;if(n!==void 0&&t.event.type===`turn-item.updated`){let e=t.event.payload.ordinal,n=i.latestLocalTurnOrdinal;(n===null||e>n)&&(i={...i,latestLocalTurnOrdinal:e})}let o={...e,data:j(r),status:a?`synchronizing`:`live`,error:O(),history:i};return[{_tag:`applied`,projection:r,history:o.history},o]},s=yield*d(y,e=>{let t={_tag:`noop`};for(let n of i){let[r,i]=o(e,n);if(e=i,r._tag!==`noop`&&(t=r),r._tag===`delete`)break}return[t,e]});if(s._tag===`delete`){yield*_e();return}if(s._tag===`applied`&&xf(s.projection,s.history)){let e=yield*C(oe);yield*jn(ue,bf(e,s.projection,s.history,yield*q(ie)))}}),be=n(`EnvironmentThreadState.applyItemLocked`)(function*(e){if(e.kind===`synchronized`){yield*W(se,!1),yield*ht(y,e=>E(e.data)&&e.status!==`deleted`&&k(e.error)?{...e,status:`live`,error:O()}:e);return}if(e.kind===`snapshot`){yield*xe(oe,e.snapshotSequence);let t=e.historyCursor!==void 0||e.hasMoreHistory!==void 0||e.latestLocalTurnOrdinal!==void 0;yield*S(Vu(e),t?{history:{historyCursor:e.historyCursor??null,hasMoreHistory:e.hasMoreHistory??!1,loading:!1,error:null,expanded:!1,latestLocalTurnOrdinal:e.latestLocalTurnOrdinal??null}}:{resetHistory:!0});return}yield*ye([e])}),Se=n(`EnvironmentThreadState.applyItems`)(function*(e){yield*ce.withPermits(1)(M(function*(){let t=[];for(let n of e){if(n.kind===`unknown-event`||n.kind===`event`&&n.event.type!==`thread.deleted`){t.push(n);continue}yield*ye(t),t=[],yield*be(n)}yield*ye(t),yield*le}))}),Ce=n(`EnvironmentThreadState.loadEarlier`)(function*(t){let n=yield*C(y);if(n.status===`deleted`||k(n.data)||!n.history.hasMoreHistory||n.history.historyCursor===null)return{_tag:`noop`};if(n.history.loading)return{_tag:`busy`};let a=n.history.historyCursor;yield*ge(e=>cd(a,e)?{...e,loading:!0,error:null}:e);let o=e=>d(y,t=>cd(a,t.history)?[{_tag:`error`,message:e},{...t,history:{...t.history,loading:!1,error:e}}]:[{_tag:`noop`},t]);return yield*M(function*(){let n=yield*C(i.prepared);if(k(n)||k(c))return yield*o(`Environment is not connected.`);let r=t===void 0?[void 0]:[`conversation`,void 0];for(let i of r){let r=yield*od({prepared:n.value,threadId:e,cursor:a,throughEntryId:t,view:i,signer:l,remoteAuthorization:u}).pipe(Ne(In,c.value),ve);if(Ct(r))return yield*o(vf(r.failure));let s=r.success,f=i===void 0,p=yield*q(se),m=yield*ce.withPermits(1)(d(y,e=>cd(a,e.history)?k(e.data)||e.status===`deleted`?[{_tag:`noop`},{...e,history:sd}]:[{_tag:`loaded`},{...e,data:j(fd(e.data.value,s.items)),status:f&&p?`synchronizing`:e.status,history:f?pd(e.history,s):{...e.history,expanded:!0}}]:[{_tag:`noop`},e]));if(m._tag!==`loaded`)return m;f&&(yield*le)}return{_tag:`loaded`}}).pipe(r(()=>ht(y,e=>({...e,history:ld(a,e.history)}))))});if(E(s)){let t=yield*sr,n=yield*s.value.register(m,e,{loadEarlier:e=>Ce(e).pipe(Kt(t),T(te))});yield*Xt(()=>s.value.unregister(n))}yield*Fe(i.state).pipe(Ie(e=>{switch($r(e)){case`synchronizing`:return fe;case`disconnected`:return me;case`ready`:return pe}}),P);let we=vr(f,{onNone:()=>He,onSome:e=>e.changes.pipe(st(oa))}),Te=yield*Bi(ee.status===`live`),Ee=M(function*(){(yield*q(Te))||(yield*ht(y,e=>e.status===`deleted`?e:{...e,status:`synchronizing`,error:O()}))});return yield*Ee,yield*P(ya(bn.subscribeThread,n(`EnvironmentThreadState.makeSubscribeInput`)(function*(t){let n=yield*C(y);if(n.status===`deleted`)return yield*re;let r=yield*t.initialConfig.pipe(V(e=>e.threadResumeCompletionMarker===!0),Be(()=>!1));if(yield*W(se,r),yield*Ee,yield*W(Te,!1),k(n.data)){let t=yield*C(i.prepared).pipe(T(vr({onSome:L,onNone:()=>Fe(i.prepared).pipe(st(E),Ge(e=>e.value),Yr,V(tr))}))),r=yield*o.load(t,e);switch(r._tag){case`present`:ne&&r.history!==void 0&&(yield*W(ie,!0)),yield*ce.withPermits(1)(M(function*(){yield*xe(oe,r.snapshot.snapshotSequence);let e=r.history===void 0?sd:{historyCursor:r.history.historyCursor,hasMoreHistory:r.history.hasMoreHistory,loading:!1,error:null,expanded:!1,latestLocalTurnOrdinal:r.history.latestLocalTurnOrdinal??null};yield*S(r.snapshot.projection,{history:e}),yield*le})),n=yield*C(y);break;case`missing`:return yield*_e(),yield*re}}let a=yield*C(oe),s=E(n.data),c=yield*q(ie);return!r&&s&&(yield*ht(y,e=>({...e,status:e.status===`deleted`?e.status:`live`,error:O()}))),{threadId:e,...s?{afterSequence:a}:{},...r?{requestCompletionMarker:!0}:{},...c?{acceptBoundedSnapshot:!0,acceptCompactTurnItems:!0}:{}}}),{onDefect:()=>he(`Could not synchronize the thread.`),onExpectedFailure:e=>he(_f(e)),retryExpectedFailureAfter:`250 millis`,resubscribe:we}).pipe(it(Se))),y});function Tf(e,t,n){return ba(e,Mt(wf(t,n).pipe(V(Fe))))}function Ef(e){let t=I(e=>D(()=>({snapshot:void 0,owner:void 0})).pipe(N(nd),F(`environment-thread-resume:${e}`))),n=I(n=>{let{environmentId:r,threadId:i}=Cc(n),a=t(n);return e.atom(e=>{e.mount(a);let t=e.once(a),n=Tf(r,i,t);return t.snapshot===void 0?n:dr(Se(Cf(t.snapshot.state)),n)},{initialValue:vd}).pipe(N(0),F(`environment-thread-state:${n}`))});return{stateAtom:(e,t)=>n(Z({environmentId:e,threadId:t}))}}var Df=class extends Pr(`@p4code/client-runtime/EnvironmentQueryStore`,{defaultValue:()=>null}){};function Of(e){let t=dt(nt(e));return{load:(e,n)=>M(function*(){let r=yield*Df;if(r===null)return O();let i=yield*r.load(e,n);return k(i)?O():yield*Jt(t)(i.value).pipe(V(j),x(()=>Zt))}),save:(e,n,r)=>M(function*(){let i=yield*Df;if(i===null)return;let a=yield*h(t)(r);yield*i.save(e,n,a)}).pipe(x(()=>H(`Offline query cache save failed`)))}}var kf=dt(Yn([A,Or])),Af=e=>JSON.stringify([`pull-request-stat`,e.projectId,e.host??``,e.repository,e.number]);function jf(){let e=Of(dn);return{load:(t,n)=>M(function*(){let[,r]=yield*Cn(kf)(n),i=(yield*br(r.refs,n=>e.load(t,Af(n)))).flatMap(e=>E(e)?[e.value]:[]);return i.length?j({stats:i}):O()}).pipe(Be(()=>O())),save:(t,n,r)=>M(function*(){let[,i]=yield*Cn(kf)(n);yield*br(r.stats,n=>{let r=i.refs.find(e=>e.projectId===n.projectId&&e.repository===n.repository&&e.number===n.number);return r?e.save(t,Af(r),n):p})}).pipe(Dr)}}var Mf=new Set([w.pullRequestsSummary,w.pullRequestsStack,w.pullRequestsDetail,w.pullRequestsPreview,w.pullRequestsChecks,w.pullRequestsActivity,w.pullRequestsThreadComments,w.pullRequestsDiffFileContents,w.pullRequestsFilesViewed,w.pullRequestsChangeBreakdown,w.pullRequestsReviewerCandidates,w.pullRequestsLabelCandidates]),Nf=new Set([w.pullRequestsSetFilesViewed,w.pullRequestsRunAction,w.pullRequestsUpdate,w.pullRequestsComment,w.pullRequestsUpdateComment,w.pullRequestsSubmitReview,w.pullRequestsReplyToThread,w.pullRequestsSetReaction,w.pullRequestsSetThreadResolution,w.pullRequestsRequestReviewers,w.pullRequestsSetLabels]),Pf=le(ur),Ff=le(or({state:Qn,isDraft:Ve(gt)})),If=le(nr),Lf=e=>_n({duration:`30 seconds`,orElse:()=>S(new wa({environmentId:e,message:`The environment did not respond to the PR request.`}))}),Rf=new WeakMap,zf=le(Na),Bf=Fr(dt(Ce(un(A)))),Vf=new WeakMap,Hf=new WeakMap;function Uf(e,t,n){return qt(r=>M(function*(){let i=yield*Ca,a=yield*C(i.session);if(k(a))return yield*r(n);let o=e.get(a.value)??new Map;e.set(a.value,o);let s=o.get(t);if(s!==void 0){let i=yield*r(Tn(s));return yield*r(oe(i)?Uf(e,t,n):i)}let c=ct();return o.set(t,c),yield*r(n).pipe(Vn(e=>z(()=>o.delete(t)).pipe(lt(y(c,e)))))}))}function Wf(e){let t=e.target._tag===`PrimaryConnectionTarget`?e.target.httpBaseUrl:E(e.profile)&&e.profile.value._tag===`BearerConnectionProfile`?e.profile.value.httpBaseUrl:void 0;if(t===void 0)return!1;try{return[`localhost`,`127.0.0.1`,`[::1]`].includes(new URL(t).hostname)}catch{return!1}}function Gf(e){return typeof e==`object`&&!!e&&`_tag`in e&&(e._tag===`EnvironmentRpcUnavailableError`||e._tag===`EnvironmentNotRegisteredError`||e._tag===`PullRequestOperationError`&&`operation`in e&&e.operation===`routeIdentity`)}var Kf=n(`PullRequestRouting.allowed`)(function*(e,t,n,r){let i=yield*C(e.entries),a=i.get(t),o=i.get(n);if(!a?.enabled||!o?.enabled)return!1;let s=yield*ni,c=yield*s.get(a),l=yield*s.get(o);if(!(r?c===`read-write`&&l===`read-write`:c!==`off`&&l!==`off`))return!1;for(let e of[a,o]){if(e.target._tag!==`SshConnectionTarget`)continue;let t=yield*Gt(Ui);if(k(t))return!1;let n=yield*t.value.get(e.target.connectionId).pipe(Be(()=>O())),r=mi(e);if(r===null||r!==mi({...e,profile:n}))return!1}return!0});function qf(e,t){return e.projectId===t.projectId&&e.repository.toLowerCase()===t.repository.toLowerCase()&&e.number===t.number&&(t.host===void 0||e.host?.toLowerCase()===t.host.toLowerCase())}var Jf=n(`PullRequestRouting.invalidateTarget`)(function*(e,t,n,r){(n===t||(yield*Kf(e,t,n,!1)))&&(yield*br(r,t=>e.run(n,Ei(w.pullRequestsInvalidate,t)).pipe(Sn(`1 second`),Be(()=>void 0)),{concurrency:3,discard:!0}))}),Yf=({allowStale:e,expectedAccountId:t,...n},r)=>Ei(w.pullRequestsReportState,{reference:n,state:r.state,...r.isDraft===void 0?{}:{isDraft:r.isDraft}}).pipe(Sn(`5 seconds`),Dr,On,b);function Xf(){let e=n(`PullRequestRouting.request`)(function*(e,t,n){let r=n??Ei(e,t);if(e===w.pullRequestsInvalidate&&If(t)){let n=yield*Ei(e,t),r=yield*Ca,i=yield*J,a=Rf.get(i),o=new Map;for(let e of a?.values()??[]){if(e.origin!==r.target.environmentId)continue;let n=t.reference;if(n===void 0||qf(e.reference,n)){for(let t of e.targets)o.set(t,e.reference);t.reference!==void 0&&o.set(r.target.environmentId,e.reference)}}return yield*br(o,([e,n])=>Jf(i,r.target.environmentId,e,[{...t,...t.reference===void 0?{}:{reference:n}}]),{concurrency:4,discard:!0}),n}if(!Mf.has(e)&&!Nf.has(e)||!Pf(t))return yield*Ei(e,t);let i=t,a=yield*Ca,o=yield*J,c=yield*C(o.entries),l=c.get(a.target.environmentId),u=Rf.get(o)??new Map;Rf.set(o,u);let d=Bf([a.target.environmentId,i.projectId,i.host?.toLowerCase()??null,i.repository.toLowerCase(),String(i.number)]),h=t=>t.pipe(tn(()=>{if(!Nf.has(e)||u.size===0)return p;let t=new Map([[a.target.environmentId,[i]]]);for(let e of u.values())if(e.origin===a.target.environmentId&&qf(e.reference,i))for(let n of[...e.targets,a.target.environmentId]){let r=t.get(n)??[];r.some(t=>t.host===e.reference.host)||r.push(e.reference),t.set(n,r)}return br(t,([t,n])=>Jf(o,a.target.environmentId,t,[...n.map(t=>({reference:t,...e===w.pullRequestsSetFilesViewed?{filesViewedOnly:!0}:{}})),...e===w.pullRequestsSetFilesViewed?[]:[{}]]),{concurrency:4,discard:!0})})),g=[];for(let[t,n]of c){if(t===a.target.environmentId||!(yield*Kf(o,a.target.environmentId,t,Nf.has(e))))continue;let r=yield*o.run(t,Ca.pipe(T(e=>C(e.session)))).pipe(Be(()=>O()));k(r)||(e!==w.pullRequestsChecks||(yield*r.value.initialConfig.pipe(V(e=>e.environment.capabilities.pullRequestChecks===!0),Zn(`2 seconds`),s(e=>f(e)?pn:L(!1)))))&&g.push({id:t,local:Wf(n)})}if(g.length===0)return yield*h(r);let _=Ei(w.pullRequestsRouting,i).pipe(Zn(`2 seconds`),s(e=>f(e)?pn:L(null))),v=yield*Mf.has(e)?Uf(Vf,Bf([i.projectId,i.host?.toLowerCase()??null,i.repository.toLowerCase()]),_):_;if(v===null||v.provider!==`github`)return yield*h(r);let ee={...t,host:v.host,expectedAccountId:v.accountId},y=n??(yield*Ke(Ei(e,ee))),te=g.filter(e=>e.local),ne=g.filter(e=>!e.local),re=l!==void 0&&Wf(l),ie=[...re&&Nf.has(e)?[a.target.environmentId]:[],...te.map(e=>e.id),...!re&&Nf.has(e)?[a.target.environmentId]:[],...ne.map(e=>e.id),...Mf.has(e)?[a.target.environmentId]:[]],ae=t=>(t===a.target.environmentId?y:o.run(t,Ei(e,ee))).pipe(tn(e=>t!==a.target.environmentId&&Ff(e)?Yf(i,e):p),tn(()=>z(()=>{let e=u.get(d)??{origin:a.target.environmentId,reference:{...i,host:v.host},targets:new Set};if(e.targets.add(t),u.size>=256&&!u.has(d)){let e=u.keys().next().value;e!==void 0&&u.delete(e)}u.set(d,e)})),m(e=>zf(e)?new wa({environmentId:t,message:`The environment was removed.`}):e)),oe=t=>{let n=ie[t];return n===void 0?y:M(function*(){if(n!==a.target.environmentId){if(!(yield*Kf(o,a.target.environmentId,n,Nf.has(e))))return yield*oe(t+1);let r=Ei(w.pullRequestsRoutingIdentity,{host:v.host}).pipe(Zn(`2 seconds`),s(e=>f(e)?pn:L(null))),i=yield*o.run(n,Mf.has(e)?Uf(Hf,v.host.toLowerCase(),r):r).pipe(Zn(`2 seconds`),s(e=>f(e)?pn:L(null)));if(i===null||i.provider!==`github`||i.host.toLowerCase()!==v.host.toLowerCase()||i.accountId!==v.accountId||!(yield*Kf(o,a.target.environmentId,n,Nf.has(e))))return yield*oe(t+1)}let r=ae(n);return yield*(Mf.has(e)?r.pipe(Lf(n)):r).pipe(Ue(n=>(Mf.has(e)||Gf(n))&&t+1<ie.length,()=>oe(t+1)),V(t=>typeof t==`object`&&t&&`projectId`in t?{...t,projectId:i.projectId,...e===w.pullRequestsDetail?{projectTitle:v.projectTitle,workspaceRoot:v.workspaceRoot}:{}}:t))})};return yield*h(oe(0))});return n(`PullRequestRouting.readOrWrite`)(function*(t,n){if(!Mf.has(t)||!Pf(n))return yield*e(t,n);let r=yield*J,i=yield*C(r.entries);if(i.size<2)return yield*Ei(t,n);let a=yield*Ca,o=!1;for(let e of i.keys())if(e!==a.target.environmentId&&(yield*Kf(r,a.target.environmentId,e,!1))){o=!0;break}if(!o)return yield*Ei(t,n);let s={...n,allowStale:!1},c=yield*Ke(Ei(t,s).pipe(Lf(a.target.environmentId))),l=i.get(a.target.environmentId),u=e(t,s,c);return yield*(l!==void 0&&Wf(l)?c.pipe(x(()=>u)):u).pipe(x(e=>n.allowStale!==!1&&(t===w.pullRequestsSummary||t===w.pullRequestsDetail)?Ei(t,n):S(e)))})}var Zf=6e4,Qf=class extends Qt()(`PullRequestDiffCredentialRejectedError`,{repository:A,number:xr,traceId:A,cause:rt}){get message(){return`This environment session is no longer valid (invalid_credential). Refresh the page or quit and reopen P4 Code.`}},$f=n(`clientRuntime.state.fetchEnvironmentPullRequestDiff`)(function*(e){return yield*ea({...e,group:`pullRequests`,method:`POST`,url:e=>e.diff(),timeoutMs:e.timeoutMs??Zf,request:({client:t,headers:n})=>t.diff({payload:e.diff,headers:n})}).pipe(m(t=>t._tag===`EnvironmentAuthInvalidError`&&t.reason===`invalid_credential`?new Qf({repository:e.diff.repository,number:e.diff.number,traceId:t.traceId,cause:t}):t))}),ep=class extends ut()(`@p4code/client-runtime/state/pullRequestDiffHttp/PullRequestDiffLoader`){},tp=At(ep,M(function*(){let e=yield*In,t=yield*Gt(sa),n=yield*Gt(ma);return ep.of({load:(r,i)=>$f({prepared:r,diff:i,signer:t,remoteAuthorization:n}).pipe(Ne(In,e))})})),np=class extends Jn(`EnvironmentHttpConnectionNotReadyError`){},rp=5e3;function ip(e){let t=I(e=>wn(t=>{let n=t(e);if(n._tag===`Success`&&!n.waiting)return n;let r=t.self(),i=Dt(r,We);return k(i)?n:n._tag===`Failure`?Vr(n.cause,{previous:r,waiting:n.waiting}):ae(i.value,n)},(e,t)=>e.setSelf(t),t=>t(e)).pipe(N(3e5)));return({environmentId:n,input:{projectId:r,host:i,repository:a,number:o,allowStale:s}})=>t(e({environmentId:n,input:{projectId:r,...i===void 0?{}:{host:i},repository:a,number:o,...s===void 0?{}:{allowStale:s}}}))}function ap(e,t,n,r=!1){(r||e.get(t).waiting)&&e.refresh(t),e.update(t,ue(n))}function op(e){return Ci(e,{label:`environment-data:pull-requests:turn-refreshes`,tag:w.pullRequestsSubscribeRefreshes})}function sp(e,t=op(e)){let n=Xf();return K(e,{label:`environment-data:pull-requests:linked-summary`,tag:w.pullRequestsSummary,execute:e=>n(w.pullRequestsSummary,e),staleTimeMs:6e4,refreshIntervalMs:6e4,idleTtlMs:rp,refreshTrigger:({environmentId:e})=>t({environmentId:e,input:{}}),isFinal:e=>e.state===`merged`})}function cp(e,t=op(e)){let n=Xf();return K(e,{label:`environment-data:pull-requests:stack`,tag:w.pullRequestsStack,execute:e=>n(w.pullRequestsStack,e),staleTimeMs:6e4,idleTtlMs:rp,refreshTrigger:({environmentId:e})=>t({environmentId:e,input:{}})})}function lp(e){return{number:e.number,title:e.title,url:e.url,baseRef:e.baseBranch,headRef:e.headBranch,state:e.state,...e.isDraft===!0?{isDraft:!0}:{},updatedAt:e.updatedAt}}function up(e){let n=op(e),r=da(),i=Xf(),a={mode:`serial`,key:({environmentId:e})=>e},o=ip(K(e,{label:`environment-data:pull-requests:activity`,persistence:Of(jt),tag:w.pullRequestsActivity,execute:e=>i(w.pullRequestsActivity,e),staleTimeMs:6e4,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})})),s=ip(K(e,{label:`environment-data:pull-requests:detail`,persistence:Of(Qe),tag:w.pullRequestsDetail,execute:e=>i(w.pullRequestsDetail,e),staleTimeMs:6e4,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})})),c=ip(K(e,{label:`environment-data:pull-requests:preview`,persistence:Of(gn),tag:w.pullRequestsPreview,execute:e=>i(w.pullRequestsPreview,e),staleTimeMs:6e4,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})})),l=ip(K(e,{label:`environment-data:pull-requests:label-candidates`,tag:w.pullRequestsLabelCandidates,execute:e=>i(w.pullRequestsLabelCandidates,e),staleTimeMs:6e4})),u=ip(K(e,{label:`environment-data:pull-requests:review-guide`,persistence:Of(yn),tag:w.pullRequestsReviewGuide,execute:e=>i(w.pullRequestsReviewGuide,e),staleTimeMs:6e4,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})})),d=ip(K(e,{label:`environment-data:pull-requests:reviewer-candidates`,tag:w.pullRequestsReviewerCandidates,execute:e=>i(w.pullRequestsReviewerCandidates,e),staleTimeMs:6e4}));return{refreshes:n,linkedThreads:K(e,{label:`environment-data:pull-requests:linked-threads`,persistence:Of(kn),tag:w.pullRequestsLinkedThreads,staleTimeMs:0,refreshIntervalMs:1e4,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})}),list:K(e,{label:`environment-data:pull-requests:list`,persistence:Of($t),tag:w.pullRequestsList,staleTimeMs:3e4,refreshTrigger:({environmentId:e,input:t})=>t.cursors===void 0?n({environmentId:e,input:{}}):void 0}),listStats:K(e,{label:`environment-data:pull-requests:list-stats`,persistence:jf(),tag:w.pullRequestsListStats,staleTimeMs:6e4,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})}),detail:s,preview:c,checks:K(e,{label:`environment-data:pull-requests:checks`,persistence:Of(un(Rt)),tag:w.pullRequestsChecks,execute:e=>i(w.pullRequestsChecks,e),staleTimeMs:45e3,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})}),activity:o,threadComments:G(e,{label:`environment-data:pull-requests:thread-comments`,tag:w.pullRequestsThreadComments,execute:e=>i(w.pullRequestsThreadComments,e),scheduler:r,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.threadId,t.cursor])}}),diff:ua(e,{label:`environment-data:pull-requests:diff`,persistence:Of(t),staleTimeMs:6e4,execute:e=>M(function*(){let t=yield*Ca,n=yield*ep,r=yield*C(t.prepared);return k(r)?yield*new np({message:`The environment HTTP connection is not ready.`}):yield*n.load(r.value,e)})}),diffFileContents:G(e,{label:`environment-data:pull-requests:diff-file-contents`,tag:w.pullRequestsDiffFileContents,execute:e=>i(w.pullRequestsDiffFileContents,e),scheduler:r,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.projectId,t.host?.toLowerCase()??null,t.repository,t.number,t.commit??null,t.changeType,t.oldPath,t.newPath])}}),filesViewed:K(e,{label:`environment-data:pull-requests:files-viewed`,persistence:Of(Cr),tag:w.pullRequestsFilesViewed,execute:e=>i(w.pullRequestsFilesViewed,e),staleTimeMs:15e3}),changeBreakdown:K(e,{label:`environment-data:pull-requests:change-breakdown`,persistence:Of(Ot),tag:w.pullRequestsChangeBreakdown,execute:e=>i(w.pullRequestsChangeBreakdown,e),staleTimeMs:6e4,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})}),setFilesViewed:G(e,{label:`environment-data:pull-requests:set-files-viewed`,tag:w.pullRequestsSetFilesViewed,execute:e=>i(w.pullRequestsSetFilesViewed,e),scheduler:r,concurrency:{mode:`serial`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.projectId,t.repository,t.number])}}),runAction:G(e,{tag:w.pullRequestsRunAction,label:`environment-data:pull-requests:run-action`,execute:e=>M(function*(){let{resolveMergeMethod:t,...n}=e,r=n;if(n.action===`merge`&&t!==void 0){let{projectId:e,host:a,repository:o,number:s}=n,c={projectId:e,host:a,repository:o,number:s,allowStale:!1},l=yield*i(w.pullRequestsDetail,c);if(l.state!==`open`||l.isDraft||!l.capabilities.actions.includes(`merge`)||!l.viewerPermissions.actions.includes(`merge`))return yield*new an({operation:`runAction`,detail:`This pull request cannot be merged.`});if(l.capabilities.stackActions&&(yield*i(w.pullRequestsStack,c))!==null)return yield*new an({operation:`runAction`,detail:`Open this pull request to merge its stack.`});let u=yield*jr({try:()=>t(l),catch:e=>new an({operation:`runAction`,detail:e instanceof Error?e.message:`Could not choose a merge method.`})});r={...n,mergeMethod:u}}return yield*i(w.pullRequestsRunAction,r)}),onSuccess:({environmentId:e,input:t},n)=>z(()=>n.refresh(c({environmentId:e,input:t}))),scheduler:r,concurrency:a}),update:G(e,{label:`environment-data:pull-requests:update`,tag:w.pullRequestsUpdate,execute:e=>i(w.pullRequestsUpdate,e),onSuccess:(e,t)=>z(()=>t.refresh(c(e))),scheduler:r,concurrency:a}),comment:G(e,{label:`environment-data:pull-requests:comment`,tag:w.pullRequestsComment,execute:e=>i(w.pullRequestsComment,e),scheduler:r,concurrency:a}),updateComment:G(e,{label:`environment-data:pull-requests:update-comment`,tag:w.pullRequestsUpdateComment,execute:e=>i(w.pullRequestsUpdateComment,e),scheduler:r,concurrency:a,onSuccess:({environmentId:e,input:{projectId:t,host:n,repository:r,number:i}},a)=>z(()=>a.refresh(o({environmentId:e,input:{projectId:t,...n===void 0?{}:{host:n},repository:r,number:i}})))}),submitReview:G(e,{label:`environment-data:pull-requests:submit-review`,tag:w.pullRequestsSubmitReview,execute:e=>i(w.pullRequestsSubmitReview,e),scheduler:r,concurrency:a}),replyToThread:G(e,{label:`environment-data:pull-requests:reply-to-thread`,tag:w.pullRequestsReplyToThread,execute:e=>i(w.pullRequestsReplyToThread,e),scheduler:r,concurrency:a}),reviewerCandidates:d,requestReviewers:G(e,{label:`environment-data:pull-requests:request-reviewers`,tag:w.pullRequestsRequestReviewers,execute:e=>i(w.pullRequestsRequestReviewers,e),scheduler:r,concurrency:a,onSuccess:(e,t)=>z(()=>{let{reviewers:n,requested:r}=e.input,i=d(e),a=R(We(t.get(i)))?.candidates.filter(e=>n.some(t=>t.id===e.id&&t.kind===e.kind))??[],c=a.length<n.length;ap(t,i,e=>({...e,candidates:e.candidates.map(e=>a.includes(e)?{...e,isRequested:r}:e)}));let l=new Set(a.map(e=>e.login.toLowerCase())),u=(e,t=e=>!1)=>r?[...e,...a.filter(t=>!e.some(e=>e.login.toLowerCase()===t.login.toLowerCase())).map(({login:e,name:t,avatarUrl:n})=>({login:e,name:t,avatarUrl:n}))]:e.filter(e=>!l.has(e.login.toLowerCase())||t(e));ap(t,s(e),e=>({...e,reviewers:u(e.reviewers)}),c),ap(t,o(e),e=>({...e,reviewers:e.reviewers===void 0?void 0:u(e.reviewers,t=>e.comments.some(e=>(e.kind===`review`||e.kind===`review-comment`)&&e.author?.login.toLowerCase()===t.login.toLowerCase()))}),c)})}),reviewGuide:u,generateReviewGuide:G(e,{label:`environment-data:pull-requests:generate-review-guide`,tag:w.pullRequestsGenerateReviewGuide,execute:e=>i(w.pullRequestsGenerateReviewGuide,e),onSuccess:(e,t,n)=>z(()=>{ap(t,u(e),()=>n,!0)})}),labelCandidates:l,setLabels:G(e,{label:`environment-data:pull-requests:set-labels`,tag:w.pullRequestsSetLabels,execute:e=>i(w.pullRequestsSetLabels,e),scheduler:r,concurrency:a,onSuccess:(e,t)=>z(()=>{let{labels:n,applied:r}=e.input,i=l(e),a=R(We(t.get(i))),o=new Set(n);ap(t,i,e=>({...e,candidates:e.candidates.map(e=>o.has(e.name)?{...e,isApplied:r}:e)})),ap(t,s(e),e=>({...e,labels:r?[...e.labels,...n.filter(t=>!e.labels.some(e=>e.name===t)).map(e=>({name:e,color:a?.candidates.find(t=>t.name===e)?.color??null}))]:e.labels.filter(e=>!o.has(e.name))}))})}),setThreadResolution:G(e,{label:`environment-data:pull-requests:set-thread-resolution`,tag:w.pullRequestsSetThreadResolution,execute:e=>i(w.pullRequestsSetThreadResolution,e),scheduler:r,concurrency:a}),setReaction:G(e,{label:`environment-data:pull-requests:set-reaction`,tag:w.pullRequestsSetReaction,execute:e=>i(w.pullRequestsSetReaction,e),scheduler:r,concurrency:a}),invalidate:G(e,{label:`environment-data:pull-requests:invalidate`,tag:w.pullRequestsInvalidate,execute:e=>i(w.pullRequestsInvalidate,e),onSuccess:({environmentId:e,input:t},n)=>z(()=>{t.reference!==void 0&&n.refresh(c({environmentId:e,input:t.reference}))}),scheduler:r,concurrency:a})}}var dp=`p4.backgroundActivity.clientId`,fp=25e3,pp=45e3,mp=pp,hp=[{type:`provider-status`}],gp=new Map,_p=new Set;function vp(){for(let e of _p)try{e()}catch{}}function yp(e,t){switch(t.type){case`server-config`:case`diagnostics`:return JSON.stringify([e,t.type]);case`provider-status`:return JSON.stringify([e,t.type,t.instanceId??null]);case`vcs-status`:case`git-refs`:return JSON.stringify([e,t.type,t.cwd]);case`thread`:return JSON.stringify([e,t.type,t.threadId])}}function bp(){try{let e=window.localStorage.getItem(dp);if(e)return e;let t=Kn();return window.localStorage.setItem(dp,t),t}catch{return`ephemeral-browser-client`}}function xp(){return window.desktopBridge?`desktop-renderer`:`web`}function Sp(e,t){return e<=t&&t-e<=mp}function Cp(e,t,n){let r=[...hp];for(let t of gp.values())t.environmentId===e&&r.push(t.scope);return{environmentId:e,clientId:bp(),clientKind:xp(),visible:document.visibilityState===`visible`,focused:document.hasFocus(),recentlyInteracted:Sp(t,n),appState:document.visibilityState===`visible`?`active`:`background`,scopes:r,ttlMs:pp,observedAt:er(n)}}function wp(e){if(e.method===w.subscribeResourceTelemetry)return{type:`diagnostics`};if(e.method!==w.subscribeVcsStatus)return null;let t=e.input;return t.includeRemote===!1?null:typeof t.cwd==`string`?{type:`vcs-status`,cwd:t.cwd}:null}function Tp(e,t){let n=yp(e,t),r=gp.get(n);return r?r.refCount+=1:(gp.set(n,{environmentId:e,scope:t,refCount:1}),vp()),()=>{let e=gp.get(n);e&&(--e.refCount,e.refCount<=0&&(gp.delete(n),vp()))}}function Ep(e){let t=wp(e);return t===null?L(p):z(()=>{let n=Tp(e.environmentId,t);return z(n)})}var Dp=_r(vi,vi.of({observe:Ep})),Op=It(M(function*(){if(typeof window>`u`||typeof document>`u`)return;let e=yield*J,t=yield*St,n=yield*Ar(1),r=()=>cr(n,void 0),i=t.currentTimeMillisUnsafe(),a=()=>{let e=t.currentTimeMillisUnsafe(),n=Sp(i,e);i=e,n||r()},o={passive:!0},s=M(function*(){let t=yield*me,n=yield*C(e.entries);yield*br(n.keys(),n=>e.run(n,Ki(w.serverReportClientActivity,Cp(n,i,t))).pipe(Dr),{concurrency:`unbounded`,discard:!0})}).pipe(ne(`web.backgroundActivity.report`));yield*Nr(z(()=>{_p.add(r),document.addEventListener(`visibilitychange`,r),window.addEventListener(`focus`,r),window.addEventListener(`blur`,r),window.addEventListener(`online`,r),window.addEventListener(`pointermove`,a),window.addEventListener(`keydown`,a),window.addEventListener(`wheel`,a,o),window.addEventListener(`touchstart`,a,o)}),()=>z(()=>{_p.delete(r),document.removeEventListener(`visibilitychange`,r),window.removeEventListener(`focus`,r),window.removeEventListener(`blur`,r),window.removeEventListener(`online`,r),window.removeEventListener(`pointermove`,a),window.removeEventListener(`keydown`,a),window.removeEventListener(`wheel`,a),window.removeEventListener(`touchstart`,a)})),yield*Fe(e.entries).pipe(Ie(()=>z(r)),P),yield*de(n).pipe($n(`250 millis`),Ie(()=>s),P),yield*z(r).pipe(l(_e(`${fp} millis`)),P)})),kp=or({schemaVersion:Ft(3),environmentId:ze,snapshot:Yt}),Ap=or({schemaVersion:Ft(4),environmentId:ze,threadId:Xr,snapshot:Hr.mapFields(e=>({...e,projection:ot}))});function jp(e,t){return e.pipe(x(()=>t.pipe(mt(O()))))}var Mp=or({connectionId:A,credential:Ea}),Np=or({schemaVersion:Ft(1),targets:Ce(li),profiles:Ce(la),credentials:Ce(Mp),remoteDpopTokens:Ce(ta),githubRoutingPermissions:Je(Ce(Ri)),disabledEnvironmentIds:Ce(ze).pipe(be(L([])))}),Pp=Object.freeze({schemaVersion:1,targets:[],profiles:[],credentials:[],remoteDpopTokens:[],disabledEnvironmentIds:[]});function Fp(e,t,n){let r=t(n);return[...e.filter(e=>t(e)!==r),n]}function Ip(e,t,n){return e.filter(e=>t(e)!==n)}function Lp(e){switch(e._tag){case`PrimaryConnectionTarget`:case`RelayConnectionTarget`:return null;case`BearerConnectionTarget`:case`SshConnectionTarget`:return e.connectionId}}function Rp(e){return Lp(e)??e._tag}function zp(e,t){let n=new Set(t.flatMap(e=>Lp(e)??[])),r=t.some(e=>e._tag===`RelayConnectionTarget`),i=new Set(t.map(e=>e.environmentId));return{...e,profiles:e.profiles.filter(e=>!n.has(e.connectionId)),credentials:e.credentials.filter(e=>!n.has(e.connectionId)),remoteDpopTokens:r?e.remoteDpopTokens.filter(e=>!i.has(e.environmentId)):e.remoteDpopTokens}}function Bp(e,t){return e.targets.filter(e=>e.environmentId===t)}function Vp(e,t,n){let r=new Set(n.map(Rp)),i=Bp(e,t).filter(e=>!r.has(Rp(e))),a=e.targets.findIndex(e=>e.environmentId===t),o=e.targets.filter(e=>e.environmentId!==t),s=a===-1?o.length:e.targets.slice(0,a).filter(e=>e.environmentId!==t).length;return{...zp(e,i),targets:[...o.slice(0,s),...n,...o.slice(s)]}}function Hp(e,t,n=[t.target]){let r=Vp(e,t.target.environmentId,n);switch(t._tag){case`RelayConnectionRegistration`:return r;case`BearerConnectionRegistration`:return{...r,profiles:Fp(r.profiles,e=>e.connectionId,t.profile),credentials:Fp(r.credentials,e=>e.connectionId,{connectionId:t.target.connectionId,credential:t.credential})};case`SshConnectionRegistration`:return{...r,profiles:Fp(r.profiles,e=>e.connectionId,t.profile)}}}function Up(e,t){let n=Vp(e,t,[]);return{...n,remoteDpopTokens:Ip(n.remoteDpopTokens,e=>e.environmentId,t),disabledEnvironmentIds:Ip(n.disabledEnvironmentIds,e=>e,t),...n.githubRoutingPermissions===void 0?{}:{githubRoutingPermissions:n.githubRoutingPermissions.filter(e=>e.environmentId!==t)}}}function Wp(e,t,n){let r=e.targets.some(e=>e.environmentId===t),i=Ip(e.disabledEnvironmentIds,e=>e,t);return{...e,disabledEnvironmentIds:r&&!n?[...i,t]:i}}function Gp(e,t){return e.targets.some(e=>e._tag===`RelayConnectionTarget`&&e.environmentId===t.environmentId)?{...e,remoteDpopTokens:Fp(e.remoteDpopTokens,e=>e.environmentId,t)}:e}var Kp=/^[^-+]+-(?:nightly|preview)\.\d{8}\.\d+$/;function qp(e){return e.stageLabel.trim().toLowerCase()===`latest`?e.baseName:`${e.baseName} (${e.stageLabel})`}function Jp(e){return e.primaryServerVersion&&Kp.test(e.primaryServerVersion)?`Nightly`:e.fallbackStageLabel}function Yp(e){let t=Jp({primaryServerVersion:e.primaryServerVersion,fallbackStageLabel:e.fallbackStageLabel});return t===e.fallbackStageLabel?e.fallbackDisplayName:qp({baseName:e.baseName,stageLabel:t})}function Xp(){return typeof window>`u`?null:window.desktopBridge?.getAppBranding?.()??null}var Zp=Xp(),Qp=``,$p=Qp===`latest`||Qp===`nightly`?Qp:null,em=$p===`nightly`?`Nightly`:$p===`latest`?`Latest`:null,tm=Zp?.baseName??`P4 Code`,nm=Zp?.stageLabel??em??`Latest`,rm=Zp?.displayName??qp({baseName:tm,stageLabel:nm}),im=`0.8.35`,am=`state`,om=`challenge`,sm=`port`,cm=`/callback`,lm=`https://app.p4.codes`,um=[`openid`,`profile`,`email`,`offline_access`];function dm(e){let t=Vc(e),n=t.get(am)?.trim()??``,r=t.get(om)?.trim()??``,i=fm(t.get(sm)?.trim()??``);return!n||!r||i===null?null:{state:n,challenge:r,loopbackPort:i}}function fm(e){if(!/^\d{1,5}$/.test(e))return null;let t=Number(e);return t>=1&&t<=65535?t:null}function pm(e){return`http://127.0.0.1:${e}${cm}`}function mm(e){let t=new URL(e.authorizationEndpoint);return t.searchParams.set(`client_id`,e.clientId),t.searchParams.set(`redirect_uri`,e.redirectUri),t.searchParams.set(`response_type`,`code`),t.searchParams.set(`scope`,e.scopes.join(` `)),t.searchParams.set(`state`,e.state),t.searchParams.set(`code_challenge`,e.challenge),t.searchParams.set(`code_challenge_method`,`S256`),t.toString()}function hm(){return lm}function gm(){return``}function _m(){return null}function vm(e){try{return new URL(e).origin}catch{return null}}function ym(e){if(gm())return!1;if(_m())return!0;if(e===void 0&&(typeof window>`u`||window.location===void 0))return!1;let t=vm(hm());return t!==null&&(e??new URL(window.location.href)).origin===t}function bm(e=new URL(window.location.href)){let t=e.searchParams.get(`host`)?.trim()??``,n=Zc(e)?.trim()??``,r=e.searchParams.get(`label`)?.trim()??``;return!t||!n?null:{host:t,token:n,label:r}}function xm(e=new URL(window.location.href)){return bm(e)!==null}function Sm(e){let t=new URL(`/pair`,hm());t.searchParams.set(`host`,e.host);let n=e.label?.trim();return n&&t.searchParams.set(`label`,n),$c(t,e.token).toString()}function Cm(e){let t=new URL(`/__p4code/channel`,hm());return t.searchParams.set(`channel`,e.channel),t.toString()}var wm=15e3,Tm=12e4,Em=wm,Dm=new Map,Om=new Set([w.serverGetUsageSummary,w.mcpRegistryProviderSignInWait]),km=new Set([w.serverUpdateProvider,w.serverRefreshProviders,w.serverUpdateServer,w.vcsRefreshStatus]),Am=D([]).pipe(An,F(`slow-rpc-ack-requests`));function jm(e){zt.set(Am,[...e])}function Mm(){return zt.get(Am)}function Nm(e){return!e.includes(`subscribe`)&&!e.startsWith(`pullRequests.`)&&!Om.has(e)}function Pm(e){return km.has(e)?Math.max(Em,Tm):Em}function Fm(e,t,n=t){if(!Nm(t))return;Lm(e),zm();let r=Date.now(),i=Pm(t),a={requestId:e,startedAt:new Date(r).toISOString(),startedAtMs:r,tag:n,thresholdMs:i},o=setTimeout(()=>{Dm.delete(e),Rm(a)},i);Dm.set(e,{request:a,timeoutId:o})}function Im(e){Lm(e);let t=Mm();t.some(t=>t.requestId===e)&&jm(t.filter(t=>t.requestId!==e))}function Lm(e){let t=Dm.get(e);t&&(clearTimeout(t.timeoutId),Dm.delete(e))}function Rm(e){let t=[...Mm(),e];if(t.length<=256){jm(t);return}jm(t.slice(-256))}function zm(){for(;Dm.size>=256;){let e=Dm.keys().next().value;if(e===void 0)return;Lm(e)}}function Bm(){return wr(Am)}var Vm=`local:`;function Hm(e){return`${Vm}${e}`}function Um(e){return e._tag===`BearerConnectionTarget`&&e.connectionId.startsWith(Vm)}function Wm(e){return Um(e)?e.connectionId.slice(6):null}function Gm(e){return Wm(e)?.startsWith(`wsl:`)===!0}function Km(e){let t=[],n=()=>{let n=e();if(n===void 0)return t.length>0&&(t=[]),{_tag:`Success`,bootstraps:t};try{let e=n.getLocalEnvironmentBootstraps().filter(e=>e.id!==we);return(e.length!==t.length||e.some((e,n)=>{let r=t[n];return r===void 0||e.id!==r.id||e.label!==r.label||e.runningDistro!==r.runningDistro||e.httpBaseUrl!==r.httpBaseUrl||e.wsBaseUrl!==r.wsBaseUrl||e.bootstrapToken!==r.bootstrapToken}))&&(t=e),{_tag:`Success`,bootstraps:t}}catch(e){return{_tag:`Failure`,cause:e}}};return{readResult:n,readSnapshot:()=>{let e=n();return e._tag===`Success`?e.bootstraps:t}}}var qm=Km(()=>window.desktopBridge);function Jm(){return qm.readResult()}function Ym(){return qm.readSnapshot()}var Xm={"image/png":`png`,"image/jpeg":`jpg`,"image/gif":`gif`,"image/webp":`webp`,"application/pdf":`pdf`,"application/zip":`zip`,"application/vnd.sqlite3":`sqlite`,"text/x-python":`py`,"text/javascript":`js`,"text/x-ruby":`rb`,"text/x-shellscript":`sh`};function Zm(e,t){let n=Xm[t??``];return n?`file.${n}`:e}function Qm(e){let t=e.mimeType?.split(`;`,1)[0]?.trim().toLowerCase()??``,n=e.name.toLowerCase(),r=n.slice(n.lastIndexOf(`.`)),i=!t||t===`application/octet-stream`||t===`text/plain`;if(t===`application/pdf`)return`pdf`;if(t===`text/html`)return`html`;if(t===`text/markdown`||t===`text/x-markdown`)return`markdown`;if(t.startsWith(`image/`))return`image`;if(t.startsWith(`video/`))return`video`;if(t.startsWith(`audio/`))return`audio`;if(i){if(r===`.pdf`)return`pdf`;if(/^\.html?$/.test(r))return`html`;if(/^\.(md|markdown|mdown|mkd|mdx)$/.test(r))return`markdown`;let e=ah(r);if(e?.startsWith(`image/`))return`image`;if(e?.startsWith(`video/`))return`video`;if(ih(r)!==null)return`audio`;if(/^\.(txt|log|json|jsonc|jsonl|ndjson|yaml|yml|toml|ini|conf|config|env|csv|tsv|xml|css|scss|sass|less|js|jsx|mjs|cjs|ts|tsx|mts|cts|py|pyi|rb|go|rs|swift|kt|kts|java|c|h|cc|cpp|hpp|cs|php|sh|bash|zsh|fish|sql|graphql|gql|vue|svelte|r|lua|ex|exs|erl|hs|clj|dart|diff|patch|lock|properties|gradle)$/.test(r)||/^(dockerfile|makefile|gemfile|rakefile|license|readme|\.gitignore|\.gitattributes|\.editorconfig|\.env)(\.|$)/i.test(n.split(/[\\/]/).at(-1)??``))return`text`}return t.startsWith(`text/`)||/^(application\/(json|.*\+json|xml|.*\+xml|javascript|x-javascript|yaml|x-yaml|toml|sql))$/.test(t)?`text`:`unsupported`}var $m=1048576;function eh(e,t=!1){let n=e.subarray(0,$m);if(n.some(e=>e===0))throw Error(`This file contains binary data and cannot be shown as text.`);let r=new TextDecoder(`utf-8`,{fatal:!0});try{return{text:r.decode(n,{stream:t||e.length>n.length}),truncated:t||e.length>n.length}}catch{throw Error(`This file is not UTF-8 text. Open it in another app to view its contents.`)}}var th=[`.avif`,`.gif`,`.ico`,`.jpeg`,`.jpg`,`.png`,`.svg`,`.webp`],nh=new Map([[`.avif`,`image/avif`],[`.gif`,`image/gif`],[`.ico`,`image/x-icon`],[`.jpeg`,`image/jpeg`],[`.jpg`,`image/jpeg`],[`.png`,`image/png`],[`.svg`,`image/svg+xml`],[`.webp`,`image/webp`]]),rh=new Map([[`.mp3`,`audio/mpeg`],[`.wav`,`audio/wav`],[`.ogg`,`audio/ogg`],[`.oga`,`audio/ogg`],[`.flac`,`audio/flac`],[`.aac`,`audio/aac`],[`.m4a`,`audio/mp4`],[`.opus`,`audio/ogg`],[`.aiff`,`audio/aiff`]]);function ih(e){return/^\.[a-z0-9]+$/i.test(e)?rh.get(e.toLowerCase())??null:null}function ah(e){return/^\.[a-z0-9]+$/i.test(e)?nh.get(e.toLowerCase())??Fn({name:`media${e}`,mimeType:``}):null}function oh(e){let t=e.trim(),n=t.startsWith(`<`)&&t.endsWith(`>`)?t.slice(1,-1):t,r=/^data:((?:image|video)\/[\w.+-]+)[;,]/i.exec(n)?.[1];if(r)return r.toLowerCase();let i=n.split(/[?#]/,1)[0]??``;if(/^(?:https?:|file:|\/\/)/i.test(n))try{i=new URL(n,`https://media.invalid`).pathname}catch{return null}try{i=decodeURIComponent(i)}catch{}let a=i.split(/[\\/]/).at(-1)??``,o=a.lastIndexOf(`.`);return o<0?null:ah(a.slice(o))}function sh(e){let t=oh(e);return t===null?null:t.startsWith(`video/`)?`video`:`image`}function ch(e,t){let n=e.toLowerCase();return t.some(e=>n.endsWith(e))}function lh(e){return ch(e,th)}function uh(e){return Fn({name:e,mimeType:``})!==null}function dh(e){let t=e.lastIndexOf(`.`);return t>=0&&ih(e.slice(t))!==null}var fh=`project-favicon-missing`;[...th];function ph(e,t,n){return JSON.stringify([e,t,n||null])}function mh(e,t,n){let r=n;try{let e=new URL(n,`https://p4.invalid`).pathname;r=e.slice(e.lastIndexOf(`/`)+1)}catch{}return JSON.stringify([e,t,r])}function hh(e){if(!e)return!1;try{let t=new URL(e,`https://p4.invalid`).pathname;return t.slice(t.lastIndexOf(`/`)+1)===fh}catch{return!1}}var gh=32768,_h=4194304,vh=A.check(Hn(gh),Pn(/^data:image\/(?:png|jpeg|gif|webp|avif|svg\+xml|x-icon|vnd\.microsoft\.icon);base64,[A-Za-z0-9+/]+={0,2}$/)),yh=or({environmentId:ze,cwd:A,faviconPath:un(A),revision:A,dataUrl:vh}),bh=zr(yh),xh=le(vh);function Sh(e){return ph(e.environmentId,e.cwd,e.faviconPath)}async function Ch(e,t){if(Number(e.headers.get(`content-length`))>t)throw Error(`Project icon is too large to decode.`);if(!e.body){let n=new Uint8Array(await e.arrayBuffer());if(n.byteLength>t)throw Error(`Project icon is too large to decode.`);return n}let n=e.body.getReader(),r=[],i=0;try{for(;;){let{done:e,value:a}=await n.read();if(e)break;if(i+=a.byteLength,i>t)throw Error(`Project icon is too large to decode.`);r.push(a)}}finally{n.cancel().catch(()=>{})}let a=new Uint8Array(new ArrayBuffer(i)),o=0;for(let e of r)a.set(e,o),o+=e.byteLength;return a}function wh(e){let t=e.fetch??globalThis.fetch;return async(n,r)=>{let i=await t(n,{signal:r});if(!i.ok)throw Error(`Project icon request failed with ${i.status}.`);let a=i.headers.get(`content-type`)?.split(`;`,1)[0]?.trim().toLowerCase(),o=a?.startsWith(`image/`)?a:oh(n);if(!o)throw Error(`Project icon has no image type.`);let s=await Ch(i,_h);r.throwIfAborted();let c=`data:${o};base64,${kr(s)}`;if(xh(c))return c;if(o===`image/svg+xml`)throw Error(`Project icon exceeds the cache limit.`);return e.downscale({url:n,mimeType:o,bytes:s},r)}}function Th(e){let t=new Map,n=new Map,r=0,i,a,o=new Set,s=e=>{let t=e().catch(()=>{}).finally(()=>o.delete(t));o.add(t)},c=n=>{let r=t.get(n);r&&(t.delete(n),s(()=>e.storage.remove(n,r)))},l=()=>{let e=0;for(let n of t.values())e+=n.dataUrl.length;for(;t.size>128||e>1048576;){let n=t.entries().next().value;if(!n)break;e-=n[1].dataUrl.length,c(n[0])}},u=()=>i??=(async()=>{try{for(let n of await e.storage.list()){let e=bh(n);E(e)&&t.set(Sh(e.value),e.value)}l()}catch{}})(),d=e=>t.get(Sh(e))?.dataUrl??null,f=async(i,o,f)=>{await a;let p=r,m=n.get(i.environmentId)??0;if(await u(),f.aborted||o===null)return d(i);let h=Sh(i);if(hh(o))return c(h),null;let g=mh(i.environmentId,i.cwd,o),_=t.get(h);if(_&&(t.delete(h),t.set(h,_),_.revision===g))return _.dataUrl;try{let a=await e.load(o,f);if(f.aborted||p!==r||m!==(n.get(i.environmentId)??0))return d(i);if(xh(a)){let n={environmentId:i.environmentId,cwd:i.cwd,faviconPath:i.faviconPath||null,revision:g,dataUrl:a};return t.set(h,n),s(()=>e.storage.put(h,n)),l(),a}}catch{}return d(i)??o},p=async()=>{await Promise.all(o)},m=async e=>{e===void 0?r+=1:n.set(e,(n.get(e)??0)+1);let i=a,o=(async()=>{await i,await u();for(let[n,r]of t)(e===void 0||r.environmentId===e)&&c(n);await p()})().finally(()=>{a===o&&(a=void 0)});a=o,await o};return{hydrate:u,peek:d,resolve:f,clearEnvironment:e=>m(e),clearAll:()=>m(),flush:p}}var Eh=`p4code:project-favicons`,Dh=2,Oh=`images`,kh;function Ah(){return kh??=new Promise((e,t)=>{let n=indexedDB.open(Eh,Dh);n.addEventListener(`upgradeneeded`,()=>{for(let e of n.result.objectStoreNames)e!==Oh&&n.result.deleteObjectStore(e);n.result.objectStoreNames.contains(Oh)||n.result.createObjectStore(Oh)}),n.addEventListener(`success`,()=>e(n.result)),n.addEventListener(`error`,()=>t(n.error)),n.addEventListener(`blocked`,()=>t(Error(`Project icon cache is blocked.`)))})}function jh(e){return new Promise((t,n)=>{e.addEventListener(`complete`,()=>t()),e.addEventListener(`abort`,()=>n(e.error)),e.addEventListener(`error`,()=>n(e.error))})}async function Mh(e,t){let n=(await Ah()).transaction(Oh,e),r=t(n.objectStore(Oh));return await jh(n),r?.result}async function Nh(e,t){let n=await createImageBitmap(new Blob([e.bytes],{type:e.mimeType}));try{t.throwIfAborted();let e=document.createElement(`canvas`);for(let t of[96,48]){let r=Math.min(1,t/n.width,t/n.height);e.width=Math.max(1,Math.round(n.width*r)),e.height=Math.max(1,Math.round(n.height*r));let i=e.getContext(`2d`);if(!i)throw Error(`Canvas is unavailable.`);i.clearRect(0,0,e.width,e.height),i.drawImage(n,0,0,e.width,e.height);let a=e.toDataURL(`image/webp`,.85);if(a.length<=32768)return a}throw Error(`Project icon thumbnail exceeds the cache limit.`)}finally{n.close()}}var Ph=Th({storage:{list:async()=>await Mh(`readonly`,e=>e.getAll())??[],put:async(e,t)=>{await Mh(`readwrite`,n=>n.put(t,e))},remove:async e=>{await Mh(`readwrite`,t=>t.delete(e))}},load:wh({downscale:Nh})}),Fh=`p4code:connection-runtime`,Ih=4,Lh=`catalog`,Rh=`shell`,zh=`thread`,Bh=`server-config`,Vh=`vcs-refs`,Hh=`document`,Uh=dt(kp),Wh=dt(Ap),Gh=or({schemaVersion:Ft(1),environmentId:ze,config:_}),Kh=dt(Gh),qh=or({schemaVersion:Ft(1),environmentId:ze,cwd:A,refs:Br}),Jh=dt(qh),Yh=dt(Np),Xh=Jt(Yh),Zh=h(Yh),Qh=Jt(Uh),$h=h(Uh),eg=Jt(Wh),tg=h(Wh),ng=Jt(Kh),rg=h(Kh),ig=Jt(Jh),ag=h(Jh);function Q(e,t){return new Ni({reason:`remote-unavailable`,detail:`Could not ${e} the local connection catalog: ${String(t)}`})}function $(e,t){return new Vi({operation:e,message:`Could not ${e.replaceAll(`-`,` `)}: ${String(t)}`})}var og=n(`web.connectionStorage.openDatabase`)(function*(){return yield*Wn(e=>{if(typeof indexedDB>`u`){e(S(Q(`open`,`IndexedDB is unavailable in this browser context.`)));return}try{let t=indexedDB.open(Fh,Ih);t.addEventListener(`upgradeneeded`,()=>{t.result.objectStoreNames.contains(Lh)||t.result.createObjectStore(Lh),t.result.objectStoreNames.contains(Rh)||t.result.createObjectStore(Rh),t.result.objectStoreNames.contains(zh)||t.result.createObjectStore(zh),t.result.objectStoreNames.contains(Bh)||t.result.createObjectStore(Bh),t.result.objectStoreNames.contains(Vh)||t.result.createObjectStore(Vh)}),t.addEventListener(`error`,()=>{e(S(Q(`open`,t.error??`Unknown IndexedDB error`)))}),t.addEventListener(`success`,()=>{e(L(t.result))})}catch(t){e(S(Q(`open`,t)))}})}),sg=n(`web.connectionStorage.makeDatabaseHandle`)(function*(){let e=yield*$e(1),t=null,n=e=>{t===e&&(t=null)},r=qn(()=>t===null?e.withPermits(1)(M(function*(){if(t!==null)return t;let e=yield*og();return t=e,e.addEventListener(`close`,()=>n(e)),e.addEventListener(`versionchange`,()=>{n(e),e.close()}),e})):L(t)),i=e.withPermits(1)(z(()=>{t?.close(),t=null}));return{handle:{get:r,invalidate:e=>z(()=>n(e))},close:i}});function cg(e,t){let n=Symbol(`closedConnection`);return T(e.get,r=>t(r).pipe(Ue(e=>e.detail.includes(`InvalidStateError`),t=>e.invalidate(r).pipe(lt(S({[n]:t})))))).pipe(Ue(e=>n in e,()=>T(e.get,t)))}function lg(e,t,n){return Wn(r=>{try{let i=e.transaction(t,`readonly`).objectStore(t).get(n);i.addEventListener(`error`,()=>{r(S(Q(`read`,i.error??`Unknown IndexedDB read error`)))}),i.addEventListener(`success`,()=>{r(L(i.result))})}catch(e){r(S(Q(`read`,e)))}}).pipe(ne(`web.connectionStorage.readDatabaseValue`))}function ug(e,t,n,r){return Wn(i=>{try{let a=e.transaction(t,`readwrite`);a.addEventListener(`abort`,()=>{i(S(Q(`write`,a.error??`Unknown IndexedDB write error`)))}),a.addEventListener(`complete`,()=>{i(p)}),a.objectStore(t).put(r,n)}catch(e){i(S(Q(`write`,e)))}}).pipe(ne(`web.connectionStorage.writeDatabaseValue`))}function dg(e,t,n){return Wn(r=>{try{let i=e.transaction(t,`readwrite`);i.addEventListener(`abort`,()=>{r(S(Q(`remove`,i.error??`Unknown IndexedDB remove error`)))}),i.addEventListener(`complete`,()=>{r(p)}),i.objectStore(t).delete(n)}catch(e){r(S(Q(`remove`,e)))}}).pipe(ne(`web.connectionStorage.removeDatabaseValue`))}function fg(e,t,n){return Wn(r=>{try{let i=e.transaction(t,`readwrite`);i.addEventListener(`abort`,()=>{r(S(Q(`remove`,i.error??`Unknown IndexedDB cursor error`)))}),i.addEventListener(`complete`,()=>{r(p)});let a=i.objectStore(t).openCursor(n);a.addEventListener(`error`,()=>{r(S(Q(`remove`,a.error??`Unknown IndexedDB cursor error`)))}),a.addEventListener(`success`,()=>{let e=a.result;if(e!==null)try{e.delete(),e.continue()}catch(e){r(S(Q(`remove`,e)))}})}catch(e){r(S(Q(`remove`,e)))}}).pipe(ne(`web.connectionStorage.removeDatabaseValuesInRange`))}function pg(e,t,n){return cg(e,e=>lg(e,t,n))}function mg(e,t,n,r){return cg(e,e=>ug(e,t,n,r))}function hg(e,t,n){return cg(e,e=>dg(e,t,n))}function gg(e,t,n){return cg(e,e=>fg(e,t,n))}function _g(e,t){return`${e}:${t}`}function vg(e,t){return`${e}:${t}`}var yg=n(`web.connectionStorage.decodeCatalog`)(function*(e){return yield*Xh(e).pipe(m(e=>Q(`decode`,e)))}),bg=n(`web.connectionStorage.encodeCatalog`)(function*(e){return yield*Zh(e).pipe(m(e=>Q(`encode`,e)))});function xg(e){let t=window.desktopBridge;return t?.getConnectionCatalog!==void 0&&t.setConnectionCatalog!==void 0?{read:Bt({try:()=>t.getConnectionCatalog(),catch:e=>Q(`load`,e)}),write:e=>Bt({try:()=>t.setConnectionCatalog(e),catch:e=>Q(`save`,e)}).pipe(T(e=>e?p:S(Q(`save`,`Desktop secure storage is unavailable in this system context.`))))}:{read:pg(e,Lh,Hh).pipe(V(e=>typeof e==`string`?e:null)),write:t=>mg(e,Lh,Hh,t),quarantine:t=>mg(e,Lh,`${Hh}:corrupt:${Date.now()}`,t)}}var Sg=n(`web.connectionStorage.makeCatalogStore`)(function*(e){let t=yield*Bi(O()),r=yield*$e(1),i=n(`web.connectionStorage.loadCatalog`)(function*(){let n=yield*q(t);if(E(n))return n.value;let r=yield*e.read,i=Pp;return r!==null&&r.trim()!==``&&(i=yield*yg(r).pipe(x(t=>M(function*(){yield*H(`Discarding a corrupt web connection catalog.`,{error:t.message}),e.quarantine!==void 0&&(yield*e.quarantine(r).pipe(x(e=>H(`Could not quarantine the corrupt web connection catalog.`,{error:e.message}))));let n=yield*bg(Pp);return yield*e.write(n).pipe(x(e=>H(`Could not persist the recovered web connection catalog.`,{error:e.message}))),Pp})))),yield*W(t,j(i)),i});return{read:r.withPermits(1)(i()),update:n(`web.connectionStorage.updateCatalog`)(function*(n){yield*r.withPermits(1)(M(function*(){let r=n(yield*i());yield*e.write(yield*bg(r)),yield*W(t,j(r))}))})}}),Cg=`p4code:github-routing:`,wg=`p4code:github-routing-changed`,Tg=le(Ri),Eg=Fr(dt(Ri));function Dg(e=window){let t=t=>{try{let n=e.localStorage.getItem(t),r=n===null?null:JSON.parse(n);return Tg(r)&&t===`${Cg}${r.environmentId}`?r:null}catch{return null}},n=()=>{try{let n=[],r=e.localStorage;for(let e=0;e<r.length;e++){let i=r.key(e);if(i?.startsWith(Cg)){let e=t(i);e!==null&&n.push(e)}}return n}catch{return[]}},r=(t,n)=>jr({try:()=>{let r=`${Cg}${t}`;n===null?e.localStorage.removeItem(r):e.localStorage.setItem(r,Eg(n)),e.dispatchEvent(new Event(wg))},catch:e=>Q(`save GitHub routing permissions in`,e)});return ni.of({get:e=>z(()=>{let n=t(`${Cg}${e.target.environmentId}`);return Fi(e,n===null?[]:[n])}),changes:Xn(t=>Nr(z(()=>{let r=e=>{if(e.type===`storage`){let t=e.key;if(t!==null&&!t?.startsWith(Cg))return}cr(t,n())};return e.addEventListener(`storage`,r),e.addEventListener(wg,r),cr(t,n()),r}),t=>z(()=>{e.removeEventListener(`storage`,t),e.removeEventListener(wg,t)})).pipe(b)),set:(e,t)=>{let n=mi(e);return n===null?S(new Ra({reason:`configuration`,detail:`This environment does not have a saved connection endpoint.`})):r(e.target.environmentId,t===`off`?null:{environmentId:e.target.environmentId,connectionKey:n,permission:t})},forget:e=>r(e,null)})}var Og=Et(M(function*(){let{handle:t}=yield*Nr(sg(),e=>e.close),n=yield*Sg(xg(t)),r=Dg(),i=bi.of({list:n.read.pipe(V(e=>e.targets),m(e=>$(`list-targets`,e))),listDisabled:n.read.pipe(V(e=>e.disabledEnvironmentIds),m(e=>$(`list-disabled-targets`,e)))}),a=fi.of({register:(e,t)=>n.update(n=>Hp(n,e,t)).pipe(m(e=>$(`register-connection`,e))),setRoutes:(e,t)=>n.update(n=>Vp(n,e,t)).pipe(m(e=>$(`set-connection-routes`,e))),remove:e=>n.update(t=>Up(t,e)).pipe(m(e=>$(`remove-connection`,e))),setEnabled:(e,t)=>n.update(n=>Wp(n,e,t)).pipe(m(e=>$(`set-connection-enabled`,e)))}),o=qi({get:t=>n.read.pipe(V(n=>e(n.profiles.find(e=>e.connectionId===t)))),put:e=>n.update(t=>({...t,profiles:Fp(t.profiles,e=>e.connectionId,e)})),remove:e=>n.update(t=>({...t,profiles:Ip(t.profiles,e=>e.connectionId,e)}))}),s=Qr({get:t=>n.read.pipe(V(n=>e(n.credentials.find(e=>e.connectionId===t)?.credential))),put:(e,t)=>n.update(n=>({...n,credentials:Fp(n.credentials,e=>e.connectionId,{connectionId:e,credential:t})})),remove:e=>n.update(t=>({...t,credentials:Ip(t.credentials,e=>e.connectionId,e)}))}),c=Sa({get:t=>n.read.pipe(V(n=>e(n.remoteDpopTokens.find(e=>e.environmentId===t)))),put:e=>n.update(t=>Gp(t,e)),remove:e=>n.update(t=>({...t,remoteDpopTokens:Ip(t.remoteDpopTokens,e=>e.environmentId,e)}))}),l=Ta.of({loadShell:e=>pg(t,Rh,e).pipe(tn(()=>qe(()=>Ph.hydrate())),T(n=>typeof n==`string`?jp(Qh(n).pipe(m(e=>$(`load-shell`,e)),V(t=>t.environmentId===e?j(t.snapshot):O())),hg(t,Rh,e)):Zt),m(e=>$(`load-shell`,e))),saveShell:(e,n)=>M(function*(){let r=yield*$h({schemaVersion:3,environmentId:e,snapshot:n}).pipe(m(e=>$(`save-shell`,e)));yield*mg(t,Rh,e,r)}).pipe(m(e=>e._tag===`ConnectionPersistenceError`?e:$(`save-shell`,e))),loadServerConfig:e=>pg(t,Bh,e).pipe(T(t=>typeof t==`string`?ng(t).pipe(m(e=>$(`load-server-config`,e)),V(t=>t.environmentId===e?j(t.config):O())):Zt),m(e=>e._tag===`ConnectionPersistenceError`?e:$(`load-server-config`,e))),saveServerConfig:(e,n)=>M(function*(){let r=yield*rg({schemaVersion:1,environmentId:e,config:n}).pipe(m(e=>$(`save-server-config`,e)));yield*mg(t,Bh,e,r)}).pipe(m(e=>e._tag===`ConnectionPersistenceError`?e:$(`save-server-config`,e))),loadThread:(e,n)=>pg(t,zh,_g(e,n)).pipe(T(r=>typeof r==`string`?jp(eg(r).pipe(m(e=>$(`load-thread`,e)),V(t=>t.environmentId===e&&t.threadId===n?j(t.snapshot):O())),hg(t,zh,_g(e,n))):Zt),m(e=>$(`load-thread`,e))),saveThread:(e,n)=>M(function*(){let r=yield*tg({schemaVersion:4,environmentId:e,threadId:n.projection.thread.id,snapshot:n}).pipe(m(e=>$(`save-thread`,e)));yield*mg(t,zh,_g(e,n.projection.thread.id),r)}).pipe(m(e=>e._tag===`ConnectionPersistenceError`?e:$(`save-thread`,e))),loadVcsRefs:(e,n)=>pg(t,Vh,vg(e,n)).pipe(T(t=>typeof t==`string`?ig(t).pipe(m(e=>$(`load-vcs-refs`,e)),V(t=>t.environmentId===e&&t.cwd===n?j(t.refs):O())):Zt),m(e=>e._tag===`ConnectionPersistenceError`?e:$(`load-vcs-refs`,e))),saveVcsRefs:(e,n,r)=>M(function*(){let i=yield*ag({schemaVersion:1,environmentId:e,cwd:n,refs:r}).pipe(m(e=>$(`save-vcs-refs`,e)));yield*mg(t,Vh,vg(e,n),i)}).pipe(m(e=>e._tag===`ConnectionPersistenceError`?e:$(`save-vcs-refs`,e))),removeVcsRefs:(e,n)=>hg(t,Vh,vg(e,n)).pipe(m(e=>$(`remove-vcs-refs`,e))),clearVcsRefs:e=>gg(t,Vh,IDBKeyRange.bound(`${e}:`,`${e}:\uffff`)).pipe(m(e=>$(`clear-vcs-refs`,e))),removeThread:(e,n)=>hg(t,zh,_g(e,n)).pipe(m(e=>$(`remove-thread`,e))),clear:e=>Wr([qe(()=>Ph.clearEnvironment(e)),hg(t,Rh,e),gg(t,zh,IDBKeyRange.bound(`${e}:`,`${e}:\uffff`)),hg(t,Bh,e),gg(t,Vh,IDBKeyRange.bound(`${e}:`,`${e}:\uffff`))],{concurrency:`unbounded`,discard:!0}).pipe(m(e=>$(`clear-environment`,e)))});return Nn(bi,i).pipe(ce(ni,r),ce(fi,a),ce(Ui,o),ce(Di,s),ce(ra,c),ce(Ta,l))}));function kg(e){switch(e){case`darwin`:return`macOS`;case`win32`:return`Windows`;case`linux`:return`Linux`;default:return e?`other`:`unknown`}}function Ag(e){return/macintosh/i.test(e.userAgent)&&/mac/i.test(e.platform)&&e.maxTouchPoints>1}function jg(e){let t=e.userAgent;return t.trim()===``?`unknown`:/iphone|ipad|ipod/i.test(t)||Ag(e)?`iOS`:/android/i.test(t)?`Android`:/cros/i.test(t)?`ChromeOS`:/windows/i.test(t)?`Windows`:/macintosh|mac os x/i.test(t)?`macOS`:/linux|x11/i.test(t)?`Linux`:`other`}function Mg(e){return e.trim()===``?`unknown`:/edg(?:e|a|ios)?\//i.test(e)?`Edge`:/opr\/|opios\//i.test(e)?`Opera`:/samsungbrowser\//i.test(e)?`Samsung Internet`:/firefox\/|fxios\//i.test(e)?`Firefox`:/chrome\/|crios\//i.test(e)?`Chrome`:/safari\//i.test(e)?`Safari`:`other`}function Ng(e){let t=e.userAgent;return t.trim()===``?`unknown`:/ipad|tablet|kindle|silk/i.test(t)||/android/i.test(t)&&!/mobile/i.test(t)||Ag(e)?`tablet`:/iphone|ipod|android.+mobile|mobile/i.test(t)?`mobile`:`desktop`}function Pg(e){return e.desktopBridge===void 0?{label:`P4 Code Web`,deviceType:Ng(e.identity),os:jg(e.identity),surface:`web`,webDeployment:e.hosted?`hosted`:`server`,browser:Mg(e.identity.userAgent),...e.appVersion===`0.0.0`?{}:{appVersion:e.appVersion}}:{label:`P4 Code Desktop`,deviceType:`desktop`,os:kg(e.desktopBridge.getClientPlatform?.()),surface:`desktop`,...e.appVersion===`0.0.0`?{}:{appVersion:e.appVersion}}}var Fg=0;function Ig(){return typeof navigator>`u`?`unknown`:navigator.onLine?`online`:`offline`}var Lg=Gi({status:z(Ig),changes:Xn(e=>Nr(z(()=>{let t=()=>cr(e,`online`),n=()=>cr(e,`offline`);return window.addEventListener(`online`,t),window.addEventListener(`offline`,n),{online:t,offline:n}}),({online:e,offline:t})=>z(()=>{window.removeEventListener(`online`,e),window.removeEventListener(`offline`,t)})).pipe(b))}),Rg=Xn(e=>Nr(z(()=>{let t=typeof navigator>`u`?void 0:navigator.connection;if(t?.type===void 0)return;let n=t.type,r=()=>{let r=t.type;r!==void 0&&r!==n&&(n=r,cr(e,`network-changed`))};return t.addEventListener(`change`,r),{connection:t,listener:r}}),e=>z(()=>e?.connection.removeEventListener(`change`,e.listener))).pipe(b)),zg=ca({changes:Re([Xn(e=>Nr(z(()=>{let t=()=>{document.visibilityState===`visible`&&cr(e,`application-active`)};return document.addEventListener(`visibilitychange`,t),t}),e=>z(()=>{document.removeEventListener(`visibilitychange`,e)})).pipe(b)),xa(zt).pipe(Ge(()=>`credentials-changed`)),Rg],{concurrency:`unbounded`})});function Bg(){return Pg({appVersion:im,hosted:ym(),identity:{userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints},desktopBridge:window.desktopBridge})}function Vg(e){let t=e instanceof Error?e.message:String(e);return t.toLowerCase().includes(`cancel`)?new Ra({reason:`authentication`,detail:t}):new Ni({reason:`remote-unavailable`,detail:`Could not prepare the SSH environment: ${t}`})}var Hg=n(`web.connectionPlatform.ssh.provisionDesktop`)(function*(e,t,n){let r=yield*Bt({try:()=>e.ensureSshEnvironment(t,{issuePairingToken:!0}),catch:Vg}),i=r.pairingToken;if(i===null)return yield*new Ra({reason:`authentication`,detail:`The SSH environment did not issue a pairing credential.`});let a=yield*Bt({try:()=>e.fetchSshEnvironmentDescriptor(r.httpBaseUrl),catch:Vg});if(n!==void 0&&a.environmentId!==n)return yield*new Ra({reason:`configuration`,detail:`That host reaches ${a.label}, a different machine. Add it as its own environment instead.`});let o=yield*Bt({try:()=>e.bootstrapSshBearerSession(r.httpBaseUrl,i),catch:Vg});return{environmentId:a.environmentId,label:a.label,bootstrap:r,bearerToken:o.access_token}}),Ug=Et(z(()=>{let e=aa.of({metadata:Bg()}),t=Ji.of({identity:z(()=>Ze(zt.get(ga))),clerkToken:M(function*(){let e=zt.get(ga);if(e===null)return yield*new Ra({reason:`authentication`,detail:`Sign in to P4 Connect to connect this environment.`});let t=yield*e.readClerkToken().pipe(m(e=>new Ni({reason:`network`,detail:e.message})));return t===null?yield*new Ra({reason:`authentication`,detail:`The P4 Connect session is unavailable.`}):t})}),r=Ua.of({deviceId:Zt}),i=Fa.of({bearerToken:Bt({try:Ha,catch:e=>new Ni({reason:`remote-unavailable`,detail:`Could not load the desktop primary credential: ${String(e)}`})}).pipe(V(Ze))}),a=Zi.of({provision:n(`web.connectionPlatform.ssh.provision`)(function*(e,t){let n=window.desktopBridge;return n===void 0?yield*new Ra({reason:`unsupported`,detail:`SSH environments are only available in the desktop app.`}):yield*Hg(n,e,t)}),prepare:n(`web.connectionPlatform.ssh.prepare`)(function*(e){let t=window.desktopBridge;if(t===void 0)return yield*new Ra({reason:`unsupported`,detail:`SSH environments are only available in the desktop app.`});let n=yield*Bt({try:()=>t.ensureSshEnvironment(e.target,{issuePairingToken:!0}),catch:Vg});return n.pairingToken===null?yield*new Ra({reason:`authentication`,detail:`The SSH environment did not issue a pairing credential.`}):{bootstrap:n,bearerToken:(yield*Bt({try:()=>t.bootstrapSshBearerSession(n.httpBaseUrl,n.pairingToken),catch:Vg})).access_token}}),disconnect:n(`web.connectionPlatform.ssh.disconnect`)(function*(e){let t=window.desktopBridge;t!==void 0&&(yield*Bt({try:()=>t.disconnectSshEnvironment(e),catch:e=>new Ni({reason:`remote-unavailable`,detail:`Could not disconnect the SSH environment: ${String(e)}`})}))})});return Nn(Ji,t).pipe(ce(Fa,i),ce(Ua,r),ce(aa,e),ce(Zi,a))})),Wg=n(`web.connectionPlatform.loadPrimaryConnectionRegistration`)(function*(e){let t=yield*Sr({httpBaseUrl:e.target.httpBaseUrl}).pipe(fe(Pa),m(Ba));return new Xi({target:new oi({environmentId:t.environmentId,label:t.label,httpBaseUrl:e.target.httpBaseUrl,wsBaseUrl:e.target.wsBaseUrl})})}),Gg=n(`web.connectionPlatform.loadSecondaryConnectionRegistration`)(function*(e){if(e.httpBaseUrl===null||e.wsBaseUrl===null||e.bootstrapToken===void 0)return yield*new Ni({reason:`endpoint-unavailable`,detail:`Desktop-local backend ${e.id} is not ready yet.`});let t=e.httpBaseUrl,n=e.wsBaseUrl,r=yield*Sr({httpBaseUrl:t}).pipe(m(Ba)),i=yield*me,a=yield*wi({httpBaseUrl:t,credential:e.bootstrapToken,scopes:Tr,clientMetadata:Bg()}).pipe(m(Ba)),o=Hm(e.id),s=e.label||r.label;return{registration:new va({target:new ri({environmentId:r.environmentId,label:s,connectionId:o}),profile:new Aa({connectionId:o,environmentId:r.environmentId,label:s,httpBaseUrl:t,wsBaseUrl:n}),credential:new na({token:a.access_token})}),expiresAtEpochMs:Jg(i,a.expires_in),refreshAtEpochMs:Yg(i,a.expires_in)}}),Kg=`3 seconds`,qg=5e3;function Jg(e,t){return e+Math.max(0,t*1e3)}function Yg(e,t){return Math.max(e,Jg(e,t)-qg)}function Xg(e=Ai){try{return{_tag:`Success`,target:e()}}catch(e){return{_tag:`Failure`,cause:e}}}function Zg(e,t){return t._tag===`Failure`?e.get(we):void 0}function Qg(e,t,n){return e.signature===t&&(e.refreshAtEpochMs===void 0||n<e.refreshAtEpochMs)}function $g(e,t,n){return e.signature===t&&e.expiresAtEpochMs!==void 0&&n<e.expiresAtEpochMs}var e_=6e4,t_=18e5;function n_(e,t,n){return e!==void 0&&e.signature===t&&n<e.retryAtEpochMs}function r_(e,t,n){let r=e?.signature===t?Math.min(e.delayMs*2,t_):e_;return{signature:t,retryAtEpochMs:n+r,delayMs:r}}function i_(e){return e._tag===`ConnectionBlockedError`&&e.reason===`authentication`}function a_(e,t,n){return t._tag===`Success`?new Map:new Map([...e].filter(([,e])=>e.expiresAtEpochMs!==void 0&&n<e.expiresAtEpochMs))}var o_=At(gl,M(function*(){if(ym()||La())return gl.of({registrations:Mr});let e=yield*Bi(new Map),t=yield*Bi(new Map),n=M(function*(){let n=yield*q(e),r=yield*me,i=new Map,a=[],o=Xg(),s=Zg(n,o);if(s!==void 0&&(i.set(we,s),a.push(s.registration)),o._tag===`Failure`)yield*H(`Could not read the primary environment topology.`,{cause:o.cause});else if(o.target!==null){let e=o.target,t=`primary|${e.target.httpBaseUrl}|${e.target.wsBaseUrl}`,s=n.get(we);if(s!==void 0&&Qg(s,t,r))i.set(we,s),a.push(s.registration);else{let n=yield*Wg(e).pipe(lr(e=>H(`Could not discover the primary environment.`,{error:e})),Mn);if(E(n)){let e={signature:t,registration:n.value};i.set(we,e),a.push(n.value)}}}let c=Jm();for(let[e,t]of a_(n,c,r))i.set(e,t),a.push(t.registration);if(c._tag===`Failure`)yield*H(`Could not read the desktop-local backend topology.`,{cause:c.cause});else{let e=yield*q(t),o=new Map;for(let t of c.bootstraps){let s=`${t.httpBaseUrl}|${t.wsBaseUrl}`,c=`${s}|${t.bootstrapToken??``}`,l=n.get(t.id);if(l!==void 0&&l.bootstrapToken===t.bootstrapToken&&Qg(l,s,r)){i.set(t.id,l),a.push(l.registration);continue}let u=e.get(t.id);if(n_(u,c,r)){o.set(t.id,u),l!==void 0&&$g(l,s,r)&&(i.set(t.id,l),a.push(l.registration));continue}let d=yield*Gg(t).pipe(lr(e=>H(`Could not connect a desktop-local backend.`,{id:t.id,error:e})),lr(e=>i_(e)?me.pipe(V(e=>o.set(t.id,r_(u,c,e)))):p),Mn);if(E(d)){let e={signature:s,...t.bootstrapToken===void 0?{}:{bootstrapToken:t.bootstrapToken},...d.value};i.set(t.id,e),a.push(d.value.registration)}else l!==void 0&&$g(l,s,r)&&(i.set(t.id,l),a.push(l.registration))}yield*W(t,o)}return yield*W(e,i),a}).pipe(fe(hn));return gl.of({registrations:ke(Kg).pipe(a(()=>n))})})),s_=_r(_i,_i.of({clear:e=>z(()=>{xn(e)})})),c_=_r(di,di.of({observe:({environmentId:e,method:t})=>z(()=>{Fg+=1;let n=`${e}:${Fg}`;return Fm(n,t,`${t} · ${e}`),z(()=>{Im(n)})})})),l_=fn(Og,Lg,zg,Ug,o_,s_,c_).pipe(Er(ka)),u_=fn(Ed,yu,id,tp).pipe(rr(vl({environmentThemes:!0,usageLimitSources:!0,usageLimitsCommand:!0})),rr(fn(ka,l_,Dp))),d_=Op.pipe(rr(u_)),f_=en(d_);export{Qd as $,Gs as $t,pm as A,oo as An,nl as At,sp as B,mc as Bt,hm as C,lo as Cn,Ul as Ct,um as D,Za as Dn,xl as Dt,bm as E,Qa as En,bl as Et,im as F,uo as Fn,Pc as Ft,ff as G,rc as Gt,cp as H,uc as Ht,$p as I,Ec as It,nf as J,ec as Jt,hf as K,nc as Kt,em as L,xc as Lt,tm as M,ro as Mn,$c as Mt,rm as N,po as Nn,Qc as Nt,lm as O,$a as On,Cl as Ot,nm as P,co as Pn,Ic as Pt,Zd as Q,Xs as Qt,Yp as R,yc as Rt,Sm as S,ho as Sn,tu as St,ym as T,eo as Tn,Tl as Tt,lp as U,dc as Ut,up as V,fc as Vt,Ef as W,lc as Wt,Yd as X,Zs as Xt,Xd as Y,tc as Yt,$d as Z,Qs as Zt,Um as _,bo as _n,md as _t,hh as a,Jo as an,Ld as at,Bm as b,xo as bn,Ou as bt,Zm as c,Mo as cn,jd as ct,lh as d,Do as dn,Md as dt,Ys as en,Ud as et,uh as f,Eo as fn,Od as ft,Wm as g,Co as gn,sd as gt,ah as h,Oo as hn,vd as ht,ph as i,Bo as in,Kd as it,dm as j,io as jn,Zc as jt,mm as k,Xa as kn,Sl as kt,Qm as l,Po as ln,Ad as lt,oh as m,Io as mn,xd as mt,Ph as n,ns as nn,Vd as nt,$m as o,To as on,Wd as ot,sh as p,Fo as pn,Cd as pt,df as q,$s as qt,mh as r,ts as rn,Gd as rt,eh as s,wo as sn,zd as st,f_ as t,es as tn,Hd as tt,dh as u,No as un,kd as ut,Gm as v,So as vn,Lu as vt,xm as w,fo as wn,kl as wt,Cm as x,go as xn,au as xt,Ym as y,vo as yn,Ru as yt,Jp as z,wc as zt};
3
- //# sourceMappingURL=runtime-d6B1vJeH.js.map
1
+ import{$T as e,$h as t,$x as n,AS as r,Au as i,Av as a,Aw as o,Ax as s,Ay as c,BS as l,Bb as u,Bg as d,Bw as f,CC as p,CS as m,Cb as h,Cg as g,Cl as _,Cu as v,Cv as ee,Cw as y,Cy as te,DC as ne,DS as re,Dc as ie,Ds as ae,Dw as oe,Dx as b,ES as se,ET as ce,Eb as le,Es as ue,Ev as de,FS as fe,FT as pe,Fx as x,GC as me,Gw as he,Gx as S,Gy as ge,HC as _e,HS as ve,HT as ye,Hb as be,Hg as xe,Hv as Se,Hy as Ce,Il as we,Is as Te,Iy as Ee,JT as De,Jl as Oe,Jv as ke,Jx as Ae,Kv as je,Kx as Me,LS as Ne,LT as Pe,Lg as Fe,Lv as Ie,MS as Le,Mv as Re,My as ze,NS as Be,Nb as Ve,Nv as He,Nx as Ue,Os as We,Ov as Ge,Ox as Ke,PS as qe,Pb as Je,Px as Ye,Py as Xe,QT as Ze,Qh as Qe,Qv as $e,Qw as et,RT as tt,Rb as nt,Rg as C,Rl as rt,Rv as it,Sb as at,Su as ot,Sv as st,Sw as ct,Sx as lt,TT as ut,Tb as dt,Tg as ft,Tu as pt,Tx as mt,Uc as w,Ug as ht,Uy as gt,VC as _t,Vg as vt,Vl as yt,Vs as bt,Vw as xt,WC as St,WT as Ct,Wg as wt,Wx as Tt,XC as Et,XT as Dt,Xh as Ot,Xx as T,Xy as kt,YC as At,Yh as jt,Yv as Mt,Yw as Nt,Yx as Pt,Yy as Ft,ZC as It,ZT as Lt,Zh as Rt,Zo as zt,_C as Bt,_T as Vt,_u as Ht,_v as Ut,_x as Wt,aC as Gt,aE as E,aS as Kt,as as D,bC as qt,bb as Jt,bu as Yt,bx as Xt,cC as Zt,cE as O,cb as Qt,cg as $t,cs as en,dC as tn,dE as nn,db as rn,dg as an,dx as on,dy as sn,eE as cn,eS as ln,eb as un,eg as dn,ew as fn,fS as pn,fb as mn,fc as hn,fg as gn,gC as _n,gS as vn,gl as yn,gu as bn,h as xn,hC as Sn,hb as Cn,hs as wn,hw as Tn,hx as En,iC as Dn,iE as k,iS as On,ib as A,ig as kn,is as An,iy as jn,jS as Mn,jT as Nn,jb as Pn,jt as Fn,ju as In,jv as Ln,jx as Rn,jy as zn,kE as Bn,kS as Vn,kb as Hn,kw as Un,kx as Wn,ky as Gn,l as Kn,lC as qn,lE as j,lS as M,lT as Jn,lb as Yn,ls as N,lv as Xn,mC as Zn,mg as Qn,mv as $n,mx as er,nE as tr,ng as nr,nw as rr,oC as ir,oE as ar,oS as P,ob as or,ow as sr,oy as cr,pC as lr,pg as ur,ps as F,pv as dr,qC as fr,qT as pr,qs as mr,rC as hr,rS as gr,rs as I,rw as _r,sC as L,sE as vr,sy as yr,tE as R,tS as br,tb as xr,tc as Sr,tg as Cr,ts as wr,tv as Tr,tw as Er,uC as z,uS as Dr,ug as Or,ux as kr,uy as Ar,vC as jr,vv as Mr,vx as Nr,wT as Pr,wb as Fr,ws as Ir,wu as Lr,wx as B,xE as Rr,xS as V,xb as zr,xl as Br,xs as Vr,xu as Hr,xw as Ur,xx as Wr,xy as Gr,yS as H,yT as Kr,yu as qr,zg as Jr,zv as Yr,zy as Xr}from"./utils-CBe1bHL7.js";import{$ as Zr,$t as Qr,A as U,An as $r,At as ei,Bn as ti,Bt as ni,Cn as ri,Ct as ii,D as ai,Dn as oi,Dt as si,E as ci,En as li,F as ui,G as di,Gn as W,Gt as fi,Hn as pi,Ht as mi,I as hi,Jn as gi,Jt as _i,K as vi,Kn as yi,Kt as bi,M as G,Mt as xi,N as K,Nt as Si,P as Ci,Pn as wi,Pt as Ti,Q as Ei,Qt as Di,R as Oi,Rn as ki,S as Ai,Sn as ji,St as Mi,Tn as Ni,Tt as Pi,Un as q,Ut as Fi,V as Ii,Vn as Li,Vt as Ri,W as zi,Wn as Bi,Wt as Vi,X as Hi,Xt as Ui,Y as Wi,Yt as Gi,Z as Ki,Zt as qi,_n as Ji,_t as Yi,an as Xi,bn as Zi,bt as Qi,cn as $i,ct as ea,dn as ta,dt as J,en as na,fn as ra,ft as ia,gn as aa,gt as oa,hn as sa,ht as ca,in as la,j as ua,k as da,kn as fa,kt as pa,ln as ma,lt as ha,m as ga,mt as _a,nn as va,nt as ya,ot as ba,p as xa,pn as Sa,pt as Ca,q as wa,qt as Ta,rn as Ea,rt as Da,sn as Oa,t as ka,tn as Aa,tt as ja,un as Ma,ut as Na,v as Pa,vn as Fa,vt as Ia,w as La,wn as Ra,wt as za,xn as Ba,xt as Va,y as Ha,yn as Ua,yt as Wa,zn as Ga,zt as Ka}from"./runtime-CeFhsGnm.js";function qa(e){let t=new URL(e);if(t.protocol===`ws:`?t.protocol=`http:`:t.protocol===`wss:`&&(t.protocol=`https:`),t.protocol!==`http:`&&t.protocol!==`https:`)throw Error(`Endpoint must use HTTP or HTTPS. Received ${t.protocol}`);return t.pathname=`/`,t.search=``,t.hash=``,t.toString()}function Ja(e){let t=new URL(qa(e));return t.protocol=t.protocol===`https:`?`wss:`:`ws:`,t.toString()}function Ya(e,t){return[...e].sort(t)}function Xa(e){return/^[a-zA-Z]:([/\\]|$)/.test(e)}function Za(e){return e.startsWith(`\\\\`)}function Qa(e){return/^[\\/]{2}/.test(e)}function $a(e){return Za(e)||Xa(e)}function eo(e){return e===`.`||e===`..`||e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`.\\`)||e.startsWith(`..\\`)}function to(e){return e===`/`||e===`\\`||/^[a-zA-Z]:[/\\]$/.test(e)}function no(e){if(e.length===0||to(e))return e;let t=e.startsWith(`/`)?e.replace(/\/+$/g,``):e.replace(/[\\/]+$/g,``);return t.length===0?e:/^[a-zA-Z]:$/.test(t)?`${t}\\`:t}function ro(e){return no(e.trim())}function io(e){let t=ro(e);return Xa(t)||Za(t)?t.replaceAll(`/`,`\\`).toLowerCase():t}var ao=/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/;function oo(e){let t=e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+/,``).slice(0,64).replace(/-+$/,``);return t.length===0?`project`:ao.test(t)?`${t}-project`:t}var so=/^\/[A-Za-z]:[\\/]/;function co(e){return so.test(e)?e.slice(1):e}function lo(e){let t=e.replace(/[/\\]+$/,``);if(t.length===0)return e;let n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));return n>=0?t.slice(n+1):t}function uo(e,t){if(!t)return null;let n=co(e.replaceAll(`\\`,`/`)),r=co(t.replaceAll(`\\`,`/`)).replace(/\/+$/,``),i=$a(co(t)),a=i?n.toLowerCase():n,o=i?r.toLowerCase():r;if(a.replace(/\/+$/,``)===o)return`.`;if(!a.startsWith(`${o}/`))return null;let s=n.slice(r.length+1),c=0;for(let e of s.split(`/`))if(e===`..`?--c:e.length>0&&e!==`.`&&(c+=1),c<0)return null;return s}function fo(e){return e.startsWith(`/`)||$a(e)}function po(e,t){if(fo(e)||e.startsWith(`~/`)||e.startsWith(`~\\`))return e;let n=t.replace(/[/\\]+$/,``);return $a(t)?`${n}\\${e.replaceAll(`/`,`\\`)}`:`${n}/${e}`}function mo(e){try{return decodeURIComponent(e)}catch{return e}}function ho(e){if(!e)return null;if(e.provider===`azure-devops`){let t=(e.displayName??``).split(`/`).filter(e=>e!==`_git`),n=e.name||t.at(-1);return n?mo(n):null}return e.displayName?e.displayName:e.owner&&e.name?`${e.owner}/${e.name}`:null}function go(e){return e.replace(/^(?:ssh\.dev\.azure\.com|vs-ssh\.visualstudio\.com)\/v3\/([^/]+)\/([^/]+)\/([^/]+)$/u,`dev.azure.com/$1/$2/_git/$3`).replace(/^([^.]+)\.visualstudio\.com\/(?:defaultcollection\/)?([^/]+)\/_git\/([^/]+)$/u,`dev.azure.com/$1/$2/_git/$3`)}function _o(e,t,n){return e===t||e.endsWith(`.${t}`)?!0:n!==void 0&&e.split(`.`).includes(n)}function vo(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`https:`&&t.protocol!==`http:`)return null;let n=t.hostname.toLowerCase();if(n===`git.cafe`||n===`staging.git.cafe`)return yo(n,/^\/([^/]+\/[^/]+)\/pulls\/(\d+)(?:\/|$)/u.exec(t.pathname));if(_o(n,`github.com`,`github`)){let e=/^\/([^/]+\/[^/]+)\/pull\/(\d+)(?:\/|$)/u.exec(t.pathname);if(e)return yo(n,e)}let r=/^\/([^/]+(?:\/[^/]+)+)\/pulls\/(\d+)(?:\/|$)/u.exec(t.pathname);if(r){let e=yo(n,r);return e===null?null:{...e,authority:t.host.toLowerCase()}}let i=/^\/([^/]+(?:\/[^/]+)+)\/-\/merge_requests\/(\d+)(?:\/|$)/u.exec(t.pathname);return i?yo(n,i):_o(n,`bitbucket.org`,`bitbucket`)?yo(n,/^\/([^/]+\/[^/]+)\/pull-requests\/(\d+)(?:\/|$)/u.exec(t.pathname)):_o(n,`dev.azure.com`)||n.endsWith(`.visualstudio.com`)?yo(n,/^\/((?:[^/]+\/)*_git\/[^/]+)\/pullrequest\/(\d+)(?:\/|$)/u.exec(t.pathname)):null}function yo(e,t){let n=t?.[1],r=Number(t?.[2]);return n&&Number.isSafeInteger(r)&&r>0?{host:e,repository:n.toLowerCase(),number:r}:null}function bo(e,t,n){if(e?.provider!==`github`||!Number.isSafeInteger(n)||n<1)return null;let r=t.split(`/`);if(r.length!==2||r.some(e=>e.length===0||e===`.`||e===`..`))return null;let i=null;try{let t=new URL(e.locator.remoteUrl.trim());(t.protocol===`http:`||t.protocol===`https:`)&&(i=t.origin)}catch{}let a=e.canonicalKey.split(`/`)[0];if(i===null&&!a)return null;try{let e=new URL(i??`https://${a}`);return e.pathname=`/${r.join(`/`)}/pull/${n}`,e.toString()}catch{return null}}function xo(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`https:`&&t.protocol!==`http:`||!(t.hostname.toLowerCase()===`github.com`||t.hostname.toLowerCase().endsWith(`.github.com`)||t.hostname.toLowerCase().split(`.`).includes(`github`)))return null;let n=/^\/([^/]+\/[^/]+)\/issues\/(\d+)(?:\/|$)/u.exec(t.pathname);return n?.[1]===void 0||n[2]===void 0?null:(t.pathname=`/${n[1]}/pull/${n[2]}`,t.toString())}function So(e,t){let n=vo(e.url),r=vo(t);return n!==null&&r!==null&&n.host===r.host&&n.repository===r.repository&&n.number===r.number&&n.authority===r.authority}function Co(e){if(vo(e)===null)return null;let t=new URL(e),n=/^(.*?)\/-\/merge_requests\/\d+(?:\/|$)/iu.exec(t.pathname)?.[1]??/^(.*?)(?:\/pulls?\/\d+|\/-\/merge_requests\/\d+|\/pull-requests\/\d+|\/pullrequest\/\d+)(?:\/|$)/iu.exec(t.pathname)?.[1];return n?(t.pathname=n,t.search=``,t.hash=``,t.toString()):null}function wo(e){let t=e.url===void 0?null:vo(e.url),n=go(`${(e.authority??(t?.repository===e.repository.trim().toLowerCase()&&t.number===e.number?t.authority:void 0)??e.host).trim().toLowerCase()}/${e.repository.trim().toLowerCase()}`),r=n.indexOf(`/`);return{host:n.slice(0,r),repository:n.slice(r+1),number:e.number}}function To(e,t){let n=vo(e.url);if(n!==null&&n.number===e.number){let e=go(`${n.host}/${n.repository}`);if(n.authority!==void 0||e.startsWith(`dev.azure.com/`))return wo(n)}let r=t;if(r===void 0)try{r=new URL(e.url).hostname}catch{r=`unknown`}return{host:r.trim().toLowerCase()||`unknown`,repository:e.repository.trim().toLowerCase(),number:e.number}}function Eo(e,t){return Do(e)===Do(t)}function Do(e){let t=wo(e);return`${t.host}/${t.repository}#${t.number}`}function Oo(e){return e.filter(e=>e.source!==`stack-dismissed`)}function ko(e){return e.snapshot===null||e.snapshot.state===`open`}function Ao(e){let t=e.snapshot?.updatedAt??e.linkedAt,n=Date.parse(t);return Number.isNaN(n)?0:n}function jo(e){let t=Oo(e);if(t.length===0)return null;let n=t.filter(ko);if(n.length===1)return{kind:`single`,link:n[0]};let r=No(t);if(n.length>1){let e=r.map(e=>[...e.layers].reverse().filter(ko)).filter(e=>e.length>0).sort((e,t)=>Math.max(...t.map(e=>Date.parse(e.linkedAt)))-Math.max(...e.map(e=>Date.parse(e.linkedAt)))).flat();return{kind:`stack`,open:e,top:e[0]}}return r.length===1?{kind:`single`,link:r[0].layers.at(-1)}:{kind:`single`,link:[...t].sort((e,t)=>Ao(t)-Ao(e))[0]}}function Mo(e){let t=jo(e);return t===null?null:t.kind===`single`?t.link:t.top}function No(e){let t=Oo(e),n=[],r=new Set,i=new Map;for(let e of t){if(e.stack===null)continue;let t=wo(e),n=`${t.host}/${t.repository}#stack:${e.stack.id}`,r=i.get(n)??[];r.push(e),i.set(n,r)}for(let e of i.values()){let t=new Map(e[0].stack.layers.map((e,t)=>[e.number,t]));e.sort((e,n)=>(t.get(e.number)??0)-(t.get(n.number)??0));for(let t of e)r.add(Do(t));n.push({kind:`native`,layers:e})}let a=t.filter(e=>!r.has(Do(e))),o=(e,t)=>{let n=wo(e);return`${n.host}/${n.repository}:${t}`},s=new Map;for(let e of a){if(e.snapshot===null)continue;let t=o(e,e.snapshot.headBranch);s.set(t,s.has(t)?null:e)}let c=new Set;for(let e of a){if(e.snapshot===null)continue;let t=s.get(o(e,e.snapshot.baseBranch));t!=null&&t!==e&&c.add(Do(t))}for(let e of a){if(c.has(Do(e)))continue;let t=[],i=e;for(;i!==void 0&&!r.has(Do(i));)r.add(Do(i)),t.unshift(i),i=i.snapshot===null?void 0:s.get(o(i,i.snapshot.baseBranch))??void 0;t.length>0&&n.push({kind:`derived`,layers:t})}for(let e of a)r.has(Do(e))||n.push({kind:`derived`,layers:[e]});return n}function Po(e){let t=Oo(e??[]);if(t.length===0)return null;let n=t.map(e=>e.snapshot?.state??`open`),r=t.every(e=>e.snapshot?.state===`open`&&e.snapshot.isDraft)?`draft`:n.includes(`open`)?`open`:n.every(e=>e===`merged`)?`merged`:`closed`,i=No(t);return t.length>1&&i.length===1?{kind:`stack`,layers:t.length,state:r}:{kind:`pull-request`,others:t.length-1,state:r}}function Fo(e){let t=e.branchPullRequest,n=t?[`#${t.number}`,`${t.repository}#${t.number}`,t.url]:[];if(e.pullRequests!==void 0&&e.pullRequests.length>0)return n.concat(Oo(e.pullRequests).flatMap(e=>[`#${e.number}`,`${e.repository}#${e.number}`,e.url,e.snapshot?.title??``]));let r=e.linkedPullRequest;return r?n.concat([`#${r.number}`,`${r.repository}#${r.number}`,r.url]):n}function Io(e){if(e.pullRequests!==void 0)return e.pullRequests;let t=e.linkedPullRequest;return t==null?[]:[{...To(t),url:t.url,source:`manual`,linkedAt:`1970-01-01T00:00:00.000Z`,snapshot:null,stack:null}]}function Lo(e,t){return{...e,pullRequests:Io(e).map(e=>Eo(e,t)?t:e)}}var Ro=new Set([`command_execution`,`dynamic_tool`,`subagent`]),zo=new Set([`cancelled`,`completed`,`failed`,`interrupted`,`waiting`]);function Bo(e){return e.some(e=>Vo(e.kind))}function Vo(e){switch(e){case`command`:return!1;case`subagent`:case`monitor`:case`background_task`:return!0}}function Ho(e){return e!=null&&zo.has(e.status)}function Uo(e){return typeof e!=`object`||!e||Array.isArray(e)?!1:Reflect.get(e,`persistent`)===!0}function Wo(e){if(typeof e.title==`string`&&e.title.trim().length>0)return e.title.trim();if(e.type===`command_execution`&&typeof e.input==`string`){let t=e.input.trim();return t.length>0?t:void 0}if(e.type===`dynamic_tool`){let t=Reflect.get(e,`toolName`);if(typeof t==`string`&&t.trim().length>0)return t.trim()}if(e.type===`subagent`&&typeof e.prompt==`string`){let t=e.prompt.trim();return t.length>0?t:void 0}}function Go(e,t){let n=Wo(t),r={taskId:e,...n===void 0?{}:{description:n}};switch(t.type){case`subagent`:return{...r,kind:`subagent`,...t.owningProviderInstanceId===void 0?{}:{providerInstanceId:t.owningProviderInstanceId},...t.childThreadId==null?{}:{childThreadId:t.childThreadId}};case`command_execution`:return{...r,kind:`command`};default:return{...r,kind:`background_task`}}}function Ko(e){let t=e.nativeItemRef?.nativeId;return typeof t==`string`&&t.length>0?t:String(e.id)}function qo(e){let t=new Set((e.runs??[]).filter(e=>e.status===`rolled_back`).map(e=>String(e.id)));return e.turnItems.filter(e=>Ro.has(e.type)&&Lr(e.status)&&!(e.type===`dynamic_tool`&&Uo(e.input))&&(e.runId===void 0||e.runId===null||!t.has(String(e.runId))))}function Jo(e){if(e.hasActiveRun??e.runs?.some(e=>e.status===`preparing`||e.status===`starting`||e.status===`running`)??!1)return[];if(e.latestRun==null)return Yo(e.pullRequests);if(!Ho(e.latestRun))return[];let t=new Map,n=e.activeProviderThreadId===void 0||e.activeProviderThreadId===null?e.providerThreads:e.providerThreads.filter(t=>t.id===e.activeProviderThreadId);for(let e of n)for(let n of e.pendingBackgroundTasks??[]){if(n.taskId.length===0||t.has(n.taskId))continue;let{description:r,...i}=n,a=r?.trim();t.set(n.taskId,{...i,...n.kind===`subagent`?{providerInstanceId:e.providerInstanceId}:{},...a===void 0||a.length===0?{}:{description:a}})}for(let n of qo(e)){let e=Ko(n);t.has(e)||t.set(e,Go(e,n))}for(let n of Yo(e.pullRequests))t.set(n.taskId,n);return Array.from(t.values())}function Yo(e){return(e??[]).flatMap(e=>e.watch===void 0||e.source===`stack-dismissed`?[]:[{taskId:`pull-request-watch:${Do(e)}`,description:`Watching pull request #${e.number}`,kind:`monitor`}])}var Y=n(`EnvironmentCommands.allocateCommandId`)(function*(e){if(e.commandId!==void 0)return e.commandId;let t=yield*gi;return zn.make(yield*t.randomUUIDv4().pipe(Le))}),X=e=>Ki(bn.dispatchCommand,e),Xo=e=>Ki(bn.getThreadProjection,{threadId:e}),Zo=n(`EnvironmentCommands.supportsServerResolvedCommandContext`)(function*(){return(yield*Wi()).environment.capabilities.serverResolvedCommandContext===!0}),Qo=n(`EnvironmentCommands.persistAttachments`)(function*(e,t,n){let r=n.filter(e=>!(`dataUrl`in e)),i=n.filter(e=>`dataUrl`in e);if(i.length===0)return r;let a=yield*Ki(w.assetsPersistChatAttachments,{threadId:e,messageId:t,attachments:i});if(r.length===0)return a.attachments;let o=new Map(i.map((e,t)=>[e,a.attachments[t]]));return n.flatMap(e=>{if(!(`dataUrl`in e))return[e];let t=o.get(e);return t===void 0?[]:[t]})}),$o=n(`EnvironmentCommands.mutateProject`)(function*(e){return yield*Ki(w.projectsMutate,e)}),es=n(`EnvironmentCommands.createProject`)(function*(e){return yield*$o({type:`project.create`,commandId:yield*Y(e),projectId:e.projectId,title:e.title,workspaceRoot:e.workspaceRoot,...e.createWorkspaceRootIfMissing===void 0?{}:{createWorkspaceRootIfMissing:e.createWorkspaceRootIfMissing},...e.defaultModelSelection===void 0?{}:{defaultModelSelection:e.defaultModelSelection},...e.scripts===void 0?{}:{scripts:e.scripts}})}),ts=n(`EnvironmentCommands.updateProject`)(function*(e){return yield*$o({type:`project.update`,commandId:yield*Y(e),projectId:e.projectId,...e.title===void 0?{}:{title:e.title},...e.workspaceRoot===void 0?{}:{workspaceRoot:e.workspaceRoot},...e.defaultModelSelection===void 0?{}:{defaultModelSelection:e.defaultModelSelection},...e.autoPull===void 0?{}:{autoPull:e.autoPull},...e.projectIcon===void 0?{}:{projectIcon:e.projectIcon},...e.faviconPath===void 0?{}:{faviconPath:e.faviconPath},...e.defaultThreadEnvMode===void 0?{}:{defaultThreadEnvMode:e.defaultThreadEnvMode},...e.scripts===void 0?{}:{scripts:e.scripts}})}),ns=n(`EnvironmentCommands.deleteProject`)(function*(e){return yield*$o({type:`project.delete`,commandId:yield*Y(e),projectId:e.projectId,...e.force===void 0?{}:{force:e.force}})}),rs=n(`EnvironmentCommands.createThread`)(function*(e){return yield*X({type:`thread.create`,commandId:yield*Y(e),createdBy:`user`,creationSource:e.creationSource??`web`,threadId:e.threadId,projectId:e.projectId,title:e.title,modelSelection:e.modelSelection,runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,branch:e.branch,worktreePath:e.worktreePath,...e.parentThreadId===void 0?{}:{parentThreadId:e.parentThreadId},...e.sideChat===void 0?{}:{sideChat:e.sideChat}})});function is(e,t){return Y(t).pipe(T(n=>X({type:e,commandId:n,threadId:t.threadId})))}var as=n(`EnvironmentCommands.deleteThread`)(function*(e){return e.expectedEmpty!==!0&&e.expectedSideChat!==!0?yield*is(`thread.delete`,e):yield*X({type:`thread.delete`,commandId:yield*Y(e),threadId:e.threadId,...e.expectedEmpty===!0?{expectedEmpty:!0}:{},...e.expectedSideChat===!0?{expectedSideChat:!0}:{}})}),os=n(`EnvironmentCommands.archiveThread`)(function*(e){return yield*is(`thread.archive`,e)}),ss=n(`EnvironmentCommands.unarchiveThread`)(function*(e){return yield*is(`thread.unarchive`,e)}),cs=n(`EnvironmentCommands.settleThread`)(function*(e){return yield*is(`thread.settle`,e)}),ls=n(`EnvironmentCommands.pinThread`)(function*(e){return yield*X({type:`thread.pin`,commandId:yield*Y(e),threadId:e.threadId,...e.orderKey===void 0?{}:{orderKey:e.orderKey}})}),us=n(`EnvironmentCommands.setThreadAutoSettle`)(function*(e){return yield*X({type:`thread.auto-settle.set`,commandId:yield*Y(e),threadId:e.threadId,enabled:e.enabled})}),ds=n(`EnvironmentCommands.reorderPinnedThread`)(function*(e){return yield*X({type:`thread.pin.reorder`,commandId:yield*Y(e),threadId:e.threadId,orderKey:e.orderKey})}),fs=n(`EnvironmentCommands.reorderActiveThread`)(function*(e){return yield*X({type:`thread.active.reorder`,commandId:yield*Y(e),threadId:e.threadId,orderKey:e.orderKey})}),ps=n(`EnvironmentCommands.unpinThread`)(function*(e){return yield*is(`thread.unpin`,e)}),ms=n(`EnvironmentCommands.unsettleThread`)(function*(e){return yield*X({type:`thread.unsettle`,commandId:yield*Y(e),threadId:e.threadId,reason:e.reason})}),hs=n(`EnvironmentCommands.snoozeThread`)(function*(e){return yield*X({type:`thread.snooze`,commandId:yield*Y(e),threadId:e.threadId,snoozedUntil:e.snoozedUntil})}),gs=n(`EnvironmentCommands.unsnoozeThread`)(function*(e){return yield*X({type:`thread.unsnooze`,commandId:yield*Y(e),threadId:e.threadId,reason:e.reason})}),_s=n(`EnvironmentCommands.visitThread`)(function*(e){return yield*X({type:`thread.visit`,commandId:yield*Y(e),threadId:e.threadId,visitedAt:e.visitedAt})}),vs=n(`EnvironmentCommands.markThreadUnread`)(function*(e){return yield*X({type:`thread.mark-unread`,commandId:yield*Y(e),threadId:e.threadId})}),ys=n(`EnvironmentCommands.updateThreadMetadata`)(function*(e){let t=yield*Y(e),n=null;return(e.projectId!==void 0||e.title!==void 0||e.branch!==void 0||e.worktreePath!==void 0||e.regenerateTitle!==void 0||e.linkedPullRequest!==void 0||e.sideChat!==void 0||e.limitRecovery!==void 0)&&(n=yield*X({type:`thread.metadata.update`,...e.projectId===void 0?{}:{projectId:e.projectId},...e.limitRecovery===void 0?{}:{limitRecovery:e.limitRecovery},commandId:t,threadId:e.threadId,...e.title===void 0?{}:{title:e.title},...e.branch===void 0?{}:{branch:e.branch},...e.worktreePath===void 0?{}:{worktreePath:e.worktreePath},...e.expectedEmpty===!0?{expectedEmpty:!0}:{},...e.regenerateTitle===void 0?{}:{regenerateTitle:e.regenerateTitle},...e.linkedPullRequest===void 0?{}:{linkedPullRequest:e.linkedPullRequest},...e.sideChat===void 0?{}:{sideChat:e.sideChat}})),e.modelSelection!==void 0&&(n=yield*X({type:(yield*Zo())?`thread.model-selection.set`:bt((yield*Xo(e.threadId)).thread.providerInstanceId,e.modelSelection),commandId:n===null?t:zn.make(`${t}:model-selection`),threadId:e.threadId,modelSelection:e.modelSelection})),n??{sequence:0}}),bs=n(`EnvironmentCommands.setThreadRuntimeMode`)(function*(e){return yield*X({type:`thread.runtime-mode.set`,commandId:yield*Y(e),threadId:e.threadId,runtimeMode:e.runtimeMode})}),xs=n(`EnvironmentCommands.setThreadInteractionMode`)(function*(e){return yield*X({type:`thread.interaction-mode.set`,commandId:yield*Y(e),threadId:e.threadId,interactionMode:e.interactionMode})}),Ss=n(`EnvironmentCommands.startThreadTurn`)(function*(e){let t=yield*Y(e),n=yield*Qo(e.threadId,e.message.messageId,e.message.attachments),r=ie(e.message.context,e.message.attachments,n),i=e.bootstrap?.createThread,a=e.bootstrap?.prepareWorktree;if(i!==void 0||a!==void 0){let o=i===void 0?yield*Xo(e.threadId):null,s=i??o.thread,c=a===void 0?i?.worktreePath?{type:`existing_worktree`,worktreePath:i.worktreePath,...i.branch===null?{}:{branch:i.branch}}:{type:`root`,...i?.branch===null||i?.branch===void 0?{}:{branch:i.branch}}:{type:a.auto===!0?`auto`:`worktree`,baseRef:a.baseBranch,...a.branch===void 0?{}:{branch:a.branch},...a.startFromOrigin===void 0?{}:{startFromOrigin:a.startFromOrigin}};return yield*Ki(bn.launchThread,{commandId:t,creationSource:e.creationSource??`web`,threadId:e.threadId,...i===void 0?{reuseExistingThread:!0}:{},projectId:s.projectId,title:e.titleSeed??s.title,generateTitle:e.titleSeed!==void 0,modelSelection:e.modelSelection??s.modelSelection,runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,workspaceStrategy:c,initialMessage:{messageId:e.message.messageId,text:e.message.text,...r?{context:r}:{},attachments:n}})}let o=e.dispatchMode??`auto`;if(o===`start`)return yield*X({type:`message.dispatch`,commandId:t,createdBy:`user`,creationSource:e.creationSource??`web`,threadId:e.threadId,messageId:e.message.messageId,...e.manualContinuationOfRunId===void 0?{}:{manualContinuationOfRunId:e.manualContinuationOfRunId},text:e.message.text,...r?{context:r}:{},attachments:n,...e.modelSelection===void 0?{}:{modelSelection:e.modelSelection},...e.sourceProposedPlan===void 0?{}:{sourcePlanRef:e.sourceProposedPlan},dispatchMode:{type:`start_immediately`}});let s=yield*Zo(),c=s?null:yield*Xo(e.threadId),l=c?.runs.findLast(e=>e.status===`preparing`||e.status===`starting`||e.status===`running`||e.status===`waiting`),u=l===void 0?void 0:c?.providerThreads.find(e=>e.id===l.providerThreadId),d=(u?.providerSessionId===null||u?.providerSessionId===void 0?void 0:c?.providerSessions.find(e=>e.id===u.providerSessionId))?.capabilities.turns,f=s?o===`queue`?{type:`queue_after_active`}:{type:`start_immediately`}:l===void 0?{type:`start_immediately`}:o===`steer`?{type:`steer_active`,targetRunId:l.id}:o===`restart`?{type:`restart_active`,targetRunId:l.id}:o===`queue`?{type:`queue_after_active`}:d?.supportsActiveSteering===!0?{type:`steer_active`,targetRunId:l.id}:d?.supportsQueuedMessages===!0?{type:`queue_after_active`}:d?.supportsSteeringByInterruptRestart===!0?{type:`restart_active`,targetRunId:l.id}:{type:`queue_after_active`},p=e.titleSeed!==void 0&&(s||c?.messages.length===0);return yield*X({type:`message.dispatch`,commandId:t,createdBy:`user`,creationSource:e.creationSource??`web`,threadId:e.threadId,messageId:e.message.messageId,text:e.message.text,...r?{context:r}:{},attachments:n,...p?{titleSeed:e.titleSeed}:{},...e.modelSelection===void 0?{}:{modelSelection:e.modelSelection},...e.sourceProposedPlan===void 0?{}:{sourcePlanRef:e.sourceProposedPlan},...s&&o!==`queue`?{deliveryIntent:o}:{},dispatchMode:f})}),Cs=n(`EnvironmentCommands.interruptThreadTurn`)(function*(e){if(e.subagentId!==void 0){let t=(yield*Xo(e.threadId)).subagents.find(t=>t.id===e.subagentId);return t?.runId==null?{sequence:0}:yield*X({type:`subagent.stop`,commandId:yield*Y(e),threadId:e.threadId,runId:t.runId,subagentId:t.id})}let t=e.runId??e.turnId;if(t===void 0){let n=yield*Xo(e.threadId);if(t=n.runs.findLast(e=>e.status===`preparing`||e.status===`starting`||e.status===`running`||e.status===`waiting`)?.id,t===void 0){let e=n.runs.at(-1);Jo({latestRun:e,providerThreads:n.providerThreads,turnItems:n.turnItems,activeProviderThreadId:n.thread.activeProviderThreadId,runs:n.runs}).length>0&&(t=e?.id)}if(t===void 0){let t={sequence:0};for(let r of Oo(n.thread.pullRequests??[]))r.watch!==void 0&&(t=yield*X({type:`thread.pull-request.watch`,commandId:yield*Y(t.sequence===0?e:{}),threadId:e.threadId,host:r.host,repository:r.repository,number:r.number,watching:!1}));return t}}return t===void 0?{sequence:0}:yield*X({type:`run.interrupt`,commandId:yield*Y(e),threadId:e.threadId,runId:t,holdQueue:!0})}),ws=n(`EnvironmentCommands.respondToThreadApproval`)(function*(e){return yield*X({type:`runtime-request.respond`,commandId:yield*Y(e),threadId:e.threadId,requestId:e.requestId,decision:e.decision})}),Ts=n(`EnvironmentCommands.respondToThreadUserInput`)(function*(e){return yield*X({type:`runtime-request.respond`,commandId:yield*Y(e),threadId:e.threadId,requestId:e.requestId,answers:e.answers,...e.attachmentsByQuestionId===void 0?{}:{attachmentsByQuestionId:e.attachmentsByQuestionId}})}),Es=n(`EnvironmentCommands.dismissThreadUserInput`)(function*(e){return yield*X({type:`thread.user-input.dismiss`,commandId:yield*Y(e),threadId:e.threadId,requestId:e.requestId})}),Ds=n(`EnvironmentCommands.dismissThreadMcpSignIn`)(function*(e){return yield*X({type:`thread.mcp-sign-in.dismiss`,commandId:yield*Y(e),threadId:e.threadId,turnItemId:e.turnItemId})}),Os=n(`EnvironmentCommands.revertThreadCheckpoint`)(function*(e){if(e.checkpointId!==void 0&&e.scopeId!==void 0&&(yield*Zo()))return yield*X({type:`checkpoint.rollback`,...e.restoreFiles===void 0?{}:{restoreFiles:e.restoreFiles},commandId:yield*Y(e),threadId:e.threadId,scopeId:c.make(e.scopeId),checkpointId:Gn.make(e.checkpointId)});let t=yield*Xo(e.threadId),n=t.checkpoints.find(t=>t.id===e.checkpointId&&t.scopeId===e.scopeId)??t.checkpoints.findLast(t=>e.turnCount===0?t.ordinalWithinScope===0&&t.appRunOrdinal===null:t.appRunOrdinal===e.turnCount);if(n===void 0||n.status!==`ready`){let t=e.checkpointId===void 0?`run ordinal ${e.turnCount??`unknown`}`:`checkpoint ${e.checkpointId}`;return yield*new Ht({threadId:e.threadId,target:t})}return yield*X({type:`checkpoint.rollback`,...e.restoreFiles===void 0?{}:{restoreFiles:e.restoreFiles},commandId:yield*Y(e),threadId:e.threadId,scopeId:n.scopeId,checkpointId:n.id})}),ks=n(`EnvironmentCommands.stopThreadSession`)(function*(e){let t=yield*Xo(e.threadId),n=yield*Y(e),r={sequence:0};for(let i of t.providerSessions)r=yield*X({type:`provider-session.detach`,commandId:zn.make(`${n}:detach:${i.id}`),threadId:e.threadId,providerSessionId:i.id,reason:`client-requested`});return r}),As=n(`EnvironmentCommands.forkThreadFromRun`)(function*(e){return yield*X({type:`thread.fork`,commandId:yield*Y(e),createdBy:`user`,creationSource:e.creationSource??`web`,sourceThreadId:e.sourceThreadId,targetThreadId:e.targetThreadId,sourcePoint:e.runId===void 0?{type:`latest_stable`}:{type:`run`,runId:e.runId},...e.title===void 0?{}:{title:e.title},...e.sideChat===void 0?{}:{sideChat:e.sideChat},...e.runtimeMode===void 0?{}:{runtimeMode:e.runtimeMode}})}),js=n(`EnvironmentCommands.mergeThreadBack`)(function*(e){return yield*X({type:`thread.merge_back`,commandId:yield*Y(e),createdBy:`user`,creationSource:e.creationSource??`web`,sourceThreadId:e.sourceThreadId,targetThreadId:e.targetThreadId,sourcePoint:{type:`run`,runId:e.runId}})}),Ms=n(`EnvironmentCommands.resumeThreadQueue`)(function*(e){return yield*X({type:`queue.resume`,commandId:yield*Y(e),threadId:e.threadId})}),Ns=n(`EnvironmentCommands.reorderQueuedRun`)(function*(e){return yield*X({type:`queued-run.reorder`,commandId:yield*Y(e),threadId:e.threadId,runId:e.runId,beforeRunId:e.beforeRunId})}),Ps=n(`EnvironmentCommands.promoteQueuedRun`)(function*(e){return yield*X({type:`queued-message.promote-to-steer`,commandId:yield*Y(e),threadId:e.threadId,queuedRunId:e.queuedRunId,targetRunId:e.targetRunId})}),Fs=n(`EnvironmentCommands.cancelQueuedRun`)(function*(e){return yield*X({type:`queued-run.cancel`,commandId:yield*Y(e),threadId:e.threadId,runId:e.runId})}),Is=n(`EnvironmentCommands.retryWorkspacePreparation`)(function*(e){return yield*X({type:`prepared-run.retry`,commandId:yield*Y(e),threadId:e.threadId,runId:e.runId})}),Ls=n(`EnvironmentCommands.editQueuedRun`)(function*(e){let t=e.edit===void 0?void 0:yield*Qo(e.threadId,e.edit.messageId,e.edit.attachments);return yield*X({type:`queued-run.edit`,commandId:yield*Y(e),threadId:e.threadId,runId:e.runId,text:e.text,...t===void 0?{}:{attachments:t},...e.edit?.context&&t?{context:ie(e.edit.context,e.edit.attachments,t)}:{}})}),Rs=n(`EnvironmentCommands.linkThreadPullRequest`)(function*(e){return yield*X({...e,type:`thread.pull-request.link`,commandId:yield*Y(e)})}),zs=n(`EnvironmentCommands.linkThreadDesign`)(function*(e){return yield*X({...e,type:`thread.design.link`,commandId:yield*Y(e)})}),Bs=n(`EnvironmentCommands.unlinkThreadDesign`)(function*(e){return yield*X({...e,type:`thread.design.unlink`,commandId:yield*Y(e)})}),Vs=n(`EnvironmentCommands.watchThreadPullRequest`)(function*(e){return yield*X({...e,type:`thread.pull-request.watch`,commandId:yield*Y(e)})}),Hs=n(`EnvironmentCommands.unlinkThreadPullRequest`)(function*(e){return yield*X({...e,type:`thread.pull-request.unlink`,commandId:yield*Y(e)})}),Us=new Set([`completed`,`failed`,`cancelled`,`interrupted`]);function Ws(e){return Us.has(e)}function Gs(e){return Lr(e)}function Ks(e){return e.type===`subagent`&&Lr(e.status)}function qs(e){return e.totalTokens===void 0?null:{totalTokens:e.totalTokens,...e.toolCalls===void 0?{}:{toolUses:e.toolCalls},...e.durationMs===void 0?{}:{durationMs:e.durationMs}}}function Js(e){return e===void 0?null:on(er(e))}function Ys(e,t){return t.agents.map(t=>{let n=(t.state===`queued`||t.state===`running`)&&Ws(e.status)?e.status:t.state===`queued`?`pending`:t.state,r=n===`failed`,i=Js(t.startedAt),a=Ws(n)?t.startedAt!==void 0&&t.durationMs!==void 0?Js(t.startedAt+t.durationMs):e.completedAt:null;return{...e,id:`${e.id}:agent:${t.index}`,kind:`workflow_agent`,title:t.label,model:t.model??null,status:n,activationCount:t.attempt??1,usage:qs(t),progress:t.prompt??null,result:r?null:t.result??null,error:r?t.result??null:null,parentAgentId:e.id,agentIndex:t.index,phaseIndex:t.phaseIndex??null,phaseTitle:t.phaseTitle??null,attempt:t.attempt??null,phases:[],childThreadId:t.childThreadId??null,recentActivity:[],firstSeenAt:Js(t.queuedAt)??i??e.firstSeenAt,startedAt:i,completedAt:a,updatedAt:a??i??e.firstSeenAt}})}function Xs(e){return e.flatMap(e=>{let t=on(e.updatedAt),n=e.startedAt===null?null:on(e.startedAt),r=n??t,{workflow:i}=e,a=i?.runHandles??null,o={id:e.id,kind:i===void 0?`subagent`:`workflow`,title:e.title??(e.prompt.length>80?`${e.prompt.slice(0,77)}...`:e.prompt),role:null,model:e.model,effort:null,status:e.status,activationCount:1,usage:i===void 0?null:qs(i),progress:e.progress??null,lastToolName:null,result:e.result,error:e.status===`failed`?e.result??null:null,outputFile:null,parentAgentId:null,agentIndex:null,phaseIndex:null,phaseTitle:null,attempt:null,workflowName:i?.name??null,phases:i?.phases??[],runHandles:a,childThreadId:e.childThreadId??null,recentActivity:[],firstSeenAt:r,startedAt:n,completedAt:e.completedAt===null?null:on(e.completedAt),updatedAt:t};return i===void 0?[o]:[o,...Ys(o,i)]})}function Zs(e){let t=e.filter(e=>e.kind===`workflow`).sort((e,t)=>e.firstSeenAt.localeCompare(t.firstSeenAt)||e.id.localeCompare(t.id)),n=pe(e.filter(e=>e.kind!==`workflow`&&e.parentAgentId!==null),e=>e.parentAgentId);return t.map(e=>{let t=Object.hasOwn(n,e.id)?n[e.id]:[],r=new Map;for(let e of t)e.phaseIndex!==null&&r.set(e.phaseIndex,e.phaseTitle??r.get(e.phaseIndex)??`Phase ${e.phaseIndex+1}`);for(let t of e.phases)r.set(t.index,t.title);return{workflow:e,phases:Array.from(r.entries()).map(([e,t])=>({index:e,title:t})).sort((e,t)=>e.index-t.index).map(e=>{let n=t.filter(t=>t.phaseIndex===e.index).sort((e,t)=>(e.agentIndex??0)-(t.agentIndex??0)),r=n.some(e=>Gs(e.status)||e.status===`idle`),i=n.filter(e=>Ws(e.status)).length,a=n.length===0?`pending`:r?`running`:`done`;return{index:e.index,title:e.title,members:n,state:a,settledCount:i}}),unphasedMembers:t.filter(e=>e.phaseIndex===null).sort((e,t)=>(e.agentIndex??0)-(t.agentIndex??0))}})}function Qs(e){let t=e.some(({status:e})=>e===`pending`||e===`running`||e===`waiting`);return{label:`${t?`Kicked off`:`Ran`} ${e.length} ${e.length===1?`subagent`:`subagents`}`,active:t,failed:e.some(({status:e})=>e===`failed`)}}function $s(e){let t={working:0,done:0,failed:0,stopped:0,idle:0};for(let n of e)n===`pending`||n===`running`||n===`waiting`?t.working+=1:n===`completed`?t.done+=1:n===`failed`?t.failed+=1:n===`idle`?t.idle+=1:t.stopped+=1;return Object.keys(t).filter(e=>t[e]>0).map(e=>`${t[e]} ${e}`).join(` · `)}function ec(e){let t=e.replace(/^Subagent:\s*/i,``),n=/^\/root\/(?:[^/]+\/)*([^/]+)\/?$/u.exec(t);return n===null?t:n[1].replace(/[_\s]+/gu,` `).trim().replace(/(^|\s)\S/gu,e=>e.toUpperCase())||t}function tc(e){let t=e.model?.trim(),n=e.provider?mr(e.provider.driver,t,e.provider.models):t,r=e.provider?.models.find(e=>e.slug===n),i=r?r.shortName||r.name:t?Te(t):`Not reported`,a=r?.subProvider?.trim(),o=a&&i.replace(RegExp(`^${a.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}(?:\\s*[.:/-]\\s*|\\s+)`,`iu`),``).trim()||i,s=e.parentThread?.worktreePath??e.parentProject?.workspaceRoot,c=e.childThread?.worktreePath??e.childProject?.workspaceRoot;return{modelLabel:o,workspace:[...e.parentThread&&e.childProject&&e.childProject.id!==e.parentThread.projectId?[{label:`Project`,value:e.childProject.title}]:[],...s&&c&&s!==c?[{label:e.childThread?.branch?`Branch`:e.childThread?.worktreePath?`Worktree`:`Workspace`,value:e.childThread?.branch??lo(c)}]:[]]}}function nc(e){let t=e.result?.trim(),n=e.progress?.trim(),r=((Ws(e.status)?t||n:n||t)||``).replace(/\s+/gu,` `);return r.length>280?`${r.slice(0,280).trimEnd()}…`:r||null}function rc(e){return e!=null&&ac(e.status)}function ic(e){return e?.status===`queued`?e.activeRunId===null:e?.status!==`preparing`&&e?.status!==`starting`&&e?.status!==`running`}function ac(e){return e===`preparing`||e===`queued`||e===`starting`||e===`running`||e===`waiting`}function oc(e){return on(e)}function sc(e){return e===null?null:oc(e)}function cc(e){return e===`completed`||e===`interrupted`||e===`failed`||e===`cancelled`||e===`rolled_back`}function lc(e){let t=Bo(e.pendingBackgroundTasks??[])&&e.status!==`failed`;return e.latestRunId===null&&e.activeProviderThreadId===null&&!t?null:{status:t?`idle`:e.activityRunStatus??e.status,activeRunId:e.activeRunId,activityStartedAt:e.activityRunStartedAt===void 0?void 0:sc(e.activityRunStartedAt),providerInstanceId:e.providerInstanceId,providerName:null,lastError:e.lastError??null,lastErrorClass:e.lastErrorClass??null,usageLimitResetAt:e.usageLimitResetAt??null,updatedAt:oc(e.updatedAt)}}function uc(e,t){return{...t,environmentId:e}}function dc(e,t,n=null){let r=oc(t.updatedAt),i=t.latestRunId===null?null:{runId:t.latestRunId,status:t.status===`idle`?`completed`:t.status,requestedAt:sc(t.latestRunRequestedAt??null),startedAt:sc(t.latestRunStartedAt??null),completedAt:t.latestRunCompletedAt===void 0?t.status===`idle`||cc(t.status)?r:null:sc(t.latestRunCompletedAt),assistantMessageId:null};return{environmentId:e,id:t.id,projectId:t.projectId,title:t.lineage.relationshipToParent===`subagent`?ec(t.title):t.title,providerInstanceId:t.providerInstanceId,modelSelection:t.modelSelection,runtimeMode:t.runtimeMode,interactionMode:t.interactionMode,branch:t.branch,worktreePath:t.worktreePath,pullRequests:Io(t),designs:t.designs??[],linkedPullRequest:t.linkedPullRequest??null,branchPullRequest:t.branchPullRequest??null,sideChat:t.sideChat===!0,lineage:t.lineage,forkedFrom:t.forkedFrom,activeProviderThreadId:t.activeProviderThreadId,latestRun:i,runtime:lc(t),latestUserMessageAt:sc(t.latestUserMessageAt),...t.latestUserAuthoredMessageAt===void 0?{}:{latestUserAuthoredMessageAt:sc(t.latestUserAuthoredMessageAt)},hasPendingApprovals:t.pendingRuntimeRequest!==null&&t.pendingRuntimeRequest.kind!==`user_input`&&t.pendingRuntimeRequest.kind!==`auth_refresh`,hasPendingUserInput:t.pendingRuntimeRequest?.kind===`user_input`,pendingSubagentRequest:n,hasActionableProposedPlan:t.hasActionableProposedPlan,pendingBackgroundTasks:t.pendingBackgroundTasks??[],providerInstanceHistory:t.providerInstanceHistory??[],goal:t.goal??null,itemCount:t.itemCount,visibleItemCount:t.visibleItemCount,createdAt:oc(t.createdAt),updatedAt:r,archivedAt:sc(t.archivedAt),settledOverride:t.settledOverride,settledAt:sc(t.settledAt),unsettledAt:sc(t.unsettledAt??null),snoozedUntil:sc(t.snoozedUntil??null),snoozedAt:sc(t.snoozedAt??null),limitRecovery:t.limitRecovery??null,pinnedAt:sc(t.pinnedAt??null),autoSettleDisabledAt:sc(t.autoSettleDisabledAt??null),pinOrderKey:t.pinOrderKey??null,activeOrderKey:t.activeOrderKey??null,...t.lastVisitedAt===void 0?{}:{lastVisitedAt:sc(t.lastVisitedAt)},titleRegeneration:t.titleRegeneration==null?null:{requestId:t.titleRegeneration.requestId,startedAt:oc(t.titleRegeneration.startedAt)},deletedAt:sc(t.deletedAt),source:t}}function fc(e){let t=e=>e!=null&&Number.isFinite(Date.parse(e))?e:null;if(e.runtime?.activityStartedAt!==void 0)return t(e.runtime.activityStartedAt);let n=e.latestRun;return n?.completedAt===null&&n.runId===e.runtime?.activeRunId?t(n.startedAt)??t(n.requestedAt):null}function*pc(e){for(let[t,n]of e.entries)n.enabled&&(yield t)}var mc=Object.freeze({isReady:!1,entries:new Map});function hc(e){let t=da(),r={mode:`serial`,key:()=>`environment-catalog`},i=e.atom(Mt(J.pipe(V(e=>Fe(e.entries).pipe(Ge(e=>({isReady:!0,entries:e})))))),{initialValue:mc}),a=D(e=>cn(We(e(i)),()=>mc)).pipe(F(`environment-catalog-value`)),o=e.atom(Mt(ni.pipe(V(e=>e.changes))),{initialValue:[]}),s=D(e=>cn(We(e(o)),()=>[])).pipe(F(`environment-github-routing-permissions`)),c=hi(e,{label:`environment-catalog:github-routing-permission`,scheduler:t,concurrency:r,execute:n(function*(e){let t=yield*J,n=(yield*C(t.entries)).get(e.environmentId);if(n===void 0)return yield*new Na({environmentId:e.environmentId});yield*(yield*ni).set(n,e.permission)})}),l=e.atom(Mt(J.pipe(V(e=>Fe(e.networkStatus)))),{initialValue:`unknown`}),u=D(e=>cn(We(e(l)),()=>`unknown`)).pipe(F(`environment-network-status-value`)),d=I(t=>e.atom(ba(t,Mt(Ca.pipe(V(e=>Fe(e.state))))),{initialValue:ji})),f=hi(e,{label:`environment-catalog:register`,scheduler:t,concurrency:r,execute:e=>J.pipe(T(t=>t.register(e)))}),p=hi(e,{label:`environment-catalog:remove`,scheduler:t,concurrency:r,execute:e=>J.pipe(T(t=>t.remove(e)))}),m=hi(e,{label:`environment-catalog:remove-relay-environments`,scheduler:t,concurrency:r,execute:e=>J.pipe(T(e=>e.removeRelayEnvironments()))}),h=hi(e,{label:`environment-catalog:set-enabled`,scheduler:t,concurrency:r,execute:e=>J.pipe(T(t=>t.setEnabled(e.environmentId,e.enabled)))});return{catalogAtom:i,catalogValueAtom:a,githubRoutingPermissionsValueAtom:s,setGitHubRoutingPermission:c,networkStatusAtom:l,networkStatusValueAtom:u,stateAtom:d,register:f,remove:p,removeRoute:hi(e,{label:`environment-catalog:remove-route`,scheduler:t,concurrency:r,execute:e=>J.pipe(T(t=>t.removeRoute(e.environmentId,e.routeId)))}),reorderRoutes:hi(e,{label:`environment-catalog:reorder-routes`,scheduler:t,concurrency:r,execute:e=>J.pipe(T(t=>t.reorderRoutes(e.environmentId,e.routeIds)))}),removeRelayEnvironments:m,retryNow:hi(e,{label:`environment-catalog:retry-now`,scheduler:t,concurrency:r,execute:e=>J.pipe(T(t=>t.retryNow(e)))}),setEnabled:h}}var gc=class extends Qt()(`InvalidScopedProjectKeyError`,{key:A}){get message(){return`Invalid scoped project atom key: ${JSON.stringify(this.key)}.`}},_c=class extends Qt()(`InvalidScopedThreadKeyError`,{key:A}){get message(){return`Invalid scoped thread atom key: ${JSON.stringify(this.key)}.`}},vc=class extends Qt()(`InvalidScopedProjectRefCollectionKeyError`,{key:A,cause:ge()}){get message(){return`Invalid scoped project reference collection atom key: ${JSON.stringify(this.key)}.`}},yc=at(Ce(Yn([A,A])));function bc(e){return`${e.environmentId}\u0000${e.projectId}`}function Z(e){return`${e.environmentId}\u0000${e.threadId}`}function xc(e){return JSON.stringify(e.map(e=>[e.environmentId,e.projectId]))}function Sc(e){let t=e.indexOf(`\0`);if(t<0)throw new gc({key:e});return{environmentId:ze.make(e.slice(0,t)),projectId:Ee.make(e.slice(t+1))}}function Cc(e){let t;try{t=yc(JSON.parse(e))}catch(t){throw new vc({key:e,cause:t})}return t.map(([e,t])=>({environmentId:ze.make(e),projectId:Ee.make(t)}))}function wc(e){let t=e.indexOf(`\0`);if(t<0)throw new _c({key:e});return{environmentId:ze.make(e.slice(0,t)),threadId:Xr.make(e.slice(t+1))}}function Tc(e,t){return e.length===t.length&&e.every((e,n)=>e.environmentId===t[n]?.environmentId&&e.projectId===t[n]?.projectId)}function Ec(e,t){return e.length===t.length&&e.every((e,n)=>e.environmentId===t[n]?.environmentId&&e.threadId===t[n]?.threadId)}function Dc(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}var Oc=new Set([`origin_unreachable`,`invalid_response`]);function kc(e){let t=e.state.lastFailure;if(e.state.network===`offline`||e.state.phase===`offline`)return{hop:`device`,cause:`offline`};if(t?._tag===`ConnectionBlockedError`&&t.serverUpdateRequired)return{hop:`server`,cause:`outdated`};if(t?.hop!==void 0)return{hop:t.hop,cause:t.failureCause??null};if(t!==null){let n=t.reason===`network`||t.reason===`timeout`||t.reason===`transport`,r=t.via??e.via;return{hop:n&&r===`relay`?`tunnel`:`server`,cause:null}}let n=e.relayStatus;if(n?.status!==`offline`)return null;if(n.offlineReason===`tunnel_released`)return{hop:`tunnel`,cause:`released`};let r=n.endpointFailure??null;return{hop:r!==null&&Oc.has(r)?`server`:`tunnel`,cause:r}}function Ac(e,t,n){switch(t.cause){case`offline`:return`This device is offline`;case`outdated`:return`${e} runs an older P4 Code`;case`clock_skew`:return`This device's clock is off`;case`not_linked`:return`${e} is not linked to your P4 Connect account`;case`relay_error`:return`P4 Connect returned an error`;case`tunnel_pending`:return`${e}'s tunnel is still being set up`;case`tunnel_not_enabled`:return`P4 Connect is not turned on for ${e}`;case`released`:case`tunnel_down`:return`${e}'s tunnel is offline`;case`origin_unreachable`:return`Tunnel works, but P4 Code on ${e} did not answer`;case`invalid_response`:return`P4 Code on ${e} sent an unexpected answer`;case`dns`:return`${e}'s tunnel address did not resolve`;case`tls`:return`Secure connection to ${e}'s tunnel failed`;case`refused`:return`${e}'s tunnel refused the connection`;case`timeout`:return`${e} did not answer in time`}switch(t.hop){case`device`:return`This device could not prepare the connection`;case`relay`:return n?.reason===`authentication`?`P4 Connect did not accept this device's sign-in`:`This device can't reach P4 Connect`;case`tunnel`:return n?.reason===`network`||n?.reason===`transport`||n?.reason===`timeout`?`This device can't reach ${e}'s tunnel`:`P4 Connect could not reach ${e}'s tunnel`;case`server`:return n?.reason===`authentication`||n?.reason===`permission`?`P4 Code on ${e} did not accept this device`:`P4 Code on ${e} did not answer`}}function jc(e,t,n){let r=`On ${e}, check Settings > Connections or run \`p4c connect status\`.`;switch(t.cause){case`offline`:return[`Connect this device to the internet. P4 Code reconnects on its own.`];case`outdated`:return[`Update P4 Code on ${e}.`];case`clock_skew`:return[`Turn on automatic date and time on this device and on ${e}, then retry.`];case`not_linked`:return[`Check that this device is signed in to the same P4 Connect account as the host.`,`On ${e}, open Settings > Connections and turn P4 Connect on.`];case`tunnel_pending`:return[`Wait a minute. P4 Code retries on its own.`,r];case`relay_error`:return[`Wait a few minutes. P4 Code retries on its own.`,`If it keeps failing, copy the diagnostics and report it.`];case`tunnel_not_enabled`:return[`On ${e}, open Settings > Connections and turn P4 Connect on.`];case`released`:case`tunnel_down`:return[`Make sure ${e} is awake and P4 Code is running on it.`,r,`A VPN or Tailscale exit node on ${e} can block the tunnel (port 7844). Turn it off or allow the tunnel.`];case`origin_unreachable`:case`invalid_response`:return[`Open or restart P4 Code on ${e}.`,r];case`dns`:case`tls`:case`refused`:case`timeout`:case`unknown`:return[`Make sure ${e} is awake and online.`,r]}switch(t.hop){case`device`:return[`Restart P4 Code on this device.`,`If it keeps failing, remove ${e} from this device and add it again.`];case`relay`:return n?.reason===`authentication`?[`Sign out of P4 Connect and sign in again.`]:[`Check this device's internet connection.`,`A VPN, firewall, or ad blocker on this device can block P4 Connect.`];case`tunnel`:return n?.reason===`network`||n?.reason===`transport`||n?.reason===`timeout`?[`A VPN, firewall, or DNS filter on this device can block the tunnel.`,`Try another network, or add a direct route such as a Tailscale address.`]:[`Make sure ${e} is awake and online.`,r];case`server`:return[`Make sure P4 Code is running on ${e}.`,`Retry. If it keeps failing, copy the diagnostics.`]}}function Mc(e,t){switch(e.cause){case`offline`:return`this-device-cant-reach-p4-connect`;case`outdated`:return`the-host-runs-an-older-p4-code`;case`clock_skew`:return`the-clock-is-off`;case`not_linked`:case`tunnel_not_enabled`:return`sign-in-account-or-link-problems`;case`relay_error`:return`p4-connect-returned-an-error`;case`released`:case`tunnel_down`:case`tunnel_pending`:return`the-hosts-tunnel-is-offline`;case`origin_unreachable`:case`invalid_response`:return`the-tunnel-works-but-p4-code-does-not-answer`;case`dns`:case`tls`:case`refused`:case`timeout`:case`unknown`:return`the-p4-connect-address-does-not-resolve-or-answer`}let n=t?.reason===`network`||t?.reason===`transport`||t?.reason===`timeout`;switch(e.hop){case`device`:return`this-device-cant-reach-p4-connect`;case`relay`:return t?.reason===`authentication`?`sign-in-account-or-link-problems`:`this-device-cant-reach-p4-connect`;case`tunnel`:return n?`this-device-cant-reach-p4-connect`:`the-hosts-tunnel-is-offline`;case`server`:return t?.reason===`authentication`||t?.reason===`permission`?`sign-in-account-or-link-problems`:`the-tunnel-works-but-p4-code-does-not-answer`}}var Nc={relay:[`device`,`relay`,`tunnel`,`server`],direct:[`device`,`server`]};function Pc(e,t){switch(e){case`device`:return`This device`;case`relay`:return`P4 Connect`;case`tunnel`:return`${t} tunnel`;case`server`:return`P4 Code on ${t}`}}function Fc(e){let t=kc(e);if(t===null)return null;let n=e.hostLabel,r=e.state.lastFailure,i=t.hop===`relay`||t.hop===`tunnel`||r===null&&e.relayStatus?.status===`offline`||(r?.via??e.via)===`relay`,a=Nc[i?`relay`:`direct`],o=a.indexOf(t.hop),s=a.map((e,t)=>({hop:e,label:Pc(e,n),result:t<o?`ok`:t===o?`failed`:`unchecked`})),c=r===null?e.relayStatus?.endpointStatus:r.httpStatus,l=[],u=(e,t)=>{t!=null&&t!==``&&l.push([e,String(t)])};return u(`Cause`,t.cause??r?.reason),u(`HTTP status`,c),u(`Attempts`,e.state.attempt>0?e.state.attempt:null),u(`Next retry`,e.state.retryAt===null?null:on(er(e.state.retryAt))),u(`Route`,i?`P4 Connect`:`Direct`),u(`App version`,e.clientVersion),u(`Host version`,e.serverVersion),u(`Error`,r?.detail),u(`Trace ID`,r?.traceId),{headline:Ac(n,t,r),hops:s,steps:jc(n,t,r),facts:l,moreInfoUrl:i?Oe(Mc(t,r)):null}}var Ic={ok:`ok`,failed:`FAILED`,unchecked:`not checked`};function Lc(e,t){return[`P4 Code connection to ${e}: ${t.headline}`,``,...t.hops.map(e=>`${e.label}: ${Ic[e.result]}`),``,...t.facts.map(([e,t])=>`${e}: ${t}`),...t.moreInfoUrl?[``,`More info: ${t.moreInfoUrl}`]:[]].join(`
2
+ `)}var Rc=`token`,zc=`host`,Bc=`label`,Vc=new Set([`http:`,`https:`,`ws:`,`wss:`]),Hc=e=>new URLSearchParams(e.hash.startsWith(`#`)?e.hash.slice(1):e.hash),Uc=class extends Qt()(`RemoteBackendUrlMissingError`,{}){get message(){return`Enter a backend URL.`}},Wc=class extends Qt()(`RemotePairingUrlInvalidError`,{cause:Ve(ge()),protocol:Ve(A)}){get message(){return`Pairing URL is invalid.`}},Gc=class extends Qt()(`RemoteBackendUrlInvalidError`,{source:kt([`direct-host`,`hosted-pairing-host`]),cause:Ve(ge()),protocol:Ve(A)}){get message(){return`Backend URL is invalid.`}},Kc=class extends Qt()(`RemotePairingTokenMissingError`,{host:A}){get message(){return`Pairing URL is missing its token.`}},qc=class extends Qt()(`RemotePairingCodeMissingError`,{host:A}){get message(){return`Enter a pairing code.`}};mn([Uc,Wc,Gc,Kc,qc]);var Jc=e=>Vc.has(e.protocol),Yc=(e,t)=>{let n=e.trim();if(!n)throw new Uc;let r=n.replace(/^\/+/,``),i=/^[a-zA-Z][a-zA-Z\d+-]*:\/\//.test(r)?r:`https://${r}`,a;try{a=new URL(i)}catch(e){throw new Gc({source:t,cause:e})}if(!Jc(a))throw new Gc({source:t,protocol:a.protocol});return a.pathname=`/`,a.search=``,a.hash=``,a},Xc=e=>{let t=new URL(e.toString());return t.protocol===`ws:`?t.protocol=`http:`:t.protocol===`wss:`&&(t.protocol=`https:`),t.pathname=`/`,t.search=``,t.hash=``,t.toString()},Zc=e=>{let t=new URL(e.toString());return t.protocol===`http:`?t.protocol=`ws:`:t.protocol===`https:`&&(t.protocol=`wss:`),t.pathname=`/`,t.search=``,t.hash=``,t.toString()},Qc=e=>{let t=Hc(e).get(Rc)?.trim()??``;if(t.length>0)return t;let n=e.searchParams.get(Rc)?.trim()??``;return n.length>0?n:null},$c=e=>{let t=new URL(e.toString()),n=Hc(t);return n.has(Rc)&&(n.delete(Rc),t.hash=n.toString()),t.searchParams.delete(Rc),t},el=(e,t)=>{let n=new URL(e.toString());return n.searchParams.delete(Rc),n.hash=new URLSearchParams([[Rc,t]]).toString(),n},tl=e=>{let t=e.searchParams.get(zc)?.trim()??``,n=Qc(e)?.trim()??``,r=e.searchParams.get(Bc)?.trim()??``;return!t||!n?null:{host:t,token:n,label:r}},nl=e=>{let t=e.pairingUrl?.trim()??``;if(t.length>0){let e;try{e=new URL(t)}catch(e){throw new Wc({cause:e})}if(!Jc(e))throw new Wc({protocol:e.protocol});let n=tl(e);if(n){let e=Yc(n.host,`hosted-pairing-host`);return{credential:n.token,httpBaseUrl:Xc(e),wsBaseUrl:Zc(e)}}let r=Qc(e)??``;if(!r)throw new Kc({host:e.host});return{credential:r,httpBaseUrl:Xc(e),wsBaseUrl:Zc(e)}}let n=e.host?.trim()??``,r=e.pairingCode?.trim()??``;if(!n)throw new Uc;let i=Yc(n,`direct-host`);if(!r)throw new qc({host:i.host});return{credential:r,httpBaseUrl:Xc(i),wsBaseUrl:Zc(i)}},rl=class extends ut()(`@p4code/client-runtime/connection/onboarding/ConnectionOnboarding`){},il=n(`clientRuntime.connection.onboarding.resolvePairingTarget`)(function*(e){return yield*jr({try:()=>nl(e),catch:e=>new Ra({reason:`configuration`,detail:e instanceof Error?e.message:`The pairing details are invalid.`})})});function al(e,t){return`bearer:${e}:${new URL(t).origin}`}function ol(e){return new Ra({reason:`configuration`,detail:`That address reaches ${e}, a different machine. Add it as its own environment instead.`})}var sl=n(`clientRuntime.connection.onboarding.preparePairingRegistration`)(function*(e){let t=yield*il(e),n=yield*aa,r=yield*Sr({httpBaseUrl:t.httpBaseUrl}).pipe(m(Ba));if(e.expectedEnvironmentId!==void 0&&r.environmentId!==e.expectedEnvironmentId)return yield*ol(r.label);let i=Ka(r);if(i!==null&&i.serverUpdateRequired!==!0)return yield*i;let a=yield*wi({httpBaseUrl:t.httpBaseUrl,credential:t.credential,clientMetadata:n.metadata}).pipe(m(Ba)),o=al(r.environmentId,t.httpBaseUrl);return new va({target:new ri({environmentId:r.environmentId,label:r.label,connectionId:o}),profile:new Aa({connectionId:o,environmentId:r.environmentId,label:r.label,httpBaseUrl:t.httpBaseUrl,wsBaseUrl:t.wsBaseUrl}),credential:new na({token:a.access_token})})}),cl=n(`clientRuntime.connection.onboarding.registerPairingConnection`)(function*(e){let t=yield*sl(e),n=yield*J;return(yield*n.register(t))?(yield*n.setCompatibility(t.target.environmentId,null),yield*n.setEnabled(t.target.environmentId,!0).pipe(Ye({EnvironmentNotRegisteredError:()=>p})),t.target.environmentId):t.target.environmentId}),ll=le(na),ul=le(Aa),dl=n(`clientRuntime.connection.onboarding.updateBearerConnection`)(function*(t){let n=yield*J,r=yield*Di,i=(yield*C(n.entries)).get(t.environmentId),a=i===void 0?void 0:pa(i).find(e=>e.target._tag===`BearerConnectionTarget`),o=i===void 0||a===void 0?i:xi(i,a),s=o?.target._tag===`BearerConnectionTarget`?yield*r.get(o.target.connectionId):O(),c=yield*fl({input:t,entry:e(o),credential:s});yield*n.register(c)}),fl=n(`clientRuntime.connection.onboarding.prepareBearerConnectionUpdate`)(function*(e){let t=R(e.entry);if(t==null||t.target._tag!==`BearerConnectionTarget`||k(t.profile)||!ul(t.profile.value))return yield*new Ra({reason:`configuration`,detail:`Only saved bearer environments can be edited.`});let n=e.credential;if(k(n)||!ll(n.value))return yield*new Ra({reason:`authentication`,detail:`The saved bearer credential is unavailable.`});let r=e.input.label.trim();if(r===``)return yield*new Ra({reason:`configuration`,detail:`Environment label cannot be empty.`});let i=yield*jr({try:()=>qa(e.input.httpBaseUrl),catch:e=>new Ra({reason:`configuration`,detail:e instanceof Error?e.message:`The environment URL is invalid.`})}),a=t.target.connectionId;return new va({target:new ri({environmentId:e.input.environmentId,label:r,connectionId:a}),profile:new Aa({connectionId:a,environmentId:e.input.environmentId,label:r,httpBaseUrl:i,wsBaseUrl:Ja(i)}),credential:n.value})}),pl=n(`clientRuntime.connection.onboarding.prepareSshRegistration`)(function*(e){let t=yield*(yield*Zi).provision(e.target,e.expectedEnvironmentId),n=`ssh:${t.environmentId}:${Ti(t.bootstrap.target)}`,r=e.label?.trim()||t.label||t.bootstrap.target.alias;return new $i({target:new fa({environmentId:t.environmentId,label:r,connectionId:n}),profile:new Oa({connectionId:n,environmentId:t.environmentId,label:r,target:t.bootstrap.target})})}),ml=n(`clientRuntime.connection.onboarding.registerSshConnection`)(function*(e){let t=yield*pl(e);return e.expectedEnvironmentId!==void 0&&t.target.environmentId!==e.expectedEnvironmentId?yield*ol(t.target.label):(yield*(yield*J).register(t),t.target.environmentId)}),hl=M(function*(){let e=yield*J,t=yield*aa,n=yield*In,r=yield*Zi,i=yield*Di;return rl.of({registerPairing:r=>cl(r).pipe(Ne(J,e),Ne(aa,t),Ne(In,n)),registerSsh:t=>ml(t).pipe(Ne(J,e),Ne(Zi,r)),updateBearer:t=>dl(t).pipe(Ne(J,e),Ne(Di,i))})}),gl=At(rl,hl),_l=class extends ut()(`@p4code/client-runtime/platform/source/PlatformConnectionSource`){},vl=n(`connection.watchDiscoveredCompatibility`)(function*(){let e=yield*J,t=yield*ci,n=new Map;yield*Ln(Fe(t.state),Fe(e.entries)).pipe(Ie(()=>M(function*(){let r=yield*C(t.state);if(!r.refreshing)for(let e of n.keys())r.environments.has(e)||n.delete(e);let i=yield*C(e.entries);for(let t of r.environments.values()){let r=R(t.status),a=r?.descriptor;if(r===null||a===void 0)continue;let o=t.environment.environmentId,s=i.get(o);if(s===void 0||pa(s).length!==1||!ei(s))continue;let c=n.get(o),l=c?.checkedAt!==r.checkedAt||(c.descriptor?.orchestrationProtocolVersion??1)!==(a.orchestrationProtocolVersion??1)||c.descriptor?.serverVersion!==a.serverVersion,u=Ka(a);(u!==null||l)&&(yield*e.setCompatibility(o,u)),n.set(o,r)}}).pipe(x(e=>H(`Could not apply discovered environment compatibility.`,{error:e})))))});function yl(e){let t=Ia.pipe(Er(fn(Pi,Wa(e)))),n=ia.pipe(Er(t)),r=gl.pipe(Er(n)),i=fn(n,ai,r,Pi);return It(M(function*(){let e=yield*J,t=yield*_l;yield*vl().pipe(P),yield*e.start,yield*t.registrations.pipe(Ie(e.reconcilePlatform),P)}).pipe(ne(`clientRuntime.connection.application.start`))).pipe(rr(i),rr(Ma))}yl({});function bl(e){switch(e.phase){case`available`:return{phase:`available`,error:null,traceId:null};case`offline`:return{phase:`offline`,error:null,traceId:null};case`connecting`:return{phase:e.attempt<=1&&e.lastFailure===null?`connecting`:`reconnecting`,error:e.lastFailure?.message??null,traceId:e.lastFailure?.traceId??null};case`connected`:return{phase:`connected`,error:null,traceId:null};case`backoff`:return{phase:`reconnecting`,error:e.lastFailure?.message??null,traceId:e.lastFailure?.traceId??null};case`blocked`:return{phase:e.lastFailure?.reason===`unsupported`?`unsupported`:`error`,error:e.lastFailure?.message??null,traceId:e.lastFailure?.traceId??null}}}function xl(e){switch(e.phase){case`available`:return`Available`;case`offline`:return`Offline`;case`connecting`:return`Connecting...`;case`reconnecting`:return e.error?`Failed to connect. Reconnecting... Reason: ${e.error}`:`Reconnecting...`;case`connected`:return`Connected`;case`unsupported`:return`Client not supported`;case`error`:return e.error?`Connection failed. Reason: ${e.error}`:`Connection failed`}}function Sl(e){return e.phase===`reconnecting`&&e.error?`Failed to connect. Reconnecting...`:xl({...e,error:null})}function Cl(e){return bl(e)}function wl(e){let t=e.connectedTarget?si(e.connectedTarget):null,n=pa(e.entry),r=n.find(e=>si(e.target)===t);for(let t of r?[r,...n]:n){let n=t.target._tag===`RelayConnectionTarget`?e.relayHttpBaseUrl??null:Si(t),r=n===null?null:Tl(n);if(r!==null)return r}return null}function Tl(e){let t;try{t=new URL(e)}catch{return null}return t.pathname=`/mcp`,t.search=``,t.hash=``,t.toString()}function El(e){switch(e.target._tag){case`PrimaryConnectionTarget`:return e.target.httpBaseUrl;case`RelayConnectionTarget`:return null;case`BearerConnectionTarget`:return E(e.profile)&&e.profile.value._tag===`BearerConnectionProfile`?e.profile.value.httpBaseUrl:null;case`SshConnectionTarget`:return E(e.profile)&&e.profile.value._tag===`SshConnectionProfile`?`${e.profile.value.target.username}@${e.profile.value.target.hostname}`:null}}var Dl=n(`runCachePersistence`)(function*(e,t){let n=yield*sn(e);for(yield*ir(`500 millis`),n=cn(yield*yr(e),()=>n);;)yield*t(n),yield*ir(`10 seconds`),n=yield*sn(e)}),Ol={status:`idle`},kl=D(Ol).pipe(F(`environment-data:server:update-state:empty`)),Al=I(e=>D(Ol).pipe(F(`environment-data:server:update-state:${e}`))),jl=class extends Qt()(`ServerUpdateResumeTimeoutError`,{environmentId:A,targetVersion:A}){get message(){return`The server did not resume on @p4code/cli@${this.targetVersion}.`}},Ml=class extends Qt()(`ServerUpdateProgressIncompleteError`,{targetVersion:A}){get message(){return`The @p4code/cli@${this.targetVersion} update ended before the server accepted the restart.`}},Nl=class extends Qt()(`ServerUpdateTerminalError`,{targetVersion:A,status:kt([`committed`,`rolled-back`,`failed`]),reason:Ve(A)}){get message(){return this.reason??`The @p4code/cli@${this.targetVersion} update ${this.status}.`}},Pl=Vt(32);function Fl(e,t){return e.updateId===void 0?t.payload.environment.serverVersion===e.targetVersion:t.payload.updateOutcome?.id===e.updateId}function Il(e,t){return e.method===`desktop-app`&&e.desktopUpdateToken!==void 0||Fl(e,t)}function Ll(e,t){if(e.updateId===void 0)return p;let n=t.payload.updateOutcome;return n?.id===e.updateId&&n.status===`committed`&&n.targetVersion===e.targetVersion&&t.payload.environment.serverVersion===e.targetVersion?p:S(new Nl({targetVersion:e.targetVersion,status:n?.status??`failed`,reason:n?.reason??`The service launcher resumed without committing the requested server version.`}))}function Rl(e){return e.stateChanges.pipe(st(e=>e.phase===`backoff`||e.phase===`blocked`&&e.lastFailure?.reason===`authentication`),Ie(()=>ir(e.interval??Kr(1)).pipe(lt(e.retryNow))),Sn(Pl),Dr)}function zl(e){return e.pipe(Ut(e=>e.phase===`connected`),st(e=>e.phase===`connected`),Yr,b)}var Bl=n(`runDesktopCommitWithReconnectObserver`)(function*(e,t){let n=yield*Ur(),r=yield*Ur(),i=yield*e.pipe(je(()=>y(n,void 0)),zl,lt(y(r,void 0)),gr);yield*Tn(n);let a=yield*t.pipe(Tt);if(o(a)){yield*Gr(i);return}return Kl(a.cause)?(yield*Tn(r).pipe(Zn(Pl)),yield*Me(a.cause)):(yield*Gr(i),yield*Me(a.cause))}),Vl=n(`waitForDesktopUpdateTarget`)(function*(e,t,n,r=3){for(let i=1;i<=r;i+=1){let a=yield*t;if(a.payload.environment.serverVersion===e)return a;if(i===r)break;let s=yield*n.pipe(Tt);if(o(s))break;if(!Kl(s.cause))return yield*Me(s.cause)}return yield*new Nl({targetVersion:e,status:`failed`,reason:`The desktop app resumed without installing the prepared update.`})});function Hl(e,t,n){return{status:`running`,stage:n.type===`complete`?`resuming`:n.stage,fromVersion:e,targetVersion:t}}function Ul(e,t){return e.status===`idle`||e.status===`running`||t===null||e.fromVersion===t?e:Ol}function Wl(e){return e instanceof Error?e.message:`Server update failed.`}function Gl(e){if(!Hi(e))return!1;switch(e.reason._tag){case`SocketReadError`:case`SocketWriteError`:case`SocketCloseError`:return!0;default:return!1}}function Kl(e){return xt(e)?!0:e.reasons.length>0&&e.reasons.every(e=>he(e)&&Gl(e.error))}function ql(e,t,n){return E(t)&&(o(n)||Kl(n.cause))?L(t.value):Un(n)?Me(n.cause):S(new Ml({targetVersion:e}))}var Jl=e=>({version:1,type:`snapshot`,config:e}),Yl=n(`EnvironmentServerConfigState.make`)(function*(e){let t=yield*Ca,r=yield*Ta,i=t.target.environmentId,a=yield*r.loadServerConfig(i).pipe(x(e=>H(`Could not load cached server configuration.`).pipe(B({environmentId:i,...Yi(e)}),mt(O())))),o=yield*Jr(ar(a,e=>({config:Va(e),latestEvent:Jl(Va(e)),source:`cache`}))),s=yield*Ar(1),c=yield*Bi(O()),l=n(`EnvironmentServerConfigState.persist`)(function*(e){let{lastEventLoopStall:t,...n}=Va(e);return yield*r.saveServerConfig(i,n).pipe(mt(!0),x(e=>H(`Could not persist cached server configuration.`).pipe(B({environmentId:i,...Yi(e)}),mt(!1))))}),u=n(`EnvironmentServerConfigState.persistPending`)(function*(e){(yield*l(e))&&(yield*yi(c,t=>E(t)&&t.value===e?O():t))});return yield*Xt(()=>q(c).pipe(T(vr({onNone:()=>p,onSome:e=>l(e).pipe(b)})))),yield*Dl(s,u).pipe(P),yield*ja(w.subscribeServerConfig,{...e.environmentThemes===!0?{environmentThemes:!0}:{},...e.usageLimitSources===!0?{usageLimitSources:!0}:{},...e.usageLimitsCommand===!0?{usageLimitsCommand:!0}:{}}).pipe(Ie(e=>M(function*(){let t=Qi(yield*C(o),e);k(t)||(yield*W(c,j(t.value.config)),yield*xe(o,t),yield*jn(s,t.value.config))})),P),o});function Xl(e,t){return ba(e,Mt(Yl(t).pipe(V(e=>Fe(e).pipe(ee(e=>vr(e,{onNone:()=>ye,onSome:e=>pr(e)})))))))}function Zl(e,t,n){return n.type===`welcome`&&e.currentSession===t?{...e,welcomeSession:t,welcome:n.payload}:e}function Ql(e){return e.currentSession===e.welcomeSession?e.welcome:null}var $l=n(`EnvironmentServerWelcomeState.make`)(function*(){let e=yield*Ca,t=R(yield*C(e.session)),r=yield*Jr({currentSession:t,welcomeSession:null,welcome:null}),i=n(`EnvironmentServerWelcomeState.updateWithCurrentSession`)(function*(t){return yield*vt(r,n=>C(e.session).pipe(V(e=>[void 0,t(n,R(e))])))});return yield*Fe(e.session).pipe(Ie(()=>i((e,t)=>({...e,currentSession:t}))),P),yield*Da(w.subscribeServerLifecycle,n(`EnvironmentServerWelcomeState.makeSubscribeInput`)(function*(e){return yield*i((t,n)=>n===e?{...t,currentSession:n,welcomeSession:e,welcome:null}:{...t,currentSession:n}),{}})).pipe(Ie(([e,t])=>i((n,r)=>Zl({...n,currentSession:r},e,t))),P),r});function eu(e){return ba(e,Mt($l().pipe(V(e=>Fe(e).pipe(Ge(Ql))))))}function tu(e,t){return e?.source===`live`&&(t===null||e.config.environment.serverVersion===t.environment.serverVersion)?e.config:t??e?.config??null}function nu(e,t){let n=da(),r=da(),i={mode:`serial`,key:({environmentId:e})=>e},a=I(n=>e.atom(Xl(n,{...t.environmentThemes===!0?{environmentThemes:!0}:{},...t.usageLimitSources===!0?{usageLimitSources:!0}:{},...t.usageLimitsCommand===!0?{usageLimitsCommand:!0}:{}})).pipe(N(3e5),F(`environment-data:server:config-projection:${n}`))),s=e=>a(e.environmentId),c=D(null).pipe(F(`environment-data:server:config:empty`)),l=I(e=>e===null?c:D(n=>tu(R(We(n(s({environmentId:e,input:{}})))),n(t.initialConfigValueAtom(e)))).pipe(F(`environment-data:server:config:${e}`))),u=I(e=>D(t=>Ul(t(Al(e)),t(l(e))?.environment.serverVersion??null)).pipe(F(`environment-data:server:update-state-value:${e}`))),d=e=>e===null?kl:u(e),f=hi(e,{label:`environment-data:server:update-server`,scheduler:r,concurrency:i,execute:(e,t)=>{let r=Al(e.environmentId),a=e.input.targetVersion,s=t.get(l(e.environmentId))?.environment.serverVersion??a,c=`downloading`,u=!1;return t.set(r,{status:`running`,stage:c,fromVersion:s,targetVersion:a}),M(function*(){let d=yield*J,f=yield*Ur(),m=yield*Ur(),h=yield*Ur();yield*Tn(f).pipe(lt(d.stateChanges(e.environmentId).pipe(je(()=>y(m,void 0)),Ut(e=>e.phase===`connected`),st(e=>e.phase===`connected`),Yr)),lt(y(h,void 0)),gr);let g=yield*Ii(t,n,i,e,M(function*(){let n=t.get(l(e.environmentId));s=n?.environment.serverVersion??a,t.set(r,{status:`running`,stage:c,fromVersion:s,targetVersion:a});let i=n?.environment.capabilities.serverSelfUpdateProgress===!0?yield*M(function*(){let n=yield*Bi(O()),i=yield*d.runStream(e.environmentId,Zr(w.serverUpdateServerWithProgress,e.input)).pipe(Ie(e=>z(()=>{c=e.type===`complete`?`resuming`:e.stage,t.set(r,Hl(s,a,e))}).pipe(lt(e.type===`complete`?W(n,j(e.result)):p))),Tt);return yield*ql(a,yield*q(n),i)}):yield*M(function*(){let t=n?.environment.capabilities.serverSelfUpdate,r=yield*d.run(e.environmentId,Ki(w.serverUpdateServer,e.input)).pipe(Tt);return o(r)?r.value:(t===`boot-service`||t===`respawn`)&&Kl(r.cause)?{targetVersion:a,method:t}:yield*Me(r.cause)});if(i.method===`desktop-app`&&i.desktopUpdateToken!==void 0){yield*y(f,void 0),yield*Tn(m);let t=yield*d.run(e.environmentId,Ki(w.serverCommitDesktopUpdate,{requestId:i.desktopUpdateToken})).pipe(Tt);if(Un(t)&&!Kl(t.cause))return yield*Me(t.cause);u=Un(t)}return a=i.targetVersion,c=`resuming`,t.set(r,{status:`running`,stage:c,fromVersion:s,targetVersion:a}),i}));yield*Rl({stateChanges:d.stateChanges(e.environmentId),retryNow:d.retryNow(e.environmentId)}).pipe(gr),g.method===`desktop-app`&&u&&(yield*Tn(h).pipe(Zn(Pl)));let _=d.followStream(e.environmentId,ja(w.subscribeServerLifecycle,{})).pipe(st(e=>e.type===`ready`&&Il(g,e)),Yr,Sn(Pl),V(Lt)).pipe(T(vr({onNone:()=>new jl({environmentId:e.environmentId,targetVersion:a}),onSome:L}))),v=g.desktopUpdateToken;return yield*Ll(g,g.method===`desktop-app`&&v!==void 0?yield*Vl(g.targetVersion,_,Bl(d.stateChanges(e.environmentId),d.run(e.environmentId,Ki(w.serverCommitDesktopUpdate,{requestId:v})).pipe(b))):yield*_),t.set(r,Ol),g}).pipe(Vn(e=>z(()=>{if(!o(e)){if(xt(e.cause)){t.set(r,Ol);return}t.set(r,{status:`failed`,stage:c,fromVersion:s,targetVersion:a,message:Wl(et(e.cause))})}})))}}),m=I(e=>D(t=>t(l(e))?.settings??null).pipe(F(`environment-data:server:settings:${e}`))),h=I(e=>D(t=>{let n=t(m(e))?.usagePriceOverrides??{};return JSON.stringify(Object.keys(n).sort().map(e=>{let t=n[e];return[e,t.inputCostPerMillionTokens,t.outputCostPerMillionTokens,t.cacheReadCostPerMillionTokens,t.cacheWriteCostPerMillionTokens]}))}).pipe(F(`environment-data:server:usage-prices:${e}`))),g=I(e=>D(t=>{let n=t(m(e)),r=n?.usageModelAliases??{};return JSON.stringify([t(h(e)),Object.keys(r).sort().map(e=>[e,r[e]]),n?.cursorKeychainUsageEnabled??!1])}).pipe(F(`environment-data:server:usage-scan-settings:${e}`))),_=I(e=>D(t=>t(l(e))?.providers??null).pipe(F(`environment-data:server:providers:${e}`))),v=I(t=>e.atom(eu(t),{initialValue:null}).pipe(N(3e5),F(`environment-data:server:welcome-state:${t}`))),te=I(e=>D(t=>{let n=t(v(e));return n._tag===`Success`?n.value===null?Ir(n.waiting):ae(n.value,n):n}).pipe(F(`environment-data:server:welcome:${e}`))),ne=e=>te(e.environmentId),re=G(e,{label:`environment-data:server:update-settings`,tag:w.serverUpdateSettings,scheduler:n,concurrency:i});return{configValueAtom:l,runStorageCleanup:G(e,{label:`environment-data:server:run-storage-cleanup`,tag:w.serverRunStorageCleanup,concurrency:{mode:`singleFlight`,key:({environmentId:e})=>e}}),databaseStorage:Ci(e,{label:`environment-data:server:database-storage`,tag:w.serverGetDatabaseStorage,idleTtlMs:0}),storageCleanupReport:Ci(e,{label:`environment-data:server:storage-cleanup-report`,tag:w.serverGetStorageCleanupReport,idleTtlMs:0}),updateStateAtom:d,settingsValueAtom:m,providersValueAtom:_,providerAuthState:Ci(e,{label:`environment-data:provider:auth-state`,tag:w.providerAuthSubscribe,idleTtlMs:0}),startProviderAuth:G(e,{label:`environment-data:provider:auth-start`,tag:w.providerAuthStart,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t])}}),respondProviderAuth:G(e,{label:`environment-data:provider:auth-respond`,tag:w.providerAuthRespond}),completeProviderAuth:G(e,{label:`environment-data:provider:auth-complete`,tag:w.providerAuthComplete}),chatGptReconnectProfile:G(e,{label:`environment-data:chatgpt:reconnect-profile`,tag:w.chatGptReconnectProfile}),chatGptImportProfile:G(e,{label:`environment-data:chatgpt:import-profile`,tag:w.chatGptImportProfile}),chatGptHandoffState:ui(e,{label:`environment-data:chatgpt:handoff`,sensitiveInput:!0,subscribe:e=>Zr(w.chatGptHandoffSubscribe,e),idleTtlMs:0}),codexAuthCallbackState:Ci(e,{label:`environment-data:codex:auth-callback`,tag:w.codexAuthCallbackSubscribe,idleTtlMs:0}),cancelProviderAuth:G(e,{label:`environment-data:provider:auth-cancel`,tag:w.providerAuthCancel}),logoutProviderAuth:G(e,{label:`environment-data:provider:auth-logout`,tag:w.providerAuthLogout}),providerInstallState:Ci(e,{label:`environment-data:provider:install-state`,tag:w.providerInstallSubscribe,idleTtlMs:0}),startProviderInstall:G(e,{label:`environment-data:provider:install-start`,tag:w.providerInstallStart,concurrency:{mode:`singleFlight`,key:({environmentId:e})=>e}}),cancelProviderInstall:G(e,{label:`environment-data:provider:install-cancel`,tag:w.providerInstallCancel}),removeProviderInstallation:G(e,{label:`environment-data:provider:install-remove`,tag:w.providerInstallRemove}),traceDiagnostics:K(e,{label:`environment-data:server:trace-diagnostics`,tag:w.serverGetTraceDiagnostics}),processDiagnostics:K(e,{label:`environment-data:server:process-diagnostics`,tag:w.serverGetProcessDiagnostics}),hostResources:ua(e,{label:`environment-data:server:host-resources`,idleTtlMs:0,staleTimeMs:5e3,execute:e=>Ki(w.serverGetHostResources,e).pipe(Zn(`5 seconds`))}),processResourceHistory:K(e,{label:`environment-data:server:process-resource-history`,tag:w.serverGetProcessResourceHistory}),scheduledTaskWebhookDeliveries:K(e,{label:`environment-data:server:scheduled-task:webhook-deliveries`,tag:w.scheduledTasksListWebhookDeliveries}),scheduledTaskWebhookDelivery:K(e,{label:`environment-data:server:scheduled-task:webhook-delivery`,tag:w.scheduledTasksGetWebhookDelivery}),scheduledTasksLive:Ci(e,{label:`environment-data:server:scheduled-tasks:live`,tag:w.scheduledTasksSubscribe}),threadDecisionsLive:Ci(e,{label:`environment-data:server:thread-decisions:live`,tag:w.subscribeThreadDecisions}),threadSelfImproveFindingsLive:Ci(e,{label:`environment-data:server:thread-self-improve-findings:live`,tag:w.selfImproveSubscribeThreadFindings}),dismissSelfImproveFindings:G(e,{label:`environment-data:server:dismiss-self-improve-findings`,tag:w.selfImproveDismissFindings}),selfImproveSettingsLive:Ci(e,{label:`environment-data:server:self-improve-settings:live`,tag:w.selfImproveSubscribeSettings}),saveSelfImproveFindings:G(e,{label:`environment-data:server:save-self-improve-findings`,tag:w.selfImproveSaveFindings}),setSelfImproveMemoryMirror:G(e,{label:`environment-data:server:set-self-improve-memory-mirror`,tag:w.selfImproveSetMemoryMirror}),undoSelfImproveSave:G(e,{label:`environment-data:server:undo-self-improve-save`,tag:w.selfImproveUndoSave}),updateSelfImproveSettings:G(e,{label:`environment-data:server:update-self-improve-settings`,tag:w.selfImproveUpdateSettings}),usageSummary:K(e,{label:`environment-data:server:usage-summary`,tag:w.serverGetUsageSummary,staleTimeMs:6e4,refreshTrigger:({environmentId:e})=>g(e),execute:(e,t)=>Ki(w.serverGetUsageSummary,e).pipe(T(n=>n.sources.some(e=>e.refreshing===!0)?t(n).pipe(lt(Ki(w.serverGetUsageSummary,{...e,awaitRefresh:!0})),x(e=>H(`Could not refresh slow usage sources.`).pipe(B({...Yi(e)}),mt(n)))):L(n)))}),resourceTelemetry:Ci(e,{label:`environment-data:server:resource-telemetry`,tag:w.subscribeResourceTelemetry,idleTtlMs:0}),resourceTelemetryHistory:K(e,{label:`environment-data:server:resource-telemetry-history`,tag:w.serverGetResourceTelemetryHistory,staleTimeMs:5e3}),searchAcpRegistry:K(e,{label:`environment-data:server:acp-registry:search`,tag:w.serverSearchAcpRegistry,staleTimeMs:0,idleTtlMs:0}),configProjection:s,welcome:ne,legacyThreadMigration:Ci(e,{label:`environment-data:server:legacy-thread-migration`,tag:w.subscribeServerLifecycle,transform:e=>e.pipe(ee(e=>e.type===`legacyThreadMigration`?pr(e.payload):ye))}),consumeResetCredit:G(e,{label:`environment-data:server:consume-reset-credit`,tag:w.providerConsumeResetCredit,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t])}}),refreshProviders:G(e,{label:`environment-data:server:refresh-providers`,tag:w.serverRefreshProviders,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.instanceId??null,t.cwd??null,t.fresh??!1,t.refreshModels??!1])}}),updateProvider:G(e,{label:`environment-data:server:update-provider`,tag:w.serverUpdateProvider,scheduler:n,concurrency:i}),updateServer:f,upsertKeybinding:G(e,{label:`environment-data:server:upsert-keybinding`,tag:w.serverUpsertKeybinding,scheduler:n,concurrency:i}),removeKeybinding:G(e,{label:`environment-data:server:remove-keybinding`,tag:w.serverRemoveKeybinding,scheduler:n,concurrency:i}),updateSettings:re,mutateProviderInstance:re,prepareAcpRegistryAgent:G(e,{label:`environment-data:server:acp-registry:prepare`,tag:w.serverPrepareAcpRegistryAgent,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.agentId}`}}),uninstallAcpRegistryManagedBinary:G(e,{label:`environment-data:server:acp-registry:uninstall-managed-binary`,tag:w.serverUninstallAcpRegistryManagedBinary,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.agentId}`}}),acceptAcpRegistryUrlAuth:G(e,{label:`environment-data:server:acp-registry:accept-url-auth`,tag:w.serverAcceptAcpRegistryUrlAuth,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}:${t.elicitationId}`}}),listAcpRegistrySessions:G(e,{label:`environment-data:server:acp-registry:list-sessions`,tag:w.serverListAcpRegistrySessions,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}:${t.projectId}:${t.cursor??`first`}`}}),importAcpRegistrySession:G(e,{label:`environment-data:server:acp-registry:import-session`,tag:w.serverImportAcpRegistrySession,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}:${t.projectId}:${t.sessionId}`}}),deleteAcpRegistrySession:G(e,{label:`environment-data:server:acp-registry:delete-session`,tag:w.serverDeleteAcpRegistrySession,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}:${t.projectId}:${t.sessionId}`}}),listAcpRegistryProviders:G(e,{label:`environment-data:server:acp-registry:list-providers`,tag:w.serverListAcpRegistryProviders,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}:${t.projectId}`}}),setAcpRegistryProvider:G(e,{label:`environment-data:server:acp-registry:set-provider`,tag:w.serverSetAcpRegistryProvider,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}:${t.projectId}:${t.providerId}`}}),disableAcpRegistryProvider:G(e,{label:`environment-data:server:acp-registry:disable-provider`,tag:w.serverDisableAcpRegistryProvider,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}:${t.projectId}:${t.providerId}`}}),logoutAcpRegistry:G(e,{label:`environment-data:server:acp-registry:logout`,tag:w.serverLogoutAcpRegistry,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>`${e}:${t.instanceId}`}}),signalProcess:G(e,{label:`environment-data:server:signal-process`,tag:w.serverSignalProcess}),upsertScheduledTask:G(e,{label:`environment-data:server:scheduled-task:upsert`,tag:w.scheduledTasksUpsert,scheduler:n,concurrency:i}),setScheduledTaskEnabled:G(e,{label:`environment-data:server:scheduled-task:set-enabled`,tag:w.scheduledTasksSetEnabled,scheduler:n,concurrency:i}),deleteScheduledTask:G(e,{label:`environment-data:server:scheduled-task:delete`,tag:w.scheduledTasksDelete,scheduler:n,concurrency:i}),runScheduledTaskNow:G(e,{label:`environment-data:server:scheduled-task:run-now`,tag:w.scheduledTasksRunNow}),rotateScheduledTaskWebhookToken:G(e,{label:`environment-data:server:scheduled-task:rotate-webhook-token`,tag:w.scheduledTasksRotateWebhookToken,scheduler:n,concurrency:i}),answerSecretRequest:G(e,{label:`environment-data:server:secrets:answer-request`,tag:w.secretsAnswerRequest,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.threadId,t.turnItemId])}}),refreshUsageRates:G(e,{label:`environment-data:server:refresh-usage-rates`,tag:w.serverRefreshUsageRates,concurrency:{mode:`singleFlight`,key:({environmentId:e})=>e}}),mcpRegistryState:G(e,{label:`environment-data:mcp-registry:state`,tag:w.mcpRegistryState}),mcpRegistryTest:G(e,{label:`environment-data:mcp-registry:test`,tag:w.mcpRegistryTest,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.serverId])}}),mcpRegistryOAuthStart:G(e,{label:`environment-data:mcp-registry:oauth-start`,tag:w.mcpRegistryOAuthStart}),mcpRegistryOAuthSignOut:G(e,{label:`environment-data:mcp-registry:oauth-sign-out`,tag:w.mcpRegistryOAuthSignOut}),mcpRegistryProviderSignInState:G(e,{label:`environment-data:mcp-registry:provider-sign-in-state`,tag:w.mcpRegistryProviderSignInState,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.serverId])}}),mcpRegistryProviderSignInStart:G(e,{label:`environment-data:mcp-registry:provider-sign-in-start`,tag:w.mcpRegistryProviderSignInStart}),mcpRegistryProviderSignInComplete:G(e,{label:`environment-data:mcp-registry:provider-sign-in-complete`,tag:w.mcpRegistryProviderSignInComplete}),mcpRegistryProviderSignInCancel:G(e,{label:`environment-data:mcp-registry:provider-sign-in-cancel`,tag:w.mcpRegistryProviderSignInCancel}),mcpRegistryProviderSignInWait:G(e,{label:`environment-data:mcp-registry:provider-sign-in-wait`,tag:w.mcpRegistryProviderSignInWait}),mcpRegistryProviderSignOut:G(e,{label:`environment-data:mcp-registry:provider-sign-out`,tag:w.mcpRegistryProviderSignOut}),mcpRegistryDiscover:G(e,{label:`environment-data:mcp-registry:discover`,tag:w.mcpRegistryDiscover,concurrency:{mode:`singleFlight`,key:({environmentId:e})=>e}}),mcpRegistryImport:G(e,{label:`environment-data:mcp-registry:import`,tag:w.mcpRegistryImport}),checkOtlpEndpoint:G(e,{label:`environment-data:server:check-otlp-endpoint`,tag:w.serverCheckOtlpEndpoint}),retryResourceTelemetry:G(e,{label:`environment-data:server:retry-resource-telemetry`,tag:w.serverRetryResourceTelemetry,concurrency:{mode:`singleFlight`,key:({environmentId:e})=>e}})}}var ru=Vt(4),iu=`15 seconds`,au=class extends Qt()(`OutdatedHostUpdateError`,{environmentId:A,message:A}){},ou=n(`clientRuntime.connection.updateOutdatedHost`)(function*(e,t,n){let r=yield*J,i=yield*za,a=yield*Li,o=yield*In,s=(yield*C(r.entries)).get(e);if(s===void 0)return yield*new Na({environmentId:e});let{prepared:c,descriptor:u}=yield*Pt(pa(s).map(e=>i.prepareForUpdate(xi(s,e)))),d=u.capabilities;if(d.serverSelfUpdate===void 0||d.serverSelfUpdate===`desktop-managed`&&d.desktopAppUpdate!==!0)return yield*new au({environmentId:e,message:`Update P4 Code on ${u.label} manually; it cannot update itself.`});let f=yield*Dn(M(function*(){let e=yield*fr(At(ki,Ga({pingTimeout:Mi,retryTransientErrors:!1,retryPolicy:_t(0)})).pipe(Er(fn(pi(c.socketUrl,{openTimeout:iu}).pipe(Er(_r(Li,a))),ti)))),r=yield*ii.pipe(fe(e)),i=d.serverSelfUpdateProgress===!0?yield*M(function*(){let e=yield*Bi(O()),i=yield*r[w.serverUpdateServerWithProgress](t).pipe(Ie(t=>t.type===`complete`?W(e,j(t.result)):n(t.stage)),Tt);return yield*ql(t.targetVersion,yield*q(e),i)}):yield*r[w.serverUpdateServer](t).pipe(Rn(e=>(d.serverSelfUpdate===`boot-service`||d.serverSelfUpdate===`respawn`)&&Kl(e),()=>L({targetVersion:t.targetVersion,method:d.serverSelfUpdate})));return i.method===`desktop-app`&&i.desktopUpdateToken!==void 0&&(yield*r[w.serverCommitDesktopUpdate]({requestId:i.desktopUpdateToken}).pipe(Rn(e=>Kl(e),()=>p))),i}));yield*n(`resuming`);let m=[c.httpBaseUrl,...pa(s).flatMap(e=>Si(e)??[])].filter((e,t,n)=>n.indexOf(e)===t),h=yield*Pt(m.map(t=>Sr({httpBaseUrl:t}).pipe(Ae(t=>t.environmentId===e&&su(t),()=>`not-ready`)))).pipe(Ne(In,o),Mn,l({schedule:_e(Kr(1)),until:e=>De(e,su)}),Sn(ru),V(Lt));return k(h)?yield*new au({environmentId:e,message:`${u.label} did not come back on a compatible P4 Code version.`}):(ei(s)&&(yield*(yield*ci).refresh),yield*r.setCompatibility(e,null),yield*r.setEnabled(e,!0),{...f,targetVersion:h.value.serverVersion})});function su(e){return(e.orchestrationProtocolVersion??1)===2}var cu=ir(`1 millis`),lu=Jt(rn(nt(Ce(i)))),uu=400;function du(e){if(!Rr(e))return[];let t=e.threads;return Array.isArray(t)?t.map(e=>{if(!Rr(e))return;let t=e.pullRequests;return delete e.pullRequests,t}):[]}function fu(e,t){let n=e.threads.map(e=>e.id),r=M(function*(){let e=new Map,r=uu;for(let[i,a]of n.entries()){let n=t[i];if(n===void 0)continue;let o=Array.isArray(n)?n.length:1;r+o>uu&&(yield*cu,r=0),r+=o;let s=yield*lu(n).pipe(x(e=>H(`Discarding unreadable shell pull request links.`,{threadId:a,cause:String(e)}).pipe(mt(void 0))));s!==void 0&&e.set(a,s)}return e});return{...e,loadPullRequests:r}}var pu=Jt(nt(qr)),mu=ln(function*(e){let t=du(e);return fu(yield*pu(e),t)}),hu=2e4,gu=n(`clientRuntime.state.fetchEnvironmentShellSnapshot`)(function*(e){return yield*ea({...e,group:`orchestration`,method:`GET`,url:e=>e.shellSnapshot(),timeoutMs:e.timeoutMs??hu,request:({client:e,headers:t})=>e.shellSnapshot({headers:ha(t),responseMode:`response-only`}).pipe(T(vu))})}),_u=Jt(nt(yt)),vu=e=>{if(e.status===200)return e.json.pipe(T(mu));let t=new g({reason:new ft({request:e.request,response:e})});return e.json.pipe(T(_u),se({onFailure:()=>S(t),onSuccess:S}))},yu=class extends ut()(`@p4code/client-runtime/state/shellSnapshotHttp/ShellSnapshotLoader`){},bu=At(yu,M(function*(){let e=yield*In,t=yield*Gt(sa),n=yield*Gt(ma);return yu.of({load:r=>gu({prepared:r,signer:t,remoteAuthorization:n}).pipe(V(j),Ne(In,e),s(e=>H(`Could not load the environment shell snapshot over HTTP; using the socket snapshot instead.`).pipe(B({cause:Nt(e)}),mt(O()))))})})),xu=u(v),Su=u(rn(Ce(i)));function Cu(e,t){return e===t||Su(e,t)}function wu(e,t){if(e===null||e.threads.length===0)return t;let n=new Map(e.threads.map(e=>[e.id,e])),r=0,i=t.threads.map(e=>{let t=n.get(e.id);return t===void 0||!xu(t,e.pullRequests===void 0&&t.pullRequests!==void 0?{...e,pullRequests:t.pullRequests}:e)?e:(r+=1,t)});return r===0?t:{...t,threads:i}}function Tu(e,t){let n=e.findIndex(e=>e.id===t.id);return n===-1?[...e,t]:e.map((e,r)=>r===n?t:e)}function Eu(e,t){return t.repositoryIdentity==null&&e?.repositoryIdentity!=null&&e.workspaceRoot===t.workspaceRoot?{...t,repositoryIdentity:e.repositoryIdentity}:t}function Du(e,t,n){if(e==null)return t;let r=n!==void 0,i=r?new Set(n.resolvedRepositoryIdentityRoots):null;if(r){let n=new Map(t.projects.map(e=>[e.id,e]));return{...e,projects:e.projects.map(e=>{let t=n.get(e.id);return t===void 0||t.workspaceRoot!==e.workspaceRoot?e:i?.has(e.workspaceRoot)===!0||e.repositoryIdentity==null&&t.repositoryIdentity!=null?{...e,repositoryIdentity:t.repositoryIdentity}:e})}}let a=new Map(e.projects.map(e=>[e.id,e]));return{...t,projects:t.projects.map(e=>{let t=a.get(e.id);return i?.has(e.workspaceRoot)===!0?e:Eu(t,e)})}}function Ou(e,t){if(t.sequence<=e.snapshotSequence)return e;switch(t.kind){case`project.updated`:{let n=Eu(e.projects.find(e=>e.id===t.project.id),t.project);return{...e,projects:Tu(e.projects,n),snapshotSequence:t.sequence}}case`project.removed`:return{...e,projects:e.projects.filter(e=>e.id!==t.projectId),snapshotSequence:t.sequence};case`thread.updated`:{let n=t.location===`active`?e.threads.find(e=>e.id===t.thread.id):void 0;if(n!==void 0&&xu(n,t.thread))return{...e,snapshotSequence:t.sequence};let r=e=>e.filter(e=>e.id!==t.thread.id);return{...e,threads:t.location===`active`?Tu(e.threads,t.thread):r(e.threads),archivedThreads:r(e.archivedThreads),snapshotSequence:t.sequence}}case`thread.removed`:return{...e,threads:e.threads.filter(e=>e.id!==t.threadId),archivedThreads:e.archivedThreads.filter(e=>e.id!==t.threadId),snapshotSequence:t.sequence};default:return e}}function ku(e){return{openInEditor:G(e,{label:`environment-data:shell:open-in-editor`,tag:w.shellOpenInEditor})}}var Au={snapshot:O(),status:`empty`,error:O()};function ju(e){return E(e)?`cached`:`empty`}function Mu(e){if(e.loadPullRequests===void 0)return e;let{loadPullRequests:t,...n}=e;return n}var Nu=`Could not synchronize environment data.`,Pu=n(`EnvironmentShellState.make`)(function*(){let e=yield*Ca,t=yield*Ta,r=yield*yu,i=yield*Gt(_a),a=e.target.environmentId,o=yield*t.loadShell(a).pipe(x(e=>H(`Could not load cached environment shell.`).pipe(B({environmentId:a,...Yi(e)}),mt(O())))),s=ar(o,Mu),c=yield*Jr({snapshot:s,status:ju(s),error:O()}),l=yield*Bi(!1),u=yield*Bi(null),f=yield*Bi(null),m=yield*Bi(O()),h=yield*Ar(1),g=yield*$e(1),_,v=new Set,ee=n(`EnvironmentShellState.persistLatest`)(function*(e){for(;;){let n=yield*q(m);if(k(n)||n.value===_||n.value.threads.some(e=>v.has(e)))return;let r=n.value;if(!(yield*t.saveShell(a,r).pipe(mt(!0),x(e=>H(`Could not persist environment shell cache.`).pipe(B({environmentId:a,...Yi(e)}),mt(!1)))))||(_=r,!e))return}},g.withPermit),y=()=>ee(!1),te=ee(!0);yield*Xt(()=>te),yield*Dl(h,y).pipe(P);let ne=W(l,!1).pipe(lt(ht(c,e=>({...e,status:ju(e.snapshot)}))),lt(te.pipe(P)),b),re=ht(c,e=>({...e,status:`synchronizing`,error:O()})),ie=ht(c,e=>e.status===`live`?e:{...e,status:`synchronizing`,error:O()}),ae=e=>W(l,!1).pipe(lt(H(`Could not synchronize the environment shell.`)),B({environmentId:a,...Yi(e)}),lt(ht(c,e=>({...e,status:ju(e.snapshot),error:j(Nu)})))),oe=yield*$e(1),se=n(`EnvironmentShellState.applyItems`)(function*(e,t){let n=yield*C(c),r=yield*q(l),i=n,a=!1;for(let t of e){if(t.kind===`synchronized`){r=!1,E(i.snapshot)&&(i={...i,status:`live`,error:O()});continue}let e=t.kind===`snapshot`?Du(R(i.snapshot),t.snapshot,t.resolvedRepositoryIdentityRoots===void 0?void 0:{resolvedRepositoryIdentityRoots:t.resolvedRepositoryIdentityRoots}):vr(i.snapshot,{onNone:()=>null,onSome:e=>t.sequence>e.snapshotSequence?Ou(e,t):e});e!==null&&(a||=t.kind===`snapshot`,i={snapshot:j(e),status:r?`synchronizing`:`live`,error:O()})}if(yield*W(l,r),i!==n){if(t!==void 0&&E(i.snapshot)&&(v=new Set(i.snapshot.value.threads.filter(e=>t.has(e.id)))),E(i.snapshot)&&(yield*W(m,i.snapshot)),yield*xe(c,i),a){let e=yield*q(f);e!==null&&(yield*W(u,e))}i.snapshot!==n.snapshot&&E(i.snapshot)&&(yield*jn(h,i.snapshot.value))}},oe.withPermit),ce=yield*hr,le,ue=qn(()=>{let e=le;return le=void 0,e===void 0?p:Gr(e)}),de=ln(function*(e,t){if(yield*ue,e.loadPullRequests===void 0)return;let n=new Set(t.threads),r=new Set(e.threads.map(e=>e.id));v=new Set(t.threads.filter(e=>r.has(e.id))),le=yield*e.loadPullRequests.pipe(T(e=>fe(e,n,r)),Kt(ce))}),fe=ln(function*(e,t,n){let r=yield*d(c,r=>{if(k(r.snapshot))return[O(),r];let i=r.snapshot.value,a=!1,o=i.threads.map(r=>{if(!t.has(r)||!n.has(r.id))return r;let i=e.get(r.id);if(Cu(r.pullRequests,i))return r;if(a=!0,i===void 0){let{pullRequests:e,...t}=r;return t}return{...r,pullRequests:i}});if(!a)return[O(),r];let s={...i,threads:o};return[j(s),{...r,snapshot:j(s)}]});v=new Set;let i=yield*q(m);if(k(i))return;let a=E(r)?r:i;yield*W(m,a),yield*jn(h,a.value)},e=>oe.withPermit(e));E(o)&&E(s)&&(yield*de(o.value,s.value));let pe=vr(i,{onNone:()=>He,onSome:e=>e.changes.pipe(st(oa))});return yield*re,yield*P(ya(bn.subscribeShell,n(`EnvironmentShellState.makeSubscribeInput`)(function*(t){yield*W(f,t);let n=yield*t.initialConfig.pipe(V(e=>e.shellResumeCompletionMarker===!0),Be(()=>!1));yield*W(l,n),yield*re;let i=(yield*q(u))===t,a=i,o=yield*C(c);if(!i||k(o.snapshot)){let t=yield*C(e.prepared).pipe(T(vr({onSome:L,onNone:()=>Fe(e.prepared).pipe(st(E),Ge(e=>e.value),Yr,V(tr))}))),n=yield*r.load(t);if(E(n)){yield*ue;let e=yield*C(c),t=wu(R(e.snapshot),Mu(n.value)),r=new Set(n.value.loadPullRequests===void 0?[]:n.value.threads.map(e=>e.id));yield*se([{kind:`snapshot`,snapshot:t}],r),a=!0,o=yield*C(c),E(o.snapshot)&&(yield*de(n.value,o.snapshot.value))}}return!a||k(o.snapshot)?n?{requestCompletionMarker:!0}:{}:(n||(yield*ht(c,e=>({...e,status:`live`,error:O()}))),{afterSequence:o.snapshot.value.snapshotSequence,...n?{requestCompletionMarker:!0}:{}})}),{onExpectedFailure:e=>ae(et(e)),retryExpectedFailureAfter:`250 millis`,resubscribe:pe}).pipe(it(e=>se(e)))),yield*Fe(e.state).pipe(Ie(e=>{switch($r(e)){case`synchronizing`:return re;case`disconnected`:return ne;case`ready`:return ie}}),P),c});function Fu(e){return ba(e,Mt(Pu().pipe(V(Fe))))}Object.freeze({hasSnapshot:!1,hasSynchronizingShell:!1,hasCachedShell:!1,hasLiveShell:!1,firstError:null});var Iu=new Map;function Lu(e,t){if(e.size!==t.size)return!1;for(let[n,r]of e)if(t.get(n)!==r)return!1;return!0}function Ru(e){let t=Iu;return D(n=>{let r=new Map;for(let t of pc(n(e.catalogValueAtom))){let i=n(e.serverConfigValueAtom(t));i!==null&&r.set(t,i)}return Lu(t,r)||(t=r),t}).pipe(F(`environment-server-configs`))}function zu(e){let t=I(t=>e.atom(Fu(t),{initialValue:Au}));return{stateAtom:t,stateValueAtom:I(e=>D(n=>cn(We(n(t(e))),()=>Au)).pipe(F(`environment-shell-state-value:${e}`)))}}function Bu(e,t){return t.visibility===`local`||t.sourceThreadId===e.thread.id}function Vu(e){let t=e.visibleTurnItems.filter(t=>Bu(e,t)).map(e=>e.item);return t.length===0?e:{...e,turnItems:[...t,...e.turnItems]}}function Hu(e){return e.turnItemsOmitLocalVisible===!0?Vu(e.projection):e.projection}function Uu(e){let{item:t}=e;return t.type!==`run_interrupt_result`||t.runId===null||t.nodeId===null||!e.attempts.some(e=>e.runId===t.runId&&e.rootNodeId===t.nodeId&&e.status===`superseded`)?!1:!e.items.some(e=>e.type===`run_interrupt_request`&&e.runId===t.runId)}function Wu(e){let{item:t}=e;return t.runId!==null&&e.runs.some(e=>e.id===t.runId&&e.status===`rolled_back`)||t.type===`user_message`&&t.inputIntent===`queued_turn`&&t.runId!==null&&e.runs.some(e=>e.id===t.runId&&e.status===`cancelled`)?!1:!Uu({item:t,attempts:e.attempts,items:e.items})}function Gu(e){let t=new Map(e.runs.map(e=>[e.id,e.status])),n=new Map;for(let t of e.attempts){if(t.status!==`superseded`)continue;let e=n.get(t.runId);e===void 0&&n.set(t.runId,e=new Set),e.add(t.rootNodeId)}let r=new Set(e.items.filter(e=>e.type===`run_interrupt_request`).map(e=>e.runId));return e=>{let i=e.runId===null?void 0:t.get(e.runId);return i===`rolled_back`||i===`cancelled`&&e.type===`user_message`&&e.inputIntent===`queued_turn`?!1:!(e.type===`run_interrupt_result`&&e.runId!==null&&e.nodeId!==null&&n.get(e.runId)?.has(e.nodeId)===!0&&!r.has(e.runId))}}function Ku(e,t){let n=e.findIndex(e=>e.id===t.id);if(n===-1)return[...e,t];let r=[...e];return r[n]=t,r}function qu(e,t){let n=e.findIndex(e=>e.sourceItemId===t);return n===-1?e:Ju([...e.slice(0,n),...e.slice(n+1)])}function Ju(e){return e.map((e,t)=>e.position===t?e:{...e,position:t})}function Yu(e,t){return Wu({item:t,runs:e.runs,attempts:e.attempts,items:e.turnItems})}function Xu(e){let t=e.visibleTurnItems,n=Gu({runs:e.runs,attempts:e.attempts,items:e.turnItems}),r=null;for(let e=0;e<t.length;e+=1){let i=t[e];if(!(i.visibility!==`local`||n(i.item))){r??=t.slice(0,e);continue}r?.push(i)}return r===null?t:Ju(r)}function Zu(e){let t=null;for(let n of e)n.visibility===`local`&&(t===null||n.item.ordinal<t)&&(t=n.item.ordinal);return t}var Qu=new Set([`preparing`,`queued`,`starting`,`running`,`waiting`]);function $u(e,t,n){return e.visibleTurnItems.some(e=>e.sourceItemId===t.id)?!1:t.runId===null?ed(e,t,n):e.runs.some(e=>e.id===t.runId&&Qu.has(e.status))||e.visibleTurnItems.some(e=>e.visibility===`local`&&e.item.runId===t.runId&&e.item.ordinal<=t.ordinal)?!1:ed(e,t,n)}function ed(e,t,n){if(n!=null&&t.ordinal<=n)return!0;let r=Zu(e.visibleTurnItems);return r!==null&&t.ordinal<r}function td(e,t,n,r){let i=e.visibleTurnItems,a=i.findIndex(e=>e.sourceItemId===t.id),o={position:0,visibility:`local`,sourceThreadId:t.threadId,sourceItemId:t.id,item:t},s=a===-1?void 0:i[a];if(s!==void 0&&s.visibility===o.visibility&&s.sourceThreadId===o.sourceThreadId&&s.sourceItemId===o.sourceItemId&&s.item===t||a===-1&&n&&$u(e,t,r))return i;let c=a===-1?[...i]:[...i.slice(0,a),...i.slice(a+1)],l=c.findIndex(e=>e.visibility===`local`&&(e.item.ordinal>t.ordinal||e.item.ordinal===t.ordinal&&String(e.item.id).localeCompare(String(t.id))>0));return c.splice(l===-1?c.length:l,0,o),Ju(c)}function nd(e,t,n){if(e===null||t.threadId!==e.thread.id)return e;let r=n?.partialTimeline===!0,i=n?.latestLocalTurnOrdinal,a={...e,updatedAt:t.occurredAt};switch(t.type){case`thread.pull-request-link-updated`:return{...a,thread:Lo(e.thread,t.payload)};case`thread.created`:case`thread.archived`:case`thread.unarchived`:case`thread.deleted`:case`thread.settled`:case`thread.unsettled`:case`thread.snoozed`:case`thread.unsnoozed`:case`thread.auto-settle-set`:case`thread.pinned`:case`thread.unpinned`:case`thread.pin-reordered`:case`thread.active-reordered`:case`thread.metadata-updated`:case`thread.pull-request-synced`:case`thread.runtime-mode-updated`:case`thread.interaction-mode-updated`:case`thread.model-selection-updated`:case`thread.provider-switched`:return{...a,thread:t.payload};case`thread.visited`:case`thread.marked-unread`:return{...e,thread:t.payload};case`run.created`:case`run.updated`:{let e={...a,runs:Ku(a.runs,t.payload)};return{...e,visibleTurnItems:Xu(e)}}case`run.background-work-cancelled`:return{...a,runs:a.runs.map(e=>e.id===t.payload.runId?{...e,restartCancelledBackgroundWork:t.payload.restartCancelledBackgroundWork}:e)};case`run-attempt.created`:case`run-attempt.updated`:{let e={...a,attempts:Ku(a.attempts,t.payload)};return{...e,visibleTurnItems:Xu(e)}}case`node.updated`:return{...a,nodes:Ku(a.nodes,t.payload)};case`subagent.updated`:return{...a,subagents:Ku(a.subagents,t.payload)};case`provider-session.attached`:case`provider-session.updated`:return{...a,providerSessions:Ku(a.providerSessions,t.payload)};case`provider-session.detached`:return{...a,providerSessions:a.providerSessions.filter(e=>e.id!==t.payload.providerSessionId)};case`provider-thread.updated`:return{...a,providerThreads:Ku(a.providerThreads,t.payload)};case`provider-turn.updated`:return{...a,providerTurns:Ku(a.providerTurns,{...t.payload,...(t.payload.tokenUsage??a.providerTurns.find(e=>e.id===t.payload.id)?.tokenUsage)===void 0?{}:{tokenUsage:t.payload.tokenUsage??a.providerTurns.find(e=>e.id===t.payload.id)?.tokenUsage}})};case`runtime-request.updated`:return{...a,runtimeRequests:Ku(a.runtimeRequests,t.payload)};case`message.updated`:return{...a,messages:Ku(a.messages,t.payload)};case`plan.updated`:return{...a,plans:Ku(a.plans,t.payload)};case`turn-item.updated`:{if(r&&!e.turnItems.some(e=>e.id===t.payload.id)&&$u(e,t.payload,i))return e;let n={...a,turnItems:Ku(a.turnItems,t.payload)},o=e.turnItems.find(e=>e.id===t.payload.id),s=t.payload.type===`run_interrupt_request`||o?.type===`run_interrupt_request`?{...n,visibleTurnItems:Xu(n)}:n;return{...n,visibleTurnItems:Yu(n,t.payload)?td(s,t.payload,r,i):qu(s.visibleTurnItems,t.payload.id)}}case`checkpoint-scope.created`:return{...a,checkpointScopes:Ku(a.checkpointScopes,t.payload)};case`checkpoint.captured`:return{...a,checkpoints:Ku(a.checkpoints,t.payload)};case`checkpoint.rollback-requested`:return a;case`context-handoff.updated`:return{...a,contextHandoffs:Ku(a.contextHandoffs,t.payload)};case`context-transfer.created`:case`context-transfer.updated`:return{...a,contextTransfers:Ku(a.contextTransfers,t.payload)}}}var rd=3e5,id=class extends ut()(`@p4code/client-runtime/state/threadHistoryController`){},ad=At(id,M(function*(){let e=yield*Bi(new Map);return id.of({register:(t,n,r)=>yi(e,e=>{let i=new Map(e);return i.set(Z({environmentId:t,threadId:n}),r),i}).pipe(mt({environmentId:t,threadId:n,handler:r})),unregister:t=>yi(e,e=>{let n=Z({environmentId:t.environmentId,threadId:t.threadId});if(e.get(n)!==t.handler)return e;let r=new Map(e);return r.delete(n),r}),loadEarlier:(t,n,r)=>q(e).pipe(T(e=>{let i=e.get(Z({environmentId:t,threadId:n}));return i===void 0?L({_tag:`noop`}):i.loadEarlier(r)}))})})),od=6e3,sd=n(`clientRuntime.state.fetchEnvironmentThreadHistoryPage`)(function*(e){let t={params:{threadId:e.threadId},query:{cursor:e.cursor,...e.view===void 0?{}:{view:e.view},...e.throughEntryId===void 0?{}:{throughEntryId:e.throughEntryId}}};return yield*ea({...e,group:`orchestration`,method:`GET`,url:e=>e.threadHistoryPage(t),timeoutMs:e.timeoutMs??od,request:({client:e,headers:n})=>e.threadHistoryPage({...t,headers:ha(n)})})}),cd={historyCursor:null,hasMoreHistory:!1,loading:!1,error:null,expanded:!1,latestLocalTurnOrdinal:null};function ld(e,t){return t.historyCursor===e}function ud(e,t){return!ld(e,t)||!t.loading?t:{...t,loading:!1}}function dd(e){return`${e.sourceThreadId}:${e.sourceItemId}`}function fd(e){return e.map((e,t)=>e.position===t?e:{...e,position:t})}function pd(e,t){if(t.length===0)return e;let n=new Map(e.visibleTurnItems.map(e=>[dd(e),e])),r=new Map(e.turnItems.map(e=>[String(e.id),e])),i=new Set,a=[];for(let o of t){let t=dd(o);if(i.has(t))continue;let s=n.get(t)??o;if(!n.has(t)&&(s.visibility===`local`||s.sourceThreadId===e.thread.id)){let t=r.get(String(s.sourceItemId));if(t!==void 0){if(t.type!==`run_interrupt_request`||!Wu({item:t,runs:e.runs,attempts:e.attempts,items:e.turnItems}))continue;s={...s,item:t}}}i.add(t),a.push(s),(s.visibility===`local`||s.sourceThreadId===e.thread.id)&&!r.has(String(s.sourceItemId))&&r.set(String(s.sourceItemId),s.item)}if(a.length===0)return e;let o=[...a,...e.visibleTurnItems.filter(e=>!i.has(dd(e)))];return o.length===e.visibleTurnItems.length&&o.every((t,n)=>t===e.visibleTurnItems[n])?e:{...e,turnItems:[...r.values()],visibleTurnItems:fd(o)}}function md(e,t){return{historyCursor:t.nextCursor,hasMoreHistory:t.hasMoreHistory,loading:!1,error:null,expanded:!0,latestLocalTurnOrdinal:e.latestLocalTurnOrdinal}}function hd(e){return e.hasMoreHistory||e.error!==null}var gd=2e4,_d=n(`clientRuntime.state.fetchEnvironmentThreadSnapshot`)(function*(e){return yield*ea({...e,group:`orchestration`,method:`GET`,url:t=>t.threadSnapshot({params:{threadId:e.threadId}}),timeoutMs:e.timeoutMs??gd,request:({client:t,headers:n})=>t.threadSnapshot({params:{threadId:e.threadId},headers:ha(n)})})}),vd=class extends ut()(`@p4code/client-runtime/state/threadSnapshotHttp/ThreadSnapshotLoader`){},yd={data:O(),status:`empty`,error:O(),history:cd},bd=``,xd=nn;function Sd(e){return Bn(e,tt(xd),e=>e.join(bd))}function Cd(e){return e.length===0?[]:Bn(e.split(bd),Pe(e=>ze.make(e)))}function wd(e){return I(t=>D(n=>{let r=[],i=null,a=!1;for(let o of Cd(t)){let t=n(e.getSnapshotAtom(o));a||=t.waiting;let s=R(We(t));s!==null&&r.push({environmentId:o,snapshot:s}),i===null&&t._tag===`Failure`&&(i=`Failed to load archived threads.`)}return{snapshots:r,error:i,isLoading:a}}).pipe(F(`${e.labelPrefix}:${t}`)))}var Td=6e3,Ed=n(`clientRuntime.state.fetchEnvironmentBoundedThreadSnapshot`)(function*(e){let t={params:{threadId:e.threadId},query:{compactTurnItems:`1`}};return yield*ea({...e,group:`orchestration`,method:`GET`,url:e=>e.threadBoundedSnapshot(t),timeoutMs:e.timeoutMs??Td,request:({client:e,headers:n})=>e.threadBoundedSnapshot({...t,headers:ha(n)})}).pipe(V(({turnItemsOmitLocalVisible:e,...t})=>({...t,projection:Hu({...t,turnItemsOmitLocalVisible:e})})))}),Dd=At(vd,M(function*(){let e=yield*In,t=yield*Gt(sa),n=yield*Gt(ma);return vd.of({load:(r,i)=>{let a=_d({prepared:r,threadId:i,signer:t,remoteAuthorization:n}).pipe(V(e=>({_tag:`present`,snapshot:e})),Ne(In,e),Ye({EnvironmentResourceNotFoundError:()=>vn(`Full thread snapshot not found over HTTP after bounded fallback; treating the thread as deleted.`).pipe(B({threadId:i}),mt({_tag:`missing`}))}),s(e=>H(`Could not load the full thread snapshot over HTTP after bounded fallback; using the socket snapshot instead.`).pipe(B({threadId:i,cause:Nt(e)}),mt({_tag:`unavailable`}))));return Ed({prepared:r,threadId:i,signer:t,remoteAuthorization:n}).pipe(V(e=>({_tag:`present`,snapshot:{snapshotSequence:e.snapshotSequence,projection:e.projection,latestLocalTurnOrdinal:e.latestLocalTurnOrdinal},history:{historyCursor:e.historyCursor,hasMoreHistory:e.hasMoreHistory,latestLocalTurnOrdinal:e.latestLocalTurnOrdinal}})),Ne(In,e),Ye({EnvironmentResourceNotFoundError:()=>vn(`Bounded thread snapshot not found over HTTP; treating the thread as deleted.`).pipe(B({threadId:i}),mt({_tag:`missing`})),RemoteEnvironmentAuthInvalidJsonError:e=>vn(`Bounded thread snapshot returned an invalid response; trying the full HTTP thread snapshot for an older server.`).pipe(B({threadId:i,cause:e.message}),lt(a)),RemoteEnvironmentAuthUndeclaredStatusError:e=>e.status===404?vn(`Bounded thread snapshot route was not found; trying the full HTTP thread snapshot for an older server.`).pipe(B({threadId:i}),lt(a)):S(e)}),s(e=>H(`Could not load the bounded thread snapshot over HTTP; using the socket snapshot instead.`).pipe(B({threadId:i,cause:Nt(e)}),mt({_tag:`unavailable`}))))}})}));function Od(e){let t=I(e=>D([]).pipe(An)),n=I(n=>D(r=>{let i=r(e(n)),a=r(t(n));if(i===null||a.length===0)return i;let o=new Map;for(let e of a){if(e.sequence!==void 0&&e.sequence<=i.snapshotSequence)continue;let t=o.get(e.threadId)??[];t.push(e),o.set(e.threadId,t)}return o.size===0?i:{...i,threads:i.threads.map(e=>(o.get(e.id)??[]).reduce((e,t)=>t.apply(e),e))}}));function r(n,r){return{label:n.label,run:async(i,a)=>{let o=En(),s=t(a.environmentId),c=e(a.environmentId),l={threadId:a.input.threadId,apply:e=>r(e,a.input,o,l.sequence!==void 0)},u=()=>i.update(s,e=>e.filter(e=>e!==l));i.update(s,e=>[...e,l]);let d=!1;try{let e=await n.run(i,a);if(e._tag===`Success`){l.sequence=e.value.sequence,i.update(s,e=>[...e]);let t=t=>{(t===null||t.snapshotSequence>=e.value.sequence)&&(u(),n())},n=i.subscribe(c,t);t(i.get(c)),d=!0}return e}finally{d||u()}}}}return{snapshotAtom:n,wrap:r}}function kd(e,t){let n=da(),r={mode:`serial`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.threadId])},i={create:U(e,{label:`environment-data:commands:thread:create`,execute:e=>rs(e),scheduler:n,concurrency:r}),delete:U(e,{label:`environment-data:commands:thread:delete`,execute:e=>as(e),scheduler:n,concurrency:r}),archive:U(e,{label:`environment-data:commands:thread:archive`,execute:e=>os(e),scheduler:n,concurrency:r}),unarchive:U(e,{label:`environment-data:commands:thread:unarchive`,execute:e=>ss(e),scheduler:n,concurrency:r}),settle:U(e,{label:`environment-data:commands:thread:settle`,execute:e=>cs(e),scheduler:n,concurrency:r}),unsettle:U(e,{label:`environment-data:commands:thread:unsettle`,execute:e=>ms(e),scheduler:n,concurrency:r}),snooze:U(e,{label:`environment-data:commands:thread:snooze`,execute:e=>hs(e),scheduler:n,concurrency:r}),unsnooze:U(e,{label:`environment-data:commands:thread:unsnooze`,execute:e=>gs(e),scheduler:n,concurrency:r}),pin:U(e,{label:`environment-data:commands:thread:pin`,execute:e=>ls(e),scheduler:n,concurrency:r}),unpin:U(e,{label:`environment-data:commands:thread:unpin`,execute:e=>ps(e),scheduler:n,concurrency:r}),reorderPin:U(e,{label:`environment-data:commands:thread:reorder-pin`,execute:e=>ds(e),scheduler:n,concurrency:r}),setAutoSettle:U(e,{label:`environment-data:commands:thread:set-auto-settle`,execute:e=>us(e),scheduler:n,concurrency:r}),reorderActive:U(e,{label:`environment-data:commands:thread:reorder-active`,execute:e=>fs(e),scheduler:n,concurrency:r}),visit:U(e,{label:`environment-data:commands:thread:visit`,execute:e=>_s(e),scheduler:n,concurrency:r}),markUnread:U(e,{label:`environment-data:commands:thread:mark-unread`,execute:e=>vs(e),scheduler:n,concurrency:r}),updateMetadata:U(e,{label:`environment-data:commands:thread:update-metadata`,execute:e=>ys(e),scheduler:n,concurrency:r}),linkPullRequest:U(e,{label:`environment-data:commands:thread:link-pull-request`,execute:e=>Rs(e),scheduler:n,concurrency:r}),unlinkPullRequest:U(e,{label:`environment-data:commands:thread:unlink-pull-request`,execute:e=>Hs(e),scheduler:n,concurrency:r}),linkDesign:U(e,{label:`environment-data:commands:thread:link-design`,execute:e=>zs(e),scheduler:n,concurrency:r}),unlinkDesign:U(e,{label:`environment-data:commands:thread:unlink-design`,execute:e=>Bs(e),scheduler:n,concurrency:r}),watchPullRequest:U(e,{label:`environment-data:commands:thread:watch-pull-request`,execute:e=>Vs(e),scheduler:n,concurrency:r}),setRuntimeMode:U(e,{label:`environment-data:commands:thread:set-runtime-mode`,execute:e=>bs(e),scheduler:n,concurrency:r}),setInteractionMode:U(e,{label:`environment-data:commands:thread:set-interaction-mode`,execute:e=>xs(e),scheduler:n,concurrency:r}),startTurn:U(e,{label:`environment-data:commands:thread:start-turn`,execute:e=>Ss(e),scheduler:n,concurrency:r}),interruptTurn:U(e,{label:`environment-data:commands:thread:interrupt-turn`,execute:e=>Cs(e),scheduler:n,concurrency:r}),respondToApproval:U(e,{label:`environment-data:commands:thread:respond-to-approval`,execute:e=>ws(e),scheduler:n,concurrency:r}),respondToUserInput:U(e,{label:`environment-data:commands:thread:respond-to-user-input`,execute:e=>Ts(e),scheduler:n,concurrency:r}),dismissUserInput:U(e,{label:`environment-data:commands:thread:dismiss-user-input`,execute:e=>Es(e),scheduler:n,concurrency:r}),dismissMcpSignIn:U(e,{label:`environment-data:commands:thread:dismiss-mcp-sign-in`,execute:e=>Ds(e),scheduler:n,concurrency:r}),revertCheckpoint:U(e,{label:`environment-data:commands:thread:revert-checkpoint`,execute:e=>Os(e),scheduler:n,concurrency:r}),stopSession:U(e,{label:`environment-data:commands:thread:stop-session`,execute:e=>ks(e),scheduler:n,concurrency:r}),forkFromRun:U(e,{label:`environment-data:commands:thread:fork-from-run`,execute:e=>As(e),scheduler:n,concurrency:{mode:`serial`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.sourceThreadId])}}),mergeBack:U(e,{label:`environment-data:commands:thread:merge-back`,execute:e=>js(e),scheduler:n,concurrency:{mode:`serial`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.sourceThreadId,t.targetThreadId])}}),resumeThreadQueue:U(e,{label:`environment-data:commands:thread:resume-queue`,execute:e=>Ms(e),scheduler:n,concurrency:r}),reorderQueuedRun:U(e,{label:`environment-data:commands:thread:reorder-queued-run`,execute:e=>Ns(e),scheduler:n,concurrency:r}),promoteQueuedRun:U(e,{label:`environment-data:commands:thread:promote-queued-run`,execute:e=>Ps(e),scheduler:n,concurrency:r}),cancelQueuedRun:U(e,{label:`environment-data:commands:thread:cancel-queued-run`,execute:e=>Fs(e),scheduler:n,concurrency:r}),retryWorkspacePreparation:U(e,{label:`environment-data:commands:thread:retry-workspace-preparation`,execute:e=>Is(e),scheduler:n,concurrency:r}),editQueuedRun:U(e,{label:`environment-data:commands:thread:edit-queued-run`,execute:e=>Ls(e),scheduler:n,concurrency:r}),loadEarlierHistory:U(e,{label:`environment-data:commands:thread:load-earlier-history`,execute:e=>M(function*(){let t=yield*Ca,n=yield*Gt(id);return k(n)?{_tag:`noop`}:yield*n.value.loadEarlier(t.target.environmentId,e.threadId,e.throughEntryId)}),scheduler:n,concurrency:{mode:`serial`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.threadId])}}),uploadFeedback:G(e,{label:`environment-data:commands:thread:upload-feedback`,tag:w.providerUploadFeedback,scheduler:n,concurrency:r})},a=Od(t);return{...i,snapshotAtom:a.snapshotAtom,settle:a.wrap(i.settle,(e,t,n,r)=>!r&&(e.pendingRuntimeRequest!==null||[`preparing`,`queued`,`starting`,`running`,`waiting`].includes(e.status))?e:{...e,pendingRuntimeRequest:null,settledOverride:`settled`,settledAt:e.settledOverride===`settled`?e.settledAt??n:n,unsettledAt:null,activeOrderKey:null,pinnedAt:null,pinOrderKey:null,snoozedAt:null,snoozedUntil:null}),unsettle:a.wrap(i.unsettle,(e,t,n)=>({...e,settledOverride:t.reason===`user`?`active`:null,settledAt:null,unsettledAt:e.settledOverride===`active`?e.unsettledAt??null:n})),snooze:a.wrap(i.snooze,(e,t,n,r)=>!r&&(e.pendingRuntimeRequest!==null||[`preparing`,`queued`,`starting`].includes(e.status))||!(Date.parse(t.snoozedUntil)>Wt(n))?e:{...e,pendingRuntimeRequest:null,snoozedUntil:er(t.snoozedUntil),snoozedAt:e.snoozedUntil!=null&&on(e.snoozedUntil)===t.snoozedUntil?e.snoozedAt??n:n}),unsnooze:a.wrap(i.unsnooze,e=>({...e,snoozedUntil:null,snoozedAt:null})),setAutoSettle:a.wrap(i.setAutoSettle,(e,t,n)=>({...e,autoSettleDisabledAt:t.enabled?null:e.autoSettleDisabledAt??n})),pin:a.wrap(i.pin,(e,t,n)=>({...e,pinnedAt:e.pinnedAt??n,pinOrderKey:e.pinnedAt==null?t.orderKey??null:e.pinOrderKey,...e.settledOverride===`settled`?{settledOverride:`active`,settledAt:null,unsettledAt:n}:{},snoozedUntil:null,snoozedAt:null})),unpin:a.wrap(i.unpin,e=>({...e,pinnedAt:null,pinOrderKey:null})),reorderPin:a.wrap(i.reorderPin,(e,t)=>({...e,pinOrderKey:t.orderKey})),reorderActive:a.wrap(i.reorderActive,(e,t)=>({...e,activeOrderKey:t.orderKey}))}}function Ad(e){let t=/^\/feedback(?:\s+([\s\S]*))?$/iu.exec(e.trim());if(!t)return null;let n=t[1]?.trim();return n?{reason:n}:{}}function jd(e){switch(e.status){case`interrupted`:return null;case`uploading`:return{title:`Sending feedback to OpenAI...`,description:void 0};case`sent`:return{title:`Feedback sent to OpenAI`,description:`Thread ID: ${e.feedbackId}`};case`failed`:return{title:`Could not send feedback to OpenAI`,description:e.errorMessage}}}function Md(e,t=`user`){let n=t===`user`?e.command:e.status===`sent`?`Feedback sent to OpenAI.\n\nThread ID: \`${e.feedbackId}\``:e.status===`failed`?`Could not send feedback to OpenAI.\n\n${e.errorMessage}`:`Sending feedback to OpenAI...`;return{id:t===`user`?e.id:Xe.make(`${e.id}:feedback`),role:t,text:n,turnId:null,streaming:!1,createdAt:e.createdAt,updatedAt:e.createdAt}}async function Nd(e){e.onUpdate({...e.submission,status:`uploading`}),e.clearDraft();let t=await e.upload();if(t._tag===`Success`)e.onUpdate({...e.submission,status:`sent`,feedbackId:t.value.feedbackId});else if(Oi(t))e.onUpdate({...e.submission,status:`interrupted`});else{let n=zi(t);e.onUpdate({...e.submission,status:`failed`,errorMessage:n instanceof Error?n.message:`An error occurred.`})}return t}var Pd=new Set([`preparing`,`starting`,`running`,`waiting`]),Fd=new Set([`waiting`,`completed`]),Id=new Set([`preparing`,`starting`,`running`]);function Ld(e){return e.runs.findLast(e=>Pd.has(e.status))??null}function Rd(e){let t=e.runs.reduce((e,t)=>Fd.has(t.status)&&(e===null||t.ordinal>e.ordinal)?t:e,null);return t===null||e.runs.some(e=>e.ordinal>t.ordinal&&Id.has(e.status))?null:t}function zd(e){let t=Ld(e)?.providerThreadId??e.thread.activeProviderThreadId,n=((t===null?null:e.providerThreads.find(e=>e.id===t)??null)??e.providerThreads.find(t=>t.appThreadId===e.thread.id&&t.providerSessionId!==null)??null)?.providerSessionId??null;return n===null?e.providerSessions.findLast(e=>e.status!==`stopped`&&e.status!==`error`)??null:e.providerSessions.find(e=>e.id===n)??null}function Bd(e){if(e==null)return!1;let t=zd(e);return t===null?Ld(e)===null?e.thread.historyOrigin===`v1_import`||e.runs.length===0||e.providerThreads.some(t=>t.id===e.thread.activeProviderThreadId&&t.appThreadId===e.thread.id&&t.providerInstanceId===e.thread.modelSelection.instanceId&&t.nativeThreadRef!==null):!1:t.capabilities.sessions.supportsProviderSwitchingViaHandoff}function Vd(e){let t=new Set(e.messages.filter(e=>e.delegatedCompletion!==void 0||e.notification!==void 0).map(e=>e.id));return e.runs.filter(e=>e.status===`queued`&&!t.has(e.userMessageId))}function Hd(e){let t=Ld(e),n=zd(e)?.capabilities.turns,r=t?.status===`running`&&t.activeAttemptId!==null&&e.providerTurns.some(e=>e.runAttemptId===t.activeAttemptId&&e.status===`running`);return{activeRun:t,queuedRuns:Ya(Vd(e),(e,t)=>(e.queuePosition??e.ordinal)-(t.queuePosition??t.ordinal)||e.ordinal-t.ordinal).map(t=>{let n=e.messages.find(e=>e.id===t.userMessageId);return{run:t,text:n?.text??`Queued message`,attachments:n?.attachments??[],messageId:t.userMessageId,...n?.context?{context:n.context}:{}}}),isHeld:e.runs.some(e=>e.status===`queued`&&e.queueHeld===!0),canReorder:n?.supportsQueuedMessages===!0,canPromoteToSteer:r&&(n?.supportsActiveSteering===!0||n?.supportsSteeringByInterruptRestart===!0),canSteerAll:r&&n?.supportsActiveSteering===!0}}function Ud(e){let t=e.projectedItem.item;if(t.type!==`assistant_message`||t.runId===null||t.status!==`completed`)return!1;if(e.capabilities===void 0)return!0;let n=e.capabilities;return n.threads.canForkThread&&n.threads.canForkFromTurn&&n.identity.nativeThreadIds===`strong`||n.context.supportsFullThreadHandoff}function Wd(e){let t=zd(e);return t!==null&&t.status!==`stopped`&&t.status!==`error`}function Gd(e){if(e==null)return{available:!1,reason:`This thread is still loading.`};let t=e.runs.reduce((e,t)=>t.status===`completed`&&t.checkpointId!==null&&(e===null||t.ordinal>e.ordinal)?t:e,null);if(t===null)return{available:!1,reason:`Nothing to share yet. A run has to finish first.`};let n=zd(e)?.capabilities;return n!==void 0&&!(n.threads.canForkThread&&n.threads.canForkFromTurn&&n.identity.nativeThreadIds===`strong`)&&!n.context.supportsFullThreadHandoff?{available:!1,reason:`This provider cannot share history with a side chat yet.`}:{available:!0,upToRunOrdinal:t.ordinal}}function Kd(e){if(e.forkedFrom?.type!==`run`)return`Sees no history`;let t=e.forkedFrom.runId,n=e.parentRuns?.find(e=>e.id===t);return n===void 0?`Sees history`:`Sees up to run ${n.ordinal}`}function qd(e){let t=new Set(e.flatMap(e=>e.deletedAt?[]:[`${e.environmentId}:${e.id}`]));return e=>{let n=e.lineage?.parentThreadId;return!e.sideChat||!n||!t.has(`${e.environmentId}:${n}`)}}function Jd(e){return Wt(e.startedAt??e.updatedAt)}function Yd(e){if(e.subagents.length===0)return null;let t=Ld(e),n=e.subagents.reduce((e,t)=>Wt(t.updatedAt)>Wt(e.updatedAt)?t:e),r=t?.id??n.runId,i=Ya(e.subagents.filter(e=>e.runId===r),(e,t)=>Jd(e)-Jd(t)||e.id.localeCompare(t.id));if(i.length===0)return null;let a=0,o=0;for(let e of i)Gs(e.status)?a+=1:Ws(e.status)&&(o+=1);return{runId:r,turnActive:t!==null,subagents:i,liveCount:a,settledCount:o}}async function Xd(e,t){for(let n of e)if(n.responseCapability===`live`&&(await t(n.requestId,`decline`))?._tag!==`Success`)return!1;return!0}var Zd=`Why am I being asked this?`;function Qd(e){return e===`ask_rule`?`Full access skips approvals, but an ask rule in the agent's own settings matches this action, so it still asks. Remove or narrow that rule to stop these prompts.`:`Full access skips approvals, but the agent still stops for a few safety checks of its own that no setting can skip, such as a delete whose path it can't verify. P4 Code can't turn these off, so check the request and approve it if it's what you expect.`}function $d(e,t){let n=t;for(let r of e)r.initialAnswer!==void 0&&r.allowCustomAnswer!==!1&&n[r.id]===void 0&&(n===t&&(n={...t}),n[r.id]={customAnswer:r.initialAnswer});return n}function ef(e){let t=[],n=[];for(let r of e.runtimeRequests){if(r.status!==`pending`)continue;let i=r.responseCapability.type;if(r.kind===`user_input`){let t=e.turnItems.findLast(e=>e.type===`user_input_request`&&e.requestId===r.id);if(t===void 0||t.type!==`user_input_request`)continue;n.push({requestId:r.id,createdAt:on(r.createdAt),questions:t.questions.map(e=>({...e,multiSelect:e.multiSelect??!1})),responseCapability:i,dismissible:t.responseMode===`message`||i===`message`,...t.responseMode===`message`||i===`message`?{responseMode:`message`}:{}});continue}if(r.kind===`auth_refresh`||r.kind===`dynamic_tool_call`)continue;let a=e.turnItems.findLast(e=>e.type===`approval_request`&&e.requestId===r.id);t.push({requestId:r.id,requestKind:r.kind,createdAt:on(r.createdAt),...a?.type===`approval_request`&&a.prompt?{detail:a.prompt}:{},...a?.type===`approval_request`&&a.reason?{reason:a.reason}:{},...a?.type===`approval_request`&&a.fullAccessOverride?{fullAccessOverride:a.fullAccessOverride}:{},...a?.type===`approval_request`&&a.appName?{appName:a.appName}:{},...a?.type===`approval_request`&&a.options!==void 0?{options:a.options}:{},responseCapability:i===`live`?`live`:`not_resumable`})}return{approvals:t,userInputs:n}}function tf(){let e,t,n,r=new WeakMap;return i=>{let{visibleTurnItems:a,runtimeRequests:o}=i;if(a===e&&o===t&&n)return n;let s=new Map(o.map(e=>[e.id,e])),c;for(let[e,t]of a.entries()){let n=t.item,i=n.type===`user_input_request`&&!n.questionAnswer?s.get(n.requestId):void 0,o=t;if(n.type===`user_input_request`&&i?.status===`resolved`&&i.answers!==void 0){let e=r.get(t);o=e?.request===i?e.row:{...t,item:{...n,questionAnswer:{requestId:i.id,answers:i.answers,attachmentsByQuestionId:{},questionTextById:Object.fromEntries(n.questions.map(e=>[e.id,e.question]))}}},r.set(t,{request:i,row:o})}o!==t&&(c??=a.slice(0,e)),c?.push(o)}return e=a,t=o,n=c??a,n}}var nf=Object.freeze([]);function rf(e){let t=I(t=>{let n=wc(t);return D(t=>cn(We(t(e(n.environmentId,n.threadId))),()=>yd)).pipe(N(0),F(`environment-thread-state-value:${t}`))}),n=I(e=>{let n=wc(e),r=null,i=null;return D(a=>{let o=R(a(t(e)).data);return o===r?i:(r=o,i=o===null?null:{environmentId:n.environmentId,projection:o},i)}).pipe(N(0),F(`environment-thread:${e}`))}),r=I(e=>{let n=tf();return D(r=>{let i=R(r(t(e)).data);return i===null?nf:n(i)}).pipe(N(0),F(`environment-thread-visible-turn-items:${e}`))}),i=I(e=>{let n=null,r=null;return D(i=>{let a=R(i(t(e)).data);if(a===null)n=null,r=null;else if(n===null||a.thread!==n.thread||a.runs!==n.runs||a.messages!==n.messages||a.providerThreads!==n.providerThreads||a.providerSessions!==n.providerSessions||a.providerTurns!==n.providerTurns){r=Hd(a);let{thread:e,runs:t,messages:i,providerThreads:o,providerSessions:s,providerTurns:c}=a;n={thread:e,runs:t,messages:i,providerThreads:o,providerSessions:s,providerTurns:c}}return r}).pipe(N(0),F(`environment-thread-queue:${e}`))}),a=I(e=>{let n=null,r=0;return D(i=>{let a=R(i(t(e)).data);if(a===null)n=null,r=0;else if(a.runs!==n?.runs||a.messages!==n?.messages){let{runs:e,messages:t}=a;n={runs:e,messages:t},r=Vd(n).length}return r}).pipe(N(0),F(`environment-thread-queue-count:${e}`))}),o=I(e=>{let n=null,r=null;return D(i=>{let a=R(i(t(e)).data);if(a===null)n=null,r=null;else if(a.runs!==n?.runs||a.subagents!==n?.subagents){let{runs:e,subagents:t}=a;n={runs:e,subagents:t},r=Yd(n)}return r}).pipe(N(0),F(`environment-thread-turn-subagents:${e}`))}),s=I(e=>D(n=>R(n(t(e)).data)?.thread.worktreePath??null).pipe(N(0),F(`environment-thread-worktree:${e}`))),c=I(e=>{let n=null,r=null;return D(i=>{let a=R(i(t(e)).data);if(a===null)return n=null,r=null,r;let o=a.runtimeRequests.filter(e=>e.status===`pending`),s=new Set(o.map(e=>e.id)),c=s.size===0?[]:a.turnItems.filter(e=>(e.type===`approval_request`||e.type===`user_input_request`)&&s.has(e.requestId));return(n===null||!Dc(n.runtimeRequests,o)||!Dc(n.turnItems,c))&&(n={runtimeRequests:o,turnItems:c},r=ef(n)),r}).pipe(N(0),F(`environment-thread-pending-requests:${e}`))}),l=I(e=>D(n=>n(t(e)).status).pipe(N(0),F(`environment-thread-status:${e}`))),u=I(e=>D(n=>R(n(t(e)).error)).pipe(N(0),F(`environment-thread-error:${e}`))),d=I(e=>D(n=>n(t(e)).history).pipe(N(0),F(`environment-thread-history:${e}`)));return{worktreePathAtom:e=>s(Z(e)),pendingRequestsAtom:e=>c(Z(e)),queueWorkflowAtom:e=>i(Z(e)),queuedCountAtom:e=>a(Z(e)),turnSubagentsAtom:e=>o(Z(e)),stateAtom:e=>t(Z(e)),threadAtom:e=>n(Z(e)),visibleTurnItemsAtom:e=>r(Z(e)),statusAtom:e=>l(Z(e)),errorAtom:e=>u(Z(e)),historyAtom:e=>d(Z(e))}}var af=Object.freeze([]),of=Object.freeze([]),sf=new Map,cf=new Map,lf=new Map,uf=e=>e.activityRunStatus===void 0?e.status===`preparing`||e.status===`starting`||e.status===`running`||e.status===`waiting`:e.activityRunStatus!==null;function df(e){let t=e.pendingRuntimeRequest?.kind;return t===void 0||t===`auth_refresh`||e.lineage.relationshipToParent!==`subagent`||pt(e)||!uf(e)?null:t===`user_input`?`user_input`:`approval`}function ff(e){let t=new Map,n;for(let r of e){let i=df(r);if(i===null)continue;n??=new Map(e.map(e=>[e.id,e]));let a=new Set([r.id]),o=r;for(;o?.lineage.relationshipToParent===`subagent`;){let e=o.lineage.parentThreadId;if(e===null||a.has(e))break;a.add(e),t.get(e)!==`approval`&&t.set(e,i),o=n.get(e)}}return t.size===0?cf:t}function pf(e){let t=e.filter(e=>e.hasPendingApprovals).length,n=t===0?`input`:t===e.length?`approval`:`you`;return e.length===1?`Subagent needs ${n}`:`${e.length} subagents need ${n}`}var mf=u(v);function hf(e,t){if(e.environmentId!==t.environmentId||e.pendingSubagentRequest!==t.pendingSubagentRequest||!rc(t.runtime))return!1;let n=e.source,r=t.source;return n.itemCount>0==r.itemCount>0&&n.visibleItemCount>0==r.visibleItemCount>0&&mf({...n,updatedAt:r.updatedAt,itemCount:r.itemCount,visibleItemCount:r.visibleItemCount,latestVisibleMessage:r.latestVisibleMessage},r)}function gf(e){let t=new WeakMap,n=(e,n,r)=>{let i=t.get(n);i===void 0&&(i=new Map,t.set(n,i));let a=r.get(n.id)??null,o=a===null?e:`${e}:${a}`,s=i.get(o);return s===void 0&&(s=dc(e,n,a),i.set(o,s)),s},r=I(t=>D(n=>n(e.snapshotAtom(t))?.threads??af).pipe(F(`environment-threads:${t}`))),i=I(e=>D(t=>{let n=t(r(e));return n.length===0?sf:new Map(n.map(e=>[e.id,e]))}).pipe(F(`environment-thread-index:${e}`))),a=I(e=>{let t=cf;return D(n=>{let i=ff(n(r(e)));return i.size===t.size&&[...i].every(([e,n])=>t.get(e)===n)?t:(t=i,i)}).pipe(F(`environment-pending-subagent-requests:${e}`))}),o=I(e=>{let t=[];return D(n=>{let i=n(r(e)).map(t=>({environmentId:e,threadId:t.id}));return Ec(t,i)?t:(t=i,i)}).pipe(F(`environment-thread-refs:${e}`))}),s=I(e=>{let t=lf;return D(n=>{let i=new Map;for(let t of n(r(e))){let n=i.get(t.projectId),r={environmentId:e,threadId:t.id};n===void 0?i.set(t.projectId,[r]):n.push(r)}if(i.size===0)return t=lf,t;let a=new Map;for(let[e,n]of i){let r=t.get(e);a.set(e,r!==void 0&&Ec(r,n)?r:n)}let o=[...t.keys()];return a.size===t.size&&[...a].every(([e,n],r)=>o[r]===e&&t.get(e)===n)||(t=a),t}).pipe(F(`environment-thread-refs-by-project:${e}`))}),c=I(e=>{let t=wc(e);return D(e=>{let r=e(i(t.environmentId)).get(t.threadId)??null;return r===null?null:n(t.environmentId,r,e(a(t.environmentId)))}).pipe(F(`environment-thread-shell:${e}`))}),l=I(e=>{let t=null;return D(n=>{let r=n(c(e));return t!==null&&r!==null&&hf(t,r)?t:(t=r,r)}).pipe(F(`environment-quiet-thread-shell:${e}`))}),u=I(e=>{let t=wc(e),i=[];return D(e=>{let o=new Map;for(let n of e(r(t.environmentId))){let e=n.lineage.parentThreadId;if(e===null||n.lineage.relationshipToParent!==`subagent`)continue;let t=o.get(e);t?t.push(n):o.set(e,[n])}let s=e(a(t.environmentId)),c=new Set([t.threadId]),l=[t.threadId],u=[];for(let e of l)for(let r of o.get(e)??[])c.has(r.id)||(c.add(r.id),l.push(r.id),df(r)!==null&&u.push(n(t.environmentId,r,s)));return i.length===u.length&&i.every((e,t)=>e.id===u[t]?.id&&e.title===u[t]?.title&&e.hasPendingApprovals===u[t]?.hasPendingApprovals)?i:(i=u,u)}).pipe(F(`environment-child-thread-inputs:${e}`))}),d=I(e=>{let t=Cc(e),r=[];return D(e=>{let o=[],c=new Set;for(let r of t){let t=e(s(r.environmentId)).get(r.projectId)??of;if(t.length===0)continue;let l=e(i(r.environmentId)),u=e(a(r.environmentId));for(let e of t){let t=Z(e);if(c.has(t))continue;c.add(t);let r=l.get(e.threadId);r!==void 0&&o.push(n(e.environmentId,r,u))}}return Dc(r,o)||(r=o),r}).pipe(F(`environment-thread-shells-for-projects:${e}`))}),f=[],p=D(t=>{let n=[];for(let r of pc(t(e.catalogValueAtom)))n.push(...t(o(r)));return Ec(f,n)?f:(f=n,n)}).pipe(F(`environment-thread-refs`)),m=[],h=D(t=>{let i=[];for(let o of pc(t(e.catalogValueAtom))){let e=t(a(o));for(let a of t(r(o)))i.push(n(o,a,e))}return Dc(m,i)||(m=i),m}).pipe(F(`environment-thread-shell-list`)),g=[],_=D(e=>{let t=[];for(let n of e(p)){let r=e(l(Z(n)));r!==null&&t.push(r)}return Dc(g,t)?g:(g=t,t)}).pipe(F(`environment-quiet-thread-shell-list`)),v=[];return{environmentThreadsAtom:r,environmentThreadIndexAtom:i,environmentThreadRefsAtom:o,environmentThreadRefsByProjectAtom:s,threadRefsAtom:p,threadShellsAtom:h,quietThreadShellsAtom:_,navigationThreadShellsAtom:D(t=>{let i=[];for(let o of pc(t(e.catalogValueAtom))){let e=t(a(o)),s=t(r(o)).map(t=>n(o,t,e)),c=qd(s);for(let e of s)e.archivedAt===null&&e.lineage.relationshipToParent!==`subagent`&&c(e)&&i.push(e)}return Dc(v,i)?v:(v=i,i)}).pipe(F(`environment-navigation-thread-shells`)),threadShellsForProjectRefsAtom:e=>d(xc(e)),threadShellAtom:e=>c(Z(e)),quietThreadShellAtom:e=>l(Z(e)),childThreadInputsAtom:e=>u(Z(e))}}function _f(e){return E(e)?`cached`:`empty`}function vf(e){let t=et(e);return t instanceof Error&&t.message.trim().length>0?t.message:`Could not synchronize the thread.`}function yf(e){return e instanceof Error&&e.message.trim().length>0?e.message:`Could not load earlier activity.`}function bf(e){return{historyCursor:e.historyCursor??null,hasMoreHistory:e.hasMoreHistory??!1,loading:!1,error:null,expanded:!1,latestLocalTurnOrdinal:e.latestLocalTurnOrdinal??null}}function xf(e,t,n,r){return r||n.hasMoreHistory||n.historyCursor!==null?{snapshotSequence:e,projection:t,historyCursor:n.historyCursor,hasMoreHistory:n.hasMoreHistory,latestLocalTurnOrdinal:n.latestLocalTurnOrdinal}:{snapshotSequence:e,projection:t}}function Sf(e,t){return!t.expanded&&!e.runs.some(e=>e.status===`preparing`||e.status===`starting`||e.status===`running`)}function Cf(e,t,n,r){if(e.sequence!==n||R(e.state.data)!==t)return!1;let i=e.state.history;return i.historyCursor===r.historyCursor&&i.hasMoreHistory===r.hasMoreHistory&&(!(r.hasMoreHistory||r.historyCursor!==null)||i.latestLocalTurnOrdinal===r.latestLocalTurnOrdinal)}function wf(e){return{...e,status:e.status===`deleted`||e.status===`live`&&E(e.data)?e.status:_f(e.data),error:O(),history:{...e.history,loading:!1,error:null}}}var Tf=n(`EnvironmentThreadState.make`)(function*(e,t){let i=yield*Ca,a=yield*Ta,o=yield*vd,s=yield*Gt(id),c=yield*Gt(In),l=yield*Gt(sa),u=yield*Gt(ma),f=yield*Gt(_a),m=i.target.environmentId,h=t?.snapshot,g={};t&&(t.owner=g);let _=h===void 0?yield*a.loadThread(m,e).pipe(x(t=>H(`Could not load cached thread.`).pipe(B({environmentId:m,threadId:e,error:t.message}),mt(O())))):O(),v=ar(_,e=>e.projection),ee=h?wf(h.state):{data:v,status:_f(v),error:O(),history:vr(_,{onNone:()=>cd,onSome:bf})},y=yield*Jr(ee),ne=E(c)&&E(s),ie=yield*Bi(ne),ae=h?.sequence??vr(_,{onNone:()=>0,onSome:e=>e.snapshotSequence}),oe=yield*Jr(ae),b={state:ee,sequence:ae,persisted:h?.persisted??E(_),acceptsBoundedSnapshots:ne};t?.owner===g&&(t.snapshot=b);let se=yield*Bi(!1),ce=yield*$e(1),le=M(function*(){let e=yield*C(y),n=yield*C(oe);b={state:e,sequence:n,acceptsBoundedSnapshots:yield*q(ie),persisted:b.persisted&&Cf(b,R(e.data),n,e.history)},t?.owner===g&&(t.snapshot=b)}),ue=yield*Ar(1),de=n(`EnvironmentThreadState.persist`)(function*(n){(t===void 0||t.owner===g)&&b.state.status!==`deleted`&&(b.persisted&&Cf(b,n.projection,n.snapshotSequence,bf(n))||(yield*a.saveThread(m,n).pipe(tn(()=>z(()=>{Cf(b,n.projection,n.snapshotSequence,bf(n))&&(b={...b,persisted:!0},t?.owner===g&&(t.snapshot=b))})),x(t=>H(`Could not persist the thread cache.`).pipe(B({environmentId:m,threadId:e,error:t.message}))))))});yield*Xt(()=>qn(()=>{let{state:e,sequence:t}=b;return vr(e.data,{onNone:()=>p,onSome:n=>Sf(n,e.history)?de(xf(t,n,e.history,b.acceptsBoundedSnapshots===!0)):p})})),yield*Dl(ue,de).pipe(P);let fe=ht(y,e=>e.status===`deleted`||E(e.error)?e:{...e,status:`synchronizing`,error:O()}),pe=ht(y,e=>e.status===`live`||e.status===`deleted`||E(e.error)?e:{...e,status:`synchronizing`,error:O()}),me=M(function*(){yield*W(se,!1),yield*ht(y,e=>({...e,status:e.status===`deleted`?e.status:_f(e.data)}))}),he=e=>W(se,!1).pipe(lt(ht(y,t=>({...t,status:t.status===`deleted`?t.status:_f(t.data),error:j(e)})))),S=n(`EnvironmentThreadState.setThread`)(function*(e,t){let n=yield*q(se),r=yield*wt(y,r=>{let i=t?.history===void 0?t?.resetHistory===!0?cd:r.history:t.history;return{...r,data:j(e),status:E(r.error)?`cached`:n?`synchronizing`:`live`,error:r.error,history:i}});if(Sf(e,r.history)){let t=yield*C(oe);yield*jn(ue,xf(t,e,r.history,yield*q(ie)))}}),ge=e=>ht(y,t=>({...t,history:e(t.history)})),_e=n(`EnvironmentThreadState.setDeleted`)(function*(){yield*W(se,!1),yield*xe(y,{data:O(),status:`deleted`,error:O(),history:cd}),yield*le,(t===void 0||t.owner===g)&&(yield*a.removeThread(m,e).pipe(x(t=>H(`Could not remove the cached thread.`).pipe(B({environmentId:m,threadId:e,error:t.message})))))}),ye=n(`EnvironmentThreadState.applyEventsLocked`)(function*(t){let n=yield*C(oe),r=n,i=[];for(let n of t)if(!(n.sequence<=r)){if(r=n.sequence,n.kind===`event`){i.push(n);continue}yield*vn(`Skipped a thread event type this client does not know.`).pipe(B({environmentId:m,threadId:e,eventType:n.eventType.slice(0,64),sequence:n.sequence}))}if(r===n||(yield*xe(oe,r),i.length===0))return;let a=yield*q(se),o=(e,t)=>{if(e.status===`deleted`)return[{_tag:`noop`},e];if(k(e.data))return[t.event.type===`thread.deleted`?{_tag:`delete`}:{_tag:`noop`},e];if(t.event.type===`thread.deleted`)return[{_tag:`delete`},e];let n=e.history.hasMoreHistory||e.history.historyCursor!==null?{partialTimeline:!0,latestLocalTurnOrdinal:e.history.latestLocalTurnOrdinal}:void 0,r=nd(e.data.value,t.event,n);if(r===null||r===e.data.value)return[{_tag:`noop`},e];let i=e.history;if(n!==void 0&&t.event.type===`turn-item.updated`){let e=t.event.payload.ordinal,n=i.latestLocalTurnOrdinal;(n===null||e>n)&&(i={...i,latestLocalTurnOrdinal:e})}let o={...e,data:j(r),status:a?`synchronizing`:`live`,error:O(),history:i};return[{_tag:`applied`,projection:r,history:o.history},o]},s=yield*d(y,e=>{let t={_tag:`noop`};for(let n of i){let[r,i]=o(e,n);if(e=i,r._tag!==`noop`&&(t=r),r._tag===`delete`)break}return[t,e]});if(s._tag===`delete`){yield*_e();return}if(s._tag===`applied`&&Sf(s.projection,s.history)){let e=yield*C(oe);yield*jn(ue,xf(e,s.projection,s.history,yield*q(ie)))}}),be=n(`EnvironmentThreadState.applyItemLocked`)(function*(e){if(e.kind===`synchronized`){yield*W(se,!1),yield*ht(y,e=>E(e.data)&&e.status!==`deleted`&&k(e.error)?{...e,status:`live`,error:O()}:e);return}if(e.kind===`snapshot`){yield*xe(oe,e.snapshotSequence);let t=e.historyCursor!==void 0||e.hasMoreHistory!==void 0||e.latestLocalTurnOrdinal!==void 0;yield*S(Hu(e),t?{history:{historyCursor:e.historyCursor??null,hasMoreHistory:e.hasMoreHistory??!1,loading:!1,error:null,expanded:!1,latestLocalTurnOrdinal:e.latestLocalTurnOrdinal??null}}:{resetHistory:!0});return}yield*ye([e])}),Se=n(`EnvironmentThreadState.applyItems`)(function*(e){yield*ce.withPermits(1)(M(function*(){let t=[];for(let n of e){if(n.kind===`unknown-event`||n.kind===`event`&&n.event.type!==`thread.deleted`){t.push(n);continue}yield*ye(t),t=[],yield*be(n)}yield*ye(t),yield*le}))}),Ce=n(`EnvironmentThreadState.loadEarlier`)(function*(t){let n=yield*C(y);if(n.status===`deleted`||k(n.data)||!n.history.hasMoreHistory||n.history.historyCursor===null)return{_tag:`noop`};if(n.history.loading)return{_tag:`busy`};let a=n.history.historyCursor;yield*ge(e=>ld(a,e)?{...e,loading:!0,error:null}:e);let o=e=>d(y,t=>ld(a,t.history)?[{_tag:`error`,message:e},{...t,history:{...t.history,loading:!1,error:e}}]:[{_tag:`noop`},t]);return yield*M(function*(){let n=yield*C(i.prepared);if(k(n)||k(c))return yield*o(`Environment is not connected.`);let r=t===void 0?[void 0]:[`conversation`,void 0];for(let i of r){let r=yield*sd({prepared:n.value,threadId:e,cursor:a,throughEntryId:t,view:i,signer:l,remoteAuthorization:u}).pipe(Ne(In,c.value),ve);if(Ct(r))return yield*o(yf(r.failure));let s=r.success,f=i===void 0,p=yield*q(se),m=yield*ce.withPermits(1)(d(y,e=>ld(a,e.history)?k(e.data)||e.status===`deleted`?[{_tag:`noop`},{...e,history:cd}]:[{_tag:`loaded`},{...e,data:j(pd(e.data.value,s.items)),status:f&&p?`synchronizing`:e.status,history:f?md(e.history,s):{...e.history,expanded:!0}}]:[{_tag:`noop`},e]));if(m._tag!==`loaded`)return m;f&&(yield*le)}return{_tag:`loaded`}}).pipe(r(()=>ht(y,e=>({...e,history:ud(a,e.history)}))))});if(E(s)){let t=yield*sr,n=yield*s.value.register(m,e,{loadEarlier:e=>Ce(e).pipe(Kt(t),T(te))});yield*Xt(()=>s.value.unregister(n))}yield*Fe(i.state).pipe(Ie(e=>{switch($r(e)){case`synchronizing`:return fe;case`disconnected`:return me;case`ready`:return pe}}),P);let we=vr(f,{onNone:()=>He,onSome:e=>e.changes.pipe(st(oa))}),Te=yield*Bi(ee.status===`live`),Ee=M(function*(){(yield*q(Te))||(yield*ht(y,e=>e.status===`deleted`?e:{...e,status:`synchronizing`,error:O()}))});return yield*Ee,yield*P(ya(bn.subscribeThread,n(`EnvironmentThreadState.makeSubscribeInput`)(function*(t){let n=yield*C(y);if(n.status===`deleted`)return yield*re;let r=yield*t.initialConfig.pipe(V(e=>e.threadResumeCompletionMarker===!0),Be(()=>!1));if(yield*W(se,r),yield*Ee,yield*W(Te,!1),k(n.data)){let t=yield*C(i.prepared).pipe(T(vr({onSome:L,onNone:()=>Fe(i.prepared).pipe(st(E),Ge(e=>e.value),Yr,V(tr))}))),r=yield*o.load(t,e);switch(r._tag){case`present`:ne&&r.history!==void 0&&(yield*W(ie,!0)),yield*ce.withPermits(1)(M(function*(){yield*xe(oe,r.snapshot.snapshotSequence);let e=r.history===void 0?cd:{historyCursor:r.history.historyCursor,hasMoreHistory:r.history.hasMoreHistory,loading:!1,error:null,expanded:!1,latestLocalTurnOrdinal:r.history.latestLocalTurnOrdinal??null};yield*S(r.snapshot.projection,{history:e}),yield*le})),n=yield*C(y);break;case`missing`:return yield*_e(),yield*re}}let a=yield*C(oe),s=E(n.data),c=yield*q(ie);return!r&&s&&(yield*ht(y,e=>({...e,status:e.status===`deleted`?e.status:`live`,error:O()}))),{threadId:e,...s?{afterSequence:a}:{},...r?{requestCompletionMarker:!0}:{},...c?{acceptBoundedSnapshot:!0,acceptCompactTurnItems:!0}:{}}}),{onDefect:()=>he(`Could not synchronize the thread.`),onExpectedFailure:e=>he(vf(e)),retryExpectedFailureAfter:`250 millis`,resubscribe:we}).pipe(it(Se))),y});function Ef(e,t,n){return ba(e,Mt(Tf(t,n).pipe(V(Fe))))}function Df(e){let t=I(e=>D(()=>({snapshot:void 0,owner:void 0})).pipe(N(rd),F(`environment-thread-resume:${e}`))),n=I(n=>{let{environmentId:r,threadId:i}=wc(n),a=t(n);return e.atom(e=>{e.mount(a);let t=e.once(a),n=Ef(r,i,t);return t.snapshot===void 0?n:dr(Se(wf(t.snapshot.state)),n)},{initialValue:yd}).pipe(N(0),F(`environment-thread-state:${n}`))});return{stateAtom:(e,t)=>n(Z({environmentId:e,threadId:t}))}}var Of=class extends Pr(`@p4code/client-runtime/EnvironmentQueryStore`,{defaultValue:()=>null}){};function kf(e){let t=dt(nt(e));return{load:(e,n)=>M(function*(){let r=yield*Of;if(r===null)return O();let i=yield*r.load(e,n);return k(i)?O():yield*Jt(t)(i.value).pipe(V(j),x(()=>Zt))}),save:(e,n,r)=>M(function*(){let i=yield*Of;if(i===null)return;let a=yield*h(t)(r);yield*i.save(e,n,a)}).pipe(x(()=>H(`Offline query cache save failed`)))}}var Af=dt(Yn([A,Or])),jf=e=>JSON.stringify([`pull-request-stat`,e.projectId,e.host??``,e.repository,e.number]);function Mf(){let e=kf(dn);return{load:(t,n)=>M(function*(){let[,r]=yield*Cn(Af)(n),i=(yield*br(r.refs,n=>e.load(t,jf(n)))).flatMap(e=>E(e)?[e.value]:[]);return i.length?j({stats:i}):O()}).pipe(Be(()=>O())),save:(t,n,r)=>M(function*(){let[,i]=yield*Cn(Af)(n);yield*br(r.stats,n=>{let r=i.refs.find(e=>e.projectId===n.projectId&&e.repository===n.repository&&e.number===n.number);return r?e.save(t,jf(r),n):p})}).pipe(Dr)}}var Nf=new Set([w.pullRequestsSummary,w.pullRequestsStack,w.pullRequestsDetail,w.pullRequestsPreview,w.pullRequestsChecks,w.pullRequestsActivity,w.pullRequestsThreadComments,w.pullRequestsDiffFileContents,w.pullRequestsFilesViewed,w.pullRequestsChangeBreakdown,w.pullRequestsReviewerCandidates,w.pullRequestsLabelCandidates]),Pf=new Set([w.pullRequestsSetFilesViewed,w.pullRequestsRunAction,w.pullRequestsUpdate,w.pullRequestsComment,w.pullRequestsUpdateComment,w.pullRequestsSubmitReview,w.pullRequestsReplyToThread,w.pullRequestsSetReaction,w.pullRequestsSetThreadResolution,w.pullRequestsRequestReviewers,w.pullRequestsSetLabels]),Ff=le(ur),If=le(or({state:Qn,isDraft:Ve(gt)})),Lf=le(nr),Rf=e=>_n({duration:`30 seconds`,orElse:()=>S(new wa({environmentId:e,message:`The environment did not respond to the PR request.`}))}),zf=new WeakMap,Bf=le(Na),Vf=Fr(dt(Ce(un(A)))),Hf=new WeakMap,Uf=new WeakMap;function Wf(e,t,n){return qt(r=>M(function*(){let i=yield*Ca,a=yield*C(i.session);if(k(a))return yield*r(n);let o=e.get(a.value)??new Map;e.set(a.value,o);let s=o.get(t);if(s!==void 0){let i=yield*r(Tn(s));return yield*r(oe(i)?Wf(e,t,n):i)}let c=ct();return o.set(t,c),yield*r(n).pipe(Vn(e=>z(()=>o.delete(t)).pipe(lt(y(c,e)))))}))}function Gf(e){let t=e.target._tag===`PrimaryConnectionTarget`?e.target.httpBaseUrl:E(e.profile)&&e.profile.value._tag===`BearerConnectionProfile`?e.profile.value.httpBaseUrl:void 0;if(t===void 0)return!1;try{return[`localhost`,`127.0.0.1`,`[::1]`].includes(new URL(t).hostname)}catch{return!1}}function Kf(e){return typeof e==`object`&&!!e&&`_tag`in e&&(e._tag===`EnvironmentRpcUnavailableError`||e._tag===`EnvironmentNotRegisteredError`||e._tag===`PullRequestOperationError`&&`operation`in e&&e.operation===`routeIdentity`)}var qf=n(`PullRequestRouting.allowed`)(function*(e,t,n,r){let i=yield*C(e.entries),a=i.get(t),o=i.get(n);if(!a?.enabled||!o?.enabled)return!1;let s=yield*ni,c=yield*s.get(a),l=yield*s.get(o);if(!(r?c===`read-write`&&l===`read-write`:c!==`off`&&l!==`off`))return!1;for(let e of[a,o]){if(e.target._tag!==`SshConnectionTarget`)continue;let t=yield*Gt(Ui);if(k(t))return!1;let n=yield*t.value.get(e.target.connectionId).pipe(Be(()=>O())),r=mi(e);if(r===null||r!==mi({...e,profile:n}))return!1}return!0});function Jf(e,t){return e.projectId===t.projectId&&e.repository.toLowerCase()===t.repository.toLowerCase()&&e.number===t.number&&(t.host===void 0||e.host?.toLowerCase()===t.host.toLowerCase())}var Yf=n(`PullRequestRouting.invalidateTarget`)(function*(e,t,n,r){(n===t||(yield*qf(e,t,n,!1)))&&(yield*br(r,t=>e.run(n,Ei(w.pullRequestsInvalidate,t)).pipe(Sn(`1 second`),Be(()=>void 0)),{concurrency:3,discard:!0}))}),Xf=({allowStale:e,expectedAccountId:t,...n},r)=>Ei(w.pullRequestsReportState,{reference:n,state:r.state,...r.isDraft===void 0?{}:{isDraft:r.isDraft}}).pipe(Sn(`5 seconds`),Dr,On,b);function Zf(){let e=n(`PullRequestRouting.request`)(function*(e,t,n){let r=n??Ei(e,t);if(e===w.pullRequestsInvalidate&&Lf(t)){let n=yield*Ei(e,t),r=yield*Ca,i=yield*J,a=zf.get(i),o=new Map;for(let e of a?.values()??[]){if(e.origin!==r.target.environmentId)continue;let n=t.reference;if(n===void 0||Jf(e.reference,n)){for(let t of e.targets)o.set(t,e.reference);t.reference!==void 0&&o.set(r.target.environmentId,e.reference)}}return yield*br(o,([e,n])=>Yf(i,r.target.environmentId,e,[{...t,...t.reference===void 0?{}:{reference:n}}]),{concurrency:4,discard:!0}),n}if(!Nf.has(e)&&!Pf.has(e)||!Ff(t))return yield*Ei(e,t);let i=t,a=yield*Ca,o=yield*J,c=yield*C(o.entries),l=c.get(a.target.environmentId),u=zf.get(o)??new Map;zf.set(o,u);let d=Vf([a.target.environmentId,i.projectId,i.host?.toLowerCase()??null,i.repository.toLowerCase(),String(i.number)]),h=t=>t.pipe(tn(()=>{if(!Pf.has(e)||u.size===0)return p;let t=new Map([[a.target.environmentId,[i]]]);for(let e of u.values())if(e.origin===a.target.environmentId&&Jf(e.reference,i))for(let n of[...e.targets,a.target.environmentId]){let r=t.get(n)??[];r.some(t=>t.host===e.reference.host)||r.push(e.reference),t.set(n,r)}return br(t,([t,n])=>Yf(o,a.target.environmentId,t,[...n.map(t=>({reference:t,...e===w.pullRequestsSetFilesViewed?{filesViewedOnly:!0}:{}})),...e===w.pullRequestsSetFilesViewed?[]:[{}]]),{concurrency:4,discard:!0})})),g=[];for(let[t,n]of c){if(t===a.target.environmentId||!(yield*qf(o,a.target.environmentId,t,Pf.has(e))))continue;let r=yield*o.run(t,Ca.pipe(T(e=>C(e.session)))).pipe(Be(()=>O()));k(r)||(e!==w.pullRequestsChecks||(yield*r.value.initialConfig.pipe(V(e=>e.environment.capabilities.pullRequestChecks===!0),Zn(`2 seconds`),s(e=>f(e)?pn:L(!1)))))&&g.push({id:t,local:Gf(n)})}if(g.length===0)return yield*h(r);let _=Ei(w.pullRequestsRouting,i).pipe(Zn(`2 seconds`),s(e=>f(e)?pn:L(null))),v=yield*Nf.has(e)?Wf(Hf,Vf([i.projectId,i.host?.toLowerCase()??null,i.repository.toLowerCase()]),_):_;if(v===null||v.provider!==`github`)return yield*h(r);let ee={...t,host:v.host,expectedAccountId:v.accountId},y=n??(yield*Ke(Ei(e,ee))),te=g.filter(e=>e.local),ne=g.filter(e=>!e.local),re=l!==void 0&&Gf(l),ie=[...re&&Pf.has(e)?[a.target.environmentId]:[],...te.map(e=>e.id),...!re&&Pf.has(e)?[a.target.environmentId]:[],...ne.map(e=>e.id),...Nf.has(e)?[a.target.environmentId]:[]],ae=t=>(t===a.target.environmentId?y:o.run(t,Ei(e,ee))).pipe(tn(e=>t!==a.target.environmentId&&If(e)?Xf(i,e):p),tn(()=>z(()=>{let e=u.get(d)??{origin:a.target.environmentId,reference:{...i,host:v.host},targets:new Set};if(e.targets.add(t),u.size>=256&&!u.has(d)){let e=u.keys().next().value;e!==void 0&&u.delete(e)}u.set(d,e)})),m(e=>Bf(e)?new wa({environmentId:t,message:`The environment was removed.`}):e)),oe=t=>{let n=ie[t];return n===void 0?y:M(function*(){if(n!==a.target.environmentId){if(!(yield*qf(o,a.target.environmentId,n,Pf.has(e))))return yield*oe(t+1);let r=Ei(w.pullRequestsRoutingIdentity,{host:v.host}).pipe(Zn(`2 seconds`),s(e=>f(e)?pn:L(null))),i=yield*o.run(n,Nf.has(e)?Wf(Uf,v.host.toLowerCase(),r):r).pipe(Zn(`2 seconds`),s(e=>f(e)?pn:L(null)));if(i===null||i.provider!==`github`||i.host.toLowerCase()!==v.host.toLowerCase()||i.accountId!==v.accountId||!(yield*qf(o,a.target.environmentId,n,Pf.has(e))))return yield*oe(t+1)}let r=ae(n);return yield*(Nf.has(e)?r.pipe(Rf(n)):r).pipe(Ue(n=>(Nf.has(e)||Kf(n))&&t+1<ie.length,()=>oe(t+1)),V(t=>typeof t==`object`&&t&&`projectId`in t?{...t,projectId:i.projectId,...e===w.pullRequestsDetail?{projectTitle:v.projectTitle,workspaceRoot:v.workspaceRoot}:{}}:t))})};return yield*h(oe(0))});return n(`PullRequestRouting.readOrWrite`)(function*(t,n){if(!Nf.has(t)||!Ff(n))return yield*e(t,n);let r=yield*J,i=yield*C(r.entries);if(i.size<2)return yield*Ei(t,n);let a=yield*Ca,o=!1;for(let e of i.keys())if(e!==a.target.environmentId&&(yield*qf(r,a.target.environmentId,e,!1))){o=!0;break}if(!o)return yield*Ei(t,n);let s={...n,allowStale:!1},c=yield*Ke(Ei(t,s).pipe(Rf(a.target.environmentId))),l=i.get(a.target.environmentId),u=e(t,s,c);return yield*(l!==void 0&&Gf(l)?c.pipe(x(()=>u)):u).pipe(x(e=>n.allowStale!==!1&&(t===w.pullRequestsSummary||t===w.pullRequestsDetail)?Ei(t,n):S(e)))})}var Qf=6e4,$f=class extends Qt()(`PullRequestDiffCredentialRejectedError`,{repository:A,number:xr,traceId:A,cause:rt}){get message(){return`This environment session is no longer valid (invalid_credential). Refresh the page or quit and reopen P4 Code.`}},ep=n(`clientRuntime.state.fetchEnvironmentPullRequestDiff`)(function*(e){return yield*ea({...e,group:`pullRequests`,method:`POST`,url:e=>e.diff(),timeoutMs:e.timeoutMs??Qf,request:({client:t,headers:n})=>t.diff({payload:e.diff,headers:n})}).pipe(m(t=>t._tag===`EnvironmentAuthInvalidError`&&t.reason===`invalid_credential`?new $f({repository:e.diff.repository,number:e.diff.number,traceId:t.traceId,cause:t}):t))}),tp=class extends ut()(`@p4code/client-runtime/state/pullRequestDiffHttp/PullRequestDiffLoader`){},np=At(tp,M(function*(){let e=yield*In,t=yield*Gt(sa),n=yield*Gt(ma);return tp.of({load:(r,i)=>ep({prepared:r,diff:i,signer:t,remoteAuthorization:n}).pipe(Ne(In,e))})})),rp=class extends Jn(`EnvironmentHttpConnectionNotReadyError`){},ip=5e3;function ap(e){let t=I(e=>wn(t=>{let n=t(e);if(n._tag===`Success`&&!n.waiting)return n;let r=t.self(),i=Dt(r,We);return k(i)?n:n._tag===`Failure`?Vr(n.cause,{previous:r,waiting:n.waiting}):ae(i.value,n)},(e,t)=>e.setSelf(t),t=>t(e)).pipe(N(3e5)));return({environmentId:n,input:{projectId:r,host:i,repository:a,number:o,allowStale:s}})=>t(e({environmentId:n,input:{projectId:r,...i===void 0?{}:{host:i},repository:a,number:o,...s===void 0?{}:{allowStale:s}}}))}function op(e,t,n,r=!1){(r||e.get(t).waiting)&&e.refresh(t),e.update(t,ue(n))}function sp(e){return Ci(e,{label:`environment-data:pull-requests:turn-refreshes`,tag:w.pullRequestsSubscribeRefreshes})}function cp(e,t=sp(e)){let n=Zf();return K(e,{label:`environment-data:pull-requests:linked-summary`,tag:w.pullRequestsSummary,execute:e=>n(w.pullRequestsSummary,e),staleTimeMs:6e4,refreshIntervalMs:6e4,idleTtlMs:ip,refreshTrigger:({environmentId:e})=>t({environmentId:e,input:{}}),isFinal:e=>e.state===`merged`})}function lp(e,t=sp(e)){let n=Zf();return K(e,{label:`environment-data:pull-requests:stack`,tag:w.pullRequestsStack,execute:e=>n(w.pullRequestsStack,e),staleTimeMs:6e4,idleTtlMs:ip,refreshTrigger:({environmentId:e})=>t({environmentId:e,input:{}})})}function up(e){return{number:e.number,title:e.title,url:e.url,baseRef:e.baseBranch,headRef:e.headBranch,state:e.state,...e.isDraft===!0?{isDraft:!0}:{},updatedAt:e.updatedAt}}function dp(e){let n=sp(e),r=da(),i=Zf(),a={mode:`serial`,key:({environmentId:e})=>e},o=ap(K(e,{label:`environment-data:pull-requests:activity`,persistence:kf(jt),tag:w.pullRequestsActivity,execute:e=>i(w.pullRequestsActivity,e),staleTimeMs:6e4,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})})),s=ap(K(e,{label:`environment-data:pull-requests:detail`,persistence:kf(Qe),tag:w.pullRequestsDetail,execute:e=>i(w.pullRequestsDetail,e),staleTimeMs:6e4,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})})),c=ap(K(e,{label:`environment-data:pull-requests:preview`,persistence:kf(gn),tag:w.pullRequestsPreview,execute:e=>i(w.pullRequestsPreview,e),staleTimeMs:6e4,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})})),l=ap(K(e,{label:`environment-data:pull-requests:label-candidates`,tag:w.pullRequestsLabelCandidates,execute:e=>i(w.pullRequestsLabelCandidates,e),staleTimeMs:6e4})),u=ap(K(e,{label:`environment-data:pull-requests:review-guide`,persistence:kf(yn),tag:w.pullRequestsReviewGuide,execute:e=>i(w.pullRequestsReviewGuide,e),staleTimeMs:6e4,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})})),d=ap(K(e,{label:`environment-data:pull-requests:reviewer-candidates`,tag:w.pullRequestsReviewerCandidates,execute:e=>i(w.pullRequestsReviewerCandidates,e),staleTimeMs:6e4}));return{refreshes:n,linkedThreads:K(e,{label:`environment-data:pull-requests:linked-threads`,persistence:kf(kn),tag:w.pullRequestsLinkedThreads,staleTimeMs:0,refreshIntervalMs:1e4,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})}),list:K(e,{label:`environment-data:pull-requests:list`,persistence:kf($t),tag:w.pullRequestsList,staleTimeMs:3e4,refreshTrigger:({environmentId:e,input:t})=>t.cursors===void 0?n({environmentId:e,input:{}}):void 0}),listStats:K(e,{label:`environment-data:pull-requests:list-stats`,persistence:Mf(),tag:w.pullRequestsListStats,staleTimeMs:6e4,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})}),detail:s,preview:c,checks:K(e,{label:`environment-data:pull-requests:checks`,persistence:kf(un(Rt)),tag:w.pullRequestsChecks,execute:e=>i(w.pullRequestsChecks,e),staleTimeMs:45e3,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})}),activity:o,threadComments:G(e,{label:`environment-data:pull-requests:thread-comments`,tag:w.pullRequestsThreadComments,execute:e=>i(w.pullRequestsThreadComments,e),scheduler:r,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.threadId,t.cursor])}}),diff:ua(e,{label:`environment-data:pull-requests:diff`,persistence:kf(t),staleTimeMs:6e4,execute:e=>M(function*(){let t=yield*Ca,n=yield*tp,r=yield*C(t.prepared);return k(r)?yield*new rp({message:`The environment HTTP connection is not ready.`}):yield*n.load(r.value,e)})}),diffFileContents:G(e,{label:`environment-data:pull-requests:diff-file-contents`,tag:w.pullRequestsDiffFileContents,execute:e=>i(w.pullRequestsDiffFileContents,e),scheduler:r,concurrency:{mode:`singleFlight`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.projectId,t.host?.toLowerCase()??null,t.repository,t.number,t.commit??null,t.changeType,t.oldPath,t.newPath])}}),filesViewed:K(e,{label:`environment-data:pull-requests:files-viewed`,persistence:kf(Cr),tag:w.pullRequestsFilesViewed,execute:e=>i(w.pullRequestsFilesViewed,e),staleTimeMs:15e3}),changeBreakdown:K(e,{label:`environment-data:pull-requests:change-breakdown`,persistence:kf(Ot),tag:w.pullRequestsChangeBreakdown,execute:e=>i(w.pullRequestsChangeBreakdown,e),staleTimeMs:6e4,refreshTrigger:({environmentId:e})=>n({environmentId:e,input:{}})}),setFilesViewed:G(e,{label:`environment-data:pull-requests:set-files-viewed`,tag:w.pullRequestsSetFilesViewed,execute:e=>i(w.pullRequestsSetFilesViewed,e),scheduler:r,concurrency:{mode:`serial`,key:({environmentId:e,input:t})=>JSON.stringify([e,t.projectId,t.repository,t.number])}}),runAction:G(e,{tag:w.pullRequestsRunAction,label:`environment-data:pull-requests:run-action`,execute:e=>M(function*(){let{resolveMergeMethod:t,...n}=e,r=n;if(n.action===`merge`&&t!==void 0){let{projectId:e,host:a,repository:o,number:s}=n,c={projectId:e,host:a,repository:o,number:s,allowStale:!1},l=yield*i(w.pullRequestsDetail,c);if(l.state!==`open`||l.isDraft||!l.capabilities.actions.includes(`merge`)||!l.viewerPermissions.actions.includes(`merge`))return yield*new an({operation:`runAction`,detail:`This pull request cannot be merged.`});if(l.capabilities.stackActions&&(yield*i(w.pullRequestsStack,c))!==null)return yield*new an({operation:`runAction`,detail:`Open this pull request to merge its stack.`});let u=yield*jr({try:()=>t(l),catch:e=>new an({operation:`runAction`,detail:e instanceof Error?e.message:`Could not choose a merge method.`})});r={...n,mergeMethod:u}}return yield*i(w.pullRequestsRunAction,r)}),onSuccess:({environmentId:e,input:t},n)=>z(()=>n.refresh(c({environmentId:e,input:t}))),scheduler:r,concurrency:a}),update:G(e,{label:`environment-data:pull-requests:update`,tag:w.pullRequestsUpdate,execute:e=>i(w.pullRequestsUpdate,e),onSuccess:(e,t)=>z(()=>t.refresh(c(e))),scheduler:r,concurrency:a}),comment:G(e,{label:`environment-data:pull-requests:comment`,tag:w.pullRequestsComment,execute:e=>i(w.pullRequestsComment,e),scheduler:r,concurrency:a}),updateComment:G(e,{label:`environment-data:pull-requests:update-comment`,tag:w.pullRequestsUpdateComment,execute:e=>i(w.pullRequestsUpdateComment,e),scheduler:r,concurrency:a,onSuccess:({environmentId:e,input:{projectId:t,host:n,repository:r,number:i}},a)=>z(()=>a.refresh(o({environmentId:e,input:{projectId:t,...n===void 0?{}:{host:n},repository:r,number:i}})))}),submitReview:G(e,{label:`environment-data:pull-requests:submit-review`,tag:w.pullRequestsSubmitReview,execute:e=>i(w.pullRequestsSubmitReview,e),scheduler:r,concurrency:a}),replyToThread:G(e,{label:`environment-data:pull-requests:reply-to-thread`,tag:w.pullRequestsReplyToThread,execute:e=>i(w.pullRequestsReplyToThread,e),scheduler:r,concurrency:a}),reviewerCandidates:d,requestReviewers:G(e,{label:`environment-data:pull-requests:request-reviewers`,tag:w.pullRequestsRequestReviewers,execute:e=>i(w.pullRequestsRequestReviewers,e),scheduler:r,concurrency:a,onSuccess:(e,t)=>z(()=>{let{reviewers:n,requested:r}=e.input,i=d(e),a=R(We(t.get(i)))?.candidates.filter(e=>n.some(t=>t.id===e.id&&t.kind===e.kind))??[],c=a.length<n.length;op(t,i,e=>({...e,candidates:e.candidates.map(e=>a.includes(e)?{...e,isRequested:r}:e)}));let l=new Set(a.map(e=>e.login.toLowerCase())),u=(e,t=e=>!1)=>r?[...e,...a.filter(t=>!e.some(e=>e.login.toLowerCase()===t.login.toLowerCase())).map(({login:e,name:t,avatarUrl:n})=>({login:e,name:t,avatarUrl:n}))]:e.filter(e=>!l.has(e.login.toLowerCase())||t(e));op(t,s(e),e=>({...e,reviewers:u(e.reviewers)}),c),op(t,o(e),e=>({...e,reviewers:e.reviewers===void 0?void 0:u(e.reviewers,t=>e.comments.some(e=>(e.kind===`review`||e.kind===`review-comment`)&&e.author?.login.toLowerCase()===t.login.toLowerCase()))}),c)})}),reviewGuide:u,generateReviewGuide:G(e,{label:`environment-data:pull-requests:generate-review-guide`,tag:w.pullRequestsGenerateReviewGuide,execute:e=>i(w.pullRequestsGenerateReviewGuide,e),onSuccess:(e,t,n)=>z(()=>{op(t,u(e),()=>n,!0)})}),labelCandidates:l,setLabels:G(e,{label:`environment-data:pull-requests:set-labels`,tag:w.pullRequestsSetLabels,execute:e=>i(w.pullRequestsSetLabels,e),scheduler:r,concurrency:a,onSuccess:(e,t)=>z(()=>{let{labels:n,applied:r}=e.input,i=l(e),a=R(We(t.get(i))),o=new Set(n);op(t,i,e=>({...e,candidates:e.candidates.map(e=>o.has(e.name)?{...e,isApplied:r}:e)})),op(t,s(e),e=>({...e,labels:r?[...e.labels,...n.filter(t=>!e.labels.some(e=>e.name===t)).map(e=>({name:e,color:a?.candidates.find(t=>t.name===e)?.color??null}))]:e.labels.filter(e=>!o.has(e.name))}))})}),setThreadResolution:G(e,{label:`environment-data:pull-requests:set-thread-resolution`,tag:w.pullRequestsSetThreadResolution,execute:e=>i(w.pullRequestsSetThreadResolution,e),scheduler:r,concurrency:a}),setReaction:G(e,{label:`environment-data:pull-requests:set-reaction`,tag:w.pullRequestsSetReaction,execute:e=>i(w.pullRequestsSetReaction,e),scheduler:r,concurrency:a}),invalidate:G(e,{label:`environment-data:pull-requests:invalidate`,tag:w.pullRequestsInvalidate,execute:e=>i(w.pullRequestsInvalidate,e),onSuccess:({environmentId:e,input:t},n)=>z(()=>{t.reference!==void 0&&n.refresh(c({environmentId:e,input:t.reference}))}),scheduler:r,concurrency:a})}}var fp=`p4.backgroundActivity.clientId`,pp=25e3,mp=45e3,hp=mp,gp=[{type:`provider-status`}],_p=new Map,vp=new Set;function yp(){for(let e of vp)try{e()}catch{}}function bp(e,t){switch(t.type){case`server-config`:case`diagnostics`:return JSON.stringify([e,t.type]);case`provider-status`:return JSON.stringify([e,t.type,t.instanceId??null]);case`vcs-status`:case`git-refs`:return JSON.stringify([e,t.type,t.cwd]);case`thread`:return JSON.stringify([e,t.type,t.threadId])}}function xp(){try{let e=window.localStorage.getItem(fp);if(e)return e;let t=Kn();return window.localStorage.setItem(fp,t),t}catch{return`ephemeral-browser-client`}}function Sp(){return window.desktopBridge?`desktop-renderer`:`web`}function Cp(e,t){return e<=t&&t-e<=hp}function wp(e,t,n){let r=[...gp];for(let t of _p.values())t.environmentId===e&&r.push(t.scope);return{environmentId:e,clientId:xp(),clientKind:Sp(),visible:document.visibilityState===`visible`,focused:document.hasFocus(),recentlyInteracted:Cp(t,n),appState:document.visibilityState===`visible`?`active`:`background`,scopes:r,ttlMs:mp,observedAt:er(n)}}function Tp(e){if(e.method===w.subscribeResourceTelemetry)return{type:`diagnostics`};if(e.method!==w.subscribeVcsStatus)return null;let t=e.input;return t.includeRemote===!1?null:typeof t.cwd==`string`?{type:`vcs-status`,cwd:t.cwd}:null}function Ep(e,t){let n=bp(e,t),r=_p.get(n);return r?r.refCount+=1:(_p.set(n,{environmentId:e,scope:t,refCount:1}),yp()),()=>{let e=_p.get(n);e&&(--e.refCount,e.refCount<=0&&(_p.delete(n),yp()))}}function Dp(e){let t=Tp(e);return t===null?L(p):z(()=>{let n=Ep(e.environmentId,t);return z(n)})}var Op=_r(vi,vi.of({observe:Dp})),kp=It(M(function*(){if(typeof window>`u`||typeof document>`u`)return;let e=yield*J,t=yield*St,n=yield*Ar(1),r=()=>cr(n,void 0),i=t.currentTimeMillisUnsafe(),a=()=>{let e=t.currentTimeMillisUnsafe(),n=Cp(i,e);i=e,n||r()},o={passive:!0},s=M(function*(){let t=yield*me,n=yield*C(e.entries);yield*br(n.keys(),n=>e.run(n,Ki(w.serverReportClientActivity,wp(n,i,t))).pipe(Dr),{concurrency:`unbounded`,discard:!0})}).pipe(ne(`web.backgroundActivity.report`));yield*Nr(z(()=>{vp.add(r),document.addEventListener(`visibilitychange`,r),window.addEventListener(`focus`,r),window.addEventListener(`blur`,r),window.addEventListener(`online`,r),window.addEventListener(`pointermove`,a),window.addEventListener(`keydown`,a),window.addEventListener(`wheel`,a,o),window.addEventListener(`touchstart`,a,o)}),()=>z(()=>{vp.delete(r),document.removeEventListener(`visibilitychange`,r),window.removeEventListener(`focus`,r),window.removeEventListener(`blur`,r),window.removeEventListener(`online`,r),window.removeEventListener(`pointermove`,a),window.removeEventListener(`keydown`,a),window.removeEventListener(`wheel`,a),window.removeEventListener(`touchstart`,a)})),yield*Fe(e.entries).pipe(Ie(()=>z(r)),P),yield*de(n).pipe($n(`250 millis`),Ie(()=>s),P),yield*z(r).pipe(l(_e(`${pp} millis`)),P)})),Ap=or({schemaVersion:Ft(3),environmentId:ze,snapshot:Yt}),jp=or({schemaVersion:Ft(4),environmentId:ze,threadId:Xr,snapshot:Hr.mapFields(e=>({...e,projection:ot}))});function Mp(e,t){return e.pipe(x(()=>t.pipe(mt(O()))))}var Np=or({connectionId:A,credential:Ea}),Pp=or({schemaVersion:Ft(1),targets:Ce(li),profiles:Ce(la),credentials:Ce(Np),remoteDpopTokens:Ce(ta),githubRoutingPermissions:Je(Ce(Ri)),disabledEnvironmentIds:Ce(ze).pipe(be(L([])))}),Fp=Object.freeze({schemaVersion:1,targets:[],profiles:[],credentials:[],remoteDpopTokens:[],disabledEnvironmentIds:[]});function Ip(e,t,n){let r=t(n);return[...e.filter(e=>t(e)!==r),n]}function Lp(e,t,n){return e.filter(e=>t(e)!==n)}function Rp(e){switch(e._tag){case`PrimaryConnectionTarget`:case`RelayConnectionTarget`:return null;case`BearerConnectionTarget`:case`SshConnectionTarget`:return e.connectionId}}function zp(e){return Rp(e)??e._tag}function Bp(e,t){let n=new Set(t.flatMap(e=>Rp(e)??[])),r=t.some(e=>e._tag===`RelayConnectionTarget`),i=new Set(t.map(e=>e.environmentId));return{...e,profiles:e.profiles.filter(e=>!n.has(e.connectionId)),credentials:e.credentials.filter(e=>!n.has(e.connectionId)),remoteDpopTokens:r?e.remoteDpopTokens.filter(e=>!i.has(e.environmentId)):e.remoteDpopTokens}}function Vp(e,t){return e.targets.filter(e=>e.environmentId===t)}function Hp(e,t,n){let r=new Set(n.map(zp)),i=Vp(e,t).filter(e=>!r.has(zp(e))),a=e.targets.findIndex(e=>e.environmentId===t),o=e.targets.filter(e=>e.environmentId!==t),s=a===-1?o.length:e.targets.slice(0,a).filter(e=>e.environmentId!==t).length;return{...Bp(e,i),targets:[...o.slice(0,s),...n,...o.slice(s)]}}function Up(e,t,n=[t.target]){let r=Hp(e,t.target.environmentId,n);switch(t._tag){case`RelayConnectionRegistration`:return r;case`BearerConnectionRegistration`:return{...r,profiles:Ip(r.profiles,e=>e.connectionId,t.profile),credentials:Ip(r.credentials,e=>e.connectionId,{connectionId:t.target.connectionId,credential:t.credential})};case`SshConnectionRegistration`:return{...r,profiles:Ip(r.profiles,e=>e.connectionId,t.profile)}}}function Wp(e,t){let n=Hp(e,t,[]);return{...n,remoteDpopTokens:Lp(n.remoteDpopTokens,e=>e.environmentId,t),disabledEnvironmentIds:Lp(n.disabledEnvironmentIds,e=>e,t),...n.githubRoutingPermissions===void 0?{}:{githubRoutingPermissions:n.githubRoutingPermissions.filter(e=>e.environmentId!==t)}}}function Gp(e,t,n){let r=e.targets.some(e=>e.environmentId===t),i=Lp(e.disabledEnvironmentIds,e=>e,t);return{...e,disabledEnvironmentIds:r&&!n?[...i,t]:i}}function Kp(e,t){return e.targets.some(e=>e._tag===`RelayConnectionTarget`&&e.environmentId===t.environmentId)?{...e,remoteDpopTokens:Ip(e.remoteDpopTokens,e=>e.environmentId,t)}:e}var qp=/^[^-+]+-(?:nightly|preview)\.\d{8}\.\d+$/;function Jp(e){return e.stageLabel.trim().toLowerCase()===`latest`?e.baseName:`${e.baseName} (${e.stageLabel})`}function Yp(e){return e.primaryServerVersion&&qp.test(e.primaryServerVersion)?`Nightly`:e.fallbackStageLabel}function Xp(e){let t=Yp({primaryServerVersion:e.primaryServerVersion,fallbackStageLabel:e.fallbackStageLabel});return t===e.fallbackStageLabel?e.fallbackDisplayName:Jp({baseName:e.baseName,stageLabel:t})}function Zp(){return typeof window>`u`?null:window.desktopBridge?.getAppBranding?.()??null}var Qp=Zp(),$p=``,em=$p===`latest`||$p===`nightly`?$p:null,tm=em===`nightly`?`Nightly`:em===`latest`?`Latest`:null,nm=Qp?.baseName??`P4 Code`,rm=Qp?.stageLabel??tm??`Latest`,im=Qp?.displayName??Jp({baseName:nm,stageLabel:rm}),am=`0.9.0`,om=`state`,sm=`challenge`,cm=`port`,lm=`/callback`,um=`https://app.p4.codes`,dm=[`openid`,`profile`,`email`,`offline_access`];function fm(e){let t=Hc(e),n=t.get(om)?.trim()??``,r=t.get(sm)?.trim()??``,i=pm(t.get(cm)?.trim()??``);return!n||!r||i===null?null:{state:n,challenge:r,loopbackPort:i}}function pm(e){if(!/^\d{1,5}$/.test(e))return null;let t=Number(e);return t>=1&&t<=65535?t:null}function mm(e){return`http://127.0.0.1:${e}${lm}`}function hm(e){let t=new URL(e.authorizationEndpoint);return t.searchParams.set(`client_id`,e.clientId),t.searchParams.set(`redirect_uri`,e.redirectUri),t.searchParams.set(`response_type`,`code`),t.searchParams.set(`scope`,e.scopes.join(` `)),t.searchParams.set(`state`,e.state),t.searchParams.set(`code_challenge`,e.challenge),t.searchParams.set(`code_challenge_method`,`S256`),t.toString()}function gm(){return um}function _m(){return``}function vm(){return null}function ym(e){try{return new URL(e).origin}catch{return null}}function bm(e){if(_m())return!1;if(vm())return!0;if(e===void 0&&(typeof window>`u`||window.location===void 0))return!1;let t=ym(gm());return t!==null&&(e??new URL(window.location.href)).origin===t}function xm(e=new URL(window.location.href)){let t=e.searchParams.get(`host`)?.trim()??``,n=Qc(e)?.trim()??``,r=e.searchParams.get(`label`)?.trim()??``;return!t||!n?null:{host:t,token:n,label:r}}function Sm(e=new URL(window.location.href)){return xm(e)!==null}function Cm(e){let t=new URL(`/pair`,gm());t.searchParams.set(`host`,e.host);let n=e.label?.trim();return n&&t.searchParams.set(`label`,n),el(t,e.token).toString()}function wm(e){let t=new URL(`/__p4code/channel`,gm());return t.searchParams.set(`channel`,e.channel),t.toString()}var Tm=15e3,Em=12e4,Dm=Tm,Om=new Map,km=new Set([w.serverGetUsageSummary,w.mcpRegistryProviderSignInWait]),Am=new Set([w.serverUpdateProvider,w.serverRefreshProviders,w.serverUpdateServer,w.vcsRefreshStatus]),jm=D([]).pipe(An,F(`slow-rpc-ack-requests`));function Mm(e){zt.set(jm,[...e])}function Nm(){return zt.get(jm)}function Pm(e){return!e.includes(`subscribe`)&&!e.startsWith(`pullRequests.`)&&!km.has(e)}function Fm(e){return Am.has(e)?Math.max(Dm,Em):Dm}function Im(e,t,n=t){if(!Pm(t))return;Rm(e),Bm();let r=Date.now(),i=Fm(t),a={requestId:e,startedAt:new Date(r).toISOString(),startedAtMs:r,tag:n,thresholdMs:i},o=setTimeout(()=>{Om.delete(e),zm(a)},i);Om.set(e,{request:a,timeoutId:o})}function Lm(e){Rm(e);let t=Nm();t.some(t=>t.requestId===e)&&Mm(t.filter(t=>t.requestId!==e))}function Rm(e){let t=Om.get(e);t&&(clearTimeout(t.timeoutId),Om.delete(e))}function zm(e){let t=[...Nm(),e];if(t.length<=256){Mm(t);return}Mm(t.slice(-256))}function Bm(){for(;Om.size>=256;){let e=Om.keys().next().value;if(e===void 0)return;Rm(e)}}function Vm(){return wr(jm)}var Hm=`local:`;function Um(e){return`${Hm}${e}`}function Wm(e){return e._tag===`BearerConnectionTarget`&&e.connectionId.startsWith(Hm)}function Gm(e){return Wm(e)?e.connectionId.slice(6):null}function Km(e){return Gm(e)?.startsWith(`wsl:`)===!0}function qm(e){let t=[],n=()=>{let n=e();if(n===void 0)return t.length>0&&(t=[]),{_tag:`Success`,bootstraps:t};try{let e=n.getLocalEnvironmentBootstraps().filter(e=>e.id!==we);return(e.length!==t.length||e.some((e,n)=>{let r=t[n];return r===void 0||e.id!==r.id||e.label!==r.label||e.runningDistro!==r.runningDistro||e.httpBaseUrl!==r.httpBaseUrl||e.wsBaseUrl!==r.wsBaseUrl||e.bootstrapToken!==r.bootstrapToken}))&&(t=e),{_tag:`Success`,bootstraps:t}}catch(e){return{_tag:`Failure`,cause:e}}};return{readResult:n,readSnapshot:()=>{let e=n();return e._tag===`Success`?e.bootstraps:t}}}var Jm=qm(()=>window.desktopBridge);function Ym(){return Jm.readResult()}function Xm(){return Jm.readSnapshot()}var Zm={"image/png":`png`,"image/jpeg":`jpg`,"image/gif":`gif`,"image/webp":`webp`,"application/pdf":`pdf`,"application/zip":`zip`,"application/vnd.sqlite3":`sqlite`,"text/x-python":`py`,"text/javascript":`js`,"text/x-ruby":`rb`,"text/x-shellscript":`sh`};function Qm(e,t){let n=Zm[t??``];return n?`file.${n}`:e}function $m(e){let t=e.mimeType?.split(`;`,1)[0]?.trim().toLowerCase()??``,n=e.name.toLowerCase(),r=n.slice(n.lastIndexOf(`.`)),i=!t||t===`application/octet-stream`||t===`text/plain`;if(t===`application/pdf`)return`pdf`;if(t===`text/html`)return`html`;if(t===`text/markdown`||t===`text/x-markdown`)return`markdown`;if(t.startsWith(`image/`))return`image`;if(t.startsWith(`video/`))return`video`;if(t.startsWith(`audio/`))return`audio`;if(i){if(r===`.pdf`)return`pdf`;if(/^\.html?$/.test(r))return`html`;if(/^\.(md|markdown|mdown|mkd|mdx)$/.test(r))return`markdown`;let e=oh(r);if(e?.startsWith(`image/`))return`image`;if(e?.startsWith(`video/`))return`video`;if(ah(r)!==null)return`audio`;if(/^\.(txt|log|json|jsonc|jsonl|ndjson|yaml|yml|toml|ini|conf|config|env|csv|tsv|xml|css|scss|sass|less|js|jsx|mjs|cjs|ts|tsx|mts|cts|py|pyi|rb|go|rs|swift|kt|kts|java|c|h|cc|cpp|hpp|cs|php|sh|bash|zsh|fish|sql|graphql|gql|vue|svelte|r|lua|ex|exs|erl|hs|clj|dart|diff|patch|lock|properties|gradle)$/.test(r)||/^(dockerfile|makefile|gemfile|rakefile|license|readme|\.gitignore|\.gitattributes|\.editorconfig|\.env)(\.|$)/i.test(n.split(/[\\/]/).at(-1)??``))return`text`}return t.startsWith(`text/`)||/^(application\/(json|.*\+json|xml|.*\+xml|javascript|x-javascript|yaml|x-yaml|toml|sql))$/.test(t)?`text`:`unsupported`}var eh=1048576;function th(e,t=!1){let n=e.subarray(0,eh);if(n.some(e=>e===0))throw Error(`This file contains binary data and cannot be shown as text.`);let r=new TextDecoder(`utf-8`,{fatal:!0});try{return{text:r.decode(n,{stream:t||e.length>n.length}),truncated:t||e.length>n.length}}catch{throw Error(`This file is not UTF-8 text. Open it in another app to view its contents.`)}}var nh=[`.avif`,`.gif`,`.ico`,`.jpeg`,`.jpg`,`.png`,`.svg`,`.webp`],rh=new Map([[`.avif`,`image/avif`],[`.gif`,`image/gif`],[`.ico`,`image/x-icon`],[`.jpeg`,`image/jpeg`],[`.jpg`,`image/jpeg`],[`.png`,`image/png`],[`.svg`,`image/svg+xml`],[`.webp`,`image/webp`]]),ih=new Map([[`.mp3`,`audio/mpeg`],[`.wav`,`audio/wav`],[`.ogg`,`audio/ogg`],[`.oga`,`audio/ogg`],[`.flac`,`audio/flac`],[`.aac`,`audio/aac`],[`.m4a`,`audio/mp4`],[`.opus`,`audio/ogg`],[`.aiff`,`audio/aiff`]]);function ah(e){return/^\.[a-z0-9]+$/i.test(e)?ih.get(e.toLowerCase())??null:null}function oh(e){return/^\.[a-z0-9]+$/i.test(e)?rh.get(e.toLowerCase())??Fn({name:`media${e}`,mimeType:``}):null}function sh(e){let t=e.trim(),n=t.startsWith(`<`)&&t.endsWith(`>`)?t.slice(1,-1):t,r=/^data:((?:image|video)\/[\w.+-]+)[;,]/i.exec(n)?.[1];if(r)return r.toLowerCase();let i=n.split(/[?#]/,1)[0]??``;if(/^(?:https?:|file:|\/\/)/i.test(n))try{i=new URL(n,`https://media.invalid`).pathname}catch{return null}try{i=decodeURIComponent(i)}catch{}let a=i.split(/[\\/]/).at(-1)??``,o=a.lastIndexOf(`.`);return o<0?null:oh(a.slice(o))}function ch(e){let t=sh(e);return t===null?null:t.startsWith(`video/`)?`video`:`image`}function lh(e,t){let n=e.toLowerCase();return t.some(e=>n.endsWith(e))}function uh(e){return lh(e,nh)}function dh(e){return Fn({name:e,mimeType:``})!==null}function fh(e){let t=e.lastIndexOf(`.`);return t>=0&&ah(e.slice(t))!==null}var ph=`project-favicon-missing`;[...nh];function mh(e,t,n){return JSON.stringify([e,t,n||null])}function hh(e,t,n){let r=n;try{let e=new URL(n,`https://p4.invalid`).pathname;r=e.slice(e.lastIndexOf(`/`)+1)}catch{}return JSON.stringify([e,t,r])}function gh(e){if(!e)return!1;try{let t=new URL(e,`https://p4.invalid`).pathname;return t.slice(t.lastIndexOf(`/`)+1)===ph}catch{return!1}}var _h=32768,vh=4194304,yh=A.check(Hn(_h),Pn(/^data:image\/(?:png|jpeg|gif|webp|avif|svg\+xml|x-icon|vnd\.microsoft\.icon);base64,[A-Za-z0-9+/]+={0,2}$/)),bh=or({environmentId:ze,cwd:A,faviconPath:un(A),revision:A,dataUrl:yh}),xh=zr(bh),Sh=le(yh);function Ch(e){return mh(e.environmentId,e.cwd,e.faviconPath)}async function wh(e,t){if(Number(e.headers.get(`content-length`))>t)throw Error(`Project icon is too large to decode.`);if(!e.body){let n=new Uint8Array(await e.arrayBuffer());if(n.byteLength>t)throw Error(`Project icon is too large to decode.`);return n}let n=e.body.getReader(),r=[],i=0;try{for(;;){let{done:e,value:a}=await n.read();if(e)break;if(i+=a.byteLength,i>t)throw Error(`Project icon is too large to decode.`);r.push(a)}}finally{n.cancel().catch(()=>{})}let a=new Uint8Array(new ArrayBuffer(i)),o=0;for(let e of r)a.set(e,o),o+=e.byteLength;return a}function Th(e){let t=e.fetch??globalThis.fetch;return async(n,r)=>{let i=await t(n,{signal:r});if(!i.ok)throw Error(`Project icon request failed with ${i.status}.`);let a=i.headers.get(`content-type`)?.split(`;`,1)[0]?.trim().toLowerCase(),o=a?.startsWith(`image/`)?a:sh(n);if(!o)throw Error(`Project icon has no image type.`);let s=await wh(i,vh);r.throwIfAborted();let c=`data:${o};base64,${kr(s)}`;if(Sh(c))return c;if(o===`image/svg+xml`)throw Error(`Project icon exceeds the cache limit.`);return e.downscale({url:n,mimeType:o,bytes:s},r)}}function Eh(e){let t=new Map,n=new Map,r=0,i,a,o=new Set,s=e=>{let t=e().catch(()=>{}).finally(()=>o.delete(t));o.add(t)},c=n=>{let r=t.get(n);r&&(t.delete(n),s(()=>e.storage.remove(n,r)))},l=()=>{let e=0;for(let n of t.values())e+=n.dataUrl.length;for(;t.size>128||e>1048576;){let n=t.entries().next().value;if(!n)break;e-=n[1].dataUrl.length,c(n[0])}},u=()=>i??=(async()=>{try{for(let n of await e.storage.list()){let e=xh(n);E(e)&&t.set(Ch(e.value),e.value)}l()}catch{}})(),d=e=>t.get(Ch(e))?.dataUrl??null,f=async(i,o,f)=>{await a;let p=r,m=n.get(i.environmentId)??0;if(await u(),f.aborted||o===null)return d(i);let h=Ch(i);if(gh(o))return c(h),null;let g=hh(i.environmentId,i.cwd,o),_=t.get(h);if(_&&(t.delete(h),t.set(h,_),_.revision===g))return _.dataUrl;try{let a=await e.load(o,f);if(f.aborted||p!==r||m!==(n.get(i.environmentId)??0))return d(i);if(Sh(a)){let n={environmentId:i.environmentId,cwd:i.cwd,faviconPath:i.faviconPath||null,revision:g,dataUrl:a};return t.set(h,n),s(()=>e.storage.put(h,n)),l(),a}}catch{}return d(i)??o},p=async()=>{await Promise.all(o)},m=async e=>{e===void 0?r+=1:n.set(e,(n.get(e)??0)+1);let i=a,o=(async()=>{await i,await u();for(let[n,r]of t)(e===void 0||r.environmentId===e)&&c(n);await p()})().finally(()=>{a===o&&(a=void 0)});a=o,await o};return{hydrate:u,peek:d,resolve:f,clearEnvironment:e=>m(e),clearAll:()=>m(),flush:p}}var Dh=`p4code:project-favicons`,Oh=2,kh=`images`,Ah;function jh(){return Ah??=new Promise((e,t)=>{let n=indexedDB.open(Dh,Oh);n.addEventListener(`upgradeneeded`,()=>{for(let e of n.result.objectStoreNames)e!==kh&&n.result.deleteObjectStore(e);n.result.objectStoreNames.contains(kh)||n.result.createObjectStore(kh)}),n.addEventListener(`success`,()=>e(n.result)),n.addEventListener(`error`,()=>t(n.error)),n.addEventListener(`blocked`,()=>t(Error(`Project icon cache is blocked.`)))})}function Mh(e){return new Promise((t,n)=>{e.addEventListener(`complete`,()=>t()),e.addEventListener(`abort`,()=>n(e.error)),e.addEventListener(`error`,()=>n(e.error))})}async function Nh(e,t){let n=(await jh()).transaction(kh,e),r=t(n.objectStore(kh));return await Mh(n),r?.result}async function Ph(e,t){let n=await createImageBitmap(new Blob([e.bytes],{type:e.mimeType}));try{t.throwIfAborted();let e=document.createElement(`canvas`);for(let t of[96,48]){let r=Math.min(1,t/n.width,t/n.height);e.width=Math.max(1,Math.round(n.width*r)),e.height=Math.max(1,Math.round(n.height*r));let i=e.getContext(`2d`);if(!i)throw Error(`Canvas is unavailable.`);i.clearRect(0,0,e.width,e.height),i.drawImage(n,0,0,e.width,e.height);let a=e.toDataURL(`image/webp`,.85);if(a.length<=32768)return a}throw Error(`Project icon thumbnail exceeds the cache limit.`)}finally{n.close()}}var Fh=Eh({storage:{list:async()=>await Nh(`readonly`,e=>e.getAll())??[],put:async(e,t)=>{await Nh(`readwrite`,n=>n.put(t,e))},remove:async e=>{await Nh(`readwrite`,t=>t.delete(e))}},load:Th({downscale:Ph})}),Ih=`p4code:connection-runtime`,Lh=4,Rh=`catalog`,zh=`shell`,Bh=`thread`,Vh=`server-config`,Hh=`vcs-refs`,Uh=`document`,Wh=dt(Ap),Gh=dt(jp),Kh=or({schemaVersion:Ft(1),environmentId:ze,config:_}),qh=dt(Kh),Jh=or({schemaVersion:Ft(1),environmentId:ze,cwd:A,refs:Br}),Yh=dt(Jh),Xh=dt(Pp),Zh=Jt(Xh),Qh=h(Xh),$h=Jt(Wh),eg=h(Wh),tg=Jt(Gh),ng=h(Gh),rg=Jt(qh),ig=h(qh),ag=Jt(Yh),og=h(Yh);function Q(e,t){return new Ni({reason:`remote-unavailable`,detail:`Could not ${e} the local connection catalog: ${String(t)}`})}function $(e,t){return new Vi({operation:e,message:`Could not ${e.replaceAll(`-`,` `)}: ${String(t)}`})}var sg=n(`web.connectionStorage.openDatabase`)(function*(){return yield*Wn(e=>{if(typeof indexedDB>`u`){e(S(Q(`open`,`IndexedDB is unavailable in this browser context.`)));return}try{let t=indexedDB.open(Ih,Lh);t.addEventListener(`upgradeneeded`,()=>{t.result.objectStoreNames.contains(Rh)||t.result.createObjectStore(Rh),t.result.objectStoreNames.contains(zh)||t.result.createObjectStore(zh),t.result.objectStoreNames.contains(Bh)||t.result.createObjectStore(Bh),t.result.objectStoreNames.contains(Vh)||t.result.createObjectStore(Vh),t.result.objectStoreNames.contains(Hh)||t.result.createObjectStore(Hh)}),t.addEventListener(`error`,()=>{e(S(Q(`open`,t.error??`Unknown IndexedDB error`)))}),t.addEventListener(`success`,()=>{e(L(t.result))})}catch(t){e(S(Q(`open`,t)))}})}),cg=n(`web.connectionStorage.makeDatabaseHandle`)(function*(){let e=yield*$e(1),t=null,n=e=>{t===e&&(t=null)},r=qn(()=>t===null?e.withPermits(1)(M(function*(){if(t!==null)return t;let e=yield*sg();return t=e,e.addEventListener(`close`,()=>n(e)),e.addEventListener(`versionchange`,()=>{n(e),e.close()}),e})):L(t)),i=e.withPermits(1)(z(()=>{t?.close(),t=null}));return{handle:{get:r,invalidate:e=>z(()=>n(e))},close:i}});function lg(e,t){let n=Symbol(`closedConnection`);return T(e.get,r=>t(r).pipe(Ue(e=>e.detail.includes(`InvalidStateError`),t=>e.invalidate(r).pipe(lt(S({[n]:t})))))).pipe(Ue(e=>n in e,()=>T(e.get,t)))}function ug(e,t,n){return Wn(r=>{try{let i=e.transaction(t,`readonly`).objectStore(t).get(n);i.addEventListener(`error`,()=>{r(S(Q(`read`,i.error??`Unknown IndexedDB read error`)))}),i.addEventListener(`success`,()=>{r(L(i.result))})}catch(e){r(S(Q(`read`,e)))}}).pipe(ne(`web.connectionStorage.readDatabaseValue`))}function dg(e,t,n,r){return Wn(i=>{try{let a=e.transaction(t,`readwrite`);a.addEventListener(`abort`,()=>{i(S(Q(`write`,a.error??`Unknown IndexedDB write error`)))}),a.addEventListener(`complete`,()=>{i(p)}),a.objectStore(t).put(r,n)}catch(e){i(S(Q(`write`,e)))}}).pipe(ne(`web.connectionStorage.writeDatabaseValue`))}function fg(e,t,n){return Wn(r=>{try{let i=e.transaction(t,`readwrite`);i.addEventListener(`abort`,()=>{r(S(Q(`remove`,i.error??`Unknown IndexedDB remove error`)))}),i.addEventListener(`complete`,()=>{r(p)}),i.objectStore(t).delete(n)}catch(e){r(S(Q(`remove`,e)))}}).pipe(ne(`web.connectionStorage.removeDatabaseValue`))}function pg(e,t,n){return Wn(r=>{try{let i=e.transaction(t,`readwrite`);i.addEventListener(`abort`,()=>{r(S(Q(`remove`,i.error??`Unknown IndexedDB cursor error`)))}),i.addEventListener(`complete`,()=>{r(p)});let a=i.objectStore(t).openCursor(n);a.addEventListener(`error`,()=>{r(S(Q(`remove`,a.error??`Unknown IndexedDB cursor error`)))}),a.addEventListener(`success`,()=>{let e=a.result;if(e!==null)try{e.delete(),e.continue()}catch(e){r(S(Q(`remove`,e)))}})}catch(e){r(S(Q(`remove`,e)))}}).pipe(ne(`web.connectionStorage.removeDatabaseValuesInRange`))}function mg(e,t,n){return lg(e,e=>ug(e,t,n))}function hg(e,t,n,r){return lg(e,e=>dg(e,t,n,r))}function gg(e,t,n){return lg(e,e=>fg(e,t,n))}function _g(e,t,n){return lg(e,e=>pg(e,t,n))}function vg(e,t){return`${e}:${t}`}function yg(e,t){return`${e}:${t}`}var bg=n(`web.connectionStorage.decodeCatalog`)(function*(e){return yield*Zh(e).pipe(m(e=>Q(`decode`,e)))}),xg=n(`web.connectionStorage.encodeCatalog`)(function*(e){return yield*Qh(e).pipe(m(e=>Q(`encode`,e)))});function Sg(e){let t=window.desktopBridge;return t?.getConnectionCatalog!==void 0&&t.setConnectionCatalog!==void 0?{read:Bt({try:()=>t.getConnectionCatalog(),catch:e=>Q(`load`,e)}),write:e=>Bt({try:()=>t.setConnectionCatalog(e),catch:e=>Q(`save`,e)}).pipe(T(e=>e?p:S(Q(`save`,`Desktop secure storage is unavailable in this system context.`))))}:{read:mg(e,Rh,Uh).pipe(V(e=>typeof e==`string`?e:null)),write:t=>hg(e,Rh,Uh,t),quarantine:t=>hg(e,Rh,`${Uh}:corrupt:${Date.now()}`,t)}}var Cg=n(`web.connectionStorage.makeCatalogStore`)(function*(e){let t=yield*Bi(O()),r=yield*$e(1),i=n(`web.connectionStorage.loadCatalog`)(function*(){let n=yield*q(t);if(E(n))return n.value;let r=yield*e.read,i=Fp;return r!==null&&r.trim()!==``&&(i=yield*bg(r).pipe(x(t=>M(function*(){yield*H(`Discarding a corrupt web connection catalog.`,{error:t.message}),e.quarantine!==void 0&&(yield*e.quarantine(r).pipe(x(e=>H(`Could not quarantine the corrupt web connection catalog.`,{error:e.message}))));let n=yield*xg(Fp);return yield*e.write(n).pipe(x(e=>H(`Could not persist the recovered web connection catalog.`,{error:e.message}))),Fp})))),yield*W(t,j(i)),i});return{read:r.withPermits(1)(i()),update:n(`web.connectionStorage.updateCatalog`)(function*(n){yield*r.withPermits(1)(M(function*(){let r=n(yield*i());yield*e.write(yield*xg(r)),yield*W(t,j(r))}))})}}),wg=`p4code:github-routing:`,Tg=`p4code:github-routing-changed`,Eg=le(Ri),Dg=Fr(dt(Ri));function Og(e=window){let t=t=>{try{let n=e.localStorage.getItem(t),r=n===null?null:JSON.parse(n);return Eg(r)&&t===`${wg}${r.environmentId}`?r:null}catch{return null}},n=()=>{try{let n=[],r=e.localStorage;for(let e=0;e<r.length;e++){let i=r.key(e);if(i?.startsWith(wg)){let e=t(i);e!==null&&n.push(e)}}return n}catch{return[]}},r=(t,n)=>jr({try:()=>{let r=`${wg}${t}`;n===null?e.localStorage.removeItem(r):e.localStorage.setItem(r,Dg(n)),e.dispatchEvent(new Event(Tg))},catch:e=>Q(`save GitHub routing permissions in`,e)});return ni.of({get:e=>z(()=>{let n=t(`${wg}${e.target.environmentId}`);return Fi(e,n===null?[]:[n])}),changes:Xn(t=>Nr(z(()=>{let r=e=>{if(e.type===`storage`){let t=e.key;if(t!==null&&!t?.startsWith(wg))return}cr(t,n())};return e.addEventListener(`storage`,r),e.addEventListener(Tg,r),cr(t,n()),r}),t=>z(()=>{e.removeEventListener(`storage`,t),e.removeEventListener(Tg,t)})).pipe(b)),set:(e,t)=>{let n=mi(e);return n===null?S(new Ra({reason:`configuration`,detail:`This environment does not have a saved connection endpoint.`})):r(e.target.environmentId,t===`off`?null:{environmentId:e.target.environmentId,connectionKey:n,permission:t})},forget:e=>r(e,null)})}var kg=Et(M(function*(){let{handle:t}=yield*Nr(cg(),e=>e.close),n=yield*Cg(Sg(t)),r=Og(),i=bi.of({list:n.read.pipe(V(e=>e.targets),m(e=>$(`list-targets`,e))),listDisabled:n.read.pipe(V(e=>e.disabledEnvironmentIds),m(e=>$(`list-disabled-targets`,e)))}),a=fi.of({register:(e,t)=>n.update(n=>Up(n,e,t)).pipe(m(e=>$(`register-connection`,e))),setRoutes:(e,t)=>n.update(n=>Hp(n,e,t)).pipe(m(e=>$(`set-connection-routes`,e))),remove:e=>n.update(t=>Wp(t,e)).pipe(m(e=>$(`remove-connection`,e))),setEnabled:(e,t)=>n.update(n=>Gp(n,e,t)).pipe(m(e=>$(`set-connection-enabled`,e)))}),o=qi({get:t=>n.read.pipe(V(n=>e(n.profiles.find(e=>e.connectionId===t)))),put:e=>n.update(t=>({...t,profiles:Ip(t.profiles,e=>e.connectionId,e)})),remove:e=>n.update(t=>({...t,profiles:Lp(t.profiles,e=>e.connectionId,e)}))}),s=Qr({get:t=>n.read.pipe(V(n=>e(n.credentials.find(e=>e.connectionId===t)?.credential))),put:(e,t)=>n.update(n=>({...n,credentials:Ip(n.credentials,e=>e.connectionId,{connectionId:e,credential:t})})),remove:e=>n.update(t=>({...t,credentials:Lp(t.credentials,e=>e.connectionId,e)}))}),c=Sa({get:t=>n.read.pipe(V(n=>e(n.remoteDpopTokens.find(e=>e.environmentId===t)))),put:e=>n.update(t=>Kp(t,e)),remove:e=>n.update(t=>({...t,remoteDpopTokens:Lp(t.remoteDpopTokens,e=>e.environmentId,e)}))}),l=Ta.of({loadShell:e=>mg(t,zh,e).pipe(tn(()=>qe(()=>Fh.hydrate())),T(n=>typeof n==`string`?Mp($h(n).pipe(m(e=>$(`load-shell`,e)),V(t=>t.environmentId===e?j(t.snapshot):O())),gg(t,zh,e)):Zt),m(e=>$(`load-shell`,e))),saveShell:(e,n)=>M(function*(){let r=yield*eg({schemaVersion:3,environmentId:e,snapshot:n}).pipe(m(e=>$(`save-shell`,e)));yield*hg(t,zh,e,r)}).pipe(m(e=>e._tag===`ConnectionPersistenceError`?e:$(`save-shell`,e))),loadServerConfig:e=>mg(t,Vh,e).pipe(T(t=>typeof t==`string`?rg(t).pipe(m(e=>$(`load-server-config`,e)),V(t=>t.environmentId===e?j(t.config):O())):Zt),m(e=>e._tag===`ConnectionPersistenceError`?e:$(`load-server-config`,e))),saveServerConfig:(e,n)=>M(function*(){let r=yield*ig({schemaVersion:1,environmentId:e,config:n}).pipe(m(e=>$(`save-server-config`,e)));yield*hg(t,Vh,e,r)}).pipe(m(e=>e._tag===`ConnectionPersistenceError`?e:$(`save-server-config`,e))),loadThread:(e,n)=>mg(t,Bh,vg(e,n)).pipe(T(r=>typeof r==`string`?Mp(tg(r).pipe(m(e=>$(`load-thread`,e)),V(t=>t.environmentId===e&&t.threadId===n?j(t.snapshot):O())),gg(t,Bh,vg(e,n))):Zt),m(e=>$(`load-thread`,e))),saveThread:(e,n)=>M(function*(){let r=yield*ng({schemaVersion:4,environmentId:e,threadId:n.projection.thread.id,snapshot:n}).pipe(m(e=>$(`save-thread`,e)));yield*hg(t,Bh,vg(e,n.projection.thread.id),r)}).pipe(m(e=>e._tag===`ConnectionPersistenceError`?e:$(`save-thread`,e))),loadVcsRefs:(e,n)=>mg(t,Hh,yg(e,n)).pipe(T(t=>typeof t==`string`?ag(t).pipe(m(e=>$(`load-vcs-refs`,e)),V(t=>t.environmentId===e&&t.cwd===n?j(t.refs):O())):Zt),m(e=>e._tag===`ConnectionPersistenceError`?e:$(`load-vcs-refs`,e))),saveVcsRefs:(e,n,r)=>M(function*(){let i=yield*og({schemaVersion:1,environmentId:e,cwd:n,refs:r}).pipe(m(e=>$(`save-vcs-refs`,e)));yield*hg(t,Hh,yg(e,n),i)}).pipe(m(e=>e._tag===`ConnectionPersistenceError`?e:$(`save-vcs-refs`,e))),removeVcsRefs:(e,n)=>gg(t,Hh,yg(e,n)).pipe(m(e=>$(`remove-vcs-refs`,e))),clearVcsRefs:e=>_g(t,Hh,IDBKeyRange.bound(`${e}:`,`${e}:\uffff`)).pipe(m(e=>$(`clear-vcs-refs`,e))),removeThread:(e,n)=>gg(t,Bh,vg(e,n)).pipe(m(e=>$(`remove-thread`,e))),clear:e=>Wr([qe(()=>Fh.clearEnvironment(e)),gg(t,zh,e),_g(t,Bh,IDBKeyRange.bound(`${e}:`,`${e}:\uffff`)),gg(t,Vh,e),_g(t,Hh,IDBKeyRange.bound(`${e}:`,`${e}:\uffff`))],{concurrency:`unbounded`,discard:!0}).pipe(m(e=>$(`clear-environment`,e)))});return Nn(bi,i).pipe(ce(ni,r),ce(fi,a),ce(Ui,o),ce(Di,s),ce(ra,c),ce(Ta,l))}));function Ag(e){switch(e){case`darwin`:return`macOS`;case`win32`:return`Windows`;case`linux`:return`Linux`;default:return e?`other`:`unknown`}}function jg(e){return/macintosh/i.test(e.userAgent)&&/mac/i.test(e.platform)&&e.maxTouchPoints>1}function Mg(e){let t=e.userAgent;return t.trim()===``?`unknown`:/iphone|ipad|ipod/i.test(t)||jg(e)?`iOS`:/android/i.test(t)?`Android`:/cros/i.test(t)?`ChromeOS`:/windows/i.test(t)?`Windows`:/macintosh|mac os x/i.test(t)?`macOS`:/linux|x11/i.test(t)?`Linux`:`other`}function Ng(e){return e.trim()===``?`unknown`:/edg(?:e|a|ios)?\//i.test(e)?`Edge`:/opr\/|opios\//i.test(e)?`Opera`:/samsungbrowser\//i.test(e)?`Samsung Internet`:/firefox\/|fxios\//i.test(e)?`Firefox`:/chrome\/|crios\//i.test(e)?`Chrome`:/safari\//i.test(e)?`Safari`:`other`}function Pg(e){let t=e.userAgent;return t.trim()===``?`unknown`:/ipad|tablet|kindle|silk/i.test(t)||/android/i.test(t)&&!/mobile/i.test(t)||jg(e)?`tablet`:/iphone|ipod|android.+mobile|mobile/i.test(t)?`mobile`:`desktop`}function Fg(e){return e.desktopBridge===void 0?{label:`P4 Code Web`,deviceType:Pg(e.identity),os:Mg(e.identity),surface:`web`,webDeployment:e.hosted?`hosted`:`server`,browser:Ng(e.identity.userAgent),...e.appVersion===`0.0.0`?{}:{appVersion:e.appVersion}}:{label:`P4 Code Desktop`,deviceType:`desktop`,os:Ag(e.desktopBridge.getClientPlatform?.()),surface:`desktop`,...e.appVersion===`0.0.0`?{}:{appVersion:e.appVersion}}}var Ig=0;function Lg(){return typeof navigator>`u`?`unknown`:navigator.onLine?`online`:`offline`}var Rg=Gi({status:z(Lg),changes:Xn(e=>Nr(z(()=>{let t=()=>cr(e,`online`),n=()=>cr(e,`offline`);return window.addEventListener(`online`,t),window.addEventListener(`offline`,n),{online:t,offline:n}}),({online:e,offline:t})=>z(()=>{window.removeEventListener(`online`,e),window.removeEventListener(`offline`,t)})).pipe(b))}),zg=Xn(e=>Nr(z(()=>{let t=typeof navigator>`u`?void 0:navigator.connection;if(t?.type===void 0)return;let n=t.type,r=()=>{let r=t.type;r!==void 0&&r!==n&&(n=r,cr(e,`network-changed`))};return t.addEventListener(`change`,r),{connection:t,listener:r}}),e=>z(()=>e?.connection.removeEventListener(`change`,e.listener))).pipe(b)),Bg=ca({changes:Re([Xn(e=>Nr(z(()=>{let t=()=>{document.visibilityState===`visible`&&cr(e,`application-active`)};return document.addEventListener(`visibilitychange`,t),t}),e=>z(()=>{document.removeEventListener(`visibilitychange`,e)})).pipe(b)),xa(zt).pipe(Ge(()=>`credentials-changed`)),zg],{concurrency:`unbounded`})});function Vg(){return Fg({appVersion:am,hosted:bm(),identity:{userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints},desktopBridge:window.desktopBridge})}function Hg(e){let t=e instanceof Error?e.message:String(e);return t.toLowerCase().includes(`cancel`)?new Ra({reason:`authentication`,detail:t}):new Ni({reason:`remote-unavailable`,detail:`Could not prepare the SSH environment: ${t}`})}var Ug=n(`web.connectionPlatform.ssh.provisionDesktop`)(function*(e,t,n){let r=yield*Bt({try:()=>e.ensureSshEnvironment(t,{issuePairingToken:!0}),catch:Hg}),i=r.pairingToken;if(i===null)return yield*new Ra({reason:`authentication`,detail:`The SSH environment did not issue a pairing credential.`});let a=yield*Bt({try:()=>e.fetchSshEnvironmentDescriptor(r.httpBaseUrl),catch:Hg});if(n!==void 0&&a.environmentId!==n)return yield*new Ra({reason:`configuration`,detail:`That host reaches ${a.label}, a different machine. Add it as its own environment instead.`});let o=yield*Bt({try:()=>e.bootstrapSshBearerSession(r.httpBaseUrl,i),catch:Hg});return{environmentId:a.environmentId,label:a.label,bootstrap:r,bearerToken:o.access_token}}),Wg=Et(z(()=>{let e=aa.of({metadata:Vg()}),t=Ji.of({identity:z(()=>Ze(zt.get(ga))),clerkToken:M(function*(){let e=zt.get(ga);if(e===null)return yield*new Ra({reason:`authentication`,detail:`Sign in to P4 Connect to connect this environment.`});let t=yield*e.readClerkToken().pipe(m(e=>new Ni({reason:`network`,detail:e.message})));return t===null?yield*new Ra({reason:`authentication`,detail:`The P4 Connect session is unavailable.`}):t})}),r=Ua.of({deviceId:Zt}),i=Fa.of({bearerToken:Bt({try:Ha,catch:e=>new Ni({reason:`remote-unavailable`,detail:`Could not load the desktop primary credential: ${String(e)}`})}).pipe(V(Ze))}),a=Zi.of({provision:n(`web.connectionPlatform.ssh.provision`)(function*(e,t){let n=window.desktopBridge;return n===void 0?yield*new Ra({reason:`unsupported`,detail:`SSH environments are only available in the desktop app.`}):yield*Ug(n,e,t)}),prepare:n(`web.connectionPlatform.ssh.prepare`)(function*(e){let t=window.desktopBridge;if(t===void 0)return yield*new Ra({reason:`unsupported`,detail:`SSH environments are only available in the desktop app.`});let n=yield*Bt({try:()=>t.ensureSshEnvironment(e.target,{issuePairingToken:!0}),catch:Hg});return n.pairingToken===null?yield*new Ra({reason:`authentication`,detail:`The SSH environment did not issue a pairing credential.`}):{bootstrap:n,bearerToken:(yield*Bt({try:()=>t.bootstrapSshBearerSession(n.httpBaseUrl,n.pairingToken),catch:Hg})).access_token}}),disconnect:n(`web.connectionPlatform.ssh.disconnect`)(function*(e){let t=window.desktopBridge;t!==void 0&&(yield*Bt({try:()=>t.disconnectSshEnvironment(e),catch:e=>new Ni({reason:`remote-unavailable`,detail:`Could not disconnect the SSH environment: ${String(e)}`})}))})});return Nn(Ji,t).pipe(ce(Fa,i),ce(Ua,r),ce(aa,e),ce(Zi,a))})),Gg=n(`web.connectionPlatform.loadPrimaryConnectionRegistration`)(function*(e){let t=yield*Sr({httpBaseUrl:e.target.httpBaseUrl}).pipe(fe(Pa),m(Ba));return new Xi({target:new oi({environmentId:t.environmentId,label:t.label,httpBaseUrl:e.target.httpBaseUrl,wsBaseUrl:e.target.wsBaseUrl})})}),Kg=n(`web.connectionPlatform.loadSecondaryConnectionRegistration`)(function*(e){if(e.httpBaseUrl===null||e.wsBaseUrl===null||e.bootstrapToken===void 0)return yield*new Ni({reason:`endpoint-unavailable`,detail:`Desktop-local backend ${e.id} is not ready yet.`});let t=e.httpBaseUrl,n=e.wsBaseUrl,r=yield*Sr({httpBaseUrl:t}).pipe(m(Ba)),i=yield*me,a=yield*wi({httpBaseUrl:t,credential:e.bootstrapToken,scopes:Tr,clientMetadata:Vg()}).pipe(m(Ba)),o=Um(e.id),s=e.label||r.label;return{registration:new va({target:new ri({environmentId:r.environmentId,label:s,connectionId:o}),profile:new Aa({connectionId:o,environmentId:r.environmentId,label:s,httpBaseUrl:t,wsBaseUrl:n}),credential:new na({token:a.access_token})}),expiresAtEpochMs:Yg(i,a.expires_in),refreshAtEpochMs:Xg(i,a.expires_in)}}),qg=`3 seconds`,Jg=5e3;function Yg(e,t){return e+Math.max(0,t*1e3)}function Xg(e,t){return Math.max(e,Yg(e,t)-Jg)}function Zg(e=Ai){try{return{_tag:`Success`,target:e()}}catch(e){return{_tag:`Failure`,cause:e}}}function Qg(e,t){return t._tag===`Failure`?e.get(we):void 0}function $g(e,t,n){return e.signature===t&&(e.refreshAtEpochMs===void 0||n<e.refreshAtEpochMs)}function e_(e,t,n){return e.signature===t&&e.expiresAtEpochMs!==void 0&&n<e.expiresAtEpochMs}var t_=6e4,n_=18e5;function r_(e,t,n){return e!==void 0&&e.signature===t&&n<e.retryAtEpochMs}function i_(e,t,n){let r=e?.signature===t?Math.min(e.delayMs*2,n_):t_;return{signature:t,retryAtEpochMs:n+r,delayMs:r}}function a_(e){return e._tag===`ConnectionBlockedError`&&e.reason===`authentication`}function o_(e,t,n){return t._tag===`Success`?new Map:new Map([...e].filter(([,e])=>e.expiresAtEpochMs!==void 0&&n<e.expiresAtEpochMs))}var s_=At(_l,M(function*(){if(bm()||La())return _l.of({registrations:Mr});let e=yield*Bi(new Map),t=yield*Bi(new Map),n=M(function*(){let n=yield*q(e),r=yield*me,i=new Map,a=[],o=Zg(),s=Qg(n,o);if(s!==void 0&&(i.set(we,s),a.push(s.registration)),o._tag===`Failure`)yield*H(`Could not read the primary environment topology.`,{cause:o.cause});else if(o.target!==null){let e=o.target,t=`primary|${e.target.httpBaseUrl}|${e.target.wsBaseUrl}`,s=n.get(we);if(s!==void 0&&$g(s,t,r))i.set(we,s),a.push(s.registration);else{let n=yield*Gg(e).pipe(lr(e=>H(`Could not discover the primary environment.`,{error:e})),Mn);if(E(n)){let e={signature:t,registration:n.value};i.set(we,e),a.push(n.value)}}}let c=Ym();for(let[e,t]of o_(n,c,r))i.set(e,t),a.push(t.registration);if(c._tag===`Failure`)yield*H(`Could not read the desktop-local backend topology.`,{cause:c.cause});else{let e=yield*q(t),o=new Map;for(let t of c.bootstraps){let s=`${t.httpBaseUrl}|${t.wsBaseUrl}`,c=`${s}|${t.bootstrapToken??``}`,l=n.get(t.id);if(l!==void 0&&l.bootstrapToken===t.bootstrapToken&&$g(l,s,r)){i.set(t.id,l),a.push(l.registration);continue}let u=e.get(t.id);if(r_(u,c,r)){o.set(t.id,u),l!==void 0&&e_(l,s,r)&&(i.set(t.id,l),a.push(l.registration));continue}let d=yield*Kg(t).pipe(lr(e=>H(`Could not connect a desktop-local backend.`,{id:t.id,error:e})),lr(e=>a_(e)?me.pipe(V(e=>o.set(t.id,i_(u,c,e)))):p),Mn);if(E(d)){let e={signature:s,...t.bootstrapToken===void 0?{}:{bootstrapToken:t.bootstrapToken},...d.value};i.set(t.id,e),a.push(d.value.registration)}else l!==void 0&&e_(l,s,r)&&(i.set(t.id,l),a.push(l.registration))}yield*W(t,o)}return yield*W(e,i),a}).pipe(fe(hn));return _l.of({registrations:ke(qg).pipe(a(()=>n))})})),c_=_r(_i,_i.of({clear:e=>z(()=>{xn(e)})})),l_=_r(di,di.of({observe:({environmentId:e,method:t})=>z(()=>{Ig+=1;let n=`${e}:${Ig}`;return Im(n,t,`${t} · ${e}`),z(()=>{Lm(n)})})})),u_=fn(kg,Rg,Bg,Wg,s_,c_,l_).pipe(Er(ka)),d_=fn(Dd,bu,ad,np).pipe(rr(yl({environmentThemes:!0,usageLimitSources:!0,usageLimitsCommand:!0})),rr(fn(ka,u_,Op))),f_=kp.pipe(rr(d_)),p_=en(f_);export{$d as $,Ks as $t,mm as A,oo as An,rl as At,cp as B,hc as Bt,gm as C,lo as Cn,Wl as Ct,dm as D,Za as Dn,Sl as Dt,xm as E,Qa as En,xl as Et,am as F,uo as Fn,Fc as Ft,pf as G,ic as Gt,lp as H,dc as Ht,em as I,Dc as It,rf as J,tc as Jt,gf as K,rc as Kt,tm as L,Sc as Lt,nm as M,ro as Mn,el as Mt,im as N,po as Nn,$c as Nt,um as O,$a as On,wl as Ot,rm as P,co as Pn,Lc as Pt,Qd as Q,Zs as Qt,Xp as R,bc as Rt,Cm as S,ho as Sn,nu as St,bm as T,eo as Tn,El as Tt,up as U,fc as Ut,dp as V,pc as Vt,Df as W,uc as Wt,Xd as X,Qs as Xt,Zd as Y,nc as Yt,ef as Z,$s as Zt,Wm as _,bo as _n,hd as _t,gh as a,Jo as an,Rd as at,Vm as b,xo as bn,ku as bt,Qm as c,Mo as cn,Md as ct,uh as d,Do as dn,Nd as dt,Xs as en,Wd as et,dh as f,Eo as fn,kd as ft,Gm as g,Co as gn,cd as gt,oh as h,Oo as hn,yd as ht,mh as i,Bo as in,qd as it,fm as j,io as jn,Qc as jt,hm as k,Xa as kn,Cl as kt,$m as l,Po as ln,jd as lt,sh as m,Io as mn,Sd as mt,Fh as n,ns as nn,Hd as nt,eh as o,To as on,Gd as ot,ch as p,Fo as pn,wd as pt,ff as q,ec as qt,hh as r,ts as rn,Kd as rt,th as s,wo as sn,Bd as st,p_ as t,es as tn,Ud as tt,fh as u,No as un,Ad as ut,Km as v,So as vn,Ru as vt,Sm as w,fo as wn,Al as wt,wm as x,go as xn,ou as xt,Xm as y,vo as yn,zu as yt,Yp as z,Tc as zt};
3
+ //# sourceMappingURL=runtime-BOlBBevr.js.map