claude-code-best 2.6.5 → 2.6.6

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 (430) hide show
  1. package/dist/chunks/{AddWorkspaceDirectory-BYyM_V0q.js → AddWorkspaceDirectory-Bb6crGWh.js} +1 -1
  2. package/dist/chunks/{App-BboadKdn.js → App-CW0Y4ceR.js} +1 -1
  3. package/dist/chunks/{ApproveApiKey-BLp4742y.js → ApproveApiKey-9rkwQfgT.js} +1 -1
  4. package/dist/chunks/ApproveApiKey-BhMr2Y5F.js +1 -0
  5. package/dist/chunks/{AssistantSessionChooser-B88DM0Oq.js → AssistantSessionChooser-XzXZZdiH.js} +1 -1
  6. package/dist/chunks/BackgroundTasksDialog-BL_dfbZP.js +2 -0
  7. package/dist/chunks/BypassPermissionsModeDialog-DlLWAKw2.js +1 -0
  8. package/dist/chunks/{ClaudeInChromeOnboarding-B6XNhFqq.js → ClaudeInChromeOnboarding-CjGydpBk.js} +1 -1
  9. package/dist/chunks/{ClaudeMdExternalIncludesDialog-BNhlq7_K.js → ClaudeMdExternalIncludesDialog-B04cjDwX.js} +1 -1
  10. package/dist/chunks/ClaudeMdExternalIncludesDialog-DPki55Xa.js +1 -0
  11. package/dist/chunks/ConsoleOAuthFlow-D_j1NebK.js +1 -0
  12. package/dist/chunks/{DesktopHandoff-S-w4bs5T.js → DesktopHandoff-CFBUqcCf.js} +1 -1
  13. package/dist/chunks/DevChannelsDialog-ByTf41du.js +1 -0
  14. package/dist/chunks/DiffDialog-CY-8kw_Q.js +3 -0
  15. package/dist/chunks/Doctor-2D5Wz58o.js +1 -0
  16. package/dist/chunks/Doctor-CDez_u_U.js +3 -0
  17. package/dist/chunks/{ExitFlow-CSBDxw9H.js → ExitFlow-BlON8IgH.js} +2 -2
  18. package/dist/chunks/Feedback-CSeD3k4M.js +2 -0
  19. package/dist/chunks/Grove-Dwu_0zRw.js +1 -0
  20. package/dist/chunks/{Grove-DSXRnXKv.js → Grove-Tp_UtIMg.js} +1 -1
  21. package/dist/chunks/{HybridTransport-CuT3KI5e.js → HybridTransport-CAko699F.js} +2 -2
  22. package/dist/chunks/{ITermBackend-mokGZVH_.js → ITermBackend-5P3WJumD.js} +1 -1
  23. package/dist/chunks/{InvalidConfigDialog-Bi4RKYlk.js → InvalidConfigDialog-CVcdra9v.js} +1 -1
  24. package/dist/chunks/{InvalidSettingsDialog-0zKo4-so.js → InvalidSettingsDialog-CfLdbmSI.js} +1 -1
  25. package/dist/chunks/MCPConnectionManager-BK_3uwQj.js +1 -0
  26. package/dist/chunks/{McpParsingWarnings-EzgsOoHw.js → McpParsingWarnings-BOj-T8F3.js} +1 -1
  27. package/dist/chunks/MessageSelector-BRkxpO1O.js +3 -0
  28. package/dist/chunks/Messages-wyMyMP7U.js +11 -0
  29. package/dist/chunks/{Onboarding-odmthwzz.js → Onboarding-C06Mxlf-.js} +1 -1
  30. package/dist/chunks/{OverageCreditUpsell-Cpk_5Lv0.js → OverageCreditUpsell-abcPm3PB.js} +1 -1
  31. package/dist/chunks/PluginSettings-DGpIVGvV.js +17 -0
  32. package/dist/chunks/{PromptInputFooterSuggestions-DrrkNOuS.js → PromptInputFooterSuggestions-ihnbjU0K.js} +1 -1
  33. package/dist/chunks/{PromptInputHelpMenu-DMsF4D6d.js → PromptInputHelpMenu-CMm8z7Gk.js} +1 -1
  34. package/dist/chunks/QueryEngine-I3Bqzbiz.js +1 -0
  35. package/dist/chunks/REPL-BxAsVlx3.js +1 -0
  36. package/dist/chunks/REPL-CBFcgD4r.js +97 -0
  37. package/dist/chunks/{RemoteCallout-CnpCWRPk.js → RemoteCallout-Cy6lH-CZ.js} +1 -1
  38. package/dist/chunks/{RemoteSessionManager-OWg_Yccq.js → RemoteSessionManager-C7iGd5Og.js} +2 -2
  39. package/dist/chunks/ResumeConversation-AdLtgdVB.js +1 -0
  40. package/dist/chunks/{SSETransport-BpnapvlK.js → SSETransport-B5xlXeAN.js} +1 -1
  41. package/dist/chunks/SearchExtraToolsTool-BJ8Nx_Nu.js +1 -0
  42. package/dist/chunks/SentryErrorBoundary-Bs7mtkPb.js +1 -0
  43. package/dist/chunks/{SentryErrorBoundary-C-NlfQZw.js → SentryErrorBoundary-iih9eFpM.js} +1 -1
  44. package/dist/chunks/Settings-PioHwsvg.js +2 -0
  45. package/dist/chunks/{TeleportProgress-CYXay2ZL.js → TeleportProgress-BX-uLwuL.js} +1 -1
  46. package/dist/chunks/TeleportRepoMismatchDialog-D8oPPTWd.js +1 -0
  47. package/dist/chunks/{TeleportResumeWrapper-DiHQeZIM.js → TeleportResumeWrapper-B_CvNDbr.js} +1 -1
  48. package/dist/chunks/{ThemePicker-BRh027fA.js → ThemePicker-BG1ykSpX.js} +1 -1
  49. package/dist/chunks/{TmuxBackend-BaX2U7iZ.js → TmuxBackend-CnMCWNS4.js} +1 -1
  50. package/dist/chunks/TrustDialog-Z_maAYj8.js +1 -0
  51. package/dist/chunks/{ValidationErrorsList-CdCUgfIl.js → ValidationErrorsList-C9swVkZ-.js} +1 -1
  52. package/dist/chunks/{WelcomeV2-DCXcYd2x.js → WelcomeV2-Au_5ddlT.js} +1 -1
  53. package/dist/chunks/WindowsTerminalBackend-CGxaYH74.js +2 -0
  54. package/dist/chunks/{add-dir-ldGd3Ppz.js → add-dir-Cm9u56YX.js} +1 -1
  55. package/dist/chunks/{agentDisplay-CVnAeURF.js → agentDisplay-Bi_bEyEn.js} +1 -1
  56. package/dist/chunks/{agents-DH5fmbVw.js → agents-CMF9fLzV.js} +7 -7
  57. package/dist/chunks/{agents-C08NzRZx.js → agents-CbjR7hNr.js} +1 -1
  58. package/dist/chunks/{ant-DJren1Aa.js → ant-Bu1Gs4WJ.js} +1 -1
  59. package/dist/chunks/api-CFNGoLoL.js +1 -0
  60. package/dist/chunks/{api-CGOR_Xfl.js → api-D_t0nHsS.js} +1 -1
  61. package/dist/chunks/assistant-BLd4y2FJ.js +1 -0
  62. package/dist/chunks/{assistant-aWkDcurV.js → assistant-C_pfWe2a.js} +1 -1
  63. package/dist/chunks/{assistant-BlzrMSkM.js → assistant-EA-MHNQ-.js} +1 -1
  64. package/dist/chunks/{auth-CSB2RDKF.js → auth-D7PZvVPf.js} +1 -1
  65. package/dist/chunks/auth-DGfZCD_B.js +1 -0
  66. package/dist/chunks/{autoMode-CWvZs1jO.js → autoMode-B8iO05xy.js} +6 -6
  67. package/dist/chunks/{autonomy-BkVcSMCZ.js → autonomy-CaLvE5N6.js} +12 -12
  68. package/dist/chunks/{autonomy-DK42aJYt.js → autonomy-dQVtSiCJ.js} +1 -1
  69. package/dist/chunks/{autonomyPanel-Cn4IhXgE.js → autonomyPanel-DSswVlCF.js} +1 -1
  70. package/dist/chunks/backgroundHousekeeping-Ckj8W3RO.js +1 -0
  71. package/dist/chunks/backgroundHousekeeping-D2_Uopt7.js +17 -0
  72. package/dist/chunks/{branch-juox_fko.js → branch-C7pM8Sjh.js} +1 -1
  73. package/dist/chunks/{bridge-DudsCZkh.js → bridge-CTYdzSWg.js} +2 -2
  74. package/dist/chunks/bridgeConfig-7c07tJm9.js +1 -0
  75. package/dist/chunks/{bridgeConfig-lRZfQqmA.js → bridgeConfig-Df6uyp3q.js} +1 -1
  76. package/dist/chunks/{bridgeEnabled-D2IykaHE.js → bridgeEnabled-A-_xJ94c.js} +1 -1
  77. package/dist/chunks/bridgeEnabled-Z2S8lk0l.js +1 -0
  78. package/dist/chunks/bridgeMain-B7FZpvo0.js +68 -0
  79. package/dist/chunks/bridgeMain-C5UxF8ST.js +1 -0
  80. package/dist/chunks/{bridgeMessaging-CqNURC4-.js → bridgeMessaging-DPVLAIzl.js} +1 -1
  81. package/dist/chunks/{btw-DKlE3Dea.js → btw-CqgjLlFN.js} +1 -1
  82. package/dist/chunks/{buddy-DQYgHR63.js → buddy-DCGBAqF2.js} +1 -1
  83. package/dist/chunks/{bypassPermissionsKillswitch-Bof-UtM-.js → bypassPermissionsKillswitch-CK0jeZTW.js} +1 -1
  84. package/dist/chunks/{caches-B5QZDncQ.js → caches-CdVW8fYV.js} +2 -2
  85. package/dist/chunks/caches-Dt52PedI.js +1 -0
  86. package/dist/chunks/{ccrClient-BaWg4E9-.js → ccrClient-B_3AmY7K.js} +1 -1
  87. package/dist/chunks/changeDetector-uO9CBvut.js +1 -0
  88. package/dist/chunks/{channelNotification-B7A-9DIl.js → channelNotification-BbDQdLZC.js} +1 -1
  89. package/dist/chunks/channelNotification-DzTzUrCe.js +1 -0
  90. package/dist/chunks/{chrome-jMAks7-w.js → chrome-CGyqsCkL.js} +1 -1
  91. package/dist/chunks/clear-B_cVk64B.js +1 -0
  92. package/dist/chunks/client-BcqXgcrx.js +1 -0
  93. package/dist/chunks/{color-DG_R5-hl.js → color-DEXUx7gE.js} +1 -1
  94. package/dist/chunks/commands-BX0_wEGw.js +1 -0
  95. package/dist/chunks/commitAttribution-CSVDcgTO.js +1 -0
  96. package/dist/chunks/{commitAttribution-C22a3OCi.js → commitAttribution-e0kkanVT.js} +1 -1
  97. package/dist/chunks/{compact-BWvnb4or.js → compact-Dh9RewNA.js} +3 -3
  98. package/dist/chunks/{companion-Bkn2lSLj.js → companion-DVFacTUw.js} +1 -1
  99. package/dist/chunks/{config-BvpTbJ5p.js → config-CkSmYDJY.js} +1 -1
  100. package/dist/chunks/{config-D-dzD6n-.js → config-DwiVCSrY.js} +1 -1
  101. package/dist/chunks/{context-DzNahdyP.js → context-B8VDDHTv.js} +1 -1
  102. package/dist/chunks/{context-noninteractive-yiyJriiw.js → context-noninteractive-IZfWniex.js} +2 -2
  103. package/dist/chunks/context-noninteractive-SBxqQ3iu.js +1 -0
  104. package/dist/chunks/conversation-CQBl9Yy2.js +1 -0
  105. package/dist/chunks/conversation-DVZplNag.js +1 -0
  106. package/dist/chunks/{copy-9k9JPRqW.js → copy-CIjrYoFa.js} +2 -2
  107. package/dist/chunks/{createSSHSession-BZf-Loo5.js → createSSHSession-ArNlbIZB.js} +1 -1
  108. package/dist/chunks/{createSession-kiTHYXSL.js → createSession-CBheIT_G.js} +1 -1
  109. package/dist/chunks/createSession-DfEQy2dZ.js +1 -0
  110. package/dist/chunks/cronJitterConfig-DcMGWOa-.js +6 -0
  111. package/dist/chunks/crossProjectResume-Z-aR2q-d.js +40 -0
  112. package/dist/chunks/{datadog-Bg-zL-i7.js → datadog-BK8eJz8B.js} +1 -1
  113. package/dist/chunks/datadog-Uj6FjEuU.js +1 -0
  114. package/dist/chunks/{desktop-DpaStjc-.js → desktop-B9vWJeRu.js} +1 -1
  115. package/dist/chunks/{diff-N_VSBo3Z.js → diff-BTV7_Dca.js} +1 -1
  116. package/dist/chunks/{doctor-CUWjbh1X.js → doctor-Dpbh0aRz.js} +1 -1
  117. package/dist/chunks/{effort-loH1TUvE.js → effort-Czlwa5qF.js} +2 -2
  118. package/dist/chunks/{entry-D58E-E6Y.js → entry-CdfuWjKu.js} +3 -3
  119. package/dist/chunks/{envLessBridgeConfig-SPEr9oqO.js → envLessBridgeConfig-BAFYaZ0E.js} +1 -1
  120. package/dist/chunks/envLessBridgeConfig-DOO9eX07.js +1 -0
  121. package/dist/chunks/{exit-D-tuPpbx.js → exit-DzOm62Dn.js} +1 -1
  122. package/dist/chunks/{export-BIZ_SPXJ.js → export-DHOR3z3Z.js} +1 -1
  123. package/dist/chunks/{exportRenderer-CWPSMaqM.js → exportRenderer-CiNXeNr9.js} +1 -1
  124. package/dist/chunks/extra-usage-CJcyfVCt.js +1 -0
  125. package/dist/chunks/{extra-usage-CCMwIa85.js → extra-usage-DIYR_3ZR.js} +1 -1
  126. package/dist/chunks/{extra-usage-core-BNW4VT7o.js → extra-usage-core-C3uM9bOP.js} +1 -1
  127. package/dist/chunks/{extra-usage-noninteractive-B_WjXO1E.js → extra-usage-noninteractive-Ctz9TfY8.js} +1 -1
  128. package/dist/chunks/{extraUsage-CNMMTNJi.js → extraUsage-CBwIvl73.js} +1 -1
  129. package/dist/chunks/extractMemories-C3SU-Osb.js +1 -0
  130. package/dist/chunks/fast-7iinMwk-.js +1 -0
  131. package/dist/chunks/{fast-CG1v3fRr.js → fast-BpBwjbSD.js} +1 -1
  132. package/dist/chunks/{feedback-CG4mS_-B.js → feedback-BkVnsZVx.js} +1 -1
  133. package/dist/chunks/{firstPartyEventLogger-Y_jAnHoR.js → firstPartyEventLogger-BCzGkdpd.js} +1 -1
  134. package/dist/chunks/{flushGate-COPcye5f.js → flushGate-CQsnMw8g.js} +1 -1
  135. package/dist/chunks/{gates-CSKxLmMJ.js → gates-CxWIWtmd.js} +1 -1
  136. package/dist/chunks/gates-qgzva-fO.js +1 -0
  137. package/dist/chunks/{gemini-B3uSLiNp.js → gemini-BbV8D2SS.js} +1 -1
  138. package/dist/chunks/{generateRecap-D7rG3jIm.js → generateRecap-B3j2nUgh.js} +1 -1
  139. package/dist/chunks/{generateSessionName-zbqanivg.js → generateSessionName-aGnXSNgN.js} +1 -1
  140. package/dist/chunks/{githubRepoPathMapping-B04nEUDG.js → githubRepoPathMapping-DCJLSTLl.js} +1 -1
  141. package/dist/chunks/{grok-CDOpos8E.js → grok-C4QFXJnR.js} +1 -1
  142. package/dist/chunks/{growthbook-C_EY78Sn.js → growthbook-prtWhMRg.js} +1 -1
  143. package/dist/chunks/{heapdump-CpmhJ55b.js → heapdump-Czm-2XiG.js} +1 -1
  144. package/dist/chunks/{help-EHn2neTv.js → help-CSAFsN0-.js} +1 -1
  145. package/dist/chunks/hooks-Ch2vPE8u.js +1 -0
  146. package/dist/chunks/{hooks-BV6HqbU4.js → hooks-DkbOP-bI.js} +2 -2
  147. package/dist/chunks/{hostAdapter-_SmFAVNf.js → hostAdapter-BcdDPVTj.js} +1 -1
  148. package/dist/chunks/{ide-DkN0KdTR.js → ide-BXERRFZF.js} +2 -2
  149. package/dist/chunks/{inboundAttachments-DnGQw7Pf.js → inboundAttachments-7rXrAtkb.js} +1 -1
  150. package/dist/chunks/inboundAttachments-C0rkLl2x.js +1 -0
  151. package/dist/chunks/initReplBridge-tXqkba08.js +1 -0
  152. package/dist/chunks/{insights-Bs9kJDG6.js → insights-DrvqJgF8.js} +25 -25
  153. package/dist/chunks/{install-CFX_ph9z.js → install-BGnxwO00.js} +1 -1
  154. package/dist/chunks/{install-github-app-CvRjY1Wi.js → install-github-app-CIpBHlr9.js} +2 -2
  155. package/dist/chunks/{install-slack-app-DjhnVSe0.js → install-slack-app-By4Lh7ww.js} +1 -1
  156. package/dist/chunks/{instrumentation-c5zlOWom.js → instrumentation-D9y7Ph_R.js} +3 -3
  157. package/dist/chunks/{job-3QwLq609.js → job-BPVIMW_P.js} +1 -1
  158. package/dist/chunks/{keybindings-7mDm3UKD.js → keybindings-Ce6AHMLI.js} +2 -2
  159. package/dist/chunks/{lang-DyyjY20G.js → lang-DfDG_fSa.js} +1 -1
  160. package/dist/chunks/language-B1yHC1d6.js +1 -0
  161. package/dist/chunks/{language-CPRGmY8Q.js → language-yGoDFP3X.js} +1 -1
  162. package/dist/chunks/{launchAgentsPlatform-CpsMsTqQ.js → launchAgentsPlatform-DT01xZM7.js} +1 -1
  163. package/dist/chunks/launchAutofixPr-DrYd7WVf.js +18 -0
  164. package/dist/chunks/{launchLocalMemory-DlYQcEQJ.js → launchLocalMemory-Bt3tMYVJ.js} +1 -1
  165. package/dist/chunks/{launchLocalVault-CP0AyPjj.js → launchLocalVault-jyRHEa_Y.js} +1 -1
  166. package/dist/chunks/{launchMemoryStores-BHoDFkJ5.js → launchMemoryStores-cmXnLAF5.js} +1 -1
  167. package/dist/chunks/{launchOnboarding-CFTNXcnc.js → launchOnboarding-BPTNFftb.js} +1 -1
  168. package/dist/chunks/{launchSchedule-5KQr6x_A.js → launchSchedule-141GqGC8.js} +1 -1
  169. package/dist/chunks/{launchSkillStore-D0yGuE68.js → launchSkillStore-Bz0lok_o.js} +1 -1
  170. package/dist/chunks/{launchTeleport-DRKnXOwY.js → launchTeleport-BMquJxIq.js} +2 -2
  171. package/dist/chunks/{launchVault-XA-zAswX.js → launchVault-Bsuwqad6.js} +1 -1
  172. package/dist/chunks/{loadAgentsDir-DI1a76pd.js → loadAgentsDir-D7kapZB5.js} +506 -498
  173. package/dist/chunks/loadAgentsDir-DxPE2bIO.js +1 -0
  174. package/dist/chunks/{loadPluginHooks-C0Ei-0E2.js → loadPluginHooks-CL5aGDrb.js} +1 -1
  175. package/dist/chunks/localSearch-iozuZZhZ.js +1 -0
  176. package/dist/chunks/{localSearch-CDOJNc_E.js → localSearch-r1_G8kfV.js} +1 -1
  177. package/dist/chunks/{login-nwTOoyxv.js → login-7MvpaOkt.js} +1 -1
  178. package/dist/chunks/login-Dxza_KNT.js +1 -0
  179. package/dist/chunks/{logoV2Utils-DDUoPClc.js → logoV2Utils-DjThKW15.js} +1 -1
  180. package/dist/chunks/logout-BeGQR78E.js +1 -0
  181. package/dist/chunks/{magicDocs-CmUlOWjI.js → magicDocs-Dy72LHIj.js} +2 -2
  182. package/dist/chunks/{main-CeG_nUsC.js → main-CF6Im-LV.js} +46 -46
  183. package/dist/chunks/{mappers-CJ8IO1o1.js → mappers-CkMESMy7.js} +1 -1
  184. package/dist/chunks/mcp-BTgHgOhR.js +2 -0
  185. package/dist/chunks/mcp-UJZ22IDJ.js +6 -0
  186. package/dist/chunks/mcp-fHf8Uc7h.js +1 -0
  187. package/dist/chunks/{mcpServer-lIneUZ5p.js → mcpServer-BueM5fWI.js} +1 -1
  188. package/dist/chunks/{mcpServer-DPHQVYdC.js → mcpServer-Dqm2PQQx.js} +1 -1
  189. package/dist/chunks/{memory-BcWBkKV8.js → memory-BNZmqma1.js} +1 -1
  190. package/dist/chunks/model-D3g2QdU-.js +1 -0
  191. package/dist/chunks/{model-DJLzVvcF.js → model-DOw7wIKQ.js} +1 -1
  192. package/dist/chunks/{onChangeAppState-Dxbl8fvk.js → onChangeAppState-Cb9_yIuW.js} +1 -1
  193. package/dist/chunks/{openai-DkYK4THc.js → openai-Bvo0Gcec.js} +3 -3
  194. package/dist/chunks/{overageCreditGrant-DLKadMYU.js → overageCreditGrant-BrN7dk3d.js} +1 -1
  195. package/dist/chunks/{passes-BIfuerjL.js → passes-vgcY8_l8.js} +1 -1
  196. package/dist/chunks/{paths-BBvuDQl9.js → paths-1ngPRtu3.js} +2 -2
  197. package/dist/chunks/permissions-BDbIjTT6.js +3 -0
  198. package/dist/chunks/{pipeTransport-DVoIA1uN.js → pipeTransport-KU8psPDI.js} +1 -1
  199. package/dist/chunks/{plan--lnWxB3Q.js → plan-5NVPuxp6.js} +1 -1
  200. package/dist/chunks/{plugin-DWLyrLw4.js → plugin-t8jMqdsY.js} +1 -1
  201. package/dist/chunks/{pluginAutoupdate-CGXIWBrb.js → pluginAutoupdate-CAa4KLro.js} +1 -1
  202. package/dist/chunks/{pluginBlocklist-DJrMdzT0.js → pluginBlocklist-BG2LkLq1.js} +1 -1
  203. package/dist/chunks/{pluginCliCommands-C08q9dHk.js → pluginCliCommands-vqAtVibb.js} +1 -1
  204. package/dist/chunks/{pluginFlagging-Dggxke70.js → pluginFlagging-BFCtv3kY.js} +1 -1
  205. package/dist/chunks/{pluginOperations-CNCImIe8.js → pluginOperations-C9XP-mko.js} +2 -2
  206. package/dist/chunks/pluginStartupCheck-DZp0wnXP.js +1 -0
  207. package/dist/chunks/{pluginStartupCheck-BW2fjg2P.js → pluginStartupCheck-RRcAbKfx.js} +1 -1
  208. package/dist/chunks/plugins-0SyID4Kx.js +4 -0
  209. package/dist/chunks/policyLimits-Cmmzuv-E.js +1 -0
  210. package/dist/chunks/{pollConfig-DAQ-ives.js → pollConfig-DTYIJ8lQ.js} +1 -1
  211. package/dist/chunks/{poor-DqfrQT61.js → poor-Dw5dMZpM.js} +1 -1
  212. package/dist/chunks/{poorMode-DzYT47KW.js → poorMode-CsGLI_hm.js} +1 -1
  213. package/dist/chunks/poorMode-D_hB-rDf.js +1 -0
  214. package/dist/chunks/{print-GGVp62vj.js → print-Ct8N4PYT.js} +12 -12
  215. package/dist/chunks/{privacy-settings-agwqjYJo.js → privacy-settings-P2r-kg2i.js} +1 -1
  216. package/dist/chunks/processBashCommand-a8W8aTRu.js +1 -0
  217. package/dist/chunks/{processSlashCommand-COtIO6Jy.js → processSlashCommand-BaUdUg3T.js} +3 -3
  218. package/dist/chunks/prompt-B1Qy8mi4.js +1 -0
  219. package/dist/chunks/{prompt-CjFAtm3w.js → prompt-BBg3jtfc.js} +1 -1
  220. package/dist/chunks/prompt-D4kWWEZC.js +1 -0
  221. package/dist/chunks/{promptEditor-EgosPsy-.js → promptEditor-CvaugNTt.js} +2 -2
  222. package/dist/chunks/{protocolHandler-mtPUT9U0.js → protocolHandler-DxBaHlaD.js} +1 -1
  223. package/dist/chunks/{rate-limit-options-C6SFOHue.js → rate-limit-options-Df_sgE0b.js} +1 -1
  224. package/dist/chunks/rcDebugLog-CPGWJbI4.js +11 -0
  225. package/dist/chunks/{referral-DeDr9zAE.js → referral-BKeCKnOJ.js} +1 -1
  226. package/dist/chunks/{refresh-D7pdoY_X.js → refresh-Cjv4jA6L.js} +1 -1
  227. package/dist/chunks/{registerProtocol-BZBH8Zgl.js → registerProtocol-DLuRm0mf.js} +1 -1
  228. package/dist/chunks/{registry-Dz6AbiYP.js → registry-DVSgtCq5.js} +1 -1
  229. package/dist/chunks/{release-notes-DiUNOrg9.js → release-notes-CZcf8zB7.js} +1 -1
  230. package/dist/chunks/{releaseNotes-CnhQit0y.js → releaseNotes-CvfZb3fZ.js} +2 -2
  231. package/dist/chunks/{reload-plugins-Dx52GcaG.js → reload-plugins-pSlDLk3b.js} +1 -1
  232. package/dist/chunks/{remote-env-B67Oo3sI.js → remote-env-BH89NuwC.js} +1 -1
  233. package/dist/chunks/{remoteBridgeCore-BzSUgPbt.js → remoteBridgeCore-CrXlWEL1.js} +1 -1
  234. package/dist/chunks/{remoteControlServer-L8smP7Zu.js → remoteControlServer-BSOnq4yY.js} +1 -1
  235. package/dist/chunks/{rename-C4PauyTZ.js → rename-DNGvNQm2.js} +1 -1
  236. package/dist/chunks/{resume-CrSn26xq.js → resume-6UL38yL3.js} +2 -2
  237. package/dist/chunks/{runtimeObserver-nAhH4Wca.js → runtimeObserver-BhvHeiwD.js} +4 -4
  238. package/dist/chunks/{runtimeObserver-YNy3mIb7.js → runtimeObserver-Cp-DN8fP.js} +1 -1
  239. package/dist/chunks/sandbox-adapter-DGVtPPD0.js +1 -0
  240. package/dist/chunks/{sandbox-toggle-BYqbcI5d.js → sandbox-toggle-D19YbI5G.js} +1 -1
  241. package/dist/chunks/searchExtraTools-DXWkpOIg.js +1 -0
  242. package/dist/chunks/{sentry-BNVxoVLS.js → sentry-BZmpC-iI.js} +1 -1
  243. package/dist/chunks/{session-BuEmHrqM.js → session-lLpGqp0B.js} +2 -2
  244. package/dist/chunks/{sessionDiscovery-Mcsfa0g-.js → sessionDiscovery-BX3fjgzD.js} +1 -1
  245. package/dist/chunks/sessionFileAccessHooks-BeuS4m7a.js +1 -0
  246. package/dist/chunks/sessionMemory-LMOQk90c.js +1 -0
  247. package/dist/chunks/sessionMemory-UpILj5ww.js +1 -0
  248. package/dist/chunks/sessionMemoryUtils-DE7AezA0.js +1 -0
  249. package/dist/chunks/{sessionObserver-DG2zQgfi.js → sessionObserver-CujNIWks.js} +1 -1
  250. package/dist/chunks/sessionObserver-HqvTXhs9.js +1 -0
  251. package/dist/chunks/sessionStorage-BN56DAAd.js +1 -0
  252. package/dist/chunks/{sessionTitle-zUVSAHO7.js → sessionTitle-QxXslbJY.js} +1 -1
  253. package/dist/chunks/{sessionTracing-DoRJ4nSa.js → sessionTracing-DognYcDf.js} +1 -1
  254. package/dist/chunks/{settingsSync-B9bz77E1.js → settingsSync-DEPET5O1.js} +1 -1
  255. package/dist/chunks/{setup-B1JbPepL.js → setup-BUBUidOg.js} +1 -1
  256. package/dist/chunks/setup-BZMVuIIx.js +2 -0
  257. package/dist/chunks/{setup-CCOLlRtP.js → setup-C6G0lasE.js} +1 -1
  258. package/dist/chunks/{shadowedRuleDetection-BBR3uEgx.js → shadowedRuleDetection-CQayPrmM.js} +1 -1
  259. package/dist/chunks/{sideQuestion-DHW5rgKz.js → sideQuestion-B9EE1vTM.js} +1 -1
  260. package/dist/chunks/sink-BRrEbL6h.js +1 -0
  261. package/dist/chunks/{sink-DxDOsLa2.js → sink-Cugto5We.js} +1 -1
  262. package/dist/chunks/{sinks-BrrTUxkC.js → sinks-B9A94oIj.js} +2 -2
  263. package/dist/chunks/sinks-CKaSBvU8.js +1 -0
  264. package/dist/chunks/{skill-learning-C0nOKZfg.js → skill-learning-CroDcatu.js} +1 -1
  265. package/dist/chunks/skillChangeDetector-DnyEQqe6.js +1 -0
  266. package/dist/chunks/{skillGapStore-_YuJP5KI.js → skillGapStore-91Mb3xDY.js} +2 -2
  267. package/dist/chunks/{skillGapStore-Czi5jKjJ.js → skillGapStore-LKwap3o4.js} +1 -1
  268. package/dist/chunks/{skillGenerator-kbaRbpqJ.js → skillGenerator-B9GM0LHk.js} +2 -2
  269. package/dist/chunks/skillLearning-D6latSKi.js +1 -0
  270. package/dist/chunks/skillLearning-DbOOqb6b.js +1 -0
  271. package/dist/chunks/{skillPanel-BxDvlPzd.js → skillPanel-rIIYgnBE.js} +3 -3
  272. package/dist/chunks/{skillSearchPanel-D-MX6Qgt.js → skillSearchPanel-xAL-6uJF.js} +4 -4
  273. package/dist/chunks/{skills-NpEgFkFZ.js → skills-Doe47wxK.js} +1 -1
  274. package/dist/chunks/{sprites-DD4eIkN7.js → sprites-D11F3i1M.js} +1 -1
  275. package/dist/chunks/{stats-xL3NHwhp.js → stats-WNUyieG-.js} +1 -1
  276. package/dist/chunks/{status-B5E70xRv.js → status-CjBS9SkF.js} +1 -1
  277. package/dist/chunks/{statusNoticeHelpers-DcssRhLw.js → statusNoticeHelpers-cnI4TiGw.js} +1 -1
  278. package/dist/chunks/{tag-BELr-qIa.js → tag-Gfb8vTAR.js} +2 -2
  279. package/dist/chunks/{tasks-CrdWcSt-.js → tasks-BwX1rzOD.js} +1 -1
  280. package/dist/chunks/{teamHelpers--3ZyNDlv.js → teamHelpers-DEgaCpta.js} +1 -1
  281. package/dist/chunks/teamHelpers-EJxTXoTV.js +1 -0
  282. package/dist/chunks/teammateModeSnapshot-BgUQ4Phz.js +1 -0
  283. package/dist/chunks/{teammateModeSnapshot-DOQMTKbQ.js → teammateModeSnapshot-Dyukgtp9.js} +1 -1
  284. package/dist/chunks/teleport-B4p8XlAv.js +1 -0
  285. package/dist/chunks/{templateJobs-8IY2Cgig.js → templateJobs-DQXuFnkl.js} +1 -1
  286. package/dist/chunks/{terminalSetup-C4psrmpb.js → terminalSetup-CTEIn08j.js} +1 -1
  287. package/dist/chunks/{terminalSetup-Lyg4NbGA.js → terminalSetup-bSbq4LE7.js} +1 -1
  288. package/dist/chunks/{theme-B8GNnJ_q.js → theme-DazaKPy8.js} +1 -1
  289. package/dist/chunks/thinkback-BOfZP_QG.js +1 -0
  290. package/dist/chunks/{thinkback-DPXwEK3B.js → thinkback-CxWZV2Oz.js} +1 -1
  291. package/dist/chunks/{thinkback-play-BMOE-ceh.js → thinkback-play-CHe1x2Hc.js} +1 -1
  292. package/dist/chunks/{toolEventObserver-DzLd0MSn.js → toolEventObserver-D4h-QqVP.js} +1 -1
  293. package/dist/chunks/{toolEventObserver-D0TSHm01.js → toolEventObserver-Dfvv2trb.js} +1 -1
  294. package/dist/chunks/toolPool-BHChMuLr.js +1 -0
  295. package/dist/chunks/toolPool-C5K43w4_.js +1 -0
  296. package/dist/chunks/{trustedDevice-1iTu4LEm.js → trustedDevice-CQ9PK-8m.js} +1 -1
  297. package/dist/chunks/{trustedDevice-BvYYXfd8.js → trustedDevice-rdvUkS1W.js} +1 -1
  298. package/dist/chunks/{ultrareviewCommand-BTXAN2wP.js → ultrareviewCommand-Zf9hO4wr.js} +2 -2
  299. package/dist/chunks/{undercover-DvvnEmsX.js → undercover-DLyKv5TE.js} +1 -1
  300. package/dist/chunks/undercover-DNS9V_JT.js +1 -0
  301. package/dist/chunks/{updateCCB-C-qfLi0j.js → updateCCB-7WQRz9lW.js} +4 -4
  302. package/dist/chunks/{upgrade-DTBZSxwv.js → upgrade-ByIumMQe.js} +1 -1
  303. package/dist/chunks/upgrade-bK4x32Ma.js +1 -0
  304. package/dist/chunks/{upload-BF8tf_Eo.js → upload-CvOMbA9_.js} +1 -1
  305. package/dist/chunks/{usage-DvSTXEYY.js → usage-C_d-Z-eb.js} +1 -1
  306. package/dist/chunks/{usage-BRYRRgNt.js → usage-DE4PSQiF.js} +1 -1
  307. package/dist/chunks/useMainLoopModel-Os8Ao8-x.js +1 -0
  308. package/dist/chunks/{useManagePlugins-GmnI9K53.js → useManagePlugins-BYBubfHU.js} +1 -1
  309. package/dist/chunks/{useMergedTools-Dah5KDMi.js → useMergedTools-BJAn2i-F.js} +1 -1
  310. package/dist/chunks/{useSearchInput-BV_azHiA.js → useSearchInput-CF77X2OV.js} +1 -1
  311. package/dist/chunks/useSettingsErrors-DD7fQ-fU.js +1 -0
  312. package/dist/chunks/{useVoice-DR69NLxp.js → useVoice-DwzMN0fq.js} +1 -1
  313. package/dist/chunks/{util-BpyJ4Bom.js → util-DD30Y4o8.js} +1 -1
  314. package/dist/chunks/utils-D44M8obg.js +1 -0
  315. package/dist/chunks/validatePlugin-DpHiJRsT.js +1 -0
  316. package/dist/chunks/{vim-DvOw8dfR.js → vim-zc9EiMil.js} +1 -1
  317. package/dist/chunks/{voice-B3BZs53f.js → voice-BRhZt4jW.js} +2 -2
  318. package/dist/chunks/{voiceModeEnabled-DA76xN1Q.js → voiceModeEnabled-168-1Ocs.js} +1 -1
  319. package/dist/chunks/voiceModeEnabled-CTT25yFj.js +1 -0
  320. package/dist/chunks/{voiceStreamSTT-_w1VjIOs.js → voiceStreamSTT-B80UegKG.js} +1 -1
  321. package/dist/chunks/voiceStreamSTT-BpYhKo2H.js +1 -0
  322. package/dist/chunks/{workerRegistry-2_MZVih1.js → workerRegistry-s8nnpmUO.js} +1 -1
  323. package/dist/chunks/worktree-CkB4jLXK.js +1 -0
  324. package/dist/chunks/{xml-Dx--sNE1.js → xml-DTMvLcPg.js} +1 -1
  325. package/dist/cli.js +1 -1
  326. package/package.json +1 -1
  327. package/dist/chunks/ApproveApiKey-DiEe4eui.js +0 -1
  328. package/dist/chunks/BackgroundTasksDialog-ByraVuXh.js +0 -2
  329. package/dist/chunks/BypassPermissionsModeDialog-BDvmz12S.js +0 -1
  330. package/dist/chunks/ClaudeMdExternalIncludesDialog-B4ocUjev.js +0 -1
  331. package/dist/chunks/ConsoleOAuthFlow-BvaB9b0y.js +0 -1
  332. package/dist/chunks/DevChannelsDialog-BljR0X9X.js +0 -1
  333. package/dist/chunks/DiffDialog-BhQ2QaLW.js +0 -3
  334. package/dist/chunks/Doctor-BXb0qv6n.js +0 -3
  335. package/dist/chunks/Doctor-C5DYPEGl.js +0 -1
  336. package/dist/chunks/Feedback-DwHzc4UT.js +0 -2
  337. package/dist/chunks/Grove-DnTo982-.js +0 -1
  338. package/dist/chunks/MCPConnectionManager-DYGoS1Ht.js +0 -1
  339. package/dist/chunks/MessageSelector-DTmUuEKJ.js +0 -3
  340. package/dist/chunks/Messages-DWiKTx5o.js +0 -11
  341. package/dist/chunks/PluginSettings-eYcWehI8.js +0 -17
  342. package/dist/chunks/QueryEngine-C_KZts4y.js +0 -1
  343. package/dist/chunks/REPL-C6YR0VKU.js +0 -1
  344. package/dist/chunks/REPL-DzHz-LOY.js +0 -97
  345. package/dist/chunks/ResumeConversation-BktSnsCm.js +0 -1
  346. package/dist/chunks/SearchExtraToolsTool-CqFD8vVS.js +0 -1
  347. package/dist/chunks/SentryErrorBoundary-BUirJRWU.js +0 -1
  348. package/dist/chunks/Settings-vfFvcweR.js +0 -2
  349. package/dist/chunks/TeleportRepoMismatchDialog-_zbZTvcJ.js +0 -1
  350. package/dist/chunks/TrustDialog-CVbzrv6g.js +0 -1
  351. package/dist/chunks/WindowsTerminalBackend-BE9NX5IH.js +0 -2
  352. package/dist/chunks/api-6tcwJlf_.js +0 -1
  353. package/dist/chunks/assistant-CwbhlCM-.js +0 -1
  354. package/dist/chunks/auth-GxZhOvQ1.js +0 -1
  355. package/dist/chunks/backgroundHousekeeping-BIZTAYho.js +0 -17
  356. package/dist/chunks/backgroundHousekeeping-Csh58CxV.js +0 -1
  357. package/dist/chunks/bridgeConfig-D4tpc568.js +0 -1
  358. package/dist/chunks/bridgeEnabled-B8_c_Ppq.js +0 -1
  359. package/dist/chunks/bridgeMain-C5RDihlX.js +0 -68
  360. package/dist/chunks/bridgeMain-D7_lg2iJ.js +0 -1
  361. package/dist/chunks/caches-dGk7xsDu.js +0 -1
  362. package/dist/chunks/changeDetector-DoLfg8a6.js +0 -1
  363. package/dist/chunks/channelNotification-DDErroWn.js +0 -1
  364. package/dist/chunks/clear-OudnCGa7.js +0 -1
  365. package/dist/chunks/client-DxDmXXTh.js +0 -1
  366. package/dist/chunks/commands-BWIOEBPs.js +0 -1
  367. package/dist/chunks/commitAttribution-BA4fcbHf.js +0 -1
  368. package/dist/chunks/context-noninteractive-CM1-lUSe.js +0 -1
  369. package/dist/chunks/conversation-DKlz47xf.js +0 -1
  370. package/dist/chunks/conversation-cUxdb8MN.js +0 -1
  371. package/dist/chunks/createSession-BuJcoBAj.js +0 -1
  372. package/dist/chunks/cronJitterConfig-CYP7yrQu.js +0 -6
  373. package/dist/chunks/crossProjectResume-BJisir9Z.js +0 -40
  374. package/dist/chunks/datadog-CVeFkaQu.js +0 -1
  375. package/dist/chunks/envLessBridgeConfig-CT8sdmFu.js +0 -1
  376. package/dist/chunks/extra-usage-rdJ7ecEb.js +0 -1
  377. package/dist/chunks/extractMemories-BrvZVsmM.js +0 -1
  378. package/dist/chunks/fast-CLKKsx2H.js +0 -1
  379. package/dist/chunks/gates-CSHuXnUx.js +0 -1
  380. package/dist/chunks/hooks-BFdX17Za.js +0 -1
  381. package/dist/chunks/inboundAttachments-BVUunfAX.js +0 -1
  382. package/dist/chunks/initReplBridge-tPRGPBq7.js +0 -1
  383. package/dist/chunks/language-Cf6bMI4N.js +0 -1
  384. package/dist/chunks/launchAutofixPr-D9h6YAZY.js +0 -2
  385. package/dist/chunks/loadAgentsDir-DCyiY0MN.js +0 -1
  386. package/dist/chunks/localSearch-MBx7KzC2.js +0 -1
  387. package/dist/chunks/login-D8UKKaud.js +0 -1
  388. package/dist/chunks/logout-B0BjqlGi.js +0 -1
  389. package/dist/chunks/mcp-CanCqnch.js +0 -2
  390. package/dist/chunks/mcp-Dq0kxZFx.js +0 -6
  391. package/dist/chunks/mcp-zbxZM9BP.js +0 -1
  392. package/dist/chunks/model-H3rtl6eR.js +0 -1
  393. package/dist/chunks/permissions-S2EvIRKj.js +0 -3
  394. package/dist/chunks/pluginStartupCheck-DpxQPXJE.js +0 -1
  395. package/dist/chunks/plugins-DQ3CRWWO.js +0 -4
  396. package/dist/chunks/policyLimits-BotYrS-v.js +0 -1
  397. package/dist/chunks/poorMode-DEAe3hiK.js +0 -1
  398. package/dist/chunks/processBashCommand-DHHN8Ca4.js +0 -1
  399. package/dist/chunks/prompt-CO160cIr.js +0 -1
  400. package/dist/chunks/prompt-GY9hlRvI.js +0 -1
  401. package/dist/chunks/rcDebugLog-CPKZCtR8.js +0 -11
  402. package/dist/chunks/sandbox-adapter-CzwHes1i.js +0 -1
  403. package/dist/chunks/searchExtraTools-CcpdCO6l.js +0 -1
  404. package/dist/chunks/sessionFileAccessHooks-qnNiGMnE.js +0 -1
  405. package/dist/chunks/sessionMemory-CMahwDdW.js +0 -1
  406. package/dist/chunks/sessionMemory-pFSn4HSN.js +0 -1
  407. package/dist/chunks/sessionMemoryUtils-Du5jUl7M.js +0 -1
  408. package/dist/chunks/sessionObserver-Je868MC9.js +0 -1
  409. package/dist/chunks/sessionStorage-D3FhAADV.js +0 -1
  410. package/dist/chunks/setup-DWkSjA49.js +0 -2
  411. package/dist/chunks/sink-cQOgsnw3.js +0 -1
  412. package/dist/chunks/sinks-Djiz_5-Z.js +0 -1
  413. package/dist/chunks/skillChangeDetector-D8C-uQSQ.js +0 -1
  414. package/dist/chunks/skillLearning-3KWrBczS.js +0 -1
  415. package/dist/chunks/skillLearning-DBbdGbk-.js +0 -1
  416. package/dist/chunks/teamHelpers-CUAiXng3.js +0 -1
  417. package/dist/chunks/teammateModeSnapshot-C6EWhR0X.js +0 -1
  418. package/dist/chunks/teleport-LXFOan9C.js +0 -1
  419. package/dist/chunks/thinkback-DZW3Mcx_.js +0 -1
  420. package/dist/chunks/toolPool-DVOfpjDz.js +0 -1
  421. package/dist/chunks/toolPool-Dq-Vtvrj.js +0 -1
  422. package/dist/chunks/undercover-C_44e3oN.js +0 -1
  423. package/dist/chunks/upgrade-CGXa5Dwy.js +0 -1
  424. package/dist/chunks/useMainLoopModel-CwvuTRXn.js +0 -1
  425. package/dist/chunks/useSettingsErrors-C-j_Zt7g.js +0 -1
  426. package/dist/chunks/utils-CrZcpypC.js +0 -1
  427. package/dist/chunks/validatePlugin-vptAYuYu.js +0 -1
  428. package/dist/chunks/voiceModeEnabled-DIveLYGb.js +0 -1
  429. package/dist/chunks/voiceStreamSTT-hpzWd_zl.js +0 -1
  430. package/dist/chunks/worktree-CCuDwRmS.js +0 -1
@@ -1 +1 @@
1
- import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{n,t as r}from"./figures-gfT9mM8P.js";import{Ct as i,Rn as a,b as o,f as s,g as c,h as l,t as u,tt as d,wt as f,x as p}from"./src-Di342QoJ.js";import{t as m}from"./jsx-runtime-D-D469L8.js";import{B as h,Dx as g,JS as _,Nx as v,Ox as y,Px as b,R as x,YS as S,z as C}from"./loadAgentsDir-DI1a76pd.js";import{t as w}from"./useKeybinding-FsOnjW6T.js";import{r as T,t as E}from"./directoryCompletion-DP_4B1GL.js";import{r as D,t as O}from"./PromptInputFooterSuggestions-DrrkNOuS.js";function k(){return(0,P.jsx)(o,{dimColor:!0,children:`Claude Code will be able to read files in this directory and make edits when auto-accept edits is on.`})}function A({path:e}){return(0,P.jsxs)(p,{flexDirection:`column`,paddingX:2,gap:1,children:[(0,P.jsx)(o,{color:`permission`,children:e}),(0,P.jsx)(k,{})]})}function j({value:e,onChange:t,onSubmit:n,error:i,suggestions:a,selectedSuggestion:s}){return(0,P.jsxs)(p,{flexDirection:`column`,children:[(0,P.jsx)(o,{children:`Enter the path to the directory:`}),(0,P.jsx)(p,{borderDimColor:!0,borderStyle:`round`,marginY:1,paddingLeft:1,children:(0,P.jsx)(v,{showCursor:!0,placeholder:`Directory path${r.ellipsis}`,value:e,onChange:t,onSubmit:n,columns:80,cursorOffset:e.length,onChangeCursorOffset:()=>{}})}),a.length>0&&(0,P.jsx)(p,{marginBottom:1,children:(0,P.jsx)(O,{suggestions:a,selectedSuggestion:s})}),i&&(0,P.jsx)(o,{color:`error`,children:i})]})}function M({onAddDirectory:e,onCancel:t,permissionContext:n,directoryPath:r}){let[i,a]=(0,N.useState)(``),[u,m]=(0,N.useState)(null),[v,y]=(0,N.useState)([]),[b,S]=(0,N.useState)(0),C=(0,N.useMemo)(()=>F,[]),w=f((0,N.useCallback)(async e=>{if(!e){y([]),S(0);return}y(await E(e)),S(0)},[]),100);(0,N.useEffect)(()=>{w(i)},[i,w]);let T=(0,N.useCallback)(e=>{a(e.id+`/`),m(null)},[]),D=(0,N.useCallback)(async t=>{let r=await h(t,n);r.resultType===`success`?e(r.absolutePath,!1):m(x(r))},[n,e]);d(`confirm:no`,t,{context:`Settings`});let O=(0,N.useCallback)(e=>{if(v.length>0){if(e.key===`tab`){e.preventDefault();let t=v[b];t&&T(t);return}if(e.key===`return`){e.preventDefault();let t=v[b];t&&D(t.id+`/`);return}if(e.key===`up`||e.ctrl&&e.key===`p`){e.preventDefault(),S(e=>e<=0?v.length-1:e-1);return}if(e.key===`down`||e.ctrl&&e.key===`n`){e.preventDefault(),S(e=>e>=v.length-1?0:e+1);return}}},[v,b,T,D]),M=(0,N.useCallback)(n=>{if(r)switch(n){case`yes-session`:e(r,!1);break;case`yes-remember`:e(r,!0);break;case`no`:t();break}},[r,e,t]);return(0,P.jsx)(p,{flexDirection:`column`,tabIndex:0,autoFocus:!0,onKeyDown:O,children:(0,P.jsx)(s,{title:`Add directory to workspace`,onCancel:t,color:`permission`,isCancelActive:!1,inputGuide:r?void 0:e=>e.pending?(0,P.jsxs)(o,{children:[`Press `,e.keyName,` again to exit`]}):(0,P.jsxs)(l,{children:[(0,P.jsx)(c,{shortcut:`Tab`,action:`complete`}),(0,P.jsx)(c,{shortcut:`Enter`,action:`add`}),(0,P.jsx)(_,{action:`confirm:no`,context:`Settings`,fallback:`Esc`,description:`cancel`})]}),children:r?(0,P.jsxs)(p,{flexDirection:`column`,gap:1,children:[(0,P.jsx)(A,{path:r}),(0,P.jsx)(g,{options:C,onChange:M,onCancel:()=>M(`no`)})]}):(0,P.jsxs)(p,{flexDirection:`column`,gap:1,marginX:2,children:[(0,P.jsx)(k,{}),(0,P.jsx)(j,{value:i,onChange:a,onSubmit:D,error:u,suggestions:v,selectedSuggestion:b})]})})})}var N,P,F,I=e((()=>{n(),a(),N=t(a(),1),i(),C(),b(),u(),w(),T(),S(),y(),D(),P=m(),F=[{value:`yes-session`,label:`Yes, for this session`},{value:`yes-remember`,label:`Yes, and remember this directory`},{value:`no`,label:`No`}]}));export{I as n,M as t};
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{n,t as r}from"./figures-gfT9mM8P.js";import{Ct as i,Rn as a,b as o,f as s,g as c,h as l,t as u,tt as d,wt as f,x as p}from"./src-Di342QoJ.js";import{t as m}from"./jsx-runtime-D-D469L8.js";import{Ax as h,B as g,Fx as _,Ix as v,R as y,XS as b,ZS as x,kx as S,z as C}from"./loadAgentsDir-D7kapZB5.js";import{t as w}from"./useKeybinding-FsOnjW6T.js";import{r as T,t as E}from"./directoryCompletion-DP_4B1GL.js";import{r as D,t as O}from"./PromptInputFooterSuggestions-ihnbjU0K.js";function k(){return(0,P.jsx)(o,{dimColor:!0,children:`Claude Code will be able to read files in this directory and make edits when auto-accept edits is on.`})}function A({path:e}){return(0,P.jsxs)(p,{flexDirection:`column`,paddingX:2,gap:1,children:[(0,P.jsx)(o,{color:`permission`,children:e}),(0,P.jsx)(k,{})]})}function j({value:e,onChange:t,onSubmit:n,error:i,suggestions:a,selectedSuggestion:s}){return(0,P.jsxs)(p,{flexDirection:`column`,children:[(0,P.jsx)(o,{children:`Enter the path to the directory:`}),(0,P.jsx)(p,{borderDimColor:!0,borderStyle:`round`,marginY:1,paddingLeft:1,children:(0,P.jsx)(_,{showCursor:!0,placeholder:`Directory path${r.ellipsis}`,value:e,onChange:t,onSubmit:n,columns:80,cursorOffset:e.length,onChangeCursorOffset:()=>{}})}),a.length>0&&(0,P.jsx)(p,{marginBottom:1,children:(0,P.jsx)(O,{suggestions:a,selectedSuggestion:s})}),i&&(0,P.jsx)(o,{color:`error`,children:i})]})}function M({onAddDirectory:e,onCancel:t,permissionContext:n,directoryPath:r}){let[i,a]=(0,N.useState)(``),[u,m]=(0,N.useState)(null),[h,_]=(0,N.useState)([]),[v,x]=(0,N.useState)(0),C=(0,N.useMemo)(()=>F,[]),w=f((0,N.useCallback)(async e=>{if(!e){_([]),x(0);return}_(await E(e)),x(0)},[]),100);(0,N.useEffect)(()=>{w(i)},[i,w]);let T=(0,N.useCallback)(e=>{a(e.id+`/`),m(null)},[]),D=(0,N.useCallback)(async t=>{let r=await g(t,n);r.resultType===`success`?e(r.absolutePath,!1):m(y(r))},[n,e]);d(`confirm:no`,t,{context:`Settings`});let O=(0,N.useCallback)(e=>{if(h.length>0){if(e.key===`tab`){e.preventDefault();let t=h[v];t&&T(t);return}if(e.key===`return`){e.preventDefault();let t=h[v];t&&D(t.id+`/`);return}if(e.key===`up`||e.ctrl&&e.key===`p`){e.preventDefault(),x(e=>e<=0?h.length-1:e-1);return}if(e.key===`down`||e.ctrl&&e.key===`n`){e.preventDefault(),x(e=>e>=h.length-1?0:e+1);return}}},[h,v,T,D]),M=(0,N.useCallback)(n=>{if(r)switch(n){case`yes-session`:e(r,!1);break;case`yes-remember`:e(r,!0);break;case`no`:t();break}},[r,e,t]);return(0,P.jsx)(p,{flexDirection:`column`,tabIndex:0,autoFocus:!0,onKeyDown:O,children:(0,P.jsx)(s,{title:`Add directory to workspace`,onCancel:t,color:`permission`,isCancelActive:!1,inputGuide:r?void 0:e=>e.pending?(0,P.jsxs)(o,{children:[`Press `,e.keyName,` again to exit`]}):(0,P.jsxs)(l,{children:[(0,P.jsx)(c,{shortcut:`Tab`,action:`complete`}),(0,P.jsx)(c,{shortcut:`Enter`,action:`add`}),(0,P.jsx)(b,{action:`confirm:no`,context:`Settings`,fallback:`Esc`,description:`cancel`})]}),children:r?(0,P.jsxs)(p,{flexDirection:`column`,gap:1,children:[(0,P.jsx)(A,{path:r}),(0,P.jsx)(S,{options:C,onChange:M,onCancel:()=>M(`no`)})]}):(0,P.jsxs)(p,{flexDirection:`column`,gap:1,marginX:2,children:[(0,P.jsx)(k,{}),(0,P.jsx)(j,{value:i,onChange:a,onSubmit:D,error:u,suggestions:h,selectedSuggestion:v})]})})})}var N,P,F,I=e((()=>{n(),a(),N=t(a(),1),i(),C(),v(),u(),w(),T(),x(),h(),D(),P=m(),F=[{value:`yes-session`,label:`Yes, for this session`},{value:`yes-remember`,label:`Yes, and remember this directory`},{value:`no`,label:`No`}]}));export{I as n,M as t};
@@ -1 +1 @@
1
- import"./chunk-DR8-3Aex.js";import{Rn as e,S as t,t as n}from"./src-Di342QoJ.js";import{t as r}from"./jsx-runtime-D-D469L8.js";import{Ac as i,Pc as a,Sc as o}from"./paths-BBvuDQl9.js";import{AS as s,jS as c}from"./loadAgentsDir-DI1a76pd.js";import{n as l}from"./onChangeAppState-Dxbl8fvk.js";import{t as u}from"./fpsMetrics-DeezdcwV.js";import{t as d}from"./stats-xL3NHwhp.js";e(),c(),n(),i();var f=r();function p({getFpsMetrics:e,stats:n,initialState:r,children:i}){return(0,f.jsx)(u,{getFpsMetrics:e,children:(0,f.jsx)(d,{store:n,children:(0,f.jsx)(s,{initialState:r,onChangeAppState:l,children:(0,f.jsx)(t,{initialState:o().theme,onThemeSave:e=>a(t=>({...t,theme:e})),children:i})})})})}export{p as App};
1
+ import"./chunk-DR8-3Aex.js";import{Rn as e,S as t,t as n}from"./src-Di342QoJ.js";import{t as r}from"./jsx-runtime-D-D469L8.js";import{Ac as i,Pc as a,Sc as o}from"./paths-1ngPRtu3.js";import{MS as s,NS as c}from"./loadAgentsDir-D7kapZB5.js";import{n as l}from"./onChangeAppState-Cb9_yIuW.js";import{t as u}from"./fpsMetrics-DeezdcwV.js";import{t as d}from"./stats-WNUyieG-.js";e(),c(),n(),i();var f=r();function p({getFpsMetrics:e,stats:n,initialState:r,children:i}){return(0,f.jsx)(u,{getFpsMetrics:e,children:(0,f.jsx)(d,{store:n,children:(0,f.jsx)(s,{initialState:r,onChangeAppState:l,children:(0,f.jsx)(t,{initialState:o().theme,onThemeSave:e=>a(t=>({...t,theme:e})),children:i})})})})}export{p as App};
@@ -1 +1 @@
1
- import"./chunk-DR8-3Aex.js";import{Rn as e,b as t,f as n,t as r}from"./src-Di342QoJ.js";import{t as i}from"./jsx-runtime-D-D469L8.js";import{Ac as a,Pc as o}from"./paths-BBvuDQl9.js";import{Dx as s,cy as c}from"./loadAgentsDir-DI1a76pd.js";e(),r(),a(),c();var l=i();function u({customApiKeyTruncated:e,onDone:r}){function i(t){switch(t){case`yes`:o(t=>({...t,customApiKeyResponses:{...t.customApiKeyResponses,approved:[...t.customApiKeyResponses?.approved??[],e]}})),r(!0);break;case`no`:o(t=>({...t,customApiKeyResponses:{...t.customApiKeyResponses,rejected:[...t.customApiKeyResponses?.rejected??[],e]}})),r(!1);break}}return(0,l.jsxs)(n,{title:`Detected a custom API key in your environment`,color:`warning`,onCancel:()=>i(`no`),children:[(0,l.jsxs)(t,{children:[(0,l.jsx)(t,{bold:!0,children:`ANTHROPIC_API_KEY`}),(0,l.jsxs)(t,{children:[`: sk-ant-...`,e]})]}),(0,l.jsx)(t,{children:`Do you want to use this API key?`}),(0,l.jsx)(s,{defaultValue:`no`,defaultFocusValue:`no`,options:[{label:`Yes`,value:`yes`},{label:(0,l.jsxs)(t,{children:[`No (`,(0,l.jsx)(t,{bold:!0,children:`recommended`}),`)`]}),value:`no`}],onChange:e=>i(e),onCancel:()=>i(`no`)})]})}export{u as t};
1
+ import"./chunk-DR8-3Aex.js";import{Rn as e,b as t,f as n,t as r}from"./src-Di342QoJ.js";import{t as i}from"./jsx-runtime-D-D469L8.js";import{Ac as a,Pc as o}from"./paths-1ngPRtu3.js";import{kx as s,uy as c}from"./loadAgentsDir-D7kapZB5.js";e(),r(),a(),c();var l=i();function u({customApiKeyTruncated:e,onDone:r}){function i(t){switch(t){case`yes`:o(t=>({...t,customApiKeyResponses:{...t.customApiKeyResponses,approved:[...t.customApiKeyResponses?.approved??[],e]}})),r(!0);break;case`no`:o(t=>({...t,customApiKeyResponses:{...t.customApiKeyResponses,rejected:[...t.customApiKeyResponses?.rejected??[],e]}})),r(!1);break}}return(0,l.jsxs)(n,{title:`Detected a custom API key in your environment`,color:`warning`,onCancel:()=>i(`no`),children:[(0,l.jsxs)(t,{children:[(0,l.jsx)(t,{bold:!0,children:`ANTHROPIC_API_KEY`}),(0,l.jsxs)(t,{children:[`: sk-ant-...`,e]})]}),(0,l.jsx)(t,{children:`Do you want to use this API key?`}),(0,l.jsx)(s,{defaultValue:`no`,defaultFocusValue:`no`,options:[{label:`Yes`,value:`yes`},{label:(0,l.jsxs)(t,{children:[`No (`,(0,l.jsx)(t,{bold:!0,children:`recommended`}),`)`]}),value:`no`}],onChange:e=>i(e),onCancel:()=>i(`no`)})]})}export{u as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./ApproveApiKey-9rkwQfgT.js";export{e as ApproveApiKey};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-DR8-3Aex.js";import{Rn as t,b as n,d as r,f as i,nt as a,t as o,x as s}from"./src-Di342QoJ.js";import{t as c}from"./jsx-runtime-D-D469L8.js";import{Mx as l,kx as u}from"./loadAgentsDir-DI1a76pd.js";import{t as d}from"./useKeybinding-FsOnjW6T.js";import{t as f}from"./Dialog-DYFGqyDs.js";import{t as p}from"./ListItem-OFARanN7.js";var m=e(t(),1);o(),f(),p(),u(),d();var h=c();function g({sessions:e,onSelect:t,onCancel:o}){l(`assistant-session-chooser`);let[c,u]=(0,m.useState)(0);return a({"select:next":()=>u(t=>(t+1)%e.length),"select:previous":()=>u(t=>(t-1+e.length)%e.length),"select:accept":()=>t(e[c].id)},{context:`Select`}),(0,h.jsx)(i,{title:`Select Assistant Session`,onCancel:o,hideInputGuide:!0,children:(0,h.jsxs)(s,{flexDirection:`column`,gap:1,children:[(0,h.jsx)(n,{children:`Multiple sessions found. Select one to attach:`}),(0,h.jsx)(s,{flexDirection:`column`,children:e.map((e,t)=>(0,h.jsx)(r,{isFocused:c===t,children:(0,h.jsxs)(s,{children:[(0,h.jsx)(n,{children:e.title||e.id.slice(0,20)}),(0,h.jsxs)(n,{dimColor:!0,children:[` [`,e.status,`]`]})]})},e.id))}),(0,h.jsx)(n,{dimColor:!0,children:`↑↓ navigate · Enter select · Esc cancel`})]})})}export{g as AssistantSessionChooser};
1
+ import{o as e}from"./chunk-DR8-3Aex.js";import{Rn as t,b as n,d as r,f as i,nt as a,t as o,x as s}from"./src-Di342QoJ.js";import{t as c}from"./jsx-runtime-D-D469L8.js";import{Px as l,jx as u}from"./loadAgentsDir-D7kapZB5.js";import{t as d}from"./useKeybinding-FsOnjW6T.js";import{t as f}from"./Dialog-DYFGqyDs.js";import{t as p}from"./ListItem-OFARanN7.js";var m=e(t(),1);o(),f(),p(),u(),d();var h=c();function g({sessions:e,onSelect:t,onCancel:o}){l(`assistant-session-chooser`);let[c,u]=(0,m.useState)(0);return a({"select:next":()=>u(t=>(t+1)%e.length),"select:previous":()=>u(t=>(t-1+e.length)%e.length),"select:accept":()=>t(e[c].id)},{context:`Select`}),(0,h.jsx)(i,{title:`Select Assistant Session`,onCancel:o,hideInputGuide:!0,children:(0,h.jsxs)(s,{flexDirection:`column`,gap:1,children:[(0,h.jsx)(n,{children:`Multiple sessions found. Select one to attach:`}),(0,h.jsx)(s,{flexDirection:`column`,children:e.map((e,t)=>(0,h.jsx)(r,{isFocused:c===t,children:(0,h.jsxs)(s,{children:[(0,h.jsx)(n,{children:e.title||e.id.slice(0,20)}),(0,h.jsxs)(n,{dimColor:!0,children:[` [`,e.status,`]`]})]})},e.id))}),(0,h.jsx)(n,{dimColor:!0,children:`↑↓ navigate · Enter select · Esc cancel`})]})})}export{g as AssistantSessionChooser};
@@ -0,0 +1,2 @@
1
+ import{a as e,n as t,o as n,r}from"./chunk-DR8-3Aex.js";import{n as i,t as a}from"./figures-gfT9mM8P.js";import{B as o,F as s,Q as c,Rn as l,T as u,b as d,f,g as p,h as m,nt as h,t as g,x as _}from"./src-Di342QoJ.js";import{t as v}from"./jsx-runtime-D-D469L8.js";import{Gs as y,Po as b,jo as x,rs as S}from"./paths-1ngPRtu3.js";import{L as C,V as w,b as T,h as ee}from"./debug-UI3T040K.js";import{n as E,r as D}from"./analytics-DqMQntaB.js";import{S as te,b as O,x as ne}from"./teammate-DMYOtLTK.js";import{C as k,E as A,d as re,f as ie,m as ae,x as j}from"./startupProfiler-DnXZaX4A.js";import{$w as oe,An as M,Ax as se,Cu as ce,DS as le,Dn as ue,ES as de,Eh as fe,Eu as pe,Fy as me,Go as he,IS as ge,Iy as _e,Ja as ve,Ku as ye,Lo as be,Lu as xe,Mn as Se,NS as Ce,Ny as we,Oh as Te,On as Ee,Ou as De,PS as Oe,Px as ke,Py as Ae,Qw as je,Ru as Me,So as Ne,Tg as Pe,X_ as Fe,Z_ as Ie,a_ as Le,aa as Re,ap as ze,av as Be,bu as Ve,by as N,cp as He,dE as Ue,i_ as We,jx as Ge,kx as Ke,ky as qe,lj as Je,lv as Ye,op as Xe,q_ as Ze,qu as Qe,ra as $e,sp as et,uE as tt,uj as nt,wg as rt,wu as it,wy as at,yy as P,zw as ot}from"./loadAgentsDir-D7kapZB5.js";import{Bn as st,Vn as ct,Xt as lt,tn as ut,zn as dt}from"./prompt-BBg3jtfc.js";import{n as ft,t as pt}from"./browser-fLRXxIsQ.js";import{t as F}from"./useKeybinding-FsOnjW6T.js";import{a as mt,c as ht}from"./constants-41VpZw2G.js";import{t as gt}from"./Dialog-DYFGqyDs.js";import{i as _t,n as vt}from"./mappers-CkMESMy7.js";function yt(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`local_agent`}function bt(e){return{...e,retain:!1,messages:void 0,diskLoaded:!1,evictAfter:Ee(e.status)?Date.now()+wt:void 0}}function xt(e,t){D(`tengu_transcript_view_enter`,{}),t(t=>{let n=t.tasks[e],r=t.viewingAgentTaskId,i=r===void 0?void 0:t.tasks[r],a=r!==void 0&&r!==e&&yt(i)&&i.retain,o=yt(n)&&(!n.retain||n.evictAfter!==void 0),s=t.viewingAgentTaskId!==e||t.viewSelectionMode!==`viewing-agent`;if(!o&&!s&&!a)return t;let c=t.tasks;return(a||o)&&(c={...t.tasks},a&&(c[r]=bt(i)),o&&(c[e]={...n,retain:!0,evictAfter:void 0})),{...t,viewingAgentTaskId:e,viewSelectionMode:`viewing-agent`,tasks:c}})}function St(e){D(`tengu_transcript_view_exit`,{}),e(e=>{let t=e.viewingAgentTaskId,n={...e,viewingAgentTaskId:void 0,viewSelectionMode:`none`};if(t===void 0)return e.viewSelectionMode===`none`?e:n;let r=e.tasks[t];return!yt(r)||!r.retain?n:{...n,tasks:{...e.tasks,[t]:bt(r)}}})}function Ct(e,t){t(t=>{let n=t.tasks[e];if(!yt(n))return t;if(n.status===`running`)return n.abortController?.abort(),t;if(n.evictAfter===0)return t;let r=t.viewingAgentTaskId===e;return{...t,tasks:{...t.tasks,[e]:{...bt(n),evictAfter:0}},...r&&{viewingAgentTaskId:void 0,viewSelectionMode:`none`}}})}var wt,Tt=t((()=>{E(),ue(),wt=3e4}));function Et(e,t,n){let r=dt(t,e.toolName);if(!r)return e.toolName;try{let t=r.inputSchema.safeParse(e.input),i=t.success?t.data:{},a=r.userFacingName(i);if(!a)return e.toolName;let o=r.renderToolUseMessage(i,{theme:n,verbose:!1});return o?(0,Dt.jsxs)(d,{children:[a,`(`,o,`)`]}):a}catch{return e.toolName}}var Dt,Ot=t((()=>{l(),g(),ct(),Dt=v()}));function kt(e){return e===`completed`||e===`failed`||e===`killed`}function At(e,t){let{isIdle:n,awaitingApproval:r,hasError:i,shutdownRequested:o}=t??{};return i?a.cross:r?a.questionMarkPrefix:o?a.warning:e===`running`?n?a.ellipsis:a.play:e===`completed`?a.tick:e===`failed`||e===`killed`?a.cross:a.bullet}function jt(e,t){let{isIdle:n,awaitingApproval:r,hasError:i,shutdownRequested:a}=t??{};return i?`error`:r||a?`warning`:n?`background`:e===`completed`?`success`:e===`failed`?`error`:e===`killed`?`warning`:`background`}function Mt(e){return e.shutdownRequested?`stopping`:e.awaitingPlanApproval?`awaiting approval`:e.isIdle?`idle`:(e.progress?.recentActivities&&Me(e.progress.recentActivities))??e.progress?.lastActivity?.activityDescription??`working`}function Nt(e,t){if(!t)return!1;let n=!1;for(let t of Object.values(e))if(!(!Ae(t)||process.env.USER_TYPE===`ant`&&De(t))&&(n=!0,t.type!==`in_process_teammate`))return!1;return n}var Pt=t((()=>{i(),pe(),we(),xe()}));function Ft({agent:e,onDone:t,onKillAgent:n,onBack:r}){let[i]=u(),a=(0,It.useMemo)(()=>ye(st()),[]),o=N(e.startTime,e.status===`running`,1e3,e.totalPausedMs??0);h({"confirm:yes":t},{context:`Confirmation`});let s=i=>{i.key===` `?(i.preventDefault(),t()):i.key===`left`&&r?(i.preventDefault(),r()):i.key===`x`&&e.status===`running`&&n&&(i.preventDefault(),n())},c=Ne(e.prompt,`plan`),l=e.prompt.length>300?e.prompt.substring(0,297)+`…`:e.prompt,g=e.result?.totalTokens??e.progress?.tokenCount,v=e.result?.totalToolUseCount??e.progress?.toolUseCount;return(0,I.jsx)(_,{flexDirection:`column`,tabIndex:0,autoFocus:!0,onKeyDown:s,children:(0,I.jsx)(f,{title:(0,I.jsxs)(d,{children:[e.selectedAgent?.agentType??`agent`,` › `,e.description||`Async agent`]}),subtitle:(0,I.jsxs)(d,{children:[e.status!==`running`&&(0,I.jsxs)(d,{color:jt(e.status),children:[At(e.status),` `,e.status===`completed`?`Completed`:e.status===`failed`?`Failed`:`Stopped`,` · `]}),(0,I.jsxs)(d,{dimColor:!0,children:[o,g!==void 0&&g>0&&(0,I.jsxs)(I.Fragment,{children:[` · `,ae(g),` tokens`]}),v!==void 0&&v>0&&(0,I.jsxs)(I.Fragment,{children:[` `,`· `,v,` `,v===1?`tool`:`tools`]})]})]}),onCancel:t,color:`background`,inputGuide:t=>t.pending?(0,I.jsxs)(d,{children:[`Press `,t.keyName,` again to exit`]}):(0,I.jsxs)(m,{children:[r&&(0,I.jsx)(p,{shortcut:`←`,action:`go back`}),(0,I.jsx)(p,{shortcut:`Esc/Enter/Space`,action:`close`}),e.status===`running`&&n&&(0,I.jsx)(p,{shortcut:`x`,action:`stop`})]}),children:(0,I.jsxs)(_,{flexDirection:`column`,children:[e.status===`running`&&e.progress?.recentActivities&&e.progress.recentActivities.length>0&&(0,I.jsxs)(_,{flexDirection:`column`,children:[(0,I.jsx)(d,{bold:!0,dimColor:!0,children:`Progress`}),e.progress.recentActivities.map((t,n)=>(0,I.jsxs)(d,{dimColor:n<e.progress.recentActivities.length-1,wrap:`truncate-end`,children:[n===e.progress.recentActivities.length-1?`› `:` `,Et(t,a,i)]},n))]}),c?(0,I.jsx)(_,{marginTop:1,children:(0,I.jsx)(rt,{addMargin:!1,planContent:c})}):(0,I.jsxs)(_,{flexDirection:`column`,marginTop:1,children:[(0,I.jsx)(d,{bold:!0,dimColor:!0,children:`Prompt`}),(0,I.jsx)(d,{wrap:`wrap`,children:l})]}),e.status===`failed`&&e.error&&(0,I.jsxs)(_,{flexDirection:`column`,marginTop:1,children:[(0,I.jsx)(d,{bold:!0,color:`error`,children:`Error`}),(0,I.jsx)(d,{color:`error`,wrap:`wrap`,children:e.error})]})]})})})}var It,I,Lt=t((()=>{It=n(l(),1),P(),g(),F(),ct(),Qe(),j(),be(),Pe(),Ot(),Pt(),I=v()}));function Rt(e,t,n,r){if(!e)return`${t} found · ${n} verified`;if(e===`synthesizing`){let e=[`${n} verified`];return r>0&&e.push(`${r} refuted`),e.push(`deduping`),e.join(` · `)}if(e===`verifying`){let e=[`${t} found`,`${n} verified`];return r>0&&e.push(`${r} refuted`),e.join(` · `)}return t>0?`${t} found`:`finding`}function zt({text:e,phase:t=0}){return(0,L.jsx)(L.Fragment,{children:[...e].map((e,n)=>(0,L.jsx)(d,{color:Je(n+t),children:e},n))})}function Bt(e,t,n){let r=(0,Ut.useRef)(e),i=(0,Ut.useRef)(t);return n||e<r.current?r.current=e:e>r.current&&t!==i.current&&(r.current+=1,i.current=t),r.current}function Vt({session:e}){let t=le().prefersReducedMotion??!1,n=e.reviewProgress,r=e.status===`running`,[,i]=o(r&&!t?Wt:null),a=n?.bugsFound??0,s=n?.bugsVerified??0,c=n?.bugsRefuted??0,l=t||!r,u=Bt(a,i,l),f=Bt(s,i,l),p=Bt(c,i,l),m=Math.floor(i/(Wt*3))%7;if(e.status===`completed`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(d,{color:`background`,children:[`◆`,` `]}),(0,L.jsx)(zt,{text:`ultrareview`,phase:0}),(0,L.jsx)(d,{dimColor:!0,children:` ready · shift+↓ to view`})]});if(e.status===`failed`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(d,{color:`background`,children:[`◆`,` `]}),(0,L.jsx)(zt,{text:`ultrareview`,phase:0}),(0,L.jsxs)(d,{color:`error`,dimColor:!0,children:[` · `,`error`]})]});let h=n?Rt(n.stage,u,f,p):`setting up`;return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(d,{color:`background`,children:[`◇`,` `]}),(0,L.jsx)(zt,{text:`ultrareview`,phase:r?m:0}),(0,L.jsxs)(d,{dimColor:!0,children:[` · `,h]})]})}function Ht({session:e}){if(e.isRemoteReview)return(0,L.jsx)(Vt,{session:e});if(e.status===`completed`)return(0,L.jsx)(d,{bold:!0,color:`success`,dimColor:!0,children:`done`});if(e.status===`failed`)return(0,L.jsx)(d,{bold:!0,color:`error`,dimColor:!0,children:`error`});if(!e.todoList.length)return(0,L.jsxs)(d,{dimColor:!0,children:[e.status,`…`]});let t=O(e.todoList,e=>e.status===`completed`),n=e.todoList.length;return(0,L.jsxs)(d,{dimColor:!0,children:[t,`/`,n]})}var Ut,L,Wt,Gt=t((()=>{Ut=n(l(),1),y(),de(),g(),ne(),nt(),L=v(),Wt=80}));function R({status:e,label:t,suffix:n}){return(0,z.jsxs)(d,{color:e===`completed`?`success`:e===`failed`?`error`:e===`killed`?`warning`:void 0,dimColor:!0,children:[`(`,t??e,n,`)`]})}function Kt({shell:e}){switch(e.status){case`completed`:return(0,z.jsx)(R,{status:`completed`,label:`done`});case`failed`:return(0,z.jsx)(R,{status:`failed`,label:`error`});case`killed`:return(0,z.jsx)(R,{status:`killed`,label:`stopped`});case`running`:case`pending`:return(0,z.jsx)(R,{status:`running`})}}var z,qt=t((()=>{g(),z=v()}));function Jt({task:e,maxActivityWidth:t}){let n=t??40;switch(e.type){case`local_bash`:return(0,B.jsxs)(d,{children:[k(e.kind===`monitor`?e.description:e.command,n,!0),` `,(0,B.jsx)(Kt,{shell:e})]});case`remote_agent`:return e.isRemoteReview?(0,B.jsx)(d,{children:(0,B.jsx)(Ht,{session:e})}):(0,B.jsxs)(d,{children:[(0,B.jsxs)(d,{dimColor:!0,children:[e.status===`running`||e.status===`pending`?`◇`:`◆`,` `]}),k(e.title,n,!0),(0,B.jsx)(d,{dimColor:!0,children:` · `}),(0,B.jsx)(Ht,{session:e})]});case`local_agent`:return(0,B.jsxs)(d,{children:[k(e.description,n,!0),` `,(0,B.jsx)(R,{status:e.status,label:e.status===`completed`?`done`:void 0,suffix:e.status===`completed`&&!e.notified?`, unread`:void 0})]});case`in_process_teammate`:{let t=Mt(e);return(0,B.jsxs)(d,{children:[(0,B.jsxs)(d,{color:_e(e.identity.color),children:[`@`,e.identity.agentName]}),(0,B.jsxs)(d,{dimColor:!0,children:[`: `,k(t,n,!0)]})]})}case`local_workflow`:{let t=e;return(0,B.jsxs)(d,{children:[k(t.workflowName??e.summary??e.description,n,!0),` `,(0,B.jsx)(R,{status:e.status,label:e.status===`running`?`${t.agentCount} ${b(t.agentCount,`agent`)}`:e.status===`completed`?`done`:void 0,suffix:e.status===`completed`&&!e.notified?`, unread`:void 0})]})}case`monitor_mcp`:return(0,B.jsxs)(d,{children:[k(e.description,n,!0),` `,(0,B.jsx)(R,{status:e.status,label:e.status===`completed`?`done`:void 0,suffix:e.status===`completed`&&!e.notified?`, unread`:void 0})]});case`dream`:{let t=e.filesTouched.length,n=e.phase===`updating`&&t>0?`${t} ${b(t,`file`)}`:`${e.sessionsReviewing} ${b(e.sessionsReviewing,`session`)}`;return(0,B.jsxs)(d,{children:[e.description,` `,(0,B.jsxs)(d,{dimColor:!0,children:[`· `,e.phase,` · `,n]}),` `,(0,B.jsx)(R,{status:e.status,label:e.status===`completed`?`done`:void 0,suffix:e.status===`completed`&&!e.notified?`, unread`:void 0})]})}}}var B,Yt=t((()=>{l(),g(),me(),j(),x(),y(),Gt(),qt(),Pt(),B=v()}));function Xt({task:e,onDone:t,onBack:n,onKill:r}){let i=N(e.startTime,e.status===`running`,1e3,0);h({"confirm:yes":t},{context:`Confirmation`});let a=i=>{i.key===` `?(i.preventDefault(),t()):i.key===`left`&&n?(i.preventDefault(),n()):i.key===`x`&&e.status===`running`&&r&&(i.preventDefault(),r())},o=e.turns.filter(e=>e.text!==``),s=o.slice(-Zt),c=o.length-s.length;return(0,V.jsx)(_,{flexDirection:`column`,tabIndex:0,autoFocus:!0,onKeyDown:a,children:(0,V.jsx)(f,{title:`Memory consolidation`,subtitle:(0,V.jsxs)(d,{dimColor:!0,children:[i,` · reviewing `,e.sessionsReviewing,` `,b(e.sessionsReviewing,`session`),e.filesTouched.length>0&&(0,V.jsxs)(V.Fragment,{children:[` `,`· `,e.filesTouched.length,` `,b(e.filesTouched.length,`file`),` touched`]})]}),onCancel:t,color:`background`,inputGuide:t=>t.pending?(0,V.jsxs)(d,{children:[`Press `,t.keyName,` again to exit`]}):(0,V.jsxs)(m,{children:[n&&(0,V.jsx)(p,{shortcut:`←`,action:`go back`}),(0,V.jsx)(p,{shortcut:`Esc/Enter/Space`,action:`close`}),e.status===`running`&&r&&(0,V.jsx)(p,{shortcut:`x`,action:`stop`})]}),children:(0,V.jsxs)(_,{flexDirection:`column`,gap:1,children:[(0,V.jsxs)(d,{children:[(0,V.jsx)(d,{bold:!0,children:`Status:`}),` `,e.status===`running`?(0,V.jsx)(d,{color:`background`,children:`running`}):e.status===`completed`?(0,V.jsx)(d,{color:`success`,children:e.status}):(0,V.jsx)(d,{color:`error`,children:e.status})]}),s.length===0?(0,V.jsx)(d,{dimColor:!0,children:e.status===`running`?`Starting…`:`(no text output)`}):(0,V.jsxs)(V.Fragment,{children:[c>0&&(0,V.jsxs)(d,{dimColor:!0,children:[`(`,c,` earlier `,b(c,`turn`),`)`]}),s.map((e,t)=>(0,V.jsxs)(_,{flexDirection:`column`,children:[(0,V.jsx)(d,{wrap:`wrap`,children:e.text}),e.toolUseCount>0&&(0,V.jsxs)(d,{dimColor:!0,children:[` `,`(`,e.toolUseCount,` `,b(e.toolUseCount,`tool`),`)`]})]},t))]})]})})})}var V,Zt,Qt=t((()=>{l(),P(),g(),F(),x(),V=v(),Zt=6}));function $t({teammate:e,onDone:t,onKill:n,onBack:r,onForeground:i}){let[a]=u(),o=(0,en.useMemo)(()=>ye(st()),[]),s=N(e.startTime,e.status===`running`,1e3,e.totalPausedMs??0);h({"confirm:yes":t},{context:`Confirmation`});let c=a=>{a.key===` `?(a.preventDefault(),t()):a.key===`left`&&r?(a.preventDefault(),r()):a.key===`x`&&e.status===`running`&&n?(a.preventDefault(),n()):a.key===`f`&&e.status===`running`&&i&&(a.preventDefault(),i())},l=Mt(e),g=e.result?.totalTokens??e.progress?.tokenCount,v=e.result?.totalToolUseCount??e.progress?.toolUseCount,y=A(e.prompt,300);return(0,H.jsx)(_,{flexDirection:`column`,tabIndex:0,autoFocus:!0,onKeyDown:c,children:(0,H.jsxs)(f,{title:(0,H.jsxs)(d,{children:[(0,H.jsxs)(d,{color:_e(e.identity.color),children:[`@`,e.identity.agentName]}),l&&(0,H.jsxs)(d,{dimColor:!0,children:[` (`,l,`)`]})]}),subtitle:(0,H.jsxs)(d,{children:[e.status!==`running`&&(0,H.jsxs)(d,{color:e.status===`completed`?`success`:e.status===`killed`?`warning`:`error`,children:[e.status===`completed`?`Completed`:e.status===`failed`?`Failed`:`Stopped`,` · `]}),(0,H.jsxs)(d,{dimColor:!0,children:[s,g!==void 0&&g>0&&(0,H.jsxs)(H.Fragment,{children:[` · `,ae(g),` tokens`]}),v!==void 0&&v>0&&(0,H.jsxs)(H.Fragment,{children:[` `,`· `,v,` `,v===1?`tool`:`tools`]})]})]}),onCancel:t,color:`background`,inputGuide:t=>t.pending?(0,H.jsxs)(d,{children:[`Press `,t.keyName,` again to exit`]}):(0,H.jsxs)(m,{children:[r&&(0,H.jsx)(p,{shortcut:`←`,action:`go back`}),(0,H.jsx)(p,{shortcut:`Esc/Enter/Space`,action:`close`}),e.status===`running`&&n&&(0,H.jsx)(p,{shortcut:`x`,action:`stop`}),e.status===`running`&&i&&(0,H.jsx)(p,{shortcut:`f`,action:`foreground`})]}),children:[e.status===`running`&&e.progress?.recentActivities&&e.progress.recentActivities.length>0&&(0,H.jsxs)(_,{flexDirection:`column`,children:[(0,H.jsx)(d,{bold:!0,dimColor:!0,children:`Progress`}),e.progress.recentActivities.map((t,n)=>(0,H.jsxs)(d,{dimColor:n<e.progress.recentActivities.length-1,wrap:`truncate-end`,children:[n===e.progress.recentActivities.length-1?`› `:` `,Et(t,o,a)]},n))]}),(0,H.jsxs)(_,{flexDirection:`column`,marginTop:1,children:[(0,H.jsx)(d,{bold:!0,dimColor:!0,children:`Prompt`}),(0,H.jsx)(d,{wrap:`wrap`,children:y})]}),e.status===`failed`&&e.error&&(0,H.jsxs)(_,{flexDirection:`column`,marginTop:1,children:[(0,H.jsx)(d,{bold:!0,color:`error`,children:`Error`}),(0,H.jsx)(d,{color:`error`,wrap:`wrap`,children:e.error})]})]})})}var en,H,tn=t((()=>{en=n(l(),1),P(),g(),F(),ct(),Qe(),j(),me(),Ot(),Pt(),H=v()}));function nn(e,t){if(e===`ExitPlanMode`)return`Review the plan in Claude Code on the web`;if(!t||typeof t!=`object`)return e;if(e===`AskUserQuestion`&&`questions`in t){let e=t.questions;if(Array.isArray(e)&&e[0]&&typeof e[0]==`object`){let t=`question`in e[0]&&typeof e[0].question==`string`&&e[0].question?e[0].question:`header`in e[0]&&typeof e[0].header==`string`?e[0].header:null;if(t)return`Answer in browser: ${A(t.replace(/\s+/g,` `).trim(),50)}`}}for(let n of Object.values(t))if(typeof n==`string`&&n.trim())return`${e} ${A(n.replace(/\s+/g,` `).trim(),60)}`;return e}function rn({session:e,onDone:t,onBack:n,onKill:r}){let i=e.status===`running`||e.status===`pending`,o=e.ultraplanPhase,s=i?o?ln[o]:`running`:e.status,l=N(e.startTime,i,1e3,0,e.endTime),{agentsWorking:u,toolCalls:p,lastToolCall:m}=(0,U.useMemo)(()=>{let t=0,n=0,r=null;for(let i of e.log){if(i.type!==`assistant`)continue;let e=i.message?.content??[];for(let i of e)i.type===`tool_use`&&(n++,r=i,(i.name===`Agent`||i.name===`Task`)&&t++)}return{agentsWorking:1+t,toolCalls:n,lastToolCall:r?nn(r.name,r.input):null}},[e.log]),h=Fe(e.sessionId),g=n??(()=>t(`Remote session details dismissed`,{display:`system`})),[v,y]=(0,U.useState)(!1);return v?(0,W.jsx)(f,{title:`Stop ultraplan?`,onCancel:()=>y(!1),color:`background`,children:(0,W.jsxs)(_,{flexDirection:`column`,gap:1,children:[(0,W.jsx)(d,{dimColor:!0,children:`This will terminate the Claude Code on the web session.`}),(0,W.jsx)(Ke,{options:[{label:`Terminate session`,value:`stop`},{label:`Back`,value:`back`}],onChange:e=>{e===`stop`?(r?.(),g()):y(!1)}})]})}):(0,W.jsx)(f,{title:(0,W.jsxs)(d,{children:[(0,W.jsxs)(d,{color:`background`,children:[o===`plan_ready`?`◆`:`◇`,` `]}),(0,W.jsx)(d,{bold:!0,children:`ultraplan`}),(0,W.jsxs)(d,{dimColor:!0,children:[` · `,l,` · `,s]})]}),onCancel:g,color:`background`,children:(0,W.jsxs)(_,{flexDirection:`column`,gap:1,children:[(0,W.jsxs)(d,{children:[o===`plan_ready`&&(0,W.jsxs)(d,{color:`success`,children:[a.tick,` `]}),u,` `,b(u,`agent`),` `,o?un[o]:`working`,` · `,p,` tool`,` `,b(p,`call`)]}),m&&(0,W.jsx)(d,{dimColor:!0,children:m}),(0,W.jsx)(c,{url:h,children:(0,W.jsx)(d,{dimColor:!0,children:h})}),(0,W.jsx)(Ke,{options:[{label:`Review in Claude Code on the web`,value:`open`},...r&&i?[{label:`Stop ultraplan`,value:`stop`}]:[],{label:`Back`,value:`back`}],onChange:e=>{switch(e){case`open`:ft(h),t();return;case`stop`:y(!0);return;case`back`:g();return}}})]})})}function an({stage:e,completed:t,hasProgress:n}){let r=e?dn.indexOf(e):-1,i=!t&&!n;return(0,W.jsxs)(d,{children:[i?(0,W.jsx)(d,{color:`background`,children:`Setup`}):(0,W.jsx)(d,{dimColor:!0,children:`Setup`}),(0,W.jsx)(d,{dimColor:!0,children:` → `}),dn.map((e,n)=>{let a=!t&&!i&&n===r;return(0,W.jsxs)(U.Fragment,{children:[n>0&&(0,W.jsx)(d,{dimColor:!0,children:` → `}),a?(0,W.jsx)(d,{color:`background`,children:fn[e]}):(0,W.jsx)(d,{dimColor:!0,children:fn[e]})]},e)}),t&&(0,W.jsx)(d,{color:`success`,children:` ✓`})]})}function on(e){let t=e.reviewProgress;if(!t)return e.status===`completed`?`done`:`setting up`;let n=t.bugsVerified,r=t.bugsRefuted??0;if(e.status===`completed`){let e=[`${n} ${b(n,`finding`)}`];return r>0&&e.push(`${r} refuted`),e.join(` · `)}return Rt(t.stage,t.bugsFound,n,r)}function sn({session:e,onDone:t,onBack:n,onKill:r}){let i=e.status===`completed`,a=e.status===`running`||e.status===`pending`,[o,s]=(0,U.useState)(!1),l=N(e.startTime,a,1e3,0,e.endTime),u=()=>t(`Remote session details dismissed`,{display:`system`}),h=n??u,g=Fe(e.sessionId),v=i?`ready`:a?`running`:e.status;if(o)return(0,W.jsx)(f,{title:`Stop ultrareview?`,onCancel:()=>s(!1),color:`background`,children:(0,W.jsxs)(_,{flexDirection:`column`,gap:1,children:[(0,W.jsx)(d,{dimColor:!0,children:`This archives the remote session and stops local tracking. The review will not complete and any findings so far are discarded.`}),(0,W.jsx)(Ke,{options:[{label:`Stop ultrareview`,value:`stop`},{label:`Back`,value:`back`}],onChange:e=>{e===`stop`?(r?.(),h()):s(!1)}})]})});let y=i?[{label:`Open in Claude Code on the web`,value:`open`},{label:`Dismiss`,value:`dismiss`}]:[{label:`Open in Claude Code on the web`,value:`open`},...r&&a?[{label:`Stop ultrareview`,value:`stop`}]:[],{label:`Back`,value:`back`}];return(0,W.jsx)(f,{title:(0,W.jsxs)(d,{children:[(0,W.jsxs)(d,{color:`background`,children:[i?`◆`:`◇`,` `]}),(0,W.jsx)(d,{bold:!0,children:`ultrareview`}),(0,W.jsxs)(d,{dimColor:!0,children:[` · `,l,` · `,v]})]}),onCancel:h,color:`background`,inputGuide:e=>e.pending?(0,W.jsxs)(d,{children:[`Press `,e.keyName,` again to exit`]}):(0,W.jsxs)(m,{children:[(0,W.jsx)(p,{shortcut:`Enter`,action:`select`}),(0,W.jsx)(p,{shortcut:`Esc`,action:`go back`})]}),children:(0,W.jsxs)(_,{flexDirection:`column`,gap:1,children:[(0,W.jsx)(an,{stage:e.reviewProgress?.stage,completed:i,hasProgress:!!e.reviewProgress}),(0,W.jsxs)(_,{flexDirection:`column`,children:[(0,W.jsx)(d,{children:on(e)}),(0,W.jsx)(c,{url:g,children:(0,W.jsx)(d,{dimColor:!0,children:g})})]}),(0,W.jsx)(Ke,{options:y,onChange:e=>{switch(e){case`open`:ft(g),t();break;case`stop`:s(!0);break;case`back`:h();break;case`dismiss`:u();break}}})]})})}function cn({session:e,toolUseContext:t,onDone:n,onBack:r,onKill:i}){let[a,o]=(0,U.useState)(!1),[s,l]=(0,U.useState)(null),u=(0,U.useMemo)(()=>e.isUltraplan||e.isRemoteReview?[]:he(_t(e.log)).filter(e=>e.type!==`progress`).slice(-3),[e]);if(e.isUltraplan)return(0,W.jsx)(rn,{session:e,onDone:n,onBack:r,onKill:i});if(e.isRemoteReview)return(0,W.jsx)(sn,{session:e,onDone:n,onBack:r,onKill:i});let h=()=>n(`Remote session details dismissed`,{display:`system`}),g=e=>{e.key===` `?(e.preventDefault(),n(`Remote session details dismissed`,{display:`system`})):e.key===`left`&&r?(e.preventDefault(),r()):e.key===`t`&&!a?(e.preventDefault(),v()):e.key===`return`&&(e.preventDefault(),h())};async function v(){o(!0),l(null);try{await Ye(e.sessionId)}catch(e){l(C(e))}finally{o(!1)}}let y=A(e.title,50),b=e.status===`pending`?`starting`:e.status;return(0,W.jsx)(_,{flexDirection:`column`,tabIndex:0,autoFocus:!0,onKeyDown:g,children:(0,W.jsxs)(f,{title:`Remote session details`,onCancel:h,color:`background`,inputGuide:e=>e.pending?(0,W.jsxs)(d,{children:[`Press `,e.keyName,` again to exit`]}):(0,W.jsxs)(m,{children:[r&&(0,W.jsx)(p,{shortcut:`←`,action:`go back`}),(0,W.jsx)(p,{shortcut:`Esc/Enter/Space`,action:`close`}),!a&&(0,W.jsx)(p,{shortcut:`t`,action:`teleport`})]}),children:[(0,W.jsxs)(_,{flexDirection:`column`,children:[(0,W.jsxs)(d,{children:[(0,W.jsx)(d,{bold:!0,children:`Status`}),`:`,` `,b===`running`||b===`starting`?(0,W.jsx)(d,{color:`background`,children:b}):b===`completed`?(0,W.jsx)(d,{color:`success`,children:b}):(0,W.jsx)(d,{color:`error`,children:b})]}),(0,W.jsxs)(d,{children:[(0,W.jsx)(d,{bold:!0,children:`Runtime`}),`: `,re((e.endTime??Date.now())-e.startTime)]}),(0,W.jsxs)(d,{wrap:`truncate-end`,children:[(0,W.jsx)(d,{bold:!0,children:`Title`}),`: `,y]}),(0,W.jsxs)(d,{children:[(0,W.jsx)(d,{bold:!0,children:`Progress`}),`: `,(0,W.jsx)(Ht,{session:e})]}),(0,W.jsxs)(d,{children:[(0,W.jsx)(d,{bold:!0,children:`Session URL`}),`:`,` `,(0,W.jsx)(c,{url:Fe(e.sessionId),children:(0,W.jsx)(d,{dimColor:!0,children:Fe(e.sessionId)})})]})]}),e.log.length>0&&(0,W.jsxs)(_,{flexDirection:`column`,marginTop:1,children:[(0,W.jsxs)(d,{children:[(0,W.jsx)(d,{bold:!0,children:`Recent messages`}),`:`]}),(0,W.jsx)(_,{flexDirection:`column`,height:10,overflowY:`hidden`,children:u.map((e,n)=>(0,W.jsx)(fe,{message:e,lookups:ve,addMargin:n>0,tools:t.options.tools,commands:t.options.commands,verbose:t.options.verbose,inProgressToolUseIDs:new Set,progressMessagesForMessage:[],shouldAnimate:!1,shouldShowDot:!1,style:`condensed`,isTranscriptMode:!1,isStatic:!0},n))}),(0,W.jsx)(_,{marginTop:1,children:(0,W.jsxs)(d,{dimColor:!0,italic:!0,children:[`Showing last `,u.length,` of `,e.log.length,` messages`]})})]}),s&&(0,W.jsx)(_,{marginTop:1,children:(0,W.jsxs)(d,{color:`error`,children:[`Teleport failed: `,s]})}),a&&(0,W.jsx)(d,{color:`background`,children:`Teleporting to session…`})]})})}var U,W,ln,un,dn,fn,pn=t((()=>{i(),U=n(l(),1),y(),P(),g(),Ie(),S(),lt(),ut(),pt(),w(),j(),vt(),be(),x(),Be(),se(),Te(),Gt(),W=v(),ln={needs_input:`input required`,plan_ready:`ready`},un={needs_input:`waiting`,plan_ready:`done`},dn=[`finding`,`verifying`,`synthesizing`],fn={finding:`Find`,verifying:`Verify`,synthesizing:`Dedupe`}}));async function mn(e){let t=M(e.id);try{let e=await T(t,_n);return{content:e.content,bytesTotal:e.bytesTotal}}catch{return{content:``,bytesTotal:0}}}function hn({shell:e,onDone:t,onKillShell:n,onBack:r}){let{columns:i}=s(),[a,o]=(0,G.useState)(()=>mn(e)),c=(0,G.useDeferredValue)(a);(0,G.useEffect)(()=>{if(e.status!==`running`)return;let t=setInterval((e,t)=>e(mn(t)),1e3,o,e);return()=>clearInterval(t)},[e.id,e.status]);let l=()=>t(`Shell details dismissed`,{display:`system`});h({"confirm:yes":l},{context:`Confirmation`});let u=i=>{i.key===` `?(i.preventDefault(),t(`Shell details dismissed`,{display:`system`})):i.key===`left`&&r?(i.preventDefault(),r()):i.key===`x`&&e.status===`running`&&n&&(i.preventDefault(),n())},g=e.kind===`monitor`,v=A(e.command,280);return(0,K.jsx)(_,{flexDirection:`column`,tabIndex:0,autoFocus:!0,onKeyDown:u,children:(0,K.jsxs)(f,{title:g?`Monitor details`:`Shell details`,onCancel:l,color:`background`,inputGuide:t=>t.pending?(0,K.jsxs)(d,{children:[`Press `,t.keyName,` again to exit`]}):(0,K.jsxs)(m,{children:[r&&(0,K.jsx)(p,{shortcut:`←`,action:`go back`}),(0,K.jsx)(p,{shortcut:`Esc/Enter/Space`,action:`close`}),e.status===`running`&&n&&(0,K.jsx)(p,{shortcut:`x`,action:`stop`})]}),children:[(0,K.jsxs)(_,{flexDirection:`column`,children:[(0,K.jsxs)(d,{children:[(0,K.jsx)(d,{bold:!0,children:`Status:`}),` `,e.status===`running`?(0,K.jsxs)(d,{color:`background`,children:[e.status,e.result?.code!==void 0&&` (exit code: ${e.result.code})`]}):e.status===`completed`?(0,K.jsxs)(d,{color:`success`,children:[e.status,e.result?.code!==void 0&&` (exit code: ${e.result.code})`]}):(0,K.jsxs)(d,{color:`error`,children:[e.status,e.result?.code!==void 0&&` (exit code: ${e.result.code})`]})]}),(0,K.jsxs)(d,{children:[(0,K.jsx)(d,{bold:!0,children:`Runtime:`}),` `,re((e.endTime??Date.now())-e.startTime)]}),(0,K.jsxs)(d,{wrap:`wrap`,children:[(0,K.jsx)(d,{bold:!0,children:g?`Script:`:`Command:`}),` `,v]})]}),(0,K.jsxs)(_,{flexDirection:`column`,children:[(0,K.jsx)(d,{bold:!0,children:`Output:`}),(0,K.jsx)(G.Suspense,{fallback:(0,K.jsx)(d,{dimColor:!0,children:`Loading output…`}),children:(0,K.jsx)(gn,{outputPromise:c,columns:i})})]})]})})}function gn({outputPromise:e,columns:t}){let{content:n,bytesTotal:r}=(0,G.use)(e);if(!n)return(0,K.jsx)(d,{dimColor:!0,children:`No output available`});let i=[],a=n.length;for(let e=0;e<10&&a>0;e++){let e=n.lastIndexOf(`
2
+ `,a-1);i.push(e+1),a=e}i.reverse();let o=r>n.length,s=[];for(let e=0;e<i.length;e++){let t=i[e],r=e<i.length-1?i[e+1]-1:n.length,a=n.slice(t,r);a&&s.push(a)}return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(_,{borderStyle:`round`,paddingX:1,flexDirection:`column`,height:12,maxWidth:t-6,children:s.map((e,t)=>(0,K.jsx)(d,{wrap:`truncate-end`,children:e},t))}),(0,K.jsxs)(d,{dimColor:!0,italic:!0,children:[`Showing ${s.length} lines`,o?` of ${ie(r)}`:``]})]})}var G,K,_n,vn=t((()=>{G=n(l(),1),ot(),g(),F(),j(),ee(),Se(),K=v(),_n=8192})),yn=t((()=>{g()})),bn=t((()=>{g()})),xn=r({WorkflowDetailDialog:()=>Sn});function Sn({workflow:e,onDone:t,onKill:n,onSkipAgent:r,onRetryAgent:i,onBack:a}){let o=N(e.startTime,e.status===`running`,1e3,0);return h({},{context:`WorkflowDetail`}),(0,q.jsx)(_,{flexDirection:`column`,tabIndex:0,borderStyle:`round`,onKeyDown:(0,Cn.useCallback)(t=>{t.key===`left`&&a?(t.preventDefault(),a()):t.key===`x`&&e.status===`running`&&n&&(t.preventDefault(),n())},[a,n,e.status]),children:(0,q.jsx)(f,{title:`Workflow`,subtitle:(0,q.jsxs)(d,{dimColor:!0,children:[o,` · `,e.workflowName]}),onCancel:a??(()=>{}),inputGuide:()=>(0,q.jsxs)(m,{children:[a&&(0,q.jsx)(p,{shortcut:`←`,action:`go back`}),(0,q.jsx)(p,{shortcut:`Esc`,action:`close`}),e.status===`running`&&n&&(0,q.jsx)(p,{shortcut:`x`,action:`stop`})]}),children:(0,q.jsxs)(_,{flexDirection:`column`,gap:1,children:[(0,q.jsxs)(d,{children:[(0,q.jsx)(d,{bold:!0,children:`Status:`}),` `,e.status===`running`?(0,q.jsx)(d,{color:`ansi:green`,children:`running`}):e.status===`completed`?(0,q.jsx)(d,{color:`ansi:green`,children:e.status}):(0,q.jsx)(d,{color:`ansi:red`,children:e.status})]}),(0,q.jsxs)(d,{children:[(0,q.jsx)(d,{bold:!0,children:`Description:`}),` `,e.description]}),(0,q.jsxs)(d,{children:[(0,q.jsx)(d,{bold:!0,children:`Workflow:`}),` `,e.workflowName]}),(0,q.jsxs)(d,{children:[(0,q.jsx)(d,{bold:!0,children:`File:`}),` `,e.workflowFile]}),e.summary&&(0,q.jsxs)(d,{children:[(0,q.jsx)(d,{bold:!0,children:`Summary:`}),` `,e.summary]}),e.output&&(0,q.jsxs)(_,{flexDirection:`column`,children:[(0,q.jsx)(d,{bold:!0,children:`Output:`}),(0,q.jsx)(d,{dimColor:!0,children:e.output})]})]})})})}var Cn,q,wn=t((()=>{Cn=n(l(),1),P(),g(),F(),yn(),gt(),bn(),q=v()})),Tn=r({MonitorMcpDetailDialog:()=>En});function En({task:e,onBack:t,onKill:n}){let r=N(e.startTime,e.status===`running`,1e3,0);return h({},{context:`MonitorMcpDetail`}),(0,J.jsx)(_,{flexDirection:`column`,tabIndex:0,borderStyle:`round`,onKeyDown:r=>{r.key===`left`&&t?(r.preventDefault(),t()):r.key===`x`&&e.status===`running`&&n&&(r.preventDefault(),n())},children:(0,J.jsx)(f,{title:`MCP Monitor`,subtitle:(0,J.jsxs)(d,{dimColor:!0,children:[r,` · `,e.serverName,`:`,e.resourceUri]}),onCancel:t??(()=>{}),inputGuide:()=>(0,J.jsxs)(m,{children:[t&&(0,J.jsx)(p,{shortcut:`←`,action:`go back`}),(0,J.jsx)(p,{shortcut:`Esc`,action:`close`}),e.status===`running`&&n&&(0,J.jsx)(p,{shortcut:`x`,action:`stop`})]}),children:(0,J.jsxs)(_,{flexDirection:`column`,gap:1,children:[(0,J.jsxs)(d,{children:[(0,J.jsx)(d,{bold:!0,children:`Status:`}),` `,e.status===`running`?(0,J.jsx)(d,{color:`ansi:green`,children:`running`}):e.status===`completed`?(0,J.jsx)(d,{color:`ansi:green`,children:e.status}):(0,J.jsx)(d,{color:`ansi:red`,children:e.status})]}),(0,J.jsxs)(d,{children:[(0,J.jsx)(d,{bold:!0,children:`Description:`}),` `,e.description]}),(0,J.jsxs)(d,{children:[(0,J.jsx)(d,{bold:!0,children:`Server:`}),` `,e.serverName]}),(0,J.jsxs)(d,{children:[(0,J.jsx)(d,{bold:!0,children:`Resource:`}),` `,e.resourceUri]}),e.command&&(0,J.jsxs)(d,{children:[(0,J.jsx)(d,{bold:!0,children:`Command:`}),` `,e.command]})]})})})}var J,Dn=t((()=>{l(),P(),g(),F(),yn(),gt(),bn(),J=v()}));function On(e,t){return Object.values(e??{}).filter(Ae).filter(e=>!(e.type===`local_agent`&&e.id===t))}function kn({onDone:e,toolUseContext:t,initialDetailTaskId:n}){let r=Oe(e=>e.tasks),i=Oe(e=>e.foregroundedTaskId),a=Oe(e=>e.expandedView)===`teammates`,o=ge(),s=oe(`chat:killAgents`,`Chat`,`ctrl+x ctrl+k`),c=r,l=(0,X.useRef)(!1),[u,g]=(0,X.useState)(()=>{if(n)return l.current=!0,{mode:`detail`,itemId:n};let e=On(c,i);return e.length===1?(l.current=!0,{mode:`detail`,itemId:e[0].id}):{mode:`list`}}),[v,y]=(0,X.useState)(0);ke(`background-tasks-dialog`);let{bashTasks:b,remoteSessions:x,agentTasks:S,teammateTasks:C,workflowTasks:w,mcpMonitors:T,dreamTasks:ee,allSelectableItems:E}=(0,X.useMemo)(()=>{let e=Object.values(c??{}).filter(Ae).map(An).sort((e,t)=>{let n=e.status,r=t.status;if(n===`running`&&r!==`running`)return-1;if(n!==`running`&&r===`running`)return 1;let i=`task`in e?e.task.startTime:0;return(`task`in t?t.task.startTime:0)-i}),t=e.filter(e=>e.type===`local_bash`),n=e.filter(e=>e.type===`remote_agent`),r=e.filter(e=>e.type===`local_agent`&&e.id!==i),o=e.filter(e=>e.type===`local_workflow`),s=e.filter(e=>e.type===`monitor_mcp`),l=e.filter(e=>e.type===`dream`),u=a?[]:e.filter(e=>e.type===`in_process_teammate`),d=u.length>0?[{id:`__leader__`,type:`leader`,label:`@${mt}`,status:`running`}]:[];return{bashTasks:t,remoteSessions:n,agentTasks:r,workflowTasks:o,mcpMonitors:s,dreamTasks:l,teammateTasks:[...d,...u],allSelectableItems:[...d,...u,...t,...s,...n,...r,...o,...l]}},[c,i,a]),D=E[v]??null;h({"confirm:previous":()=>y(e=>Math.max(0,e-1)),"confirm:next":()=>y(e=>Math.min(E.length-1,e+1)),"confirm:yes":()=>{let t=E[v];t&&(t.type===`leader`?(St(o),e(`Viewing leader`,{display:`system`})):g({mode:`detail`,itemId:t.id}))}},{context:`Confirmation`,isActive:u.mode===`list`});let ne=t=>{if(u.mode!==`list`)return;if(t.key===`left`){t.preventDefault(),e(`Background tasks dialog dismissed`,{display:`system`});return}let n=E[v];n&&(t.key===`x`&&(t.preventDefault(),n.type===`local_bash`&&n.status===`running`?k(n.id):n.type===`local_agent`&&n.status===`running`?A(n.id):n.type===`in_process_teammate`&&n.status===`running`?re(n.id):n.type===`local_workflow`&&n.status===`running`&&Q?Q(n.id,o):n.type===`monitor_mcp`&&n.status===`running`&&$?$(n.id,o):n.type===`dream`&&n.status===`running`?ie(n.id):n.type===`remote_agent`&&n.status===`running`&&(n.task.isUltraplan?Re(n.id,n.task.sessionId,o):ae(n.id))),t.key===`f`&&(n.type===`in_process_teammate`&&n.status===`running`?(t.preventDefault(),xt(n.id,o),e(`Viewing teammate`,{display:`system`})):n.type===`leader`&&(t.preventDefault(),St(o),e(`Viewing leader`,{display:`system`}))))};async function k(e){await Ve.kill(e,o)}async function A(e){await it.kill(e,o)}async function re(e){await at.kill(e,o)}async function ie(e){await et.kill(e,o)}async function ae(e){await Ze.kill(e,o)}let j=(0,X.useEffectEvent)(e);(0,X.useEffect)(()=>{if(u.mode!==`list`){let e=(c??{})[u.itemId];(!e||e.type!==`local_workflow`&&!Ae(e))&&(l.current?j(`Background tasks dialog dismissed`,{display:`system`}):g({mode:`list`}))}let e=E.length;v>=e&&e>0&&y(e-1)},[u,c,v,E,j]);let M=()=>{l.current&&E.length<=1?e(`Background tasks dialog dismissed`,{display:`system`}):(l.current=!1,g({mode:`list`}))};if(u.mode!==`list`&&c){let n=c[u.itemId];if(!n)return null;switch(n.type){case`local_bash`:return(0,Z.jsx)(hn,{shell:n,onDone:e,onKillShell:()=>void k(n.id),onBack:M},`shell-${n.id}`);case`local_agent`:return(0,Z.jsx)(Ft,{agent:n,onDone:e,onKillAgent:()=>void A(n.id),onBack:M},`agent-${n.id}`);case`remote_agent`:return(0,Z.jsx)(cn,{session:n,onDone:e,toolUseContext:t,onBack:M,onKill:n.status===`running`?n.isUltraplan?()=>void Re(n.id,n.sessionId,o):()=>void ae(n.id):void 0},`session-${n.id}`);case`in_process_teammate`:return(0,Z.jsx)($t,{teammate:n,onDone:e,onKill:n.status===`running`?()=>void re(n.id):void 0,onBack:M,onForeground:n.status===`running`?()=>{xt(n.id,o),e(`Viewing teammate`,{display:`system`})}:void 0},`teammate-${n.id}`);case`local_workflow`:return Mn?(0,Z.jsx)(Mn,{workflow:n,onDone:e,onKill:n.status===`running`&&Q?()=>Q(n.id,o):void 0,onSkipAgent:n.status===`running`&&Pn?e=>Pn(n.id,e,o):void 0,onRetryAgent:n.status===`running`&&Fn?e=>Fn(n.id,e,o):void 0,onBack:M},`workflow-${n.id}`):null;case`monitor_mcp`:return In?(0,Z.jsx)(In,{task:n,onKill:n.status===`running`&&$?()=>$(n.id,o):void 0,onBack:M},`monitor-mcp-${n.id}`):null;case`dream`:return(0,Z.jsx)(Xt,{task:n,onDone:()=>e(`Background tasks dialog dismissed`,{display:`system`}),onBack:M,onKill:n.status===`running`?()=>void ie(n.id):void 0},`dream-${n.id}`)}}let se=O(b,e=>e.status===`running`),ce=O(x,e=>e.status===`running`||e.status===`pending`)+O(S,e=>e.status===`running`),le=O(C,e=>e.status===`running`),ue=te([...le>0?[(0,Z.jsxs)(d,{children:[le,` `,le===1?`agent`:`agents`]},`teammates`)]:[],...se>0?[(0,Z.jsxs)(d,{children:[se,` `,se===1?`active shell`:`active shells`]},`shells`)]:[],...ce>0?[(0,Z.jsxs)(d,{children:[ce,` `,ce===1?`active agent`:`active agents`]},`agents`)]:[]],e=>(0,Z.jsx)(d,{children:` · `},`separator-${e}`)),de=[(0,Z.jsx)(p,{shortcut:`↑/↓`,action:`select`},`upDown`),(0,Z.jsx)(p,{shortcut:`Enter`,action:`view`},`enter`),...D?.type===`in_process_teammate`&&D.status===`running`?[(0,Z.jsx)(p,{shortcut:`f`,action:`foreground`},`foreground`)]:[],...(D?.type===`local_bash`||D?.type===`local_agent`||D?.type===`in_process_teammate`||D?.type===`local_workflow`||D?.type===`monitor_mcp`||D?.type===`dream`||D?.type===`remote_agent`)&&D.status===`running`?[(0,Z.jsx)(p,{shortcut:`x`,action:`stop`},`kill`)]:[],...S.some(e=>e.status===`running`)?[(0,Z.jsx)(p,{shortcut:s,action:`stop all agents`},`kill-all`)]:[],(0,Z.jsx)(p,{shortcut:`←/Esc`,action:`close`},`esc`)],fe=()=>e(`Background tasks dialog dismissed`,{display:`system`});function pe(e){return e.pending?(0,Z.jsxs)(d,{children:[`Press `,e.keyName,` again to exit`]}):(0,Z.jsx)(m,{children:de})}return(0,Z.jsx)(_,{flexDirection:`column`,tabIndex:0,autoFocus:!0,onKeyDown:ne,children:(0,Z.jsx)(f,{title:`Background tasks`,subtitle:(0,Z.jsx)(Z.Fragment,{children:ue}),onCancel:fe,color:`background`,inputGuide:pe,children:E.length===0?(0,Z.jsx)(d,{dimColor:!0,children:`No tasks currently running`}):(0,Z.jsxs)(_,{flexDirection:`column`,children:[C.length>0&&(0,Z.jsxs)(_,{flexDirection:`column`,children:[(b.length>0||x.length>0||S.length>0)&&(0,Z.jsxs)(d,{dimColor:!0,children:[(0,Z.jsxs)(d,{bold:!0,children:[` `,`Agents`]}),` (`,O(C,e=>e.type!==`leader`),`)`]}),(0,Z.jsx)(_,{flexDirection:`column`,children:(0,Z.jsx)(jn,{teammateTasks:C,currentSelectionId:D?.id})})]}),b.length>0&&(0,Z.jsxs)(_,{flexDirection:`column`,marginTop:+(C.length>0),children:[(C.length>0||x.length>0||S.length>0)&&(0,Z.jsxs)(d,{dimColor:!0,children:[(0,Z.jsxs)(d,{bold:!0,children:[` `,`Shells`]}),` (`,b.length,`)`]}),(0,Z.jsx)(_,{flexDirection:`column`,children:b.map(e=>(0,Z.jsx)(Y,{item:e,isSelected:e.id===D?.id},e.id))})]}),T.length>0&&(0,Z.jsxs)(_,{flexDirection:`column`,marginTop:+(C.length>0||b.length>0),children:[(0,Z.jsxs)(d,{dimColor:!0,children:[(0,Z.jsxs)(d,{bold:!0,children:[` `,`Monitors`]}),` (`,T.length,`)`]}),(0,Z.jsx)(_,{flexDirection:`column`,children:T.map(e=>(0,Z.jsx)(Y,{item:e,isSelected:e.id===D?.id},e.id))})]}),x.length>0&&(0,Z.jsxs)(_,{flexDirection:`column`,marginTop:+(C.length>0||b.length>0||T.length>0),children:[(0,Z.jsxs)(d,{dimColor:!0,children:[(0,Z.jsxs)(d,{bold:!0,children:[` `,`Remote agents`]}),` (`,x.length,`)`]}),(0,Z.jsx)(_,{flexDirection:`column`,children:x.map(e=>(0,Z.jsx)(Y,{item:e,isSelected:e.id===D?.id},e.id))})]}),S.length>0&&(0,Z.jsxs)(_,{flexDirection:`column`,marginTop:+(C.length>0||b.length>0||T.length>0||x.length>0),children:[(0,Z.jsxs)(d,{dimColor:!0,children:[(0,Z.jsxs)(d,{bold:!0,children:[` `,`Local agents`]}),` (`,S.length,`)`]}),(0,Z.jsx)(_,{flexDirection:`column`,children:S.map(e=>(0,Z.jsx)(Y,{item:e,isSelected:e.id===D?.id},e.id))})]}),w.length>0&&(0,Z.jsxs)(_,{flexDirection:`column`,marginTop:+(C.length>0||b.length>0||T.length>0||x.length>0||S.length>0),children:[(0,Z.jsxs)(d,{dimColor:!0,children:[(0,Z.jsxs)(d,{bold:!0,children:[` `,`Workflows`]}),` (`,w.length,`)`]}),(0,Z.jsx)(_,{flexDirection:`column`,children:w.map(e=>(0,Z.jsx)(Y,{item:e,isSelected:e.id===D?.id},e.id))})]}),ee.length>0&&(0,Z.jsx)(_,{flexDirection:`column`,marginTop:+(C.length>0||b.length>0||T.length>0||x.length>0||S.length>0||w.length>0),children:(0,Z.jsx)(_,{flexDirection:`column`,children:ee.map(e=>(0,Z.jsx)(Y,{item:e,isSelected:e.id===D?.id},e.id))})})]})})})}function An(e){switch(e.type){case`local_bash`:return{id:e.id,type:`local_bash`,label:e.kind===`monitor`?e.description:e.command,status:e.status,task:e};case`remote_agent`:return{id:e.id,type:`remote_agent`,label:e.title,status:e.status,task:e};case`local_agent`:return{id:e.id,type:`local_agent`,label:e.description,status:e.status,task:e};case`in_process_teammate`:return{id:e.id,type:`in_process_teammate`,label:`@${e.identity.agentName}`,status:e.status,task:e};case`local_workflow`:return{id:e.id,type:`local_workflow`,label:e.summary??e.description,status:e.status,task:e};case`monitor_mcp`:return{id:e.id,type:`monitor_mcp`,label:e.description,status:e.status,task:e};case`dream`:return{id:e.id,type:`dream`,label:e.description,status:e.status,task:e}}}function Y({item:e,isSelected:t}){let{columns:n}=s(),r=Math.max(30,n-26),i=Ue();return(0,Z.jsxs)(_,{flexDirection:`row`,children:[(0,Z.jsx)(d,{dimColor:i&&t,children:t?a.pointer+` `:` `}),(0,Z.jsx)(d,{color:t&&!i?`suggestion`:void 0,children:e.type===`leader`?(0,Z.jsxs)(d,{children:[`@`,mt]}):(0,Z.jsx)(Jt,{task:e.task,maxActivityWidth:r})})]})}function jn({teammateTasks:e,currentSelectionId:t}){let n=e.filter(e=>e.type===`leader`),r=e.filter(e=>e.type===`in_process_teammate`),i=new Map;for(let e of r){let t=e.task.identity.teamName,n=i.get(t);n?n.push(e):i.set(t,[e])}return(0,Z.jsx)(Z.Fragment,{children:[...i.entries()].map(([e,r])=>(0,Z.jsxs)(_,{flexDirection:`column`,children:[(0,Z.jsxs)(d,{dimColor:!0,children:[` `,`Team: `,e,` (`,r.length+n.length,`)`]}),n.map(n=>(0,Z.jsx)(Y,{item:n,isSelected:n.id===t},`${n.id}-${e}`)),r.map(e=>(0,Z.jsx)(Y,{item:e,isSelected:e.id===t},e.id))]},e))})}var X,Z,Mn,Nn,Q,Pn,Fn,$,In,Ln=t((()=>{i(),X=n(l(),1),tt(),ot(),Ce(),Tt(),He(),qe(),pe(),ce(),Ie(),we(),ne(),ht(),$e(),Ge(),g(),F(),je(),Lt(),Yt(),Qt(),tn(),pn(),vn(),Z=v(),Mn=(wn(),e(xn)).WorkflowDetailDialog,Nn=(Xe(),e(ze)),Q=Nn?.killWorkflowTask??null,Pn=Nn?.skipWorkflowAgent??null,Fn=Nn?.retryWorkflowAgent??null,$=(Le(),e(We))?.killMonitorMcp??null,In=(Dn(),e(Tn)).MonitorMcpDetailDialog}));export{Nt as a,Tt as c,kt as i,Ct as l,Ln as n,xt as o,Pt as r,St as s,kn as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-DR8-3Aex.js";import{J as t,Q as n,Rn as r,b as i,f as a,t as o,x as s}from"./src-Di342QoJ.js";import{t as c}from"./jsx-runtime-D-D469L8.js";import{lo as l,oo as u}from"./paths-1ngPRtu3.js";import{n as d,r as f}from"./analytics-DqMQntaB.js";import{JT as p,YT as m,kx as h,uy as g}from"./loadAgentsDir-D7kapZB5.js";var _=e(r(),1);d(),o(),m(),u(),g();var v=c();function y({onAccept:e}){let[r,o]=_.useState(null);_.useEffect(()=>{if(r!==null){let e=r,t=setTimeout(()=>p(e));return()=>clearTimeout(t)}},[r]),_.useEffect(()=>{f(`tengu_bypass_permissions_mode_dialog_shown`,{})},[]);function c(t){switch(t){case`accept`:f(`tengu_bypass_permissions_mode_dialog_accept`,{}),l(`userSettings`,{skipDangerousModePermissionPrompt:!0}),e();break;case`decline`:o(1);break}}let u=(0,_.useCallback)(()=>{o(0)},[]);return r===null?(0,v.jsxs)(a,{title:`WARNING: Claude Code running in Bypass Permissions mode`,color:`error`,onCancel:u,children:[(0,v.jsxs)(s,{flexDirection:`column`,gap:1,children:[(0,v.jsxs)(i,{children:[`In Bypass Permissions mode, Claude Code will not ask for your approval before running potentially dangerous commands.`,(0,v.jsx)(t,{}),`This mode should only be used in a sandboxed container/VM that has restricted internet access and can easily be restored if damaged.`]}),(0,v.jsx)(i,{children:`By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode.`}),(0,v.jsx)(n,{url:`https://code.claude.com/docs/en/security`})]}),(0,v.jsx)(h,{options:[{label:`No, exit`,value:`decline`},{label:`Yes, I accept`,value:`accept`}],onChange:e=>c(e)})]}):null}export{y as BypassPermissionsModeDialog};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-DR8-3Aex.js";import{J as t,Q as n,Rn as r,b as i,f as a,t as o,x as s,xt as c}from"./src-Di342QoJ.js";import{t as l}from"./jsx-runtime-D-D469L8.js";import{Ac as u,Pc as d}from"./paths-BBvuDQl9.js";import{n as f,r as p}from"./analytics-DqMQntaB.js";import{n as m,t as h}from"./setup-B1JbPepL.js";var g=e(r(),1);f(),o(),h(),u();var _=l(),v=`https://claude.ai/chrome`,y=`https://clau.de/chrome/permissions`;function b({onDone:e}){let[r,o]=g.useState(!1);return g.useEffect(()=>{p(`tengu_claude_in_chrome_onboarding_shown`,{}),m().then(o),d(e=>({...e,hasCompletedClaudeInChromeOnboarding:!0}))},[]),c((t,n)=>{n.return&&e()}),(0,_.jsx)(a,{title:`Claude in Chrome (Beta)`,onCancel:e,color:`chromeYellow`,children:(0,_.jsxs)(s,{flexDirection:`column`,gap:1,children:[(0,_.jsxs)(i,{children:[`Claude in Chrome works with the Chrome extension to let you control your browser directly from Claude Code. You can navigate websites, fill forms, capture screenshots, record GIFs, and debug with console logs and network requests.`,!r&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(t,{}),(0,_.jsx)(t,{}),`Requires the Chrome extension. Get started at `,(0,_.jsx)(n,{url:v})]})]}),(0,_.jsxs)(i,{dimColor:!0,children:[`Site-level permissions are inherited from the Chrome extension. Manage permissions in the Chrome extension settings to control which sites Claude can browse, click, and type on`,r&&(0,_.jsxs)(_.Fragment,{children:[` `,`(`,(0,_.jsx)(n,{url:y}),`)`]}),`.`]}),(0,_.jsxs)(i,{dimColor:!0,children:[`For more info, use`,` `,(0,_.jsx)(i,{bold:!0,color:`chromeYellow`,children:`/chrome`}),` `,`or visit `,(0,_.jsx)(n,{url:`https://code.claude.com/docs/en/chrome`})]})]})})}export{b as ClaudeInChromeOnboarding};
1
+ import{o as e}from"./chunk-DR8-3Aex.js";import{J as t,Q as n,Rn as r,b as i,f as a,t as o,x as s,xt as c}from"./src-Di342QoJ.js";import{t as l}from"./jsx-runtime-D-D469L8.js";import{Ac as u,Pc as d}from"./paths-1ngPRtu3.js";import{n as f,r as p}from"./analytics-DqMQntaB.js";import{n as m,t as h}from"./setup-BUBUidOg.js";var g=e(r(),1);f(),o(),h(),u();var _=l(),v=`https://claude.ai/chrome`,y=`https://clau.de/chrome/permissions`;function b({onDone:e}){let[r,o]=g.useState(!1);return g.useEffect(()=>{p(`tengu_claude_in_chrome_onboarding_shown`,{}),m().then(o),d(e=>({...e,hasCompletedClaudeInChromeOnboarding:!0}))},[]),c((t,n)=>{n.return&&e()}),(0,_.jsx)(a,{title:`Claude in Chrome (Beta)`,onCancel:e,color:`chromeYellow`,children:(0,_.jsxs)(s,{flexDirection:`column`,gap:1,children:[(0,_.jsxs)(i,{children:[`Claude in Chrome works with the Chrome extension to let you control your browser directly from Claude Code. You can navigate websites, fill forms, capture screenshots, record GIFs, and debug with console logs and network requests.`,!r&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(t,{}),(0,_.jsx)(t,{}),`Requires the Chrome extension. Get started at `,(0,_.jsx)(n,{url:v})]})]}),(0,_.jsxs)(i,{dimColor:!0,children:[`Site-level permissions are inherited from the Chrome extension. Manage permissions in the Chrome extension settings to control which sites Claude can browse, click, and type on`,r&&(0,_.jsxs)(_.Fragment,{children:[` `,`(`,(0,_.jsx)(n,{url:y}),`)`]}),`.`]}),(0,_.jsxs)(i,{dimColor:!0,children:[`For more info, use`,` `,(0,_.jsx)(i,{bold:!0,color:`chromeYellow`,children:`/chrome`}),` `,`or visit `,(0,_.jsx)(n,{url:`https://code.claude.com/docs/en/chrome`})]})]})})}export{b as ClaudeInChromeOnboarding};
@@ -1 +1 @@
1
- import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{Q as n,Rn as r,b as i,f as a,t as o,x as s}from"./src-Di342QoJ.js";import{t as c}from"./jsx-runtime-D-D469L8.js";import{Ac as l,Nc as u}from"./paths-BBvuDQl9.js";import{n as d,r as f}from"./analytics-DqMQntaB.js";import{Dx as p,cy as m}from"./loadAgentsDir-DI1a76pd.js";function h({onDone:e,isStandaloneDialog:t,externalIncludes:r}){g.useEffect(()=>{f(`tengu_claude_md_includes_dialog_shown`,{})},[]);let o=(0,g.useCallback)(t=>{t===`no`?(f(`tengu_claude_md_external_includes_dialog_declined`,{}),u(e=>({...e,hasClaudeMdExternalIncludesApproved:!1,hasClaudeMdExternalIncludesWarningShown:!0}))):(f(`tengu_claude_md_external_includes_dialog_accepted`,{}),u(e=>({...e,hasClaudeMdExternalIncludesApproved:!0,hasClaudeMdExternalIncludesWarningShown:!0}))),e()},[e]);return(0,_.jsxs)(a,{title:`Allow external CLAUDE.md file imports?`,color:`warning`,onCancel:(0,g.useCallback)(()=>{o(`no`)},[o]),hideBorder:!t,hideInputGuide:!t,children:[(0,_.jsx)(i,{children:`This project's CLAUDE.md imports files outside the current working directory. Never allow this for third-party repositories.`}),r&&r.length>0&&(0,_.jsxs)(s,{flexDirection:`column`,children:[(0,_.jsx)(i,{dimColor:!0,children:`External imports:`}),r.map((e,t)=>(0,_.jsxs)(i,{dimColor:!0,children:[` `,e.path]},t))]}),(0,_.jsxs)(i,{dimColor:!0,children:[`Important: Only use Claude Code with files you trust. Accessing untrusted files may pose security risks`,` `,(0,_.jsx)(n,{url:`https://code.claude.com/docs/en/security`}),` `]}),(0,_.jsx)(p,{options:[{label:`Yes, allow external imports`,value:`yes`},{label:`No, disable external imports`,value:`no`}],onChange:e=>o(e)})]})}var g,_,v=e((()=>{g=t(r(),1),d(),o(),l(),m(),_=c()}));export{v as n,h as t};
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{Q as n,Rn as r,b as i,f as a,t as o,x as s}from"./src-Di342QoJ.js";import{t as c}from"./jsx-runtime-D-D469L8.js";import{Ac as l,Nc as u}from"./paths-1ngPRtu3.js";import{n as d,r as f}from"./analytics-DqMQntaB.js";import{kx as p,uy as m}from"./loadAgentsDir-D7kapZB5.js";function h({onDone:e,isStandaloneDialog:t,externalIncludes:r}){g.useEffect(()=>{f(`tengu_claude_md_includes_dialog_shown`,{})},[]);let o=(0,g.useCallback)(t=>{t===`no`?(f(`tengu_claude_md_external_includes_dialog_declined`,{}),u(e=>({...e,hasClaudeMdExternalIncludesApproved:!1,hasClaudeMdExternalIncludesWarningShown:!0}))):(f(`tengu_claude_md_external_includes_dialog_accepted`,{}),u(e=>({...e,hasClaudeMdExternalIncludesApproved:!0,hasClaudeMdExternalIncludesWarningShown:!0}))),e()},[e]);return(0,_.jsxs)(a,{title:`Allow external CLAUDE.md file imports?`,color:`warning`,onCancel:(0,g.useCallback)(()=>{o(`no`)},[o]),hideBorder:!t,hideInputGuide:!t,children:[(0,_.jsx)(i,{children:`This project's CLAUDE.md imports files outside the current working directory. Never allow this for third-party repositories.`}),r&&r.length>0&&(0,_.jsxs)(s,{flexDirection:`column`,children:[(0,_.jsx)(i,{dimColor:!0,children:`External imports:`}),r.map((e,t)=>(0,_.jsxs)(i,{dimColor:!0,children:[` `,e.path]},t))]}),(0,_.jsxs)(i,{dimColor:!0,children:[`Important: Only use Claude Code with files you trust. Accessing untrusted files may pose security risks`,` `,(0,_.jsx)(n,{url:`https://code.claude.com/docs/en/security`}),` `]}),(0,_.jsx)(p,{options:[{label:`Yes, allow external imports`,value:`yes`},{label:`No, disable external imports`,value:`no`}],onChange:e=>o(e)})]})}var g,_,v=e((()=>{g=t(r(),1),d(),o(),l(),m(),_=c()}));export{v as n,h as t};
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./ClaudeMdExternalIncludesDialog-B04cjDwX.js";e();export{t as ClaudeMdExternalIncludesDialog};
@@ -0,0 +1 @@
1
+ import{my as e,py as t}from"./loadAgentsDir-D7kapZB5.js";e();export{t as ConsoleOAuthFlow};
@@ -1 +1 @@
1
- import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{t as n}from"./semver-Cq33BYay.js";import{Rn as r,b as i,l as a,t as o,x as s,xt as c}from"./src-Di342QoJ.js";import{t as l}from"./jsx-runtime-D-D469L8.js";import{Ct as u,cn as d}from"./state-sIHsFpDu.js";import{al as f,el as p}from"./paths-BBvuDQl9.js";import{L as m,V as h,d as g,s as _}from"./debug-UI3T040K.js";import{n as v,t as y}from"./cwd--iizewsn.js";import{r as b,t as x}from"./execFileNoThrow-CuQN1sz8.js";import{Ar as S,GT as C,qT as w,ur as T}from"./loadAgentsDir-DI1a76pd.js";import{n as E,t as D}from"./browser-fLRXxIsQ.js";import{n as O,r as k}from"./semver-Tw0AFar5.js";import{join as A}from"path";import{readdir as j}from"fs/promises";function M(){let e=[process.argv[1]||``,process.execPath||``],t=[`/build-ant/`,`/build-ant-native/`,`/build-external/`,`/build-external-native/`];return e.some(e=>t.some(t=>e.includes(t)))}function N(e){let t=M()?`claude-dev`:`claude`,n=new URL(`${t}://resume`);return n.searchParams.set(`session`,e),n.searchParams.set(`cwd`,y()),n.toString()}async function P(){if(M())return!0;let e=process.platform;if(e===`darwin`)return f(`/Applications/Claude.app`);if(e===`linux`){let{code:e,stdout:t}=await x(`xdg-mime`,[`query`,`default`,`x-scheme-handler/claude`]);return e===0&&t.trim().length>0}else if(e===`win32`){let{code:e}=await x(`reg`,[`query`,`HKEY_CLASSES_ROOT\\claude`,`/ve`]);return e===0}return!1}async function F(){let e=process.platform;if(e===`darwin`){let{code:e,stdout:t}=await x(`defaults`,[`read`,`/Applications/Claude.app/Contents/Info.plist`,`CFBundleShortVersionString`]);if(e!==0)return null;let n=t.trim();return n.length>0?n:null}else if(e===`win32`){let e=process.env.LOCALAPPDATA;if(!e)return null;let t=A(e,`AnthropicClaude`);try{let e=(await j(t)).filter(e=>e.startsWith(`app-`)).map(e=>e.slice(4)).filter(e=>(0,z.coerce)(e)!==null).sort((e,t)=>{let n=(0,z.coerce)(e),r=(0,z.coerce)(t);return n.compare(r)});return e.length>0?e[e.length-1]:null}catch{return null}}return null}async function I(){if(!await P())return{status:`not-installed`};let e;try{e=await F()}catch{return{status:`ready`,version:`unknown`}}if(!e)return{status:`ready`,version:`unknown`};let t=(0,z.coerce)(e);return!t||!O(t.version,B)?{status:`version-too-old`,version:e}:{status:`ready`,version:e}}async function L(e){let t=process.platform;if(g(`Opening deep link: ${e}`),t===`darwin`){if(M()){let{code:t}=await x(`osascript`,[`-e`,`tell application "Electron" to open location "${e}"`]);return t===0}let{code:t}=await x(`open`,[e]);return t===0}else if(t===`linux`){let{code:t}=await x(`xdg-open`,[e]);return t===0}else if(t===`win32`){let{code:t}=await x(`cmd`,[`/c`,`start`,``,e]);return t===0}return!1}async function R(){let e=u();if(!await P())return{success:!1,error:`Claude Desktop is not installed. Install it from https://claude.ai/download`};let t=N(e);return await L(t)?{success:!0,deepLinkUrl:t}:{success:!1,error:`Failed to open Claude Desktop. Please try opening it manually.`,deepLinkUrl:t}}var z,B,V=e((()=>{z=n(),d(),v(),_(),b(),p(),k(),B=`1.1.2396`}));function H(){switch(process.platform){case`win32`:return`https://claude.ai/api/desktop/win32/x64/exe/latest/redirect`;default:return`https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect`}}function U({onDone:e}){let[t,n]=(0,W.useState)(`checking`),[r,o]=(0,W.useState)(null),[l,u]=(0,W.useState)(``);return c(n=>{if(t===`error`){e(r??`Unknown error`,{display:`system`});return}t===`prompt-download`&&(n===`y`||n===`Y`?(E(H()).catch(()=>{}),e(`Starting download. Re-run /desktop once you\u2019ve installed the app.\nLearn more at ${K}`,{display:`system`})):(n===`n`||n===`N`)&&e(`The desktop app is required for /desktop. Learn more at ${K}`,{display:`system`}))}),(0,W.useEffect)(()=>{async function t(){n(`checking`);let t=await I();if(t.status===`not-installed`){u(`Claude Desktop is not installed.`),n(`prompt-download`);return}if(t.status===`version-too-old`){u(`Claude Desktop needs to be updated (found v${t.version}, need v1.1.2396+).`),n(`prompt-download`);return}n(`flushing`),await T(),n(`opening`);let r=await R();if(!r.success){o(r.error??`Failed to open Claude Desktop`),n(`error`);return}n(`success`),setTimeout(async e=>{e(`Session transferred to Claude Desktop`,{display:`system`}),await C(0,`other`)},500,e)}t().catch(e=>{o(m(e)),n(`error`)})},[e]),t===`error`?(0,G.jsxs)(s,{flexDirection:`column`,paddingX:2,children:[(0,G.jsxs)(i,{color:`error`,children:[`Error: `,r]}),(0,G.jsx)(i,{dimColor:!0,children:`Press any key to continue…`})]}):t===`prompt-download`?(0,G.jsxs)(s,{flexDirection:`column`,paddingX:2,children:[(0,G.jsx)(i,{children:l}),(0,G.jsx)(i,{children:`Download now? (y/n)`})]}):(0,G.jsx)(a,{message:{checking:`Checking for Claude Desktop…`,flushing:`Saving session…`,opening:`Opening Claude Desktop…`,success:`Opening in Claude Desktop…`}[t]})}var W,G,K,q=e((()=>{W=t(r(),1),o(),V(),D(),h(),w(),S(),G=l(),K=`https://clau.de/desktop`}));export{q as n,U as t};
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{t as n}from"./semver-Cq33BYay.js";import{Rn as r,b as i,l as a,t as o,x as s,xt as c}from"./src-Di342QoJ.js";import{t as l}from"./jsx-runtime-D-D469L8.js";import{Ct as u,cn as d}from"./state-sIHsFpDu.js";import{al as f,el as p}from"./paths-1ngPRtu3.js";import{L as m,V as h,d as g,s as _}from"./debug-UI3T040K.js";import{n as v,t as y}from"./cwd--iizewsn.js";import{r as b,t as x}from"./execFileNoThrow-CuQN1sz8.js";import{Ar as S,YT as C,qT as w,ur as T}from"./loadAgentsDir-D7kapZB5.js";import{n as E,t as D}from"./browser-fLRXxIsQ.js";import{n as O,r as k}from"./semver-Tw0AFar5.js";import{join as A}from"path";import{readdir as j}from"fs/promises";function M(){let e=[process.argv[1]||``,process.execPath||``],t=[`/build-ant/`,`/build-ant-native/`,`/build-external/`,`/build-external-native/`];return e.some(e=>t.some(t=>e.includes(t)))}function N(e){let t=M()?`claude-dev`:`claude`,n=new URL(`${t}://resume`);return n.searchParams.set(`session`,e),n.searchParams.set(`cwd`,y()),n.toString()}async function P(){if(M())return!0;let e=process.platform;if(e===`darwin`)return f(`/Applications/Claude.app`);if(e===`linux`){let{code:e,stdout:t}=await x(`xdg-mime`,[`query`,`default`,`x-scheme-handler/claude`]);return e===0&&t.trim().length>0}else if(e===`win32`){let{code:e}=await x(`reg`,[`query`,`HKEY_CLASSES_ROOT\\claude`,`/ve`]);return e===0}return!1}async function F(){let e=process.platform;if(e===`darwin`){let{code:e,stdout:t}=await x(`defaults`,[`read`,`/Applications/Claude.app/Contents/Info.plist`,`CFBundleShortVersionString`]);if(e!==0)return null;let n=t.trim();return n.length>0?n:null}else if(e===`win32`){let e=process.env.LOCALAPPDATA;if(!e)return null;let t=A(e,`AnthropicClaude`);try{let e=(await j(t)).filter(e=>e.startsWith(`app-`)).map(e=>e.slice(4)).filter(e=>(0,z.coerce)(e)!==null).sort((e,t)=>{let n=(0,z.coerce)(e),r=(0,z.coerce)(t);return n.compare(r)});return e.length>0?e[e.length-1]:null}catch{return null}}return null}async function I(){if(!await P())return{status:`not-installed`};let e;try{e=await F()}catch{return{status:`ready`,version:`unknown`}}if(!e)return{status:`ready`,version:`unknown`};let t=(0,z.coerce)(e);return!t||!O(t.version,B)?{status:`version-too-old`,version:e}:{status:`ready`,version:e}}async function L(e){let t=process.platform;if(g(`Opening deep link: ${e}`),t===`darwin`){if(M()){let{code:t}=await x(`osascript`,[`-e`,`tell application "Electron" to open location "${e}"`]);return t===0}let{code:t}=await x(`open`,[e]);return t===0}else if(t===`linux`){let{code:t}=await x(`xdg-open`,[e]);return t===0}else if(t===`win32`){let{code:t}=await x(`cmd`,[`/c`,`start`,``,e]);return t===0}return!1}async function R(){let e=u();if(!await P())return{success:!1,error:`Claude Desktop is not installed. Install it from https://claude.ai/download`};let t=N(e);return await L(t)?{success:!0,deepLinkUrl:t}:{success:!1,error:`Failed to open Claude Desktop. Please try opening it manually.`,deepLinkUrl:t}}var z,B,V=e((()=>{z=n(),d(),v(),_(),b(),p(),k(),B=`1.1.2396`}));function H(){switch(process.platform){case`win32`:return`https://claude.ai/api/desktop/win32/x64/exe/latest/redirect`;default:return`https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect`}}function U({onDone:e}){let[t,n]=(0,W.useState)(`checking`),[r,o]=(0,W.useState)(null),[l,u]=(0,W.useState)(``);return c(n=>{if(t===`error`){e(r??`Unknown error`,{display:`system`});return}t===`prompt-download`&&(n===`y`||n===`Y`?(E(H()).catch(()=>{}),e(`Starting download. Re-run /desktop once you\u2019ve installed the app.\nLearn more at ${K}`,{display:`system`})):(n===`n`||n===`N`)&&e(`The desktop app is required for /desktop. Learn more at ${K}`,{display:`system`}))}),(0,W.useEffect)(()=>{async function t(){n(`checking`);let t=await I();if(t.status===`not-installed`){u(`Claude Desktop is not installed.`),n(`prompt-download`);return}if(t.status===`version-too-old`){u(`Claude Desktop needs to be updated (found v${t.version}, need v1.1.2396+).`),n(`prompt-download`);return}n(`flushing`),await T(),n(`opening`);let r=await R();if(!r.success){o(r.error??`Failed to open Claude Desktop`),n(`error`);return}n(`success`),setTimeout(async e=>{e(`Session transferred to Claude Desktop`,{display:`system`}),await w(0,`other`)},500,e)}t().catch(e=>{o(m(e)),n(`error`)})},[e]),t===`error`?(0,G.jsxs)(s,{flexDirection:`column`,paddingX:2,children:[(0,G.jsxs)(i,{color:`error`,children:[`Error: `,r]}),(0,G.jsx)(i,{dimColor:!0,children:`Press any key to continue…`})]}):t===`prompt-download`?(0,G.jsxs)(s,{flexDirection:`column`,paddingX:2,children:[(0,G.jsx)(i,{children:l}),(0,G.jsx)(i,{children:`Download now? (y/n)`})]}):(0,G.jsx)(a,{message:{checking:`Checking for Claude Desktop…`,flushing:`Saving session…`,opening:`Opening Claude Desktop…`,success:`Opening in Claude Desktop…`}[t]})}var W,G,K,q=e((()=>{W=t(r(),1),o(),V(),D(),h(),C(),S(),G=l(),K=`https://clau.de/desktop`}));export{q as n,U as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-DR8-3Aex.js";import{Rn as t,b as n,f as r,t as i,x as a}from"./src-Di342QoJ.js";import{t as o}from"./jsx-runtime-D-D469L8.js";import{JT as s,YT as c,kx as l,uy as u}from"./loadAgentsDir-D7kapZB5.js";var d=e(t(),1);i(),c(),u();var f=o();function p({channels:e,onAccept:t}){let[i,o]=d.useState(null);d.useEffect(()=>{if(i!==null){let e=i,t=setTimeout(()=>s(e));return()=>clearTimeout(t)}},[i]);function c(e){switch(e){case`accept`:t();break;case`exit`:o(1);break}}let u=(0,d.useCallback)(()=>{o(0)},[]);return i===null?(0,f.jsxs)(r,{title:`WARNING: Loading development channels`,color:`error`,onCancel:u,children:[(0,f.jsxs)(a,{flexDirection:`column`,gap:1,children:[(0,f.jsx)(n,{children:`--dangerously-load-development-channels is for local channel development only. Do not use this option to run channels you have downloaded off the internet.`}),(0,f.jsx)(n,{children:`Please use --channels to run a list of approved channels.`}),(0,f.jsxs)(n,{dimColor:!0,children:[`Channels:`,` `,e.map(e=>e.kind===`plugin`?`plugin:${e.name}@${e.marketplace}`:`server:${e.name}`).join(`, `)]})]}),(0,f.jsx)(l,{options:[{label:`I am using this for local development`,value:`accept`},{label:`Exit`,value:`exit`}],onChange:e=>c(e)})]}):null}export{p as DevChannelsDialog};
@@ -0,0 +1,3 @@
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{n,t as r}from"./figures-gfT9mM8P.js";import{F as i,Rn as a,b as o,f as s,h as c,m as l,nt as u,t as d,x as f}from"./src-Di342QoJ.js";import{t as p}from"./jsx-runtime-D-D469L8.js";import{Po as m,el as h,jo as g,sl as _}from"./paths-1ngPRtu3.js";import{n as v,t as y}from"./cwd--iizewsn.js";import{T as b,x}from"./startupProfiler-DnXZaX4A.js";import{$p as S,$w as C,Px as ee,Qp as w,Qw as T,am as E,jx as D,om as O,sm as k,zw as A}from"./loadAgentsDir-D7kapZB5.js";import{t as j}from"./useKeybinding-FsOnjW6T.js";import{resolve as M}from"path";function N(){let[e,t]=(0,P.useState)(null),[n,r]=(0,P.useState)(new Map),[i,a]=(0,P.useState)(!0);return(0,P.useEffect)(()=>{let e=!1;async function n(){try{let[n,i]=await Promise.all([E(),O()]);e||(t(n),r(i),a(!1))}catch{e||(t(null),r(new Map),a(!1))}}return n(),()=>{e=!0}},[]),(0,P.useMemo)(()=>{if(!e)return{stats:null,files:[],hunks:new Map,loading:i};let{stats:t,perFileStats:r}=e,a=[];for(let[e,t]of r){let r=n.get(e),i=t.isUntracked??!1,o=!t.isBinary&&!i&&!r,s=t.added+t.removed,c=!o&&!t.isBinary&&s>F;a.push({path:e,linesAdded:t.added,linesRemoved:t.removed,isBinary:t.isBinary,isLargeFile:o,isTruncated:c,isUntracked:i})}return a.sort((e,t)=>e.path.localeCompare(t.path)),{stats:t,files:a,hunks:n,loading:!1}},[e,n,i])}var P,F,I=e((()=>{P=t(a(),1),k(),F=400}));function L(e){if(!e||typeof e!=`object`)return!1;let t=e,n=typeof t.filePath==`string`,r=Array.isArray(t.structuredPatch)&&t.structuredPatch.length>0,i=t.type===`create`&&typeof t.content==`string`;return n&&(r||i)}function R(e){return`type`in e&&(e.type===`create`||e.type===`update`)}function z(e){let t=0,n=0;for(let r of e)for(let e of r.lines)e.startsWith(`+`)?t++:e.startsWith(`-`)&&n++;return{added:t,removed:n}}function B(e){if(e.type!==`user`)return``;let t=e.message.content,n=typeof t==`string`?t:``;return n.length<=30?n:n.slice(0,29)+`…`}function V(e){let t=0,n=0;for(let r of e.files.values())t+=r.linesAdded,n+=r.linesRemoved;e.stats={filesChanged:e.files.size,linesAdded:t,linesRemoved:n}}function H(e){let t=(0,U.useRef)({completedTurns:[],currentTurn:null,lastProcessedIndex:0,lastTurnIndex:0});return(0,U.useMemo)(()=>{let n=t.current;e.length<n.lastProcessedIndex&&(n.completedTurns=[],n.currentTurn=null,n.lastProcessedIndex=0,n.lastTurnIndex=0);for(let t=n.lastProcessedIndex;t<e.length;t++){let r=e[t];if(!(!r||r.type!==`user`)){if(!(r.toolUseResult||Array.isArray(r.message.content)&&r.message.content[0]?.type===`tool_result`)&&!r.isMeta)n.currentTurn&&n.currentTurn.files.size>0&&(V(n.currentTurn),n.completedTurns.push(n.currentTurn)),n.lastTurnIndex++,n.currentTurn={turnIndex:n.lastTurnIndex,userPromptPreview:B(r),timestamp:r.timestamp,files:new Map,stats:{filesChanged:0,linesAdded:0,linesRemoved:0}};else if(n.currentTurn&&r.toolUseResult){let e=r.toolUseResult;if(L(e)){let{filePath:t,structuredPatch:r}=e,i=`type`in e&&e.type===`create`,a=n.currentTurn.files.get(t);if(a||(a={filePath:t,hunks:[],isNewFile:i,linesAdded:0,linesRemoved:0},n.currentTurn.files.set(t,a)),i&&r.length===0&&R(e)){let t=e.content.split(`
2
+ `),n={oldStart:0,oldLines:0,newStart:1,newLines:t.length,lines:t.map(e=>`+`+e)};a.hunks.push(n),a.linesAdded+=t.length}else{a.hunks.push(...r);let{added:e,removed:t}=z(r);a.linesAdded+=e,a.linesRemoved+=t}i&&(a.isNewFile=!0)}}}}n.lastProcessedIndex=e.length;let r=[...n.completedTurns];return n.currentTurn&&n.currentTurn.files.size>0&&(V(n.currentTurn),r.push(n.currentTurn)),r.reverse()},[e])}var U,W=e((()=>{U=t(a(),1)}));function G({filePath:e,hunks:t,isLargeFile:n,isBinary:r,isTruncated:a,isUntracked:s}){let{columns:c}=i(),{firstLine:u,fileContent:d}=(0,K.useMemo)(()=>{if(!e)return{firstLine:null,fileContent:void 0};let t=_(M(y(),e));return{firstLine:t?.split(`
3
+ `)[0]??null,fileContent:t??void 0}},[e]);return s?(0,q.jsxs)(f,{flexDirection:`column`,width:`100%`,children:[(0,q.jsxs)(f,{children:[(0,q.jsx)(o,{bold:!0,children:e}),(0,q.jsx)(o,{dimColor:!0,children:` (untracked)`})]}),(0,q.jsx)(l,{padding:4}),(0,q.jsxs)(f,{flexDirection:`column`,children:[(0,q.jsx)(o,{dimColor:!0,italic:!0,children:`New file not yet staged.`}),(0,q.jsxs)(o,{dimColor:!0,italic:!0,children:["Run `git add ",e,"` to see line counts."]})]})]}):r?(0,q.jsxs)(f,{flexDirection:`column`,width:`100%`,children:[(0,q.jsx)(f,{children:(0,q.jsx)(o,{bold:!0,children:e})}),(0,q.jsx)(l,{padding:4}),(0,q.jsx)(f,{flexDirection:`column`,children:(0,q.jsx)(o,{dimColor:!0,italic:!0,children:`Binary file - cannot display diff`})})]}):n?(0,q.jsxs)(f,{flexDirection:`column`,width:`100%`,children:[(0,q.jsx)(f,{children:(0,q.jsx)(o,{bold:!0,children:e})}),(0,q.jsx)(l,{padding:4}),(0,q.jsx)(f,{flexDirection:`column`,children:(0,q.jsx)(o,{dimColor:!0,italic:!0,children:`Large file - diff exceeds 1 MB limit`})})]}):(0,q.jsxs)(f,{flexDirection:`column`,width:`100%`,children:[(0,q.jsxs)(f,{children:[(0,q.jsx)(o,{bold:!0,children:e}),a&&(0,q.jsx)(o,{dimColor:!0,children:` (truncated)`})]}),(0,q.jsx)(l,{padding:4}),(0,q.jsx)(f,{flexDirection:`column`,children:t.length===0?(0,q.jsx)(o,{dimColor:!0,children:`No diff content`}):t.map((t,n)=>(0,q.jsx)(w,{patch:t,filePath:e,firstLine:u,fileContent:d,dim:!1,width:c-2-2},n))}),a&&(0,q.jsx)(o,{dimColor:!0,italic:!0,children:`… diff truncated (exceeded 400 line limit)`})]})}var K,q,J=e((()=>{K=t(a(),1),A(),d(),v(),h(),S(),q=p()}));function te({files:e,selectedIndex:t}){let{columns:n}=i(),{startIndex:r,endIndex:a}=(0,Y.useMemo)(()=>{if(e.length===0||e.length<=Z)return{startIndex:0,endIndex:e.length};let n=Math.max(0,t-Math.floor(Z/2)),r=n+Z;return r>e.length&&(r=e.length,n=Math.max(0,r-Z)),{startIndex:n,endIndex:r}},[e.length,t]);if(e.length===0)return(0,X.jsx)(o,{dimColor:!0,children:`No changed files`});let s=e.slice(r,a),c=r>0,l=a<e.length,u=e.length>Z,d=Math.max(20,n-16-3-4);return(0,X.jsxs)(f,{flexDirection:`column`,children:[u&&(0,X.jsx)(o,{dimColor:!0,children:c?` ↑ ${r} more ${m(r,`file`)}`:` `}),s.map((e,n)=>(0,X.jsx)(ne,{file:e,isSelected:r+n===t,maxPathWidth:d},e.path)),u&&(0,X.jsx)(o,{dimColor:!0,children:l?` ↓ ${e.length-a} more ${m(e.length-a,`file`)}`:` `})]})}function ne({file:e,isSelected:t,maxPathWidth:n}){let i=b(e.path,n),a=`${t?r.pointer+` `:` `}${i}`;return(0,X.jsxs)(f,{flexDirection:`row`,children:[(0,X.jsx)(o,{bold:t,color:t?`background`:void 0,inverse:t,children:a}),(0,X.jsx)(f,{flexGrow:1}),(0,X.jsx)(re,{file:e,isSelected:t})]})}function re({file:e,isSelected:t}){return e.isUntracked?(0,X.jsx)(o,{dimColor:!t,italic:!0,children:`untracked`}):e.isBinary?(0,X.jsx)(o,{dimColor:!t,italic:!0,children:`Binary file`}):e.isLargeFile?(0,X.jsx)(o,{dimColor:!t,italic:!0,children:`Large file modified`}):(0,X.jsxs)(o,{children:[e.linesAdded>0&&(0,X.jsxs)(o,{color:`diffAddedWord`,bold:t,children:[`+`,e.linesAdded]}),e.linesAdded>0&&e.linesRemoved>0&&` `,e.linesRemoved>0&&(0,X.jsxs)(o,{color:`diffRemovedWord`,bold:t,children:[`-`,e.linesRemoved]}),e.isTruncated&&(0,X.jsx)(o,{dimColor:!t,children:` (truncated)`})]})}var Y,X,Z,ie=e((()=>{n(),Y=t(a(),1),A(),d(),x(),g(),X=p(),Z=5}));function ae(e){let t=Array.from(e.files.values()).map(e=>({path:e.filePath,linesAdded:e.linesAdded,linesRemoved:e.linesRemoved,isBinary:!1,isLargeFile:!1,isTruncated:!1,isNewFile:e.isNewFile})).sort((e,t)=>e.path.localeCompare(t.path)),n=new Map;for(let t of e.files.values())n.set(t.filePath,t.hunks);return{stats:{filesCount:e.stats.filesChanged,linesAdded:e.stats.linesAdded,linesRemoved:e.stats.linesRemoved},files:t,hunks:n,loading:!1}}function oe({messages:e,onDone:t}){let n=N(),r=H(e),[i,a]=(0,Q.useState)(`list`),[l,d]=(0,Q.useState)(0),[p,h]=(0,Q.useState)(0),g=(0,Q.useMemo)(()=>[{type:`current`},...r.map(e=>({type:`turn`,turn:e}))],[r]),_=g[p],v=_?.type===`turn`?_.turn:null,y=(0,Q.useMemo)(()=>v?ae(v):n,[v,n]),b=y.files[l],x=(0,Q.useMemo)(()=>b&&y.hunks.get(b.path)||[],[b,y.hunks]);(0,Q.useEffect)(()=>{p>=g.length&&h(Math.max(0,g.length-1))},[g.length,p]);let S=(0,Q.useRef)(p);(0,Q.useEffect)(()=>{S.current!==p&&(d(0),S.current=p)},[p]),ee(`diff-dialog`),u({"diff:previousSource":()=>{i===`detail`?a(`list`):i===`list`&&g.length>1&&h(e=>Math.max(0,e-1))},"diff:nextSource":()=>{i===`list`&&g.length>1&&h(e=>Math.min(g.length-1,e+1))},"diff:back":()=>{i===`detail`&&a(`list`)},"diff:viewDetails":()=>{i===`list`&&b&&a(`detail`)},"diff:previousFile":()=>{i===`list`&&d(e=>Math.max(0,e-1))},"diff:nextFile":()=>{i===`list`&&d(e=>Math.min(y.files.length-1,e+1))}},{context:`DiffDialog`});let w=y.stats?(0,$.jsxs)(o,{dimColor:!0,children:[y.stats.filesCount,` `,m(y.stats.filesCount,`file`),` changed`,y.stats.linesAdded>0&&(0,$.jsxs)(o,{color:`diffAddedWord`,children:[` +`,y.stats.linesAdded]}),y.stats.linesRemoved>0&&(0,$.jsxs)(o,{color:`diffRemovedWord`,children:[` -`,y.stats.linesRemoved]})]}):null,T=v?`Turn ${v.turnIndex}`:`Uncommitted changes`,E=v?v.userPromptPreview?`"${v.userPromptPreview}"`:``:`(git diff HEAD)`,D=g.length>1?(0,$.jsxs)(f,{children:[p>0&&(0,$.jsx)(o,{dimColor:!0,children:`◀ `}),g.map((e,t)=>{let n=t===p,r=e.type===`current`?`Current`:`T${e.turn.turnIndex}`;return(0,$.jsxs)(o,{dimColor:!n,bold:n,children:[t>0?` · `:``,r]},t)}),p<g.length-1&&(0,$.jsx)(o,{dimColor:!0,children:` ▶`})]}):null,O=C(`diff:dismiss`,`DiffDialog`,`esc`),k=y.loading?`Loading diff…`:v?`No file changes in this turn`:y.stats&&y.stats.filesCount>0&&y.files.length===0?`Too many files to display details`:`Working tree is clean`,A=(0,$.jsxs)(o,{children:[T,E&&(0,$.jsxs)(o,{dimColor:!0,children:[` `,E]})]});function j(){i===`detail`?a(`list`):t(`Diff dialog dismissed`,{display:`system`})}return(0,$.jsxs)(s,{title:A,onCancel:j,color:`background`,inputGuide:e=>e.pending?(0,$.jsxs)(o,{children:[`Press `,e.keyName,` again to exit`]}):i===`list`?(0,$.jsxs)(c,{children:[g.length>1&&(0,$.jsx)(o,{children:`←/→ source`}),(0,$.jsx)(o,{children:`↑/↓ select`}),(0,$.jsx)(o,{children:`Enter view`}),(0,$.jsxs)(o,{children:[O,` close`]})]}):(0,$.jsxs)(c,{children:[(0,$.jsx)(o,{children:`← back`}),(0,$.jsxs)(o,{children:[O,` close`]})]}),children:[D,w,y.files.length===0?(0,$.jsx)(f,{marginTop:1,children:(0,$.jsx)(o,{dimColor:!0,children:k})}):i===`list`?(0,$.jsx)(f,{flexDirection:`column`,marginTop:1,children:(0,$.jsx)(te,{files:y.files,selectedIndex:l})}):(0,$.jsx)(f,{flexDirection:`column`,marginTop:1,children:(0,$.jsx)(G,{filePath:b?.path||``,hunks:x,isLargeFile:b?.isLargeFile,isBinary:b?.isBinary,isTruncated:b?.isTruncated,isUntracked:b?.isUntracked})})]})}var Q,$;e((()=>{Q=t(a(),1),D(),I(),W(),d(),j(),T(),g(),J(),ie(),$=p()}))();export{oe as DiffDialog};
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./Doctor-CDez_u_U.js";e();export{t as Doctor};
@@ -0,0 +1,3 @@
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{n,s as r}from"./envUtils-BWeoiL4Y.js";import{n as i,t as a}from"./figures-gfT9mM8P.js";import{Rn as o,b as s,nt as c,p as l,t as u,x as d}from"./src-Di342QoJ.js";import{t as f}from"./jsx-runtime-D-D469L8.js";import{cn as p,ot as ee}from"./state-sIHsFpDu.js";import{Dr as m,Ka as te,Po as h,Pr as g,Ro as _,Vo as v,al as y,cr as b,dr as x,el as S,jo as C,oo as w}from"./paths-1ngPRtu3.js";import{Ck as T,FA as ne,Gm as E,Hb as D,IA as O,Jm as k,Km as re,NS as ie,PS as A,Qf as ae,Ub as oe,Uc as se,Vb as ce,Wb as le,Wc as j,Xf as M,Ym as N,Zf as P,_T as F,_k as I,aT as L,al as R,bT as z,bk as B,iT as V,il as H,oA as U,oT as W,qm as ue,rA as G,sT as de,vT as fe,xT as pe,xk as me,yT as he}from"./loadAgentsDir-D7kapZB5.js";import{t as ge}from"./useKeybinding-FsOnjW6T.js";import{l as _e,u as ve}from"./referral-BKeCKnOJ.js";import{a as ye,i as be}from"./xdg-CBxMmQux.js";import{n as xe,t as Se}from"./McpParsingWarnings-BOj-T8F3.js";import{n as Ce,t as we}from"./PressEnterToContinue-BdA9zDGs.js";import{n as Te,t as Ee}from"./ValidationErrorsList-C9swVkZ-.js";import{n as De,t as Oe}from"./useSettingsErrors-DD7fQ-fU.js";import{n as ke,t as Ae}from"./shadowedRuleDetection-CQayPrmM.js";import{n as je,r as Me,t as K}from"./statusNoticeHelpers-cnI4TiGw.js";import{join as q}from"path";function Ne(){if(!de())return null;let e=V();if(e.length===0)return null;let t=e.filter(e=>e.severity===`error`),n=e.filter(e=>e.severity===`warning`);return(0,J.jsxs)(d,{flexDirection:`column`,marginTop:1,marginBottom:1,children:[(0,J.jsx)(s,{bold:!0,color:t.length>0?`error`:`warning`,children:`Keybinding Configuration Issues`}),(0,J.jsxs)(d,{children:[(0,J.jsx)(s,{dimColor:!0,children:`Location: `}),(0,J.jsx)(s,{dimColor:!0,children:L()})]}),(0,J.jsxs)(d,{marginLeft:1,flexDirection:`column`,marginTop:1,children:[t.map((e,t)=>(0,J.jsxs)(d,{flexDirection:`column`,children:[(0,J.jsxs)(d,{children:[(0,J.jsx)(s,{dimColor:!0,children:`└ `}),(0,J.jsx)(s,{color:`error`,children:`[Error]`}),(0,J.jsxs)(s,{dimColor:!0,children:[` `,e.message]})]}),e.suggestion&&(0,J.jsx)(d,{marginLeft:3,children:(0,J.jsxs)(s,{dimColor:!0,children:[`→ `,e.suggestion]})})]},`error-${t}`)),n.map((e,t)=>(0,J.jsxs)(d,{flexDirection:`column`,children:[(0,J.jsxs)(d,{children:[(0,J.jsx)(s,{dimColor:!0,children:`└ `}),(0,J.jsx)(s,{color:`warning`,children:`[Warning]`}),(0,J.jsxs)(s,{dimColor:!0,children:[` `,e.message]})]}),e.suggestion&&(0,J.jsx)(d,{marginLeft:3,children:(0,J.jsxs)(s,{dimColor:!0,children:[`→ `,e.suggestion]})})]},`warning-${t}`))]})]})}var J,Pe=e((()=>{o(),u(),W(),J=f()}));function Fe(){if(!G.isSupportedPlatform()||!G.isSandboxEnabledInSettings())return null;let e=G.checkDependencies(),t=e.errors.length>0,n=e.warnings.length>0;return!t&&!n?null:(0,Y.jsxs)(d,{flexDirection:`column`,children:[(0,Y.jsx)(s,{bold:!0,children:`Sandbox`}),(0,Y.jsxs)(s,{children:[`└ Status: `,(0,Y.jsx)(s,{color:t?`error`:`warning`,children:t?`Missing dependencies`:`Available (with warnings)`})]}),e.errors.map((e,t)=>(0,Y.jsxs)(s,{color:`error`,children:[`└ `,e]},t)),e.warnings.map((e,t)=>(0,Y.jsxs)(s,{color:`warning`,children:[`└ `,e]},t)),t&&(0,Y.jsx)(s,{dimColor:!0,children:`└ Run /sandbox for install instructions`})]})}var Y,Ie=e((()=>{o(),u(),U(),Y=f()}));async function Le(){let e=B(await me());if(e.length===0)return null;let t=e.sort((e,t)=>t.content.length-e.content.length).map(e=>`${e.path}: ${e.content.length.toLocaleString()} chars`);return{type:`claudemd_files`,severity:`warning`,message:e.length===1?`Large CLAUDE.md file detected (${e[0].content.length.toLocaleString()} chars > ${I.toLocaleString()})`:`${e.length} large CLAUDE.md files detected (each > ${I.toLocaleString()} chars)`,details:t,currentValue:e.length,threshold:I}}async function X(e){if(!e)return null;let t=je(e);if(t<=15e3)return null;let n=e.activeAgents.filter(e=>e.source!==`built-in`).map(e=>{let t=`${e.agentType}: ${e.whenToUse}`;return{name:e.agentType,tokens:j(t)}}).sort((e,t)=>t.tokens-e.tokens),r=n.slice(0,5).map(e=>`${e.name}: ~${e.tokens.toLocaleString()} tokens`);return n.length>5&&r.push(`(${n.length-5} more custom agents)`),{type:`agent_descriptions`,severity:`warning`,message:`Large agent descriptions (~${t.toLocaleString()} tokens > ${K.toLocaleString()})`,details:r,currentValue:t,threshold:K}}async function Re(e,t,n){let r=e.filter(e=>e.isMcp);if(r.length===0)return null;try{let{mcpToolTokens:r,mcpToolDetails:i}=await H(e,t,n,m());if(r<=Z)return null;let a=new Map;for(let e of i){let t=e.name.split(`__`)[1]||`unknown`,n=a.get(t)||{count:0,tokens:0};a.set(t,{count:n.count+1,tokens:n.tokens+e.tokens})}let o=Array.from(a.entries()).sort((e,t)=>t[1].tokens-e[1].tokens),s=o.slice(0,5).map(([e,t])=>`${e}: ${t.count} tools (~${t.tokens.toLocaleString()} tokens)`);return o.length>5&&s.push(`(${o.length-5} more servers)`),{type:`mcp_tools`,severity:`warning`,message:`Large MCP tools context (~${r.toLocaleString()} tokens > ${Z.toLocaleString()})`,details:s,currentValue:r,threshold:Z}}catch{let e=r.reduce((e,t)=>e+j(((t.name?.length||0)+t.description.length).toString()),0);return e<=Z?null:{type:`mcp_tools`,severity:`warning`,message:`Large MCP tools context (~${e.toLocaleString()} tokens estimated > ${Z.toLocaleString()})`,details:[`${r.length} MCP tools detected (token count estimated)`],currentValue:e,threshold:Z}}}async function ze(e){let t=Ae(await e(),{sandboxAutoAllowEnabled:G.isSandboxingEnabled()&&G.isAutoAllowBashIfSandboxedEnabled()});if(t.length===0)return null;let n=t.flatMap(e=>[`${v(e.rule.ruleValue)}: ${e.reason}`,` Fix: ${e.fix}`]);return{type:`unreachable_rules`,severity:`warning`,message:`${t.length} ${h(t.length,`unreachable permission rule`)} detected`,details:n,currentValue:t.length,threshold:0}}async function Be(e,t,n){let[r,i,a,o]=await Promise.all([Le(),X(t),Re(e,n,t),ze(n)]);return{claudeMdWarning:r,agentWarning:i,mcpWarning:a,unreachableRulesWarning:o}}var Z,Ve=e((()=>{se(),R(),T(),g(),_(),ke(),U(),Me(),C(),Z=25e3}));function He({promise:e}){let t=(0,Q.use)(e);return t.latest?(0,$.jsxs)($.Fragment,{children:[t.stable&&(0,$.jsxs)(s,{children:[`└ Stable version: `,t.stable]}),(0,$.jsxs)(s,{children:[`└ Latest version: `,t.latest]})]}):(0,$.jsx)(s,{dimColor:!0,children:`└ Failed to fetch versions`})}function Ue({onDone:e}){let t=A(e=>e.agentDefinitions),r=A(e=>e.mcp.tools),i=A(e=>e.toolPermissionContext),o=A(e=>e.plugins.errors);ve();let u=(0,Q.useMemo)(()=>r||[],[r]),[f,p]=(0,Q.useState)(null),[m,h]=(0,Q.useState)(null),[g,_]=(0,Q.useState)(null),[v,x]=(0,Q.useState)(null),S=De(),C=(0,Q.useMemo)(()=>F().then(e=>(e.installationType===`native`?he:z)().catch(()=>({latest:null,stable:null}))),[]),w=te()?.autoUpdatesChannel??`latest`,T=S.filter(e=>e.mcpErrorMetadata===void 0),O=(0,Q.useMemo)(()=>[{name:`BASH_MAX_OUTPUT_LENGTH`,default:E,upperLimit:re},{name:`TASK_MAX_OUTPUT_LENGTH`,default:M,upperLimit:P},{name:`CLAUDE_CODE_MAX_OUTPUT_TOKENS`,...b(`claude-opus-4-7`)}].map(e=>{let t=process.env[e.name],n=N(e.name,t,e.default,e.upperLimit);return{name:e.name,...n}}).filter(e=>e.status!==`valid`),[]);(0,Q.useEffect)(()=>{F().then(p),(async()=>{let e=q(n(),`agents`),r=q(ee(),`.claude`,`agents`),{activeAgents:a,allAgents:o,failedFiles:s}=t,[c,l]=await Promise.all([y(e),y(r)]);if(h({activeAgents:a.map(e=>({agentType:e.agentType,source:e.source})),userAgentsDir:e,projectAgentsDir:r,userDirExists:c,projectDirExists:l,failedFiles:s}),_(await Be(u,{activeAgents:a,allAgents:o,failedFiles:s},async()=>i)),le()){let e=q(be(),`claude`,`locks`),t=ce(e);x({enabled:!0,locks:D(e),locksDir:e,staleLocksCleaned:t})}else x({enabled:!1,locks:[],locksDir:``,staleLocksCleaned:0})})()},[i,u,t]);let k=(0,Q.useCallback)(()=>{e(`Claude Code diagnostics dismissed`,{display:`system`})},[e]);return c({"confirm:yes":k,"confirm:no":k},{context:`Confirmation`}),f?(0,$.jsxs)(l,{children:[(0,$.jsxs)(d,{flexDirection:`column`,children:[(0,$.jsx)(s,{bold:!0,children:`Diagnostics`}),(0,$.jsxs)(s,{children:[`└ Currently running: `,f.installationType,` (`,f.version,`)`]}),f.packageManager&&(0,$.jsxs)(s,{children:[`└ Package manager: `,f.packageManager]}),(0,$.jsxs)(s,{children:[`└ Path: `,f.installationPath]}),(0,$.jsxs)(s,{children:[`└ Invoked: `,f.invokedBinary]}),(0,$.jsxs)(s,{children:[`└ Config install method: `,f.configInstallMethod]}),(0,$.jsxs)(s,{children:[`└ Search: `,f.ripgrepStatus.working?`OK`:`Not working`,` (`,f.ripgrepStatus.mode===`embedded`?`bundled`:f.ripgrepStatus.mode===`builtin`?`vendor`:f.ripgrepStatus.systemPath||`system`,`)`]}),f.recommendation&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(s,{}),(0,$.jsxs)(s,{color:`warning`,children:[`Recommendation: `,f.recommendation.split(`
2
+ `)[0]]}),(0,$.jsx)(s,{dimColor:!0,children:f.recommendation.split(`
3
+ `)[1]})]}),f.multipleInstallations.length>1&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(s,{}),(0,$.jsx)(s,{color:`warning`,children:`Warning: Multiple installations found`}),f.multipleInstallations.map((e,t)=>(0,$.jsxs)(s,{children:[`└ `,e.type,` at `,e.path]},t))]}),f.warnings.length>0&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(s,{}),f.warnings.map((e,t)=>(0,$.jsxs)(d,{flexDirection:`column`,children:[(0,$.jsxs)(s,{color:`warning`,children:[`Warning: `,e.issue]}),(0,$.jsxs)(s,{children:[`Fix: `,e.fix]})]},t))]}),T.length>0&&(0,$.jsxs)(d,{flexDirection:`column`,marginTop:1,marginBottom:1,children:[(0,$.jsx)(s,{bold:!0,children:`Invalid Settings`}),(0,$.jsx)(Ee,{errors:T})]})]}),(0,$.jsxs)(d,{flexDirection:`column`,children:[(0,$.jsx)(s,{bold:!0,children:`Updates`}),(0,$.jsxs)(s,{children:[`└ Auto-updates: `,f.packageManager?`Managed by package manager`:f.autoUpdates]}),f.hasUpdatePermissions!==null&&(0,$.jsxs)(s,{children:[`└ Update permissions: `,f.hasUpdatePermissions?`Yes`:`No (requires sudo)`]}),(0,$.jsxs)(s,{children:[`└ Auto-update channel: `,w]}),(0,$.jsx)(Q.Suspense,{fallback:null,children:(0,$.jsx)(He,{promise:C})})]}),(0,$.jsx)(Fe,{}),(0,$.jsx)(Se,{}),(0,$.jsx)(Ne,{}),O.length>0&&(0,$.jsxs)(d,{flexDirection:`column`,children:[(0,$.jsx)(s,{bold:!0,children:`Environment Variables`}),O.map((e,t)=>(0,$.jsxs)(s,{children:[`└ `,e.name,`:`,` `,(0,$.jsx)(s,{color:e.status===`capped`?`warning`:`error`,children:e.message})]},t))]}),v?.enabled&&(0,$.jsxs)(d,{flexDirection:`column`,children:[(0,$.jsx)(s,{bold:!0,children:`Version Locks`}),v.staleLocksCleaned>0&&(0,$.jsxs)(s,{dimColor:!0,children:[`└ Cleaned `,v.staleLocksCleaned,` stale lock(s)`]}),v.locks.length===0?(0,$.jsx)(s,{dimColor:!0,children:`└ No active version locks`}):v.locks.map((e,t)=>(0,$.jsxs)(s,{children:[`└ `,e.version,`: PID `,e.pid,` `,e.isProcessRunning?(0,$.jsx)(s,{children:`(running)`}):(0,$.jsx)(s,{color:`warning`,children:`(stale)`})]},t))]}),m?.failedFiles&&m.failedFiles.length>0&&(0,$.jsxs)(d,{flexDirection:`column`,children:[(0,$.jsx)(s,{bold:!0,color:`error`,children:`Agent Parse Errors`}),(0,$.jsxs)(s,{color:`error`,children:[`└ Failed to parse `,m.failedFiles.length,` agent file(s):`]}),m.failedFiles.map((e,t)=>(0,$.jsxs)(s,{dimColor:!0,children:[` `,`└ `,e.path,`: `,e.error]},t))]}),o.length>0&&(0,$.jsxs)(d,{flexDirection:`column`,children:[(0,$.jsx)(s,{bold:!0,color:`error`,children:`Plugin Errors`}),(0,$.jsxs)(s,{color:`error`,children:[`└ `,o.length,` plugin error(s) detected:`]}),o.map((e,t)=>(0,$.jsxs)(s,{dimColor:!0,children:[` `,`└ `,e.source||`unknown`,`plugin`in e&&e.plugin?` [${e.plugin}]`:``,`: `,ne(e)]},t))]}),g?.unreachableRulesWarning&&(0,$.jsxs)(d,{flexDirection:`column`,children:[(0,$.jsx)(s,{bold:!0,color:`warning`,children:`Unreachable Permission Rules`}),(0,$.jsxs)(s,{children:[`└`,` `,(0,$.jsxs)(s,{color:`warning`,children:[a.warning,` `,g.unreachableRulesWarning.message]})]}),g.unreachableRulesWarning.details.map((e,t)=>(0,$.jsxs)(s,{dimColor:!0,children:[` `,`└ `,e]},t))]}),g&&(g.claudeMdWarning||g.agentWarning||g.mcpWarning)&&(0,$.jsxs)(d,{flexDirection:`column`,children:[(0,$.jsx)(s,{bold:!0,children:`Context Usage Warnings`}),g.claudeMdWarning&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(s,{children:[`└`,` `,(0,$.jsxs)(s,{color:`warning`,children:[a.warning,` `,g.claudeMdWarning.message]})]}),(0,$.jsxs)(s,{children:[` `,`└ Files:`]}),g.claudeMdWarning.details.map((e,t)=>(0,$.jsxs)(s,{dimColor:!0,children:[` `,`└ `,e]},t))]}),g.agentWarning&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(s,{children:[`└`,` `,(0,$.jsxs)(s,{color:`warning`,children:[a.warning,` `,g.agentWarning.message]})]}),(0,$.jsxs)(s,{children:[` `,`└ Top contributors:`]}),g.agentWarning.details.map((e,t)=>(0,$.jsxs)(s,{dimColor:!0,children:[` `,`└ `,e]},t))]}),g.mcpWarning&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(s,{children:[`└`,` `,(0,$.jsxs)(s,{color:`warning`,children:[a.warning,` `,g.mcpWarning.message]})]}),(0,$.jsxs)(s,{children:[` `,`└ MCP servers:`]}),g.mcpWarning.details.map((e,t)=>(0,$.jsxs)(s,{dimColor:!0,children:[` `,`└ `,e]},t))]})]}),(0,$.jsx)(d,{children:(0,$.jsx)(we,{})})]}):(0,$.jsx)(l,{children:(0,$.jsx)(s,{dimColor:!0,children:`Checking installation status…`})})}var Q,$,We=e((()=>{i(),Q=t(o(),1),Pe(),xe(),x(),r(),p(),u(),Ce(),Ie(),Te(),Oe(),_e(),ge(),ie(),O(),pe(),Ve(),fe(),k(),S(),oe(),w(),ue(),ae(),ye(),$=f()}));export{We as n,Ue as t};
@@ -1,2 +1,2 @@
1
- import{a as e,n as t,o as n}from"./chunk-DR8-3Aex.js";import{Rn as r,b as i,f as a,t as o,x as s}from"./src-Di342QoJ.js";import{t as c}from"./jsx-runtime-D-D469L8.js";import{Cl as l,wl as u}from"./paths-BBvuDQl9.js";import{d,s as f}from"./debug-UI3T040K.js";import{n as p,r as m}from"./analytics-DqMQntaB.js";import{r as h,t as g}from"./execFileNoThrow-CuQN1sz8.js";import{Ar as _,Dt as v,Dx as y,Et as b,GT as x,Hm as S,Hv as C,Ox as w,Um as T,Vv as E,gy as D,mt as O,my as k,qT as A,wi as j,wt as M,xt as N}from"./loadAgentsDir-DI1a76pd.js";function P(){(_(),e(j)).saveWorktreeState(null)}function F({onDone:e,onCancel:t}){let[n,r]=(0,I.useState)(`loading`),[o,c]=(0,I.useState)([]),[l,u]=(0,I.useState)(0),[f,p]=(0,I.useState)(),h=N();if((0,I.useEffect)(()=>{async function e(){let e=[],t=await g(`git`,[`status`,`--porcelain`]);if(t.stdout&&(e=t.stdout.split(`
2
- `).filter(e=>e.trim()!==``),c(e)),h){let{stdout:t}=await g(`git`,[`rev-list`,`--count`,`${h.originalHeadCommit}..HEAD`]),n=parseInt(t.trim(),10)||0;if(u(n),e.length===0&&n===0){r(`removing`),O().then(()=>{process.chdir(h.originalCwd),T(h.originalCwd),P(),E.cache.clear?.(),p(`Worktree removed (no changes)`)}).catch(e=>{d(`Failed to clean up worktree: ${e}`,{level:`error`}),p(`Worktree cleanup failed, exiting anyway`)}).then(()=>{r(`done`)});return}else r(`asking`)}}e()},[h]),(0,I.useEffect)(()=>{n===`done`&&e(f)},[n,e,f]),!h)return e(`No active worktree session found`,{display:`system`}),null;if(n===`loading`||n===`done`)return null;async function _(e){if(!h)return;let t=!!h.tmuxSessionName;if(e===`keep`||e===`keep-with-tmux`)r(`keeping`),m(`tengu_worktree_kept`,{commits:l,changed_files:o.length}),await b(),process.chdir(h.originalCwd),T(h.originalCwd),P(),E.cache.clear?.(),p(t?`Worktree kept. Your work is saved at ${h.worktreePath} on branch ${h.worktreeBranch}. Reattach to tmux session with: tmux attach -t ${h.tmuxSessionName}`:`Worktree kept. Your work is saved at ${h.worktreePath} on branch ${h.worktreeBranch}`),r(`done`);else if(e===`keep-kill-tmux`)r(`keeping`),m(`tengu_worktree_kept`,{commits:l,changed_files:o.length}),h.tmuxSessionName&&await v(h.tmuxSessionName),await b(),process.chdir(h.originalCwd),T(h.originalCwd),P(),E.cache.clear?.(),p(`Worktree kept at ${h.worktreePath} on branch ${h.worktreeBranch}. Tmux session terminated.`),r(`done`);else if(e===`remove`||e===`remove-with-tmux`){r(`removing`),m(`tengu_worktree_removed`,{commits:l,changed_files:o.length}),h.tmuxSessionName&&await v(h.tmuxSessionName);try{await O(),process.chdir(h.originalCwd),T(h.originalCwd),P(),E.cache.clear?.()}catch(e){d(`Failed to clean up worktree: ${e}`,{level:`error`}),p(`Worktree cleanup failed, exiting anyway`),r(`done`);return}let e=t?` Tmux session terminated.`:``;l>0&&o.length>0?p(`Worktree removed. ${l} ${l===1?`commit`:`commits`} and uncommitted changes were discarded.${e}`):l>0?p(`Worktree removed. ${l} ${l===1?`commit`:`commits`} on ${h.worktreeBranch} ${l===1?`was`:`were`} discarded.${e}`):o.length>0?p(`Worktree removed. Uncommitted changes were discarded.${e}`):p(`Worktree removed.${e}`),r(`done`)}}if(n===`keeping`)return(0,L.jsxs)(s,{flexDirection:`row`,marginY:1,children:[(0,L.jsx)(k,{}),(0,L.jsx)(i,{children:`Keeping worktree…`})]});if(n===`removing`)return(0,L.jsxs)(s,{flexDirection:`row`,marginY:1,children:[(0,L.jsx)(k,{}),(0,L.jsx)(i,{children:`Removing worktree…`})]});let x=h.worktreeBranch,S=o.length>0,C=l>0,w=``;w=S&&C?`You have ${o.length} uncommitted ${o.length===1?`file`:`files`} and ${l} ${l===1?`commit`:`commits`} on ${x}. All will be lost if you remove.`:S?`You have ${o.length} uncommitted ${o.length===1?`file`:`files`}. These will be lost if you remove the worktree.`:C?`You have ${l} ${l===1?`commit`:`commits`} on ${x}. The branch will be deleted if you remove the worktree.`:`You are working in a worktree. Keep it to continue working there, or remove it to clean up.`;function D(){if(t){t();return}_(`keep`)}let A=S||C?`All changes and commits will be lost.`:`Clean up the worktree directory.`,j=!!h.tmuxSessionName,M=j?[{label:`Keep worktree and tmux session`,value:`keep-with-tmux`,description:`Stays at ${h.worktreePath}. Reattach with: tmux attach -t ${h.tmuxSessionName}`},{label:`Keep worktree, kill tmux session`,value:`keep-kill-tmux`,description:`Keeps worktree at ${h.worktreePath}, terminates tmux session.`},{label:`Remove worktree and tmux session`,value:`remove-with-tmux`,description:A}]:[{label:`Keep worktree`,value:`keep`,description:`Stays at ${h.worktreePath}`},{label:`Remove worktree`,value:`remove`,description:A}];return(0,L.jsx)(a,{title:`Exiting worktree session`,subtitle:w,onCancel:D,children:(0,L.jsx)(y,{defaultFocusValue:j?`keep-with-tmux`:`keep`,options:M,onChange:_})})}var I,L,R=t((()=>{I=n(r(),1),p(),f(),o(),h(),C(),S(),M(),w(),D(),L=c()}));function z(){return u(H)??`Goodbye!`}function B({showWorktree:e,onDone:t,onCancel:n}){async function r(e){t(e??z()),await x(0,`prompt_input_exit`)}return e?(0,V.jsx)(F,{onDone:r,onCancel:n}):null}var V,H,U=t((()=>{l(),r(),A(),R(),V=c(),H=[`Goodbye!`,`See ya!`,`Bye!`,`Catch you later!`]}));export{U as n,B as t};
1
+ import{a as e,n as t,o as n}from"./chunk-DR8-3Aex.js";import{Rn as r,b as i,f as a,t as o,x as s}from"./src-Di342QoJ.js";import{t as c}from"./jsx-runtime-D-D469L8.js";import{Cl as l,wl as u}from"./paths-1ngPRtu3.js";import{d,s as f}from"./debug-UI3T040K.js";import{n as p,r as m}from"./analytics-DqMQntaB.js";import{r as h,t as g}from"./execFileNoThrow-CuQN1sz8.js";import{Ar as _,Ax as v,Dt as y,Et as b,Hm as x,Uv as S,Vm as C,Wv as w,YT as T,gy as E,kx as D,mt as O,qT as k,vy as A,wi as j,wt as M,xt as N}from"./loadAgentsDir-D7kapZB5.js";function P(){(_(),e(j)).saveWorktreeState(null)}function F({onDone:e,onCancel:t}){let[n,r]=(0,I.useState)(`loading`),[o,c]=(0,I.useState)([]),[l,u]=(0,I.useState)(0),[f,p]=(0,I.useState)(),h=N();if((0,I.useEffect)(()=>{async function e(){let e=[],t=await g(`git`,[`status`,`--porcelain`]);if(t.stdout&&(e=t.stdout.split(`
2
+ `).filter(e=>e.trim()!==``),c(e)),h){let{stdout:t}=await g(`git`,[`rev-list`,`--count`,`${h.originalHeadCommit}..HEAD`]),n=parseInt(t.trim(),10)||0;if(u(n),e.length===0&&n===0){r(`removing`),O().then(()=>{process.chdir(h.originalCwd),x(h.originalCwd),P(),S.cache.clear?.(),p(`Worktree removed (no changes)`)}).catch(e=>{d(`Failed to clean up worktree: ${e}`,{level:`error`}),p(`Worktree cleanup failed, exiting anyway`)}).then(()=>{r(`done`)});return}else r(`asking`)}}e()},[h]),(0,I.useEffect)(()=>{n===`done`&&e(f)},[n,e,f]),!h)return e(`No active worktree session found`,{display:`system`}),null;if(n===`loading`||n===`done`)return null;async function _(e){if(!h)return;let t=!!h.tmuxSessionName;if(e===`keep`||e===`keep-with-tmux`)r(`keeping`),m(`tengu_worktree_kept`,{commits:l,changed_files:o.length}),await b(),process.chdir(h.originalCwd),x(h.originalCwd),P(),S.cache.clear?.(),p(t?`Worktree kept. Your work is saved at ${h.worktreePath} on branch ${h.worktreeBranch}. Reattach to tmux session with: tmux attach -t ${h.tmuxSessionName}`:`Worktree kept. Your work is saved at ${h.worktreePath} on branch ${h.worktreeBranch}`),r(`done`);else if(e===`keep-kill-tmux`)r(`keeping`),m(`tengu_worktree_kept`,{commits:l,changed_files:o.length}),h.tmuxSessionName&&await y(h.tmuxSessionName),await b(),process.chdir(h.originalCwd),x(h.originalCwd),P(),S.cache.clear?.(),p(`Worktree kept at ${h.worktreePath} on branch ${h.worktreeBranch}. Tmux session terminated.`),r(`done`);else if(e===`remove`||e===`remove-with-tmux`){r(`removing`),m(`tengu_worktree_removed`,{commits:l,changed_files:o.length}),h.tmuxSessionName&&await y(h.tmuxSessionName);try{await O(),process.chdir(h.originalCwd),x(h.originalCwd),P(),S.cache.clear?.()}catch(e){d(`Failed to clean up worktree: ${e}`,{level:`error`}),p(`Worktree cleanup failed, exiting anyway`),r(`done`);return}let e=t?` Tmux session terminated.`:``;l>0&&o.length>0?p(`Worktree removed. ${l} ${l===1?`commit`:`commits`} and uncommitted changes were discarded.${e}`):l>0?p(`Worktree removed. ${l} ${l===1?`commit`:`commits`} on ${h.worktreeBranch} ${l===1?`was`:`were`} discarded.${e}`):o.length>0?p(`Worktree removed. Uncommitted changes were discarded.${e}`):p(`Worktree removed.${e}`),r(`done`)}}if(n===`keeping`)return(0,L.jsxs)(s,{flexDirection:`row`,marginY:1,children:[(0,L.jsx)(E,{}),(0,L.jsx)(i,{children:`Keeping worktree…`})]});if(n===`removing`)return(0,L.jsxs)(s,{flexDirection:`row`,marginY:1,children:[(0,L.jsx)(E,{}),(0,L.jsx)(i,{children:`Removing worktree…`})]});let v=h.worktreeBranch,C=o.length>0,w=l>0,T=``;T=C&&w?`You have ${o.length} uncommitted ${o.length===1?`file`:`files`} and ${l} ${l===1?`commit`:`commits`} on ${v}. All will be lost if you remove.`:C?`You have ${o.length} uncommitted ${o.length===1?`file`:`files`}. These will be lost if you remove the worktree.`:w?`You have ${l} ${l===1?`commit`:`commits`} on ${v}. The branch will be deleted if you remove the worktree.`:`You are working in a worktree. Keep it to continue working there, or remove it to clean up.`;function k(){if(t){t();return}_(`keep`)}let A=C||w?`All changes and commits will be lost.`:`Clean up the worktree directory.`,j=!!h.tmuxSessionName,M=j?[{label:`Keep worktree and tmux session`,value:`keep-with-tmux`,description:`Stays at ${h.worktreePath}. Reattach with: tmux attach -t ${h.tmuxSessionName}`},{label:`Keep worktree, kill tmux session`,value:`keep-kill-tmux`,description:`Keeps worktree at ${h.worktreePath}, terminates tmux session.`},{label:`Remove worktree and tmux session`,value:`remove-with-tmux`,description:A}]:[{label:`Keep worktree`,value:`keep`,description:`Stays at ${h.worktreePath}`},{label:`Remove worktree`,value:`remove`,description:A}];return(0,L.jsx)(a,{title:`Exiting worktree session`,subtitle:T,onCancel:k,children:(0,L.jsx)(D,{defaultFocusValue:j?`keep-with-tmux`:`keep`,options:M,onChange:_})})}var I,L,R=t((()=>{I=n(r(),1),p(),f(),o(),h(),w(),C(),M(),v(),A(),L=c()}));function z(){return u(H)??`Goodbye!`}function B({showWorktree:e,onDone:t,onCancel:n}){async function r(e){t(e??z()),await k(0,`prompt_input_exit`)}return e?(0,V.jsx)(F,{onDone:r,onCancel:n}):null}var V,H,U=t((()=>{l(),r(),T(),R(),V=c(),H=[`Goodbye!`,`See ya!`,`Bye!`,`Catch you later!`]}));export{U as n,B as t};
@@ -0,0 +1,2 @@
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{n,t as r}from"./axios-DhfaybwJ.js";import{F as i,Rn as a,b as o,f as s,g as c,h as l,t as u,tt as d,x as f,xt as ee}from"./src-Di342QoJ.js";import{t as p}from"./jsx-runtime-D-D469L8.js";import{cn as m,q as h}from"./state-sIHsFpDu.js";import{F as te,M as g,Pt as _,St as v,bt as y,on as b,wt as x}from"./paths-1ngPRtu3.js";import{E as S,d as C,s as w,w as T}from"./debug-UI3T040K.js";import{n as E,r as ne}from"./analytics-DqMQntaB.js";import{c as D,f as re,v as O}from"./git-CN3qtTb_.js";import{a as k,n as A}from"./env-chR0gV31.js";import{d as j,f as ie,i as ae,o as oe,s as M}from"./log-CzsijfHZ.js";import{Ar as se,Do as ce,EO as N,Fx as P,Hr as F,Ix as I,Ko as L,Lo as R,NO as z,TO as B,Tr as V,XS as H,ZS as U,nt as W,sr as G,tt as le,zw as ue}from"./loadAgentsDir-D7kapZB5.js";import{X as de}from"./rcDebugLog-CPGWJbI4.js";import{n as fe,t as pe}from"./browser-fLRXxIsQ.js";import{t as me}from"./useKeybinding-FsOnjW6T.js";import{readFile as he,stat as ge}from"fs/promises";function K(e){let t=e;return t=t.replace(/"(sk-ant[^\s"']{24,})"/g,`"[REDACTED_API_KEY]"`),t=t.replace(/(?<![A-Za-z0-9"'])(sk-ant-?[A-Za-z0-9_-]{10,})(?![A-Za-z0-9"'])/g,`[REDACTED_API_KEY]`),t=t.replace(/AWS key: "(AWS[A-Z0-9]{20,})"/g,`AWS key: "[REDACTED_AWS_KEY]"`),t=t.replace(/(AKIA[A-Z0-9]{16})/g,`[REDACTED_AWS_KEY]`),t=t.replace(/(?<![A-Za-z0-9])(AIza[A-Za-z0-9_-]{35})(?![A-Za-z0-9])/g,`[REDACTED_GCP_KEY]`),t=t.replace(/(?<![A-Za-z0-9])([a-z0-9-]+@[a-z0-9-]+\.iam\.gserviceaccount\.com)(?![A-Za-z0-9])/g,`[REDACTED_GCP_SERVICE_ACCOUNT]`),t=t.replace(/(["']?x-api-key["']?\s*[:=]\s*["']?)[^"',\s)}\]]+/gi,`$1[REDACTED_API_KEY]`),t=t.replace(/(["']?authorization["']?\s*[:=]\s*["']?(bearer\s+)?)[^"',\s)}\]]+/gi,`$1[REDACTED_TOKEN]`),t=t.replace(/(AWS[_-][A-Za-z0-9_]+\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,`$1[REDACTED_AWS_VALUE]`),t=t.replace(/(GOOGLE[_-][A-Za-z0-9_]+\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,`$1[REDACTED_GCP_VALUE]`),t=t.replace(/((API[-_]?KEY|TOKEN|SECRET|PASSWORD)\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,`$1[REDACTED]`),t}function q(){return ae().map(e=>{let t={...e};return t&&typeof t.error==`string`&&(t.error=K(t.error)),t})}async function _e(){try{let e=V(),{size:t}=await ge(e);return t>52428800?(C(`Skipping raw transcript read: file too large (${t} bytes)`,{level:`warn`}),null):await he(e,`utf-8`)}catch{return null}}function ve({abortSignal:e,messages:t,initialDescription:n,onDone:r,backgroundTasks:a={}}){let[u,p]=(0,X.useState)(`userInput`),[m,g]=(0,X.useState)(0),[_,v]=(0,X.useState)(n??``),[y,b]=(0,X.useState)(null),[x,S]=(0,X.useState)(null),[C,w]=(0,X.useState)({isGit:!1,gitState:null}),[T,E]=(0,X.useState)(null),O=i().columns-4;(0,X.useEffect)(()=>{async function e(){let e=await re(),t=null;e&&(t=await D()),w({isGit:e,gitState:t})}e()},[]);let k=(0,X.useCallback)(async()=>{p(`submitting`),S(null),b(null);let n=q(),r=ce(t)?.requestId??null,[i,o]=await Promise.all([F(),_e()]),s=G(a),c={...i,...s},l={latestAssistantMessageId:r,message_count:t.length,datetime:new Date().toISOString(),description:_,platform:A.platform,gitRepo:C.isGit,terminal:A.terminal,version:`2.6.6`,transcript:L(t),errors:n,lastApiRequest:h(),...Object.keys(c).length>0&&{subagentTranscripts:c},...o&&{rawTranscriptJsonl:o}},[u,d]=await Promise.all([xe(l,e),be(_,e)]);E(d),u.success?(u.feedbackId&&(b(u.feedbackId),ne(`tengu_bug_report_submitted`,{feedback_id:u.feedbackId,last_assistant_message_id:r}),te(`tengu_bug_report_description`,{feedback_id:u.feedbackId,description:K(_)})),p(`done`)):(u.isZdrOrg?S(`Feedback collection is not available for organizations with custom data retention policies.`):S(`Could not submit feedback. Please try again later.`),p(`userInput`))},[_,C.isGit,t]),j=(0,X.useCallback)(()=>{if(u===`done`){r(x?`Error submitting feedback / bug report`:`Feedback / bug report submitted`,{display:`system`});return}r(`Feedback / bug report cancelled`,{display:`system`})},[u,x,r]);return d(`confirm:no`,j,{context:`Settings`,isActive:u===`userInput`}),ee((e,t)=>{if(u===`done`){t.return&&T&&fe(ye(y??``,T,_,q())),r(x?`Error submitting feedback / bug report`:`Feedback / bug report submitted`,{display:`system`});return}if(x&&u!==`userInput`){r(`Error submitting feedback / bug report`,{display:`system`});return}u===`consent`&&(t.return||e===` `)&&k()}),(0,Z.jsxs)(s,{title:`Submit Feedback / Bug Report`,onCancel:j,isCancelActive:u!==`userInput`,inputGuide:e=>e.pending?(0,Z.jsxs)(o,{children:[`Press `,e.keyName,` again to exit`]}):u===`userInput`?(0,Z.jsxs)(l,{children:[(0,Z.jsx)(c,{shortcut:`Enter`,action:`continue`}),(0,Z.jsx)(H,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})]}):u===`consent`?(0,Z.jsxs)(l,{children:[(0,Z.jsx)(c,{shortcut:`Enter`,action:`submit`}),(0,Z.jsx)(H,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})]}):null,children:[u===`userInput`&&(0,Z.jsxs)(f,{flexDirection:`column`,gap:1,children:[(0,Z.jsx)(o,{children:`Describe the issue below:`}),(0,Z.jsx)(P,{value:_,onChange:e=>{v(e),x&&S(null)},columns:O,onSubmit:()=>p(`consent`),onExitMessage:()=>r(`Feedback cancelled`,{display:`system`}),cursorOffset:m,onChangeCursorOffset:g,showCursor:!0}),x&&(0,Z.jsxs)(f,{flexDirection:`column`,gap:1,children:[(0,Z.jsx)(o,{color:`error`,children:x}),(0,Z.jsx)(o,{dimColor:!0,children:`Edit and press Enter to retry, or Esc to cancel`})]})]}),u===`consent`&&(0,Z.jsxs)(f,{flexDirection:`column`,children:[(0,Z.jsx)(o,{children:`This report will include:`}),(0,Z.jsxs)(f,{marginLeft:2,flexDirection:`column`,children:[(0,Z.jsxs)(o,{children:[`- Your feedback / bug description: `,(0,Z.jsx)(o,{dimColor:!0,children:_})]}),(0,Z.jsxs)(o,{children:[`- Environment info:`,` `,(0,Z.jsxs)(o,{dimColor:!0,children:[A.platform,`, `,A.terminal,`, v`,`2.6.6`]})]}),C.gitState&&(0,Z.jsxs)(o,{children:[`- Git repo metadata:`,` `,(0,Z.jsxs)(o,{dimColor:!0,children:[C.gitState.branchName,C.gitState.commitHash?`, ${C.gitState.commitHash.slice(0,7)}`:``,C.gitState.remoteUrl?` @ ${C.gitState.remoteUrl}`:``,!C.gitState.isHeadOnRemote&&`, not synced`,!C.gitState.isClean&&`, has local changes`]})]}),(0,Z.jsx)(o,{children:`- Current session transcript`})]}),(0,Z.jsx)(f,{marginTop:1,children:(0,Z.jsx)(o,{wrap:`wrap`,dimColor:!0,children:`We will use your feedback to debug related issues or to improve Claude Code's functionality (eg. to reduce the risk of bugs occurring in the future).`})}),(0,Z.jsx)(f,{marginTop:1,children:(0,Z.jsxs)(o,{children:[`Press `,(0,Z.jsx)(o,{bold:!0,children:`Enter`}),` to confirm and submit.`]})})]}),u===`submitting`&&(0,Z.jsx)(f,{flexDirection:`row`,gap:1,children:(0,Z.jsx)(o,{children:`Submitting report…`})}),u===`done`&&(0,Z.jsxs)(f,{flexDirection:`column`,children:[x?(0,Z.jsx)(o,{color:`error`,children:x}):(0,Z.jsx)(o,{color:`success`,children:`Thank you for your report!`}),y&&(0,Z.jsxs)(o,{dimColor:!0,children:[`Feedback ID: `,y]}),(0,Z.jsxs)(f,{marginTop:1,children:[(0,Z.jsx)(o,{children:`Press `}),(0,Z.jsx)(o,{bold:!0,children:`Enter `}),(0,Z.jsx)(o,{children:`to open your browser and draft a GitHub issue, or any other key to close.`})]})]})]})}function ye(e,t,n,r){let i=K(t),a=`**Bug Description**\n${K(n)}\n\n**Environment Info**\n- Platform: ${A.platform}\n- Terminal: ${A.terminal}\n- Version: 2.6.6\n- Feedback ID: ${e}\n\n**Errors**\n\`\`\`json\n`,o=S(r),s=`${$}/new?title=${encodeURIComponent(i)}&labels=user-reported,bug&body=`,c=encodeURIComponent(a),l=encodeURIComponent(o),u=Q-s.length-c.length-15-46;if(u<=0){let e=Q-s.length-9-46-50,t=a+o+"\n```\n",n=encodeURIComponent(t);if(n.length>e){n=n.slice(0,e);let t=n.lastIndexOf(`%`);t>=n.length-2&&(n=n.slice(0,t))}return s+n+`%E2%80%A6%0A**Note%3A**%20Content%20was%20truncated.%0A`}if(l.length<=u)return s+c+l+`%0A%60%60%60%0A`;let d=l.slice(0,u-9-50),f=d.lastIndexOf(`%`);return f>=d.length-2&&(d=d.slice(0,f)),s+c+d+`%E2%80%A6%0A%60%60%60%0A%0A**Note%3A**%20Content%20was%20truncated.%0A`}async function be(e,t){try{let n=(await W({systemPrompt:de([`Generate a concise, technical issue title (max 80 chars) for a public GitHub issue based on this bug report for Claude Code.`,`Claude Code is an agentic coding CLI based on the Anthropic API.`,`The title should:`,`- Include the type of issue [Bug] or [Feature Request] as the first thing in the title`,`- Be concise, specific and descriptive of the actual problem`,`- Use technical terminology appropriate for a software issue`,`- For error messages, extract the key error (e.g., "Missing Tool Result Block" rather than the full message)`,`- Be direct and clear for developers to understand the problem`,`- If you cannot determine a clear issue, use "Bug Report: [brief description]"`,`- Any LLM API errors are from the Anthropic API, not from any other model provider`,`Your response will be directly used as the title of the Github issue, and as such should not contain any other commentary or explaination`,`Examples of good titles include: "[Bug] Auto-Compact triggers to soon", "[Bug] Anthropic API Error: Missing Tool Result Block", "[Bug] Error: Invalid Model Name for Opus"`]),userPrompt:e,signal:t,options:{hasAppendSystemPrompt:!1,toolChoice:void 0,isNonInteractiveSession:!1,agents:[],querySource:`feedback`,mcpTools:[]}}))?.message?.content?.[0],r=n?.type===`text`?n.text:`Bug Report`;return N(r)?J(e):r}catch(t){return M(t),J(e)}}function J(e){let t=e.split(`
2
+ `)[0]||``;if(t.length<=60&&t.length>5)return t;let n=t.slice(0,60);if(t.length>60){let e=n.lastIndexOf(` `);e>30&&(n=n.slice(0,e)),n+=`...`}return n.length<10?`Bug Report`:n}function Y(e){if(e instanceof Error){let t=Error(K(e.message));e.stack&&(t.stack=K(e.stack)),M(t)}else{let t=K(String(e));M(Error(t))}}async function xe(e,t){if(ie())return{success:!1};try{await _();let r=y();if(r.error)return{success:!1};let i={"Content-Type":`application/json`,"User-Agent":v(),...r.headers},a=await n.post(`https://api.anthropic.com/api/claude_cli_feedback`,{content:S(e)},{headers:i,timeout:3e4,signal:t});if(a.status===200){let e=a.data;return e?.feedback_id?{success:!0,feedbackId:e.feedback_id}:(Y(Error(`Failed to submit feedback: request did not return feedback_id`)),{success:!1})}return Y(Error(`Failed to submit feedback:`+a.status)),{success:!1}}catch(e){if(n.isCancel(e))return{success:!1};if(n.isAxiosError(e)&&e.response?.status===403){let t=e.response.data;if(t?.error?.type===`permission_error`&&t?.error?.message?.includes(`Custom data retention settings`))return Y(Error(`Cannot submit feedback because custom data retention settings are enabled`)),{success:!1,isZdrOrg:!0}}return Y(e),{success:!1}}}var X,Z,Q,$,Se=e((()=>{r(),a(),X=t(a(),1),m(),g(),E(),R(),ue(),u(),me(),le(),B(),b(),pe(),w(),k(),O(),x(),oe(),j(),se(),T(),z(),U(),I(),Z=p(),Q=7250,$=process.env.USER_TYPE===`ant`?`https://github.com/anthropics/claude-cli-internal/issues`:`https://github.com/anthropics/claude-code/issues`}));export{Se as n,K as r,ve as t};
@@ -0,0 +1 @@
1
+ import{r as e,t}from"./Grove-Tp_UtIMg.js";e();export{t as GroveDialog};
@@ -1,4 +1,4 @@
1
- import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{Q as n,Rn as r,b as i,f as a,g as o,h as s,t as c,x as l,xt as u}from"./src-Di342QoJ.js";import{t as d}from"./jsx-runtime-D-D469L8.js";import{n as f,r as p}from"./analytics-DqMQntaB.js";import{BT as m,Dx as h,LT as g,UT as _,VT as v,WT as y,cy as b,zT as x}from"./loadAgentsDir-DI1a76pd.js";function S(){return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(i,{children:[`An update to our Consumer Terms and Privacy Policy will take effect on `,(0,D.jsx)(i,{bold:!0,children:`October 8, 2025`}),`. You can accept the updated terms today.`]}),(0,D.jsxs)(l,{flexDirection:`column`,children:[(0,D.jsx)(i,{children:`What's changing?`}),(0,D.jsx)(l,{paddingLeft:1,children:(0,D.jsxs)(i,{children:[(0,D.jsx)(i,{children:`· `}),(0,D.jsx)(i,{bold:!0,children:`You can help improve Claude `}),(0,D.jsxs)(i,{children:[`— Allow the use of your chats and coding sessions to train and improve Anthropic AI models. Change anytime in your Privacy Settings (`,(0,D.jsx)(n,{url:`https://claude.ai/settings/data-privacy-controls`}),`).`]})]})}),(0,D.jsx)(l,{paddingLeft:1,children:(0,D.jsxs)(i,{children:[(0,D.jsx)(i,{children:`· `}),(0,D.jsx)(i,{bold:!0,children:`Updates to data retention `}),(0,D.jsx)(i,{children:`— To help us improve our AI models and safety protections, we're extending data retention to 5 years.`})]})})]}),(0,D.jsxs)(i,{children:[`Learn more (`,(0,D.jsx)(n,{url:`https://www.anthropic.com/news/updates-to-our-consumer-terms`}),`) or read the updated Consumer Terms (`,(0,D.jsx)(n,{url:`https://anthropic.com/legal/terms`}),`) and Privacy Policy (`,(0,D.jsx)(n,{url:`https://anthropic.com/legal/privacy`}),`)`]})]})}function C(){return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(i,{children:`We've updated our Consumer Terms and Privacy Policy.`}),(0,D.jsxs)(l,{flexDirection:`column`,gap:1,children:[(0,D.jsx)(i,{children:`What's changing?`}),(0,D.jsxs)(l,{flexDirection:`column`,children:[(0,D.jsx)(i,{bold:!0,children:`Help improve Claude`}),(0,D.jsx)(i,{children:`Allow the use of your chats and coding sessions to train and improve Anthropic AI models. You can change this anytime in Privacy Settings`}),(0,D.jsx)(n,{url:`https://claude.ai/settings/data-privacy-controls`})]}),(0,D.jsxs)(l,{flexDirection:`column`,children:[(0,D.jsx)(i,{bold:!0,children:`How this affects data retention`}),(0,D.jsx)(i,{children:`Turning ON the improve Claude setting extends data retention from 30 days to 5 years. Turning it OFF keeps the default 30-day data retention. Delete data anytime.`})]})]}),(0,D.jsxs)(i,{children:[`Learn more (`,(0,D.jsx)(n,{url:`https://www.anthropic.com/news/updates-to-our-consumer-terms`}),`) or read the updated Consumer Terms (`,(0,D.jsx)(n,{url:`https://anthropic.com/legal/terms`}),`) and Privacy Policy (`,(0,D.jsx)(n,{url:`https://anthropic.com/legal/privacy`}),`)`]})]})}function w({showIfAlreadyViewed:e,location:t,onDone:n}){let[r,c]=(0,E.useState)(null),[u,d]=(0,E.useState)(null);if((0,E.useEffect)(()=>{async function r(){let[r,i]=await Promise.all([m(),x()]),a=i.success?i.data:null;d(a);let o=g(r,i,e);if(c(o),!o){n(`skip_rendering`);return}_(),p(`tengu_grove_policy_viewed`,{location:t,dismissable:a?.notice_is_grace_period})}r()},[e,t,n]),r===null||!r)return null;async function f(e){switch(e){case`accept_opt_in`:await y(!0),p(`tengu_grove_policy_submitted`,{state:!0,dismissable:u?.notice_is_grace_period});break;case`accept_opt_out`:await y(!1),p(`tengu_grove_policy_submitted`,{state:!1,dismissable:u?.notice_is_grace_period});break;case`defer`:p(`tengu_grove_policy_dismissed`,{state:!0});break;case`escape`:p(`tengu_grove_policy_escaped`,{});break}n(e)}let v=u?.domain_excluded?[{label:`Accept terms · Help improve Claude: OFF (for emails with your domain)`,value:`accept_opt_out`}]:[{label:`Accept terms · Help improve Claude: ON`,value:`accept_opt_in`},{label:`Accept terms · Help improve Claude: OFF`,value:`accept_opt_out`}];function b(){if(u?.notice_is_grace_period){f(`defer`);return}f(`escape`)}return(0,D.jsxs)(a,{title:`Updates to Consumer Terms and Policies`,color:`professionalBlue`,onCancel:b,inputGuide:e=>e.pending?(0,D.jsxs)(i,{children:[`Press `,e.keyName,` again to exit`]}):(0,D.jsxs)(s,{children:[(0,D.jsx)(o,{shortcut:`Enter`,action:`confirm`}),(0,D.jsx)(o,{shortcut:`Esc`,action:`cancel`})]}),children:[(0,D.jsxs)(l,{flexDirection:`row`,children:[(0,D.jsx)(l,{flexDirection:`column`,gap:1,flexGrow:1,children:u?.notice_is_grace_period?(0,D.jsx)(S,{}):(0,D.jsx)(C,{})}),(0,D.jsx)(l,{flexShrink:0,children:(0,D.jsx)(i,{color:`professionalBlue`,children:O})})]}),(0,D.jsxs)(l,{flexDirection:`column`,gap:1,children:[(0,D.jsxs)(l,{flexDirection:`column`,children:[(0,D.jsx)(i,{bold:!0,children:`Please select how you'd like to continue`}),(0,D.jsx)(i,{children:`Your choice takes effect immediately upon confirmation.`})]}),(0,D.jsx)(h,{options:[...v,...u?.notice_is_grace_period?[{label:`Not now`,value:`defer`}]:[]],onChange:e=>f(e),onCancel:b})]})]})}function T({settings:e,domainExcluded:t,onDone:r}){let[c,d]=(0,E.useState)(e.grove_enabled);E.useEffect(()=>{p(`tengu_grove_privacy_settings_viewed`,{})},[]),u(async(e,n)=>{if(!t&&(n.tab||n.return||e===` `)){let e=!c;d(e),await y(e)}});let f=(0,D.jsx)(i,{color:`error`,children:`false`});return t?f=(0,D.jsx)(i,{color:`error`,children:`false (for emails with your domain)`}):c&&(f=(0,D.jsx)(i,{color:`success`,children:`true`})),(0,D.jsxs)(a,{title:`Data Privacy`,color:`professionalBlue`,onCancel:r,inputGuide:e=>e.pending?(0,D.jsxs)(i,{children:[`Press `,e.keyName,` again to exit`]}):t?(0,D.jsx)(o,{shortcut:`Esc`,action:`cancel`}):(0,D.jsxs)(s,{children:[(0,D.jsx)(o,{shortcut:`Enter/Tab/Space`,action:`toggle`}),(0,D.jsx)(o,{shortcut:`Esc`,action:`cancel`})]}),children:[(0,D.jsxs)(i,{children:[`Review and manage your privacy settings at`,` `,(0,D.jsx)(n,{url:`https://claude.ai/settings/data-privacy-controls`})]}),(0,D.jsxs)(l,{children:[(0,D.jsx)(l,{width:44,children:(0,D.jsx)(i,{bold:!0,children:`Help improve Claude`})}),(0,D.jsx)(l,{children:f})]})]})}var E,D,O,k=e((()=>{E=t(r()),f(),c(),v(),b(),D=d(),O=` _____________
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{Q as n,Rn as r,b as i,f as a,g as o,h as s,t as c,x as l,xt as u}from"./src-Di342QoJ.js";import{t as d}from"./jsx-runtime-D-D469L8.js";import{n as f,r as p}from"./analytics-DqMQntaB.js";import{GT as m,HT as h,KT as g,UT as _,VT as v,kx as y,uy as b,zT as x}from"./loadAgentsDir-D7kapZB5.js";function S(){return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(i,{children:[`An update to our Consumer Terms and Privacy Policy will take effect on `,(0,D.jsx)(i,{bold:!0,children:`October 8, 2025`}),`. You can accept the updated terms today.`]}),(0,D.jsxs)(l,{flexDirection:`column`,children:[(0,D.jsx)(i,{children:`What's changing?`}),(0,D.jsx)(l,{paddingLeft:1,children:(0,D.jsxs)(i,{children:[(0,D.jsx)(i,{children:`· `}),(0,D.jsx)(i,{bold:!0,children:`You can help improve Claude `}),(0,D.jsxs)(i,{children:[`— Allow the use of your chats and coding sessions to train and improve Anthropic AI models. Change anytime in your Privacy Settings (`,(0,D.jsx)(n,{url:`https://claude.ai/settings/data-privacy-controls`}),`).`]})]})}),(0,D.jsx)(l,{paddingLeft:1,children:(0,D.jsxs)(i,{children:[(0,D.jsx)(i,{children:`· `}),(0,D.jsx)(i,{bold:!0,children:`Updates to data retention `}),(0,D.jsx)(i,{children:`— To help us improve our AI models and safety protections, we're extending data retention to 5 years.`})]})})]}),(0,D.jsxs)(i,{children:[`Learn more (`,(0,D.jsx)(n,{url:`https://www.anthropic.com/news/updates-to-our-consumer-terms`}),`) or read the updated Consumer Terms (`,(0,D.jsx)(n,{url:`https://anthropic.com/legal/terms`}),`) and Privacy Policy (`,(0,D.jsx)(n,{url:`https://anthropic.com/legal/privacy`}),`)`]})]})}function C(){return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(i,{children:`We've updated our Consumer Terms and Privacy Policy.`}),(0,D.jsxs)(l,{flexDirection:`column`,gap:1,children:[(0,D.jsx)(i,{children:`What's changing?`}),(0,D.jsxs)(l,{flexDirection:`column`,children:[(0,D.jsx)(i,{bold:!0,children:`Help improve Claude`}),(0,D.jsx)(i,{children:`Allow the use of your chats and coding sessions to train and improve Anthropic AI models. You can change this anytime in Privacy Settings`}),(0,D.jsx)(n,{url:`https://claude.ai/settings/data-privacy-controls`})]}),(0,D.jsxs)(l,{flexDirection:`column`,children:[(0,D.jsx)(i,{bold:!0,children:`How this affects data retention`}),(0,D.jsx)(i,{children:`Turning ON the improve Claude setting extends data retention from 30 days to 5 years. Turning it OFF keeps the default 30-day data retention. Delete data anytime.`})]})]}),(0,D.jsxs)(i,{children:[`Learn more (`,(0,D.jsx)(n,{url:`https://www.anthropic.com/news/updates-to-our-consumer-terms`}),`) or read the updated Consumer Terms (`,(0,D.jsx)(n,{url:`https://anthropic.com/legal/terms`}),`) and Privacy Policy (`,(0,D.jsx)(n,{url:`https://anthropic.com/legal/privacy`}),`)`]})]})}function w({showIfAlreadyViewed:e,location:t,onDone:n}){let[r,c]=(0,E.useState)(null),[u,d]=(0,E.useState)(null);if((0,E.useEffect)(()=>{async function r(){let[r,i]=await Promise.all([h(),v()]),a=i.success?i.data:null;d(a);let o=x(r,i,e);if(c(o),!o){n(`skip_rendering`);return}m(),p(`tengu_grove_policy_viewed`,{location:t,dismissable:a?.notice_is_grace_period})}r()},[e,t,n]),r===null||!r)return null;async function f(e){switch(e){case`accept_opt_in`:await g(!0),p(`tengu_grove_policy_submitted`,{state:!0,dismissable:u?.notice_is_grace_period});break;case`accept_opt_out`:await g(!1),p(`tengu_grove_policy_submitted`,{state:!1,dismissable:u?.notice_is_grace_period});break;case`defer`:p(`tengu_grove_policy_dismissed`,{state:!0});break;case`escape`:p(`tengu_grove_policy_escaped`,{});break}n(e)}let _=u?.domain_excluded?[{label:`Accept terms · Help improve Claude: OFF (for emails with your domain)`,value:`accept_opt_out`}]:[{label:`Accept terms · Help improve Claude: ON`,value:`accept_opt_in`},{label:`Accept terms · Help improve Claude: OFF`,value:`accept_opt_out`}];function b(){if(u?.notice_is_grace_period){f(`defer`);return}f(`escape`)}return(0,D.jsxs)(a,{title:`Updates to Consumer Terms and Policies`,color:`professionalBlue`,onCancel:b,inputGuide:e=>e.pending?(0,D.jsxs)(i,{children:[`Press `,e.keyName,` again to exit`]}):(0,D.jsxs)(s,{children:[(0,D.jsx)(o,{shortcut:`Enter`,action:`confirm`}),(0,D.jsx)(o,{shortcut:`Esc`,action:`cancel`})]}),children:[(0,D.jsxs)(l,{flexDirection:`row`,children:[(0,D.jsx)(l,{flexDirection:`column`,gap:1,flexGrow:1,children:u?.notice_is_grace_period?(0,D.jsx)(S,{}):(0,D.jsx)(C,{})}),(0,D.jsx)(l,{flexShrink:0,children:(0,D.jsx)(i,{color:`professionalBlue`,children:O})})]}),(0,D.jsxs)(l,{flexDirection:`column`,gap:1,children:[(0,D.jsxs)(l,{flexDirection:`column`,children:[(0,D.jsx)(i,{bold:!0,children:`Please select how you'd like to continue`}),(0,D.jsx)(i,{children:`Your choice takes effect immediately upon confirmation.`})]}),(0,D.jsx)(y,{options:[..._,...u?.notice_is_grace_period?[{label:`Not now`,value:`defer`}]:[]],onChange:e=>f(e),onCancel:b})]})]})}function T({settings:e,domainExcluded:t,onDone:r}){let[c,d]=(0,E.useState)(e.grove_enabled);E.useEffect(()=>{p(`tengu_grove_privacy_settings_viewed`,{})},[]),u(async(e,n)=>{if(!t&&(n.tab||n.return||e===` `)){let e=!c;d(e),await g(e)}});let f=(0,D.jsx)(i,{color:`error`,children:`false`});return t?f=(0,D.jsx)(i,{color:`error`,children:`false (for emails with your domain)`}):c&&(f=(0,D.jsx)(i,{color:`success`,children:`true`})),(0,D.jsxs)(a,{title:`Data Privacy`,color:`professionalBlue`,onCancel:r,inputGuide:e=>e.pending?(0,D.jsxs)(i,{children:[`Press `,e.keyName,` again to exit`]}):t?(0,D.jsx)(o,{shortcut:`Esc`,action:`cancel`}):(0,D.jsxs)(s,{children:[(0,D.jsx)(o,{shortcut:`Enter/Tab/Space`,action:`toggle`}),(0,D.jsx)(o,{shortcut:`Esc`,action:`cancel`})]}),children:[(0,D.jsxs)(i,{children:[`Review and manage your privacy settings at`,` `,(0,D.jsx)(n,{url:`https://claude.ai/settings/data-privacy-controls`})]}),(0,D.jsxs)(l,{children:[(0,D.jsx)(l,{width:44,children:(0,D.jsx)(i,{bold:!0,children:`Help improve Claude`})}),(0,D.jsx)(l,{children:f})]})]})}var E,D,O,k=e((()=>{E=t(r()),f(),c(),_(),b(),D=d(),O=` _____________
2
2
  | \\ \\
3
3
  | NEW TERMS \\__\\
4
4
  | |
@@ -1,4 +1,4 @@
1
- import{s as e,u as t}from"./envUtils-BWeoiL4Y.js";import{n,t as r}from"./defineProperty-80gRi2ZW.js";import{n as i,t as a}from"./axios-DhfaybwJ.js";import{E as o,d as s,s as c,w as l}from"./debug-UI3T040K.js";import{n as u,r as d}from"./analytics-DqMQntaB.js";import{F as f,P as p}from"./git-CN3qtTb_.js";import{c as m,g as h,h as g,l as _,u as v}from"./proxy-CfZp-wce.js";import{Qm as y,Zm as b}from"./loadAgentsDir-DI1a76pd.js";import{D as x,O as S,a as C,l as w,n as T,r as E,t as D}from"./rcDebugLog-CPKZCtR8.js";import{r as O}from"./ccrClient-BaWg4E9-.js";a(),S(),u(),y(),c(),D(),p(),e(),h(),v(),E(),l(),n();var k=`{"type":"keep_alive"}
2
- `,A=1e3,j=1e3,M=3e4,N=6e5,P=1e4,F=12e4,I=M*2,L=new Set([1002,4001,4003]),R=class{constructor(e,t={},n,i,a){r(this,`ws`,null),r(this,`lastSentId`,null),r(this,`url`,void 0),r(this,`state`,`idle`),r(this,`onData`,void 0),r(this,`onCloseCallback`,void 0),r(this,`onConnectCallback`,void 0),r(this,`headers`,void 0),r(this,`sessionId`,void 0),r(this,`autoReconnect`,void 0),r(this,`isBridge`,void 0),r(this,`reconnectAttempts`,0),r(this,`reconnectStartTime`,null),r(this,`reconnectTimer`,null),r(this,`lastReconnectAttemptTime`,null),r(this,`lastActivityTime`,0),r(this,`pingInterval`,null),r(this,`pongReceived`,!0),r(this,`keepAliveInterval`,null),r(this,`messageBuffer`,void 0),r(this,`isBunWs`,!1),r(this,`connectStartTime`,0),r(this,`refreshHeaders`,void 0),r(this,`onBunOpen`,()=>{this.handleOpenEvent(),this.lastSentId&&this.replayBufferedMessages(``)}),r(this,`onBunMessage`,e=>{let t=typeof e.data==`string`?e.data:String(e.data);this.lastActivityTime=Date.now(),f(`info`,`cli_websocket_message_received`,{length:t.length}),this.onData&&this.onData(t)}),r(this,`onBunError`,()=>{s(`WebSocketTransport: Error`,{level:`error`}),f(`error`,`cli_websocket_connect_error`)}),r(this,`onBunClose`,e=>{let t=e.code===1e3||e.code===1001;s(`WebSocketTransport: Closed: ${e.code}`,t?void 0:{level:`error`}),f(`error`,`cli_websocket_connect_closed`),this.handleConnectionError(e.code)}),r(this,`onNodeOpen`,()=>{let e=this.ws;if(this.handleOpenEvent(),!e)return;let t=e.upgradeReq;if(t?.headers?.[`x-last-request-id`]){let e=t.headers[`x-last-request-id`];this.replayBufferedMessages(e)}}),r(this,`onNodeMessage`,e=>{let t=e.toString();this.lastActivityTime=Date.now(),f(`info`,`cli_websocket_message_received`,{length:t.length}),this.onData&&this.onData(t)}),r(this,`onNodeError`,e=>{s(`WebSocketTransport: Error: ${e.message}`,{level:`error`}),f(`error`,`cli_websocket_connect_error`)}),r(this,`onNodeClose`,(e,t)=>{let n=e===1e3||e===1001;s(`WebSocketTransport: Closed: ${e}`,n?void 0:{level:`error`}),f(`error`,`cli_websocket_connect_closed`),this.handleConnectionError(e)}),r(this,`onPong`,()=>{this.pongReceived=!0}),this.url=e,this.headers=t,this.sessionId=n,this.refreshHeaders=i,this.autoReconnect=a?.autoReconnect??!0,this.isBridge=a?.isBridge??!1,this.messageBuffer=new b(A)}async connect(){if(this.state!==`idle`&&this.state!==`reconnecting`){s(`WebSocketTransport: Cannot connect, current state is ${this.state}`,{level:`error`}),f(`error`,`cli_websocket_connect_failed`);return}this.state=`reconnecting`,this.connectStartTime=Date.now(),s(`WebSocketTransport: Opening ${this.url.href}`),f(`info`,`cli_websocket_connect_opening`);let e={...this.headers};if(this.lastSentId&&(e[`X-Last-Request-Id`]=this.lastSentId,s(`WebSocketTransport: Adding X-Last-Request-Id header: ${this.lastSentId}`)),typeof Bun<`u`){let t=new globalThis.WebSocket(this.url.href,{headers:e,proxy:_(this.url.href),tls:g()||void 0});this.ws=t,this.isBunWs=!0,t.addEventListener(`open`,this.onBunOpen),t.addEventListener(`message`,this.onBunMessage),t.addEventListener(`error`,this.onBunError),t.addEventListener(`close`,this.onBunClose),t.addEventListener(`pong`,this.onPong)}else{let{default:t}=await import(`./wrapper-BSK0MCQH.js`),n=new t(this.url.href,{headers:e,agent:m(this.url.href),...g()});this.ws=n,this.isBunWs=!1,n.on(`open`,this.onNodeOpen),n.on(`message`,this.onNodeMessage),n.on(`error`,this.onNodeError),n.on(`close`,this.onNodeClose),n.on(`pong`,this.onPong)}}handleOpenEvent(){let e=Date.now()-this.connectStartTime;s(`WebSocketTransport: Connected`),f(`info`,`cli_websocket_connect_connected`,{duration_ms:e}),this.isBridge&&this.reconnectStartTime!==null&&d(`tengu_ws_transport_reconnected`,{attempts:this.reconnectAttempts,downtimeMs:Date.now()-this.reconnectStartTime}),this.reconnectAttempts=0,this.reconnectStartTime=null,this.lastReconnectAttemptTime=null,this.lastActivityTime=Date.now(),this.state=`connected`,this.onConnectCallback?.(),this.startPingInterval(),this.startKeepaliveInterval(),C(()=>{this.write({type:`keep_alive`})})}sendLine(e){if(!this.ws||this.state!==`connected`)return s(`WebSocketTransport: Not connected`),f(`info`,`cli_websocket_send_not_connected`),!1;try{return this.ws.send(e),this.lastActivityTime=Date.now(),!0}catch(e){return s(`WebSocketTransport: Failed to send: ${e}`,{level:`error`}),f(`error`,`cli_websocket_send_error`),this.handleConnectionError(),!1}}removeWsListeners(e){if(this.isBunWs){let t=e;t.removeEventListener(`open`,this.onBunOpen),t.removeEventListener(`message`,this.onBunMessage),t.removeEventListener(`error`,this.onBunError),t.removeEventListener(`close`,this.onBunClose),t.removeEventListener(`pong`,this.onPong)}else{let t=e;t.off(`open`,this.onNodeOpen),t.off(`message`,this.onNodeMessage),t.off(`error`,this.onNodeError),t.off(`close`,this.onNodeClose),t.off(`pong`,this.onPong)}}doDisconnect(){this.stopPingInterval(),this.stopKeepaliveInterval(),w(),this.ws&&(this.removeWsListeners(this.ws),this.ws.close(),this.ws=null)}handleConnectionError(e){if(T(`WS handleConnectionError: code=${e} state=${this.state} url=${this.url.href.replace(/token=[^&]+/,`token=***`)} msSinceLastActivity=${this.lastActivityTime>0?Date.now()-this.lastActivityTime:-1} reconnectAttempts=${this.reconnectAttempts}`),s(`WebSocketTransport: Disconnected from ${this.url.href}`+(e==null?``:` (code ${e})`)),f(`info`,`cli_websocket_disconnected`),this.isBridge&&d(`tengu_ws_transport_closed`,{closeCode:e,msSinceLastActivity:this.lastActivityTime>0?Date.now()-this.lastActivityTime:-1,wasConnected:this.state===`connected`,reconnectAttempts:this.reconnectAttempts}),this.doDisconnect(),this.state===`closing`||this.state===`closed`)return;let t=!1;if(e===4003&&this.refreshHeaders){let e=this.refreshHeaders();e.Authorization!==this.headers.Authorization&&(Object.assign(this.headers,e),t=!0,s(`WebSocketTransport: 4003 received but headers refreshed, scheduling reconnect`),f(`info`,`cli_websocket_4003_token_refreshed`))}if(e!=null&&L.has(e)&&!t){s(`WebSocketTransport: Permanent close code ${e}, not reconnecting`,{level:`error`}),f(`error`,`cli_websocket_permanent_close`,{closeCode:e}),this.state=`closed`,this.onCloseCallback?.(e);return}if(!this.autoReconnect){this.state=`closed`,this.onCloseCallback?.(e);return}let n=Date.now();this.reconnectStartTime||(this.reconnectStartTime=n),this.lastReconnectAttemptTime!==null&&n-this.lastReconnectAttemptTime>I&&(s(`WebSocketTransport: Detected system sleep (${Math.round((n-this.lastReconnectAttemptTime)/1e3)}s gap), resetting reconnection budget`),f(`info`,`cli_websocket_sleep_detected`,{gapMs:n-this.lastReconnectAttemptTime}),this.reconnectStartTime=n,this.reconnectAttempts=0),this.lastReconnectAttemptTime=n;let r=n-this.reconnectStartTime;if(r<N){if(this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),!t&&this.refreshHeaders){let e=this.refreshHeaders();Object.assign(this.headers,e),s(`WebSocketTransport: Refreshed headers for reconnect`)}this.state=`reconnecting`,this.reconnectAttempts++;let e=Math.min(j*2**(this.reconnectAttempts-1),M),n=Math.max(0,e+e*.25*(2*Math.random()-1));s(`WebSocketTransport: Reconnecting in ${Math.round(n)}ms (attempt ${this.reconnectAttempts}, ${Math.round(r/1e3)}s elapsed)`),f(`error`,`cli_websocket_reconnect_attempt`,{reconnectAttempts:this.reconnectAttempts}),this.isBridge&&d(`tengu_ws_transport_reconnecting`,{attempt:this.reconnectAttempts,elapsedMs:r,delayMs:Math.round(n)}),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},n)}else s(`WebSocketTransport: Reconnection time budget exhausted after ${Math.round(r/1e3)}s for ${this.url.href}`,{level:`error`}),f(`error`,`cli_websocket_reconnect_exhausted`,{reconnectAttempts:this.reconnectAttempts,elapsedMs:r}),this.state=`closed`,this.onCloseCallback&&this.onCloseCallback(e)}close(){this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.stopPingInterval(),this.stopKeepaliveInterval(),w(),this.state=`closing`,this.doDisconnect()}replayBufferedMessages(e){let t=this.messageBuffer.toArray();if(t.length===0)return;let n=0;if(e){let r=t.findIndex(t=>`uuid`in t&&t.uuid===e);if(r>=0){n=r+1;let e=t.slice(n);this.messageBuffer.clear(),this.messageBuffer.addAll(e),e.length===0&&(this.lastSentId=null),s(`WebSocketTransport: Evicted ${n} confirmed messages, ${e.length} remaining`),f(`info`,`cli_websocket_evicted_confirmed_messages`,{evicted:n,remaining:e.length})}}let r=t.slice(n);if(r.length===0){s(`WebSocketTransport: No new messages to replay`),f(`info`,`cli_websocket_no_messages_to_replay`);return}s(`WebSocketTransport: Replaying ${r.length} buffered messages`),f(`info`,`cli_websocket_messages_to_replay`,{count:r.length});for(let e of r){let t=o(e)+`
1
+ import{s as e,u as t}from"./envUtils-BWeoiL4Y.js";import{n,t as r}from"./defineProperty-80gRi2ZW.js";import{n as i,t as a}from"./axios-DhfaybwJ.js";import{E as o,d as s,s as c,w as l}from"./debug-UI3T040K.js";import{n as u,r as d}from"./analytics-DqMQntaB.js";import{F as f,P as p}from"./git-CN3qtTb_.js";import{c as m,g as h,h as g,l as _,u as v}from"./proxy-CfZp-wce.js";import{Xm as y,Zm as b}from"./loadAgentsDir-D7kapZB5.js";import{D as x,O as S,a as C,l as w,n as T,r as E,t as D}from"./rcDebugLog-CPGWJbI4.js";import{r as O}from"./ccrClient-B_3AmY7K.js";a(),S(),u(),b(),c(),D(),p(),e(),h(),v(),E(),l(),n();var k=`{"type":"keep_alive"}
2
+ `,A=1e3,j=1e3,M=3e4,N=6e5,P=1e4,F=12e4,I=M*2,L=new Set([1002,4001,4003]),R=class{constructor(e,t={},n,i,a){r(this,`ws`,null),r(this,`lastSentId`,null),r(this,`url`,void 0),r(this,`state`,`idle`),r(this,`onData`,void 0),r(this,`onCloseCallback`,void 0),r(this,`onConnectCallback`,void 0),r(this,`headers`,void 0),r(this,`sessionId`,void 0),r(this,`autoReconnect`,void 0),r(this,`isBridge`,void 0),r(this,`reconnectAttempts`,0),r(this,`reconnectStartTime`,null),r(this,`reconnectTimer`,null),r(this,`lastReconnectAttemptTime`,null),r(this,`lastActivityTime`,0),r(this,`pingInterval`,null),r(this,`pongReceived`,!0),r(this,`keepAliveInterval`,null),r(this,`messageBuffer`,void 0),r(this,`isBunWs`,!1),r(this,`connectStartTime`,0),r(this,`refreshHeaders`,void 0),r(this,`onBunOpen`,()=>{this.handleOpenEvent(),this.lastSentId&&this.replayBufferedMessages(``)}),r(this,`onBunMessage`,e=>{let t=typeof e.data==`string`?e.data:String(e.data);this.lastActivityTime=Date.now(),f(`info`,`cli_websocket_message_received`,{length:t.length}),this.onData&&this.onData(t)}),r(this,`onBunError`,()=>{s(`WebSocketTransport: Error`,{level:`error`}),f(`error`,`cli_websocket_connect_error`)}),r(this,`onBunClose`,e=>{let t=e.code===1e3||e.code===1001;s(`WebSocketTransport: Closed: ${e.code}`,t?void 0:{level:`error`}),f(`error`,`cli_websocket_connect_closed`),this.handleConnectionError(e.code)}),r(this,`onNodeOpen`,()=>{let e=this.ws;if(this.handleOpenEvent(),!e)return;let t=e.upgradeReq;if(t?.headers?.[`x-last-request-id`]){let e=t.headers[`x-last-request-id`];this.replayBufferedMessages(e)}}),r(this,`onNodeMessage`,e=>{let t=e.toString();this.lastActivityTime=Date.now(),f(`info`,`cli_websocket_message_received`,{length:t.length}),this.onData&&this.onData(t)}),r(this,`onNodeError`,e=>{s(`WebSocketTransport: Error: ${e.message}`,{level:`error`}),f(`error`,`cli_websocket_connect_error`)}),r(this,`onNodeClose`,(e,t)=>{let n=e===1e3||e===1001;s(`WebSocketTransport: Closed: ${e}`,n?void 0:{level:`error`}),f(`error`,`cli_websocket_connect_closed`),this.handleConnectionError(e)}),r(this,`onPong`,()=>{this.pongReceived=!0}),this.url=e,this.headers=t,this.sessionId=n,this.refreshHeaders=i,this.autoReconnect=a?.autoReconnect??!0,this.isBridge=a?.isBridge??!1,this.messageBuffer=new y(A)}async connect(){if(this.state!==`idle`&&this.state!==`reconnecting`){s(`WebSocketTransport: Cannot connect, current state is ${this.state}`,{level:`error`}),f(`error`,`cli_websocket_connect_failed`);return}this.state=`reconnecting`,this.connectStartTime=Date.now(),s(`WebSocketTransport: Opening ${this.url.href}`),f(`info`,`cli_websocket_connect_opening`);let e={...this.headers};if(this.lastSentId&&(e[`X-Last-Request-Id`]=this.lastSentId,s(`WebSocketTransport: Adding X-Last-Request-Id header: ${this.lastSentId}`)),typeof Bun<`u`){let t=new globalThis.WebSocket(this.url.href,{headers:e,proxy:_(this.url.href),tls:g()||void 0});this.ws=t,this.isBunWs=!0,t.addEventListener(`open`,this.onBunOpen),t.addEventListener(`message`,this.onBunMessage),t.addEventListener(`error`,this.onBunError),t.addEventListener(`close`,this.onBunClose),t.addEventListener(`pong`,this.onPong)}else{let{default:t}=await import(`./wrapper-BSK0MCQH.js`),n=new t(this.url.href,{headers:e,agent:m(this.url.href),...g()});this.ws=n,this.isBunWs=!1,n.on(`open`,this.onNodeOpen),n.on(`message`,this.onNodeMessage),n.on(`error`,this.onNodeError),n.on(`close`,this.onNodeClose),n.on(`pong`,this.onPong)}}handleOpenEvent(){let e=Date.now()-this.connectStartTime;s(`WebSocketTransport: Connected`),f(`info`,`cli_websocket_connect_connected`,{duration_ms:e}),this.isBridge&&this.reconnectStartTime!==null&&d(`tengu_ws_transport_reconnected`,{attempts:this.reconnectAttempts,downtimeMs:Date.now()-this.reconnectStartTime}),this.reconnectAttempts=0,this.reconnectStartTime=null,this.lastReconnectAttemptTime=null,this.lastActivityTime=Date.now(),this.state=`connected`,this.onConnectCallback?.(),this.startPingInterval(),this.startKeepaliveInterval(),C(()=>{this.write({type:`keep_alive`})})}sendLine(e){if(!this.ws||this.state!==`connected`)return s(`WebSocketTransport: Not connected`),f(`info`,`cli_websocket_send_not_connected`),!1;try{return this.ws.send(e),this.lastActivityTime=Date.now(),!0}catch(e){return s(`WebSocketTransport: Failed to send: ${e}`,{level:`error`}),f(`error`,`cli_websocket_send_error`),this.handleConnectionError(),!1}}removeWsListeners(e){if(this.isBunWs){let t=e;t.removeEventListener(`open`,this.onBunOpen),t.removeEventListener(`message`,this.onBunMessage),t.removeEventListener(`error`,this.onBunError),t.removeEventListener(`close`,this.onBunClose),t.removeEventListener(`pong`,this.onPong)}else{let t=e;t.off(`open`,this.onNodeOpen),t.off(`message`,this.onNodeMessage),t.off(`error`,this.onNodeError),t.off(`close`,this.onNodeClose),t.off(`pong`,this.onPong)}}doDisconnect(){this.stopPingInterval(),this.stopKeepaliveInterval(),w(),this.ws&&(this.removeWsListeners(this.ws),this.ws.close(),this.ws=null)}handleConnectionError(e){if(T(`WS handleConnectionError: code=${e} state=${this.state} url=${this.url.href.replace(/token=[^&]+/,`token=***`)} msSinceLastActivity=${this.lastActivityTime>0?Date.now()-this.lastActivityTime:-1} reconnectAttempts=${this.reconnectAttempts}`),s(`WebSocketTransport: Disconnected from ${this.url.href}`+(e==null?``:` (code ${e})`)),f(`info`,`cli_websocket_disconnected`),this.isBridge&&d(`tengu_ws_transport_closed`,{closeCode:e,msSinceLastActivity:this.lastActivityTime>0?Date.now()-this.lastActivityTime:-1,wasConnected:this.state===`connected`,reconnectAttempts:this.reconnectAttempts}),this.doDisconnect(),this.state===`closing`||this.state===`closed`)return;let t=!1;if(e===4003&&this.refreshHeaders){let e=this.refreshHeaders();e.Authorization!==this.headers.Authorization&&(Object.assign(this.headers,e),t=!0,s(`WebSocketTransport: 4003 received but headers refreshed, scheduling reconnect`),f(`info`,`cli_websocket_4003_token_refreshed`))}if(e!=null&&L.has(e)&&!t){s(`WebSocketTransport: Permanent close code ${e}, not reconnecting`,{level:`error`}),f(`error`,`cli_websocket_permanent_close`,{closeCode:e}),this.state=`closed`,this.onCloseCallback?.(e);return}if(!this.autoReconnect){this.state=`closed`,this.onCloseCallback?.(e);return}let n=Date.now();this.reconnectStartTime||(this.reconnectStartTime=n),this.lastReconnectAttemptTime!==null&&n-this.lastReconnectAttemptTime>I&&(s(`WebSocketTransport: Detected system sleep (${Math.round((n-this.lastReconnectAttemptTime)/1e3)}s gap), resetting reconnection budget`),f(`info`,`cli_websocket_sleep_detected`,{gapMs:n-this.lastReconnectAttemptTime}),this.reconnectStartTime=n,this.reconnectAttempts=0),this.lastReconnectAttemptTime=n;let r=n-this.reconnectStartTime;if(r<N){if(this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),!t&&this.refreshHeaders){let e=this.refreshHeaders();Object.assign(this.headers,e),s(`WebSocketTransport: Refreshed headers for reconnect`)}this.state=`reconnecting`,this.reconnectAttempts++;let e=Math.min(j*2**(this.reconnectAttempts-1),M),n=Math.max(0,e+e*.25*(2*Math.random()-1));s(`WebSocketTransport: Reconnecting in ${Math.round(n)}ms (attempt ${this.reconnectAttempts}, ${Math.round(r/1e3)}s elapsed)`),f(`error`,`cli_websocket_reconnect_attempt`,{reconnectAttempts:this.reconnectAttempts}),this.isBridge&&d(`tengu_ws_transport_reconnecting`,{attempt:this.reconnectAttempts,elapsedMs:r,delayMs:Math.round(n)}),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},n)}else s(`WebSocketTransport: Reconnection time budget exhausted after ${Math.round(r/1e3)}s for ${this.url.href}`,{level:`error`}),f(`error`,`cli_websocket_reconnect_exhausted`,{reconnectAttempts:this.reconnectAttempts,elapsedMs:r}),this.state=`closed`,this.onCloseCallback&&this.onCloseCallback(e)}close(){this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.stopPingInterval(),this.stopKeepaliveInterval(),w(),this.state=`closing`,this.doDisconnect()}replayBufferedMessages(e){let t=this.messageBuffer.toArray();if(t.length===0)return;let n=0;if(e){let r=t.findIndex(t=>`uuid`in t&&t.uuid===e);if(r>=0){n=r+1;let e=t.slice(n);this.messageBuffer.clear(),this.messageBuffer.addAll(e),e.length===0&&(this.lastSentId=null),s(`WebSocketTransport: Evicted ${n} confirmed messages, ${e.length} remaining`),f(`info`,`cli_websocket_evicted_confirmed_messages`,{evicted:n,remaining:e.length})}}let r=t.slice(n);if(r.length===0){s(`WebSocketTransport: No new messages to replay`),f(`info`,`cli_websocket_no_messages_to_replay`);return}s(`WebSocketTransport: Replaying ${r.length} buffered messages`),f(`info`,`cli_websocket_messages_to_replay`,{count:r.length});for(let e of r){let t=o(e)+`
3
3
  `;if(!this.sendLine(t)){this.handleConnectionError();break}}}isConnectedStatus(){return this.state===`connected`}isClosedStatus(){return this.state===`closed`}setOnData(e){this.onData=e}setOnConnect(e){this.onConnectCallback=e}setOnClose(e){this.onCloseCallback=e}getStateLabel(){return this.state}async write(e){`uuid`in e&&typeof e.uuid==`string`&&(this.messageBuffer.add(e),this.lastSentId=e.uuid);let t=o(e)+`
4
4
  `;if(this.state!==`connected`)return;let n=this.sessionId?` session=${this.sessionId}`:``,r=this.getControlMessageDetailLabel(e);s(`WebSocketTransport: Sending message type=${e.type}${n}${r}`),this.sendLine(t)}getControlMessageDetailLabel(e){if(e.type===`control_request`){let{request_id:t,request:n}=e,r=n.subtype===`can_use_tool`?n.tool_name:``;return` subtype=${n.subtype} request_id=${t}${r?` tool=${r}`:``}`}if(e.type===`control_response`){let{subtype:t,request_id:n}=e.response;return` subtype=${t} request_id=${n}`}return``}startPingInterval(){this.stopPingInterval(),this.pongReceived=!0;let e=Date.now();this.pingInterval=setInterval(()=>{if(this.state===`connected`&&this.ws){let t=Date.now(),n=t-e;if(e=t,n>I){s(`WebSocketTransport: ${Math.round(n/1e3)}s tick gap detected — process was suspended, forcing reconnect`),f(`info`,`cli_websocket_sleep_detected_on_ping`,{gapMs:n}),this.handleConnectionError();return}if(!this.pongReceived){s(`WebSocketTransport: No pong received, connection appears dead`,{level:`error`}),f(`error`,`cli_websocket_pong_timeout`),this.handleConnectionError();return}this.pongReceived=!1;try{this.ws.ping?.()}catch(e){s(`WebSocketTransport: Ping failed: ${e}`,{level:`error`}),f(`error`,`cli_websocket_ping_failed`)}}},P)}stopPingInterval(){this.pingInterval&&(clearInterval(this.pingInterval),this.pingInterval=null)}startKeepaliveInterval(){this.stopKeepaliveInterval(),!t(process.env.CLAUDE_CODE_REMOTE)&&(this.keepAliveInterval=setInterval(()=>{if(this.state===`connected`&&this.ws)try{this.ws.send(k),this.lastActivityTime=Date.now(),s(`WebSocketTransport: Sent periodic keep_alive data frame`)}catch(e){s(`WebSocketTransport: Periodic keep_alive failed: ${e}`,{level:`error`}),f(`error`,`cli_websocket_keepalive_failed`)}},F))}stopKeepaliveInterval(){this.keepAliveInterval&&(clearInterval(this.keepAliveInterval),this.keepAliveInterval=null)}};c(),D(),p(),n();var z=100,B=15e3,V=3e3,H=class extends R{constructor(e,t={},n,i,a){super(e,t,n,i,a),r(this,`postUrl`,void 0),r(this,`uploader`,void 0),r(this,`streamEventBuffer`,[]),r(this,`streamEventTimer`,null);let{maxConsecutiveFailures:o,onBatchDropped:c}=a??{};this.postUrl=U(e),this.uploader=new O({maxBatchSize:500,maxQueueSize:1e4,baseDelayMs:500,maxDelayMs:8e3,jitterMs:1e3,maxConsecutiveFailures:o,onBatchDropped:(e,t)=>{f(`error`,`cli_hybrid_batch_dropped_max_failures`,{batchSize:e,failures:t}),c?.(e,t)},send:e=>this.postOnce(e)}),s(`HybridTransport: POST URL = ${this.postUrl}`),f(`info`,`cli_hybrid_transport_initialized`)}async write(e){if(e.type===`stream_event`){this.streamEventBuffer.push(e),this.streamEventTimer||(this.streamEventTimer=setTimeout(()=>this.flushStreamEvents(),z));return}return await this.uploader.enqueue([...this.takeStreamEvents(),e]),this.uploader.flush()}async writeBatch(e){return await this.uploader.enqueue([...this.takeStreamEvents(),...e]),this.uploader.flush()}get droppedBatchCount(){return this.uploader.droppedBatchCount}flush(){return this.uploader.enqueue(this.takeStreamEvents()),this.uploader.flush()}takeStreamEvents(){this.streamEventTimer&&(clearTimeout(this.streamEventTimer),this.streamEventTimer=null);let e=this.streamEventBuffer;return this.streamEventBuffer=[],e}flushStreamEvents(){this.streamEventTimer=null,this.uploader.enqueue(this.takeStreamEvents())}close(){this.streamEventTimer&&(clearTimeout(this.streamEventTimer),this.streamEventTimer=null),this.streamEventBuffer=[];let e=this.uploader,t;Promise.race([e.flush(),new Promise(e=>{t=setTimeout(e,V)})]).finally(()=>{clearTimeout(t),e.close()}),super.close()}async postOnce(e){let t=x();if(!t){s(`HybridTransport: No session token available for POST`),f(`warn`,`cli_hybrid_post_no_token`);return}let n={Authorization:`Bearer ${t}`,"Content-Type":`application/json`},r;try{r=await i.post(this.postUrl,{events:e},{headers:n,validateStatus:()=>!0,timeout:B})}catch(e){throw s(`HybridTransport: POST error: ${e.message}`),f(`warn`,`cli_hybrid_post_network_error`),e}if(r.status>=200&&r.status<300){s(`HybridTransport: POST success count=${e.length}`);return}if(r.status>=400&&r.status<500&&r.status!==429){T(`Hybrid POST ${r.status}: url=${this.postUrl.replace(/token=[^&]+/,`token=***`)} events=${e.length} body=${JSON.stringify(r.data).slice(0,200)}`),s(`HybridTransport: POST returned ${r.status} (permanent), dropping`),f(`warn`,`cli_hybrid_post_client_error`,{status:r.status});return}throw s(`HybridTransport: POST returned ${r.status} (retryable)`),f(`warn`,`cli_hybrid_post_retryable_error`,{status:r.status}),Error(`POST failed with ${r.status}`)}};function U(e){let t=e.protocol===`wss:`?`https:`:`http:`,n=e.pathname;return n=n.replace(`/ws/`,`/session/`),n.endsWith(`/events`)||(n=n.endsWith(`/`)?n+`events`:n+`/events`),`${t}//${e.host}${n}${e.search}`}export{R as n,H as t};
@@ -1 +1 @@
1
- import{n as e}from"./chunk-DR8-3Aex.js";import{n as t,t as n}from"./defineProperty-80gRi2ZW.js";import{d as r,s as i}from"./debug-UI3T040K.js";import{r as a,t as o}from"./execFileNoThrow-CuQN1sz8.js";import{Sd as s,Td as c}from"./loadAgentsDir-DI1a76pd.js";import{c as l,i as u,r as d}from"./detection-CQsNad64.js";function f(){let e,t=new Promise(t=>{e=t}),n=v;return v=t,n.then(()=>e)}function p(e){return o(`it2`,e)}function m(e){let t=e.match(/Created new pane:\s*(.+)/);return t&&t[1]?t[1].trim():``}function h(){let e=process.env.ITERM_SESSION_ID;if(!e)return null;let t=e.indexOf(`:`);return t===-1?null:e.slice(t+1)}var g,_,v,y;e((()=>{i(),a(),d(),s(),t(),g=[],_=!1,v=Promise.resolve(),y=class{constructor(){n(this,`type`,`iterm2`),n(this,`displayName`,`iTerm2`),n(this,`supportsHideShow`,!1)}async isAvailable(){let e=u();if(r(`[ITermBackend] isAvailable check: inITerm2=${e}`),!e)return r(`[ITermBackend] isAvailable: false (not in iTerm2)`),!1;let t=await l();return r(`[ITermBackend] isAvailable: ${t} (it2 CLI ${t?`found`:`not found`})`),t}async isRunningInside(){let e=u();return r(`[ITermBackend] isRunningInside: ${e}`),e}async createTeammatePaneInSwarmView(e,t){r(`[ITermBackend] createTeammatePaneInSwarmView called for ${e} with color ${t}`);let n=await f();try{for(;;){let t=!_;r(`[ITermBackend] Creating pane: isFirstTeammate=${t}, existingPanes=${g.length}`);let n,i;if(t){let e=h();e?(n=[`session`,`split`,`-v`,`-s`,e],r(`[ITermBackend] First split from leader session: ${e}`)):(n=[`session`,`split`,`-v`],r(`[ITermBackend] First split from active session (no leader ID)`))}else i=g[g.length-1],i?(n=[`session`,`split`,`-s`,i],r(`[ITermBackend] Subsequent split from teammate session: ${i}`)):(n=[`session`,`split`],r(`[ITermBackend] Subsequent split from active session (no teammate ID)`));let a=await p(n);if(a.code!==0){if(i){let e=await p([`session`,`list`]);if(e.code===0&&!e.stdout.includes(i)){r(`[ITermBackend] Split failed targeting dead session ${i}, pruning and retrying: ${a.stderr}`);let e=g.indexOf(i);e!==-1&&g.splice(e,1),g.length===0&&(_=!1);continue}}throw Error(`Failed to create iTerm2 split pane: ${a.stderr}`)}t&&(_=!0);let o=m(a.stdout);if(!o)throw Error(`Failed to parse session ID from split output: ${a.stdout}`);return r(`[ITermBackend] Created teammate pane for ${e}: ${o}`),g.push(o),{paneId:o,isFirstTeammate:t}}}finally{n()}}async sendCommandToPane(e,t,n){let r=await p(e?[`session`,`run`,`-s`,e,t]:[`session`,`run`,t]);if(r.code!==0)throw Error(`Failed to send command to iTerm2 pane ${e}: ${r.stderr}`)}async setPaneBorderColor(e,t,n){}async setPaneTitle(e,t,n,r){}async enablePaneBorderStatus(e,t){}async rebalancePanes(e,t){r(`[ITermBackend] Pane rebalancing not implemented for iTerm2`)}async killPane(e,t){let n=await p([`session`,`close`,`-f`,`-s`,e]),r=g.indexOf(e);return r!==-1&&g.splice(r,1),g.length===0&&(_=!1),n.code===0}async hidePane(e,t){return r(`[ITermBackend] hidePane not supported in iTerm2`),!1}async showPane(e,t,n){return r(`[ITermBackend] showPane not supported in iTerm2`),!1}},c(y)}))();export{};
1
+ import{n as e}from"./chunk-DR8-3Aex.js";import{n as t,t as n}from"./defineProperty-80gRi2ZW.js";import{d as r,s as i}from"./debug-UI3T040K.js";import{r as a,t as o}from"./execFileNoThrow-CuQN1sz8.js";import{Sd as s,Td as c}from"./loadAgentsDir-D7kapZB5.js";import{c as l,i as u,r as d}from"./detection-CQsNad64.js";function f(){let e,t=new Promise(t=>{e=t}),n=v;return v=t,n.then(()=>e)}function p(e){return o(`it2`,e)}function m(e){let t=e.match(/Created new pane:\s*(.+)/);return t&&t[1]?t[1].trim():``}function h(){let e=process.env.ITERM_SESSION_ID;if(!e)return null;let t=e.indexOf(`:`);return t===-1?null:e.slice(t+1)}var g,_,v,y;e((()=>{i(),a(),d(),s(),t(),g=[],_=!1,v=Promise.resolve(),y=class{constructor(){n(this,`type`,`iterm2`),n(this,`displayName`,`iTerm2`),n(this,`supportsHideShow`,!1)}async isAvailable(){let e=u();if(r(`[ITermBackend] isAvailable check: inITerm2=${e}`),!e)return r(`[ITermBackend] isAvailable: false (not in iTerm2)`),!1;let t=await l();return r(`[ITermBackend] isAvailable: ${t} (it2 CLI ${t?`found`:`not found`})`),t}async isRunningInside(){let e=u();return r(`[ITermBackend] isRunningInside: ${e}`),e}async createTeammatePaneInSwarmView(e,t){r(`[ITermBackend] createTeammatePaneInSwarmView called for ${e} with color ${t}`);let n=await f();try{for(;;){let t=!_;r(`[ITermBackend] Creating pane: isFirstTeammate=${t}, existingPanes=${g.length}`);let n,i;if(t){let e=h();e?(n=[`session`,`split`,`-v`,`-s`,e],r(`[ITermBackend] First split from leader session: ${e}`)):(n=[`session`,`split`,`-v`],r(`[ITermBackend] First split from active session (no leader ID)`))}else i=g[g.length-1],i?(n=[`session`,`split`,`-s`,i],r(`[ITermBackend] Subsequent split from teammate session: ${i}`)):(n=[`session`,`split`],r(`[ITermBackend] Subsequent split from active session (no teammate ID)`));let a=await p(n);if(a.code!==0){if(i){let e=await p([`session`,`list`]);if(e.code===0&&!e.stdout.includes(i)){r(`[ITermBackend] Split failed targeting dead session ${i}, pruning and retrying: ${a.stderr}`);let e=g.indexOf(i);e!==-1&&g.splice(e,1),g.length===0&&(_=!1);continue}}throw Error(`Failed to create iTerm2 split pane: ${a.stderr}`)}t&&(_=!0);let o=m(a.stdout);if(!o)throw Error(`Failed to parse session ID from split output: ${a.stdout}`);return r(`[ITermBackend] Created teammate pane for ${e}: ${o}`),g.push(o),{paneId:o,isFirstTeammate:t}}}finally{n()}}async sendCommandToPane(e,t,n){let r=await p(e?[`session`,`run`,`-s`,e,t]:[`session`,`run`,t]);if(r.code!==0)throw Error(`Failed to send command to iTerm2 pane ${e}: ${r.stderr}`)}async setPaneBorderColor(e,t,n){}async setPaneTitle(e,t,n,r){}async enablePaneBorderStatus(e,t){}async rebalancePanes(e,t){r(`[ITermBackend] Pane rebalancing not implemented for iTerm2`)}async killPane(e,t){let n=await p([`session`,`close`,`-f`,`-s`,e]),r=g.indexOf(e);return r!==-1&&g.splice(r,1),g.length===0&&(_=!1),n.code===0}async hidePane(e,t){return r(`[ITermBackend] hidePane not supported in iTerm2`),!1}async showPane(e,t,n){return r(`[ITermBackend] showPane not supported in iTerm2`),!1}},c(y)}))();export{};
@@ -1 +1 @@
1
- import"./chunk-DR8-3Aex.js";import{Mt as e,Rn as t,b as n,f as r,t as i,x as a}from"./src-Di342QoJ.js";import{t as o}from"./jsx-runtime-D-D469L8.js";import{E as s,O as c,w as l}from"./debug-UI3T040K.js";import{AS as u,Dx as d,ay as f,cy as p,iy as m,jS as h}from"./loadAgentsDir-DI1a76pd.js";import{t as g}from"./renderOptions-BiyC2rj1.js";t(),i(),f(),h(),l(),p();var _=o();function v({filePath:e,errorDescription:t,onExit:i,onReset:o}){return(0,_.jsxs)(r,{title:`Configuration Error`,color:`error`,onCancel:i,children:[(0,_.jsxs)(a,{flexDirection:`column`,gap:1,children:[(0,_.jsxs)(n,{children:[`The configuration file at `,(0,_.jsx)(n,{bold:!0,children:e}),` contains invalid JSON.`]}),(0,_.jsx)(n,{children:t})]}),(0,_.jsxs)(a,{flexDirection:`column`,children:[(0,_.jsx)(n,{bold:!0,children:`Choose an option:`}),(0,_.jsx)(d,{options:[{label:`Exit and fix manually`,value:`exit`},{label:`Reset with default configuration`,value:`reset`}],onChange:e=>{e===`exit`?i():o()},onCancel:i})]})]})}var y=`dark`;async function b({error:t}){let n={...g(!1),theme:y};await new Promise(async r=>{let{unmount:i}=await e((0,_.jsx)(u,{children:(0,_.jsx)(m,{children:(0,_.jsx)(v,{filePath:t.filePath,errorDescription:t.message,onExit:()=>{i(),r(),process.exit(1)},onReset:()=>{c(t.filePath,s(t.defaultConfig,null,2),{flush:!1,encoding:`utf8`}),i(),r(),process.exit(0)}})})}),n)})}export{b as showInvalidConfigDialog};
1
+ import"./chunk-DR8-3Aex.js";import{Mt as e,Rn as t,b as n,f as r,t as i,x as a}from"./src-Di342QoJ.js";import{t as o}from"./jsx-runtime-D-D469L8.js";import{E as s,O as c,w as l}from"./debug-UI3T040K.js";import{MS as u,NS as d,kx as f,oy as p,sy as m,uy as h}from"./loadAgentsDir-D7kapZB5.js";import{t as g}from"./renderOptions-BiyC2rj1.js";t(),i(),m(),d(),l(),h();var _=o();function v({filePath:e,errorDescription:t,onExit:i,onReset:o}){return(0,_.jsxs)(r,{title:`Configuration Error`,color:`error`,onCancel:i,children:[(0,_.jsxs)(a,{flexDirection:`column`,gap:1,children:[(0,_.jsxs)(n,{children:[`The configuration file at `,(0,_.jsx)(n,{bold:!0,children:e}),` contains invalid JSON.`]}),(0,_.jsx)(n,{children:t})]}),(0,_.jsxs)(a,{flexDirection:`column`,children:[(0,_.jsx)(n,{bold:!0,children:`Choose an option:`}),(0,_.jsx)(f,{options:[{label:`Exit and fix manually`,value:`exit`},{label:`Reset with default configuration`,value:`reset`}],onChange:e=>{e===`exit`?i():o()},onCancel:i})]})]})}var y=`dark`;async function b({error:t}){let n={...g(!1),theme:y};await new Promise(async r=>{let{unmount:i}=await e((0,_.jsx)(u,{children:(0,_.jsx)(p,{children:(0,_.jsx)(v,{filePath:t.filePath,errorDescription:t.message,onExit:()=>{i(),r(),process.exit(1)},onReset:()=>{c(t.filePath,s(t.defaultConfig,null,2),{flush:!1,encoding:`utf8`}),i(),r(),process.exit(0)}})})}),n)})}export{b as showInvalidConfigDialog};
@@ -1 +1 @@
1
- import"./chunk-DR8-3Aex.js";import{Rn as e,b as t,f as n,t as r}from"./src-Di342QoJ.js";import{t as i}from"./jsx-runtime-D-D469L8.js";import{Dx as a,cy as o}from"./loadAgentsDir-DI1a76pd.js";import{n as s,t as c}from"./ValidationErrorsList-CdCUgfIl.js";e(),r(),o(),s();var l=i();function u({settingsErrors:e,onContinue:r,onExit:i}){function o(e){e===`exit`?i():r()}return(0,l.jsxs)(n,{title:`Settings Error`,onCancel:i,color:`warning`,children:[(0,l.jsx)(c,{errors:e}),(0,l.jsx)(t,{dimColor:!0,children:`Files with errors are skipped entirely, not just the invalid settings.`}),(0,l.jsx)(a,{options:[{label:`Exit and fix manually`,value:`exit`},{label:`Continue without these settings`,value:`continue`}],onChange:o})]})}export{u as InvalidSettingsDialog};
1
+ import"./chunk-DR8-3Aex.js";import{Rn as e,b as t,f as n,t as r}from"./src-Di342QoJ.js";import{t as i}from"./jsx-runtime-D-D469L8.js";import{kx as a,uy as o}from"./loadAgentsDir-D7kapZB5.js";import{n as s,t as c}from"./ValidationErrorsList-C9swVkZ-.js";e(),r(),o(),s();var l=i();function u({settingsErrors:e,onContinue:r,onExit:i}){function o(e){e===`exit`?i():r()}return(0,l.jsxs)(n,{title:`Settings Error`,onCancel:i,color:`warning`,children:[(0,l.jsx)(c,{errors:e}),(0,l.jsx)(t,{dimColor:!0,children:`Files with errors are skipped entirely, not just the invalid settings.`}),(0,l.jsx)(a,{options:[{label:`Exit and fix manually`,value:`exit`},{label:`Continue without these settings`,value:`continue`}],onChange:o})]})}export{u as InvalidSettingsDialog};
@@ -0,0 +1 @@
1
+ import{a as e,n as t,o as n}from"./chunk-DR8-3Aex.js";import{B as r,F as i,L as a,z as o}from"./server-DzOdtq8A.js";import{Rn as s}from"./src-Di342QoJ.js";import{t as c}from"./jsx-runtime-D-D469L8.js";import{Ct as l,cn as u,y as d}from"./state-sIHsFpDu.js";import{El as f,Ml as ee,S as p,Tl as m,_ as h,jl as g,ls as _,ss as te}from"./paths-1ngPRtu3.js";import{E as v,L as y,V as b,d as ne,s as x,w as S}from"./debug-UI3T040K.js";import{n as re,r as C}from"./analytics-DqMQntaB.js";import{c as w,l as T,o as ie}from"./log-CzsijfHZ.js";import{AS as ae,Dx as E,FS as oe,GC as se,IS as ce,NS as D,PS as O,QC as le,Sx as k,Tx as ue,_O as de,_w as fe,aw as pe,bw as me,bx as A,dw as he,fw as j,gw as M,iw as ge,jS as _e,oC as ve,rw as N,sC as P,sw as F,uO as ye,vw as be,vx as I,wx as L,xx as R,zC as xe}from"./loadAgentsDir-D7kapZB5.js";import{o as Se,s as Ce}from"./localSearch-r1_G8kfV.js";import{c as we,i as Te,l as Ee,o as De,r as Oe,s as ke,t as z}from"./channelNotification-BbDQdLZC.js";import{basename as Ae}from"path";function je(){return h(`tengu_harbor_permissions`,!0)}function B(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);t>>>=0;let n=``;for(let e=0;e<5;e++)n+=V[t%25],t=Math.floor(t/25);return n}function Me(e){let t=B(e);for(let n=0;n<10;n++){if(!H.some(e=>t.includes(e)))return t;t=B(`${e}:${n}`)}return t}function Ne(e){try{let t=v(e);return t.length>200?t.slice(0,200)+`…`:t}catch{return`(unserializable)`}}function Pe(e,t){return e.filter(e=>e.type===`connected`&&t(e.name)&&!!e.capabilities?.experimental?.[`claude/channel`]&&!!e.capabilities?.experimental?.[`claude/channel/permission`])}function Fe(){let e=new Map;return{onResponse(t,n){let r=t.toLowerCase();return e.set(r,n),()=>{e.delete(r)}},resolve(t,n,r){let i=t.toLowerCase(),a=e.get(i);return a?(e.delete(i),a({behavior:n,fromServer:r}),!0):!1}}}var V,H,U=t((()=>{S(),p(),V=`abcdefghijkmnopqrstuvwxyz`,H=[`fuck`,`shit`,`cunt`,`cock`,`dick`,`twat`,`piss`,`crap`,`bitch`,`whore`,`ass`,`tit`,`cum`,`fag`,`dyke`,`nig`,`kike`,`rape`,`nazi`,`damn`,`poo`,`pee`,`wank`,`anus`]}));function W(e){let t=`plugin`in e?e.plugin:`no-plugin`;return`${e.type}:${e.source}:${t}`}function G(e,t){t.length!==0&&e(e=>{let n=new Set(e.plugins.errors.map(e=>W(e))),r=t.filter(e=>!n.has(W(e)));return r.length===0?e:{...e,plugins:{...e.plugins,errors:[...e.plugins.errors,...r]}}})}function Ie(e,t=!1){let n=oe(),r=O(e=>e.authVersion),s=O(e=>e.mcp.pluginReconnectKey),c=ce(),u=(0,K.useRef)(new Map),p=(0,K.useRef)(new Set),m=(0,K.useRef)(null);m.current===null&&(m.current=Fe()),(0,K.useEffect)(()=>{{let e=m.current;return!e||!je()?void 0:(c(t=>t.channelPermissionCallbacks===e?t:{...t,channelPermissionCallbacks:e}),()=>{c(e=>e.channelPermissionCallbacks===void 0?e:{...e,channelPermissionCallbacks:void 0})})}},[c]);let{addNotification:h}=_e(),g=(0,K.useRef)([]),_=(0,K.useRef)(null),v=(0,K.useCallback)(()=>{_.current=null;let e=g.current;e.length!==0&&(g.current=[],c(t=>{let n=t.mcp;for(let t of e){let{tools:e,commands:r,resources:i,...a}=t,o=a.type===`disabled`||a.type===`failed`?e??[]:e,s=a.type===`disabled`||a.type===`failed`?r??[]:r,c=a.type===`disabled`||a.type===`failed`?i??[]:i,l=te(a.name),u=n.clients.findIndex(e=>e.name===a.name)===-1?[...n.clients,a]:n.clients.map(e=>e.name===a.name?a:e),d=o===void 0?n.tools:[...f(n.tools,e=>e.name?.startsWith(l)),...o],p=s===void 0?n.commands:[...f(n.commands,e=>xe(e,a.name)),...s],m=c===void 0?n.resources:{...n.resources,...c.length>0?{[a.name]:c}:ee(n.resources,a.name)};n={...n,clients:u,tools:d,commands:p,resources:m}}return{...t,mcp:n}}))},[c]),b=(0,K.useCallback)(e=>{g.current.push(e),_.current===null&&(_.current=setTimeout(v,16))},[v]),x=(0,K.useCallback)(({client:e,tools:t,commands:n,resources:r})=>{switch(b({...e,tools:t,commands:n,resources:r}),e.type){case`connected`:{P(e.client,e.name,c),e.client.onclose=()=>{let t=e.config.type??`stdio`;if(I(e.name,e.config).catch(()=>{ne(`Failed to invalidate the server cache: ${e.name}`)}),j(e.name)){w(e.name,`Server is disabled, skipping automatic reconnection`);return}if(t!==`stdio`&&t!==`sdk`){let n=Le(t);w(e.name,`${n} transport closed/disconnected, attempting automatic reconnection`);let r=u.current.get(e.name);r&&(clearTimeout(r),u.current.delete(e.name)),(async()=>{for(let t=1;t<=J;t++){if(j(e.name)){w(e.name,`Server disabled during reconnection, stopping retry`),u.current.delete(e.name);return}b({...e,type:`pending`,reconnectAttempt:t,maxReconnectAttempts:J});let r=Date.now();try{let i=await E(e.name,e.config),a=Date.now()-r;if(i.client.type===`connected`){w(e.name,`${n} reconnection successful after ${a}ms (attempt ${t})`),u.current.delete(e.name),x(i);return}if(w(e.name,`${n} reconnection attempt ${t} completed with status: ${i.client.type}`),t===J){w(e.name,`Max reconnection attempts (${J}) reached, giving up`),u.current.delete(e.name),x(i);return}}catch(i){let a=Date.now()-r;if(T(e.name,`${n} reconnection attempt ${t} failed after ${a}ms: ${i}`),t===J){w(e.name,`Max reconnection attempts (${J}) reached, giving up`),u.current.delete(e.name),b({...e,type:`failed`});return}}let i=Math.min(Y*2**(t-1),X);w(e.name,`Scheduling reconnection attempt ${t+1} in ${i}ms`),await new Promise(t=>{let n=setTimeout(t,i);u.current.set(e.name,n)})}})()}else b({...e,type:`failed`})};let t=ke(e.name,e.capabilities,e.config.pluginSource),n=De(e.name,d()),r=n?.kind===`plugin`?`${n.name}@${n.marketplace}`:void 0;switch((t.action===`register`||t.kind!==`capability`)&&C(`tengu_mcp_channel_gate`,{registered:t.action===`register`,skip_kind:t.action===`skip`?t.kind:void 0,entry_kind:n?.kind,is_dev:n?.dev??!1,plugin:r}),t.action){case`register`:w(e.name,`Channel notifications registered`),e.client.setNotificationHandler(Oe(),async t=>{let{content:i,meta:a}=t.params;w(e.name,`notifications/claude/channel: ${i.slice(0,80)}`),C(`tengu_mcp_channel_message`,{content_length:i.length,meta_key_count:Object.keys(a??{}).length,entry_kind:n?.kind,is_dev:n?.dev??!1,plugin:r}),ye({mode:`prompt`,value:Ee(e.name,i,a),priority:`next`,isMeta:!0,origin:{kind:`channel`,server:e.name},skipSlashCommands:!0})}),e.capabilities?.experimental?.[`claude/channel/permission`]&&e.client.setNotificationHandler(Te(),async t=>{let{request_id:n,behavior:r}=t.params,i=m.current?.resolve(n,r,e.name)??!1;w(e.name,`notifications/claude/channel/permission: ${n} → ${r} (${i?`matched pending`:`no pending entry — stale or unknown ID`})`)});break;case`skip`:if(e.client.removeNotificationHandler(`notifications/claude/channel`),e.client.removeNotificationHandler(z),w(e.name,`Channel notifications skipped: ${t.reason}`),t.kind!==`capability`&&t.kind!==`session`&&!p.current.has(t.kind)&&(t.kind===`marketplace`||t.kind===`allowlist`||n!==void 0)){p.current.add(t.kind);let e=t.kind===`disabled`?`Channels are not currently available`:t.kind===`auth`?`Channels require claude.ai authentication · run /login`:t.kind===`policy`?`Channels are not enabled for your org · have an administrator set channelsEnabled: true in managed settings`:t.reason;h({key:`channels-blocked-${t.kind}`,priority:`high`,text:e,color:`warning`,timeoutMs:12e3})}break}e.capabilities?.tools?.listChanged&&e.client.setNotificationHandler(o,async()=>{w(e.name,`Received tools/list_changed notification, refreshing tools`);try{let t=k.cache.get(e.name);k.cache.delete(e.name);let n=await k(e),r=n.length;t?t.then(e=>{C(`tengu_mcp_list_changed`,{type:`tools`,previousCount:e.length,newCount:r})},()=>{C(`tengu_mcp_list_changed`,{type:`tools`,newCount:r})}):C(`tengu_mcp_list_changed`,{type:`tools`,newCount:r}),b({...e,tools:n})}catch(t){T(e.name,`Failed to refresh tools after list_changed notification: ${y(t)}`)}}),e.capabilities?.prompts?.listChanged&&e.client.setNotificationHandler(i,async()=>{w(e.name,`Received prompts/list_changed notification, refreshing prompts`),C(`tengu_mcp_list_changed`,{type:`prompts`});try{A.cache.delete(e.name);let[t,n]=await Promise.all([A(e),Promise.resolve([])]);b({...e,commands:[...t,...n]}),q?.()}catch(t){T(e.name,`Failed to refresh prompts after list_changed notification: ${y(t)}`)}}),e.capabilities?.resources?.listChanged&&e.client.setNotificationHandler(a,async()=>{w(e.name,`Received resources/list_changed notification, refreshing resources`),C(`tengu_mcp_list_changed`,{type:`resources`});try{R.cache.delete(e.name);{let t=await R(e);b({...e,resources:t})}}catch(t){T(e.name,`Failed to refresh resources after list_changed notification: ${y(t)}`)}});break}case`needs-auth`:case`failed`:case`pending`:case`disabled`:break}},[b]),S=l();return(0,K.useEffect)(()=>{async function n(){let{servers:n,errors:r}=t?{servers:{},errors:[]}:await F(e),i={...n,...e};G(c,r),c(e=>{let{stale:t,...n}=se(e.mcp,i);for(let e of t){let t=u.current.get(e.name);t&&(clearTimeout(t),u.current.delete(e.name)),e.type===`connected`&&(e.client.onclose=void 0,I(e.name,e.config).catch(()=>{}))}let r=new Set(n.clients.map(e=>e.name)),a=Object.entries(i).filter(([e])=>!r.has(e)).map(([e,t])=>({name:e,type:j(e)?`disabled`:`pending`,config:t}));return a.length===0&&t.length===0?e:{...e,mcp:{...e.mcp,...n,clients:[...n.clients,...a]}}})}n().catch(e=>{T(`useManageMCPConnections`,`Failed to initialize servers as pending: ${y(e)}`)})},[t,e,c,S,s]),(0,K.useEffect)(()=>{let n=!1;async function r(){let r;t||ge()?r=Promise.resolve({}):(fe(),r=be());let{servers:i,errors:a}=t?{servers:{},errors:[]}:await F(e,r);if(n)return;G(c,a);let o={...i,...e};L(x,Object.fromEntries(Object.entries(o).filter(([e])=>!j(e)))).catch(e=>{T(`useManageMcpConnections`,`Failed to get MCP resources: ${y(e)}`)});let s={};if(!t){if(s=pe(await r).allowed,n)return;if(Object.keys(s).length>0){let{servers:e}=N(s,o);s=e}Object.keys(s).length>0&&(c(e=>{let t=new Set(e.mcp.clients.map(e=>e.name)),n=Object.entries(s).filter(([e])=>!t.has(e)).map(([e,t])=>({name:e,type:j(e)?`disabled`:`pending`,config:t}));return n.length===0?e:{...e,mcp:{...e.mcp,clients:[...e.mcp.clients,...n]}}}),L(x,Object.fromEntries(Object.entries(s).filter(([e])=>!j(e)))).catch(e=>{T(`useManageMcpConnections`,`Failed to get claude.ai MCP resources: ${y(e)}`)}))}let l={...o,...s},u={enterprise:0,global:0,project:0,user:0,plugin:0,claudeai:0},d=[];for(let[e,t]of Object.entries(l))t.scope===`enterprise`?u.enterprise++:t.scope===`user`?u.global++:t.scope===`project`?u.project++:t.scope===`local`?u.user++:t.scope===`dynamic`?u.plugin++:t.scope===`claudeai`&&u.claudeai++,process.env.USER_TYPE===`ant`&&!j(e)&&(t.type===void 0||t.type===`stdio`)&&`command`in t&&d.push(Ae(t.command));C(`tengu_mcp_servers`,{...u,...process.env.USER_TYPE===`ant`&&d.length>0?{stdio_commands:d.sort().join(`,`)}:{}})}return r(),()=>{n=!0}},[t,e,x,c,r,S,s]),(0,K.useEffect)(()=>{let e=u.current;return()=>{for(let t of e.values())clearTimeout(t);e.clear(),_.current!==null&&(clearTimeout(_.current),_.current=null,v())}},[v]),{reconnectMcpServer:(0,K.useCallback)(async e=>{let t=n.getState().mcp.clients.find(t=>t.name===e);if(!t)throw Error(`MCP server ${e} not found`);let r=u.current.get(e);r&&(clearTimeout(r),u.current.delete(e));let i=await E(e,t.config);return x(i),i},[n,x]),toggleMcpServer:(0,K.useCallback)(async e=>{let t=n.getState().mcp.clients.find(t=>t.name===e);if(!t)throw Error(`MCP server ${e} not found`);if(t.type!==`disabled`){let n=u.current.get(e);n&&(clearTimeout(n),u.current.delete(e)),M(e,!1),t.type===`connected`&&await I(e,t.config),b({name:e,type:`disabled`,config:t.config})}else M(e,!0),b({name:e,type:`pending`,config:t.config}),x(await E(e,t.config))},[n,b,x])}}function Le(e){switch(e){case`http`:return`HTTP`;case`ws`:case`ws-ide`:return`WebSocket`;default:return`SSE`}}var K,q,J,Y,X,Re=t((()=>{K=n(s(),1),u(),ue(),r(),g(),m(),re(),he(),x(),ae(),D(),b(),ie(),de(),we(),U(),me(),ve(),_(),le(),q=(Se(),e(Ce)).clearSkillIndexCache,J=5,Y=1e3,X=3e4}));function ze(){let e=(0,Z.useContext)($);if(!e)throw Error(`useMcpReconnect must be used within MCPConnectionManager`);return e.reconnectMcpServer}function Be(){let e=(0,Z.useContext)($);if(!e)throw Error(`useMcpToggleEnabled must be used within MCPConnectionManager`);return e.toggleMcpServer}function Ve({children:e,dynamicMcpConfig:t,isStrictMcpConfig:n}){let{reconnectMcpServer:r,toggleMcpServer:i}=Ie(t,n),a=(0,Z.useMemo)(()=>({reconnectMcpServer:r,toggleMcpServer:i}),[r,i]);return(0,Q.jsx)($.Provider,{value:a,children:e})}var Z,Q,$,He=t((()=>{Z=n(s(),1),Re(),Q=c(),$=(0,Z.createContext)(null)}));export{Pe as a,Ne as c,Be as i,He as n,U as o,ze as r,Me as s,Ve as t};
@@ -1 +1 @@
1
- import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{Q as n,Rn as r,b as i,t as a,x as o}from"./src-Di342QoJ.js";import{t as s}from"./jsx-runtime-D-D469L8.js";import{RC as c,XC as l,YC as u,lw as d,sw as f}from"./loadAgentsDir-DI1a76pd.js";function p({scope:e,parsingErrors:t,warnings:n}){let r=t.length>0,a=n.length>0;return!r&&!a?null:(0,_.jsxs)(o,{flexDirection:`column`,marginTop:1,children:[(0,_.jsxs)(o,{children:[(r||a)&&(0,_.jsxs)(i,{color:r?`error`:`warning`,children:[`[`,r?`Failed to parse`:`Contains warnings`,`] `]}),(0,_.jsx)(i,{children:u(e)})]}),(0,_.jsxs)(o,{children:[(0,_.jsx)(i,{dimColor:!0,children:`Location: `}),(0,_.jsx)(i,{dimColor:!0,children:c(e)})]}),(0,_.jsxs)(o,{marginLeft:1,flexDirection:`column`,children:[t.map((e,t)=>{let n=e.mcpErrorMetadata?.serverName;return(0,_.jsx)(o,{children:(0,_.jsxs)(i,{children:[(0,_.jsx)(i,{dimColor:!0,children:`└ `}),(0,_.jsx)(i,{color:`error`,children:`[Error]`}),(0,_.jsxs)(i,{dimColor:!0,children:[` `,n&&`[${n}] `,e.path&&e.path!==``?`${e.path}: `:``,e.message]})]})},`error-${t}`)}),n.map((e,t)=>{let n=e.mcpErrorMetadata?.serverName;return(0,_.jsx)(o,{children:(0,_.jsxs)(i,{children:[(0,_.jsx)(i,{dimColor:!0,children:`└ `}),(0,_.jsx)(i,{color:`warning`,children:`[Warning]`}),(0,_.jsxs)(i,{dimColor:!0,children:[` `,n&&`[${n}] `,e.path&&e.path!==``?`${e.path}: `:``,e.message]})]})},`warning-${t}`)})]})]})}function m(){let e=(0,g.useMemo)(()=>[{scope:`user`,config:f(`user`)},{scope:`project`,config:f(`project`)},{scope:`local`,config:f(`local`)},{scope:`enterprise`,config:f(`enterprise`)}],[]),t=e.some(({config:e})=>h(e.errors,`fatal`).length>0),r=e.some(({config:e})=>h(e.errors,`warning`).length>0);return!t&&!r?null:(0,_.jsxs)(o,{flexDirection:`column`,marginTop:1,marginBottom:1,children:[(0,_.jsx)(i,{bold:!0,children:`MCP Config Diagnostics`}),(0,_.jsx)(o,{marginTop:1,children:(0,_.jsxs)(i,{dimColor:!0,children:[`For help configuring MCP servers, see:`,` `,(0,_.jsx)(n,{url:`https://code.claude.com/docs/en/mcp`,children:`https://code.claude.com/docs/en/mcp`})]})}),e.map(({scope:e,config:t})=>(0,_.jsx)(p,{scope:e,parsingErrors:h(t.errors,`fatal`),warnings:h(t.errors,`warning`)},e))]})}function h(e,t){return e.filter(e=>e.mcpErrorMetadata?.severity===t)}var g,_,v=e((()=>{g=t(r()),d(),l(),a(),_=s()}));export{v as n,m as t};
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{Q as n,Rn as r,b as i,t as a,x as o}from"./src-Di342QoJ.js";import{t as s}from"./jsx-runtime-D-D469L8.js";import{BC as c,QC as l,ZC as u,dw as d,lw as f}from"./loadAgentsDir-D7kapZB5.js";function p({scope:e,parsingErrors:t,warnings:n}){let r=t.length>0,a=n.length>0;return!r&&!a?null:(0,_.jsxs)(o,{flexDirection:`column`,marginTop:1,children:[(0,_.jsxs)(o,{children:[(r||a)&&(0,_.jsxs)(i,{color:r?`error`:`warning`,children:[`[`,r?`Failed to parse`:`Contains warnings`,`] `]}),(0,_.jsx)(i,{children:u(e)})]}),(0,_.jsxs)(o,{children:[(0,_.jsx)(i,{dimColor:!0,children:`Location: `}),(0,_.jsx)(i,{dimColor:!0,children:c(e)})]}),(0,_.jsxs)(o,{marginLeft:1,flexDirection:`column`,children:[t.map((e,t)=>{let n=e.mcpErrorMetadata?.serverName;return(0,_.jsx)(o,{children:(0,_.jsxs)(i,{children:[(0,_.jsx)(i,{dimColor:!0,children:`└ `}),(0,_.jsx)(i,{color:`error`,children:`[Error]`}),(0,_.jsxs)(i,{dimColor:!0,children:[` `,n&&`[${n}] `,e.path&&e.path!==``?`${e.path}: `:``,e.message]})]})},`error-${t}`)}),n.map((e,t)=>{let n=e.mcpErrorMetadata?.serverName;return(0,_.jsx)(o,{children:(0,_.jsxs)(i,{children:[(0,_.jsx)(i,{dimColor:!0,children:`└ `}),(0,_.jsx)(i,{color:`warning`,children:`[Warning]`}),(0,_.jsxs)(i,{dimColor:!0,children:[` `,n&&`[${n}] `,e.path&&e.path!==``?`${e.path}: `:``,e.message]})]})},`warning-${t}`)})]})]})}function m(){let e=(0,g.useMemo)(()=>[{scope:`user`,config:f(`user`)},{scope:`project`,config:f(`project`)},{scope:`local`,config:f(`local`)},{scope:`enterprise`,config:f(`enterprise`)}],[]),t=e.some(({config:e})=>h(e.errors,`fatal`).length>0),r=e.some(({config:e})=>h(e.errors,`warning`).length>0);return!t&&!r?null:(0,_.jsxs)(o,{flexDirection:`column`,marginTop:1,marginBottom:1,children:[(0,_.jsx)(i,{bold:!0,children:`MCP Config Diagnostics`}),(0,_.jsx)(o,{marginTop:1,children:(0,_.jsxs)(i,{dimColor:!0,children:[`For help configuring MCP servers, see:`,` `,(0,_.jsx)(n,{url:`https://code.claude.com/docs/en/mcp`,children:`https://code.claude.com/docs/en/mcp`})]})}),e.map(({scope:e,config:t})=>(0,_.jsx)(p,{scope:e,parsingErrors:h(t.errors,`fatal`),warnings:h(t.errors,`warning`)},e))]})}function h(e,t){return e.filter(e=>e.mcpErrorMetadata?.severity===t)}var g,_,v=e((()=>{g=t(r()),d(),l(),a(),_=s()}));export{v as n,m as t};