ryco-cli 0.1.29 → 0.1.30

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 (278) hide show
  1. package/README.md +37 -0
  2. package/dist/{AcpAdapter-CG1wRWcf.mjs → AcpAdapter-CKWzfB3Q.mjs} +4 -4
  3. package/dist/{AcpAdapter-8CSe4HK7.cjs → AcpAdapter-DjP0IHpH.cjs} +6 -6
  4. package/dist/{AcpNativeLogging-DbjnRnTf.cjs → AcpNativeLogging-5gTPK9Fq.cjs} +1 -1
  5. package/dist/{AcpNativeLogging-B6TtnnKL.mjs → AcpNativeLogging-Do0LktDb.mjs} +1 -1
  6. package/dist/{AcpRegistryDriver-16ZTxUs3.cjs → AcpRegistryDriver-BblCFfev.cjs} +3 -3
  7. package/dist/{AcpRegistryDriver-DZFasKaz.mjs → AcpRegistryDriver-BzohT-PC.mjs} +3 -3
  8. package/dist/{AzureDevOpsSourceControlProvider-DmJD1-WL.cjs → AzureDevOpsSourceControlProvider-CKSvfuDS.cjs} +1 -1
  9. package/dist/{AzureDevOpsSourceControlProvider-d5Ogsspk.mjs → AzureDevOpsSourceControlProvider-DRWSXTml.mjs} +1 -1
  10. package/dist/{BitbucketSourceControlProvider-B-ZwKj72.cjs → BitbucketSourceControlProvider-Bvl_q1o2.cjs} +1 -1
  11. package/dist/{BitbucketSourceControlProvider-DplKc8Wo.mjs → BitbucketSourceControlProvider-D5UVAc9z.mjs} +1 -1
  12. package/dist/{ClaudeDriver-0gGVop27.mjs → ClaudeDriver-BuQ_azDw.mjs} +7 -7
  13. package/dist/{ClaudeDriver-r0lJ9vmE.cjs → ClaudeDriver-DZkz0QPr.cjs} +8 -8
  14. package/dist/{CodexDriver-bJAbhSwY.cjs → CodexDriver-6Ph2cjAW.cjs} +5 -5
  15. package/dist/{CodexDriver-baT02xVb.mjs → CodexDriver-Bi49RIL4.mjs} +4 -4
  16. package/dist/{CodexTextGeneration-Dwp6X3dq.mjs → CodexTextGeneration-C5TIspJA.mjs} +4 -4
  17. package/dist/{CodexTextGeneration-DFZ5y4gj.cjs → CodexTextGeneration-sXPR9eld.cjs} +4 -4
  18. package/dist/{CopilotDriver-C0OhnSB1.mjs → CopilotDriver-Bcdpz6U_.mjs} +5 -5
  19. package/dist/{CopilotDriver-B_jEqfYQ.cjs → CopilotDriver-D6P0xgRX.cjs} +5 -5
  20. package/dist/{CursorDriver-DinXkGP9.mjs → CursorDriver-CRnDGwEv.mjs} +6 -6
  21. package/dist/{CursorDriver-BBFEW7ZI.cjs → CursorDriver-DMJ7sGSx.cjs} +7 -7
  22. package/dist/{ForgejoSourceControlProvider-iG9o7aZB.cjs → ForgejoSourceControlProvider-D4jGdaJX.cjs} +1 -1
  23. package/dist/{ForgejoSourceControlProvider-Dr0fxfud.mjs → ForgejoSourceControlProvider-Dl_Fk3RY.mjs} +1 -1
  24. package/dist/{GitHubSourceControlProvider-CnIu0n2Y.mjs → GitHubSourceControlProvider-DnwKf0ap.mjs} +1 -1
  25. package/dist/{GitHubSourceControlProvider-L1yFpep4.cjs → GitHubSourceControlProvider-QMe-zymI.cjs} +1 -1
  26. package/dist/{GitLabSourceControlProvider-BZdwXdJl.mjs → GitLabSourceControlProvider-Cj07OTBD.mjs} +1 -1
  27. package/dist/{GitLabSourceControlProvider-CrcBR6KQ.cjs → GitLabSourceControlProvider-CvvN5pHt.cjs} +1 -1
  28. package/dist/{GrokDriver-pX-N6HGS.mjs → GrokDriver-Bvq1jP3S.mjs} +7 -7
  29. package/dist/{GrokDriver-D_Ylzh5z.cjs → GrokDriver-jy8JIvYY.cjs} +10 -10
  30. package/dist/{Metrics-Bf96NJ4j.cjs → Metrics-C0LSU8s7.cjs} +979 -976
  31. package/dist/{Metrics-BjqGlIP4.mjs → Metrics-CnmjpbWk.mjs} +979 -976
  32. package/dist/{NodeSqliteClient-BGg70C7Q.cjs → NodeSqliteClient-D8bzGgPN.cjs} +1 -1
  33. package/dist/{OpenCodeDriver-BFEw5t09.cjs → OpenCodeDriver-Bu5D19tl.cjs} +6 -6
  34. package/dist/{OpenCodeDriver-Byu1pf_i.mjs → OpenCodeDriver-DhyVaBMT.mjs} +5 -5
  35. package/dist/{SideQuestionIsolation-81IoAuoi.mjs → SideQuestionIsolation-B-aE6aBz.mjs} +1 -1
  36. package/dist/{SideQuestionIsolation-CMPkCUP0.cjs → SideQuestionIsolation-CtJ4wX83.cjs} +1 -1
  37. package/dist/bin.cjs +8564 -302
  38. package/dist/bin.mjs +8544 -265
  39. package/dist/client/assets/{AccountSettings-FN7pwqYA.js → AccountSettings-v6-r6gYl.js} +1 -1
  40. package/dist/client/assets/{AiFocusSettings-xcDAMaqH.js → AiFocusSettings-BVdLON0q.js} +1 -1
  41. package/dist/client/assets/{AnimatedHeight-BNg7wnTK.js → AnimatedHeight-UXn4-nUd.js} +1 -1
  42. package/dist/client/assets/{AppearanceSettings-BvsvAOsG.js → AppearanceSettings-DRChsQnN.js} +1 -1
  43. package/dist/client/assets/{BranchToolbar.logic-DFsXV3Qs.js → BranchToolbar.logic-YN3KjVr9.js} +1 -1
  44. package/dist/client/assets/{BrowserPanel-D-g_xDZs.js → BrowserPanel-Dxw3stFP.js} +1 -1
  45. package/dist/client/assets/{ChatRightPanel-Bm906qNi.js → ChatRightPanel-CygpcJiF.js} +5 -5
  46. package/dist/client/assets/{ChatThreadRouteView-CATwakjI.js → ChatThreadRouteView-DYLZFHu0.js} +1 -1
  47. package/dist/client/assets/{CommandPaletteDialog-Obv1bvxj.js → CommandPaletteDialog-BRvBzP1R.js} +1 -1
  48. package/dist/client/assets/{CompositeRoot-CfkIdky8.js → CompositeRoot-BeEGGWwn.js} +1 -1
  49. package/dist/client/assets/{ComputerUseSettings-ljYmTHea.js → ComputerUseSettings-Cq8Pi0ZU.js} +1 -1
  50. package/dist/client/assets/{ConnectionsSettings-CIXs7x_E.js → ConnectionsSettings-RSYtexxd.js} +2 -2
  51. package/dist/client/assets/{ContextHandoffEndpointLabel-BzI4Wi1i.js → ContextHandoffEndpointLabel-CeGDLNA4.js} +1 -1
  52. package/dist/client/assets/{DiagnosticsSettings-DGX_2T2M.js → DiagnosticsSettings-CDa6MVx4.js} +1 -1
  53. package/dist/client/assets/{DialogHandle-CTtSYpsC.js → DialogHandle-BE7egDQQ.js} +1 -1
  54. package/dist/client/assets/{DialogPopup-DdZlhHuQ.js → DialogPopup-NfwDyR5c.js} +1 -1
  55. package/dist/client/assets/DialogRoot-C4mtzigX.js +1 -0
  56. package/dist/client/assets/{DialogTitle-Du7CAbaO.js → DialogTitle-B_Q4DykI.js} +1 -1
  57. package/dist/client/assets/{DialogTrigger-VpFh8Xza.js → DialogTrigger-BSqd4Crj.js} +1 -1
  58. package/dist/client/assets/{DialogViewport-BwuqbGLY.js → DialogViewport-B6w_ROOE.js} +1 -1
  59. package/dist/client/assets/{DraftChatThreadRouteView-Cmc5HpWf.js → DraftChatThreadRouteView-JW_bXVrM.js} +1 -1
  60. package/dist/client/assets/{ExternalIdentityWeb.logic-DsTJQkg-.js → ExternalIdentityWeb.logic-BlKX8J9h.js} +1 -1
  61. package/dist/client/assets/{GlassSurface-BlWIlQ0s.js → GlassSurface-DDG4eTlj.js} +1 -1
  62. package/dist/client/assets/{HostedConnectionControls-ySHqwr4K.js → HostedConnectionControls-CscV6hm1.js} +1 -1
  63. package/dist/client/assets/{HostedHubRoot-Caz8PElK.js → HostedHubRoot-gp7-ClBP.js} +1 -1
  64. package/dist/client/assets/{HostedNativeAuthorizationRoute-BSq_AlY2.js → HostedNativeAuthorizationRoute-j7oSlakZ.js} +1 -1
  65. package/dist/client/assets/{HostedNodeRenameDialog-ChxJdr-Z.js → HostedNodeRenameDialog-D1DSiTpx.js} +1 -1
  66. package/dist/client/assets/{HostedRelayTrustNotice-DPVrIfj_.js → HostedRelayTrustNotice-B9jp4SRh.js} +1 -1
  67. package/dist/client/assets/{IntegrationsSettingsPanel-eAq5h-D5.js → IntegrationsSettingsPanel-DH7SfWtV.js} +1 -1
  68. package/dist/client/assets/{KeybindingsSettings-D1XaEVGH.js → KeybindingsSettings-DkgYYSHS.js} +1 -1
  69. package/dist/client/assets/{LazyBrowserPanel-B6POLJh3.js → LazyBrowserPanel-D4e76vc_.js} +1 -1
  70. package/dist/client/assets/{McpServersSettings-DqLA6n5v.js → McpServersSettings-Dc1kPa-X.js} +1 -1
  71. package/dist/client/assets/{MobileSheet-CtQIYRlY.js → MobileSheet-lT--mLEz.js} +1 -1
  72. package/dist/client/assets/{NodeSecuritySettings-Skm7GQDl.js → NodeSecuritySettings-DcfSx4KT.js} +1 -1
  73. package/dist/client/assets/{NullStore-b8PhjwPZ.js → NullStore-8d2s-Re3.js} +1 -1
  74. package/dist/client/assets/{OnboardingDialog-8-fKvY5H.js → OnboardingDialog-CnLjwM6Z.js} +1 -1
  75. package/dist/client/assets/{OpinionatedPluginsSettings-BIJfJ34L.js → OpinionatedPluginsSettings-BTJyS3rN.js} +1 -1
  76. package/dist/client/assets/{PdfAttachmentPreview-CTo1AyZs.js → PdfAttachmentPreview-C8-hT8KQ.js} +1 -1
  77. package/dist/client/assets/{PhoneGetAppInterstitial-DwopOWnQ.js → PhoneGetAppInterstitial-Zh0zpBgT.js} +1 -1
  78. package/dist/client/assets/{PhoneHome-CUzxhhR4.js → PhoneHome-CIMkuDJF.js} +1 -1
  79. package/dist/client/assets/{PhoneSettingsSurface-BK2RHmYJ.js → PhoneSettingsSurface-CfZQxJNI.js} +1 -1
  80. package/dist/client/assets/{ProvidersSettingsPanel-DPxL7AsR.js → ProvidersSettingsPanel-DAVSiwE1.js} +1 -1
  81. package/dist/client/assets/{QuitShortcutFeedback-eCvP_MNj.js → QuitShortcutFeedback-Qs9XsuZ4.js} +1 -1
  82. package/dist/client/assets/{RedactedSensitiveText-DH4mWpB6.js → RedactedSensitiveText-BHGbQJwB.js} +1 -1
  83. package/dist/client/assets/{RootAppShell-DwiWD4Cy.js → RootAppShell-T056pByH.js} +2 -2
  84. package/dist/client/assets/{Separator-BiINUUQl.js → Separator-B6Esv57Y.js} +1 -1
  85. package/dist/client/assets/{SettingsDialog-CE8qy0qL.js → SettingsDialog-BERU2Qg7.js} +1 -1
  86. package/dist/client/assets/{SettingsPanels-BYknk6GO.js → SettingsPanels-De_XZOQF.js} +1 -1
  87. package/dist/client/assets/{SettingsPanels.editor-64bM0lhg.js → SettingsPanels.editor-Dkva9gX_.js} +1 -1
  88. package/dist/client/assets/{SourceControlSettings-BbveiAj3.js → SourceControlSettings-B4HS17cB.js} +1 -1
  89. package/dist/client/assets/{StatisticsPage-CAO_tCeC.js → StatisticsPage-Bj2ftFdH.js} +1 -1
  90. package/dist/client/assets/{StatisticsPanel-SNlgMv2o.js → StatisticsPanel-Dw7GBBmd.js} +1 -1
  91. package/dist/client/assets/{StatisticsSettingsLink-BpkNubL2.js → StatisticsSettingsLink-_XL3ABoI.js} +1 -1
  92. package/dist/client/assets/{ThreadTerminalDrawer-9x_kqQPy.js → ThreadTerminalDrawer-CPPzQSXN.js} +1 -1
  93. package/dist/client/assets/{ThreadWorkspacePanel-BXE17C4x.js → ThreadWorkspacePanel-DWKU7Omm.js} +1 -1
  94. package/dist/client/assets/{abnfDiagram-N423BO3Z-DAmGykdr.js → abnfDiagram-N423BO3Z-ByEe3mC0.js} +1 -1
  95. package/dist/client/assets/{activity-DRZlu-MC.js → activity-CwTUF6lv.js} +1 -1
  96. package/dist/client/assets/{alert-CwrDisFU.js → alert-DQEkrtUJ.js} +1 -1
  97. package/dist/client/assets/{appChrome-B_VWWDFj.js → appChrome-TkWLAGxk.js} +1 -1
  98. package/dist/client/assets/architecture-7GRP2DOG-HS59zfrk.js +1 -0
  99. package/dist/client/assets/{architectureDiagram-T3A2C74G-DypU2ERW.js → architectureDiagram-T3A2C74G-Bd-yxaTr.js} +1 -1
  100. package/dist/client/assets/{arrow-left-XhcJWpRy.js → arrow-left-DUOpzEbP.js} +1 -1
  101. package/dist/client/assets/{arrow-right-BBs6iTUL.js → arrow-right-HOYJnPKw.js} +1 -1
  102. package/dist/client/assets/{arrow-up-right-CJ9Vq7nK.js → arrow-up-right-DHnMKuVA.js} +1 -1
  103. package/dist/client/assets/{authorization-BugIGt5e.js → authorization-D8dOcEYq.js} +1 -1
  104. package/dist/client/assets/{badge-BswOCwph.js → badge-2AZ3HfVS.js} +1 -1
  105. package/dist/client/assets/{blockDiagram-VBNYF7ZC-B9MhR9hY.js → blockDiagram-VBNYF7ZC-CPDBonMC.js} +1 -1
  106. package/dist/client/assets/{bot-D5wgL7pu.js → bot-DxjPA7Bw.js} +1 -1
  107. package/dist/client/assets/{c4Diagram-5PPSVZJV-C22FWSoE.js → c4Diagram-5PPSVZJV-BM6pAiqT.js} +1 -1
  108. package/dist/client/assets/{capabilities-Bj_X9FZ-.js → capabilities-CsHjxjab.js} +1 -1
  109. package/dist/client/assets/channel-Dn3_cOkm.js +1 -0
  110. package/dist/client/assets/{chart-column-D6Lnkklk.js → chart-column-Cg7d41tb.js} +1 -1
  111. package/dist/client/assets/chevron-right-Dsw16yGn.js +1 -0
  112. package/dist/client/assets/{chunk-2GRJ4B5K-D1tZuCzA.js → chunk-2GRJ4B5K-DVKozJ41.js} +1 -1
  113. package/dist/client/assets/{chunk-4I5QYGJK-Clf86zK0.js → chunk-4I5QYGJK-BRoMwPkW.js} +1 -1
  114. package/dist/client/assets/{chunk-5RXB4S5H-B36N5RYZ.js → chunk-5RXB4S5H-DFMKyoqP.js} +1 -1
  115. package/dist/client/assets/{chunk-6Q2QTUOP-IAxdzsQJ.js → chunk-6Q2QTUOP-Ba6UENe9.js} +1 -1
  116. package/dist/client/assets/{chunk-7Z6QIM7H-Ctqebv_4.js → chunk-7Z6QIM7H-B87gYLWH.js} +1 -1
  117. package/dist/client/assets/{chunk-GF5L2VYU-CAfciJae.js → chunk-GF5L2VYU-DZ840GRQ.js} +1 -1
  118. package/dist/client/assets/{chunk-I66GZJ75-BZ7XtZf4.js → chunk-I66GZJ75-BO6p4Aqg.js} +1 -1
  119. package/dist/client/assets/{chunk-JQJVKLGR-DVuZCWnv.js → chunk-JQJVKLGR-5dTfVinz.js} +1 -1
  120. package/dist/client/assets/{chunk-KBJHAD2P-DtWbzsRm.js → chunk-KBJHAD2P-BeWfBZdP.js} +1 -1
  121. package/dist/client/assets/{chunk-NSK5VX7P-BVMz_Hc4.js → chunk-NSK5VX7P-DuRkdn5k.js} +1 -1
  122. package/dist/client/assets/{chunk-QR6OTTB3-DWitTCy-.js → chunk-QR6OTTB3-Duz4Y_uE.js} +1 -1
  123. package/dist/client/assets/{chunk-UBXNYLIW-BuxXXP2s.js → chunk-UBXNYLIW-D-z8URgN.js} +1 -1
  124. package/dist/client/assets/{chunk-W5SLKNZC-Bnf3sQl4.js → chunk-W5SLKNZC-AGjFjjoJ.js} +1 -1
  125. package/dist/client/assets/{chunk-WRU74C26-xu-KDOon.js → chunk-WRU74C26-BgY3UiXB.js} +1 -1
  126. package/dist/client/assets/classDiagram-JCYQIIEL-ZQvrS8No.js +1 -0
  127. package/dist/client/assets/classDiagram-v2-OCEON4UE-ZQvrS8No.js +1 -0
  128. package/dist/client/assets/{clipboard-copy-oDSkUUg4.js → clipboard-copy-BWf3JuTE.js} +1 -1
  129. package/dist/client/assets/{cynefin-OW5HDTMX-DGNyiNSf.js → cynefin-OW5HDTMX-BuOAGqlK.js} +1 -1
  130. package/dist/client/assets/{cynefinDiagram-MW4NZA55-_ctibv4i.js → cynefinDiagram-MW4NZA55-DqV0Aokp.js} +1 -1
  131. package/dist/client/assets/{dagre-VZM6K2ZE-Bo-bS1Y0.js → dagre-VZM6K2ZE-D_GFquDW.js} +1 -1
  132. package/dist/client/assets/{data-list-DLsM39Hp.js → data-list-BJCq3CVP.js} +1 -1
  133. package/dist/client/assets/{desktopWorkspace-Ocqt625W.js → desktopWorkspace-_iM6B9Kf.js} +1 -1
  134. package/dist/client/assets/{deviceName-z0ZWSq0z.js → deviceName-C2N8ZRX3.js} +1 -1
  135. package/dist/client/assets/{diagram-7IWD3JNH-DSjtw1SY.js → diagram-7IWD3JNH-B1wlsNg2.js} +1 -1
  136. package/dist/client/assets/{diagram-B4RE2ZJO-B7fWEvIa.js → diagram-B4RE2ZJO-D-CYoym7.js} +1 -1
  137. package/dist/client/assets/{diagram-LBJQPF4R-trRYCE5d.js → diagram-LBJQPF4R-DqJ9NCqt.js} +1 -1
  138. package/dist/client/assets/{diagram-Q27KOJAE-_DYcRggk.js → diagram-Q27KOJAE-3yp1D2u4.js} +1 -1
  139. package/dist/client/assets/{diagram-UB23O5K3-BkMzOHX8.js → diagram-UB23O5K3-Byp25nGC.js} +1 -1
  140. package/dist/client/assets/{download-CHdS3R_v.js → download-DsYNYJeu.js} +1 -1
  141. package/dist/client/assets/{ebnfDiagram-BXEA7PRR-DubiOMCG.js → ebnfDiagram-BXEA7PRR-B_IM1l6o.js} +1 -1
  142. package/dist/client/assets/{editorPreferences-DVhg0CXd.js → editorPreferences-D8q1ItMW.js} +1 -1
  143. package/dist/client/assets/{empty-BlBl_Vvw.js → empty-BbJHvskr.js} +1 -1
  144. package/dist/client/assets/{erDiagram-JOGREHBK-CFDiNfSJ.js → erDiagram-JOGREHBK--OtcrCRJ.js} +1 -1
  145. package/dist/client/assets/eventmodeling-NTZA5JFV-Dj71kuPV.js +1 -0
  146. package/dist/client/assets/flowDiagram-UKHOOZJN-BaAiwuvL.js +1 -0
  147. package/dist/client/assets/{ganttDiagram-PKOTCBZU-DT2XhE-m.js → ganttDiagram-PKOTCBZU-w0seBi3Q.js} +1 -1
  148. package/dist/client/assets/{gitGraph-4MIJSDKK-BI5UGiqb.js → gitGraph-4MIJSDKK-BOJ0lcSW.js} +1 -1
  149. package/dist/client/assets/{gitGraphDiagram-DS77QQ5N-CzAB97Rd.js → gitGraphDiagram-DS77QQ5N-BMfOCCYn.js} +1 -1
  150. package/dist/client/assets/{group-DZJuSiJL.js → group-tVMKGp7Q.js} +1 -1
  151. package/dist/client/assets/{hostedConnectionCoordinator-BztHfGNt.js → hostedConnectionCoordinator-BuRWCvUG.js} +1 -1
  152. package/dist/client/assets/hostedPairing-5n5srRC9.js +1 -0
  153. package/dist/client/assets/{hubRoutes-DExWSvVE.js → hubRoutes-jcMPIFy3.js} +1 -1
  154. package/dist/client/assets/{index-BAJdq3TK.js → index-BqZvnGNr.js} +1 -1
  155. package/dist/client/assets/{info-A6RAGUB7-DdGYYgLX.js → info-A6RAGUB7-acjBTQ5o.js} +1 -1
  156. package/dist/client/assets/{infoDiagram-6WML65LV-zhUpER6a.js → infoDiagram-6WML65LV-DB01Nc2m.js} +1 -1
  157. package/dist/client/assets/{input-CzU08wbL.js → input-BDWSVClC.js} +1 -1
  158. package/dist/client/assets/{ishikawaDiagram-WSZJBQD7-BQLkqykE.js → ishikawaDiagram-WSZJBQD7-KhZTvm-J.js} +1 -1
  159. package/dist/client/assets/{journeyDiagram-NVQOT4AX-DBgsbKOF.js → journeyDiagram-NVQOT4AX-C3JCYk-2.js} +1 -1
  160. package/dist/client/assets/{kanban-definition-27J2QSJJ-DF-Rr-xs.js → kanban-definition-27J2QSJJ-Dbo0C1s6.js} +1 -1
  161. package/dist/client/assets/{kbd-DKuvGqFP.js → kbd-Dxm5Elqj.js} +1 -1
  162. package/dist/client/assets/{key-round-CvyrSjb2.js → key-round-CETZqe3h.js} +1 -1
  163. package/dist/client/assets/{layers-CwP65mnC.js → layers-Dqez1Uq8.js} +1 -1
  164. package/dist/client/assets/{log-out-D3rICSt5.js → log-out-D5-aSBAz.js} +1 -1
  165. package/dist/client/assets/{logging-C6tXZlGQ.js → logging-B_qXVrk6.js} +1 -1
  166. package/dist/client/assets/{main-RFllWEko.js → main-DAbEANjY.js} +2 -2
  167. package/dist/client/assets/{mermaid-parser.core-BiGKtilP.js → mermaid-parser.core-B6Q-3x_q.js} +2 -2
  168. package/dist/client/assets/{mermaidEngine-Cjfgf3Bg.js → mermaidEngine-DksLcesB.js} +3 -3
  169. package/dist/client/assets/{mindmap-definition-FAOFIHXS-SiU9JwWJ.js → mindmap-definition-FAOFIHXS-LaMzRxqw.js} +1 -1
  170. package/dist/client/assets/{motion-C9rN_t9p.js → motion-BdscFixQ.js} +1 -1
  171. package/dist/client/assets/{packet-AYTQ26CC-F-HuW5Dr.js → packet-AYTQ26CC-BHhg59Si.js} +1 -1
  172. package/dist/client/assets/{pairingUrl-rQM9kSGT.js → pairingUrl-Dn1e2CVw.js} +1 -1
  173. package/dist/client/assets/{palette-gaqgtube.js → palette-92ylWqeC.js} +1 -1
  174. package/dist/client/assets/{pegDiagram-VL7TDLO6-cC-QUd7I.js → pegDiagram-VL7TDLO6-s7l7UD9d.js} +1 -1
  175. package/dist/client/assets/{pie-WAS4IAKB-BI3XUcLN.js → pie-WAS4IAKB-DygX31Z9.js} +1 -1
  176. package/dist/client/assets/{pieDiagram-7S7Q4E2Y-BP4gJ4ZK.js → pieDiagram-7S7Q4E2Y-bb6I9TtZ.js} +1 -1
  177. package/dist/client/assets/{play-BJZrOx6T.js → play-DUvOxTpL.js} +1 -1
  178. package/dist/client/assets/{primary-CQh_KHGG.js → primary-DZjgHvyf.js} +3 -3
  179. package/dist/client/assets/{providerDriverMeta-LJ2vJxm-.js → providerDriverMeta-T2YbXzuS.js} +1 -1
  180. package/dist/client/assets/{qr-code-Cmfz5JKf.js → qr-code-D4CtBq2F.js} +1 -1
  181. package/dist/client/assets/{qr-code-BFO8lV1M.js → qr-code-dbkTo07n.js} +1 -1
  182. package/dist/client/assets/{quadrantDiagram-CIZ2JOQS-DO-N1m-q.js → quadrantDiagram-CIZ2JOQS-Cj1Y68ZF.js} +1 -1
  183. package/dist/client/assets/{radar-RG4KPBEZ-CfayXQ5F.js → radar-RG4KPBEZ-FHM3ftPp.js} +1 -1
  184. package/dist/client/assets/{radio-group-BueX1AVO.js → radio-group-CRnHYWa8.js} +1 -1
  185. package/dist/client/assets/{railroad-74A4TZTK-CT6f-etT.js → railroad-74A4TZTK-CPMn18Cm.js} +1 -1
  186. package/dist/client/assets/railroad-abnf-HS5TGJTU-DxU7Mt1k.js +1 -0
  187. package/dist/client/assets/railroad-ebnf-LZEXJU2U-BYAPVjRd.js +1 -0
  188. package/dist/client/assets/railroad-peg-WCYAUIDC-BOqgR_X7.js +1 -0
  189. package/dist/client/assets/{railroadDiagram-AXF67PYL-DC8egbob.js → railroadDiagram-AXF67PYL-DyV3SuDj.js} +1 -1
  190. package/dist/client/assets/{refresh-cw-K_hU8_ld.js → refresh-cw-CgDa2Ok_.js} +1 -1
  191. package/dist/client/assets/{requirementDiagram-LRYGKXZP-DJMzcLk_.js → requirementDiagram-LRYGKXZP-_xEAGWaH.js} +1 -1
  192. package/dist/client/assets/runtime-BwHA1GUS.js +18 -0
  193. package/dist/client/assets/{sankeyDiagram-W5VNT64P-YR6aIYLj.js → sankeyDiagram-W5VNT64P-Clf6oTLi.js} +1 -1
  194. package/dist/client/assets/{save-Mh-PA_2P.js → save-C8h0AMdl.js} +1 -1
  195. package/dist/client/assets/{scroll-area-BC-LB_zE.js → scroll-area-7n2X_RLQ.js} +1 -1
  196. package/dist/client/assets/{scrollEdges-Zcpuz3un.js → scrollEdges-BXYnwntN.js} +1 -1
  197. package/dist/client/assets/{separator-yx1r9ZDw.js → separator-CL1qjMqJ.js} +1 -1
  198. package/dist/client/assets/{sequenceDiagram-SI44F4Z6-BVeSqWDA.js → sequenceDiagram-SI44F4Z6-CcYtQLSe.js} +1 -1
  199. package/dist/client/assets/{settingsLayout-BbjDM-p0.js → settingsLayout-DxsFwhF0.js} +1 -1
  200. package/dist/client/assets/{sheet-CpEwjOWn.js → sheet-CGiaw8-i.js} +1 -1
  201. package/dist/client/assets/{shield-i098Bm_B.js → shield-DPC4oHTi.js} +1 -1
  202. package/dist/client/assets/{shield-alert-CXmR7fM9.js → shield-alert-CwH36qZb.js} +1 -1
  203. package/dist/client/assets/{shield-check-CdFhWT_o.js → shield-check-CGD7sEeF.js} +1 -1
  204. package/dist/client/assets/{sidebar-DayQTDZp.js → sidebar-Cc6ANbOP.js} +1 -1
  205. package/dist/client/assets/{sidebarProjectFolders-DXqx3OlZ.js → sidebarProjectFolders-DO2Uv84F.js} +1 -1
  206. package/dist/client/assets/{sidebarStatusText-kdA6QMZS.js → sidebarStatusText-B4AtFXZo.js} +1 -1
  207. package/dist/client/assets/{sidebarUndo-BHFfJj0k.js → sidebarUndo-gdSrfa4O.js} +1 -1
  208. package/dist/client/assets/{skeleton-BwFgUtuE.js → skeleton-rS3IgBob.js} +1 -1
  209. package/dist/client/assets/{smartphone-DGfizz51.js → smartphone-DgVJfbv3.js} +1 -1
  210. package/dist/client/assets/square-Cr9X8U6y.js +1 -0
  211. package/dist/client/assets/{src-DHNjfMxR.js → src-C3Y_imaX.js} +1 -1
  212. package/dist/client/assets/{star-J3x3fktG.js → star-Cqay-Cae.js} +1 -1
  213. package/dist/client/assets/{stateDiagram-OKZ733FA-DoIZN669.js → stateDiagram-OKZ733FA-DEKURpRP.js} +1 -1
  214. package/dist/client/assets/stateDiagram-v2-UEYNNEHI-CWtHILqh.js +1 -0
  215. package/dist/client/assets/storeSelectors-CTDWheMy.js +1 -0
  216. package/dist/client/assets/{swimlanes-SLNWSIFB-BoFLigyK.js → swimlanes-SLNWSIFB-DrR6sbi6.js} +1 -1
  217. package/dist/client/assets/swimlanesDiagram-ULZ7WXOC-DuaPce9O.js +8 -0
  218. package/dist/client/assets/{switch-D9inWKdd.js → switch-DnpJB2xv.js} +1 -1
  219. package/dist/client/assets/{timeline-definition-Z64GVDOM-D65EmNWc.js → timeline-definition-Z64GVDOM-bQJvmJx5.js} +1 -1
  220. package/dist/client/assets/{toggle-wMq3LLn1.js → toggle-D10FsFoE.js} +1 -1
  221. package/dist/client/assets/{toggle-group-YNqzWsK0.js → toggle-group-BhzbQPEQ.js} +1 -1
  222. package/dist/client/assets/{tokenModePresentation-C0-NgmX5.js → tokenModePresentation-BkS-mry_.js} +1 -1
  223. package/dist/client/assets/{tooltip-mwOCSCXF.js → tooltip-BlweKBxc.js} +1 -1
  224. package/dist/client/assets/{treeView-Q6P3EWNA-C2S-OPgI.js → treeView-Q6P3EWNA-D4Ex5QTp.js} +1 -1
  225. package/dist/client/assets/{treemap-WGGIJYW6-6Ovsu9iH.js → treemap-WGGIJYW6-C4B6Y6qM.js} +1 -1
  226. package/dist/client/assets/{unplug-BEfcl9Ht.js → unplug-B1dczi-t.js} +1 -1
  227. package/dist/client/assets/{usage-DF8oQrsy.js → usage-BBwaxMif.js} +1 -1
  228. package/dist/client/assets/useAppSidebarCollapsed-CFy476E3.js +1 -0
  229. package/dist/client/assets/useBaseUiId-DKOjzmu3.js +1 -0
  230. package/dist/client/assets/{useLabelableId-C8bc9a0F.js → useLabelableId-DQbY2GG1.js} +1 -1
  231. package/dist/client/assets/{useNavigate-01O5dMQe.js → useNavigate-B8oXtF30.js} +1 -1
  232. package/dist/client/assets/{usePhoneThreadActions-BIdh81kF.js → usePhoneThreadActions-6DCLiyJ5.js} +1 -1
  233. package/dist/client/assets/{usePopupViewport-DYYZwfTW.js → usePopupViewport-CNWcP7Od.js} +1 -1
  234. package/dist/client/assets/{useScrollLock-BO185DkJ.js → useScrollLock-BbKeKZdj.js} +1 -1
  235. package/dist/client/assets/{useStatistics-D55-xLMz.js → useStatistics-B76_r68I.js} +1 -1
  236. package/dist/client/assets/{useTriggerFocusGuards-CMLVr18J.js → useTriggerFocusGuards-BC4Wb3GI.js} +1 -1
  237. package/dist/client/assets/{useValueChanged-DSyRHPje.js → useValueChanged-BkTbyZdO.js} +1 -1
  238. package/dist/client/assets/{user-round-C-U7TZKG.js → user-round-CLy1Qy1Y.js} +1 -1
  239. package/dist/client/assets/{vennDiagram-T6HMQDX7-fZAexcYr.js → vennDiagram-T6HMQDX7-8iiroXim.js} +1 -1
  240. package/dist/client/assets/{vscode-icons-BYX6fBsM.js → vscode-icons-CJBVQtq5.js} +1 -1
  241. package/dist/client/assets/{wardley-WFR3VGLG-gdYWSMxK.js → wardley-WFR3VGLG-DpyNUbTc.js} +1 -1
  242. package/dist/client/assets/{wardleyDiagram-T6FBY63Y-iDJxQb70.js → wardleyDiagram-T6FBY63Y-CI7is3QO.js} +1 -1
  243. package/dist/client/assets/{workspaceMetadataProjection-So9-wSEZ.js → workspaceMetadataProjection-aqZEXDrQ.js} +1 -1
  244. package/dist/client/assets/{wrench-D79uBUSl.js → wrench-7pbbxqrZ.js} +1 -1
  245. package/dist/client/assets/{xychartDiagram-ELKLHX3M-B4cfMwpJ.js → xychartDiagram-ELKLHX3M-BTEX3m2y.js} +1 -1
  246. package/dist/client/index.html +1 -1
  247. package/dist/{deviceHostWorker-CYnrwfrv.cjs → deviceHostWorker-D4HauWIV.cjs} +1 -1
  248. package/dist/{git-BKwGfw8A.mjs → git-9xWsJYIH.mjs} +1 -1
  249. package/dist/{git-Dn5wrgFY.cjs → git-xIkXFy_l.cjs} +2 -2
  250. package/dist/{makeManagedServerProvider-B_lPFNpL.mjs → makeManagedServerProvider-B90UKjnv.mjs} +1 -1
  251. package/dist/{makeManagedServerProvider-CUwxc0Pn.cjs → makeManagedServerProvider-CF776SAO.cjs} +2 -2
  252. package/dist/resource-monitor/ryco-resource-monitor +0 -0
  253. package/dist/resource-monitor/ryco-resource-monitor.exe +0 -0
  254. package/dist/resource-monitor/win32-arm64/ryco-resource-monitor.exe +0 -0
  255. package/dist/resource-monitor/win32-x64/ryco-resource-monitor.exe +0 -0
  256. package/dist/{rolldown-runtime-LGfotAqq.cjs → rolldown-runtime-HbSU0i7K.cjs} +7 -0
  257. package/dist/{src-BzVJd3Me.cjs → src-CARHuYkT.cjs} +1059 -178
  258. package/dist/{src-7E1M4gTQ.mjs → src-CtsgPPhb.mjs} +198 -97
  259. package/package.json +1 -1
  260. package/dist/client/assets/DialogRoot-k2_0SNKA.js +0 -1
  261. package/dist/client/assets/architecture-7GRP2DOG-CQNNG5gU.js +0 -1
  262. package/dist/client/assets/channel-BtX-w3CK.js +0 -1
  263. package/dist/client/assets/chevron-right-Ddq5gL-L.js +0 -1
  264. package/dist/client/assets/classDiagram-JCYQIIEL-BgDa3HFl.js +0 -1
  265. package/dist/client/assets/classDiagram-v2-OCEON4UE-BgDa3HFl.js +0 -1
  266. package/dist/client/assets/eventmodeling-NTZA5JFV-DpzGHjmu.js +0 -1
  267. package/dist/client/assets/flowDiagram-UKHOOZJN-CaDVMm72.js +0 -1
  268. package/dist/client/assets/hostedPairing-CqhLPQqG.js +0 -1
  269. package/dist/client/assets/railroad-abnf-HS5TGJTU-B890iayj.js +0 -1
  270. package/dist/client/assets/railroad-ebnf-LZEXJU2U-C079Tzw6.js +0 -1
  271. package/dist/client/assets/railroad-peg-WCYAUIDC-DxvOX5Rh.js +0 -1
  272. package/dist/client/assets/runtime-OM-uAtaj.js +0 -18
  273. package/dist/client/assets/square-Cd2WS1gv.js +0 -1
  274. package/dist/client/assets/stateDiagram-v2-UEYNNEHI-BnzsGHaN.js +0 -1
  275. package/dist/client/assets/storeSelectors-D60AAN01.js +0 -1
  276. package/dist/client/assets/swimlanesDiagram-ULZ7WXOC-BnA-oDvU.js +0 -8
  277. package/dist/client/assets/useAppSidebarCollapsed-C0jpPtER.js +0 -1
  278. package/dist/client/assets/useBaseUiId-Bz8dcyjd.js +0 -1
@@ -1,4 +1,4 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Jt as t,Kt as n,Yt as r,q as i,qt as a}from"./primary-CQh_KHGG.js";import{bt as o,f as s,h as c,ja as l,l as u,m as d,nt as f,p}from"./src-DHNjfMxR.js";import{$l as m,A as h,B as g,Bn as _,E as v,It as y,Kr as b,O as x,Pt as S,Qr as C,R as w,S as T,Ya as E,cr as D,ei as O,fr as k,gr as A,ho as j,j as M,jn as N,k as P,ni as F,oo as ee,p as te,ri as I,sr as L,ui as R,w as z,x as ne,y as re,z as ie}from"./runtime-OM-uAtaj.js";import{t as B}from"./react-CwJFpaho.js";import{$ as ae,C as oe,Cn as V,Ct as se,Dt as H,Et as ce,F as le,G as U,Gt as ue,I as de,Jt as W,L as fe,Nr as pe,P as me,Qt as G,Sn as K,T as he,Tr as ge,Tt as _e,Un as ve,Vn as q,W as ye,Xt as be,Yt as xe,Zt as Se,br as Ce,c as we,cn as J,d as Te,dn as Ee,et as De,f as Oe,gn as ke,hn as Ae,i as je,kr as Me,mn as Y,n as Ne,p as Pe,qn as Fe,qt as Ie,t as Le,u as Re,ut as ze,x as Be,xn as Ve,yn as He,yr as Ue,zn as We}from"./switch-D9inWKdd.js";import{t as Ge}from"./compiler-runtime-C4g8XhC5.js";import{a as Ke,c as qe,n as Je,o as Ye,s as Xe}from"./badge-BswOCwph.js";import{i as Ze,n as Qe,t as $e}from"./capabilities-Bj_X9FZ-.js";import{n as et,t as tt}from"./LazyBrowserPanel-B6POLJh3.js";import{t as X}from"./toastHelpers-CSQRKo4F.js";import{A as nt,b as rt,l as it,s as at}from"./sidebarUndo-BHFfJj0k.js";import{t as ot}from"./usePresentationTier-hxB7Yv_Q.js";import{t as st}from"./input-CzU08wbL.js";import{t as ct}from"./scroll-area-BC-LB_zE.js";import{H as lt,R as ut,U as dt,X as ft}from"./main-RFllWEko.js";var pt={name:`pin`,size:24,node:[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]};pt.node;var mt=j(pt),ht={name:`settings-2`,size:24,node:[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]};ht.node;var gt=j(ht),_t={name:`sliders-horizontal`,size:24,node:[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]};_t.node;var vt=j(_t),Z=Ge();function yt(e){return e===`/`||e===`\\`||/^[a-zA-Z]:[/\\]?$/.test(e)}function bt(e){return M(e)||P(e)?`windows`:e.startsWith(`/`)?`unix`:null}function xt(e){if(e.length===0||yt(e))return e;let t=bt(e)===`unix`?e.replace(/\/+$/g,``):e.replace(/[\\/]+$/g,``);return t.length===0?e:/^[a-zA-Z]:$/.test(t)?`${t}\\`:t}function St(e){let t=bt(e);return t===`windows`?`\\`:t===`unix`?`/`:e.includes(`\\`)?`\\`:`/`}function Ct(e){return(bt(e)===`unix`?/\/$/:/[\\/]$/).test(e)}function wt(e,t){return e.split(t===`/`?/\/+/:/[\\/]+/).filter(Boolean)}function Tt(e){return bt(e)===`unix`?e.lastIndexOf(`/`):Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`))}function Et(e){if(M(e)){let t=`${e.slice(0,2)}\\`;return{root:t,separator:`\\`,segments:wt(e.slice(t.length),`\\`)}}if(P(e)){let[t,n,...r]=wt(e,`\\`);return!t||!n?null:{root:`\\\\${t}\\${n}\\`,separator:`\\`,segments:r}}return e.startsWith(`/`)?{root:`/`,separator:`/`,segments:wt(e.slice(1),`/`)}:null}function Dt(e,t=typeof navigator>`u`?``:navigator.platform){let n=F(t);return e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`.\\`)||e.startsWith(`..\\`)||e.startsWith(`/`)||e.startsWith(`~/`)||n&&h(e)}function Ot(e,t){return h(e)&&!F(t)}function kt(e){return xt(e.trim())}function At(e,t){let n=e.trim();if(!x(n)||!t)return kt(n);let r=Et(kt(t));if(!r)return kt(n);let i=[...r.segments];for(let e of n.split(/[\\/]+/))if(e.length!==0&&e!==`.`){if(e===`..`){i.pop();continue}i.push(e)}let a=i.join(r.separator);return a.length===0?kt(r.root):kt(`${r.root}${a}`)}function jt(e){let t=kt(e);return M(t)||t.startsWith(`\\\\`)?t.replaceAll(`/`,`\\`).toLowerCase():t}function Mt(e,t){let n=jt(t);if(n.length!==0)return e.find(e=>jt(e.cwd)===n)}function Nt(e){let t=kt(e),n=Et(t);return n?n.segments.findLast(Boolean)??t:t.split(/[/\\]/).findLast(Boolean)??t}function Pt(e,t){let n=St(e);return`${It(e)}${t}${n}`}function Ft(e){let t=Tt(e);return e.slice(t+1)}function It(e){if(Ct(e))return e;let t=Tt(e);return t<0?e:e.slice(0,t+1)}function Lt(e){let t=e.trim();return t.length===0||Ct(t)?t:`${t}${St(t)}`}function Rt(e){let t=e.workspaceAccessRoot?.trim()??``;if(t.length>0)return Lt(t);let n=e.configuredBaseDirectory?.trim()??``;return n.length>0?Lt(n):`~/`}function zt(e){let t=xt(e),n=Et(t);if(n){if(n.segments.length===0)return null;if(n.segments.length===1)return n.root;let e=n.segments.slice(0,-1).join(n.separator);return`${n.root}${e}${n.separator}`}let r=St(e),i=Tt(t);return i<0?null:i===2&&/^[a-zA-Z]:/.test(t)?`${t.slice(0,2)}${r}`:t.slice(0,i+1)}function Bt(e){return Ct(e)&&zt(e)!==null}function Vt(e,t){let n=xt(e.trim()),r=xt(t.trim());return bt(n)===`windows`||bt(r)===`windows`?n.replace(/\//g,`\\`).toLowerCase()===r.replace(/\//g,`\\`).toLowerCase():n===r}var Ht=new Set([`idle`,`in_progress`,`review`,`done`]),Ut=new Set([`main`,`branch`,`pr`,`issue`,`manual`]);function Wt(e,t){let n=[...e],i=new Set(e.map(e=>r(a(e.environmentId,e.id))));for(let e of t){let t=r(a(e.environmentId,e.id));i.has(t)||(i.add(t),n.push(e))}return n}function Gt(e){let i=e.project.projectKey,o=new Map(e.project.memberProjects.map(e=>[t(n(e.environmentId,e.id)),e])),s={...e.project,id:i},c=e.threads.map(s=>Yt({lastVisitedAt:e.lastVisitedAtByThreadKey?.get(r(a(s.environmentId,s.id)))??null,logicalProjectId:i,sourceProjectCwd:o.get(t(n(s.environmentId,s.projectId)))?.cwd??e.project.cwd,thread:s})),l=Zt(e.project,i,e.worktrees??[]);return{project:s,threads:c,worktrees:[...rn({logicalProjectId:i,project:e.project,threads:c}),...l]}}function Kt(e){let t=qt(e),n=e.projectKey,r=[],i=[];return a=>{let o=[];for(let[e,n]of Object.entries(a.draftThreadsByThreadKey))Jt(n,t)&&o.push([e,n]);return o.length===r.length&&o.every((e,t)=>{let n=r[t];return n?.[0]===e[0]&&n[1]===e[1]})?i:(r=o,i=o.map(([t,r])=>Xt({draftId:t,logicalProjectId:n,sourceProjectCwd:pn(e,r),draftThread:r})),i)}}function qt(e){return new Set(e.memberProjects.map(e=>t(n(e.environmentId,e.id))))}function Jt(e,r){return e.promotedTo==null&&r.has(t(n(e.environmentId,e.projectId)))}function Yt(e){let t=e.thread,n=dn(t.statusPill)||t.statusPill===null?t.statusPill:rt({thread:{...e.thread,...e.lastVisitedAt?{lastVisitedAt:e.lastVisitedAt}:{}}});return{...e.thread,projectId:e.logicalProjectId,manualStatusBucket:on(t.manualStatusBucket)??on(t.manualBucket)??on(t.statusBucket)??null,sourceProjectId:e.thread.projectId,sourceProjectCwd:e.sourceProjectCwd,statusPill:n,worktreeId:typeof t.worktreeId==`string`?t.worktreeId:null}}function Xt(e){return{archivedAt:null,settledOverride:null,settledAt:null,branch:e.draftThread.branch,createdAt:e.draftThread.createdAt,draftId:e.draftId,environmentId:e.draftThread.environmentId,hasActionableProposedPlan:!1,hasPendingApprovals:!1,hasPendingUserInput:!1,id:e.draftThread.threadId,interactionMode:e.draftThread.interactionMode??`default`,tokenMode:e.draftThread.tokenMode??E,latestTurn:null,latestUserMessageAt:null,manualStatusBucket:null,projectId:e.logicalProjectId,session:null,sourceProjectId:e.draftThread.projectId,sourceProjectCwd:e.sourceProjectCwd,statusPill:null,title:`New thread`,updatedAt:e.draftThread.createdAt,worktreePath:e.draftThread.worktreePath}}function Zt(e,r,i){let a=e.memberProjects.find(t=>t.id===e.id&&t.environmentId===e.environmentId)??e.memberProjects[0];if(!a)return[];let o=new Map(e.memberProjects.map(e=>[t(n(e.environmentId,e.id)),e])),s=i.map(e=>({value:e,fallbackProject:o.get(t(n(e.environmentId,e.projectId)))??a})),c=[e,...e.memberProjects];for(let e of c){let t=e;if(Array.isArray(t.worktrees))for(let n of t.worktrees)s.push({value:n,fallbackProject:`physicalProjectKey`in e?e:a});if(Array.isArray(t.sidebarWorktrees))for(let n of t.sidebarWorktrees)s.push({value:n,fallbackProject:`physicalProjectKey`in e?e:a})}return s.flatMap(({value:e,fallbackProject:i},a)=>{if(!e||typeof e!=`object`)return[];let s=e,c=cn(s.branch);if(!c)return[];let l=cn(s.environmentId)??i.environmentId,u=cn(s.projectId)??i.id,d=o.get(t(n(l,u)))??i,f=ln(s.worktreePath),p=sn(s.origin)??(f===null?`main`:`manual`),m=cn(s.worktreeId)??cn(s.id)??an({branch:c,fallbackIndex:a,environmentId:l,origin:p,sourceProjectId:u,worktreePath:f});return[{archivedAt:ln(s.archivedAt),branch:c,environmentId:l,issueNumber:un(s.issueNumber),manualPosition:un(s.manualPosition),origin:p,prNumber:un(s.prNumber),prState:Qt(s.prState),prIsDraft:nn(s.prIsDraft),issueState:$t(s.issueState),workItemProvider:en(s.workItemProvider),workItemKey:ln(s.workItemKey),workItemTitle:ln(s.workItemTitle),workItemState:tn(s.workItemState),workItemStateName:ln(s.workItemStateName),workItemUrl:ln(s.workItemUrl),projectId:r,sourceProjectCwd:d.cwd,sourceProjectId:u,title:ln(s.title),updatedAt:cn(s.updatedAt),worktreeId:m,worktreePath:f}]})}function Qt(e){return e===`open`||e===`closed`||e===`merged`?e:null}function $t(e){return e===`open`||e===`closed`?e:null}function en(e){return e===`jira`?e:null}function tn(e){return e===`open`||e===`in_progress`||e===`done`||e===`closed`||e===`unknown`?e:null}function nn(e){return typeof e==`boolean`?e:null}function rn(e){return e.project.memberProjects.map((t,n)=>{let r=e.threads.filter(e=>e.environmentId===t.environmentId&&e.sourceProjectId===t.id&&e.worktreePath===null).toSorted((e,t)=>fn(e.updatedAt??e.createdAt,t.updatedAt??t.createdAt))[0];return{archivedAt:null,branch:r?.branch??`main`,environmentId:t.environmentId,manualPosition:n,origin:`main`,projectId:e.logicalProjectId,sourceProjectCwd:t.cwd,sourceProjectId:t.id,title:null,updatedAt:r?.updatedAt??r?.createdAt??t.updatedAt,worktreeId:`main:${t.environmentId}:${t.id}`,worktreePath:null}})}function an(e){let t=e.worktreePath??e.branch;return`${e.origin}:${e.environmentId}:${e.sourceProjectId}:${t||e.fallbackIndex}`}function on(e){return typeof e==`string`&&Ht.has(e)?e:null}function sn(e){return typeof e==`string`&&Ut.has(e)?e:null}function cn(e){return typeof e==`string`&&e.length>0?e:void 0}function ln(e){return typeof e==`string`&&e.length>0?e:null}function un(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function dn(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.label==`string`&&typeof t.colorClass==`string`&&typeof t.dotClass==`string`&&typeof t.pulse==`boolean`}function fn(e,t){let n=e?Date.parse(e):-1/0,r=t?Date.parse(t):-1/0,i=Number.isNaN(n)?-1/0:n;return(Number.isNaN(r)?-1/0:r)-i}function pn(e,t){return e.memberProjects.find(e=>e.environmentId===t.environmentId&&e.id===t.projectId)?.cwd??e.cwd}function mn(e){let t=Wn(hn(e.threads),e=>e.projectId),n=Wn(e.worktrees??[],e=>String(e.projectId));return{projects:e.projects.map(r=>{let i=t.get(r.id)??[],a=i.filter(e=>e.draftId!==void 0&&e.archivedAt===null),o=i.filter(e=>e.draftId===void 0),s=Vn(r,e.isGitRepoByProjectId),c=o.filter(e=>e.archivedAt!==null);if(!s)return{archivedSessions:c,archivedWorktrees:[],draftSessions:a,flatSessions:i.filter(e=>e.archivedAt===null),isGitRepo:s,project:r,worktrees:[]};let l=bn(r,An({project:r,threads:o,worktrees:n.get(r.id)??[]})),u=l.worktrees;return{archivedSessions:c,archivedWorktrees:In(u).filter(e=>e.archivedAt!=null).map(t=>_n({diffStats:Bn(e,t.worktreeId),nowMs:e.nowMs,threads:o.filter(e=>yn(e,t,r,l)),worktree:t})),flatSessions:[],draftSessions:a,isGitRepo:s,project:r,worktrees:In(u).filter(e=>e.archivedAt==null).map(t=>_n({diffStats:Bn(e,t.worktreeId),nowMs:e.nowMs,threads:o.filter(e=>yn(e,t,r,l)),worktree:t}))}})}}function hn(e){let t=new Set;return e.filter(e=>{let n=JSON.stringify([e.environmentId,e.id]);return!t.has(n)&&(t.add(n),!0)})}function gn(e){let t=(0,Z.c)(8),{diffStatsByWorktreeId:n,diffStatsByWorktreeIdRecord:r,isGitRepoByProjectId:i,nowMs:a,projects:o,threads:s,worktrees:c}=e,l;return t[0]!==n||t[1]!==r||t[2]!==i||t[3]!==a||t[4]!==o||t[5]!==s||t[6]!==c?(l=mn({diffStatsByWorktreeId:n,diffStatsByWorktreeIdRecord:r,isGitRepoByProjectId:i,nowMs:a??Date.now(),projects:o,threads:s,worktrees:c}),t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=s,t[6]=c,t[7]=l):l=t[7],l}function _n(e){let t={done:[],idle:[],in_progress:[],review:[]},n=[],r=[],i=[];for(let a of e.threads){if(a.archivedAt!==null){r.push(a);continue}i.push(a);let e=vn(a);n.push(e),t[e].push(a)}return{aggregateStatus:at(n),archivedSessions:r,buckets:t,diffStats:e.diffStats,sessions:i,shouldSuggestArchive:nt({buckets:n,latestUpdatedAt:zn(e.threads),nowMs:e.nowMs}),worktree:e.worktree}}function vn(e){return it({manualBucket:e.manualStatusBucket??null,statusPill:e.statusPill??rt({thread:e})})}function yn(e,t,n,r){let i=Mn(e,n),a=Nn(t,n);if(i!==null&&r.directoryKeys.has(i))return i===a;let o=e.worktreeId==null?void 0:r.nodeIdByWorktreeId.get(e.worktreeId);return o===void 0?i!==null&&a!==null?i===a:e.worktreeId!=null&&e.worktreeId===t.worktreeId?!0:e.worktreePath!==null||t.worktreePath!==null?!1:t.origin===`main`?e.branch===null||e.branch===t.branch||Fn(e.branch):e.branch===t.branch:o===t.worktreeId}function bn(e,t){let n=new Map,r=new Map;for(let i of t){let t=xn(e,i),a=n.get(t);r.set(i.worktreeId,t),n.set(t,a?Cn(a,i):i)}let i=new Set,a=new Map;for(let[e,t]of r){let r=n.get(t);r&&a.set(e,r.worktreeId)}for(let t of n.values()){let n=Nn(t,e);n!==null&&i.add(n)}return{directoryKeys:i,nodeIdByWorktreeId:a,worktrees:[...n.values()]}}function xn(e,t){return Nn(t,e)??`${t.projectId}:${t.origin}:${t.worktreeId}:${t.branch}`}function Sn(e){return jt(e)}function Cn(e,t){let n=wn(e,t),r=e.origin===`main`||t.origin!==`main`?e.origin:t.origin;return{...e,archivedAt:On(e.archivedAt,t.archivedAt),branch:n.branch,environmentId:n.environmentId??e.environmentId??t.environmentId,manualPosition:kn(e.manualPosition,t.manualPosition),origin:r,prNumber:e.prNumber??t.prNumber??null,issueNumber:e.issueNumber??t.issueNumber??null,prState:n.prState??null,prIsDraft:n.prIsDraft??null,issueState:n.issueState??null,workItemProvider:e.workItemProvider??t.workItemProvider??null,workItemKey:e.workItemKey??t.workItemKey??null,workItemTitle:e.workItemTitle??t.workItemTitle??null,workItemState:n.workItemState??null,workItemStateName:n.workItemStateName??null,workItemUrl:e.workItemUrl??t.workItemUrl??null,sourceProjectCwd:n.sourceProjectCwd??e.sourceProjectCwd??t.sourceProjectCwd,sourceProjectId:n.sourceProjectId??e.sourceProjectId??t.sourceProjectId,title:Tn(e,t),updatedAt:Rn(e.updatedAt,t.updatedAt),worktreeId:En(e,t),worktreePath:r===`main`?null:e.worktreePath??t.worktreePath}}function wn(e,t){let n=e.updatedAt?Date.parse(e.updatedAt):-1/0,r=t.updatedAt?Date.parse(t.updatedAt):-1/0;return Number.isNaN(r)||r<=n?e:t}function Tn(e,t){if(e.title==null)return t.title??null;if(t.title==null)return e.title;let n=e.updatedAt?Date.parse(e.updatedAt):-1/0,r=t.updatedAt?Date.parse(t.updatedAt):-1/0;return Number.isNaN(n)?t.title:Number.isNaN(r)?e.title:r>n?t.title:e.title}function En(e,t){let n=Dn(e.worktreeId),r=Dn(t.worktreeId);return n&&!r?t.worktreeId:r&&!n||e.origin===`main`?e.worktreeId:t.origin===`main`?t.worktreeId:e.worktreeId}function Dn(e){return/^(main|branch|pr|issue|manual):/.test(e)}function On(e,t){return e==null||t==null?null:Rn(e,t)}function kn(e,t){return e==null?t:t==null?e:Math.min(e,t)}function An(e){let t=new Set(e.worktrees.map(e=>e.worktreeId));return[...e.worktrees,...e.threads.filter(e=>e.worktreeId==null||!t.has(e.worktreeId)).map(t=>jn(e.project,t))]}function jn(e,t){let n=t.branch??`main`,r=t.worktreePath===null&&Fn(t.branch)?`main`:`branch`;return{archivedAt:null,branch:n,environmentId:t.environmentId,manualPosition:r===`main`?0:null,origin:r,projectId:e.id,sourceProjectCwd:t.sourceProjectCwd??e.cwd,sourceProjectId:t.sourceProjectId??t.projectId,updatedAt:t.updatedAt??t.createdAt,worktreeId:r===`main`?`main:${e.environmentId}:${e.id}`:`branch:${e.environmentId}:${e.id}:${t.worktreePath?Sn(t.worktreePath):n}`,worktreePath:t.worktreePath}}function Mn(e,t){return Pn({directory:e.worktreePath??e.sourceProjectCwd??t.cwd,environmentId:e.environmentId})}function Nn(e,t){return Pn({directory:e.worktreePath??e.sourceProjectCwd??t.cwd,environmentId:e.environmentId??t.environmentId})}function Pn(e){let t=Sn(e.directory);return t.length===0?null:JSON.stringify([e.environmentId,t])}function Fn(e){return e==null||e===`main`||e===`master`||e===`trunk`}function In(e){return[...e].toSorted((e,t)=>{if(e.origin===`main`&&t.origin!==`main`)return-1;if(t.origin===`main`&&e.origin!==`main`)return 1;let n=e.manualPosition??2**53-1,r=t.manualPosition??2**53-1;if(n!==r)return n-r;let i=Ln(e.updatedAt,t.updatedAt);return i===0?e.branch.localeCompare(t.branch)||e.worktreeId.localeCompare(t.worktreeId):i})}function Ln(e,t){let n=t?Date.parse(t):-1/0,r=e?Date.parse(e):-1/0;return(Number.isNaN(n)?-1/0:n)-(Number.isNaN(r)?-1/0:r)}function Rn(e,t){if(!e)return t;if(!t)return e;let n=Date.parse(e),r=Date.parse(t);return Number.isNaN(n)?t:Number.isNaN(r)?e:r>n?t:e}function zn(e){return e.map(e=>e.updatedAt??e.createdAt).filter(e=>e!==void 0).toSorted((e,t)=>Date.parse(t)-Date.parse(e))[0]}function Bn(e,t){return e.diffStatsByWorktreeId?e.diffStatsByWorktreeId.get(t)??null:e.diffStatsByWorktreeIdRecord?.[t]??null}function Vn(e,t){let n=Hn(t,e.id);return n===void 0||n}function Hn(e,t){if(e)return Un(e)?e.get(t):e[String(t)]}function Un(e){return e instanceof Map}function Wn(e,t){let n=new Map;for(let r of e){let e=t(r),i=n.get(e);i?i.push(r):n.set(e,[r])}return n}var Q=e(B(),1),$=m();function Gn(e){let t=(0,Z.c)(9),[n,r]=(0,Q.useState)(!1),i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsxs)(H,{className:`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-xs text-muted-foreground hover:bg-accent hover:text-foreground`,children:[(0,$.jsx)(Ce,{className:`size-3.5`}),`Live preview`]}),t[0]=i):i=t[0];let a;t[1]!==n||t[2]!==e?(a=n?(0,$.jsx)(tt,{...e}):null,t[1]=n,t[2]=e,t[3]=a):a=t[3];let o;t[4]===a?o=t[5]:(o=(0,$.jsx)(ce,{side:`right`,align:`start`,className:`w-[min(640px,calc(100vw-32px))]`,viewportClassName:`p-0`,children:(0,$.jsx)(`div`,{className:`flex h-[min(520px,75vh)] min-h-0 flex-col`,"aria-label":`Project live preview`,children:a})}),t[4]=a,t[5]=o);let s;return t[6]!==n||t[7]!==o?(s=(0,$.jsx)(`div`,{className:`phone:hidden`,children:(0,$.jsxs)(_e,{open:n,onOpenChange:r,children:[i,o]})}),t[6]=n,t[7]=o,t[8]=s):s=t[8],s}var Kn={repository:`Group by repository`,repository_path:`Group by repository path`,separate:`Keep separate`};function qn(e,t){return t<=1?e.name:e.environmentLabel?`${e.environmentLabel} — ${e.cwd}`:e.cwd}function Jn(e){switch(e){case`repository`:return`Projects from the same repository share one sidebar row.`;case`repository_path`:return`Projects group only when both the repository and repo-relative path match.`;case`separate`:return`Every project path gets its own sidebar row.`}}function Yn(e){switch(e){case`github`:return`GitHub`;case`gitlab`:return`GitLab`;case`forgejo`:return`Forgejo`;case`azure-devops`:return`Azure DevOps`;case`bitbucket`:return`Bitbucket`;default:return`Remote`}}function Xn(e){switch(e){case`github`:return Ve;case`gitlab`:return V;case`forgejo`:return He;case`azure-devops`:return Ae;case`bitbucket`:return ke;default:return K}}function Zn(e){return e.replace(/\/+$/g,``).replace(/\.git$/i,``)}function Qn(e,t){if(e!==`ssh.dev.azure.com`)return null;let n=t.indexOf(`v3`);if(n===-1||t.length<n+4)return null;let r=t[n+1],i=t[n+2],a=t[n+3];return!r||!i||!a?null:`https://dev.azure.com/${r}/${i}/_git/${a}`}function $n(e){let t=e.trim();if(t.length===0)return null;if(/^https?:\/\//i.test(t))try{let e=new URL(t);return e.pathname=Zn(e.pathname),e.search=``,e.hash=``,e.toString()}catch{return null}if(/^(?:ssh|git):\/\//i.test(t))try{let e=new URL(t),n=Zn(e.pathname).split(`/`).filter(e=>e.length>0),r=Qn(e.hostname,n);if(r)return r;let i=n.join(`/`);return e.hostname&&i?`https://${e.hostname}/${i}`:null}catch{return null}let n=/^git@([^:/\s]+)[:/]([^#?\s]+)$/i.exec(t);if(n?.[1]&&n[2]){let e=n[1],t=Zn(n[2]);return Qn(e,t.split(`/`).filter(e=>e.length>0))||`https://${e}/${t}`}return null}function er(e,t){if(!e)return null;let n=(()=>{if(t){let n=(e.remotes??[]).find(e=>e.name===t);if(n)return{url:n.url,label:n.ownerRepo??n.url,provider:n.provider??void 0}}return{url:e.locator.remoteUrl,label:e.displayName??e.canonicalKey,provider:e.provider??void 0}})(),r=$n(n.url);return r?{url:r,label:n.label,provider:n.provider,providerLabel:Yn(n.provider)}:null}function tr(e){let r=(0,Z.c)(7),{memberThreadCountByPhysicalKey:i,jiraProjectOpenUrlByProjectKey:a}=e,o=ar,s;r[0]===a?s=r[1]:(s=e=>{let r=a.get(t(n(e.environmentId,e.id)))??null;if(!r){b.add({type:`warning`,title:`No Jira project link available`});return}let i=A();if(!i){b.add({type:`error`,title:`Link opening is unavailable.`});return}i.shell.openExternal(r).catch(ir)},r[0]=a,r[1]=s);let c=s,l=rr,u;r[2]===i?u=r[3]:(u=async e=>{let t=A();if(!t)return;let r=n(e.environmentId,e.id);if((i.get(e.physicalProjectKey)??0)>0){let n=b.add(X({type:`warning`,title:`Project is not empty`,description:`Delete all threads in this project before removing it.`,actionVariant:`destructive`,actionProps:{children:`Delete anyway`,onClick:()=>{(async()=>{b.close(n),await new Promise(nr);let i=N(_.getState(),[r]);await t.dialogs.confirm(i.length>0?[`Remove project "${e.name}" and delete its ${i.length} thread${i.length===1?``:`s`}?`,`Path: ${e.cwd}`,...e.environmentLabel?[`Environment: ${e.environmentLabel}`]:[],`This permanently clears conversation history for those threads.`,`This removes only this project entry.`,`This action cannot be undone.`].join(`
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Jt as t,Kt as n,Yt as r,q as i,qt as a}from"./primary-DZjgHvyf.js";import{bt as o,f as s,h as c,ja as l,l as u,m as d,nt as f,p}from"./src-C3Y_imaX.js";import{$l as m,A as h,B as g,Bn as _,E as v,It as y,Kr as b,O as x,Pt as S,Qr as C,R as w,S as T,Ya as E,cr as D,ei as O,fr as k,gr as A,ho as j,j as M,jn as N,k as P,ni as F,oo as ee,p as te,ri as I,sr as L,ui as R,w as z,x as ne,y as re,z as ie}from"./runtime-BwHA1GUS.js";import{t as B}from"./react-CwJFpaho.js";import{$ as ae,C as oe,Cn as V,Ct as se,Dt as H,Et as ce,F as le,G as U,Gt as ue,I as de,Jt as W,L as fe,Nr as pe,P as me,Qt as G,Sn as K,T as he,Tr as ge,Tt as _e,Un as ve,Vn as q,W as ye,Xt as be,Yt as xe,Zt as Se,br as Ce,c as we,cn as J,d as Te,dn as Ee,et as De,f as Oe,gn as ke,hn as Ae,i as je,kr as Me,mn as Y,n as Ne,p as Pe,qn as Fe,qt as Ie,t as Le,u as Re,ut as ze,x as Be,xn as Ve,yn as He,yr as Ue,zn as We}from"./switch-DnpJB2xv.js";import{t as Ge}from"./compiler-runtime-C4g8XhC5.js";import{a as Ke,c as qe,n as Je,o as Ye,s as Xe}from"./badge-2AZ3HfVS.js";import{i as Ze,n as Qe,t as $e}from"./capabilities-CsHjxjab.js";import{n as et,t as tt}from"./LazyBrowserPanel-D4e76vc_.js";import{t as X}from"./toastHelpers-CSQRKo4F.js";import{A as nt,b as rt,l as it,s as at}from"./sidebarUndo-gdSrfa4O.js";import{t as ot}from"./usePresentationTier-hxB7Yv_Q.js";import{t as st}from"./input-BDWSVClC.js";import{t as ct}from"./scroll-area-7n2X_RLQ.js";import{H as lt,R as ut,U as dt,X as ft}from"./main-DAbEANjY.js";var pt={name:`pin`,size:24,node:[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]};pt.node;var mt=j(pt),ht={name:`settings-2`,size:24,node:[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]};ht.node;var gt=j(ht),_t={name:`sliders-horizontal`,size:24,node:[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]};_t.node;var vt=j(_t),Z=Ge();function yt(e){return e===`/`||e===`\\`||/^[a-zA-Z]:[/\\]?$/.test(e)}function bt(e){return M(e)||P(e)?`windows`:e.startsWith(`/`)?`unix`:null}function xt(e){if(e.length===0||yt(e))return e;let t=bt(e)===`unix`?e.replace(/\/+$/g,``):e.replace(/[\\/]+$/g,``);return t.length===0?e:/^[a-zA-Z]:$/.test(t)?`${t}\\`:t}function St(e){let t=bt(e);return t===`windows`?`\\`:t===`unix`?`/`:e.includes(`\\`)?`\\`:`/`}function Ct(e){return(bt(e)===`unix`?/\/$/:/[\\/]$/).test(e)}function wt(e,t){return e.split(t===`/`?/\/+/:/[\\/]+/).filter(Boolean)}function Tt(e){return bt(e)===`unix`?e.lastIndexOf(`/`):Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`))}function Et(e){if(M(e)){let t=`${e.slice(0,2)}\\`;return{root:t,separator:`\\`,segments:wt(e.slice(t.length),`\\`)}}if(P(e)){let[t,n,...r]=wt(e,`\\`);return!t||!n?null:{root:`\\\\${t}\\${n}\\`,separator:`\\`,segments:r}}return e.startsWith(`/`)?{root:`/`,separator:`/`,segments:wt(e.slice(1),`/`)}:null}function Dt(e,t=typeof navigator>`u`?``:navigator.platform){let n=F(t);return e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`.\\`)||e.startsWith(`..\\`)||e.startsWith(`/`)||e.startsWith(`~/`)||n&&h(e)}function Ot(e,t){return h(e)&&!F(t)}function kt(e){return xt(e.trim())}function At(e,t){let n=e.trim();if(!x(n)||!t)return kt(n);let r=Et(kt(t));if(!r)return kt(n);let i=[...r.segments];for(let e of n.split(/[\\/]+/))if(e.length!==0&&e!==`.`){if(e===`..`){i.pop();continue}i.push(e)}let a=i.join(r.separator);return a.length===0?kt(r.root):kt(`${r.root}${a}`)}function jt(e){let t=kt(e);return M(t)||t.startsWith(`\\\\`)?t.replaceAll(`/`,`\\`).toLowerCase():t}function Mt(e,t){let n=jt(t);if(n.length!==0)return e.find(e=>jt(e.cwd)===n)}function Nt(e){let t=kt(e),n=Et(t);return n?n.segments.findLast(Boolean)??t:t.split(/[/\\]/).findLast(Boolean)??t}function Pt(e,t){let n=St(e);return`${It(e)}${t}${n}`}function Ft(e){let t=Tt(e);return e.slice(t+1)}function It(e){if(Ct(e))return e;let t=Tt(e);return t<0?e:e.slice(0,t+1)}function Lt(e){let t=e.trim();return t.length===0||Ct(t)?t:`${t}${St(t)}`}function Rt(e){let t=e.workspaceAccessRoot?.trim()??``;if(t.length>0)return Lt(t);let n=e.configuredBaseDirectory?.trim()??``;return n.length>0?Lt(n):`~/`}function zt(e){let t=xt(e),n=Et(t);if(n){if(n.segments.length===0)return null;if(n.segments.length===1)return n.root;let e=n.segments.slice(0,-1).join(n.separator);return`${n.root}${e}${n.separator}`}let r=St(e),i=Tt(t);return i<0?null:i===2&&/^[a-zA-Z]:/.test(t)?`${t.slice(0,2)}${r}`:t.slice(0,i+1)}function Bt(e){return Ct(e)&&zt(e)!==null}function Vt(e,t){let n=xt(e.trim()),r=xt(t.trim());return bt(n)===`windows`||bt(r)===`windows`?n.replace(/\//g,`\\`).toLowerCase()===r.replace(/\//g,`\\`).toLowerCase():n===r}var Ht=new Set([`idle`,`in_progress`,`review`,`done`]),Ut=new Set([`main`,`branch`,`pr`,`issue`,`manual`]);function Wt(e,t){let n=[...e],i=new Set(e.map(e=>r(a(e.environmentId,e.id))));for(let e of t){let t=r(a(e.environmentId,e.id));i.has(t)||(i.add(t),n.push(e))}return n}function Gt(e){let i=e.project.projectKey,o=new Map(e.project.memberProjects.map(e=>[t(n(e.environmentId,e.id)),e])),s={...e.project,id:i},c=e.threads.map(s=>Yt({lastVisitedAt:e.lastVisitedAtByThreadKey?.get(r(a(s.environmentId,s.id)))??null,logicalProjectId:i,sourceProjectCwd:o.get(t(n(s.environmentId,s.projectId)))?.cwd??e.project.cwd,thread:s})),l=Zt(e.project,i,e.worktrees??[]);return{project:s,threads:c,worktrees:[...rn({logicalProjectId:i,project:e.project,threads:c}),...l]}}function Kt(e){let t=qt(e),n=e.projectKey,r=[],i=[];return a=>{let o=[];for(let[e,n]of Object.entries(a.draftThreadsByThreadKey))Jt(n,t)&&o.push([e,n]);return o.length===r.length&&o.every((e,t)=>{let n=r[t];return n?.[0]===e[0]&&n[1]===e[1]})?i:(r=o,i=o.map(([t,r])=>Xt({draftId:t,logicalProjectId:n,sourceProjectCwd:pn(e,r),draftThread:r})),i)}}function qt(e){return new Set(e.memberProjects.map(e=>t(n(e.environmentId,e.id))))}function Jt(e,r){return e.promotedTo==null&&r.has(t(n(e.environmentId,e.projectId)))}function Yt(e){let t=e.thread,n=dn(t.statusPill)||t.statusPill===null?t.statusPill:rt({thread:{...e.thread,...e.lastVisitedAt?{lastVisitedAt:e.lastVisitedAt}:{}}});return{...e.thread,projectId:e.logicalProjectId,manualStatusBucket:on(t.manualStatusBucket)??on(t.manualBucket)??on(t.statusBucket)??null,sourceProjectId:e.thread.projectId,sourceProjectCwd:e.sourceProjectCwd,statusPill:n,worktreeId:typeof t.worktreeId==`string`?t.worktreeId:null}}function Xt(e){return{archivedAt:null,settledOverride:null,settledAt:null,branch:e.draftThread.branch,createdAt:e.draftThread.createdAt,draftId:e.draftId,environmentId:e.draftThread.environmentId,hasActionableProposedPlan:!1,hasPendingApprovals:!1,hasPendingUserInput:!1,id:e.draftThread.threadId,interactionMode:e.draftThread.interactionMode??`default`,tokenMode:e.draftThread.tokenMode??E,latestTurn:null,latestUserMessageAt:null,manualStatusBucket:null,projectId:e.logicalProjectId,session:null,sourceProjectId:e.draftThread.projectId,sourceProjectCwd:e.sourceProjectCwd,statusPill:null,title:`New thread`,updatedAt:e.draftThread.createdAt,worktreePath:e.draftThread.worktreePath}}function Zt(e,r,i){let a=e.memberProjects.find(t=>t.id===e.id&&t.environmentId===e.environmentId)??e.memberProjects[0];if(!a)return[];let o=new Map(e.memberProjects.map(e=>[t(n(e.environmentId,e.id)),e])),s=i.map(e=>({value:e,fallbackProject:o.get(t(n(e.environmentId,e.projectId)))??a})),c=[e,...e.memberProjects];for(let e of c){let t=e;if(Array.isArray(t.worktrees))for(let n of t.worktrees)s.push({value:n,fallbackProject:`physicalProjectKey`in e?e:a});if(Array.isArray(t.sidebarWorktrees))for(let n of t.sidebarWorktrees)s.push({value:n,fallbackProject:`physicalProjectKey`in e?e:a})}return s.flatMap(({value:e,fallbackProject:i},a)=>{if(!e||typeof e!=`object`)return[];let s=e,c=cn(s.branch);if(!c)return[];let l=cn(s.environmentId)??i.environmentId,u=cn(s.projectId)??i.id,d=o.get(t(n(l,u)))??i,f=ln(s.worktreePath),p=sn(s.origin)??(f===null?`main`:`manual`),m=cn(s.worktreeId)??cn(s.id)??an({branch:c,fallbackIndex:a,environmentId:l,origin:p,sourceProjectId:u,worktreePath:f});return[{archivedAt:ln(s.archivedAt),branch:c,environmentId:l,issueNumber:un(s.issueNumber),manualPosition:un(s.manualPosition),origin:p,prNumber:un(s.prNumber),prState:Qt(s.prState),prIsDraft:nn(s.prIsDraft),issueState:$t(s.issueState),workItemProvider:en(s.workItemProvider),workItemKey:ln(s.workItemKey),workItemTitle:ln(s.workItemTitle),workItemState:tn(s.workItemState),workItemStateName:ln(s.workItemStateName),workItemUrl:ln(s.workItemUrl),projectId:r,sourceProjectCwd:d.cwd,sourceProjectId:u,title:ln(s.title),updatedAt:cn(s.updatedAt),worktreeId:m,worktreePath:f}]})}function Qt(e){return e===`open`||e===`closed`||e===`merged`?e:null}function $t(e){return e===`open`||e===`closed`?e:null}function en(e){return e===`jira`?e:null}function tn(e){return e===`open`||e===`in_progress`||e===`done`||e===`closed`||e===`unknown`?e:null}function nn(e){return typeof e==`boolean`?e:null}function rn(e){return e.project.memberProjects.map((t,n)=>{let r=e.threads.filter(e=>e.environmentId===t.environmentId&&e.sourceProjectId===t.id&&e.worktreePath===null).toSorted((e,t)=>fn(e.updatedAt??e.createdAt,t.updatedAt??t.createdAt))[0];return{archivedAt:null,branch:r?.branch??`main`,environmentId:t.environmentId,manualPosition:n,origin:`main`,projectId:e.logicalProjectId,sourceProjectCwd:t.cwd,sourceProjectId:t.id,title:null,updatedAt:r?.updatedAt??r?.createdAt??t.updatedAt,worktreeId:`main:${t.environmentId}:${t.id}`,worktreePath:null}})}function an(e){let t=e.worktreePath??e.branch;return`${e.origin}:${e.environmentId}:${e.sourceProjectId}:${t||e.fallbackIndex}`}function on(e){return typeof e==`string`&&Ht.has(e)?e:null}function sn(e){return typeof e==`string`&&Ut.has(e)?e:null}function cn(e){return typeof e==`string`&&e.length>0?e:void 0}function ln(e){return typeof e==`string`&&e.length>0?e:null}function un(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function dn(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.label==`string`&&typeof t.colorClass==`string`&&typeof t.dotClass==`string`&&typeof t.pulse==`boolean`}function fn(e,t){let n=e?Date.parse(e):-1/0,r=t?Date.parse(t):-1/0,i=Number.isNaN(n)?-1/0:n;return(Number.isNaN(r)?-1/0:r)-i}function pn(e,t){return e.memberProjects.find(e=>e.environmentId===t.environmentId&&e.id===t.projectId)?.cwd??e.cwd}function mn(e){let t=Wn(hn(e.threads),e=>e.projectId),n=Wn(e.worktrees??[],e=>String(e.projectId));return{projects:e.projects.map(r=>{let i=t.get(r.id)??[],a=i.filter(e=>e.draftId!==void 0&&e.archivedAt===null),o=i.filter(e=>e.draftId===void 0),s=Vn(r,e.isGitRepoByProjectId),c=o.filter(e=>e.archivedAt!==null);if(!s)return{archivedSessions:c,archivedWorktrees:[],draftSessions:a,flatSessions:i.filter(e=>e.archivedAt===null),isGitRepo:s,project:r,worktrees:[]};let l=bn(r,An({project:r,threads:o,worktrees:n.get(r.id)??[]})),u=l.worktrees;return{archivedSessions:c,archivedWorktrees:In(u).filter(e=>e.archivedAt!=null).map(t=>_n({diffStats:Bn(e,t.worktreeId),nowMs:e.nowMs,threads:o.filter(e=>yn(e,t,r,l)),worktree:t})),flatSessions:[],draftSessions:a,isGitRepo:s,project:r,worktrees:In(u).filter(e=>e.archivedAt==null).map(t=>_n({diffStats:Bn(e,t.worktreeId),nowMs:e.nowMs,threads:o.filter(e=>yn(e,t,r,l)),worktree:t}))}})}}function hn(e){let t=new Set;return e.filter(e=>{let n=JSON.stringify([e.environmentId,e.id]);return!t.has(n)&&(t.add(n),!0)})}function gn(e){let t=(0,Z.c)(8),{diffStatsByWorktreeId:n,diffStatsByWorktreeIdRecord:r,isGitRepoByProjectId:i,nowMs:a,projects:o,threads:s,worktrees:c}=e,l;return t[0]!==n||t[1]!==r||t[2]!==i||t[3]!==a||t[4]!==o||t[5]!==s||t[6]!==c?(l=mn({diffStatsByWorktreeId:n,diffStatsByWorktreeIdRecord:r,isGitRepoByProjectId:i,nowMs:a??Date.now(),projects:o,threads:s,worktrees:c}),t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=s,t[6]=c,t[7]=l):l=t[7],l}function _n(e){let t={done:[],idle:[],in_progress:[],review:[]},n=[],r=[],i=[];for(let a of e.threads){if(a.archivedAt!==null){r.push(a);continue}i.push(a);let e=vn(a);n.push(e),t[e].push(a)}return{aggregateStatus:at(n),archivedSessions:r,buckets:t,diffStats:e.diffStats,sessions:i,shouldSuggestArchive:nt({buckets:n,latestUpdatedAt:zn(e.threads),nowMs:e.nowMs}),worktree:e.worktree}}function vn(e){return it({manualBucket:e.manualStatusBucket??null,statusPill:e.statusPill??rt({thread:e})})}function yn(e,t,n,r){let i=Mn(e,n),a=Nn(t,n);if(i!==null&&r.directoryKeys.has(i))return i===a;let o=e.worktreeId==null?void 0:r.nodeIdByWorktreeId.get(e.worktreeId);return o===void 0?i!==null&&a!==null?i===a:e.worktreeId!=null&&e.worktreeId===t.worktreeId?!0:e.worktreePath!==null||t.worktreePath!==null?!1:t.origin===`main`?e.branch===null||e.branch===t.branch||Fn(e.branch):e.branch===t.branch:o===t.worktreeId}function bn(e,t){let n=new Map,r=new Map;for(let i of t){let t=xn(e,i),a=n.get(t);r.set(i.worktreeId,t),n.set(t,a?Cn(a,i):i)}let i=new Set,a=new Map;for(let[e,t]of r){let r=n.get(t);r&&a.set(e,r.worktreeId)}for(let t of n.values()){let n=Nn(t,e);n!==null&&i.add(n)}return{directoryKeys:i,nodeIdByWorktreeId:a,worktrees:[...n.values()]}}function xn(e,t){return Nn(t,e)??`${t.projectId}:${t.origin}:${t.worktreeId}:${t.branch}`}function Sn(e){return jt(e)}function Cn(e,t){let n=wn(e,t),r=e.origin===`main`||t.origin!==`main`?e.origin:t.origin;return{...e,archivedAt:On(e.archivedAt,t.archivedAt),branch:n.branch,environmentId:n.environmentId??e.environmentId??t.environmentId,manualPosition:kn(e.manualPosition,t.manualPosition),origin:r,prNumber:e.prNumber??t.prNumber??null,issueNumber:e.issueNumber??t.issueNumber??null,prState:n.prState??null,prIsDraft:n.prIsDraft??null,issueState:n.issueState??null,workItemProvider:e.workItemProvider??t.workItemProvider??null,workItemKey:e.workItemKey??t.workItemKey??null,workItemTitle:e.workItemTitle??t.workItemTitle??null,workItemState:n.workItemState??null,workItemStateName:n.workItemStateName??null,workItemUrl:e.workItemUrl??t.workItemUrl??null,sourceProjectCwd:n.sourceProjectCwd??e.sourceProjectCwd??t.sourceProjectCwd,sourceProjectId:n.sourceProjectId??e.sourceProjectId??t.sourceProjectId,title:Tn(e,t),updatedAt:Rn(e.updatedAt,t.updatedAt),worktreeId:En(e,t),worktreePath:r===`main`?null:e.worktreePath??t.worktreePath}}function wn(e,t){let n=e.updatedAt?Date.parse(e.updatedAt):-1/0,r=t.updatedAt?Date.parse(t.updatedAt):-1/0;return Number.isNaN(r)||r<=n?e:t}function Tn(e,t){if(e.title==null)return t.title??null;if(t.title==null)return e.title;let n=e.updatedAt?Date.parse(e.updatedAt):-1/0,r=t.updatedAt?Date.parse(t.updatedAt):-1/0;return Number.isNaN(n)?t.title:Number.isNaN(r)?e.title:r>n?t.title:e.title}function En(e,t){let n=Dn(e.worktreeId),r=Dn(t.worktreeId);return n&&!r?t.worktreeId:r&&!n||e.origin===`main`?e.worktreeId:t.origin===`main`?t.worktreeId:e.worktreeId}function Dn(e){return/^(main|branch|pr|issue|manual):/.test(e)}function On(e,t){return e==null||t==null?null:Rn(e,t)}function kn(e,t){return e==null?t:t==null?e:Math.min(e,t)}function An(e){let t=new Set(e.worktrees.map(e=>e.worktreeId));return[...e.worktrees,...e.threads.filter(e=>e.worktreeId==null||!t.has(e.worktreeId)).map(t=>jn(e.project,t))]}function jn(e,t){let n=t.branch??`main`,r=t.worktreePath===null&&Fn(t.branch)?`main`:`branch`;return{archivedAt:null,branch:n,environmentId:t.environmentId,manualPosition:r===`main`?0:null,origin:r,projectId:e.id,sourceProjectCwd:t.sourceProjectCwd??e.cwd,sourceProjectId:t.sourceProjectId??t.projectId,updatedAt:t.updatedAt??t.createdAt,worktreeId:r===`main`?`main:${e.environmentId}:${e.id}`:`branch:${e.environmentId}:${e.id}:${t.worktreePath?Sn(t.worktreePath):n}`,worktreePath:t.worktreePath}}function Mn(e,t){return Pn({directory:e.worktreePath??e.sourceProjectCwd??t.cwd,environmentId:e.environmentId})}function Nn(e,t){return Pn({directory:e.worktreePath??e.sourceProjectCwd??t.cwd,environmentId:e.environmentId??t.environmentId})}function Pn(e){let t=Sn(e.directory);return t.length===0?null:JSON.stringify([e.environmentId,t])}function Fn(e){return e==null||e===`main`||e===`master`||e===`trunk`}function In(e){return[...e].toSorted((e,t)=>{if(e.origin===`main`&&t.origin!==`main`)return-1;if(t.origin===`main`&&e.origin!==`main`)return 1;let n=e.manualPosition??2**53-1,r=t.manualPosition??2**53-1;if(n!==r)return n-r;let i=Ln(e.updatedAt,t.updatedAt);return i===0?e.branch.localeCompare(t.branch)||e.worktreeId.localeCompare(t.worktreeId):i})}function Ln(e,t){let n=t?Date.parse(t):-1/0,r=e?Date.parse(e):-1/0;return(Number.isNaN(n)?-1/0:n)-(Number.isNaN(r)?-1/0:r)}function Rn(e,t){if(!e)return t;if(!t)return e;let n=Date.parse(e),r=Date.parse(t);return Number.isNaN(n)?t:Number.isNaN(r)?e:r>n?t:e}function zn(e){return e.map(e=>e.updatedAt??e.createdAt).filter(e=>e!==void 0).toSorted((e,t)=>Date.parse(t)-Date.parse(e))[0]}function Bn(e,t){return e.diffStatsByWorktreeId?e.diffStatsByWorktreeId.get(t)??null:e.diffStatsByWorktreeIdRecord?.[t]??null}function Vn(e,t){let n=Hn(t,e.id);return n===void 0||n}function Hn(e,t){if(e)return Un(e)?e.get(t):e[String(t)]}function Un(e){return e instanceof Map}function Wn(e,t){let n=new Map;for(let r of e){let e=t(r),i=n.get(e);i?i.push(r):n.set(e,[r])}return n}var Q=e(B(),1),$=m();function Gn(e){let t=(0,Z.c)(9),[n,r]=(0,Q.useState)(!1),i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsxs)(H,{className:`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-xs text-muted-foreground hover:bg-accent hover:text-foreground`,children:[(0,$.jsx)(Ce,{className:`size-3.5`}),`Live preview`]}),t[0]=i):i=t[0];let a;t[1]!==n||t[2]!==e?(a=n?(0,$.jsx)(tt,{...e}):null,t[1]=n,t[2]=e,t[3]=a):a=t[3];let o;t[4]===a?o=t[5]:(o=(0,$.jsx)(ce,{side:`right`,align:`start`,className:`w-[min(640px,calc(100vw-32px))]`,viewportClassName:`p-0`,children:(0,$.jsx)(`div`,{className:`flex h-[min(520px,75vh)] min-h-0 flex-col`,"aria-label":`Project live preview`,children:a})}),t[4]=a,t[5]=o);let s;return t[6]!==n||t[7]!==o?(s=(0,$.jsx)(`div`,{className:`phone:hidden`,children:(0,$.jsxs)(_e,{open:n,onOpenChange:r,children:[i,o]})}),t[6]=n,t[7]=o,t[8]=s):s=t[8],s}var Kn={repository:`Group by repository`,repository_path:`Group by repository path`,separate:`Keep separate`};function qn(e,t){return t<=1?e.name:e.environmentLabel?`${e.environmentLabel} — ${e.cwd}`:e.cwd}function Jn(e){switch(e){case`repository`:return`Projects from the same repository share one sidebar row.`;case`repository_path`:return`Projects group only when both the repository and repo-relative path match.`;case`separate`:return`Every project path gets its own sidebar row.`}}function Yn(e){switch(e){case`github`:return`GitHub`;case`gitlab`:return`GitLab`;case`forgejo`:return`Forgejo`;case`azure-devops`:return`Azure DevOps`;case`bitbucket`:return`Bitbucket`;default:return`Remote`}}function Xn(e){switch(e){case`github`:return Ve;case`gitlab`:return V;case`forgejo`:return He;case`azure-devops`:return Ae;case`bitbucket`:return ke;default:return K}}function Zn(e){return e.replace(/\/+$/g,``).replace(/\.git$/i,``)}function Qn(e,t){if(e!==`ssh.dev.azure.com`)return null;let n=t.indexOf(`v3`);if(n===-1||t.length<n+4)return null;let r=t[n+1],i=t[n+2],a=t[n+3];return!r||!i||!a?null:`https://dev.azure.com/${r}/${i}/_git/${a}`}function $n(e){let t=e.trim();if(t.length===0)return null;if(/^https?:\/\//i.test(t))try{let e=new URL(t);return e.pathname=Zn(e.pathname),e.search=``,e.hash=``,e.toString()}catch{return null}if(/^(?:ssh|git):\/\//i.test(t))try{let e=new URL(t),n=Zn(e.pathname).split(`/`).filter(e=>e.length>0),r=Qn(e.hostname,n);if(r)return r;let i=n.join(`/`);return e.hostname&&i?`https://${e.hostname}/${i}`:null}catch{return null}let n=/^git@([^:/\s]+)[:/]([^#?\s]+)$/i.exec(t);if(n?.[1]&&n[2]){let e=n[1],t=Zn(n[2]);return Qn(e,t.split(`/`).filter(e=>e.length>0))||`https://${e}/${t}`}return null}function er(e,t){if(!e)return null;let n=(()=>{if(t){let n=(e.remotes??[]).find(e=>e.name===t);if(n)return{url:n.url,label:n.ownerRepo??n.url,provider:n.provider??void 0}}return{url:e.locator.remoteUrl,label:e.displayName??e.canonicalKey,provider:e.provider??void 0}})(),r=$n(n.url);return r?{url:r,label:n.label,provider:n.provider,providerLabel:Yn(n.provider)}:null}function tr(e){let r=(0,Z.c)(7),{memberThreadCountByPhysicalKey:i,jiraProjectOpenUrlByProjectKey:a}=e,o=ar,s;r[0]===a?s=r[1]:(s=e=>{let r=a.get(t(n(e.environmentId,e.id)))??null;if(!r){b.add({type:`warning`,title:`No Jira project link available`});return}let i=A();if(!i){b.add({type:`error`,title:`Link opening is unavailable.`});return}i.shell.openExternal(r).catch(ir)},r[0]=a,r[1]=s);let c=s,l=rr,u;r[2]===i?u=r[3]:(u=async e=>{let t=A();if(!t)return;let r=n(e.environmentId,e.id);if((i.get(e.physicalProjectKey)??0)>0){let n=b.add(X({type:`warning`,title:`Project is not empty`,description:`Delete all threads in this project before removing it.`,actionVariant:`destructive`,actionProps:{children:`Delete anyway`,onClick:()=>{(async()=>{b.close(n),await new Promise(nr);let i=N(_.getState(),[r]);await t.dialogs.confirm(i.length>0?[`Remove project "${e.name}" and delete its ${i.length} thread${i.length===1?``:`s`}?`,`Path: ${e.cwd}`,...e.environmentLabel?[`Environment: ${e.environmentLabel}`]:[],`This permanently clears conversation history for those threads.`,`This removes only this project entry.`,`This action cannot be undone.`].join(`
2
2
  `):[`Remove project "${e.name}"?`,`Path: ${e.cwd}`,...e.environmentLabel?[`Environment: ${e.environmentLabel}`]:[],`This removes only this project entry.`].join(`
3
3
  `))&&await l(e,{force:!0})})().catch(t=>{let n=t instanceof Error?t.message:`Unknown error removing project.`;console.error(`Failed to remove project`,{projectId:e.id,environmentId:e.environmentId,error:t}),b.add(X({type:`error`,title:`Failed to remove "${e.name}"`,description:n}))})}}}));return}let a=[`Remove project "${e.name}"?`,`Path: ${e.cwd}`,...e.environmentLabel?[`Environment: ${e.environmentLabel}`]:[],`This removes only this project entry.`].join(`
4
4
  `);if(await t.dialogs.confirm(a))try{await l(e)}catch(t){let n=t,r=n instanceof Error?n.message:`Unknown error removing project.`;console.error(`Failed to remove project`,{projectId:e.id,environmentId:e.environmentId,error:n}),b.add(X({type:`error`,title:`Failed to remove "${e.name}"`,description:r}))}},r[2]=i,r[3]=u);let d=u,f;return r[4]!==d||r[5]!==c?(f={openProjectRemoteLink:o,openProjectJiraLink:c,removeProject:l,handleRemoveProject:d},r[4]=d,r[5]=c,r[6]=f):f=r[6],f}function nr(e){window.setTimeout(e,180)}async function rr(e,t){let r=t===void 0?{}:t,i=n(e.environmentId,e.id),a=R.getState(),o=a.getDraftThreadByProjectRef(i);o&&a.clearDraftThread(o.draftId),a.clearProjectDraftThreadId(i);let s=L(e.environmentId);if(!s)throw Error(`Project API unavailable.`);await s.orchestration.dispatchCommand({type:`project.delete`,commandId:I(),projectId:e.id,...r.force===!0?{force:!0}:{}})}function ir(e){b.add(X({type:`error`,title:`Unable to open Jira project`,description:e instanceof Error?e.message:`An error occurred.`}))}function ar(e){let t=er(e.repositoryIdentity,e.preferredRemoteName);if(!t){b.add({type:`warning`,title:`No remote link available`});return}let n=A();if(!n){b.add({type:`error`,title:`Link opening is unavailable.`});return}n.shell.openExternal(t.url).catch(or)}function or(e){b.add(X({type:`error`,title:`Unable to open remote repository`,description:e instanceof Error?e.message:`An error occurred.`}))}function sr(e){let r=(0,Z.c)(18),{project:i,jiraProjectOpenUrlByProjectKey:a,suppressProjectClickForContextMenuRef:o,onOpenOverview:s,openProjectSettingsDialog:c,openProjectRemoteLink:l,openProjectJiraLink:u,openProjectRenameDialog:d,openProjectGroupingDialog:f,copyPathToClipboard:p,handleRemoveProject:m}=e,h;r[0]!==p||r[1]!==m||r[2]!==a||r[3]!==s||r[4]!==f||r[5]!==u||r[6]!==l||r[7]!==d||r[8]!==c||r[9]!==i.groupedProjectCount||r[10]!==i.memberProjects?(h=e=>{(async()=>{let r=A();if(!r)return;let o=new Map;o.set(`project-overview`,()=>{s()});let h=(e,t,n)=>{let r=`${e}:${t.physicalProjectKey}`;return o.set(r,()=>{switch(e){case`settings`:c(t);return;case`open-remote`:l(t);return;case`open-jira`:u(t);return;case`rename`:d(t);return;case`grouping`:f(t);return;case`copy-path`:p(t.cwd,{path:t.cwd});return;case`delete`:return m(t)}}),{id:r,label:qn(t,i.groupedProjectCount),...n?.destructive?{destructive:!0}:{},...n?.disabled?{disabled:!0}:{}}},g=(e,t,n)=>{if(i.memberProjects.length===1){let r=i.memberProjects[0];return{...h(e,r,{...n?.destructive?{destructive:!0}:{},...n?.isDisabled?.(r)?{disabled:!0}:{}}),label:t}}return{id:`${e}:submenu`,label:t,children:i.memberProjects.map(t=>h(e,t,{...n?.destructive?{destructive:!0}:{},...n?.isDisabled?.(t)?{disabled:!0}:{}}))}},_=i.memberProjects.some(lr),v=i.memberProjects.some(e=>a.has(t(n(e.environmentId,e.id)))),y=[{id:`project-overview`,label:`Project overview`},g(`settings`,`Project settings`),..._?[g(`open-remote`,`Open remote`,{isDisabled:cr})]:[],...v?[g(`open-jira`,`Open Jira project`,{isDisabled:e=>!a.has(t(n(e.environmentId,e.id)))})]:[],g(`rename`,`Rename project`),g(`grouping`,`Project grouping…`),g(`copy-path`,`Copy Project Path`),g(`delete`,`Remove project`,{destructive:!0})],b=await r.contextMenu.show(y,e);b&&await o.get(b)?.()})()},r[0]=p,r[1]=m,r[2]=a,r[3]=s,r[4]=f,r[5]=u,r[6]=l,r[7]=d,r[8]=c,r[9]=i.groupedProjectCount,r[10]=i.memberProjects,r[11]=h):h=r[11];let g=h,_;r[12]!==g||r[13]!==o?(_=e=>{e.preventDefault(),o.current=!0,g({x:e.clientX,y:e.clientY})},r[12]=g,r[13]=o,r[14]=_):_=r[14];let v=_,y;return r[15]!==v||r[16]!==g?(y={handleProjectButtonContextMenu:v,openProjectMenu:g},r[15]=v,r[16]=g,r[17]=y):y=r[17],y}function cr(e){return er(e.repositoryIdentity,e.preferredRemoteName)===null}function lr(e){return er(e.repositoryIdentity,e.preferredRemoteName)!==null}function ur(e){let t=(0,Z.c)(3),n;return t[0]!==e.cwd||t[1]!==e.environmentId?(n=(0,$.jsx)(U,{environmentId:e.environmentId,cwd:e.cwd,title:`Actions`,description:`Recent GitHub Actions workflow runs grouped by pull request or branch.`,groupRunsBySource:!0}),t[0]=e.cwd,t[1]=e.environmentId,t[2]=n):n=t[2],n}var dr=20,fr=5;function pr(e,t=dr){return e>=t?`${t}+`:String(e)}function mr(e){let t=(0,Z.c)(113),n;t[0]!==e.cwd||t[1]!==e.environmentId?(n={environmentId:e.environmentId,cwd:e.cwd,state:`open`,limit:dr},t[0]=e.cwd,t[1]=e.environmentId,t[2]=n):n=t[2];let r=ve(n),i;t[3]!==e.cwd||t[4]!==e.environmentId?(i={environmentId:e.environmentId,cwd:e.cwd,state:`open`,limit:dr},t[3]=e.cwd,t[4]=e.environmentId,t[5]=i):i=t[5];let a=q(i),o;t[6]!==e.cwd||t[7]!==e.environmentId?(o={environmentId:e.environmentId,cwd:e.cwd,limit:dr},t[6]=e.cwd,t[7]=e.environmentId,t[8]=o):o=t[8];let s=Fe(o),c=e.environmentId!==null&&e.projectId!==null,l;t[9]!==e.environmentId||t[10]!==e.projectId||t[11]!==c?(l={environmentId:e.environmentId,projectId:e.projectId,enabled:c},t[9]=e.environmentId,t[10]=e.projectId,t[11]=c,t[12]=l):l=t[12];let u=oe(l),d=u.data?.jiraConnectionId!==null&&u.data?.jiraConnectionId!==void 0&&u.data.jiraProjectKeys.length>0,f;t[13]!==d||t[14]!==e.environmentId||t[15]!==e.projectId?(f={environmentId:e.environmentId,projectId:e.projectId,state:`open`,limit:dr,enabled:d},t[13]=d,t[14]=e.environmentId,t[15]=e.projectId,t[16]=f):f=t[16];let p=de(f),m;t[17]===r.data?m=t[18]:(m=r.data??[],t[17]=r.data,t[18]=m);let h=m,g;t[19]===a.data?g=t[20]:(g=a.data??[],t[19]=a.data,t[20]=g);let _=g,v;t[21]===s.data?.runs?v=t[22]:(v=s.data?.runs??[],t[21]=s.data?.runs,t[22]=v);let y=v,b;t[23]===p.data?b=t[24]:(b=p.data??[],t[23]=p.data,t[24]=b);let x=b,S;t[25]!==e.cwd||t[26]!==e.environmentId?(S=(0,$.jsx)(`div`,{className:`px-4 pt-3`,children:(0,$.jsx)(Gn,{environmentId:e.environmentId,cwd:e.cwd})}),t[25]=e.cwd,t[26]=e.environmentId,t[27]=S):S=t[27];let w;t[28]===h.length?w=t[29]:(w=pr(h.length),t[28]=h.length,t[29]=w);let T;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(pe,{className:`size-3.5`}),t[30]=T):T=t[30];let E;t[31]===e?E=t[32]:(E=()=>e.onOpenTab(`issues`),t[31]=e,t[32]=E);let D;t[33]!==w||t[34]!==E?(D=(0,$.jsx)(yr,{label:`Open issues`,value:w,icon:T,accentClassName:`border-emerald-500/18 bg-emerald-500/8 text-emerald-600 dark:text-emerald-300`,onClick:E}),t[33]=w,t[34]=E,t[35]=D):D=t[35];let O;t[36]===_.length?O=t[37]:(O=pr(_.length),t[36]=_.length,t[37]=O);let k;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,$.jsx)(Ze,{className:`size-3.5`}),t[38]=k):k=t[38];let A;t[39]===e?A=t[40]:(A=()=>e.onOpenTab(`prs`),t[39]=e,t[40]=A);let j;t[41]!==O||t[42]!==A?(j=(0,$.jsx)(yr,{label:`Open pull requests`,value:O,icon:k,accentClassName:`border-emerald-500/18 bg-emerald-500/8 text-emerald-600 dark:text-emerald-300`,onClick:A}),t[41]=O,t[42]=A,t[43]=j):j=t[43];let M;t[44]===y.length?M=t[45]:(M=pr(y.length),t[44]=y.length,t[45]=M);let N;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsx)(Ue,{className:`size-3.5`}),t[46]=N):N=t[46];let P;t[47]===e?P=t[48]:(P=()=>e.onOpenTab(`actions`),t[47]=e,t[48]=P);let F;t[49]!==M||t[50]!==P?(F=(0,$.jsx)(yr,{label:`Actions`,value:M,icon:N,accentClassName:`border-amber-500/18 bg-amber-500/8 text-amber-600 dark:text-amber-300`,onClick:P}),t[49]=M,t[50]=P,t[51]=F):F=t[51];let ee;t[52]!==d||t[53]!==x?(ee=d?pr(x.length):`Not linked`,t[52]=d,t[53]=x,t[54]=ee):ee=t[54];let te;t[55]===Symbol.for(`react.memo_cache_sentinel`)?(te=(0,$.jsx)(Y,{className:`size-3.5`}),t[55]=te):te=t[55];let I;t[56]===e?I=t[57]:(I=()=>e.onOpenTab(`workItems`),t[56]=e,t[57]=I);let L;t[58]!==ee||t[59]!==I?(L=(0,$.jsx)(yr,{label:`Open Jira`,value:ee,icon:te,accentClassName:`border-violet-500/18 bg-violet-500/8 text-violet-600 dark:text-violet-300`,onClick:I}),t[58]=ee,t[59]=I,t[60]=L):L=t[60];let R;t[61]!==D||t[62]!==j||t[63]!==F||t[64]!==L?(R=(0,$.jsxs)(`div`,{className:`grid gap-3 p-4 sm:grid-cols-2 xl:grid-cols-4`,children:[D,j,F,L]}),t[61]=D,t[62]=j,t[63]=F,t[64]=L,t[65]=R):R=t[65];let z;t[66]===h.length?z=t[67]:(z=pr(h.length),t[66]=h.length,t[67]=z);let ne=r.error,re=r.isLoading,ie;t[68]===h?ie=t[69]:(ie=h.slice(0,fr),t[68]=h,t[69]=ie);let B;t[70]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,$.jsx)(pe,{className:`size-4`}),t[70]=B):B=t[70];let ae;t[71]===e?ae=t[72]:(ae=()=>e.onOpenTab(`issues`),t[71]=e,t[72]=ae);let V;t[73]===e?V=t[74]:(V=t=>(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full min-w-0 items-center gap-2 rounded-sm px-2 py-1.5 text-left hover:bg-accent/50 focus-visible:bg-accent/60 focus-visible:outline-none`,onClick:()=>e.onSelectIssue(t),children:[(0,$.jsxs)(`span`,{className:`shrink-0 text-muted-foreground text-xs`,children:[`#`,t.number]}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm`,children:t.title}),(0,$.jsx)(`span`,{className:`shrink-0 text-[11px] text-muted-foreground`,children:t.state})]}),t[73]=e,t[74]=V);let se;t[75]!==r.error||t[76]!==r.isLoading||t[77]!==z||t[78]!==ie||t[79]!==ae||t[80]!==V?(se=(0,$.jsx)(br,{title:`Issues`,description:`Open source-control issues for this repository.`,countLabel:z,emptyText:`No open issues.`,error:ne,isLoading:re,items:ie,icon:B,accentClassName:`text-emerald-600 dark:text-emerald-300`,onOpenTab:ae,keyForItem:_r,renderItem:V}),t[75]=r.error,t[76]=r.isLoading,t[77]=z,t[78]=ie,t[79]=ae,t[80]=V,t[81]=se):se=t[81];let H;t[82]===_.length?H=t[83]:(H=pr(_.length),t[82]=_.length,t[83]=H);let ce=a.error,le=a.isLoading,U;t[84]===_?U=t[85]:(U=_.slice(0,fr),t[84]=_,t[85]=U);let ue;t[86]===Symbol.for(`react.memo_cache_sentinel`)?(ue=(0,$.jsx)(Ze,{className:`size-4`}),t[86]=ue):ue=t[86];let W;t[87]===e?W=t[88]:(W=()=>e.onOpenTab(`prs`),t[87]=e,t[88]=W);let fe;t[89]===e?fe=t[90]:(fe=t=>(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full min-w-0 items-center gap-2 rounded-sm px-2 py-1.5 text-left hover:bg-accent/50 focus-visible:bg-accent/60 focus-visible:outline-none`,onClick:()=>e.onSelectChangeRequest(t),children:[(0,$.jsxs)(`span`,{className:`shrink-0 text-muted-foreground text-xs`,children:[`#`,t.number]}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm`,children:t.title}),(0,$.jsx)(ze,{kind:J(t.state,t.isDraft),className:`shrink-0`})]}),t[89]=e,t[90]=fe);let G;t[91]!==a.error||t[92]!==a.isLoading||t[93]!==H||t[94]!==U||t[95]!==W||t[96]!==fe?(G=(0,$.jsx)(br,{title:`Pull requests`,description:`Open pull requests and review work for this repository.`,countLabel:H,emptyText:`No open pull requests.`,error:ce,isLoading:le,items:U,icon:ue,accentClassName:`text-emerald-600 dark:text-emerald-300`,onOpenTab:W,keyForItem:gr,renderItem:fe}),t[91]=a.error,t[92]=a.isLoading,t[93]=H,t[94]=U,t[95]=W,t[96]=fe,t[97]=G):G=t[97];let K;t[98]!==d||t[99]!==u.isLoading||t[100]!==e||t[101]!==p.error||t[102]!==p.isLoading||t[103]!==x?(K=d||u.isLoading?(0,$.jsx)(br,{title:`Jira`,description:`Open Jira work items linked to this project.`,countLabel:u.isLoading?`...`:pr(x.length),emptyText:`No open Jira work items.`,error:p.error,isLoading:u.isLoading||p.isLoading,items:x.slice(0,fr),icon:(0,$.jsx)(Y,{className:`size-4`}),accentClassName:`text-violet-600 dark:text-violet-300`,onOpenTab:()=>e.onOpenTab(`workItems`),keyForItem:hr,renderItem:t=>(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full min-w-0 items-start gap-2 rounded-sm px-2 py-1.5 text-left hover:bg-accent/50 focus-visible:bg-accent/60 focus-visible:outline-none`,onClick:()=>e.onSelectWorkItem(t),children:[(0,$.jsx)(`span`,{className:`mt-0.5 shrink-0 text-muted-foreground text-xs`,children:t.key}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block truncate text-sm`,children:t.title}),(0,$.jsxs)(`span`,{className:`mt-0.5 flex flex-wrap items-center gap-1.5 text-[11px] text-muted-foreground`,children:[t.issueType?(0,$.jsx)(`span`,{children:t.issueType}):null,t.assignee?(0,$.jsx)(`span`,{children:t.assignee}):null,t.priorityDetail??t.priority?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,$.jsx)(vr,{priority:t.priorityDetail??t.priority}),t.priority]}):null]})]}),(0,$.jsx)(`span`,{className:`mt-0.5 shrink-0 text-[11px] text-muted-foreground`,children:me(t)})]})}):(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-4 py-4`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,$.jsx)(Y,{className:`mt-0.5 size-4 shrink-0`}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h3`,{className:`font-medium text-sm`,children:`Jira is not linked to this project`}),(0,$.jsx)(`p`,{className:`mt-1 text-muted-foreground text-xs`,children:`Select the Jira tab to choose the connection and project key.`})]})]}),(0,$.jsx)(C,{type:`button`,variant:`outline`,size:`sm`,className:`h-7 shrink-0`,onClick:()=>e.onOpenTab(`workItems`),children:`Configure`})]}),t[98]=d,t[99]=u.isLoading,t[100]=e,t[101]=p.error,t[102]=p.isLoading,t[103]=x,t[104]=K):K=t[104];let he;t[105]!==se||t[106]!==G||t[107]!==K?(he=(0,$.jsxs)(`div`,{className:`divide-y divide-border/60 border-border/60 border-t`,children:[se,G,K]}),t[105]=se,t[106]=G,t[107]=K,t[108]=he):he=t[108];let ge;return t[109]!==S||t[110]!==R||t[111]!==he?(ge=(0,$.jsxs)(`div`,{className:`h-full min-h-0 overflow-y-auto`,children:[S,R,he]}),t[109]=S,t[110]=R,t[111]=he,t[112]=ge):ge=t[112],ge}function hr(e){return`${e.provider}:${e.key}`}function gr(e){return`${e.provider}:${e.number}`}function _r(e){return`${e.provider}:${e.number}`}function vr(e){let t=(0,Z.c)(3),n=typeof e.priority==`string`?void 0:e.priority?.iconUrl;if(n){let e;return t[0]===n?e=t[1]:(e=(0,$.jsx)(`img`,{src:n,alt:``,className:`size-3`,loading:`lazy`,decoding:`async`}),t[0]=n,t[1]=e),e}let r;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(ge,{className:`size-3`}),t[2]=r):r=t[2],r}function yr(e){let t=(0,Z.c)(16),n;t[0]===e.accentClassName?n=t[1]:(n=O(`flex min-w-0 items-center gap-3 rounded-md border px-3 py-2 text-left transition-colors hover:bg-accent/40 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,e.accentClassName),t[0]=e.accentClassName,t[1]=n);let r;t[2]===e.icon?r=t[3]:(r=(0,$.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-md bg-background/70`,children:e.icon}),t[2]=e.icon,t[3]=r);let i;t[4]===e.value?i=t[5]:(i=(0,$.jsx)(`span`,{className:`block truncate font-semibold text-base leading-5`,children:e.value}),t[4]=e.value,t[5]=i);let a;t[6]===e.label?a=t[7]:(a=(0,$.jsx)(`span`,{className:`block truncate text-[11px] text-muted-foreground`,children:e.label}),t[6]=e.label,t[7]=a);let o;t[8]!==i||t[9]!==a?(o=(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[i,a]}),t[8]=i,t[9]=a,t[10]=o):o=t[10];let s;return t[11]!==e.onClick||t[12]!==n||t[13]!==r||t[14]!==o?(s=(0,$.jsxs)(`button`,{type:`button`,className:n,onClick:e.onClick,children:[r,o]}),t[11]=e.onClick,t[12]=n,t[13]=r,t[14]=o,t[15]=s):s=t[15],s}function br(e){let t=(0,Z.c)(30),n;t[0]===e.accentClassName?n=t[1]:(n=O(`mt-0.5 shrink-0`,e.accentClassName),t[0]=e.accentClassName,t[1]=n);let r;t[2]!==e.icon||t[3]!==n?(r=(0,$.jsx)(`span`,{className:n,children:e.icon}),t[2]=e.icon,t[3]=n,t[4]=r):r=t[4];let i;t[5]===e.title?i=t[6]:(i=(0,$.jsx)(`h3`,{className:`font-medium text-sm`,children:e.title}),t[5]=e.title,t[6]=i);let a;t[7]===e.countLabel?a=t[8]:(a=(0,$.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:e.countLabel}),t[7]=e.countLabel,t[8]=a);let o;t[9]!==i||t[10]!==a?(o=(0,$.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[i,a]}),t[9]=i,t[10]=a,t[11]=o):o=t[11];let s;t[12]===e.description?s=t[13]:(s=(0,$.jsx)(`p`,{className:`mt-0.5 text-muted-foreground text-xs`,children:e.description}),t[12]=e.description,t[13]=s);let c;t[14]!==o||t[15]!==s?(c=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[o,s]}),t[14]=o,t[15]=s,t[16]=c):c=t[16];let l;t[17]!==r||t[18]!==c?(l=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2.5`,children:[r,c]}),t[17]=r,t[18]=c,t[19]=l):l=t[19];let u;t[20]===e.onOpenTab?u=t[21]:(u=(0,$.jsx)(C,{type:`button`,variant:`ghost`,size:`sm`,className:`h-7 shrink-0 px-2 text-xs`,onClick:e.onOpenTab,children:`View all`}),t[20]=e.onOpenTab,t[21]=u);let d;t[22]!==l||t[23]!==u?(d=(0,$.jsxs)(`header`,{className:`mb-2 flex items-start justify-between gap-3`,children:[l,u]}),t[22]=l,t[23]=u,t[24]=d):d=t[24];let f;t[25]===e?f=t[26]:(f=e.error?(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-destructive/20 bg-destructive/5 px-3 py-2 text-destructive text-xs`,children:[(0,$.jsx)(ee,{className:`mt-0.5 size-3.5 shrink-0`}),(0,$.jsx)(`span`,{children:e.error instanceof Error?e.error.message:`Failed to load.`})]}):e.isLoading&&e.items.length===0?(0,$.jsx)(`p`,{className:`px-2 py-4 text-muted-foreground text-sm`,children:`Loading...`}):e.items.length===0?(0,$.jsx)(`p`,{className:`px-2 py-4 text-muted-foreground text-sm`,children:e.emptyText}):(0,$.jsx)(`div`,{className:`grid gap-1`,children:e.items.map(t=>(0,$.jsx)(`div`,{children:e.renderItem(t)},e.keyForItem(t)))}),t[25]=e,t[26]=f);let p;return t[27]!==f||t[28]!==d?(p=(0,$.jsxs)(`section`,{className:`px-4 py-4`,children:[d,f]}),t[27]=f,t[28]=d,t[29]=p):p=t[29],p}function xr(e){let t=(0,Z.c)(76),[n,r]=(0,Q.useState)(e.initialTab),[i,a]=(0,Q.useState)(``),[o,s]=(0,Q.useState)(``),[c,l]=(0,Q.useState)(``),[u,d]=(0,Q.useState)(`open`),[f,p]=(0,Q.useState)(`open`),[m,h]=(0,Q.useState)(`open`),[g,_]=(0,Q.useState)(null),v;t[0]===e.memberProjects[0]?.physicalProjectKey?v=t[1]:(v=()=>e.memberProjects[0]?.physicalProjectKey??``,t[0]=e.memberProjects[0]?.physicalProjectKey,t[1]=v);let[y,b]=(0,Q.useState)(v),x=(0,Q.useRef)(null),S=(0,Q.useRef)(null),C=(0,Q.useRef)(null),w=(0,Q.useRef)(e.open),T=(0,Q.useRef)(e.initialTab),E;t[2]===e.memberProjects?E=t[3]:(E=e.memberProjects.map(Cr),t[2]=e.memberProjects,t[3]=E);let D=E,O;t[4]===D?O=t[5]:(O=D.join(`\0`),t[4]=D,t[5]=O);let k=O,A=D[0]??``,j;t[6]!==e.memberProjects||t[7]!==y?(j=e.memberProjects.find(e=>e.physicalProjectKey===y)??e.memberProjects[0]??null,t[6]=e.memberProjects,t[7]=y,t[8]=j):j=t[8];let M=j,N,P;t[9]===e.open?(N=t[10],P=t[11]):(N=()=>{e.open||_(null)},P=[e.open],t[9]=e.open,t[10]=N,t[11]=P),(0,Q.useEffect)(N,P);let F,ee;t[12]!==A||t[13]!==D||t[14]!==e.initialTab||t[15]!==e.open?(F=()=>{let t=w.current,n=T.current;w.current=e.open,T.current=e.initialTab,e.open&&(!t||e.initialTab!==n)&&(r(e.initialTab),_(null),b(e=>D.includes(e)?e:A))},ee=[A,D,e.initialTab,e.open],t[12]=A,t[13]=D,t[14]=e.initialTab,t[15]=e.open,t[16]=F,t[17]=ee):(F=t[16],ee=t[17]),(0,Q.useEffect)(F,ee);let te;t[18]!==A||t[19]!==D||t[20]!==e.open?(te=()=>{e.open&&b(e=>D.includes(e)?e:A)},t[18]=A,t[19]=D,t[20]=e.open,t[21]=te):te=t[21];let I;t[22]!==A||t[23]!==k||t[24]!==D||t[25]!==e.open?(I=[A,k,D,e.open],t[22]=A,t[23]=k,t[24]=D,t[25]=e.open,t[26]=I):I=t[26],(0,Q.useEffect)(te,I);let L,R;t[27]!==n||t[28]!==e.open||t[29]!==g?(L=()=>{if(!e.open||g!==null)return;let t=window.requestAnimationFrame(()=>{(n===`issues`?x.current:n===`prs`?S.current:n===`workItems`?C.current:null)?.focus()});return()=>window.cancelAnimationFrame(t)},R=[e.open,n,g],t[27]=n,t[28]=e.open,t[29]=g,t[30]=L,t[31]=R):(L=t[30],R=t[31]),(0,Q.useEffect)(L,R);let z;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(z=e=>{_({kind:`issue`,number:e.number})},t[32]=z):z=t[32];let ne=z,re;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(re=e=>{_({kind:`pr`,number:e.number})},t[33]=re):re=t[33];let ie=re,B;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(B=e=>{_({kind:`workItem`,key:e.key})},t[34]=B):B=t[34];let oe=B,V;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(V=e=>{r(`issues`),_({kind:`issue`,number:e})},t[35]=V):V=t[35];let se=V,H;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(H=e=>{r(`prs`),_({kind:`pr`,number:e})},t[36]=H):H=t[36];let ce=H,U;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(U=e=>{r(`workItems`),_({kind:`workItem`,key:e})},t[37]=U):U=t[37];let de=U,W;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(W=()=>_(null),t[38]=W):W=t[38];let fe=W,pe;t[39]===n?pe=t[40]:(pe=e=>{if(!lt({currentTarget:e.currentTarget,target:e.target})&&!dt(e.target)){if(ft(e,`1`)){e.preventDefault(),r(`issues`),_(null);return}if(ft(e,`2`)){e.preventDefault(),r(`prs`),_(null);return}if(ft(e,`3`)){e.preventDefault(),r(`actions`),_(null);return}if((e.metaKey||e.ctrlKey)&&e.key===`4`){e.preventDefault(),r(`workItems`),_(null);return}e.key===`/`&&ut(e)&&(e.preventDefault(),(n===`issues`?x.current:n===`prs`?S.current:n===`workItems`?C.current:null)?.focus())}},t[39]=n,t[40]=pe);let me=pe,K;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(K={id:`overview`,label:`Overview`},t[41]=K):K=t[41];let he;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(he={id:`issues`,label:`Issues`},t[42]=he):he=t[42];let ge;t[43]===Symbol.for(`react.memo_cache_sentinel`)?(ge={id:`prs`,label:`Pull requests`},t[43]=ge):ge=t[43];let _e;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(_e={id:`actions`,label:`Actions`},t[44]=_e):_e=t[44];let ve;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(ve=[K,he,ge,_e,{id:`workItems`,label:`Jira`}],t[45]=ve):ve=t[45];let q=ve,be=n===`overview`?`Overview`:n===`issues`?`Issues`:n===`prs`?`Pull requests`:n===`actions`?`Actions`:`Jira`,xe=`${e.projectName} · ${be}`,Ce=e.memberProjects.length>1&&M!==null,J=M?.environmentId??null,Te=M?.cwd??null,Ee;t[46]===xe?Ee=t[47]:(Ee=(0,$.jsx)(G,{className:`truncate text-base`,children:xe}),t[46]=xe,t[47]=Ee);let ke;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(ke=(0,$.jsx)(`span`,{className:`shrink-0 text-muted-foreground text-xs pointer-coarse:hidden`,children:`⌘1 issues · ⌘2 PRs · ⌘3 Actions · ⌘4 Jira · / focus search · Esc close`}),t[48]=ke):ke=t[48];let Ae;t[49]===Ee?Ae=t[50]:(Ae=(0,$.jsxs)(`header`,{className:`flex items-center justify-between border-border/60 border-b py-3 pl-5 pr-14`,children:[Ee,ke]}),t[49]=Ee,t[50]=Ae);let je;t[51]!==e.memberProjects||t[52]!==y||t[53]!==Ce?(je=Ce?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 border-border/60 border-b px-5 py-2`,children:[(0,$.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:`Repository`}),(0,$.jsxs)(Je,{value:y,onValueChange:e=>{typeof e==`string`&&b(e)},children:[(0,$.jsx)(Xe,{size:`sm`,className:`min-w-56`,children:(0,$.jsx)(qe,{placeholder:`Select a repository`})}),(0,$.jsx)(Ye,{children:e.memberProjects.map(Sr)})]})]}):null,t[51]=e.memberProjects,t[52]=y,t[53]=Ce,t[54]=je):je=t[54];let Me;t[55]!==n||t[56]!==Te||t[57]!==J||t[58]!==i||t[59]!==u||t[60]!==o||t[61]!==f||t[62]!==M?.id||t[63]!==g||t[64]!==c||t[65]!==m?(Me=g===null?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ae,{tabs:q,activeId:n,onSelect:e=>r(e)}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1`,children:n===`overview`?(0,$.jsx)(mr,{environmentId:J,cwd:Te,projectId:M?.id??null,onOpenTab:r,onSelectIssue:ne,onSelectChangeRequest:ie,onSelectWorkItem:oe}):n===`issues`?(0,$.jsx)(Pe,{environmentId:J,cwd:Te,searchInputRef:x,query:i,onQueryChange:a,stateFilter:u,onStateFilterChange:d,onSelect:ne}):n===`prs`?(0,$.jsx)(Oe,{environmentId:J,cwd:Te,searchInputRef:S,query:o,onQueryChange:s,stateFilter:f,onStateFilterChange:p,onSelect:ie}):n===`actions`?(0,$.jsx)(ur,{environmentId:J,cwd:Te}):(0,$.jsx)(we,{environmentId:J,cwd:Te,projectId:M?.id??null,searchInputRef:C,query:c,onQueryChange:l,stateFilter:m,onStateFilterChange:h,onSelect:oe})})]}):g.kind===`issue`?(0,$.jsx)(De,{environmentId:J,cwd:Te,issueNumber:g.number,onBack:fe,onSelectLinkedChangeRequest:ce}):g.kind===`pr`?(0,$.jsx)(ye,{environmentId:J,cwd:Te,pullRequestNumber:g.number,onBack:fe,onSelectLinkedIssue:se,onSelectLinkedWorkItem:de,onSelectPullRequest:ce}):(0,$.jsx)(le,{environmentId:J,projectId:M?.id??null,cwd:Te,workItemKey:g.key,onBack:fe,onSelectLinkedChangeRequest:ce}),t[55]=n,t[56]=Te,t[57]=J,t[58]=i,t[59]=u,t[60]=o,t[61]=f,t[62]=M?.id,t[63]=g,t[64]=c,t[65]=m,t[66]=Me):Me=t[66];let Y;t[67]!==me||t[68]!==Ae||t[69]!==je||t[70]!==Me?(Y=(0,$.jsxs)(Se,{className:`project-glass-surface flex h-[88vh] max-h-[1060px] w-[90vw] max-w-[1340px] flex-col p-0 phone:h-[100dvh] phone:w-screen`,onKeyDown:me,surface:`glass`,children:[Ae,je,Me]}),t[67]=me,t[68]=Ae,t[69]=je,t[70]=Me,t[71]=Y):Y=t[71];let Ne;return t[72]!==e.onOpenChange||t[73]!==e.open||t[74]!==Y?(Ne=(0,$.jsx)(ue,{open:e.open,onOpenChange:e.onOpenChange,children:Y}),t[72]=e.onOpenChange,t[73]=e.open,t[74]=Y,t[75]=Ne):Ne=t[75],Ne}function Sr(e){return(0,$.jsx)(Ke,{value:e.physicalProjectKey,children:(0,$.jsxs)(`span`,{className:`truncate`,children:[e.name,e.environmentLabel?(0,$.jsxs)(`span`,{className:`ml-1 text-muted-foreground`,children:[`· `,e.environmentLabel]}):null]})},e.physicalProjectKey)}function Cr(e){return e.physicalProjectKey}var wr={materializing:`Preparing approval`,"pending-approval":`Awaiting approval`,approved:`Approved`,executing:`Dispatching`,completed:`Dispatched`,failed:`Dispatch failed`,rejected:`Rejected`,expired:`Approval expired`,cancelled:`Cancelled`};function Tr(e,t){return e.runs.filter(e=>t===`unread`?e.unread:t!==`failed`||e.run.status===`failed`)}function Er(e){let t=!1,n=0,r=!1,i=!1;return{refresh:async()=>{if(!t){if(r){i=!0;return}r=!0;do{i=!1;let r=n;try{let i=await e.api.snapshot({projectId:e.projectId});!t&&r===n&&e.onSnapshot(i)}catch{!t&&r===n&&e.onError()}if(t)break}while(i);r=!1}},invalidate:()=>{n++,i=!1},stop:()=>{t=!0}}}function Dr(e){let t=new Date(e);return new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(0,16)}var Or=`w-full rounded-md border border-input bg-background px-3 py-2 text-xs`;function kr(e){let t=e.automation?.definition,[n]=(0,Q.useState)(()=>new Intl.DateTimeFormat().resolvedOptions().timeZone),[r,i]=(0,Q.useState)(t?.execution.title??``),[a,s]=(0,Q.useState)(t?.execution.prompt??``),[c,d]=(0,Q.useState)(t?.execution.modelSelection??{instanceId:o.make(`unselected`),model:``}),[f,m]=(0,Q.useState)(t?.schedule.kind??`once`),[h,g]=(0,Q.useState)(()=>Dr(t?t.schedule.kind===`once`?t.schedule.runAt:t.schedule.startsAt:new Date(Date.now()+36e5).toISOString())),[_,v]=(0,Q.useState)(()=>Dr(t?.schedule.kind===`fixed-interval`?t.schedule.endsAt:new Date(Date.now()+6048e5).toISOString())),[y,b]=(0,Q.useState)(t?.schedule.kind===`fixed-interval`?t.schedule.intervalMs/6e4:60),[x,S]=(0,Q.useState)(t?.enabled??!0),[w,T]=(0,Q.useState)(t?.execution.runtimeMode??`approval-required`),[E,D]=(0,Q.useState)(t?.execution.envMode??`worktree`),[O,k]=(0,Q.useState)(t?.execution.baseRef??``),[A,j]=(0,Q.useState)(null),M=e.providers.find(e=>e.instanceId===c.instanceId),N=M?.models.find(e=>e.slug===c.model),P=!M||!M.enabled||M.status!==`ready`||!M.installed||!N,F=async()=>{try{j(null);let t=new Date(h).toISOString(),n=f===`once`?t:new Date(_).toISOString();if(Date.parse(t)<=Date.now()||Date.parse(n)<Date.parse(t)||Date.parse(n)>Date.now()+7776e6||f===`fixed-interval`&&(!Number.isInteger(y)||y<15)){j(`Choose a future start, an end within 90 days, and an interval of at least 15 minutes.`);return}let i=l(p)({enabled:x,execution:{projectId:e.projectId,title:r,prompt:a,modelSelection:c,runtimeMode:w,envMode:E,...O.trim()?{baseRef:O.trim()}:{}},schedule:f===`once`?{kind:f,runAt:t}:{kind:f,startsAt:t,endsAt:n,intervalMs:y*6e4}});await e.onSave(i)}catch{j(`Check the title, prompt and schedule fields.`)}};return(0,$.jsxs)(`form`,{className:`space-y-3 border-b border-border pb-5`,"aria-label":`Schedule editor`,onSubmit:e=>{e.preventDefault(),F()},children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold`,children:t?`Edit schedule`:`New schedule`}),(0,$.jsxs)(`fieldset`,{className:`space-y-3`,disabled:e.disabled,children:[(0,$.jsxs)(`label`,{className:`block space-y-1 text-xs`,children:[`Title`,(0,$.jsx)(st,{"aria-label":`Title`,value:r,required:!0,maxLength:200,onChange:e=>i(e.target.value)})]}),(0,$.jsxs)(`label`,{className:`block space-y-1 text-xs`,children:[`Task prompt`,(0,$.jsx)(`textarea`,{"aria-label":`Task prompt`,className:Or,rows:4,required:!0,maxLength:u,value:a,onChange:e=>s(e.target.value)})]}),(0,$.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,$.jsxs)(`label`,{className:`space-y-1 text-xs`,children:[`Provider instance`,(0,$.jsxs)(`select`,{"aria-label":`Provider instance`,className:Or,value:M?c.instanceId:``,onChange:e=>d({instanceId:o.make(e.target.value),model:``}),required:!0,children:[(0,$.jsx)(`option`,{value:``,disabled:!0,children:`Select instance`}),e.providers.map(e=>(0,$.jsxs)(`option`,{value:e.instanceId,disabled:!e.enabled||e.status!==`ready`,children:[e.displayName,` (`,e.instanceId,`)`]},e.instanceId))]})]}),(0,$.jsxs)(`label`,{className:`space-y-1 text-xs`,children:[`Model`,(0,$.jsxs)(`select`,{"aria-label":`Model`,className:Or,value:N?c.model:``,onChange:e=>d({instanceId:c.instanceId,model:e.target.value}),required:!0,children:[(0,$.jsx)(`option`,{value:``,disabled:!0,children:`Select model`}),M?.models.map(e=>(0,$.jsx)(`option`,{value:e.slug,children:e.name},e.slug))]})]})]}),N?.capabilities?.optionDescriptors?.map(e=>(0,$.jsxs)(`label`,{className:`block space-y-1 text-xs`,children:[e.label,(0,$.jsxs)(`select`,{"aria-label":e.label,className:Or,value:String(c.options?.find(t=>t.id===e.id)?.value??``),onChange:t=>d({...c,options:[...(c.options??[]).filter(t=>t.id!==e.id),...t.target.value===``?[]:[{id:e.id,value:e.type===`boolean`?t.target.value===`true`:t.target.value}]]}),children:[(0,$.jsx)(`option`,{value:``,children:`Provider default`}),e.type===`boolean`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`option`,{value:`true`,children:`On`}),(0,$.jsx)(`option`,{value:`false`,children:`Off`})]}):e.options.map(e=>(0,$.jsx)(`option`,{value:e.id,children:e.label},e.id))]})]},e.id)),P&&(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Select an available provider instance and model. Saved selections are never silently replaced.`}),(0,$.jsxs)(`label`,{className:`block space-y-1 text-xs`,children:[`Schedule`,(0,$.jsxs)(`select`,{"aria-label":`Schedule`,className:Or,value:f,onChange:e=>m(e.target.value),children:[(0,$.jsx)(`option`,{value:`once`,children:`Once`}),(0,$.jsx)(`option`,{value:`fixed-interval`,children:`Fixed interval`})]})]}),(0,$.jsxs)(`label`,{className:`block space-y-1 text-xs`,children:[`Starts at`,(0,$.jsx)(`input`,{"aria-label":`Starts at`,className:Or,type:`datetime-local`,required:!0,value:h,onChange:e=>g(e.target.value)})]}),f===`fixed-interval`&&(0,$.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,$.jsxs)(`label`,{className:`space-y-1 text-xs`,children:[`Every (minutes)`,(0,$.jsx)(`input`,{"aria-label":`Every (minutes)`,className:Or,type:`number`,min:15,required:!0,value:y,onChange:e=>b(Number(e.target.value))})]}),(0,$.jsxs)(`label`,{className:`space-y-1 text-xs`,children:[`Ends at`,(0,$.jsx)(`input`,{"aria-label":`Ends at`,className:Or,type:`datetime-local`,required:!0,value:_,onChange:e=>v(e.target.value)})]})]}),(0,$.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Times use `,n,`. Intervals are elapsed time; missed occurrences coalesce into one approval.`]}),(0,$.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,$.jsxs)(`label`,{className:`space-y-1 text-xs`,children:[`Workspace`,(0,$.jsxs)(`select`,{"aria-label":`Workspace`,className:Or,value:E,onChange:e=>D(e.target.value),children:[(0,$.jsx)(`option`,{value:`worktree`,children:`Isolated worktree`}),(0,$.jsx)(`option`,{value:`local`,children:`Shared checkout`})]})]}),(0,$.jsxs)(`label`,{className:`space-y-1 text-xs`,children:[`Permissions`,(0,$.jsxs)(`select`,{"aria-label":`Permissions`,className:Or,value:w,onChange:e=>T(e.target.value),children:[(0,$.jsx)(`option`,{value:`approval-required`,children:`Require approvals`}),(0,$.jsx)(`option`,{value:`auto-accept-edits`,children:`Accept edits`}),(0,$.jsx)(`option`,{value:`auto`,children:`Auto`}),(0,$.jsx)(`option`,{value:`full-access`,children:`Full access`})]})]})]}),(0,$.jsxs)(`label`,{className:`block space-y-1 text-xs`,children:[`Base ref (optional)`,(0,$.jsx)(st,{"aria-label":`Base ref (optional)`,value:O,maxLength:256,onChange:e=>k(e.target.value),placeholder:`HEAD`})]}),(0,$.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:x,onChange:e=>S(e.target.checked)}),`Enable after schedule approval`]}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Each occurrence still needs its own approval. No automatic retries or result-based stopping.`}),A&&(0,$.jsx)(`p`,{role:`alert`,className:`text-xs text-destructive`,children:A}),(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsx)(C,{size:`sm`,type:`submit`,disabled:P,children:`Review schedule`}),(0,$.jsx)(C,{size:`sm`,variant:`ghost`,type:`button`,onClick:e.onCancel,children:`Discard edit`})]})]})]})}function Ar(e){let t=(0,Z.c)(42),[n,r]=(0,Q.useState)(`schedules`),[i,a]=(0,Q.useState)(`unread`),[o,s]=(0,Q.useState)(null),c=e.busy||e.disabledReason!==null||e.snapshot===null,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(`h2`,{className:`text-base font-semibold`,children:`Automations`}),t[0]=l):l=t[0];let u;t[1]===e.onRefresh?u=t[2]:(u=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[l,(0,$.jsx)(C,{size:`xs`,variant:`outline`,onClick:e.onRefresh,children:`Refresh`})]}),t[1]=e.onRefresh,t[2]=u);let f;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(`p`,{className:`text-xs leading-relaxed text-muted-foreground`,children:`Schedule a task, approve each occurrence, then follow its thread. The server must be running when work is due.`}),t[3]=f):f=t[3];let p;t[4]===u?p=t[5]:(p=(0,$.jsxs)(`header`,{className:`space-y-2`,children:[u,f]}),t[4]=u,t[5]=p);let m;t[6]===e.disabledReason?m=t[7]:(m=e.disabledReason&&(0,$.jsx)(`p`,{role:`status`,className:`text-xs text-muted-foreground`,children:e.disabledReason}),t[6]=e.disabledReason,t[7]=m);let h;t[8]===e.error?h=t[9]:(h=e.error&&(0,$.jsx)(`p`,{role:`alert`,className:`rounded-md border border-destructive/30 p-3 text-xs text-destructive`,children:e.error}),t[8]=e.error,t[9]=h);let g;t[10]===e.snapshot?g=t[11]:(g=(e.snapshot?.unavailableRecords??0)>0&&(0,$.jsxs)(`p`,{role:`status`,className:`text-xs text-amber-600`,children:[e.snapshot.unavailableRecords,` unavailable records were isolated. Other automations remain usable.`]}),t[10]=e.snapshot,t[11]=g);let _=n===`schedules`?`secondary`:`ghost`,v=n===`schedules`,y;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>r(`schedules`),t[12]=y):y=t[12];let b;t[13]!==_||t[14]!==v?(b=(0,$.jsx)(C,{size:`sm`,variant:_,"aria-pressed":v,onClick:y,children:`Schedules`}),t[13]=_,t[14]=v,t[15]=b):b=t[15];let x=n===`runs`?`secondary`:`ghost`,S=n===`runs`,w;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>r(`runs`),t[16]=w):w=t[16];let T;t[17]===e.snapshot?T=t[18]:(T=e.snapshot?` · ${e.snapshot.runs.filter(jr).length} unread`:``,t[17]=e.snapshot,t[18]=T);let E;t[19]!==x||t[20]!==S||t[21]!==T?(E=(0,$.jsxs)(C,{size:`sm`,variant:x,"aria-pressed":S,onClick:w,children:[`Runs`,T]}),t[19]=x,t[20]=S,t[21]=T,t[22]=E):E=t[22];let D;t[23]!==b||t[24]!==E?(D=(0,$.jsxs)(`div`,{className:`flex gap-1 border-b border-border pb-2`,"aria-label":`Automation views`,children:[b,E]}),t[23]=b,t[24]=E,t[25]=D):D=t[25];let O;t[26]!==c||t[27]!==o||t[28]!==i||t[29]!==e||t[30]!==n?(O=n===`schedules`?(0,$.jsxs)($.Fragment,{children:[o?(0,$.jsx)(kr,{projectId:e.projectId,automationId:o.id,automation:o.automation,providers:e.providers,disabled:c,onCancel:()=>s(null),onSave:async t=>{await e.onCommand({kind:`save`,projectId:e.projectId,automationId:o.id,expectedRevision:o.automation?.revision??null,definition:t})&&s(null)}},o.id):(0,$.jsx)(C,{size:`sm`,disabled:c,onClick:()=>s({id:d.make(crypto.randomUUID()),automation:null}),children:`New schedule`}),e.snapshot?.automations.length===0&&(0,$.jsx)(`p`,{className:`py-4 text-sm text-muted-foreground`,children:`No schedules yet. Create a one-time task or a bounded recurring task.`}),(0,$.jsx)(`ul`,{className:`divide-y divide-border`,children:e.snapshot?.automations.map(t=>(0,$.jsxs)(`li`,{className:`space-y-2 py-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,$.jsx)(`h3`,{className:`min-w-0 break-words text-sm font-medium`,children:t.definition.execution.title}),(0,$.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:t.cancelled?`Cancelled`:t.enabled?`Scheduled`:`Inactive`})]}),(0,$.jsxs)(`p`,{className:`break-words text-xs text-muted-foreground`,children:[t.definition.execution.modelSelection.instanceId,` ·`,` `,t.definition.execution.modelSelection.model]}),(0,$.jsxs)(`p`,{className:`text-xs`,children:[t.definition.schedule.kind===`once`?`Once`:`Every ${t.definition.schedule.intervalMs/6e4} minutes`,t.nextRunAt?` · Next ${new Date(t.nextRunAt).toLocaleString()}`:` · No future occurrence`]}),(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsx)(C,{size:`xs`,variant:`outline`,disabled:c||t.cancelled,onClick:()=>s({id:t.automationId,automation:t}),children:`Edit`}),(0,$.jsx)(C,{size:`xs`,variant:`ghost`,disabled:c||t.cancelled,onClick:()=>void e.onCommand({kind:`cancel`,projectId:e.projectId,automationId:t.automationId,expectedRevision:t.revision}),children:`Cancel schedule…`})]})]},t.automationId))}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Saving or cancelling creates a proposal for review below. Cancelling a schedule leaves already accepted work running.`})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`flex gap-1`,children:[`unread`,`failed`,`all`].map(e=>(0,$.jsx)(C,{size:`xs`,variant:i===e?`secondary`:`ghost`,"aria-pressed":i===e,onClick:()=>a(e),children:e===`unread`?`Unread`:e===`failed`?`Failed`:`All`},e))}),(0,$.jsxs)(`p`,{className:`text-xs leading-relaxed text-muted-foreground`,children:[(0,$.jsx)(`strong`,{className:`font-medium text-foreground`,children:`Completion policy: dispatch only.`}),` `,`Dispatched means the thread-start request completed. It does not mean the agent finished or succeeded. Open the thread to review progress or stop work.`]}),(0,$.jsx)(`ul`,{className:`divide-y divide-border`,children:e.snapshot&&Tr(e.snapshot,i).map(t=>{let{run:n,execution:r,threadIds:i,unread:a,retryOfRunId:o}=t;return(0,$.jsxs)(`li`,{className:`space-y-2 py-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,$.jsx)(`h3`,{className:`break-words text-sm font-medium`,children:r?.title??`Execution details unavailable`}),(0,$.jsx)(`span`,{className:`shrink-0 text-xs`,children:wr[n.status]})]}),(0,$.jsxs)(`p`,{className:`break-all font-mono text-[10px] text-muted-foreground`,children:[`Run `,n.runId,` · revision `,n.automationRevision]}),(0,$.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[new Date(n.scheduledFor).toLocaleString(),r?` · ${r.modelSelection.instanceId} / ${r.modelSelection.model}`:``]}),o&&(0,$.jsxs)(`p`,{className:`break-all text-xs text-muted-foreground`,children:[`Retry of `,o]}),n.safeFailureDetail&&(0,$.jsx)(`p`,{className:`text-xs text-destructive`,children:n.safeFailureDetail}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsx)(C,{size:`xs`,variant:`outline`,disabled:c,onClick:()=>void e.onCommand({kind:`read`,projectId:e.projectId,runId:n.runId,expectedUpdatedAt:n.updatedAt,unread:!a}),children:a?`Mark read`:`Mark unread`}),([`expired`,`rejected`].includes(n.status)||n.status===`cancelled`&&n.proposalId===null)&&i.length===0&&(0,$.jsx)(C,{size:`xs`,variant:`outline`,disabled:c,onClick:()=>void e.onCommand({kind:`retry`,projectId:e.projectId,runId:n.runId}),children:`Retry with approval`}),i.map(t=>(0,$.jsx)(`a`,{className:`text-xs text-primary underline`,href:`/${encodeURIComponent(e.environmentId)}/${encodeURIComponent(t)}`,children:`Open thread`},t))]})]},n.runId)})}),e.snapshot&&Tr(e.snapshot,i).length===0&&(0,$.jsxs)(`p`,{className:`py-4 text-sm text-muted-foreground`,children:[`No `,i===`all`?``:`${i} `,`runs in the retained history.`]}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Showing up to 50 recent project runs. Each schedule retains at most 50 outcomes. Quiet monitoring is unavailable without a proven unchanged result.`})]}),t[26]=c,t[27]=o,t[28]=i,t[29]=e,t[30]=n,t[31]=O):O=t[31];let k;t[32]===e?k=t[33]:(k=e.snapshot?.proposals.map(t=>(0,$.jsx)(Ne,{model:je(t),environmentId:e.environmentId,isSubmitting:e.busy,decisionError:null,disabledReason:e.disabledReason,onAccept:()=>void e.onDecision(t.proposalId,`accept`),onReject:()=>void e.onDecision(t.proposalId,`reject`)},t.proposalId)),t[32]=e,t[33]=k);let A;return t[34]!==D||t[35]!==O||t[36]!==k||t[37]!==p||t[38]!==m||t[39]!==h||t[40]!==g?(A=(0,$.jsxs)(`section`,{className:`space-y-5`,"aria-label":`Automation centre`,children:[p,m,h,g,D,O,k]}),t[34]=D,t[35]=O,t[36]=k,t[37]=p,t[38]=m,t[39]=h,t[40]=g,t[41]=A):A=t[41],A}function jr(e){return e.unread}function Mr({environmentId:e,projectId:t}){let n=$e(s.automationCommand),[r,i]=(0,Q.useState)(null),[a,o]=(0,Q.useState)([]),[l,u]=(0,Q.useState)(null),[d,f]=(0,Q.useState)(!1),p=(0,Q.useRef)(!1),m=(0,Q.useRef)(0),h=(0,Q.useRef)(async()=>{}),g=(0,Q.useRef)(new Map);return(0,Q.useEffect)(()=>{let n,r=()=>{},a=()=>{let a=te(e)?.client??null;if(a===n)return;r(),n=a;let s=++m.current;p.current=!1,f(!1),i(null),o([]);let c=a?D(e,a):void 0;if(!c?.automationCentre){u(`Connect to a server with the automation centre available.`);return}u(null);let l=Er({api:c.automationCentre,projectId:t,onSnapshot:e=>{i(e),u(null)},onError:()=>{i(null),u(`Automations are unavailable. Check your connection and Agent Control setting, then refresh.`)}});h.current=l.refresh;let d=c.agentControl?.subscribeProposals(()=>void l.refresh(),{onResubscribe:()=>void l.refresh(),onError:()=>{l.invalidate(),m.current===s&&(i(null),u(`Automation access is unavailable.`))}});a.server.getConfig().then(e=>{m.current===s&&o(e.providers)}).catch(()=>{}),l.refresh(),r=()=>{l.stop(),d?.(),h.current=async()=>{}}},s=re(a);a();let c=()=>void h.current();return window.addEventListener(`focus`,c),()=>{++m.current,r(),s(),window.removeEventListener(`focus`,c)}},[e,t]),(0,$.jsx)(Ar,{environmentId:e,projectId:t,snapshot:r,providers:a,busy:d,error:l,disabledReason:n.allowed?null:n.reason??`Automation changes are unavailable.`,onDecision:async(t,r)=>{if(!n.allowed||p.current)return;let i=L(e)?.agentControl;if(!i)return;let a=m.current;p.current=!0,f(!0),u(null);try{await(r===`accept`?i.acceptProposal({proposalId:t}):i.rejectProposal({proposalId:t})),a===m.current&&await h.current()}catch{a===m.current&&u(`Approval could not be confirmed. Refresh to see the current decision.`)}finally{a===m.current&&(p.current=!1,f(!1))}},onRefresh:()=>void h.current(),onCommand:async t=>{if(!n.allowed||p.current)return!1;let r=L(e)?.automationCentre;if(!r)return!1;let i=m.current,a=JSON.stringify(t),o=g.current.get(a)??c.make(crypto.randomUUID());g.current.set(a,o),p.current=!0,f(!0),u(null);try{return await r.command({...t,requestId:o}),i===m.current&&(await h.current(),!0)}catch(e){return i===m.current&&u(e instanceof Error?e.message:`The action could not be confirmed. Refresh before trying again.`),!1}finally{i===m.current&&(p.current=!1,f(!1))}}})}function Nr(e){switch(e){case`github`:return Ve;case`gitlab`:return V;case`forgejo`:return He;case`azure-devops`:return Ae;case`bitbucket`:return ke;default:return K}}var Pr=[{id:`general`,label:`General`,Icon:gt},{id:`location`,label:`Location`,Icon:et},{id:`atlassian`,label:`Atlassian`,Icon:vt},{id:`ai`,label:`AI`,Icon:Qe},{id:`automations`,label:`Automations`,Icon:Qe}];function Fr(e){let t=e.target.repositoryIdentity?.remotes??[],n=e.target.repositoryIdentity?.locator.remoteName??null,r=e.preferredRemoteName&&t.some(t=>t.name===e.preferredRemoteName)?e.preferredRemoteName:null,[i,a]=(0,Q.useState)(!1),o=(0,Q.useRef)(null),s=()=>{e.projectAvatarUploadUnavailableReason||o.current?.click()},c=async t=>{a(!0);try{await e.onUploadAvatar(t)}finally{a(!1)}};return(0,$.jsxs)(`div`,{className:`space-y-6`,children:[(0,$.jsxs)(`section`,{className:`flex items-start gap-4`,children:[(0,$.jsxs)(`div`,{className:`relative flex size-24 shrink-0 items-center justify-center overflow-hidden rounded-xl border border-border/70 bg-secondary text-muted-foreground shadow-xs`,children:[(0,$.jsx)(Ee,{environmentId:e.target.environmentId,cwd:e.target.cwd,projectId:e.target.id,customAvatarContentHash:e.customAvatarContentHash,fillContainer:!0}),i?(0,$.jsx)(`div`,{className:`absolute inset-0 grid place-items-center bg-background/60 text-xs`,children:`…`}):null]}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,$.jsx)(`div`,{className:`text-xs font-medium text-foreground`,children:`Project image`}),(0,$.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:e.projectAvatarUploadUnavailableReason?e.projectAvatarUploadUnavailableReason:e.customAvatarContentHash?`PNG, JPG, or WebP · up to 2 MB`:`Using auto-detected favicon · upload to override`}),(0,$.jsxs)(`div`,{className:`flex gap-2 pt-1`,children:[(0,$.jsx)(C,{size:`xs`,variant:`outline`,onClick:s,disabled:i||e.projectAvatarUploadUnavailableReason!==null,title:e.projectAvatarUploadUnavailableReason??void 0,children:`Upload`}),(0,$.jsx)(C,{size:`xs`,variant:`ghost`,onClick:()=>void e.onRemoveAvatar(),disabled:!e.customAvatarContentHash||i,children:`Remove`})]}),(0,$.jsx)(`input`,{ref:o,type:`file`,accept:`image/png,image/jpeg,image/webp`,className:`hidden`,disabled:e.projectAvatarUploadUnavailableReason!==null,onChange:e=>{let t=e.target.files?.[0];t&&c(t),e.target.value=``}})]})]}),(0,$.jsxs)(`section`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{htmlFor:`project-display-name`,className:`text-xs font-medium text-foreground`,children:`Display name`}),(0,$.jsx)(st,{id:`project-display-name`,"aria-label":`Project display name`,value:e.title,onChange:t=>e.onTitleChange(t.target.value)})]}),t.length>0?(0,$.jsxs)(`section`,{className:`space-y-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,$.jsx)(`div`,{className:`text-xs font-medium text-foreground`,children:`Linked repositories`}),t.length>1?(0,$.jsxs)(`span`,{className:`text-[11px] text-muted-foreground`,children:[t.length,` remotes`]}):null]}),t.length>1?(0,$.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Pick which remote the sidebar "Open remote" uses.`}):null,(0,$.jsxs)(`div`,{className:`overflow-hidden rounded-lg border border-border/70`,children:[t.length>1?(0,$.jsxs)(`button`,{type:`button`,onClick:()=>e.onPreferredRemoteChange(null),className:O(`flex w-full items-center gap-3 border-b border-border/70 px-3 py-2 text-left`,r===null&&`bg-accent/50`),children:[(0,$.jsx)(`span`,{className:O(`grid size-4 shrink-0 place-items-center rounded-full border`,r===null?`border-foreground`:`border-muted-foreground/40`),"aria-hidden":`true`,children:r===null?(0,$.jsx)(`span`,{className:`size-2 rounded-full bg-foreground`}):null}),(0,$.jsxs)(`span`,{className:`text-xs`,children:[`Auto-detect`,n?` (currently: ${n})`:``]})]}):null,t.map((i,a)=>{let o=r===i.name||r===null&&i.name===n&&t.length===1,s=Nr(i.provider??void 0);return(0,$.jsxs)(`div`,{className:O(`flex items-center gap-3 px-3 py-2`,a>0||t.length>1?`border-t border-border/70`:``,o&&`bg-accent/50`),children:[t.length>1?(0,$.jsx)(`button`,{type:`button`,onClick:()=>e.onPreferredRemoteChange(i.name),className:`shrink-0`,"aria-label":`Use ${i.name} as primary`,children:(0,$.jsx)(`span`,{className:O(`grid size-4 place-items-center rounded-full border`,o?`border-foreground`:`border-muted-foreground/40`),children:o?(0,$.jsx)(`span`,{className:`size-2 rounded-full bg-foreground`}):null})}):null,(0,$.jsx)(s,{className:`size-4 shrink-0 text-muted-foreground`}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium`,children:i.name}),o&&t.length>1?(0,$.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground`,children:`primary`}):null]}),(0,$.jsx)(`div`,{className:`truncate font-mono text-[11px] text-muted-foreground`,children:i.ownerRepo??i.url})]}),(0,$.jsxs)(C,{size:`xs`,variant:`ghost`,onClick:()=>e.onOpenRemote(e.target,i.name),children:[(0,$.jsx)(Me,{className:`size-3.5`}),`Open`]})]},i.name)})]})]}):null]})}function Ir(e){let t=(0,Z.c)(23),n=`~/.ryco/worktrees/${e.projectId}/`,r,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(`label`,{htmlFor:`project-root`,className:`text-xs font-medium text-foreground`,children:`Project root`}),i=(0,$.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`The absolute path the project is anchored to.`}),t[0]=r,t[1]=i):(r=t[0],i=t[1]);let a,o;t[2]===e?(a=t[3],o=t[4]):(a=t=>e.onWorkspaceRootChange(t.target.value),o=t=>{t.key===`Enter`&&(t.preventDefault(),e.onSave())},t[2]=e,t[3]=a,t[4]=o);let s;t[5]!==e.workspaceRoot||t[6]!==a||t[7]!==o?(s=(0,$.jsx)(st,{id:`project-root`,"aria-label":`Project root`,value:e.workspaceRoot,onChange:a,onKeyDown:o}),t[5]=e.workspaceRoot,t[6]=a,t[7]=o,t[8]=s):s=t[8];let c;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,$.jsx)(et,{className:`size-4`}),t[9]=c):c=t[9];let l;t[10]===e.onPickWorkspaceRoot?l=t[11]:(l=(0,$.jsxs)(C,{variant:`outline`,onClick:e.onPickWorkspaceRoot,children:[c,`Browse`]}),t[10]=e.onPickWorkspaceRoot,t[11]=l);let u;t[12]!==s||t[13]!==l?(u=(0,$.jsxs)(`section`,{className:`space-y-1.5`,children:[r,i,(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[s,l]})]}),t[12]=s,t[13]=l,t[14]=u):u=t[14];let d;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,$.jsx)(`div`,{className:`text-xs font-medium text-foreground`,children:`Worktrees location`}),t[15]=d):d=t[15];let f;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(`span`,{className:`font-mono`,children:`<branch>__<word>`}),t[16]=f):f=t[16];let p;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsxs)(`p`,{className:`text-[11px] text-muted-foreground`,children:[`New worktrees for this project are created here. Each one is named`,` `,f,`, where`,` `,(0,$.jsx)(`span`,{className:`font-mono`,children:`<word>`}),` is a random 5-letter suffix that disambiguates multiple checkouts of the same branch.`]}),t[17]=p):p=t[17];let m;t[18]===n?m=t[19]:(m=(0,$.jsxs)(`section`,{className:`space-y-1.5`,children:[d,p,(0,$.jsx)(`div`,{className:`rounded-md border border-dashed border-border/70 bg-muted/20 px-3 py-2`,children:(0,$.jsx)(`div`,{className:`truncate font-mono text-xs`,children:n})})]}),t[18]=n,t[19]=m);let h;return t[20]!==m||t[21]!==u?(h=(0,$.jsxs)(`div`,{className:`space-y-6`,children:[u,m]}),t[20]=m,t[21]=u,t[22]=h):h=t[22],h}function Lr(e){let t=(0,Z.c)(15),n=e.customSystemPrompt.length,r=Math.floor(f*.9),i=n>=2e4?`text-destructive`:n>=r?`text-amber-600 dark:text-amber-400`:`text-muted-foreground`,a,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,$.jsx)(`label`,{htmlFor:`project-custom-system-prompt`,className:`text-xs font-medium text-foreground`,children:`Custom system prompt`}),o=(0,$.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Appended to every assistant prompt for this project.`}),t[0]=a,t[1]=o):(a=t[0],o=t[1]);let s;t[2]===e?s=t[3]:(s=t=>e.onCustomSystemPromptChange(t.target.value),t[2]=e,t[3]=s);let c;t[4]!==e.customSystemPrompt||t[5]!==s?(c=(0,$.jsx)(se,{id:`project-custom-system-prompt`,"aria-label":`Custom system prompt`,value:e.customSystemPrompt,maxLength:f,placeholder:`Always use TypeScript.`,className:`min-h-32 resize-y pr-20`,onChange:s}),t[4]=e.customSystemPrompt,t[5]=s,t[6]=c):c=t[6];let l;t[7]===i?l=t[8]:(l=O(`pointer-events-none absolute bottom-2 right-3 text-[11px]`,i),t[7]=i,t[8]=l);let u;t[9]!==n||t[10]!==l?(u=(0,$.jsxs)(`span`,{className:l,children:[n,` / `,f]}),t[9]=n,t[10]=l,t[11]=u):u=t[11];let d;return t[12]!==c||t[13]!==u?(d=(0,$.jsx)(`div`,{className:`space-y-6`,children:(0,$.jsxs)(`div`,{className:`space-y-2`,children:[a,o,(0,$.jsxs)(`div`,{className:`relative`,children:[c,u]})]})}),t[12]=c,t[13]=u,t[14]=d):d=t[14],d}var Rr=`Not configured`;function zr(e){return e??Rr}function Br(e){return e===Rr||e.trim().length===0?null:e}function Vr(e){return e.split(/[,\s]+/u).map(e=>e.trim().toUpperCase()).filter(Boolean)}function Hr(e){return e?.provider?.toLowerCase()===`bitbucket`?{workspace:e.owner??``,repoSlug:e.name??``}:{workspace:``,repoSlug:``}}function Ur(e){return t=>t.status===`connected`&&t.products.includes(e)}function Wr(e){let t=(0,Z.c)(186),n=e.target,r=y(),i;t[0]===n?i=t[1]:(i=n?te(n.environmentId):null,t[0]=n,t[1]=i);let a=i?.client??null,[o,s]=(0,Q.useState)(Rr),[c,l]=(0,Q.useState)(Rr),[u,d]=(0,Q.useState)(``),[f,p]=(0,Q.useState)(``),[m,h]=(0,Q.useState)(``),[g,_]=(0,Q.useState)(``),[v,x]=(0,Q.useState)(`{issueKey}-{titleSlug}`),[w,T]=(0,Q.useState)(`{issueKey}: {summary}`),[E,D]=(0,Q.useState)(`{issueKey}: {summary}`),[O,k]=(0,Q.useState)(!0),[A,j]=(0,Q.useState)(!0),M=(0,Q.useRef)(!1),N=(0,Q.useRef)(null),P=n?.environmentId??null,F=n?.id??null,ee=a!==null&&n!==null,I;t[2]!==P||t[3]!==F||t[4]!==ee?(I={environmentId:P,projectId:F,enabled:ee},t[2]=P,t[3]=F,t[4]=ee,t[5]=I):I=t[5];let L=oe(I),R=n?.environmentId??null,z=a!==null,ne;t[6]!==R||t[7]!==z?(ne={environmentId:R,enabled:z},t[6]=R,t[7]=z,t[8]=ne):ne=t[8];let re=Be(ne),ie;t[9]===re.data?ie=t[10]:(ie=(re.data??[]).filter(Ur(`jira`)),t[9]=re.data,t[10]=ie);let B=ie,ae;t[11]===re.data?ae=t[12]:(ae=(re.data??[]).filter(Ur(`bitbucket`)),t[11]=re.data,t[12]=ae);let V=ae,se;t[13]!==V[0]?.connectionId||t[14]!==B[0]?.connectionId||t[15]!==L.data||t[16]!==n?(se=()=>{if(!n)return;let e=`${n.environmentId}:${n.id}`;if(N.current!==e&&(N.current=e,M.current=!1),M.current)return;let t=L.data,r=Hr(n.repositoryIdentity);s(zr(t?.jiraConnectionId??B[0]?.connectionId)),l(zr(t?.bitbucketConnectionId??V[0]?.connectionId)),d(t?.jiraProjectKeys.join(`, `)??``),p(t?.bitbucketWorkspace??r.workspace),h(t?.bitbucketRepoSlug??r.repoSlug),_(t?.defaultIssueTypeName??``),x(t?.branchNameTemplate??`{issueKey}-{titleSlug}`),T(t?.commitMessageTemplate??`{issueKey}: {summary}`),D(t?.pullRequestTitleTemplate??`{issueKey}: {summary}`),k(t?.smartLinkingEnabled??!0),j(t?.autoAttachWorkItems??!0)},t[13]=V[0]?.connectionId,t[14]=B[0]?.connectionId,t[15]=L.data,t[16]=n,t[17]=se):se=t[17];let H;t[18]!==V||t[19]!==B||t[20]!==L.data||t[21]!==n?(H=[V,B,L.data,n],t[18]=V,t[19]=B,t[20]=L.data,t[21]=n,t[22]=H):H=t[22],(0,Q.useEffect)(se,H);let ce;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(ce=()=>{M.current=!0},t[23]=ce):ce=t[23];let le=ce,U;t[24]!==r||t[25]!==n?.environmentId||t[26]!==n?.id?(U=()=>{he({environmentId:n?.environmentId??null}),fe({environmentId:n?.environmentId??null,projectId:n?.id??null}),r.invalidateQueries({queryKey:[`atlassian`]}),r.invalidateQueries({queryKey:[`workItems`]})},t[24]=r,t[25]=n?.environmentId,t[26]=n?.id,t[27]=U):U=t[27];let ue=U,de;t[28]!==A||t[29]!==c||t[30]!==m||t[31]!==f||t[32]!==v||t[33]!==a||t[34]!==w||t[35]!==g||t[36]!==o||t[37]!==u||t[38]!==L.data?.jiraCloudId||t[39]!==E||t[40]!==O||t[41]!==n?(de=async()=>{if(!a||!n)throw Error(`Project connection is unavailable.`);let e=v.trim(),t=w.trim(),r=E.trim();if(!e||!t||!r)throw Error(`Branch, commit, and pull request templates cannot be empty.`);return a.atlassian.saveProjectLink({projectId:n.id,jiraConnectionId:Br(o),bitbucketConnectionId:Br(c),jiraCloudId:L.data?.jiraCloudId??null,jiraSiteUrl:null,jiraProjectKeys:Vr(u),bitbucketWorkspace:f.trim()||null,bitbucketRepoSlug:m.trim()||null,defaultIssueTypeName:g.trim()||null,branchNameTemplate:e,commitMessageTemplate:t,pullRequestTitleTemplate:r,smartLinkingEnabled:O,autoAttachWorkItems:A})},t[28]=A,t[29]=c,t[30]=m,t[31]=f,t[32]=v,t[33]=a,t[34]=w,t[35]=g,t[36]=o,t[37]=u,t[38]=L.data?.jiraCloudId,t[39]=E,t[40]=O,t[41]=n,t[42]=de):de=t[42];let W;t[43]===ue?W=t[44]:(W=()=>{M.current=!1,ue(),b.add(X({type:`success`,title:`Atlassian project settings saved`,description:`Jira and Bitbucket defaults were updated for this project.`}))},t[43]=ue,t[44]=W);let pe;t[45]!==de||t[46]!==W?(pe={mutationFn:de,onSuccess:W,onError:Jr},t[45]=de,t[46]=W,t[47]=pe):pe=t[47];let me=S(pe),G;t[48]!==a||t[49]!==L.data||t[50]!==n?(G=async()=>{if(!a||!n)throw Error(`Project connection is unavailable.`);return a.atlassian.saveProjectLink(Te({projectId:n.id,existing:L.data??null}))},t[48]=a,t[49]=L.data,t[50]=n,t[51]=G):G=t[51];let K;t[52]===ue?K=t[53]:(K=()=>{M.current=!1,s(Rr),d(``),ue(),b.add(X({type:`success`,title:`Jira project unlinked`,description:`Bitbucket mapping and project templates were left unchanged.`}))},t[52]=ue,t[53]=K);let ge;t[54]!==G||t[55]!==K?(ge={mutationFn:G,onSuccess:K,onError:qr},t[54]=G,t[55]=K,t[56]=ge):ge=t[56];let _e=S(ge),ve=L.isLoading||re.isLoading,q=a===null||n===null||me.isPending||_e.isPending,ye=L.data?.jiraConnectionId!==null&&L.data?.jiraConnectionId!==void 0&&L.data.jiraProjectKeys.length>0,be;t[57]===o?be=t[58]:(be=Br(o),t[57]=o,t[58]=be);let xe=be,Se;if(t[59]!==B||t[60]!==xe){let e;t[62]===xe?e=t[63]:(e=e=>e.connectionId===xe,t[62]=xe,t[63]=e),Se=B.find(e),t[59]=B,t[60]=xe,t[61]=Se}else Se=t[61];let Ce=Se?.baseUrl??L.data?.jiraSiteUrl??``,we;t[64]===Symbol.for(`react.memo_cache_sentinel`)?(we=(0,$.jsx)(vt,{className:`size-4 shrink-0 text-muted-foreground`}),t[64]=we):we=t[64];let J;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(J=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[we,(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:`truncate text-xs font-medium text-foreground`,children:`Atlassian workflow`}),(0,$.jsx)(`p`,{className:`mt-1 text-[11px] text-muted-foreground`,children:`Project-scoped Jira, Bitbucket, and smart-link defaults.`})]})]}),t[65]=J):J=t[65];let Ee;t[66]===ve?Ee=t[67]:(Ee=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[J,ve?(0,$.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:`Loading`}):(0,$.jsx)(`span`,{className:`rounded bg-background px-1.5 py-0.5 text-[10px] text-muted-foreground`,children:`Project defaults`})]}),t[66]=ve,t[67]=Ee);let De;t[68]===Symbol.for(`react.memo_cache_sentinel`)?(De=(0,$.jsx)(`div`,{className:`text-xs font-medium text-foreground`,children:`Connections`}),t[68]=De):De=t[68];let Oe;t[69]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=(0,$.jsx)(`label`,{className:`text-xs font-medium text-foreground`,children:`Jira connection`}),t[69]=Oe):Oe=t[69];let ke;t[70]===Symbol.for(`react.memo_cache_sentinel`)?(ke=e=>{typeof e==`string`&&(le(),s(e))},t[70]=ke):ke=t[70];let Ae;t[71]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=(0,$.jsx)(qe,{placeholder:`Select Jira connection`}),t[71]=Ae):Ae=t[71];let je;t[72]===q?je=t[73]:(je=(0,$.jsx)(Xe,{size:`sm`,disabled:q,children:Ae}),t[72]=q,t[73]=je);let Me;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(Me=(0,$.jsx)(Ke,{value:Rr,children:`Not configured`}),t[74]=Me):Me=t[74];let Y;t[75]===B?Y=t[76]:(Y=B.map(Kr),t[75]=B,t[76]=Y);let Ne;t[77]===Y?Ne=t[78]:(Ne=(0,$.jsxs)(Ye,{children:[Me,Y]}),t[77]=Y,t[78]=Ne);let Pe;t[79]!==o||t[80]!==je||t[81]!==Ne?(Pe=(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[Oe,(0,$.jsxs)(Je,{value:o,onValueChange:ke,children:[je,Ne]})]}),t[79]=o,t[80]=je,t[81]=Ne,t[82]=Pe):Pe=t[82];let Fe;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(Fe=(0,$.jsx)(`label`,{className:`text-xs font-medium text-foreground`,children:`Bitbucket connection`}),t[83]=Fe):Fe=t[83];let Ie;t[84]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=e=>{typeof e==`string`&&(le(),l(e))},t[84]=Ie):Ie=t[84];let ze;t[85]===Symbol.for(`react.memo_cache_sentinel`)?(ze=(0,$.jsx)(qe,{placeholder:`Select Bitbucket connection`}),t[85]=ze):ze=t[85];let Ve;t[86]===q?Ve=t[87]:(Ve=(0,$.jsx)(Xe,{size:`sm`,disabled:q,children:ze}),t[86]=q,t[87]=Ve);let He;t[88]===Symbol.for(`react.memo_cache_sentinel`)?(He=(0,$.jsx)(Ke,{value:Rr,children:`Not configured`}),t[88]=He):He=t[88];let Ue;t[89]===V?Ue=t[90]:(Ue=V.map(Gr),t[89]=V,t[90]=Ue);let We;t[91]===Ue?We=t[92]:(We=(0,$.jsxs)(Ye,{children:[He,Ue]}),t[91]=Ue,t[92]=We);let Ge;t[93]!==c||t[94]!==Ve||t[95]!==We?(Ge=(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[Fe,(0,$.jsxs)(Je,{value:c,onValueChange:Ie,children:[Ve,We]})]}),t[93]=c,t[94]=Ve,t[95]=We,t[96]=Ge):Ge=t[96];let Ze;t[97]!==Pe||t[98]!==Ge?(Ze=(0,$.jsxs)(`section`,{className:`space-y-3`,children:[De,(0,$.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[Pe,Ge]})]}),t[97]=Pe,t[98]=Ge,t[99]=Ze):Ze=t[99];let Qe;t[100]===Symbol.for(`react.memo_cache_sentinel`)?(Qe=(0,$.jsx)(`div`,{className:`text-xs font-medium text-foreground`,children:`Repository mapping`}),t[100]=Qe):Qe=t[100];let $e=n?.environmentId??null,et;t[101]===Symbol.for(`react.memo_cache_sentinel`)?(et=e=>{le(),d(e)},t[101]=et):et=t[101];let tt;t[102]!==q||t[103]!==u||t[104]!==xe||t[105]!==Ce||t[106]!==$e?(tt=(0,$.jsx)(Re,{environmentId:$e,connectionId:xe,siteUrl:Ce,projectKeys:u,disabled:q,onProjectKeysChange:et}),t[102]=q,t[103]=u,t[104]=xe,t[105]=Ce,t[106]=$e,t[107]=tt):tt=t[107];let nt;t[108]===Symbol.for(`react.memo_cache_sentinel`)?(nt=e=>{le(),d(e.currentTarget.value)},t[108]=nt):nt=t[108];let rt;t[109]!==q||t[110]!==u?(rt=(0,$.jsx)(st,{size:`sm`,value:u,disabled:q,placeholder:`WEB, API`,onChange:nt}),t[109]=q,t[110]=u,t[111]=rt):rt=t[111];let it;t[112]!==tt||t[113]!==rt?(it=(0,$.jsxs)(Yr,{label:`Jira project keys`,children:[tt,rt]}),t[112]=tt,t[113]=rt,t[114]=it):it=t[114];let at;t[115]===Symbol.for(`react.memo_cache_sentinel`)?(at=e=>{le(),p(e.currentTarget.value)},t[115]=at):at=t[115];let ot;t[116]!==f||t[117]!==q?(ot=(0,$.jsx)(Yr,{label:`Bitbucket workspace`,children:(0,$.jsx)(st,{size:`sm`,value:f,disabled:q,placeholder:`workspace`,onChange:at})}),t[116]=f,t[117]=q,t[118]=ot):ot=t[118];let ct;t[119]===Symbol.for(`react.memo_cache_sentinel`)?(ct=e=>{le(),h(e.currentTarget.value)},t[119]=ct):ct=t[119];let lt;t[120]!==m||t[121]!==q?(lt=(0,$.jsx)(Yr,{label:`Bitbucket repo slug`,children:(0,$.jsx)(st,{size:`sm`,value:m,disabled:q,placeholder:`repo-slug`,onChange:ct})}),t[120]=m,t[121]=q,t[122]=lt):lt=t[122];let ut;t[123]!==it||t[124]!==ot||t[125]!==lt?(ut=(0,$.jsxs)(`section`,{className:`space-y-3`,children:[Qe,(0,$.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[it,ot,lt]})]}),t[123]=it,t[124]=ot,t[125]=lt,t[126]=ut):ut=t[126];let dt;t[127]===Symbol.for(`react.memo_cache_sentinel`)?(dt=(0,$.jsx)(`div`,{className:`text-xs font-medium text-foreground`,children:`Templates`}),t[127]=dt):dt=t[127];let ft;t[128]===Symbol.for(`react.memo_cache_sentinel`)?(ft=e=>{le(),_(e.currentTarget.value)},t[128]=ft):ft=t[128];let pt;t[129]!==g||t[130]!==q?(pt=(0,$.jsx)(Yr,{label:`Default issue type`,children:(0,$.jsx)(st,{size:`sm`,value:g,disabled:q,placeholder:`Task`,onChange:ft})}),t[129]=g,t[130]=q,t[131]=pt):pt=t[131];let mt;t[132]===Symbol.for(`react.memo_cache_sentinel`)?(mt=e=>{le(),x(e.currentTarget.value)},t[132]=mt):mt=t[132];let ht;t[133]!==v||t[134]!==q?(ht=(0,$.jsx)(Yr,{label:`Branch template`,children:(0,$.jsx)(st,{size:`sm`,value:v,disabled:q,onChange:mt})}),t[133]=v,t[134]=q,t[135]=ht):ht=t[135];let gt;t[136]===Symbol.for(`react.memo_cache_sentinel`)?(gt=e=>{le(),T(e.currentTarget.value)},t[136]=gt):gt=t[136];let _t;t[137]!==w||t[138]!==q?(_t=(0,$.jsx)(Yr,{label:`Commit template`,children:(0,$.jsx)(st,{size:`sm`,value:w,disabled:q,onChange:gt})}),t[137]=w,t[138]=q,t[139]=_t):_t=t[139];let yt;t[140]===Symbol.for(`react.memo_cache_sentinel`)?(yt=e=>{le(),D(e.currentTarget.value)},t[140]=yt):yt=t[140];let bt;t[141]!==q||t[142]!==E?(bt=(0,$.jsx)(Yr,{label:`PR title template`,children:(0,$.jsx)(st,{size:`sm`,value:E,disabled:q,onChange:yt})}),t[141]=q,t[142]=E,t[143]=bt):bt=t[143];let xt;t[144]!==pt||t[145]!==ht||t[146]!==_t||t[147]!==bt?(xt=(0,$.jsxs)(`section`,{className:`space-y-3`,children:[dt,(0,$.jsxs)(`div`,{className:`grid gap-3`,children:[pt,ht,_t,bt]})]}),t[144]=pt,t[145]=ht,t[146]=_t,t[147]=bt,t[148]=xt):xt=t[148];let St;t[149]===Symbol.for(`react.memo_cache_sentinel`)?(St=(0,$.jsx)(`div`,{className:`text-xs font-medium text-foreground`,children:`Automation`}),t[149]=St):St=t[149];let Ct;t[150]===Symbol.for(`react.memo_cache_sentinel`)?(Ct=(0,$.jsx)(`span`,{children:`Smart-link Jira keys in branches, commits, and PRs`}),t[150]=Ct):Ct=t[150];let wt;t[151]===Symbol.for(`react.memo_cache_sentinel`)?(wt=e=>{le(),k(!!e)},t[151]=wt):wt=t[151];let Tt;t[152]!==q||t[153]!==O?(Tt=(0,$.jsxs)(`label`,{className:`flex items-center justify-between gap-3 rounded-md border border-border/70 bg-background/60 px-3 py-2 text-xs`,children:[Ct,(0,$.jsx)(Le,{checked:O,disabled:q,onCheckedChange:wt})]}),t[152]=q,t[153]=O,t[154]=Tt):Tt=t[154];let Et;t[155]===Symbol.for(`react.memo_cache_sentinel`)?(Et=(0,$.jsx)(`span`,{children:`Attach linked work items to project explorer workflows`}),t[155]=Et):Et=t[155];let Dt;t[156]===Symbol.for(`react.memo_cache_sentinel`)?(Dt=e=>{le(),j(!!e)},t[156]=Dt):Dt=t[156];let Ot;t[157]!==A||t[158]!==q?(Ot=(0,$.jsxs)(`label`,{className:`flex items-center justify-between gap-3 rounded-md border border-border/70 bg-background/60 px-3 py-2 text-xs`,children:[Et,(0,$.jsx)(Le,{checked:A,disabled:q,onCheckedChange:Dt})]}),t[157]=A,t[158]=q,t[159]=Ot):Ot=t[159];let kt;t[160]!==Tt||t[161]!==Ot?(kt=(0,$.jsxs)(`section`,{className:`space-y-3`,children:[St,(0,$.jsxs)(`div`,{className:`grid gap-2`,children:[Tt,Ot]})]}),t[160]=Tt,t[161]=Ot,t[162]=kt):kt=t[162];let At;t[163]===Symbol.for(`react.memo_cache_sentinel`)?(At=(0,$.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Tokens live in Source Control settings. These defaults belong only to this project.`}),t[163]=At):At=t[163];let jt=q||!ye,Mt;t[164]===_e?Mt=t[165]:(Mt=()=>_e.mutate(),t[164]=_e,t[165]=Mt);let Nt=_e.isPending?`Unlinking...`:`Unlink Jira`,Pt;t[166]!==jt||t[167]!==Mt||t[168]!==Nt?(Pt=(0,$.jsx)(C,{type:`button`,size:`sm`,variant:`destructive-outline`,className:`h-8`,disabled:jt,onClick:Mt,children:Nt}),t[166]=jt,t[167]=Mt,t[168]=Nt,t[169]=Pt):Pt=t[169];let Ft;t[170]===me?Ft=t[171]:(Ft=()=>me.mutate(),t[170]=me,t[171]=Ft);let It=me.isPending?`Saving...`:`Save Atlassian`,Lt;t[172]!==q||t[173]!==Ft||t[174]!==It?(Lt=(0,$.jsx)(C,{type:`button`,size:`sm`,className:`h-8`,disabled:q,onClick:Ft,children:It}),t[172]=q,t[173]=Ft,t[174]=It,t[175]=Lt):Lt=t[175];let Rt;t[176]!==Pt||t[177]!==Lt?(Rt=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-border/70 pt-4`,children:[At,(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[Pt,Lt]})]}),t[176]=Pt,t[177]=Lt,t[178]=Rt):Rt=t[178];let zt;return t[179]!==Ee||t[180]!==Ze||t[181]!==ut||t[182]!==xt||t[183]!==kt||t[184]!==Rt?(zt=(0,$.jsxs)(`div`,{className:`space-y-5`,children:[Ee,Ze,ut,xt,kt,Rt]}),t[179]=Ee,t[180]=Ze,t[181]=ut,t[182]=xt,t[183]=kt,t[184]=Rt,t[185]=zt):zt=t[185],zt}function Gr(e){return(0,$.jsx)(Ke,{value:e.connectionId,children:e.label},e.connectionId)}function Kr(e){return(0,$.jsx)(Ke,{value:e.connectionId,children:e.label},e.connectionId)}function qr(e){b.add(X({type:`error`,title:`Could not unlink Jira project`,description:e instanceof Error?e.message:`The project link was not saved.`}))}function Jr(e){b.add(X({type:`error`,title:`Could not save Atlassian project settings`,description:e instanceof Error?e.message:`The project link was not saved.`}))}function Yr(e){let t=(0,Z.c)(5),n;t[0]===e.label?n=t[1]:(n=(0,$.jsx)(`span`,{className:`text-xs font-medium text-foreground`,children:e.label}),t[0]=e.label,t[1]=n);let r;return t[2]!==e.children||t[3]!==n?(r=(0,$.jsxs)(`label`,{className:`grid gap-1.5`,children:[n,e.children]}),t[2]=e.children,t[3]=n,t[4]=r):r=t[4],r}function Xr(e){let t=(0,Z.c)(62),n=ot(),[r,i]=(0,Q.useState)(`general`),a;t[0]===e.open?a=t[1]:(a=()=>{e.open&&i(`general`)},t[0]=e.open,t[1]=a);let o=e.target?.id,s;t[2]!==e.open||t[3]!==o?(s=[e.open,o],t[2]=e.open,t[3]=o,t[4]=s):s=t[4],(0,Q.useEffect)(a,s);let c=e.target;if(!c)return null;let l=c.environmentLabel?`${c.name} · ${c.environmentLabel}`:c.name,u;t[5]===r?u=t[6]:(u=Pr.findIndex(e=>e.id===r),t[5]=r,t[6]=u);let d=Math.max(0,u),f=e.open,p;t[7]===e?p=t[8]:(p=t=>{t||e.onClose()},t[7]=e,t[8]=p);let m;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(G,{className:`text-base font-semibold`,children:`Project settings`}),t[9]=m):m=t[9];let h;t[10]===l?h=t[11]:(h=(0,$.jsx)(`header`,{className:`flex h-14 shrink-0 items-center justify-between border-b border-border px-5`,children:(0,$.jsxs)(`div`,{className:`min-w-0`,children:[m,(0,$.jsx)(`p`,{className:`truncate text-xs text-muted-foreground`,children:l})]})}),t[10]=l,t[11]=h);let g=`translateY(${d*2.5}rem)`,_;t[12]===g?_=t[13]:(_=(0,$.jsx)(`span`,{className:`pointer-events-none absolute top-2 right-2 left-2 z-0 h-9 rounded-md bg-accent transition-transform duration-[240ms] ease-out`,style:{transform:g},"aria-hidden":!0}),t[12]=g,t[13]=_);let v;if(t[14]!==n||t[15]!==r){let e;t[17]===n?e=t[18]:(e=e=>e.id!==`automations`||n!==`phone`,t[17]=n,t[18]=e);let a;t[19]===r?a=t[20]:(a=e=>{let{id:t,label:n,Icon:a}=e,o=r===t;return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>i(t),className:O(`relative z-10 flex h-9 items-center gap-2.5 rounded-md px-2 text-left text-[13px] outline-hidden ring-ring transition-colors duration-150 focus-visible:ring-2`,o?`font-medium text-foreground`:`text-muted-foreground/70 hover:text-foreground/80`),"aria-current":o?`page`:void 0,children:[(0,$.jsx)(a,{className:O(`size-4 shrink-0`,o?`text-foreground`:`text-muted-foreground/60`)}),(0,$.jsx)(`span`,{className:`hidden truncate sm:inline`,children:n})]},t)},t[19]=r,t[20]=a),v=Pr.filter(e).map(a),t[14]=n,t[15]=r,t[16]=v}else v=t[16];let y;t[21]!==v||t[22]!==_?(y=(0,$.jsxs)(`nav`,{className:`relative isolate flex w-12 shrink-0 flex-col gap-1 border-r border-border p-2 sm:w-48`,children:[_,v]}),t[21]=v,t[22]=_,t[23]=y):y=t[23];let b;t[24]!==e.customAvatarContentHash||t[25]!==e.customSystemPrompt||t[26]!==e.onCustomSystemPromptChange||t[27]!==e.onOpenRemote||t[28]!==e.onPickWorkspaceRoot||t[29]!==e.onPreferredRemoteChange||t[30]!==e.onRemoveAvatar||t[31]!==e.onSave||t[32]!==e.onTitleChange||t[33]!==e.onUploadAvatar||t[34]!==e.onWorkspaceRootChange||t[35]!==e.preferredRemoteName||t[36]!==e.projectAvatarUploadUnavailableReason||t[37]!==e.title||t[38]!==e.workspaceRoot||t[39]!==r||t[40]!==c?(b=(0,$.jsx)(ct,{className:`min-h-0 flex-1 min-w-0`,children:(0,$.jsx)(`div`,{className:`mx-auto max-w-[520px] px-6 py-6`,children:r===`general`?(0,$.jsx)(Fr,{target:c,title:e.title,customAvatarContentHash:e.customAvatarContentHash,projectAvatarUploadUnavailableReason:e.projectAvatarUploadUnavailableReason,preferredRemoteName:e.preferredRemoteName,onTitleChange:e.onTitleChange,onPreferredRemoteChange:e.onPreferredRemoteChange,onUploadAvatar:e.onUploadAvatar,onRemoveAvatar:e.onRemoveAvatar,onOpenRemote:e.onOpenRemote}):r===`location`?(0,$.jsx)(Ir,{workspaceRoot:e.workspaceRoot,projectId:c.id,onWorkspaceRootChange:e.onWorkspaceRootChange,onPickWorkspaceRoot:e.onPickWorkspaceRoot,onSave:e.onSave}):r===`automations`?(0,$.jsx)(Mr,{environmentId:c.environmentId,projectId:c.id}):r===`atlassian`?(0,$.jsx)(Wr,{target:c}):(0,$.jsx)(Lr,{target:c,customSystemPrompt:e.customSystemPrompt,onCustomSystemPromptChange:e.onCustomSystemPromptChange})})}),t[24]=e.customAvatarContentHash,t[25]=e.customSystemPrompt,t[26]=e.onCustomSystemPromptChange,t[27]=e.onOpenRemote,t[28]=e.onPickWorkspaceRoot,t[29]=e.onPreferredRemoteChange,t[30]=e.onRemoveAvatar,t[31]=e.onSave,t[32]=e.onTitleChange,t[33]=e.onUploadAvatar,t[34]=e.onWorkspaceRootChange,t[35]=e.preferredRemoteName,t[36]=e.projectAvatarUploadUnavailableReason,t[37]=e.title,t[38]=e.workspaceRoot,t[39]=r,t[40]=c,t[41]=b):b=t[41];let x;t[42]!==y||t[43]!==b?(x=(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-row`,children:[y,b]}),t[42]=y,t[43]=b,t[44]=x):x=t[44];let S;t[45]===e.onClose?S=t[46]:(S=(0,$.jsx)(C,{variant:`outline`,onClick:e.onClose,children:`Cancel`}),t[45]=e.onClose,t[46]=S);let w;t[47]!==e.onSave||t[48]!==e.saving||t[49]!==r?(w=r===`atlassian`||r===`automations`?null:(0,$.jsx)(C,{onClick:e.onSave,disabled:e.saving,children:e.saving?`Saving…`:`Save changes`}),t[47]=e.onSave,t[48]=e.saving,t[49]=r,t[50]=w):w=t[50];let T;t[51]!==S||t[52]!==w?(T=(0,$.jsxs)(`footer`,{className:`flex shrink-0 items-center justify-end gap-2 border-t border-border px-5 py-3`,children:[S,w]}),t[51]=S,t[52]=w,t[53]=T):T=t[53];let E;t[54]!==x||t[55]!==T||t[56]!==h?(E=(0,$.jsxs)(Se,{className:`project-glass-surface h-[min(70vh,620px)] max-w-[760px] overflow-hidden p-0 duration-[320ms] ease-[cubic-bezier(0.16,1,0.3,1)] data-ending-style:translate-y-4 data-starting-style:translate-y-4`,bottomStickOnMobile:!1,showCloseButton:!0,surface:`glass`,children:[h,x,T]}),t[54]=x,t[55]=T,t[56]=h,t[57]=E):E=t[57];let D;return t[58]!==e.open||t[59]!==E||t[60]!==p?(D=(0,$.jsx)(ue,{open:f,onOpenChange:p,children:E}),t[58]=e.open,t[59]=E,t[60]=p,t[61]=D):D=t[61],D}function Zr(e){let t=(0,Z.c)(38),{target:n,selection:r,globalGroupingMode:i,onSelectionChange:a,onClose:o,onSave:s}=e,c=n!==null,l;t[0]===o?l=t[1]:(l=e=>{e||o()},t[0]=o,t[1]=l);let u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,$.jsx)(G,{children:`Project grouping`}),t[2]=u):u=t[2];let d=n?`Choose how ${n.cwd} should be grouped in the sidebar.`:`Choose how this project should be grouped in the sidebar.`,f;t[3]===d?f=t[4]:(f=(0,$.jsxs)(xe,{children:[u,(0,$.jsx)(Ie,{children:d})]}),t[3]=d,t[4]=f);let p;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(`span`,{className:`text-xs font-medium text-foreground`,children:`Grouping rule`}),t[5]=p):p=t[5];let m;t[6]===a?m=t[7]:(m=e=>{(e===`inherit`||e===`repository`||e===`repository_path`||e===`separate`)&&a(e)},t[6]=a,t[7]=m);let h=r===`inherit`?`Use global default (${Kn[i]})`:Kn[r],g;t[8]===h?g=t[9]:(g=(0,$.jsx)(Xe,{className:`w-full`,"aria-label":`Project grouping rule`,children:(0,$.jsx)(qe,{children:h})}),t[8]=h,t[9]=g);let _;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,$.jsxs)(Ye,{align:`end`,alignItemWithTrigger:!1,children:[(0,$.jsx)(Ke,{hideIndicator:!0,value:`inherit`,children:`Use global default`}),(0,$.jsx)(Ke,{hideIndicator:!0,value:`repository`,children:Kn.repository}),(0,$.jsx)(Ke,{hideIndicator:!0,value:`repository_path`,children:Kn.repository_path}),(0,$.jsx)(Ke,{hideIndicator:!0,value:`separate`,children:Kn.separate})]}),t[10]=_):_=t[10];let v;t[11]!==r||t[12]!==m||t[13]!==g?(v=(0,$.jsxs)(`div`,{className:`grid gap-1.5`,children:[p,(0,$.jsxs)(Je,{value:r,onValueChange:m,children:[g,_]})]}),t[11]=r,t[12]=m,t[13]=g,t[14]=v):v=t[14];let y;t[15]!==i||t[16]!==r?(y=Jn(r===`inherit`?i:r),t[15]=i,t[16]=r,t[17]=y):y=t[17];let b;t[18]===y?b=t[19]:(b=(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:y}),t[18]=y,t[19]=b);let x;t[20]!==v||t[21]!==b?(x=(0,$.jsxs)(be,{className:`space-y-4`,children:[v,b]}),t[20]=v,t[21]=b,t[22]=x):x=t[22];let S;t[23]===o?S=t[24]:(S=(0,$.jsx)(C,{variant:`outline`,onClick:o,children:`Cancel`}),t[23]=o,t[24]=S);let w;t[25]===s?w=t[26]:(w=(0,$.jsx)(C,{onClick:s,children:`Save`}),t[25]=s,t[26]=w);let T;t[27]!==S||t[28]!==w?(T=(0,$.jsxs)(W,{children:[S,w]}),t[27]=S,t[28]=w,t[29]=T):T=t[29];let E;t[30]!==x||t[31]!==T||t[32]!==f?(E=(0,$.jsxs)(Se,{className:`project-glass-surface max-w-lg`,surface:`glass`,children:[f,x,T]}),t[30]=x,t[31]=T,t[32]=f,t[33]=E):E=t[33];let D;return t[34]!==c||t[35]!==l||t[36]!==E?(D=(0,$.jsx)(ue,{open:c,onOpenChange:l,children:E}),t[34]=c,t[35]=l,t[36]=E,t[37]=D):D=t[37],D}function Qr(e){let t=(0,Z.c)(34),{target:n,title:r,onTitleChange:i,onClose:a,onSubmit:o}=e,s=n!==null,c;t[0]===a?c=t[1]:(c=e=>{e||a()},t[0]=a,t[1]=c);let l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(G,{children:`Rename project`}),t[2]=l):l=t[2];let u=n?`Update the title for ${n.cwd}.`:`Update the project title.`,d;t[3]===u?d=t[4]:(d=(0,$.jsxs)(xe,{children:[l,(0,$.jsx)(Ie,{children:u})]}),t[3]=u,t[4]=d);let f;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(`span`,{className:`text-xs font-medium text-foreground`,children:`Project title`}),t[5]=f):f=t[5];let p;t[6]===i?p=t[7]:(p=e=>i(e.target.value),t[6]=i,t[7]=p);let m;t[8]===o?m=t[9]:(m=e=>{e.key===`Enter`&&ut(e)&&(e.preventDefault(),o())},t[8]=o,t[9]=m);let h;t[10]!==p||t[11]!==m||t[12]!==r?(h=(0,$.jsxs)(`div`,{className:`grid gap-1.5`,children:[f,(0,$.jsx)(st,{"aria-label":`Project title`,value:r,onChange:p,onKeyDown:m})]}),t[10]=p,t[11]=m,t[12]=r,t[13]=h):h=t[13];let g;t[14]===n?g=t[15]:(g=n?.environmentLabel?(0,$.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Environment: `,n.environmentLabel]}):null,t[14]=n,t[15]=g);let _;t[16]!==h||t[17]!==g?(_=(0,$.jsxs)(be,{className:`space-y-4`,children:[h,g]}),t[16]=h,t[17]=g,t[18]=_):_=t[18];let v;t[19]===a?v=t[20]:(v=(0,$.jsx)(C,{variant:`outline`,onClick:a,children:`Cancel`}),t[19]=a,t[20]=v);let y;t[21]===o?y=t[22]:(y=(0,$.jsx)(C,{onClick:o,children:`Save`}),t[21]=o,t[22]=y);let b;t[23]!==v||t[24]!==y?(b=(0,$.jsxs)(W,{children:[v,y]}),t[23]=v,t[24]=y,t[25]=b):b=t[25];let x;t[26]!==_||t[27]!==b||t[28]!==d?(x=(0,$.jsxs)(Se,{className:`project-glass-surface max-w-lg`,surface:`glass`,children:[d,_,b]}),t[26]=_,t[27]=b,t[28]=d,t[29]=x):x=t[29];let S;return t[30]!==s||t[31]!==c||t[32]!==x?(S=(0,$.jsx)(ue,{open:s,onOpenChange:c,children:x}),t[30]=s,t[31]=c,t[32]=x,t[33]=S):S=t[33],S}function $r(e){let t=(0,Z.c)(13),{projectGroupingSettings:n,updateSettings:r}=e,[i,a]=(0,Q.useState)(null),[o,s]=(0,Q.useState)(`inherit`),c;t[0]===n.sidebarProjectGroupingOverrides?c=t[1]:(c=e=>{let t=T(e);a(e),s(n.sidebarProjectGroupingOverrides?.[t]??`inherit`)},t[0]=n.sidebarProjectGroupingOverrides,t[1]=c);let l=c,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=()=>{a(null),s(`inherit`)},t[2]=u):u=t[2];let d=u,f;t[3]!==o||t[4]!==n.sidebarProjectGroupingOverrides||t[5]!==i||t[6]!==r?(f=()=>{if(!i)return;let e=T(i),t={...n.sidebarProjectGroupingOverrides};o===`inherit`?delete t[e]:t[e]=o,r({sidebarProjectGroupingOverrides:t}),d()},t[3]=o,t[4]=n.sidebarProjectGroupingOverrides,t[5]=i,t[6]=r,t[7]=f):f=t[7];let p=f,m;return t[8]!==l||t[9]!==o||t[10]!==i||t[11]!==p?(m={projectGroupingTarget:i,projectGroupingSelection:o,setProjectGroupingSelection:s,openProjectGroupingDialog:l,closeProjectGroupingDialog:d,saveProjectGroupingPreference:p},t[8]=l,t[9]=o,t[10]=i,t[11]=p,t[12]=m):m=t[12],m}function ei(){let e=(0,Z.c)(9),[t,n]=(0,Q.useState)(null),[r,i]=(0,Q.useState)(``),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=e=>{n(e),i(e.name)},e[0]=a):a=e[0];let o=a,s;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>{n(null),i(``)},e[1]=s):s=e[1];let c=s,l;e[2]!==t||e[3]!==r?(l=async()=>{if(!t)return;let e=r.trim();if(e.length===0){b.add({type:`warning`,title:`Project title cannot be empty`});return}if(e===t.name){c();return}let n=L(t.environmentId);if(!n){b.add(X({type:`error`,title:`Failed to rename project`,description:`Project API unavailable.`}));return}try{await n.orchestration.dispatchCommand({type:`project.meta.update`,commandId:I(),projectId:t.id,title:e}),c()}catch(e){let t=e;b.add(X({type:`error`,title:`Failed to rename project`,description:t instanceof Error?t.message:`An error occurred.`}))}},e[2]=t,e[3]=r,e[4]=l):l=e[4];let u=l,d;return e[5]!==t||e[6]!==r||e[7]!==u?(d={projectRenameTarget:t,projectRenameTitle:r,setProjectRenameTitle:i,openProjectRenameDialog:o,closeProjectRenameDialog:c,submitProjectRename:u},e[5]=t,e[6]=r,e[7]=u,e[8]=d):d=e[8],d}function ti(){let[e,t]=(0,Q.useState)(null),[n,r]=(0,Q.useState)(!1),a=(0,Q.useRef)(null),o=(0,Q.useRef)(null),s=(0,Q.useRef)(null);(0,Q.useEffect)(()=>{a.current=e},[e]);let c=(0,Q.useCallback)(()=>{o.current!==null&&(window.cancelAnimationFrame(o.current),o.current=null),s.current!==null&&(window.clearTimeout(s.current),s.current=null)},[]);(0,Q.useEffect)(()=>()=>c(),[c]);let[l,u]=(0,Q.useState)(``),[d,f]=(0,Q.useState)(``),[p,m]=(0,Q.useState)(``),[h,g]=(0,Q.useState)(!1),[_,v]=(0,Q.useState)(null),[y,x]=(0,Q.useState)(null),S=(0,Q.useCallback)(e=>{c(),r(!1),t(e),u(e.name),f(e.cwd),m(e.customSystemPrompt??``),g(!1),v(e.customAvatarContentHash??null),x(e.preferredRemoteName??null),o.current=window.requestAnimationFrame(()=>{o.current=null,r(!0)})},[c]),C=(0,Q.useCallback)(()=>{o.current!==null&&(window.cancelAnimationFrame(o.current),o.current=null),r(!1),s.current!==null&&window.clearTimeout(s.current),s.current=window.setTimeout(()=>{s.current=null,t(null),u(``),f(``),m(``),g(!1),v(null),x(null)},340)},[]),w=(0,Q.useCallback)(async()=>{let t=A();if(!t){b.add({type:`error`,title:`Folder picker is unavailable.`});return}let n=await t.dialogs.pickFolder({initialPath:d.trim()||e?.cwd||null});n&&f(n)},[e?.cwd,d]),T=(0,Q.useCallback)(async()=>{if(!e||h)return;let t=l.trim(),n=d.trim(),r=p.trim();if(t.length===0){b.add({type:`warning`,title:`Project title cannot be empty`});return}if(n.length===0){b.add({type:`warning`,title:`Project root cannot be empty`});return}let i=t!==e.name,a=n!==e.cwd,o=r!==(e.customSystemPrompt?.trim()??``),s=y!==(e.preferredRemoteName??null);if(!i&&!a&&!o&&!s){C();return}let c=L(e.environmentId);if(!c){b.add(X({type:`error`,title:`Failed to update project`,description:`Project API unavailable.`}));return}g(!0);try{await c.orchestration.dispatchCommand({type:`project.meta.update`,commandId:I(),projectId:e.id,...i?{title:t}:{},...a?{workspaceRoot:n}:{},...o?{customSystemPrompt:r.length>0?r:null}:{},...s?{preferredRemoteName:y}:{}}),C()}catch(e){g(!1),b.add(X({type:`error`,title:`Failed to update project`,description:e instanceof Error?e.message:`An error occurred.`}))}},[C,h,p,y,e,l,d]),E=(0,Q.useCallback)(async t=>{let n=e;if(!n)return;if(i()){b.add({type:`warning`,title:`Project image upload is unavailable in hosted mode.`});return}let r=L(n.environmentId);if(!r)return;let o=k({environmentId:n.environmentId,pathname:`/api/project-avatar/upload`,searchParams:{projectId:n.id}}),s=new FormData;s.append(`avatar`,t);try{let e=await fetch(o,{method:`POST`,body:s,credentials:`include`});if(!e.ok){let t=await e.text().catch(()=>``);throw Error(t||`Upload failed: ${e.status}`)}let{contentHash:t}=await e.json();await r.orchestration.dispatchCommand({type:`project.avatar.set`,commandId:I(),projectId:n.id,contentHash:t}),a.current?.id===n.id&&v(t)}catch(e){if(a.current?.id!==n.id)return;b.add(X({type:`error`,title:`Failed to upload avatar`,description:e instanceof Error?e.message:`An error occurred.`}))}},[e]),D=(0,Q.useCallback)(async()=>{let t=e;if(!t)return;let n=L(t.environmentId);if(n)try{await n.orchestration.dispatchCommand({type:`project.avatar.set`,commandId:I(),projectId:t.id,contentHash:null}),a.current?.id===t.id&&v(null)}catch(e){if(a.current?.id!==t.id)return;b.add(X({type:`error`,title:`Failed to remove avatar`,description:e instanceof Error?e.message:`An error occurred.`}))}},[e]),O=(0,Q.useCallback)((e,t)=>{let n=(e.repositoryIdentity?.remotes??[]).find(e=>e.name===t);if(!n)return;let r=$n(n.url);if(!r)return;let i=A();i&&i.shell.openExternal(r).catch(e=>{b.add(X({type:`error`,title:`Unable to open remote repository`,description:e instanceof Error?e.message:`An error occurred.`}))})},[]);return{projectSettingsTarget:e,projectSettingsOpen:n,projectSettingsTitle:l,projectSettingsWorkspaceRoot:d,projectSettingsCustomSystemPrompt:p,projectSettingsSaving:h,projectSettingsCustomAvatarContentHash:_,projectSettingsPreferredRemoteName:y,projectAvatarUploadUnavailableReason:i()?`Project image upload is unavailable in hosted mode because node HTTP routes are not relayed.`:null,setProjectSettingsTitle:u,setProjectSettingsWorkspaceRoot:f,setProjectSettingsCustomSystemPrompt:m,setProjectSettingsPreferredRemoteName:x,openProjectSettingsDialog:S,closeProjectSettingsDialog:C,pickProjectSettingsWorkspaceRoot:w,submitProjectSettings:T,uploadProjectAvatar:E,removeProjectAvatar:D,openProjectRemoteByName:O}}function ni(e){let t=new Map;for(let n of e.projects)t.set(z(n),ne(n,e.settings));return t}function ri(e){let t=new Map;for(let n of e.projects){let r=ne(n,e.settings),i={...n,physicalProjectKey:z(n),environmentLabel:We({environmentId:n.environmentId,label:e.resolveEnvironmentLabel(n.environmentId)})},a=t.get(r);a?a.push(i):t.set(r,[i])}let r=[],i=new Set;for(let a of e.projects){let o=ne(a,e.settings);if(i.has(o))continue;i.add(o);let s=t.get(o)??[],c=(e.primaryEnvironmentId?s.find(t=>t.environmentId===e.primaryEnvironmentId):null)??s[0];if(!c)continue;let l=e.primaryEnvironmentId!==null&&s.some(t=>t.environmentId===e.primaryEnvironmentId),u=e.primaryEnvironmentId!==null&&s.some(t=>t.environmentId!==e.primaryEnvironmentId),d=s.filter(t=>e.primaryEnvironmentId!==null&&t.environmentId!==e.primaryEnvironmentId).flatMap(e=>e.environmentLabel?[e.environmentLabel]:[]).filter((e,t,n)=>n.indexOf(e)===t);r.push({...c,projectKey:o,displayName:s.length>1?v({representative:c,members:s}):c.name,groupedProjectCount:s.length,environmentPresence:l&&u?`mixed`:u?`remote-only`:`local-only`,memberProjects:s,memberProjectRefs:s.map(e=>n(e.environmentId,e.id)),remoteEnvironmentLabels:d})}return r}function ii(e){let t=[];for(let n of e.projectFolderOrder)e.projectFoldersById[n]!==void 0&&!t.includes(n)&&t.push(n);for(let n of Object.keys(e.projectFoldersById))t.includes(n)||t.push(n);return t}function ai(e,t,n){let r=new Set(e.memberProjects.map(e=>e.physicalProjectKey));for(let e of ii({projectFoldersById:t,projectFolderOrder:n})){let n=t[e];if(n&&n.projectKeys.some(e=>r.has(e)))return e}return null}function oi(e){if(e.projectSortOrder!==`manual`)return[...e.projects].toSorted((t,n)=>(e.sourceIndexByProjectKey.get(t.projectKey)??0)-(e.sourceIndexByProjectKey.get(n.projectKey)??0));let t=new Map(e.folder.projectKeys.map((e,t)=>[e,t]));return[...e.projects].toSorted((n,r)=>{let i=Math.min(...n.memberProjects.map(e=>t.get(e.physicalProjectKey)??1/0))-Math.min(...r.memberProjects.map(e=>t.get(e.physicalProjectKey)??1/0));return Number.isFinite(i)&&i!==0?i:(e.sourceIndexByProjectKey.get(n.projectKey)??0)-(e.sourceIndexByProjectKey.get(r.projectKey)??0)})}function si(e){let t=ii(e),n=[...e.projectTreeOrder.flatMap(t=>{let n=w(t);return n?.kind===`folder`&&e.projectFoldersById[n.folderId]!==void 0?[n.folderId]:[]}),...t].filter((e,t,n)=>n.indexOf(e)===t),r=new Map(e.projects.map(e=>[e.projectKey,e])),i=new Map(e.projects.map((e,t)=>[e.projectKey,t])),a=new Map,o=new Map,s=[];for(let t of e.projects){let r=ai(t,e.projectFoldersById,n);if(!r){s.push(t);continue}a.set(t.projectKey,r);let i=o.get(r)??[];i.push(t),o.set(r,i)}let c=new Set([...t.map(ie),...s.map(e=>g(e.projectKey))]),l=new Set,u=[];for(let t of e.projectTreeOrder)!l.has(t)&&c.has(t)&&w(t)&&(l.add(t),u.push(t));for(let e of t){let t=ie(e);l.has(t)||(l.add(t),u.push(t))}for(let e of s){let t=g(e.projectKey);l.has(t)||(l.add(t),u.push(t))}return u.flatMap(t=>{let n=w(t);if(!n)return[];if(n.kind===`folder`){let r=e.projectFoldersById[n.folderId];return r?[{kind:`folder`,itemId:t,folder:r,projects:oi({folder:r,projects:o.get(n.folderId)??[],projectSortOrder:e.projectSortOrder,sourceIndexByProjectKey:i})}]:[]}if(a.has(n.projectKey))return[];let s=r.get(n.projectKey);return s?[{kind:`project`,itemId:t,project:s}]:[]})}export{zt as A,Wt as C,Mt as D,Lt as E,Ot as F,Rt as I,At as L,Nt as M,Dt as N,It as O,Vt as P,gt as R,Kt as S,Bt as T,mn as _,ei as a,gn as b,Zr as c,sr as d,tr as f,Gn as g,qn as h,ti as i,Ct as j,Ft as k,Xr as l,Xn as m,ni as n,$r as o,er as p,ri as r,Qr as s,si as t,xr as u,Dn as v,Pt as w,Gt as x,Sn as y,mt as z};
@@ -1 +1 @@
1
- import{ei as e}from"./runtime-OM-uAtaj.js";var t={done:`sidebar-status-text sidebar-status-text--done`,idle:``,in_progress:`sidebar-status-text sidebar-status-text--in-progress sidebar-status-text--flow`,review:`sidebar-status-text sidebar-status-text--review`},n={"Awaiting Input":`sidebar-status-text sidebar-status-text--awaiting-input`,Completed:`sidebar-status-text sidebar-status-text--done`,Connecting:`sidebar-status-text sidebar-status-text--in-progress sidebar-status-text--flow`,Monitoring:`sidebar-status-text sidebar-status-text--in-progress sidebar-status-text--flow`,"Pending Approval":`sidebar-status-text sidebar-status-text--pending-approval`,"Plan Ready":`sidebar-status-text sidebar-status-text--plan-ready`,Working:`sidebar-status-text sidebar-status-text--in-progress sidebar-status-text--flow`};function r(n,r){return e(r,t[n])}function i(t,r){return t===null?e(r):e(r,n[t.label])}function a(e,t){let n=t?.spreadPerCharacterPx??2,r=Math.max(12,Math.round(e.length*n));return{...t?.durationSeconds===void 0?{}:{"--sidebar-status-text-duration":`${t.durationSeconds}s`},"--sidebar-status-text-spread":`${r}px`}}export{a as n,i as r,r as t};
1
+ import{ei as e}from"./runtime-BwHA1GUS.js";var t={done:`sidebar-status-text sidebar-status-text--done`,idle:``,in_progress:`sidebar-status-text sidebar-status-text--in-progress sidebar-status-text--flow`,review:`sidebar-status-text sidebar-status-text--review`},n={"Awaiting Input":`sidebar-status-text sidebar-status-text--awaiting-input`,Completed:`sidebar-status-text sidebar-status-text--done`,Connecting:`sidebar-status-text sidebar-status-text--in-progress sidebar-status-text--flow`,Monitoring:`sidebar-status-text sidebar-status-text--in-progress sidebar-status-text--flow`,"Pending Approval":`sidebar-status-text sidebar-status-text--pending-approval`,"Plan Ready":`sidebar-status-text sidebar-status-text--plan-ready`,Working:`sidebar-status-text sidebar-status-text--in-progress sidebar-status-text--flow`};function r(n,r){return e(r,t[n])}function i(t,r){return t===null?e(r):e(r,n[t.label])}function a(e,t){let n=t?.spreadPerCharacterPx??2,r=Math.max(12,Math.round(e.length*n));return{...t?.durationSeconds===void 0?{}:{"--sidebar-status-text-duration":`${t.durationSeconds}s`},"--sidebar-status-text-spread":`${r}px`}}export{a as n,i as r,r as t};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Jt as t,Kt as n,Yt as r,a as i,pt as a,q as o,r as s}from"./primary-CQh_KHGG.js";import{Z as c}from"./src-DHNjfMxR.js";import{Bn as l,C as u,Cn as d,Dn as f,En as p,Kr as m,On as h,P as g,Sn as _,V as v,Vr as y,Xr as b,Yt as x,bn as S,ei as C,go as w,ii as T,or as E,p as D,ri as O,si as k,sr as A,ui as j,ur as M,wn as N,x as P,xo as F}from"./runtime-OM-uAtaj.js";import{t as I}from"./react-CwJFpaho.js";import{t as L}from"./compiler-runtime-C4g8XhC5.js";import{a as ee,c as te,i as R,l as ne,p as re,r as z,x as ie}from"./hostedConnectionCoordinator-BztHfGNt.js";import{t as B}from"./toastHelpers-CSQRKo4F.js";import"./authorization-BugIGt5e.js";import{o as ae}from"./desktopWorkspace-Ocqt625W.js";import{i as oe,n as se}from"./deviceName-z0ZWSq0z.js";import{t as V}from"./shallow-B--PNURq.js";import"./storeSelectors-D60AAN01.js";function ce(e){let t=e.explicit??e.effective?.initialModelSelection.value??e.fallback;return{...t,options:t.options??[]}}async function H(e){if(e.config?.environment.capabilities.projectPreferences!==!0)return null;let t=e.api.server?.getProjectPreferences;if(!t)throw Error(`Project preferences are unavailable on this connection.`);return t(e.projectId===void 0?{}:{projectId:e.projectId})}var le=5e3;function ue(e){return JSON.stringify([e.projectId,e.title,e.modelSelection,e.interactionMode,e.tokenMode,e.createdAt,e.archivedAt,e.settledOverride,e.settledAt,e.snoozedUntil,e.snoozedAt,e.branch,e.worktreePath,e.worktreeId,e.manualStatusBucket,e.manualPosition,e.latestUserMessageAt,e.priority,e.latestUserMessageAt==null?e.updatedAt:null])}function de(e){let t=e.now??(()=>Date.now()),n=t=>{try{return e.readContext(t)}catch{return null}},i=t=>{try{return e.readLocalContext?.(t)??null}catch{return null}},a=e.setTimer??((e,t)=>setTimeout(e,t)),o=e.clearTimer??(e=>clearTimeout(e)),s=0,c=[],l,u=e=>(e.restoring||t()<e.expiresAt)&&e.valid(),d=()=>e.changed(c.map(({id:e,action:t,target:n,pending:r,applying:i,threadTitle:a})=>({id:e,action:t,target:n,pending:r,applying:i,threadTitle:a}))),f=e=>{c.find(t=>t.id===e)?.cleanup?.(),c=c.filter(t=>t.id!==e),d()},p=()=>{let e=c.filter(e=>u(e)?!0:(e.cleanup?.(),!1));e.length!==c.length&&(c=e,d())},m=()=>{l!==void 0&&o(l),l=void 0,c.length&&(l=a(()=>{l=void 0,p(),m()},100))},h=e=>{c=c.filter(t=>r(t.target)!==r(e.target)||(t.cleanup?.(),!1));let n={...e,id:++s,expiresAt:t()+le,pending:!1,restoring:!1,threadTitle:e.context.threadTitle,applying:e.applying??!1};return c.push(n),c.length>5&&c.shift()?.cleanup?.(),d(),m(),n},g={async dispatch(t,i,a){let o=n(t);if(!o||i.threadId!==t.threadId)throw Error(`The owning node is not ready for this action.`);for(let e of c)r(e.target)===r(t)&&f(e.id);let s=o.api.orchestration.dispatchCommand(i),l=o.supported&&(i.type===`thread.archive`||i.type===`thread.settle`||i.type===`thread.snooze`)?h({target:t,context:o,valid:()=>n(t)?.generation===o.generation,action:i.type.slice(7),ready:s,applying:!0,restore:async()=>{await o.api.orchestration.dispatchCommand({type:`thread.sidebar.undo`,threadId:t.threadId,commandId:e.newCommandId(),undoCommandId:i.commandId}),l&&c.includes(l)&&n(t)?.generation===o.generation&&await a?.(()=>c.includes(l)&&n(t)?.generation===o.generation)}}):null;try{await s}catch(e){throw l&&f(l.id),e}l&&c.includes(l)&&(l.applying=!1,d()),p()},async archive(e,t,r){let i=n(e)?.generation,a=r.currentRoute(),o=null,s,c=new Promise(e=>{s=e});try{await g.dispatch(e,{type:`thread.archive`,commandId:t,threadId:e.threadId},async e=>{await c,e()&&o!==null&&r.currentRoute()===o&&await r.reopen()}),i&&n(e)?.generation===i&&a!==null&&r.currentRoute()===a&&r.shouldLeave()&&(o=await r.leave())}finally{s()}},unpin(e,t){if(!t.read())return;g.supersede(e);let n=i(e);if(t.write(!1),!n)return;let r=!1,a=()=>{let t=i(e);return t?.threadRevision===n.threadRevision&&t.parentRevision===n.parentRevision};if(!a())return;let o=()=>{(t.read()||!a())&&(r=!0)},s=t.subscribe(o),c=n.subscribe(o);h({target:e,context:n,valid:()=>!r&&!t.read()&&a(),action:`unpin`,ready:Promise.resolve(),cleanup:()=>{s(),c()},restore:async()=>{if(r||t.read()||!a())throw Error(`The pin changed. Its current position was kept.`);t.write(!0)}})},supersede(e){for(let t of c)r(t.target)===r(e)&&f(t.id);m()},async undo(t){p();let n=c.find(e=>e.id===t);if(n&&!n.pending){n.pending=!0,d();try{if(await n.ready,!c.includes(n)||!u(n))return;n.restoring=!0,await n.restore()}catch(t){e.failed(t)}finally{f(t),m()}}},dismiss(e){f(e),m()},invalidate:p,dispose(){for(let e of c)e.cleanup?.();c=[],l!==void 0&&o(l),l=void 0,d()}};return g}function U(e){return e.online&&e.canMutate&&(e.nativeTrust===`verified`||e.nativeTrust===`account-trusted`||e.nativeTrust===`not-required`)}function W(e){return{environmentId:e.environmentId,projectId:e.projectId,physicalKey:e.physicalKey,machineLabel:e.machineLabel}}function fe(e){if(e.override){let t=e.override,n=e.project.variants.find(e=>e.environmentId===t.environmentId&&e.projectId===t.projectId);return n?U(n)?{status:`resolved`,target:W(n),source:`override`}:{status:`unavailable`,message:`No verified machine available`,reason:`override-unavailable`}:{status:`unavailable`,message:`No verified machine available`,reason:`override-not-in-project`}}let t=e.project.variants.filter(U);if(t.length===0)return{status:`unavailable`,message:`No verified machine available`,reason:`no-eligible-variant`};let n=t.toSorted((e,t)=>{let n=e.lastUsedAt??-1/0,r=t.lastUsedAt??-1/0;return n===r?e.localDesktop===t.localDesktop?String(e.environmentId).localeCompare(String(t.environmentId)):e.localDesktop?-1:1:r-n})[0],r=Math.max(...t.map(e=>e.lastUsedAt??-1/0)),i=Number.isFinite(r)&&n.lastUsedAt===r?`recent`:n.localDesktop?`local-desktop`:`stable`;return{status:`resolved`,target:W(n),source:i}}var G=e(I(),1),K=L(),pe=`[data-thread-item], [data-thread-selection-safe]`,q=`phone:pointer-coarse:size-8 phone:pointer-coarse:after:absolute phone:pointer-coarse:after:top-1/2 phone:pointer-coarse:after:left-1/2 phone:pointer-coarse:after:size-11 phone:pointer-coarse:after:-translate-x-1/2 phone:pointer-coarse:after:-translate-y-1/2`,me=`phone:pointer-coarse:relative ${q}`;function he(e){if(e.manualBucket!==null)return e.manualBucket;switch(e.statusPill?.label){case`Working`:case`Monitoring`:case`Connecting`:return`in_progress`;case`Plan Ready`:case`Pending Approval`:case`Awaiting Input`:return`review`;case`Completed`:return`done`;default:return`idle`}}function ge(e){return e.includes(`in_progress`)?`in_progress`:e.includes(`review`)?`review`:e.length>0&&e.every(e=>e===`done`)?`done`:`idle`}var _e=6048e5;function ve(e){if(e.buckets.length===0||!e.buckets.every(e=>e===`done`)||!e.latestUpdatedAt)return!1;let t=Date.parse(e.latestUpdatedAt);return!Number.isNaN(t)&&e.nowMs-t>=_e}function ye(e){return e.latestUserMessageAt!==null}function be(e){return e.latestUserMessageAt!==null}function J(e){return e.confirmThreadDelete&&be(e.thread)}function xe(e){for(let t of e.threads)if(t&&J({confirmThreadDelete:e.confirmThreadDelete,thread:t}))return!0;return!1}function Se(e){return e.archiveAvailable&&e.confirmThreadArchive}var Y={"Pending Approval":6,"Awaiting Input":5,Working:4,Connecting:4,"Plan Ready":3,Monitoring:2,Completed:1};function Ce(e){let t=e.setTimeoutFn??globalThis.setTimeout,n=e.clearTimeoutFn??globalThis.clearTimeout,r=!1,i=null,a=()=>{i!==null&&(n(i),i=null)};return{sync:n=>{if(!n){a(),r&&(r=!1,e.onVisibilityChange(!1));return}r||i!==null||(i=t(()=>{i=null,r=!0,e.onVisibilityChange(!0)},e.delayMs))},dispose:()=>{a()}}}function we(){let[e,t]=G.useState(!1),n=G.useRef(null);return G.useEffect(()=>{let e=Ce({delayMs:100,onVisibilityChange:e=>{t(e)},setTimeoutFn:window.setTimeout.bind(window),clearTimeoutFn:window.clearTimeout.bind(window)});return n.current=e,()=>{e.dispose(),n.current=null}},[]),{showThreadJumpHints:e,updateThreadJumpHintsVisibility:G.useCallback(e=>{n.current?.sync(e)},[])}}function Te(e){if(!e.latestTurn?.completedAt)return!1;let t=Date.parse(e.latestTurn.completedAt);if(Number.isNaN(t))return!1;if(!e.lastVisitedAt)return!0;let n=Date.parse(e.lastVisitedAt);return Number.isNaN(n)?!0:t>n}function Ee(e){return e===null||!e.closest(pe)}function De(e){return e>1}function Oe(e){return e.requestedEnvMode??e.defaultEnvMode}function ke(e){return e.defaultEnvMode===`worktree`?{envMode:`worktree`}:e.activeDraftThread?.projectId===e.projectId?{branch:e.activeDraftThread.branch,worktreePath:e.activeDraftThread.worktreePath,envMode:e.activeDraftThread.envMode}:e.activeThread?.projectId===e.projectId?{branch:e.activeThread.branch,worktreePath:e.activeThread.worktreePath,envMode:e.activeThread.worktreePath?`worktree`:`local`}:{envMode:e.defaultEnvMode}}function X(e){let{getId:t,items:n,preferredIds:r}=e;if(r.length===0)return[...n];let i=new Map(n.map(e=>[t(e),e])),a=new Set(r),o=new Set,s=r.flatMap(e=>{if(o.has(e))return[];let t=i.get(e);return t?(o.add(e),[t]):[]}),c=n.filter(e=>!a.has(t(e)));return[...s,...c]}function Ae(e,t=3){return e.slice(0,Math.max(0,t))}function je(e){return e.sidebarMode===`projects`&&(e.isMobile?e.openMobile:e.open)}function Me(e){return e.isActive||e.isIntersecting}function Ne(e){let t=d(e.threads,e.sortOrder);return e.pinnedThreadKeys.size===0?t:t.toSorted((t,n)=>{let r=e.pinnedThreadKeys.has(e.getThreadKey(t));return r===e.pinnedThreadKeys.has(e.getThreadKey(n))?0:r?-1:1})}function Pe(e){return e<=80}function Fe(e){return e.projectCount<=80&&e.visibleThreadCount<=120}function Ie(e){return e.explorerOpen||e.projectVisible}function Le(e){let{currentThreadId:t,direction:n,threadIds:r}=e;if(r.length===0)return null;if(t===null)return n===`previous`?r.at(-1)??null:r[0]??null;let i=r.indexOf(t);return i===-1?null:n===`previous`?i>0?r[i-1]??null:null:i<r.length-1?r[i+1]??null:null}function Re(e){return e.button===2||e.isMac&&e.button===0&&e.ctrlKey}function ze(e){let t=`h-7 w-full translate-x-0 cursor-pointer justify-start px-2 text-left select-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring`;return e.isSelected&&e.isActive?C(t,`bg-primary/22 text-foreground font-medium hover:bg-primary/26 hover:text-foreground dark:bg-primary/30 dark:hover:bg-primary/36`):e.isSelected?C(t,`bg-primary/15 text-foreground hover:bg-primary/19 hover:text-foreground dark:bg-primary/22 dark:hover:bg-primary/28`):e.isActive?C(t,`bg-accent/85 text-foreground font-medium hover:bg-accent hover:text-foreground dark:bg-accent/55 dark:hover:bg-accent/70`):C(t,`text-muted-foreground hover:bg-accent hover:text-foreground`)}function Be(e){let{thread:t}=e,n=x(t);return n===`approval`?{label:`Pending Approval`,colorClass:`text-amber-600 dark:text-amber-300/90`,dotClass:`bg-amber-500 dark:bg-amber-300/90`,pulse:!1}:n===`input`?{label:`Awaiting Input`,colorClass:`text-indigo-600 dark:text-indigo-300/90`,dotClass:`bg-indigo-500 dark:bg-indigo-300/90`,pulse:!1}:n===`working`?{label:`Working`,colorClass:`text-sky-600 dark:text-sky-300/80`,dotClass:`bg-sky-500 dark:bg-sky-300/80`,pulse:!0}:n===`connecting`?{label:`Connecting`,colorClass:`text-sky-600 dark:text-sky-300/80`,dotClass:`bg-sky-500 dark:bg-sky-300/80`,pulse:!0}:n===`plan-ready`?{label:`Plan Ready`,colorClass:`text-violet-600 dark:text-violet-300/90`,dotClass:`bg-violet-500 dark:bg-violet-300/90`,pulse:!1}:n===`monitoring`?{label:`Monitoring`,colorClass:`text-sky-600 dark:text-sky-300/80`,dotClass:`bg-sky-500 dark:bg-sky-300/80`,pulse:!0}:Te(t)?{label:`Completed`,colorClass:`text-emerald-600 dark:text-emerald-300/90`,dotClass:`bg-emerald-500 dark:bg-emerald-300/90`,pulse:!1}:null}function Ve(e){let t=null;for(let n of e)n!==null&&(t===null||Y[n.label]>Y[t.label])&&(t=n);return t}function He(e){let{deletedThreadId:t,deletedThreadIds:n,sortOrder:r,threads:i}=e,a=i.find(e=>e.id===t);if(!a)return null;let o=i.filter(e=>e.id!==t&&!n?.has(e.id));return d(o.filter(e=>e.projectId===a.projectId),r)[0]?.id??d(o,r)[0]?.id??null}function Z(e,t,n){return t.length>0?t.reduce((e,t)=>Math.max(e,_(t,n)),-1/0):n===`created_at`?N(e.createdAt)??-1/0:N(e.updatedAt??e.createdAt)??-1/0}function Ue(e,t,n){if(n===`manual`)return[...e];let r=new Map;for(let e of t){let t=r.get(e.projectId)??[];t.push(e),r.set(e.projectId,t)}return[...e].toSorted((e,t)=>{let i=Z(t,r.get(t.id)??[],n),a=Z(e,r.get(e.id)??[],n),o=i===a?0:i>a?1:-1;return o===0?e.name.localeCompare(t.name)||e.id.localeCompare(t.id):o})}function We(e){if(!e.ready||e.primaryEnvironmentId===null)return e.machines;let t=e.machines.filter(t=>t.environmentId!==e.primaryEnvironmentId&&t.environmentId!==e.localHubEnvironmentId);return[{environmentId:e.primaryEnvironmentId,label:oe({environmentId:e.primaryEnvironmentId,primaryEnvironmentId:e.primaryEnvironmentId,localHubEnvironmentId:e.localHubEnvironmentId??null,machines:e.machines,fallback:e.primaryLabel}),online:!0,canMutate:!0,nativeTrust:`not-required`},...t]}function Ge(e){if(e.preferredEnvironmentId!==void 0&&e.preferredEnvironmentId!==null){if(!e.ready)return null;let t=e.machines.find(t=>t.environmentId===e.preferredEnvironmentId);if(!t?.online||!t.canMutate)return null;let r=e.orderedProjects.find(t=>t.environmentId===e.preferredEnvironmentId);return r===void 0?null:n(r.environmentId,r.id)}let r=e.orderedProjects[0];if(!r)return null;if(!e.ready)return n(r.environmentId,r.id);let i=e.logicalKey(r),a=new Map(e.machines.map(e=>[e.environmentId,e])),o=e.orderedProjects.filter(t=>e.logicalKey(t)===i),s=fe({project:{key:i,label:r.name,repositoryIdentity:r.repositoryIdentity??null,ambiguous:o.length>1,variants:o.flatMap(r=>{let i=a.get(r.environmentId);return i?[{environmentId:r.environmentId,projectId:r.id,physicalKey:t(n(r.environmentId,r.id)),name:r.name,cwd:r.cwd,repositoryIdentity:r.repositoryIdentity??null,machineLabel:i.label,online:i.online,canMutate:i.canMutate,nativeTrust:i.nativeTrust,effectiveRole:i.canMutate?`owner`:null,lastUsedAt:null,lastLiveAt:null,localDesktop:e.localEnvironmentId===r.environmentId}]:[]})}});return s.status===`resolved`?n(s.target.environmentId,s.target.projectId):null}function Ke(){let e=(0,G.useRef)(new Map),n=l(V(e=>f(e))),r=y(e=>({sidebarProjectGroupingMode:e.sidebarProjectGroupingMode,sidebarProjectGroupingOverrides:e.sidebarProjectGroupingOverrides})),i=F(),o=(0,G.useCallback)(e=>{let t=z(e);t&&re(t)},[]),s=(0,G.useCallback)(()=>{let e=i.state.matches[i.state.matches.length-1]?.params??{};return b(e)},[i]);return(0,G.useCallback)(function l(u,d){let f=z(u.environmentId);if(f!==null&&(o(u.environmentId),R(u.environmentId)===null))return ne(u.environmentId).then(e=>{if(e===null){if(d?.freshDraft)throw Error(`The workspace is unavailable. Your selection draft is preserved.`);return}return l(u,d)});let{getDraftSessionByLogicalProjectKey:p,getDraftSession:h,getDraftThread:g,applyStickyState:_,setDraftThreadContext:v,setLogicalProjectDraftThreadId:y}=j.getState(),b=s(),x=n.find(e=>e.id===u.projectId&&e.environmentId===u.environmentId),S=x?P(x,r):t(u);if(d?.freshDraft){let t=d.freshDraft;if(!t.isCurrent())throw Error(`The source chat changed. Your selection draft was not sent.`);let n=j.getState();return(()=>{let n=j.getState(),r=e.current.get(t.draftId);if(n.draftThreadsByThreadKey[t.draftId]&&(!r||n.getComposerDraft(t.draftId)!==r.composer||n.draftThreadsByThreadKey[t.draftId]!==r.session))throw Error(`The destination draft changed elsewhere. Both drafts are preserved; open the destination to continue.`)})(),n.createDetachedDraftSession(S,u,t.draftId,{threadId:t.threadId,branch:d.branch??null,worktreePath:d.worktreePath??null,envMode:d.envMode??`local`,runtimeMode:t.runtimeMode,tokenMode:t.tokenMode}),n.setPrompt(t.draftId,t.prompt),n.setModelSelection(t.draftId,t.modelSelection),n.setRuntimeMode(t.draftId,t.runtimeMode),n.setTokenMode(t.draftId,t.tokenMode),n.setDraftThreadContext(t.draftId,{branch:d.branch??null,envMode:d.envMode??`local`}),e.current.clear(),e.current.set(t.draftId,{composer:n.getComposerDraft(t.draftId),session:j.getState().draftThreadsByThreadKey[t.draftId]}),(async()=>{await i.navigate({to:`/draft/$draftId`,params:{draftId:t.draftId}});let n=j.getState().getComposerDraft(t.draftId),r=e.current.get(t.draftId)?.composer;if(n?.prompt!==t.prompt||n?.images!==r?.images||n?.terminalContexts!==r?.terminalContexts||n?.sourceControlContexts!==r?.sourceControlContexts)throw Error(`The destination draft changed. Send from the full composer to keep your edits.`);let a=s();if(a?.kind!==`draft`||a.draftId!==t.draftId)throw Error(`Navigation was cancelled. Your selection draft is preserved.`)})()}let C=d?.branch!==void 0,w=d?.worktreePath!==void 0,D=d?.envMode!==void 0,O=p(S),A=b?b.kind===`server`?g(b.threadRef):h(b.draftId):null;if(O)return(async()=>{(C||w||D)&&v(O.draftId,{...C?{branch:d?.branch??null}:{},...w?{worktreePath:d?.worktreePath??null}:{},...D?{envMode:d?.envMode}:{}}),y(S,u,O.draftId,{threadId:O.threadId}),(b?.kind!==`draft`||b.draftId!==O.draftId)&&(o(u.environmentId),await i.navigate({to:`/draft/$draftId`,params:{draftId:O.draftId}}))})();if(A&&b?.kind===`draft`&&A.logicalProjectKey===S&&A.promotedTo==null)return(C||w||D)&&v(b.draftId,{...C?{branch:d?.branch??null}:{},...w?{worktreePath:d?.worktreePath??null}:{},...D?{envMode:d?.envMode}:{}}),y(S,u,b.draftId,{threadId:A.threadId,createdAt:A.createdAt,runtimeMode:A.runtimeMode,interactionMode:A.interactionMode,tokenMode:A.tokenMode??`off`,...C?{branch:d?.branch??null}:{},...w?{worktreePath:d?.worktreePath??null}:{},...D?{envMode:d?.envMode}:{}}),Promise.resolve();let N=T(),F=k(),I=new Date().toISOString();return(async()=>{let e=f===null?null:R(u.environmentId),t=a(),n=t?.environment.environmentId===u.environmentId?t:M(u.environmentId)?.serverConfig;if(!n)throw Error(`Node settings are still loading. Try creating the draft again.`);let r=await H({api:E(u.environmentId),config:n,projectId:u.projectId}),s=f===null?null:R(u.environmentId);if(f!==null&&(!e||!s||!ie(e,u.environmentId,s)))throw Error(`The workspace connection changed. Try creating the draft again.`);if(p(S))return l(u,d);y(S,u,N,{threadId:F,createdAt:I,branch:d?.branch??null,worktreePath:d?.worktreePath??null,envMode:d?.envMode??r?.defaultThreadEnvMode.value??n.settings.defaultThreadEnvMode,runtimeMode:c,tokenMode:n.settings.defaultAgentTokenMode}),_(N);let m=d?.modelSelection??r?.initialModelSelection.value;m&&j.getState().setModelSelection(N,ce({effective:r,fallback:m,explicit:d?.modelSelection})),o(u.environmentId),await i.navigate({to:`/draft/$draftId`,params:{draftId:N}})})().catch(e=>{m.add({type:`error`,title:`Could not create a draft`,description:e instanceof Error?e.message:`Reconnect to this node and try again.`})})},[o,s,r,i,n])}function qe(){let e=(0,K.c)(2),t=Ke(),n;return e[0]===t?n=e[1]:(n={handleNewThread:t},e[0]=t,e[1]=n),n}function Je(){let e=(0,K.c)(29),t=v(tt),n=y(et),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={strict:!1,select:$e},e[0]=r):r=e[0];let a=w(r),o=a?.kind===`server`?a.threadRef:null,s;e[1]===o?s=e[2]:(s=S(o),e[1]=o,e[2]=s);let c=l(s),d=j(Qe),f;e[3]!==d||e[4]!==a?(f=()=>a?a.kind===`server`?d(a.threadRef):j.getState().getDraftSession(a.draftId):null,e[3]=d,e[4]=a,e[5]=f):f=e[5];let p=j(f),m=l(V(Ze)),h;e[6]!==t||e[7]!==m?(h=X({items:m,preferredIds:t,getId:u}),e[6]=t,e[7]=m,e[8]=h):h=e[8];let _=h,b=Ke(),x=se(),C=ae(),T=te(),E=i(),D=g(Xe),O;e[9]!==C||e[10]!==T.machines||e[11]!==T.status||e[12]!==x||e[13]!==E?(O=T.status===`signed-out`?{machines:We({machines:C.machines,ready:C.status===`ready`,primaryEnvironmentId:E,localHubEnvironmentId:C.localEnvironmentId,primaryLabel:x}),ready:C.status===`ready`,localEnvironmentId:E}:{machines:T.machines.map(Ye),ready:T.status===`ready`,localEnvironmentId:null},e[9]=C,e[10]=T.machines,e[11]=T.status,e[12]=x,e[13]=E,e[14]=O):O=e[14];let k=O,A;e[15]===n?A=e[16]:(A=e=>P(e,n),e[15]=n,e[16]=A);let M;e[17]!==T.status||e[18]!==_||e[19]!==D||e[20]!==A||e[21]!==k?(M=Ge({orderedProjects:_,...k,logicalKey:A,...T.status===`signed-out`?{}:{preferredEnvironmentId:D}}),e[17]=T.status,e[18]=_,e[19]=D,e[20]=A,e[21]=k,e[22]=M):M=e[22];let N=M,F=D!==null&&c?.environmentId!==D?void 0:c,I=D!==null&&p?.environmentId!==D?null:p,L;return e[23]!==I||e[24]!==F||e[25]!==N||e[26]!==b||e[27]!==o?(L={activeDraftThread:I,activeThread:F,defaultProjectRef:N,handleNewThread:b,routeThreadRef:o},e[23]=I,e[24]=F,e[25]=N,e[26]=b,e[27]=o,e[28]=L):L=e[28],L}function Ye(e){return{...e,online:e.presence.online}}function Xe(e){return e.selectedNode?.environmentId??null}function Ze(e){return f(e)}function Qe(e){return e.getDraftThread}function $e(e){return b(e)}function et(e){return{sidebarProjectGroupingMode:e.sidebarProjectGroupingMode,sidebarProjectGroupingOverrides:e.sidebarProjectGroupingOverrides}}function tt(e){return e.projectOrder}var nt={archive:`Thread archived`,settle:`Thread settled`,snooze:`Thread snoozed`,unpin:`Thread unpinned`},Q=new Map;function rt(e){for(let[t,n]of Q)e.some(e=>e.id===t)||(Q.delete(t),m.close(n.toastId));for(let t of e){let e=Q.get(t.id),n=B({type:`info`,title:t.applying?{archive:`Archiving thread…`,settle:`Settling thread…`,snooze:`Snoozing thread…`,unpin:`Unpinning thread…`}[t.action]:nt[t.action],timeout:0,description:t.threadTitle,actionProps:{children:t.pending?`Undoing…`:`Undo`,disabled:t.pending,"aria-label":`Undo ${t.action}${t.threadTitle?` ${t.threadTitle}`:``}`,onClick:()=>void $.undo(t.id)},data:{onClose:()=>$.dismiss(t.id)}});e?(e.pending!==t.pending||e.applying!==t.applying)&&(m.update(e.toastId,n),e.pending=t.pending,e.applying=t.applying):Q.set(t.id,{toastId:m.add(n),pending:t.pending,applying:t.applying})}}function it(e){let t=l.getState(),n=h(t,e),r=n?p(t,{environmentId:e.environmentId,projectId:n.projectId}):null;return!n||!r?null:{threadRevision:ue(n),parentRevision:r,threadTitle:n.title,subscribe:l.subscribe}}function at(e){let t=D(e.environmentId),n=t?.shellSnapshotReadiness.read(),r=A(e.environmentId),i=it(e);if(!t||!n||!r||!i)return null;let a=M(e.environmentId),c=s(),l=(c?.environmentId===e.environmentId?c.capabilities:a.descriptor?.capabilities)?.threadSidebarUndo===!0;if(o()){let t=ee().machines.find(t=>t.environmentId===e.environmentId);if(!t?.canMutate||t.connectionState!==`connected`||t.cacheDisposition!==`available`)return null}return{generation:n,api:r,threadRevision:i.threadRevision,parentRevision:i.parentRevision,threadTitle:i.threadTitle,supported:l}}var $=de({readContext:at,readLocalContext:it,newCommandId:O,changed:rt,failed:e=>m.add(B({type:`error`,title:`Could not undo thread action`,description:e instanceof Error?e.message:`The request failed. Check the current thread state before trying again.`}))});export{ve as A,Ee as C,Me as D,xe as E,Ne as M,we as N,je as O,H as P,Fe as S,J as T,Oe as _,q as a,Be as b,ye as c,Ae as d,Re as f,Ve as g,Le as h,We as i,Ue as j,Ie as k,he as l,X as m,Je as n,me as o,De as p,qe as r,ge as s,$ as t,He as u,ke as v,Se as w,Pe as x,ze as y};
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Jt as t,Kt as n,Yt as r,a as i,pt as a,q as o,r as s}from"./primary-DZjgHvyf.js";import{Z as c}from"./src-C3Y_imaX.js";import{Bn as l,C as u,Cn as d,Dn as f,En as p,Kr as m,On as h,P as g,Sn as _,V as v,Vr as y,Xr as b,Yt as x,bn as S,ei as C,go as w,ii as T,or as E,p as D,ri as O,si as k,sr as A,ui as j,ur as M,wn as N,x as P,xo as F}from"./runtime-BwHA1GUS.js";import{t as I}from"./react-CwJFpaho.js";import{t as L}from"./compiler-runtime-C4g8XhC5.js";import{a as ee,c as te,i as R,l as ne,p as re,r as z,x as ie}from"./hostedConnectionCoordinator-BuRWCvUG.js";import{t as B}from"./toastHelpers-CSQRKo4F.js";import"./authorization-D8dOcEYq.js";import{o as ae}from"./desktopWorkspace-_iM6B9Kf.js";import{i as oe,n as se}from"./deviceName-C2N8ZRX3.js";import{t as V}from"./shallow-B--PNURq.js";import"./storeSelectors-CTDWheMy.js";function ce(e){let t=e.explicit??e.effective?.initialModelSelection.value??e.fallback;return{...t,options:t.options??[]}}async function H(e){if(e.config?.environment.capabilities.projectPreferences!==!0)return null;let t=e.api.server?.getProjectPreferences;if(!t)throw Error(`Project preferences are unavailable on this connection.`);return t(e.projectId===void 0?{}:{projectId:e.projectId})}var le=5e3;function ue(e){return JSON.stringify([e.projectId,e.title,e.modelSelection,e.interactionMode,e.tokenMode,e.createdAt,e.archivedAt,e.settledOverride,e.settledAt,e.snoozedUntil,e.snoozedAt,e.branch,e.worktreePath,e.worktreeId,e.manualStatusBucket,e.manualPosition,e.latestUserMessageAt,e.priority,e.latestUserMessageAt==null?e.updatedAt:null])}function de(e){let t=e.now??(()=>Date.now()),n=t=>{try{return e.readContext(t)}catch{return null}},i=t=>{try{return e.readLocalContext?.(t)??null}catch{return null}},a=e.setTimer??((e,t)=>setTimeout(e,t)),o=e.clearTimer??(e=>clearTimeout(e)),s=0,c=[],l,u=e=>(e.restoring||t()<e.expiresAt)&&e.valid(),d=()=>e.changed(c.map(({id:e,action:t,target:n,pending:r,applying:i,threadTitle:a})=>({id:e,action:t,target:n,pending:r,applying:i,threadTitle:a}))),f=e=>{c.find(t=>t.id===e)?.cleanup?.(),c=c.filter(t=>t.id!==e),d()},p=()=>{let e=c.filter(e=>u(e)?!0:(e.cleanup?.(),!1));e.length!==c.length&&(c=e,d())},m=()=>{l!==void 0&&o(l),l=void 0,c.length&&(l=a(()=>{l=void 0,p(),m()},100))},h=e=>{c=c.filter(t=>r(t.target)!==r(e.target)||(t.cleanup?.(),!1));let n={...e,id:++s,expiresAt:t()+le,pending:!1,restoring:!1,threadTitle:e.context.threadTitle,applying:e.applying??!1};return c.push(n),c.length>5&&c.shift()?.cleanup?.(),d(),m(),n},g={async dispatch(t,i,a){let o=n(t);if(!o||i.threadId!==t.threadId)throw Error(`The owning node is not ready for this action.`);for(let e of c)r(e.target)===r(t)&&f(e.id);let s=o.api.orchestration.dispatchCommand(i),l=o.supported&&(i.type===`thread.archive`||i.type===`thread.settle`||i.type===`thread.snooze`)?h({target:t,context:o,valid:()=>n(t)?.generation===o.generation,action:i.type.slice(7),ready:s,applying:!0,restore:async()=>{await o.api.orchestration.dispatchCommand({type:`thread.sidebar.undo`,threadId:t.threadId,commandId:e.newCommandId(),undoCommandId:i.commandId}),l&&c.includes(l)&&n(t)?.generation===o.generation&&await a?.(()=>c.includes(l)&&n(t)?.generation===o.generation)}}):null;try{await s}catch(e){throw l&&f(l.id),e}l&&c.includes(l)&&(l.applying=!1,d()),p()},async archive(e,t,r){let i=n(e)?.generation,a=r.currentRoute(),o=null,s,c=new Promise(e=>{s=e});try{await g.dispatch(e,{type:`thread.archive`,commandId:t,threadId:e.threadId},async e=>{await c,e()&&o!==null&&r.currentRoute()===o&&await r.reopen()}),i&&n(e)?.generation===i&&a!==null&&r.currentRoute()===a&&r.shouldLeave()&&(o=await r.leave())}finally{s()}},unpin(e,t){if(!t.read())return;g.supersede(e);let n=i(e);if(t.write(!1),!n)return;let r=!1,a=()=>{let t=i(e);return t?.threadRevision===n.threadRevision&&t.parentRevision===n.parentRevision};if(!a())return;let o=()=>{(t.read()||!a())&&(r=!0)},s=t.subscribe(o),c=n.subscribe(o);h({target:e,context:n,valid:()=>!r&&!t.read()&&a(),action:`unpin`,ready:Promise.resolve(),cleanup:()=>{s(),c()},restore:async()=>{if(r||t.read()||!a())throw Error(`The pin changed. Its current position was kept.`);t.write(!0)}})},supersede(e){for(let t of c)r(t.target)===r(e)&&f(t.id);m()},async undo(t){p();let n=c.find(e=>e.id===t);if(n&&!n.pending){n.pending=!0,d();try{if(await n.ready,!c.includes(n)||!u(n))return;n.restoring=!0,await n.restore()}catch(t){e.failed(t)}finally{f(t),m()}}},dismiss(e){f(e),m()},invalidate:p,dispose(){for(let e of c)e.cleanup?.();c=[],l!==void 0&&o(l),l=void 0,d()}};return g}function U(e){return e.online&&e.canMutate&&(e.nativeTrust===`verified`||e.nativeTrust===`account-trusted`||e.nativeTrust===`not-required`)}function W(e){return{environmentId:e.environmentId,projectId:e.projectId,physicalKey:e.physicalKey,machineLabel:e.machineLabel}}function fe(e){if(e.override){let t=e.override,n=e.project.variants.find(e=>e.environmentId===t.environmentId&&e.projectId===t.projectId);return n?U(n)?{status:`resolved`,target:W(n),source:`override`}:{status:`unavailable`,message:`No verified machine available`,reason:`override-unavailable`}:{status:`unavailable`,message:`No verified machine available`,reason:`override-not-in-project`}}let t=e.project.variants.filter(U);if(t.length===0)return{status:`unavailable`,message:`No verified machine available`,reason:`no-eligible-variant`};let n=t.toSorted((e,t)=>{let n=e.lastUsedAt??-1/0,r=t.lastUsedAt??-1/0;return n===r?e.localDesktop===t.localDesktop?String(e.environmentId).localeCompare(String(t.environmentId)):e.localDesktop?-1:1:r-n})[0],r=Math.max(...t.map(e=>e.lastUsedAt??-1/0)),i=Number.isFinite(r)&&n.lastUsedAt===r?`recent`:n.localDesktop?`local-desktop`:`stable`;return{status:`resolved`,target:W(n),source:i}}var G=e(I(),1),K=L(),pe=`[data-thread-item], [data-thread-selection-safe]`,q=`phone:pointer-coarse:size-8 phone:pointer-coarse:after:absolute phone:pointer-coarse:after:top-1/2 phone:pointer-coarse:after:left-1/2 phone:pointer-coarse:after:size-11 phone:pointer-coarse:after:-translate-x-1/2 phone:pointer-coarse:after:-translate-y-1/2`,me=`phone:pointer-coarse:relative ${q}`;function he(e){if(e.manualBucket!==null)return e.manualBucket;switch(e.statusPill?.label){case`Working`:case`Monitoring`:case`Connecting`:return`in_progress`;case`Plan Ready`:case`Pending Approval`:case`Awaiting Input`:return`review`;case`Completed`:return`done`;default:return`idle`}}function ge(e){return e.includes(`in_progress`)?`in_progress`:e.includes(`review`)?`review`:e.length>0&&e.every(e=>e===`done`)?`done`:`idle`}var _e=6048e5;function ve(e){if(e.buckets.length===0||!e.buckets.every(e=>e===`done`)||!e.latestUpdatedAt)return!1;let t=Date.parse(e.latestUpdatedAt);return!Number.isNaN(t)&&e.nowMs-t>=_e}function ye(e){return e.latestUserMessageAt!==null}function be(e){return e.latestUserMessageAt!==null}function J(e){return e.confirmThreadDelete&&be(e.thread)}function xe(e){for(let t of e.threads)if(t&&J({confirmThreadDelete:e.confirmThreadDelete,thread:t}))return!0;return!1}function Se(e){return e.archiveAvailable&&e.confirmThreadArchive}var Y={"Pending Approval":6,"Awaiting Input":5,Working:4,Connecting:4,"Plan Ready":3,Monitoring:2,Completed:1};function Ce(e){let t=e.setTimeoutFn??globalThis.setTimeout,n=e.clearTimeoutFn??globalThis.clearTimeout,r=!1,i=null,a=()=>{i!==null&&(n(i),i=null)};return{sync:n=>{if(!n){a(),r&&(r=!1,e.onVisibilityChange(!1));return}r||i!==null||(i=t(()=>{i=null,r=!0,e.onVisibilityChange(!0)},e.delayMs))},dispose:()=>{a()}}}function we(){let[e,t]=G.useState(!1),n=G.useRef(null);return G.useEffect(()=>{let e=Ce({delayMs:100,onVisibilityChange:e=>{t(e)},setTimeoutFn:window.setTimeout.bind(window),clearTimeoutFn:window.clearTimeout.bind(window)});return n.current=e,()=>{e.dispose(),n.current=null}},[]),{showThreadJumpHints:e,updateThreadJumpHintsVisibility:G.useCallback(e=>{n.current?.sync(e)},[])}}function Te(e){if(!e.latestTurn?.completedAt)return!1;let t=Date.parse(e.latestTurn.completedAt);if(Number.isNaN(t))return!1;if(!e.lastVisitedAt)return!0;let n=Date.parse(e.lastVisitedAt);return Number.isNaN(n)?!0:t>n}function Ee(e){return e===null||!e.closest(pe)}function De(e){return e>1}function Oe(e){return e.requestedEnvMode??e.defaultEnvMode}function ke(e){return e.defaultEnvMode===`worktree`?{envMode:`worktree`}:e.activeDraftThread?.projectId===e.projectId?{branch:e.activeDraftThread.branch,worktreePath:e.activeDraftThread.worktreePath,envMode:e.activeDraftThread.envMode}:e.activeThread?.projectId===e.projectId?{branch:e.activeThread.branch,worktreePath:e.activeThread.worktreePath,envMode:e.activeThread.worktreePath?`worktree`:`local`}:{envMode:e.defaultEnvMode}}function X(e){let{getId:t,items:n,preferredIds:r}=e;if(r.length===0)return[...n];let i=new Map(n.map(e=>[t(e),e])),a=new Set(r),o=new Set,s=r.flatMap(e=>{if(o.has(e))return[];let t=i.get(e);return t?(o.add(e),[t]):[]}),c=n.filter(e=>!a.has(t(e)));return[...s,...c]}function Ae(e,t=3){return e.slice(0,Math.max(0,t))}function je(e){return e.sidebarMode===`projects`&&(e.isMobile?e.openMobile:e.open)}function Me(e){return e.isActive||e.isIntersecting}function Ne(e){let t=d(e.threads,e.sortOrder);return e.pinnedThreadKeys.size===0?t:t.toSorted((t,n)=>{let r=e.pinnedThreadKeys.has(e.getThreadKey(t));return r===e.pinnedThreadKeys.has(e.getThreadKey(n))?0:r?-1:1})}function Pe(e){return e<=80}function Fe(e){return e.projectCount<=80&&e.visibleThreadCount<=120}function Ie(e){return e.explorerOpen||e.projectVisible}function Le(e){let{currentThreadId:t,direction:n,threadIds:r}=e;if(r.length===0)return null;if(t===null)return n===`previous`?r.at(-1)??null:r[0]??null;let i=r.indexOf(t);return i===-1?null:n===`previous`?i>0?r[i-1]??null:null:i<r.length-1?r[i+1]??null:null}function Re(e){return e.button===2||e.isMac&&e.button===0&&e.ctrlKey}function ze(e){let t=`h-7 w-full translate-x-0 cursor-pointer justify-start px-2 text-left select-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring`;return e.isSelected&&e.isActive?C(t,`bg-primary/22 text-foreground font-medium hover:bg-primary/26 hover:text-foreground dark:bg-primary/30 dark:hover:bg-primary/36`):e.isSelected?C(t,`bg-primary/15 text-foreground hover:bg-primary/19 hover:text-foreground dark:bg-primary/22 dark:hover:bg-primary/28`):e.isActive?C(t,`bg-accent/85 text-foreground font-medium hover:bg-accent hover:text-foreground dark:bg-accent/55 dark:hover:bg-accent/70`):C(t,`text-muted-foreground hover:bg-accent hover:text-foreground`)}function Be(e){let{thread:t}=e,n=x(t);return n===`approval`?{label:`Pending Approval`,colorClass:`text-amber-600 dark:text-amber-300/90`,dotClass:`bg-amber-500 dark:bg-amber-300/90`,pulse:!1}:n===`input`?{label:`Awaiting Input`,colorClass:`text-indigo-600 dark:text-indigo-300/90`,dotClass:`bg-indigo-500 dark:bg-indigo-300/90`,pulse:!1}:n===`working`?{label:`Working`,colorClass:`text-sky-600 dark:text-sky-300/80`,dotClass:`bg-sky-500 dark:bg-sky-300/80`,pulse:!0}:n===`connecting`?{label:`Connecting`,colorClass:`text-sky-600 dark:text-sky-300/80`,dotClass:`bg-sky-500 dark:bg-sky-300/80`,pulse:!0}:n===`plan-ready`?{label:`Plan Ready`,colorClass:`text-violet-600 dark:text-violet-300/90`,dotClass:`bg-violet-500 dark:bg-violet-300/90`,pulse:!1}:n===`monitoring`?{label:`Monitoring`,colorClass:`text-sky-600 dark:text-sky-300/80`,dotClass:`bg-sky-500 dark:bg-sky-300/80`,pulse:!0}:Te(t)?{label:`Completed`,colorClass:`text-emerald-600 dark:text-emerald-300/90`,dotClass:`bg-emerald-500 dark:bg-emerald-300/90`,pulse:!1}:null}function Ve(e){let t=null;for(let n of e)n!==null&&(t===null||Y[n.label]>Y[t.label])&&(t=n);return t}function He(e){let{deletedThreadId:t,deletedThreadIds:n,sortOrder:r,threads:i}=e,a=i.find(e=>e.id===t);if(!a)return null;let o=i.filter(e=>e.id!==t&&!n?.has(e.id));return d(o.filter(e=>e.projectId===a.projectId),r)[0]?.id??d(o,r)[0]?.id??null}function Z(e,t,n){return t.length>0?t.reduce((e,t)=>Math.max(e,_(t,n)),-1/0):n===`created_at`?N(e.createdAt)??-1/0:N(e.updatedAt??e.createdAt)??-1/0}function Ue(e,t,n){if(n===`manual`)return[...e];let r=new Map;for(let e of t){let t=r.get(e.projectId)??[];t.push(e),r.set(e.projectId,t)}return[...e].toSorted((e,t)=>{let i=Z(t,r.get(t.id)??[],n),a=Z(e,r.get(e.id)??[],n),o=i===a?0:i>a?1:-1;return o===0?e.name.localeCompare(t.name)||e.id.localeCompare(t.id):o})}function We(e){if(!e.ready||e.primaryEnvironmentId===null)return e.machines;let t=e.machines.filter(t=>t.environmentId!==e.primaryEnvironmentId&&t.environmentId!==e.localHubEnvironmentId);return[{environmentId:e.primaryEnvironmentId,label:oe({environmentId:e.primaryEnvironmentId,primaryEnvironmentId:e.primaryEnvironmentId,localHubEnvironmentId:e.localHubEnvironmentId??null,machines:e.machines,fallback:e.primaryLabel}),online:!0,canMutate:!0,nativeTrust:`not-required`},...t]}function Ge(e){if(e.preferredEnvironmentId!==void 0&&e.preferredEnvironmentId!==null){if(!e.ready)return null;let t=e.machines.find(t=>t.environmentId===e.preferredEnvironmentId);if(!t?.online||!t.canMutate)return null;let r=e.orderedProjects.find(t=>t.environmentId===e.preferredEnvironmentId);return r===void 0?null:n(r.environmentId,r.id)}let r=e.orderedProjects[0];if(!r)return null;if(!e.ready)return n(r.environmentId,r.id);let i=e.logicalKey(r),a=new Map(e.machines.map(e=>[e.environmentId,e])),o=e.orderedProjects.filter(t=>e.logicalKey(t)===i),s=fe({project:{key:i,label:r.name,repositoryIdentity:r.repositoryIdentity??null,ambiguous:o.length>1,variants:o.flatMap(r=>{let i=a.get(r.environmentId);return i?[{environmentId:r.environmentId,projectId:r.id,physicalKey:t(n(r.environmentId,r.id)),name:r.name,cwd:r.cwd,repositoryIdentity:r.repositoryIdentity??null,machineLabel:i.label,online:i.online,canMutate:i.canMutate,nativeTrust:i.nativeTrust,effectiveRole:i.canMutate?`owner`:null,lastUsedAt:null,lastLiveAt:null,localDesktop:e.localEnvironmentId===r.environmentId}]:[]})}});return s.status===`resolved`?n(s.target.environmentId,s.target.projectId):null}function Ke(){let e=(0,G.useRef)(new Map),n=l(V(e=>f(e))),r=y(e=>({sidebarProjectGroupingMode:e.sidebarProjectGroupingMode,sidebarProjectGroupingOverrides:e.sidebarProjectGroupingOverrides})),i=F(),o=(0,G.useCallback)(e=>{let t=z(e);t&&re(t)},[]),s=(0,G.useCallback)(()=>{let e=i.state.matches[i.state.matches.length-1]?.params??{};return b(e)},[i]);return(0,G.useCallback)(function l(u,d){let f=z(u.environmentId);if(f!==null&&(o(u.environmentId),R(u.environmentId)===null))return ne(u.environmentId).then(e=>{if(e===null){if(d?.freshDraft)throw Error(`The workspace is unavailable. Your selection draft is preserved.`);return}return l(u,d)});let{getDraftSessionByLogicalProjectKey:p,getDraftSession:h,getDraftThread:g,applyStickyState:_,setDraftThreadContext:v,setLogicalProjectDraftThreadId:y}=j.getState(),b=s(),x=n.find(e=>e.id===u.projectId&&e.environmentId===u.environmentId),S=x?P(x,r):t(u);if(d?.freshDraft){let t=d.freshDraft;if(!t.isCurrent())throw Error(`The source chat changed. Your selection draft was not sent.`);let n=j.getState();return(()=>{let n=j.getState(),r=e.current.get(t.draftId);if(n.draftThreadsByThreadKey[t.draftId]&&(!r||n.getComposerDraft(t.draftId)!==r.composer||n.draftThreadsByThreadKey[t.draftId]!==r.session))throw Error(`The destination draft changed elsewhere. Both drafts are preserved; open the destination to continue.`)})(),n.createDetachedDraftSession(S,u,t.draftId,{threadId:t.threadId,branch:d.branch??null,worktreePath:d.worktreePath??null,envMode:d.envMode??`local`,runtimeMode:t.runtimeMode,tokenMode:t.tokenMode}),n.setPrompt(t.draftId,t.prompt),n.setModelSelection(t.draftId,t.modelSelection),n.setRuntimeMode(t.draftId,t.runtimeMode),n.setTokenMode(t.draftId,t.tokenMode),n.setDraftThreadContext(t.draftId,{branch:d.branch??null,envMode:d.envMode??`local`}),e.current.clear(),e.current.set(t.draftId,{composer:n.getComposerDraft(t.draftId),session:j.getState().draftThreadsByThreadKey[t.draftId]}),(async()=>{await i.navigate({to:`/draft/$draftId`,params:{draftId:t.draftId}});let n=j.getState().getComposerDraft(t.draftId),r=e.current.get(t.draftId)?.composer;if(n?.prompt!==t.prompt||n?.images!==r?.images||n?.terminalContexts!==r?.terminalContexts||n?.sourceControlContexts!==r?.sourceControlContexts)throw Error(`The destination draft changed. Send from the full composer to keep your edits.`);let a=s();if(a?.kind!==`draft`||a.draftId!==t.draftId)throw Error(`Navigation was cancelled. Your selection draft is preserved.`)})()}let C=d?.branch!==void 0,w=d?.worktreePath!==void 0,D=d?.envMode!==void 0,O=p(S),A=b?b.kind===`server`?g(b.threadRef):h(b.draftId):null;if(O)return(async()=>{(C||w||D)&&v(O.draftId,{...C?{branch:d?.branch??null}:{},...w?{worktreePath:d?.worktreePath??null}:{},...D?{envMode:d?.envMode}:{}}),y(S,u,O.draftId,{threadId:O.threadId}),(b?.kind!==`draft`||b.draftId!==O.draftId)&&(o(u.environmentId),await i.navigate({to:`/draft/$draftId`,params:{draftId:O.draftId}}))})();if(A&&b?.kind===`draft`&&A.logicalProjectKey===S&&A.promotedTo==null)return(C||w||D)&&v(b.draftId,{...C?{branch:d?.branch??null}:{},...w?{worktreePath:d?.worktreePath??null}:{},...D?{envMode:d?.envMode}:{}}),y(S,u,b.draftId,{threadId:A.threadId,createdAt:A.createdAt,runtimeMode:A.runtimeMode,interactionMode:A.interactionMode,tokenMode:A.tokenMode??`off`,...C?{branch:d?.branch??null}:{},...w?{worktreePath:d?.worktreePath??null}:{},...D?{envMode:d?.envMode}:{}}),Promise.resolve();let N=T(),F=k(),I=new Date().toISOString();return(async()=>{let e=f===null?null:R(u.environmentId),t=a(),n=t?.environment.environmentId===u.environmentId?t:M(u.environmentId)?.serverConfig;if(!n)throw Error(`Node settings are still loading. Try creating the draft again.`);let r=await H({api:E(u.environmentId),config:n,projectId:u.projectId}),s=f===null?null:R(u.environmentId);if(f!==null&&(!e||!s||!ie(e,u.environmentId,s)))throw Error(`The workspace connection changed. Try creating the draft again.`);if(p(S))return l(u,d);y(S,u,N,{threadId:F,createdAt:I,branch:d?.branch??null,worktreePath:d?.worktreePath??null,envMode:d?.envMode??r?.defaultThreadEnvMode.value??n.settings.defaultThreadEnvMode,runtimeMode:c,tokenMode:n.settings.defaultAgentTokenMode}),_(N);let m=d?.modelSelection??r?.initialModelSelection.value;m&&j.getState().setModelSelection(N,ce({effective:r,fallback:m,explicit:d?.modelSelection})),o(u.environmentId),await i.navigate({to:`/draft/$draftId`,params:{draftId:N}})})().catch(e=>{m.add({type:`error`,title:`Could not create a draft`,description:e instanceof Error?e.message:`Reconnect to this node and try again.`})})},[o,s,r,i,n])}function qe(){let e=(0,K.c)(2),t=Ke(),n;return e[0]===t?n=e[1]:(n={handleNewThread:t},e[0]=t,e[1]=n),n}function Je(){let e=(0,K.c)(29),t=v(tt),n=y(et),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={strict:!1,select:$e},e[0]=r):r=e[0];let a=w(r),o=a?.kind===`server`?a.threadRef:null,s;e[1]===o?s=e[2]:(s=S(o),e[1]=o,e[2]=s);let c=l(s),d=j(Qe),f;e[3]!==d||e[4]!==a?(f=()=>a?a.kind===`server`?d(a.threadRef):j.getState().getDraftSession(a.draftId):null,e[3]=d,e[4]=a,e[5]=f):f=e[5];let p=j(f),m=l(V(Ze)),h;e[6]!==t||e[7]!==m?(h=X({items:m,preferredIds:t,getId:u}),e[6]=t,e[7]=m,e[8]=h):h=e[8];let _=h,b=Ke(),x=se(),C=ae(),T=te(),E=i(),D=g(Xe),O;e[9]!==C||e[10]!==T.machines||e[11]!==T.status||e[12]!==x||e[13]!==E?(O=T.status===`signed-out`?{machines:We({machines:C.machines,ready:C.status===`ready`,primaryEnvironmentId:E,localHubEnvironmentId:C.localEnvironmentId,primaryLabel:x}),ready:C.status===`ready`,localEnvironmentId:E}:{machines:T.machines.map(Ye),ready:T.status===`ready`,localEnvironmentId:null},e[9]=C,e[10]=T.machines,e[11]=T.status,e[12]=x,e[13]=E,e[14]=O):O=e[14];let k=O,A;e[15]===n?A=e[16]:(A=e=>P(e,n),e[15]=n,e[16]=A);let M;e[17]!==T.status||e[18]!==_||e[19]!==D||e[20]!==A||e[21]!==k?(M=Ge({orderedProjects:_,...k,logicalKey:A,...T.status===`signed-out`?{}:{preferredEnvironmentId:D}}),e[17]=T.status,e[18]=_,e[19]=D,e[20]=A,e[21]=k,e[22]=M):M=e[22];let N=M,F=D!==null&&c?.environmentId!==D?void 0:c,I=D!==null&&p?.environmentId!==D?null:p,L;return e[23]!==I||e[24]!==F||e[25]!==N||e[26]!==b||e[27]!==o?(L={activeDraftThread:I,activeThread:F,defaultProjectRef:N,handleNewThread:b,routeThreadRef:o},e[23]=I,e[24]=F,e[25]=N,e[26]=b,e[27]=o,e[28]=L):L=e[28],L}function Ye(e){return{...e,online:e.presence.online}}function Xe(e){return e.selectedNode?.environmentId??null}function Ze(e){return f(e)}function Qe(e){return e.getDraftThread}function $e(e){return b(e)}function et(e){return{sidebarProjectGroupingMode:e.sidebarProjectGroupingMode,sidebarProjectGroupingOverrides:e.sidebarProjectGroupingOverrides}}function tt(e){return e.projectOrder}var nt={archive:`Thread archived`,settle:`Thread settled`,snooze:`Thread snoozed`,unpin:`Thread unpinned`},Q=new Map;function rt(e){for(let[t,n]of Q)e.some(e=>e.id===t)||(Q.delete(t),m.close(n.toastId));for(let t of e){let e=Q.get(t.id),n=B({type:`info`,title:t.applying?{archive:`Archiving thread…`,settle:`Settling thread…`,snooze:`Snoozing thread…`,unpin:`Unpinning thread…`}[t.action]:nt[t.action],timeout:0,description:t.threadTitle,actionProps:{children:t.pending?`Undoing…`:`Undo`,disabled:t.pending,"aria-label":`Undo ${t.action}${t.threadTitle?` ${t.threadTitle}`:``}`,onClick:()=>void $.undo(t.id)},data:{onClose:()=>$.dismiss(t.id)}});e?(e.pending!==t.pending||e.applying!==t.applying)&&(m.update(e.toastId,n),e.pending=t.pending,e.applying=t.applying):Q.set(t.id,{toastId:m.add(n),pending:t.pending,applying:t.applying})}}function it(e){let t=l.getState(),n=h(t,e),r=n?p(t,{environmentId:e.environmentId,projectId:n.projectId}):null;return!n||!r?null:{threadRevision:ue(n),parentRevision:r,threadTitle:n.title,subscribe:l.subscribe}}function at(e){let t=D(e.environmentId),n=t?.shellSnapshotReadiness.read(),r=A(e.environmentId),i=it(e);if(!t||!n||!r||!i)return null;let a=M(e.environmentId),c=s(),l=(c?.environmentId===e.environmentId?c.capabilities:a.descriptor?.capabilities)?.threadSidebarUndo===!0;if(o()){let t=ee().machines.find(t=>t.environmentId===e.environmentId);if(!t?.canMutate||t.connectionState!==`connected`||t.cacheDisposition!==`available`)return null}return{generation:n,api:r,threadRevision:i.threadRevision,parentRevision:i.parentRevision,threadTitle:i.threadTitle,supported:l}}var $=de({readContext:at,readLocalContext:it,newCommandId:O,changed:rt,failed:e=>m.add(B({type:`error`,title:`Could not undo thread action`,description:e instanceof Error?e.message:`The request failed. Check the current thread state before trying again.`}))});export{ve as A,Ee as C,Me as D,xe as E,Ne as M,we as N,je as O,H as P,Fe as S,J as T,Oe as _,q as a,Be as b,ye as c,Ae as d,Re as f,Ve as g,Le as h,We as i,Ue as j,Ie as k,he as l,X as m,Je as n,me as o,De as p,qe as r,ge as s,$ as t,He as u,ke as v,Se as w,Pe as x,ze as y};
@@ -1 +1 @@
1
- import{$l as e,ei as t}from"./runtime-OM-uAtaj.js";import{t as n}from"./compiler-runtime-C4g8XhC5.js";var r=n(),i=e();function a(e){let n=(0,r.c)(8),a,o;n[0]===e?(a=n[1],o=n[2]):({className:a,...o}=e,n[0]=e,n[1]=a,n[2]=o);let s;n[3]===a?s=n[4]:(s=t(`animate-skeleton rounded-sm [--skeleton-highlight:--alpha(var(--color-white)/64%)] [background:linear-gradient(120deg,transparent_40%,var(--skeleton-highlight),transparent_60%)_var(--color-muted)_0_0/200%_100%_fixed] dark:[--skeleton-highlight:--alpha(var(--color-white)/4%)]`,a),n[3]=a,n[4]=s);let c;return n[5]!==o||n[6]!==s?(c=(0,i.jsx)(`div`,{className:s,"data-slot":`skeleton`,...o}),n[5]=o,n[6]=s,n[7]=c):c=n[7],c}export{a as t};
1
+ import{$l as e,ei as t}from"./runtime-BwHA1GUS.js";import{t as n}from"./compiler-runtime-C4g8XhC5.js";var r=n(),i=e();function a(e){let n=(0,r.c)(8),a,o;n[0]===e?(a=n[1],o=n[2]):({className:a,...o}=e,n[0]=e,n[1]=a,n[2]=o);let s;n[3]===a?s=n[4]:(s=t(`animate-skeleton rounded-sm [--skeleton-highlight:--alpha(var(--color-white)/64%)] [background:linear-gradient(120deg,transparent_40%,var(--skeleton-highlight),transparent_60%)_var(--color-muted)_0_0/200%_100%_fixed] dark:[--skeleton-highlight:--alpha(var(--color-white)/4%)]`,a),n[3]=a,n[4]=s);let c;return n[5]!==o||n[6]!==s?(c=(0,i.jsx)(`div`,{className:s,"data-slot":`skeleton`,...o}),n[5]=o,n[6]=s,n[7]=c):c=n[7],c}export{a as t};
@@ -1 +1 @@
1
- import{ho as e}from"./runtime-OM-uAtaj.js";var t={name:`smartphone`,size:24,node:[[`rect`,{width:`14`,height:`20`,x:`5`,y:`2`,rx:`2`,ry:`2`,key:`1yt0o3`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}]]};t.node;var n=e(t);export{n as t};
1
+ import{ho as e}from"./runtime-BwHA1GUS.js";var t={name:`smartphone`,size:24,node:[[`rect`,{width:`14`,height:`20`,x:`5`,y:`2`,rx:`2`,ry:`2`,key:`1yt0o3`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}]]};t.node;var n=e(t);export{n as t};
@@ -0,0 +1 @@
1
+ import{ho as e}from"./runtime-BwHA1GUS.js";var t={name:`square`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]};t.node;var n=e(t);export{n as t};